[
  {
    "path": ".dockerignore",
    "content": ".github\nnode_modules\ncoverage\ndeploy\ndocs\ntest/docker-compose.yaml\ntest/Dockerfile\n"
  },
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.md]\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "content": "### Prerequisites\n\n* [ ] Are you running the latest version(s)?\n* [ ] Have you searched the [documentation for your issue](https://academy.subquery.network/)?\n* [ ] Did you search for an existing issue or pull request?\n\n### Description\n\n[Description of the bug or feature]\n\n### Details\n\nThese details can help to reproduce the environment the issue is occurring\n\n**Local Environment:** [You can get this information from executing `subql version`.]\n**Query Version:** [What is the version of the query service?]\n**Indexer Version:** [What is the version of the indexer service?]\n**Network Details:**\n  * [Network]\n  * [Block height, a block height where the issue is happening]\n  * [Dictionary endpoint, if used]\n\n### Steps to Reproduce\n\n1. [First Step]\n2. [Second Step]\n3. [and so on...]\n\n**Example project:** [A link to a minimal example that can reproduce the issue]\n\n**Expected behavior:** [What you expected to happen]\n\n**Actual behavior:** [What actually happened]\n\n\n### Any other information\n\nIs there any other information you would like to add?\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "content": "# Description\nPlease include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.\n\nFixes # (issue)\n\n## Type of change\n\nPlease delete options that are not relevant.\n\n- [ ] Bug fix (non-breaking change which fixes an issue)\n- [ ] New feature (non-breaking change which adds functionality)\n- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)\n- [ ] This change requires a documentation update\n\n## Checklist\n\n- [ ] I have tested locally\n- [ ] I have performed a self review of my changes\n- [ ] Updated any relevant documentation\n- [ ] Linked to any relevant issues\n- [ ] I have added tests relevant to my changes\n- [ ] Any dependent changes have been merged and published in downstream modules\n- [ ] My code is up to date with the base branch\n- [ ] I have updated relevant changelogs. [We suggest using chan](https://github.com/geut/chan/tree/main/packages/chan)\n"
  },
  {
    "path": ".github/actions/create-prerelease/action.yml",
    "content": "# Composite action needed to access github context\n\n# This is to compensate for yarn 3 issue https://github.com/yarnpkg/berry/issues/3868\nname: 'Remove Stable Versions'\ndescription: 'This will remove stableVersion from packages for prerelease'\ninputs:\n  package-path:\n    description: 'package path to run action e.g. package/common'\n    required: true\n\nruns:\n  using: \"composite\"\n  steps:\n    - working-directory: ${{ github.workspace }}\n      run: node ${{ github.action_path }}/remove-stable-version.js ${{ github.workspace }}/${{ inputs.package-path }}\n      shell: bash\n\n    - working-directory: ${{ inputs.package-path }}\n      run: echo \"Changes exist in ${{ inputs.package-path }}\" && yarn version prerelease && yarn npm publish --access public --tag dev\n      shell: bash\n"
  },
  {
    "path": ".github/actions/create-prerelease/remove-stable-version.js",
    "content": "const fs = require('fs');\nconst myArgs = process.argv.slice(2);\nconst pJson = require(`${myArgs[0]}/package.json`)\n\nif (pJson.stableVersion){\n    delete pJson.stableVersion\n    fs.writeFileSync(`${myArgs[0]}/package.json`, JSON.stringify(pJson, null, 2))\n}\n"
  },
  {
    "path": ".github/actions/create-release/action.yml",
    "content": "# Composite action needed to access github context\n\nname: 'Create Release'\ndescription: 'This will publish to NPM registry and create Github release'\ninputs:\n  package-path: # id of input\n    description: 'package path to run action e.g. package/common'\n    required: true\n  repo-token:\n    description: 'token to create github release'\n    required: true\n\nruns:\n  using: \"composite\"\n  steps:\n    - working-directory: ${{ inputs.package-path }}\n      run: echo \"Changes exist in ${{ inputs.package-path }}\" && yarn npm publish --access public\n      shell: bash\n\n    - working-directory: ${{ github.workspace }}\n      run: node ${{ github.action_path }}/gh-release-script.js ${{ github.workspace }}/${{ inputs.package-path }} ${{ github.sha }}\n      env:\n        REPO_TOKEN: ${{ inputs.repo-token }}\n      shell: bash\n"
  },
  {
    "path": ".github/actions/create-release/gh-release-script.js",
    "content": "const fs = require('fs');\nconst { exit } = require('process');\nconst core = require('@actions/core');\nconst { request } = require('@octokit/request');\n\nconst myArgs = process.argv.slice(2);\n\nconst pJson = require(`${myArgs[0]}/package.json`)\n\nconst version = pJson.version;\nconst repoName = pJson.name; \n\nconst packageName = repoName.split('/');\n\nfunction checkForBetaVersion(version) {\n    if (version.includes('-')){\n        exit(0); //skip this package but continue trying to release others\n    }\n}\n\nfunction gatherReleaseInfo(logPath) {\n    const changeLogs = fs.readFileSync(logPath, 'utf8');\n    const regex = /## \\[([0-9]+(\\.[0-9]+)+)] - [0-9]{4}-[0-9]{2}-[0-9]{2}/i;\n    \n    let lines = changeLogs.split(/\\n/);\n    let foundChangelog = false;\n    let releaseInfo = '';\n    let i = 0;\n\n    for(let j = 0; j < lines.length; j++){\n       if(lines[j].includes(`[${version}]`)){\n           i = j;\n           j = lines.length;\n           foundChangelog = true;\n       } \n    }\n\n    lines = lines.slice(i);\n\n    if(foundChangelog){\n        for(let j = 0; j < lines.length; j++){\n            if(j == 0){\n               releaseInfo += `${lines[j]}`+ '\\n';\n               continue;\n            }        \n    \n            if(!regex.test(lines[j])){\n                releaseInfo += `${lines[j]}`+ '\\n';\n            } else {\n                j = lines.length;\n            }\n        }\n    }\n    \n    if(releaseInfo === ''){\n        core.setFailed(\"No release info found, either missing in changelog or changelog is formatted incorrectly\")\n    }\n\n    console.log(\"Gathered release info...\")  \n    return releaseInfo;\n}\n\nasync function publishRelease(releaseInfo) {\n\n    await request('POST /repos/{owner}/{repo}/releases', {\n        headers: {\n            authorization: `token ${process.env.REPO_TOKEN}`,\n        },\n        owner: 'subquery',\n        name: `[${version}] ${repoName}`,\n        repo: 'subql',\n        tag_name: `${packageName[1]}/${version}`,\n        target_commitish: `${myArgs[1]}`,\n        body: releaseInfo\n    }).catch( err => {\n        core.setFailed(err)\n    })\n\n    console.log(\"Release Created...\")\n}\n\ncheckForBetaVersion(version);\n\nconst releaseInfo = gatherReleaseInfo(`${myArgs[0]}/CHANGELOG.md`);\n\npublishRelease(releaseInfo);\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where the package manifests are located.\n# Please see the documentation for all configuration options:\n# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file\n\nversion: 2\nupdates:\n  - package-ecosystem: \"npm\" # See documentation for possible values\n    directories: # Location of package manifests\n      - \"/\"\n      - \"/packages/*\"\n    schedule:\n      interval: \"weekly\"\n  - package-ecosystem: \"github-actions\"\n    # Workflow files stored in the default location of `.github/workflows`\n    # You don't need to specify `/.github/workflows` for `directory`. You can use `directory: \"/\"`.\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n"
  },
  {
    "path": ".github/workflows/benchmark.yml",
    "content": "name: BENCHMARK\non:\n  workflow_dispatch:\n    inputs:\n      cpus:\n        description: \"docker cpus \"\n        default: 2\n        require: true\n      memory:\n        description: \"docker memory\"\n        default: \"4g\"\n        require: true\n      benchmark-time:\n        description: \"Benchmark time(h/m/s)\"\n        default: 30m\n        require: true\n      indexerVersion:\n        description: \"indexer version\"\n        default: \"latest\"\n        require: true\n      deployment:\n        description: \"Deployment\"\n        default: \"QmakYyTWzTxaDU842CczyDWV51Ay9E55k7kbRRXTB3f395\"\n        require: false\n      network-endpoint:\n        description: \"Network endpoint\"\n        default: \"wss://rpc-polkadot.luckyfriday.io\"\n        require: true\n      disableHistorical:\n        description: \"Disable historical\"\n        default: \"true\"\n        require: false\n      batch-size:\n        description: \"batch-size\"\n        default: 30\n        require: false\n      workers:\n        description: \"workers\"\n        default: 4\n        require: false\n      others:\n        description: \"Other flags\"\n        require: false\n\njobs:\n  # Label of the container job\n  container-job:\n    # Containers must run in Linux based operating systems\n    runs-on: ubuntu-latest\n    # Docker Hub image that `container-job` executes in\n    container: node:lts\n    services:\n      # Label used to access the service container\n      postgres:\n        # Docker Hub image\n        image: postgres:12-alpine\n        # Provide the password for postgres\n        env:\n          POSTGRES_USER: postgres\n          POSTGRES_PASSWORD: postgres\n          POSTGRES_DB: postgres\n        ports:\n          - 5432:5432\n        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5\n\n    steps:\n      #Check out\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 100\n          token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Install Docker inside the container\n        run: |\n          apt-get update\n          apt-get install -y docker.io\n\n      - name: Install PostgreSQL client\n        run: |\n          apt-get install --yes postgresql-client\n\n      # Install bc used in convert time in seconds\n      - name: Install bc\n        run: apt-get install -y bc\n\n      # queries database with postgres client\n      - name: Setup historical database\n        run: psql -h postgres -d postgres -U postgres -c 'CREATE EXTENSION IF NOT EXISTS btree_gist;'\n        env:\n          PGPASSWORD: postgres\n\n      - name: Ensure clean reports directory\n        run: |\n          output_dir=\"output/benchmark/\"\n          chmod +x .github/workflows/scripts/benchmark/cleanHistory.sh\n          .github/workflows/scripts/benchmark/cleanHistory.sh $output_dir\n\n      - name: Clean container && rebuild indexer\n        run: |\n          docker rmi my_indexer:latest || true\n          CONTAINER_NAME=\"my_container\"\n          docker stop $CONTAINER_NAME || true\n          docker rm -f $CONTAINER_NAME || true\n          VOLUME_NAME=\"${CONTAINER_NAME}_data\"\n          docker volume rm $VOLUME_NAME || true\n          docker build -t my_indexer --build-arg input_indexer_version=${{github.event.inputs.indexerVersion}} .github/workflows/scripts/benchmark/\n\n      - name: Benchmarking\n        id: app\n        run: |\n          docker run --cpus=${{github.event.inputs.cpus}} --memory=${{github.event.inputs.memory}} --network ${{ job.container.network }} --name my_container -v \"${PWD}/output/benchmark:/app/output/benchmark\" my_indexer ${{github.event.inputs.benchmark-time}} ${{ github.event.inputs.deployment }} ${{ github.event.inputs.network-endpoint }} ${{ github.event.inputs.batch-size }} ${{ github.event.inputs.workers }} ${{ github.event.inputs.disableHistorical }} ${{ github.event.inputs.others }}\n          docker cp my_container:/app/output/benchmark/indexing.log output/benchmark/\n\n      - name: Stop and remove the benchmark container\n        run: docker stop my_container && docker rm my_container\n\n      - name: Query metadata get processed height\n        id: query_meta\n        env:\n          PGPASSWORD: postgres\n        run: |\n          chmod +x .github/workflows/scripts/benchmark/queryMeta.sh\n          .github/workflows/scripts/benchmark/queryMeta.sh ${{github.event.inputs.benchmark-time}}\n\n      - name: Pre-save running specs\n        run: |\n          echo \"benchmark-time=${{github.event.inputs.benchmark-time}}\" > output/benchmark/benchmark.log\n          echo \"indexer=${{steps.query_meta.outputs.runner_node}}\" >> output/benchmark/benchmark.log\n          echo \"indexerVersion=${{steps.query_meta.outputs.indexer_version}}\" >> output/benchmark/benchmark.log\n          echo \"deployment=${{github.event.inputs.deployment}}\" >> output/benchmark/benchmark.log\n          echo \"network-endpoint=${{github.event.inputs.network-endpoint}}\" >> output/benchmark/benchmark.log\n          echo \"disableHistorical=${{github.event.inputs.disableHistorical}}\" >> output/benchmark/benchmark.log\n          echo \"batch-size=${{github.event.inputs.batch-size}}\" >> output/benchmark/benchmark.log\n          echo \"workers=${{github.event.inputs.workers}}\" >> output/benchmark/benchmark.log\n          if [ -n \"${{github.event.inputs.others}}\" ]; then\n            echo \"others=${{github.event.inputs.others}}\" >> output/benchmark/benchmark.log\n          fi\n          echo \"Start Height: ${{steps.query_meta.outputs.start_height}}\" >> output/benchmark/benchmark.log\n          echo \"Last Processed Height: ${{steps.query_meta.outputs.last_processed_height}}\" >> output/benchmark/benchmark.log\n          echo \"------------------------------------\" >> output/benchmark/benchmark.log\n\n      - name: Prepare benchmark log\n        run: |\n          if grep -qi \"benchmark\" output/benchmark/indexing.log; then\n            grep -i \"benchmark\" output/benchmark/indexing.log >> output/benchmark/benchmark.log\n            cat output/benchmark/benchmark.log\n          else\n            echo \"No lines containing 'benchmark' found in output/benchmark/indexing.log\" >> output/benchmark/benchmark.log\n          fi\n\n      - name: Get current time\n        uses: josStorer/get-current-time@v2\n        id: current-time\n        with:\n          format: YYYYMMDD-HHmm\n          utcOffset: \"+12:00\"\n\n      - name: Upload reports\n        uses: actions/upload-artifact@v7\n        with:\n          name: benchmark-${{steps.current-time.outputs.formattedTime}}-${{steps.query_meta.outputs.indexer_version}}\n          path: output/benchmark/\n\n      - name: Post to a Slack channel\n        id: slack\n        uses: slackapi/slack-github-action@v2.1.1\n        with:\n          # Slack channel id, channel name, or user id to post message.\n          # See also: https://api.slack.com/methods/chat.postMessage#channels\n          # channel for sq-benchmark\n          channel-id: \"C05JF51F1MJ\"\n          # For posting a rich message using Block Kit\n          payload: |\n            {\n              \"text\": \"Benchmark result ${{steps.current-time.outputs.formattedTime}}\",\n              \"blocks\": [\n                {\n                  \"type\": \"section\",\n                  \"text\": {\n                    \"type\": \"mrkdwn\",\n                    \"text\": \"Results: ${{ job.status }} with ${{steps.query_meta.outputs.bps}} bps\\n Performance: Block [${{steps.query_meta.outputs.start_height}}-${{steps.query_meta.outputs.last_processed_height}}], total ${{steps.query_meta.outputs.total_height}} blocks in ${{github.event.inputs.benchmark-time}}\\n More details: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\\n Indexer: ${{steps.query_meta.outputs.runner_node}}@${{steps.query_meta.outputs.indexer_version}}\\n Deployment: ${{github.event.inputs.deployment}}\\n CPUs: ${{github.event.inputs.cpus}}\\n Memory: ${{github.event.inputs.memory}}\\n Workers: ${{github.event.inputs.workers}}\\n Batch-size: ${{github.event.inputs.batch-size}}\"\n                  }\n                }\n              ]\n            }\n        env:\n          SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}\n"
  },
  {
    "path": ".github/workflows/discord.yml",
    "content": "name: discord notification\non:\n  release:\n    types:\n      - published\n\njobs:\n  notify:\n    name: Discord Notification\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Send release details to Discord\n        uses: rjstone/discord-webhook-notify@v2\n        with:\n          webhookUrl: ${{ secrets.DISCORD_RELEASE_NOTES_WEBHOOK }}\n          color: \"#6499ff\"\n          avatarUrl: https://github.githubassets.com/images/modules/logos_page/Octocat.png\n          details: ${{ github.event.release.body }}\n          description: \"[Release] ${{ github.event.release.name }}\"\n          footer: ${{ github.event.release.html_url }}\n"
  },
  {
    "path": ".github/workflows/gh-release.yml",
    "content": "name: \"Github Release\"\non:\n  workflow_dispatch:\n\njobs:\n  github-release:\n    name: github-release\n    runs-on: ubuntu-latest\n    steps:\n      #Check out\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 100\n\n      - name: Setup Node.js environment\n        uses: actions/setup-node@v5\n        with:\n          node-version: lts/*\n\n      - run: yarn install\n\n      # Create github releases\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/utils\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/types-core\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/types\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/common\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/common-substrate\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/cli\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/node-core\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/node\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/query\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - uses: ./.github/actions/create-release\n        with:\n          package-path: packages/testing\n          repo-token: ${{ secrets.REPO_TOKEN }}\n"
  },
  {
    "path": ".github/workflows/node-docker.yml",
    "content": "name: \"Node-to-docker\"\non:\n  release:\n    types:\n      - published\n  workflow_dispatch:\n    inputs:\n      isLatest:\n        description: \"Add latest tag\"\n        default: \"true\"\n        required: true\n\njobs:\n  check:\n    runs-on: ubuntu-latest\n    outputs:\n      changes_found: ${{ steps.check_changes.outputs.changes_found }}\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 2\n\n      - name: Check for package changes and commit message\n        id: check_changes\n        run: |\n          if [[ \"${{ github.event_name }}\" == \"release\" ]]\n          then\n            TAG_NAME=${GITHUB_REF#refs/tags/}\n            if [[ $TAG_NAME == \"node/\"* ]]\n            then\n              echo \"changes_found=true\" >> \"$GITHUB_OUTPUT\"\n            else\n              echo \"changes_found=false\" >> \"$GITHUB_OUTPUT\"\n            fi\n          else\n            echo \"changes_found=true\" >> \"$GITHUB_OUTPUT\"\n          fi\n\n  node-build-push-docker-onfinality:\n    needs: check\n    if: needs.check.outputs.changes_found == 'true'\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 100\n          token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Set up QEMU\n        uses: docker/setup-qemu-action@v3\n\n      - name: Set up Docker Buildx\n        uses: docker/setup-buildx-action@v3\n\n      - name: Login to DockerHub\n        uses: docker/login-action@v3\n        with:\n          username: onfinality\n          password: ${{ secrets.DOCKERHUB_TOKEN }}\n\n      ## node\n      - name: Get updated node version\n        id: get-node-version\n        run: |\n          sh .github/workflows/scripts/nodeVersion.sh\n\n      - run: yarn\n      - name: build\n        run: yarn build\n\n      - name: Build and push\n        if: github.event_name == 'workflow_dispatch' && github.event.inputs.isLatest == 'false'\n        uses: docker/build-push-action@v6\n        with:\n          context: .\n          push: true\n          platforms: arm64,amd64\n          file: ./packages/node/Dockerfile\n          tags: onfinality/subql-node:v${{ steps.get-node-version.outputs.NODE_VERSION }}\n          build-args: RELEASE_VERSION=${{ steps.get-node-version.outputs.NODE_VERSION }}\n\n      - name: Build and push\n        if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.isLatest == 'true')\n        uses: docker/build-push-action@v6\n        with:\n          context: .\n          push: true\n          platforms: arm64,amd64\n          file: ./packages/node/Dockerfile\n          tags: onfinality/subql-node:v${{ steps.get-node-version.outputs.NODE_VERSION }},onfinality/subql-node:latest\n          build-args: RELEASE_VERSION=${{ steps.get-node-version.outputs.NODE_VERSION }}\n\n      - name: Image digest\n        run: echo ${{ steps.docker_build.outputs.digest }}\n\n  node-build-push-docker-subquery:\n    needs: check\n    if: needs.check.outputs.changes_found == 'true'\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 100\n          token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Set up QEMU\n        uses: docker/setup-qemu-action@v3\n\n      - name: Set up Docker Buildx\n        uses: docker/setup-buildx-action@v3\n\n      - name: Login to DockerHub\n        uses: docker/login-action@v3\n        with:\n          username: subquerynetwork\n          password: ${{ secrets.SQ_DOCKERHUB_TOKEN }}\n\n      ## node\n      - name: Get updated node version\n        id: get-node-version\n        run: |\n          sh .github/workflows/scripts/nodeVersion.sh\n\n      - run: yarn\n      - name: build\n        run: yarn build\n\n      - name: Build and push\n        if: github.event_name == 'workflow_dispatch' && github.event.inputs.isLatest == 'false'\n        uses: docker/build-push-action@v6\n        with:\n          context: .\n          push: true\n          platforms: arm64,amd64\n          file: ./packages/node/Dockerfile\n          tags: subquerynetwork/subql-node-substrate,\n\n      - name: Build and push\n        if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.isLatest == 'true')\n        uses: docker/build-push-action@v6\n        with:\n          context: .\n          push: true\n          platforms: arm64,amd64\n          file: ./packages/node/Dockerfile\n          tags: subquerynetwork/subql-node-substrate:v${{ steps.get-node-version.outputs.NODE_VERSION }},subquerynetwork/subql-node-substrate:latest\n\n      - name: Image digest\n        run: echo ${{ steps.docker_build.outputs.digest }}\n"
  },
  {
    "path": ".github/workflows/pr.yml",
    "content": "name: PR\non:\n  pull_request:\n    paths-ignore:\n      - \".github/workflows/**\"\njobs:\n  code-style:\n    name: code-style\n    runs-on: ubuntu-latest\n    env:\n      YARN_ENABLE_HARDENED_MODE: 0\n    steps:\n      - uses: actions/checkout@v6\n      - name: Setup Node.js environment\n        uses: actions/setup-node@v5\n        with:\n          node-version: lts/*\n      - run: yarn\n      - name: build\n        run: yarn build\n      - name: code-style check\n        run: yarn pretty-quick --check --pattern 'packages/*/src/**/*' --branch origin/main\n      - name: lint\n        run: yarn lint\n\n  coverage:\n    name: Coverage report\n    runs-on: ubuntu-latest\n    services:\n      postgres:\n        image: postgres:16-alpine\n        ports:\n          - 5432:5432\n        env:\n          POSTGRES_PASSWORD: postgres\n        options: >-\n          --health-cmd pg_isready\n          --health-interval 10s\n          --health-timeout 5s\n          --health-retries 5\n    env:\n      DB_USER: postgres\n      DB_PASS: postgres\n      DB_DATABASE: postgres\n      DB_HOST: localhost\n      DB_PORT: 5432\n      SUBQL_ACCESS_TOKEN: ${{ secrets.SUBQL_ACCESS_TOKEN }}\n      SUBQL_ACCESS_TOKEN_TEST: ${{ secrets.SUBQL_ACCESS_TOKEN_TEST }}\n      SUBQL_ORG_TEST: ${{ secrets.SUBQL_ORG_TEST }}\n      ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}\n      YARN_ENABLE_HARDENED_MODE: 0\n    steps:\n      - uses: actions/checkout@v6\n\n      - name: Enable btree btree_gist\n        run: psql \"postgresql://$DB_USER:$DB_PASS@$DB_HOST:$DB_PORT/$DB_DATABASE\" -c \"CREATE EXTENSION IF NOT EXISTS btree_gist;\"\n\n      - name: Setup Node.js environment\n        uses: actions/setup-node@v5\n        with:\n          node-version: lts/*\n\n      - name: install dependencies\n        run: yarn\n\n      - name: build\n        run: yarn build\n\n      - uses: artiomtr/jest-coverage-report-action@v2\n        with:\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n          skip-step: install\n          package-manager: yarn\n          working-directory: .\n          test-script: yarn test:ci\n          annotations: none\n          # coverage-file: report.json\n          base-coverage-file: report-main.json\n\n      - name: Archive code coverage results\n        uses: actions/upload-artifact@v7\n        with:\n          name: code-coverage-report\n          path: report.json\n"
  },
  {
    "path": ".github/workflows/publish.yml",
    "content": "name: \"Publish\"\n\non:\n  push:\n    branches:\n      - main\n    paths-ignore:\n      - \".github/workflows/**\"\n  workflow_dispatch:\n\npermissions:\n  id-token: write  # Required for OIDC\n  contents: read\n\nconcurrency:\n  group: publish\n  cancel-in-progress: false\n\njobs:\n  pre-ci:\n    name: Pre-CI (Extract Commit Message)\n    runs-on: ubuntu-latest\n    timeout-minutes: 1\n    outputs:\n      commit-message: ${{ steps.get_commit_message.outputs.commit-message }}\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 0\n\n      - id: get_commit_message\n        run: |\n          if [ -n \"${{ github.event.head_commit.message }}\" ]\n          then\n            echo \"commit-message=${{ github.event.head_commit.message }}\" | head -n 1 >> \"$GITHUB_OUTPUT\"\n          else\n            commit_message=$(git log -1 --pretty=%B | head -n 1)\n            echo \"commit-message=$commit_message\" >> \"$GITHUB_OUTPUT\"\n          fi\n\n      - name: Debug commit message\n        run: |\n          echo \"Commit message: ${{ steps.get_commit_message.outputs.commit-message }}\"\n\n  setup:\n    name: Setup & Detect Changes\n    needs: pre-ci\n    runs-on: ubuntu-latest\n    outputs:\n      changed-utils: ${{ steps.changed-utils.outputs.changed }}\n      changed-types-core: ${{ steps.changed-types-core.outputs.changed }}\n      changed-types: ${{ steps.changed-types.outputs.changed }}\n      changed-common: ${{ steps.changed-common.outputs.changed }}\n      changed-common-substrate: ${{ steps.changed-common-substrate.outputs.changed }}\n      changed-cli: ${{ steps.changed-cli.outputs.changed }}\n      changed-node-core: ${{ steps.changed-node-core.outputs.changed }}\n      changed-node: ${{ steps.changed-node.outputs.changed }}\n      changed-query: ${{ steps.changed-query.outputs.changed }}\n      changed-testing: ${{ steps.changed-testing.outputs.changed }}\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 100 # Needed to detect changes by having commit history\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-utils\n        with:\n          paths: packages/utils\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-types-core\n        with:\n          paths: packages/types-core\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-types\n        with:\n          paths: packages/types\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-common\n        with:\n          paths: packages/common\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-common-substrate\n        with:\n          paths: packages/common-substrate\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-cli\n        with:\n          paths: packages/cli\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-node-core\n        with:\n          paths: packages/node-core\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-node\n        with:\n          paths: packages/node\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-query\n        with:\n          paths: packages/query\n\n      - uses: marceloprado/has-changed-path@v1\n        id: changed-testing\n        with:\n          paths: packages/testing\n\n  release:\n    name: Release Publish\n    needs: [pre-ci, setup]\n    if: >\n      !startsWith(needs.pre-ci.outputs.commit-message, '[SKIP CI]')\n      && startsWith(needs.pre-ci.outputs.commit-message, '[release]')\n      && github.repository == 'subquery/subql'\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 0\n\n      - name: Setup Node.js environment\n        uses: actions/setup-node@v5\n        with:\n          node-version: lts/*\n\n      - name: Update npm\n        run: npm install -g npm@latest\n\n      - run: yarn\n\n      - name: build\n        run: yarn build\n\n      # Publish to npm and github releases\n      - name: Publish Utils\n        if: needs.setup.outputs.changed-utils == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/utils\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Publish Types-core\n        if: needs.setup.outputs.changed-types-core == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/types-core\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Publish Types\n        if: needs.setup.outputs.changed-types == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/types\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Publish Common\n        if: needs.setup.outputs.changed-common == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/common\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Publish Common Substrate\n        if: needs.setup.outputs.changed-common-substrate == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/common-substrate\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Publish Testing\n        if: needs.setup.outputs.changed-testing == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/testing\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Publish Node Core\n        if: needs.setup.outputs.changed-node-core == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/node-core\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Publish Node\n        if: needs.setup.outputs.changed-node == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/node\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Publish Query\n        if: needs.setup.outputs.changed-query == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/query\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Publish Cli\n        if: needs.setup.outputs.changed-cli == 'true'\n        uses: ./.github/actions/create-release\n        with:\n          package-path: packages/cli\n          repo-token: ${{ secrets.REPO_TOKEN }}\n\n  prerelease:\n    name: Prerelease Publish\n    needs: [pre-ci, setup]\n    if: >\n      !startsWith(needs.pre-ci.outputs.commit-message, '[SKIP CI]')\n      && !startsWith(needs.pre-ci.outputs.commit-message, '[release]')\n      && github.repository == 'subquery/subql'\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 0\n          token: ${{ secrets.REPO_TOKEN }} # Needed to push changes back to repo\n\n      - name: Setup Node.js environment\n        uses: actions/setup-node@v5\n        with:\n          node-version: lts/*\n\n      - name: Update npm\n        run: npm install -g npm@latest\n\n      - run: yarn\n\n      - name: build\n        run: yarn build\n\n      # Prerelease publish steps\n      - name: Bump utils & deploy\n        if: needs.setup.outputs.changed-utils == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/utils\n\n      - name: Bump types-core & deploy\n        if: needs.setup.outputs.changed-types-core == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/types-core\n\n      - name: Bump types & deploy\n        if: needs.setup.outputs.changed-types == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/types\n\n      - name: Bump common & deploy\n        if: needs.setup.outputs.changed-common == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/common\n\n      - name: Bump common substrate & deploy\n        if: needs.setup.outputs.changed-common-substrate == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/common-substrate\n\n      - name: Bump testing & deploy\n        if: needs.setup.outputs.changed-testing == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/testing\n\n      - name: Bump node-core & deploy\n        if: needs.setup.outputs.changed-node-core == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/node-core\n\n      - name: Bump node & deploy\n        if: needs.setup.outputs.changed-node == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/node\n\n      - name: Bump query & deploy\n        if: needs.setup.outputs.changed-query == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/query\n\n      - name: Bump cli & deploy\n        if: needs.setup.outputs.changed-cli == 'true'\n        uses: ./.github/actions/create-prerelease\n        with:\n          package-path: packages/cli\n\n      - name: Commit changes\n        uses: EndBug/add-and-commit@v9\n        with:\n          message: \"[SKIP CI] Prerelease\"\n          default_author: github_actions\n"
  },
  {
    "path": ".github/workflows/query-docker.yml",
    "content": "name: \"Query-to-docker\"\non:\n  release:\n    types:\n      - published\n  workflow_dispatch:\n    inputs:\n      isLatest:\n        description: 'Add latest tag'\n        default: 'true'\n        required: true\n\njobs:\n  check:\n    runs-on: ubuntu-latest\n    outputs:\n      changes_found: ${{ steps.check_changes.outputs.changes_found }}\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 2\n      - name: Check for package changes and commit message\n        id: check_changes\n        run: |\n          if [[ \"${{ github.event_name }}\" == \"release\" ]]\n          then\n            TAG_NAME=${GITHUB_REF#refs/tags/}\n            if [[ $TAG_NAME == \"query/\"* ]]\n            then\n              echo \"changes_found=true\" >> \"$GITHUB_OUTPUT\"\n            else\n              echo \"changes_found=false\" >> \"$GITHUB_OUTPUT\"\n            fi\n          else\n            echo \"changes_found=true\" >> \"$GITHUB_OUTPUT\"\n          fi\n\n  query-build-push-docker:\n    needs: check\n    if: needs.check.outputs.changes_found == 'true'\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 100\n          token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Set up QEMU\n        uses: docker/setup-qemu-action@v3\n\n      - name: Set up Docker Buildx\n        uses: docker/setup-buildx-action@v3\n\n      - name: Login to DockerHub\n        uses: docker/login-action@v3\n        with:\n          username: onfinality\n          password: ${{ secrets.DOCKERHUB_TOKEN }}\n\n      ## query\n      - name: Get updated query version\n        id: get-query-version\n        run: |\n          sh .github/workflows/scripts/queryVersion.sh\n\n      - run: yarn\n      - name: build\n        run: yarn build\n\n      - name: Build and push\n        if: github.event_name == 'workflow_dispatch' && github.event.inputs.isLatest == 'false'\n        uses: docker/build-push-action@v6\n        with:\n          context: .\n          push: true\n          platforms: arm64,amd64\n          file: ./packages/query/Dockerfile\n          tags: onfinality/subql-query:v${{ steps.get-query-version.outputs.QUERY_VERSION }}\n          build-args: RELEASE_VERSION=${{ steps.get-query-version.outputs.QUERY_VERSION }}\n\n      - name: Build and push\n        if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.isLatest == 'true')\n        uses: docker/build-push-action@v6\n        with:\n          context: .\n          push: true\n          platforms: arm64,amd64\n          file: ./packages/query/Dockerfile\n          tags: onfinality/subql-query:v${{ steps.get-query-version.outputs.QUERY_VERSION }},onfinality/subql-query:latest\n          build-args: RELEASE_VERSION=${{ steps.get-query-version.outputs.QUERY_VERSION }}\n\n      - name: Image digest\n        if: steps.changed-query.outputs.changed == 'true'\n        run: echo ${{ steps.docker_build.outputs.digest }}\n\n  query-build-push-docker-subquery:\n    needs: check\n    if: needs.check.outputs.changes_found == 'true'\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 100\n          token: ${{ secrets.REPO_TOKEN }}\n\n      - name: Set up QEMU\n        uses: docker/setup-qemu-action@v3\n\n      - name: Set up Docker Buildx\n        uses: docker/setup-buildx-action@v3\n\n      - name: Login to DockerHub\n        uses: docker/login-action@v3\n        with:\n          username: subquerynetwork\n          password: ${{ secrets.SQ_DOCKERHUB_TOKEN }}\n\n      ## query\n      - name: Get updated query version\n        id: get-query-version\n        run: |\n          sh .github/workflows/scripts/queryVersion.sh\n\n      - run: yarn\n      - name: build\n        run: yarn build\n\n      - name: Build and push\n        if: github.event_name == 'workflow_dispatch' && github.event.inputs.isLatest == 'false'\n        uses: docker/build-push-action@v6\n        with:\n          context: .\n          push: true\n          platforms: arm64,amd64\n          file: ./packages/query/Dockerfile\n          tags: subquerynetwork/subql-query:v${{ steps.get-query-version.outputs.QUERY_VERSION }}\n          build-args: RELEASE_VERSION=${{ steps.get-query-version.outputs.QUERY_VERSION }}\n\n      - name: Build and push\n        if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.isLatest == 'true')\n        uses: docker/build-push-action@v6\n        with:\n          context: .\n          push: true\n          platforms: arm64,amd64\n          file: ./packages/query/Dockerfile\n          tags: subquerynetwork/subql-query:v${{ steps.get-query-version.outputs.QUERY_VERSION }},subquerynetwork/subql-query:latest\n          build-args: RELEASE_VERSION=${{ steps.get-query-version.outputs.QUERY_VERSION }}\n\n      - name: Image digest\n        if: steps.changed-query.outputs.changed == 'true'\n        run: echo ${{ steps.docker_build.outputs.digest }}\n"
  },
  {
    "path": ".github/workflows/scripts/benchmark/Dockerfile",
    "content": "FROM node:lts\n\n# Define build-time arguments\n\nARG input_indexer_version\nENV INDEXER_VERSION=${input_indexer_version}\n\nENV DB_USER=postgres\nENV DB_PASS=postgres\nENV DB_DATABASE=postgres\nENV DB_HOST=postgres\nENV DB_PORT=5432\n\n# Set the working directory in the container\nWORKDIR /app\n\n# Install app dependencies\nRUN npm i @subql/node@$INDEXER_VERSION -g\n\n# Copy the rest of the app's code to the container\nCOPY . .\n\n# Custom script to run the Node.js app and handle other tasks\nCOPY benchmarking.sh /app/benchmarking.sh\nRUN chmod +x /app/benchmarking.sh\n\n# Set the entrypoint to the script\nENTRYPOINT [\"/bin/bash\", \"/app/benchmarking.sh\"]\n"
  },
  {
    "path": ".github/workflows/scripts/benchmark/benchmarking.sh",
    "content": "#!/bin/bash\n\n# Get input parameters passed from the GitHub Action workflow\n# Testing time\ninput_duration=$1\ninput_deployment=$2\ninput_endpoint=$3\ninput_batch_size=$4\ninput_workers=$5\ninput_disableHistorical=$6\ninput_others=$7\n\n# Start the Node.js app in the background and save its PID\nsubql-node -f ipfs://$input_deployment --network-endpoint=$input_endpoint --batch-size=$input_batch_size --workers=$input_workers --disable-historical=$input_disableHistorical $input_others --ipfs='https://unauthipfs.subquery.network/ipfs/api/v0' --db-schema=app > output/benchmark/indexing.log 2>&1 &\n\nAPP_PID=$!\n\necho \"Benchmarking, please wait $input_duration.\"\n# Wait for timeout\nsleep $input_duration\n\n# Terminate the Node.js app\npkill -P $APP_PID || true\n"
  },
  {
    "path": ".github/workflows/scripts/benchmark/cleanHistory.sh",
    "content": "#!/bin/bash\n\noutput_dir=$1\n\nif [ -d \"$output_dir\" ]; then\n  echo \"Removing existing directory: $output_dir\"\n  rm -rf \"$output_dir\"\nfi\n# Create the new directory\necho \"Creating new directory: ${PWD}/$output_dir\"\nmkdir -p \"$output_dir\"\n"
  },
  {
    "path": ".github/workflows/scripts/benchmark/queryMeta.sh",
    "content": "#!/bin/bash\n\ninput_duration=$1\n\n# Function to convert time string to seconds\nt2s() {\n   sed 's/d/*24*3600 +/g; s/h/*3600 +/g; s/m/*60 +/g; s/s/\\+/g; s/+[ ]*$//g' <<< \"$1\" | bc\n}\n\n# Query the database and store the result in variables\nrunner_node=$(psql -h postgres -d postgres -U postgres -c \"SELECT value FROM app._metadata WHERE key = 'runnerNode';\" | awk 'NR == 3 {print $1}' | tr -d '\"')\nindexer_version=$(psql -h postgres -d postgres -U postgres -c \"SELECT value FROM app._metadata WHERE key = 'indexerNodeVersion';\" | awk 'NR == 3 {print $1}' | tr -d '\"')\nstart_height=$(psql -h postgres -d postgres -U postgres -c \"SELECT value::integer FROM app._metadata WHERE key = 'startHeight';\" | awk 'NR == 3 {print $1}')\nlast_processed_height=$(psql -h postgres -d postgres -U postgres -c \"SELECT value::integer FROM app._metadata WHERE key = 'lastProcessedHeight';\" | awk 'NR == 3 {print $1}')\ntotal_height=$((last_processed_height-start_height+1))\ntime_in_seconds=$(t2s \"$input_duration\")\nbps=$(awk \"BEGIN {printf \\\"%.2f\\\", $total_height / $time_in_seconds}\")\n# Set outputs for subsequent steps\necho \"::set-output name=runner_node::$runner_node\"\necho \"::set-output name=indexer_version::$indexer_version\"\necho \"::set-output name=start_height::$start_height\"\necho \"::set-output name=last_processed_height::$last_processed_height\"\necho \"::set-output name=total_height::$total_height\"\necho \"::set-output name=bps::$bps\"\n"
  },
  {
    "path": ".github/workflows/scripts/nodeVersion.sh",
    "content": "PACKAGE_VERSION=$(cat ./packages/node/package.json \\\n  | grep version \\\n  | head -1 \\\n  | awk -F: '{ print $2 }' \\\n  | sed 's/[\",]//g' \\\n  | tr -d '[[:space:]]')\n\n\necho \"::set-output name=NODE_VERSION::$PACKAGE_VERSION\"\n"
  },
  {
    "path": ".github/workflows/scripts/queryVersion.sh",
    "content": "PACKAGE_VERSION=$(cat ./packages/query/package.json \\\n  | grep version \\\n  | head -1 \\\n  | awk -F: '{ print $2 }' \\\n  | sed 's/[\",]//g' \\\n  | tr -d '[[:space:]]')\n\n\necho \"::set-output name=QUERY_VERSION::$PACKAGE_VERSION\"\n"
  },
  {
    "path": ".github/workflows/sync-sdks.yml",
    "content": "name: \"Sync SDK Deps\"\non:\n  workflow_dispatch:\n\njobs:\n  trigger:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Sync ETH\n        run: |\n          curl -X POST \\\n            -H \"Authorization: token ${{ secrets.SUBQL_SDK_CI }}\" \\\n            -H \"Accept: application/vnd.github.v3+json\" \\\n            https://api.github.com/repos/subquery/subql-ethereum/dispatches \\\n            -d '{\"event_type\":\"trigger-workflow\"}'\n\n      - name: Sync Cosmos\n        run: |\n          curl -X POST \\\n            -H \"Authorization: token ${{ secrets.SUBQL_SDK_CI }}\" \\\n            -H \"Accept: application/vnd.github.v3+json\" \\\n            https://api.github.com/repos/subquery/subql-cosmos/dispatches \\\n            -d '{\"event_type\":\"trigger-workflow\"}'\n\n      - name: Sync Algorand\n        run: |\n          curl -X POST \\\n            -H \"Authorization: token ${{ secrets.SUBQL_SDK_CI }}\" \\\n            -H \"Accept: application/vnd.github.v3+json\" \\\n            https://api.github.com/repos/subquery/subql-algorand/dispatches \\\n            -d '{\"event_type\":\"trigger-workflow\"}'\n\n      - name: Sync Near\n        run: |\n          curl -X POST \\\n            -H \"Authorization: token ${{ secrets.SUBQL_SDK_CI }}\" \\\n            -H \"Accept: application/vnd.github.v3+json\" \\\n            https://api.github.com/repos/subquery/subql-near/dispatches \\\n            -d '{\"event_type\":\"trigger-workflow\"}'\n\n      - name: Sync Stellar\n        run: |\n          curl -X POST \\\n            -H \"Authorization: token ${{ secrets.SUBQL_SDK_CI }}\" \\\n            -H \"Accept: application/vnd.github.v3+json\" \\\n            https://api.github.com/repos/subquery/subql-stellar/dispatches \\\n            -d '{\"event_type\":\"trigger-workflow\"}'\n\n      - name: Sync Starknet\n        run: |\n          curl -X POST \\\n            -H \"Authorization: token ${{ secrets.SUBQL_SDK_CI }}\" \\\n            -H \"Accept: application/vnd.github.v3+json\" \\\n            https://api.github.com/repos/subquery/subql-starknet/dispatches \\\n            -d '{\"event_type\":\"trigger-workflow\"}'\n\n      - name: Sync Solana\n        run: |\n          curl -X POST \\\n            -H \"Authorization: token ${{ secrets.SUBQL_SDK_CI }}\" \\\n            -H \"Accept: application/vnd.github.v3+json\" \\\n            https://api.github.com/repos/subquery/subql-solana/dispatches \\\n            -d '{\"event_type\":\"trigger-workflow\"}'\n"
  },
  {
    "path": ".gitignore",
    "content": "# Created by .ignore support plugin (hsz.mobi)\n### JetBrains template\n# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider\n# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839\n.idea\n\n# CMake\ncmake-build-*/\n\n# Mongo Explorer plugin\n.idea/**/mongoSettings.xml\n\n# File-based project format\n*.iws\n\n# IntelliJ\nout/\n\n# mpeltonen/sbt-idea plugin\n.idea_modules/\n\n# JIRA plugin\natlassian-ide-plugin.xml\n\n# Cursive Clojure plugin\n.idea/replstate.xml\n\n# Crashlytics plugin (for Android Studio and IntelliJ)\ncom_crashlytics_export_strings.xml\ncrashlytics.properties\ncrashlytics-build.properties\nfabric.properties\n\n# Editor-based Rest Client\n.idea/httpRequests\n\n# Android studio 3.1+ serialized cache file\n.idea/caches/build_file_checksums.ser\n\n### Node template\n# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\nlerna-debug.log*\n\n# Diagnostic reports (https://nodejs.org/api/report.html)\nreport.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Directory for instrumented libs generated by jscoverage/JSCover\nlib-cov\n\n# Coverage directory used by tools like istanbul\ncoverage\n*.lcov\n\n# nyc test coverage\n.nyc_output\n\n# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)\n.grunt\n\n# Bower dependency directory (https://bower.io/)\nbower_components\n\n# node-waf configuration\n.lock-wscript\n\n# Compiled binary addons (https://nodejs.org/api/addons.html)\nbuild/Release\n\n# Dependency directories\nnode_modules/\njspm_packages/\n\n# Snowpack dependency directory (https://snowpack.dev/)\nweb_modules/\n\n# TypeScript cache\n*.tsbuildinfo\n\n# Optional npm cache directory\n.npm\n\n# Optional eslint cache\n.eslintcache\n\n# Microbundle cache\n.rpt2_cache/\n.rts2_cache_cjs/\n.rts2_cache_es/\n.rts2_cache_umd/\n\n# Optional REPL history\n.node_repl_history\n\n# Output of 'npm pack'\n*.tgz\n\n# Yarn Integrity file\n.yarn-integrity\n\n# dotenv environment variables file\n.env\n.env.test\n\n# parcel-bundler cache (https://parceljs.org/)\n.cache\n.parcel-cache\n\n# Next.js build output\n.next\nout\n\n# Nuxt.js build / generate output\n.nuxt\ndist\n\n# Gatsby files\n.cache/\n# Comment in the public line in if your project uses Gatsby and not Next.js\n# https://nextjs.org/blog/next-9-1#public-directory-support\n# public\n\n# vuepress build output\n.vuepress/dist\n.vuepress/.temp\n.vuepress/.caches\ndocs/.vuepress/dist\ndocs/.vuepress/.temp\ndocs/.vuepress/.caches\n\n# Serverless directories\n.serverless/\n\n# FuseBox cache\n.fusebox/\n\n# DynamoDB Local files\n.dynamodb/\n\n# TernJS port file\n.tern-port\n\n# Stores VSCode versions used for testing VSCode extensions\n.vscode-test\n\n# yarn v2\n.yarn/cache\n.yarn/unplugged\n.yarn/build-state.yml\n.yarn/install-state.gz\n.pnp.*\n\n### VisualStudioCode template\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n*.code-workspace\n\n# Local History for Visual Studio Code\n.history/\n\n#package-lock.json\npackage-lock.json\n\n.data\nlib\n\n.DS_Store\n.claude\n"
  },
  {
    "path": ".gitpod.dockerfile",
    "content": "FROM gitpod/workspace-postgresql"
  },
  {
    "path": ".gitpod.yml",
    "content": "# This configuration file was automatically generated by Gitpod.\n# Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file)\n# and commit this file to your remote git repository to share the goodness with others.\nimage:\n  file: .gitpod.dockerfile\n  \ntasks:\n  - init: yarn install && yarn run build\n\n\n\n"
  },
  {
    "path": ".husky/.gitignore",
    "content": "_\n"
  },
  {
    "path": ".husky/pre-commit",
    "content": "#!/bin/sh\n. \"$(dirname \"$0\")/_/husky.sh\"\n\nnpx lint-staged\n"
  },
  {
    "path": ".prettierignore",
    "content": "**/CHANGELOG.md\n**/node_modules/**\n**/.*/**\n**/coverage/**\n**/dist/**\n*.d.ts\n**/.DS_Store\n*.ejs\n*.tgz\n*.cmd\n*.sh\ngenerate-project*.yaml\n*.proto\n*.ts.snap\nsourcemap-test-*.js\n"
  },
  {
    "path": ".prettierrc",
    "content": "{\n  \"printWidth\": 120,\n  \"trailingComma\": \"es5\",\n  \"tabWidth\": 2,\n  \"singleQuote\": true,\n  \"bracketSpacing\": false\n}\n"
  },
  {
    "path": ".yarn/releases/yarn-4.10.3.cjs",
    "content": "#!/usr/bin/env node\n/* eslint-disable */\n//prettier-ignore\n(()=>{var DGe=Object.create;var dU=Object.defineProperty;var PGe=Object.getOwnPropertyDescriptor;var bGe=Object.getOwnPropertyNames;var xGe=Object.getPrototypeOf,kGe=Object.prototype.hasOwnProperty;var Ie=(t=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(t,{get:(e,r)=>(typeof require<\"u\"?require:e)[r]}):t)(function(t){if(typeof require<\"u\")return require.apply(this,arguments);throw Error('Dynamic require of \"'+t+'\" is not supported')});var Ze=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Vt=(t,e)=>{for(var r in e)dU(t,r,{get:e[r],enumerable:!0})},QGe=(t,e,r,s)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let a of bGe(e))!kGe.call(t,a)&&a!==r&&dU(t,a,{get:()=>e[a],enumerable:!(s=PGe(e,a))||s.enumerable});return t};var ut=(t,e,r)=>(r=t!=null?DGe(xGe(t)):{},QGe(e||!t||!t.__esModule?dU(r,\"default\",{value:t,enumerable:!0}):r,t));var fi={};Vt(fi,{SAFE_TIME:()=>HX,S_IFDIR:()=>Jb,S_IFLNK:()=>Kb,S_IFMT:()=>Mf,S_IFREG:()=>N2});var Mf,Jb,N2,Kb,HX,jX=Ze(()=>{Mf=61440,Jb=16384,N2=32768,Kb=40960,HX=456789e3});var or={};Vt(or,{EBADF:()=>Mo,EBUSY:()=>RGe,EEXIST:()=>MGe,EINVAL:()=>FGe,EISDIR:()=>LGe,ENOENT:()=>NGe,ENOSYS:()=>TGe,ENOTDIR:()=>OGe,ENOTEMPTY:()=>_Ge,EOPNOTSUPP:()=>HGe,EROFS:()=>UGe,ERR_DIR_CLOSED:()=>mU});function Cc(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function RGe(t){return Cc(\"EBUSY\",t)}function TGe(t,e){return Cc(\"ENOSYS\",`${t}, ${e}`)}function FGe(t){return Cc(\"EINVAL\",`invalid argument, ${t}`)}function Mo(t){return Cc(\"EBADF\",`bad file descriptor, ${t}`)}function NGe(t){return Cc(\"ENOENT\",`no such file or directory, ${t}`)}function OGe(t){return Cc(\"ENOTDIR\",`not a directory, ${t}`)}function LGe(t){return Cc(\"EISDIR\",`illegal operation on a directory, ${t}`)}function MGe(t){return Cc(\"EEXIST\",`file already exists, ${t}`)}function UGe(t){return Cc(\"EROFS\",`read-only filesystem, ${t}`)}function _Ge(t){return Cc(\"ENOTEMPTY\",`directory not empty, ${t}`)}function HGe(t){return Cc(\"EOPNOTSUPP\",`operation not supported, ${t}`)}function mU(){return Cc(\"ERR_DIR_CLOSED\",\"Directory handle was closed\")}var zb=Ze(()=>{});var $a={};Vt($a,{BigIntStatsEntry:()=>iE,DEFAULT_MODE:()=>IU,DirEntry:()=>yU,StatEntry:()=>nE,areStatsEqual:()=>CU,clearStats:()=>Zb,convertToBigIntStats:()=>GGe,makeDefaultStats:()=>GX,makeEmptyStats:()=>jGe});function GX(){return new nE}function jGe(){return Zb(GX())}function Zb(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r==\"number\"?t[e]=0:typeof r==\"bigint\"?t[e]=BigInt(0):EU.types.isDate(r)&&(t[e]=new Date(0))}return t}function GGe(t){let e=new iE;for(let r in t)if(Object.hasOwn(t,r)){let s=t[r];typeof s==\"number\"?e[r]=BigInt(s):EU.types.isDate(s)&&(e[r]=new Date(s))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function CU(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,s=e;return!(r.atimeNs!==s.atimeNs||r.mtimeNs!==s.mtimeNs||r.ctimeNs!==s.ctimeNs||r.birthtimeNs!==s.birthtimeNs)}var EU,IU,yU,nE,iE,wU=Ze(()=>{EU=ut(Ie(\"util\")),IU=33188,yU=class{constructor(){this.name=\"\";this.path=\"\";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},nE=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=IU;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},iE=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(IU);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function JGe(t){let e,r;if(e=t.match(YGe))t=e[1];else if(r=t.match(VGe))t=`\\\\\\\\${r[1]?\".\\\\\":\"\"}${r[2]}`;else return t;return t.replace(/\\//g,\"\\\\\")}function KGe(t){t=t.replace(/\\\\/g,\"/\");let e,r;return(e=t.match(qGe))?t=`/${e[1]}`:(r=t.match(WGe))&&(t=`/unc/${r[1]?\".dot/\":\"\"}${r[2]}`),t}function Xb(t,e){return t===fe?WX(e):BU(e)}var O2,vt,Er,fe,J,qX,qGe,WGe,YGe,VGe,BU,WX,el=Ze(()=>{O2=ut(Ie(\"path\")),vt={root:\"/\",dot:\".\",parent:\"..\"},Er={home:\"~\",nodeModules:\"node_modules\",manifest:\"package.json\",lockfile:\"yarn.lock\",virtual:\"__virtual__\",pnpJs:\".pnp.js\",pnpCjs:\".pnp.cjs\",pnpData:\".pnp.data.json\",pnpEsmLoader:\".pnp.loader.mjs\",rc:\".yarnrc.yml\",env:\".env\"},fe=Object.create(O2.default),J=Object.create(O2.default.posix);fe.cwd=()=>process.cwd();J.cwd=process.platform===\"win32\"?()=>BU(process.cwd()):process.cwd;process.platform===\"win32\"&&(J.resolve=(...t)=>t.length>0&&J.isAbsolute(t[0])?O2.default.posix.resolve(...t):O2.default.posix.resolve(J.cwd(),...t));qX=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?\".\":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};fe.contains=(t,e)=>qX(fe,t,e);J.contains=(t,e)=>qX(J,t,e);qGe=/^([a-zA-Z]:.*)$/,WGe=/^\\/\\/(\\.\\/)?(.*)$/,YGe=/^\\/([a-zA-Z]:.*)$/,VGe=/^\\/unc\\/(\\.dot\\/)?(.*)$/;BU=process.platform===\"win32\"?KGe:t=>t,WX=process.platform===\"win32\"?JGe:t=>t;fe.fromPortablePath=WX;fe.toPortablePath=BU});async function $b(t,e){let r=\"0123456789abcdef\";await t.mkdirPromise(e.indexPath,{recursive:!0});let s=[];for(let a of r)for(let n of r)s.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(s),e.indexPath}async function YX(t,e,r,s,a){let n=t.pathUtils.normalize(e),c=r.pathUtils.normalize(s),f=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:dd,mtime:dd}:await r.lstatPromise(c);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await vU(f,p,t,n,r,c,{...a,didParentExist:!0});for(let C of f)await C();await Promise.all(p.map(C=>C()))}async function vU(t,e,r,s,a,n,c){let f=c.didParentExist?await VX(r,s):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=c.stableTime?{atime:dd,mtime:dd}:p,C;switch(!0){case p.isDirectory():C=await ZGe(t,e,r,s,f,a,n,p,c);break;case p.isFile():C=await eqe(t,e,r,s,f,a,n,p,c);break;case p.isSymbolicLink():C=await tqe(t,e,r,s,f,a,n,p,c);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(c.linkStrategy?.type!==\"HardlinkFromIndex\"||!p.isFile())&&((C||f?.mtime?.getTime()!==E.getTime()||f?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(s,h,E)),C=!0),(f===null||(f.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(s,p.mode&511)),C=!0)),C}async function VX(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function ZGe(t,e,r,s,a,n,c,f,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(s,{mode:f.mode})}catch(S){if(S.code!==\"EEXIST\")throw S}}),h=!0);let E=await n.readdirPromise(c),C=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let S of E.sort())await vU(t,e,r,r.pathUtils.join(s,S),n,n.pathUtils.join(c,S),C)&&(h=!0);else(await Promise.all(E.map(async b=>{await vU(t,e,r,r.pathUtils.join(s,b),n,n.pathUtils.join(c,b),C)}))).some(b=>b)&&(h=!0);return h}async function XGe(t,e,r,s,a,n,c,f,p,h){let E=await n.checksumFilePromise(c,{algorithm:\"sha1\"}),C=420,S=f.mode&511,b=`${E}${S!==C?S.toString(8):\"\"}`,I=r.pathUtils.join(h.indexPath,E.slice(0,2),`${b}.dat`),T;(le=>(le[le.Lock=0]=\"Lock\",le[le.Rename=1]=\"Rename\"))(T||={});let N=1,U=await VX(r,I);if(a){let ie=U&&a.dev===U.dev&&a.ino===U.ino,ue=U?.mtimeMs!==zGe;if(ie&&ue&&h.autoRepair&&(N=0,U=null),!ie)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1}let W=!U&&N===1?`${I}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,\"0\")}`:null,ee=!1;return t.push(async()=>{if(!U&&(N===0&&await r.lockPromise(I,async()=>{let ie=await n.readFilePromise(c);await r.writeFilePromise(I,ie)}),N===1&&W)){let ie=await n.readFilePromise(c);await r.writeFilePromise(W,ie);try{await r.linkPromise(W,I)}catch(ue){if(ue.code===\"EEXIST\")ee=!0,await r.unlinkPromise(W);else throw ue}}a||await r.linkPromise(I,s)}),e.push(async()=>{U||(await r.lutimesPromise(I,dd,dd),S!==C&&await r.chmodPromise(I,S)),W&&!ee&&await r.unlinkPromise(W)}),!1}async function $Ge(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(c);await r.writeFilePromise(s,h)}),!0}async function eqe(t,e,r,s,a,n,c,f,p){return p.linkStrategy?.type===\"HardlinkFromIndex\"?XGe(t,e,r,s,a,n,c,f,p,p.linkStrategy):$Ge(t,e,r,s,a,n,c,f,p)}async function tqe(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(Xb(r.pathUtils,await n.readlinkPromise(c)),s)}),!0}var dd,zGe,SU=Ze(()=>{el();dd=new Date(456789e3*1e3),zGe=dd.getTime()});function ex(t,e,r,s){let a=()=>{let n=r.shift();if(typeof n>\"u\")return null;let c=t.pathUtils.join(e,n);return Object.assign(t.statSync(c),{name:n,path:void 0})};return new L2(e,a,s)}var L2,JX=Ze(()=>{zb();L2=class{constructor(e,r,s={}){this.path=e;this.nextDirent=r;this.opts=s;this.closed=!1}throwIfClosed(){if(this.closed)throw mU()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<\"u\"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<\"u\"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function KX(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var zX,tx,ZX=Ze(()=>{zX=Ie(\"events\");wU();tx=class t extends zX.EventEmitter{constructor(r,s,{bigint:a=!1}={}){super();this.status=\"ready\";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=s,this.bigint=a,this.lastStats=this.stat()}static create(r,s,a){let n=new t(r,s,a);return n.start(),n}start(){KX(this.status,\"ready\"),this.status=\"running\",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit(\"change\",this.lastStats,this.lastStats)},3)}stop(){KX(this.status,\"running\"),this.status=\"stopped\",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit(\"stop\")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let r=this.bigint?new iE:new nE;return Zb(r)}}makeInterval(r){let s=setInterval(()=>{let a=this.stat(),n=this.lastStats;CU(a,n)||(this.lastStats=a,this.emit(\"change\",a,n))},r.interval);return r.persistent?s:s.unref()}registerChangeListener(r,s){this.addListener(\"change\",r),this.changeListeners.set(r,this.makeInterval(s))}unregisterChangeListener(r){this.removeListener(\"change\",r);let s=this.changeListeners.get(r);typeof s<\"u\"&&clearInterval(s),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function sE(t,e,r,s){let a,n,c,f;switch(typeof r){case\"function\":a=!1,n=!0,c=5007,f=r;break;default:({bigint:a=!1,persistent:n=!0,interval:c=5007}=r),f=s;break}let p=rx.get(t);typeof p>\"u\"&&rx.set(t,p=new Map);let h=p.get(e);return typeof h>\"u\"&&(h=tx.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(f,{persistent:n,interval:c}),h}function md(t,e,r){let s=rx.get(t);if(typeof s>\"u\")return;let a=s.get(e);typeof a>\"u\"||(typeof r>\"u\"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),s.delete(e)))}function yd(t){let e=rx.get(t);if(!(typeof e>\"u\"))for(let r of e.keys())md(t,r)}var rx,DU=Ze(()=>{ZX();rx=new WeakMap});function rqe(t){let e=t.match(/\\r?\\n/g);if(e===null)return $X.EOL;let r=e.filter(a=>a===`\\r\n`).length,s=e.length-r;return r>s?`\\r\n`:`\n`}function Ed(t,e){return e.replace(/\\r?\\n/g,rqe(t))}var XX,$X,mp,Uf,Id=Ze(()=>{XX=Ie(\"crypto\"),$X=Ie(\"os\");SU();el();mp=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let s=[e];for(;s.length>0;){let a=s.shift();if((await this.lstatPromise(a)).isDirectory()){let c=await this.readdirPromise(a);if(r)for(let f of c.sort())s.push(this.pathUtils.join(a,f));else throw new Error(\"Not supported\")}else yield a}}async checksumFilePromise(e,{algorithm:r=\"sha512\"}={}){let s=await this.openPromise(e,\"r\");try{let n=Buffer.allocUnsafeSlow(65536),c=(0,XX.createHash)(r),f=0;for(;(f=await this.readPromise(s,n,0,65536))!==0;)c.update(f===65536?n:n.slice(0,f));return c.digest(\"hex\")}finally{await this.closePromise(s)}}async removePromise(e,{recursive:r=!0,maxRetries:s=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code===\"ENOENT\")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(c=>this.removePromise(this.pathUtils.resolve(e,c))))}for(let n=0;n<=s;n++)try{await this.rmdirPromise(e);break}catch(c){if(c.code!==\"EBUSY\"&&c.code!==\"ENOTEMPTY\")throw c;n<s&&await new Promise(f=>setTimeout(f,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let s;try{s=this.lstatSync(e)}catch(a){if(a.code===\"ENOENT\")return;throw a}if(s.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{await this.mkdirPromise(f)}catch(p){if(p.code===\"EEXIST\")continue;throw p}if(n??=f,r!=null&&await this.chmodPromise(f,r),s!=null)await this.utimesPromise(f,s[0],s[1]);else{let p=await this.statPromise(this.pathUtils.dirname(f));await this.utimesPromise(f,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{this.mkdirSync(f)}catch(p){if(p.code===\"EEXIST\")continue;throw p}if(n??=f,r!=null&&this.chmodSync(f,r),s!=null)this.utimesSync(f,s[0],s[1]);else{let p=this.statSync(this.pathUtils.dirname(f));this.utimesSync(f,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:s=this,overwrite:a=!0,stableSort:n=!1,stableTime:c=!1,linkStrategy:f=null}={}){return await YX(this,e,s,r,{overwrite:a,stableSort:n,stableTime:c,linkStrategy:f})}copySync(e,r,{baseFs:s=this,overwrite:a=!0}={}){let n=s.lstatSync(r),c=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=s.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),s.pathUtils.join(r,h),{baseFs:s,overwrite:a})}else if(n.isFile()){if(!c||a){c&&this.removeSync(e);let p=s.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!c||a){c&&this.removeSync(e);let p=s.readlinkSync(r);this.symlinkSync(Xb(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,\"0\")})`);let f=n.mode&511;this.chmodSync(e,f)}async changeFilePromise(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,s):this.changeFileTextPromise(e,r,s)}async changeFileBufferPromise(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:s})}async changeFileTextPromise(e,r,{automaticNewlines:s,mode:a}={}){let n=\"\";try{n=await this.readFilePromise(e,\"utf8\")}catch{}let c=s?Ed(n,r):r;n!==c&&await this.writeFilePromise(e,c,{mode:a})}changeFileSync(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,s):this.changeFileTextSync(e,r,s)}changeFileBufferSync(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:s})}changeFileTextSync(e,r,{automaticNewlines:s=!1,mode:a}={}){let n=\"\";try{n=this.readFileSync(e,\"utf8\")}catch{}let c=s?Ed(n,r):r;n!==c&&this.writeFileSync(e,c,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(s){if(s.code===\"EXDEV\")await this.copyPromise(r,e),await this.removePromise(e);else throw s}}moveSync(e,r){try{this.renameSync(e,r)}catch(s){if(s.code===\"EXDEV\")this.copySync(r,e),this.removeSync(e);else throw s}}async lockPromise(e,r){let s=`${e}.flock`,a=1e3/60,n=Date.now(),c=null,f=async()=>{let p;try{[p]=await this.readJsonPromise(s)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;c===null;)try{c=await this.openPromise(s,\"wx\")}catch(p){if(p.code===\"EEXIST\"){if(!await f())try{await this.unlinkPromise(s);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${s})`)}else throw p}await this.writePromise(c,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(c),await this.unlinkPromise(s)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,\"utf8\");try{return JSON.parse(r)}catch(s){throw s.message+=` (in ${e})`,s}}readJsonSync(e){let r=this.readFileSync(e,\"utf8\");try{return JSON.parse(r)}catch(s){throw s.message+=` (in ${e})`,s}}async writeJsonPromise(e,r,{compact:s=!1}={}){let a=s?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)}\n`)}writeJsonSync(e,r,{compact:s=!1}={}){let a=s?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)}\n`)}async preserveTimePromise(e,r){let s=await this.lstatPromise(e),a=await r();typeof a<\"u\"&&(e=a),await this.lutimesPromise(e,s.atime,s.mtime)}async preserveTimeSync(e,r){let s=this.lstatSync(e),a=r();typeof a<\"u\"&&(e=a),this.lutimesSync(e,s.atime,s.mtime)}},Uf=class extends mp{constructor(){super(J)}}});var _s,yp=Ze(()=>{Id();_s=class extends mp{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,s){return this.baseFs.openPromise(this.mapToBase(e),r,s)}openSync(e,r,s){return this.baseFs.openSync(this.mapToBase(e),r,s)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,s,a,n){return await this.baseFs.readPromise(e,r,s,a,n)}readSync(e,r,s,a,n){return this.baseFs.readSync(e,r,s,a,n)}async writePromise(e,r,s,a,n){return typeof r==\"string\"?await this.baseFs.writePromise(e,r,s):await this.baseFs.writePromise(e,r,s,a,n)}writeSync(e,r,s,a,n){return typeof r==\"string\"?this.baseFs.writeSync(e,r,s):this.baseFs.writeSync(e,r,s,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,s){return this.baseFs.fchownPromise(e,r,s)}fchownSync(e,r,s){return this.baseFs.fchownSync(e,r,s)}async chownPromise(e,r,s){return this.baseFs.chownPromise(this.mapToBase(e),r,s)}chownSync(e,r,s){return this.baseFs.chownSync(this.mapToBase(e),r,s)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,s=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),s)}copyFileSync(e,r,s=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),s)}async appendFilePromise(e,r,s){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,s)}appendFileSync(e,r,s){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,s)}async writeFilePromise(e,r,s){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,s)}writeFileSync(e,r,s){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,s)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,s){return this.baseFs.utimesPromise(this.mapToBase(e),r,s)}utimesSync(e,r,s){return this.baseFs.utimesSync(this.mapToBase(e),r,s)}async lutimesPromise(e,r,s){return this.baseFs.lutimesPromise(this.mapToBase(e),r,s)}lutimesSync(e,r,s){return this.baseFs.lutimesSync(this.mapToBase(e),r,s)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),c=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(c,a,s)}symlinkSync(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),c=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(c,a,s)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,s){return this.baseFs.watch(this.mapToBase(e),r,s)}watchFile(e,r,s){return this.baseFs.watchFile(this.mapToBase(e),r,s)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e==\"number\"?e:this.mapToBase(e)}}});var _f,e$=Ze(()=>{yp();_f=class extends _s{constructor(e,{baseFs:r,pathUtils:s}){super(s),this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}});function t$(t){let e=t;return typeof t.path==\"string\"&&(e.path=fe.toPortablePath(t.path)),e}var r$,Yn,Cd=Ze(()=>{r$=ut(Ie(\"fs\"));Id();el();Yn=class extends Uf{constructor(e=r$.default){super(),this.realFs=e}getExtractHint(){return!1}getRealPath(){return vt.root}resolve(e){return J.resolve(e)}async openPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.open(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}openSync(e,r,s){return this.realFs.openSync(fe.fromPortablePath(e),r,s)}async opendirPromise(e,r){return await new Promise((s,a)=>{typeof r<\"u\"?this.realFs.opendir(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.opendir(fe.fromPortablePath(e),this.makeCallback(s,a))}).then(s=>{let a=s;return Object.defineProperty(a,\"path\",{value:e,configurable:!0,writable:!0}),a})}opendirSync(e,r){let a=typeof r<\"u\"?this.realFs.opendirSync(fe.fromPortablePath(e),r):this.realFs.opendirSync(fe.fromPortablePath(e));return Object.defineProperty(a,\"path\",{value:e,configurable:!0,writable:!0}),a}async readPromise(e,r,s=0,a=0,n=-1){return await new Promise((c,f)=>{this.realFs.read(e,r,s,a,n,(p,h)=>{p?f(p):c(h)})})}readSync(e,r,s,a,n){return this.realFs.readSync(e,r,s,a,n)}async writePromise(e,r,s,a,n){return await new Promise((c,f)=>typeof r==\"string\"?this.realFs.write(e,r,s,this.makeCallback(c,f)):this.realFs.write(e,r,s,a,n,this.makeCallback(c,f)))}writeSync(e,r,s,a,n){return typeof r==\"string\"?this.realFs.writeSync(e,r,s):this.realFs.writeSync(e,r,s,a,n)}async closePromise(e){await new Promise((r,s)=>{this.realFs.close(e,this.makeCallback(r,s))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let s=e!==null?fe.fromPortablePath(e):e;return this.realFs.createReadStream(s,r)}createWriteStream(e,r){let s=e!==null?fe.fromPortablePath(e):e;return this.realFs.createWriteStream(s,r)}async realpathPromise(e){return await new Promise((r,s)=>{this.realFs.realpath(fe.fromPortablePath(e),{},this.makeCallback(r,s))}).then(r=>fe.toPortablePath(r))}realpathSync(e){return fe.toPortablePath(this.realFs.realpathSync(fe.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(fe.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(fe.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((s,a)=>{this.realFs.access(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}existsSync(e){return this.realFs.existsSync(fe.fromPortablePath(e))}async statPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.stat(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.stat(fe.fromPortablePath(e),this.makeCallback(s,a))})}statSync(e,r){return r?this.realFs.statSync(fe.fromPortablePath(e),r):this.realFs.statSync(fe.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.fstat(e,r,this.makeCallback(s,a)):this.realFs.fstat(e,this.makeCallback(s,a))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.lstat(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.lstat(fe.fromPortablePath(e),this.makeCallback(s,a))})}lstatSync(e,r){return r?this.realFs.lstatSync(fe.fromPortablePath(e),r):this.realFs.lstatSync(fe.fromPortablePath(e))}async fchmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.fchmod(e,r,this.makeCallback(s,a))})}fchmodSync(e,r){return this.realFs.fchmodSync(e,r)}async chmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.chmod(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}chmodSync(e,r){return this.realFs.chmodSync(fe.fromPortablePath(e),r)}async fchownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.fchown(e,r,s,this.makeCallback(a,n))})}fchownSync(e,r,s){return this.realFs.fchownSync(e,r,s)}async chownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.chown(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}chownSync(e,r,s){return this.realFs.chownSync(fe.fromPortablePath(e),r,s)}async renamePromise(e,r){return await new Promise((s,a)=>{this.realFs.rename(fe.fromPortablePath(e),fe.fromPortablePath(r),this.makeCallback(s,a))})}renameSync(e,r){return this.realFs.renameSync(fe.fromPortablePath(e),fe.fromPortablePath(r))}async copyFilePromise(e,r,s=0){return await new Promise((a,n)=>{this.realFs.copyFile(fe.fromPortablePath(e),fe.fromPortablePath(r),s,this.makeCallback(a,n))})}copyFileSync(e,r,s=0){return this.realFs.copyFileSync(fe.fromPortablePath(e),fe.fromPortablePath(r),s)}async appendFilePromise(e,r,s){return await new Promise((a,n)=>{let c=typeof e==\"string\"?fe.fromPortablePath(e):e;s?this.realFs.appendFile(c,r,s,this.makeCallback(a,n)):this.realFs.appendFile(c,r,this.makeCallback(a,n))})}appendFileSync(e,r,s){let a=typeof e==\"string\"?fe.fromPortablePath(e):e;s?this.realFs.appendFileSync(a,r,s):this.realFs.appendFileSync(a,r)}async writeFilePromise(e,r,s){return await new Promise((a,n)=>{let c=typeof e==\"string\"?fe.fromPortablePath(e):e;s?this.realFs.writeFile(c,r,s,this.makeCallback(a,n)):this.realFs.writeFile(c,r,this.makeCallback(a,n))})}writeFileSync(e,r,s){let a=typeof e==\"string\"?fe.fromPortablePath(e):e;s?this.realFs.writeFileSync(a,r,s):this.realFs.writeFileSync(a,r)}async unlinkPromise(e){return await new Promise((r,s)=>{this.realFs.unlink(fe.fromPortablePath(e),this.makeCallback(r,s))})}unlinkSync(e){return this.realFs.unlinkSync(fe.fromPortablePath(e))}async utimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.utimes(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}utimesSync(e,r,s){this.realFs.utimesSync(fe.fromPortablePath(e),r,s)}async lutimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.lutimes(fe.fromPortablePath(e),r,s,this.makeCallback(a,n))})}lutimesSync(e,r,s){this.realFs.lutimesSync(fe.fromPortablePath(e),r,s)}async mkdirPromise(e,r){return await new Promise((s,a)=>{this.realFs.mkdir(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}mkdirSync(e,r){return this.realFs.mkdirSync(fe.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.rmdir(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.rmdir(fe.fromPortablePath(e),this.makeCallback(s,a))})}rmdirSync(e,r){return this.realFs.rmdirSync(fe.fromPortablePath(e),r)}async rmPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.rm(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.rm(fe.fromPortablePath(e),this.makeCallback(s,a))})}rmSync(e,r){return this.realFs.rmSync(fe.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((s,a)=>{this.realFs.link(fe.fromPortablePath(e),fe.fromPortablePath(r),this.makeCallback(s,a))})}linkSync(e,r){return this.realFs.linkSync(fe.fromPortablePath(e),fe.fromPortablePath(r))}async symlinkPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.symlink(fe.fromPortablePath(e.replace(/\\/+$/,\"\")),fe.fromPortablePath(r),s,this.makeCallback(a,n))})}symlinkSync(e,r,s){return this.realFs.symlinkSync(fe.fromPortablePath(e.replace(/\\/+$/,\"\")),fe.fromPortablePath(r),s)}async readFilePromise(e,r){return await new Promise((s,a)=>{let n=typeof e==\"string\"?fe.fromPortablePath(e):e;this.realFs.readFile(n,r,this.makeCallback(s,a))})}readFileSync(e,r){let s=typeof e==\"string\"?fe.fromPortablePath(e):e;return this.realFs.readFileSync(s,r)}async readdirPromise(e,r){return await new Promise((s,a)=>{r?r.recursive&&process.platform===\"win32\"?r.withFileTypes?this.realFs.readdir(fe.fromPortablePath(e),r,this.makeCallback(n=>s(n.map(t$)),a)):this.realFs.readdir(fe.fromPortablePath(e),r,this.makeCallback(n=>s(n.map(fe.toPortablePath)),a)):this.realFs.readdir(fe.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.readdir(fe.fromPortablePath(e),this.makeCallback(s,a))})}readdirSync(e,r){return r?r.recursive&&process.platform===\"win32\"?r.withFileTypes?this.realFs.readdirSync(fe.fromPortablePath(e),r).map(t$):this.realFs.readdirSync(fe.fromPortablePath(e),r).map(fe.toPortablePath):this.realFs.readdirSync(fe.fromPortablePath(e),r):this.realFs.readdirSync(fe.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,s)=>{this.realFs.readlink(fe.fromPortablePath(e),this.makeCallback(r,s))}).then(r=>fe.toPortablePath(r))}readlinkSync(e){return fe.toPortablePath(this.realFs.readlinkSync(fe.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((s,a)=>{this.realFs.truncate(fe.fromPortablePath(e),r,this.makeCallback(s,a))})}truncateSync(e,r){return this.realFs.truncateSync(fe.fromPortablePath(e),r)}async ftruncatePromise(e,r){return await new Promise((s,a)=>{this.realFs.ftruncate(e,r,this.makeCallback(s,a))})}ftruncateSync(e,r){return this.realFs.ftruncateSync(e,r)}watch(e,r,s){return this.realFs.watch(fe.fromPortablePath(e),r,s)}watchFile(e,r,s){return this.realFs.watchFile(fe.fromPortablePath(e),r,s)}unwatchFile(e,r){return this.realFs.unwatchFile(fe.fromPortablePath(e),r)}makeCallback(e,r){return(s,a)=>{s?r(s):e(a)}}}});var Sn,n$=Ze(()=>{Cd();yp();el();Sn=class extends _s{constructor(e,{baseFs:r=new Yn}={}){super(J),this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?J.normalize(e):this.baseFs.resolve(J.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}});var i$,Hf,s$=Ze(()=>{Cd();yp();el();i$=vt.root,Hf=class extends _s{constructor(e,{baseFs:r=new Yn}={}){super(J),this.target=this.pathUtils.resolve(vt.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(vt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(i$,e));if(r.match(/^\\.\\.\\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(i$,this.pathUtils.relative(this.target,e))}}});var oE,o$=Ze(()=>{yp();oE=class extends _s{constructor(r,s){super(s);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var wd,tl,e0,a$=Ze(()=>{wd=Ie(\"fs\");Id();Cd();DU();zb();el();tl=4278190080,e0=class extends Uf{constructor({baseFs:r=new Yn,filter:s=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:c=!0,maxAge:f=5e3,typeCheck:p=wd.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:C}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error(\"The magic byte must be set to a round value between 1 and 127 included\");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=c?new Map:null,this.factoryPromise=E,this.factorySync=C,this.filter=s,this.getMountPoint=h,this.magic=a<<24,this.maxAge=f,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(yd(this),this.mountInstances)for(let[r,{childFs:s}]of this.mountInstances.entries())s.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(yd(this),this.mountInstances)for(let[r,{childFs:s}]of this.mountInstances.entries())s.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,s){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,s]),a}async openPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,s,a),async(n,{subPath:c})=>this.remapFd(n,await n.openPromise(c,s,a)))}openSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,s,a),(n,{subPath:c})=>this.remapFd(n,n.openSync(c,s,a)))}async opendirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,s),async(a,{subPath:n})=>await a.opendirPromise(n,s),{requireSubpath:!1})}opendirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,s),(a,{subPath:n})=>a.opendirSync(n,s),{requireSubpath:!1})}async readPromise(r,s,a,n,c){if((r&tl)!==this.magic)return await this.baseFs.readPromise(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>\"u\")throw Mo(\"read\");let[p,h]=f;return await p.readPromise(h,s,a,n,c)}readSync(r,s,a,n,c){if((r&tl)!==this.magic)return this.baseFs.readSync(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>\"u\")throw Mo(\"readSync\");let[p,h]=f;return p.readSync(h,s,a,n,c)}async writePromise(r,s,a,n,c){if((r&tl)!==this.magic)return typeof s==\"string\"?await this.baseFs.writePromise(r,s,a):await this.baseFs.writePromise(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>\"u\")throw Mo(\"write\");let[p,h]=f;return typeof s==\"string\"?await p.writePromise(h,s,a):await p.writePromise(h,s,a,n,c)}writeSync(r,s,a,n,c){if((r&tl)!==this.magic)return typeof s==\"string\"?this.baseFs.writeSync(r,s,a):this.baseFs.writeSync(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>\"u\")throw Mo(\"writeSync\");let[p,h]=f;return typeof s==\"string\"?p.writeSync(h,s,a):p.writeSync(h,s,a,n,c)}async closePromise(r){if((r&tl)!==this.magic)return await this.baseFs.closePromise(r);let s=this.fdMap.get(r);if(typeof s>\"u\")throw Mo(\"close\");this.fdMap.delete(r);let[a,n]=s;return await a.closePromise(n)}closeSync(r){if((r&tl)!==this.magic)return this.baseFs.closeSync(r);let s=this.fdMap.get(r);if(typeof s>\"u\")throw Mo(\"closeSync\");this.fdMap.delete(r);let[a,n]=s;return a.closeSync(n)}createReadStream(r,s){return r===null?this.baseFs.createReadStream(r,s):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,s),(a,{archivePath:n,subPath:c})=>{let f=a.createReadStream(c,s);return f.path=fe.fromPortablePath(this.pathUtils.join(n,c)),f})}createWriteStream(r,s){return r===null?this.baseFs.createWriteStream(r,s):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,s),(a,{subPath:n})=>a.createWriteStream(n,s))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(s,{archivePath:a,subPath:n})=>{let c=this.realPaths.get(a);return typeof c>\"u\"&&(c=await this.baseFs.realpathPromise(a),this.realPaths.set(a,c)),this.pathUtils.join(c,this.pathUtils.relative(vt.root,await s.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(s,{archivePath:a,subPath:n})=>{let c=this.realPaths.get(a);return typeof c>\"u\"&&(c=this.baseFs.realpathSync(a),this.realPaths.set(a,c)),this.pathUtils.join(c,this.pathUtils.relative(vt.root,s.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(s,{subPath:a})=>await s.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(s,{subPath:a})=>s.existsSync(a))}async accessPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,s),async(a,{subPath:n})=>await a.accessPromise(n,s))}accessSync(r,s){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,s),(a,{subPath:n})=>a.accessSync(n,s))}async statPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,s),async(a,{subPath:n})=>await a.statPromise(n,s))}statSync(r,s){return this.makeCallSync(r,()=>this.baseFs.statSync(r,s),(a,{subPath:n})=>a.statSync(n,s))}async fstatPromise(r,s){if((r&tl)!==this.magic)return this.baseFs.fstatPromise(r,s);let a=this.fdMap.get(r);if(typeof a>\"u\")throw Mo(\"fstat\");let[n,c]=a;return n.fstatPromise(c,s)}fstatSync(r,s){if((r&tl)!==this.magic)return this.baseFs.fstatSync(r,s);let a=this.fdMap.get(r);if(typeof a>\"u\")throw Mo(\"fstatSync\");let[n,c]=a;return n.fstatSync(c,s)}async lstatPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,s),async(a,{subPath:n})=>await a.lstatPromise(n,s))}lstatSync(r,s){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,s),(a,{subPath:n})=>a.lstatSync(n,s))}async fchmodPromise(r,s){if((r&tl)!==this.magic)return this.baseFs.fchmodPromise(r,s);let a=this.fdMap.get(r);if(typeof a>\"u\")throw Mo(\"fchmod\");let[n,c]=a;return n.fchmodPromise(c,s)}fchmodSync(r,s){if((r&tl)!==this.magic)return this.baseFs.fchmodSync(r,s);let a=this.fdMap.get(r);if(typeof a>\"u\")throw Mo(\"fchmodSync\");let[n,c]=a;return n.fchmodSync(c,s)}async chmodPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,s),async(a,{subPath:n})=>await a.chmodPromise(n,s))}chmodSync(r,s){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,s),(a,{subPath:n})=>a.chmodSync(n,s))}async fchownPromise(r,s,a){if((r&tl)!==this.magic)return this.baseFs.fchownPromise(r,s,a);let n=this.fdMap.get(r);if(typeof n>\"u\")throw Mo(\"fchown\");let[c,f]=n;return c.fchownPromise(f,s,a)}fchownSync(r,s,a){if((r&tl)!==this.magic)return this.baseFs.fchownSync(r,s,a);let n=this.fdMap.get(r);if(typeof n>\"u\")throw Mo(\"fchownSync\");let[c,f]=n;return c.fchownSync(f,s,a)}async chownPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,s,a),async(n,{subPath:c})=>await n.chownPromise(c,s,a))}chownSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,s,a),(n,{subPath:c})=>n.chownSync(c,s,a))}async renamePromise(r,s){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(s,async()=>await this.baseFs.renamePromise(r,s),async()=>{throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"})}),async(a,{subPath:n})=>await this.makeCallPromise(s,async()=>{throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"})},async(c,{subPath:f})=>{if(a!==c)throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"});return await a.renamePromise(n,f)}))}renameSync(r,s){return this.makeCallSync(r,()=>this.makeCallSync(s,()=>this.baseFs.renameSync(r,s),()=>{throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"})}),(a,{subPath:n})=>this.makeCallSync(s,()=>{throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"})},(c,{subPath:f})=>{if(a!==c)throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"});return a.renameSync(n,f)}))}async copyFilePromise(r,s,a=0){let n=async(c,f,p,h)=>{if(a&wd.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${f}' -> ${h}'`),{code:\"EXDEV\"});if(a&wd.constants.COPYFILE_EXCL&&await this.existsPromise(f))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${f}' -> '${h}'`),{code:\"EEXIST\"});let E;try{E=await c.readFilePromise(f)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${f}' -> '${h}'`),{code:\"EINVAL\"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(s,async()=>await this.baseFs.copyFilePromise(r,s,a),async(c,{subPath:f})=>await n(this.baseFs,r,c,f)),async(c,{subPath:f})=>await this.makeCallPromise(s,async()=>await n(c,f,this.baseFs,s),async(p,{subPath:h})=>c!==p?await n(c,f,p,h):await c.copyFilePromise(f,h,a)))}copyFileSync(r,s,a=0){let n=(c,f,p,h)=>{if(a&wd.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${f}' -> ${h}'`),{code:\"EXDEV\"});if(a&wd.constants.COPYFILE_EXCL&&this.existsSync(f))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${f}' -> '${h}'`),{code:\"EEXIST\"});let E;try{E=c.readFileSync(f)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${f}' -> '${h}'`),{code:\"EINVAL\"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(s,()=>this.baseFs.copyFileSync(r,s,a),(c,{subPath:f})=>n(this.baseFs,r,c,f)),(c,{subPath:f})=>this.makeCallSync(s,()=>n(c,f,this.baseFs,s),(p,{subPath:h})=>c!==p?n(c,f,p,h):c.copyFileSync(f,h,a)))}async appendFilePromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,s,a),async(n,{subPath:c})=>await n.appendFilePromise(c,s,a))}appendFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,s,a),(n,{subPath:c})=>n.appendFileSync(c,s,a))}async writeFilePromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,s,a),async(n,{subPath:c})=>await n.writeFilePromise(c,s,a))}writeFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,s,a),(n,{subPath:c})=>n.writeFileSync(c,s,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(s,{subPath:a})=>await s.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(s,{subPath:a})=>s.unlinkSync(a))}async utimesPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,s,a),async(n,{subPath:c})=>await n.utimesPromise(c,s,a))}utimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,s,a),(n,{subPath:c})=>n.utimesSync(c,s,a))}async lutimesPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,s,a),async(n,{subPath:c})=>await n.lutimesPromise(c,s,a))}lutimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,s,a),(n,{subPath:c})=>n.lutimesSync(c,s,a))}async mkdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,s),async(a,{subPath:n})=>await a.mkdirPromise(n,s))}mkdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,s),(a,{subPath:n})=>a.mkdirSync(n,s))}async rmdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,s),async(a,{subPath:n})=>await a.rmdirPromise(n,s))}rmdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,s),(a,{subPath:n})=>a.rmdirSync(n,s))}async rmPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.rmPromise(r,s),async(a,{subPath:n})=>await a.rmPromise(n,s))}rmSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmSync(r,s),(a,{subPath:n})=>a.rmSync(n,s))}async linkPromise(r,s){return await this.makeCallPromise(s,async()=>await this.baseFs.linkPromise(r,s),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,s){return this.makeCallSync(s,()=>this.baseFs.linkSync(r,s),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,s,a){return await this.makeCallPromise(s,async()=>await this.baseFs.symlinkPromise(r,s,a),async(n,{subPath:c})=>await n.symlinkPromise(r,c))}symlinkSync(r,s,a){return this.makeCallSync(s,()=>this.baseFs.symlinkSync(r,s,a),(n,{subPath:c})=>n.symlinkSync(r,c))}async readFilePromise(r,s){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,s),async(a,{subPath:n})=>await a.readFilePromise(n,s))}readFileSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,s),(a,{subPath:n})=>a.readFileSync(n,s))}async readdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,s),async(a,{subPath:n})=>await a.readdirPromise(n,s),{requireSubpath:!1})}readdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,s),(a,{subPath:n})=>a.readdirSync(n,s),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(s,{subPath:a})=>await s.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(s,{subPath:a})=>s.readlinkSync(a))}async truncatePromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,s),async(a,{subPath:n})=>await a.truncatePromise(n,s))}truncateSync(r,s){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,s),(a,{subPath:n})=>a.truncateSync(n,s))}async ftruncatePromise(r,s){if((r&tl)!==this.magic)return this.baseFs.ftruncatePromise(r,s);let a=this.fdMap.get(r);if(typeof a>\"u\")throw Mo(\"ftruncate\");let[n,c]=a;return n.ftruncatePromise(c,s)}ftruncateSync(r,s){if((r&tl)!==this.magic)return this.baseFs.ftruncateSync(r,s);let a=this.fdMap.get(r);if(typeof a>\"u\")throw Mo(\"ftruncateSync\");let[n,c]=a;return n.ftruncateSync(c,s)}watch(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,s,a),(n,{subPath:c})=>n.watch(c,s,a))}watchFile(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,s,a),()=>sE(this,r,s,a))}unwatchFile(r,s){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,s),()=>md(this,r,s))}async makeCallPromise(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!=\"string\")return await s();let c=this.resolve(r),f=this.findMount(c);return f?n&&f.subPath===\"/\"?await s():await this.getMountPromise(f.archivePath,async p=>await a(p,f)):await s()}makeCallSync(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!=\"string\")return s();let c=this.resolve(r),f=this.findMount(c);return!f||n&&f.subPath===\"/\"?s():this.getMountSync(f.archivePath,p=>a(p,f))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let s=\"\";for(;;){let a=r.substring(s.length),n=this.getMountPoint(a,s);if(!n)return null;if(s=this.pathUtils.join(s,n),!this.isMount.has(s)){if(this.notMount.has(s))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(s).mode&wd.constants.S_IFMT)!==this.typeCheck){this.notMount.add(s);continue}}catch{return null}this.isMount.add(s)}return{archivePath:s,subPath:this.pathUtils.join(vt.root,r.substring(s.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let s=Date.now(),a=s+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[c,{childFs:f,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||f.hasOpenFileHandles?.())){if(s>=p){f.saveAndClose?.(),this.mountInstances.delete(c),n-=1;continue}else if(r===null||n<=0){a=p;break}f.saveAndClose?.(),this.mountInstances.delete(c),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-s).unref())}async getMountPromise(r,s){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await s(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await s(a)}finally{a.saveAndClose?.()}}}getMountSync(r,s){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,s(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return s(a)}finally{a.saveAndClose?.()}}}}});var er,nx,l$=Ze(()=>{Id();el();er=()=>Object.assign(new Error(\"ENOSYS: unsupported filesystem access\"),{code:\"ENOSYS\"}),nx=class t extends mp{static{this.instance=new t}constructor(){super(J)}getExtractHint(){throw er()}getRealPath(){throw er()}resolve(){throw er()}async openPromise(){throw er()}openSync(){throw er()}async opendirPromise(){throw er()}opendirSync(){throw er()}async readPromise(){throw er()}readSync(){throw er()}async writePromise(){throw er()}writeSync(){throw er()}async closePromise(){throw er()}closeSync(){throw er()}createWriteStream(){throw er()}createReadStream(){throw er()}async realpathPromise(){throw er()}realpathSync(){throw er()}async readdirPromise(){throw er()}readdirSync(){throw er()}async existsPromise(e){throw er()}existsSync(e){throw er()}async accessPromise(){throw er()}accessSync(){throw er()}async statPromise(){throw er()}statSync(){throw er()}async fstatPromise(e){throw er()}fstatSync(e){throw er()}async lstatPromise(e){throw er()}lstatSync(e){throw er()}async fchmodPromise(){throw er()}fchmodSync(){throw er()}async chmodPromise(){throw er()}chmodSync(){throw er()}async fchownPromise(){throw er()}fchownSync(){throw er()}async chownPromise(){throw er()}chownSync(){throw er()}async mkdirPromise(){throw er()}mkdirSync(){throw er()}async rmdirPromise(){throw er()}rmdirSync(){throw er()}async rmPromise(){throw er()}rmSync(){throw er()}async linkPromise(){throw er()}linkSync(){throw er()}async symlinkPromise(){throw er()}symlinkSync(){throw er()}async renamePromise(){throw er()}renameSync(){throw er()}async copyFilePromise(){throw er()}copyFileSync(){throw er()}async appendFilePromise(){throw er()}appendFileSync(){throw er()}async writeFilePromise(){throw er()}writeFileSync(){throw er()}async unlinkPromise(){throw er()}unlinkSync(){throw er()}async utimesPromise(){throw er()}utimesSync(){throw er()}async lutimesPromise(){throw er()}lutimesSync(){throw er()}async readFilePromise(){throw er()}readFileSync(){throw er()}async readlinkPromise(){throw er()}readlinkSync(){throw er()}async truncatePromise(){throw er()}truncateSync(){throw er()}async ftruncatePromise(e,r){throw er()}ftruncateSync(e,r){throw er()}watch(){throw er()}watchFile(){throw er()}unwatchFile(){throw er()}}});var t0,c$=Ze(()=>{yp();el();t0=class extends _s{constructor(e){super(fe),this.baseFs=e}mapFromBase(e){return fe.fromPortablePath(e)}mapToBase(e){return fe.toPortablePath(e)}}});var nqe,PU,iqe,uo,u$=Ze(()=>{Cd();yp();el();nqe=/^[0-9]+$/,PU=/^(\\/(?:[^/]+\\/)*?(?:\\$\\$virtual|__virtual__))((?:\\/((?:[^/]+-)?[a-f0-9]+)(?:\\/([^/]+))?)?((?:\\/.*)?))$/,iqe=/^([^/]+-)?[a-f0-9]+$/,uo=class t extends _s{static makeVirtualPath(e,r,s){if(J.basename(e)!==\"__virtual__\")throw new Error('Assertion failed: Virtual folders must be named \"__virtual__\"');if(!J.basename(r).match(iqe))throw new Error(\"Assertion failed: Virtual components must be ended by an hexadecimal hash\");let n=J.relative(J.dirname(e),s).split(\"/\"),c=0;for(;c<n.length&&n[c]===\"..\";)c+=1;let f=n.slice(c);return J.join(e,r,String(c),...f)}static resolveVirtual(e){let r=e.match(PU);if(!r||!r[3]&&r[5])return e;let s=J.dirname(r[1]);if(!r[3]||!r[4])return s;if(!nqe.test(r[4]))return e;let n=Number(r[4]),c=\"../\".repeat(n),f=r[5]||\".\";return t.resolveVirtual(J.join(s,c,f))}constructor({baseFs:e=new Yn}={}){super(J),this.baseFs=e}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(e){let r=e.match(PU);if(!r)return this.baseFs.realpathSync(e);if(!r[5])return e;let s=this.baseFs.realpathSync(this.mapToBase(e));return t.makeVirtualPath(r[1],r[3],s)}async realpathPromise(e){let r=e.match(PU);if(!r)return await this.baseFs.realpathPromise(e);if(!r[5])return e;let s=await this.baseFs.realpathPromise(this.mapToBase(e));return t.makeVirtualPath(r[1],r[3],s)}mapToBase(e){if(e===\"\")return e;if(this.pathUtils.isAbsolute(e))return t.resolveVirtual(e);let r=t.resolveVirtual(this.baseFs.resolve(vt.dot)),s=t.resolveVirtual(this.baseFs.resolve(e));return J.relative(r,s)||vt.dot}mapFromBase(e){return e}}});function sqe(t,e){return typeof bU.default.isUtf8<\"u\"?bU.default.isUtf8(t):Buffer.byteLength(e)===t.byteLength}var bU,f$,A$,ix,p$=Ze(()=>{bU=ut(Ie(\"buffer\")),f$=Ie(\"url\"),A$=Ie(\"util\");yp();el();ix=class extends _s{constructor(e){super(fe),this.baseFs=e}mapFromBase(e){return e}mapToBase(e){if(typeof e==\"string\")return e;if(e instanceof URL)return(0,f$.fileURLToPath)(e);if(Buffer.isBuffer(e)){let r=e.toString();if(!sqe(e,r))throw new Error(\"Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942\");return r}throw new Error(`Unsupported path type: ${(0,A$.inspect)(e)}`)}}});var y$,Uo,Ep,r0,sx,ox,aE,Tu,Fu,h$,g$,d$,m$,M2,E$=Ze(()=>{y$=Ie(\"readline\"),Uo=Symbol(\"kBaseFs\"),Ep=Symbol(\"kFd\"),r0=Symbol(\"kClosePromise\"),sx=Symbol(\"kCloseResolve\"),ox=Symbol(\"kCloseReject\"),aE=Symbol(\"kRefs\"),Tu=Symbol(\"kRef\"),Fu=Symbol(\"kUnref\"),M2=class{constructor(e,r){this[m$]=1;this[d$]=void 0;this[g$]=void 0;this[h$]=void 0;this[Uo]=r,this[Ep]=e}get fd(){return this[Ep]}async appendFile(e,r){try{this[Tu](this.appendFile);let s=(typeof r==\"string\"?r:r?.encoding)??void 0;return await this[Uo].appendFilePromise(this.fd,e,s?{encoding:s}:void 0)}finally{this[Fu]()}}async chown(e,r){try{return this[Tu](this.chown),await this[Uo].fchownPromise(this.fd,e,r)}finally{this[Fu]()}}async chmod(e){try{return this[Tu](this.chmod),await this[Uo].fchmodPromise(this.fd,e)}finally{this[Fu]()}}createReadStream(e){return this[Uo].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Uo].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error(\"Method not implemented.\")}sync(){throw new Error(\"Method not implemented.\")}async read(e,r,s,a){try{this[Tu](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??={},n=e.buffer??Buffer.alloc(16384),r=e.offset||0,s=e.length??n.byteLength,a=e.position??null),r??=0,s??=0,s===0?{bytesRead:s,buffer:n}:{bytesRead:await this[Uo].readPromise(this.fd,n,r,s,a),buffer:n}}finally{this[Fu]()}}async readFile(e){try{this[Tu](this.readFile);let r=(typeof e==\"string\"?e:e?.encoding)??void 0;return await this[Uo].readFilePromise(this.fd,r)}finally{this[Fu]()}}readLines(e){return(0,y$.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Tu](this.stat),await this[Uo].fstatPromise(this.fd,e)}finally{this[Fu]()}}async truncate(e){try{return this[Tu](this.truncate),await this[Uo].ftruncatePromise(this.fd,e)}finally{this[Fu]()}}utimes(e,r){throw new Error(\"Method not implemented.\")}async writeFile(e,r){try{this[Tu](this.writeFile);let s=(typeof r==\"string\"?r:r?.encoding)??void 0;await this[Uo].writeFilePromise(this.fd,e,s)}finally{this[Fu]()}}async write(...e){try{if(this[Tu](this.write),ArrayBuffer.isView(e[0])){let[r,s,a,n]=e;return{bytesWritten:await this[Uo].writePromise(this.fd,r,s??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,s,a]=e;return{bytesWritten:await this[Uo].writePromise(this.fd,r,s,a),buffer:r}}}finally{this[Fu]()}}async writev(e,r){try{this[Tu](this.writev);let s=0;if(typeof r<\"u\")for(let a of e){let n=await this.write(a,void 0,void 0,r);s+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);s+=n.bytesWritten}return{buffers:e,bytesWritten:s}}finally{this[Fu]()}}readv(e,r){throw new Error(\"Method not implemented.\")}close(){if(this[Ep]===-1)return Promise.resolve();if(this[r0])return this[r0];if(this[aE]--,this[aE]===0){let e=this[Ep];this[Ep]=-1,this[r0]=this[Uo].closePromise(e).finally(()=>{this[r0]=void 0})}else this[r0]=new Promise((e,r)=>{this[sx]=e,this[ox]=r}).finally(()=>{this[r0]=void 0,this[ox]=void 0,this[sx]=void 0});return this[r0]}[(Uo,Ep,m$=aE,d$=r0,g$=sx,h$=ox,Tu)](e){if(this[Ep]===-1){let r=new Error(\"file closed\");throw r.code=\"EBADF\",r.syscall=e.name,r}this[aE]++}[Fu](){if(this[aE]--,this[aE]===0){let e=this[Ep];this[Ep]=-1,this[Uo].closePromise(e).then(this[sx],this[ox])}}}});function U2(t,e){e=new ix(e);let r=(s,a,n)=>{let c=s[a];s[a]=n,typeof c?.[lE.promisify.custom]<\"u\"&&(n[lE.promisify.custom]=c[lE.promisify.custom])};{r(t,\"exists\",(s,...a)=>{let c=typeof a[a.length-1]==\"function\"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(s).then(f=>{c(f)},()=>{c(!1)})})}),r(t,\"read\",(...s)=>{let[a,n,c,f,p,h]=s;if(s.length<=3){let E={};s.length<3?h=s[1]:(E=s[1],h=s[2]),{buffer:n=Buffer.alloc(16384),offset:c=0,length:f=n.byteLength,position:p}=E}if(c==null&&(c=0),f|=0,f===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,c,f,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let s of I$){let a=s.replace(/Promise$/,\"\");if(typeof t[a]>\"u\")continue;let n=e[s];if(typeof n>\"u\")continue;r(t,a,(...f)=>{let h=typeof f[f.length-1]==\"function\"?f.pop():()=>{};process.nextTick(()=>{n.apply(e,f).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,\"existsSync\",s=>{try{return e.existsSync(s)}catch{return!1}}),r(t,\"readSync\",(...s)=>{let[a,n,c,f,p]=s;return s.length<=3&&({offset:c=0,length:f=n.byteLength,position:p}=s[2]||{}),c==null&&(c=0),f|=0,f===0?0:(p==null&&(p=-1),e.readSync(a,n,c,f,p))});for(let s of oqe){let a=s;if(typeof t[a]>\"u\")continue;let n=e[s];typeof n>\"u\"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let s=t.promises;for(let a of I$){let n=a.replace(/Promise$/,\"\");if(typeof s[n]>\"u\")continue;let c=e[a];typeof c>\"u\"||a!==\"open\"&&r(s,n,(f,...p)=>f instanceof M2?f[n].apply(f,p):c.call(e,f,...p))}r(s,\"open\",async(...a)=>{let n=await e.openPromise(...a);return new M2(n,e)})}t.read[lE.promisify.custom]=async(s,a,...n)=>({bytesRead:await e.readPromise(s,a,...n),buffer:a}),t.write[lE.promisify.custom]=async(s,a,...n)=>({bytesWritten:await e.writePromise(s,a,...n),buffer:a})}function ax(t,e){let r=Object.create(t);return U2(r,e),r}var lE,oqe,I$,C$=Ze(()=>{lE=Ie(\"util\");p$();E$();oqe=new Set([\"accessSync\",\"appendFileSync\",\"createReadStream\",\"createWriteStream\",\"chmodSync\",\"fchmodSync\",\"chownSync\",\"fchownSync\",\"closeSync\",\"copyFileSync\",\"linkSync\",\"lstatSync\",\"fstatSync\",\"lutimesSync\",\"mkdirSync\",\"openSync\",\"opendirSync\",\"readlinkSync\",\"readFileSync\",\"readdirSync\",\"readlinkSync\",\"realpathSync\",\"renameSync\",\"rmdirSync\",\"rmSync\",\"statSync\",\"symlinkSync\",\"truncateSync\",\"ftruncateSync\",\"unlinkSync\",\"unwatchFile\",\"utimesSync\",\"watch\",\"watchFile\",\"writeFileSync\",\"writeSync\"]),I$=new Set([\"accessPromise\",\"appendFilePromise\",\"fchmodPromise\",\"chmodPromise\",\"fchownPromise\",\"chownPromise\",\"closePromise\",\"copyFilePromise\",\"linkPromise\",\"fstatPromise\",\"lstatPromise\",\"lutimesPromise\",\"mkdirPromise\",\"openPromise\",\"opendirPromise\",\"readdirPromise\",\"realpathPromise\",\"readFilePromise\",\"readdirPromise\",\"readlinkPromise\",\"renamePromise\",\"rmdirPromise\",\"rmPromise\",\"statPromise\",\"symlinkPromise\",\"truncatePromise\",\"ftruncatePromise\",\"unlinkPromise\",\"utimesPromise\",\"writeFilePromise\",\"writeSync\"])});function w$(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,\"0\");return`${t}${e}`}function B$(){if(xU)return xU;let t=fe.toPortablePath(v$.default.tmpdir()),e=ce.realpathSync(t);return process.once(\"exit\",()=>{ce.rmtempSync()}),xU={tmpdir:t,realTmpdir:e}}var v$,Nu,xU,ce,S$=Ze(()=>{v$=ut(Ie(\"os\"));Cd();el();Nu=new Set,xU=null;ce=Object.assign(new Yn,{detachTemp(t){Nu.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=B$();for(;;){let s=w$(\"xfs-\");try{this.mkdirSync(J.join(e,s))}catch(n){if(n.code===\"EEXIST\")continue;throw n}let a=J.join(r,s);if(Nu.add(a),typeof t>\"u\")return a;try{return t(a)}finally{if(Nu.has(a)){Nu.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=B$();for(;;){let s=w$(\"xfs-\");try{await this.mkdirPromise(J.join(e,s))}catch(n){if(n.code===\"EEXIST\")continue;throw n}let a=J.join(r,s);if(Nu.add(a),typeof t>\"u\")return a;try{return await t(a)}finally{if(Nu.has(a)){Nu.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Nu.values()).map(async t=>{try{await ce.removePromise(t,{maxRetries:0}),Nu.delete(t)}catch{}}))},rmtempSync(){for(let t of Nu)try{ce.removeSync(t),Nu.delete(t)}catch{}}})});var _2={};Vt(_2,{AliasFS:()=>_f,BasePortableFakeFS:()=>Uf,CustomDir:()=>L2,CwdFS:()=>Sn,FakeFS:()=>mp,Filename:()=>Er,JailFS:()=>Hf,LazyFS:()=>oE,MountFS:()=>e0,NoFS:()=>nx,NodeFS:()=>Yn,PortablePath:()=>vt,PosixFS:()=>t0,ProxiedFS:()=>_s,VirtualFS:()=>uo,constants:()=>fi,errors:()=>or,extendFs:()=>ax,normalizeLineEndings:()=>Ed,npath:()=>fe,opendir:()=>ex,patchFs:()=>U2,ppath:()=>J,setupCopyIndex:()=>$b,statUtils:()=>$a,unwatchAllFiles:()=>yd,unwatchFile:()=>md,watchFile:()=>sE,xfs:()=>ce});var Dt=Ze(()=>{jX();zb();wU();SU();JX();DU();Id();el();el();e$();Id();n$();s$();o$();a$();l$();Cd();c$();yp();u$();C$();S$()});var k$=_((mkt,x$)=>{x$.exports=b$;b$.sync=lqe;var D$=Ie(\"fs\");function aqe(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(\";\"),r.indexOf(\"\")!==-1))return!0;for(var s=0;s<r.length;s++){var a=r[s].toLowerCase();if(a&&t.substr(-a.length).toLowerCase()===a)return!0}return!1}function P$(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:aqe(e,r)}function b$(t,e,r){D$.stat(t,function(s,a){r(s,s?!1:P$(a,t,e))})}function lqe(t,e){return P$(D$.statSync(t),t,e)}});var N$=_((ykt,F$)=>{F$.exports=R$;R$.sync=cqe;var Q$=Ie(\"fs\");function R$(t,e,r){Q$.stat(t,function(s,a){r(s,s?!1:T$(a,e))})}function cqe(t,e){return T$(Q$.statSync(t),e)}function T$(t,e){return t.isFile()&&uqe(t,e)}function uqe(t,e){var r=t.mode,s=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),c=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),f=parseInt(\"100\",8),p=parseInt(\"010\",8),h=parseInt(\"001\",8),E=f|p,C=r&h||r&p&&a===c||r&f&&s===n||r&E&&n===0;return C}});var L$=_((Ikt,O$)=>{var Ekt=Ie(\"fs\"),lx;process.platform===\"win32\"||global.TESTING_WINDOWS?lx=k$():lx=N$();O$.exports=kU;kU.sync=fqe;function kU(t,e,r){if(typeof e==\"function\"&&(r=e,e={}),!r){if(typeof Promise!=\"function\")throw new TypeError(\"callback not provided\");return new Promise(function(s,a){kU(t,e||{},function(n,c){n?a(n):s(c)})})}lx(t,e||{},function(s,a){s&&(s.code===\"EACCES\"||e&&e.ignoreErrors)&&(s=null,a=!1),r(s,a)})}function fqe(t,e){try{return lx.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code===\"EACCES\")return!1;throw r}}});var q$=_((Ckt,G$)=>{var cE=process.platform===\"win32\"||process.env.OSTYPE===\"cygwin\"||process.env.OSTYPE===\"msys\",M$=Ie(\"path\"),Aqe=cE?\";\":\":\",U$=L$(),_$=t=>Object.assign(new Error(`not found: ${t}`),{code:\"ENOENT\"}),H$=(t,e)=>{let r=e.colon||Aqe,s=t.match(/\\//)||cE&&t.match(/\\\\/)?[\"\"]:[...cE?[process.cwd()]:[],...(e.path||process.env.PATH||\"\").split(r)],a=cE?e.pathExt||process.env.PATHEXT||\".EXE;.CMD;.BAT;.COM\":\"\",n=cE?a.split(r):[\"\"];return cE&&t.indexOf(\".\")!==-1&&n[0]!==\"\"&&n.unshift(\"\"),{pathEnv:s,pathExt:n,pathExtExe:a}},j$=(t,e,r)=>{typeof e==\"function\"&&(r=e,e={}),e||(e={});let{pathEnv:s,pathExt:a,pathExtExe:n}=H$(t,e),c=[],f=h=>new Promise((E,C)=>{if(h===s.length)return e.all&&c.length?E(c):C(_$(t));let S=s[h],b=/^\".*\"$/.test(S)?S.slice(1,-1):S,I=M$.join(b,t),T=!b&&/^\\.[\\\\\\/]/.test(t)?t.slice(0,2)+I:I;E(p(T,h,0))}),p=(h,E,C)=>new Promise((S,b)=>{if(C===a.length)return S(f(E+1));let I=a[C];U$(h+I,{pathExt:n},(T,N)=>{if(!T&&N)if(e.all)c.push(h+I);else return S(h+I);return S(p(h,E,C+1))})});return r?f(0).then(h=>r(null,h),r):f(0)},pqe=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:s,pathExtExe:a}=H$(t,e),n=[];for(let c=0;c<r.length;c++){let f=r[c],p=/^\".*\"$/.test(f)?f.slice(1,-1):f,h=M$.join(p,t),E=!p&&/^\\.[\\\\\\/]/.test(t)?t.slice(0,2)+h:h;for(let C=0;C<s.length;C++){let S=E+s[C];try{if(U$.sync(S,{pathExt:a}))if(e.all)n.push(S);else return S}catch{}}}if(e.all&&n.length)return n;if(e.nothrow)return null;throw _$(t)};G$.exports=j$;j$.sync=pqe});var Y$=_((wkt,QU)=>{\"use strict\";var W$=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!==\"win32\"?\"PATH\":Object.keys(e).reverse().find(s=>s.toUpperCase()===\"PATH\")||\"Path\"};QU.exports=W$;QU.exports.default=W$});var z$=_((Bkt,K$)=>{\"use strict\";var V$=Ie(\"path\"),hqe=q$(),gqe=Y$();function J$(t,e){let r=t.options.env||process.env,s=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let c;try{c=hqe.sync(t.command,{path:r[gqe({env:r})],pathExt:e?V$.delimiter:void 0})}catch{}finally{n&&process.chdir(s)}return c&&(c=V$.resolve(a?t.options.cwd:\"\",c)),c}function dqe(t){return J$(t)||J$(t,!0)}K$.exports=dqe});var Z$=_((vkt,TU)=>{\"use strict\";var RU=/([()\\][%!^\"`<>&|;, *?])/g;function mqe(t){return t=t.replace(RU,\"^$1\"),t}function yqe(t,e){return t=`${t}`,t=t.replace(/(?=(\\\\+?)?)\\1\"/g,'$1$1\\\\\"'),t=t.replace(/(?=(\\\\+?)?)\\1$/,\"$1$1\"),t=`\"${t}\"`,t=t.replace(RU,\"^$1\"),e&&(t=t.replace(RU,\"^$1\")),t}TU.exports.command=mqe;TU.exports.argument=yqe});var $$=_((Skt,X$)=>{\"use strict\";X$.exports=/^#!(.*)/});var tee=_((Dkt,eee)=>{\"use strict\";var Eqe=$$();eee.exports=(t=\"\")=>{let e=t.match(Eqe);if(!e)return null;let[r,s]=e[0].replace(/#! ?/,\"\").split(\" \"),a=r.split(\"/\").pop();return a===\"env\"?s:s?`${a} ${s}`:a}});var nee=_((Pkt,ree)=>{\"use strict\";var FU=Ie(\"fs\"),Iqe=tee();function Cqe(t){let r=Buffer.alloc(150),s;try{s=FU.openSync(t,\"r\"),FU.readSync(s,r,0,150,0),FU.closeSync(s)}catch{}return Iqe(r.toString())}ree.exports=Cqe});var aee=_((bkt,oee)=>{\"use strict\";var wqe=Ie(\"path\"),iee=z$(),see=Z$(),Bqe=nee(),vqe=process.platform===\"win32\",Sqe=/\\.(?:com|exe)$/i,Dqe=/node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;function Pqe(t){t.file=iee(t);let e=t.file&&Bqe(t.file);return e?(t.args.unshift(t.file),t.command=e,iee(t)):t.file}function bqe(t){if(!vqe)return t;let e=Pqe(t),r=!Sqe.test(e);if(t.options.forceShell||r){let s=Dqe.test(e);t.command=wqe.normalize(t.command),t.command=see.command(t.command),t.args=t.args.map(n=>see.argument(n,s));let a=[t.command].concat(t.args).join(\" \");t.args=[\"/d\",\"/s\",\"/c\",`\"${a}\"`],t.command=process.env.comspec||\"cmd.exe\",t.options.windowsVerbatimArguments=!0}return t}function xqe(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let s={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?s:bqe(s)}oee.exports=xqe});var uee=_((xkt,cee)=>{\"use strict\";var NU=process.platform===\"win32\";function OU(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:\"ENOENT\",errno:\"ENOENT\",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function kqe(t,e){if(!NU)return;let r=t.emit;t.emit=function(s,a){if(s===\"exit\"){let n=lee(a,e);if(n)return r.call(t,\"error\",n)}return r.apply(t,arguments)}}function lee(t,e){return NU&&t===1&&!e.file?OU(e.original,\"spawn\"):null}function Qqe(t,e){return NU&&t===1&&!e.file?OU(e.original,\"spawnSync\"):null}cee.exports={hookChildProcess:kqe,verifyENOENT:lee,verifyENOENTSync:Qqe,notFoundError:OU}});var UU=_((kkt,uE)=>{\"use strict\";var fee=Ie(\"child_process\"),LU=aee(),MU=uee();function Aee(t,e,r){let s=LU(t,e,r),a=fee.spawn(s.command,s.args,s.options);return MU.hookChildProcess(a,s),a}function Rqe(t,e,r){let s=LU(t,e,r),a=fee.spawnSync(s.command,s.args,s.options);return a.error=a.error||MU.verifyENOENTSync(a.status,s),a}uE.exports=Aee;uE.exports.spawn=Aee;uE.exports.sync=Rqe;uE.exports._parse=LU;uE.exports._enoent=MU});var hee=_((Qkt,pee)=>{\"use strict\";function Tqe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Bd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name=\"SyntaxError\",typeof Error.captureStackTrace==\"function\"&&Error.captureStackTrace(this,Bd)}Tqe(Bd,Error);Bd.buildMessage=function(t,e){var r={literal:function(h){return'\"'+a(h.text)+'\"'},class:function(h){var E=\"\",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+\"-\"+n(h.parts[C][1]):n(h.parts[C]);return\"[\"+(h.inverted?\"^\":\"\")+E+\"]\"},any:function(h){return\"any character\"},end:function(h){return\"end of input\"},other:function(h){return h.description}};function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(E){return\"\\\\x0\"+s(E)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(E){return\"\\\\x\"+s(E)})}function n(h){return h.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\]/g,\"\\\\]\").replace(/\\^/g,\"\\\\^\").replace(/-/g,\"\\\\-\").replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(E){return\"\\\\x0\"+s(E)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(E){return\"\\\\x\"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}switch(E.length){case 1:return E[0];case 2:return E[0]+\" or \"+E[1];default:return E.slice(0,-1).join(\", \")+\", or \"+E[E.length-1]}}function p(h){return h?'\"'+a(h)+'\"':\"end of input\"}return\"Expected \"+f(t)+\" but \"+p(e)+\" found.\"};function Fqe(t,e){e=e!==void 0?e:{};var r={},s={Start:Wa},a=Wa,n=function(O){return O||[]},c=function(O,K,re){return[{command:O,type:K}].concat(re||[])},f=function(O,K){return[{command:O,type:K||\";\"}]},p=function(O){return O},h=\";\",E=ur(\";\",!1),C=\"&\",S=ur(\"&\",!1),b=function(O,K){return K?{chain:O,then:K}:{chain:O}},I=function(O,K){return{type:O,line:K}},T=\"&&\",N=ur(\"&&\",!1),U=\"||\",W=ur(\"||\",!1),ee=function(O,K){return K?{...O,then:K}:O},ie=function(O,K){return{type:O,chain:K}},ue=\"|&\",le=ur(\"|&\",!1),me=\"|\",pe=ur(\"|\",!1),Be=\"=\",Ce=ur(\"=\",!1),g=function(O,K){return{name:O,args:[K]}},we=function(O){return{name:O,args:[]}},ye=\"(\",Ae=ur(\"(\",!1),se=\")\",X=ur(\")\",!1),De=function(O,K){return{type:\"subshell\",subshell:O,args:K}},Te=\"{\",mt=ur(\"{\",!1),j=\"}\",rt=ur(\"}\",!1),Fe=function(O,K){return{type:\"group\",group:O,args:K}},Ne=function(O,K){return{type:\"command\",args:K,envs:O}},be=function(O){return{type:\"envs\",envs:O}},Ve=function(O){return O},ke=function(O){return O},it=/^[0-9]/,Ue=Ki([[\"0\",\"9\"]],!1,!1),x=function(O,K,re){return{type:\"redirection\",subtype:K,fd:O!==null?parseInt(O):null,args:[re]}},w=\">>\",P=ur(\">>\",!1),y=\">&\",F=ur(\">&\",!1),z=\">\",Z=ur(\">\",!1),$=\"<<<\",oe=ur(\"<<<\",!1),xe=\"<&\",Re=ur(\"<&\",!1),lt=\"<\",Ct=ur(\"<\",!1),qt=function(O){return{type:\"argument\",segments:[].concat(...O)}},ir=function(O){return O},bt=\"$'\",gn=ur(\"$'\",!1),br=\"'\",Ir=ur(\"'\",!1),Or=function(O){return[{type:\"text\",text:O}]},nn='\"\"',ai=ur('\"\"',!1),Io=function(){return{type:\"text\",text:\"\"}},ts='\"',$s=ur('\"',!1),Co=function(O){return O},Hi=function(O){return{type:\"arithmetic\",arithmetic:O,quoted:!0}},eo=function(O){return{type:\"shell\",shell:O,quoted:!0}},wo=function(O){return{type:\"variable\",...O,quoted:!0}},QA=function(O){return{type:\"text\",text:O}},Af=function(O){return{type:\"arithmetic\",arithmetic:O,quoted:!1}},dh=function(O){return{type:\"shell\",shell:O,quoted:!1}},mh=function(O){return{type:\"variable\",...O,quoted:!1}},to=function(O){return{type:\"glob\",pattern:O}},jn=/^[^']/,Rs=Ki([\"'\"],!0,!1),ro=function(O){return O.join(\"\")},ou=/^[^$\"]/,au=Ki([\"$\",'\"'],!0,!1),lu=`\\\\\n`,RA=ur(`\\\\\n`,!1),TA=function(){return\"\"},oa=\"\\\\\",aa=ur(\"\\\\\",!1),FA=/^[\\\\$\"`]/,gr=Ki([\"\\\\\",\"$\",'\"',\"`\"],!1,!1),Bo=function(O){return O},Me=\"\\\\a\",cu=ur(\"\\\\a\",!1),Cr=function(){return\"a\"},pf=\"\\\\b\",NA=ur(\"\\\\b\",!1),OA=function(){return\"\\b\"},uu=/^[Ee]/,fu=Ki([\"E\",\"e\"],!1,!1),oc=function(){return\"\\x1B\"},ve=\"\\\\f\",Nt=ur(\"\\\\f\",!1),ac=function(){return\"\\f\"},Oi=\"\\\\n\",no=ur(\"\\\\n\",!1),Tt=function(){return`\n`},xn=\"\\\\r\",la=ur(\"\\\\r\",!1),ji=function(){return\"\\r\"},Li=\"\\\\t\",Na=ur(\"\\\\t\",!1),dn=function(){return\"\t\"},Kn=\"\\\\v\",Au=ur(\"\\\\v\",!1),yh=function(){return\"\\v\"},Oa=/^[\\\\'\"?]/,La=Ki([\"\\\\\",\"'\",'\"',\"?\"],!1,!1),Ma=function(O){return String.fromCharCode(parseInt(O,16))},$e=\"\\\\x\",Ua=ur(\"\\\\x\",!1),hf=\"\\\\u\",lc=ur(\"\\\\u\",!1),wn=\"\\\\U\",ca=ur(\"\\\\U\",!1),LA=function(O){return String.fromCodePoint(parseInt(O,16))},MA=/^[0-7]/,ua=Ki([[\"0\",\"7\"]],!1,!1),Bl=/^[0-9a-fA-f]/,Mt=Ki([[\"0\",\"9\"],[\"a\",\"f\"],[\"A\",\"f\"]],!1,!1),kn=yf(),fa=\"{}\",Ha=ur(\"{}\",!1),rs=function(){return\"{}\"},cc=\"-\",pu=ur(\"-\",!1),uc=\"+\",ja=ur(\"+\",!1),Mi=\".\",Is=ur(\".\",!1),vl=function(O,K,re){return{type:\"number\",value:(O===\"-\"?-1:1)*parseFloat(K.join(\"\")+\".\"+re.join(\"\"))}},gf=function(O,K){return{type:\"number\",value:(O===\"-\"?-1:1)*parseInt(K.join(\"\"))}},fc=function(O){return{type:\"variable\",...O}},wi=function(O){return{type:\"variable\",name:O}},Qn=function(O){return O},Ac=\"*\",Ke=ur(\"*\",!1),st=\"/\",St=ur(\"/\",!1),lr=function(O,K,re){return{type:K===\"*\"?\"multiplication\":\"division\",right:re}},te=function(O,K){return K.reduce((re,de)=>({left:re,...de}),O)},Ee=function(O,K,re){return{type:K===\"+\"?\"addition\":\"subtraction\",right:re}},Oe=\"$((\",dt=ur(\"$((\",!1),Et=\"))\",Pt=ur(\"))\",!1),tr=function(O){return O},An=\"$(\",li=ur(\"$(\",!1),Gi=function(O){return O},Rn=\"${\",Ga=ur(\"${\",!1),my=\":-\",X1=ur(\":-\",!1),vo=function(O,K){return{name:O,defaultValue:K}},yy=\":-}\",Eh=ur(\":-}\",!1),$1=function(O){return{name:O,defaultValue:[]}},So=\":+\",Ih=ur(\":+\",!1),Ch=function(O,K){return{name:O,alternativeValue:K}},hu=\":+}\",wh=ur(\":+}\",!1),Fg=function(O){return{name:O,alternativeValue:[]}},Ng=function(O){return{name:O}},Og=\"$\",Ey=ur(\"$\",!1),df=function(O){return e.isGlobPattern(O)},Do=function(O){return O},Sl=/^[a-zA-Z0-9_]/,Bh=Ki([[\"a\",\"z\"],[\"A\",\"Z\"],[\"0\",\"9\"],\"_\"],!1,!1),Lg=function(){return By()},Dl=/^[$@*?#a-zA-Z0-9_\\-]/,Pl=Ki([\"$\",\"@\",\"*\",\"?\",\"#\",[\"a\",\"z\"],[\"A\",\"Z\"],[\"0\",\"9\"],\"_\",\"-\"],!1,!1),Iy=/^[()}<>$|&; \\t\"']/,UA=Ki([\"(\",\")\",\"}\",\"<\",\">\",\"$\",\"|\",\"&\",\";\",\" \",\"\t\",'\"',\"'\"],!1,!1),Cy=/^[<>&; \\t\"']/,wy=Ki([\"<\",\">\",\"&\",\";\",\" \",\"\t\",'\"',\"'\"],!1,!1),_A=/^[ \\t]/,HA=Ki([\" \",\"\t\"],!1,!1),Y=0,xt=0,jA=[{line:1,column:1}],Po=0,mf=[],yt=0,gu;if(\"startRule\"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule \"`+e.startRule+'\".');a=s[e.startRule]}function By(){return t.substring(xt,Y)}function Mg(){return Ef(xt,Y)}function e2(O,K){throw K=K!==void 0?K:Ef(xt,Y),GA([Ug(O)],t.substring(xt,Y),K)}function vh(O,K){throw K=K!==void 0?K:Ef(xt,Y),di(O,K)}function ur(O,K){return{type:\"literal\",text:O,ignoreCase:K}}function Ki(O,K,re){return{type:\"class\",parts:O,inverted:K,ignoreCase:re}}function yf(){return{type:\"any\"}}function qa(){return{type:\"end\"}}function Ug(O){return{type:\"other\",description:O}}function du(O){var K=jA[O],re;if(K)return K;for(re=O-1;!jA[re];)re--;for(K=jA[re],K={line:K.line,column:K.column};re<O;)t.charCodeAt(re)===10?(K.line++,K.column=1):K.column++,re++;return jA[O]=K,K}function Ef(O,K){var re=du(O),de=du(K);return{start:{offset:O,line:re.line,column:re.column},end:{offset:K,line:de.line,column:de.column}}}function wt(O){Y<Po||(Y>Po&&(Po=Y,mf=[]),mf.push(O))}function di(O,K){return new Bd(O,null,null,K)}function GA(O,K,re){return new Bd(Bd.buildMessage(O,K),O,K,re)}function Wa(){var O,K,re;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();return K!==r?(re=Aa(),re===r&&(re=null),re!==r?(xt=O,K=n(re),O=K):(Y=O,O=r)):(Y=O,O=r),O}function Aa(){var O,K,re,de,Je;if(O=Y,K=Sh(),K!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();re!==r?(de=_g(),de!==r?(Je=Ya(),Je===r&&(Je=null),Je!==r?(xt=O,K=c(K,de,Je),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;if(O===r)if(O=Y,K=Sh(),K!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();re!==r?(de=_g(),de===r&&(de=null),de!==r?(xt=O,K=f(K,de),O=K):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;return O}function Ya(){var O,K,re,de,Je;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(re=Aa(),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();de!==r?(xt=O,K=p(re),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r;return O}function _g(){var O;return t.charCodeAt(Y)===59?(O=h,Y++):(O=r,yt===0&&wt(E)),O===r&&(t.charCodeAt(Y)===38?(O=C,Y++):(O=r,yt===0&&wt(S))),O}function Sh(){var O,K,re;return O=Y,K=qA(),K!==r?(re=Hg(),re===r&&(re=null),re!==r?(xt=O,K=b(K,re),O=K):(Y=O,O=r)):(Y=O,O=r),O}function Hg(){var O,K,re,de,Je,At,dr;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(re=vy(),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r)if(Je=Sh(),Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();At!==r?(xt=O,K=I(re,Je),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;return O}function vy(){var O;return t.substr(Y,2)===T?(O=T,Y+=2):(O=r,yt===0&&wt(N)),O===r&&(t.substr(Y,2)===U?(O=U,Y+=2):(O=r,yt===0&&wt(W))),O}function qA(){var O,K,re;return O=Y,K=If(),K!==r?(re=jg(),re===r&&(re=null),re!==r?(xt=O,K=ee(K,re),O=K):(Y=O,O=r)):(Y=O,O=r),O}function jg(){var O,K,re,de,Je,At,dr;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(re=mu(),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r)if(Je=qA(),Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();At!==r?(xt=O,K=ie(re,Je),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;return O}function mu(){var O;return t.substr(Y,2)===ue?(O=ue,Y+=2):(O=r,yt===0&&wt(le)),O===r&&(t.charCodeAt(Y)===124?(O=me,Y++):(O=r,yt===0&&wt(pe))),O}function yu(){var O,K,re,de,Je,At;if(O=Y,K=bh(),K!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,yt===0&&wt(Ce)),re!==r)if(de=WA(),de!==r){for(Je=[],At=kt();At!==r;)Je.push(At),At=kt();Je!==r?(xt=O,K=g(K,de),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r;else Y=O,O=r;if(O===r)if(O=Y,K=bh(),K!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,yt===0&&wt(Ce)),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();de!==r?(xt=O,K=we(K),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r;return O}function If(){var O,K,re,de,Je,At,dr,vr,Un,mi,Cs;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(t.charCodeAt(Y)===40?(re=ye,Y++):(re=r,yt===0&&wt(Ae)),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r)if(Je=Aa(),Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();if(At!==r)if(t.charCodeAt(Y)===41?(dr=se,Y++):(dr=r,yt===0&&wt(X)),dr!==r){for(vr=[],Un=kt();Un!==r;)vr.push(Un),Un=kt();if(vr!==r){for(Un=[],mi=Gn();mi!==r;)Un.push(mi),mi=Gn();if(Un!==r){for(mi=[],Cs=kt();Cs!==r;)mi.push(Cs),Cs=kt();mi!==r?(xt=O,K=De(Je,Un),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;if(O===r){for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r)if(t.charCodeAt(Y)===123?(re=Te,Y++):(re=r,yt===0&&wt(mt)),re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r)if(Je=Aa(),Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();if(At!==r)if(t.charCodeAt(Y)===125?(dr=j,Y++):(dr=r,yt===0&&wt(rt)),dr!==r){for(vr=[],Un=kt();Un!==r;)vr.push(Un),Un=kt();if(vr!==r){for(Un=[],mi=Gn();mi!==r;)Un.push(mi),mi=Gn();if(Un!==r){for(mi=[],Cs=kt();Cs!==r;)mi.push(Cs),Cs=kt();mi!==r?(xt=O,K=Fe(Je,Un),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;if(O===r){for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r){for(re=[],de=yu();de!==r;)re.push(de),de=yu();if(re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();if(de!==r){if(Je=[],At=Eu(),At!==r)for(;At!==r;)Je.push(At),At=Eu();else Je=r;if(Je!==r){for(At=[],dr=kt();dr!==r;)At.push(dr),dr=kt();At!==r?(xt=O,K=Ne(re,Je),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r;if(O===r){for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r){if(re=[],de=yu(),de!==r)for(;de!==r;)re.push(de),de=yu();else re=r;if(re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();de!==r?(xt=O,K=be(re),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}}}return O}function Ts(){var O,K,re,de,Je;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r){if(re=[],de=bi(),de!==r)for(;de!==r;)re.push(de),de=bi();else re=r;if(re!==r){for(de=[],Je=kt();Je!==r;)de.push(Je),Je=kt();de!==r?(xt=O,K=Ve(re),O=K):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r;return O}function Eu(){var O,K,re;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();if(K!==r?(re=Gn(),re!==r?(xt=O,K=ke(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r){for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();K!==r?(re=bi(),re!==r?(xt=O,K=ke(re),O=K):(Y=O,O=r)):(Y=O,O=r)}return O}function Gn(){var O,K,re,de,Je;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();return K!==r?(it.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Ue)),re===r&&(re=null),re!==r?(de=ns(),de!==r?(Je=bi(),Je!==r?(xt=O,K=x(re,de,Je),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function ns(){var O;return t.substr(Y,2)===w?(O=w,Y+=2):(O=r,yt===0&&wt(P)),O===r&&(t.substr(Y,2)===y?(O=y,Y+=2):(O=r,yt===0&&wt(F)),O===r&&(t.charCodeAt(Y)===62?(O=z,Y++):(O=r,yt===0&&wt(Z)),O===r&&(t.substr(Y,3)===$?(O=$,Y+=3):(O=r,yt===0&&wt(oe)),O===r&&(t.substr(Y,2)===xe?(O=xe,Y+=2):(O=r,yt===0&&wt(Re)),O===r&&(t.charCodeAt(Y)===60?(O=lt,Y++):(O=r,yt===0&&wt(Ct))))))),O}function bi(){var O,K,re;for(O=Y,K=[],re=kt();re!==r;)K.push(re),re=kt();return K!==r?(re=WA(),re!==r?(xt=O,K=ke(re),O=K):(Y=O,O=r)):(Y=O,O=r),O}function WA(){var O,K,re;if(O=Y,K=[],re=Cf(),re!==r)for(;re!==r;)K.push(re),re=Cf();else K=r;return K!==r&&(xt=O,K=qt(K)),O=K,O}function Cf(){var O,K;return O=Y,K=mn(),K!==r&&(xt=O,K=ir(K)),O=K,O===r&&(O=Y,K=Gg(),K!==r&&(xt=O,K=ir(K)),O=K,O===r&&(O=Y,K=qg(),K!==r&&(xt=O,K=ir(K)),O=K,O===r&&(O=Y,K=is(),K!==r&&(xt=O,K=ir(K)),O=K))),O}function mn(){var O,K,re,de;return O=Y,t.substr(Y,2)===bt?(K=bt,Y+=2):(K=r,yt===0&&wt(gn)),K!==r?(re=yn(),re!==r?(t.charCodeAt(Y)===39?(de=br,Y++):(de=r,yt===0&&wt(Ir)),de!==r?(xt=O,K=Or(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function Gg(){var O,K,re,de;return O=Y,t.charCodeAt(Y)===39?(K=br,Y++):(K=r,yt===0&&wt(Ir)),K!==r?(re=wf(),re!==r?(t.charCodeAt(Y)===39?(de=br,Y++):(de=r,yt===0&&wt(Ir)),de!==r?(xt=O,K=Or(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function qg(){var O,K,re,de;if(O=Y,t.substr(Y,2)===nn?(K=nn,Y+=2):(K=r,yt===0&&wt(ai)),K!==r&&(xt=O,K=Io()),O=K,O===r)if(O=Y,t.charCodeAt(Y)===34?(K=ts,Y++):(K=r,yt===0&&wt($s)),K!==r){for(re=[],de=bl();de!==r;)re.push(de),de=bl();re!==r?(t.charCodeAt(Y)===34?(de=ts,Y++):(de=r,yt===0&&wt($s)),de!==r?(xt=O,K=Co(re),O=K):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;return O}function is(){var O,K,re;if(O=Y,K=[],re=bo(),re!==r)for(;re!==r;)K.push(re),re=bo();else K=r;return K!==r&&(xt=O,K=Co(K)),O=K,O}function bl(){var O,K;return O=Y,K=Xr(),K!==r&&(xt=O,K=Hi(K)),O=K,O===r&&(O=Y,K=Ph(),K!==r&&(xt=O,K=eo(K)),O=K,O===r&&(O=Y,K=VA(),K!==r&&(xt=O,K=wo(K)),O=K,O===r&&(O=Y,K=Bf(),K!==r&&(xt=O,K=QA(K)),O=K))),O}function bo(){var O,K;return O=Y,K=Xr(),K!==r&&(xt=O,K=Af(K)),O=K,O===r&&(O=Y,K=Ph(),K!==r&&(xt=O,K=dh(K)),O=K,O===r&&(O=Y,K=VA(),K!==r&&(xt=O,K=mh(K)),O=K,O===r&&(O=Y,K=Sy(),K!==r&&(xt=O,K=to(K)),O=K,O===r&&(O=Y,K=Dh(),K!==r&&(xt=O,K=QA(K)),O=K)))),O}function wf(){var O,K,re;for(O=Y,K=[],jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Rs));re!==r;)K.push(re),jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Rs));return K!==r&&(xt=O,K=ro(K)),O=K,O}function Bf(){var O,K,re;if(O=Y,K=[],re=xl(),re===r&&(ou.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(au))),re!==r)for(;re!==r;)K.push(re),re=xl(),re===r&&(ou.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(au)));else K=r;return K!==r&&(xt=O,K=ro(K)),O=K,O}function xl(){var O,K,re;return O=Y,t.substr(Y,2)===lu?(K=lu,Y+=2):(K=r,yt===0&&wt(RA)),K!==r&&(xt=O,K=TA()),O=K,O===r&&(O=Y,t.charCodeAt(Y)===92?(K=oa,Y++):(K=r,yt===0&&wt(aa)),K!==r?(FA.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(gr)),re!==r?(xt=O,K=Bo(re),O=K):(Y=O,O=r)):(Y=O,O=r)),O}function yn(){var O,K,re;for(O=Y,K=[],re=xo(),re===r&&(jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Rs)));re!==r;)K.push(re),re=xo(),re===r&&(jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Rs)));return K!==r&&(xt=O,K=ro(K)),O=K,O}function xo(){var O,K,re;return O=Y,t.substr(Y,2)===Me?(K=Me,Y+=2):(K=r,yt===0&&wt(cu)),K!==r&&(xt=O,K=Cr()),O=K,O===r&&(O=Y,t.substr(Y,2)===pf?(K=pf,Y+=2):(K=r,yt===0&&wt(NA)),K!==r&&(xt=O,K=OA()),O=K,O===r&&(O=Y,t.charCodeAt(Y)===92?(K=oa,Y++):(K=r,yt===0&&wt(aa)),K!==r?(uu.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(fu)),re!==r?(xt=O,K=oc(),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===ve?(K=ve,Y+=2):(K=r,yt===0&&wt(Nt)),K!==r&&(xt=O,K=ac()),O=K,O===r&&(O=Y,t.substr(Y,2)===Oi?(K=Oi,Y+=2):(K=r,yt===0&&wt(no)),K!==r&&(xt=O,K=Tt()),O=K,O===r&&(O=Y,t.substr(Y,2)===xn?(K=xn,Y+=2):(K=r,yt===0&&wt(la)),K!==r&&(xt=O,K=ji()),O=K,O===r&&(O=Y,t.substr(Y,2)===Li?(K=Li,Y+=2):(K=r,yt===0&&wt(Na)),K!==r&&(xt=O,K=dn()),O=K,O===r&&(O=Y,t.substr(Y,2)===Kn?(K=Kn,Y+=2):(K=r,yt===0&&wt(Au)),K!==r&&(xt=O,K=yh()),O=K,O===r&&(O=Y,t.charCodeAt(Y)===92?(K=oa,Y++):(K=r,yt===0&&wt(aa)),K!==r?(Oa.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(La)),re!==r?(xt=O,K=Bo(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Iu()))))))))),O}function Iu(){var O,K,re,de,Je,At,dr,vr,Un,mi,Cs,JA;return O=Y,t.charCodeAt(Y)===92?(K=oa,Y++):(K=r,yt===0&&wt(aa)),K!==r?(re=pa(),re!==r?(xt=O,K=Ma(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===$e?(K=$e,Y+=2):(K=r,yt===0&&wt(Ua)),K!==r?(re=Y,de=Y,Je=pa(),Je!==r?(At=Fs(),At!==r?(Je=[Je,At],de=Je):(Y=de,de=r)):(Y=de,de=r),de===r&&(de=pa()),de!==r?re=t.substring(re,Y):re=de,re!==r?(xt=O,K=Ma(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===hf?(K=hf,Y+=2):(K=r,yt===0&&wt(lc)),K!==r?(re=Y,de=Y,Je=Fs(),Je!==r?(At=Fs(),At!==r?(dr=Fs(),dr!==r?(vr=Fs(),vr!==r?(Je=[Je,At,dr,vr],de=Je):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r),de!==r?re=t.substring(re,Y):re=de,re!==r?(xt=O,K=Ma(re),O=K):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===wn?(K=wn,Y+=2):(K=r,yt===0&&wt(ca)),K!==r?(re=Y,de=Y,Je=Fs(),Je!==r?(At=Fs(),At!==r?(dr=Fs(),dr!==r?(vr=Fs(),vr!==r?(Un=Fs(),Un!==r?(mi=Fs(),mi!==r?(Cs=Fs(),Cs!==r?(JA=Fs(),JA!==r?(Je=[Je,At,dr,vr,Un,mi,Cs,JA],de=Je):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r),de!==r?re=t.substring(re,Y):re=de,re!==r?(xt=O,K=LA(re),O=K):(Y=O,O=r)):(Y=O,O=r)))),O}function pa(){var O;return MA.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,yt===0&&wt(ua)),O}function Fs(){var O;return Bl.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,yt===0&&wt(Mt)),O}function Dh(){var O,K,re,de,Je;if(O=Y,K=[],re=Y,t.charCodeAt(Y)===92?(de=oa,Y++):(de=r,yt===0&&wt(aa)),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===fa?(de=fa,Y+=2):(de=r,yt===0&&wt(Ha)),de!==r&&(xt=re,de=rs()),re=de,re===r&&(re=Y,de=Y,yt++,Je=Dy(),yt--,Je===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r))),re!==r)for(;re!==r;)K.push(re),re=Y,t.charCodeAt(Y)===92?(de=oa,Y++):(de=r,yt===0&&wt(aa)),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===fa?(de=fa,Y+=2):(de=r,yt===0&&wt(Ha)),de!==r&&(xt=re,de=rs()),re=de,re===r&&(re=Y,de=Y,yt++,Je=Dy(),yt--,Je===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r)));else K=r;return K!==r&&(xt=O,K=ro(K)),O=K,O}function YA(){var O,K,re,de,Je,At;if(O=Y,t.charCodeAt(Y)===45?(K=cc,Y++):(K=r,yt===0&&wt(pu)),K===r&&(t.charCodeAt(Y)===43?(K=uc,Y++):(K=r,yt===0&&wt(ja))),K===r&&(K=null),K!==r){if(re=[],it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,yt===0&&wt(Ue)),de!==r)for(;de!==r;)re.push(de),it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,yt===0&&wt(Ue));else re=r;if(re!==r)if(t.charCodeAt(Y)===46?(de=Mi,Y++):(de=r,yt===0&&wt(Is)),de!==r){if(Je=[],it.test(t.charAt(Y))?(At=t.charAt(Y),Y++):(At=r,yt===0&&wt(Ue)),At!==r)for(;At!==r;)Je.push(At),it.test(t.charAt(Y))?(At=t.charAt(Y),Y++):(At=r,yt===0&&wt(Ue));else Je=r;Je!==r?(xt=O,K=vl(K,re,Je),O=K):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;if(O===r){if(O=Y,t.charCodeAt(Y)===45?(K=cc,Y++):(K=r,yt===0&&wt(pu)),K===r&&(t.charCodeAt(Y)===43?(K=uc,Y++):(K=r,yt===0&&wt(ja))),K===r&&(K=null),K!==r){if(re=[],it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,yt===0&&wt(Ue)),de!==r)for(;de!==r;)re.push(de),it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,yt===0&&wt(Ue));else re=r;re!==r?(xt=O,K=gf(K,re),O=K):(Y=O,O=r)}else Y=O,O=r;if(O===r&&(O=Y,K=VA(),K!==r&&(xt=O,K=fc(K)),O=K,O===r&&(O=Y,K=pc(),K!==r&&(xt=O,K=wi(K)),O=K,O===r)))if(O=Y,t.charCodeAt(Y)===40?(K=ye,Y++):(K=r,yt===0&&wt(Ae)),K!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();if(re!==r)if(de=io(),de!==r){for(Je=[],At=kt();At!==r;)Je.push(At),At=kt();Je!==r?(t.charCodeAt(Y)===41?(At=se,Y++):(At=r,yt===0&&wt(X)),At!==r?(xt=O,K=Qn(de),O=K):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r}return O}function vf(){var O,K,re,de,Je,At,dr,vr;if(O=Y,K=YA(),K!==r){for(re=[],de=Y,Je=[],At=kt();At!==r;)Je.push(At),At=kt();if(Je!==r)if(t.charCodeAt(Y)===42?(At=Ac,Y++):(At=r,yt===0&&wt(Ke)),At===r&&(t.charCodeAt(Y)===47?(At=st,Y++):(At=r,yt===0&&wt(St))),At!==r){for(dr=[],vr=kt();vr!==r;)dr.push(vr),vr=kt();dr!==r?(vr=YA(),vr!==r?(xt=de,Je=lr(K,At,vr),de=Je):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r;for(;de!==r;){for(re.push(de),de=Y,Je=[],At=kt();At!==r;)Je.push(At),At=kt();if(Je!==r)if(t.charCodeAt(Y)===42?(At=Ac,Y++):(At=r,yt===0&&wt(Ke)),At===r&&(t.charCodeAt(Y)===47?(At=st,Y++):(At=r,yt===0&&wt(St))),At!==r){for(dr=[],vr=kt();vr!==r;)dr.push(vr),vr=kt();dr!==r?(vr=YA(),vr!==r?(xt=de,Je=lr(K,At,vr),de=Je):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r}re!==r?(xt=O,K=te(K,re),O=K):(Y=O,O=r)}else Y=O,O=r;return O}function io(){var O,K,re,de,Je,At,dr,vr;if(O=Y,K=vf(),K!==r){for(re=[],de=Y,Je=[],At=kt();At!==r;)Je.push(At),At=kt();if(Je!==r)if(t.charCodeAt(Y)===43?(At=uc,Y++):(At=r,yt===0&&wt(ja)),At===r&&(t.charCodeAt(Y)===45?(At=cc,Y++):(At=r,yt===0&&wt(pu))),At!==r){for(dr=[],vr=kt();vr!==r;)dr.push(vr),vr=kt();dr!==r?(vr=vf(),vr!==r?(xt=de,Je=Ee(K,At,vr),de=Je):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r;for(;de!==r;){for(re.push(de),de=Y,Je=[],At=kt();At!==r;)Je.push(At),At=kt();if(Je!==r)if(t.charCodeAt(Y)===43?(At=uc,Y++):(At=r,yt===0&&wt(ja)),At===r&&(t.charCodeAt(Y)===45?(At=cc,Y++):(At=r,yt===0&&wt(pu))),At!==r){for(dr=[],vr=kt();vr!==r;)dr.push(vr),vr=kt();dr!==r?(vr=vf(),vr!==r?(xt=de,Je=Ee(K,At,vr),de=Je):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r}re!==r?(xt=O,K=te(K,re),O=K):(Y=O,O=r)}else Y=O,O=r;return O}function Xr(){var O,K,re,de,Je,At;if(O=Y,t.substr(Y,3)===Oe?(K=Oe,Y+=3):(K=r,yt===0&&wt(dt)),K!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();if(re!==r)if(de=io(),de!==r){for(Je=[],At=kt();At!==r;)Je.push(At),At=kt();Je!==r?(t.substr(Y,2)===Et?(At=Et,Y+=2):(At=r,yt===0&&wt(Pt)),At!==r?(xt=O,K=tr(de),O=K):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;return O}function Ph(){var O,K,re,de;return O=Y,t.substr(Y,2)===An?(K=An,Y+=2):(K=r,yt===0&&wt(li)),K!==r?(re=Aa(),re!==r?(t.charCodeAt(Y)===41?(de=se,Y++):(de=r,yt===0&&wt(X)),de!==r?(xt=O,K=Gi(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function VA(){var O,K,re,de,Je,At;return O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.substr(Y,2)===my?(de=my,Y+=2):(de=r,yt===0&&wt(X1)),de!==r?(Je=Ts(),Je!==r?(t.charCodeAt(Y)===125?(At=j,Y++):(At=r,yt===0&&wt(rt)),At!==r?(xt=O,K=vo(re,Je),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.substr(Y,3)===yy?(de=yy,Y+=3):(de=r,yt===0&&wt(Eh)),de!==r?(xt=O,K=$1(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.substr(Y,2)===So?(de=So,Y+=2):(de=r,yt===0&&wt(Ih)),de!==r?(Je=Ts(),Je!==r?(t.charCodeAt(Y)===125?(At=j,Y++):(At=r,yt===0&&wt(rt)),At!==r?(xt=O,K=Ch(re,Je),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.substr(Y,3)===hu?(de=hu,Y+=3):(de=r,yt===0&&wt(wh)),de!==r?(xt=O,K=Fg(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Rn?(K=Rn,Y+=2):(K=r,yt===0&&wt(Ga)),K!==r?(re=pc(),re!==r?(t.charCodeAt(Y)===125?(de=j,Y++):(de=r,yt===0&&wt(rt)),de!==r?(xt=O,K=Ng(re),O=K):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.charCodeAt(Y)===36?(K=Og,Y++):(K=r,yt===0&&wt(Ey)),K!==r?(re=pc(),re!==r?(xt=O,K=Ng(re),O=K):(Y=O,O=r)):(Y=O,O=r)))))),O}function Sy(){var O,K,re;return O=Y,K=Wg(),K!==r?(xt=Y,re=df(K),re?re=void 0:re=r,re!==r?(xt=O,K=Do(K),O=K):(Y=O,O=r)):(Y=O,O=r),O}function Wg(){var O,K,re,de,Je;if(O=Y,K=[],re=Y,de=Y,yt++,Je=xh(),yt--,Je===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r),re!==r)for(;re!==r;)K.push(re),re=Y,de=Y,yt++,Je=xh(),yt--,Je===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Je=t.charAt(Y),Y++):(Je=r,yt===0&&wt(kn)),Je!==r?(xt=re,de=Bo(Je),re=de):(Y=re,re=r)):(Y=re,re=r);else K=r;return K!==r&&(xt=O,K=ro(K)),O=K,O}function bh(){var O,K,re;if(O=Y,K=[],Sl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Bh)),re!==r)for(;re!==r;)K.push(re),Sl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Bh));else K=r;return K!==r&&(xt=O,K=Lg()),O=K,O}function pc(){var O,K,re;if(O=Y,K=[],Dl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Pl)),re!==r)for(;re!==r;)K.push(re),Dl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,yt===0&&wt(Pl));else K=r;return K!==r&&(xt=O,K=Lg()),O=K,O}function Dy(){var O;return Iy.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,yt===0&&wt(UA)),O}function xh(){var O;return Cy.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,yt===0&&wt(wy)),O}function kt(){var O,K;if(O=[],_A.test(t.charAt(Y))?(K=t.charAt(Y),Y++):(K=r,yt===0&&wt(HA)),K!==r)for(;K!==r;)O.push(K),_A.test(t.charAt(Y))?(K=t.charAt(Y),Y++):(K=r,yt===0&&wt(HA));else O=r;return O}if(gu=a(),gu!==r&&Y===t.length)return gu;throw gu!==r&&Y<t.length&&wt(qa()),GA(mf,Po<t.length?t.charAt(Po):null,Po<t.length?Ef(Po,Po+1):Ef(Po,Po))}pee.exports={SyntaxError:Bd,parse:Fqe}});function ux(t,e={isGlobPattern:()=>!1}){try{return(0,gee.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function fE(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:s},a)=>`${fx(r)}${s===\";\"?a!==t.length-1||e?\";\":\"\":\" &\"}`).join(\" \")}function fx(t){return`${AE(t.chain)}${t.then?` ${_U(t.then)}`:\"\"}`}function _U(t){return`${t.type} ${fx(t.line)}`}function AE(t){return`${jU(t)}${t.then?` ${HU(t.then)}`:\"\"}`}function HU(t){return`${t.type} ${AE(t.chain)}`}function jU(t){switch(t.type){case\"command\":return`${t.envs.length>0?`${t.envs.map(e=>cx(e)).join(\" \")} `:\"\"}${t.args.map(e=>GU(e)).join(\" \")}`;case\"subshell\":return`(${fE(t.subshell)})${t.args.length>0?` ${t.args.map(e=>H2(e)).join(\" \")}`:\"\"}`;case\"group\":return`{ ${fE(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>H2(e)).join(\" \")}`:\"\"}`;case\"envs\":return t.envs.map(e=>cx(e)).join(\" \");default:throw new Error(`Unsupported command type:  \"${t.type}\"`)}}function cx(t){return`${t.name}=${t.args[0]?vd(t.args[0]):\"\"}`}function GU(t){switch(t.type){case\"redirection\":return H2(t);case\"argument\":return vd(t);default:throw new Error(`Unsupported argument type: \"${t.type}\"`)}}function H2(t){return`${t.subtype} ${t.args.map(e=>vd(e)).join(\" \")}`}function vd(t){return t.segments.map(e=>qU(e)).join(\"\")}function qU(t){let e=(s,a)=>a?`\"${s}\"`:s,r=s=>s===\"\"?\"''\":s.match(/[()}<>$|&;\"'\\n\\t ]/)?s.match(/['\\t\\p{C}]/u)?s.match(/'/)?`\"${s.replace(/[\"$\\t\\p{C}]/u,Oqe)}\"`:`$'${s.replace(/[\\t\\p{C}]/u,mee)}'`:`'${s}'`:s;switch(t.type){case\"text\":return r(t.text);case\"glob\":return t.pattern;case\"shell\":return e(`$(${fE(t.shell)})`,t.quoted);case\"variable\":return e(typeof t.defaultValue>\"u\"?typeof t.alternativeValue>\"u\"?`\\${${t.name}}`:t.alternativeValue.length===0?`\\${${t.name}:+}`:`\\${${t.name}:+${t.alternativeValue.map(s=>vd(s)).join(\" \")}}`:t.defaultValue.length===0?`\\${${t.name}:-}`:`\\${${t.name}:-${t.defaultValue.map(s=>vd(s)).join(\" \")}}`,t.quoted);case\"arithmetic\":return`$(( ${Ax(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: \"${t.type}\"`)}}function Ax(t){let e=a=>{switch(a){case\"addition\":return\"+\";case\"subtraction\":return\"-\";case\"multiplication\":return\"*\";case\"division\":return\"/\";default:throw new Error(`Can't extract operator from arithmetic expression of type \"${a}\"`)}},r=(a,n)=>n?`( ${a} )`:a,s=a=>r(Ax(a),![\"number\",\"variable\"].includes(a.type));switch(t.type){case\"number\":return String(t.value);case\"variable\":return t.name;default:return`${s(t.left)} ${e(t.type)} ${s(t.right)}`}}var gee,dee,Nqe,mee,Oqe,yee=Ze(()=>{gee=ut(hee());dee=new Map([[\"\\f\",\"\\\\f\"],[`\n`,\"\\\\n\"],[\"\\r\",\"\\\\r\"],[\"\t\",\"\\\\t\"],[\"\\v\",\"\\\\v\"],[\"\\0\",\"\\\\0\"]]),Nqe=new Map([[\"\\\\\",\"\\\\\\\\\"],[\"$\",\"\\\\$\"],['\"','\\\\\"'],...Array.from(dee,([t,e])=>[t,`\"$'${e}'\"`])]),mee=t=>dee.get(t)??`\\\\x${t.charCodeAt(0).toString(16).padStart(2,\"0\")}`,Oqe=t=>Nqe.get(t)??`\"$'${mee(t)}'\"`});var Iee=_((Wkt,Eee)=>{\"use strict\";function Lqe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Sd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name=\"SyntaxError\",typeof Error.captureStackTrace==\"function\"&&Error.captureStackTrace(this,Sd)}Lqe(Sd,Error);Sd.buildMessage=function(t,e){var r={literal:function(h){return'\"'+a(h.text)+'\"'},class:function(h){var E=\"\",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+\"-\"+n(h.parts[C][1]):n(h.parts[C]);return\"[\"+(h.inverted?\"^\":\"\")+E+\"]\"},any:function(h){return\"any character\"},end:function(h){return\"end of input\"},other:function(h){return h.description}};function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(E){return\"\\\\x0\"+s(E)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(E){return\"\\\\x\"+s(E)})}function n(h){return h.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\]/g,\"\\\\]\").replace(/\\^/g,\"\\\\^\").replace(/-/g,\"\\\\-\").replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(E){return\"\\\\x0\"+s(E)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(E){return\"\\\\x\"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}switch(E.length){case 1:return E[0];case 2:return E[0]+\" or \"+E[1];default:return E.slice(0,-1).join(\", \")+\", or \"+E[E.length-1]}}function p(h){return h?'\"'+a(h)+'\"':\"end of input\"}return\"Expected \"+f(t)+\" but \"+p(e)+\" found.\"};function Mqe(t,e){e=e!==void 0?e:{};var r={},s={resolution:Ne},a=Ne,n=\"/\",c=ye(\"/\",!1),f=function(Ue,x){return{from:Ue,descriptor:x}},p=function(Ue){return{descriptor:Ue}},h=\"@\",E=ye(\"@\",!1),C=function(Ue,x){return{fullName:Ue,description:x}},S=function(Ue){return{fullName:Ue}},b=function(){return Be()},I=/^[^\\/@]/,T=Ae([\"/\",\"@\"],!0,!1),N=/^[^\\/]/,U=Ae([\"/\"],!0,!1),W=0,ee=0,ie=[{line:1,column:1}],ue=0,le=[],me=0,pe;if(\"startRule\"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule \"`+e.startRule+'\".');a=s[e.startRule]}function Be(){return t.substring(ee,W)}function Ce(){return mt(ee,W)}function g(Ue,x){throw x=x!==void 0?x:mt(ee,W),Fe([De(Ue)],t.substring(ee,W),x)}function we(Ue,x){throw x=x!==void 0?x:mt(ee,W),rt(Ue,x)}function ye(Ue,x){return{type:\"literal\",text:Ue,ignoreCase:x}}function Ae(Ue,x,w){return{type:\"class\",parts:Ue,inverted:x,ignoreCase:w}}function se(){return{type:\"any\"}}function X(){return{type:\"end\"}}function De(Ue){return{type:\"other\",description:Ue}}function Te(Ue){var x=ie[Ue],w;if(x)return x;for(w=Ue-1;!ie[w];)w--;for(x=ie[w],x={line:x.line,column:x.column};w<Ue;)t.charCodeAt(w)===10?(x.line++,x.column=1):x.column++,w++;return ie[Ue]=x,x}function mt(Ue,x){var w=Te(Ue),P=Te(x);return{start:{offset:Ue,line:w.line,column:w.column},end:{offset:x,line:P.line,column:P.column}}}function j(Ue){W<ue||(W>ue&&(ue=W,le=[]),le.push(Ue))}function rt(Ue,x){return new Sd(Ue,null,null,x)}function Fe(Ue,x,w){return new Sd(Sd.buildMessage(Ue,x),Ue,x,w)}function Ne(){var Ue,x,w,P;return Ue=W,x=be(),x!==r?(t.charCodeAt(W)===47?(w=n,W++):(w=r,me===0&&j(c)),w!==r?(P=be(),P!==r?(ee=Ue,x=f(x,P),Ue=x):(W=Ue,Ue=r)):(W=Ue,Ue=r)):(W=Ue,Ue=r),Ue===r&&(Ue=W,x=be(),x!==r&&(ee=Ue,x=p(x)),Ue=x),Ue}function be(){var Ue,x,w,P;return Ue=W,x=Ve(),x!==r?(t.charCodeAt(W)===64?(w=h,W++):(w=r,me===0&&j(E)),w!==r?(P=it(),P!==r?(ee=Ue,x=C(x,P),Ue=x):(W=Ue,Ue=r)):(W=Ue,Ue=r)):(W=Ue,Ue=r),Ue===r&&(Ue=W,x=Ve(),x!==r&&(ee=Ue,x=S(x)),Ue=x),Ue}function Ve(){var Ue,x,w,P,y;return Ue=W,t.charCodeAt(W)===64?(x=h,W++):(x=r,me===0&&j(E)),x!==r?(w=ke(),w!==r?(t.charCodeAt(W)===47?(P=n,W++):(P=r,me===0&&j(c)),P!==r?(y=ke(),y!==r?(ee=Ue,x=b(),Ue=x):(W=Ue,Ue=r)):(W=Ue,Ue=r)):(W=Ue,Ue=r)):(W=Ue,Ue=r),Ue===r&&(Ue=W,x=ke(),x!==r&&(ee=Ue,x=b()),Ue=x),Ue}function ke(){var Ue,x,w;if(Ue=W,x=[],I.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(T)),w!==r)for(;w!==r;)x.push(w),I.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(T));else x=r;return x!==r&&(ee=Ue,x=b()),Ue=x,Ue}function it(){var Ue,x,w;if(Ue=W,x=[],N.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(U)),w!==r)for(;w!==r;)x.push(w),N.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(U));else x=r;return x!==r&&(ee=Ue,x=b()),Ue=x,Ue}if(pe=a(),pe!==r&&W===t.length)return pe;throw pe!==r&&W<t.length&&j(X()),Fe(le,ue<t.length?t.charAt(ue):null,ue<t.length?mt(ue,ue+1):mt(ue,ue))}Eee.exports={SyntaxError:Sd,parse:Mqe}});function px(t){let e=t.match(/^\\*{1,2}\\/(.*)/);if(e)throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,Cee.parse)(t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function hx(t){let e=\"\";return t.from&&(e+=t.from.fullName,t.from.description&&(e+=`@${t.from.description}`),e+=\"/\"),e+=t.descriptor.fullName,t.descriptor.description&&(e+=`@${t.descriptor.description}`),e}var Cee,wee=Ze(()=>{Cee=ut(Iee())});var Pd=_((Vkt,Dd)=>{\"use strict\";function Bee(t){return typeof t>\"u\"||t===null}function Uqe(t){return typeof t==\"object\"&&t!==null}function _qe(t){return Array.isArray(t)?t:Bee(t)?[]:[t]}function Hqe(t,e){var r,s,a,n;if(e)for(n=Object.keys(e),r=0,s=n.length;r<s;r+=1)a=n[r],t[a]=e[a];return t}function jqe(t,e){var r=\"\",s;for(s=0;s<e;s+=1)r+=t;return r}function Gqe(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}Dd.exports.isNothing=Bee;Dd.exports.isObject=Uqe;Dd.exports.toArray=_qe;Dd.exports.repeat=jqe;Dd.exports.isNegativeZero=Gqe;Dd.exports.extend=Hqe});var pE=_((Jkt,vee)=>{\"use strict\";function j2(t,e){Error.call(this),this.name=\"YAMLException\",this.reason=t,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||\"\"}j2.prototype=Object.create(Error.prototype);j2.prototype.constructor=j2;j2.prototype.toString=function(e){var r=this.name+\": \";return r+=this.reason||\"(unknown reason)\",!e&&this.mark&&(r+=\" \"+this.mark.toString()),r};vee.exports=j2});var Pee=_((Kkt,Dee)=>{\"use strict\";var See=Pd();function WU(t,e,r,s,a){this.name=t,this.buffer=e,this.position=r,this.line=s,this.column=a}WU.prototype.getSnippet=function(e,r){var s,a,n,c,f;if(!this.buffer)return null;for(e=e||4,r=r||75,s=\"\",a=this.position;a>0&&`\\0\\r\n\\x85\\u2028\\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){s=\" ... \",a+=5;break}for(n=\"\",c=this.position;c<this.buffer.length&&`\\0\\r\n\\x85\\u2028\\u2029`.indexOf(this.buffer.charAt(c))===-1;)if(c+=1,c-this.position>r/2-1){n=\" ... \",c-=5;break}return f=this.buffer.slice(a,c),See.repeat(\" \",e)+s+f+n+`\n`+See.repeat(\" \",e+this.position-a+s.length)+\"^\"};WU.prototype.toString=function(e){var r,s=\"\";return this.name&&(s+='in \"'+this.name+'\" '),s+=\"at line \"+(this.line+1)+\", column \"+(this.column+1),e||(r=this.getSnippet(),r&&(s+=`:\n`+r)),s};Dee.exports=WU});var Ss=_((zkt,xee)=>{\"use strict\";var bee=pE(),qqe=[\"kind\",\"resolve\",\"construct\",\"instanceOf\",\"predicate\",\"represent\",\"defaultStyle\",\"styleAliases\"],Wqe=[\"scalar\",\"sequence\",\"mapping\"];function Yqe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(s){e[String(s)]=r})}),e}function Vqe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(qqe.indexOf(r)===-1)throw new bee('Unknown option \"'+r+'\" is met in definition of \"'+t+'\" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Yqe(e.styleAliases||null),Wqe.indexOf(this.kind)===-1)throw new bee('Unknown kind \"'+this.kind+'\" is specified for \"'+t+'\" YAML type.')}xee.exports=Vqe});var bd=_((Zkt,Qee)=>{\"use strict\";var kee=Pd(),gx=pE(),Jqe=Ss();function YU(t,e,r){var s=[];return t.include.forEach(function(a){r=YU(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,c){n.tag===a.tag&&n.kind===a.kind&&s.push(c)}),r.push(a)}),r.filter(function(a,n){return s.indexOf(n)===-1})}function Kqe(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function s(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e<r;e+=1)arguments[e].forEach(s);return t}function hE(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!==\"scalar\")throw new gx(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\")}),this.compiledImplicit=YU(this,\"implicit\",[]),this.compiledExplicit=YU(this,\"explicit\",[]),this.compiledTypeMap=Kqe(this.compiledImplicit,this.compiledExplicit)}hE.DEFAULT=null;hE.create=function(){var e,r;switch(arguments.length){case 1:e=hE.DEFAULT,r=arguments[0];break;case 2:e=arguments[0],r=arguments[1];break;default:throw new gx(\"Wrong number of arguments for Schema.create function\")}if(e=kee.toArray(e),r=kee.toArray(r),!e.every(function(s){return s instanceof hE}))throw new gx(\"Specified list of super schemas (or a single Schema object) contains a non-Schema object.\");if(!r.every(function(s){return s instanceof Jqe}))throw new gx(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");return new hE({include:e,explicit:r})};Qee.exports=hE});var Tee=_((Xkt,Ree)=>{\"use strict\";var zqe=Ss();Ree.exports=new zqe(\"tag:yaml.org,2002:str\",{kind:\"scalar\",construct:function(t){return t!==null?t:\"\"}})});var Nee=_(($kt,Fee)=>{\"use strict\";var Zqe=Ss();Fee.exports=new Zqe(\"tag:yaml.org,2002:seq\",{kind:\"sequence\",construct:function(t){return t!==null?t:[]}})});var Lee=_((eQt,Oee)=>{\"use strict\";var Xqe=Ss();Oee.exports=new Xqe(\"tag:yaml.org,2002:map\",{kind:\"mapping\",construct:function(t){return t!==null?t:{}}})});var dx=_((tQt,Mee)=>{\"use strict\";var $qe=bd();Mee.exports=new $qe({explicit:[Tee(),Nee(),Lee()]})});var _ee=_((rQt,Uee)=>{\"use strict\";var e5e=Ss();function t5e(t){if(t===null)return!0;var e=t.length;return e===1&&t===\"~\"||e===4&&(t===\"null\"||t===\"Null\"||t===\"NULL\")}function r5e(){return null}function n5e(t){return t===null}Uee.exports=new e5e(\"tag:yaml.org,2002:null\",{kind:\"scalar\",resolve:t5e,construct:r5e,predicate:n5e,represent:{canonical:function(){return\"~\"},lowercase:function(){return\"null\"},uppercase:function(){return\"NULL\"},camelcase:function(){return\"Null\"}},defaultStyle:\"lowercase\"})});var jee=_((nQt,Hee)=>{\"use strict\";var i5e=Ss();function s5e(t){if(t===null)return!1;var e=t.length;return e===4&&(t===\"true\"||t===\"True\"||t===\"TRUE\")||e===5&&(t===\"false\"||t===\"False\"||t===\"FALSE\")}function o5e(t){return t===\"true\"||t===\"True\"||t===\"TRUE\"}function a5e(t){return Object.prototype.toString.call(t)===\"[object Boolean]\"}Hee.exports=new i5e(\"tag:yaml.org,2002:bool\",{kind:\"scalar\",resolve:s5e,construct:o5e,predicate:a5e,represent:{lowercase:function(t){return t?\"true\":\"false\"},uppercase:function(t){return t?\"TRUE\":\"FALSE\"},camelcase:function(t){return t?\"True\":\"False\"}},defaultStyle:\"lowercase\"})});var qee=_((iQt,Gee)=>{\"use strict\";var l5e=Pd(),c5e=Ss();function u5e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function f5e(t){return 48<=t&&t<=55}function A5e(t){return 48<=t&&t<=57}function p5e(t){if(t===null)return!1;var e=t.length,r=0,s=!1,a;if(!e)return!1;if(a=t[r],(a===\"-\"||a===\"+\")&&(a=t[++r]),a===\"0\"){if(r+1===e)return!0;if(a=t[++r],a===\"b\"){for(r++;r<e;r++)if(a=t[r],a!==\"_\"){if(a!==\"0\"&&a!==\"1\")return!1;s=!0}return s&&a!==\"_\"}if(a===\"x\"){for(r++;r<e;r++)if(a=t[r],a!==\"_\"){if(!u5e(t.charCodeAt(r)))return!1;s=!0}return s&&a!==\"_\"}for(;r<e;r++)if(a=t[r],a!==\"_\"){if(!f5e(t.charCodeAt(r)))return!1;s=!0}return s&&a!==\"_\"}if(a===\"_\")return!1;for(;r<e;r++)if(a=t[r],a!==\"_\"){if(a===\":\")break;if(!A5e(t.charCodeAt(r)))return!1;s=!0}return!s||a===\"_\"?!1:a!==\":\"?!0:/^(:[0-5]?[0-9])+$/.test(t.slice(r))}function h5e(t){var e=t,r=1,s,a,n=[];return e.indexOf(\"_\")!==-1&&(e=e.replace(/_/g,\"\")),s=e[0],(s===\"-\"||s===\"+\")&&(s===\"-\"&&(r=-1),e=e.slice(1),s=e[0]),e===\"0\"?0:s===\"0\"?e[1]===\"b\"?r*parseInt(e.slice(2),2):e[1]===\"x\"?r*parseInt(e,16):r*parseInt(e,8):e.indexOf(\":\")!==-1?(e.split(\":\").forEach(function(c){n.unshift(parseInt(c,10))}),e=0,a=1,n.forEach(function(c){e+=c*a,a*=60}),r*e):r*parseInt(e,10)}function g5e(t){return Object.prototype.toString.call(t)===\"[object Number]\"&&t%1===0&&!l5e.isNegativeZero(t)}Gee.exports=new c5e(\"tag:yaml.org,2002:int\",{kind:\"scalar\",resolve:p5e,construct:h5e,predicate:g5e,represent:{binary:function(t){return t>=0?\"0b\"+t.toString(2):\"-0b\"+t.toString(2).slice(1)},octal:function(t){return t>=0?\"0\"+t.toString(8):\"-0\"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?\"0x\"+t.toString(16).toUpperCase():\"-0x\"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:\"decimal\",styleAliases:{binary:[2,\"bin\"],octal:[8,\"oct\"],decimal:[10,\"dec\"],hexadecimal:[16,\"hex\"]}})});var Vee=_((sQt,Yee)=>{\"use strict\";var Wee=Pd(),d5e=Ss(),m5e=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 y5e(t){return!(t===null||!m5e.test(t)||t[t.length-1]===\"_\")}function E5e(t){var e,r,s,a;return e=t.replace(/_/g,\"\").toLowerCase(),r=e[0]===\"-\"?-1:1,a=[],\"+-\".indexOf(e[0])>=0&&(e=e.slice(1)),e===\".inf\"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===\".nan\"?NaN:e.indexOf(\":\")>=0?(e.split(\":\").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,s=1,a.forEach(function(n){e+=n*s,s*=60}),r*e):r*parseFloat(e,10)}var I5e=/^[-+]?[0-9]+e/;function C5e(t,e){var r;if(isNaN(t))switch(e){case\"lowercase\":return\".nan\";case\"uppercase\":return\".NAN\";case\"camelcase\":return\".NaN\"}else if(Number.POSITIVE_INFINITY===t)switch(e){case\"lowercase\":return\".inf\";case\"uppercase\":return\".INF\";case\"camelcase\":return\".Inf\"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case\"lowercase\":return\"-.inf\";case\"uppercase\":return\"-.INF\";case\"camelcase\":return\"-.Inf\"}else if(Wee.isNegativeZero(t))return\"-0.0\";return r=t.toString(10),I5e.test(r)?r.replace(\"e\",\".e\"):r}function w5e(t){return Object.prototype.toString.call(t)===\"[object Number]\"&&(t%1!==0||Wee.isNegativeZero(t))}Yee.exports=new d5e(\"tag:yaml.org,2002:float\",{kind:\"scalar\",resolve:y5e,construct:E5e,predicate:w5e,represent:C5e,defaultStyle:\"lowercase\"})});var VU=_((oQt,Jee)=>{\"use strict\";var B5e=bd();Jee.exports=new B5e({include:[dx()],implicit:[_ee(),jee(),qee(),Vee()]})});var JU=_((aQt,Kee)=>{\"use strict\";var v5e=bd();Kee.exports=new v5e({include:[VU()]})});var $ee=_((lQt,Xee)=>{\"use strict\";var S5e=Ss(),zee=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"),Zee=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 D5e(t){return t===null?!1:zee.exec(t)!==null||Zee.exec(t)!==null}function P5e(t){var e,r,s,a,n,c,f,p=0,h=null,E,C,S;if(e=zee.exec(t),e===null&&(e=Zee.exec(t)),e===null)throw new Error(\"Date resolve error\");if(r=+e[1],s=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,s,a));if(n=+e[4],c=+e[5],f=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+=\"0\";p=+p}return e[9]&&(E=+e[10],C=+(e[11]||0),h=(E*60+C)*6e4,e[9]===\"-\"&&(h=-h)),S=new Date(Date.UTC(r,s,a,n,c,f,p)),h&&S.setTime(S.getTime()-h),S}function b5e(t){return t.toISOString()}Xee.exports=new S5e(\"tag:yaml.org,2002:timestamp\",{kind:\"scalar\",resolve:D5e,construct:P5e,instanceOf:Date,represent:b5e})});var tte=_((cQt,ete)=>{\"use strict\";var x5e=Ss();function k5e(t){return t===\"<<\"||t===null}ete.exports=new x5e(\"tag:yaml.org,2002:merge\",{kind:\"scalar\",resolve:k5e})});var ite=_((uQt,nte)=>{\"use strict\";var xd;try{rte=Ie,xd=rte(\"buffer\").Buffer}catch{}var rte,Q5e=Ss(),KU=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\\r`;function R5e(t){if(t===null)return!1;var e,r,s=0,a=t.length,n=KU;for(r=0;r<a;r++)if(e=n.indexOf(t.charAt(r)),!(e>64)){if(e<0)return!1;s+=6}return s%8===0}function T5e(t){var e,r,s=t.replace(/[\\r\\n=]/g,\"\"),a=s.length,n=KU,c=0,f=[];for(e=0;e<a;e++)e%4===0&&e&&(f.push(c>>16&255),f.push(c>>8&255),f.push(c&255)),c=c<<6|n.indexOf(s.charAt(e));return r=a%4*6,r===0?(f.push(c>>16&255),f.push(c>>8&255),f.push(c&255)):r===18?(f.push(c>>10&255),f.push(c>>2&255)):r===12&&f.push(c>>4&255),xd?xd.from?xd.from(f):new xd(f):f}function F5e(t){var e=\"\",r=0,s,a,n=t.length,c=KU;for(s=0;s<n;s++)s%3===0&&s&&(e+=c[r>>18&63],e+=c[r>>12&63],e+=c[r>>6&63],e+=c[r&63]),r=(r<<8)+t[s];return a=n%3,a===0?(e+=c[r>>18&63],e+=c[r>>12&63],e+=c[r>>6&63],e+=c[r&63]):a===2?(e+=c[r>>10&63],e+=c[r>>4&63],e+=c[r<<2&63],e+=c[64]):a===1&&(e+=c[r>>2&63],e+=c[r<<4&63],e+=c[64],e+=c[64]),e}function N5e(t){return xd&&xd.isBuffer(t)}nte.exports=new Q5e(\"tag:yaml.org,2002:binary\",{kind:\"scalar\",resolve:R5e,construct:T5e,predicate:N5e,represent:F5e})});var ote=_((AQt,ste)=>{\"use strict\";var O5e=Ss(),L5e=Object.prototype.hasOwnProperty,M5e=Object.prototype.toString;function U5e(t){if(t===null)return!0;var e=[],r,s,a,n,c,f=t;for(r=0,s=f.length;r<s;r+=1){if(a=f[r],c=!1,M5e.call(a)!==\"[object Object]\")return!1;for(n in a)if(L5e.call(a,n))if(!c)c=!0;else return!1;if(!c)return!1;if(e.indexOf(n)===-1)e.push(n);else return!1}return!0}function _5e(t){return t!==null?t:[]}ste.exports=new O5e(\"tag:yaml.org,2002:omap\",{kind:\"sequence\",resolve:U5e,construct:_5e})});var lte=_((pQt,ate)=>{\"use strict\";var H5e=Ss(),j5e=Object.prototype.toString;function G5e(t){if(t===null)return!0;var e,r,s,a,n,c=t;for(n=new Array(c.length),e=0,r=c.length;e<r;e+=1){if(s=c[e],j5e.call(s)!==\"[object Object]\"||(a=Object.keys(s),a.length!==1))return!1;n[e]=[a[0],s[a[0]]]}return!0}function q5e(t){if(t===null)return[];var e,r,s,a,n,c=t;for(n=new Array(c.length),e=0,r=c.length;e<r;e+=1)s=c[e],a=Object.keys(s),n[e]=[a[0],s[a[0]]];return n}ate.exports=new H5e(\"tag:yaml.org,2002:pairs\",{kind:\"sequence\",resolve:G5e,construct:q5e})});var ute=_((hQt,cte)=>{\"use strict\";var W5e=Ss(),Y5e=Object.prototype.hasOwnProperty;function V5e(t){if(t===null)return!0;var e,r=t;for(e in r)if(Y5e.call(r,e)&&r[e]!==null)return!1;return!0}function J5e(t){return t!==null?t:{}}cte.exports=new W5e(\"tag:yaml.org,2002:set\",{kind:\"mapping\",resolve:V5e,construct:J5e})});var gE=_((gQt,fte)=>{\"use strict\";var K5e=bd();fte.exports=new K5e({include:[JU()],implicit:[$ee(),tte()],explicit:[ite(),ote(),lte(),ute()]})});var pte=_((dQt,Ate)=>{\"use strict\";var z5e=Ss();function Z5e(){return!0}function X5e(){}function $5e(){return\"\"}function e9e(t){return typeof t>\"u\"}Ate.exports=new z5e(\"tag:yaml.org,2002:js/undefined\",{kind:\"scalar\",resolve:Z5e,construct:X5e,predicate:e9e,represent:$5e})});var gte=_((mQt,hte)=>{\"use strict\";var t9e=Ss();function r9e(t){if(t===null||t.length===0)return!1;var e=t,r=/\\/([gim]*)$/.exec(t),s=\"\";return!(e[0]===\"/\"&&(r&&(s=r[1]),s.length>3||e[e.length-s.length-1]!==\"/\"))}function n9e(t){var e=t,r=/\\/([gim]*)$/.exec(t),s=\"\";return e[0]===\"/\"&&(r&&(s=r[1]),e=e.slice(1,e.length-s.length-1)),new RegExp(e,s)}function i9e(t){var e=\"/\"+t.source+\"/\";return t.global&&(e+=\"g\"),t.multiline&&(e+=\"m\"),t.ignoreCase&&(e+=\"i\"),e}function s9e(t){return Object.prototype.toString.call(t)===\"[object RegExp]\"}hte.exports=new t9e(\"tag:yaml.org,2002:js/regexp\",{kind:\"scalar\",resolve:r9e,construct:n9e,predicate:s9e,represent:i9e})});var yte=_((yQt,mte)=>{\"use strict\";var mx;try{dte=Ie,mx=dte(\"esprima\")}catch{typeof window<\"u\"&&(mx=window.esprima)}var dte,o9e=Ss();function a9e(t){if(t===null)return!1;try{var e=\"(\"+t+\")\",r=mx.parse(e,{range:!0});return!(r.type!==\"Program\"||r.body.length!==1||r.body[0].type!==\"ExpressionStatement\"||r.body[0].expression.type!==\"ArrowFunctionExpression\"&&r.body[0].expression.type!==\"FunctionExpression\")}catch{return!1}}function l9e(t){var e=\"(\"+t+\")\",r=mx.parse(e,{range:!0}),s=[],a;if(r.type!==\"Program\"||r.body.length!==1||r.body[0].type!==\"ExpressionStatement\"||r.body[0].expression.type!==\"ArrowFunctionExpression\"&&r.body[0].expression.type!==\"FunctionExpression\")throw new Error(\"Failed to resolve function\");return r.body[0].expression.params.forEach(function(n){s.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type===\"BlockStatement\"?new Function(s,e.slice(a[0]+1,a[1]-1)):new Function(s,\"return \"+e.slice(a[0],a[1]))}function c9e(t){return t.toString()}function u9e(t){return Object.prototype.toString.call(t)===\"[object Function]\"}mte.exports=new o9e(\"tag:yaml.org,2002:js/function\",{kind:\"scalar\",resolve:a9e,construct:l9e,predicate:u9e,represent:c9e})});var G2=_((IQt,Ite)=>{\"use strict\";var Ete=bd();Ite.exports=Ete.DEFAULT=new Ete({include:[gE()],explicit:[pte(),gte(),yte()]})});var Ute=_((CQt,q2)=>{\"use strict\";var Ip=Pd(),Pte=pE(),f9e=Pee(),bte=gE(),A9e=G2(),i0=Object.prototype.hasOwnProperty,yx=1,xte=2,kte=3,Ex=4,zU=1,p9e=2,Cte=3,h9e=/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,g9e=/[\\x85\\u2028\\u2029]/,d9e=/[,\\[\\]\\{\\}]/,Qte=/^(?:!|!!|![a-z\\-]+!)$/i,Rte=/^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;function wte(t){return Object.prototype.toString.call(t)}function jf(t){return t===10||t===13}function Qd(t){return t===9||t===32}function rl(t){return t===9||t===32||t===10||t===13}function dE(t){return t===44||t===91||t===93||t===123||t===125}function m9e(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function y9e(t){return t===120?2:t===117?4:t===85?8:0}function E9e(t){return 48<=t&&t<=57?t-48:-1}function Bte(t){return t===48?\"\\0\":t===97?\"\\x07\":t===98?\"\\b\":t===116||t===9?\"\t\":t===110?`\n`:t===118?\"\\v\":t===102?\"\\f\":t===114?\"\\r\":t===101?\"\\x1B\":t===32?\" \":t===34?'\"':t===47?\"/\":t===92?\"\\\\\":t===78?\"\\x85\":t===95?\"\\xA0\":t===76?\"\\u2028\":t===80?\"\\u2029\":\"\"}function I9e(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var Tte=new Array(256),Fte=new Array(256);for(kd=0;kd<256;kd++)Tte[kd]=Bte(kd)?1:0,Fte[kd]=Bte(kd);var kd;function C9e(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||A9e,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=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Nte(t,e){return new Pte(e,new f9e(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function Tr(t,e){throw Nte(t,e)}function Ix(t,e){t.onWarning&&t.onWarning.call(null,Nte(t,e))}var vte={YAML:function(e,r,s){var a,n,c;e.version!==null&&Tr(e,\"duplication of %YAML directive\"),s.length!==1&&Tr(e,\"YAML directive accepts exactly one argument\"),a=/^([0-9]+)\\.([0-9]+)$/.exec(s[0]),a===null&&Tr(e,\"ill-formed argument of the YAML directive\"),n=parseInt(a[1],10),c=parseInt(a[2],10),n!==1&&Tr(e,\"unacceptable YAML version of the document\"),e.version=s[0],e.checkLineBreaks=c<2,c!==1&&c!==2&&Ix(e,\"unsupported YAML version of the document\")},TAG:function(e,r,s){var a,n;s.length!==2&&Tr(e,\"TAG directive accepts exactly two arguments\"),a=s[0],n=s[1],Qte.test(a)||Tr(e,\"ill-formed tag handle (first argument) of the TAG directive\"),i0.call(e.tagMap,a)&&Tr(e,'there is a previously declared suffix for \"'+a+'\" tag handle'),Rte.test(n)||Tr(e,\"ill-formed tag prefix (second argument) of the TAG directive\"),e.tagMap[a]=n}};function n0(t,e,r,s){var a,n,c,f;if(e<r){if(f=t.input.slice(e,r),s)for(a=0,n=f.length;a<n;a+=1)c=f.charCodeAt(a),c===9||32<=c&&c<=1114111||Tr(t,\"expected valid JSON character\");else h9e.test(f)&&Tr(t,\"the stream contains non-printable characters\");t.result+=f}}function Ste(t,e,r,s){var a,n,c,f;for(Ip.isObject(r)||Tr(t,\"cannot merge mappings; the provided source object is unacceptable\"),a=Object.keys(r),c=0,f=a.length;c<f;c+=1)n=a[c],i0.call(e,n)||(e[n]=r[n],s[n]=!0)}function mE(t,e,r,s,a,n,c,f){var p,h;if(Array.isArray(a))for(a=Array.prototype.slice.call(a),p=0,h=a.length;p<h;p+=1)Array.isArray(a[p])&&Tr(t,\"nested arrays are not supported inside keys\"),typeof a==\"object\"&&wte(a[p])===\"[object Object]\"&&(a[p]=\"[object Object]\");if(typeof a==\"object\"&&wte(a)===\"[object Object]\"&&(a=\"[object Object]\"),a=String(a),e===null&&(e={}),s===\"tag:yaml.org,2002:merge\")if(Array.isArray(n))for(p=0,h=n.length;p<h;p+=1)Ste(t,e,n[p],r);else Ste(t,e,n,r);else!t.json&&!i0.call(r,a)&&i0.call(e,a)&&(t.line=c||t.line,t.position=f||t.position,Tr(t,\"duplicated mapping key\")),e[a]=n,delete r[a];return e}function ZU(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):Tr(t,\"a line break is expected\"),t.line+=1,t.lineStart=t.position}function os(t,e,r){for(var s=0,a=t.input.charCodeAt(t.position);a!==0;){for(;Qd(a);)a=t.input.charCodeAt(++t.position);if(e&&a===35)do a=t.input.charCodeAt(++t.position);while(a!==10&&a!==13&&a!==0);if(jf(a))for(ZU(t),a=t.input.charCodeAt(t.position),s++,t.lineIndent=0;a===32;)t.lineIndent++,a=t.input.charCodeAt(++t.position);else break}return r!==-1&&s!==0&&t.lineIndent<r&&Ix(t,\"deficient indentation\"),s}function Cx(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r===45||r===46)&&r===t.input.charCodeAt(e+1)&&r===t.input.charCodeAt(e+2)&&(e+=3,r=t.input.charCodeAt(e),r===0||rl(r)))}function XU(t,e){e===1?t.result+=\" \":e>1&&(t.result+=Ip.repeat(`\n`,e-1))}function w9e(t,e,r){var s,a,n,c,f,p,h,E,C=t.kind,S=t.result,b;if(b=t.input.charCodeAt(t.position),rl(b)||dE(b)||b===35||b===38||b===42||b===33||b===124||b===62||b===39||b===34||b===37||b===64||b===96||(b===63||b===45)&&(a=t.input.charCodeAt(t.position+1),rl(a)||r&&dE(a)))return!1;for(t.kind=\"scalar\",t.result=\"\",n=c=t.position,f=!1;b!==0;){if(b===58){if(a=t.input.charCodeAt(t.position+1),rl(a)||r&&dE(a))break}else if(b===35){if(s=t.input.charCodeAt(t.position-1),rl(s))break}else{if(t.position===t.lineStart&&Cx(t)||r&&dE(b))break;if(jf(b))if(p=t.line,h=t.lineStart,E=t.lineIndent,os(t,!1,-1),t.lineIndent>=e){f=!0,b=t.input.charCodeAt(t.position);continue}else{t.position=c,t.line=p,t.lineStart=h,t.lineIndent=E;break}}f&&(n0(t,n,c,!1),XU(t,t.line-p),n=c=t.position,f=!1),Qd(b)||(c=t.position+1),b=t.input.charCodeAt(++t.position)}return n0(t,n,c,!1),t.result?!0:(t.kind=C,t.result=S,!1)}function B9e(t,e){var r,s,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind=\"scalar\",t.result=\"\",t.position++,s=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(n0(t,s,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)s=t.position,t.position++,a=t.position;else return!0;else jf(r)?(n0(t,s,a,!0),XU(t,os(t,!1,e)),s=a=t.position):t.position===t.lineStart&&Cx(t)?Tr(t,\"unexpected end of the document within a single quoted scalar\"):(t.position++,a=t.position);Tr(t,\"unexpected end of the stream within a single quoted scalar\")}function v9e(t,e){var r,s,a,n,c,f;if(f=t.input.charCodeAt(t.position),f!==34)return!1;for(t.kind=\"scalar\",t.result=\"\",t.position++,r=s=t.position;(f=t.input.charCodeAt(t.position))!==0;){if(f===34)return n0(t,r,t.position,!0),t.position++,!0;if(f===92){if(n0(t,r,t.position,!0),f=t.input.charCodeAt(++t.position),jf(f))os(t,!1,e);else if(f<256&&Tte[f])t.result+=Fte[f],t.position++;else if((c=y9e(f))>0){for(a=c,n=0;a>0;a--)f=t.input.charCodeAt(++t.position),(c=m9e(f))>=0?n=(n<<4)+c:Tr(t,\"expected hexadecimal character\");t.result+=I9e(n),t.position++}else Tr(t,\"unknown escape sequence\");r=s=t.position}else jf(f)?(n0(t,r,s,!0),XU(t,os(t,!1,e)),r=s=t.position):t.position===t.lineStart&&Cx(t)?Tr(t,\"unexpected end of the document within a double quoted scalar\"):(t.position++,s=t.position)}Tr(t,\"unexpected end of the stream within a double quoted scalar\")}function S9e(t,e){var r=!0,s,a=t.tag,n,c=t.anchor,f,p,h,E,C,S={},b,I,T,N;if(N=t.input.charCodeAt(t.position),N===91)p=93,C=!1,n=[];else if(N===123)p=125,C=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),N=t.input.charCodeAt(++t.position);N!==0;){if(os(t,!0,e),N=t.input.charCodeAt(t.position),N===p)return t.position++,t.tag=a,t.anchor=c,t.kind=C?\"mapping\":\"sequence\",t.result=n,!0;r||Tr(t,\"missed comma between flow collection entries\"),I=b=T=null,h=E=!1,N===63&&(f=t.input.charCodeAt(t.position+1),rl(f)&&(h=E=!0,t.position++,os(t,!0,e))),s=t.line,yE(t,e,yx,!1,!0),I=t.tag,b=t.result,os(t,!0,e),N=t.input.charCodeAt(t.position),(E||t.line===s)&&N===58&&(h=!0,N=t.input.charCodeAt(++t.position),os(t,!0,e),yE(t,e,yx,!1,!0),T=t.result),C?mE(t,n,S,I,b,T):h?n.push(mE(t,null,S,I,b,T)):n.push(b),os(t,!0,e),N=t.input.charCodeAt(t.position),N===44?(r=!0,N=t.input.charCodeAt(++t.position)):r=!1}Tr(t,\"unexpected end of the stream within a flow collection\")}function D9e(t,e){var r,s,a=zU,n=!1,c=!1,f=e,p=0,h=!1,E,C;if(C=t.input.charCodeAt(t.position),C===124)s=!1;else if(C===62)s=!0;else return!1;for(t.kind=\"scalar\",t.result=\"\";C!==0;)if(C=t.input.charCodeAt(++t.position),C===43||C===45)zU===a?a=C===43?Cte:p9e:Tr(t,\"repeat of a chomping mode identifier\");else if((E=E9e(C))>=0)E===0?Tr(t,\"bad explicit indentation width of a block scalar; it cannot be less than one\"):c?Tr(t,\"repeat of an indentation width identifier\"):(f=e+E-1,c=!0);else break;if(Qd(C)){do C=t.input.charCodeAt(++t.position);while(Qd(C));if(C===35)do C=t.input.charCodeAt(++t.position);while(!jf(C)&&C!==0)}for(;C!==0;){for(ZU(t),t.lineIndent=0,C=t.input.charCodeAt(t.position);(!c||t.lineIndent<f)&&C===32;)t.lineIndent++,C=t.input.charCodeAt(++t.position);if(!c&&t.lineIndent>f&&(f=t.lineIndent),jf(C)){p++;continue}if(t.lineIndent<f){a===Cte?t.result+=Ip.repeat(`\n`,n?1+p:p):a===zU&&n&&(t.result+=`\n`);break}for(s?Qd(C)?(h=!0,t.result+=Ip.repeat(`\n`,n?1+p:p)):h?(h=!1,t.result+=Ip.repeat(`\n`,p+1)):p===0?n&&(t.result+=\" \"):t.result+=Ip.repeat(`\n`,p):t.result+=Ip.repeat(`\n`,n?1+p:p),n=!0,c=!0,p=0,r=t.position;!jf(C)&&C!==0;)C=t.input.charCodeAt(++t.position);n0(t,r,t.position,!1)}return!0}function Dte(t,e){var r,s=t.tag,a=t.anchor,n=[],c,f=!1,p;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),p=t.input.charCodeAt(t.position);p!==0&&!(p!==45||(c=t.input.charCodeAt(t.position+1),!rl(c)));){if(f=!0,t.position++,os(t,!0,-1)&&t.lineIndent<=e){n.push(null),p=t.input.charCodeAt(t.position);continue}if(r=t.line,yE(t,e,kte,!1,!0),n.push(t.result),os(t,!0,-1),p=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&p!==0)Tr(t,\"bad indentation of a sequence entry\");else if(t.lineIndent<e)break}return f?(t.tag=s,t.anchor=a,t.kind=\"sequence\",t.result=n,!0):!1}function P9e(t,e,r){var s,a,n,c,f=t.tag,p=t.anchor,h={},E={},C=null,S=null,b=null,I=!1,T=!1,N;for(t.anchor!==null&&(t.anchorMap[t.anchor]=h),N=t.input.charCodeAt(t.position);N!==0;){if(s=t.input.charCodeAt(t.position+1),n=t.line,c=t.position,(N===63||N===58)&&rl(s))N===63?(I&&(mE(t,h,E,C,S,null),C=S=b=null),T=!0,I=!0,a=!0):I?(I=!1,a=!0):Tr(t,\"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\"),t.position+=1,N=s;else if(yE(t,r,xte,!1,!0))if(t.line===n){for(N=t.input.charCodeAt(t.position);Qd(N);)N=t.input.charCodeAt(++t.position);if(N===58)N=t.input.charCodeAt(++t.position),rl(N)||Tr(t,\"a whitespace character is expected after the key-value separator within a block mapping\"),I&&(mE(t,h,E,C,S,null),C=S=b=null),T=!0,I=!1,a=!1,C=t.tag,S=t.result;else if(T)Tr(t,\"can not read an implicit mapping pair; a colon is missed\");else return t.tag=f,t.anchor=p,!0}else if(T)Tr(t,\"can not read a block mapping entry; a multiline key may not be an implicit key\");else return t.tag=f,t.anchor=p,!0;else break;if((t.line===n||t.lineIndent>e)&&(yE(t,e,Ex,!0,a)&&(I?S=t.result:b=t.result),I||(mE(t,h,E,C,S,b,n,c),C=S=b=null),os(t,!0,-1),N=t.input.charCodeAt(t.position)),t.lineIndent>e&&N!==0)Tr(t,\"bad indentation of a mapping entry\");else if(t.lineIndent<e)break}return I&&mE(t,h,E,C,S,null),T&&(t.tag=f,t.anchor=p,t.kind=\"mapping\",t.result=h),T}function b9e(t){var e,r=!1,s=!1,a,n,c;if(c=t.input.charCodeAt(t.position),c!==33)return!1;if(t.tag!==null&&Tr(t,\"duplication of a tag property\"),c=t.input.charCodeAt(++t.position),c===60?(r=!0,c=t.input.charCodeAt(++t.position)):c===33?(s=!0,a=\"!!\",c=t.input.charCodeAt(++t.position)):a=\"!\",e=t.position,r){do c=t.input.charCodeAt(++t.position);while(c!==0&&c!==62);t.position<t.length?(n=t.input.slice(e,t.position),c=t.input.charCodeAt(++t.position)):Tr(t,\"unexpected end of the stream within a verbatim tag\")}else{for(;c!==0&&!rl(c);)c===33&&(s?Tr(t,\"tag suffix cannot contain exclamation marks\"):(a=t.input.slice(e-1,t.position+1),Qte.test(a)||Tr(t,\"named tag handle cannot contain such characters\"),s=!0,e=t.position+1)),c=t.input.charCodeAt(++t.position);n=t.input.slice(e,t.position),d9e.test(n)&&Tr(t,\"tag suffix cannot contain flow indicator characters\")}return n&&!Rte.test(n)&&Tr(t,\"tag name cannot contain such characters: \"+n),r?t.tag=n:i0.call(t.tagMap,a)?t.tag=t.tagMap[a]+n:a===\"!\"?t.tag=\"!\"+n:a===\"!!\"?t.tag=\"tag:yaml.org,2002:\"+n:Tr(t,'undeclared tag handle \"'+a+'\"'),!0}function x9e(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&Tr(t,\"duplication of an anchor property\"),r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!rl(r)&&!dE(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&Tr(t,\"name of an anchor node must contain at least one character\"),t.anchor=t.input.slice(e,t.position),!0}function k9e(t){var e,r,s;if(s=t.input.charCodeAt(t.position),s!==42)return!1;for(s=t.input.charCodeAt(++t.position),e=t.position;s!==0&&!rl(s)&&!dE(s);)s=t.input.charCodeAt(++t.position);return t.position===e&&Tr(t,\"name of an alias node must contain at least one character\"),r=t.input.slice(e,t.position),i0.call(t.anchorMap,r)||Tr(t,'unidentified alias \"'+r+'\"'),t.result=t.anchorMap[r],os(t,!0,-1),!0}function yE(t,e,r,s,a){var n,c,f,p=1,h=!1,E=!1,C,S,b,I,T;if(t.listener!==null&&t.listener(\"open\",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,n=c=f=Ex===r||kte===r,s&&os(t,!0,-1)&&(h=!0,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)),p===1)for(;b9e(t)||x9e(t);)os(t,!0,-1)?(h=!0,f=n,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)):f=!1;if(f&&(f=h||a),(p===1||Ex===r)&&(yx===r||xte===r?I=e:I=e+1,T=t.position-t.lineStart,p===1?f&&(Dte(t,T)||P9e(t,T,I))||S9e(t,I)?E=!0:(c&&D9e(t,I)||B9e(t,I)||v9e(t,I)?E=!0:k9e(t)?(E=!0,(t.tag!==null||t.anchor!==null)&&Tr(t,\"alias node should not have any properties\")):w9e(t,I,yx===r)&&(E=!0,t.tag===null&&(t.tag=\"?\")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):p===0&&(E=f&&Dte(t,T))),t.tag!==null&&t.tag!==\"!\")if(t.tag===\"?\"){for(t.result!==null&&t.kind!==\"scalar\"&&Tr(t,'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"'+t.kind+'\"'),C=0,S=t.implicitTypes.length;C<S;C+=1)if(b=t.implicitTypes[C],b.resolve(t.result)){t.result=b.construct(t.result),t.tag=b.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else i0.call(t.typeMap[t.kind||\"fallback\"],t.tag)?(b=t.typeMap[t.kind||\"fallback\"][t.tag],t.result!==null&&b.kind!==t.kind&&Tr(t,\"unacceptable node kind for !<\"+t.tag+'> tag; it should be \"'+b.kind+'\", not \"'+t.kind+'\"'),b.resolve(t.result)?(t.result=b.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Tr(t,\"cannot resolve a node with !<\"+t.tag+\"> explicit tag\")):Tr(t,\"unknown tag !<\"+t.tag+\">\");return t.listener!==null&&t.listener(\"close\",t),t.tag!==null||t.anchor!==null||E}function Q9e(t){var e=t.position,r,s,a,n=!1,c;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(c=t.input.charCodeAt(t.position))!==0&&(os(t,!0,-1),c=t.input.charCodeAt(t.position),!(t.lineIndent>0||c!==37));){for(n=!0,c=t.input.charCodeAt(++t.position),r=t.position;c!==0&&!rl(c);)c=t.input.charCodeAt(++t.position);for(s=t.input.slice(r,t.position),a=[],s.length<1&&Tr(t,\"directive name must not be less than one character in length\");c!==0;){for(;Qd(c);)c=t.input.charCodeAt(++t.position);if(c===35){do c=t.input.charCodeAt(++t.position);while(c!==0&&!jf(c));break}if(jf(c))break;for(r=t.position;c!==0&&!rl(c);)c=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}c!==0&&ZU(t),i0.call(vte,s)?vte[s](t,s,a):Ix(t,'unknown document directive \"'+s+'\"')}if(os(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,os(t,!0,-1)):n&&Tr(t,\"directives end mark is expected\"),yE(t,t.lineIndent-1,Ex,!1,!0),os(t,!0,-1),t.checkLineBreaks&&g9e.test(t.input.slice(e,t.position))&&Ix(t,\"non-ASCII line breaks are interpreted as content\"),t.documents.push(t.result),t.position===t.lineStart&&Cx(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,os(t,!0,-1));return}if(t.position<t.length-1)Tr(t,\"end of the stream or a document separator is expected\");else return}function Ote(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`\n`),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new C9e(t,e),s=t.indexOf(\"\\0\");for(s!==-1&&(r.position=s,Tr(r,\"null byte is not allowed in input\")),r.input+=\"\\0\";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)Q9e(r);return r.documents}function Lte(t,e,r){e!==null&&typeof e==\"object\"&&typeof r>\"u\"&&(r=e,e=null);var s=Ote(t,r);if(typeof e!=\"function\")return s;for(var a=0,n=s.length;a<n;a+=1)e(s[a])}function Mte(t,e){var r=Ote(t,e);if(r.length!==0){if(r.length===1)return r[0];throw new Pte(\"expected a single document in the stream, but found more\")}}function R9e(t,e,r){return typeof e==\"object\"&&e!==null&&typeof r>\"u\"&&(r=e,e=null),Lte(t,e,Ip.extend({schema:bte},r))}function T9e(t,e){return Mte(t,Ip.extend({schema:bte},e))}q2.exports.loadAll=Lte;q2.exports.load=Mte;q2.exports.safeLoadAll=R9e;q2.exports.safeLoad=T9e});var lre=_((wQt,r_)=>{\"use strict\";var Y2=Pd(),V2=pE(),F9e=G2(),N9e=gE(),Vte=Object.prototype.toString,Jte=Object.prototype.hasOwnProperty,O9e=9,W2=10,L9e=13,M9e=32,U9e=33,_9e=34,Kte=35,H9e=37,j9e=38,G9e=39,q9e=42,zte=44,W9e=45,Zte=58,Y9e=61,V9e=62,J9e=63,K9e=64,Xte=91,$te=93,z9e=96,ere=123,Z9e=124,tre=125,_o={};_o[0]=\"\\\\0\";_o[7]=\"\\\\a\";_o[8]=\"\\\\b\";_o[9]=\"\\\\t\";_o[10]=\"\\\\n\";_o[11]=\"\\\\v\";_o[12]=\"\\\\f\";_o[13]=\"\\\\r\";_o[27]=\"\\\\e\";_o[34]='\\\\\"';_o[92]=\"\\\\\\\\\";_o[133]=\"\\\\N\";_o[160]=\"\\\\_\";_o[8232]=\"\\\\L\";_o[8233]=\"\\\\P\";var X9e=[\"y\",\"Y\",\"yes\",\"Yes\",\"YES\",\"on\",\"On\",\"ON\",\"n\",\"N\",\"no\",\"No\",\"NO\",\"off\",\"Off\",\"OFF\"];function $9e(t,e){var r,s,a,n,c,f,p;if(e===null)return{};for(r={},s=Object.keys(e),a=0,n=s.length;a<n;a+=1)c=s[a],f=String(e[c]),c.slice(0,2)===\"!!\"&&(c=\"tag:yaml.org,2002:\"+c.slice(2)),p=t.compiledTypeMap.fallback[c],p&&Jte.call(p.styleAliases,f)&&(f=p.styleAliases[f]),r[c]=f;return r}function _te(t){var e,r,s;if(e=t.toString(16).toUpperCase(),t<=255)r=\"x\",s=2;else if(t<=65535)r=\"u\",s=4;else if(t<=4294967295)r=\"U\",s=8;else throw new V2(\"code point within a string may not be greater than 0xFFFFFFFF\");return\"\\\\\"+r+Y2.repeat(\"0\",s-e.length)+e}function eWe(t){this.schema=t.schema||F9e,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=Y2.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=$9e(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result=\"\",this.duplicates=[],this.usedDuplicates=null}function Hte(t,e){for(var r=Y2.repeat(\" \",e),s=0,a=-1,n=\"\",c,f=t.length;s<f;)a=t.indexOf(`\n`,s),a===-1?(c=t.slice(s),s=f):(c=t.slice(s,a+1),s=a+1),c.length&&c!==`\n`&&(n+=r),n+=c;return n}function $U(t,e){return`\n`+Y2.repeat(\" \",t.indent*e)}function tWe(t,e){var r,s,a;for(r=0,s=t.implicitTypes.length;r<s;r+=1)if(a=t.implicitTypes[r],a.resolve(e))return!0;return!1}function t_(t){return t===M9e||t===O9e}function EE(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==65279||65536<=t&&t<=1114111}function rWe(t){return EE(t)&&!t_(t)&&t!==65279&&t!==L9e&&t!==W2}function jte(t,e){return EE(t)&&t!==65279&&t!==zte&&t!==Xte&&t!==$te&&t!==ere&&t!==tre&&t!==Zte&&(t!==Kte||e&&rWe(e))}function nWe(t){return EE(t)&&t!==65279&&!t_(t)&&t!==W9e&&t!==J9e&&t!==Zte&&t!==zte&&t!==Xte&&t!==$te&&t!==ere&&t!==tre&&t!==Kte&&t!==j9e&&t!==q9e&&t!==U9e&&t!==Z9e&&t!==Y9e&&t!==V9e&&t!==G9e&&t!==_9e&&t!==H9e&&t!==K9e&&t!==z9e}function rre(t){var e=/^\\n* /;return e.test(t)}var nre=1,ire=2,sre=3,ore=4,wx=5;function iWe(t,e,r,s,a){var n,c,f,p=!1,h=!1,E=s!==-1,C=-1,S=nWe(t.charCodeAt(0))&&!t_(t.charCodeAt(t.length-1));if(e)for(n=0;n<t.length;n++){if(c=t.charCodeAt(n),!EE(c))return wx;f=n>0?t.charCodeAt(n-1):null,S=S&&jte(c,f)}else{for(n=0;n<t.length;n++){if(c=t.charCodeAt(n),c===W2)p=!0,E&&(h=h||n-C-1>s&&t[C+1]!==\" \",C=n);else if(!EE(c))return wx;f=n>0?t.charCodeAt(n-1):null,S=S&&jte(c,f)}h=h||E&&n-C-1>s&&t[C+1]!==\" \"}return!p&&!h?S&&!a(t)?nre:ire:r>9&&rre(t)?wx:h?ore:sre}function sWe(t,e,r,s){t.dump=function(){if(e.length===0)return\"''\";if(!t.noCompatMode&&X9e.indexOf(e)!==-1)return\"'\"+e+\"'\";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),c=s||t.flowLevel>-1&&r>=t.flowLevel;function f(p){return tWe(t,p)}switch(iWe(e,c,t.indent,n,f)){case nre:return e;case ire:return\"'\"+e.replace(/'/g,\"''\")+\"'\";case sre:return\"|\"+Gte(e,t.indent)+qte(Hte(e,a));case ore:return\">\"+Gte(e,t.indent)+qte(Hte(oWe(e,n),a));case wx:return'\"'+aWe(e,n)+'\"';default:throw new V2(\"impossible error: invalid scalar style\")}}()}function Gte(t,e){var r=rre(t)?String(e):\"\",s=t[t.length-1]===`\n`,a=s&&(t[t.length-2]===`\n`||t===`\n`),n=a?\"+\":s?\"\":\"-\";return r+n+`\n`}function qte(t){return t[t.length-1]===`\n`?t.slice(0,-1):t}function oWe(t,e){for(var r=/(\\n+)([^\\n]*)/g,s=function(){var h=t.indexOf(`\n`);return h=h!==-1?h:t.length,r.lastIndex=h,Wte(t.slice(0,h),e)}(),a=t[0]===`\n`||t[0]===\" \",n,c;c=r.exec(t);){var f=c[1],p=c[2];n=p[0]===\" \",s+=f+(!a&&!n&&p!==\"\"?`\n`:\"\")+Wte(p,e),a=n}return s}function Wte(t,e){if(t===\"\"||t[0]===\" \")return t;for(var r=/ [^ ]/g,s,a=0,n,c=0,f=0,p=\"\";s=r.exec(t);)f=s.index,f-a>e&&(n=c>a?c:f,p+=`\n`+t.slice(a,n),a=n+1),c=f;return p+=`\n`,t.length-a>e&&c>a?p+=t.slice(a,c)+`\n`+t.slice(c+1):p+=t.slice(a),p.slice(1)}function aWe(t){for(var e=\"\",r,s,a,n=0;n<t.length;n++){if(r=t.charCodeAt(n),r>=55296&&r<=56319&&(s=t.charCodeAt(n+1),s>=56320&&s<=57343)){e+=_te((r-55296)*1024+s-56320+65536),n++;continue}a=_o[r],e+=!a&&EE(r)?t[n]:a||_te(r)}return e}function lWe(t,e,r){var s=\"\",a=t.tag,n,c;for(n=0,c=r.length;n<c;n+=1)Rd(t,e,r[n],!1,!1)&&(n!==0&&(s+=\",\"+(t.condenseFlow?\"\":\" \")),s+=t.dump);t.tag=a,t.dump=\"[\"+s+\"]\"}function cWe(t,e,r,s){var a=\"\",n=t.tag,c,f;for(c=0,f=r.length;c<f;c+=1)Rd(t,e+1,r[c],!0,!0)&&((!s||c!==0)&&(a+=$U(t,e)),t.dump&&W2===t.dump.charCodeAt(0)?a+=\"-\":a+=\"- \",a+=t.dump);t.tag=n,t.dump=a||\"[]\"}function uWe(t,e,r){var s=\"\",a=t.tag,n=Object.keys(r),c,f,p,h,E;for(c=0,f=n.length;c<f;c+=1)E=\"\",c!==0&&(E+=\", \"),t.condenseFlow&&(E+='\"'),p=n[c],h=r[p],Rd(t,e,p,!1,!1)&&(t.dump.length>1024&&(E+=\"? \"),E+=t.dump+(t.condenseFlow?'\"':\"\")+\":\"+(t.condenseFlow?\"\":\" \"),Rd(t,e,h,!1,!1)&&(E+=t.dump,s+=E));t.tag=a,t.dump=\"{\"+s+\"}\"}function fWe(t,e,r,s){var a=\"\",n=t.tag,c=Object.keys(r),f,p,h,E,C,S;if(t.sortKeys===!0)c.sort();else if(typeof t.sortKeys==\"function\")c.sort(t.sortKeys);else if(t.sortKeys)throw new V2(\"sortKeys must be a boolean or a function\");for(f=0,p=c.length;f<p;f+=1)S=\"\",(!s||f!==0)&&(S+=$U(t,e)),h=c[f],E=r[h],Rd(t,e+1,h,!0,!0,!0)&&(C=t.tag!==null&&t.tag!==\"?\"||t.dump&&t.dump.length>1024,C&&(t.dump&&W2===t.dump.charCodeAt(0)?S+=\"?\":S+=\"? \"),S+=t.dump,C&&(S+=$U(t,e)),Rd(t,e+1,E,!0,C)&&(t.dump&&W2===t.dump.charCodeAt(0)?S+=\":\":S+=\": \",S+=t.dump,a+=S));t.tag=n,t.dump=a||\"{}\"}function Yte(t,e,r){var s,a,n,c,f,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,c=a.length;n<c;n+=1)if(f=a[n],(f.instanceOf||f.predicate)&&(!f.instanceOf||typeof e==\"object\"&&e instanceof f.instanceOf)&&(!f.predicate||f.predicate(e))){if(t.tag=r?f.tag:\"?\",f.represent){if(p=t.styleMap[f.tag]||f.defaultStyle,Vte.call(f.represent)===\"[object Function]\")s=f.represent(e,p);else if(Jte.call(f.represent,p))s=f.represent[p](e,p);else throw new V2(\"!<\"+f.tag+'> tag resolver accepts not \"'+p+'\" style');t.dump=s}return!0}return!1}function Rd(t,e,r,s,a,n){t.tag=null,t.dump=r,Yte(t,r,!1)||Yte(t,r,!0);var c=Vte.call(t.dump);s&&(s=t.flowLevel<0||t.flowLevel>e);var f=c===\"[object Object]\"||c===\"[object Array]\",p,h;if(f&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!==\"?\"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump=\"*ref_\"+p;else{if(f&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),c===\"[object Object]\")s&&Object.keys(t.dump).length!==0?(fWe(t,e,t.dump,a),h&&(t.dump=\"&ref_\"+p+t.dump)):(uWe(t,e,t.dump),h&&(t.dump=\"&ref_\"+p+\" \"+t.dump));else if(c===\"[object Array]\"){var E=t.noArrayIndent&&e>0?e-1:e;s&&t.dump.length!==0?(cWe(t,E,t.dump,a),h&&(t.dump=\"&ref_\"+p+t.dump)):(lWe(t,E,t.dump),h&&(t.dump=\"&ref_\"+p+\" \"+t.dump))}else if(c===\"[object String]\")t.tag!==\"?\"&&sWe(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new V2(\"unacceptable kind of an object to dump \"+c)}t.tag!==null&&t.tag!==\"?\"&&(t.dump=\"!<\"+t.tag+\"> \"+t.dump)}return!0}function AWe(t,e){var r=[],s=[],a,n;for(e_(t,r,s),a=0,n=s.length;a<n;a+=1)e.duplicates.push(r[s[a]]);e.usedDuplicates=new Array(n)}function e_(t,e,r){var s,a,n;if(t!==null&&typeof t==\"object\")if(a=e.indexOf(t),a!==-1)r.indexOf(a)===-1&&r.push(a);else if(e.push(t),Array.isArray(t))for(a=0,n=t.length;a<n;a+=1)e_(t[a],e,r);else for(s=Object.keys(t),a=0,n=s.length;a<n;a+=1)e_(t[s[a]],e,r)}function are(t,e){e=e||{};var r=new eWe(e);return r.noRefs||AWe(t,r),Rd(r,0,t,!0,!0)?r.dump+`\n`:\"\"}function pWe(t,e){return are(t,Y2.extend({schema:N9e},e))}r_.exports.dump=are;r_.exports.safeDump=pWe});var ure=_((BQt,qi)=>{\"use strict\";var Bx=Ute(),cre=lre();function vx(t){return function(){throw new Error(\"Function \"+t+\" is deprecated and cannot be used.\")}}qi.exports.Type=Ss();qi.exports.Schema=bd();qi.exports.FAILSAFE_SCHEMA=dx();qi.exports.JSON_SCHEMA=VU();qi.exports.CORE_SCHEMA=JU();qi.exports.DEFAULT_SAFE_SCHEMA=gE();qi.exports.DEFAULT_FULL_SCHEMA=G2();qi.exports.load=Bx.load;qi.exports.loadAll=Bx.loadAll;qi.exports.safeLoad=Bx.safeLoad;qi.exports.safeLoadAll=Bx.safeLoadAll;qi.exports.dump=cre.dump;qi.exports.safeDump=cre.safeDump;qi.exports.YAMLException=pE();qi.exports.MINIMAL_SCHEMA=dx();qi.exports.SAFE_SCHEMA=gE();qi.exports.DEFAULT_SCHEMA=G2();qi.exports.scan=vx(\"scan\");qi.exports.parse=vx(\"parse\");qi.exports.compose=vx(\"compose\");qi.exports.addConstructor=vx(\"addConstructor\")});var Are=_((vQt,fre)=>{\"use strict\";var hWe=ure();fre.exports=hWe});var hre=_((SQt,pre)=>{\"use strict\";function gWe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Td(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name=\"SyntaxError\",typeof Error.captureStackTrace==\"function\"&&Error.captureStackTrace(this,Td)}gWe(Td,Error);Td.buildMessage=function(t,e){var r={literal:function(h){return'\"'+a(h.text)+'\"'},class:function(h){var E=\"\",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+\"-\"+n(h.parts[C][1]):n(h.parts[C]);return\"[\"+(h.inverted?\"^\":\"\")+E+\"]\"},any:function(h){return\"any character\"},end:function(h){return\"end of input\"},other:function(h){return h.description}};function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(E){return\"\\\\x0\"+s(E)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(E){return\"\\\\x\"+s(E)})}function n(h){return h.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\]/g,\"\\\\]\").replace(/\\^/g,\"\\\\^\").replace(/-/g,\"\\\\-\").replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(E){return\"\\\\x0\"+s(E)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(E){return\"\\\\x\"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}switch(E.length){case 1:return E[0];case 2:return E[0]+\" or \"+E[1];default:return E.slice(0,-1).join(\", \")+\", or \"+E[E.length-1]}}function p(h){return h?'\"'+a(h)+'\"':\"end of input\"}return\"Expected \"+f(t)+\" but \"+p(e)+\" found.\"};function dWe(t,e){e=e!==void 0?e:{};var r={},s={Start:lc},a=lc,n=function(te){return[].concat(...te)},c=\"-\",f=dn(\"-\",!1),p=function(te){return te},h=function(te){return Object.assign({},...te)},E=\"#\",C=dn(\"#\",!1),S=Au(),b=function(){return{}},I=\":\",T=dn(\":\",!1),N=function(te,Ee){return{[te]:Ee}},U=\",\",W=dn(\",\",!1),ee=function(te,Ee){return Ee},ie=function(te,Ee,Oe){return Object.assign({},...[te].concat(Ee).map(dt=>({[dt]:Oe})))},ue=function(te){return te},le=function(te){return te},me=Oa(\"correct indentation\"),pe=\" \",Be=dn(\" \",!1),Ce=function(te){return te.length===lr*St},g=function(te){return te.length===(lr+1)*St},we=function(){return lr++,!0},ye=function(){return lr--,!0},Ae=function(){return la()},se=Oa(\"pseudostring\"),X=/^[^\\r\\n\\t ?:,\\][{}#&*!|>'\"%@`\\-]/,De=Kn([\"\\r\",`\n`,\"\t\",\" \",\"?\",\":\",\",\",\"]\",\"[\",\"{\",\"}\",\"#\",\"&\",\"*\",\"!\",\"|\",\">\",\"'\",'\"',\"%\",\"@\",\"`\",\"-\"],!0,!1),Te=/^[^\\r\\n\\t ,\\][{}:#\"']/,mt=Kn([\"\\r\",`\n`,\"\t\",\" \",\",\",\"]\",\"[\",\"{\",\"}\",\":\",\"#\",'\"',\"'\"],!0,!1),j=function(){return la().replace(/^ *| *$/g,\"\")},rt=\"--\",Fe=dn(\"--\",!1),Ne=/^[a-zA-Z\\/0-9]/,be=Kn([[\"a\",\"z\"],[\"A\",\"Z\"],\"/\",[\"0\",\"9\"]],!1,!1),Ve=/^[^\\r\\n\\t :,]/,ke=Kn([\"\\r\",`\n`,\"\t\",\" \",\":\",\",\"],!0,!1),it=\"null\",Ue=dn(\"null\",!1),x=function(){return null},w=\"true\",P=dn(\"true\",!1),y=function(){return!0},F=\"false\",z=dn(\"false\",!1),Z=function(){return!1},$=Oa(\"string\"),oe='\"',xe=dn('\"',!1),Re=function(){return\"\"},lt=function(te){return te},Ct=function(te){return te.join(\"\")},qt=/^[^\"\\\\\\0-\\x1F\\x7F]/,ir=Kn(['\"',\"\\\\\",[\"\\0\",\"\u001f\"],\"\\x7F\"],!0,!1),bt='\\\\\"',gn=dn('\\\\\"',!1),br=function(){return'\"'},Ir=\"\\\\\\\\\",Or=dn(\"\\\\\\\\\",!1),nn=function(){return\"\\\\\"},ai=\"\\\\/\",Io=dn(\"\\\\/\",!1),ts=function(){return\"/\"},$s=\"\\\\b\",Co=dn(\"\\\\b\",!1),Hi=function(){return\"\\b\"},eo=\"\\\\f\",wo=dn(\"\\\\f\",!1),QA=function(){return\"\\f\"},Af=\"\\\\n\",dh=dn(\"\\\\n\",!1),mh=function(){return`\n`},to=\"\\\\r\",jn=dn(\"\\\\r\",!1),Rs=function(){return\"\\r\"},ro=\"\\\\t\",ou=dn(\"\\\\t\",!1),au=function(){return\"\t\"},lu=\"\\\\u\",RA=dn(\"\\\\u\",!1),TA=function(te,Ee,Oe,dt){return String.fromCharCode(parseInt(`0x${te}${Ee}${Oe}${dt}`))},oa=/^[0-9a-fA-F]/,aa=Kn([[\"0\",\"9\"],[\"a\",\"f\"],[\"A\",\"F\"]],!1,!1),FA=Oa(\"blank space\"),gr=/^[ \\t]/,Bo=Kn([\" \",\"\t\"],!1,!1),Me=Oa(\"white space\"),cu=/^[ \\t\\n\\r]/,Cr=Kn([\" \",\"\t\",`\n`,\"\\r\"],!1,!1),pf=`\\r\n`,NA=dn(`\\r\n`,!1),OA=`\n`,uu=dn(`\n`,!1),fu=\"\\r\",oc=dn(\"\\r\",!1),ve=0,Nt=0,ac=[{line:1,column:1}],Oi=0,no=[],Tt=0,xn;if(\"startRule\"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule \"`+e.startRule+'\".');a=s[e.startRule]}function la(){return t.substring(Nt,ve)}function ji(){return Ma(Nt,ve)}function Li(te,Ee){throw Ee=Ee!==void 0?Ee:Ma(Nt,ve),hf([Oa(te)],t.substring(Nt,ve),Ee)}function Na(te,Ee){throw Ee=Ee!==void 0?Ee:Ma(Nt,ve),Ua(te,Ee)}function dn(te,Ee){return{type:\"literal\",text:te,ignoreCase:Ee}}function Kn(te,Ee,Oe){return{type:\"class\",parts:te,inverted:Ee,ignoreCase:Oe}}function Au(){return{type:\"any\"}}function yh(){return{type:\"end\"}}function Oa(te){return{type:\"other\",description:te}}function La(te){var Ee=ac[te],Oe;if(Ee)return Ee;for(Oe=te-1;!ac[Oe];)Oe--;for(Ee=ac[Oe],Ee={line:Ee.line,column:Ee.column};Oe<te;)t.charCodeAt(Oe)===10?(Ee.line++,Ee.column=1):Ee.column++,Oe++;return ac[te]=Ee,Ee}function Ma(te,Ee){var Oe=La(te),dt=La(Ee);return{start:{offset:te,line:Oe.line,column:Oe.column},end:{offset:Ee,line:dt.line,column:dt.column}}}function $e(te){ve<Oi||(ve>Oi&&(Oi=ve,no=[]),no.push(te))}function Ua(te,Ee){return new Td(te,null,null,Ee)}function hf(te,Ee,Oe){return new Td(Td.buildMessage(te,Ee),te,Ee,Oe)}function lc(){var te;return te=LA(),te}function wn(){var te,Ee,Oe;for(te=ve,Ee=[],Oe=ca();Oe!==r;)Ee.push(Oe),Oe=ca();return Ee!==r&&(Nt=te,Ee=n(Ee)),te=Ee,te}function ca(){var te,Ee,Oe,dt,Et;return te=ve,Ee=Bl(),Ee!==r?(t.charCodeAt(ve)===45?(Oe=c,ve++):(Oe=r,Tt===0&&$e(f)),Oe!==r?(dt=Qn(),dt!==r?(Et=ua(),Et!==r?(Nt=te,Ee=p(Et),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te}function LA(){var te,Ee,Oe;for(te=ve,Ee=[],Oe=MA();Oe!==r;)Ee.push(Oe),Oe=MA();return Ee!==r&&(Nt=te,Ee=h(Ee)),te=Ee,te}function MA(){var te,Ee,Oe,dt,Et,Pt,tr,An,li;if(te=ve,Ee=Qn(),Ee===r&&(Ee=null),Ee!==r){if(Oe=ve,t.charCodeAt(ve)===35?(dt=E,ve++):(dt=r,Tt===0&&$e(C)),dt!==r){if(Et=[],Pt=ve,tr=ve,Tt++,An=st(),Tt--,An===r?tr=void 0:(ve=tr,tr=r),tr!==r?(t.length>ve?(An=t.charAt(ve),ve++):(An=r,Tt===0&&$e(S)),An!==r?(tr=[tr,An],Pt=tr):(ve=Pt,Pt=r)):(ve=Pt,Pt=r),Pt!==r)for(;Pt!==r;)Et.push(Pt),Pt=ve,tr=ve,Tt++,An=st(),Tt--,An===r?tr=void 0:(ve=tr,tr=r),tr!==r?(t.length>ve?(An=t.charAt(ve),ve++):(An=r,Tt===0&&$e(S)),An!==r?(tr=[tr,An],Pt=tr):(ve=Pt,Pt=r)):(ve=Pt,Pt=r);else Et=r;Et!==r?(dt=[dt,Et],Oe=dt):(ve=Oe,Oe=r)}else ve=Oe,Oe=r;if(Oe===r&&(Oe=null),Oe!==r){if(dt=[],Et=Ke(),Et!==r)for(;Et!==r;)dt.push(Et),Et=Ke();else dt=r;dt!==r?(Nt=te,Ee=b(),te=Ee):(ve=te,te=r)}else ve=te,te=r}else ve=te,te=r;if(te===r&&(te=ve,Ee=Bl(),Ee!==r?(Oe=Ha(),Oe!==r?(dt=Qn(),dt===r&&(dt=null),dt!==r?(t.charCodeAt(ve)===58?(Et=I,ve++):(Et=r,Tt===0&&$e(T)),Et!==r?(Pt=Qn(),Pt===r&&(Pt=null),Pt!==r?(tr=ua(),tr!==r?(Nt=te,Ee=N(Oe,tr),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te===r&&(te=ve,Ee=Bl(),Ee!==r?(Oe=rs(),Oe!==r?(dt=Qn(),dt===r&&(dt=null),dt!==r?(t.charCodeAt(ve)===58?(Et=I,ve++):(Et=r,Tt===0&&$e(T)),Et!==r?(Pt=Qn(),Pt===r&&(Pt=null),Pt!==r?(tr=ua(),tr!==r?(Nt=te,Ee=N(Oe,tr),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te===r))){if(te=ve,Ee=Bl(),Ee!==r)if(Oe=rs(),Oe!==r)if(dt=Qn(),dt!==r)if(Et=pu(),Et!==r){if(Pt=[],tr=Ke(),tr!==r)for(;tr!==r;)Pt.push(tr),tr=Ke();else Pt=r;Pt!==r?(Nt=te,Ee=N(Oe,Et),te=Ee):(ve=te,te=r)}else ve=te,te=r;else ve=te,te=r;else ve=te,te=r;else ve=te,te=r;if(te===r)if(te=ve,Ee=Bl(),Ee!==r)if(Oe=rs(),Oe!==r){if(dt=[],Et=ve,Pt=Qn(),Pt===r&&(Pt=null),Pt!==r?(t.charCodeAt(ve)===44?(tr=U,ve++):(tr=r,Tt===0&&$e(W)),tr!==r?(An=Qn(),An===r&&(An=null),An!==r?(li=rs(),li!==r?(Nt=Et,Pt=ee(Oe,li),Et=Pt):(ve=Et,Et=r)):(ve=Et,Et=r)):(ve=Et,Et=r)):(ve=Et,Et=r),Et!==r)for(;Et!==r;)dt.push(Et),Et=ve,Pt=Qn(),Pt===r&&(Pt=null),Pt!==r?(t.charCodeAt(ve)===44?(tr=U,ve++):(tr=r,Tt===0&&$e(W)),tr!==r?(An=Qn(),An===r&&(An=null),An!==r?(li=rs(),li!==r?(Nt=Et,Pt=ee(Oe,li),Et=Pt):(ve=Et,Et=r)):(ve=Et,Et=r)):(ve=Et,Et=r)):(ve=Et,Et=r);else dt=r;dt!==r?(Et=Qn(),Et===r&&(Et=null),Et!==r?(t.charCodeAt(ve)===58?(Pt=I,ve++):(Pt=r,Tt===0&&$e(T)),Pt!==r?(tr=Qn(),tr===r&&(tr=null),tr!==r?(An=ua(),An!==r?(Nt=te,Ee=ie(Oe,dt,An),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)}else ve=te,te=r;else ve=te,te=r}return te}function ua(){var te,Ee,Oe,dt,Et,Pt,tr;if(te=ve,Ee=ve,Tt++,Oe=ve,dt=st(),dt!==r?(Et=Mt(),Et!==r?(t.charCodeAt(ve)===45?(Pt=c,ve++):(Pt=r,Tt===0&&$e(f)),Pt!==r?(tr=Qn(),tr!==r?(dt=[dt,Et,Pt,tr],Oe=dt):(ve=Oe,Oe=r)):(ve=Oe,Oe=r)):(ve=Oe,Oe=r)):(ve=Oe,Oe=r),Tt--,Oe!==r?(ve=Ee,Ee=void 0):Ee=r,Ee!==r?(Oe=Ke(),Oe!==r?(dt=kn(),dt!==r?(Et=wn(),Et!==r?(Pt=fa(),Pt!==r?(Nt=te,Ee=ue(Et),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te===r&&(te=ve,Ee=st(),Ee!==r?(Oe=kn(),Oe!==r?(dt=LA(),dt!==r?(Et=fa(),Et!==r?(Nt=te,Ee=ue(dt),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r),te===r))if(te=ve,Ee=cc(),Ee!==r){if(Oe=[],dt=Ke(),dt!==r)for(;dt!==r;)Oe.push(dt),dt=Ke();else Oe=r;Oe!==r?(Nt=te,Ee=le(Ee),te=Ee):(ve=te,te=r)}else ve=te,te=r;return te}function Bl(){var te,Ee,Oe;for(Tt++,te=ve,Ee=[],t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Tt===0&&$e(Be));Oe!==r;)Ee.push(Oe),t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Tt===0&&$e(Be));return Ee!==r?(Nt=ve,Oe=Ce(Ee),Oe?Oe=void 0:Oe=r,Oe!==r?(Ee=[Ee,Oe],te=Ee):(ve=te,te=r)):(ve=te,te=r),Tt--,te===r&&(Ee=r,Tt===0&&$e(me)),te}function Mt(){var te,Ee,Oe;for(te=ve,Ee=[],t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Tt===0&&$e(Be));Oe!==r;)Ee.push(Oe),t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Tt===0&&$e(Be));return Ee!==r?(Nt=ve,Oe=g(Ee),Oe?Oe=void 0:Oe=r,Oe!==r?(Ee=[Ee,Oe],te=Ee):(ve=te,te=r)):(ve=te,te=r),te}function kn(){var te;return Nt=ve,te=we(),te?te=void 0:te=r,te}function fa(){var te;return Nt=ve,te=ye(),te?te=void 0:te=r,te}function Ha(){var te;return te=vl(),te===r&&(te=uc()),te}function rs(){var te,Ee,Oe;if(te=vl(),te===r){if(te=ve,Ee=[],Oe=ja(),Oe!==r)for(;Oe!==r;)Ee.push(Oe),Oe=ja();else Ee=r;Ee!==r&&(Nt=te,Ee=Ae()),te=Ee}return te}function cc(){var te;return te=Mi(),te===r&&(te=Is(),te===r&&(te=vl(),te===r&&(te=uc()))),te}function pu(){var te;return te=Mi(),te===r&&(te=vl(),te===r&&(te=ja())),te}function uc(){var te,Ee,Oe,dt,Et,Pt;if(Tt++,te=ve,X.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(De)),Ee!==r){for(Oe=[],dt=ve,Et=Qn(),Et===r&&(Et=null),Et!==r?(Te.test(t.charAt(ve))?(Pt=t.charAt(ve),ve++):(Pt=r,Tt===0&&$e(mt)),Pt!==r?(Et=[Et,Pt],dt=Et):(ve=dt,dt=r)):(ve=dt,dt=r);dt!==r;)Oe.push(dt),dt=ve,Et=Qn(),Et===r&&(Et=null),Et!==r?(Te.test(t.charAt(ve))?(Pt=t.charAt(ve),ve++):(Pt=r,Tt===0&&$e(mt)),Pt!==r?(Et=[Et,Pt],dt=Et):(ve=dt,dt=r)):(ve=dt,dt=r);Oe!==r?(Nt=te,Ee=j(),te=Ee):(ve=te,te=r)}else ve=te,te=r;return Tt--,te===r&&(Ee=r,Tt===0&&$e(se)),te}function ja(){var te,Ee,Oe,dt,Et;if(te=ve,t.substr(ve,2)===rt?(Ee=rt,ve+=2):(Ee=r,Tt===0&&$e(Fe)),Ee===r&&(Ee=null),Ee!==r)if(Ne.test(t.charAt(ve))?(Oe=t.charAt(ve),ve++):(Oe=r,Tt===0&&$e(be)),Oe!==r){for(dt=[],Ve.test(t.charAt(ve))?(Et=t.charAt(ve),ve++):(Et=r,Tt===0&&$e(ke));Et!==r;)dt.push(Et),Ve.test(t.charAt(ve))?(Et=t.charAt(ve),ve++):(Et=r,Tt===0&&$e(ke));dt!==r?(Nt=te,Ee=j(),te=Ee):(ve=te,te=r)}else ve=te,te=r;else ve=te,te=r;return te}function Mi(){var te,Ee;return te=ve,t.substr(ve,4)===it?(Ee=it,ve+=4):(Ee=r,Tt===0&&$e(Ue)),Ee!==r&&(Nt=te,Ee=x()),te=Ee,te}function Is(){var te,Ee;return te=ve,t.substr(ve,4)===w?(Ee=w,ve+=4):(Ee=r,Tt===0&&$e(P)),Ee!==r&&(Nt=te,Ee=y()),te=Ee,te===r&&(te=ve,t.substr(ve,5)===F?(Ee=F,ve+=5):(Ee=r,Tt===0&&$e(z)),Ee!==r&&(Nt=te,Ee=Z()),te=Ee),te}function vl(){var te,Ee,Oe,dt;return Tt++,te=ve,t.charCodeAt(ve)===34?(Ee=oe,ve++):(Ee=r,Tt===0&&$e(xe)),Ee!==r?(t.charCodeAt(ve)===34?(Oe=oe,ve++):(Oe=r,Tt===0&&$e(xe)),Oe!==r?(Nt=te,Ee=Re(),te=Ee):(ve=te,te=r)):(ve=te,te=r),te===r&&(te=ve,t.charCodeAt(ve)===34?(Ee=oe,ve++):(Ee=r,Tt===0&&$e(xe)),Ee!==r?(Oe=gf(),Oe!==r?(t.charCodeAt(ve)===34?(dt=oe,ve++):(dt=r,Tt===0&&$e(xe)),dt!==r?(Nt=te,Ee=lt(Oe),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)),Tt--,te===r&&(Ee=r,Tt===0&&$e($)),te}function gf(){var te,Ee,Oe;if(te=ve,Ee=[],Oe=fc(),Oe!==r)for(;Oe!==r;)Ee.push(Oe),Oe=fc();else Ee=r;return Ee!==r&&(Nt=te,Ee=Ct(Ee)),te=Ee,te}function fc(){var te,Ee,Oe,dt,Et,Pt;return qt.test(t.charAt(ve))?(te=t.charAt(ve),ve++):(te=r,Tt===0&&$e(ir)),te===r&&(te=ve,t.substr(ve,2)===bt?(Ee=bt,ve+=2):(Ee=r,Tt===0&&$e(gn)),Ee!==r&&(Nt=te,Ee=br()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===Ir?(Ee=Ir,ve+=2):(Ee=r,Tt===0&&$e(Or)),Ee!==r&&(Nt=te,Ee=nn()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===ai?(Ee=ai,ve+=2):(Ee=r,Tt===0&&$e(Io)),Ee!==r&&(Nt=te,Ee=ts()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===$s?(Ee=$s,ve+=2):(Ee=r,Tt===0&&$e(Co)),Ee!==r&&(Nt=te,Ee=Hi()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===eo?(Ee=eo,ve+=2):(Ee=r,Tt===0&&$e(wo)),Ee!==r&&(Nt=te,Ee=QA()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===Af?(Ee=Af,ve+=2):(Ee=r,Tt===0&&$e(dh)),Ee!==r&&(Nt=te,Ee=mh()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===to?(Ee=to,ve+=2):(Ee=r,Tt===0&&$e(jn)),Ee!==r&&(Nt=te,Ee=Rs()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===ro?(Ee=ro,ve+=2):(Ee=r,Tt===0&&$e(ou)),Ee!==r&&(Nt=te,Ee=au()),te=Ee,te===r&&(te=ve,t.substr(ve,2)===lu?(Ee=lu,ve+=2):(Ee=r,Tt===0&&$e(RA)),Ee!==r?(Oe=wi(),Oe!==r?(dt=wi(),dt!==r?(Et=wi(),Et!==r?(Pt=wi(),Pt!==r?(Nt=te,Ee=TA(Oe,dt,Et,Pt),te=Ee):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)):(ve=te,te=r)))))))))),te}function wi(){var te;return oa.test(t.charAt(ve))?(te=t.charAt(ve),ve++):(te=r,Tt===0&&$e(aa)),te}function Qn(){var te,Ee;if(Tt++,te=[],gr.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(Bo)),Ee!==r)for(;Ee!==r;)te.push(Ee),gr.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(Bo));else te=r;return Tt--,te===r&&(Ee=r,Tt===0&&$e(FA)),te}function Ac(){var te,Ee;if(Tt++,te=[],cu.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(Cr)),Ee!==r)for(;Ee!==r;)te.push(Ee),cu.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Tt===0&&$e(Cr));else te=r;return Tt--,te===r&&(Ee=r,Tt===0&&$e(Me)),te}function Ke(){var te,Ee,Oe,dt,Et,Pt;if(te=ve,Ee=st(),Ee!==r){for(Oe=[],dt=ve,Et=Qn(),Et===r&&(Et=null),Et!==r?(Pt=st(),Pt!==r?(Et=[Et,Pt],dt=Et):(ve=dt,dt=r)):(ve=dt,dt=r);dt!==r;)Oe.push(dt),dt=ve,Et=Qn(),Et===r&&(Et=null),Et!==r?(Pt=st(),Pt!==r?(Et=[Et,Pt],dt=Et):(ve=dt,dt=r)):(ve=dt,dt=r);Oe!==r?(Ee=[Ee,Oe],te=Ee):(ve=te,te=r)}else ve=te,te=r;return te}function st(){var te;return t.substr(ve,2)===pf?(te=pf,ve+=2):(te=r,Tt===0&&$e(NA)),te===r&&(t.charCodeAt(ve)===10?(te=OA,ve++):(te=r,Tt===0&&$e(uu)),te===r&&(t.charCodeAt(ve)===13?(te=fu,ve++):(te=r,Tt===0&&$e(oc)))),te}let St=2,lr=0;if(xn=a(),xn!==r&&ve===t.length)return xn;throw xn!==r&&ve<t.length&&$e(yh()),hf(no,Oi<t.length?t.charAt(Oi):null,Oi<t.length?Ma(Oi,Oi+1):Ma(Oi,Oi))}pre.exports={SyntaxError:Td,parse:dWe}});function dre(t){return t.match(mWe)?t:JSON.stringify(t)}function yre(t){return typeof t>\"u\"?!0:typeof t==\"object\"&&t!==null&&!Array.isArray(t)?Object.keys(t).every(e=>yre(t[e])):!1}function n_(t,e,r){if(t===null)return`null\n`;if(typeof t==\"number\"||typeof t==\"boolean\")return`${t.toString()}\n`;if(typeof t==\"string\")return`${dre(t)}\n`;if(Array.isArray(t)){if(t.length===0)return`[]\n`;let s=\"  \".repeat(e);return`\n${t.map(n=>`${s}- ${n_(n,e+1,!1)}`).join(\"\")}`}if(typeof t==\"object\"&&t){let[s,a]=t instanceof Sx?[t.data,!1]:[t,!0],n=\"  \".repeat(e),c=Object.keys(s);a&&c.sort((p,h)=>{let E=gre.indexOf(p),C=gre.indexOf(h);return E===-1&&C===-1?p<h?-1:p>h?1:0:E!==-1&&C===-1?-1:E===-1&&C!==-1?1:E-C});let f=c.filter(p=>!yre(s[p])).map((p,h)=>{let E=s[p],C=dre(p),S=n_(E,e+1,!0),b=h>0||r?n:\"\",I=C.length>1024?`? ${C}\n${b}:`:`${C}:`,T=S.startsWith(`\n`)?S:` ${S}`;return`${b}${I}${T}`}).join(e===0?`\n`:\"\")||`\n`;return r?`\n${f}`:`${f}`}throw new Error(`Unsupported value type (${t})`)}function nl(t){try{let e=n_(t,0,!1);return e!==`\n`?e:\"\"}catch(e){throw e.location&&(e.message=e.message.replace(/(\\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function yWe(t){return t.endsWith(`\n`)||(t+=`\n`),(0,mre.parse)(t)}function IWe(t){if(EWe.test(t))return yWe(t);let e=(0,Dx.safeLoad)(t,{schema:Dx.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!=\"object\")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error(\"Expected an indexed object, got an array instead. Does your file follow Yaml's rules?\");return e}function as(t){return IWe(t)}var Dx,mre,mWe,gre,Sx,EWe,Ere=Ze(()=>{Dx=ut(Are()),mre=ut(hre()),mWe=/^(?![-?:,\\][{}#&*!|>'\"%@` \\t\\r\\n]).([ \\t]*(?![,\\][{}:# \\t\\r\\n]).)*$/,gre=[\"__metadata\",\"version\",\"resolution\",\"dependencies\",\"peerDependencies\",\"dependenciesMeta\",\"peerDependenciesMeta\",\"binaries\"],Sx=class{constructor(e){this.data=e}};nl.PreserveOrdering=Sx;EWe=/^(#.*(\\r?\\n))*?#\\s+yarn\\s+lockfile\\s+v1\\r?\\n/i});var J2={};Vt(J2,{parseResolution:()=>px,parseShell:()=>ux,parseSyml:()=>as,stringifyArgument:()=>GU,stringifyArgumentSegment:()=>qU,stringifyArithmeticExpression:()=>Ax,stringifyCommand:()=>jU,stringifyCommandChain:()=>AE,stringifyCommandChainThen:()=>HU,stringifyCommandLine:()=>fx,stringifyCommandLineThen:()=>_U,stringifyEnvSegment:()=>cx,stringifyRedirectArgument:()=>H2,stringifyResolution:()=>hx,stringifyShell:()=>fE,stringifyShellLine:()=>fE,stringifySyml:()=>nl,stringifyValueArgument:()=>vd});var wc=Ze(()=>{yee();wee();Ere()});var Cre=_((kQt,i_)=>{\"use strict\";var CWe=t=>{let e=!1,r=!1,s=!1;for(let a=0;a<t.length;a++){let n=t[a];e&&/[a-zA-Z]/.test(n)&&n.toUpperCase()===n?(t=t.slice(0,a)+\"-\"+t.slice(a),e=!1,s=r,r=!0,a++):r&&s&&/[a-zA-Z]/.test(n)&&n.toLowerCase()===n?(t=t.slice(0,a-1)+\"-\"+t.slice(a-1),s=r,r=!1,e=!0):(e=n.toLowerCase()===n&&n.toUpperCase()!==n,s=r,r=n.toUpperCase()===n&&n.toLowerCase()!==n)}return t},Ire=(t,e)=>{if(!(typeof t==\"string\"||Array.isArray(t)))throw new TypeError(\"Expected the input to be `string | string[]`\");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join(\"-\"):t=t.trim(),t.length===0?\"\":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=CWe(t)),t=t.replace(/^[_.\\- ]+/,\"\").toLowerCase().replace(/[_.\\- ]+(\\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\\d+(\\w|$)/g,a=>a.toUpperCase()),r(t))};i_.exports=Ire;i_.exports.default=Ire});var wre=_((QQt,wWe)=>{wWe.exports=[{name:\"Agola CI\",constant:\"AGOLA\",env:\"AGOLA_GIT_REF\",pr:\"AGOLA_PULL_REQUEST_ID\"},{name:\"Appcircle\",constant:\"APPCIRCLE\",env:\"AC_APPCIRCLE\"},{name:\"AppVeyor\",constant:\"APPVEYOR\",env:\"APPVEYOR\",pr:\"APPVEYOR_PULL_REQUEST_NUMBER\"},{name:\"AWS CodeBuild\",constant:\"CODEBUILD\",env:\"CODEBUILD_BUILD_ARN\"},{name:\"Azure Pipelines\",constant:\"AZURE_PIPELINES\",env:\"TF_BUILD\",pr:{BUILD_REASON:\"PullRequest\"}},{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:\"Codefresh\",constant:\"CODEFRESH\",env:\"CF_BUILD_ID\",pr:{any:[\"CF_PULL_REQUEST_NUMBER\",\"CF_PULL_REQUEST_ID\"]}},{name:\"Codemagic\",constant:\"CODEMAGIC\",env:\"CM_BUILD_ID\",pr:\"CM_PULL_REQUEST\"},{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:\"Earthly\",constant:\"EARTHLY\",env:\"EARTHLY_CI\"},{name:\"Expo Application Services\",constant:\"EAS\",env:\"EAS_BUILD\"},{name:\"Gerrit\",constant:\"GERRIT\",env:\"GERRIT_PROJECT\"},{name:\"Gitea Actions\",constant:\"GITEA_ACTIONS\",env:\"GITEA_ACTIONS\"},{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:\"Google Cloud Build\",constant:\"GOOGLE_CLOUD_BUILD\",env:\"BUILDER_OUTPUT\"},{name:\"Harness CI\",constant:\"HARNESS\",env:\"HARNESS_BUILD_ID\"},{name:\"Heroku\",constant:\"HEROKU\",env:{env:\"NODE\",includes:\"/app/.heroku/node/bin/node\"}},{name:\"Hudson\",constant:\"HUDSON\",env:\"HUDSON_URL\"},{name:\"Jenkins\",constant:\"JENKINS\",env:[\"JENKINS_URL\",\"BUILD_ID\"],pr:{any:[\"ghprbPullId\",\"CHANGE_ID\"]}},{name:\"LayerCI\",constant:\"LAYERCI\",env:\"LAYERCI\",pr:\"LAYERCI_PULL_REQUEST\"},{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:\"Prow\",constant:\"PROW\",env:\"PROW_JOB_ID\"},{name:\"ReleaseHub\",constant:\"RELEASEHUB\",env:\"RELEASE_BUILD_ID\"},{name:\"Render\",constant:\"RENDER\",env:\"RENDER\",pr:{IS_PULL_REQUEST:\"true\"}},{name:\"Sail CI\",constant:\"SAIL\",env:\"SAILCI\",pr:\"SAIL_PULL_REQUEST_NUMBER\"},{name:\"Screwdriver\",constant:\"SCREWDRIVER\",env:\"SCREWDRIVER\",pr:{env:\"SD_PULL_REQUEST\",ne:\"false\"}},{name:\"Semaphore\",constant:\"SEMAPHORE\",env:\"SEMAPHORE\",pr:\"PULL_REQUEST_NUMBER\"},{name:\"Sourcehut\",constant:\"SOURCEHUT\",env:{CI_NAME:\"sourcehut\"}},{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:\"Vela\",constant:\"VELA\",env:\"VELA\",pr:{VELA_PULL_REQUEST:\"1\"}},{name:\"Vercel\",constant:\"VERCEL\",env:{any:[\"NOW_BUILDER\",\"VERCEL\"]},pr:\"VERCEL_GIT_PULL_REQUEST_ID\"},{name:\"Visual Studio App Center\",constant:\"APPCENTER\",env:\"APPCENTER_BUILD_ID\"},{name:\"Woodpecker\",constant:\"WOODPECKER\",env:{CI:\"woodpecker\"},pr:{CI_BUILD_EVENT:\"pull_request\"}},{name:\"Xcode Cloud\",constant:\"XCODE_CLOUD\",env:\"CI_XCODE_PROJECT\",pr:\"CI_PULL_REQUEST_NUMBER\"},{name:\"Xcode Server\",constant:\"XCODE_SERVER\",env:\"XCS\"}]});var Fd=_(Ml=>{\"use strict\";var vre=wre(),Ds=process.env;Object.defineProperty(Ml,\"_vendors\",{value:vre.map(function(t){return t.constant})});Ml.name=null;Ml.isPR=null;vre.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(s){return Bre(s)});if(Ml[t.constant]=r,!!r)switch(Ml.name=t.name,typeof t.pr){case\"string\":Ml.isPR=!!Ds[t.pr];break;case\"object\":\"env\"in t.pr?Ml.isPR=t.pr.env in Ds&&Ds[t.pr.env]!==t.pr.ne:\"any\"in t.pr?Ml.isPR=t.pr.any.some(function(s){return!!Ds[s]}):Ml.isPR=Bre(t.pr);break;default:Ml.isPR=null}});Ml.isCI=!!(Ds.CI!==\"false\"&&(Ds.BUILD_ID||Ds.BUILD_NUMBER||Ds.CI||Ds.CI_APP_ID||Ds.CI_BUILD_ID||Ds.CI_BUILD_NUMBER||Ds.CI_NAME||Ds.CONTINUOUS_INTEGRATION||Ds.RUN_ID||Ml.name));function Bre(t){return typeof t==\"string\"?!!Ds[t]:\"env\"in t?Ds[t.env]&&Ds[t.env].includes(t.includes):\"any\"in t?t.any.some(function(e){return!!Ds[e]}):Object.keys(t).every(function(e){return Ds[e]===t[e]})}});var ei,En,Nd,s_,Px,Sre,o_,a_,bx=Ze(()=>{(function(t){t.StartOfInput=\"\\0\",t.EndOfInput=\"\u0001\",t.EndOfPartialInput=\"\u0002\"})(ei||(ei={}));(function(t){t[t.InitialNode=0]=\"InitialNode\",t[t.SuccessNode=1]=\"SuccessNode\",t[t.ErrorNode=2]=\"ErrorNode\",t[t.CustomNode=3]=\"CustomNode\"})(En||(En={}));Nd=-1,s_=/^(-h|--help)(?:=([0-9]+))?$/,Px=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,Sre=/^-[a-zA-Z]{2,}$/,o_=/^([^=]+)=([\\s\\S]*)$/,a_=process.env.DEBUG_CLI===\"1\"});var nt,IE,xx,l_,kx=Ze(()=>{bx();nt=class extends Error{constructor(e){super(e),this.clipanion={type:\"usage\"},this.name=\"UsageError\"}},IE=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:\"none\"},this.name=\"UnknownSyntaxError\",this.candidates.length===0)this.message=\"Command not found, but we're not sure what's the alternative.\";else if(this.candidates.every(s=>s.reason!==null&&s.reason===r[0].reason)){let[{reason:s}]=this.candidates;this.message=`${s}\n\n${this.candidates.map(({usage:a})=>`$ ${a}`).join(`\n`)}`}else if(this.candidates.length===1){let[{usage:s}]=this.candidates;this.message=`Command not found; did you mean:\n\n$ ${s}\n${l_(e)}`}else this.message=`Command not found; did you mean one of:\n\n${this.candidates.map(({usage:s},a)=>`${`${a}.`.padStart(4)} ${s}`).join(`\n`)}\n\n${l_(e)}`}},xx=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:\"none\"},this.name=\"AmbiguousSyntaxError\",this.message=`Cannot find which to pick amongst the following alternatives:\n\n${this.usages.map((s,a)=>`${`${a}.`.padStart(4)} ${s}`).join(`\n`)}\n\n${l_(e)}`}},l_=t=>`While running ${t.filter(e=>e!==ei.EndOfInput&&e!==ei.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\\s/)||e.length===0||r!==`\"${e}\"`?r:e}).join(\" \")}`});function BWe(t){let e=t.split(`\n`),r=e.filter(a=>a.match(/\\S/)),s=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(s).trimRight()).join(`\n`)}function Ho(t,{format:e,paragraphs:r}){return t=t.replace(/\\r\\n?/g,`\n`),t=BWe(t),t=t.replace(/^\\n+|\\n+$/g,\"\"),t=t.replace(/^(\\s*)-([^\\n]*?)\\n+/gm,`$1-$2\n\n`),t=t.replace(/\\n(\\n)?\\n*/g,(s,a)=>a||\" \"),r&&(t=t.split(/\\n/).map(s=>{let a=s.match(/^\\s*[*-][\\t ]+(.*)/);if(!a)return s.match(/(.{1,80})(?: |$)/g).join(`\n`);let n=s.length-s.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,\"g\")).map((c,f)=>\" \".repeat(n)+(f===0?\"- \":\"  \")+c).join(`\n`)}).join(`\n\n`)),t=t.replace(/(`+)((?:.|[\\n])*?)\\1/g,(s,a,n)=>e.code(a+n+a)),t=t.replace(/(\\*\\*)((?:.|[\\n])*?)\\1/g,(s,a,n)=>e.bold(a+n+a)),t?`${t}\n`:\"\"}var c_,Dre,Pre,u_=Ze(()=>{c_=Array(80).fill(\"\\u2501\");for(let t=0;t<=24;++t)c_[c_.length-t]=`\\x1B[38;5;${232+t}m\\u2501`;Dre={header:t=>`\\x1B[1m\\u2501\\u2501\\u2501 ${t}${t.length<75?` ${c_.slice(t.length+5).join(\"\")}`:\":\"}\\x1B[0m`,bold:t=>`\\x1B[1m${t}\\x1B[22m`,error:t=>`\\x1B[31m\\x1B[1m${t}\\x1B[22m\\x1B[39m`,code:t=>`\\x1B[36m${t}\\x1B[39m`},Pre={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function ya(t){return{...t,[K2]:!0}}function Gf(t,e){return typeof t>\"u\"?[t,e]:typeof t==\"object\"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function Qx(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return\"validation failed\";let[,s,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=s!==\".\"||!e?`${s.replace(/^\\.(\\[|$)/,\"$1\")}: ${a}`:`: ${a}`,a}function z2(t,e){return e.length===1?new nt(`${t}${Qx(e[0],{mergeName:!0})}`):new nt(`${t}:\n${e.map(r=>`\n- ${Qx(r)}`).join(\"\")}`)}function Od(t,e,r){if(typeof r>\"u\")return e;let s=[],a=[],n=f=>{let p=e;return e=f,n.bind(null,p)};if(!r(e,{errors:s,coercions:a,coercion:n}))throw z2(`Invalid value for ${t}`,s);for(let[,f]of a)f();return e}var K2,Cp=Ze(()=>{kx();K2=Symbol(\"clipanion/isOption\")});var Ea={};Vt(Ea,{KeyRelationship:()=>qf,TypeAssertionError:()=>o0,applyCascade:()=>$2,as:()=>jWe,assert:()=>UWe,assertWithErrors:()=>_We,cascade:()=>Nx,fn:()=>GWe,hasAtLeastOneKey:()=>m_,hasExactLength:()=>Rre,hasForbiddenKeys:()=>lYe,hasKeyRelationship:()=>tB,hasMaxLength:()=>WWe,hasMinLength:()=>qWe,hasMutuallyExclusiveKeys:()=>cYe,hasRequiredKeys:()=>aYe,hasUniqueItems:()=>YWe,isArray:()=>Rx,isAtLeast:()=>g_,isAtMost:()=>KWe,isBase64:()=>nYe,isBoolean:()=>QWe,isDate:()=>TWe,isDict:()=>OWe,isEnum:()=>fo,isHexColor:()=>rYe,isISO8601:()=>tYe,isInExclusiveRange:()=>ZWe,isInInclusiveRange:()=>zWe,isInstanceOf:()=>MWe,isInteger:()=>d_,isJSON:()=>iYe,isLiteral:()=>xre,isLowerCase:()=>XWe,isMap:()=>NWe,isNegative:()=>VWe,isNullable:()=>oYe,isNumber:()=>p_,isObject:()=>kre,isOneOf:()=>h_,isOptional:()=>sYe,isPartial:()=>LWe,isPayload:()=>RWe,isPositive:()=>JWe,isRecord:()=>Fx,isSet:()=>FWe,isString:()=>wE,isTuple:()=>Tx,isUUID4:()=>eYe,isUnknown:()=>A_,isUpperCase:()=>$We,makeTrait:()=>Qre,makeValidator:()=>Wr,matchesRegExp:()=>X2,softAssert:()=>HWe});function ti(t){return t===null?\"null\":t===void 0?\"undefined\":t===\"\"?\"an empty string\":typeof t==\"symbol\"?`<${t.toString()}>`:Array.isArray(t)?\"an array\":JSON.stringify(t)}function CE(t,e){if(t.length===0)return\"nothing\";if(t.length===1)return ti(t[0]);let r=t.slice(0,-1),s=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>ti(n)).join(\", \")}${a}${ti(s)}`}function s0(t,e){var r,s,a;return typeof e==\"number\"?`${(r=t?.p)!==null&&r!==void 0?r:\".\"}[${e}]`:vWe.test(e)?`${(s=t?.p)!==null&&s!==void 0?s:\"\"}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:\".\"}[${JSON.stringify(e)}]`}function f_(t,e,r){return t===1?e:r}function mr({errors:t,p:e}={},r){return t?.push(`${e??\".\"}: ${r}`),!1}function xWe(t,e){return r=>{t[e]=r}}function Wf(t,e){return r=>{let s=t[e];return t[e]=r,Wf(t,e).bind(null,s)}}function Z2(t,e,r){let s=()=>(t(r()),a),a=()=>(t(e),s);return s}function A_(){return Wr({test:(t,e)=>!0})}function xre(t){return Wr({test:(e,r)=>e!==t?mr(r,`Expected ${ti(t)} (got ${ti(e)})`):!0})}function wE(){return Wr({test:(t,e)=>typeof t!=\"string\"?mr(e,`Expected a string (got ${ti(t)})`):!0})}function fo(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a==\"string\"||typeof a==\"number\"),s=new Set(e);return s.size===1?xre([...s][0]):Wr({test:(a,n)=>s.has(a)?!0:r?mr(n,`Expected one of ${CE(e,\"or\")} (got ${ti(a)})`):mr(n,`Expected a valid enumeration value (got ${ti(a)})`)})}function QWe(){return Wr({test:(t,e)=>{var r;if(typeof t!=\"boolean\"){if(typeof e?.coercions<\"u\"){if(typeof e?.coercion>\"u\")return mr(e,\"Unbound coercion result\");let s=kWe.get(t);if(typeof s<\"u\")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:\".\",e.coercion.bind(null,s)]),!0}return mr(e,`Expected a boolean (got ${ti(t)})`)}return!0}})}function p_(){return Wr({test:(t,e)=>{var r;if(typeof t!=\"number\"){if(typeof e?.coercions<\"u\"){if(typeof e?.coercion>\"u\")return mr(e,\"Unbound coercion result\");let s;if(typeof t==\"string\"){let a;try{a=JSON.parse(t)}catch{}if(typeof a==\"number\")if(JSON.stringify(a)===t)s=a;else return mr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof s<\"u\")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:\".\",e.coercion.bind(null,s)]),!0}return mr(e,`Expected a number (got ${ti(t)})`)}return!0}})}function RWe(t){return Wr({test:(e,r)=>{var s;if(typeof r?.coercions>\"u\")return mr(r,\"The isPayload predicate can only be used with coercion enabled\");if(typeof r.coercion>\"u\")return mr(r,\"Unbound coercion result\");if(typeof e!=\"string\")return mr(r,`Expected a string (got ${ti(e)})`);let a;try{a=JSON.parse(e)}catch{return mr(r,`Expected a JSON string (got ${ti(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Wf(n,\"value\")}))?(r.coercions.push([(s=r.p)!==null&&s!==void 0?s:\".\",r.coercion.bind(null,n.value)]),!0):!1}})}function TWe(){return Wr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<\"u\"){if(typeof e?.coercion>\"u\")return mr(e,\"Unbound coercion result\");let s;if(typeof t==\"string\"&&bre.test(t))s=new Date(t);else{let a;if(typeof t==\"string\"){let n;try{n=JSON.parse(t)}catch{}typeof n==\"number\"&&(a=n)}else typeof t==\"number\"&&(a=t);if(typeof a<\"u\")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))s=new Date(a*1e3);else return mr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof s<\"u\")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:\".\",e.coercion.bind(null,s)]),!0}return mr(e,`Expected a date (got ${ti(t)})`)}return!0}})}function Rx(t,{delimiter:e}={}){return Wr({test:(r,s)=>{var a;let n=r;if(typeof r==\"string\"&&typeof e<\"u\"&&typeof s?.coercions<\"u\"){if(typeof s?.coercion>\"u\")return mr(s,\"Unbound coercion result\");r=r.split(e)}if(!Array.isArray(r))return mr(s,`Expected an array (got ${ti(r)})`);let c=!0;for(let f=0,p=r.length;f<p&&(c=t(r[f],Object.assign(Object.assign({},s),{p:s0(s,f),coercion:Wf(r,f)}))&&c,!(!c&&s?.errors==null));++f);return r!==n&&s.coercions.push([(a=s.p)!==null&&a!==void 0?a:\".\",s.coercion.bind(null,r)]),c}})}function FWe(t,{delimiter:e}={}){let r=Rx(t,{delimiter:e});return Wr({test:(s,a)=>{var n,c;if(Object.getPrototypeOf(s).toString()===\"[object Set]\")if(typeof a?.coercions<\"u\"){if(typeof a?.coercion>\"u\")return mr(a,\"Unbound coercion result\");let f=[...s],p=[...s];if(!r(p,Object.assign(Object.assign({},a),{coercion:void 0})))return!1;let h=()=>p.some((E,C)=>E!==f[C])?new Set(p):s;return a.coercions.push([(n=a.p)!==null&&n!==void 0?n:\".\",Z2(a.coercion,s,h)]),!0}else{let f=!0;for(let p of s)if(f=t(p,Object.assign({},a))&&f,!f&&a?.errors==null)break;return f}if(typeof a?.coercions<\"u\"){if(typeof a?.coercion>\"u\")return mr(a,\"Unbound coercion result\");let f={value:s};return r(s,Object.assign(Object.assign({},a),{coercion:Wf(f,\"value\")}))?(a.coercions.push([(c=a.p)!==null&&c!==void 0?c:\".\",Z2(a.coercion,s,()=>new Set(f.value))]),!0):!1}return mr(a,`Expected a set (got ${ti(s)})`)}})}function NWe(t,e){let r=Rx(Tx([t,e])),s=Fx(e,{keys:t});return Wr({test:(a,n)=>{var c,f,p;if(Object.getPrototypeOf(a).toString()===\"[object Map]\")if(typeof n?.coercions<\"u\"){if(typeof n?.coercion>\"u\")return mr(n,\"Unbound coercion result\");let h=[...a],E=[...a];if(!r(E,Object.assign(Object.assign({},n),{coercion:void 0})))return!1;let C=()=>E.some((S,b)=>S[0]!==h[b][0]||S[1]!==h[b][1])?new Map(E):a;return n.coercions.push([(c=n.p)!==null&&c!==void 0?c:\".\",Z2(n.coercion,a,C)]),!0}else{let h=!0;for(let[E,C]of a)if(h=t(E,Object.assign({},n))&&h,!h&&n?.errors==null||(h=e(C,Object.assign(Object.assign({},n),{p:s0(n,E)}))&&h,!h&&n?.errors==null))break;return h}if(typeof n?.coercions<\"u\"){if(typeof n?.coercion>\"u\")return mr(n,\"Unbound coercion result\");let h={value:a};return Array.isArray(a)?r(a,Object.assign(Object.assign({},n),{coercion:void 0}))?(n.coercions.push([(f=n.p)!==null&&f!==void 0?f:\".\",Z2(n.coercion,a,()=>new Map(h.value))]),!0):!1:s(a,Object.assign(Object.assign({},n),{coercion:Wf(h,\"value\")}))?(n.coercions.push([(p=n.p)!==null&&p!==void 0?p:\".\",Z2(n.coercion,a,()=>new Map(Object.entries(h.value)))]),!0):!1}return mr(n,`Expected a map (got ${ti(a)})`)}})}function Tx(t,{delimiter:e}={}){let r=Rre(t.length);return Wr({test:(s,a)=>{var n;if(typeof s==\"string\"&&typeof e<\"u\"&&typeof a?.coercions<\"u\"){if(typeof a?.coercion>\"u\")return mr(a,\"Unbound coercion result\");s=s.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:\".\",a.coercion.bind(null,s)])}if(!Array.isArray(s))return mr(a,`Expected a tuple (got ${ti(s)})`);let c=r(s,Object.assign({},a));for(let f=0,p=s.length;f<p&&f<t.length&&(c=t[f](s[f],Object.assign(Object.assign({},a),{p:s0(a,f),coercion:Wf(s,f)}))&&c,!(!c&&a?.errors==null));++f);return c}})}function Fx(t,{keys:e=null}={}){let r=Rx(Tx([e??wE(),t]));return Wr({test:(s,a)=>{var n;if(Array.isArray(s)&&typeof a?.coercions<\"u\")return typeof a?.coercion>\"u\"?mr(a,\"Unbound coercion result\"):r(s,Object.assign(Object.assign({},a),{coercion:void 0}))?(s=Object.fromEntries(s),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:\".\",a.coercion.bind(null,s)]),!0):!1;if(typeof s!=\"object\"||s===null)return mr(a,`Expected an object (got ${ti(s)})`);let c=Object.keys(s),f=!0;for(let p=0,h=c.length;p<h&&(f||a?.errors!=null);++p){let E=c[p],C=s[E];if(E===\"__proto__\"||E===\"constructor\"){f=mr(Object.assign(Object.assign({},a),{p:s0(a,E)}),\"Unsafe property name\");continue}if(e!==null&&!e(E,a)){f=!1;continue}if(!t(C,Object.assign(Object.assign({},a),{p:s0(a,E),coercion:Wf(s,E)}))){f=!1;continue}}return f}})}function OWe(t,e={}){return Fx(t,e)}function kre(t,{extra:e=null}={}){let r=Object.keys(t),s=Wr({test:(a,n)=>{if(typeof a!=\"object\"||a===null)return mr(n,`Expected an object (got ${ti(a)})`);let c=new Set([...r,...Object.keys(a)]),f={},p=!0;for(let h of c){if(h===\"constructor\"||h===\"__proto__\")p=mr(Object.assign(Object.assign({},n),{p:s0(n,h)}),\"Unsafe property name\");else{let E=Object.prototype.hasOwnProperty.call(t,h)?t[h]:void 0,C=Object.prototype.hasOwnProperty.call(a,h)?a[h]:void 0;typeof E<\"u\"?p=E(C,Object.assign(Object.assign({},n),{p:s0(n,h),coercion:Wf(a,h)}))&&p:e===null?p=mr(Object.assign(Object.assign({},n),{p:s0(n,h)}),`Extraneous property (got ${ti(C)})`):Object.defineProperty(f,h,{enumerable:!0,get:()=>C,set:xWe(a,h)})}if(!p&&n?.errors==null)break}return e!==null&&(p||n?.errors!=null)&&(p=e(f,n)&&p),p}});return Object.assign(s,{properties:t})}function LWe(t){return kre(t,{extra:Fx(A_())})}function Qre(t){return()=>t}function Wr({test:t}){return Qre(t)()}function UWe(t,e){if(!e(t))throw new o0}function _We(t,e){let r=[];if(!e(t,{errors:r}))throw new o0({errors:r})}function HWe(t,e){}function jWe(t,e,{coerce:r=!1,errors:s,throw:a}={}){let n=s?[]:void 0;if(!r){if(e(t,{errors:n}))return a?t:{value:t,errors:void 0};if(a)throw new o0({errors:n});return{value:void 0,errors:n??!0}}let c={value:t},f=Wf(c,\"value\"),p=[];if(!e(t,{errors:n,coercion:f,coercions:p})){if(a)throw new o0({errors:n});return{value:void 0,errors:n??!0}}for(let[,h]of p)h();return a?c.value:{value:c.value,errors:void 0}}function GWe(t,e){let r=Tx(t);return(...s)=>{if(!r(s))throw new o0;return e(...s)}}function qWe(t){return Wr({test:(e,r)=>e.length>=t?!0:mr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)})}function WWe(t){return Wr({test:(e,r)=>e.length<=t?!0:mr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)})}function Rre(t){return Wr({test:(e,r)=>e.length!==t?mr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0})}function YWe({map:t}={}){return Wr({test:(e,r)=>{let s=new Set,a=new Set;for(let n=0,c=e.length;n<c;++n){let f=e[n],p=typeof t<\"u\"?t(f):f;if(s.has(p)){if(a.has(p))continue;mr(r,`Expected to contain unique elements; got a duplicate with ${ti(e)}`),a.add(p)}else s.add(p)}return a.size===0}})}function VWe(){return Wr({test:(t,e)=>t<=0?!0:mr(e,`Expected to be negative (got ${t})`)})}function JWe(){return Wr({test:(t,e)=>t>=0?!0:mr(e,`Expected to be positive (got ${t})`)})}function g_(t){return Wr({test:(e,r)=>e>=t?!0:mr(r,`Expected to be at least ${t} (got ${e})`)})}function KWe(t){return Wr({test:(e,r)=>e<=t?!0:mr(r,`Expected to be at most ${t} (got ${e})`)})}function zWe(t,e){return Wr({test:(r,s)=>r>=t&&r<=e?!0:mr(s,`Expected to be in the [${t}; ${e}] range (got ${r})`)})}function ZWe(t,e){return Wr({test:(r,s)=>r>=t&&r<e?!0:mr(s,`Expected to be in the [${t}; ${e}[ range (got ${r})`)})}function d_({unsafe:t=!1}={}){return Wr({test:(e,r)=>e!==Math.round(e)?mr(r,`Expected to be an integer (got ${e})`):!t&&!Number.isSafeInteger(e)?mr(r,`Expected to be a safe integer (got ${e})`):!0})}function X2(t){return Wr({test:(e,r)=>t.test(e)?!0:mr(r,`Expected to match the pattern ${t.toString()} (got ${ti(e)})`)})}function XWe(){return Wr({test:(t,e)=>t!==t.toLowerCase()?mr(e,`Expected to be all-lowercase (got ${t})`):!0})}function $We(){return Wr({test:(t,e)=>t!==t.toUpperCase()?mr(e,`Expected to be all-uppercase (got ${t})`):!0})}function eYe(){return Wr({test:(t,e)=>bWe.test(t)?!0:mr(e,`Expected to be a valid UUID v4 (got ${ti(t)})`)})}function tYe(){return Wr({test:(t,e)=>bre.test(t)?!0:mr(e,`Expected to be a valid ISO 8601 date string (got ${ti(t)})`)})}function rYe({alpha:t=!1}){return Wr({test:(e,r)=>(t?SWe.test(e):DWe.test(e))?!0:mr(r,`Expected to be a valid hexadecimal color string (got ${ti(e)})`)})}function nYe(){return Wr({test:(t,e)=>PWe.test(t)?!0:mr(e,`Expected to be a valid base 64 string (got ${ti(t)})`)})}function iYe(t=A_()){return Wr({test:(e,r)=>{let s;try{s=JSON.parse(e)}catch{return mr(r,`Expected to be a valid JSON string (got ${ti(e)})`)}return t(s,r)}})}function Nx(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Wr({test:(s,a)=>{var n,c;let f={value:s},p=typeof a?.coercions<\"u\"?Wf(f,\"value\"):void 0,h=typeof a?.coercions<\"u\"?[]:void 0;if(!t(s,Object.assign(Object.assign({},a),{coercion:p,coercions:h})))return!1;let E=[];if(typeof h<\"u\")for(let[,C]of h)E.push(C());try{if(typeof a?.coercions<\"u\"){if(f.value!==s){if(typeof a?.coercion>\"u\")return mr(a,\"Unbound coercion result\");a.coercions.push([(n=a.p)!==null&&n!==void 0?n:\".\",a.coercion.bind(null,f.value)])}(c=a?.coercions)===null||c===void 0||c.push(...h)}return r.every(C=>C(f.value,a))}finally{for(let C of E)C()}}})}function $2(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Nx(t,r)}function sYe(t){return Wr({test:(e,r)=>typeof e>\"u\"?!0:t(e,r)})}function oYe(t){return Wr({test:(e,r)=>e===null?!0:t(e,r)})}function aYe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:\"missing\"];return Wr({test:(n,c)=>{let f=new Set(Object.keys(n)),p=[];for(let h of s)a(f,h,n)||p.push(h);return p.length>0?mr(c,`Missing required ${f_(p.length,\"property\",\"properties\")} ${CE(p,\"and\")}`):!0}})}function m_(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:\"missing\"];return Wr({test:(n,c)=>Object.keys(n).some(h=>a(s,h,n))?!0:mr(c,`Missing at least one property from ${CE(Array.from(s),\"or\")}`)})}function lYe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:\"missing\"];return Wr({test:(n,c)=>{let f=new Set(Object.keys(n)),p=[];for(let h of s)a(f,h,n)&&p.push(h);return p.length>0?mr(c,`Forbidden ${f_(p.length,\"property\",\"properties\")} ${CE(p,\"and\")}`):!0}})}function cYe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:\"missing\"];return Wr({test:(n,c)=>{let f=new Set(Object.keys(n)),p=[];for(let h of s)a(f,h,n)&&p.push(h);return p.length>1?mr(c,`Mutually exclusive properties ${CE(p,\"and\")}`):!0}})}function tB(t,e,r,s){var a,n;let c=new Set((a=s?.ignore)!==null&&a!==void 0?a:[]),f=eB[(n=s?.missingIf)!==null&&n!==void 0?n:\"missing\"],p=new Set(r),h=uYe[e],E=e===qf.Forbids?\"or\":\"and\";return Wr({test:(C,S)=>{let b=new Set(Object.keys(C));if(!f(b,t,C)||c.has(C[t]))return!0;let I=[];for(let T of p)(f(b,T,C)&&!c.has(C[T]))!==h.expect&&I.push(T);return I.length>=1?mr(S,`Property \"${t}\" ${h.message} ${f_(I.length,\"property\",\"properties\")} ${CE(I,E)}`):!0}})}var vWe,SWe,DWe,PWe,bWe,bre,kWe,MWe,h_,o0,eB,qf,uYe,Ul=Ze(()=>{vWe=/^[a-zA-Z_][a-zA-Z0-9_]*$/;SWe=/^#[0-9a-f]{6}$/i,DWe=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,PWe=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,bWe=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,bre=/^(?:[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)?)$/;kWe=new Map([[\"true\",!0],[\"True\",!0],[\"1\",!0],[1,!0],[\"false\",!1],[\"False\",!1],[\"0\",!1],[0,!1]]);MWe=t=>Wr({test:(e,r)=>e instanceof t?!0:mr(r,`Expected an instance of ${t.name} (got ${ti(e)})`)}),h_=(t,{exclusive:e=!1}={})=>Wr({test:(r,s)=>{var a,n,c;let f=[],p=typeof s?.errors<\"u\"?[]:void 0;for(let h=0,E=t.length;h<E;++h){let C=typeof s?.errors<\"u\"?[]:void 0,S=typeof s?.coercions<\"u\"?[]:void 0;if(t[h](r,Object.assign(Object.assign({},s),{errors:C,coercions:S,p:`${(a=s?.p)!==null&&a!==void 0?a:\".\"}#${h+1}`}))){if(f.push([`#${h+1}`,S]),!e)break}else p?.push(C[0])}if(f.length===1){let[,h]=f[0];return typeof h<\"u\"&&((n=s?.coercions)===null||n===void 0||n.push(...h)),!0}return f.length>1?mr(s,`Expected to match exactly a single predicate (matched ${f.join(\", \")})`):(c=s?.errors)===null||c===void 0||c.push(...p),!1}});o0=class extends Error{constructor({errors:e}={}){let r=\"Type mismatch\";if(e&&e.length>0){r+=`\n`;for(let s of e)r+=`\n- ${s}`}super(r)}};eB={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<\"u\",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids=\"Forbids\",t.Requires=\"Requires\"})(qf||(qf={}));uYe={[qf.Forbids]:{expect:!1,message:\"forbids using\"},[qf.Requires]:{expect:!0,message:\"requires using\"}}});var ot,a0=Ze(()=>{Cp();ot=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:c}=await Promise.resolve().then(()=>(Ul(),Ea)),f=c(a(n()),r),p=[],h=[];if(!f(this,{errors:p,coercions:h}))throw z2(\"Invalid option schema\",p);for(let[,C]of h)C()}else if(r!=null)throw new Error(\"Invalid command schema\");let s=await this.execute();return typeof s<\"u\"?s:0}};ot.isOption=K2;ot.Default=[]});function il(t){a_&&console.log(t)}function Fre(){let t={nodes:[]};for(let e=0;e<En.CustomNode;++e)t.nodes.push(_l());return t}function fYe(t){let e=Fre(),r=[],s=e.nodes.length;for(let a of t){r.push(s);for(let n=0;n<a.nodes.length;++n)Ore(n)||e.nodes.push(EYe(a.nodes[n],s));s+=a.nodes.length-En.CustomNode+1}for(let a of r)BE(e,En.InitialNode,a);return e}function Ou(t,e){return t.nodes.push(e),t.nodes.length-1}function AYe(t){let e=new Set,r=s=>{if(e.has(s))return;e.add(s);let a=t.nodes[s];for(let c of Object.values(a.statics))for(let{to:f}of c)r(f);for(let[,{to:c}]of a.dynamics)r(c);for(let{to:c}of a.shortcuts)r(c);let n=new Set(a.shortcuts.map(({to:c})=>c));for(;a.shortcuts.length>0;){let{to:c}=a.shortcuts.shift(),f=t.nodes[c];for(let[p,h]of Object.entries(f.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let C of h)E.some(({to:S})=>C.to===S)||E.push(C)}for(let[p,h]of f.dynamics)a.dynamics.some(([E,{to:C}])=>p===E&&h.to===C)||a.dynamics.push([p,h]);for(let p of f.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(En.InitialNode)}function pYe(t,{prefix:e=\"\"}={}){if(a_){il(`${e}Nodes are:`);for(let r=0;r<t.nodes.length;++r)il(`${e}  ${r}: ${JSON.stringify(t.nodes[r])}`)}}function hYe(t,e,r=!1){il(`Running a vm on ${JSON.stringify(e)}`);let s=[{node:En.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,partial:!1,tokens:[]}}];pYe(t,{prefix:\"  \"});let a=[ei.StartOfInput,...e];for(let n=0;n<a.length;++n){let c=a[n],f=c===ei.EndOfInput||c===ei.EndOfPartialInput,p=n-1;il(`  Processing ${JSON.stringify(c)}`);let h=[];for(let{node:E,state:C}of s){il(`    Current node is ${E}`);let S=t.nodes[E];if(E===En.ErrorNode){h.push({node:E,state:C});continue}console.assert(S.shortcuts.length===0,\"Shortcuts should have been eliminated by now\");let b=Object.prototype.hasOwnProperty.call(S.statics,c);if(!r||n<a.length-1||b)if(b){let I=S.statics[c];for(let{to:T,reducer:N}of I)h.push({node:T,state:typeof N<\"u\"?Ox(E_,N,C,c,p):C}),il(`      Static transition to ${T} found`)}else il(\"      No static transition found\");else{let I=!1;for(let T of Object.keys(S.statics))if(T.startsWith(c)){if(c===T)for(let{to:N,reducer:U}of S.statics[T])h.push({node:N,state:typeof U<\"u\"?Ox(E_,U,C,c,p):C}),il(`      Static transition to ${N} found`);else for(let{to:N}of S.statics[T])h.push({node:N,state:{...C,remainder:T.slice(c.length)}}),il(`      Static transition to ${N} found (partial match)`);I=!0}I||il(\"      No partial static transition found\")}if(!f)for(let[I,{to:T,reducer:N}]of S.dynamics)Ox(IYe,I,C,c,p)&&(h.push({node:T,state:typeof N<\"u\"?Ox(E_,N,C,c,p):C}),il(`      Dynamic transition to ${T} found (via ${I})`))}if(h.length===0&&f&&e.length===1)return[{node:En.InitialNode,state:Tre}];if(h.length===0)throw new IE(e,s.filter(({node:E})=>E!==En.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===En.ErrorNode))throw new IE(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));s=dYe(h)}if(s.length>0){il(\"  Results:\");for(let n of s)il(`    - ${n.node} -> ${JSON.stringify(n.state)}`)}else il(\"  No results\");return s}function gYe(t,e,{endToken:r=ei.EndOfInput}={}){let s=hYe(t,[...e,r]);return mYe(e,s.map(({state:a})=>a))}function dYe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function mYe(t,e){let r=e.filter(S=>S.selectedIndex!==null),s=r.filter(S=>!S.partial);if(s.length>0&&(r=s),r.length===0)throw new Error;let a=r.filter(S=>S.selectedIndex===Nd||S.requiredOptions.every(b=>b.some(I=>S.options.find(T=>T.name===I))));if(a.length===0)throw new IE(t,r.map(S=>({usage:S.candidateUsage,reason:null})));let n=0;for(let S of a)S.path.length>n&&(n=S.path.length);let c=a.filter(S=>S.path.length===n),f=S=>S.positionals.filter(({extra:b})=>!b).length+S.options.length,p=c.map(S=>({state:S,positionalCount:f(S)})),h=0;for(let{positionalCount:S}of p)S>h&&(h=S);let E=p.filter(({positionalCount:S})=>S===h).map(({state:S})=>S),C=yYe(E);if(C.length>1)throw new xx(t,C.map(S=>S.candidateUsage));return C[0]}function yYe(t){let e=[],r=[];for(let s of t)s.selectedIndex===Nd?r.push(s):e.push(s);return r.length>0&&e.push({...Tre,path:Nre(...r.map(s=>s.path)),options:r.reduce((s,a)=>s.concat(a.options),[])}),e}function Nre(t,e,...r){return e===void 0?Array.from(t):Nre(t.filter((s,a)=>s===e[a]),...r)}function _l(){return{dynamics:[],shortcuts:[],statics:{}}}function Ore(t){return t===En.SuccessNode||t===En.ErrorNode}function y_(t,e=0){return{to:Ore(t.to)?t.to:t.to>=En.CustomNode?t.to+e-En.CustomNode+1:t.to+e,reducer:t.reducer}}function EYe(t,e=0){let r=_l();for(let[s,a]of t.dynamics)r.dynamics.push([s,y_(a,e)]);for(let s of t.shortcuts)r.shortcuts.push(y_(s,e));for(let[s,a]of Object.entries(t.statics))r.statics[s]=a.map(n=>y_(n,e));return r}function Hs(t,e,r,s,a){t.nodes[e].dynamics.push([r,{to:s,reducer:a}])}function BE(t,e,r,s){t.nodes[e].shortcuts.push({to:r,reducer:s})}function Ia(t,e,r,s,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:s,reducer:a})}function Ox(t,e,r,s,a){if(Array.isArray(e)){let[n,...c]=e;return t[n](r,s,a,...c)}else return t[e](r,s,a)}var Tre,IYe,E_,Hl,I_,Lx,Mx=Ze(()=>{bx();kx();Tre={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:Nd,partial:!1,tokens:[]};IYe={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!==\"-\"&&e.startsWith(\"-\"),isNotOptionLike:(t,e)=>t.ignoreOptions||e===\"-\"||!e.startsWith(\"-\"),isOption:(t,e,r,s)=>!t.ignoreOptions&&e===s,isBatchOption:(t,e,r,s)=>!t.ignoreOptions&&Sre.test(e)&&[...e.slice(1)].every(a=>s.has(`-${a}`)),isBoundOption:(t,e,r,s,a)=>{let n=e.match(o_);return!t.ignoreOptions&&!!n&&Px.test(n[1])&&s.has(n[1])&&a.filter(c=>c.nameSet.includes(n[1])).every(c=>c.allowBinding)},isNegatedOption:(t,e,r,s)=>!t.ignoreOptions&&e===`--no-${s.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&s_.test(e),isUnsupportedOption:(t,e,r,s)=>!t.ignoreOptions&&e.startsWith(\"-\")&&Px.test(e)&&!s.has(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith(\"-\")&&!Px.test(e)},E_={setCandidateState:(t,e,r,s)=>({...t,...s}),setSelectedIndex:(t,e,r,s)=>({...t,selectedIndex:s}),setPartialIndex:(t,e,r,s)=>({...t,selectedIndex:s,partial:!0}),pushBatch:(t,e,r,s)=>{let a=t.options.slice(),n=t.tokens.slice();for(let c=1;c<e.length;++c){let f=s.get(`-${e[c]}`),p=c===1?[0,2]:[c,c+1];a.push({name:f,value:!0}),n.push({segmentIndex:r,type:\"option\",option:f,slice:p})}return{...t,options:a,tokens:n}},pushBound:(t,e,r)=>{let[,s,a]=e.match(o_),n=t.options.concat({name:s,value:a}),c=t.tokens.concat([{segmentIndex:r,type:\"option\",slice:[0,s.length],option:s},{segmentIndex:r,type:\"assign\",slice:[s.length,s.length+1]},{segmentIndex:r,type:\"value\",slice:[s.length+1,s.length+a.length+1]}]);return{...t,options:n,tokens:c}},pushPath:(t,e,r)=>{let s=t.path.concat(e),a=t.tokens.concat({segmentIndex:r,type:\"path\"});return{...t,path:s,tokens:a}},pushPositional:(t,e,r)=>{let s=t.positionals.concat({value:e,extra:!1}),a=t.tokens.concat({segmentIndex:r,type:\"positional\"});return{...t,positionals:s,tokens:a}},pushExtra:(t,e,r)=>{let s=t.positionals.concat({value:e,extra:!0}),a=t.tokens.concat({segmentIndex:r,type:\"positional\"});return{...t,positionals:s,tokens:a}},pushExtraNoLimits:(t,e,r)=>{let s=t.positionals.concat({value:e,extra:Hl}),a=t.tokens.concat({segmentIndex:r,type:\"positional\"});return{...t,positionals:s,tokens:a}},pushTrue:(t,e,r,s)=>{let a=t.options.concat({name:s,value:!0}),n=t.tokens.concat({segmentIndex:r,type:\"option\",option:s});return{...t,options:a,tokens:n}},pushFalse:(t,e,r,s)=>{let a=t.options.concat({name:s,value:!1}),n=t.tokens.concat({segmentIndex:r,type:\"option\",option:s});return{...t,options:a,tokens:n}},pushUndefined:(t,e,r,s)=>{let a=t.options.concat({name:e,value:void 0}),n=t.tokens.concat({segmentIndex:r,type:\"option\",option:e});return{...t,options:a,tokens:n}},pushStringValue:(t,e,r)=>{var s;let a=t.options[t.options.length-1],n=t.options.slice(),c=t.tokens.concat({segmentIndex:r,type:\"value\"});return a.value=((s=a.value)!==null&&s!==void 0?s:[]).concat([e]),{...t,options:n,tokens:c}},setStringValue:(t,e,r)=>{let s=t.options[t.options.length-1],a=t.options.slice(),n=t.tokens.concat({segmentIndex:r,type:\"value\"});return s.value=e,{...t,options:a,tokens:n}},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r,s)=>{let[,,a]=e.match(s_);return typeof a<\"u\"?{...t,options:[{name:\"-c\",value:String(s)},{name:\"-i\",value:a}]}:{...t,options:[{name:\"-c\",value:String(s)}]}},setError:(t,e,r,s)=>e===ei.EndOfInput||e===ei.EndOfPartialInput?{...t,errorMessage:`${s}.`}:{...t,errorMessage:`${s} (\"${e}\").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},Hl=Symbol(),I_=class{constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:s=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:s,proxy:a})}addPositional({name:e=\"arg\",required:r=!0}={}){if(!r&&this.arity.extra===Hl)throw new Error(\"Optional parameters cannot be declared when using .rest() or .proxy()\");if(!r&&this.arity.trailing.length>0)throw new Error(\"Optional parameters cannot be declared after the required trailing positional arguments\");!r&&this.arity.extra!==Hl?this.arity.extra.push(e):this.arity.extra!==Hl&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e=\"arg\",required:r=0}={}){if(this.arity.extra===Hl)throw new Error(\"Infinite lists cannot be declared multiple times in the same command\");if(this.arity.trailing.length>0)throw new Error(\"Infinite lists cannot be declared after the required trailing positional arguments\");for(let s=0;s<r;++s)this.addPositional({name:e});this.arity.extra=Hl}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:r,arity:s=0,hidden:a=!1,required:n=!1,allowBinding:c=!0}){if(!c&&s>1)throw new Error(\"The arity cannot be higher than 1 when the option only supports the --arg=value syntax\");if(!Number.isInteger(s))throw new Error(`The arity must be an integer, got ${s}`);if(s<0)throw new Error(`The arity must be positive, got ${s}`);let f=e.reduce((p,h)=>h.length>p.length?h:p,\"\");for(let p of e)this.allOptionNames.set(p,f);this.options.push({preferredName:f,nameSet:e,description:r,arity:s,hidden:a,required:n,allowBinding:c})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let s=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&s.push(...this.paths[0]),e){for(let{preferredName:c,nameSet:f,arity:p,hidden:h,description:E,required:C}of this.options){if(h)continue;let S=[];for(let I=0;I<p;++I)S.push(` #${I}`);let b=`${f.join(\",\")}${S.join(\"\")}`;!r&&E?a.push({preferredName:c,nameSet:f,definition:b,description:E,required:C}):s.push(C?`<${b}>`:`[${b}]`)}s.push(...this.arity.leading.map(c=>`<${c}>`)),this.arity.extra===Hl?s.push(\"...\"):s.push(...this.arity.extra.map(c=>`[${c}]`)),s.push(...this.arity.trailing.map(c=>`<${c}>`))}return{usage:s.join(\" \"),options:a}}compile(){if(typeof this.context>\"u\")throw new Error(\"Assertion failed: No context attached\");let e=Fre(),r=En.InitialNode,s=this.usage().usage,a=this.options.filter(f=>f.required).map(f=>f.nameSet);r=Ou(e,_l()),Ia(e,En.InitialNode,ei.StartOfInput,r,[\"setCandidateState\",{candidateUsage:s,requiredOptions:a}]);let n=this.arity.proxy?\"always\":\"isNotOptionLike\",c=this.paths.length>0?this.paths:[[]];for(let f of c){let p=r;if(f.length>0){let S=Ou(e,_l());BE(e,p,S),this.registerOptions(e,S),p=S}for(let S=0;S<f.length;++S){let b=Ou(e,_l());Ia(e,p,f[S],b,\"pushPath\"),p=b}if(this.arity.leading.length>0||!this.arity.proxy){let S=Ou(e,_l());Hs(e,p,\"isHelp\",S,[\"useHelp\",this.cliIndex]),Hs(e,S,\"always\",S,\"pushExtra\"),Ia(e,S,ei.EndOfInput,En.SuccessNode,[\"setSelectedIndex\",Nd]),this.registerOptions(e,p)}this.arity.leading.length>0&&(Ia(e,p,ei.EndOfInput,En.ErrorNode,[\"setError\",\"Not enough positional arguments\"]),Ia(e,p,ei.EndOfPartialInput,En.SuccessNode,[\"setPartialIndex\",this.cliIndex]));let h=p;for(let S=0;S<this.arity.leading.length;++S){let b=Ou(e,_l());(!this.arity.proxy||S+1!==this.arity.leading.length)&&this.registerOptions(e,b),(this.arity.trailing.length>0||S+1!==this.arity.leading.length)&&(Ia(e,b,ei.EndOfInput,En.ErrorNode,[\"setError\",\"Not enough positional arguments\"]),Ia(e,b,ei.EndOfPartialInput,En.SuccessNode,[\"setPartialIndex\",this.cliIndex])),Hs(e,h,\"isNotOptionLike\",b,\"pushPositional\"),h=b}let E=h;if(this.arity.extra===Hl||this.arity.extra.length>0){let S=Ou(e,_l());if(BE(e,h,S),this.arity.extra===Hl){let b=Ou(e,_l());this.arity.proxy||this.registerOptions(e,b),Hs(e,h,n,b,\"pushExtraNoLimits\"),Hs(e,b,n,b,\"pushExtraNoLimits\"),BE(e,b,S)}else for(let b=0;b<this.arity.extra.length;++b){let I=Ou(e,_l());(!this.arity.proxy||b>0)&&this.registerOptions(e,I),Hs(e,E,n,I,\"pushExtra\"),BE(e,I,S),E=I}E=S}this.arity.trailing.length>0&&(Ia(e,E,ei.EndOfInput,En.ErrorNode,[\"setError\",\"Not enough positional arguments\"]),Ia(e,E,ei.EndOfPartialInput,En.SuccessNode,[\"setPartialIndex\",this.cliIndex]));let C=E;for(let S=0;S<this.arity.trailing.length;++S){let b=Ou(e,_l());this.arity.proxy||this.registerOptions(e,b),S+1<this.arity.trailing.length&&(Ia(e,b,ei.EndOfInput,En.ErrorNode,[\"setError\",\"Not enough positional arguments\"]),Ia(e,b,ei.EndOfPartialInput,En.SuccessNode,[\"setPartialIndex\",this.cliIndex])),Hs(e,C,\"isNotOptionLike\",b,\"pushPositional\"),C=b}Hs(e,C,n,En.ErrorNode,[\"setError\",\"Extraneous positional argument\"]),Ia(e,C,ei.EndOfInput,En.SuccessNode,[\"setSelectedIndex\",this.cliIndex]),Ia(e,C,ei.EndOfPartialInput,En.SuccessNode,[\"setSelectedIndex\",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,r){Hs(e,r,[\"isOption\",\"--\"],r,\"inhibateOptions\"),Hs(e,r,[\"isBatchOption\",this.allOptionNames],r,[\"pushBatch\",this.allOptionNames]),Hs(e,r,[\"isBoundOption\",this.allOptionNames,this.options],r,\"pushBound\"),Hs(e,r,[\"isUnsupportedOption\",this.allOptionNames],En.ErrorNode,[\"setError\",\"Unsupported option name\"]),Hs(e,r,[\"isInvalidOption\"],En.ErrorNode,[\"setError\",\"Invalid option name\"]);for(let s of this.options)if(s.arity===0)for(let a of s.nameSet)Hs(e,r,[\"isOption\",a],r,[\"pushTrue\",s.preferredName]),a.startsWith(\"--\")&&!a.startsWith(\"--no-\")&&Hs(e,r,[\"isNegatedOption\",a],r,[\"pushFalse\",s.preferredName]);else{let a=Ou(e,_l());for(let n of s.nameSet)Hs(e,r,[\"isOption\",n],a,[\"pushUndefined\",s.preferredName]);for(let n=0;n<s.arity;++n){let c=Ou(e,_l());Ia(e,a,ei.EndOfInput,En.ErrorNode,\"setOptionArityError\"),Ia(e,a,ei.EndOfPartialInput,En.ErrorNode,\"setOptionArityError\"),Hs(e,a,\"isOptionLike\",En.ErrorNode,\"setOptionArityError\");let f=s.arity===1?\"setStringValue\":\"pushStringValue\";Hs(e,a,\"isNotOptionLike\",c,f),a=c}BE(e,a,r)}}},Lx=class t{constructor({binaryName:e=\"...\"}={}){this.builders=[],this.opts={binaryName:e}}static build(e,r={}){return new t(r).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let r of e)r(this.command());return this}command(){let e=new I_(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],r=[];for(let a of this.builders){let{machine:n,context:c}=a.compile();e.push(n),r.push(c)}let s=fYe(e);return AYe(s),{machine:s,contexts:r,process:(a,{partial:n}={})=>{let c=n?ei.EndOfPartialInput:ei.EndOfInput;return gYe(s,a,{endToken:c})}}}}});function Mre(){return Ux.default&&\"getColorDepth\"in Ux.default.WriteStream.prototype?Ux.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR===\"0\"?1:process.env.FORCE_COLOR===\"1\"||typeof process.stdout<\"u\"&&process.stdout.isTTY?8:1}function Ure(t){let e=Lre;if(typeof e>\"u\"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=Ie(\"async_hooks\");e=Lre=new r;let s=process.stdout._write;process.stdout._write=function(n,c,f){let p=e.getStore();return typeof p>\"u\"?s.call(this,n,c,f):p.stdout.write(n,c,f)};let a=process.stderr._write;process.stderr._write=function(n,c,f){let p=e.getStore();return typeof p>\"u\"?a.call(this,n,c,f):p.stderr.write(n,c,f)}}return r=>e.run(t,r)}var Ux,Lre,_re=Ze(()=>{Ux=ut(Ie(\"tty\"),1)});var _x,Hre=Ze(()=>{a0();_x=class t extends ot{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let s=new t(r);s.path=e.path;for(let a of e.options)switch(a.name){case\"-c\":s.commands.push(Number(a.value));break;case\"-i\":s.index=Number(a.value);break}return s}async execute(){let e=this.commands;if(typeof this.index<\"u\"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection:\n`),this.context.stdout.write(`\n`);let r=0;for(let s of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[s].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(`\n`),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands.\n`)}}}});async function qre(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Yre(t);return Ca.from(r,e).runExit(s,a)}async function Wre(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Yre(t);return Ca.from(r,e).run(s,a)}function Yre(t){let e,r,s,a;switch(typeof process<\"u\"&&typeof process.argv<\"u\"&&(s=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?s=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],s=t[2]):t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],s=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],s=t[2],a=t[3];break}if(typeof s>\"u\")throw new Error(\"The argv parameter must be provided when running Clipanion outside of a Node context\");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}}function Gre(t){return t()}var jre,Ca,Vre=Ze(()=>{bx();Mx();u_();_re();a0();Hre();jre=Symbol(\"clipanion/errorCommand\");Ca=class t{constructor({binaryLabel:e,binaryName:r=\"...\",binaryVersion:s,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new Lx({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=s,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let s=new t(r),a=Array.isArray(e)?e:[e];for(let n of a)s.register(n);return s}register(e){var r;let s=new Map,a=new e;for(let p in a){let h=a[p];typeof h==\"object\"&&h!==null&&h[ot.isOption]&&s.set(p,h)}let n=this.builder.command(),c=n.cliIndex,f=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof f<\"u\")for(let p of f)n.addPath(p);this.registrations.set(e,{specs:s,builder:n,index:c});for(let[p,{definition:h}]of s.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:s,context:a,partial:n}=typeof e==\"object\"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:c,process:f}=this.builder.compile(),p=f(s,{partial:n}),h={...t.defaultContext,...a};switch(p.selectedIndex){case Nd:{let E=_x.from(p,c);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=c[p.selectedIndex],C=this.registrations.get(E);if(typeof C>\"u\")throw new Error(\"Assertion failed: Expected the command class to have been registered.\");let S=new E;S.context=h,S.tokens=p.tokens,S.path=p.path;try{for(let[b,{transformer:I}]of C.specs.entries())S[b]=I(C.builder,b,p,h);return S}catch(b){throw b[jre]=S,b}}break}}async run(e,r){var s,a;let n,c={...t.defaultContext,...r},f=(s=this.enableColors)!==null&&s!==void 0?s:c.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,c)}catch(E){return c.stdout.write(this.error(E,{colored:f})),1}if(n.help)return c.stdout.write(this.usage(n,{colored:f,detailed:!0})),0;n.context=c,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,C)=>this.error(E,C),format:E=>this.format(E),process:(E,C)=>this.process(E,{...c,...C}),run:(E,C)=>this.run(E,{...c,...C}),usage:(E,C)=>this.usage(E,C)};let p=this.enableCapture&&(a=Ure(c))!==null&&a!==void 0?a:Gre,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return c.stdout.write(this.error(E,{colored:f,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:s}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),c=typeof e.usage.category<\"u\"?Ho(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,f=typeof e.usage.description<\"u\"?Ho(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<\"u\"?Ho(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<\"u\"?e.usage.examples.map(([E,C])=>[Ho(E,{format:this.format(r),paragraphs:!1}),C.replace(/\\$0/g,this.binaryName)]):void 0;return{path:s,usage:a,category:c,description:f,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let s of this.registrations.keys()){let a=this.definition(s,{colored:e});a&&r.push(a)}return r}usage(e=null,{colored:r,detailed:s=!1,prefix:a=\"$ \"}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<\"u\";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(b=>b.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(s=!0)}let c=e!==null&&e instanceof ot?e.constructor:e,f=\"\";if(c)if(s){let{description:p=\"\",details:h=\"\",examples:E=[]}=c.usage||{};p!==\"\"&&(f+=Ho(p,{format:this.format(r),paragraphs:!1}).replace(/^./,b=>b.toUpperCase()),f+=`\n`),(h!==\"\"||E.length>0)&&(f+=`${this.format(r).header(\"Usage\")}\n`,f+=`\n`);let{usage:C,options:S}=this.getUsageByRegistration(c,{inlineOptions:!1});if(f+=`${this.format(r).bold(a)}${C}\n`,S.length>0){f+=`\n`,f+=`${this.format(r).header(\"Options\")}\n`;let b=S.reduce((I,T)=>Math.max(I,T.definition.length),0);f+=`\n`;for(let{definition:I,description:T}of S)f+=`  ${this.format(r).bold(I.padEnd(b))}    ${Ho(T,{format:this.format(r),paragraphs:!1})}`}if(h!==\"\"&&(f+=`\n`,f+=`${this.format(r).header(\"Details\")}\n`,f+=`\n`,f+=Ho(h,{format:this.format(r),paragraphs:!0})),E.length>0){f+=`\n`,f+=`${this.format(r).header(\"Examples\")}\n`;for(let[b,I]of E)f+=`\n`,f+=Ho(b,{format:this.format(r),paragraphs:!1}),f+=`${I.replace(/^/m,`  ${this.format(r).bold(a)}`).replace(/\\$0/g,this.binaryName)}\n`}}else{let{usage:p}=this.getUsageByRegistration(c);f+=`${this.format(r).bold(a)}${p}\n`}else{let p=new Map;for(let[S,{index:b}]of this.registrations.entries()){if(typeof S.usage>\"u\")continue;let I=typeof S.usage.category<\"u\"?Ho(S.usage.category,{format:this.format(r),paragraphs:!1}):null,T=p.get(I);typeof T>\"u\"&&p.set(I,T=[]);let{usage:N}=this.getUsageByIndex(b);T.push({commandClass:S,usage:N})}let h=Array.from(p.keys()).sort((S,b)=>S===null?-1:b===null?1:S.localeCompare(b,\"en\",{usage:\"sort\",caseFirst:\"upper\"})),E=typeof this.binaryLabel<\"u\",C=typeof this.binaryVersion<\"u\";E||C?(E&&C?f+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)}\n\n`:E?f+=`${this.format(r).header(`${this.binaryLabel}`)}\n`:f+=`${this.format(r).header(`${this.binaryVersion}`)}\n`,f+=`  ${this.format(r).bold(a)}${this.binaryName} <command>\n`):f+=`${this.format(r).bold(a)}${this.binaryName} <command>\n`;for(let S of h){let b=p.get(S).slice().sort((T,N)=>T.usage.localeCompare(N.usage,\"en\",{usage:\"sort\",caseFirst:\"upper\"})),I=S!==null?S.trim():\"General commands\";f+=`\n`,f+=`${this.format(r).header(`${I}`)}\n`;for(let{commandClass:T,usage:N}of b){let U=T.usage.description||\"undocumented\";f+=`\n`,f+=`  ${this.format(r).bold(N)}\n`,f+=`    ${Ho(U,{format:this.format(r),paragraphs:!1})}`}}f+=`\n`,f+=Ho(\"You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.\",{format:this.format(r),paragraphs:!0})}return f}error(e,r){var s,{colored:a,command:n=(s=e[jre])!==null&&s!==void 0?s:null}=r===void 0?{}:r;(!e||typeof e!=\"object\"||!(\"stack\"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let c=\"\",f=e.name.replace(/([a-z])([A-Z])/g,\"$1 $2\");f===\"Error\"&&(f=\"Internal Error\"),c+=`${this.format(a).error(f)}: ${e.message}\n`;let p=e.clipanion;return typeof p<\"u\"?p.type===\"usage\"&&(c+=`\n`,c+=this.usage(n)):e.stack&&(c+=`${e.stack.replace(/^.*\\n/,\"\")}\n`),c}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.defaultContext.colorDepth>1)?Dre:Pre}getUsageByRegistration(e,r){let s=this.registrations.get(e);if(typeof s>\"u\")throw new Error(\"Assertion failed: Unregistered command\");return this.getUsageByIndex(s.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};Ca.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:Mre()}});var rB,Jre=Ze(()=>{a0();rB=class extends ot{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}\n`)}};rB.paths=[[\"--clipanion=definitions\"]]});var nB,Kre=Ze(()=>{a0();nB=class extends ot{async execute(){this.context.stdout.write(this.cli.usage())}};nB.paths=[[\"-h\"],[\"--help\"]]});function Hx(t={}){return ya({definition(e,r){var s;e.addProxy({name:(s=t.name)!==null&&s!==void 0?s:r,required:t.required})},transformer(e,r,s){return s.positionals.map(({value:a})=>a)}})}var C_=Ze(()=>{Cp()});var iB,zre=Ze(()=>{a0();C_();iB=class extends ot{constructor(){super(...arguments),this.args=Hx()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)}\n`)}};iB.paths=[[\"--clipanion=tokens\"]]});var sB,Zre=Ze(()=>{a0();sB=class extends ot{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:\"<unknown>\"}\n`)}};sB.paths=[[\"-v\"],[\"--version\"]]});var w_={};Vt(w_,{DefinitionsCommand:()=>rB,HelpCommand:()=>nB,TokensCommand:()=>iB,VersionCommand:()=>sB});var Xre=Ze(()=>{Jre();Kre();zre();Zre()});function $re(t,e,r){let[s,a]=Gf(e,r??{}),{arity:n=1}=a,c=t.split(\",\"),f=new Set(c);return ya({definition(p){p.addOption({names:c,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let C,S=typeof s<\"u\"?[...s]:void 0;for(let{name:b,value:I}of E.options)f.has(b)&&(C=b,S=S??[],S.push(I));return typeof S<\"u\"?Od(C??h,S,a.validator):S}})}var ene=Ze(()=>{Cp()});function tne(t,e,r){let[s,a]=Gf(e,r??{}),n=t.split(\",\"),c=new Set(n);return ya({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,p,h){let E=s;for(let{name:C,value:S}of h.options)c.has(C)&&(E=S);return E}})}var rne=Ze(()=>{Cp()});function nne(t,e,r){let[s,a]=Gf(e,r??{}),n=t.split(\",\"),c=new Set(n);return ya({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,p,h){let E=s;for(let{name:C,value:S}of h.options)c.has(C)&&(E??(E=0),S?E+=1:E=0);return E}})}var ine=Ze(()=>{Cp()});function sne(t={}){return ya({definition(e,r){var s;e.addRest({name:(s=t.name)!==null&&s!==void 0?s:r,required:t.required})},transformer(e,r,s){let a=c=>{let f=s.positionals[c];return f.extra===Hl||f.extra===!1&&c<e.arity.leading.length},n=0;for(;n<s.positionals.length&&a(n);)n+=1;return s.positionals.splice(0,n).map(({value:c})=>c)}})}var one=Ze(()=>{Mx();Cp()});function CYe(t,e,r){let[s,a]=Gf(e,r??{}),{arity:n=1}=a,c=t.split(\",\"),f=new Set(c);return ya({definition(p){p.addOption({names:c,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,C){let S,b=s;typeof a.env<\"u\"&&C.env[a.env]&&(S=a.env,b=C.env[a.env]);for(let{name:I,value:T}of E.options)f.has(I)&&(S=I,b=T);return typeof b==\"string\"?Od(S??h,b,a.validator):b}})}function wYe(t={}){let{required:e=!0}=t;return ya({definition(r,s){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:s,required:t.required})},transformer(r,s,a){var n;for(let c=0;c<a.positionals.length;++c){if(a.positionals[c].extra===Hl||e&&a.positionals[c].extra===!0||!e&&a.positionals[c].extra===!1)continue;let[f]=a.positionals.splice(c,1);return Od((n=t.name)!==null&&n!==void 0?n:s,f.value,t.validator)}}})}function ane(t,...e){return typeof t==\"string\"?CYe(t,...e):wYe(t)}var lne=Ze(()=>{Mx();Cp()});var ge={};Vt(ge,{Array:()=>$re,Boolean:()=>tne,Counter:()=>nne,Proxy:()=>Hx,Rest:()=>sne,String:()=>ane,applyValidator:()=>Od,cleanValidationError:()=>Qx,formatError:()=>z2,isOptionSymbol:()=>K2,makeCommandOption:()=>ya,rerouteArguments:()=>Gf});var cne=Ze(()=>{Cp();C_();ene();rne();ine();one();lne()});var oB={};Vt(oB,{Builtins:()=>w_,Cli:()=>Ca,Command:()=>ot,Option:()=>ge,UsageError:()=>nt,formatMarkdownish:()=>Ho,run:()=>Wre,runExit:()=>qre});var Yt=Ze(()=>{kx();u_();a0();Vre();Xre();cne()});var une=_((MRt,BYe)=>{BYe.exports={name:\"dotenv\",version:\"16.3.1\",description:\"Loads environment variables from .env file\",main:\"lib/main.js\",types:\"lib/main.d.ts\",exports:{\".\":{types:\"./lib/main.d.ts\",require:\"./lib/main.js\",default:\"./lib/main.js\"},\"./config\":\"./config.js\",\"./config.js\":\"./config.js\",\"./lib/env-options\":\"./lib/env-options.js\",\"./lib/env-options.js\":\"./lib/env-options.js\",\"./lib/cli-options\":\"./lib/cli-options.js\",\"./lib/cli-options.js\":\"./lib/cli-options.js\",\"./package.json\":\"./package.json\"},scripts:{\"dts-check\":\"tsc --project tests/types/tsconfig.json\",lint:\"standard\",\"lint-readme\":\"standard-markdown\",pretest:\"npm run lint && npm run dts-check\",test:\"tap tests/*.js --100 -Rspec\",prerelease:\"npm test\",release:\"standard-version\"},repository:{type:\"git\",url:\"git://github.com/motdotla/dotenv.git\"},funding:\"https://github.com/motdotla/dotenv?sponsor=1\",keywords:[\"dotenv\",\"env\",\".env\",\"environment\",\"variables\",\"config\",\"settings\"],readmeFilename:\"README.md\",license:\"BSD-2-Clause\",devDependencies:{\"@definitelytyped/dtslint\":\"^0.0.133\",\"@types/node\":\"^18.11.3\",decache:\"^4.6.1\",sinon:\"^14.0.1\",standard:\"^17.0.0\",\"standard-markdown\":\"^7.1.0\",\"standard-version\":\"^9.5.0\",tap:\"^16.3.0\",tar:\"^6.1.11\",typescript:\"^4.8.4\"},engines:{node:\">=12\"},browser:{fs:!1}}});var hne=_((URt,wp)=>{var fne=Ie(\"fs\"),v_=Ie(\"path\"),vYe=Ie(\"os\"),SYe=Ie(\"crypto\"),DYe=une(),S_=DYe.version,PYe=/(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg;function bYe(t){let e={},r=t.toString();r=r.replace(/\\r\\n?/mg,`\n`);let s;for(;(s=PYe.exec(r))!=null;){let a=s[1],n=s[2]||\"\";n=n.trim();let c=n[0];n=n.replace(/^(['\"`])([\\s\\S]*)\\1$/mg,\"$2\"),c==='\"'&&(n=n.replace(/\\\\n/g,`\n`),n=n.replace(/\\\\r/g,\"\\r\")),e[a]=n}return e}function xYe(t){let e=pne(t),r=js.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let s=Ane(t).split(\",\"),a=s.length,n;for(let c=0;c<a;c++)try{let f=s[c].trim(),p=RYe(r,f);n=js.decrypt(p.ciphertext,p.key);break}catch(f){if(c+1>=a)throw f}return js.parse(n)}function kYe(t){console.log(`[dotenv@${S_}][INFO] ${t}`)}function QYe(t){console.log(`[dotenv@${S_}][WARN] ${t}`)}function B_(t){console.log(`[dotenv@${S_}][DEBUG] ${t}`)}function Ane(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:\"\"}function RYe(t,e){let r;try{r=new URL(e)}catch(f){throw f.code===\"ERR_INVALID_URL\"?new Error(\"INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development\"):f}let s=r.password;if(!s)throw new Error(\"INVALID_DOTENV_KEY: Missing key part\");let a=r.searchParams.get(\"environment\");if(!a)throw new Error(\"INVALID_DOTENV_KEY: Missing environment part\");let n=`DOTENV_VAULT_${a.toUpperCase()}`,c=t.parsed[n];if(!c)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:c,key:s}}function pne(t){let e=v_.resolve(process.cwd(),\".env\");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(\".vault\")?e:`${e}.vault`}function TYe(t){return t[0]===\"~\"?v_.join(vYe.homedir(),t.slice(1)):t}function FYe(t){kYe(\"Loading env from encrypted .env.vault\");let e=js._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),js.populate(r,e,t),{parsed:e}}function NYe(t){let e=v_.resolve(process.cwd(),\".env\"),r=\"utf8\",s=!!(t&&t.debug);t&&(t.path!=null&&(e=TYe(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=js.parse(fne.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),js.populate(n,a,t),{parsed:a}}catch(a){return s&&B_(`Failed to load ${e} ${a.message}`),{error:a}}}function OYe(t){let e=pne(t);return Ane(t).length===0?js.configDotenv(t):fne.existsSync(e)?js._configVault(t):(QYe(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),js.configDotenv(t))}function LYe(t,e){let r=Buffer.from(e.slice(-64),\"hex\"),s=Buffer.from(t,\"base64\"),a=s.slice(0,12),n=s.slice(-16);s=s.slice(12,-16);try{let c=SYe.createDecipheriv(\"aes-256-gcm\",r,a);return c.setAuthTag(n),`${c.update(s)}${c.final()}`}catch(c){let f=c instanceof RangeError,p=c.message===\"Invalid key length\",h=c.message===\"Unsupported state or unable to authenticate data\";if(f||p){let E=\"INVALID_DOTENV_KEY: It must be 64 characters long (or more)\";throw new Error(E)}else if(h){let E=\"DECRYPTION_FAILED: Please check your DOTENV_KEY\";throw new Error(E)}else throw console.error(\"Error: \",c.code),console.error(\"Error: \",c.message),c}}function MYe(t,e,r={}){let s=!!(r&&r.debug),a=!!(r&&r.override);if(typeof e!=\"object\")throw new Error(\"OBJECT_REQUIRED: Please check the processEnv argument being passed to populate\");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),s&&B_(a===!0?`\"${n}\" is already defined and WAS overwritten`:`\"${n}\" is already defined and was NOT overwritten`)):t[n]=e[n]}var js={configDotenv:NYe,_configVault:FYe,_parseVault:xYe,config:OYe,decrypt:LYe,parse:bYe,populate:MYe};wp.exports.configDotenv=js.configDotenv;wp.exports._configVault=js._configVault;wp.exports._parseVault=js._parseVault;wp.exports.config=js.config;wp.exports.decrypt=js.decrypt;wp.exports.parse=js.parse;wp.exports.populate=js.populate;wp.exports=js});var dne=_((_Rt,gne)=>{\"use strict\";gne.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var Ld=_((HRt,D_)=>{\"use strict\";var UYe=dne(),mne=t=>{if(t<1)throw new TypeError(\"Expected `concurrency` to be a number from 1 and up\");let e=[],r=0,s=()=>{r--,e.length>0&&e.shift()()},a=(f,p,...h)=>{r++;let E=UYe(f,...h);p(E),E.then(s,s)},n=(f,p,...h)=>{r<t?a(f,p,...h):e.push(a.bind(null,f,p,...h))},c=(f,...p)=>new Promise(h=>n(f,h,...p));return Object.defineProperties(c,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),c};D_.exports=mne;D_.exports.default=mne});function Yf(t){return`YN${t.toString(10).padStart(4,\"0\")}`}function jx(t){let e=Number(t.slice(2));if(typeof Br[e]>\"u\")throw new Error(`Unknown message name: \"${t}\"`);return e}var Br,Gx=Ze(()=>{Br=(Me=>(Me[Me.UNNAMED=0]=\"UNNAMED\",Me[Me.EXCEPTION=1]=\"EXCEPTION\",Me[Me.MISSING_PEER_DEPENDENCY=2]=\"MISSING_PEER_DEPENDENCY\",Me[Me.CYCLIC_DEPENDENCIES=3]=\"CYCLIC_DEPENDENCIES\",Me[Me.DISABLED_BUILD_SCRIPTS=4]=\"DISABLED_BUILD_SCRIPTS\",Me[Me.BUILD_DISABLED=5]=\"BUILD_DISABLED\",Me[Me.SOFT_LINK_BUILD=6]=\"SOFT_LINK_BUILD\",Me[Me.MUST_BUILD=7]=\"MUST_BUILD\",Me[Me.MUST_REBUILD=8]=\"MUST_REBUILD\",Me[Me.BUILD_FAILED=9]=\"BUILD_FAILED\",Me[Me.RESOLVER_NOT_FOUND=10]=\"RESOLVER_NOT_FOUND\",Me[Me.FETCHER_NOT_FOUND=11]=\"FETCHER_NOT_FOUND\",Me[Me.LINKER_NOT_FOUND=12]=\"LINKER_NOT_FOUND\",Me[Me.FETCH_NOT_CACHED=13]=\"FETCH_NOT_CACHED\",Me[Me.YARN_IMPORT_FAILED=14]=\"YARN_IMPORT_FAILED\",Me[Me.REMOTE_INVALID=15]=\"REMOTE_INVALID\",Me[Me.REMOTE_NOT_FOUND=16]=\"REMOTE_NOT_FOUND\",Me[Me.RESOLUTION_PACK=17]=\"RESOLUTION_PACK\",Me[Me.CACHE_CHECKSUM_MISMATCH=18]=\"CACHE_CHECKSUM_MISMATCH\",Me[Me.UNUSED_CACHE_ENTRY=19]=\"UNUSED_CACHE_ENTRY\",Me[Me.MISSING_LOCKFILE_ENTRY=20]=\"MISSING_LOCKFILE_ENTRY\",Me[Me.WORKSPACE_NOT_FOUND=21]=\"WORKSPACE_NOT_FOUND\",Me[Me.TOO_MANY_MATCHING_WORKSPACES=22]=\"TOO_MANY_MATCHING_WORKSPACES\",Me[Me.CONSTRAINTS_MISSING_DEPENDENCY=23]=\"CONSTRAINTS_MISSING_DEPENDENCY\",Me[Me.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]=\"CONSTRAINTS_INCOMPATIBLE_DEPENDENCY\",Me[Me.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]=\"CONSTRAINTS_EXTRANEOUS_DEPENDENCY\",Me[Me.CONSTRAINTS_INVALID_DEPENDENCY=26]=\"CONSTRAINTS_INVALID_DEPENDENCY\",Me[Me.CANT_SUGGEST_RESOLUTIONS=27]=\"CANT_SUGGEST_RESOLUTIONS\",Me[Me.FROZEN_LOCKFILE_EXCEPTION=28]=\"FROZEN_LOCKFILE_EXCEPTION\",Me[Me.CROSS_DRIVE_VIRTUAL_LOCAL=29]=\"CROSS_DRIVE_VIRTUAL_LOCAL\",Me[Me.FETCH_FAILED=30]=\"FETCH_FAILED\",Me[Me.DANGEROUS_NODE_MODULES=31]=\"DANGEROUS_NODE_MODULES\",Me[Me.NODE_GYP_INJECTED=32]=\"NODE_GYP_INJECTED\",Me[Me.AUTHENTICATION_NOT_FOUND=33]=\"AUTHENTICATION_NOT_FOUND\",Me[Me.INVALID_CONFIGURATION_KEY=34]=\"INVALID_CONFIGURATION_KEY\",Me[Me.NETWORK_ERROR=35]=\"NETWORK_ERROR\",Me[Me.LIFECYCLE_SCRIPT=36]=\"LIFECYCLE_SCRIPT\",Me[Me.CONSTRAINTS_MISSING_FIELD=37]=\"CONSTRAINTS_MISSING_FIELD\",Me[Me.CONSTRAINTS_INCOMPATIBLE_FIELD=38]=\"CONSTRAINTS_INCOMPATIBLE_FIELD\",Me[Me.CONSTRAINTS_EXTRANEOUS_FIELD=39]=\"CONSTRAINTS_EXTRANEOUS_FIELD\",Me[Me.CONSTRAINTS_INVALID_FIELD=40]=\"CONSTRAINTS_INVALID_FIELD\",Me[Me.AUTHENTICATION_INVALID=41]=\"AUTHENTICATION_INVALID\",Me[Me.PROLOG_UNKNOWN_ERROR=42]=\"PROLOG_UNKNOWN_ERROR\",Me[Me.PROLOG_SYNTAX_ERROR=43]=\"PROLOG_SYNTAX_ERROR\",Me[Me.PROLOG_EXISTENCE_ERROR=44]=\"PROLOG_EXISTENCE_ERROR\",Me[Me.STACK_OVERFLOW_RESOLUTION=45]=\"STACK_OVERFLOW_RESOLUTION\",Me[Me.AUTOMERGE_FAILED_TO_PARSE=46]=\"AUTOMERGE_FAILED_TO_PARSE\",Me[Me.AUTOMERGE_IMMUTABLE=47]=\"AUTOMERGE_IMMUTABLE\",Me[Me.AUTOMERGE_SUCCESS=48]=\"AUTOMERGE_SUCCESS\",Me[Me.AUTOMERGE_REQUIRED=49]=\"AUTOMERGE_REQUIRED\",Me[Me.DEPRECATED_CLI_SETTINGS=50]=\"DEPRECATED_CLI_SETTINGS\",Me[Me.PLUGIN_NAME_NOT_FOUND=51]=\"PLUGIN_NAME_NOT_FOUND\",Me[Me.INVALID_PLUGIN_REFERENCE=52]=\"INVALID_PLUGIN_REFERENCE\",Me[Me.CONSTRAINTS_AMBIGUITY=53]=\"CONSTRAINTS_AMBIGUITY\",Me[Me.CACHE_OUTSIDE_PROJECT=54]=\"CACHE_OUTSIDE_PROJECT\",Me[Me.IMMUTABLE_INSTALL=55]=\"IMMUTABLE_INSTALL\",Me[Me.IMMUTABLE_CACHE=56]=\"IMMUTABLE_CACHE\",Me[Me.INVALID_MANIFEST=57]=\"INVALID_MANIFEST\",Me[Me.PACKAGE_PREPARATION_FAILED=58]=\"PACKAGE_PREPARATION_FAILED\",Me[Me.INVALID_RANGE_PEER_DEPENDENCY=59]=\"INVALID_RANGE_PEER_DEPENDENCY\",Me[Me.INCOMPATIBLE_PEER_DEPENDENCY=60]=\"INCOMPATIBLE_PEER_DEPENDENCY\",Me[Me.DEPRECATED_PACKAGE=61]=\"DEPRECATED_PACKAGE\",Me[Me.INCOMPATIBLE_OS=62]=\"INCOMPATIBLE_OS\",Me[Me.INCOMPATIBLE_CPU=63]=\"INCOMPATIBLE_CPU\",Me[Me.FROZEN_ARTIFACT_EXCEPTION=64]=\"FROZEN_ARTIFACT_EXCEPTION\",Me[Me.TELEMETRY_NOTICE=65]=\"TELEMETRY_NOTICE\",Me[Me.PATCH_HUNK_FAILED=66]=\"PATCH_HUNK_FAILED\",Me[Me.INVALID_CONFIGURATION_VALUE=67]=\"INVALID_CONFIGURATION_VALUE\",Me[Me.UNUSED_PACKAGE_EXTENSION=68]=\"UNUSED_PACKAGE_EXTENSION\",Me[Me.REDUNDANT_PACKAGE_EXTENSION=69]=\"REDUNDANT_PACKAGE_EXTENSION\",Me[Me.AUTO_NM_SUCCESS=70]=\"AUTO_NM_SUCCESS\",Me[Me.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]=\"NM_CANT_INSTALL_EXTERNAL_SOFT_LINK\",Me[Me.NM_PRESERVE_SYMLINKS_REQUIRED=72]=\"NM_PRESERVE_SYMLINKS_REQUIRED\",Me[Me.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]=\"UPDATE_LOCKFILE_ONLY_SKIP_LINK\",Me[Me.NM_HARDLINKS_MODE_DOWNGRADED=74]=\"NM_HARDLINKS_MODE_DOWNGRADED\",Me[Me.PROLOG_INSTANTIATION_ERROR=75]=\"PROLOG_INSTANTIATION_ERROR\",Me[Me.INCOMPATIBLE_ARCHITECTURE=76]=\"INCOMPATIBLE_ARCHITECTURE\",Me[Me.GHOST_ARCHITECTURE=77]=\"GHOST_ARCHITECTURE\",Me[Me.RESOLUTION_MISMATCH=78]=\"RESOLUTION_MISMATCH\",Me[Me.PROLOG_LIMIT_EXCEEDED=79]=\"PROLOG_LIMIT_EXCEEDED\",Me[Me.NETWORK_DISABLED=80]=\"NETWORK_DISABLED\",Me[Me.NETWORK_UNSAFE_HTTP=81]=\"NETWORK_UNSAFE_HTTP\",Me[Me.RESOLUTION_FAILED=82]=\"RESOLUTION_FAILED\",Me[Me.AUTOMERGE_GIT_ERROR=83]=\"AUTOMERGE_GIT_ERROR\",Me[Me.CONSTRAINTS_CHECK_FAILED=84]=\"CONSTRAINTS_CHECK_FAILED\",Me[Me.UPDATED_RESOLUTION_RECORD=85]=\"UPDATED_RESOLUTION_RECORD\",Me[Me.EXPLAIN_PEER_DEPENDENCIES_CTA=86]=\"EXPLAIN_PEER_DEPENDENCIES_CTA\",Me[Me.MIGRATION_SUCCESS=87]=\"MIGRATION_SUCCESS\",Me[Me.VERSION_NOTICE=88]=\"VERSION_NOTICE\",Me[Me.TIPS_NOTICE=89]=\"TIPS_NOTICE\",Me[Me.OFFLINE_MODE_ENABLED=90]=\"OFFLINE_MODE_ENABLED\",Me[Me.INVALID_PROVENANCE_ENVIRONMENT=91]=\"INVALID_PROVENANCE_ENVIRONMENT\",Me))(Br||{})});var aB=_((GRt,yne)=>{var _Ye=\"2.0.0\",HYe=Number.MAX_SAFE_INTEGER||9007199254740991,jYe=16,GYe=250,qYe=[\"major\",\"premajor\",\"minor\",\"preminor\",\"patch\",\"prepatch\",\"prerelease\"];yne.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:jYe,MAX_SAFE_BUILD_LENGTH:GYe,MAX_SAFE_INTEGER:HYe,RELEASE_TYPES:qYe,SEMVER_SPEC_VERSION:_Ye,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var lB=_((qRt,Ene)=>{var WYe=typeof process==\"object\"&&process.env&&process.env.NODE_DEBUG&&/\\bsemver\\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error(\"SEMVER\",...t):()=>{};Ene.exports=WYe});var vE=_((Bp,Ine)=>{var{MAX_SAFE_COMPONENT_LENGTH:P_,MAX_SAFE_BUILD_LENGTH:YYe,MAX_LENGTH:VYe}=aB(),JYe=lB();Bp=Ine.exports={};var KYe=Bp.re=[],zYe=Bp.safeRe=[],rr=Bp.src=[],nr=Bp.t={},ZYe=0,b_=\"[a-zA-Z0-9-]\",XYe=[[\"\\\\s\",1],[\"\\\\d\",VYe],[b_,YYe]],$Ye=t=>{for(let[e,r]of XYe)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},Jr=(t,e,r)=>{let s=$Ye(e),a=ZYe++;JYe(t,a,e),nr[t]=a,rr[a]=e,KYe[a]=new RegExp(e,r?\"g\":void 0),zYe[a]=new RegExp(s,r?\"g\":void 0)};Jr(\"NUMERICIDENTIFIER\",\"0|[1-9]\\\\d*\");Jr(\"NUMERICIDENTIFIERLOOSE\",\"\\\\d+\");Jr(\"NONNUMERICIDENTIFIER\",`\\\\d*[a-zA-Z-]${b_}*`);Jr(\"MAINVERSION\",`(${rr[nr.NUMERICIDENTIFIER]})\\\\.(${rr[nr.NUMERICIDENTIFIER]})\\\\.(${rr[nr.NUMERICIDENTIFIER]})`);Jr(\"MAINVERSIONLOOSE\",`(${rr[nr.NUMERICIDENTIFIERLOOSE]})\\\\.(${rr[nr.NUMERICIDENTIFIERLOOSE]})\\\\.(${rr[nr.NUMERICIDENTIFIERLOOSE]})`);Jr(\"PRERELEASEIDENTIFIER\",`(?:${rr[nr.NUMERICIDENTIFIER]}|${rr[nr.NONNUMERICIDENTIFIER]})`);Jr(\"PRERELEASEIDENTIFIERLOOSE\",`(?:${rr[nr.NUMERICIDENTIFIERLOOSE]}|${rr[nr.NONNUMERICIDENTIFIER]})`);Jr(\"PRERELEASE\",`(?:-(${rr[nr.PRERELEASEIDENTIFIER]}(?:\\\\.${rr[nr.PRERELEASEIDENTIFIER]})*))`);Jr(\"PRERELEASELOOSE\",`(?:-?(${rr[nr.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${rr[nr.PRERELEASEIDENTIFIERLOOSE]})*))`);Jr(\"BUILDIDENTIFIER\",`${b_}+`);Jr(\"BUILD\",`(?:\\\\+(${rr[nr.BUILDIDENTIFIER]}(?:\\\\.${rr[nr.BUILDIDENTIFIER]})*))`);Jr(\"FULLPLAIN\",`v?${rr[nr.MAINVERSION]}${rr[nr.PRERELEASE]}?${rr[nr.BUILD]}?`);Jr(\"FULL\",`^${rr[nr.FULLPLAIN]}$`);Jr(\"LOOSEPLAIN\",`[v=\\\\s]*${rr[nr.MAINVERSIONLOOSE]}${rr[nr.PRERELEASELOOSE]}?${rr[nr.BUILD]}?`);Jr(\"LOOSE\",`^${rr[nr.LOOSEPLAIN]}$`);Jr(\"GTLT\",\"((?:<|>)?=?)\");Jr(\"XRANGEIDENTIFIERLOOSE\",`${rr[nr.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);Jr(\"XRANGEIDENTIFIER\",`${rr[nr.NUMERICIDENTIFIER]}|x|X|\\\\*`);Jr(\"XRANGEPLAIN\",`[v=\\\\s]*(${rr[nr.XRANGEIDENTIFIER]})(?:\\\\.(${rr[nr.XRANGEIDENTIFIER]})(?:\\\\.(${rr[nr.XRANGEIDENTIFIER]})(?:${rr[nr.PRERELEASE]})?${rr[nr.BUILD]}?)?)?`);Jr(\"XRANGEPLAINLOOSE\",`[v=\\\\s]*(${rr[nr.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${rr[nr.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${rr[nr.XRANGEIDENTIFIERLOOSE]})(?:${rr[nr.PRERELEASELOOSE]})?${rr[nr.BUILD]}?)?)?`);Jr(\"XRANGE\",`^${rr[nr.GTLT]}\\\\s*${rr[nr.XRANGEPLAIN]}$`);Jr(\"XRANGELOOSE\",`^${rr[nr.GTLT]}\\\\s*${rr[nr.XRANGEPLAINLOOSE]}$`);Jr(\"COERCEPLAIN\",`(^|[^\\\\d])(\\\\d{1,${P_}})(?:\\\\.(\\\\d{1,${P_}}))?(?:\\\\.(\\\\d{1,${P_}}))?`);Jr(\"COERCE\",`${rr[nr.COERCEPLAIN]}(?:$|[^\\\\d])`);Jr(\"COERCEFULL\",rr[nr.COERCEPLAIN]+`(?:${rr[nr.PRERELEASE]})?(?:${rr[nr.BUILD]})?(?:$|[^\\\\d])`);Jr(\"COERCERTL\",rr[nr.COERCE],!0);Jr(\"COERCERTLFULL\",rr[nr.COERCEFULL],!0);Jr(\"LONETILDE\",\"(?:~>?)\");Jr(\"TILDETRIM\",`(\\\\s*)${rr[nr.LONETILDE]}\\\\s+`,!0);Bp.tildeTrimReplace=\"$1~\";Jr(\"TILDE\",`^${rr[nr.LONETILDE]}${rr[nr.XRANGEPLAIN]}$`);Jr(\"TILDELOOSE\",`^${rr[nr.LONETILDE]}${rr[nr.XRANGEPLAINLOOSE]}$`);Jr(\"LONECARET\",\"(?:\\\\^)\");Jr(\"CARETTRIM\",`(\\\\s*)${rr[nr.LONECARET]}\\\\s+`,!0);Bp.caretTrimReplace=\"$1^\";Jr(\"CARET\",`^${rr[nr.LONECARET]}${rr[nr.XRANGEPLAIN]}$`);Jr(\"CARETLOOSE\",`^${rr[nr.LONECARET]}${rr[nr.XRANGEPLAINLOOSE]}$`);Jr(\"COMPARATORLOOSE\",`^${rr[nr.GTLT]}\\\\s*(${rr[nr.LOOSEPLAIN]})$|^$`);Jr(\"COMPARATOR\",`^${rr[nr.GTLT]}\\\\s*(${rr[nr.FULLPLAIN]})$|^$`);Jr(\"COMPARATORTRIM\",`(\\\\s*)${rr[nr.GTLT]}\\\\s*(${rr[nr.LOOSEPLAIN]}|${rr[nr.XRANGEPLAIN]})`,!0);Bp.comparatorTrimReplace=\"$1$2$3\";Jr(\"HYPHENRANGE\",`^\\\\s*(${rr[nr.XRANGEPLAIN]})\\\\s+-\\\\s+(${rr[nr.XRANGEPLAIN]})\\\\s*$`);Jr(\"HYPHENRANGELOOSE\",`^\\\\s*(${rr[nr.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${rr[nr.XRANGEPLAINLOOSE]})\\\\s*$`);Jr(\"STAR\",\"(<|>)?=?\\\\s*\\\\*\");Jr(\"GTE0\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");Jr(\"GTE0PRE\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\")});var qx=_((WRt,Cne)=>{var eVe=Object.freeze({loose:!0}),tVe=Object.freeze({}),rVe=t=>t?typeof t!=\"object\"?eVe:t:tVe;Cne.exports=rVe});var x_=_((YRt,vne)=>{var wne=/^[0-9]+$/,Bne=(t,e)=>{let r=wne.test(t),s=wne.test(e);return r&&s&&(t=+t,e=+e),t===e?0:r&&!s?-1:s&&!r?1:t<e?-1:1},nVe=(t,e)=>Bne(e,t);vne.exports={compareIdentifiers:Bne,rcompareIdentifiers:nVe}});var jo=_((VRt,bne)=>{var Wx=lB(),{MAX_LENGTH:Sne,MAX_SAFE_INTEGER:Yx}=aB(),{safeRe:Dne,t:Pne}=vE(),iVe=qx(),{compareIdentifiers:SE}=x_(),k_=class t{constructor(e,r){if(r=iVe(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!=\"string\")throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof e}\".`);if(e.length>Sne)throw new TypeError(`version is longer than ${Sne} characters`);Wx(\"SemVer\",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let s=e.trim().match(r.loose?Dne[Pne.LOOSE]:Dne[Pne.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>Yx||this.major<0)throw new TypeError(\"Invalid major version\");if(this.minor>Yx||this.minor<0)throw new TypeError(\"Invalid minor version\");if(this.patch>Yx||this.patch<0)throw new TypeError(\"Invalid patch version\");s[4]?this.prerelease=s[4].split(\".\").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n<Yx)return n}return a}):this.prerelease=[],this.build=s[5]?s[5].split(\".\"):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(\".\")}`),this.version}toString(){return this.version}compare(e){if(Wx(\"SemVer.compare\",this.version,this.options,e),!(e instanceof t)){if(typeof e==\"string\"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),SE(this.major,e.major)||SE(this.minor,e.minor)||SE(this.patch,e.patch)}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let s=this.prerelease[r],a=e.prerelease[r];if(Wx(\"prerelease compare\",r,s,a),s===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(s===void 0)return-1;if(s===a)continue;return SE(s,a)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let s=this.build[r],a=e.build[r];if(Wx(\"prerelease compare\",r,s,a),s===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(s===void 0)return-1;if(s===a)continue;return SE(s,a)}while(++r)}inc(e,r,s){switch(e){case\"premajor\":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc(\"pre\",r,s);break;case\"preminor\":this.prerelease.length=0,this.patch=0,this.minor++,this.inc(\"pre\",r,s);break;case\"prepatch\":this.prerelease.length=0,this.inc(\"patch\",r,s),this.inc(\"pre\",r,s);break;case\"prerelease\":this.prerelease.length===0&&this.inc(\"patch\",r,s),this.inc(\"pre\",r,s);break;case\"major\":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case\"minor\":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case\"patch\":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case\"pre\":{let a=Number(s)?1:0;if(!r&&s===!1)throw new Error(\"invalid increment argument: identifier is empty\");if(this.prerelease.length===0)this.prerelease=[a];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]==\"number\"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(\".\")&&s===!1)throw new Error(\"invalid increment argument: identifier already exists\");this.prerelease.push(a)}}if(r){let n=[r,a];s===!1&&(n=[r]),SE(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(\".\")}`),this}};bne.exports=k_});var Md=_((JRt,kne)=>{var xne=jo(),sVe=(t,e,r=!1)=>{if(t instanceof xne)return t;try{return new xne(t,e)}catch(s){if(!r)return null;throw s}};kne.exports=sVe});var Rne=_((KRt,Qne)=>{var oVe=Md(),aVe=(t,e)=>{let r=oVe(t,e);return r?r.version:null};Qne.exports=aVe});var Fne=_((zRt,Tne)=>{var lVe=Md(),cVe=(t,e)=>{let r=lVe(t.trim().replace(/^[=v]+/,\"\"),e);return r?r.version:null};Tne.exports=cVe});var Lne=_((ZRt,One)=>{var Nne=jo(),uVe=(t,e,r,s,a)=>{typeof r==\"string\"&&(a=s,s=r,r=void 0);try{return new Nne(t instanceof Nne?t.version:t,r).inc(e,s,a).version}catch{return null}};One.exports=uVe});var _ne=_((XRt,Une)=>{var Mne=Md(),fVe=(t,e)=>{let r=Mne(t,null,!0),s=Mne(e,null,!0),a=r.compare(s);if(a===0)return null;let n=a>0,c=n?r:s,f=n?s:r,p=!!c.prerelease.length;if(!!f.prerelease.length&&!p)return!f.patch&&!f.minor?\"major\":c.patch?\"patch\":c.minor?\"minor\":\"major\";let E=p?\"pre\":\"\";return r.major!==s.major?E+\"major\":r.minor!==s.minor?E+\"minor\":r.patch!==s.patch?E+\"patch\":\"prerelease\"};Une.exports=fVe});var jne=_(($Rt,Hne)=>{var AVe=jo(),pVe=(t,e)=>new AVe(t,e).major;Hne.exports=pVe});var qne=_((eTt,Gne)=>{var hVe=jo(),gVe=(t,e)=>new hVe(t,e).minor;Gne.exports=gVe});var Yne=_((tTt,Wne)=>{var dVe=jo(),mVe=(t,e)=>new dVe(t,e).patch;Wne.exports=mVe});var Jne=_((rTt,Vne)=>{var yVe=Md(),EVe=(t,e)=>{let r=yVe(t,e);return r&&r.prerelease.length?r.prerelease:null};Vne.exports=EVe});var Bc=_((nTt,zne)=>{var Kne=jo(),IVe=(t,e,r)=>new Kne(t,r).compare(new Kne(e,r));zne.exports=IVe});var Xne=_((iTt,Zne)=>{var CVe=Bc(),wVe=(t,e,r)=>CVe(e,t,r);Zne.exports=wVe});var eie=_((sTt,$ne)=>{var BVe=Bc(),vVe=(t,e)=>BVe(t,e,!0);$ne.exports=vVe});var Vx=_((oTt,rie)=>{var tie=jo(),SVe=(t,e,r)=>{let s=new tie(t,r),a=new tie(e,r);return s.compare(a)||s.compareBuild(a)};rie.exports=SVe});var iie=_((aTt,nie)=>{var DVe=Vx(),PVe=(t,e)=>t.sort((r,s)=>DVe(r,s,e));nie.exports=PVe});var oie=_((lTt,sie)=>{var bVe=Vx(),xVe=(t,e)=>t.sort((r,s)=>bVe(s,r,e));sie.exports=xVe});var cB=_((cTt,aie)=>{var kVe=Bc(),QVe=(t,e,r)=>kVe(t,e,r)>0;aie.exports=QVe});var Jx=_((uTt,lie)=>{var RVe=Bc(),TVe=(t,e,r)=>RVe(t,e,r)<0;lie.exports=TVe});var Q_=_((fTt,cie)=>{var FVe=Bc(),NVe=(t,e,r)=>FVe(t,e,r)===0;cie.exports=NVe});var R_=_((ATt,uie)=>{var OVe=Bc(),LVe=(t,e,r)=>OVe(t,e,r)!==0;uie.exports=LVe});var Kx=_((pTt,fie)=>{var MVe=Bc(),UVe=(t,e,r)=>MVe(t,e,r)>=0;fie.exports=UVe});var zx=_((hTt,Aie)=>{var _Ve=Bc(),HVe=(t,e,r)=>_Ve(t,e,r)<=0;Aie.exports=HVe});var T_=_((gTt,pie)=>{var jVe=Q_(),GVe=R_(),qVe=cB(),WVe=Kx(),YVe=Jx(),VVe=zx(),JVe=(t,e,r,s)=>{switch(e){case\"===\":return typeof t==\"object\"&&(t=t.version),typeof r==\"object\"&&(r=r.version),t===r;case\"!==\":return typeof t==\"object\"&&(t=t.version),typeof r==\"object\"&&(r=r.version),t!==r;case\"\":case\"=\":case\"==\":return jVe(t,r,s);case\"!=\":return GVe(t,r,s);case\">\":return qVe(t,r,s);case\">=\":return WVe(t,r,s);case\"<\":return YVe(t,r,s);case\"<=\":return VVe(t,r,s);default:throw new TypeError(`Invalid operator: ${e}`)}};pie.exports=JVe});var gie=_((dTt,hie)=>{var KVe=jo(),zVe=Md(),{safeRe:Zx,t:Xx}=vE(),ZVe=(t,e)=>{if(t instanceof KVe)return t;if(typeof t==\"number\"&&(t=String(t)),typeof t!=\"string\")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?Zx[Xx.COERCEFULL]:Zx[Xx.COERCE]);else{let p=e.includePrerelease?Zx[Xx.COERCERTLFULL]:Zx[Xx.COERCERTL],h;for(;(h=p.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||h.index+h[0].length!==r.index+r[0].length)&&(r=h),p.lastIndex=h.index+h[1].length+h[2].length;p.lastIndex=-1}if(r===null)return null;let s=r[2],a=r[3]||\"0\",n=r[4]||\"0\",c=e.includePrerelease&&r[5]?`-${r[5]}`:\"\",f=e.includePrerelease&&r[6]?`+${r[6]}`:\"\";return zVe(`${s}.${a}.${n}${c}${f}`,e)};hie.exports=ZVe});var mie=_((mTt,die)=>{\"use strict\";die.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var $x=_((yTt,yie)=>{\"use strict\";yie.exports=Fn;Fn.Node=Ud;Fn.create=Fn;function Fn(t){var e=this;if(e instanceof Fn||(e=new Fn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach==\"function\")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,s=arguments.length;r<s;r++)e.push(arguments[r]);return e}Fn.prototype.removeNode=function(t){if(t.list!==this)throw new Error(\"removing node which does not belong to this list\");var e=t.next,r=t.prev;return e&&(e.prev=r),r&&(r.next=e),t===this.head&&(this.head=e),t===this.tail&&(this.tail=r),t.list.length--,t.next=null,t.prev=null,t.list=null,e};Fn.prototype.unshiftNode=function(t){if(t!==this.head){t.list&&t.list.removeNode(t);var e=this.head;t.list=this,t.next=e,e&&(e.prev=t),this.head=t,this.tail||(this.tail=t),this.length++}};Fn.prototype.pushNode=function(t){if(t!==this.tail){t.list&&t.list.removeNode(t);var e=this.tail;t.list=this,t.prev=e,e&&(e.next=t),this.tail=t,this.head||(this.head=t),this.length++}};Fn.prototype.push=function(){for(var t=0,e=arguments.length;t<e;t++)$Ve(this,arguments[t]);return this.length};Fn.prototype.unshift=function(){for(var t=0,e=arguments.length;t<e;t++)e7e(this,arguments[t]);return this.length};Fn.prototype.pop=function(){if(this.tail){var t=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,t}};Fn.prototype.shift=function(){if(this.head){var t=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,t}};Fn.prototype.forEach=function(t,e){e=e||this;for(var r=this.head,s=0;r!==null;s++)t.call(e,r.value,s,this),r=r.next};Fn.prototype.forEachReverse=function(t,e){e=e||this;for(var r=this.tail,s=this.length-1;r!==null;s--)t.call(e,r.value,s,this),r=r.prev};Fn.prototype.get=function(t){for(var e=0,r=this.head;r!==null&&e<t;e++)r=r.next;if(e===t&&r!==null)return r.value};Fn.prototype.getReverse=function(t){for(var e=0,r=this.tail;r!==null&&e<t;e++)r=r.prev;if(e===t&&r!==null)return r.value};Fn.prototype.map=function(t,e){e=e||this;for(var r=new Fn,s=this.head;s!==null;)r.push(t.call(e,s.value,this)),s=s.next;return r};Fn.prototype.mapReverse=function(t,e){e=e||this;for(var r=new Fn,s=this.tail;s!==null;)r.push(t.call(e,s.value,this)),s=s.prev;return r};Fn.prototype.reduce=function(t,e){var r,s=this.head;if(arguments.length>1)r=e;else if(this.head)s=this.head.next,r=this.head.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(var a=0;s!==null;a++)r=t(r,s.value,a),s=s.next;return r};Fn.prototype.reduceReverse=function(t,e){var r,s=this.tail;if(arguments.length>1)r=e;else if(this.tail)s=this.tail.prev,r=this.tail.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(var a=this.length-1;s!==null;a--)r=t(r,s.value,a),s=s.prev;return r};Fn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};Fn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};Fn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Fn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var s=0,a=this.head;a!==null&&s<t;s++)a=a.next;for(;a!==null&&s<e;s++,a=a.next)r.push(a.value);return r};Fn.prototype.sliceReverse=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Fn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var s=this.length,a=this.tail;a!==null&&s>e;s--)a=a.prev;for(;a!==null&&s>t;s--,a=a.prev)r.push(a.value);return r};Fn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var s=0,a=this.head;a!==null&&s<t;s++)a=a.next;for(var n=[],s=0;a&&s<e;s++)n.push(a.value),a=this.removeNode(a);a===null&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(var s=0;s<r.length;s++)a=XVe(this,a,r[s]);return n};Fn.prototype.reverse=function(){for(var t=this.head,e=this.tail,r=t;r!==null;r=r.prev){var s=r.prev;r.prev=r.next,r.next=s}return this.head=e,this.tail=t,this};function XVe(t,e,r){var s=e===t.head?new Ud(r,null,e,t):new Ud(r,e,e.next,t);return s.next===null&&(t.tail=s),s.prev===null&&(t.head=s),t.length++,s}function $Ve(t,e){t.tail=new Ud(e,t.tail,null,t),t.head||(t.head=t.tail),t.length++}function e7e(t,e){t.head=new Ud(e,null,t.head,t),t.tail||(t.tail=t.head),t.length++}function Ud(t,e,r,s){if(!(this instanceof Ud))return new Ud(t,e,r,s);this.list=s,this.value=t,e?(e.next=this,this.prev=e):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}try{mie()(Fn)}catch{}});var Bie=_((ETt,wie)=>{\"use strict\";var t7e=$x(),_d=Symbol(\"max\"),Sp=Symbol(\"length\"),DE=Symbol(\"lengthCalculator\"),fB=Symbol(\"allowStale\"),Hd=Symbol(\"maxAge\"),vp=Symbol(\"dispose\"),Eie=Symbol(\"noDisposeOnSet\"),Gs=Symbol(\"lruList\"),Lu=Symbol(\"cache\"),Cie=Symbol(\"updateAgeOnGet\"),F_=()=>1,O_=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 r=this[_d]=e.max||1/0,s=e.length||F_;if(this[DE]=typeof s!=\"function\"?F_:s,this[fB]=e.stale||!1,e.maxAge&&typeof e.maxAge!=\"number\")throw new TypeError(\"maxAge must be a number\");this[Hd]=e.maxAge||0,this[vp]=e.dispose,this[Eie]=e.noDisposeOnSet||!1,this[Cie]=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[_d]=e||1/0,uB(this)}get max(){return this[_d]}set allowStale(e){this[fB]=!!e}get allowStale(){return this[fB]}set maxAge(e){if(typeof e!=\"number\")throw new TypeError(\"maxAge must be a non-negative number\");this[Hd]=e,uB(this)}get maxAge(){return this[Hd]}set lengthCalculator(e){typeof e!=\"function\"&&(e=F_),e!==this[DE]&&(this[DE]=e,this[Sp]=0,this[Gs].forEach(r=>{r.length=this[DE](r.value,r.key),this[Sp]+=r.length})),uB(this)}get lengthCalculator(){return this[DE]}get length(){return this[Sp]}get itemCount(){return this[Gs].length}rforEach(e,r){r=r||this;for(let s=this[Gs].tail;s!==null;){let a=s.prev;Iie(this,e,s,r),s=a}}forEach(e,r){r=r||this;for(let s=this[Gs].head;s!==null;){let a=s.next;Iie(this,e,s,r),s=a}}keys(){return this[Gs].toArray().map(e=>e.key)}values(){return this[Gs].toArray().map(e=>e.value)}reset(){this[vp]&&this[Gs]&&this[Gs].length&&this[Gs].forEach(e=>this[vp](e.key,e.value)),this[Lu]=new Map,this[Gs]=new t7e,this[Sp]=0}dump(){return this[Gs].map(e=>ek(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Gs]}set(e,r,s){if(s=s||this[Hd],s&&typeof s!=\"number\")throw new TypeError(\"maxAge must be a number\");let a=s?Date.now():0,n=this[DE](r,e);if(this[Lu].has(e)){if(n>this[_d])return PE(this,this[Lu].get(e)),!1;let p=this[Lu].get(e).value;return this[vp]&&(this[Eie]||this[vp](e,p.value)),p.now=a,p.maxAge=s,p.value=r,this[Sp]+=n-p.length,p.length=n,this.get(e),uB(this),!0}let c=new L_(e,r,n,a,s);return c.length>this[_d]?(this[vp]&&this[vp](e,r),!1):(this[Sp]+=c.length,this[Gs].unshift(c),this[Lu].set(e,this[Gs].head),uB(this),!0)}has(e){if(!this[Lu].has(e))return!1;let r=this[Lu].get(e).value;return!ek(this,r)}get(e){return N_(this,e,!0)}peek(e){return N_(this,e,!1)}pop(){let e=this[Gs].tail;return e?(PE(this,e),e.value):null}del(e){PE(this,this[Lu].get(e))}load(e){this.reset();let r=Date.now();for(let s=e.length-1;s>=0;s--){let a=e[s],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let c=n-r;c>0&&this.set(a.k,a.v,c)}}}prune(){this[Lu].forEach((e,r)=>N_(this,r,!1))}},N_=(t,e,r)=>{let s=t[Lu].get(e);if(s){let a=s.value;if(ek(t,a)){if(PE(t,s),!t[fB])return}else r&&(t[Cie]&&(s.value.now=Date.now()),t[Gs].unshiftNode(s));return a.value}},ek=(t,e)=>{if(!e||!e.maxAge&&!t[Hd])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[Hd]&&r>t[Hd]},uB=t=>{if(t[Sp]>t[_d])for(let e=t[Gs].tail;t[Sp]>t[_d]&&e!==null;){let r=e.prev;PE(t,e),e=r}},PE=(t,e)=>{if(e){let r=e.value;t[vp]&&t[vp](r.key,r.value),t[Sp]-=r.length,t[Lu].delete(r.key),t[Gs].removeNode(e)}},L_=class{constructor(e,r,s,a,n){this.key=e,this.value=r,this.length=s,this.now=a,this.maxAge=n||0}},Iie=(t,e,r,s)=>{let a=r.value;ek(t,a)&&(PE(t,r),t[fB]||(a=void 0)),a&&e.call(s,a.value,a.key,t)};wie.exports=O_});var vc=_((ITt,Pie)=>{var M_=class t{constructor(e,r){if(r=n7e(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof U_)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().split(/\\s+/).join(\" \"),this.set=this.raw.split(\"||\").map(s=>this.parseRange(s.trim())).filter(s=>s.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let s=this.set[0];if(this.set=this.set.filter(a=>!Sie(a[0])),this.set.length===0)this.set=[s];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&u7e(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(\" \").trim()).join(\"||\").trim(),this.range}toString(){return this.range}parseRange(e){let s=((this.options.includePrerelease&&l7e)|(this.options.loose&&c7e))+\":\"+e,a=vie.get(s);if(a)return a;let n=this.options.loose,c=n?sl[wa.HYPHENRANGELOOSE]:sl[wa.HYPHENRANGE];e=e.replace(c,I7e(this.options.includePrerelease)),vi(\"hyphen replace\",e),e=e.replace(sl[wa.COMPARATORTRIM],s7e),vi(\"comparator trim\",e),e=e.replace(sl[wa.TILDETRIM],o7e),vi(\"tilde trim\",e),e=e.replace(sl[wa.CARETTRIM],a7e),vi(\"caret trim\",e);let f=e.split(\" \").map(C=>f7e(C,this.options)).join(\" \").split(/\\s+/).map(C=>E7e(C,this.options));n&&(f=f.filter(C=>(vi(\"loose invalid filter\",C,this.options),!!C.match(sl[wa.COMPARATORLOOSE])))),vi(\"range list\",f);let p=new Map,h=f.map(C=>new U_(C,this.options));for(let C of h){if(Sie(C))return[C];p.set(C.value,C)}p.size>1&&p.has(\"\")&&p.delete(\"\");let E=[...p.values()];return vie.set(s,E),E}intersects(e,r){if(!(e instanceof t))throw new TypeError(\"a Range is required\");return this.set.some(s=>Die(s,r)&&e.set.some(a=>Die(a,r)&&s.every(n=>a.every(c=>n.intersects(c,r)))))}test(e){if(!e)return!1;if(typeof e==\"string\")try{e=new i7e(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(C7e(this.set[r],e,this.options))return!0;return!1}};Pie.exports=M_;var r7e=Bie(),vie=new r7e({max:1e3}),n7e=qx(),U_=AB(),vi=lB(),i7e=jo(),{safeRe:sl,t:wa,comparatorTrimReplace:s7e,tildeTrimReplace:o7e,caretTrimReplace:a7e}=vE(),{FLAG_INCLUDE_PRERELEASE:l7e,FLAG_LOOSE:c7e}=aB(),Sie=t=>t.value===\"<0.0.0-0\",u7e=t=>t.value===\"\",Die=(t,e)=>{let r=!0,s=t.slice(),a=s.pop();for(;r&&s.length;)r=s.every(n=>a.intersects(n,e)),a=s.pop();return r},f7e=(t,e)=>(vi(\"comp\",t,e),t=h7e(t,e),vi(\"caret\",t),t=A7e(t,e),vi(\"tildes\",t),t=d7e(t,e),vi(\"xrange\",t),t=y7e(t,e),vi(\"stars\",t),t),Ba=t=>!t||t.toLowerCase()===\"x\"||t===\"*\",A7e=(t,e)=>t.trim().split(/\\s+/).map(r=>p7e(r,e)).join(\" \"),p7e=(t,e)=>{let r=e.loose?sl[wa.TILDELOOSE]:sl[wa.TILDE];return t.replace(r,(s,a,n,c,f)=>{vi(\"tilde\",t,s,a,n,c,f);let p;return Ba(a)?p=\"\":Ba(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:Ba(c)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:f?(vi(\"replaceTilde pr\",f),p=`>=${a}.${n}.${c}-${f} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${c} <${a}.${+n+1}.0-0`,vi(\"tilde return\",p),p})},h7e=(t,e)=>t.trim().split(/\\s+/).map(r=>g7e(r,e)).join(\" \"),g7e=(t,e)=>{vi(\"caret\",t,e);let r=e.loose?sl[wa.CARETLOOSE]:sl[wa.CARET],s=e.includePrerelease?\"-0\":\"\";return t.replace(r,(a,n,c,f,p)=>{vi(\"caret\",t,a,n,c,f,p);let h;return Ba(n)?h=\"\":Ba(c)?h=`>=${n}.0.0${s} <${+n+1}.0.0-0`:Ba(f)?n===\"0\"?h=`>=${n}.${c}.0${s} <${n}.${+c+1}.0-0`:h=`>=${n}.${c}.0${s} <${+n+1}.0.0-0`:p?(vi(\"replaceCaret pr\",p),n===\"0\"?c===\"0\"?h=`>=${n}.${c}.${f}-${p} <${n}.${c}.${+f+1}-0`:h=`>=${n}.${c}.${f}-${p} <${n}.${+c+1}.0-0`:h=`>=${n}.${c}.${f}-${p} <${+n+1}.0.0-0`):(vi(\"no pr\"),n===\"0\"?c===\"0\"?h=`>=${n}.${c}.${f}${s} <${n}.${c}.${+f+1}-0`:h=`>=${n}.${c}.${f}${s} <${n}.${+c+1}.0-0`:h=`>=${n}.${c}.${f} <${+n+1}.0.0-0`),vi(\"caret return\",h),h})},d7e=(t,e)=>(vi(\"replaceXRanges\",t,e),t.split(/\\s+/).map(r=>m7e(r,e)).join(\" \")),m7e=(t,e)=>{t=t.trim();let r=e.loose?sl[wa.XRANGELOOSE]:sl[wa.XRANGE];return t.replace(r,(s,a,n,c,f,p)=>{vi(\"xRange\",t,s,a,n,c,f,p);let h=Ba(n),E=h||Ba(c),C=E||Ba(f),S=C;return a===\"=\"&&S&&(a=\"\"),p=e.includePrerelease?\"-0\":\"\",h?a===\">\"||a===\"<\"?s=\"<0.0.0-0\":s=\"*\":a&&S?(E&&(c=0),f=0,a===\">\"?(a=\">=\",E?(n=+n+1,c=0,f=0):(c=+c+1,f=0)):a===\"<=\"&&(a=\"<\",E?n=+n+1:c=+c+1),a===\"<\"&&(p=\"-0\"),s=`${a+n}.${c}.${f}${p}`):E?s=`>=${n}.0.0${p} <${+n+1}.0.0-0`:C&&(s=`>=${n}.${c}.0${p} <${n}.${+c+1}.0-0`),vi(\"xRange return\",s),s})},y7e=(t,e)=>(vi(\"replaceStars\",t,e),t.trim().replace(sl[wa.STAR],\"\")),E7e=(t,e)=>(vi(\"replaceGTE0\",t,e),t.trim().replace(sl[e.includePrerelease?wa.GTE0PRE:wa.GTE0],\"\")),I7e=t=>(e,r,s,a,n,c,f,p,h,E,C,S,b)=>(Ba(s)?r=\"\":Ba(a)?r=`>=${s}.0.0${t?\"-0\":\"\"}`:Ba(n)?r=`>=${s}.${a}.0${t?\"-0\":\"\"}`:c?r=`>=${r}`:r=`>=${r}${t?\"-0\":\"\"}`,Ba(h)?p=\"\":Ba(E)?p=`<${+h+1}.0.0-0`:Ba(C)?p=`<${h}.${+E+1}.0-0`:S?p=`<=${h}.${E}.${C}-${S}`:t?p=`<${h}.${E}.${+C+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),C7e=(t,e,r)=>{for(let s=0;s<t.length;s++)if(!t[s].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let s=0;s<t.length;s++)if(vi(t[s].semver),t[s].semver!==U_.ANY&&t[s].semver.prerelease.length>0){let a=t[s].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var AB=_((CTt,Tie)=>{var pB=Symbol(\"SemVer ANY\"),j_=class t{static get ANY(){return pB}constructor(e,r){if(r=bie(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\\s+/).join(\" \"),H_(\"comparator\",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===pB?this.value=\"\":this.value=this.operator+this.semver.version,H_(\"comp\",this)}parse(e){let r=this.options.loose?xie[kie.COMPARATORLOOSE]:xie[kie.COMPARATOR],s=e.match(r);if(!s)throw new TypeError(`Invalid comparator: ${e}`);this.operator=s[1]!==void 0?s[1]:\"\",this.operator===\"=\"&&(this.operator=\"\"),s[2]?this.semver=new Qie(s[2],this.options.loose):this.semver=pB}toString(){return this.value}test(e){if(H_(\"Comparator.test\",e,this.options.loose),this.semver===pB||e===pB)return!0;if(typeof e==\"string\")try{e=new Qie(e,this.options)}catch{return!1}return __(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError(\"a Comparator is required\");return this.operator===\"\"?this.value===\"\"?!0:new Rie(e.value,r).test(this.value):e.operator===\"\"?e.value===\"\"?!0:new Rie(this.value,r).test(e.semver):(r=bie(r),r.includePrerelease&&(this.value===\"<0.0.0-0\"||e.value===\"<0.0.0-0\")||!r.includePrerelease&&(this.value.startsWith(\"<0.0.0\")||e.value.startsWith(\"<0.0.0\"))?!1:!!(this.operator.startsWith(\">\")&&e.operator.startsWith(\">\")||this.operator.startsWith(\"<\")&&e.operator.startsWith(\"<\")||this.semver.version===e.semver.version&&this.operator.includes(\"=\")&&e.operator.includes(\"=\")||__(this.semver,\"<\",e.semver,r)&&this.operator.startsWith(\">\")&&e.operator.startsWith(\"<\")||__(this.semver,\">\",e.semver,r)&&this.operator.startsWith(\"<\")&&e.operator.startsWith(\">\")))}};Tie.exports=j_;var bie=qx(),{safeRe:xie,t:kie}=vE(),__=T_(),H_=lB(),Qie=jo(),Rie=vc()});var hB=_((wTt,Fie)=>{var w7e=vc(),B7e=(t,e,r)=>{try{e=new w7e(e,r)}catch{return!1}return e.test(t)};Fie.exports=B7e});var Oie=_((BTt,Nie)=>{var v7e=vc(),S7e=(t,e)=>new v7e(t,e).set.map(r=>r.map(s=>s.value).join(\" \").trim().split(\" \"));Nie.exports=S7e});var Mie=_((vTt,Lie)=>{var D7e=jo(),P7e=vc(),b7e=(t,e,r)=>{let s=null,a=null,n=null;try{n=new P7e(e,r)}catch{return null}return t.forEach(c=>{n.test(c)&&(!s||a.compare(c)===-1)&&(s=c,a=new D7e(s,r))}),s};Lie.exports=b7e});var _ie=_((STt,Uie)=>{var x7e=jo(),k7e=vc(),Q7e=(t,e,r)=>{let s=null,a=null,n=null;try{n=new k7e(e,r)}catch{return null}return t.forEach(c=>{n.test(c)&&(!s||a.compare(c)===1)&&(s=c,a=new x7e(s,r))}),s};Uie.exports=Q7e});var Gie=_((DTt,jie)=>{var G_=jo(),R7e=vc(),Hie=cB(),T7e=(t,e)=>{t=new R7e(t,e);let r=new G_(\"0.0.0\");if(t.test(r)||(r=new G_(\"0.0.0-0\"),t.test(r)))return r;r=null;for(let s=0;s<t.set.length;++s){let a=t.set[s],n=null;a.forEach(c=>{let f=new G_(c.semver.version);switch(c.operator){case\">\":f.prerelease.length===0?f.patch++:f.prerelease.push(0),f.raw=f.format();case\"\":case\">=\":(!n||Hie(f,n))&&(n=f);break;case\"<\":case\"<=\":break;default:throw new Error(`Unexpected operation: ${c.operator}`)}}),n&&(!r||Hie(r,n))&&(r=n)}return r&&t.test(r)?r:null};jie.exports=T7e});var Wie=_((PTt,qie)=>{var F7e=vc(),N7e=(t,e)=>{try{return new F7e(t,e).range||\"*\"}catch{return null}};qie.exports=N7e});var tk=_((bTt,Kie)=>{var O7e=jo(),Jie=AB(),{ANY:L7e}=Jie,M7e=vc(),U7e=hB(),Yie=cB(),Vie=Jx(),_7e=zx(),H7e=Kx(),j7e=(t,e,r,s)=>{t=new O7e(t,s),e=new M7e(e,s);let a,n,c,f,p;switch(r){case\">\":a=Yie,n=_7e,c=Vie,f=\">\",p=\">=\";break;case\"<\":a=Vie,n=H7e,c=Yie,f=\"<\",p=\"<=\";break;default:throw new TypeError('Must provide a hilo val of \"<\" or \">\"')}if(U7e(t,e,s))return!1;for(let h=0;h<e.set.length;++h){let E=e.set[h],C=null,S=null;if(E.forEach(b=>{b.semver===L7e&&(b=new Jie(\">=0.0.0\")),C=C||b,S=S||b,a(b.semver,C.semver,s)?C=b:c(b.semver,S.semver,s)&&(S=b)}),C.operator===f||C.operator===p||(!S.operator||S.operator===f)&&n(t,S.semver))return!1;if(S.operator===p&&c(t,S.semver))return!1}return!0};Kie.exports=j7e});var Zie=_((xTt,zie)=>{var G7e=tk(),q7e=(t,e,r)=>G7e(t,e,\">\",r);zie.exports=q7e});var $ie=_((kTt,Xie)=>{var W7e=tk(),Y7e=(t,e,r)=>W7e(t,e,\"<\",r);Xie.exports=Y7e});var rse=_((QTt,tse)=>{var ese=vc(),V7e=(t,e,r)=>(t=new ese(t,r),e=new ese(e,r),t.intersects(e,r));tse.exports=V7e});var ise=_((RTt,nse)=>{var J7e=hB(),K7e=Bc();nse.exports=(t,e,r)=>{let s=[],a=null,n=null,c=t.sort((E,C)=>K7e(E,C,r));for(let E of c)J7e(E,e,r)?(n=E,a||(a=E)):(n&&s.push([a,n]),n=null,a=null);a&&s.push([a,null]);let f=[];for(let[E,C]of s)E===C?f.push(E):!C&&E===c[0]?f.push(\"*\"):C?E===c[0]?f.push(`<=${C}`):f.push(`${E} - ${C}`):f.push(`>=${E}`);let p=f.join(\" || \"),h=typeof e.raw==\"string\"?e.raw:String(e);return p.length<h.length?p:e}});var use=_((TTt,cse)=>{var sse=vc(),W_=AB(),{ANY:q_}=W_,gB=hB(),Y_=Bc(),z7e=(t,e,r={})=>{if(t===e)return!0;t=new sse(t,r),e=new sse(e,r);let s=!1;e:for(let a of t.set){for(let n of e.set){let c=X7e(a,n,r);if(s=s||c!==null,c)continue e}if(s)return!1}return!0},Z7e=[new W_(\">=0.0.0-0\")],ose=[new W_(\">=0.0.0\")],X7e=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===q_){if(e.length===1&&e[0].semver===q_)return!0;r.includePrerelease?t=Z7e:t=ose}if(e.length===1&&e[0].semver===q_){if(r.includePrerelease)return!0;e=ose}let s=new Set,a,n;for(let b of t)b.operator===\">\"||b.operator===\">=\"?a=ase(a,b,r):b.operator===\"<\"||b.operator===\"<=\"?n=lse(n,b,r):s.add(b.semver);if(s.size>1)return null;let c;if(a&&n){if(c=Y_(a.semver,n.semver,r),c>0)return null;if(c===0&&(a.operator!==\">=\"||n.operator!==\"<=\"))return null}for(let b of s){if(a&&!gB(b,String(a),r)||n&&!gB(b,String(n),r))return null;for(let I of e)if(!gB(b,String(I),r))return!1;return!0}let f,p,h,E,C=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,S=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;C&&C.prerelease.length===1&&n.operator===\"<\"&&C.prerelease[0]===0&&(C=!1);for(let b of e){if(E=E||b.operator===\">\"||b.operator===\">=\",h=h||b.operator===\"<\"||b.operator===\"<=\",a){if(S&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===S.major&&b.semver.minor===S.minor&&b.semver.patch===S.patch&&(S=!1),b.operator===\">\"||b.operator===\">=\"){if(f=ase(a,b,r),f===b&&f!==a)return!1}else if(a.operator===\">=\"&&!gB(a.semver,String(b),r))return!1}if(n){if(C&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===C.major&&b.semver.minor===C.minor&&b.semver.patch===C.patch&&(C=!1),b.operator===\"<\"||b.operator===\"<=\"){if(p=lse(n,b,r),p===b&&p!==n)return!1}else if(n.operator===\"<=\"&&!gB(n.semver,String(b),r))return!1}if(!b.operator&&(n||a)&&c!==0)return!1}return!(a&&h&&!n&&c!==0||n&&E&&!a&&c!==0||S||C)},ase=(t,e,r)=>{if(!t)return e;let s=Y_(t.semver,e.semver,r);return s>0?t:s<0||e.operator===\">\"&&t.operator===\">=\"?e:t},lse=(t,e,r)=>{if(!t)return e;let s=Y_(t.semver,e.semver,r);return s<0?t:s>0||e.operator===\"<\"&&t.operator===\"<=\"?e:t};cse.exports=z7e});var Ai=_((FTt,pse)=>{var V_=vE(),fse=aB(),$7e=jo(),Ase=x_(),eJe=Md(),tJe=Rne(),rJe=Fne(),nJe=Lne(),iJe=_ne(),sJe=jne(),oJe=qne(),aJe=Yne(),lJe=Jne(),cJe=Bc(),uJe=Xne(),fJe=eie(),AJe=Vx(),pJe=iie(),hJe=oie(),gJe=cB(),dJe=Jx(),mJe=Q_(),yJe=R_(),EJe=Kx(),IJe=zx(),CJe=T_(),wJe=gie(),BJe=AB(),vJe=vc(),SJe=hB(),DJe=Oie(),PJe=Mie(),bJe=_ie(),xJe=Gie(),kJe=Wie(),QJe=tk(),RJe=Zie(),TJe=$ie(),FJe=rse(),NJe=ise(),OJe=use();pse.exports={parse:eJe,valid:tJe,clean:rJe,inc:nJe,diff:iJe,major:sJe,minor:oJe,patch:aJe,prerelease:lJe,compare:cJe,rcompare:uJe,compareLoose:fJe,compareBuild:AJe,sort:pJe,rsort:hJe,gt:gJe,lt:dJe,eq:mJe,neq:yJe,gte:EJe,lte:IJe,cmp:CJe,coerce:wJe,Comparator:BJe,Range:vJe,satisfies:SJe,toComparators:DJe,maxSatisfying:PJe,minSatisfying:bJe,minVersion:xJe,validRange:kJe,outside:QJe,gtr:RJe,ltr:TJe,intersects:FJe,simplifyRange:NJe,subset:OJe,SemVer:$7e,re:V_.re,src:V_.src,tokens:V_.t,SEMVER_SPEC_VERSION:fse.SEMVER_SPEC_VERSION,RELEASE_TYPES:fse.RELEASE_TYPES,compareIdentifiers:Ase.compareIdentifiers,rcompareIdentifiers:Ase.rcompareIdentifiers}});var gse=_((NTt,hse)=>{\"use strict\";function LJe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function jd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name=\"SyntaxError\",typeof Error.captureStackTrace==\"function\"&&Error.captureStackTrace(this,jd)}LJe(jd,Error);jd.buildMessage=function(t,e){var r={literal:function(h){return'\"'+a(h.text)+'\"'},class:function(h){var E=\"\",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+\"-\"+n(h.parts[C][1]):n(h.parts[C]);return\"[\"+(h.inverted?\"^\":\"\")+E+\"]\"},any:function(h){return\"any character\"},end:function(h){return\"end of input\"},other:function(h){return h.description}};function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(E){return\"\\\\x0\"+s(E)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(E){return\"\\\\x\"+s(E)})}function n(h){return h.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\]/g,\"\\\\]\").replace(/\\^/g,\"\\\\^\").replace(/-/g,\"\\\\-\").replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(E){return\"\\\\x0\"+s(E)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(E){return\"\\\\x\"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}switch(E.length){case 1:return E[0];case 2:return E[0]+\" or \"+E[1];default:return E.slice(0,-1).join(\", \")+\", or \"+E[E.length-1]}}function p(h){return h?'\"'+a(h)+'\"':\"end of input\"}return\"Expected \"+f(t)+\" but \"+p(e)+\" found.\"};function MJe(t,e){e=e!==void 0?e:{};var r={},s={Expression:y},a=y,n=\"|\",c=Fe(\"|\",!1),f=\"&\",p=Fe(\"&\",!1),h=\"^\",E=Fe(\"^\",!1),C=function($,oe){return!!oe.reduce((xe,Re)=>{switch(Re[1]){case\"|\":return xe|Re[3];case\"&\":return xe&Re[3];case\"^\":return xe^Re[3]}},$)},S=\"!\",b=Fe(\"!\",!1),I=function($){return!$},T=\"(\",N=Fe(\"(\",!1),U=\")\",W=Fe(\")\",!1),ee=function($){return $},ie=/^[^ \\t\\n\\r()!|&\\^]/,ue=Ne([\" \",\"\t\",`\n`,\"\\r\",\"(\",\")\",\"!\",\"|\",\"&\",\"^\"],!0,!1),le=function($){return e.queryPattern.test($)},me=function($){return e.checkFn($)},pe=ke(\"whitespace\"),Be=/^[ \\t\\n\\r]/,Ce=Ne([\" \",\"\t\",`\n`,\"\\r\"],!1,!1),g=0,we=0,ye=[{line:1,column:1}],Ae=0,se=[],X=0,De;if(\"startRule\"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule \"`+e.startRule+'\".');a=s[e.startRule]}function Te(){return t.substring(we,g)}function mt(){return Ue(we,g)}function j($,oe){throw oe=oe!==void 0?oe:Ue(we,g),P([ke($)],t.substring(we,g),oe)}function rt($,oe){throw oe=oe!==void 0?oe:Ue(we,g),w($,oe)}function Fe($,oe){return{type:\"literal\",text:$,ignoreCase:oe}}function Ne($,oe,xe){return{type:\"class\",parts:$,inverted:oe,ignoreCase:xe}}function be(){return{type:\"any\"}}function Ve(){return{type:\"end\"}}function ke($){return{type:\"other\",description:$}}function it($){var oe=ye[$],xe;if(oe)return oe;for(xe=$-1;!ye[xe];)xe--;for(oe=ye[xe],oe={line:oe.line,column:oe.column};xe<$;)t.charCodeAt(xe)===10?(oe.line++,oe.column=1):oe.column++,xe++;return ye[$]=oe,oe}function Ue($,oe){var xe=it($),Re=it(oe);return{start:{offset:$,line:xe.line,column:xe.column},end:{offset:oe,line:Re.line,column:Re.column}}}function x($){g<Ae||(g>Ae&&(Ae=g,se=[]),se.push($))}function w($,oe){return new jd($,null,null,oe)}function P($,oe,xe){return new jd(jd.buildMessage($,oe),$,oe,xe)}function y(){var $,oe,xe,Re,lt,Ct,qt,ir;if($=g,oe=F(),oe!==r){for(xe=[],Re=g,lt=Z(),lt!==r?(t.charCodeAt(g)===124?(Ct=n,g++):(Ct=r,X===0&&x(c)),Ct===r&&(t.charCodeAt(g)===38?(Ct=f,g++):(Ct=r,X===0&&x(p)),Ct===r&&(t.charCodeAt(g)===94?(Ct=h,g++):(Ct=r,X===0&&x(E)))),Ct!==r?(qt=Z(),qt!==r?(ir=F(),ir!==r?(lt=[lt,Ct,qt,ir],Re=lt):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);Re!==r;)xe.push(Re),Re=g,lt=Z(),lt!==r?(t.charCodeAt(g)===124?(Ct=n,g++):(Ct=r,X===0&&x(c)),Ct===r&&(t.charCodeAt(g)===38?(Ct=f,g++):(Ct=r,X===0&&x(p)),Ct===r&&(t.charCodeAt(g)===94?(Ct=h,g++):(Ct=r,X===0&&x(E)))),Ct!==r?(qt=Z(),qt!==r?(ir=F(),ir!==r?(lt=[lt,Ct,qt,ir],Re=lt):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);xe!==r?(we=$,oe=C(oe,xe),$=oe):(g=$,$=r)}else g=$,$=r;return $}function F(){var $,oe,xe,Re,lt,Ct;return $=g,t.charCodeAt(g)===33?(oe=S,g++):(oe=r,X===0&&x(b)),oe!==r?(xe=F(),xe!==r?(we=$,oe=I(xe),$=oe):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(oe=T,g++):(oe=r,X===0&&x(N)),oe!==r?(xe=Z(),xe!==r?(Re=y(),Re!==r?(lt=Z(),lt!==r?(t.charCodeAt(g)===41?(Ct=U,g++):(Ct=r,X===0&&x(W)),Ct!==r?(we=$,oe=ee(Re),$=oe):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=z())),$}function z(){var $,oe,xe,Re,lt;if($=g,oe=Z(),oe!==r){if(xe=g,Re=[],ie.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,X===0&&x(ue)),lt!==r)for(;lt!==r;)Re.push(lt),ie.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,X===0&&x(ue));else Re=r;Re!==r?xe=t.substring(xe,g):xe=Re,xe!==r?(we=g,Re=le(xe),Re?Re=void 0:Re=r,Re!==r?(we=$,oe=me(xe),$=oe):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function Z(){var $,oe;for(X++,$=[],Be.test(t.charAt(g))?(oe=t.charAt(g),g++):(oe=r,X===0&&x(Ce));oe!==r;)$.push(oe),Be.test(t.charAt(g))?(oe=t.charAt(g),g++):(oe=r,X===0&&x(Ce));return X--,$===r&&(oe=r,X===0&&x(pe)),$}if(De=a(),De!==r&&g===t.length)return De;throw De!==r&&g<t.length&&x(Ve()),P(se,Ae<t.length?t.charAt(Ae):null,Ae<t.length?Ue(Ae,Ae+1):Ue(Ae,Ae))}hse.exports={SyntaxError:jd,parse:MJe}});var dse=_(rk=>{var{parse:UJe}=gse();rk.makeParser=(t=/[a-z]+/)=>(e,r)=>UJe(e,{queryPattern:t,checkFn:r});rk.parse=rk.makeParser()});var yse=_((LTt,mse)=>{\"use strict\";mse.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var J_=_((MTt,Ise)=>{var dB=yse(),Ese={};for(let t of Object.keys(dB))Ese[dB[t]]=t;var hr={rgb:{channels:3,labels:\"rgb\"},hsl:{channels:3,labels:\"hsl\"},hsv:{channels:3,labels:\"hsv\"},hwb:{channels:3,labels:\"hwb\"},cmyk:{channels:4,labels:\"cmyk\"},xyz:{channels:3,labels:\"xyz\"},lab:{channels:3,labels:\"lab\"},lch:{channels:3,labels:\"lch\"},hex:{channels:1,labels:[\"hex\"]},keyword:{channels:1,labels:[\"keyword\"]},ansi16:{channels:1,labels:[\"ansi16\"]},ansi256:{channels:1,labels:[\"ansi256\"]},hcg:{channels:3,labels:[\"h\",\"c\",\"g\"]},apple:{channels:3,labels:[\"r16\",\"g16\",\"b16\"]},gray:{channels:1,labels:[\"gray\"]}};Ise.exports=hr;for(let t of Object.keys(hr)){if(!(\"channels\"in hr[t]))throw new Error(\"missing channels property: \"+t);if(!(\"labels\"in hr[t]))throw new Error(\"missing channel labels property: \"+t);if(hr[t].labels.length!==hr[t].channels)throw new Error(\"channel and label counts mismatch: \"+t);let{channels:e,labels:r}=hr[t];delete hr[t].channels,delete hr[t].labels,Object.defineProperty(hr[t],\"channels\",{value:e}),Object.defineProperty(hr[t],\"labels\",{value:r})}hr.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,a=Math.min(e,r,s),n=Math.max(e,r,s),c=n-a,f,p;n===a?f=0:e===n?f=(r-s)/c:r===n?f=2+(s-e)/c:s===n&&(f=4+(e-r)/c),f=Math.min(f*60,360),f<0&&(f+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=c/(n+a):p=c/(2-n-a),[f,p*100,h*100]};hr.rgb.hsv=function(t){let e,r,s,a,n,c=t[0]/255,f=t[1]/255,p=t[2]/255,h=Math.max(c,f,p),E=h-Math.min(c,f,p),C=function(S){return(h-S)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=C(c),r=C(f),s=C(p),c===h?a=s-r:f===h?a=1/3+e-s:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};hr.rgb.hwb=function(t){let e=t[0],r=t[1],s=t[2],a=hr.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,s));return s=1-1/255*Math.max(e,Math.max(r,s)),[a,n*100,s*100]};hr.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,a=Math.min(1-e,1-r,1-s),n=(1-e-a)/(1-a)||0,c=(1-r-a)/(1-a)||0,f=(1-s-a)/(1-a)||0;return[n*100,c*100,f*100,a*100]};function _Je(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}hr.rgb.keyword=function(t){let e=Ese[t];if(e)return e;let r=1/0,s;for(let a of Object.keys(dB)){let n=dB[a],c=_Je(t,n);c<r&&(r=c,s=a)}return s};hr.keyword.rgb=function(t){return dB[t]};hr.rgb.xyz=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92;let a=e*.4124+r*.3576+s*.1805,n=e*.2126+r*.7152+s*.0722,c=e*.0193+r*.1192+s*.9505;return[a*100,n*100,c*100]};hr.rgb.lab=function(t){let e=hr.rgb.xyz(t),r=e[0],s=e[1],a=e[2];r/=95.047,s/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*s-16,c=500*(r-s),f=200*(s-a);return[n,c,f]};hr.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,a,n,c;if(r===0)return c=s*255,[c,c,c];s<.5?a=s*(1+r):a=s+r-s*r;let f=2*s-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?c=f+(a-f)*6*n:2*n<1?c=a:3*n<2?c=f+(a-f)*(2/3-n)*6:c=f,p[h]=c*255;return p};hr.hsl.hsv=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,a=r,n=Math.max(s,.01);s*=2,r*=s<=1?s:2-s,a*=n<=1?n:2-n;let c=(s+r)/2,f=s===0?2*a/(n+a):2*r/(s+r);return[e,f*100,c*100]};hr.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,s=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),c=255*s*(1-r),f=255*s*(1-r*n),p=255*s*(1-r*(1-n));switch(s*=255,a){case 0:return[s,p,c];case 1:return[f,s,c];case 2:return[c,s,p];case 3:return[c,f,s];case 4:return[p,c,s];case 5:return[s,c,f]}};hr.hsv.hsl=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,a=Math.max(s,.01),n,c;c=(2-r)*s;let f=(2-r)*a;return n=r*a,n/=f<=1?f:2-f,n=n||0,c/=2,[e,n*100,c*100]};hr.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,a=r+s,n;a>1&&(r/=a,s/=a);let c=Math.floor(6*e),f=1-s;n=6*e-c,c&1&&(n=1-n);let p=r+n*(f-r),h,E,C;switch(c){default:case 6:case 0:h=f,E=p,C=r;break;case 1:h=p,E=f,C=r;break;case 2:h=r,E=f,C=p;break;case 3:h=r,E=p,C=f;break;case 4:h=p,E=r,C=f;break;case 5:h=f,E=r,C=p;break}return[h*255,E*255,C*255]};hr.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),c=1-Math.min(1,r*(1-a)+a),f=1-Math.min(1,s*(1-a)+a);return[n*255,c*255,f*255]};hr.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,a,n,c;return a=e*3.2406+r*-1.5372+s*-.4986,n=e*-.9689+r*1.8758+s*.0415,c=e*.0557+r*-.204+s*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),c=Math.min(Math.max(0,c),1),[a*255,n*255,c*255]};hr.xyz.lab=function(t){let e=t[0],r=t[1],s=t[2];e/=95.047,r/=100,s/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,s=s>.008856?s**(1/3):7.787*s+16/116;let a=116*r-16,n=500*(e-r),c=200*(r-s);return[a,n,c]};hr.lab.xyz=function(t){let e=t[0],r=t[1],s=t[2],a,n,c;n=(e+16)/116,a=r/500+n,c=n-s/200;let f=n**3,p=a**3,h=c**3;return n=f>.008856?f:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,c=h>.008856?h:(c-16/116)/7.787,a*=95.047,n*=100,c*=108.883,[a,n,c]};hr.lab.lch=function(t){let e=t[0],r=t[1],s=t[2],a;a=Math.atan2(s,r)*360/2/Math.PI,a<0&&(a+=360);let c=Math.sqrt(r*r+s*s);return[e,c,a]};hr.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),c=r*Math.sin(a);return[e,n,c]};hr.rgb.ansi16=function(t,e=null){let[r,s,a]=t,n=e===null?hr.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let c=30+(Math.round(a/255)<<2|Math.round(s/255)<<1|Math.round(r/255));return n===2&&(c+=60),c};hr.hsv.ansi16=function(t){return hr.rgb.ansi16(hr.hsv.rgb(t),t[2])};hr.rgb.ansi256=function(t){let e=t[0],r=t[1],s=t[2];return e===r&&r===s?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(s/255*5)};hr.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,s=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[s,a,n]};hr.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,s=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,s,a]};hr.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return\"000000\".substring(r.length)+r};hr.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split(\"\").map(f=>f+f).join(\"\"));let s=parseInt(r,16),a=s>>16&255,n=s>>8&255,c=s&255;return[a,n,c]};hr.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,a=Math.max(Math.max(e,r),s),n=Math.min(Math.min(e,r),s),c=a-n,f,p;return c<1?f=n/(1-c):f=0,c<=0?p=0:a===e?p=(r-s)/c%6:a===r?p=2+(s-e)/c:p=4+(e-r)/c,p/=6,p%=1,[p*360,c*100,f*100]};hr.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=r<.5?2*e*r:2*e*(1-r),a=0;return s<1&&(a=(r-.5*s)/(1-s)),[t[0],s*100,a*100]};hr.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=e*r,a=0;return s<1&&(a=(r-s)/(1-s)),[t[0],s*100,a*100]};hr.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100;if(r===0)return[s*255,s*255,s*255];let a=[0,0,0],n=e%1*6,c=n%1,f=1-c,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=c,a[2]=0;break;case 1:a[0]=f,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=c;break;case 3:a[0]=0,a[1]=f,a[2]=1;break;case 4:a[0]=c,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=f}return p=(1-r)*s,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};hr.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e),a=0;return s>0&&(a=e/s),[t[0],a*100,s*100]};hr.hcg.hsl=function(t){let e=t[1]/100,s=t[2]/100*(1-e)+.5*e,a=0;return s>0&&s<.5?a=e/(2*s):s>=.5&&s<1&&(a=e/(2*(1-s))),[t[0],a*100,s*100]};hr.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e);return[t[0],(s-e)*100,(1-s)*100]};hr.hwb.hcg=function(t){let e=t[1]/100,s=1-t[2]/100,a=s-e,n=0;return a<1&&(n=(s-a)/(1-a)),[t[0],a*100,n*100]};hr.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};hr.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};hr.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};hr.gray.hsl=function(t){return[0,0,t[0]]};hr.gray.hsv=hr.gray.hsl;hr.gray.hwb=function(t){return[0,100,t[0]]};hr.gray.cmyk=function(t){return[0,0,0,t[0]]};hr.gray.lab=function(t){return[t[0],0,0]};hr.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,s=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return\"000000\".substring(s.length)+s};hr.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var wse=_((UTt,Cse)=>{var nk=J_();function HJe(){let t={},e=Object.keys(nk);for(let r=e.length,s=0;s<r;s++)t[e[s]]={distance:-1,parent:null};return t}function jJe(t){let e=HJe(),r=[t];for(e[t].distance=0;r.length;){let s=r.pop(),a=Object.keys(nk[s]);for(let n=a.length,c=0;c<n;c++){let f=a[c],p=e[f];p.distance===-1&&(p.distance=e[s].distance+1,p.parent=s,r.unshift(f))}}return e}function GJe(t,e){return function(r){return e(t(r))}}function qJe(t,e){let r=[e[t].parent,t],s=nk[e[t].parent][t],a=e[t].parent;for(;e[a].parent;)r.unshift(e[a].parent),s=GJe(nk[e[a].parent][a],s),a=e[a].parent;return s.conversion=r,s}Cse.exports=function(t){let e=jJe(t),r={},s=Object.keys(e);for(let a=s.length,n=0;n<a;n++){let c=s[n];e[c].parent!==null&&(r[c]=qJe(c,e))}return r}});var vse=_((_Tt,Bse)=>{var K_=J_(),WJe=wse(),bE={},YJe=Object.keys(K_);function VJe(t){let e=function(...r){let s=r[0];return s==null?s:(s.length>1&&(r=s),t(r))};return\"conversion\"in t&&(e.conversion=t.conversion),e}function JJe(t){let e=function(...r){let s=r[0];if(s==null)return s;s.length>1&&(r=s);let a=t(r);if(typeof a==\"object\")for(let n=a.length,c=0;c<n;c++)a[c]=Math.round(a[c]);return a};return\"conversion\"in t&&(e.conversion=t.conversion),e}YJe.forEach(t=>{bE[t]={},Object.defineProperty(bE[t],\"channels\",{value:K_[t].channels}),Object.defineProperty(bE[t],\"labels\",{value:K_[t].labels});let e=WJe(t);Object.keys(e).forEach(s=>{let a=e[s];bE[t][s]=JJe(a),bE[t][s].raw=VJe(a)})});Bse.exports=bE});var sk=_((HTt,xse)=>{\"use strict\";var Sse=(t,e)=>(...r)=>`\\x1B[${t(...r)+e}m`,Dse=(t,e)=>(...r)=>{let s=t(...r);return`\\x1B[${38+e};5;${s}m`},Pse=(t,e)=>(...r)=>{let s=t(...r);return`\\x1B[${38+e};2;${s[0]};${s[1]};${s[2]}m`},ik=t=>t,bse=(t,e,r)=>[t,e,r],xE=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let s=r();return Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0}),s},enumerable:!0,configurable:!0})},z_,kE=(t,e,r,s)=>{z_===void 0&&(z_=vse());let a=s?10:0,n={};for(let[c,f]of Object.entries(z_)){let p=c===\"ansi16\"?\"ansi\":c;c===e?n[p]=t(r,a):typeof f==\"object\"&&(n[p]=t(f[e],a))}return n};function KJe(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,s]of Object.entries(e)){for(let[a,n]of Object.entries(s))e[a]={open:`\\x1B[${n[0]}m`,close:`\\x1B[${n[1]}m`},s[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:s,enumerable:!1})}return Object.defineProperty(e,\"codes\",{value:t,enumerable:!1}),e.color.close=\"\\x1B[39m\",e.bgColor.close=\"\\x1B[49m\",xE(e.color,\"ansi\",()=>kE(Sse,\"ansi16\",ik,!1)),xE(e.color,\"ansi256\",()=>kE(Dse,\"ansi256\",ik,!1)),xE(e.color,\"ansi16m\",()=>kE(Pse,\"rgb\",bse,!1)),xE(e.bgColor,\"ansi\",()=>kE(Sse,\"ansi16\",ik,!0)),xE(e.bgColor,\"ansi256\",()=>kE(Dse,\"ansi256\",ik,!0)),xE(e.bgColor,\"ansi16m\",()=>kE(Pse,\"rgb\",bse,!0)),e}Object.defineProperty(xse,\"exports\",{enumerable:!0,get:KJe})});var Qse=_((jTt,kse)=>{\"use strict\";kse.exports=(t,e=process.argv)=>{let r=t.startsWith(\"-\")?\"\":t.length===1?\"-\":\"--\",s=e.indexOf(r+t),a=e.indexOf(\"--\");return s!==-1&&(a===-1||s<a)}});var Fse=_((GTt,Tse)=>{\"use strict\";var zJe=Ie(\"os\"),Rse=Ie(\"tty\"),Sc=Qse(),{env:Ps}=process,l0;Sc(\"no-color\")||Sc(\"no-colors\")||Sc(\"color=false\")||Sc(\"color=never\")?l0=0:(Sc(\"color\")||Sc(\"colors\")||Sc(\"color=true\")||Sc(\"color=always\"))&&(l0=1);\"FORCE_COLOR\"in Ps&&(Ps.FORCE_COLOR===\"true\"?l0=1:Ps.FORCE_COLOR===\"false\"?l0=0:l0=Ps.FORCE_COLOR.length===0?1:Math.min(parseInt(Ps.FORCE_COLOR,10),3));function Z_(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function X_(t,e){if(l0===0)return 0;if(Sc(\"color=16m\")||Sc(\"color=full\")||Sc(\"color=truecolor\"))return 3;if(Sc(\"color=256\"))return 2;if(t&&!e&&l0===void 0)return 0;let r=l0||0;if(Ps.TERM===\"dumb\")return r;if(process.platform===\"win32\"){let s=zJe.release().split(\".\");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if(\"CI\"in Ps)return[\"TRAVIS\",\"CIRCLECI\",\"APPVEYOR\",\"GITLAB_CI\"].some(s=>s in Ps)||Ps.CI_NAME===\"codeship\"?1:r;if(\"TEAMCITY_VERSION\"in Ps)return/^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(Ps.TEAMCITY_VERSION)?1:0;if(\"GITHUB_ACTIONS\"in Ps)return 1;if(Ps.COLORTERM===\"truecolor\")return 3;if(\"TERM_PROGRAM\"in Ps){let s=parseInt((Ps.TERM_PROGRAM_VERSION||\"\").split(\".\")[0],10);switch(Ps.TERM_PROGRAM){case\"iTerm.app\":return s>=3?3:2;case\"Apple_Terminal\":return 2}}return/-256(color)?$/i.test(Ps.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ps.TERM)||\"COLORTERM\"in Ps?1:r}function ZJe(t){let e=X_(t,t&&t.isTTY);return Z_(e)}Tse.exports={supportsColor:ZJe,stdout:Z_(X_(!0,Rse.isatty(1))),stderr:Z_(X_(!0,Rse.isatty(2)))}});var Ose=_((qTt,Nse)=>{\"use strict\";var XJe=(t,e,r)=>{let s=t.indexOf(e);if(s===-1)return t;let a=e.length,n=0,c=\"\";do c+=t.substr(n,s-n)+e+r,n=s+a,s=t.indexOf(e,n);while(s!==-1);return c+=t.substr(n),c},$Je=(t,e,r,s)=>{let a=0,n=\"\";do{let c=t[s-1]===\"\\r\";n+=t.substr(a,(c?s-1:s)-a)+e+(c?`\\r\n`:`\n`)+r,a=s+1,s=t.indexOf(`\n`,a)}while(s!==-1);return n+=t.substr(a),n};Nse.exports={stringReplaceAll:XJe,stringEncaseCRLFWithFirstIndex:$Je}});var Hse=_((WTt,_se)=>{\"use strict\";var eKe=/(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi,Lse=/(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g,tKe=/^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/,rKe=/\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi,nKe=new Map([[\"n\",`\n`],[\"r\",\"\\r\"],[\"t\",\"\t\"],[\"b\",\"\\b\"],[\"f\",\"\\f\"],[\"v\",\"\\v\"],[\"0\",\"\\0\"],[\"\\\\\",\"\\\\\"],[\"e\",\"\\x1B\"],[\"a\",\"\\x07\"]]);function Use(t){let e=t[0]===\"u\",r=t[1]===\"{\";return e&&!r&&t.length===5||t[0]===\"x\"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):nKe.get(t)||t}function iKe(t,e){let r=[],s=e.trim().split(/\\s*,\\s*/g),a;for(let n of s){let c=Number(n);if(!Number.isNaN(c))r.push(c);else if(a=n.match(tKe))r.push(a[2].replace(rKe,(f,p,h)=>p?Use(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function sKe(t){Lse.lastIndex=0;let e=[],r;for(;(r=Lse.exec(t))!==null;){let s=r[1];if(r[2]){let a=iKe(s,r[2]);e.push([s].concat(a))}else e.push([s])}return e}function Mse(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let s=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in s))throw new Error(`Unknown Chalk style: ${a}`);s=n.length>0?s[a](...n):s[a]}return s}_se.exports=(t,e)=>{let r=[],s=[],a=[];if(e.replace(eKe,(n,c,f,p,h,E)=>{if(c)a.push(Use(c));else if(p){let C=a.join(\"\");a=[],s.push(r.length===0?C:Mse(t,r)(C)),r.push({inverse:f,styles:sKe(p)})}else if(h){if(r.length===0)throw new Error(\"Found extraneous } in Chalk template literal\");s.push(Mse(t,r)(a.join(\"\"))),a=[],r.pop()}else a.push(E)}),s.push(a.join(\"\")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?\"\":\"s\"} (\\`}\\`)`;throw new Error(n)}return s.join(\"\")}});var RE=_((YTt,Vse)=>{\"use strict\";var mB=sk(),{stdout:e4,stderr:t4}=Fse(),{stringReplaceAll:oKe,stringEncaseCRLFWithFirstIndex:aKe}=Ose(),{isArray:ok}=Array,Gse=[\"ansi\",\"ansi\",\"ansi256\",\"ansi16m\"],QE=Object.create(null),lKe=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error(\"The `level` option should be an integer from 0 to 3\");let r=e4?e4.level:0;t.level=e.level===void 0?r:e.level},r4=class{constructor(e){return qse(e)}},qse=t=>{let e={};return lKe(e,t),e.template=(...r)=>Yse(e.template,...r),Object.setPrototypeOf(e,ak.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error(\"`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.\")},e.template.Instance=r4,e.template};function ak(t){return qse(t)}for(let[t,e]of Object.entries(mB))QE[t]={get(){let r=lk(this,n4(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};QE.visible={get(){let t=lk(this,this._styler,!0);return Object.defineProperty(this,\"visible\",{value:t}),t}};var Wse=[\"rgb\",\"hex\",\"keyword\",\"hsl\",\"hsv\",\"hwb\",\"ansi\",\"ansi256\"];for(let t of Wse)QE[t]={get(){let{level:e}=this;return function(...r){let s=n4(mB.color[Gse[e]][t](...r),mB.color.close,this._styler);return lk(this,s,this._isEmpty)}}};for(let t of Wse){let e=\"bg\"+t[0].toUpperCase()+t.slice(1);QE[e]={get(){let{level:r}=this;return function(...s){let a=n4(mB.bgColor[Gse[r]][t](...s),mB.bgColor.close,this._styler);return lk(this,a,this._isEmpty)}}}}var cKe=Object.defineProperties(()=>{},{...QE,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),n4=(t,e,r)=>{let s,a;return r===void 0?(s=t,a=e):(s=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:s,closeAll:a,parent:r}},lk=(t,e,r)=>{let s=(...a)=>ok(a[0])&&ok(a[0].raw)?jse(s,Yse(s,...a)):jse(s,a.length===1?\"\"+a[0]:a.join(\" \"));return Object.setPrototypeOf(s,cKe),s._generator=t,s._styler=e,s._isEmpty=r,s},jse=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?\"\":e;let r=t._styler;if(r===void 0)return e;let{openAll:s,closeAll:a}=r;if(e.indexOf(\"\\x1B\")!==-1)for(;r!==void 0;)e=oKe(e,r.close,r.open),r=r.parent;let n=e.indexOf(`\n`);return n!==-1&&(e=aKe(e,a,s,n)),s+e+a},$_,Yse=(t,...e)=>{let[r]=e;if(!ok(r)||!ok(r.raw))return e.join(\" \");let s=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(s[n-1]).replace(/[{}\\\\]/g,\"\\\\$&\"),String(r.raw[n]));return $_===void 0&&($_=Hse()),$_(t,a.join(\"\"))};Object.defineProperties(ak.prototype,QE);var ck=ak();ck.supportsColor=e4;ck.stderr=ak({level:t4?t4.level:0});ck.stderr.supportsColor=t4;Vse.exports=ck});var uk=_(Dc=>{\"use strict\";Dc.isInteger=t=>typeof t==\"number\"?Number.isInteger(t):typeof t==\"string\"&&t.trim()!==\"\"?Number.isInteger(Number(t)):!1;Dc.find=(t,e)=>t.nodes.find(r=>r.type===e);Dc.exceedsLimit=(t,e,r=1,s)=>s===!1||!Dc.isInteger(t)||!Dc.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=s;Dc.escapeNode=(t,e=0,r)=>{let s=t.nodes[e];s&&(r&&s.type===r||s.type===\"open\"||s.type===\"close\")&&s.escaped!==!0&&(s.value=\"\\\\\"+s.value,s.escaped=!0)};Dc.encloseBrace=t=>t.type!==\"brace\"||t.commas>>0+t.ranges>>0?!1:(t.invalid=!0,!0);Dc.isInvalidBrace=t=>t.type!==\"brace\"?!1:t.invalid===!0||t.dollar?!0:!(t.commas>>0+t.ranges>>0)||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Dc.isOpenOrClose=t=>t.type===\"open\"||t.type===\"close\"?!0:t.open===!0||t.close===!0;Dc.reduce=t=>t.reduce((e,r)=>(r.type===\"text\"&&e.push(r.value),r.type===\"range\"&&(r.type=\"text\"),e),[]);Dc.flatten=(...t)=>{let e=[],r=s=>{for(let a=0;a<s.length;a++){let n=s[a];Array.isArray(n)?r(n,e):n!==void 0&&e.push(n)}return e};return r(t),e}});var fk=_((JTt,Kse)=>{\"use strict\";var Jse=uk();Kse.exports=(t,e={})=>{let r=(s,a={})=>{let n=e.escapeInvalid&&Jse.isInvalidBrace(a),c=s.invalid===!0&&e.escapeInvalid===!0,f=\"\";if(s.value)return(n||c)&&Jse.isOpenOrClose(s)?\"\\\\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(let p of s.nodes)f+=r(p);return f};return r(t)}});var Zse=_((KTt,zse)=>{\"use strict\";zse.exports=function(t){return typeof t==\"number\"?t-t===0:typeof t==\"string\"&&t.trim()!==\"\"?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var ooe=_((zTt,soe)=>{\"use strict\";var Xse=Zse(),Gd=(t,e,r)=>{if(Xse(t)===!1)throw new TypeError(\"toRegexRange: expected the first argument to be a number\");if(e===void 0||t===e)return String(t);if(Xse(e)===!1)throw new TypeError(\"toRegexRange: expected the second argument to be a number.\");let s={relaxZeros:!0,...r};typeof s.strictZeros==\"boolean\"&&(s.relaxZeros=s.strictZeros===!1);let a=String(s.relaxZeros),n=String(s.shorthand),c=String(s.capture),f=String(s.wrap),p=t+\":\"+e+\"=\"+a+n+c+f;if(Gd.cache.hasOwnProperty(p))return Gd.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let T=t+\"|\"+e;return s.capture?`(${T})`:s.wrap===!1?T:`(?:${T})`}let C=ioe(t)||ioe(e),S={min:t,max:e,a:h,b:E},b=[],I=[];if(C&&(S.isPadded=C,S.maxLen=String(S.max).length),h<0){let T=E<0?Math.abs(E):1;I=$se(T,Math.abs(h),S,s),h=S.a=0}return E>=0&&(b=$se(h,E,S,s)),S.negatives=I,S.positives=b,S.result=uKe(I,b,s),s.capture===!0?S.result=`(${S.result})`:s.wrap!==!1&&b.length+I.length>1&&(S.result=`(?:${S.result})`),Gd.cache[p]=S,S.result};function uKe(t,e,r){let s=i4(t,e,\"-\",!1,r)||[],a=i4(e,t,\"\",!1,r)||[],n=i4(t,e,\"-?\",!0,r)||[];return s.concat(n).concat(a).join(\"|\")}function fKe(t,e){let r=1,s=1,a=toe(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=toe(t,r);for(a=roe(e+1,s)-1;t<a&&a<=e;)n.add(a),s+=1,a=roe(e+1,s)-1;return n=[...n],n.sort(hKe),n}function AKe(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let s=pKe(t,e),a=s.length,n=\"\",c=0;for(let f=0;f<a;f++){let[p,h]=s[f];p===h?n+=p:p!==\"0\"||h!==\"9\"?n+=gKe(p,h,r):c++}return c&&(n+=r.shorthand===!0?\"\\\\d\":\"[0-9]\"),{pattern:n,count:[c],digits:a}}function $se(t,e,r,s){let a=fKe(t,e),n=[],c=t,f;for(let p=0;p<a.length;p++){let h=a[p],E=AKe(String(c),String(h),s),C=\"\";if(!r.isPadded&&f&&f.pattern===E.pattern){f.count.length>1&&f.count.pop(),f.count.push(E.count[0]),f.string=f.pattern+noe(f.count),c=h+1;continue}r.isPadded&&(C=dKe(h,r,s)),E.string=C+E.pattern+noe(E.count),n.push(E),c=h+1,f=E}return n}function i4(t,e,r,s,a){let n=[];for(let c of t){let{string:f}=c;!s&&!eoe(e,\"string\",f)&&n.push(r+f),s&&eoe(e,\"string\",f)&&n.push(r+f)}return n}function pKe(t,e){let r=[];for(let s=0;s<t.length;s++)r.push([t[s],e[s]]);return r}function hKe(t,e){return t>e?1:e>t?-1:0}function eoe(t,e,r){return t.some(s=>s[e]===r)}function toe(t,e){return Number(String(t).slice(0,-e)+\"9\".repeat(e))}function roe(t,e){return t-t%Math.pow(10,e)}function noe(t){let[e=0,r=\"\"]=t;return r||e>1?`{${e+(r?\",\"+r:\"\")}}`:\"\"}function gKe(t,e,r){return`[${t}${e-t===1?\"\":\"-\"}${e}]`}function ioe(t){return/^-?(0+)\\d/.test(t)}function dKe(t,e,r){if(!e.isPadded)return t;let s=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(s){case 0:return\"\";case 1:return a?\"0?\":\"0\";case 2:return a?\"0{0,2}\":\"00\";default:return a?`0{0,${s}}`:`0{${s}}`}}Gd.cache={};Gd.clearCache=()=>Gd.cache={};soe.exports=Gd});var a4=_((ZTt,hoe)=>{\"use strict\";var mKe=Ie(\"util\"),coe=ooe(),aoe=t=>t!==null&&typeof t==\"object\"&&!Array.isArray(t),yKe=t=>e=>t===!0?Number(e):String(e),s4=t=>typeof t==\"number\"||typeof t==\"string\"&&t!==\"\",yB=t=>Number.isInteger(+t),o4=t=>{let e=`${t}`,r=-1;if(e[0]===\"-\"&&(e=e.slice(1)),e===\"0\")return!1;for(;e[++r]===\"0\";);return r>0},EKe=(t,e,r)=>typeof t==\"string\"||typeof e==\"string\"?!0:r.stringify===!0,IKe=(t,e,r)=>{if(e>0){let s=t[0]===\"-\"?\"-\":\"\";s&&(t=t.slice(1)),t=s+t.padStart(s?e-1:e,\"0\")}return r===!1?String(t):t},loe=(t,e)=>{let r=t[0]===\"-\"?\"-\":\"\";for(r&&(t=t.slice(1),e--);t.length<e;)t=\"0\"+t;return r?\"-\"+t:t},CKe=(t,e)=>{t.negatives.sort((c,f)=>c<f?-1:c>f?1:0),t.positives.sort((c,f)=>c<f?-1:c>f?1:0);let r=e.capture?\"\":\"?:\",s=\"\",a=\"\",n;return t.positives.length&&(s=t.positives.join(\"|\")),t.negatives.length&&(a=`-(${r}${t.negatives.join(\"|\")})`),s&&a?n=`${s}|${a}`:n=s||a,e.wrap?`(${r}${n})`:n},uoe=(t,e,r,s)=>{if(r)return coe(t,e,{wrap:!1,...s});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},foe=(t,e,r)=>{if(Array.isArray(t)){let s=r.wrap===!0,a=r.capture?\"\":\"?:\";return s?`(${a}${t.join(\"|\")})`:t.join(\"|\")}return coe(t,e,r)},Aoe=(...t)=>new RangeError(\"Invalid range arguments: \"+mKe.inspect(...t)),poe=(t,e,r)=>{if(r.strictRanges===!0)throw Aoe([t,e]);return[]},wKe=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step \"${t}\" to be a number`);return[]},BKe=(t,e,r=1,s={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(s.strictRanges===!0)throw Aoe([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let c=a>n,f=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=o4(f)||o4(p)||o4(h),C=E?Math.max(f.length,p.length,h.length):0,S=E===!1&&EKe(t,e,s)===!1,b=s.transform||yKe(S);if(s.toRegex&&r===1)return uoe(loe(t,C),loe(e,C),!0,s);let I={negatives:[],positives:[]},T=W=>I[W<0?\"negatives\":\"positives\"].push(Math.abs(W)),N=[],U=0;for(;c?a>=n:a<=n;)s.toRegex===!0&&r>1?T(a):N.push(IKe(b(a,U),C,S)),a=c?a-r:a+r,U++;return s.toRegex===!0?r>1?CKe(I,s):foe(N,null,{wrap:!1,...s}):N},vKe=(t,e,r=1,s={})=>{if(!yB(t)&&t.length>1||!yB(e)&&e.length>1)return poe(t,e,s);let a=s.transform||(S=>String.fromCharCode(S)),n=`${t}`.charCodeAt(0),c=`${e}`.charCodeAt(0),f=n>c,p=Math.min(n,c),h=Math.max(n,c);if(s.toRegex&&r===1)return uoe(p,h,!1,s);let E=[],C=0;for(;f?n>=c:n<=c;)E.push(a(n,C)),n=f?n-r:n+r,C++;return s.toRegex===!0?foe(E,null,{wrap:!1,options:s}):E},Ak=(t,e,r,s={})=>{if(e==null&&s4(t))return[t];if(!s4(t)||!s4(e))return poe(t,e,s);if(typeof r==\"function\")return Ak(t,e,1,{transform:r});if(aoe(r))return Ak(t,e,0,r);let a={...s};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,yB(r)?yB(t)&&yB(e)?BKe(t,e,r,a):vKe(t,e,Math.max(Math.abs(r),1),a):r!=null&&!aoe(r)?wKe(r,a):Ak(t,e,1,r)};hoe.exports=Ak});var moe=_((XTt,doe)=>{\"use strict\";var SKe=a4(),goe=uk(),DKe=(t,e={})=>{let r=(s,a={})=>{let n=goe.isInvalidBrace(a),c=s.invalid===!0&&e.escapeInvalid===!0,f=n===!0||c===!0,p=e.escapeInvalid===!0?\"\\\\\":\"\",h=\"\";if(s.isOpen===!0||s.isClose===!0)return p+s.value;if(s.type===\"open\")return f?p+s.value:\"(\";if(s.type===\"close\")return f?p+s.value:\")\";if(s.type===\"comma\")return s.prev.type===\"comma\"?\"\":f?s.value:\"|\";if(s.value)return s.value;if(s.nodes&&s.ranges>0){let E=goe.reduce(s.nodes),C=SKe(...E,{...e,wrap:!1,toRegex:!0});if(C.length!==0)return E.length>1&&C.length>1?`(${C})`:C}if(s.nodes)for(let E of s.nodes)h+=r(E,s);return h};return r(t)};doe.exports=DKe});var Ioe=_(($Tt,Eoe)=>{\"use strict\";var PKe=a4(),yoe=fk(),TE=uk(),qd=(t=\"\",e=\"\",r=!1)=>{let s=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?TE.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)s.push(qd(n,e,r));else for(let n of e)r===!0&&typeof n==\"string\"&&(n=`{${n}}`),s.push(Array.isArray(n)?qd(a,n,r):a+n);return TE.flatten(s)},bKe=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,s=(a,n={})=>{a.queue=[];let c=n,f=n.queue;for(;c.type!==\"brace\"&&c.type!==\"root\"&&c.parent;)c=c.parent,f=c.queue;if(a.invalid||a.dollar){f.push(qd(f.pop(),yoe(a,e)));return}if(a.type===\"brace\"&&a.invalid!==!0&&a.nodes.length===2){f.push(qd(f.pop(),[\"{}\"]));return}if(a.nodes&&a.ranges>0){let C=TE.reduce(a.nodes);if(TE.exceedsLimit(...C,e.step,r))throw new RangeError(\"expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.\");let S=PKe(...C,e);S.length===0&&(S=yoe(a,e)),f.push(qd(f.pop(),S)),a.nodes=[];return}let p=TE.encloseBrace(a),h=a.queue,E=a;for(;E.type!==\"brace\"&&E.type!==\"root\"&&E.parent;)E=E.parent,h=E.queue;for(let C=0;C<a.nodes.length;C++){let S=a.nodes[C];if(S.type===\"comma\"&&a.type===\"brace\"){C===1&&h.push(\"\"),h.push(\"\");continue}if(S.type===\"close\"){f.push(qd(f.pop(),h,p));continue}if(S.value&&S.type!==\"open\"){h.push(qd(h.pop(),S.value));continue}S.nodes&&s(S,a)}return h};return TE.flatten(s(t))};Eoe.exports=bKe});var woe=_((eFt,Coe)=>{\"use strict\";Coe.exports={MAX_LENGTH:1024*64,CHAR_0:\"0\",CHAR_9:\"9\",CHAR_UPPERCASE_A:\"A\",CHAR_LOWERCASE_A:\"a\",CHAR_UPPERCASE_Z:\"Z\",CHAR_LOWERCASE_Z:\"z\",CHAR_LEFT_PARENTHESES:\"(\",CHAR_RIGHT_PARENTHESES:\")\",CHAR_ASTERISK:\"*\",CHAR_AMPERSAND:\"&\",CHAR_AT:\"@\",CHAR_BACKSLASH:\"\\\\\",CHAR_BACKTICK:\"`\",CHAR_CARRIAGE_RETURN:\"\\r\",CHAR_CIRCUMFLEX_ACCENT:\"^\",CHAR_COLON:\":\",CHAR_COMMA:\",\",CHAR_DOLLAR:\"$\",CHAR_DOT:\".\",CHAR_DOUBLE_QUOTE:'\"',CHAR_EQUAL:\"=\",CHAR_EXCLAMATION_MARK:\"!\",CHAR_FORM_FEED:\"\\f\",CHAR_FORWARD_SLASH:\"/\",CHAR_HASH:\"#\",CHAR_HYPHEN_MINUS:\"-\",CHAR_LEFT_ANGLE_BRACKET:\"<\",CHAR_LEFT_CURLY_BRACE:\"{\",CHAR_LEFT_SQUARE_BRACKET:\"[\",CHAR_LINE_FEED:`\n`,CHAR_NO_BREAK_SPACE:\"\\xA0\",CHAR_PERCENT:\"%\",CHAR_PLUS:\"+\",CHAR_QUESTION_MARK:\"?\",CHAR_RIGHT_ANGLE_BRACKET:\">\",CHAR_RIGHT_CURLY_BRACE:\"}\",CHAR_RIGHT_SQUARE_BRACKET:\"]\",CHAR_SEMICOLON:\";\",CHAR_SINGLE_QUOTE:\"'\",CHAR_SPACE:\" \",CHAR_TAB:\"\t\",CHAR_UNDERSCORE:\"_\",CHAR_VERTICAL_LINE:\"|\",CHAR_ZERO_WIDTH_NOBREAK_SPACE:\"\\uFEFF\"}});var Poe=_((tFt,Doe)=>{\"use strict\";var xKe=fk(),{MAX_LENGTH:Boe,CHAR_BACKSLASH:l4,CHAR_BACKTICK:kKe,CHAR_COMMA:QKe,CHAR_DOT:RKe,CHAR_LEFT_PARENTHESES:TKe,CHAR_RIGHT_PARENTHESES:FKe,CHAR_LEFT_CURLY_BRACE:NKe,CHAR_RIGHT_CURLY_BRACE:OKe,CHAR_LEFT_SQUARE_BRACKET:voe,CHAR_RIGHT_SQUARE_BRACKET:Soe,CHAR_DOUBLE_QUOTE:LKe,CHAR_SINGLE_QUOTE:MKe,CHAR_NO_BREAK_SPACE:UKe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:_Ke}=woe(),HKe=(t,e={})=>{if(typeof t!=\"string\")throw new TypeError(\"Expected a string\");let r=e||{},s=typeof r.maxLength==\"number\"?Math.min(Boe,r.maxLength):Boe;if(t.length>s)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${s})`);let a={type:\"root\",input:t,nodes:[]},n=[a],c=a,f=a,p=0,h=t.length,E=0,C=0,S,b={},I=()=>t[E++],T=N=>{if(N.type===\"text\"&&f.type===\"dot\"&&(f.type=\"text\"),f&&f.type===\"text\"&&N.type===\"text\"){f.value+=N.value;return}return c.nodes.push(N),N.parent=c,N.prev=f,f=N,N};for(T({type:\"bos\"});E<h;)if(c=n[n.length-1],S=I(),!(S===_Ke||S===UKe)){if(S===l4){T({type:\"text\",value:(e.keepEscaping?S:\"\")+I()});continue}if(S===Soe){T({type:\"text\",value:\"\\\\\"+S});continue}if(S===voe){p++;let N=!0,U;for(;E<h&&(U=I());){if(S+=U,U===voe){p++;continue}if(U===l4){S+=I();continue}if(U===Soe&&(p--,p===0))break}T({type:\"text\",value:S});continue}if(S===TKe){c=T({type:\"paren\",nodes:[]}),n.push(c),T({type:\"text\",value:S});continue}if(S===FKe){if(c.type!==\"paren\"){T({type:\"text\",value:S});continue}c=n.pop(),T({type:\"text\",value:S}),c=n[n.length-1];continue}if(S===LKe||S===MKe||S===kKe){let N=S,U;for(e.keepQuotes!==!0&&(S=\"\");E<h&&(U=I());){if(U===l4){S+=U+I();continue}if(U===N){e.keepQuotes===!0&&(S+=U);break}S+=U}T({type:\"text\",value:S});continue}if(S===NKe){C++;let U={type:\"brace\",open:!0,close:!1,dollar:f.value&&f.value.slice(-1)===\"$\"||c.dollar===!0,depth:C,commas:0,ranges:0,nodes:[]};c=T(U),n.push(c),T({type:\"open\",value:S});continue}if(S===OKe){if(c.type!==\"brace\"){T({type:\"text\",value:S});continue}let N=\"close\";c=n.pop(),c.close=!0,T({type:N,value:S}),C--,c=n[n.length-1];continue}if(S===QKe&&C>0){if(c.ranges>0){c.ranges=0;let N=c.nodes.shift();c.nodes=[N,{type:\"text\",value:xKe(c)}]}T({type:\"comma\",value:S}),c.commas++;continue}if(S===RKe&&C>0&&c.commas===0){let N=c.nodes;if(C===0||N.length===0){T({type:\"text\",value:S});continue}if(f.type===\"dot\"){if(c.range=[],f.value+=S,f.type=\"range\",c.nodes.length!==3&&c.nodes.length!==5){c.invalid=!0,c.ranges=0,f.type=\"text\";continue}c.ranges++,c.args=[];continue}if(f.type===\"range\"){N.pop();let U=N[N.length-1];U.value+=f.value+S,f=U,c.ranges--;continue}T({type:\"dot\",value:S});continue}T({type:\"text\",value:S})}do if(c=n.pop(),c.type!==\"root\"){c.nodes.forEach(W=>{W.nodes||(W.type===\"open\"&&(W.isOpen=!0),W.type===\"close\"&&(W.isClose=!0),W.nodes||(W.type=\"text\"),W.invalid=!0)});let N=n[n.length-1],U=N.nodes.indexOf(c);N.nodes.splice(U,1,...c.nodes)}while(n.length>0);return T({type:\"eos\"}),a};Doe.exports=HKe});var koe=_((rFt,xoe)=>{\"use strict\";var boe=fk(),jKe=moe(),GKe=Ioe(),qKe=Poe(),jl=(t,e={})=>{let r=[];if(Array.isArray(t))for(let s of t){let a=jl.create(s,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(jl.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};jl.parse=(t,e={})=>qKe(t,e);jl.stringify=(t,e={})=>boe(typeof t==\"string\"?jl.parse(t,e):t,e);jl.compile=(t,e={})=>(typeof t==\"string\"&&(t=jl.parse(t,e)),jKe(t,e));jl.expand=(t,e={})=>{typeof t==\"string\"&&(t=jl.parse(t,e));let r=GKe(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};jl.create=(t,e={})=>t===\"\"||t.length<3?[t]:e.expand!==!0?jl.compile(t,e):jl.expand(t,e);xoe.exports=jl});var EB=_((nFt,Noe)=>{\"use strict\";var WKe=Ie(\"path\"),Vf=\"\\\\\\\\/\",Qoe=`[^${Vf}]`,Dp=\"\\\\.\",YKe=\"\\\\+\",VKe=\"\\\\?\",pk=\"\\\\/\",JKe=\"(?=.)\",Roe=\"[^/]\",c4=`(?:${pk}|$)`,Toe=`(?:^|${pk})`,u4=`${Dp}{1,2}${c4}`,KKe=`(?!${Dp})`,zKe=`(?!${Toe}${u4})`,ZKe=`(?!${Dp}{0,1}${c4})`,XKe=`(?!${u4})`,$Ke=`[^.${pk}]`,eze=`${Roe}*?`,Foe={DOT_LITERAL:Dp,PLUS_LITERAL:YKe,QMARK_LITERAL:VKe,SLASH_LITERAL:pk,ONE_CHAR:JKe,QMARK:Roe,END_ANCHOR:c4,DOTS_SLASH:u4,NO_DOT:KKe,NO_DOTS:zKe,NO_DOT_SLASH:ZKe,NO_DOTS_SLASH:XKe,QMARK_NO_DOT:$Ke,STAR:eze,START_ANCHOR:Toe},tze={...Foe,SLASH_LITERAL:`[${Vf}]`,QMARK:Qoe,STAR:`${Qoe}*?`,DOTS_SLASH:`${Dp}{1,2}(?:[${Vf}]|$)`,NO_DOT:`(?!${Dp})`,NO_DOTS:`(?!(?:^|[${Vf}])${Dp}{1,2}(?:[${Vf}]|$))`,NO_DOT_SLASH:`(?!${Dp}{0,1}(?:[${Vf}]|$))`,NO_DOTS_SLASH:`(?!${Dp}{1,2}(?:[${Vf}]|$))`,QMARK_NO_DOT:`[^.${Vf}]`,START_ANCHOR:`(?:^|[${Vf}])`,END_ANCHOR:`(?:[${Vf}]|$)`},rze={alnum:\"a-zA-Z0-9\",alpha:\"a-zA-Z\",ascii:\"\\\\x00-\\\\x7F\",blank:\" \\\\t\",cntrl:\"\\\\x00-\\\\x1F\\\\x7F\",digit:\"0-9\",graph:\"\\\\x21-\\\\x7E\",lower:\"a-z\",print:\"\\\\x20-\\\\x7E \",punct:\"\\\\-!\\\"#$%&'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~\",space:\" \\\\t\\\\r\\\\n\\\\v\\\\f\",upper:\"A-Z\",word:\"A-Za-z0-9_\",xdigit:\"A-Fa-f0-9\"};Noe.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:rze,REGEX_BACKSLASH:/\\\\(?![*+?^${}(|)[\\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\\].,$*+?^{}()|\\\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\\\?)((\\W)(\\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,REPLACEMENTS:{\"***\":\"*\",\"**/**\":\"**\",\"**/**/**\":\"**\"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:WKe.sep,extglobChars(t){return{\"!\":{type:\"negate\",open:\"(?:(?!(?:\",close:`))${t.STAR})`},\"?\":{type:\"qmark\",open:\"(?:\",close:\")?\"},\"+\":{type:\"plus\",open:\"(?:\",close:\")+\"},\"*\":{type:\"star\",open:\"(?:\",close:\")*\"},\"@\":{type:\"at\",open:\"(?:\",close:\")\"}}},globChars(t){return t===!0?tze:Foe}}});var IB=_(ol=>{\"use strict\";var nze=Ie(\"path\"),ize=process.platform===\"win32\",{REGEX_BACKSLASH:sze,REGEX_REMOVE_BACKSLASH:oze,REGEX_SPECIAL_CHARS:aze,REGEX_SPECIAL_CHARS_GLOBAL:lze}=EB();ol.isObject=t=>t!==null&&typeof t==\"object\"&&!Array.isArray(t);ol.hasRegexChars=t=>aze.test(t);ol.isRegexChar=t=>t.length===1&&ol.hasRegexChars(t);ol.escapeRegex=t=>t.replace(lze,\"\\\\$1\");ol.toPosixSlashes=t=>t.replace(sze,\"/\");ol.removeBackslashes=t=>t.replace(oze,e=>e===\"\\\\\"?\"\":e);ol.supportsLookbehinds=()=>{let t=process.version.slice(1).split(\".\").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};ol.isWindows=t=>t&&typeof t.windows==\"boolean\"?t.windows:ize===!0||nze.sep===\"\\\\\";ol.escapeLast=(t,e,r)=>{let s=t.lastIndexOf(e,r);return s===-1?t:t[s-1]===\"\\\\\"?ol.escapeLast(t,e,s-1):`${t.slice(0,s)}\\\\${t.slice(s)}`};ol.removePrefix=(t,e={})=>{let r=t;return r.startsWith(\"./\")&&(r=r.slice(2),e.prefix=\"./\"),r};ol.wrapOutput=(t,e={},r={})=>{let s=r.contains?\"\":\"^\",a=r.contains?\"\":\"$\",n=`${s}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var Goe=_((sFt,joe)=>{\"use strict\";var Ooe=IB(),{CHAR_ASTERISK:f4,CHAR_AT:cze,CHAR_BACKWARD_SLASH:CB,CHAR_COMMA:uze,CHAR_DOT:A4,CHAR_EXCLAMATION_MARK:p4,CHAR_FORWARD_SLASH:Hoe,CHAR_LEFT_CURLY_BRACE:h4,CHAR_LEFT_PARENTHESES:g4,CHAR_LEFT_SQUARE_BRACKET:fze,CHAR_PLUS:Aze,CHAR_QUESTION_MARK:Loe,CHAR_RIGHT_CURLY_BRACE:pze,CHAR_RIGHT_PARENTHESES:Moe,CHAR_RIGHT_SQUARE_BRACKET:hze}=EB(),Uoe=t=>t===Hoe||t===CB,_oe=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},gze=(t,e)=>{let r=e||{},s=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],c=[],f=[],p=t,h=-1,E=0,C=0,S=!1,b=!1,I=!1,T=!1,N=!1,U=!1,W=!1,ee=!1,ie=!1,ue=!1,le=0,me,pe,Be={value:\"\",depth:0,isGlob:!1},Ce=()=>h>=s,g=()=>p.charCodeAt(h+1),we=()=>(me=pe,p.charCodeAt(++h));for(;h<s;){pe=we();let De;if(pe===CB){W=Be.backslashes=!0,pe=we(),pe===h4&&(U=!0);continue}if(U===!0||pe===h4){for(le++;Ce()!==!0&&(pe=we());){if(pe===CB){W=Be.backslashes=!0,we();continue}if(pe===h4){le++;continue}if(U!==!0&&pe===A4&&(pe=we())===A4){if(S=Be.isBrace=!0,I=Be.isGlob=!0,ue=!0,a===!0)continue;break}if(U!==!0&&pe===uze){if(S=Be.isBrace=!0,I=Be.isGlob=!0,ue=!0,a===!0)continue;break}if(pe===pze&&(le--,le===0)){U=!1,S=Be.isBrace=!0,ue=!0;break}}if(a===!0)continue;break}if(pe===Hoe){if(n.push(h),c.push(Be),Be={value:\"\",depth:0,isGlob:!1},ue===!0)continue;if(me===A4&&h===E+1){E+=2;continue}C=h+1;continue}if(r.noext!==!0&&(pe===Aze||pe===cze||pe===f4||pe===Loe||pe===p4)===!0&&g()===g4){if(I=Be.isGlob=!0,T=Be.isExtglob=!0,ue=!0,pe===p4&&h===E&&(ie=!0),a===!0){for(;Ce()!==!0&&(pe=we());){if(pe===CB){W=Be.backslashes=!0,pe=we();continue}if(pe===Moe){I=Be.isGlob=!0,ue=!0;break}}continue}break}if(pe===f4){if(me===f4&&(N=Be.isGlobstar=!0),I=Be.isGlob=!0,ue=!0,a===!0)continue;break}if(pe===Loe){if(I=Be.isGlob=!0,ue=!0,a===!0)continue;break}if(pe===fze){for(;Ce()!==!0&&(De=we());){if(De===CB){W=Be.backslashes=!0,we();continue}if(De===hze){b=Be.isBracket=!0,I=Be.isGlob=!0,ue=!0;break}}if(a===!0)continue;break}if(r.nonegate!==!0&&pe===p4&&h===E){ee=Be.negated=!0,E++;continue}if(r.noparen!==!0&&pe===g4){if(I=Be.isGlob=!0,a===!0){for(;Ce()!==!0&&(pe=we());){if(pe===g4){W=Be.backslashes=!0,pe=we();continue}if(pe===Moe){ue=!0;break}}continue}break}if(I===!0){if(ue=!0,a===!0)continue;break}}r.noext===!0&&(T=!1,I=!1);let ye=p,Ae=\"\",se=\"\";E>0&&(Ae=p.slice(0,E),p=p.slice(E),C-=E),ye&&I===!0&&C>0?(ye=p.slice(0,C),se=p.slice(C)):I===!0?(ye=\"\",se=p):ye=p,ye&&ye!==\"\"&&ye!==\"/\"&&ye!==p&&Uoe(ye.charCodeAt(ye.length-1))&&(ye=ye.slice(0,-1)),r.unescape===!0&&(se&&(se=Ooe.removeBackslashes(se)),ye&&W===!0&&(ye=Ooe.removeBackslashes(ye)));let X={prefix:Ae,input:t,start:E,base:ye,glob:se,isBrace:S,isBracket:b,isGlob:I,isExtglob:T,isGlobstar:N,negated:ee,negatedExtglob:ie};if(r.tokens===!0&&(X.maxDepth=0,Uoe(pe)||c.push(Be),X.tokens=c),r.parts===!0||r.tokens===!0){let De;for(let Te=0;Te<n.length;Te++){let mt=De?De+1:E,j=n[Te],rt=t.slice(mt,j);r.tokens&&(Te===0&&E!==0?(c[Te].isPrefix=!0,c[Te].value=Ae):c[Te].value=rt,_oe(c[Te]),X.maxDepth+=c[Te].depth),(Te!==0||rt!==\"\")&&f.push(rt),De=j}if(De&&De+1<t.length){let Te=t.slice(De+1);f.push(Te),r.tokens&&(c[c.length-1].value=Te,_oe(c[c.length-1]),X.maxDepth+=c[c.length-1].depth)}X.slashes=n,X.parts=f}return X};joe.exports=gze});var Yoe=_((oFt,Woe)=>{\"use strict\";var hk=EB(),Gl=IB(),{MAX_LENGTH:gk,POSIX_REGEX_SOURCE:dze,REGEX_NON_SPECIAL_CHARS:mze,REGEX_SPECIAL_CHARS_BACKREF:yze,REPLACEMENTS:qoe}=hk,Eze=(t,e)=>{if(typeof e.expandRange==\"function\")return e.expandRange(...t,e);t.sort();let r=`[${t.join(\"-\")}]`;try{new RegExp(r)}catch{return t.map(a=>Gl.escapeRegex(a)).join(\"..\")}return r},FE=(t,e)=>`Missing ${t}: \"${e}\" - use \"\\\\\\\\${e}\" to match literal characters`,d4=(t,e)=>{if(typeof t!=\"string\")throw new TypeError(\"Expected a string\");t=qoe[t]||t;let r={...e},s=typeof r.maxLength==\"number\"?Math.min(gk,r.maxLength):gk,a=t.length;if(a>s)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${s}`);let n={type:\"bos\",value:\"\",output:r.prepend||\"\"},c=[n],f=r.capture?\"\":\"?:\",p=Gl.isWindows(e),h=hk.globChars(p),E=hk.extglobChars(h),{DOT_LITERAL:C,PLUS_LITERAL:S,SLASH_LITERAL:b,ONE_CHAR:I,DOTS_SLASH:T,NO_DOT:N,NO_DOT_SLASH:U,NO_DOTS_SLASH:W,QMARK:ee,QMARK_NO_DOT:ie,STAR:ue,START_ANCHOR:le}=h,me=x=>`(${f}(?:(?!${le}${x.dot?T:C}).)*?)`,pe=r.dot?\"\":N,Be=r.dot?ee:ie,Ce=r.bash===!0?me(r):ue;r.capture&&(Ce=`(${Ce})`),typeof r.noext==\"boolean\"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:\"\",output:\"\",prefix:\"\",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:c};t=Gl.removePrefix(t,g),a=t.length;let we=[],ye=[],Ae=[],se=n,X,De=()=>g.index===a-1,Te=g.peek=(x=1)=>t[g.index+x],mt=g.advance=()=>t[++g.index]||\"\",j=()=>t.slice(g.index+1),rt=(x=\"\",w=0)=>{g.consumed+=x,g.index+=w},Fe=x=>{g.output+=x.output!=null?x.output:x.value,rt(x.value)},Ne=()=>{let x=1;for(;Te()===\"!\"&&(Te(2)!==\"(\"||Te(3)===\"?\");)mt(),g.start++,x++;return x%2===0?!1:(g.negated=!0,g.start++,!0)},be=x=>{g[x]++,Ae.push(x)},Ve=x=>{g[x]--,Ae.pop()},ke=x=>{if(se.type===\"globstar\"){let w=g.braces>0&&(x.type===\"comma\"||x.type===\"brace\"),P=x.extglob===!0||we.length&&(x.type===\"pipe\"||x.type===\"paren\");x.type!==\"slash\"&&x.type!==\"paren\"&&!w&&!P&&(g.output=g.output.slice(0,-se.output.length),se.type=\"star\",se.value=\"*\",se.output=Ce,g.output+=se.output)}if(we.length&&x.type!==\"paren\"&&(we[we.length-1].inner+=x.value),(x.value||x.output)&&Fe(x),se&&se.type===\"text\"&&x.type===\"text\"){se.value+=x.value,se.output=(se.output||\"\")+x.value;return}x.prev=se,c.push(x),se=x},it=(x,w)=>{let P={...E[w],conditions:1,inner:\"\"};P.prev=se,P.parens=g.parens,P.output=g.output;let y=(r.capture?\"(\":\"\")+P.open;be(\"parens\"),ke({type:x,value:w,output:g.output?\"\":I}),ke({type:\"paren\",extglob:!0,value:mt(),output:y}),we.push(P)},Ue=x=>{let w=x.close+(r.capture?\")\":\"\"),P;if(x.type===\"negate\"){let y=Ce;if(x.inner&&x.inner.length>1&&x.inner.includes(\"/\")&&(y=me(r)),(y!==Ce||De()||/^\\)+$/.test(j()))&&(w=x.close=`)$))${y}`),x.inner.includes(\"*\")&&(P=j())&&/^\\.[^\\\\/.]+$/.test(P)){let F=d4(P,{...e,fastpaths:!1}).output;w=x.close=`)${F})${y})`}x.prev.type===\"bos\"&&(g.negatedExtglob=!0)}ke({type:\"paren\",extglob:!0,value:X,output:w}),Ve(\"parens\")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\\]{}\"])/.test(t)){let x=!1,w=t.replace(yze,(P,y,F,z,Z,$)=>z===\"\\\\\"?(x=!0,P):z===\"?\"?y?y+z+(Z?ee.repeat(Z.length):\"\"):$===0?Be+(Z?ee.repeat(Z.length):\"\"):ee.repeat(F.length):z===\".\"?C.repeat(F.length):z===\"*\"?y?y+z+(Z?Ce:\"\"):Ce:y?P:`\\\\${P}`);return x===!0&&(r.unescape===!0?w=w.replace(/\\\\/g,\"\"):w=w.replace(/\\\\+/g,P=>P.length%2===0?\"\\\\\\\\\":P?\"\\\\\":\"\")),w===t&&r.contains===!0?(g.output=t,g):(g.output=Gl.wrapOutput(w,g,e),g)}for(;!De();){if(X=mt(),X===\"\\0\")continue;if(X===\"\\\\\"){let P=Te();if(P===\"/\"&&r.bash!==!0||P===\".\"||P===\";\")continue;if(!P){X+=\"\\\\\",ke({type:\"text\",value:X});continue}let y=/^\\\\+/.exec(j()),F=0;if(y&&y[0].length>2&&(F=y[0].length,g.index+=F,F%2!==0&&(X+=\"\\\\\")),r.unescape===!0?X=mt():X+=mt(),g.brackets===0){ke({type:\"text\",value:X});continue}}if(g.brackets>0&&(X!==\"]\"||se.value===\"[\"||se.value===\"[^\")){if(r.posix!==!1&&X===\":\"){let P=se.value.slice(1);if(P.includes(\"[\")&&(se.posix=!0,P.includes(\":\"))){let y=se.value.lastIndexOf(\"[\"),F=se.value.slice(0,y),z=se.value.slice(y+2),Z=dze[z];if(Z){se.value=F+Z,g.backtrack=!0,mt(),!n.output&&c.indexOf(se)===1&&(n.output=I);continue}}}(X===\"[\"&&Te()!==\":\"||X===\"-\"&&Te()===\"]\")&&(X=`\\\\${X}`),X===\"]\"&&(se.value===\"[\"||se.value===\"[^\")&&(X=`\\\\${X}`),r.posix===!0&&X===\"!\"&&se.value===\"[\"&&(X=\"^\"),se.value+=X,Fe({value:X});continue}if(g.quotes===1&&X!=='\"'){X=Gl.escapeRegex(X),se.value+=X,Fe({value:X});continue}if(X==='\"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&ke({type:\"text\",value:X});continue}if(X===\"(\"){be(\"parens\"),ke({type:\"paren\",value:X});continue}if(X===\")\"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(FE(\"opening\",\"(\"));let P=we[we.length-1];if(P&&g.parens===P.parens+1){Ue(we.pop());continue}ke({type:\"paren\",value:X,output:g.parens?\")\":\"\\\\)\"}),Ve(\"parens\");continue}if(X===\"[\"){if(r.nobracket===!0||!j().includes(\"]\")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(FE(\"closing\",\"]\"));X=`\\\\${X}`}else be(\"brackets\");ke({type:\"bracket\",value:X});continue}if(X===\"]\"){if(r.nobracket===!0||se&&se.type===\"bracket\"&&se.value.length===1){ke({type:\"text\",value:X,output:`\\\\${X}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(FE(\"opening\",\"[\"));ke({type:\"text\",value:X,output:`\\\\${X}`});continue}Ve(\"brackets\");let P=se.value.slice(1);if(se.posix!==!0&&P[0]===\"^\"&&!P.includes(\"/\")&&(X=`/${X}`),se.value+=X,Fe({value:X}),r.literalBrackets===!1||Gl.hasRegexChars(P))continue;let y=Gl.escapeRegex(se.value);if(g.output=g.output.slice(0,-se.value.length),r.literalBrackets===!0){g.output+=y,se.value=y;continue}se.value=`(${f}${y}|${se.value})`,g.output+=se.value;continue}if(X===\"{\"&&r.nobrace!==!0){be(\"braces\");let P={type:\"brace\",value:X,output:\"(\",outputIndex:g.output.length,tokensIndex:g.tokens.length};ye.push(P),ke(P);continue}if(X===\"}\"){let P=ye[ye.length-1];if(r.nobrace===!0||!P){ke({type:\"text\",value:X,output:X});continue}let y=\")\";if(P.dots===!0){let F=c.slice(),z=[];for(let Z=F.length-1;Z>=0&&(c.pop(),F[Z].type!==\"brace\");Z--)F[Z].type!==\"dots\"&&z.unshift(F[Z].value);y=Eze(z,r),g.backtrack=!0}if(P.comma!==!0&&P.dots!==!0){let F=g.output.slice(0,P.outputIndex),z=g.tokens.slice(P.tokensIndex);P.value=P.output=\"\\\\{\",X=y=\"\\\\}\",g.output=F;for(let Z of z)g.output+=Z.output||Z.value}ke({type:\"brace\",value:X,output:y}),Ve(\"braces\"),ye.pop();continue}if(X===\"|\"){we.length>0&&we[we.length-1].conditions++,ke({type:\"text\",value:X});continue}if(X===\",\"){let P=X,y=ye[ye.length-1];y&&Ae[Ae.length-1]===\"braces\"&&(y.comma=!0,P=\"|\"),ke({type:\"comma\",value:X,output:P});continue}if(X===\"/\"){if(se.type===\"dot\"&&g.index===g.start+1){g.start=g.index+1,g.consumed=\"\",g.output=\"\",c.pop(),se=n;continue}ke({type:\"slash\",value:X,output:b});continue}if(X===\".\"){if(g.braces>0&&se.type===\"dot\"){se.value===\".\"&&(se.output=C);let P=ye[ye.length-1];se.type=\"dots\",se.output+=X,se.value+=X,P.dots=!0;continue}if(g.braces+g.parens===0&&se.type!==\"bos\"&&se.type!==\"slash\"){ke({type:\"text\",value:X,output:C});continue}ke({type:\"dot\",value:X,output:C});continue}if(X===\"?\"){if(!(se&&se.value===\"(\")&&r.noextglob!==!0&&Te()===\"(\"&&Te(2)!==\"?\"){it(\"qmark\",X);continue}if(se&&se.type===\"paren\"){let y=Te(),F=X;if(y===\"<\"&&!Gl.supportsLookbehinds())throw new Error(\"Node.js v10 or higher is required for regex lookbehinds\");(se.value===\"(\"&&!/[!=<:]/.test(y)||y===\"<\"&&!/<([!=]|\\w+>)/.test(j()))&&(F=`\\\\${X}`),ke({type:\"text\",value:X,output:F});continue}if(r.dot!==!0&&(se.type===\"slash\"||se.type===\"bos\")){ke({type:\"qmark\",value:X,output:ie});continue}ke({type:\"qmark\",value:X,output:ee});continue}if(X===\"!\"){if(r.noextglob!==!0&&Te()===\"(\"&&(Te(2)!==\"?\"||!/[!=<:]/.test(Te(3)))){it(\"negate\",X);continue}if(r.nonegate!==!0&&g.index===0){Ne();continue}}if(X===\"+\"){if(r.noextglob!==!0&&Te()===\"(\"&&Te(2)!==\"?\"){it(\"plus\",X);continue}if(se&&se.value===\"(\"||r.regex===!1){ke({type:\"plus\",value:X,output:S});continue}if(se&&(se.type===\"bracket\"||se.type===\"paren\"||se.type===\"brace\")||g.parens>0){ke({type:\"plus\",value:X});continue}ke({type:\"plus\",value:S});continue}if(X===\"@\"){if(r.noextglob!==!0&&Te()===\"(\"&&Te(2)!==\"?\"){ke({type:\"at\",extglob:!0,value:X,output:\"\"});continue}ke({type:\"text\",value:X});continue}if(X!==\"*\"){(X===\"$\"||X===\"^\")&&(X=`\\\\${X}`);let P=mze.exec(j());P&&(X+=P[0],g.index+=P[0].length),ke({type:\"text\",value:X});continue}if(se&&(se.type===\"globstar\"||se.star===!0)){se.type=\"star\",se.star=!0,se.value+=X,se.output=Ce,g.backtrack=!0,g.globstar=!0,rt(X);continue}let x=j();if(r.noextglob!==!0&&/^\\([^?]/.test(x)){it(\"star\",X);continue}if(se.type===\"star\"){if(r.noglobstar===!0){rt(X);continue}let P=se.prev,y=P.prev,F=P.type===\"slash\"||P.type===\"bos\",z=y&&(y.type===\"star\"||y.type===\"globstar\");if(r.bash===!0&&(!F||x[0]&&x[0]!==\"/\")){ke({type:\"star\",value:X,output:\"\"});continue}let Z=g.braces>0&&(P.type===\"comma\"||P.type===\"brace\"),$=we.length&&(P.type===\"pipe\"||P.type===\"paren\");if(!F&&P.type!==\"paren\"&&!Z&&!$){ke({type:\"star\",value:X,output:\"\"});continue}for(;x.slice(0,3)===\"/**\";){let oe=t[g.index+4];if(oe&&oe!==\"/\")break;x=x.slice(3),rt(\"/**\",3)}if(P.type===\"bos\"&&De()){se.type=\"globstar\",se.value+=X,se.output=me(r),g.output=se.output,g.globstar=!0,rt(X);continue}if(P.type===\"slash\"&&P.prev.type!==\"bos\"&&!z&&De()){g.output=g.output.slice(0,-(P.output+se.output).length),P.output=`(?:${P.output}`,se.type=\"globstar\",se.output=me(r)+(r.strictSlashes?\")\":\"|$)\"),se.value+=X,g.globstar=!0,g.output+=P.output+se.output,rt(X);continue}if(P.type===\"slash\"&&P.prev.type!==\"bos\"&&x[0]===\"/\"){let oe=x[1]!==void 0?\"|$\":\"\";g.output=g.output.slice(0,-(P.output+se.output).length),P.output=`(?:${P.output}`,se.type=\"globstar\",se.output=`${me(r)}${b}|${b}${oe})`,se.value+=X,g.output+=P.output+se.output,g.globstar=!0,rt(X+mt()),ke({type:\"slash\",value:\"/\",output:\"\"});continue}if(P.type===\"bos\"&&x[0]===\"/\"){se.type=\"globstar\",se.value+=X,se.output=`(?:^|${b}|${me(r)}${b})`,g.output=se.output,g.globstar=!0,rt(X+mt()),ke({type:\"slash\",value:\"/\",output:\"\"});continue}g.output=g.output.slice(0,-se.output.length),se.type=\"globstar\",se.output=me(r),se.value+=X,g.output+=se.output,g.globstar=!0,rt(X);continue}let w={type:\"star\",value:X,output:Ce};if(r.bash===!0){w.output=\".*?\",(se.type===\"bos\"||se.type===\"slash\")&&(w.output=pe+w.output),ke(w);continue}if(se&&(se.type===\"bracket\"||se.type===\"paren\")&&r.regex===!0){w.output=X,ke(w);continue}(g.index===g.start||se.type===\"slash\"||se.type===\"dot\")&&(se.type===\"dot\"?(g.output+=U,se.output+=U):r.dot===!0?(g.output+=W,se.output+=W):(g.output+=pe,se.output+=pe),Te()!==\"*\"&&(g.output+=I,se.output+=I)),ke(w)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(FE(\"closing\",\"]\"));g.output=Gl.escapeLast(g.output,\"[\"),Ve(\"brackets\")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(FE(\"closing\",\")\"));g.output=Gl.escapeLast(g.output,\"(\"),Ve(\"parens\")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(FE(\"closing\",\"}\"));g.output=Gl.escapeLast(g.output,\"{\"),Ve(\"braces\")}if(r.strictSlashes!==!0&&(se.type===\"star\"||se.type===\"bracket\")&&ke({type:\"maybe_slash\",value:\"\",output:`${b}?`}),g.backtrack===!0){g.output=\"\";for(let x of g.tokens)g.output+=x.output!=null?x.output:x.value,x.suffix&&(g.output+=x.suffix)}return g};d4.fastpaths=(t,e)=>{let r={...e},s=typeof r.maxLength==\"number\"?Math.min(gk,r.maxLength):gk,a=t.length;if(a>s)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${s}`);t=qoe[t]||t;let n=Gl.isWindows(e),{DOT_LITERAL:c,SLASH_LITERAL:f,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:C,NO_DOTS_SLASH:S,STAR:b,START_ANCHOR:I}=hk.globChars(n),T=r.dot?C:E,N=r.dot?S:E,U=r.capture?\"\":\"?:\",W={negated:!1,prefix:\"\"},ee=r.bash===!0?\".*?\":b;r.capture&&(ee=`(${ee})`);let ie=pe=>pe.noglobstar===!0?ee:`(${U}(?:(?!${I}${pe.dot?h:c}).)*?)`,ue=pe=>{switch(pe){case\"*\":return`${T}${p}${ee}`;case\".*\":return`${c}${p}${ee}`;case\"*.*\":return`${T}${ee}${c}${p}${ee}`;case\"*/*\":return`${T}${ee}${f}${p}${N}${ee}`;case\"**\":return T+ie(r);case\"**/*\":return`(?:${T}${ie(r)}${f})?${N}${p}${ee}`;case\"**/*.*\":return`(?:${T}${ie(r)}${f})?${N}${ee}${c}${p}${ee}`;case\"**/.*\":return`(?:${T}${ie(r)}${f})?${c}${p}${ee}`;default:{let Be=/^(.*?)\\.(\\w+)$/.exec(pe);if(!Be)return;let Ce=ue(Be[1]);return Ce?Ce+c+Be[2]:void 0}}},le=Gl.removePrefix(t,W),me=ue(le);return me&&r.strictSlashes!==!0&&(me+=`${f}?`),me};Woe.exports=d4});var Joe=_((aFt,Voe)=>{\"use strict\";var Ize=Ie(\"path\"),Cze=Goe(),m4=Yoe(),y4=IB(),wze=EB(),Bze=t=>t&&typeof t==\"object\"&&!Array.isArray(t),Zi=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(S=>Zi(S,e,r));return S=>{for(let b of E){let I=b(S);if(I)return I}return!1}}let s=Bze(t)&&t.tokens&&t.input;if(t===\"\"||typeof t!=\"string\"&&!s)throw new TypeError(\"Expected pattern to be a non-empty string\");let a=e||{},n=y4.isWindows(e),c=s?Zi.compileRe(t,e):Zi.makeRe(t,e,!1,!0),f=c.state;delete c.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=Zi(a.ignore,E,r)}let h=(E,C=!1)=>{let{isMatch:S,match:b,output:I}=Zi.test(E,c,e,{glob:t,posix:n}),T={glob:t,state:f,regex:c,posix:n,input:E,output:I,match:b,isMatch:S};return typeof a.onResult==\"function\"&&a.onResult(T),S===!1?(T.isMatch=!1,C?T:!1):p(E)?(typeof a.onIgnore==\"function\"&&a.onIgnore(T),T.isMatch=!1,C?T:!1):(typeof a.onMatch==\"function\"&&a.onMatch(T),C?T:!0)};return r&&(h.state=f),h};Zi.test=(t,e,r,{glob:s,posix:a}={})=>{if(typeof t!=\"string\")throw new TypeError(\"Expected input to be a string\");if(t===\"\")return{isMatch:!1,output:\"\"};let n=r||{},c=n.format||(a?y4.toPosixSlashes:null),f=t===s,p=f&&c?c(t):t;return f===!1&&(p=c?c(t):t,f=p===s),(f===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?f=Zi.matchBase(t,e,r,a):f=e.exec(p)),{isMatch:!!f,match:f,output:p}};Zi.matchBase=(t,e,r,s=y4.isWindows(r))=>(e instanceof RegExp?e:Zi.makeRe(e,r)).test(Ize.basename(t));Zi.isMatch=(t,e,r)=>Zi(e,r)(t);Zi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Zi.parse(r,e)):m4(t,{...e,fastpaths:!1});Zi.scan=(t,e)=>Cze(t,e);Zi.compileRe=(t,e,r=!1,s=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?\"\":\"^\",c=a.contains?\"\":\"$\",f=`${n}(?:${t.output})${c}`;t&&t.negated===!0&&(f=`^(?!${f}).*$`);let p=Zi.toRegex(f,e);return s===!0&&(p.state=t),p};Zi.makeRe=(t,e={},r=!1,s=!1)=>{if(!t||typeof t!=\"string\")throw new TypeError(\"Expected a non-empty string\");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]===\".\"||t[0]===\"*\")&&(a.output=m4.fastpaths(t,e)),a.output||(a=m4(t,e)),Zi.compileRe(a,e,r,s)};Zi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?\"i\":\"\"))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Zi.constants=wze;Voe.exports=Zi});var zoe=_((lFt,Koe)=>{\"use strict\";Koe.exports=Joe()});var Go=_((cFt,eae)=>{\"use strict\";var Xoe=Ie(\"util\"),$oe=koe(),Jf=zoe(),E4=IB(),Zoe=t=>t===\"\"||t===\"./\",xi=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let s=new Set,a=new Set,n=new Set,c=0,f=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E<e.length;E++){let C=Jf(String(e[E]),{...r,onResult:f},!0),S=C.state.negated||C.state.negatedExtglob;S&&c++;for(let b of t){let I=C(b,!0);(S?!I.isMatch:I.isMatch)&&(S?s.add(I.output):(s.delete(I.output),a.add(I.output)))}}let h=(c===e.length?[...n]:[...a]).filter(E=>!s.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for \"${e.join(\", \")}\"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\\\/g,\"\")):e}return h};xi.match=xi;xi.matcher=(t,e)=>Jf(t,e);xi.isMatch=(t,e,r)=>Jf(e,r)(t);xi.any=xi.isMatch;xi.not=(t,e,r={})=>{e=[].concat(e).map(String);let s=new Set,a=[],n=f=>{r.onResult&&r.onResult(f),a.push(f.output)},c=new Set(xi(t,e,{...r,onResult:n}));for(let f of a)c.has(f)||s.add(f);return[...s]};xi.contains=(t,e,r)=>{if(typeof t!=\"string\")throw new TypeError(`Expected a string: \"${Xoe.inspect(t)}\"`);if(Array.isArray(e))return e.some(s=>xi.contains(t,s,r));if(typeof e==\"string\"){if(Zoe(t)||Zoe(e))return!1;if(t.includes(e)||t.startsWith(\"./\")&&t.slice(2).includes(e))return!0}return xi.isMatch(t,e,{...r,contains:!0})};xi.matchKeys=(t,e,r)=>{if(!E4.isObject(t))throw new TypeError(\"Expected the first argument to be an object\");let s=xi(Object.keys(t),e,r),a={};for(let n of s)a[n]=t[n];return a};xi.some=(t,e,r)=>{let s=[].concat(t);for(let a of[].concat(e)){let n=Jf(String(a),r);if(s.some(c=>n(c)))return!0}return!1};xi.every=(t,e,r)=>{let s=[].concat(t);for(let a of[].concat(e)){let n=Jf(String(a),r);if(!s.every(c=>n(c)))return!1}return!0};xi.all=(t,e,r)=>{if(typeof t!=\"string\")throw new TypeError(`Expected a string: \"${Xoe.inspect(t)}\"`);return[].concat(e).every(s=>Jf(s,r)(t))};xi.capture=(t,e,r)=>{let s=E4.isWindows(r),n=Jf.makeRe(String(t),{...r,capture:!0}).exec(s?E4.toPosixSlashes(e):e);if(n)return n.slice(1).map(c=>c===void 0?\"\":c)};xi.makeRe=(...t)=>Jf.makeRe(...t);xi.scan=(...t)=>Jf.scan(...t);xi.parse=(t,e)=>{let r=[];for(let s of[].concat(t||[]))for(let a of $oe(String(s),e))r.push(Jf.parse(a,e));return r};xi.braces=(t,e)=>{if(typeof t!=\"string\")throw new TypeError(\"Expected a string\");return e&&e.nobrace===!0||!/\\{.*\\}/.test(t)?[t]:$oe(t,e)};xi.braceExpand=(t,e)=>{if(typeof t!=\"string\")throw new TypeError(\"Expected a string\");return xi.braces(t,{...e,expand:!0})};eae.exports=xi});var rae=_((uFt,tae)=>{\"use strict\";tae.exports=({onlyFirst:t=!1}={})=>{let e=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");return new RegExp(e,t?void 0:\"g\")}});var dk=_((fFt,nae)=>{\"use strict\";var vze=rae();nae.exports=t=>typeof t==\"string\"?t.replace(vze(),\"\"):t});function iae(t){return Number.isSafeInteger(t)&&t>=0}var sae=Ze(()=>{});function oae(t){return t!=null&&typeof t!=\"function\"&&iae(t.length)}var aae=Ze(()=>{sae()});function Pc(t){return t===\"__proto__\"}var wB=Ze(()=>{});function NE(t){switch(typeof t){case\"number\":case\"symbol\":return!1;case\"string\":return t.includes(\".\")||t.includes(\"[\")||t.includes(\"]\")}}var mk=Ze(()=>{});function OE(t){return typeof t==\"string\"||typeof t==\"symbol\"?t:Object.is(t?.valueOf?.(),-0)?\"-0\":String(t)}var yk=Ze(()=>{});function Mu(t){let e=[],r=t.length;if(r===0)return e;let s=0,a=\"\",n=\"\",c=!1;for(t.charCodeAt(0)===46&&(e.push(\"\"),s++);s<r;){let f=t[s];n?f===\"\\\\\"&&s+1<r?(s++,a+=t[s]):f===n?n=\"\":a+=f:c?f==='\"'||f===\"'\"?n=f:f===\"]\"?(c=!1,e.push(a),a=\"\"):a+=f:f===\"[\"?(c=!0,a&&(e.push(a),a=\"\")):f===\".\"?a&&(e.push(a),a=\"\"):a+=f,s++}return a&&e.push(a),e}var LE=Ze(()=>{});function va(t,e,r){if(t==null)return r;switch(typeof e){case\"string\":{if(Pc(e))return r;let s=t[e];return s===void 0?NE(e)?va(t,Mu(e),r):r:s}case\"number\":case\"symbol\":{typeof e==\"number\"&&(e=OE(e));let s=t[e];return s===void 0?r:s}default:{if(Array.isArray(e))return Sze(t,e,r);if(Object.is(e?.valueOf(),-0)?e=\"-0\":e=String(e),Pc(e))return r;let s=t[e];return s===void 0?r:s}}}function Sze(t,e,r){if(e.length===0)return r;let s=t;for(let a=0;a<e.length;a++){if(s==null||Pc(e[a]))return r;s=s[e[a]]}return s===void 0?r:s}var Ek=Ze(()=>{wB();mk();yk();LE()});function I4(t){return t!==null&&(typeof t==\"object\"||typeof t==\"function\")}var lae=Ze(()=>{});function ME(t){return t==null||typeof t!=\"object\"&&typeof t!=\"function\"}var Ik=Ze(()=>{});function Ck(t,e){return t===e||Number.isNaN(t)&&Number.isNaN(e)}var C4=Ze(()=>{});function Wd(t){return Object.getOwnPropertySymbols(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e))}var wk=Ze(()=>{});function Yd(t){return t==null?t===void 0?\"[object Undefined]\":\"[object Null]\":Object.prototype.toString.call(t)}var Bk=Ze(()=>{});var vk,UE,_E,HE,Vd,Sk,Dk,Pk,bk,xk,cae,kk,jE,uae,Qk,Rk,Tk,Fk,Nk,fae,Ok,Lk,Mk,Aae,Uk,_k,Hk=Ze(()=>{vk=\"[object RegExp]\",UE=\"[object String]\",_E=\"[object Number]\",HE=\"[object Boolean]\",Vd=\"[object Arguments]\",Sk=\"[object Symbol]\",Dk=\"[object Date]\",Pk=\"[object Map]\",bk=\"[object Set]\",xk=\"[object Array]\",cae=\"[object Function]\",kk=\"[object ArrayBuffer]\",jE=\"[object Object]\",uae=\"[object Error]\",Qk=\"[object DataView]\",Rk=\"[object Uint8Array]\",Tk=\"[object Uint8ClampedArray]\",Fk=\"[object Uint16Array]\",Nk=\"[object Uint32Array]\",fae=\"[object BigUint64Array]\",Ok=\"[object Int8Array]\",Lk=\"[object Int16Array]\",Mk=\"[object Int32Array]\",Aae=\"[object BigInt64Array]\",Uk=\"[object Float32Array]\",_k=\"[object Float64Array]\"});function GE(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}var jk=Ze(()=>{});function pae(t,e){return u0(t,void 0,t,new Map,e)}function u0(t,e,r,s=new Map,a=void 0){let n=a?.(t,e,r,s);if(n!=null)return n;if(ME(t))return t;if(s.has(t))return s.get(t);if(Array.isArray(t)){let c=new Array(t.length);s.set(t,c);for(let f=0;f<t.length;f++)c[f]=u0(t[f],f,r,s,a);return Object.hasOwn(t,\"index\")&&(c.index=t.index),Object.hasOwn(t,\"input\")&&(c.input=t.input),c}if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp){let c=new RegExp(t.source,t.flags);return c.lastIndex=t.lastIndex,c}if(t instanceof Map){let c=new Map;s.set(t,c);for(let[f,p]of t)c.set(f,u0(p,f,r,s,a));return c}if(t instanceof Set){let c=new Set;s.set(t,c);for(let f of t)c.add(u0(f,void 0,r,s,a));return c}if(typeof Buffer<\"u\"&&Buffer.isBuffer(t))return t.subarray();if(GE(t)){let c=new(Object.getPrototypeOf(t)).constructor(t.length);s.set(t,c);for(let f=0;f<t.length;f++)c[f]=u0(t[f],f,r,s,a);return c}if(t instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&t instanceof SharedArrayBuffer)return t.slice(0);if(t instanceof DataView){let c=new DataView(t.buffer.slice(0),t.byteOffset,t.byteLength);return s.set(t,c),c0(c,t,r,s,a),c}if(typeof File<\"u\"&&t instanceof File){let c=new File([t],t.name,{type:t.type});return s.set(t,c),c0(c,t,r,s,a),c}if(t instanceof Blob){let c=new Blob([t],{type:t.type});return s.set(t,c),c0(c,t,r,s,a),c}if(t instanceof Error){let c=new t.constructor;return s.set(t,c),c.message=t.message,c.name=t.name,c.stack=t.stack,c.cause=t.cause,c0(c,t,r,s,a),c}if(typeof t==\"object\"&&Dze(t)){let c=Object.create(Object.getPrototypeOf(t));return s.set(t,c),c0(c,t,r,s,a),c}return t}function c0(t,e,r=t,s,a){let n=[...Object.keys(e),...Wd(e)];for(let c=0;c<n.length;c++){let f=n[c],p=Object.getOwnPropertyDescriptor(t,f);(p==null||p.writable)&&(t[f]=u0(e[f],f,r,s,a))}}function Dze(t){switch(Yd(t)){case Vd:case xk:case kk:case Qk:case HE:case Dk:case Uk:case _k:case Ok:case Lk:case Mk:case Pk:case _E:case jE:case vk:case bk:case UE:case Sk:case Rk:case Tk:case Fk:case Nk:return!0;default:return!1}}var w4=Ze(()=>{wk();Bk();Hk();Ik();jk()});function hae(t){return u0(t,void 0,t,new Map,void 0)}var gae=Ze(()=>{w4()});function dae(t,e){return pae(t,(r,s,a,n)=>{let c=e?.(r,s,a,n);if(c!=null)return c;if(typeof t==\"object\")switch(Object.prototype.toString.call(t)){case _E:case UE:case HE:{let f=new t.constructor(t?.valueOf());return c0(f,t),f}case Vd:{let f={};return c0(f,t),f.length=t.length,f[Symbol.iterator]=t[Symbol.iterator],f}default:return}})}var mae=Ze(()=>{w4();Hk()});function f0(t){return dae(t)}var B4=Ze(()=>{mae()});function Gk(t,e=Number.MAX_SAFE_INTEGER){switch(typeof t){case\"number\":return Number.isInteger(t)&&t>=0&&t<e;case\"symbol\":return!1;case\"string\":return Pze.test(t)}}var Pze,v4=Ze(()=>{Pze=/^(?:0|[1-9]\\d*)$/});function BB(t){return t!==null&&typeof t==\"object\"&&Yd(t)===\"[object Arguments]\"}var S4=Ze(()=>{Bk()});function vB(t,e){let r;if(Array.isArray(e)?r=e:typeof e==\"string\"&&NE(e)&&t?.[e]==null?r=Mu(e):r=[e],r.length===0)return!1;let s=t;for(let a=0;a<r.length;a++){let n=r[a];if((s==null||!Object.hasOwn(s,n))&&!((Array.isArray(s)||BB(s))&&Gk(n)&&n<s.length))return!1;s=s[n]}return!0}var D4=Ze(()=>{mk();v4();S4();LE()});function P4(t){return typeof t==\"object\"&&t!==null}var yae=Ze(()=>{});function Eae(t){return typeof t==\"symbol\"||t instanceof Symbol}var Iae=Ze(()=>{});function Cae(t,e){return Array.isArray(t)?!1:typeof t==\"number\"||typeof t==\"boolean\"||t==null||Eae(t)?!0:typeof t==\"string\"&&(xze.test(t)||!bze.test(t))||e!=null&&Object.hasOwn(e,t)}var bze,xze,wae=Ze(()=>{Iae();bze=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,xze=/^\\w*$/});function A0(t,e){if(t==null)return!0;switch(typeof e){case\"symbol\":case\"number\":case\"object\":{if(Array.isArray(e))return Bae(t,e);if(typeof e==\"number\"?e=OE(e):typeof e==\"object\"&&(Object.is(e?.valueOf(),-0)?e=\"-0\":e=String(e)),Pc(e))return!1;if(t?.[e]===void 0)return!0;try{return delete t[e],!0}catch{return!1}}case\"string\":{if(t?.[e]===void 0&&NE(e))return Bae(t,Mu(e));if(Pc(e))return!1;try{return delete t[e],!0}catch{return!1}}}}function Bae(t,e){let r=va(t,e.slice(0,-1),t),s=e[e.length-1];if(r?.[s]===void 0)return!0;if(Pc(s))return!1;try{return delete r[s],!0}catch{return!1}}var b4=Ze(()=>{Ek();wB();mk();yk();LE()});function vae(t){return t==null}var Sae=Ze(()=>{});var Dae,Pae=Ze(()=>{C4();Dae=(t,e,r)=>{let s=t[e];(!(Object.hasOwn(t,e)&&Ck(s,r))||r===void 0&&!(e in t))&&(t[e]=r)}});function bae(t,e,r,s){if(t==null&&!I4(t))return t;let a=Cae(e,t)?[e]:Array.isArray(e)?e:typeof e==\"string\"?Mu(e):[e],n=t;for(let c=0;c<a.length&&n!=null;c++){let f=OE(a[c]);if(Pc(f))continue;let p;if(c===a.length-1)p=r(n[f]);else{let h=n[f],E=s?.(h,f,t);p=E!==void 0?E:I4(h)?h:Gk(a[c+1])?[]:{}}Dae(n,f,p),n=n[f]}return t}var xae=Ze(()=>{wB();Pae();v4();wae();yk();lae();LE()});function Jd(t,e,r){return bae(t,e,()=>r,()=>{})}var x4=Ze(()=>{xae()});function kae(t,e=0,r={}){typeof r!=\"object\"&&(r={});let s=null,a=null,n=null,c=0,f=null,p,{leading:h=!1,trailing:E=!0,maxWait:C}=r,S=\"maxWait\"in r,b=S?Math.max(Number(C)||0,e):0,I=ue=>(s!==null&&(p=t.apply(a,s)),s=a=null,c=ue,p),T=ue=>(c=ue,f=setTimeout(ee,e),h&&s!==null?I(ue):p),N=ue=>(f=null,E&&s!==null?I(ue):p),U=ue=>{if(n===null)return!0;let le=ue-n,me=le>=e||le<0,pe=S&&ue-c>=b;return me||pe},W=ue=>{let le=n===null?0:ue-n,me=e-le,pe=b-(ue-c);return S?Math.min(me,pe):me},ee=()=>{let ue=Date.now();if(U(ue))return N(ue);f=setTimeout(ee,W(ue))},ie=function(...ue){let le=Date.now(),me=U(le);if(s=ue,a=this,n=le,me){if(f===null)return T(le);if(S)return clearTimeout(f),f=setTimeout(ee,e),I(le)}return f===null&&(f=setTimeout(ee,e)),p};return ie.cancel=()=>{f!==null&&clearTimeout(f),c=0,n=s=a=f=null},ie.flush=()=>f===null?p:N(Date.now()),ie}var Qae=Ze(()=>{});function k4(t,e=0,r={}){let{leading:s=!0,trailing:a=!0}=r;return kae(t,e,{leading:s,maxWait:e,trailing:a})}var Rae=Ze(()=>{Qae()});function Q4(t){if(t==null)return\"\";if(typeof t==\"string\")return t;if(Array.isArray(t))return t.map(Q4).join(\",\");let e=String(t);return e===\"0\"&&Object.is(Number(t),-0)?\"-0\":e}var Tae=Ze(()=>{});function R4(t){if(!t||typeof t!=\"object\")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(t)===\"[object Object]\":!1}var Fae=Ze(()=>{});function Nae(t,e,r){return SB(t,e,void 0,void 0,void 0,void 0,r)}function SB(t,e,r,s,a,n,c){let f=c(t,e,r,s,a,n);if(f!==void 0)return f;if(typeof t==typeof e)switch(typeof t){case\"bigint\":case\"string\":case\"boolean\":case\"symbol\":case\"undefined\":return t===e;case\"number\":return t===e||Object.is(t,e);case\"function\":return t===e;case\"object\":return DB(t,e,n,c)}return DB(t,e,n,c)}function DB(t,e,r,s){if(Object.is(t,e))return!0;let a=Yd(t),n=Yd(e);if(a===Vd&&(a=jE),n===Vd&&(n=jE),a!==n)return!1;switch(a){case UE:return t.toString()===e.toString();case _E:{let p=t.valueOf(),h=e.valueOf();return Ck(p,h)}case HE:case Dk:case Sk:return Object.is(t.valueOf(),e.valueOf());case vk:return t.source===e.source&&t.flags===e.flags;case cae:return t===e}r=r??new Map;let c=r.get(t),f=r.get(e);if(c!=null&&f!=null)return c===e;r.set(t,e),r.set(e,t);try{switch(a){case Pk:{if(t.size!==e.size)return!1;for(let[p,h]of t.entries())if(!e.has(p)||!SB(h,e.get(p),p,t,e,r,s))return!1;return!0}case bk:{if(t.size!==e.size)return!1;let p=Array.from(t.values()),h=Array.from(e.values());for(let E=0;E<p.length;E++){let C=p[E],S=h.findIndex(b=>SB(C,b,void 0,t,e,r,s));if(S===-1)return!1;h.splice(S,1)}return!0}case xk:case Rk:case Tk:case Fk:case Nk:case fae:case Ok:case Lk:case Mk:case Aae:case Uk:case _k:{if(typeof Buffer<\"u\"&&Buffer.isBuffer(t)!==Buffer.isBuffer(e)||t.length!==e.length)return!1;for(let p=0;p<t.length;p++)if(!SB(t[p],e[p],p,t,e,r,s))return!1;return!0}case kk:return t.byteLength!==e.byteLength?!1:DB(new Uint8Array(t),new Uint8Array(e),r,s);case Qk:return t.byteLength!==e.byteLength||t.byteOffset!==e.byteOffset?!1:DB(new Uint8Array(t),new Uint8Array(e),r,s);case uae:return t.name===e.name&&t.message===e.message;case jE:{if(!(DB(t.constructor,e.constructor,r,s)||R4(t)&&R4(e)))return!1;let h=[...Object.keys(t),...Wd(t)],E=[...Object.keys(e),...Wd(e)];if(h.length!==E.length)return!1;for(let C=0;C<h.length;C++){let S=h[C],b=t[S];if(!Object.hasOwn(e,S))return!1;let I=e[S];if(!SB(b,I,S,t,e,r,s))return!1}return!0}default:return!1}}finally{r.delete(t),r.delete(e)}}var Oae=Ze(()=>{Fae();wk();Bk();Hk();C4()});function Lae(){}var Mae=Ze(()=>{});function T4(t,e){return Nae(t,e,Lae)}var Uae=Ze(()=>{Oae();Mae()});function _ae(t){return GE(t)}var Hae=Ze(()=>{jk()});function jae(t){if(typeof t!=\"object\"||t==null)return!1;if(Object.getPrototypeOf(t)===null)return!0;if(Object.prototype.toString.call(t)!==\"[object Object]\"){let r=t[Symbol.toStringTag];return r==null||!Object.getOwnPropertyDescriptor(t,Symbol.toStringTag)?.writable?!1:t.toString()===`[object ${r}]`}let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}var Gae=Ze(()=>{});function qae(t){if(ME(t))return t;if(Array.isArray(t)||GE(t)||t instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&t instanceof SharedArrayBuffer)return t.slice(0);let e=Object.getPrototypeOf(t),r=e.constructor;if(t instanceof Date||t instanceof Map||t instanceof Set)return new r(t);if(t instanceof RegExp){let s=new r(t);return s.lastIndex=t.lastIndex,s}if(t instanceof DataView)return new r(t.buffer.slice(0));if(t instanceof Error){let s=new r(t.message);return s.stack=t.stack,s.name=t.name,s.cause=t.cause,s}if(typeof File<\"u\"&&t instanceof File)return new r([t],t.name,{type:t.type,lastModified:t.lastModified});if(typeof t==\"object\"){let s=Object.create(e);return Object.assign(s,t)}return t}var Wae=Ze(()=>{Ik();jk()});function F4(t,...e){let r=e.slice(0,-1),s=e[e.length-1],a=t;for(let n=0;n<r.length;n++){let c=r[n];a=qk(a,c,s,new Map)}return a}function qk(t,e,r,s){if(ME(t)&&(t=Object(t)),e==null||typeof e!=\"object\")return t;if(s.has(e))return qae(s.get(e));if(s.set(e,t),Array.isArray(e)){e=e.slice();for(let n=0;n<e.length;n++)e[n]=e[n]??void 0}let a=[...Object.keys(e),...Wd(e)];for(let n=0;n<a.length;n++){let c=a[n];if(Pc(c))continue;let f=e[c],p=t[c];if(BB(f)&&(f={...f}),BB(p)&&(p={...p}),typeof Buffer<\"u\"&&Buffer.isBuffer(f)&&(f=f0(f)),Array.isArray(f))if(typeof p==\"object\"&&p!=null){let E=[],C=Reflect.ownKeys(p);for(let S=0;S<C.length;S++){let b=C[S];E[b]=p[b]}p=E}else p=[];let h=r(p,f,c,t,e,s);h!=null?t[c]=h:Array.isArray(f)||P4(p)&&P4(f)?t[c]=qk(p,f,r,s):p==null&&jae(f)?t[c]=qk({},f,r,s):p==null&&_ae(f)?t[c]=f0(f):(p===void 0||f!==void 0)&&(t[c]=f)}return t}var Yae=Ze(()=>{B4();wB();Wae();Ik();wk();S4();yae();Gae();Hae()});function N4(t,...e){if(t==null)return{};let r=hae(t);for(let s=0;s<e.length;s++){let a=e[s];switch(typeof a){case\"object\":{Array.isArray(a)||(a=Array.from(a));for(let n=0;n<a.length;n++){let c=a[n];A0(r,c)}break}case\"string\":case\"symbol\":case\"number\":{A0(r,a);break}}}return r}var Vae=Ze(()=>{b4();gae()});function Kd(t,...e){if(vae(t))return{};let r={};for(let s=0;s<e.length;s++){let a=e[s];switch(typeof a){case\"object\":{Array.isArray(a)||(oae(a)?a=Array.from(a):a=[a]);break}case\"string\":case\"symbol\":case\"number\":{a=[a];break}}for(let n of a){let c=va(t,n);c===void 0&&!vB(t,n)||(typeof n==\"string\"&&Object.hasOwn(t,n)?r[n]=c:Jd(r,n,c))}}return r}var Jae=Ze(()=>{Ek();D4();x4();aae();Sae()});function Kae(t){return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}var zae=Ze(()=>{});function PB(t){return Kae(Q4(t))}var Zae=Ze(()=>{zae();Tae()});var ql=Ze(()=>{Rae();Uae();B4();Ek();D4();Yae();Vae();Jae();x4();b4();Zae();LE()});var je={};Vt(je,{AsyncActions:()=>M4,BufferStream:()=>L4,CachingStrategy:()=>ale,DefaultStream:()=>U4,allSettledSafe:()=>Uu,assertNever:()=>H4,bufferStream:()=>WE,buildIgnorePattern:()=>Oze,convertMapsToIndexableObjects:()=>Yk,dynamicRequire:()=>bp,escapeRegExp:()=>Qze,getArrayWithDefault:()=>xB,getFactoryWithDefault:()=>Yl,getMapWithDefault:()=>j4,getSetWithDefault:()=>Pp,groupBy:()=>Uze,isIndexableObject:()=>O4,isPathLike:()=>Lze,isTaggedYarnVersion:()=>kze,makeDeferred:()=>ile,mapAndFilter:()=>Wl,mapAndFind:()=>p0,mergeIntoTarget:()=>cle,overrideType:()=>Rze,parseBoolean:()=>kB,parseInt:()=>YE,parseOptionalBoolean:()=>lle,plural:()=>Wk,prettifyAsyncErrors:()=>qE,prettifySyncErrors:()=>G4,releaseAfterUseAsync:()=>Fze,replaceEnvVariables:()=>Vk,sortMap:()=>qs,toMerged:()=>Mze,tryParseOptionalBoolean:()=>q4,validateEnum:()=>Tze});function kze(t){return!!(tle.default.valid(t)&&t.match(/^[^-]+(-rc\\.[0-9]+)?$/))}function Wk(t,{one:e,more:r,zero:s=r}){return t===0?s:t===1?e:r}function Qze(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function Rze(t){}function H4(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function Tze(t,e){let r=Object.values(t);if(!r.includes(e))throw new nt(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(s=>JSON.stringify(s)).join(\", \")})`);return e}function Wl(t,e){let r=[];for(let s of t){let a=e(s);a!==rle&&r.push(a)}return r}function p0(t,e){for(let r of t){let s=e(r);if(s!==nle)return s}}function O4(t){return typeof t==\"object\"&&t!==null}async function Uu(t){let e=await Promise.allSettled(t),r=[];for(let s of e){if(s.status===\"rejected\")throw s.reason;r.push(s.value)}return r}function Yk(t){if(t instanceof Map&&(t=Object.fromEntries(t)),O4(t))for(let e of Object.keys(t)){let r=t[e];O4(r)&&(t[e]=Yk(r))}return t}function Yl(t,e,r){let s=t.get(e);return typeof s>\"u\"&&t.set(e,s=r()),s}function xB(t,e){let r=t.get(e);return typeof r>\"u\"&&t.set(e,r=[]),r}function Pp(t,e){let r=t.get(e);return typeof r>\"u\"&&t.set(e,r=new Set),r}function j4(t,e){let r=t.get(e);return typeof r>\"u\"&&t.set(e,r=new Map),r}async function Fze(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function qE(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function G4(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function WE(t){return await new Promise((e,r)=>{let s=[];t.on(\"error\",a=>{r(a)}),t.on(\"data\",a=>{s.push(a)}),t.on(\"end\",()=>{e(Buffer.concat(s))})})}function ile(){let t,e;return{promise:new Promise((s,a)=>{t=s,e=a}),resolve:t,reject:e}}function sle(t){return bB(fe.fromPortablePath(t))}function ole(path){let physicalPath=fe.fromPortablePath(path),currentCacheEntry=bB.cache[physicalPath];delete bB.cache[physicalPath];let result;try{result=sle(physicalPath);let freshCacheEntry=bB.cache[physicalPath],dynamicModule=eval(\"module\"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{bB.cache[physicalPath]=currentCacheEntry}return result}function Nze(t){let e=Xae.get(t),r=ce.statSync(t);if(e?.mtime===r.mtimeMs)return e.instance;let s=ole(t);return Xae.set(t,{mtime:r.mtimeMs,instance:s}),s}function bp(t,{cachingStrategy:e=2}={}){switch(e){case 0:return ole(t);case 1:return Nze(t);case 2:return sle(t);default:throw new Error(\"Unsupported caching strategy\")}}function qs(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let s=[];for(let n of e)s.push(r.map(c=>n(c)));let a=r.map((n,c)=>c);return a.sort((n,c)=>{for(let f of s){let p=f[n]<f[c]?-1:f[n]>f[c]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function Oze(t){return t.length===0?null:t.map(e=>`(${$ae.default.makeRe(e,{windows:!1,dot:!0}).source})`).join(\"|\")}function Vk(t,{env:e}){let r=/\\${(?<variableName>[\\d\\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return t.replace(r,(...s)=>{let{variableName:a,colon:n,fallback:c}=s[s.length-1],f=Object.hasOwn(e,a),p=e[a];if(p||f&&!n)return p;if(c!=null)return c;throw new nt(`Environment variable not found (${a})`)})}function kB(t){switch(t){case\"true\":case\"1\":case 1:case!0:return!0;case\"false\":case\"0\":case 0:case!1:return!1;default:throw new Error(`Couldn't parse \"${t}\" as a boolean`)}}function lle(t){return typeof t>\"u\"?t:kB(t)}function q4(t){try{return lle(t)}catch{return null}}function Lze(t){return!!(fe.isAbsolute(t)||t.match(/^(\\.{1,2}|~)\\//))}function cle(t,...e){let r=c=>({value:c}),s=r(t),a=e.map(c=>r(c)),{value:n}=F4(s,...a,(c,f)=>{if(Array.isArray(c)&&Array.isArray(f)){for(let p of f)c.find(h=>T4(h,p))||c.push(p);return c}});return n}function Mze(...t){return cle({},...t)}function Uze(t,e){let r=Object.create(null);for(let s of t){let a=s[e];r[a]??=[],r[a].push(s)}return r}function YE(t){return typeof t==\"string\"?Number.parseInt(t,10):t}var $ae,ele,tle,_4,rle,nle,L4,M4,U4,bB,Xae,ale,bc=Ze(()=>{Dt();Yt();ql();$ae=ut(Go()),ele=ut(Ld()),tle=ut(Ai()),_4=Ie(\"stream\");rle=Symbol();Wl.skip=rle;nle=Symbol();p0.skip=nle;L4=class extends _4.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,s,a){if(s!==\"buffer\"||!Buffer.isBuffer(r))throw new Error(\"Assertion failed: BufferStream only accept buffers\");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};M4=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,ele.default)(e)}set(e,r){let s=this.deferred.get(e);typeof s>\"u\"&&this.deferred.set(e,s=ile());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&s.resolve()},n=>{this.promises.get(e)===a&&s.reject(n)}),s.promise}reduce(e,r){let s=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(s))}async wait(){await Promise.all(this.promises.values())}},U4=class extends _4.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,s,a){if(s!==\"buffer\"||!Buffer.isBuffer(r))throw new Error(\"Assertion failed: DefaultStream only accept buffers\");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},bB=eval(\"require\");Xae=new Map;ale=(s=>(s[s.NoCache=0]=\"NoCache\",s[s.FsTime=1]=\"FsTime\",s[s.Node=2]=\"Node\",s))(ale||{})});var VE,W4,Y4,ule=Ze(()=>{VE=(r=>(r.HARD=\"HARD\",r.SOFT=\"SOFT\",r))(VE||{}),W4=(s=>(s.Dependency=\"Dependency\",s.PeerDependency=\"PeerDependency\",s.PeerDependencyMeta=\"PeerDependencyMeta\",s))(W4||{}),Y4=(s=>(s.Inactive=\"inactive\",s.Redundant=\"redundant\",s.Active=\"active\",s))(Y4||{})});var he={};Vt(he,{LogLevel:()=>$k,Style:()=>zk,Type:()=>ht,addLogFilterSupport:()=>TB,applyColor:()=>ri,applyHyperlink:()=>KE,applyStyle:()=>zd,json:()=>Zd,jsonOrPretty:()=>jze,mark:()=>Z4,pretty:()=>Ht,prettyField:()=>Kf,prettyList:()=>z4,prettyTruncatedLocatorList:()=>Xk,stripAnsi:()=>JE.default,supportsColor:()=>Zk,supportsHyperlinks:()=>K4,tuple:()=>_u});function fle(t){let e=[\"KiB\",\"MiB\",\"GiB\",\"TiB\"],r=e.length;for(;r>1&&t<1024**r;)r-=1;let s=1024**r;return`${Math.floor(t*100/s)/100} ${e[r-1]}`}function Jk(t,e){if(Array.isArray(e))return e.length===0?ri(t,\"[]\",ht.CODE):ri(t,\"[ \",ht.CODE)+e.map(r=>Jk(t,r)).join(\", \")+ri(t,\" ]\",ht.CODE);if(typeof e==\"string\")return ri(t,JSON.stringify(e),ht.STRING);if(typeof e==\"number\")return ri(t,JSON.stringify(e),ht.NUMBER);if(typeof e==\"boolean\")return ri(t,JSON.stringify(e),ht.BOOLEAN);if(e===null)return ri(t,\"null\",ht.NULL);if(typeof e==\"object\"&&Object.getPrototypeOf(e)===Object.prototype){let r=Object.entries(e);return r.length===0?ri(t,\"{}\",ht.CODE):ri(t,\"{ \",ht.CODE)+r.map(([s,a])=>`${Jk(t,s)}: ${Jk(t,a)}`).join(\", \")+ri(t,\" }\",ht.CODE)}if(typeof e>\"u\")return ri(t,\"undefined\",ht.NULL);throw new Error(\"Assertion failed: The value doesn't seem to be a valid JSON object\")}function _u(t,e){return[e,t]}function zd(t,e,r){return t.get(\"enableColors\")&&r&2&&(e=RB.default.bold(e)),e}function ri(t,e,r){if(!t.get(\"enableColors\"))return e;let s=_ze.get(r);if(s===null)return e;let a=typeof s>\"u\"?r:J4.level>=3?s[0]:s[1],n=typeof a==\"number\"?V4.ansi256(a):a.startsWith(\"#\")?V4.hex(a):V4[a];if(typeof n!=\"function\")throw new Error(`Invalid format type ${a}`);return n(e)}function KE(t,e,r){return t.get(\"enableHyperlinks\")?Hze?`\\x1B]8;;${r}\\x1B\\\\${e}\\x1B]8;;\\x1B\\\\`:`\\x1B]8;;${r}\\x07${e}\\x1B]8;;\\x07`:e}function Ht(t,e,r){if(e===null)return ri(t,\"null\",ht.NULL);if(Object.hasOwn(Kk,r))return Kk[r].pretty(t,e);if(typeof e!=\"string\")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return ri(t,e,r)}function z4(t,e,r,{separator:s=\", \"}={}){return[...e].map(a=>Ht(t,a,r)).join(s)}function Zd(t,e){if(t===null)return null;if(Object.hasOwn(Kk,e))return Kk[e].json(t);if(typeof t!=\"string\")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function jze(t,e,[r,s]){return t?Zd(r,s):Ht(e,r,s)}function Z4(t){return{Check:ri(t,\"\\u2713\",\"green\"),Cross:ri(t,\"\\u2718\",\"red\"),Question:ri(t,\"?\",\"cyan\")}}function Kf(t,{label:e,value:[r,s]}){return`${Ht(t,e,ht.CODE)}: ${Ht(t,r,s)}`}function Xk(t,e,r){let s=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=`${Yr(t,h)}, `,C=X4(h).length+2;if(s.length>0&&n<C)break;s.push([E,C]),n-=C,a.shift()}if(a.length===0)return s.map(([h])=>h).join(\"\").slice(0,-2);let c=\"X\".repeat(a.length.toString().length),f=`and ${c} more.`,p=a.length;for(;s.length>1&&n<f.length;)n+=s[s.length-1][1],p+=1,s.pop();return[s.map(([h])=>h).join(\"\"),f.replace(c,Ht(t,p,ht.NUMBER))].join(\"\")}function TB(t,{configuration:e}){let r=e.get(\"logFilters\"),s=new Map,a=new Map,n=[];for(let C of r){let S=C.get(\"level\");if(typeof S>\"u\")continue;let b=C.get(\"code\");typeof b<\"u\"&&s.set(b,S);let I=C.get(\"text\");typeof I<\"u\"&&a.set(I,S);let T=C.get(\"pattern\");typeof T<\"u\"&&n.push([Ale.default.matcher(T,{contains:!0}),S])}n.reverse();let c=(C,S,b)=>{if(C===null||C===0)return b;let I=a.size>0||n.length>0?(0,JE.default)(S):S;if(a.size>0){let T=a.get(I);if(typeof T<\"u\")return T??b}if(n.length>0){for(let[T,N]of n)if(T(I))return N??b}if(s.size>0){let T=s.get(Yf(C));if(typeof T<\"u\")return T??b}return b},f=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(C,S,b,I){switch(c(S,b,I)){case\"info\":f.call(C,S,b);break;case\"warning\":p.call(C,S??0,b);break;case\"error\":h.call(C,S??0,b);break}};t.reportInfo=function(...C){return E(this,...C,\"info\")},t.reportWarning=function(...C){return E(this,...C,\"warning\")},t.reportError=function(...C){return E(this,...C,\"error\")}}var RB,QB,Ale,JE,ht,zk,J4,Zk,K4,V4,_ze,qo,Kk,Hze,$k,xc=Ze(()=>{Dt();RB=ut(RE()),QB=ut(Fd());Yt();Ale=ut(Go()),JE=ut(dk());Gx();Wo();ht={NO_HINT:\"NO_HINT\",ID:\"ID\",NULL:\"NULL\",SCOPE:\"SCOPE\",NAME:\"NAME\",RANGE:\"RANGE\",REFERENCE:\"REFERENCE\",NUMBER:\"NUMBER\",STRING:\"STRING\",BOOLEAN:\"BOOLEAN\",PATH:\"PATH\",URL:\"URL\",ADDED:\"ADDED\",REMOVED:\"REMOVED\",CODE:\"CODE\",INSPECT:\"INSPECT\",DURATION:\"DURATION\",SIZE:\"SIZE\",SIZE_DIFF:\"SIZE_DIFF\",IDENT:\"IDENT\",DESCRIPTOR:\"DESCRIPTOR\",LOCATOR:\"LOCATOR\",RESOLUTION:\"RESOLUTION\",DEPENDENT:\"DEPENDENT\",PACKAGE_EXTENSION:\"PACKAGE_EXTENSION\",SETTING:\"SETTING\",MARKDOWN:\"MARKDOWN\",MARKDOWN_INLINE:\"MARKDOWN_INLINE\"},zk=(e=>(e[e.BOLD=2]=\"BOLD\",e))(zk||{}),J4=QB.default.GITHUB_ACTIONS?{level:2}:RB.default.supportsColor?{level:RB.default.supportsColor.level}:{level:0},Zk=J4.level!==0,K4=Zk&&!QB.default.GITHUB_ACTIONS&&!QB.default.CIRCLE&&!QB.default.GITLAB,V4=new RB.default.Instance(J4),_ze=new Map([[ht.NO_HINT,null],[ht.NULL,[\"#a853b5\",129]],[ht.SCOPE,[\"#d75f00\",166]],[ht.NAME,[\"#d7875f\",173]],[ht.RANGE,[\"#00afaf\",37]],[ht.REFERENCE,[\"#87afff\",111]],[ht.NUMBER,[\"#ffd700\",220]],[ht.STRING,[\"#b4bd68\",32]],[ht.BOOLEAN,[\"#faa023\",209]],[ht.PATH,[\"#d75fd7\",170]],[ht.URL,[\"#d75fd7\",170]],[ht.ADDED,[\"#5faf00\",70]],[ht.REMOVED,[\"#ff3131\",160]],[ht.CODE,[\"#87afff\",111]],[ht.SIZE,[\"#ffd700\",220]]]),qo=t=>t;Kk={[ht.ID]:qo({pretty:(t,e)=>typeof e==\"number\"?ri(t,`${e}`,ht.NUMBER):ri(t,e,ht.CODE),json:t=>t}),[ht.INSPECT]:qo({pretty:(t,e)=>Jk(t,e),json:t=>t}),[ht.NUMBER]:qo({pretty:(t,e)=>ri(t,`${e}`,ht.NUMBER),json:t=>t}),[ht.IDENT]:qo({pretty:(t,e)=>Xi(t,e),json:t=>un(t)}),[ht.LOCATOR]:qo({pretty:(t,e)=>Yr(t,e),json:t=>ll(t)}),[ht.DESCRIPTOR]:qo({pretty:(t,e)=>ni(t,e),json:t=>al(t)}),[ht.RESOLUTION]:qo({pretty:(t,{descriptor:e,locator:r})=>FB(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:al(t),locator:e!==null?ll(e):null})}),[ht.DEPENDENT]:qo({pretty:(t,{locator:e,descriptor:r})=>$4(t,e,r),json:({locator:t,descriptor:e})=>({locator:ll(t),descriptor:al(e)})}),[ht.PACKAGE_EXTENSION]:qo({pretty:(t,e)=>{switch(e.type){case\"Dependency\":return`${Xi(t,e.parentDescriptor)} \\u27A4 ${ri(t,\"dependencies\",ht.CODE)} \\u27A4 ${Xi(t,e.descriptor)}`;case\"PeerDependency\":return`${Xi(t,e.parentDescriptor)} \\u27A4 ${ri(t,\"peerDependencies\",ht.CODE)} \\u27A4 ${Xi(t,e.descriptor)}`;case\"PeerDependencyMeta\":return`${Xi(t,e.parentDescriptor)} \\u27A4 ${ri(t,\"peerDependenciesMeta\",ht.CODE)} \\u27A4 ${Xi(t,Sa(e.selector))} \\u27A4 ${ri(t,e.key,ht.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case\"Dependency\":return`${un(t.parentDescriptor)} > ${un(t.descriptor)}`;case\"PeerDependency\":return`${un(t.parentDescriptor)} >> ${un(t.descriptor)}`;case\"PeerDependencyMeta\":return`${un(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[ht.SETTING]:qo({pretty:(t,e)=>(t.get(e),KE(t,ri(t,e,ht.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[ht.DURATION]:qo({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),s=Math.ceil((e-r*60*1e3)/1e3);return s===0?`${r}m`:`${r}m ${s}s`}else{let r=Math.floor(e/1e3),s=e-r*1e3;return s===0?`${r}s`:`${r}s ${s}ms`}},json:t=>t}),[ht.SIZE]:qo({pretty:(t,e)=>ri(t,fle(e),ht.NUMBER),json:t=>t}),[ht.SIZE_DIFF]:qo({pretty:(t,e)=>{let r=e>=0?\"+\":\"-\",s=r===\"+\"?ht.REMOVED:ht.ADDED;return ri(t,`${r} ${fle(Math.max(Math.abs(e),1))}`,s)},json:t=>t}),[ht.PATH]:qo({pretty:(t,e)=>ri(t,fe.fromPortablePath(e),ht.PATH),json:t=>fe.fromPortablePath(t)}),[ht.MARKDOWN]:qo({pretty:(t,{text:e,format:r,paragraphs:s})=>Ho(e,{format:r,paragraphs:s}),json:({text:t})=>t}),[ht.MARKDOWN_INLINE]:qo({pretty:(t,e)=>(e=e.replace(/(`+)((?:.|[\\n])*?)\\1/g,(r,s,a)=>Ht(t,s+a+s,ht.CODE)),e=e.replace(/(\\*\\*)((?:.|[\\n])*?)\\1/g,(r,s,a)=>zd(t,a,2)),e),json:t=>t})};Hze=!!process.env.KONSOLE_VERSION;$k=(a=>(a.Error=\"error\",a.Warning=\"warning\",a.Info=\"info\",a.Discard=\"discard\",a))($k||{})});var ple=_(zE=>{\"use strict\";Object.defineProperty(zE,\"__esModule\",{value:!0});zE.splitWhen=zE.flatten=void 0;function Gze(t){return t.reduce((e,r)=>[].concat(e,r),[])}zE.flatten=Gze;function qze(t,e){let r=[[]],s=0;for(let a of t)e(a)?(s++,r[s]=[]):r[s].push(a);return r}zE.splitWhen=qze});var hle=_(eQ=>{\"use strict\";Object.defineProperty(eQ,\"__esModule\",{value:!0});eQ.isEnoentCodeError=void 0;function Wze(t){return t.code===\"ENOENT\"}eQ.isEnoentCodeError=Wze});var gle=_(tQ=>{\"use strict\";Object.defineProperty(tQ,\"__esModule\",{value:!0});tQ.createDirentFromStats=void 0;var e3=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Yze(t,e){return new e3(t,e)}tQ.createDirentFromStats=Yze});var Ele=_(ls=>{\"use strict\";Object.defineProperty(ls,\"__esModule\",{value:!0});ls.convertPosixPathToPattern=ls.convertWindowsPathToPattern=ls.convertPathToPattern=ls.escapePosixPath=ls.escapeWindowsPath=ls.escape=ls.removeLeadingDotSegment=ls.makeAbsolute=ls.unixify=void 0;var Vze=Ie(\"os\"),Jze=Ie(\"path\"),dle=Vze.platform()===\"win32\",Kze=2,zze=/(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g,Zze=/(\\\\?)([()[\\]{}]|^!|[!+@](?=\\())/g,Xze=/^\\\\\\\\([.?])/,$ze=/\\\\(?![!()+@[\\]{}])/g;function eZe(t){return t.replace(/\\\\/g,\"/\")}ls.unixify=eZe;function tZe(t,e){return Jze.resolve(t,e)}ls.makeAbsolute=tZe;function rZe(t){if(t.charAt(0)===\".\"){let e=t.charAt(1);if(e===\"/\"||e===\"\\\\\")return t.slice(Kze)}return t}ls.removeLeadingDotSegment=rZe;ls.escape=dle?t3:r3;function t3(t){return t.replace(Zze,\"\\\\$2\")}ls.escapeWindowsPath=t3;function r3(t){return t.replace(zze,\"\\\\$2\")}ls.escapePosixPath=r3;ls.convertPathToPattern=dle?mle:yle;function mle(t){return t3(t).replace(Xze,\"//$1\").replace($ze,\"/\")}ls.convertWindowsPathToPattern=mle;function yle(t){return r3(t)}ls.convertPosixPathToPattern=yle});var Cle=_((UOt,Ile)=>{Ile.exports=function(e){if(typeof e!=\"string\"||e===\"\")return!1;for(var r;r=/(\\\\).|([@?!+*]\\(.*\\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var vle=_((_Ot,Ble)=>{var nZe=Cle(),wle={\"{\":\"}\",\"(\":\")\",\"[\":\"]\"},iZe=function(t){if(t[0]===\"!\")return!0;for(var e=0,r=-2,s=-2,a=-2,n=-2,c=-2;e<t.length;){if(t[e]===\"*\"||t[e+1]===\"?\"&&/[\\].+)]/.test(t[e])||s!==-1&&t[e]===\"[\"&&t[e+1]!==\"]\"&&(s<e&&(s=t.indexOf(\"]\",e)),s>e&&(c===-1||c>s||(c=t.indexOf(\"\\\\\",e),c===-1||c>s)))||a!==-1&&t[e]===\"{\"&&t[e+1]!==\"}\"&&(a=t.indexOf(\"}\",e),a>e&&(c=t.indexOf(\"\\\\\",e),c===-1||c>a))||n!==-1&&t[e]===\"(\"&&t[e+1]===\"?\"&&/[:!=]/.test(t[e+2])&&t[e+3]!==\")\"&&(n=t.indexOf(\")\",e),n>e&&(c=t.indexOf(\"\\\\\",e),c===-1||c>n))||r!==-1&&t[e]===\"(\"&&t[e+1]!==\"|\"&&(r<e&&(r=t.indexOf(\"|\",e)),r!==-1&&t[r+1]!==\")\"&&(n=t.indexOf(\")\",r),n>r&&(c=t.indexOf(\"\\\\\",r),c===-1||c>n))))return!0;if(t[e]===\"\\\\\"){var f=t[e+1];e+=2;var p=wle[f];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]===\"!\")return!0}else e++}return!1},sZe=function(t){if(t[0]===\"!\")return!0;for(var e=0;e<t.length;){if(/[*?{}()[\\]]/.test(t[e]))return!0;if(t[e]===\"\\\\\"){var r=t[e+1];e+=2;var s=wle[r];if(s){var a=t.indexOf(s,e);a!==-1&&(e=a+1)}if(t[e]===\"!\")return!0}else e++}return!1};Ble.exports=function(e,r){if(typeof e!=\"string\"||e===\"\")return!1;if(nZe(e))return!0;var s=iZe;return r&&r.strict===!1&&(s=sZe),s(e)}});var Dle=_((HOt,Sle)=>{\"use strict\";var oZe=vle(),aZe=Ie(\"path\").posix.dirname,lZe=Ie(\"os\").platform()===\"win32\",n3=\"/\",cZe=/\\\\/g,uZe=/[\\{\\[].*[\\}\\]]$/,fZe=/(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/,AZe=/\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;Sle.exports=function(e,r){var s=Object.assign({flipBackslashes:!0},r);s.flipBackslashes&&lZe&&e.indexOf(n3)<0&&(e=e.replace(cZe,n3)),uZe.test(e)&&(e+=n3),e+=\"a\";do e=aZe(e);while(oZe(e)||fZe.test(e));return e.replace(AZe,\"$1\")}});var Fle=_(jr=>{\"use strict\";Object.defineProperty(jr,\"__esModule\",{value:!0});jr.removeDuplicateSlashes=jr.matchAny=jr.convertPatternsToRe=jr.makeRe=jr.getPatternParts=jr.expandBraceExpansion=jr.expandPatternsWithBraceExpansion=jr.isAffectDepthOfReadingPattern=jr.endsWithSlashGlobStar=jr.hasGlobStar=jr.getBaseDirectory=jr.isPatternRelatedToParentDirectory=jr.getPatternsOutsideCurrentDirectory=jr.getPatternsInsideCurrentDirectory=jr.getPositivePatterns=jr.getNegativePatterns=jr.isPositivePattern=jr.isNegativePattern=jr.convertToNegativePattern=jr.convertToPositivePattern=jr.isDynamicPattern=jr.isStaticPattern=void 0;var pZe=Ie(\"path\"),hZe=Dle(),i3=Go(),Ple=\"**\",gZe=\"\\\\\",dZe=/[*?]|^!/,mZe=/\\[[^[]*]/,yZe=/(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/,EZe=/[!*+?@]\\([^(]*\\)/,IZe=/,|\\.\\./,CZe=/(?!^)\\/{2,}/g;function ble(t,e={}){return!xle(t,e)}jr.isStaticPattern=ble;function xle(t,e={}){return t===\"\"?!1:!!(e.caseSensitiveMatch===!1||t.includes(gZe)||dZe.test(t)||mZe.test(t)||yZe.test(t)||e.extglob!==!1&&EZe.test(t)||e.braceExpansion!==!1&&wZe(t))}jr.isDynamicPattern=xle;function wZe(t){let e=t.indexOf(\"{\");if(e===-1)return!1;let r=t.indexOf(\"}\",e+1);if(r===-1)return!1;let s=t.slice(e,r);return IZe.test(s)}function BZe(t){return rQ(t)?t.slice(1):t}jr.convertToPositivePattern=BZe;function vZe(t){return\"!\"+t}jr.convertToNegativePattern=vZe;function rQ(t){return t.startsWith(\"!\")&&t[1]!==\"(\"}jr.isNegativePattern=rQ;function kle(t){return!rQ(t)}jr.isPositivePattern=kle;function SZe(t){return t.filter(rQ)}jr.getNegativePatterns=SZe;function DZe(t){return t.filter(kle)}jr.getPositivePatterns=DZe;function PZe(t){return t.filter(e=>!s3(e))}jr.getPatternsInsideCurrentDirectory=PZe;function bZe(t){return t.filter(s3)}jr.getPatternsOutsideCurrentDirectory=bZe;function s3(t){return t.startsWith(\"..\")||t.startsWith(\"./..\")}jr.isPatternRelatedToParentDirectory=s3;function xZe(t){return hZe(t,{flipBackslashes:!1})}jr.getBaseDirectory=xZe;function kZe(t){return t.includes(Ple)}jr.hasGlobStar=kZe;function Qle(t){return t.endsWith(\"/\"+Ple)}jr.endsWithSlashGlobStar=Qle;function QZe(t){let e=pZe.basename(t);return Qle(t)||ble(e)}jr.isAffectDepthOfReadingPattern=QZe;function RZe(t){return t.reduce((e,r)=>e.concat(Rle(r)),[])}jr.expandPatternsWithBraceExpansion=RZe;function Rle(t){let e=i3.braces(t,{expand:!0,nodupes:!0,keepEscaping:!0});return e.sort((r,s)=>r.length-s.length),e.filter(r=>r!==\"\")}jr.expandBraceExpansion=Rle;function TZe(t,e){let{parts:r}=i3.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith(\"/\")&&(r[0]=r[0].slice(1),r.unshift(\"\")),r}jr.getPatternParts=TZe;function Tle(t,e){return i3.makeRe(t,e)}jr.makeRe=Tle;function FZe(t,e){return t.map(r=>Tle(r,e))}jr.convertPatternsToRe=FZe;function NZe(t,e){return e.some(r=>r.test(t))}jr.matchAny=NZe;function OZe(t){return t.replace(CZe,\"/\")}jr.removeDuplicateSlashes=OZe});var Mle=_((GOt,Lle)=>{\"use strict\";var LZe=Ie(\"stream\"),Nle=LZe.PassThrough,MZe=Array.prototype.slice;Lle.exports=UZe;function UZe(){let t=[],e=MZe.call(arguments),r=!1,s=e[e.length-1];s&&!Array.isArray(s)&&s.pipe==null?e.pop():s={};let a=s.end!==!1,n=s.pipeError===!0;s.objectMode==null&&(s.objectMode=!0),s.highWaterMark==null&&(s.highWaterMark=64*1024);let c=Nle(s);function f(){for(let E=0,C=arguments.length;E<C;E++)t.push(Ole(arguments[E],s));return p(),this}function p(){if(r)return;r=!0;let E=t.shift();if(!E){process.nextTick(h);return}Array.isArray(E)||(E=[E]);let C=E.length+1;function S(){--C>0||(r=!1,p())}function b(I){function T(){I.removeListener(\"merge2UnpipeEnd\",T),I.removeListener(\"end\",T),n&&I.removeListener(\"error\",N),S()}function N(U){c.emit(\"error\",U)}if(I._readableState.endEmitted)return S();I.on(\"merge2UnpipeEnd\",T),I.on(\"end\",T),n&&I.on(\"error\",N),I.pipe(c,{end:!1}),I.resume()}for(let I=0;I<E.length;I++)b(E[I]);S()}function h(){r=!1,c.emit(\"queueDrain\"),a&&c.end()}return c.setMaxListeners(0),c.add=f,c.on(\"unpipe\",function(E){E.emit(\"merge2UnpipeEnd\")}),e.length&&f.apply(null,e),c}function Ole(t,e){if(Array.isArray(t))for(let r=0,s=t.length;r<s;r++)t[r]=Ole(t[r],e);else{if(!t._readableState&&t.pipe&&(t=t.pipe(Nle(e))),!t._readableState||!t.pause||!t.pipe)throw new Error(\"Only readable stream can be merged.\");t.pause()}return t}});var _le=_(nQ=>{\"use strict\";Object.defineProperty(nQ,\"__esModule\",{value:!0});nQ.merge=void 0;var _Ze=Mle();function HZe(t){let e=_Ze(t);return t.forEach(r=>{r.once(\"error\",s=>e.emit(\"error\",s))}),e.once(\"close\",()=>Ule(t)),e.once(\"end\",()=>Ule(t)),e}nQ.merge=HZe;function Ule(t){t.forEach(e=>e.emit(\"close\"))}});var Hle=_(ZE=>{\"use strict\";Object.defineProperty(ZE,\"__esModule\",{value:!0});ZE.isEmpty=ZE.isString=void 0;function jZe(t){return typeof t==\"string\"}ZE.isString=jZe;function GZe(t){return t===\"\"}ZE.isEmpty=GZe});var xp=_(Yo=>{\"use strict\";Object.defineProperty(Yo,\"__esModule\",{value:!0});Yo.string=Yo.stream=Yo.pattern=Yo.path=Yo.fs=Yo.errno=Yo.array=void 0;var qZe=ple();Yo.array=qZe;var WZe=hle();Yo.errno=WZe;var YZe=gle();Yo.fs=YZe;var VZe=Ele();Yo.path=VZe;var JZe=Fle();Yo.pattern=JZe;var KZe=_le();Yo.stream=KZe;var zZe=Hle();Yo.string=zZe});var Wle=_(Vo=>{\"use strict\";Object.defineProperty(Vo,\"__esModule\",{value:!0});Vo.convertPatternGroupToTask=Vo.convertPatternGroupsToTasks=Vo.groupPatternsByBaseDirectory=Vo.getNegativePatternsAsPositive=Vo.getPositivePatterns=Vo.convertPatternsToTasks=Vo.generate=void 0;var Hu=xp();function ZZe(t,e){let r=jle(t,e),s=jle(e.ignore,e),a=Gle(r),n=qle(r,s),c=a.filter(E=>Hu.pattern.isStaticPattern(E,e)),f=a.filter(E=>Hu.pattern.isDynamicPattern(E,e)),p=o3(c,n,!1),h=o3(f,n,!0);return p.concat(h)}Vo.generate=ZZe;function jle(t,e){let r=t;return e.braceExpansion&&(r=Hu.pattern.expandPatternsWithBraceExpansion(r)),e.baseNameMatch&&(r=r.map(s=>s.includes(\"/\")?s:`**/${s}`)),r.map(s=>Hu.pattern.removeDuplicateSlashes(s))}function o3(t,e,r){let s=[],a=Hu.pattern.getPatternsOutsideCurrentDirectory(t),n=Hu.pattern.getPatternsInsideCurrentDirectory(t),c=a3(a),f=a3(n);return s.push(...l3(c,e,r)),\".\"in f?s.push(c3(\".\",n,e,r)):s.push(...l3(f,e,r)),s}Vo.convertPatternsToTasks=o3;function Gle(t){return Hu.pattern.getPositivePatterns(t)}Vo.getPositivePatterns=Gle;function qle(t,e){return Hu.pattern.getNegativePatterns(t).concat(e).map(Hu.pattern.convertToPositivePattern)}Vo.getNegativePatternsAsPositive=qle;function a3(t){let e={};return t.reduce((r,s)=>{let a=Hu.pattern.getBaseDirectory(s);return a in r?r[a].push(s):r[a]=[s],r},e)}Vo.groupPatternsByBaseDirectory=a3;function l3(t,e,r){return Object.keys(t).map(s=>c3(s,t[s],e,r))}Vo.convertPatternGroupsToTasks=l3;function c3(t,e,r,s){return{dynamic:s,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Hu.pattern.convertToNegativePattern))}}Vo.convertPatternGroupToTask=c3});var Vle=_(iQ=>{\"use strict\";Object.defineProperty(iQ,\"__esModule\",{value:!0});iQ.read=void 0;function XZe(t,e,r){e.fs.lstat(t,(s,a)=>{if(s!==null){Yle(r,s);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){u3(r,a);return}e.fs.stat(t,(n,c)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){Yle(r,n);return}u3(r,a);return}e.markSymbolicLink&&(c.isSymbolicLink=()=>!0),u3(r,c)})})}iQ.read=XZe;function Yle(t,e){t(e)}function u3(t,e){t(null,e)}});var Jle=_(sQ=>{\"use strict\";Object.defineProperty(sQ,\"__esModule\",{value:!0});sQ.read=void 0;function $Ze(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let s=e.fs.statSync(t);return e.markSymbolicLink&&(s.isSymbolicLink=()=>!0),s}catch(s){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw s}}sQ.read=$Ze});var Kle=_(h0=>{\"use strict\";Object.defineProperty(h0,\"__esModule\",{value:!0});h0.createFileSystemAdapter=h0.FILE_SYSTEM_ADAPTER=void 0;var oQ=Ie(\"fs\");h0.FILE_SYSTEM_ADAPTER={lstat:oQ.lstat,stat:oQ.stat,lstatSync:oQ.lstatSync,statSync:oQ.statSync};function eXe(t){return t===void 0?h0.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},h0.FILE_SYSTEM_ADAPTER),t)}h0.createFileSystemAdapter=eXe});var zle=_(A3=>{\"use strict\";Object.defineProperty(A3,\"__esModule\",{value:!0});var tXe=Kle(),f3=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=tXe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};A3.default=f3});var Xd=_(g0=>{\"use strict\";Object.defineProperty(g0,\"__esModule\",{value:!0});g0.statSync=g0.stat=g0.Settings=void 0;var Zle=Vle(),rXe=Jle(),p3=zle();g0.Settings=p3.default;function nXe(t,e,r){if(typeof e==\"function\"){Zle.read(t,h3(),e);return}Zle.read(t,h3(e),r)}g0.stat=nXe;function iXe(t,e){let r=h3(e);return rXe.read(t,r)}g0.statSync=iXe;function h3(t={}){return t instanceof p3.default?t:new p3.default(t)}});var ece=_(($Ot,$le)=>{var Xle;$le.exports=typeof queueMicrotask==\"function\"?queueMicrotask.bind(typeof window<\"u\"?window:global):t=>(Xle||(Xle=Promise.resolve())).then(t).catch(e=>setTimeout(()=>{throw e},0))});var rce=_((eLt,tce)=>{tce.exports=oXe;var sXe=ece();function oXe(t,e){let r,s,a,n=!0;Array.isArray(t)?(r=[],s=t.length):(a=Object.keys(t),r={},s=a.length);function c(p){function h(){e&&e(p,r),e=null}n?sXe(h):h()}function f(p,h,E){r[p]=E,(--s===0||h)&&c(h)}s?a?a.forEach(function(p){t[p](function(h,E){f(p,h,E)})}):t.forEach(function(p,h){p(function(E,C){f(h,E,C)})}):c(null),n=!1}});var g3=_(lQ=>{\"use strict\";Object.defineProperty(lQ,\"__esModule\",{value:!0});lQ.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var aQ=process.versions.node.split(\".\");if(aQ[0]===void 0||aQ[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var nce=Number.parseInt(aQ[0],10),aXe=Number.parseInt(aQ[1],10),ice=10,lXe=10,cXe=nce>ice,uXe=nce===ice&&aXe>=lXe;lQ.IS_SUPPORT_READDIR_WITH_FILE_TYPES=cXe||uXe});var sce=_(cQ=>{\"use strict\";Object.defineProperty(cQ,\"__esModule\",{value:!0});cQ.createDirentFromStats=void 0;var d3=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function fXe(t,e){return new d3(t,e)}cQ.createDirentFromStats=fXe});var m3=_(uQ=>{\"use strict\";Object.defineProperty(uQ,\"__esModule\",{value:!0});uQ.fs=void 0;var AXe=sce();uQ.fs=AXe});var y3=_(fQ=>{\"use strict\";Object.defineProperty(fQ,\"__esModule\",{value:!0});fQ.joinPathSegments=void 0;function pXe(t,e,r){return t.endsWith(r)?t+e:t+r+e}fQ.joinPathSegments=pXe});var fce=_(d0=>{\"use strict\";Object.defineProperty(d0,\"__esModule\",{value:!0});d0.readdir=d0.readdirWithFileTypes=d0.read=void 0;var hXe=Xd(),oce=rce(),gXe=g3(),ace=m3(),lce=y3();function dXe(t,e,r){if(!e.stats&&gXe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){cce(t,e,r);return}uce(t,e,r)}d0.read=dXe;function cce(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(s,a)=>{if(s!==null){AQ(r,s);return}let n=a.map(f=>({dirent:f,name:f.name,path:lce.joinPathSegments(t,f.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){E3(r,n);return}let c=n.map(f=>mXe(f,e));oce(c,(f,p)=>{if(f!==null){AQ(r,f);return}E3(r,p)})})}d0.readdirWithFileTypes=cce;function mXe(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(s,a)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){r(s);return}r(null,t);return}t.dirent=ace.fs.createDirentFromStats(t.name,a),r(null,t)})}}function uce(t,e,r){e.fs.readdir(t,(s,a)=>{if(s!==null){AQ(r,s);return}let n=a.map(c=>{let f=lce.joinPathSegments(t,c,e.pathSegmentSeparator);return p=>{hXe.stat(f,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let C={name:c,path:f,dirent:ace.fs.createDirentFromStats(c,E)};e.stats&&(C.stats=E),p(null,C)})}});oce(n,(c,f)=>{if(c!==null){AQ(r,c);return}E3(r,f)})})}d0.readdir=uce;function AQ(t,e){t(e)}function E3(t,e){t(null,e)}});var dce=_(m0=>{\"use strict\";Object.defineProperty(m0,\"__esModule\",{value:!0});m0.readdir=m0.readdirWithFileTypes=m0.read=void 0;var yXe=Xd(),EXe=g3(),Ace=m3(),pce=y3();function IXe(t,e){return!e.stats&&EXe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?hce(t,e):gce(t,e)}m0.read=IXe;function hce(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(s=>{let a={dirent:s,name:s.name,path:pce.joinPathSegments(t,s.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=Ace.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}m0.readdirWithFileTypes=hce;function gce(t,e){return e.fs.readdirSync(t).map(s=>{let a=pce.joinPathSegments(t,s,e.pathSegmentSeparator),n=yXe.statSync(a,e.fsStatSettings),c={name:s,path:a,dirent:Ace.fs.createDirentFromStats(s,n)};return e.stats&&(c.stats=n),c})}m0.readdir=gce});var mce=_(y0=>{\"use strict\";Object.defineProperty(y0,\"__esModule\",{value:!0});y0.createFileSystemAdapter=y0.FILE_SYSTEM_ADAPTER=void 0;var XE=Ie(\"fs\");y0.FILE_SYSTEM_ADAPTER={lstat:XE.lstat,stat:XE.stat,lstatSync:XE.lstatSync,statSync:XE.statSync,readdir:XE.readdir,readdirSync:XE.readdirSync};function CXe(t){return t===void 0?y0.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},y0.FILE_SYSTEM_ADAPTER),t)}y0.createFileSystemAdapter=CXe});var yce=_(C3=>{\"use strict\";Object.defineProperty(C3,\"__esModule\",{value:!0});var wXe=Ie(\"path\"),BXe=Xd(),vXe=mce(),I3=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=vXe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,wXe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new BXe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};C3.default=I3});var pQ=_(E0=>{\"use strict\";Object.defineProperty(E0,\"__esModule\",{value:!0});E0.Settings=E0.scandirSync=E0.scandir=void 0;var Ece=fce(),SXe=dce(),w3=yce();E0.Settings=w3.default;function DXe(t,e,r){if(typeof e==\"function\"){Ece.read(t,B3(),e);return}Ece.read(t,B3(e),r)}E0.scandir=DXe;function PXe(t,e){let r=B3(e);return SXe.read(t,r)}E0.scandirSync=PXe;function B3(t={}){return t instanceof w3.default?t:new w3.default(t)}});var Cce=_((uLt,Ice)=>{\"use strict\";function bXe(t){var e=new t,r=e;function s(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:s,release:a}}Ice.exports=bXe});var Bce=_((fLt,v3)=>{\"use strict\";var xXe=Cce();function wce(t,e,r){if(typeof t==\"function\"&&(r=e,e=t,t=null),!(r>=1))throw new Error(\"fastqueue concurrency must be equal to or greater than 1\");var s=xXe(kXe),a=null,n=null,c=0,f=null,p={push:T,drain:kc,saturated:kc,pause:E,paused:!1,get concurrency(){return r},set concurrency(ue){if(!(ue>=1))throw new Error(\"fastqueue concurrency must be equal to or greater than 1\");if(r=ue,!p.paused)for(;a&&c<r;)c++,U()},running:h,resume:b,idle:I,length:C,getQueue:S,unshift:N,empty:kc,kill:W,killAndDrain:ee,error:ie};return p;function h(){return c}function E(){p.paused=!0}function C(){for(var ue=a,le=0;ue;)ue=ue.next,le++;return le}function S(){for(var ue=a,le=[];ue;)le.push(ue.value),ue=ue.next;return le}function b(){if(p.paused){if(p.paused=!1,a===null){c++,U();return}for(;a&&c<r;)c++,U()}}function I(){return c===0&&p.length()===0}function T(ue,le){var me=s.get();me.context=t,me.release=U,me.value=ue,me.callback=le||kc,me.errorHandler=f,c>=r||p.paused?n?(n.next=me,n=me):(a=me,n=me,p.saturated()):(c++,e.call(t,me.value,me.worked))}function N(ue,le){var me=s.get();me.context=t,me.release=U,me.value=ue,me.callback=le||kc,me.errorHandler=f,c>=r||p.paused?a?(me.next=a,a=me):(a=me,n=me,p.saturated()):(c++,e.call(t,me.value,me.worked))}function U(ue){ue&&s.release(ue);var le=a;le&&c<=r?p.paused?c--:(n===a&&(n=null),a=le.next,le.next=null,e.call(t,le.value,le.worked),n===null&&p.empty()):--c===0&&p.drain()}function W(){a=null,n=null,p.drain=kc}function ee(){a=null,n=null,p.drain(),p.drain=kc}function ie(ue){f=ue}}function kc(){}function kXe(){this.value=null,this.callback=kc,this.next=null,this.release=kc,this.context=null,this.errorHandler=null;var t=this;this.worked=function(r,s){var a=t.callback,n=t.errorHandler,c=t.value;t.value=null,t.callback=kc,t.errorHandler&&n(r,c),a.call(t.context,r,s),t.release(t)}}function QXe(t,e,r){typeof t==\"function\"&&(r=e,e=t,t=null);function s(E,C){e.call(this,E).then(function(S){C(null,S)},C)}var a=wce(t,s,r),n=a.push,c=a.unshift;return a.push=f,a.unshift=p,a.drained=h,a;function f(E){var C=new Promise(function(S,b){n(E,function(I,T){if(I){b(I);return}S(T)})});return C.catch(kc),C}function p(E){var C=new Promise(function(S,b){c(E,function(I,T){if(I){b(I);return}S(T)})});return C.catch(kc),C}function h(){if(a.idle())return new Promise(function(S){S()});var E=a.drain,C=new Promise(function(S){a.drain=function(){E(),S()}});return C}}v3.exports=wce;v3.exports.promise=QXe});var hQ=_(zf=>{\"use strict\";Object.defineProperty(zf,\"__esModule\",{value:!0});zf.joinPathSegments=zf.replacePathSegmentSeparator=zf.isAppliedFilter=zf.isFatalError=void 0;function RXe(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}zf.isFatalError=RXe;function TXe(t,e){return t===null||t(e)}zf.isAppliedFilter=TXe;function FXe(t,e){return t.split(/[/\\\\]/).join(e)}zf.replacePathSegmentSeparator=FXe;function NXe(t,e,r){return t===\"\"?e:t.endsWith(r)?t+e:t+r+e}zf.joinPathSegments=NXe});var P3=_(D3=>{\"use strict\";Object.defineProperty(D3,\"__esModule\",{value:!0});var OXe=hQ(),S3=class{constructor(e,r){this._root=e,this._settings=r,this._root=OXe.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};D3.default=S3});var k3=_(x3=>{\"use strict\";Object.defineProperty(x3,\"__esModule\",{value:!0});var LXe=Ie(\"events\"),MXe=pQ(),UXe=Bce(),gQ=hQ(),_Xe=P3(),b3=class extends _Xe.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=MXe.scandir,this._emitter=new LXe.EventEmitter,this._queue=UXe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit(\"end\")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error(\"The reader is already destroyed\");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on(\"entry\",e)}onError(e){this._emitter.once(\"error\",e)}onEnd(e){this._emitter.once(\"end\",e)}_pushToQueue(e,r){let s={directory:e,base:r};this._queue.push(s,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(s,a)=>{if(s!==null){r(s,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!gQ.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit(\"error\",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let s=e.path;r!==void 0&&(e.path=gQ.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),gQ.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&gQ.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(s,r===void 0?void 0:e.path)}_emitEntry(e){this._emitter.emit(\"entry\",e)}};x3.default=b3});var vce=_(R3=>{\"use strict\";Object.defineProperty(R3,\"__esModule\",{value:!0});var HXe=k3(),Q3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new HXe.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(r=>{jXe(e,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{GXe(e,this._storage)}),this._reader.read()}};R3.default=Q3;function jXe(t,e){t(e)}function GXe(t,e){t(null,e)}});var Sce=_(F3=>{\"use strict\";Object.defineProperty(F3,\"__esModule\",{value:!0});var qXe=Ie(\"stream\"),WXe=k3(),T3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new WXe.default(this._root,this._settings),this._stream=new qXe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit(\"error\",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};F3.default=T3});var Dce=_(O3=>{\"use strict\";Object.defineProperty(O3,\"__esModule\",{value:!0});var YXe=pQ(),dQ=hQ(),VXe=P3(),N3=class extends VXe.default{constructor(){super(...arguments),this._scandir=YXe.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let s=this._scandir(e,this._settings.fsScandirSettings);for(let a of s)this._handleEntry(a,r)}catch(s){this._handleError(s)}}_handleError(e){if(dQ.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let s=e.path;r!==void 0&&(e.path=dQ.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),dQ.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&dQ.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(s,r===void 0?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}};O3.default=N3});var Pce=_(M3=>{\"use strict\";Object.defineProperty(M3,\"__esModule\",{value:!0});var JXe=Dce(),L3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new JXe.default(this._root,this._settings)}read(){return this._reader.read()}};M3.default=L3});var bce=_(_3=>{\"use strict\";Object.defineProperty(_3,\"__esModule\",{value:!0});var KXe=Ie(\"path\"),zXe=pQ(),U3=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,KXe.sep),this.fsScandirSettings=new zXe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};_3.default=U3});var yQ=_(Zf=>{\"use strict\";Object.defineProperty(Zf,\"__esModule\",{value:!0});Zf.Settings=Zf.walkStream=Zf.walkSync=Zf.walk=void 0;var xce=vce(),ZXe=Sce(),XXe=Pce(),H3=bce();Zf.Settings=H3.default;function $Xe(t,e,r){if(typeof e==\"function\"){new xce.default(t,mQ()).read(e);return}new xce.default(t,mQ(e)).read(r)}Zf.walk=$Xe;function e$e(t,e){let r=mQ(e);return new XXe.default(t,r).read()}Zf.walkSync=e$e;function t$e(t,e){let r=mQ(e);return new ZXe.default(t,r).read()}Zf.walkStream=t$e;function mQ(t={}){return t instanceof H3.default?t:new H3.default(t)}});var EQ=_(G3=>{\"use strict\";Object.defineProperty(G3,\"__esModule\",{value:!0});var r$e=Ie(\"path\"),n$e=Xd(),kce=xp(),j3=class{constructor(e){this._settings=e,this._fsStatSettings=new n$e.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return r$e.resolve(this._settings.cwd,e)}_makeEntry(e,r){let s={name:r,path:r,dirent:kce.fs.createDirentFromStats(r,e)};return this._settings.stats&&(s.stats=e),s}_isFatalError(e){return!kce.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};G3.default=j3});var Y3=_(W3=>{\"use strict\";Object.defineProperty(W3,\"__esModule\",{value:!0});var i$e=Ie(\"stream\"),s$e=Xd(),o$e=yQ(),a$e=EQ(),q3=class extends a$e.default{constructor(){super(...arguments),this._walkStream=o$e.walkStream,this._stat=s$e.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let s=e.map(this._getFullEntryPath,this),a=new i$e.PassThrough({objectMode:!0});a._write=(n,c,f)=>this._getEntry(s[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===s.length-1&&a.end(),f()}).catch(f);for(let n=0;n<s.length;n++)a.write(n);return a}_getEntry(e,r,s){return this._getStat(e).then(a=>this._makeEntry(a,r)).catch(a=>{if(s.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,s)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):s(a))})}};W3.default=q3});var Qce=_(J3=>{\"use strict\";Object.defineProperty(J3,\"__esModule\",{value:!0});var l$e=yQ(),c$e=EQ(),u$e=Y3(),V3=class extends c$e.default{constructor(){super(...arguments),this._walkAsync=l$e.walk,this._readerStream=new u$e.default(this._settings)}dynamic(e,r){return new Promise((s,a)=>{this._walkAsync(e,r,(n,c)=>{n===null?s(c):a(n)})})}async static(e,r){let s=[],a=this._readerStream.static(e,r);return new Promise((n,c)=>{a.once(\"error\",c),a.on(\"data\",f=>s.push(f)),a.once(\"end\",()=>n(s))})}};J3.default=V3});var Rce=_(z3=>{\"use strict\";Object.defineProperty(z3,\"__esModule\",{value:!0});var NB=xp(),K3=class{constructor(e,r,s){this._patterns=e,this._settings=r,this._micromatchOptions=s,this._storage=[],this._fillStorage()}_fillStorage(){for(let e of this._patterns){let r=this._getPatternSegments(e),s=this._splitSegmentsIntoSections(r);this._storage.push({complete:s.length<=1,pattern:e,segments:r,sections:s})}}_getPatternSegments(e){return NB.pattern.getPatternParts(e,this._micromatchOptions).map(s=>NB.pattern.isDynamicPattern(s,this._settings)?{dynamic:!0,pattern:s,patternRe:NB.pattern.makeRe(s,this._micromatchOptions)}:{dynamic:!1,pattern:s})}_splitSegmentsIntoSections(e){return NB.array.splitWhen(e,r=>r.dynamic&&NB.pattern.hasGlobStar(r.pattern))}};z3.default=K3});var Tce=_(X3=>{\"use strict\";Object.defineProperty(X3,\"__esModule\",{value:!0});var f$e=Rce(),Z3=class extends f$e.default{match(e){let r=e.split(\"/\"),s=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>s);for(let n of a){let c=n.sections[0];if(!n.complete&&s>c.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};X3.default=Z3});var Fce=_(e8=>{\"use strict\";Object.defineProperty(e8,\"__esModule\",{value:!0});var IQ=xp(),A$e=Tce(),$3=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,s){let a=this._getMatcher(r),n=this._getNegativePatternsRe(s);return c=>this._filter(e,c,a,n)}_getMatcher(e){return new A$e.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(IQ.pattern.isAffectDepthOfReadingPattern);return IQ.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,s,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=IQ.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,s)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let s=r.split(\"/\").length;if(e===\"\")return s;let a=e.split(\"/\").length;return s-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!IQ.pattern.matchAny(e,r)}};e8.default=$3});var Nce=_(r8=>{\"use strict\";Object.defineProperty(r8,\"__esModule\",{value:!0});var $d=xp(),t8=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let s=$d.pattern.convertPatternsToRe(e,this._micromatchOptions),a=$d.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return n=>this._filter(n,s,a)}_filter(e,r,s){let a=$d.path.removeLeadingDotSegment(e.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(a,s))return!1;let n=e.dirent.isDirectory(),c=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(a,s,n);return this._settings.unique&&c&&this._createIndexRecord(a),c}_isDuplicateEntry(e){return this.index.has(e)}_createIndexRecord(e){this.index.set(e,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let s=$d.path.makeAbsolute(this._settings.cwd,e);return $d.pattern.matchAny(s,r)}_isMatchToPatterns(e,r,s){let a=$d.pattern.matchAny(e,r);return!a&&s?$d.pattern.matchAny(e+\"/\",r):a}};r8.default=t8});var Oce=_(i8=>{\"use strict\";Object.defineProperty(i8,\"__esModule\",{value:!0});var p$e=xp(),n8=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return p$e.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};i8.default=n8});var Mce=_(o8=>{\"use strict\";Object.defineProperty(o8,\"__esModule\",{value:!0});var Lce=xp(),s8=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=Lce.path.makeAbsolute(this._settings.cwd,r),r=Lce.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+=\"/\"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};o8.default=s8});var CQ=_(l8=>{\"use strict\";Object.defineProperty(l8,\"__esModule\",{value:!0});var h$e=Ie(\"path\"),g$e=Fce(),d$e=Nce(),m$e=Oce(),y$e=Mce(),a8=class{constructor(e){this._settings=e,this.errorFilter=new m$e.default(this._settings),this.entryFilter=new d$e.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new g$e.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new y$e.default(this._settings)}_getRootDirectory(e){return h$e.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base===\".\"?\"\":e.base;return{basePath:r,pathSegmentSeparator:\"/\",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};l8.default=a8});var Uce=_(u8=>{\"use strict\";Object.defineProperty(u8,\"__esModule\",{value:!0});var E$e=Qce(),I$e=CQ(),c8=class extends I$e.default{constructor(){super(...arguments),this._reader=new E$e.default(this._settings)}async read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e);return(await this.api(r,e,s)).map(n=>s.transform(n))}api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.static(r.patterns,s)}};u8.default=c8});var _ce=_(A8=>{\"use strict\";Object.defineProperty(A8,\"__esModule\",{value:!0});var C$e=Ie(\"stream\"),w$e=Y3(),B$e=CQ(),f8=class extends B$e.default{constructor(){super(...arguments),this._reader=new w$e.default(this._settings)}read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e),a=this.api(r,e,s),n=new C$e.Readable({objectMode:!0,read:()=>{}});return a.once(\"error\",c=>n.emit(\"error\",c)).on(\"data\",c=>n.emit(\"data\",s.transform(c))).once(\"end\",()=>n.emit(\"end\")),n.once(\"close\",()=>a.destroy()),n}api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.static(r.patterns,s)}};A8.default=f8});var Hce=_(h8=>{\"use strict\";Object.defineProperty(h8,\"__esModule\",{value:!0});var v$e=Xd(),S$e=yQ(),D$e=EQ(),p8=class extends D$e.default{constructor(){super(...arguments),this._walkSync=S$e.walkSync,this._statSync=v$e.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let s=[];for(let a of e){let n=this._getFullEntryPath(a),c=this._getEntry(n,a,r);c===null||!r.entryFilter(c)||s.push(c)}return s}_getEntry(e,r,s){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(s.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};h8.default=p8});var jce=_(d8=>{\"use strict\";Object.defineProperty(d8,\"__esModule\",{value:!0});var P$e=Hce(),b$e=CQ(),g8=class extends b$e.default{constructor(){super(...arguments),this._reader=new P$e.default(this._settings)}read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e);return this.api(r,e,s).map(s.transform)}api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.static(r.patterns,s)}};d8.default=g8});var Gce=_(eI=>{\"use strict\";Object.defineProperty(eI,\"__esModule\",{value:!0});eI.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var $E=Ie(\"fs\"),x$e=Ie(\"os\"),k$e=Math.max(x$e.cpus().length,1);eI.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:$E.lstat,lstatSync:$E.lstatSync,stat:$E.stat,statSync:$E.statSync,readdir:$E.readdir,readdirSync:$E.readdirSync};var m8=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,k$e),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},eI.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};eI.default=m8});var wQ=_((OLt,Wce)=>{\"use strict\";var qce=Wle(),Q$e=Uce(),R$e=_ce(),T$e=jce(),y8=Gce(),Qc=xp();async function E8(t,e){ju(t);let r=I8(t,Q$e.default,e),s=await Promise.all(r);return Qc.array.flatten(s)}(function(t){t.glob=t,t.globSync=e,t.globStream=r,t.async=t;function e(h,E){ju(h);let C=I8(h,T$e.default,E);return Qc.array.flatten(C)}t.sync=e;function r(h,E){ju(h);let C=I8(h,R$e.default,E);return Qc.stream.merge(C)}t.stream=r;function s(h,E){ju(h);let C=[].concat(h),S=new y8.default(E);return qce.generate(C,S)}t.generateTasks=s;function a(h,E){ju(h);let C=new y8.default(E);return Qc.pattern.isDynamicPattern(h,C)}t.isDynamicPattern=a;function n(h){return ju(h),Qc.path.escape(h)}t.escapePath=n;function c(h){return ju(h),Qc.path.convertPathToPattern(h)}t.convertPathToPattern=c;let f;(function(h){function E(S){return ju(S),Qc.path.escapePosixPath(S)}h.escapePath=E;function C(S){return ju(S),Qc.path.convertPosixPathToPattern(S)}h.convertPathToPattern=C})(f=t.posix||(t.posix={}));let p;(function(h){function E(S){return ju(S),Qc.path.escapeWindowsPath(S)}h.escapePath=E;function C(S){return ju(S),Qc.path.convertWindowsPathToPattern(S)}h.convertPathToPattern=C})(p=t.win32||(t.win32={}))})(E8||(E8={}));function I8(t,e,r){let s=[].concat(t),a=new y8.default(r),n=qce.generate(s,a),c=new e(a);return n.map(c.read,c)}function ju(t){if(![].concat(t).every(s=>Qc.string.isString(s)&&!Qc.string.isEmpty(s)))throw new TypeError(\"Patterns must be a string (non empty) or an array of strings\")}Wce.exports=E8});var Nn={};Vt(Nn,{checksumFile:()=>vQ,checksumPattern:()=>SQ,makeHash:()=>cs});function cs(...t){let e=(0,BQ.createHash)(\"sha512\"),r=\"\";for(let s of t)typeof s==\"string\"?r+=s:s&&(r&&(e.update(r),r=\"\"),e.update(s));return r&&e.update(r),e.digest(\"hex\")}async function vQ(t,{baseFs:e,algorithm:r}={baseFs:ce,algorithm:\"sha512\"}){let s=await e.openPromise(t,\"r\");try{let n=Buffer.allocUnsafeSlow(65536),c=(0,BQ.createHash)(r),f=0;for(;(f=await e.readPromise(s,n,0,65536))!==0;)c.update(f===65536?n:n.slice(0,f));return c.digest(\"hex\")}finally{await e.closePromise(s)}}async function SQ(t,{cwd:e}){let s=(await(0,C8.default)(t,{cwd:fe.fromPortablePath(e),onlyDirectories:!0})).map(f=>`${f}/**/*`),a=await(0,C8.default)([t,...s],{cwd:fe.fromPortablePath(e),onlyFiles:!1});a.sort();let n=await Promise.all(a.map(async f=>{let p=[Buffer.from(f)],h=J.join(e,fe.toPortablePath(f)),E=await ce.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await ce.readlinkPromise(h))):E.isFile()&&p.push(await ce.readFilePromise(h)),p.join(\"\\0\")})),c=(0,BQ.createHash)(\"sha512\");for(let f of n)c.update(f);return c.digest(\"hex\")}var BQ,C8,I0=Ze(()=>{Dt();BQ=Ie(\"crypto\"),C8=ut(wQ())});var G={};Vt(G,{allPeerRequests:()=>qB,areDescriptorsEqual:()=>zce,areIdentsEqual:()=>UB,areLocatorsEqual:()=>_B,areVirtualPackagesEquivalent:()=>j$e,bindDescriptor:()=>_$e,bindLocator:()=>H$e,convertDescriptorToLocator:()=>DQ,convertLocatorToDescriptor:()=>B8,convertPackageToLocator:()=>L$e,convertToIdent:()=>O$e,convertToManifestRange:()=>X$e,copyPackage:()=>LB,devirtualizeDescriptor:()=>MB,devirtualizeLocator:()=>rI,ensureDevirtualizedDescriptor:()=>M$e,ensureDevirtualizedLocator:()=>U$e,getIdentVendorPath:()=>P8,isPackageCompatible:()=>QQ,isVirtualDescriptor:()=>kp,isVirtualLocator:()=>Gu,makeDescriptor:()=>On,makeIdent:()=>Da,makeLocator:()=>Ws,makeRange:()=>xQ,parseDescriptor:()=>C0,parseFileStyleRange:()=>z$e,parseIdent:()=>Sa,parseLocator:()=>Qp,parseRange:()=>em,prettyDependent:()=>$4,prettyDescriptor:()=>ni,prettyIdent:()=>Xi,prettyLocator:()=>Yr,prettyLocatorNoColors:()=>X4,prettyRange:()=>iI,prettyReference:()=>jB,prettyResolution:()=>FB,prettyWorkspace:()=>GB,renamePackage:()=>v8,slugifyIdent:()=>w8,slugifyLocator:()=>nI,sortDescriptors:()=>sI,stringifyDescriptor:()=>al,stringifyIdent:()=>un,stringifyLocator:()=>ll,tryParseDescriptor:()=>HB,tryParseIdent:()=>Zce,tryParseLocator:()=>bQ,tryParseRange:()=>K$e,unwrapIdentFromScope:()=>eet,virtualizeDescriptor:()=>S8,virtualizePackage:()=>D8,wrapIdentIntoScope:()=>$$e});function Da(t,e){if(t?.startsWith(\"@\"))throw new Error(\"Invalid scope: don't prefix it with '@'\");return{identHash:cs(t,e),scope:t,name:e}}function On(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:cs(t.identHash,e),range:e}}function Ws(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:cs(t.identHash,e),reference:e}}function O$e(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function DQ(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function B8(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function L$e(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function v8(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function LB(t){return v8(t,t)}function S8(t,e){if(e.includes(\"#\"))throw new Error(\"Invalid entropy\");return On(t,`virtual:${e}#${t.range}`)}function D8(t,e){if(e.includes(\"#\"))throw new Error(\"Invalid entropy\");return v8(t,Ws(t,`virtual:${e}#${t.reference}`))}function kp(t){return t.range.startsWith(OB)}function Gu(t){return t.reference.startsWith(OB)}function MB(t){if(!kp(t))throw new Error(\"Not a virtual descriptor\");return On(t,t.range.replace(PQ,\"\"))}function rI(t){if(!Gu(t))throw new Error(\"Not a virtual descriptor\");return Ws(t,t.reference.replace(PQ,\"\"))}function M$e(t){return kp(t)?On(t,t.range.replace(PQ,\"\")):t}function U$e(t){return Gu(t)?Ws(t,t.reference.replace(PQ,\"\")):t}function _$e(t,e){return t.range.includes(\"::\")?t:On(t,`${t.range}::${tI.default.stringify(e)}`)}function H$e(t,e){return t.reference.includes(\"::\")?t:Ws(t,`${t.reference}::${tI.default.stringify(e)}`)}function UB(t,e){return t.identHash===e.identHash}function zce(t,e){return t.descriptorHash===e.descriptorHash}function _B(t,e){return t.locatorHash===e.locatorHash}function j$e(t,e){if(!Gu(t))throw new Error(\"Invalid package type\");if(!Gu(e))throw new Error(\"Invalid package type\");if(!UB(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let s=e.dependencies.get(r.identHash);if(!s||!zce(r,s))return!1}return!0}function Sa(t){let e=Zce(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function Zce(t){let e=t.match(G$e);if(!e)return null;let[,r,s]=e;return Da(typeof r<\"u\"?r:null,s)}function C0(t,e=!1){let r=HB(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function HB(t,e=!1){let r=e?t.match(q$e):t.match(W$e);if(!r)return null;let[,s,a,n]=r;if(n===\"unknown\")throw new Error(`Invalid range (${t})`);let c=typeof s<\"u\"?s:null,f=typeof n<\"u\"?n:\"unknown\";return On(Da(c,a),f)}function Qp(t,e=!1){let r=bQ(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function bQ(t,e=!1){let r=e?t.match(Y$e):t.match(V$e);if(!r)return null;let[,s,a,n]=r;if(n===\"unknown\")throw new Error(`Invalid reference (${t})`);let c=typeof s<\"u\"?s:null,f=typeof n<\"u\"?n:\"unknown\";return Ws(Da(c,a),f)}function em(t,e){let r=t.match(J$e);if(r===null)throw new Error(`Invalid range (${t})`);let s=typeof r[1]<\"u\"?r[1]:null;if(typeof e?.requireProtocol==\"string\"&&s!==e.requireProtocol)throw new Error(`Invalid protocol (${s})`);if(e?.requireProtocol&&s===null)throw new Error(`Missing protocol (${s})`);let a=typeof r[3]<\"u\"?decodeURIComponent(r[2]):null;if(e?.requireSource&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<\"u\"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),c=e?.parseSelector?tI.default.parse(n):n,f=typeof r[4]<\"u\"?tI.default.parse(r[4]):null;return{protocol:s,source:a,selector:c,params:f}}function K$e(t,e){try{return em(t,e)}catch{return null}}function z$e(t,{protocol:e}){let{selector:r,params:s}=em(t,{requireProtocol:e,requireBindings:!0});if(typeof s.locator!=\"string\")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Qp(s.locator,!0),path:r}}function Yce(t){return t=t.replaceAll(\"%\",\"%25\"),t=t.replaceAll(\":\",\"%3A\"),t=t.replaceAll(\"#\",\"%23\"),t}function Z$e(t){return t===null?!1:Object.entries(t).length>0}function xQ({protocol:t,source:e,selector:r,params:s}){let a=\"\";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${Yce(e)}#`),a+=Yce(r),Z$e(s)&&(a+=`::${tI.default.stringify(s)}`),a}function X$e(t){let{params:e,protocol:r,source:s,selector:a}=em(t);for(let n in e)n.startsWith(\"__\")&&delete e[n];return xQ({protocol:r,source:s,params:e,selector:a})}function un(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function $$e(t,e){return t.scope?Da(e,`${t.scope}__${t.name}`):Da(e,t.name)}function eet(t,e){if(t.scope!==e)return t;let r=t.name.indexOf(\"__\");if(r===-1)return Da(null,t.name);let s=t.name.slice(0,r),a=t.name.slice(r+2);return Da(s,a)}function al(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function ll(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function w8(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function nI(t){let{protocol:e,selector:r}=em(t.reference),s=e!==null?e.replace(tet,\"\"):\"exotic\",a=Vce.default.valid(r),n=a!==null?`${s}-${a}`:`${s}`,c=10;return t.scope?`${w8(t)}-${n}-${t.locatorHash.slice(0,c)}`:`${w8(t)}-${n}-${t.locatorHash.slice(0,c)}`}function Xi(t,e){return e.scope?`${Ht(t,`@${e.scope}/`,ht.SCOPE)}${Ht(t,e.name,ht.NAME)}`:`${Ht(t,e.name,ht.NAME)}`}function kQ(t){if(t.startsWith(OB)){let e=kQ(t.substring(t.indexOf(\"#\")+1)),r=t.substring(OB.length,OB.length+F$e);return`${e} [${r}]`}else return t.replace(ret,\"?[...]\")}function iI(t,e){return`${Ht(t,kQ(e),ht.RANGE)}`}function ni(t,e){return`${Xi(t,e)}${Ht(t,\"@\",ht.RANGE)}${iI(t,e.range)}`}function jB(t,e){return`${Ht(t,kQ(e),ht.REFERENCE)}`}function Yr(t,e){return`${Xi(t,e)}${Ht(t,\"@\",ht.REFERENCE)}${jB(t,e.reference)}`}function X4(t){return`${un(t)}@${kQ(t.reference)}`}function sI(t){return qs(t,[e=>un(e),e=>e.range])}function GB(t,e){return Xi(t,e.anchoredLocator)}function FB(t,e,r){let s=kp(e)?MB(e):e;return r===null?`${ni(t,s)} \\u2192 ${Z4(t).Cross}`:s.identHash===r.identHash?`${ni(t,s)} \\u2192 ${jB(t,r.reference)}`:`${ni(t,s)} \\u2192 ${Yr(t,r)}`}function $4(t,e,r){return r===null?`${Yr(t,e)}`:`${Yr(t,e)} (via ${iI(t,r.range)})`}function P8(t){return`node_modules/${un(t)}`}function QQ(t,e){return t.conditions?N$e(t.conditions,r=>{let[,s,a]=r.match(Kce),n=e[s];return n?n.includes(a):!0}):!0}function qB(t){let e=new Set;if(\"children\"in t)e.add(t);else for(let r of t.requests.values())e.add(r);for(let r of e)for(let s of r.children.values())e.add(s);return e}var tI,Vce,Jce,OB,F$e,Kce,N$e,PQ,G$e,q$e,W$e,Y$e,V$e,J$e,tet,ret,Wo=Ze(()=>{tI=ut(Ie(\"querystring\")),Vce=ut(Ai()),Jce=ut(dse());xc();I0();bc();Wo();OB=\"virtual:\",F$e=5,Kce=/(os|cpu|libc)=([a-z0-9_-]+)/,N$e=(0,Jce.makeParser)(Kce);PQ=/^[^#]*#/;G$e=/^(?:@([^/]+?)\\/)?([^@/]+)$/;q$e=/^(?:@([^/]+?)\\/)?([^@/]+?)(?:@(.+))$/,W$e=/^(?:@([^/]+?)\\/)?([^@/]+?)(?:@(.+))?$/;Y$e=/^(?:@([^/]+?)\\/)?([^@/]+?)(?:@(.+))$/,V$e=/^(?:@([^/]+?)\\/)?([^@/]+?)(?:@(.+))?$/;J$e=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;tet=/:$/;ret=/\\?.*/});var Xce,$ce=Ze(()=>{Wo();Xce={hooks:{reduceDependency:(t,e,r,s,{resolver:a,resolveOptions:n})=>{for(let{pattern:c,reference:f}of e.topLevelWorkspace.manifest.resolutions){if(c.from&&(c.from.fullName!==un(r)||e.configuration.normalizeLocator(Ws(Sa(c.from.fullName),c.from.description??r.reference)).locatorHash!==r.locatorHash)||c.descriptor.fullName!==un(t)||e.configuration.normalizeDependency(On(Qp(c.descriptor.fullName),c.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(On(t,f)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let s=GB(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${s}: ${n}`),reportError:(a,n)=>e.reportError(a,`${s}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error(\"Resolutions field will be ignored\"));for(let s of r.errors)e.reportWarning(57,s.message)}}}});var Ei,tm=Ze(()=>{Ei=class t{static{this.protocol=\"workspace:\"}supportsDescriptor(e,r){return!!(e.range.startsWith(t.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(t.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){return[s.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let s=r.project.getWorkspaceByCwd(e.reference.slice(t.protocol.length));return{...e,version:s.manifest.version||\"0.0.0\",languageName:\"unknown\",linkType:\"SOFT\",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...s.manifest.dependencies,...s.manifest.devDependencies])),peerDependencies:new Map([...s.manifest.peerDependencies]),dependenciesMeta:s.manifest.dependenciesMeta,peerDependenciesMeta:s.manifest.peerDependenciesMeta,bin:s.manifest.bin}}}});var Fr={};Vt(Fr,{SemVer:()=>iue.SemVer,clean:()=>iet,getComparator:()=>rue,mergeComparators:()=>b8,satisfiesWithPrereleases:()=>Xf,simplifyRanges:()=>x8,stringifyComparator:()=>nue,validRange:()=>cl});function Xf(t,e,r=!1){if(!t)return!1;let s=`${e}${r}`,a=eue.get(s);if(typeof a>\"u\")try{a=new Rp.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{eue.set(s,a||null)}else if(a===null)return!1;let n;try{n=new Rp.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(c=>{for(let f of c)f.semver.prerelease&&(f.semver.prerelease=[]);return c.every(f=>f.test(n))}))}function cl(t){if(t.indexOf(\":\")!==-1)return null;let e=tue.get(t);if(typeof e<\"u\")return e;try{e=new Rp.default.Range(t)}catch{e=null}return tue.set(t,e),e}function iet(t){let e=net.exec(t);return e?e[1]:null}function rue(t){if(t.semver===Rp.default.Comparator.ANY)return{gt:null,lt:null};switch(t.operator){case\"\":return{gt:[\">=\",t.semver],lt:[\"<=\",t.semver]};case\">\":case\">=\":return{gt:[t.operator,t.semver],lt:null};case\"<\":case\"<=\":return{gt:null,lt:[t.operator,t.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${t.operator})`)}}function b8(t){if(t.length===0)return null;let e=null,r=null;for(let s of t){if(s.gt){let a=e!==null?Rp.default.compare(s.gt[1],e[1]):null;(a===null||a>0||a===0&&s.gt[0]===\">\")&&(e=s.gt)}if(s.lt){let a=r!==null?Rp.default.compare(s.lt[1],r[1]):null;(a===null||a<0||a===0&&s.lt[0]===\"<\")&&(r=s.lt)}}if(e&&r){let s=Rp.default.compare(e[1],r[1]);if(s===0&&(e[0]===\">\"||r[0]===\"<\")||s>0)return null}return{gt:e,lt:r}}function nue(t){if(t.gt&&t.lt){if(t.gt[0]===\">=\"&&t.lt[0]===\"<=\"&&t.gt[1].version===t.lt[1].version)return t.gt[1].version;if(t.gt[0]===\">=\"&&t.lt[0]===\"<\"){if(t.lt[1].version===`${t.gt[1].major+1}.0.0-0`)return`^${t.gt[1].version}`;if(t.lt[1].version===`${t.gt[1].major}.${t.gt[1].minor+1}.0-0`)return`~${t.gt[1].version}`}}let e=[];return t.gt&&e.push(t.gt[0]+t.gt[1].version),t.lt&&e.push(t.lt[0]+t.lt[1].version),e.length?e.join(\" \"):\"*\"}function x8(t){let e=t.map(set).map(s=>cl(s).set.map(a=>a.map(n=>rue(n)))),r=e.shift().map(s=>b8(s)).filter(s=>s!==null);for(let s of e){let a=[];for(let n of r)for(let c of s){let f=b8([n,...c]);f!==null&&a.push(f)}r=a}return r.length===0?null:r.map(s=>nue(s)).join(\" || \")}function set(t){let e=t.split(\"||\");if(e.length>1){let r=new Set;for(let s of e)e.some(a=>a!==s&&Rp.default.subset(s,a))||r.add(s);if(r.size<e.length)return[...r].join(\" || \")}return t}var Rp,iue,eue,tue,net,Tp=Ze(()=>{Rp=ut(Ai()),iue=ut(Ai()),eue=new Map;tue=new Map;net=/^(?:[\\sv=]*?)((0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\s*)$/});function sue(t){let e=t.match(/^[ \\t]+/m);return e?e[0]:\"  \"}function oue(t){return t.charCodeAt(0)===65279?t.slice(1):t}function Pa(t){return t.replace(/\\\\/g,\"/\")}function RQ(t,{yamlCompatibilityMode:e}){return e?q4(t):typeof t>\"u\"||typeof t==\"boolean\"?t:null}function aue(t,e){let r=e.search(/[^!]/);if(r===-1)return\"invalid\";let s=r%2===0?\"\":\"!\",a=e.slice(r);return`${s}${t}=${a}`}function k8(t,e){return e.length===1?aue(t,e[0]):`(${e.map(r=>aue(t,r)).join(\" | \")})`}var lue,Ut,oI=Ze(()=>{Dt();wc();lue=ut(Ai());tm();bc();Tp();Wo();Ut=class t{constructor(){this.indent=\"  \";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static{this.fileName=\"package.json\"}static{this.allDependencies=[\"dependencies\",\"devDependencies\",\"peerDependencies\"]}static{this.hardDependencies=[\"dependencies\",\"devDependencies\"]}static async tryFind(e,{baseFs:r=new Yn}={}){let s=J.join(e,\"package.json\");try{return await t.fromFile(s,{baseFs:r})}catch(a){if(a.code===\"ENOENT\")return null;throw a}}static async find(e,{baseFs:r}={}){let s=await t.tryFind(e,{baseFs:r});if(s===null)throw new Error(\"Manifest not found\");return s}static async fromFile(e,{baseFs:r=new Yn}={}){let s=new t;return await s.loadFile(e,{baseFs:r}),s}static fromText(e){let r=new t;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(oue(e)||\"{}\")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(r),this.indent=sue(e)}async loadFile(e,{baseFs:r=new Yn}){let s=await r.readFilePromise(e,\"utf8\"),a;try{a=JSON.parse(oue(s)||\"{}\")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=sue(s)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!=\"object\"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let s=[];if(this.name=null,typeof e.name==\"string\")try{this.name=Sa(e.name)}catch{s.push(new Error(\"Parsing failed for the 'name' field\"))}if(typeof e.version==\"string\"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let c of e.os)typeof c!=\"string\"?s.push(new Error(\"Parsing failed for the 'os' field\")):n.push(c)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let c of e.cpu)typeof c!=\"string\"?s.push(new Error(\"Parsing failed for the 'cpu' field\")):n.push(c)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let c of e.libc)typeof c!=\"string\"?s.push(new Error(\"Parsing failed for the 'libc' field\")):n.push(c)}else this.libc=null;if(typeof e.type==\"string\"?this.type=e.type:this.type=null,typeof e.packageManager==\"string\"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private==\"boolean\"?this.private=e.private:this.private=!1,typeof e.license==\"string\"?this.license=e.license:this.license=null,typeof e.languageName==\"string\"?this.languageName=e.languageName:this.languageName=null,typeof e.main==\"string\"?this.main=Pa(e.main):this.main=null,typeof e.module==\"string\"?this.module=Pa(e.module):this.module=null,e.browser!=null)if(typeof e.browser==\"string\")this.browser=Pa(e.browser);else{this.browser=new Map;for(let[n,c]of Object.entries(e.browser))this.browser.set(Pa(n),typeof c==\"string\"?Pa(c):c)}else this.browser=null;if(this.bin=new Map,typeof e.bin==\"string\")e.bin.trim()===\"\"?s.push(new Error(\"Invalid bin field\")):this.name!==null?this.bin.set(this.name.name,Pa(e.bin)):s.push(new Error(\"String bin field, but no attached package name\"));else if(typeof e.bin==\"object\"&&e.bin!==null)for(let[n,c]of Object.entries(e.bin)){if(typeof c!=\"string\"||c.trim()===\"\"){s.push(new Error(`Invalid bin definition for '${n}'`));continue}let f=Sa(n);this.bin.set(f.name,Pa(c))}if(this.scripts=new Map,typeof e.scripts==\"object\"&&e.scripts!==null)for(let[n,c]of Object.entries(e.scripts)){if(typeof c!=\"string\"){s.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,c)}if(this.dependencies=new Map,typeof e.dependencies==\"object\"&&e.dependencies!==null)for(let[n,c]of Object.entries(e.dependencies)){if(typeof c!=\"string\"){s.push(new Error(`Invalid dependency range for '${n}'`));continue}let f;try{f=Sa(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=On(f,c);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies==\"object\"&&e.devDependencies!==null)for(let[n,c]of Object.entries(e.devDependencies)){if(typeof c!=\"string\"){s.push(new Error(`Invalid dependency range for '${n}'`));continue}let f;try{f=Sa(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=On(f,c);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies==\"object\"&&e.peerDependencies!==null)for(let[n,c]of Object.entries(e.peerDependencies)){let f;try{f=Sa(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof c!=\"string\"||!c.startsWith(Ei.protocol)&&!cl(c))&&(s.push(new Error(`Invalid dependency range for '${n}'`)),c=\"*\");let p=On(f,c);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces==\"object\"&&e.workspaces!==null&&e.workspaces.nohoist&&s.push(new Error(\"'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead\"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces==\"object\"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!=\"string\"){s.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta==\"object\"&&e.dependenciesMeta!==null)for(let[n,c]of Object.entries(e.dependenciesMeta)){if(typeof c!=\"object\"||c===null){s.push(new Error(`Invalid meta field for '${n}`));continue}let f=C0(n),p=this.ensureDependencyMeta(f),h=RQ(c.built,{yamlCompatibilityMode:r});if(h===null){s.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=RQ(c.optional,{yamlCompatibilityMode:r});if(E===null){s.push(new Error(`Invalid optional meta field for '${n}'`));continue}let C=RQ(c.unplugged,{yamlCompatibilityMode:r});if(C===null){s.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:C})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta==\"object\"&&e.peerDependenciesMeta!==null)for(let[n,c]of Object.entries(e.peerDependenciesMeta)){if(typeof c!=\"object\"||c===null){s.push(new Error(`Invalid meta field for '${n}'`));continue}let f=C0(n),p=this.ensurePeerDependencyMeta(f),h=RQ(c.optional,{yamlCompatibilityMode:r});if(h===null){s.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions==\"object\"&&e.resolutions!==null)for(let[n,c]of Object.entries(e.resolutions)){if(typeof c!=\"string\"){s.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:px(n),reference:c})}catch(f){s.push(f);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!=\"string\"){s.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig==\"object\"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access==\"string\"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main==\"string\"&&(this.publishConfig.main=Pa(e.publishConfig.main)),typeof e.publishConfig.module==\"string\"&&(this.publishConfig.module=Pa(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser==\"string\")this.publishConfig.browser=Pa(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,c]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(Pa(n),typeof c==\"string\"?Pa(c):c)}if(typeof e.publishConfig.registry==\"string\"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.provenance==\"boolean\"&&(this.publishConfig.provenance=e.publishConfig.provenance),typeof e.publishConfig.bin==\"string\")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,Pa(e.publishConfig.bin)]]):s.push(new Error(\"String bin field, but no attached package name\"));else if(typeof e.publishConfig.bin==\"object\"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,c]of Object.entries(e.publishConfig.bin)){if(typeof c!=\"string\"){s.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,Pa(c))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!=\"string\"){s.push(new Error(\"Invalid executable file definition\"));continue}this.publishConfig.executableFiles.add(Pa(n))}}}else this.publishConfig=null;if(typeof e.installConfig==\"object\"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n===\"hoistingLimits\"?typeof e.installConfig.hoistingLimits==\"string\"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:s.push(new Error(\"Invalid hoisting limits definition\")):n==\"selfReferences\"?typeof e.installConfig.selfReferences==\"boolean\"?this.installConfig.selfReferences=e.installConfig.selfReferences:s.push(new Error(\"Invalid selfReferences definition, must be a boolean value\")):s.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies==\"object\"&&e.optionalDependencies!==null)for(let[n,c]of Object.entries(e.optionalDependencies)){if(typeof c!=\"string\"){s.push(new Error(`Invalid dependency range for '${n}'`));continue}let f;try{f=Sa(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=On(f,c);this.dependencies.set(p.identHash,p);let h=On(f,\"unknown\"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged==\"boolean\"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=s}getForScope(e){switch(e){case\"dependencies\":return this.dependencies;case\"devDependencies\":return this.devDependencies;case\"peerDependencies\":return this.peerDependencies;default:throw new Error(`Unsupported value (\"${e}\")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(k8(\"os\",this.os)),this.cpu&&this.cpu.length>0&&e.push(k8(\"cpu\",this.cpu)),this.libc&&this.libc.length>0&&e.push(k8(\"libc\",this.libc)),e.length>0?e.join(\" & \"):null}ensureDependencyMeta(e){if(e.range!==\"unknown\"&&!lue.default.valid(e.range))throw new Error(`Invalid meta field range for '${al(e)}'`);let r=un(e),s=e.range!==\"unknown\"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(s);return n||a.set(s,n={}),n}ensurePeerDependencyMeta(e){if(e.range!==\"unknown\")throw new Error(`Invalid meta field range for '${al(e)}'`);let r=un(e),s=this.peerDependenciesMeta.get(r);return s||this.peerDependenciesMeta.set(r,s={}),s}setRawField(e,r,{after:s=[]}={}){let a=new Set(s.filter(n=>Object.hasOwn(this.raw,n)));if(a.size===0||Object.hasOwn(this.raw,e))this.raw[e]=r;else{let n=this.raw,c=this.raw={},f=!1;for(let p of Object.keys(n))c[p]=n[p],f||(a.delete(p),a.size===0&&(c[e]=r,f=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=un(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n==\"string\"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(c=>({[c]:n.get(c)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let s=[],a=[];for(let n of this.dependencies.values()){let c=this.dependenciesMeta.get(un(n)),f=!1;if(r&&c){let p=c.get(null);p&&p.optional&&(f=!0)}f?a.push(n):s.push(n)}s.length>0?e.dependencies=Object.assign({},...sI(s).map(n=>({[un(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...sI(a).map(n=>({[un(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...sI(this.devDependencies.values()).map(n=>({[un(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...sI(this.peerDependencies.values()).map(n=>({[un(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,c]of qs(this.dependenciesMeta.entries(),([f,p])=>f))for(let[f,p]of qs(c.entries(),([h,E])=>h!==null?`0${h}`:\"1\")){let h=f!==null?al(On(Sa(n),f)):n,E={...p};r&&f===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...qs(this.peerDependenciesMeta.entries(),([n,c])=>n).map(([n,c])=>({[n]:c}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:c})=>({[hx(n)]:c}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??={};for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,c]of this.scripts.entries())e.scripts[n]=c}else delete e.scripts;return e}}});function aet(t){return typeof t.reportCode<\"u\"}var cue,uue,oet,jt,Ao,Rc=Ze(()=>{ql();cue=Ie(\"stream\"),uue=Ie(\"string_decoder\"),oet=15,jt=class extends Error{constructor(r,s,a){super(s);this.reportExtra=a;this.reportCode=r}};Ao=class{constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(e){this.cacheHits.add(e.locatorHash)}reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}static progressViaCounter(e){let r=0,s,a=new Promise(p=>{s=p}),n=p=>{let h=s;a=new Promise(E=>{s=E}),r=p,h()},c=(p=0)=>{n(r+1)},f=async function*(){for(;r<e;)await a,yield{progress:r/e}}();return{[Symbol.asyncIterator](){return f},hasProgress:!0,hasTitle:!1,set:n,tick:c}}static progressViaTitle(){let e,r,s=new Promise(c=>{r=c}),a=k4(c=>{let f=r;s=new Promise(p=>{r=p}),e=c,f()},1e3/oet),n=async function*(){for(;;)await s,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let s=this.reportProgress(e);try{return await r(e)}finally{s.stop()}}startProgressSync(e,r){let s=this.reportProgress(e);try{return r(e)}finally{s.stop()}}reportInfoOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),s?.reportExtra?.(this))}reportWarningOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),s?.reportExtra?.(this))}reportErrorOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),s?.reportExtra?.(this))}reportExceptionOnce(e){aet(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new cue.PassThrough,s=new uue.StringDecoder,a=\"\";return r.on(\"data\",n=>{let c=s.write(n),f;do if(f=c.indexOf(`\n`),f!==-1){let p=a+c.substring(0,f);c=c.substring(f+1),a=\"\",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(f!==-1);a+=c}),r.on(\"end\",()=>{let n=s.end();n!==\"\"&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var aI,Q8=Ze(()=>{Rc();Wo();aI=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));return s||null}getFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));if(!s)throw new jt(11,`${Yr(r.project.configuration,e)} isn't supported by any available fetcher`);return s}}});var rm,R8=Ze(()=>{Wo();rm=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,s){return this.getResolverByDescriptor(e,s).bindDescriptor(e,r,s)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,s){return await this.getResolverByDescriptor(e,s).getCandidates(e,r,s)}async getSatisfying(e,r,s,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,s,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDescriptor(e,r));return s||null}getResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!s)throw new Error(`${ni(r.project.configuration,e)} isn't supported by any available resolver`);return s}tryResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator(e,r));return s||null}getResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator(e,r));if(!s)throw new Error(`${Yr(r.project.configuration,e)} isn't supported by any available resolver`);return s}}});var lI,T8=Ze(()=>{Dt();Wo();lI=class{supports(e){return!!e.reference.startsWith(\"virtual:\")}getLocalPath(e,r){let s=e.reference.indexOf(\"#\");if(s===-1)throw new Error(\"Invalid virtual package reference\");let a=e.reference.slice(s+1),n=Ws(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let s=e.reference.indexOf(\"#\");if(s===-1)throw new Error(\"Invalid virtual package reference\");let a=e.reference.slice(s+1),n=Ws(e,a),c=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,c,r)}getLocatorFilename(e){return nI(e)}async ensureVirtualLink(e,r,s){let a=r.packageFs.getRealPath(),n=s.project.configuration.get(\"virtualFolder\"),c=this.getLocatorFilename(e),f=uo.makeVirtualPath(n,c,a),p=new _f(f,{baseFs:r.packageFs,pathUtils:J});return{...r,packageFs:p}}}});var TQ,fue=Ze(()=>{TQ=class t{static{this.protocol=\"virtual:\"}static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}supportsLocator(e,r){return t.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){throw new Error('Assertion failed: calling \"bindDescriptor\" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling \"getResolutionDependencies\" on a virtual descriptor is unsupported')}async getCandidates(e,r,s){throw new Error('Assertion failed: calling \"getCandidates\" on a virtual descriptor is unsupported')}async getSatisfying(e,r,s,a){throw new Error('Assertion failed: calling \"getSatisfying\" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling \"resolve\" on a virtual locator is unsupported')}}});var cI,F8=Ze(()=>{Dt();tm();cI=class{supports(e){return!!e.reference.startsWith(Ei.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let s=this.getWorkspace(e,r).cwd;return{packageFs:new Sn(s),prefixPath:vt.dot,localPath:s}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Ei.protocol.length))}}});function WB(t){return typeof t==\"object\"&&t!==null&&!Array.isArray(t)}function Aue(t){return typeof t>\"u\"?3:WB(t)?0:Array.isArray(t)?1:2}function L8(t,e){return Object.hasOwn(t,e)}function uet(t){return WB(t)&&L8(t,\"onConflict\")&&typeof t.onConflict==\"string\"}function fet(t){if(typeof t>\"u\")return{onConflict:\"default\",value:t};if(!uet(t))return{onConflict:\"default\",value:t};if(L8(t,\"value\"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function pue(t,e){let r=WB(t)&&L8(t,e)?t[e]:void 0;return fet(r)}function uI(t,e){return[t,e,hue]}function M8(t){return Array.isArray(t)?t[2]===hue:!1}function N8(t,e){if(WB(t)){let r={};for(let s of Object.keys(t))r[s]=N8(t[s],e);return uI(e,r)}return Array.isArray(t)?uI(e,t.map(r=>N8(r,e))):uI(e,t)}function O8(t,e,r,s,a){let n,c=[],f=a,p=0;for(let E=a-1;E>=s;--E){let[C,S]=t[E],{onConflict:b,value:I}=pue(S,r),T=Aue(I);if(T!==3){if(n??=T,T!==n||b===\"hardReset\"){p=f;break}if(T===2)return uI(C,I);if(c.unshift([C,I]),b===\"reset\"){p=E;break}b===\"extend\"&&E===s&&(s=0),f=E}}if(typeof n>\"u\")return null;let h=c.map(([E])=>E).join(\", \");switch(n){case 1:return uI(h,new Array().concat(...c.map(([E,C])=>C.map(S=>N8(S,E)))));case 0:{let E=Object.assign({},...c.map(([,T])=>T)),C=Object.keys(E),S={},b=t.map(([T,N])=>[T,pue(N,r).value]),I=cet(b,([T,N])=>{let U=Aue(N);return U!==0&&U!==3});if(I!==-1){let T=b.slice(I+1);for(let N of C)S[N]=O8(T,e,N,0,T.length)}else for(let T of C)S[T]=O8(b,e,T,p,b.length);return uI(h,S)}default:throw new Error(\"Assertion failed: Non-extendable value type\")}}function gue(t){return O8(t.map(([e,r])=>[e,{\".\":r}]),[],\".\",0,t.length)}function YB(t){return M8(t)?t[1]:t}function FQ(t){let e=M8(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>FQ(r));if(WB(e)){let r={};for(let[s,a]of Object.entries(e))r[s]=FQ(a);return r}return e}function U8(t){return M8(t)?t[0]:null}var cet,hue,due=Ze(()=>{cet=(t,e,r)=>{let s=[...t];return s.reverse(),s.findIndex(e,r)};hue=Symbol()});var NQ={};Vt(NQ,{getDefaultGlobalFolder:()=>H8,getHomeFolder:()=>fI,isFolderInside:()=>j8});function H8(){if(process.platform===\"win32\"){let t=fe.toPortablePath(process.env.LOCALAPPDATA||fe.join((0,_8.homedir)(),\"AppData\",\"Local\"));return J.resolve(t,\"Yarn/Berry\")}if(process.env.XDG_DATA_HOME){let t=fe.toPortablePath(process.env.XDG_DATA_HOME);return J.resolve(t,\"yarn/berry\")}return J.resolve(fI(),\".yarn/berry\")}function fI(){return fe.toPortablePath((0,_8.homedir)()||\"/usr/local/share\")}function j8(t,e){let r=J.relative(e,t);return r&&!r.startsWith(\"..\")&&!J.isAbsolute(r)}var _8,OQ=Ze(()=>{Dt();_8=Ie(\"os\")});var Eue=_((uMt,yue)=>{\"use strict\";var G8=Ie(\"https\"),q8=Ie(\"http\"),{URL:mue}=Ie(\"url\"),W8=class extends q8.Agent{constructor(e){let{proxy:r,proxyRequestOptions:s,...a}=e;super(a),this.proxy=typeof r==\"string\"?new mue(r):r,this.proxyRequestOptions=s||{}}createConnection(e,r){let s={...this.proxyRequestOptions,method:\"CONNECT\",host:this.proxy.hostname,port:this.proxy.port,path:`${e.host}:${e.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?\"keep-alive\":\"close\",host:`${e.host}:${e.port}`},agent:!1,timeout:e.timeout||0};if(this.proxy.username||this.proxy.password){let n=Buffer.from(`${decodeURIComponent(this.proxy.username||\"\")}:${decodeURIComponent(this.proxy.password||\"\")}`).toString(\"base64\");s.headers[\"proxy-authorization\"]=`Basic ${n}`}this.proxy.protocol===\"https:\"&&(s.servername=this.proxy.hostname);let a=(this.proxy.protocol===\"http:\"?q8:G8).request(s);a.once(\"connect\",(n,c,f)=>{a.removeAllListeners(),c.removeAllListeners(),n.statusCode===200?r(null,c):(c.destroy(),r(new Error(`Bad response: ${n.statusCode}`),null))}),a.once(\"timeout\",()=>{a.destroy(new Error(\"Proxy timeout\"))}),a.once(\"error\",n=>{a.removeAllListeners(),r(n,null)}),a.end()}},Y8=class extends G8.Agent{constructor(e){let{proxy:r,proxyRequestOptions:s,...a}=e;super(a),this.proxy=typeof r==\"string\"?new mue(r):r,this.proxyRequestOptions=s||{}}createConnection(e,r){let s={...this.proxyRequestOptions,method:\"CONNECT\",host:this.proxy.hostname,port:this.proxy.port,path:`${e.host}:${e.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?\"keep-alive\":\"close\",host:`${e.host}:${e.port}`},agent:!1,timeout:e.timeout||0};if(this.proxy.username||this.proxy.password){let n=Buffer.from(`${decodeURIComponent(this.proxy.username||\"\")}:${decodeURIComponent(this.proxy.password||\"\")}`).toString(\"base64\");s.headers[\"proxy-authorization\"]=`Basic ${n}`}this.proxy.protocol===\"https:\"&&(s.servername=this.proxy.hostname);let a=(this.proxy.protocol===\"http:\"?q8:G8).request(s);a.once(\"connect\",(n,c,f)=>{if(a.removeAllListeners(),c.removeAllListeners(),n.statusCode===200){let p=super.createConnection({...e,socket:c});r(null,p)}else c.destroy(),r(new Error(`Bad response: ${n.statusCode}`),null)}),a.once(\"timeout\",()=>{a.destroy(new Error(\"Proxy timeout\"))}),a.once(\"error\",n=>{a.removeAllListeners(),r(n,null)}),a.end()}};yue.exports={HttpProxyAgent:W8,HttpsProxyAgent:Y8}});var V8,Iue,Cue,wue=Ze(()=>{V8=ut(Eue(),1),Iue=V8.default.HttpProxyAgent,Cue=V8.default.HttpsProxyAgent});var Np=_((Fp,LQ)=>{\"use strict\";Object.defineProperty(Fp,\"__esModule\",{value:!0});var Bue=[\"Int8Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"Int16Array\",\"Uint16Array\",\"Int32Array\",\"Uint32Array\",\"Float32Array\",\"Float64Array\",\"BigInt64Array\",\"BigUint64Array\"];function pet(t){return Bue.includes(t)}var het=[\"Function\",\"Generator\",\"AsyncGenerator\",\"GeneratorFunction\",\"AsyncGeneratorFunction\",\"AsyncFunction\",\"Observable\",\"Array\",\"Buffer\",\"Blob\",\"Object\",\"RegExp\",\"Date\",\"Error\",\"Map\",\"Set\",\"WeakMap\",\"WeakSet\",\"ArrayBuffer\",\"SharedArrayBuffer\",\"DataView\",\"Promise\",\"URL\",\"FormData\",\"URLSearchParams\",\"HTMLElement\",...Bue];function get(t){return het.includes(t)}var det=[\"null\",\"undefined\",\"string\",\"number\",\"bigint\",\"boolean\",\"symbol\"];function met(t){return det.includes(t)}function AI(t){return e=>typeof e===t}var{toString:vue}=Object.prototype,VB=t=>{let e=vue.call(t).slice(8,-1);if(/HTML\\w+Element/.test(e)&&Pe.domElement(t))return\"HTMLElement\";if(get(e))return e},pi=t=>e=>VB(e)===t;function Pe(t){if(t===null)return\"null\";switch(typeof t){case\"undefined\":return\"undefined\";case\"string\":return\"string\";case\"number\":return\"number\";case\"boolean\":return\"boolean\";case\"function\":return\"Function\";case\"bigint\":return\"bigint\";case\"symbol\":return\"symbol\";default:}if(Pe.observable(t))return\"Observable\";if(Pe.array(t))return\"Array\";if(Pe.buffer(t))return\"Buffer\";let e=VB(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError(\"Please don't use object wrappers for primitive types\");return\"Object\"}Pe.undefined=AI(\"undefined\");Pe.string=AI(\"string\");var yet=AI(\"number\");Pe.number=t=>yet(t)&&!Pe.nan(t);Pe.bigint=AI(\"bigint\");Pe.function_=AI(\"function\");Pe.null_=t=>t===null;Pe.class_=t=>Pe.function_(t)&&t.toString().startsWith(\"class \");Pe.boolean=t=>t===!0||t===!1;Pe.symbol=AI(\"symbol\");Pe.numericString=t=>Pe.string(t)&&!Pe.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));Pe.array=(t,e)=>Array.isArray(t)?Pe.function_(e)?t.every(e):!0:!1;Pe.buffer=t=>{var e,r,s,a;return(a=(s=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||s===void 0?void 0:s.call(r,t))!==null&&a!==void 0?a:!1};Pe.blob=t=>pi(\"Blob\")(t);Pe.nullOrUndefined=t=>Pe.null_(t)||Pe.undefined(t);Pe.object=t=>!Pe.null_(t)&&(typeof t==\"object\"||Pe.function_(t));Pe.iterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};Pe.asyncIterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};Pe.generator=t=>{var e,r;return Pe.iterable(t)&&Pe.function_((e=t)===null||e===void 0?void 0:e.next)&&Pe.function_((r=t)===null||r===void 0?void 0:r.throw)};Pe.asyncGenerator=t=>Pe.asyncIterable(t)&&Pe.function_(t.next)&&Pe.function_(t.throw);Pe.nativePromise=t=>pi(\"Promise\")(t);var Eet=t=>{var e,r;return Pe.function_((e=t)===null||e===void 0?void 0:e.then)&&Pe.function_((r=t)===null||r===void 0?void 0:r.catch)};Pe.promise=t=>Pe.nativePromise(t)||Eet(t);Pe.generatorFunction=pi(\"GeneratorFunction\");Pe.asyncGeneratorFunction=t=>VB(t)===\"AsyncGeneratorFunction\";Pe.asyncFunction=t=>VB(t)===\"AsyncFunction\";Pe.boundFunction=t=>Pe.function_(t)&&!t.hasOwnProperty(\"prototype\");Pe.regExp=pi(\"RegExp\");Pe.date=pi(\"Date\");Pe.error=pi(\"Error\");Pe.map=t=>pi(\"Map\")(t);Pe.set=t=>pi(\"Set\")(t);Pe.weakMap=t=>pi(\"WeakMap\")(t);Pe.weakSet=t=>pi(\"WeakSet\")(t);Pe.int8Array=pi(\"Int8Array\");Pe.uint8Array=pi(\"Uint8Array\");Pe.uint8ClampedArray=pi(\"Uint8ClampedArray\");Pe.int16Array=pi(\"Int16Array\");Pe.uint16Array=pi(\"Uint16Array\");Pe.int32Array=pi(\"Int32Array\");Pe.uint32Array=pi(\"Uint32Array\");Pe.float32Array=pi(\"Float32Array\");Pe.float64Array=pi(\"Float64Array\");Pe.bigInt64Array=pi(\"BigInt64Array\");Pe.bigUint64Array=pi(\"BigUint64Array\");Pe.arrayBuffer=pi(\"ArrayBuffer\");Pe.sharedArrayBuffer=pi(\"SharedArrayBuffer\");Pe.dataView=pi(\"DataView\");Pe.enumCase=(t,e)=>Object.values(e).includes(t);Pe.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;Pe.urlInstance=t=>pi(\"URL\")(t);Pe.urlString=t=>{if(!Pe.string(t))return!1;try{return new URL(t),!0}catch{return!1}};Pe.truthy=t=>!!t;Pe.falsy=t=>!t;Pe.nan=t=>Number.isNaN(t);Pe.primitive=t=>Pe.null_(t)||met(typeof t);Pe.integer=t=>Number.isInteger(t);Pe.safeInteger=t=>Number.isSafeInteger(t);Pe.plainObject=t=>{if(vue.call(t)!==\"[object Object]\")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};Pe.typedArray=t=>pet(VB(t));var Iet=t=>Pe.safeInteger(t)&&t>=0;Pe.arrayLike=t=>!Pe.nullOrUndefined(t)&&!Pe.function_(t)&&Iet(t.length);Pe.inRange=(t,e)=>{if(Pe.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(Pe.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var Cet=1,wet=[\"innerHTML\",\"ownerDocument\",\"style\",\"attributes\",\"nodeValue\"];Pe.domElement=t=>Pe.object(t)&&t.nodeType===Cet&&Pe.string(t.nodeName)&&!Pe.plainObject(t)&&wet.every(e=>e in t);Pe.observable=t=>{var e,r,s,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(s=t)[\"@@observable\"])===null||a===void 0?void 0:a.call(s)):!1};Pe.nodeStream=t=>Pe.object(t)&&Pe.function_(t.pipe)&&!Pe.observable(t);Pe.infinite=t=>t===1/0||t===-1/0;var Sue=t=>e=>Pe.integer(e)&&Math.abs(e%2)===t;Pe.evenInteger=Sue(0);Pe.oddInteger=Sue(1);Pe.emptyArray=t=>Pe.array(t)&&t.length===0;Pe.nonEmptyArray=t=>Pe.array(t)&&t.length>0;Pe.emptyString=t=>Pe.string(t)&&t.length===0;var Bet=t=>Pe.string(t)&&!/\\S/.test(t);Pe.emptyStringOrWhitespace=t=>Pe.emptyString(t)||Bet(t);Pe.nonEmptyString=t=>Pe.string(t)&&t.length>0;Pe.nonEmptyStringAndNotWhitespace=t=>Pe.string(t)&&!Pe.emptyStringOrWhitespace(t);Pe.emptyObject=t=>Pe.object(t)&&!Pe.map(t)&&!Pe.set(t)&&Object.keys(t).length===0;Pe.nonEmptyObject=t=>Pe.object(t)&&!Pe.map(t)&&!Pe.set(t)&&Object.keys(t).length>0;Pe.emptySet=t=>Pe.set(t)&&t.size===0;Pe.nonEmptySet=t=>Pe.set(t)&&t.size>0;Pe.emptyMap=t=>Pe.map(t)&&t.size===0;Pe.nonEmptyMap=t=>Pe.map(t)&&t.size>0;Pe.propertyKey=t=>Pe.any([Pe.string,Pe.number,Pe.symbol],t);Pe.formData=t=>pi(\"FormData\")(t);Pe.urlSearchParams=t=>pi(\"URLSearchParams\")(t);var Due=(t,e,r)=>{if(!Pe.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError(\"Invalid number of values\");return t.call(r,e)};Pe.any=(t,...e)=>(Pe.array(t)?t:[t]).some(s=>Due(Array.prototype.some,s,e));Pe.all=(t,...e)=>Due(Array.prototype.every,t,e);var _t=(t,e,r,s={})=>{if(!t){let{multipleValues:a}=s,n=a?`received values of types ${[...new Set(r.map(c=>`\\`${Pe(c)}\\``))].join(\", \")}`:`received value of type \\`${Pe(r)}\\``;throw new TypeError(`Expected value which is \\`${e}\\`, ${n}.`)}};Fp.assert={undefined:t=>_t(Pe.undefined(t),\"undefined\",t),string:t=>_t(Pe.string(t),\"string\",t),number:t=>_t(Pe.number(t),\"number\",t),bigint:t=>_t(Pe.bigint(t),\"bigint\",t),function_:t=>_t(Pe.function_(t),\"Function\",t),null_:t=>_t(Pe.null_(t),\"null\",t),class_:t=>_t(Pe.class_(t),\"Class\",t),boolean:t=>_t(Pe.boolean(t),\"boolean\",t),symbol:t=>_t(Pe.symbol(t),\"symbol\",t),numericString:t=>_t(Pe.numericString(t),\"string with a number\",t),array:(t,e)=>{_t(Pe.array(t),\"Array\",t),e&&t.forEach(e)},buffer:t=>_t(Pe.buffer(t),\"Buffer\",t),blob:t=>_t(Pe.blob(t),\"Blob\",t),nullOrUndefined:t=>_t(Pe.nullOrUndefined(t),\"null or undefined\",t),object:t=>_t(Pe.object(t),\"Object\",t),iterable:t=>_t(Pe.iterable(t),\"Iterable\",t),asyncIterable:t=>_t(Pe.asyncIterable(t),\"AsyncIterable\",t),generator:t=>_t(Pe.generator(t),\"Generator\",t),asyncGenerator:t=>_t(Pe.asyncGenerator(t),\"AsyncGenerator\",t),nativePromise:t=>_t(Pe.nativePromise(t),\"native Promise\",t),promise:t=>_t(Pe.promise(t),\"Promise\",t),generatorFunction:t=>_t(Pe.generatorFunction(t),\"GeneratorFunction\",t),asyncGeneratorFunction:t=>_t(Pe.asyncGeneratorFunction(t),\"AsyncGeneratorFunction\",t),asyncFunction:t=>_t(Pe.asyncFunction(t),\"AsyncFunction\",t),boundFunction:t=>_t(Pe.boundFunction(t),\"Function\",t),regExp:t=>_t(Pe.regExp(t),\"RegExp\",t),date:t=>_t(Pe.date(t),\"Date\",t),error:t=>_t(Pe.error(t),\"Error\",t),map:t=>_t(Pe.map(t),\"Map\",t),set:t=>_t(Pe.set(t),\"Set\",t),weakMap:t=>_t(Pe.weakMap(t),\"WeakMap\",t),weakSet:t=>_t(Pe.weakSet(t),\"WeakSet\",t),int8Array:t=>_t(Pe.int8Array(t),\"Int8Array\",t),uint8Array:t=>_t(Pe.uint8Array(t),\"Uint8Array\",t),uint8ClampedArray:t=>_t(Pe.uint8ClampedArray(t),\"Uint8ClampedArray\",t),int16Array:t=>_t(Pe.int16Array(t),\"Int16Array\",t),uint16Array:t=>_t(Pe.uint16Array(t),\"Uint16Array\",t),int32Array:t=>_t(Pe.int32Array(t),\"Int32Array\",t),uint32Array:t=>_t(Pe.uint32Array(t),\"Uint32Array\",t),float32Array:t=>_t(Pe.float32Array(t),\"Float32Array\",t),float64Array:t=>_t(Pe.float64Array(t),\"Float64Array\",t),bigInt64Array:t=>_t(Pe.bigInt64Array(t),\"BigInt64Array\",t),bigUint64Array:t=>_t(Pe.bigUint64Array(t),\"BigUint64Array\",t),arrayBuffer:t=>_t(Pe.arrayBuffer(t),\"ArrayBuffer\",t),sharedArrayBuffer:t=>_t(Pe.sharedArrayBuffer(t),\"SharedArrayBuffer\",t),dataView:t=>_t(Pe.dataView(t),\"DataView\",t),enumCase:(t,e)=>_t(Pe.enumCase(t,e),\"EnumCase\",t),urlInstance:t=>_t(Pe.urlInstance(t),\"URL\",t),urlString:t=>_t(Pe.urlString(t),\"string with a URL\",t),truthy:t=>_t(Pe.truthy(t),\"truthy\",t),falsy:t=>_t(Pe.falsy(t),\"falsy\",t),nan:t=>_t(Pe.nan(t),\"NaN\",t),primitive:t=>_t(Pe.primitive(t),\"primitive\",t),integer:t=>_t(Pe.integer(t),\"integer\",t),safeInteger:t=>_t(Pe.safeInteger(t),\"integer\",t),plainObject:t=>_t(Pe.plainObject(t),\"plain object\",t),typedArray:t=>_t(Pe.typedArray(t),\"TypedArray\",t),arrayLike:t=>_t(Pe.arrayLike(t),\"array-like\",t),domElement:t=>_t(Pe.domElement(t),\"HTMLElement\",t),observable:t=>_t(Pe.observable(t),\"Observable\",t),nodeStream:t=>_t(Pe.nodeStream(t),\"Node.js Stream\",t),infinite:t=>_t(Pe.infinite(t),\"infinite number\",t),emptyArray:t=>_t(Pe.emptyArray(t),\"empty array\",t),nonEmptyArray:t=>_t(Pe.nonEmptyArray(t),\"non-empty array\",t),emptyString:t=>_t(Pe.emptyString(t),\"empty string\",t),emptyStringOrWhitespace:t=>_t(Pe.emptyStringOrWhitespace(t),\"empty string or whitespace\",t),nonEmptyString:t=>_t(Pe.nonEmptyString(t),\"non-empty string\",t),nonEmptyStringAndNotWhitespace:t=>_t(Pe.nonEmptyStringAndNotWhitespace(t),\"non-empty string and not whitespace\",t),emptyObject:t=>_t(Pe.emptyObject(t),\"empty object\",t),nonEmptyObject:t=>_t(Pe.nonEmptyObject(t),\"non-empty object\",t),emptySet:t=>_t(Pe.emptySet(t),\"empty set\",t),nonEmptySet:t=>_t(Pe.nonEmptySet(t),\"non-empty set\",t),emptyMap:t=>_t(Pe.emptyMap(t),\"empty map\",t),nonEmptyMap:t=>_t(Pe.nonEmptyMap(t),\"non-empty map\",t),propertyKey:t=>_t(Pe.propertyKey(t),\"PropertyKey\",t),formData:t=>_t(Pe.formData(t),\"FormData\",t),urlSearchParams:t=>_t(Pe.urlSearchParams(t),\"URLSearchParams\",t),evenInteger:t=>_t(Pe.evenInteger(t),\"even integer\",t),oddInteger:t=>_t(Pe.oddInteger(t),\"odd integer\",t),directInstanceOf:(t,e)=>_t(Pe.directInstanceOf(t,e),\"T\",t),inRange:(t,e)=>_t(Pe.inRange(t,e),\"in range\",t),any:(t,...e)=>_t(Pe.any(t,...e),\"predicate returns truthy for any value\",e,{multipleValues:!0}),all:(t,...e)=>_t(Pe.all(t,...e),\"predicate returns truthy for all values\",e,{multipleValues:!0})};Object.defineProperties(Pe,{class:{value:Pe.class_},function:{value:Pe.function_},null:{value:Pe.null_}});Object.defineProperties(Fp.assert,{class:{value:Fp.assert.class_},function:{value:Fp.assert.function_},null:{value:Fp.assert.null_}});Fp.default=Pe;LQ.exports=Pe;LQ.exports.default=Pe;LQ.exports.assert=Fp.assert});var Pue=_((AMt,J8)=>{\"use strict\";var MQ=class extends Error{constructor(e){super(e||\"Promise was canceled\"),this.name=\"CancelError\"}get isCanceled(){return!0}},UQ=class t{static fn(e){return(...r)=>new t((s,a,n)=>{r.push(n),e(...r).then(s,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,s)=>{this._reject=s;let a=f=>{this._isPending=!1,r(f)},n=f=>{this._isPending=!1,s(f)},c=f=>{if(!this._isPending)throw new Error(\"The `onCancel` handler was attached after the promise settled.\");this._cancelHandlers.push(f)};return Object.defineProperties(c,{shouldReject:{get:()=>this._rejectOnCancel,set:f=>{this._rejectOnCancel=f}}}),e(a,n,c)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new MQ(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(UQ.prototype,Promise.prototype);J8.exports=UQ;J8.exports.CancelError=MQ});var bue=_((z8,Z8)=>{\"use strict\";Object.defineProperty(z8,\"__esModule\",{value:!0});function vet(t){return t.encrypted}var K8=(t,e)=>{let r;typeof e==\"function\"?r={connect:e}:r=e;let s=typeof r.connect==\"function\",a=typeof r.secureConnect==\"function\",n=typeof r.close==\"function\",c=()=>{s&&r.connect(),vet(t)&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once(\"secureConnect\",r.secureConnect)),n&&t.once(\"close\",r.close)};t.writable&&!t.connecting?c():t.connecting?t.once(\"connect\",c):t.destroyed&&n&&r.close(t._hadError)};z8.default=K8;Z8.exports=K8;Z8.exports.default=K8});var xue=_(($8,eH)=>{\"use strict\";Object.defineProperty($8,\"__esModule\",{value:!0});var Det=bue(),Pet=Number(process.versions.node.split(\".\")[0]),X8=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=c=>{let f=c.emit.bind(c);c.emit=(p,...h)=>(p===\"error\"&&(e.error=Date.now(),e.phases.total=e.error-e.start,c.emit=f),f(p,...h))};r(t),t.prependOnceListener(\"abort\",()=>{e.abort=Date.now(),(!e.response||Pet>=13)&&(e.phases.total=Date.now()-e.start)});let s=c=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let f=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};c.prependOnceListener(\"lookup\",f),Det.default(c,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(c.removeListener(\"lookup\",f),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?s(t.socket):t.prependOnceListener(\"socket\",s);let a=()=>{var c;e.upload=Date.now(),e.phases.request=e.upload-(c=e.secureConnect,c??e.connect)};return(typeof t.writableFinished==\"boolean\"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))?a():t.prependOnceListener(\"finish\",a),t.prependOnceListener(\"response\",c=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,c.timings=e,r(c),c.prependOnceListener(\"end\",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};$8.default=X8;eH.exports=X8;eH.exports.default=X8});var Oue=_((pMt,nH)=>{\"use strict\";var{V4MAPPED:bet,ADDRCONFIG:xet,ALL:Nue,promises:{Resolver:kue},lookup:ket}=Ie(\"dns\"),{promisify:tH}=Ie(\"util\"),Qet=Ie(\"os\"),pI=Symbol(\"cacheableLookupCreateConnection\"),rH=Symbol(\"cacheableLookupInstance\"),Que=Symbol(\"expires\"),Ret=typeof Nue==\"number\",Rue=t=>{if(!(t&&typeof t.createConnection==\"function\"))throw new Error(\"Expected an Agent instance as the first argument\")},Tet=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Tue=()=>{let t=!1,e=!1;for(let r of Object.values(Qet.networkInterfaces()))for(let s of r)if(!s.internal&&(s.family===\"IPv6\"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Fet=t=>Symbol.iterator in t,Fue={ttl:!0},Net={all:!0},_Q=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:s=3600,errorTtl:a=.15,resolver:n=new kue,lookup:c=ket}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=tH(c),this._resolver instanceof kue?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=tH(this._resolver.resolve4.bind(this._resolver)),this._resolve6=tH(this._resolver.resolve6.bind(this._resolver))),this._iface=Tue(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,s<1)this._fallback=!1;else{this._fallback=!0;let f=setInterval(()=>{this._hostnamesToFallback.clear()},s*1e3);f.unref&&f.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,s){if(typeof r==\"function\"?(s=r,r={}):typeof r==\"number\"&&(r={family:r}),!s)throw new Error(\"Callback must be a function.\");this.lookupAsync(e,r).then(a=>{r.all?s(null,a):s(null,a.address,a.family,a.expires,a.ttl)},s)}async lookupAsync(e,r={}){typeof r==\"number\"&&(r={family:r});let s=await this.query(e);if(r.family===6){let a=s.filter(n=>n.family===6);r.hints&bet&&(Ret&&r.hints&Nue||a.length===0)?Tet(s):s=a}else r.family===4&&(s=s.filter(a=>a.family===4));if(r.hints&xet){let{_iface:a}=this;s=s.filter(n=>n.family===6?a.has6:a.has4)}if(s.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code=\"ENOTFOUND\",a.hostname=e,a}return r.all?s:s[0]}async query(e){let r=await this._cache.get(e);if(!r){let s=this._pending[e];if(s)r=await s;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(s=>({...s})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code===\"ENODATA\"||E.code===\"ENOTFOUND\")return[];throw E}},[s,a]=await Promise.all([this._resolve4(e,Fue),this._resolve6(e,Fue)].map(h=>r(h))),n=0,c=0,f=0,p=Date.now();for(let h of s)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,c=Math.max(c,h.ttl);return s.length>0?a.length>0?f=Math.min(n,c):f=n:f=c,{entries:[...s,...a],cacheTtl:f}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,s){if(this.maxTtl>0&&s>0){s=Math.min(s,this.maxTtl)*1e3,r[Que]=Date.now()+s;try{await this._cache.set(e,r,s)}catch(a){this.lookupAsync=async()=>{let n=new Error(\"Cache Error. Please recreate the CacheableLookup instance.\");throw n.cause=a,n}}Fet(this._cache)&&this._tick(s)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Net);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let s=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,s),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e<r)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let s=1/0,a=Date.now();for(let[n,c]of this._cache){let f=c[Que];a>=f?this._cache.delete(n):f<s&&(s=f)}s!==1/0&&this._tick(s-a)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(Rue(e),pI in e)throw new Error(\"CacheableLookup has been already installed\");e[pI]=e.createConnection,e[rH]=this,e.createConnection=(r,s)=>(\"lookup\"in r||(r.lookup=this.lookup),e[pI](r,s))}uninstall(e){if(Rue(e),e[pI]){if(e[rH]!==this)throw new Error(\"The agent is not owned by this CacheableLookup instance\");e.createConnection=e[pI],delete e[pI],delete e[rH]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Tue(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};nH.exports=_Q;nH.exports.default=_Q});var Uue=_((hMt,iH)=>{\"use strict\";var Oet=typeof URL>\"u\"?Ie(\"url\").URL:URL,Let=\"text/plain\",Met=\"us-ascii\",Lue=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Uet=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let s=r[1].split(\";\"),a=r[2],n=e?\"\":r[3],c=!1;s[s.length-1]===\"base64\"&&(s.pop(),c=!0);let f=(s.shift()||\"\").toLowerCase(),h=[...s.map(E=>{let[C,S=\"\"]=E.split(\"=\").map(b=>b.trim());return C===\"charset\"&&(S=S.toLowerCase(),S===Met)?\"\":`${C}${S?`=${S}`:\"\"}`}).filter(Boolean)];return c&&h.push(\"base64\"),(h.length!==0||f&&f!==Let)&&h.unshift(f),`data:${h.join(\";\")},${c?a.trim():a}${n?`#${n}`:\"\"}`},Mue=(t,e)=>{if(e={defaultProtocol:\"http:\",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,\"normalizeHttps\"))throw new Error(\"options.normalizeHttps is renamed to options.forceHttp\");if(Reflect.has(e,\"normalizeHttp\"))throw new Error(\"options.normalizeHttp is renamed to options.forceHttps\");if(Reflect.has(e,\"stripFragment\"))throw new Error(\"options.stripFragment is renamed to options.stripHash\");if(t=t.trim(),/^data:/i.test(t))return Uet(t,e);let r=t.startsWith(\"//\");!r&&/^\\.*\\//.test(t)||(t=t.replace(/^(?!(?:\\w+:)?\\/\\/)|^\\/\\//,e.defaultProtocol));let a=new Oet(t);if(e.forceHttp&&e.forceHttps)throw new Error(\"The `forceHttp` and `forceHttps` options cannot be used together\");if(e.forceHttp&&a.protocol===\"https:\"&&(a.protocol=\"http:\"),e.forceHttps&&a.protocol===\"http:\"&&(a.protocol=\"https:\"),e.stripAuthentication&&(a.username=\"\",a.password=\"\"),e.stripHash&&(a.hash=\"\"),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\\/{2,}/g,(n,c)=>/^(?!\\/)/g.test(c)?`${c}/`:\"/\")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split(\"/\"),c=n[n.length-1];Lue(c,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join(\"/\")+\"/\")}if(a.hostname&&(a.hostname=a.hostname.replace(/\\.$/,\"\"),e.stripWWW&&/^www\\.([a-z\\-\\d]{2,63})\\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\\./,\"\"))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])Lue(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\\/$/,\"\")),t=a.toString(),(e.removeTrailingSlash||a.pathname===\"/\")&&a.hash===\"\"&&(t=t.replace(/\\/$/,\"\")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\\/\\//,\"//\")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\\/\\//,\"\")),t};iH.exports=Mue;iH.exports.default=Mue});var jue=_((gMt,Hue)=>{Hue.exports=_ue;function _ue(t,e){if(t&&e)return _ue(t)(e);if(typeof t!=\"function\")throw new TypeError(\"need wrapper function\");return Object.keys(t).forEach(function(s){r[s]=t[s]}),r;function r(){for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];var n=t.apply(this,s),c=s[s.length-1];return typeof n==\"function\"&&n!==c&&Object.keys(c).forEach(function(f){n[f]=c[f]}),n}}});var oH=_((dMt,sH)=>{var Gue=jue();sH.exports=Gue(HQ);sH.exports.strict=Gue(que);HQ.proto=HQ(function(){Object.defineProperty(Function.prototype,\"once\",{value:function(){return HQ(this)},configurable:!0}),Object.defineProperty(Function.prototype,\"onceStrict\",{value:function(){return que(this)},configurable:!0})});function HQ(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function que(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||\"Function wrapped with `once`\";return e.onceError=r+\" shouldn't be called more than once\",e.called=!1,e}});var aH=_((mMt,Yue)=>{var _et=oH(),Het=function(){},jet=function(t){return t.setHeader&&typeof t.abort==\"function\"},Get=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},Wue=function(t,e,r){if(typeof e==\"function\")return Wue(t,null,e);e||(e={}),r=_et(r||Het);var s=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,c=e.writable||e.writable!==!1&&t.writable,f=function(){t.writable||p()},p=function(){c=!1,n||r.call(t)},h=function(){n=!1,c||r.call(t)},E=function(I){r.call(t,I?new Error(\"exited with error code: \"+I):null)},C=function(I){r.call(t,I)},S=function(){if(n&&!(a&&a.ended))return r.call(t,new Error(\"premature close\"));if(c&&!(s&&s.ended))return r.call(t,new Error(\"premature close\"))},b=function(){t.req.on(\"finish\",p)};return jet(t)?(t.on(\"complete\",p),t.on(\"abort\",S),t.req?b():t.on(\"request\",b)):c&&!s&&(t.on(\"end\",f),t.on(\"close\",f)),Get(t)&&t.on(\"exit\",E),t.on(\"end\",h),t.on(\"finish\",p),e.error!==!1&&t.on(\"error\",C),t.on(\"close\",S),function(){t.removeListener(\"complete\",p),t.removeListener(\"abort\",S),t.removeListener(\"request\",b),t.req&&t.req.removeListener(\"finish\",p),t.removeListener(\"end\",f),t.removeListener(\"close\",f),t.removeListener(\"finish\",p),t.removeListener(\"exit\",E),t.removeListener(\"end\",h),t.removeListener(\"error\",C),t.removeListener(\"close\",S)}};Yue.exports=Wue});var Kue=_((yMt,Jue)=>{var qet=oH(),Wet=aH(),lH=Ie(\"fs\"),JB=function(){},Yet=/^v?\\.0/.test(process.version),jQ=function(t){return typeof t==\"function\"},Vet=function(t){return!Yet||!lH?!1:(t instanceof(lH.ReadStream||JB)||t instanceof(lH.WriteStream||JB))&&jQ(t.close)},Jet=function(t){return t.setHeader&&jQ(t.abort)},Ket=function(t,e,r,s){s=qet(s);var a=!1;t.on(\"close\",function(){a=!0}),Wet(t,{readable:e,writable:r},function(c){if(c)return s(c);a=!0,s()});var n=!1;return function(c){if(!a&&!n){if(n=!0,Vet(t))return t.close(JB);if(Jet(t))return t.abort();if(jQ(t.destroy))return t.destroy();s(c||new Error(\"stream was destroyed\"))}}},Vue=function(t){t()},zet=function(t,e){return t.pipe(e)},Zet=function(){var t=Array.prototype.slice.call(arguments),e=jQ(t[t.length-1]||JB)&&t.pop()||JB;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error(\"pump requires two streams per minimum\");var r,s=t.map(function(a,n){var c=n<t.length-1,f=n>0;return Ket(a,c,f,function(p){r||(r=p),p&&s.forEach(Vue),!c&&(s.forEach(Vue),e(r))})});return t.reduce(zet)};Jue.exports=Zet});var Zue=_((EMt,zue)=>{\"use strict\";var{PassThrough:Xet}=Ie(\"stream\");zue.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,s=r===\"buffer\",a=!1;e?a=!(r||s):r=r||\"utf8\",s&&(r=null);let n=new Xet({objectMode:a});r&&n.setEncoding(r);let c=0,f=[];return n.on(\"data\",p=>{f.push(p),a?c=f.length:c+=p.length}),n.getBufferedValue=()=>e?f:s?Buffer.concat(f,c):f.join(\"\"),n.getBufferedLength=()=>c,n}});var Xue=_((IMt,hI)=>{\"use strict\";var $et=Kue(),ett=Zue(),GQ=class extends Error{constructor(){super(\"maxBuffer exceeded\"),this.name=\"MaxBufferError\"}};async function qQ(t,e){if(!t)return Promise.reject(new Error(\"Expected a stream\"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,s;return await new Promise((a,n)=>{let c=f=>{f&&(f.bufferedData=s.getBufferedValue()),n(f)};s=$et(t,ett(e),f=>{if(f){c(f);return}a()}),s.on(\"data\",()=>{s.getBufferedLength()>r&&c(new GQ)})}),s.getBufferedValue()}hI.exports=qQ;hI.exports.default=qQ;hI.exports.buffer=(t,e)=>qQ(t,{...e,encoding:\"buffer\"});hI.exports.array=(t,e)=>qQ(t,{...e,array:!0});hI.exports.MaxBufferError=GQ});var efe=_((wMt,$ue)=>{\"use strict\";var ttt=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),rtt=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),ntt=new Set([500,502,503,504]),itt={date:!0,connection:!0,\"keep-alive\":!0,\"proxy-authenticate\":!0,\"proxy-authorization\":!0,te:!0,trailer:!0,\"transfer-encoding\":!0,upgrade:!0},stt={\"content-length\":!0,\"content-encoding\":!0,\"transfer-encoding\":!0,\"content-range\":!0};function nm(t){let e=parseInt(t,10);return isFinite(e)?e:0}function ott(t){return t?ntt.has(t.status):!0}function cH(t){let e={};if(!t)return e;let r=t.trim().split(/,/);for(let s of r){let[a,n]=s.split(/=/,2);e[a.trim()]=n===void 0?!0:n.trim().replace(/^\"|\"$/g,\"\")}return e}function att(t){let e=[];for(let r in t){let s=t[r];e.push(s===!0?r:r+\"=\"+s)}if(e.length)return e.join(\", \")}$ue.exports=class{constructor(e,r,{shared:s,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:c,_fromObject:f}={}){if(f){this._fromObject(f);return}if(!r||!r.headers)throw Error(\"Response headers missing\");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=s!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status=\"status\"in r?r.status:200,this._resHeaders=r.headers,this._rescc=cH(r.headers[\"cache-control\"]),this._method=\"method\"in e?e.method:\"GET\",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=cH(e.headers[\"cache-control\"]),c&&\"pre-check\"in this._rescc&&\"post-check\"in this._rescc&&(delete this._rescc[\"pre-check\"],delete this._rescc[\"post-check\"],delete this._rescc[\"no-cache\"],delete this._rescc[\"no-store\"],delete this._rescc[\"must-revalidate\"],this._resHeaders=Object.assign({},this._resHeaders,{\"cache-control\":att(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers[\"cache-control\"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc[\"no-cache\"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc[\"no-store\"]&&(this._method===\"GET\"||this._method===\"HEAD\"||this._method===\"POST\"&&this._hasExplicitExpiration())&&rtt.has(this._status)&&!this._rescc[\"no-store\"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc[\"max-age\"]||this._isShared&&this._rescc[\"s-maxage\"]||this._rescc.public||ttt.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc[\"s-maxage\"]||this._rescc[\"max-age\"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error(\"Request headers missing\")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=cH(e.headers[\"cache-control\"]);return r[\"no-cache\"]||/no-cache/.test(e.headers.pragma)||r[\"max-age\"]&&this.age()>r[\"max-age\"]||r[\"min-fresh\"]&&this.timeToLive()<1e3*r[\"min-fresh\"]||this.stale()&&!(r[\"max-stale\"]&&!this._rescc[\"must-revalidate\"]&&(r[\"max-stale\"]===!0||r[\"max-stale\"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method===\"HEAD\")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc[\"must-revalidate\"]||this._rescc.public||this._rescc[\"s-maxage\"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary===\"*\")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\\s*,\\s*/);for(let s of r)if(e.headers[s]!==this._reqHeaders[s])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let s in e)itt[s]||(r[s]=e[s]);if(e.connection){let s=e.connection.trim().split(/\\s*,\\s*/);for(let a of s)delete r[a]}if(r.warning){let s=r.warning.split(/,/).filter(a=>!/^\\s*1[0-9][0-9]/.test(a));s.length?r.warning=s.join(\",\").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:\"\")+'113 - \"rfc7234 5.5.4\"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return nm(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc[\"no-cache\"]||this._isShared&&this._resHeaders[\"set-cookie\"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary===\"*\")return 0;if(this._isShared){if(this._rescc[\"proxy-revalidate\"])return 0;if(this._rescc[\"s-maxage\"])return nm(this._rescc[\"s-maxage\"])}if(this._rescc[\"max-age\"])return nm(this._rescc[\"max-age\"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let s=Date.parse(this._resHeaders.expires);return Number.isNaN(s)||s<r?0:Math.max(e,(s-r)/1e3)}if(this._resHeaders[\"last-modified\"]){let s=Date.parse(this._resHeaders[\"last-modified\"]);if(isFinite(s)&&r>s)return Math.max(e,(r-s)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+nm(this._rescc[\"stale-if-error\"]),s=e+nm(this._rescc[\"stale-while-revalidate\"]);return Math.max(0,e,r,s)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+nm(this._rescc[\"stale-if-error\"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+nm(this._rescc[\"stale-while-revalidate\"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error(\"Reinitialized\");if(!e||e.v!==1)throw Error(\"Invalid serialization\");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r[\"if-range\"],!this._requestMatches(e,!0)||!this.storable())return delete r[\"if-none-match\"],delete r[\"if-modified-since\"],r;if(this._resHeaders.etag&&(r[\"if-none-match\"]=r[\"if-none-match\"]?`${r[\"if-none-match\"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r[\"accept-ranges\"]||r[\"if-match\"]||r[\"if-unmodified-since\"]||this._method&&this._method!=\"GET\"){if(delete r[\"if-modified-since\"],r[\"if-none-match\"]){let a=r[\"if-none-match\"].split(/,/).filter(n=>!/^\\s*W\\//.test(n));a.length?r[\"if-none-match\"]=a.join(\",\").trim():delete r[\"if-none-match\"]}}else this._resHeaders[\"last-modified\"]&&!r[\"if-modified-since\"]&&(r[\"if-modified-since\"]=this._resHeaders[\"last-modified\"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&ott(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error(\"Response headers missing\");let s=!1;if(r.status!==void 0&&r.status!=304?s=!1:r.headers.etag&&!/^\\s*W\\//.test(r.headers.etag)?s=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\\s*W\\//,\"\")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?s=this._resHeaders.etag.replace(/^\\s*W\\//,\"\")===r.headers.etag.replace(/^\\s*W\\//,\"\"):this._resHeaders[\"last-modified\"]?s=this._resHeaders[\"last-modified\"]===r.headers[\"last-modified\"]:!this._resHeaders.etag&&!this._resHeaders[\"last-modified\"]&&!r.headers.etag&&!r.headers[\"last-modified\"]&&(s=!0),!s)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let c in this._resHeaders)a[c]=c in r.headers&&!stt[c]?r.headers[c]:this._resHeaders[c];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var WQ=_((BMt,tfe)=>{\"use strict\";tfe.exports=t=>{let e={};for(let[r,s]of Object.entries(t))e[r.toLowerCase()]=s;return e}});var nfe=_((vMt,rfe)=>{\"use strict\";var ltt=Ie(\"stream\").Readable,ctt=WQ(),uH=class extends ltt{constructor(e,r,s,a){if(typeof e!=\"number\")throw new TypeError(\"Argument `statusCode` should be a number\");if(typeof r!=\"object\")throw new TypeError(\"Argument `headers` should be an object\");if(!(s instanceof Buffer))throw new TypeError(\"Argument `body` should be a buffer\");if(typeof a!=\"string\")throw new TypeError(\"Argument `url` should be a string\");super(),this.statusCode=e,this.headers=ctt(r),this.body=s,this.url=a}_read(){this.push(this.body),this.push(null)}};rfe.exports=uH});var sfe=_((SMt,ife)=>{\"use strict\";var utt=[\"destroy\",\"setTimeout\",\"socket\",\"headers\",\"trailers\",\"rawHeaders\",\"statusCode\",\"httpVersion\",\"httpVersionMinor\",\"httpVersionMajor\",\"rawTrailers\",\"statusMessage\"];ife.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(utt));for(let s of r)s in e||(e[s]=typeof t[s]==\"function\"?t[s].bind(t):t[s])}});var afe=_((DMt,ofe)=>{\"use strict\";var ftt=Ie(\"stream\").PassThrough,Att=sfe(),ptt=t=>{if(!(t&&t.pipe))throw new TypeError(\"Parameter `response` must be a response stream.\");let e=new ftt;return Att(t,e),t.pipe(e)};ofe.exports=ptt});var lfe=_(fH=>{fH.stringify=function t(e){if(typeof e>\"u\")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(\":base64:\"+e.toString(\"base64\"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e==\"object\"){var r=\"\",s=Array.isArray(e);r=s?\"[\":\"{\";var a=!0;for(var n in e){var c=typeof e[n]==\"function\"||!s&&typeof e[n]>\"u\";Object.hasOwnProperty.call(e,n)&&!c&&(a||(r+=\",\"),a=!1,s?e[n]==null?r+=\"null\":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+\":\"+t(e[n])))}return r+=s?\"]\":\"}\",r}else return typeof e==\"string\"?JSON.stringify(/^:/.test(e)?\":\"+e:e):typeof e>\"u\"?\"null\":JSON.stringify(e)};fH.parse=function(t){return JSON.parse(t,function(e,r){return typeof r==\"string\"?/^:base64:/.test(r)?Buffer.from(r.substring(8),\"base64\"):/^:/.test(r)?r.substring(1):r:r})}});var Afe=_((bMt,ffe)=>{\"use strict\";var htt=Ie(\"events\"),cfe=lfe(),gtt=t=>{let e={redis:\"@keyv/redis\",rediss:\"@keyv/redis\",mongodb:\"@keyv/mongo\",mongo:\"@keyv/mongo\",sqlite:\"@keyv/sqlite\",postgresql:\"@keyv/postgres\",postgres:\"@keyv/postgres\",mysql:\"@keyv/mysql\",etcd:\"@keyv/etcd\",offline:\"@keyv/offline\",tiered:\"@keyv/tiered\"};if(t.adapter||t.uri){let r=t.adapter||/^[^:+]*/.exec(t.uri)[0];return new(Ie(e[r]))(t)}return new Map},ufe=[\"sqlite\",\"postgres\",\"mysql\",\"mongo\",\"redis\",\"tiered\"],AH=class extends htt{constructor(e,{emitErrors:r=!0,...s}={}){if(super(),this.opts={namespace:\"keyv\",serialize:cfe.stringify,deserialize:cfe.parse,...typeof e==\"string\"?{uri:e}:e,...s},!this.opts.store){let n={...this.opts};this.opts.store=gtt(n)}if(this.opts.compression){let n=this.opts.compression;this.opts.serialize=n.serialize.bind(n),this.opts.deserialize=n.deserialize.bind(n)}typeof this.opts.store.on==\"function\"&&r&&this.opts.store.on(\"error\",n=>this.emit(\"error\",n)),this.opts.store.namespace=this.opts.namespace;let a=n=>async function*(){for await(let[c,f]of typeof n==\"function\"?n(this.opts.store.namespace):n){let p=await this.opts.deserialize(f);if(!(this.opts.store.namespace&&!c.includes(this.opts.store.namespace))){if(typeof p.expires==\"number\"&&Date.now()>p.expires){this.delete(c);continue}yield[this._getKeyUnprefix(c),p.value]}}};typeof this.opts.store[Symbol.iterator]==\"function\"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator==\"function\"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return ufe.includes(this.opts.store.opts.dialect)||ufe.findIndex(e=>this.opts.store.opts.url.includes(e))>=0}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}_getKeyPrefixArray(e){return e.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(e){return e.split(\":\").splice(1).join(\":\")}get(e,r){let{store:s}=this.opts,a=Array.isArray(e),n=a?this._getKeyPrefixArray(e):this._getKeyPrefix(e);if(a&&s.getMany===void 0){let c=[];for(let f of n)c.push(Promise.resolve().then(()=>s.get(f)).then(p=>typeof p==\"string\"?this.opts.deserialize(p):this.opts.compression?this.opts.deserialize(p):p).then(p=>{if(p!=null)return typeof p.expires==\"number\"&&Date.now()>p.expires?this.delete(f).then(()=>{}):r&&r.raw?p:p.value}));return Promise.allSettled(c).then(f=>{let p=[];for(let h of f)p.push(h.value);return p})}return Promise.resolve().then(()=>a?s.getMany(n):s.get(n)).then(c=>typeof c==\"string\"?this.opts.deserialize(c):this.opts.compression?this.opts.deserialize(c):c).then(c=>{if(c!=null)return a?c.map((f,p)=>{if(typeof f==\"string\"&&(f=this.opts.deserialize(f)),f!=null){if(typeof f.expires==\"number\"&&Date.now()>f.expires){this.delete(e[p]).then(()=>{});return}return r&&r.raw?f:f.value}}):typeof c.expires==\"number\"&&Date.now()>c.expires?this.delete(e).then(()=>{}):r&&r.raw?c:c.value})}set(e,r,s){let a=this._getKeyPrefix(e);typeof s>\"u\"&&(s=this.opts.ttl),s===0&&(s=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let c=typeof s==\"number\"?Date.now()+s:null;return typeof r==\"symbol\"&&this.emit(\"error\",\"symbol cannot be serialized\"),r={value:r,expires:c},this.opts.serialize(r)}).then(c=>n.set(a,c,s)).then(()=>!0)}delete(e){let{store:r}=this.opts;if(Array.isArray(e)){let a=this._getKeyPrefixArray(e);if(r.deleteMany===void 0){let n=[];for(let c of a)n.push(r.delete(c));return Promise.allSettled(n).then(c=>c.every(f=>f.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let s=this._getKeyPrefix(e);return Promise.resolve().then(()=>r.delete(s))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}has(e){let r=this._getKeyPrefix(e),{store:s}=this.opts;return Promise.resolve().then(async()=>typeof s.has==\"function\"?s.has(r):await s.get(r)!==void 0)}disconnect(){let{store:e}=this.opts;if(typeof e.disconnect==\"function\")return e.disconnect()}};ffe.exports=AH});var gfe=_((kMt,hfe)=>{\"use strict\";var dtt=Ie(\"events\"),YQ=Ie(\"url\"),mtt=Uue(),ytt=Xue(),pH=efe(),pfe=nfe(),Ett=WQ(),Itt=afe(),Ctt=Afe(),KB=class t{constructor(e,r){if(typeof e!=\"function\")throw new TypeError(\"Parameter `request` must be a function\");return this.cache=new Ctt({uri:typeof r==\"string\"&&r,store:typeof r!=\"string\"&&r,namespace:\"cacheable-request\"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,s)=>{let a;if(typeof r==\"string\")a=hH(YQ.parse(r)),r={};else if(r instanceof YQ.URL)a=hH(YQ.parse(r.toString())),r={};else{let[C,...S]=(r.path||\"\").split(\"?\"),b=S.length>0?`?${S.join(\"?\")}`:\"\";a=hH({...r,pathname:C,search:b})}r={headers:{},method:\"GET\",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...wtt(a)},r.headers=Ett(r.headers);let n=new dtt,c=mtt(YQ.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),f=`${r.method}:${c}`,p=!1,h=!1,E=C=>{h=!0;let S=!1,b,I=new Promise(N=>{b=()=>{S||(S=!0,N())}}),T=N=>{if(p&&!C.forceRefresh){N.status=N.statusCode;let W=pH.fromObject(p.cachePolicy).revalidatedPolicy(C,N);if(!W.modified){let ee=W.policy.responseHeaders();N=new pfe(p.statusCode,ee,p.body,p.url),N.cachePolicy=W.policy,N.fromCache=!0}}N.fromCache||(N.cachePolicy=new pH(C,N,C),N.fromCache=!1);let U;C.cache&&N.cachePolicy.storable()?(U=Itt(N),(async()=>{try{let W=ytt.buffer(N);if(await Promise.race([I,new Promise(le=>N.once(\"end\",le))]),S)return;let ee=await W,ie={cachePolicy:N.cachePolicy.toObject(),url:N.url,statusCode:N.fromCache?p.statusCode:N.statusCode,body:ee},ue=C.strictTtl?N.cachePolicy.timeToLive():void 0;C.maxTtl&&(ue=ue?Math.min(ue,C.maxTtl):C.maxTtl),await this.cache.set(f,ie,ue)}catch(W){n.emit(\"error\",new t.CacheError(W))}})()):C.cache&&p&&(async()=>{try{await this.cache.delete(f)}catch(W){n.emit(\"error\",new t.CacheError(W))}})(),n.emit(\"response\",U||N),typeof s==\"function\"&&s(U||N)};try{let N=e(C,T);N.once(\"error\",b),N.once(\"abort\",b),n.emit(\"request\",N)}catch(N){n.emit(\"error\",new t.RequestError(N))}};return(async()=>{let C=async b=>{await Promise.resolve();let I=b.cache?await this.cache.get(f):void 0;if(typeof I>\"u\")return E(b);let T=pH.fromObject(I.cachePolicy);if(T.satisfiesWithoutRevalidation(b)&&!b.forceRefresh){let N=T.responseHeaders(),U=new pfe(I.statusCode,N,I.body,I.url);U.cachePolicy=T,U.fromCache=!0,n.emit(\"response\",U),typeof s==\"function\"&&s(U)}else p=I,b.headers=T.revalidationHeaders(b),E(b)},S=b=>n.emit(\"error\",new t.CacheError(b));this.cache.once(\"error\",S),n.on(\"response\",()=>this.cache.removeListener(\"error\",S));try{await C(r)}catch(b){r.automaticFailover&&!h&&E(r),n.emit(\"error\",new t.CacheError(b))}})(),n}}};function wtt(t){let e={...t};return e.path=`${t.pathname||\"/\"}${t.search||\"\"}`,delete e.pathname,delete e.search,e}function hH(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||\"localhost\",port:t.port,pathname:t.pathname,search:t.search}}KB.RequestError=class extends Error{constructor(t){super(t.message),this.name=\"RequestError\",Object.assign(this,t)}};KB.CacheError=class extends Error{constructor(t){super(t.message),this.name=\"CacheError\",Object.assign(this,t)}};hfe.exports=KB});var mfe=_((TMt,dfe)=>{\"use strict\";var Btt=[\"aborted\",\"complete\",\"headers\",\"httpVersion\",\"httpVersionMinor\",\"httpVersionMajor\",\"method\",\"rawHeaders\",\"rawTrailers\",\"setTimeout\",\"socket\",\"statusCode\",\"statusMessage\",\"trailers\",\"url\"];dfe.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error(\"The second stream must have the `autoDestroy` option set to `false`\");let r=new Set(Object.keys(t).concat(Btt)),s={};for(let a of r)a in e||(s[a]={get(){let n=t[a];return typeof n==\"function\"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,s),t.once(\"aborted\",()=>{e.destroy(),e.emit(\"aborted\")}),t.once(\"close\",()=>{t.complete&&e.readable?e.once(\"end\",()=>{e.emit(\"close\")}):e.emit(\"close\")}),e}});var Efe=_((FMt,yfe)=>{\"use strict\";var{Transform:vtt,PassThrough:Stt}=Ie(\"stream\"),gH=Ie(\"zlib\"),Dtt=mfe();yfe.exports=t=>{let e=(t.headers[\"content-encoding\"]||\"\").toLowerCase();if(![\"gzip\",\"deflate\",\"br\"].includes(e))return t;let r=e===\"br\";if(r&&typeof gH.createBrotliDecompress!=\"function\")return t.destroy(new Error(\"Brotli is not supported on Node.js < 12\")),t;let s=!0,a=new vtt({transform(f,p,h){s=!1,h(null,f)},flush(f){f()}}),n=new Stt({autoDestroy:!1,destroy(f,p){t.destroy(),p(f)}}),c=r?gH.createBrotliDecompress():gH.createUnzip();return c.once(\"error\",f=>{if(s&&!t.readable){n.end();return}n.destroy(f)}),Dtt(t,n),t.pipe(a).pipe(c).pipe(n),n}});var mH=_((NMt,Ife)=>{\"use strict\";var dH=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError(\"`maxSize` must be a number greater than 0\");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction==\"function\")for(let[s,a]of this.oldCache.entries())this.onEviction(s,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};Ife.exports=dH});var EH=_((OMt,vfe)=>{\"use strict\";var Ptt=Ie(\"events\"),btt=Ie(\"tls\"),xtt=Ie(\"http2\"),ktt=mH(),ba=Symbol(\"currentStreamsCount\"),Cfe=Symbol(\"request\"),Tc=Symbol(\"cachedOriginSet\"),gI=Symbol(\"gracefullyClosing\"),Qtt=[\"maxDeflateDynamicTableSize\",\"maxSessionMemory\",\"maxHeaderListPairs\",\"maxOutstandingPings\",\"maxReservedRemoteStreams\",\"maxSendHeaderBlockLength\",\"paddingStrategy\",\"localAddress\",\"path\",\"rejectUnauthorized\",\"minDHSize\",\"ca\",\"cert\",\"clientCertEngine\",\"ciphers\",\"key\",\"pfx\",\"servername\",\"minVersion\",\"maxVersion\",\"secureProtocol\",\"crl\",\"honorCipherOrder\",\"ecdhCurve\",\"dhparam\",\"secureOptions\",\"sessionIdContext\"],Rtt=(t,e,r)=>{let s=0,a=t.length;for(;s<a;){let n=s+a>>>1;r(t[n],e)?s=n+1:a=n}return s},Ttt=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,yH=(t,e)=>{for(let r of t)r[Tc].length<e[Tc].length&&r[Tc].every(s=>e[Tc].includes(s))&&r[ba]+e[ba]<=e.remoteSettings.maxConcurrentStreams&&Bfe(r)},Ftt=(t,e)=>{for(let r of t)e[Tc].length<r[Tc].length&&e[Tc].every(s=>r[Tc].includes(s))&&e[ba]+r[ba]<=r.remoteSettings.maxConcurrentStreams&&Bfe(e)},wfe=({agent:t,isFree:e})=>{let r={};for(let s in t.sessions){let n=t.sessions[s].filter(c=>{let f=c[im.kCurrentStreamsCount]<c.remoteSettings.maxConcurrentStreams;return e?f:!f});n.length!==0&&(r[s]=n)}return r},Bfe=t=>{t[gI]=!0,t[ba]===0&&t.close()},im=class t extends Ptt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:s=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=s,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new ktt({maxSize:a})}static normalizeOrigin(e,r){return typeof e==\"string\"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r=\"\";if(e)for(let s of Qtt)e[s]&&(r+=`:${e[s]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let s=this.queue[e][r];this._sessionsCount<this.maxSessions&&!s.completed&&(s.completed=!0,s())}getSession(e,r,s){return new Promise((a,n)=>{Array.isArray(s)?(s=[...s],a()):s=[{resolve:a,reject:n}];let c=this.normalizeOptions(r),f=t.normalizeOrigin(e,r&&r.servername);if(f===void 0){for(let{reject:E}of s)E(new TypeError(\"The `origin` argument needs to be a string or an URL object\"));return}if(c in this.sessions){let E=this.sessions[c],C=-1,S=-1,b;for(let I of E){let T=I.remoteSettings.maxConcurrentStreams;if(T<C)break;if(I[Tc].includes(f)){let N=I[ba];if(N>=T||I[gI]||I.destroyed)continue;b||(C=T),N>S&&(b=I,S=N)}}if(b){if(s.length!==1){for(let{reject:I}of s){let T=new Error(`Expected the length of listeners to be 1, got ${s.length}.\nPlease report this to https://github.com/szmarczak/http2-wrapper/`);I(T)}return}s[0].resolve(b);return}}if(c in this.queue){if(f in this.queue[c]){this.queue[c][f].listeners.push(...s),this._tryToCreateNewSession(c,f);return}}else this.queue[c]={};let p=()=>{c in this.queue&&this.queue[c][f]===h&&(delete this.queue[c][f],Object.keys(this.queue[c]).length===0&&delete this.queue[c])},h=()=>{let E=`${f}:${c}`,C=!1;try{let S=xtt.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});S[ba]=0,S[gI]=!1;let b=()=>S[ba]<S.remoteSettings.maxConcurrentStreams,I=!0;S.socket.once(\"session\",N=>{this.tlsSessionCache.set(E,N)}),S.once(\"error\",N=>{for(let{reject:U}of s)U(N);this.tlsSessionCache.delete(E)}),S.setTimeout(this.timeout,()=>{S.destroy()}),S.once(\"close\",()=>{if(C){I&&this._freeSessionsCount--,this._sessionsCount--;let N=this.sessions[c];N.splice(N.indexOf(S),1),N.length===0&&delete this.sessions[c]}else{let N=new Error(\"Session closed without receiving a SETTINGS frame\");N.code=\"HTTP2WRAPPER_NOSETTINGS\";for(let{reject:U}of s)U(N);p()}this._tryToCreateNewSession(c,f)});let T=()=>{if(!(!(c in this.queue)||!b())){for(let N of S[Tc])if(N in this.queue[c]){let{listeners:U}=this.queue[c][N];for(;U.length!==0&&b();)U.shift().resolve(S);let W=this.queue[c];if(W[N].listeners.length===0&&(delete W[N],Object.keys(W).length===0)){delete this.queue[c];break}if(!b())break}}};S.on(\"origin\",()=>{S[Tc]=S.originSet,b()&&(T(),yH(this.sessions[c],S))}),S.once(\"remoteSettings\",()=>{if(S.ref(),S.unref(),this._sessionsCount++,h.destroyed){let N=new Error(\"Agent has been destroyed\");for(let U of s)U.reject(N);S.destroy();return}S[Tc]=S.originSet;{let N=this.sessions;if(c in N){let U=N[c];U.splice(Rtt(U,S,Ttt),0,S)}else N[c]=[S]}this._freeSessionsCount+=1,C=!0,this.emit(\"session\",S),T(),p(),S[ba]===0&&this._freeSessionsCount>this.maxFreeSessions&&S.close(),s.length!==0&&(this.getSession(f,r,s),s.length=0),S.on(\"remoteSettings\",()=>{T(),yH(this.sessions[c],S)})}),S[Cfe]=S.request,S.request=(N,U)=>{if(S[gI])throw new Error(\"The session is gracefully closing. No new streams are allowed.\");let W=S[Cfe](N,U);return S.ref(),++S[ba],S[ba]===S.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,W.once(\"close\",()=>{if(I=b(),--S[ba],!S.destroyed&&!S.closed&&(Ftt(this.sessions[c],S),b()&&!S.closed)){I||(this._freeSessionsCount++,I=!0);let ee=S[ba]===0;ee&&S.unref(),ee&&(this._freeSessionsCount>this.maxFreeSessions||S[gI])?S.close():(yH(this.sessions[c],S),T())}}),W}}catch(S){for(let b of s)b.reject(S);p()}};h.listeners=s,h.completed=!1,h.destroyed=!1,this.queue[c][f]=h,this._tryToCreateNewSession(c,f)})}request(e,r,s,a){return new Promise((n,c)=>{this.getSession(e,r,[{reject:c,resolve:f=>{try{n(f.request(s,a))}catch(p){c(p)}}}])})}createConnection(e,r){return t.connect(e,r)}static connect(e,r){r.ALPNProtocols=[\"h2\"];let s=e.port||443,a=e.hostname||e.host;return typeof r.servername>\"u\"&&(r.servername=a),btt.connect(s,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[ba]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let s of r)s.destroy(e);for(let r of Object.values(this.queue))for(let s of Object.values(r))s.destroyed=!0;this.queue={}}get freeSessions(){return wfe({agent:this,isFree:!0})}get busySessions(){return wfe({agent:this,isFree:!1})}};im.kCurrentStreamsCount=ba;im.kGracefullyClosing=gI;vfe.exports={Agent:im,globalAgent:new im}});var CH=_((LMt,Sfe)=>{\"use strict\";var{Readable:Ntt}=Ie(\"stream\"),IH=class extends Ntt{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage=\"\",this.httpVersion=\"2.0\",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners(\"data\"),this.resume())}_read(){this.req&&this.req._request.resume()}};Sfe.exports=IH});var wH=_((MMt,Dfe)=>{\"use strict\";Dfe.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname==\"string\"&&t.hostname.startsWith(\"[\")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||\"\"}${t.search||\"\"}`};return typeof t.port==\"string\"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||\"\"}:${t.password||\"\"}`),e}});var bfe=_((UMt,Pfe)=>{\"use strict\";Pfe.exports=(t,e,r)=>{for(let s of r)t.on(s,(...a)=>e.emit(s,...a))}});var kfe=_((_Mt,xfe)=>{\"use strict\";xfe.exports=t=>{switch(t){case\":method\":case\":scheme\":case\":authority\":case\":path\":return!0;default:return!1}}});var Rfe=_((jMt,Qfe)=>{\"use strict\";var dI=(t,e,r)=>{Qfe.exports[e]=class extends t{constructor(...a){super(typeof r==\"string\"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};dI(TypeError,\"ERR_INVALID_ARG_TYPE\",t=>{let e=t[0].includes(\".\")?\"property\":\"argument\",r=t[1],s=Array.isArray(r);return s&&(r=`${r.slice(0,-1).join(\", \")} or ${r.slice(-1)}`),`The \"${t[0]}\" ${e} must be ${s?\"one of\":\"of\"} type ${r}. Received ${typeof t[2]}`});dI(TypeError,\"ERR_INVALID_PROTOCOL\",t=>`Protocol \"${t[0]}\" not supported. Expected \"${t[1]}\"`);dI(Error,\"ERR_HTTP_HEADERS_SENT\",t=>`Cannot ${t[0]} headers after they are sent to the client`);dI(TypeError,\"ERR_INVALID_HTTP_TOKEN\",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);dI(TypeError,\"ERR_HTTP_INVALID_HEADER_VALUE\",t=>`Invalid value \"${t[0]} for header \"${t[1]}\"`);dI(TypeError,\"ERR_INVALID_CHAR\",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var PH=_((GMt,Ufe)=>{\"use strict\";var Ott=Ie(\"http2\"),{Writable:Ltt}=Ie(\"stream\"),{Agent:Tfe,globalAgent:Mtt}=EH(),Utt=CH(),_tt=wH(),Htt=bfe(),jtt=kfe(),{ERR_INVALID_ARG_TYPE:BH,ERR_INVALID_PROTOCOL:Gtt,ERR_HTTP_HEADERS_SENT:Ffe,ERR_INVALID_HTTP_TOKEN:qtt,ERR_HTTP_INVALID_HEADER_VALUE:Wtt,ERR_INVALID_CHAR:Ytt}=Rfe(),{HTTP2_HEADER_STATUS:Nfe,HTTP2_HEADER_METHOD:Ofe,HTTP2_HEADER_PATH:Lfe,HTTP2_METHOD_CONNECT:Vtt}=Ott.constants,Jo=Symbol(\"headers\"),vH=Symbol(\"origin\"),SH=Symbol(\"session\"),Mfe=Symbol(\"options\"),VQ=Symbol(\"flushedHeaders\"),zB=Symbol(\"jobs\"),Jtt=/^[\\^`\\-\\w!#$%&*+.|~]+$/,Ktt=/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/,DH=class extends Ltt{constructor(e,r,s){super({autoDestroy:!1});let a=typeof e==\"string\"||e instanceof URL;if(a&&(e=_tt(e instanceof URL?e:new URL(e))),typeof r==\"function\"||r===void 0?(s=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[SH]=r.h2session;else if(r.agent===!1)this.agent=new Tfe({maxFreeSessions:0});else if(typeof r.agent>\"u\"||r.agent===null)typeof r.createConnection==\"function\"?(this.agent=new Tfe({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=Mtt;else if(typeof r.agent.request==\"function\")this.agent=r.agent;else throw new BH(\"options.agent\",[\"Agent-like Object\",\"undefined\",\"false\"],r.agent);if(r.protocol&&r.protocol!==\"https:\")throw new Gtt(r.protocol,\"https:\");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,c=r.hostname||r.host||\"localhost\";delete r.hostname,delete r.host,delete r.port;let{timeout:f}=r;if(r.timeout=void 0,this[Jo]=Object.create(null),this[zB]=[],this.socket=null,this.connection=null,this.method=r.method||\"GET\",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!(\"authorization\"in this[Jo])&&(this[Jo].authorization=\"Basic \"+Buffer.from(r.auth).toString(\"base64\")),r.session=r.tlsSession,r.path=r.socketPath,this[Mfe]=r,n===443?(this[vH]=`https://${c}`,\":authority\"in this[Jo]||(this[Jo][\":authority\"]=c)):(this[vH]=`https://${c}:${n}`,\":authority\"in this[Jo]||(this[Jo][\":authority\"]=`${c}:${n}`)),f&&this.setTimeout(f),s&&this.once(\"response\",s),this[VQ]=!1}get method(){return this[Jo][Ofe]}set method(e){e&&(this[Jo][Ofe]=e.toUpperCase())}get path(){return this[Jo][Lfe]}set path(e){e&&(this[Jo][Lfe]=e)}get _mustNotHaveABody(){return this.method===\"GET\"||this.method===\"HEAD\"||this.method===\"DELETE\"}_write(e,r,s){if(this._mustNotHaveABody){s(new Error(\"The GET, HEAD and DELETE methods must NOT have a body\"));return}this.flushHeaders();let a=()=>this._request.write(e,r,s);this._request?a():this[zB].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[zB].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit(\"abort\")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[VQ]||this.destroyed)return;this[VQ]=!0;let e=this.method===Vtt,r=s=>{if(this._request=s,this.destroyed){s.destroy();return}e||Htt(s,this,[\"timeout\",\"continue\",\"close\",\"error\"]);let a=c=>(...f)=>{!this.writable&&!this.destroyed?c(...f):this.once(\"finish\",()=>{c(...f)})};s.once(\"response\",a((c,f,p)=>{let h=new Utt(this.socket,s.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=c[Nfe],h.headers=c,h.rawHeaders=p,h.once(\"end\",()=>{this.aborted?(h.aborted=!0,h.emit(\"aborted\")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit(\"connect\",h,s,Buffer.alloc(0))?this.emit(\"close\"):s.destroy()):(s.on(\"data\",E=>{!h._dumped&&!h.push(E)&&s.pause()}),s.once(\"end\",()=>{h.push(null)}),this.emit(\"response\",h)||h._dump())})),s.once(\"headers\",a(c=>this.emit(\"information\",{statusCode:c[Nfe]}))),s.once(\"trailers\",a((c,f,p)=>{let{res:h}=this;h.trailers=c,h.rawTrailers=p}));let{socket:n}=s.session;this.socket=n,this.connection=n;for(let c of this[zB])c();this.emit(\"socket\",this.socket)};if(this[SH])try{r(this[SH].request(this[Jo]))}catch(s){this.emit(\"error\",s)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[vH],this[Mfe],this[Jo]))}catch(s){this.emit(\"error\",s)}}}getHeader(e){if(typeof e!=\"string\")throw new BH(\"name\",\"string\",e);return this[Jo][e.toLowerCase()]}get headersSent(){return this[VQ]}removeHeader(e){if(typeof e!=\"string\")throw new BH(\"name\",\"string\",e);if(this.headersSent)throw new Ffe(\"remove\");delete this[Jo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new Ffe(\"set\");if(typeof e!=\"string\"||!Jtt.test(e)&&!jtt(e))throw new qtt(\"Header name\",e);if(typeof r>\"u\")throw new Wtt(r,e);if(Ktt.test(r))throw new Ytt(\"header content\",e);this[Jo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let s=()=>this._request.setTimeout(e,r);return this._request?s():this[zB].push(s),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};Ufe.exports=DH});var Hfe=_((qMt,_fe)=>{\"use strict\";var ztt=Ie(\"tls\");_fe.exports=(t={},e=ztt.connect)=>new Promise((r,s)=>{let a=!1,n,c=async()=>{await p,n.off(\"timeout\",f),n.off(\"error\",s),t.resolveSocket?(r({alpnProtocol:n.alpnProtocol,socket:n,timeout:a}),a&&(await Promise.resolve(),n.emit(\"timeout\"))):(n.destroy(),r({alpnProtocol:n.alpnProtocol,timeout:a}))},f=async()=>{a=!0,c()},p=(async()=>{try{n=await e(t,c),n.on(\"error\",s),n.once(\"timeout\",f)}catch(h){s(h)}})()})});var Gfe=_((WMt,jfe)=>{\"use strict\";var Ztt=Ie(\"net\");jfe.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith(\"[\")?r.indexOf(\"]\")===-1?e=r:e=r.slice(1,-1):e=r.split(\":\",1)[0]),Ztt.isIP(e)?\"\":e}});var Yfe=_((YMt,xH)=>{\"use strict\";var qfe=Ie(\"http\"),bH=Ie(\"https\"),Xtt=Hfe(),$tt=mH(),ert=PH(),trt=Gfe(),rrt=wH(),JQ=new $tt({maxSize:100}),ZB=new Map,Wfe=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let s=()=>{t.emit(\"free\",e,r)};e.on(\"free\",s);let a=()=>{t.removeSocket(e,r)};e.on(\"close\",a);let n=()=>{t.removeSocket(e,r),e.off(\"close\",a),e.off(\"free\",s),e.off(\"agentRemove\",n)};e.on(\"agentRemove\",n),t.emit(\"free\",e,r)},nrt=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!JQ.has(e)){if(ZB.has(e))return(await ZB.get(e)).alpnProtocol;let{path:r,agent:s}=t;t.path=t.socketPath;let a=Xtt(t);ZB.set(e,a);try{let{socket:n,alpnProtocol:c}=await a;if(JQ.set(e,c),t.path=r,c===\"h2\")n.destroy();else{let{globalAgent:f}=bH,p=bH.Agent.prototype.createConnection;s?s.createConnection===p?Wfe(s,n,t):n.destroy():f.createConnection===p?Wfe(f,n,t):n.destroy()}return ZB.delete(e),c}catch(n){throw ZB.delete(e),n}}return JQ.get(e)};xH.exports=async(t,e,r)=>{if((typeof t==\"string\"||t instanceof URL)&&(t=rrt(new URL(t))),typeof e==\"function\"&&(r=e,e=void 0),e={ALPNProtocols:[\"h2\",\"http/1.1\"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error(\"The `ALPNProtocols` option must be an Array with at least one entry\");e.protocol=e.protocol||\"https:\";let s=e.protocol===\"https:\";e.host=e.hostname||e.host||\"localhost\",e.session=e.tlsSession,e.servername=e.servername||trt(e),e.port=e.port||(s?443:80),e._defaultAgent=s?bH.globalAgent:qfe.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error(\"The `options.agent` object can contain only `http`, `https` or `http2` properties\");e.agent=a[s?\"https\":\"http\"]}return s&&await nrt(e)===\"h2\"?(a&&(e.agent=a.http2),new ert(e,r)):qfe.request(e,r)};xH.exports.protocolCache=JQ});var Jfe=_((VMt,Vfe)=>{\"use strict\";var irt=Ie(\"http2\"),srt=EH(),kH=PH(),ort=CH(),art=Yfe(),lrt=(t,e,r)=>new kH(t,e,r),crt=(t,e,r)=>{let s=new kH(t,e,r);return s.end(),s};Vfe.exports={...irt,ClientRequest:kH,IncomingMessage:ort,...srt,request:lrt,get:crt,auto:art}});var RH=_(QH=>{\"use strict\";Object.defineProperty(QH,\"__esModule\",{value:!0});var Kfe=Np();QH.default=t=>Kfe.default.nodeStream(t)&&Kfe.default.function_(t.getBoundary)});var $fe=_(TH=>{\"use strict\";Object.defineProperty(TH,\"__esModule\",{value:!0});var Zfe=Ie(\"fs\"),Xfe=Ie(\"util\"),zfe=Np(),urt=RH(),frt=Xfe.promisify(Zfe.stat);TH.default=async(t,e)=>{if(e&&\"content-length\"in e)return Number(e[\"content-length\"]);if(!t)return 0;if(zfe.default.string(t))return Buffer.byteLength(t);if(zfe.default.buffer(t))return t.length;if(urt.default(t))return Xfe.promisify(t.getLength.bind(t))();if(t instanceof Zfe.ReadStream){let{size:r}=await frt(t.path);return r===0?void 0:r}}});var NH=_(FH=>{\"use strict\";Object.defineProperty(FH,\"__esModule\",{value:!0});function Art(t,e,r){let s={};for(let a of r)s[a]=(...n)=>{e.emit(a,...n)},t.on(a,s[a]);return()=>{for(let a of r)t.off(a,s[a])}}FH.default=Art});var eAe=_(OH=>{\"use strict\";Object.defineProperty(OH,\"__esModule\",{value:!0});OH.default=()=>{let t=[];return{once(e,r,s){e.once(r,s),t.push({origin:e,event:r,fn:s})},unhandleAll(){for(let e of t){let{origin:r,event:s,fn:a}=e;r.removeListener(s,a)}t.length=0}}}});var rAe=_(XB=>{\"use strict\";Object.defineProperty(XB,\"__esModule\",{value:!0});XB.TimeoutError=void 0;var prt=Ie(\"net\"),hrt=eAe(),tAe=Symbol(\"reentry\"),grt=()=>{},KQ=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name=\"TimeoutError\",this.code=\"ETIMEDOUT\"}};XB.TimeoutError=KQ;XB.default=(t,e,r)=>{if(tAe in t)return grt;t[tAe]=!0;let s=[],{once:a,unhandleAll:n}=hrt.default(),c=(C,S,b)=>{var I;let T=setTimeout(S,C,C,b);(I=T.unref)===null||I===void 0||I.call(T);let N=()=>{clearTimeout(T)};return s.push(N),N},{host:f,hostname:p}=r,h=(C,S)=>{t.destroy(new KQ(C,S))},E=()=>{for(let C of s)C();n()};if(t.once(\"error\",C=>{if(E(),t.listenerCount(\"error\")===0)throw C}),t.once(\"close\",E),a(t,\"response\",C=>{a(C,\"end\",E)}),typeof e.request<\"u\"&&c(e.request,h,\"request\"),typeof e.socket<\"u\"){let C=()=>{h(e.socket,\"socket\")};t.setTimeout(e.socket,C),s.push(()=>{t.removeListener(\"timeout\",C)})}return a(t,\"socket\",C=>{var S;let{socketPath:b}=t;if(C.connecting){let I=!!(b??prt.isIP((S=p??f)!==null&&S!==void 0?S:\"\")!==0);if(typeof e.lookup<\"u\"&&!I&&typeof C.address().address>\"u\"){let T=c(e.lookup,h,\"lookup\");a(C,\"lookup\",T)}if(typeof e.connect<\"u\"){let T=()=>c(e.connect,h,\"connect\");I?a(C,\"connect\",T()):a(C,\"lookup\",N=>{N===null&&a(C,\"connect\",T())})}typeof e.secureConnect<\"u\"&&r.protocol===\"https:\"&&a(C,\"connect\",()=>{let T=c(e.secureConnect,h,\"secureConnect\");a(C,\"secureConnect\",T)})}if(typeof e.send<\"u\"){let I=()=>c(e.send,h,\"send\");C.connecting?a(C,\"connect\",()=>{a(t,\"upload-complete\",I())}):a(t,\"upload-complete\",I())}}),typeof e.response<\"u\"&&a(t,\"upload-complete\",()=>{let C=c(e.response,h,\"response\");a(t,\"response\",C)}),E}});var iAe=_(LH=>{\"use strict\";Object.defineProperty(LH,\"__esModule\",{value:!0});var nAe=Np();LH.default=t=>{t=t;let e={protocol:t.protocol,hostname:nAe.default.string(t.hostname)&&t.hostname.startsWith(\"[\")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||\"\"}${t.search||\"\"}`};return nAe.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||\"\"}:${t.password||\"\"}`),e}});var sAe=_(MH=>{\"use strict\";Object.defineProperty(MH,\"__esModule\",{value:!0});var drt=Ie(\"url\"),mrt=[\"protocol\",\"host\",\"hostname\",\"port\",\"pathname\",\"search\"];MH.default=(t,e)=>{var r,s;if(e.path){if(e.pathname)throw new TypeError(\"Parameters `path` and `pathname` are mutually exclusive.\");if(e.search)throw new TypeError(\"Parameters `path` and `search` are mutually exclusive.\");if(e.searchParams)throw new TypeError(\"Parameters `path` and `searchParams` are mutually exclusive.\")}if(e.search&&e.searchParams)throw new TypeError(\"Parameters `search` and `searchParams` are mutually exclusive.\");if(!t){if(!e.protocol)throw new TypeError(\"No URL protocol specified\");t=`${e.protocol}//${(s=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&s!==void 0?s:\"\"}`}let a=new drt.URL(t);if(e.path){let n=e.path.indexOf(\"?\");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of mrt)e[n]&&(a[n]=e[n].toString());return a}});var oAe=_(_H=>{\"use strict\";Object.defineProperty(_H,\"__esModule\",{value:!0});var UH=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e==\"object\"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e==\"object\"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e==\"object\"?this.weakMap.has(e):this.map.has(e)}};_H.default=UH});var jH=_(HH=>{\"use strict\";Object.defineProperty(HH,\"__esModule\",{value:!0});var yrt=async t=>{let e=[],r=0;for await(let s of t)e.push(s),r+=Buffer.byteLength(s);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(\"\"))};HH.default=yrt});var lAe=_(sm=>{\"use strict\";Object.defineProperty(sm,\"__esModule\",{value:!0});sm.dnsLookupIpVersionToFamily=sm.isDnsLookupIpVersion=void 0;var aAe={auto:0,ipv4:4,ipv6:6};sm.isDnsLookupIpVersion=t=>t in aAe;sm.dnsLookupIpVersionToFamily=t=>{if(sm.isDnsLookupIpVersion(t))return aAe[t];throw new Error(\"Invalid DNS lookup IP version\")}});var GH=_(zQ=>{\"use strict\";Object.defineProperty(zQ,\"__esModule\",{value:!0});zQ.isResponseOk=void 0;zQ.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var uAe=_(qH=>{\"use strict\";Object.defineProperty(qH,\"__esModule\",{value:!0});var cAe=new Set;qH.default=t=>{cAe.has(t)||(cAe.add(t),process.emitWarning(`Got: ${t}`,{type:\"DeprecationWarning\"}))}});var fAe=_(WH=>{\"use strict\";Object.defineProperty(WH,\"__esModule\",{value:!0});var Si=Np(),Ert=(t,e)=>{if(Si.default.null_(t.encoding))throw new TypeError(\"To get a Buffer, set `options.responseType` to `buffer` instead\");Si.assert.any([Si.default.string,Si.default.undefined],t.encoding),Si.assert.any([Si.default.boolean,Si.default.undefined],t.resolveBodyOnly),Si.assert.any([Si.default.boolean,Si.default.undefined],t.methodRewriting),Si.assert.any([Si.default.boolean,Si.default.undefined],t.isStream),Si.assert.any([Si.default.string,Si.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType=\"text\");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:s=>s.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Si.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(s=>s.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):Si.default.number(r)&&(t.retry.limit=r),Si.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(Si.default.number))),Si.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:s}=t;if(!Si.default.function_(s.transform))throw new Error(\"`options.pagination.transform` must be implemented\");if(!Si.default.function_(s.shouldContinue))throw new Error(\"`options.pagination.shouldContinue` must be implemented\");if(!Si.default.function_(s.filter))throw new TypeError(\"`options.pagination.filter` must be implemented\");if(!Si.default.function_(s.paginate))throw new Error(\"`options.pagination.paginate` must be implemented\")}return t.responseType===\"json\"&&t.headers.accept===void 0&&(t.headers.accept=\"application/json\"),t};WH.default=Ert});var AAe=_($B=>{\"use strict\";Object.defineProperty($B,\"__esModule\",{value:!0});$B.retryAfterStatusCodes=void 0;$B.retryAfterStatusCodes=new Set([413,429,503]);var Irt=({attemptCount:t,retryOptions:e,error:r,retryAfter:s})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),c=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!c)return 0;if(r.response){if(s)return e.maxRetryAfter===void 0||s>e.maxRetryAfter?0:s;if(r.response.statusCode===413)return 0}let f=Math.random()*100;return 2**(t-1)*1e3+f};$B.default=Irt});var rv=_(Ln=>{\"use strict\";Object.defineProperty(Ln,\"__esModule\",{value:!0});Ln.UnsupportedProtocolError=Ln.ReadError=Ln.TimeoutError=Ln.UploadError=Ln.CacheError=Ln.HTTPError=Ln.MaxRedirectsError=Ln.RequestError=Ln.setNonEnumerableProperties=Ln.knownHookEvents=Ln.withoutBody=Ln.kIsNormalizedAlready=void 0;var pAe=Ie(\"util\"),hAe=Ie(\"stream\"),Crt=Ie(\"fs\"),w0=Ie(\"url\"),gAe=Ie(\"http\"),YH=Ie(\"http\"),wrt=Ie(\"https\"),Brt=xue(),vrt=Oue(),dAe=gfe(),Srt=Efe(),Drt=Jfe(),Prt=WQ(),at=Np(),brt=$fe(),mAe=RH(),xrt=NH(),yAe=rAe(),krt=iAe(),EAe=sAe(),Qrt=oAe(),Rrt=jH(),IAe=lAe(),Trt=GH(),B0=uAe(),Frt=fAe(),Nrt=AAe(),VH,po=Symbol(\"request\"),$Q=Symbol(\"response\"),mI=Symbol(\"responseSize\"),yI=Symbol(\"downloadedSize\"),EI=Symbol(\"bodySize\"),II=Symbol(\"uploadedSize\"),ZQ=Symbol(\"serverResponsesPiped\"),CAe=Symbol(\"unproxyEvents\"),wAe=Symbol(\"isFromCache\"),JH=Symbol(\"cancelTimeouts\"),BAe=Symbol(\"startedReading\"),CI=Symbol(\"stopReading\"),XQ=Symbol(\"triggerRead\"),v0=Symbol(\"body\"),ev=Symbol(\"jobs\"),vAe=Symbol(\"originalResponse\"),SAe=Symbol(\"retryTimeout\");Ln.kIsNormalizedAlready=Symbol(\"isNormalizedAlready\");var Ort=at.default.string(process.versions.brotli);Ln.withoutBody=new Set([\"GET\",\"HEAD\"]);Ln.knownHookEvents=[\"init\",\"beforeRequest\",\"beforeRedirect\",\"beforeError\",\"beforeRetry\",\"afterResponse\"];function Lrt(t){for(let e in t){let r=t[e];if(!at.default.string(r)&&!at.default.number(r)&&!at.default.boolean(r)&&!at.default.null_(r)&&!at.default.undefined(r))throw new TypeError(`The \\`searchParams\\` value '${String(r)}' must be a string, number, boolean or null`)}}function Mrt(t){return at.default.object(t)&&!(\"statusCode\"in t)}var KH=new Qrt.default,Urt=async t=>new Promise((e,r)=>{let s=a=>{r(a)};t.pending||e(),t.once(\"error\",s),t.once(\"ready\",()=>{t.off(\"error\",s),e()})}),_rt=new Set([300,301,302,303,304,307,308]),Hrt=[\"context\",\"body\",\"json\",\"form\"];Ln.setNonEnumerableProperties=(t,e)=>{let r={};for(let s of t)if(s)for(let a of Hrt)a in s&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:s[a]});Object.defineProperties(e,r)};var us=class extends Error{constructor(e,r,s){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name=\"RequestError\",this.code=r.code,s instanceof oR?(Object.defineProperty(this,\"request\",{enumerable:!1,value:s}),Object.defineProperty(this,\"response\",{enumerable:!1,value:s[$Q]}),Object.defineProperty(this,\"options\",{enumerable:!1,value:s.options})):Object.defineProperty(this,\"options\",{enumerable:!1,value:s}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,at.default.string(r.stack)&&at.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,c=this.stack.slice(n).split(`\n`).reverse(),f=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(`\n`).reverse();for(;f.length!==0&&f[0]===c[0];)c.shift();this.stack=`${this.stack.slice(0,n)}${c.reverse().join(`\n`)}${f.reverse().join(`\n`)}`}}};Ln.RequestError=us;var eR=class extends us{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name=\"MaxRedirectsError\"}};Ln.MaxRedirectsError=eR;var tR=class extends us{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name=\"HTTPError\"}};Ln.HTTPError=tR;var rR=class extends us{constructor(e,r){super(e.message,e,r),this.name=\"CacheError\"}};Ln.CacheError=rR;var nR=class extends us{constructor(e,r){super(e.message,e,r),this.name=\"UploadError\"}};Ln.UploadError=nR;var iR=class extends us{constructor(e,r,s){super(e.message,e,s),this.name=\"TimeoutError\",this.event=e.event,this.timings=r}};Ln.TimeoutError=iR;var tv=class extends us{constructor(e,r){super(e.message,e,r),this.name=\"ReadError\"}};Ln.ReadError=tv;var sR=class extends us{constructor(e){super(`Unsupported protocol \"${e.url.protocol}\"`,{},e),this.name=\"UnsupportedProtocolError\"}};Ln.UnsupportedProtocolError=sR;var jrt=[\"socket\",\"connect\",\"continue\",\"information\",\"upgrade\",\"timeout\"],oR=class extends hAe.Duplex{constructor(e,r={},s){super({autoDestroy:!1,highWaterMark:0}),this[yI]=0,this[II]=0,this.requestInitialized=!1,this[ZQ]=new Set,this.redirects=[],this[CI]=!1,this[XQ]=!1,this[ev]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on(\"pipe\",h=>{h.prependListener(\"data\",a),h.on(\"data\",n),h.prependListener(\"end\",a),h.on(\"end\",n)}),this.on(\"unpipe\",h=>{h.off(\"data\",a),h.off(\"data\",n),h.off(\"end\",a),h.off(\"end\",n)}),this.on(\"pipe\",h=>{h instanceof YH.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:c,body:f,form:p}=r;if((c||f||p)&&this._lockWrite(),Ln.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,s)}catch(h){at.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Crt.ReadStream&&await Urt(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError(\"Missing `url` property\");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[po])===null||h===void 0||h.destroy();return}for(let C of this[ev])C();this[ev].length=0,this.requestInitialized=!0}catch(E){if(E instanceof us){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,s){var a,n,c,f,p;let h=r;if(at.default.object(e)&&!at.default.urlInstance(e))r={...s,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError(\"The `url` option is mutually exclusive with the `input` argument\");r={...s,...r},e!==void 0&&(r.url=e),at.default.urlInstance(r.url)&&(r.url=new w0.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),at.assert.any([at.default.string,at.default.undefined],r.method),at.assert.any([at.default.object,at.default.undefined],r.headers),at.assert.any([at.default.string,at.default.urlInstance,at.default.undefined],r.prefixUrl),at.assert.any([at.default.object,at.default.undefined],r.cookieJar),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.searchParams),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.cache),at.assert.any([at.default.object,at.default.number,at.default.undefined],r.timeout),at.assert.any([at.default.object,at.default.undefined],r.context),at.assert.any([at.default.object,at.default.undefined],r.hooks),at.assert.any([at.default.boolean,at.default.undefined],r.decompress),at.assert.any([at.default.boolean,at.default.undefined],r.ignoreInvalidCookies),at.assert.any([at.default.boolean,at.default.undefined],r.followRedirect),at.assert.any([at.default.number,at.default.undefined],r.maxRedirects),at.assert.any([at.default.boolean,at.default.undefined],r.throwHttpErrors),at.assert.any([at.default.boolean,at.default.undefined],r.http2),at.assert.any([at.default.boolean,at.default.undefined],r.allowGetBody),at.assert.any([at.default.string,at.default.undefined],r.localAddress),at.assert.any([IAe.isDnsLookupIpVersion,at.default.undefined],r.dnsLookupIpVersion),at.assert.any([at.default.object,at.default.undefined],r.https),at.assert.any([at.default.boolean,at.default.undefined],r.rejectUnauthorized),r.https&&(at.assert.any([at.default.boolean,at.default.undefined],r.https.rejectUnauthorized),at.assert.any([at.default.function_,at.default.undefined],r.https.checkServerIdentity),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificateAuthority),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.key),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificate),at.assert.any([at.default.string,at.default.undefined],r.https.passphrase),at.assert.any([at.default.string,at.default.buffer,at.default.array,at.default.undefined],r.https.pfx)),at.assert.any([at.default.object,at.default.undefined],r.cacheOptions),at.default.string(r.method)?r.method=r.method.toUpperCase():r.method=\"GET\",r.headers===s?.headers?r.headers={...r.headers}:r.headers=Prt({...s?.headers,...r.headers}),\"slashes\"in r)throw new TypeError(\"The legacy `url.Url` has been deprecated. Use `URL` instead.\");if(\"auth\"in r)throw new TypeError(\"Parameter `auth` is deprecated. Use `username` / `password` instead.\");if(\"searchParams\"in r&&r.searchParams&&r.searchParams!==s?.searchParams){let b;if(at.default.string(r.searchParams)||r.searchParams instanceof w0.URLSearchParams)b=new w0.URLSearchParams(r.searchParams);else{Lrt(r.searchParams),b=new w0.URLSearchParams;for(let I in r.searchParams){let T=r.searchParams[I];T===null?b.append(I,\"\"):T!==void 0&&b.append(I,T)}}(a=s?.searchParams)===null||a===void 0||a.forEach((I,T)=>{b.has(T)||b.append(T,I)}),r.searchParams=b}if(r.username=(n=r.username)!==null&&n!==void 0?n:\"\",r.password=(c=r.password)!==null&&c!==void 0?c:\"\",at.default.undefined(r.prefixUrl)?r.prefixUrl=(f=s?.prefixUrl)!==null&&f!==void 0?f:\"\":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==\"\"&&!r.prefixUrl.endsWith(\"/\")&&(r.prefixUrl+=\"/\")),at.default.string(r.url)){if(r.url.startsWith(\"/\"))throw new Error(\"`input` must not start with a slash when using `prefixUrl`\");r.url=EAe.default(r.prefixUrl+r.url,r)}else(at.default.undefined(r.url)&&r.prefixUrl!==\"\"||r.protocol)&&(r.url=EAe.default(r.prefixUrl,r));if(r.url){\"port\"in r&&delete r.port;let{prefixUrl:b}=r;Object.defineProperty(r,\"prefixUrl\",{set:T=>{let N=r.url;if(!N.href.startsWith(T))throw new Error(`Cannot change \\`prefixUrl\\` from ${b} to ${T}: ${N.href}`);r.url=new w0.URL(T+N.href.slice(b.length)),b=T},get:()=>b});let{protocol:I}=r.url;if(I===\"unix:\"&&(I=\"http:\",r.url=new w0.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),I!==\"http:\"&&I!==\"https:\")throw new sR(r);r.username===\"\"?r.username=r.url.username:r.url.username=r.username,r.password===\"\"?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:b,getCookieString:I}=E;at.assert.function_(b),at.assert.function_(I),b.length===4&&I.length===0&&(b=pAe.promisify(b.bind(r.cookieJar)),I=pAe.promisify(I.bind(r.cookieJar)),r.cookieJar={setCookie:b,getCookieString:I})}let{cache:C}=r;if(C&&(KH.has(C)||KH.set(C,new dAe((b,I)=>{let T=b[po](b,I);return at.default.promise(T)&&(T.once=(N,U)=>{if(N===\"error\")T.catch(U);else if(N===\"abort\")(async()=>{try{(await T).once(\"abort\",U)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${N}`);return T}),T},C))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)VH||(VH=new vrt.default),r.dnsCache=VH;else if(!at.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \\`dnsCache\\` must be a CacheableLookup instance or a boolean, got ${at.default(r.dnsCache)}`);at.default.number(r.timeout)?r.timeout={request:r.timeout}:s&&r.timeout!==s.timeout?r.timeout={...s.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let S=r.hooks===s?.hooks;r.hooks={...r.hooks};for(let b of Ln.knownHookEvents)if(b in r.hooks)if(at.default.array(r.hooks[b]))r.hooks[b]=[...r.hooks[b]];else throw new TypeError(`Parameter \\`${b}\\` must be an Array, got ${at.default(r.hooks[b])}`);else r.hooks[b]=[];if(s&&!S)for(let b of Ln.knownHookEvents)s.hooks[b].length>0&&(r.hooks[b]=[...s.hooks[b],...r.hooks[b]]);if(\"family\"in r&&B0.default('\"options.family\" was never documented, please use \"options.dnsLookupIpVersion\"'),s?.https&&(r.https={...s.https,...r.https}),\"rejectUnauthorized\"in r&&B0.default('\"options.rejectUnauthorized\" is now deprecated, please use \"options.https.rejectUnauthorized\"'),\"checkServerIdentity\"in r&&B0.default('\"options.checkServerIdentity\" was never documented, please use \"options.https.checkServerIdentity\"'),\"ca\"in r&&B0.default('\"options.ca\" was never documented, please use \"options.https.certificateAuthority\"'),\"key\"in r&&B0.default('\"options.key\" was never documented, please use \"options.https.key\"'),\"cert\"in r&&B0.default('\"options.cert\" was never documented, please use \"options.https.certificate\"'),\"passphrase\"in r&&B0.default('\"options.passphrase\" was never documented, please use \"options.https.passphrase\"'),\"pfx\"in r&&B0.default('\"options.pfx\" was never documented, please use \"options.https.pfx\"'),\"followRedirects\"in r)throw new TypeError(\"The `followRedirects` option does not exist. Use `followRedirect` instead.\");if(r.agent){for(let b in r.agent)if(b!==\"http\"&&b!==\"https\"&&b!==\"http2\")throw new TypeError(`Expected the \\`options.agent\\` properties to be \\`http\\`, \\`https\\` or \\`http2\\`, got \\`${b}\\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,Ln.setNonEnumerableProperties([s,h],r),Frt.default(r,s)}_lockWrite(){let e=()=>{throw new TypeError(\"The payload has been already provided\")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,s=!at.default.undefined(e.form),a=!at.default.undefined(e.json),n=!at.default.undefined(e.body),c=s||a||n,f=Ln.withoutBody.has(e.method)&&!(e.method===\"GET\"&&e.allowGetBody);if(this._cannotHaveBody=f,c){if(f)throw new TypeError(`The \\`${e.method}\\` method cannot be used with a body`);if([n,s,a].filter(p=>p).length>1)throw new TypeError(\"The `body`, `json` and `form` options are mutually exclusive\");if(n&&!(e.body instanceof hAe.Readable)&&!at.default.string(e.body)&&!at.default.buffer(e.body)&&!mAe.default(e.body))throw new TypeError(\"The `body` option must be a stream.Readable, string or Buffer\");if(s&&!at.default.object(e.form))throw new TypeError(\"The `form` option must be an Object\");{let p=!at.default.string(r[\"content-type\"]);n?(mAe.default(e.body)&&p&&(r[\"content-type\"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[v0]=e.body):s?(p&&(r[\"content-type\"]=\"application/x-www-form-urlencoded\"),this[v0]=new w0.URLSearchParams(e.form).toString()):(p&&(r[\"content-type\"]=\"application/json\"),this[v0]=e.stringifyJson(e.json));let h=await brt.default(this[v0],e.headers);at.default.undefined(r[\"content-length\"])&&at.default.undefined(r[\"transfer-encoding\"])&&!f&&!at.default.undefined(h)&&(r[\"content-length\"]=String(h))}}else f?this._lockWrite():this._unlockWrite();this[EI]=Number(r[\"content-length\"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:s}=r;this[vAe]=e,r.decompress&&(e=Srt(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:gAe.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[wAe]=n.isFromCache,this[mI]=Number(e.headers[\"content-length\"])||void 0,this[$Q]=e,e.once(\"end\",()=>{this[mI]=this[yI],this.emit(\"downloadProgress\",this.downloadProgress)}),e.once(\"error\",f=>{e.destroy(),this._beforeError(new tv(f,this))}),e.once(\"aborted\",()=>{this._beforeError(new tv({name:\"Error\",message:\"The server aborted pending request\",code:\"ECONNRESET\"},this))}),this.emit(\"downloadProgress\",this.downloadProgress);let c=e.headers[\"set-cookie\"];if(at.default.object(r.cookieJar)&&c){let f=c.map(async p=>r.cookieJar.setCookie(p,s.toString()));r.ignoreInvalidCookies&&(f=f.map(async p=>p.catch(()=>{})));try{await Promise.all(f)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&_rt.has(a)){if(e.resume(),this[po]&&(this[JH](),delete this[po],this[CAe]()),(a===303&&r.method!==\"GET\"&&r.method!==\"HEAD\"||!r.methodRewriting)&&(r.method=\"GET\",\"body\"in r&&delete r.body,\"json\"in r&&delete r.json,\"form\"in r&&delete r.form,this[v0]=void 0,delete r.headers[\"content-length\"]),this.redirects.length>=r.maxRedirects){this._beforeError(new eR(this));return}try{let p=Buffer.from(e.headers.location,\"binary\").toString(),h=new w0.URL(p,s),E=h.toString();decodeURI(E),h.hostname!==s.hostname||h.port!==s.port?(\"host\"in r.headers&&delete r.headers.host,\"cookie\"in r.headers&&delete r.headers.cookie,\"authorization\"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username=\"\",r.password=\"\")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let C of r.hooks.beforeRedirect)await C(r,n);this.emit(\"redirect\",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!Trt.isResponseOk(n)){this._beforeError(new tR(n));return}e.on(\"readable\",()=>{this[XQ]&&this._read()}),this.on(\"resume\",()=>{e.resume()}),this.on(\"pause\",()=>{e.pause()}),e.once(\"end\",()=>{this.push(null)}),this.emit(\"response\",e);for(let f of this[ZQ])if(!f.headersSent){for(let p in e.headers){let h=r.decompress?p!==\"content-encoding\":!0,E=e.headers[p];h&&f.setHeader(p,E)}f.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:s,url:a}=r;Brt.default(e),this[JH]=yAe.default(e,s,a);let n=r.cache?\"cacheableResponse\":\"response\";e.once(n,p=>{this._onResponse(p)}),e.once(\"error\",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners(\"end\"),p=p instanceof yAe.TimeoutError?new iR(p,this.timings,this):new us(p.message,p,this),this._beforeError(p)}),this[CAe]=xrt.default(e,this,jrt),this[po]=e,this.emit(\"uploadProgress\",this.uploadProgress);let c=this[v0],f=this.redirects.length===0?this:e;at.default.nodeStream(c)?(c.pipe(f),c.once(\"error\",p=>{this._beforeError(new nR(p,this))})):(this._unlockWrite(),at.default.undefined(c)?(this._cannotHaveBody||this._noPipe)&&(f.end(),this._lockWrite()):(this._writeRequest(c,void 0,()=>{}),f.end(),this._lockWrite())),this.emit(\"request\",e)}async _createCacheableRequest(e,r){return new Promise((s,a)=>{Object.assign(r,krt.default(e)),delete r.url;let n,c=KH.get(r.cache)(r,async f=>{f._readableState.autoDestroy=!1,n&&(await n).emit(\"cacheableResponse\",f),s(f)});r.url=e,c.once(\"error\",a),c.once(\"request\",async f=>{n=f,s(n)})})}async _makeRequest(){var e,r,s,a,n;let{options:c}=this,{headers:f}=c;for(let U in f)if(at.default.undefined(f[U]))delete f[U];else if(at.default.null_(f[U]))throw new TypeError(`Use \\`undefined\\` instead of \\`null\\` to delete the \\`${U}\\` header`);if(c.decompress&&at.default.undefined(f[\"accept-encoding\"])&&(f[\"accept-encoding\"]=Ort?\"gzip, deflate, br\":\"gzip, deflate\"),c.cookieJar){let U=await c.cookieJar.getCookieString(c.url.toString());at.default.nonEmptyString(U)&&(c.headers.cookie=U)}for(let U of c.hooks.beforeRequest){let W=await U(c);if(!at.default.undefined(W)){c.request=()=>W;break}}c.body&&this[v0]!==c.body&&(this[v0]=c.body);let{agent:p,request:h,timeout:E,url:C}=c;if(c.dnsCache&&!(\"lookup\"in c)&&(c.lookup=c.dnsCache.lookup),C.hostname===\"unix\"){let U=/(?<socketPath>.+?):(?<path>.+)/.exec(`${C.pathname}${C.search}`);if(U?.groups){let{socketPath:W,path:ee}=U.groups;Object.assign(c,{socketPath:W,path:ee,host:\"\"})}}let S=C.protocol===\"https:\",b;c.http2?b=Drt.auto:b=S?wrt.request:gAe.request;let I=(e=c.request)!==null&&e!==void 0?e:b,T=c.cache?this._createCacheableRequest:I;p&&!c.http2&&(c.agent=p[S?\"https\":\"http\"]),c[po]=I,delete c.request,delete c.timeout;let N=c;if(N.shared=(r=c.cacheOptions)===null||r===void 0?void 0:r.shared,N.cacheHeuristic=(s=c.cacheOptions)===null||s===void 0?void 0:s.cacheHeuristic,N.immutableMinTimeToLive=(a=c.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,N.ignoreCargoCult=(n=c.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,c.dnsLookupIpVersion!==void 0)try{N.family=IAe.dnsLookupIpVersionToFamily(c.dnsLookupIpVersion)}catch{throw new Error(\"Invalid `dnsLookupIpVersion` option value\")}c.https&&(\"rejectUnauthorized\"in c.https&&(N.rejectUnauthorized=c.https.rejectUnauthorized),c.https.checkServerIdentity&&(N.checkServerIdentity=c.https.checkServerIdentity),c.https.certificateAuthority&&(N.ca=c.https.certificateAuthority),c.https.certificate&&(N.cert=c.https.certificate),c.https.key&&(N.key=c.https.key),c.https.passphrase&&(N.passphrase=c.https.passphrase),c.https.pfx&&(N.pfx=c.https.pfx));try{let U=await T(C,N);at.default.undefined(U)&&(U=b(C,N)),c.request=h,c.timeout=E,c.agent=p,c.https&&(\"rejectUnauthorized\"in c.https&&delete N.rejectUnauthorized,c.https.checkServerIdentity&&delete N.checkServerIdentity,c.https.certificateAuthority&&delete N.ca,c.https.certificate&&delete N.cert,c.https.key&&delete N.key,c.https.passphrase&&delete N.passphrase,c.https.pfx&&delete N.pfx),Mrt(U)?this._onRequest(U):this.writable?(this.once(\"finish\",()=>{this._onResponse(U)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(U)}catch(U){throw U instanceof dAe.CacheError?new rR(U,this):new us(U.message,U,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new us(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[CI])return;let{options:r}=this,s=this.retryCount+1;this[CI]=!0,e instanceof us||(e=new us(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await Rrt.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount(\"retry\")!==0){let c;try{let f;n&&\"retry-after\"in n.headers&&(f=Number(n.headers[\"retry-after\"]),Number.isNaN(f)?(f=Date.parse(n.headers[\"retry-after\"])-Date.now(),f<=0&&(f=1)):f*=1e3),c=await r.retry.calculateDelay({attemptCount:s,retryOptions:r.retry,error:a,retryAfter:f,computedValue:Nrt.default({attemptCount:s,retryOptions:r.retry,error:a,retryAfter:f,computedValue:0})})}catch(f){this._error(new us(f.message,f,this));return}if(c){let f=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,s)}catch(p){this._error(new us(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit(\"retry\",s,e))};this[SAe]=setTimeout(f,c);return}}this._error(a)})()}_read(){this[XQ]=!0;let e=this[$Q];if(e&&!this[CI]){e.readableLength&&(this[XQ]=!1);let r;for(;(r=e.read())!==null;){this[yI]+=r.length,this[BAe]=!0;let s=this.downloadProgress;s.percent<1&&this.emit(\"downloadProgress\",s),this.push(r)}}}_write(e,r,s){let a=()=>{this._writeRequest(e,r,s)};this.requestInitialized?a():this[ev].push(a)}_writeRequest(e,r,s){this[po].destroyed||(this._progressCallbacks.push(()=>{this[II]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit(\"uploadProgress\",a)}),this[po].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),s(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(po in this)){e();return}if(this[po].destroyed){e();return}this[po].end(s=>{s||(this[EI]=this[II],this.emit(\"uploadProgress\",this.uploadProgress),this[po].emit(\"upload-complete\")),e(s)})};this.requestInitialized?r():this[ev].push(r)}_destroy(e,r){var s;this[CI]=!0,clearTimeout(this[SAe]),po in this&&(this[JH](),!((s=this[$Q])===null||s===void 0)&&s.complete||this[po].destroy()),e!==null&&!at.default.undefined(e)&&!(e instanceof us)&&(e=new us(e.message,e,this)),r(e)}get _isAboutToError(){return this[CI]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,s;return((r=(e=this[po])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((s=this[vAe])===null||s===void 0)&&s.complete)}get socket(){var e,r;return(r=(e=this[po])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[mI]?e=this[yI]/this[mI]:this[mI]===this[yI]?e=1:e=0,{percent:e,transferred:this[yI],total:this[mI]}}get uploadProgress(){let e;return this[EI]?e=this[II]/this[EI]:this[EI]===this[II]?e=1:e=0,{percent:e,transferred:this[II],total:this[EI]}}get timings(){var e;return(e=this[po])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[wAe]}pipe(e,r){if(this[BAe])throw new Error(\"Failed to pipe. The response has been emitted already.\");return e instanceof YH.ServerResponse&&this[ZQ].add(e),super.pipe(e,r)}unpipe(e){return e instanceof YH.ServerResponse&&this[ZQ].delete(e),super.unpipe(e),this}};Ln.default=oR});var nv=_(qu=>{\"use strict\";var Grt=qu&&qu.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),qrt=qu&&qu.__exportStar||function(t,e){for(var r in t)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,r)&&Grt(e,t,r)};Object.defineProperty(qu,\"__esModule\",{value:!0});qu.CancelError=qu.ParseError=void 0;var DAe=rv(),zH=class extends DAe.RequestError{constructor(e,r){let{options:s}=r.request;super(`${e.message} in \"${s.url.toString()}\"`,e,r.request),this.name=\"ParseError\"}};qu.ParseError=zH;var ZH=class extends DAe.RequestError{constructor(e){super(\"Promise was canceled\",{},e),this.name=\"CancelError\"}get isCanceled(){return!0}};qu.CancelError=ZH;qrt(rv(),qu)});var bAe=_(XH=>{\"use strict\";Object.defineProperty(XH,\"__esModule\",{value:!0});var PAe=nv(),Wrt=(t,e,r,s)=>{let{rawBody:a}=t;try{if(e===\"text\")return a.toString(s);if(e===\"json\")return a.length===0?\"\":r(a.toString());if(e===\"buffer\")return a;throw new PAe.ParseError({message:`Unknown body type '${e}'`,name:\"Error\"},t)}catch(n){throw new PAe.ParseError(n,t)}};XH.default=Wrt});var $H=_(S0=>{\"use strict\";var Yrt=S0&&S0.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Vrt=S0&&S0.__exportStar||function(t,e){for(var r in t)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,r)&&Yrt(e,t,r)};Object.defineProperty(S0,\"__esModule\",{value:!0});var Jrt=Ie(\"events\"),Krt=Np(),zrt=Pue(),aR=nv(),xAe=bAe(),kAe=rv(),Zrt=NH(),Xrt=jH(),QAe=GH(),$rt=[\"request\",\"response\",\"redirect\",\"uploadProgress\",\"downloadProgress\"];function RAe(t){let e,r,s=new Jrt.EventEmitter,a=new zrt((c,f,p)=>{let h=E=>{let C=new kAe.default(void 0,t);C.retryCount=E,C._noPipe=!0,p(()=>C.destroy()),p.shouldReject=!1,p(()=>f(new aR.CancelError(C))),e=C,C.once(\"response\",async I=>{var T;if(I.retryCount=E,I.request.aborted)return;let N;try{N=await Xrt.default(C),I.rawBody=N}catch{return}if(C._isAboutToError)return;let U=((T=I.headers[\"content-encoding\"])!==null&&T!==void 0?T:\"\").toLowerCase(),W=[\"gzip\",\"deflate\",\"br\"].includes(U),{options:ee}=C;if(W&&!ee.decompress)I.body=N;else try{I.body=xAe.default(I,ee.responseType,ee.parseJson,ee.encoding)}catch(ie){if(I.body=N.toString(),QAe.isResponseOk(I)){C._beforeError(ie);return}}try{for(let[ie,ue]of ee.hooks.afterResponse.entries())I=await ue(I,async le=>{let me=kAe.default.normalizeArguments(void 0,{...le,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},ee);me.hooks.afterResponse=me.hooks.afterResponse.slice(0,ie);for(let Be of me.hooks.beforeRetry)await Be(me);let pe=RAe(me);return p(()=>{pe.catch(()=>{}),pe.cancel()}),pe})}catch(ie){C._beforeError(new aR.RequestError(ie.message,ie,C));return}if(!QAe.isResponseOk(I)){C._beforeError(new aR.HTTPError(I));return}r=I,c(C.options.resolveBodyOnly?I.body:I)});let S=I=>{if(a.isCanceled)return;let{options:T}=C;if(I instanceof aR.HTTPError&&!T.throwHttpErrors){let{response:N}=I;c(C.options.resolveBodyOnly?N.body:N);return}f(I)};C.once(\"error\",S);let b=C.options.body;C.once(\"retry\",(I,T)=>{var N,U;if(b===((N=T.request)===null||N===void 0?void 0:N.options.body)&&Krt.default.nodeStream((U=T.request)===null||U===void 0?void 0:U.options.body)){S(T);return}h(I)}),Zrt.default(C,s,$rt)};h(0)});a.on=(c,f)=>(s.on(c,f),a);let n=c=>{let f=(async()=>{await a;let{options:p}=r.request;return xAe.default(r,c,p.parseJson,p.encoding)})();return Object.defineProperties(f,Object.getOwnPropertyDescriptors(a)),f};return a.json=()=>{let{headers:c}=e.options;return!e.writableFinished&&c.accept===void 0&&(c.accept=\"application/json\"),n(\"json\")},a.buffer=()=>n(\"buffer\"),a.text=()=>n(\"text\"),a}S0.default=RAe;Vrt(nv(),S0)});var TAe=_(ej=>{\"use strict\";Object.defineProperty(ej,\"__esModule\",{value:!0});var ent=nv();function tnt(t,...e){let r=(async()=>{if(t instanceof ent.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),s=()=>r;return r.json=s,r.text=s,r.buffer=s,r.on=s,r}ej.default=tnt});var OAe=_(tj=>{\"use strict\";Object.defineProperty(tj,\"__esModule\",{value:!0});var FAe=Np();function NAe(t){for(let e of Object.values(t))(FAe.default.plainObject(e)||FAe.default.array(e))&&NAe(e);return Object.freeze(t)}tj.default=NAe});var MAe=_(LAe=>{\"use strict\";Object.defineProperty(LAe,\"__esModule\",{value:!0})});var rj=_(Nc=>{\"use strict\";var rnt=Nc&&Nc.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),nnt=Nc&&Nc.__exportStar||function(t,e){for(var r in t)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,r)&&rnt(e,t,r)};Object.defineProperty(Nc,\"__esModule\",{value:!0});Nc.defaultHandler=void 0;var UAe=Np(),Fc=$H(),int=TAe(),cR=rv(),snt=OAe(),ont={RequestError:Fc.RequestError,CacheError:Fc.CacheError,ReadError:Fc.ReadError,HTTPError:Fc.HTTPError,MaxRedirectsError:Fc.MaxRedirectsError,TimeoutError:Fc.TimeoutError,ParseError:Fc.ParseError,CancelError:Fc.CancelError,UnsupportedProtocolError:Fc.UnsupportedProtocolError,UploadError:Fc.UploadError},ant=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:lR}=cR.default,_Ae=(...t)=>{let e;for(let r of t)e=lR(void 0,r,e);return e},lnt=t=>t.isStream?new cR.default(void 0,t):Fc.default(t),cnt=t=>\"defaults\"in t&&\"options\"in t.defaults,unt=[\"get\",\"post\",\"put\",\"patch\",\"head\",\"delete\"];Nc.defaultHandler=(t,e)=>e(t);var HAe=(t,e)=>{if(t)for(let r of t)r(e)},jAe=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(s=>(a,n)=>{let c,f=s(a,p=>(c=n(p),c));if(f!==c&&!a.isStream&&c){let p=f,{then:h,catch:E,finally:C}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(c)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(c)),p.then=h,p.catch=E,p.finally=C}return f});let e=(s,a={},n)=>{var c,f;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?lnt:h);if(UAe.default.plainObject(s)){let E={...s,...a};cR.setNonEnumerableProperties([s,a],E),a=E,s=void 0}try{let E;try{HAe(t.options.hooks.init,a),HAe((c=a.hooks)===null||c===void 0?void 0:c.init,a)}catch(S){E=S}let C=lR(s,a,n??t.options);if(C[cR.kIsNormalizedAlready]=!0,E)throw new Fc.RequestError(E.message,E,C);return h(C)}catch(E){if(a.isStream)throw E;return int.default(E,t.options.hooks.beforeError,(f=a.hooks)===null||f===void 0?void 0:f.beforeError)}};e.extend=(...s)=>{let a=[t.options],n=[...t._rawHandlers],c;for(let f of s)cnt(f)?(a.push(f.defaults.options),n.push(...f.defaults._rawHandlers),c=f.defaults.mutableDefaults):(a.push(f),\"handlers\"in f&&n.push(...f.handlers),c=f.mutableDefaults);return n=n.filter(f=>f!==Nc.defaultHandler),n.length===0&&n.push(Nc.defaultHandler),jAe({options:_Ae(...a),handlers:n,mutableDefaults:!!c})};let r=async function*(s,a){let n=lR(s,a,t.options);n.resolveBodyOnly=!1;let c=n.pagination;if(!UAe.default.object(c))throw new TypeError(\"`options.pagination` must be implemented\");let f=[],{countLimit:p}=c,h=0;for(;h<c.requestLimit;){h!==0&&await ant(c.backoff);let E=await e(void 0,void 0,n),C=await c.transform(E),S=[];for(let I of C)if(c.filter(I,f,S)&&(!c.shouldContinue(I,f,S)||(yield I,c.stackAllItems&&f.push(I),S.push(I),--p<=0)))return;let b=c.paginate(E,f,S);if(b===!1)return;b===E.request.options?n=E.request.options:b!==void 0&&(n=lR(void 0,b,n)),h++}};e.paginate=r,e.paginate.all=async(s,a)=>{let n=[];for await(let c of r(s,a))n.push(c);return n},e.paginate.each=r,e.stream=(s,a)=>e(s,{...a,isStream:!0});for(let s of unt)e[s]=(a,n)=>e(a,{...n,method:s}),e.stream[s]=(a,n)=>e(a,{...n,method:s,isStream:!0});return Object.assign(e,ont),Object.defineProperty(e,\"defaults\",{value:t.mutableDefaults?t:snt.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=_Ae,e};Nc.default=jAe;nnt(MAe(),Nc)});var WAe=_((Op,uR)=>{\"use strict\";var fnt=Op&&Op.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),GAe=Op&&Op.__exportStar||function(t,e){for(var r in t)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,r)&&fnt(e,t,r)};Object.defineProperty(Op,\"__esModule\",{value:!0});var Ant=Ie(\"url\"),qAe=rj(),pnt={options:{method:\"GET\",retry:{limit:2,methods:[\"GET\",\"PUT\",\"HEAD\",\"DELETE\",\"OPTIONS\",\"TRACE\"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:[\"ETIMEDOUT\",\"ECONNRESET\",\"EADDRINUSE\",\"ECONNREFUSED\",\"EPIPE\",\"ENOTFOUND\",\"ENETUNREACH\",\"EAI_AGAIN\"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{\"user-agent\":\"got (https://github.com/sindresorhus/got)\"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:\"text\",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:\"\",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType===\"json\"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,\"link\"))return!1;let e=t.headers.link.split(\",\"),r;for(let s of e){let a=s.split(\";\");if(a[1].includes(\"next\")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Ant.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[qAe.defaultHandler],mutableDefaults:!1},nj=qAe.default(pnt);Op.default=nj;uR.exports=nj;uR.exports.default=nj;uR.exports.__esModule=!0;GAe(rj(),Op);GAe($H(),Op)});var ln={};Vt(ln,{Method:()=>ZAe,del:()=>ynt,get:()=>oj,getNetworkSettings:()=>zAe,post:()=>aj,put:()=>mnt,request:()=>iv});async function ij(t){return Yl(VAe,t,()=>ce.readFilePromise(t).then(e=>(VAe.set(t,e),e)))}function dnt({statusCode:t,statusMessage:e},r){let s=Ht(r,t,ht.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return KE(r,`${s}${e?` (${e})`:\"\"}`,a)}async function fR(t,{configuration:e,customErrorMessage:r}){try{return await t}catch(s){if(s.name!==\"HTTPError\")throw s;let a=r?.(s,e)??s.response.body?.error;a==null&&(s.message.startsWith(\"Response code\")?a=\"The remote server failed to provide the requested resource\":a=s.message),s.code===\"ETIMEDOUT\"&&s.event===\"socket\"&&(a+=`(can be increased via ${Ht(e,\"httpTimeout\",ht.SETTING)})`);let n=new jt(35,a,c=>{s.response&&c.reportError(35,`  ${Kf(e,{label:\"Response Code\",value:_u(ht.NO_HINT,dnt(s.response,e))})}`),s.request&&(c.reportError(35,`  ${Kf(e,{label:\"Request Method\",value:_u(ht.NO_HINT,s.request.options.method)})}`),c.reportError(35,`  ${Kf(e,{label:\"Request URL\",value:_u(ht.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&c.reportError(35,`  ${Kf(e,{label:\"Request Redirects\",value:_u(ht.NO_HINT,z4(e,s.request.redirects,ht.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&c.reportError(35,`  ${Kf(e,{label:\"Request Retry Count\",value:_u(ht.NO_HINT,`${Ht(e,s.request.retryCount,ht.NUMBER)} (can be increased via ${Ht(e,\"httpRetry\",ht.SETTING)})`)})}`)});throw n.originalError=s,n}}function zAe(t,e){let r=[...e.configuration.get(\"networkSettings\")].sort(([c],[f])=>f.length-c.length),s={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(s),n=typeof t==\"string\"?new URL(t):t;for(let[c,f]of r)if(sj.default.isMatch(n.hostname,c))for(let p of a){let h=f.get(p);h!==null&&typeof s[p]>\"u\"&&(s[p]=h)}for(let c of a)typeof s[c]>\"u\"&&(s[c]=e.configuration.get(c));return s}async function iv(t,e,{configuration:r,headers:s,jsonRequest:a,jsonResponse:n,method:c=\"GET\",wrapNetworkRequest:f}){let p={target:t,body:e,configuration:r,headers:s,jsonRequest:a,jsonResponse:n,method:c},h=async()=>await Ent(t,e,p),E=typeof f<\"u\"?await f(h,p):h;return await(await r.reduceHook(S=>S.wrapNetworkRequest,E,p))()}async function oj(t,{configuration:e,jsonResponse:r,customErrorMessage:s,wrapNetworkRequest:a,...n}){let c=()=>fR(iv(t,null,{configuration:e,wrapNetworkRequest:a,...n}),{configuration:e,customErrorMessage:s}).then(p=>p.body),f=await(typeof a<\"u\"?c():Yl(YAe,t,()=>c().then(p=>(YAe.set(t,p),p))));return r?JSON.parse(f.toString()):f}async function mnt(t,e,{customErrorMessage:r,...s}){return(await fR(iv(t,e,{...s,method:\"PUT\"}),{customErrorMessage:r,configuration:s.configuration})).body}async function aj(t,e,{customErrorMessage:r,...s}){return(await fR(iv(t,e,{...s,method:\"POST\"}),{customErrorMessage:r,configuration:s.configuration})).body}async function ynt(t,{customErrorMessage:e,...r}){return(await fR(iv(t,null,{...r,method:\"DELETE\"}),{customErrorMessage:e,configuration:r.configuration})).body}async function Ent(t,e,{configuration:r,headers:s,jsonRequest:a,jsonResponse:n,method:c=\"GET\"}){let f=typeof t==\"string\"?new URL(t):t,p=zAe(f,{configuration:r});if(p.enableNetwork===!1)throw new jt(80,`Request to '${f.href}' has been blocked because of your configuration settings`);if(f.protocol===\"http:\"&&!sj.default.isMatch(f.hostname,r.get(\"unsafeHttpWhitelist\")))throw new jt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${f.hostname})`);let h={headers:s,method:c};h.responseType=n?\"json\":\"buffer\",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e==\"string\"?h.body=e:h.json=e);let E=r.get(\"httpTimeout\"),C=r.get(\"httpRetry\"),S=r.get(\"enableStrictSsl\"),b=p.httpsCaFilePath,I=p.httpsCertFilePath,T=p.httpsKeyFilePath,{default:N}=await Promise.resolve().then(()=>ut(WAe())),U=b?await ij(b):void 0,W=I?await ij(I):void 0,ee=T?await ij(T):void 0,ie={rejectUnauthorized:S,ca:U,cert:W,key:ee},ue={http:p.httpProxy?new Iue({proxy:p.httpProxy,proxyRequestOptions:ie}):hnt,https:p.httpsProxy?new Cue({proxy:p.httpsProxy,proxyRequestOptions:ie}):gnt},le=N.extend({timeout:{socket:E},retry:C,agent:ue,https:{rejectUnauthorized:S,certificateAuthority:U,certificate:W,key:ee},...h});return r.getLimit(\"networkConcurrency\")(()=>le(f))}var JAe,KAe,sj,YAe,VAe,hnt,gnt,ZAe,AR=Ze(()=>{Dt();wue();JAe=Ie(\"https\"),KAe=Ie(\"http\"),sj=ut(Go());Rc();xc();bc();YAe=new Map,VAe=new Map,hnt=new KAe.Agent({keepAlive:!0}),gnt=new JAe.Agent({keepAlive:!0});ZAe=(a=>(a.GET=\"GET\",a.PUT=\"PUT\",a.POST=\"POST\",a.DELETE=\"DELETE\",a))(ZAe||{})});var fs={};Vt(fs,{availableParallelism:()=>cj,getArchitecture:()=>sv,getArchitectureName:()=>vnt,getArchitectureSet:()=>lj,getCaller:()=>bnt,major:()=>Int,openUrl:()=>Cnt});function Bnt(){if(process.platform!==\"linux\")return null;let t;try{t=ce.readFileSync(wnt)}catch{}if(typeof t<\"u\"){if(t&&(t.includes(\"GLIBC\")||t.includes(\"GNU libc\")||t.includes(\"GNU C Library\")))return\"glibc\";if(t&&t.includes(\"musl\"))return\"musl\"}let r=(process.report?.getReport()??{}).sharedObjects??[],s=/\\/(?:(ld-linux-|[^/]+-linux-gnu\\/)|(libc.musl-|ld-musl-))/;return p0(r,a=>{let n=a.match(s);if(!n)return p0.skip;if(n[1])return\"glibc\";if(n[2])return\"musl\";throw new Error(\"Assertion failed: Expected the libc variant to have been detected\")})??null}function sv(){return $Ae=$Ae??{os:(process.env.YARN_IS_TEST_ENV?process.env.YARN_OS_OVERRIDE:void 0)??process.platform,cpu:(process.env.YARN_IS_TEST_ENV?process.env.YARN_CPU_OVERRIDE:void 0)??process.arch,libc:(process.env.YARN_IS_TEST_ENV?process.env.YARN_LIBC_OVERRIDE:void 0)??Bnt()}}function vnt(t=sv()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function lj(){let t=sv();return epe=epe??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function Pnt(t){let e=Snt.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf(\"native\")===0,s=e[2]&&e[2].indexOf(\"eval\")===0,a=Dnt.exec(e[2]);return s&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||\"<unknown>\",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function bnt(){let e=new Error().stack.split(`\n`)[3];return Pnt(e)}function cj(){return typeof pR.default.availableParallelism<\"u\"?pR.default.availableParallelism():Math.max(1,pR.default.cpus().length)}var pR,Int,XAe,Cnt,wnt,$Ae,epe,Snt,Dnt,hR=Ze(()=>{Dt();pR=ut(Ie(\"os\"));gR();bc();Int=Number(process.versions.node.split(\".\")[0]),XAe=new Map([[\"darwin\",\"open\"],[\"linux\",\"xdg-open\"],[\"win32\",\"explorer.exe\"]]).get(process.platform),Cnt=typeof XAe<\"u\"?async t=>{try{return await uj(XAe,[t],{cwd:J.cwd()}),!0}catch{return!1}}:void 0,wnt=\"/usr/bin/ldd\";Snt=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,Dnt=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/});function gj(t,e,r,s,a){let n=YB(r);if(s.isArray||s.type===\"ANY\"&&Array.isArray(n))return Array.isArray(n)?n.map((c,f)=>fj(t,`${e}[${f}]`,c,s,a)):String(n).split(/,/).map(c=>fj(t,e,c,s,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings \"${e}\" cannot be an array`);return fj(t,e,r,s,a)}function fj(t,e,r,s,a){let n=YB(r);switch(s.type){case\"ANY\":return FQ(n);case\"SHAPE\":return Rnt(t,e,r,s,a);case\"MAP\":return Tnt(t,e,r,s,a)}if(n===null&&!s.isNullable&&s.default!==null)throw new Error(`Non-nullable configuration settings \"${e}\" cannot be set to null`);if(s.values?.includes(n))return n;let f=(()=>{if(s.type===\"BOOLEAN\"&&typeof n!=\"string\")return kB(n);if(typeof n!=\"string\")throw new Error(`Expected configuration setting \"${e}\" to be a string, got ${typeof n}`);let p=Vk(n,{env:t.env});switch(s.type){case\"ABSOLUTE_PATH\":{let h=a,E=U8(r);return E&&E[0]!==\"<\"&&(h=J.dirname(E)),J.resolve(h,fe.toPortablePath(p))}case\"LOCATOR_LOOSE\":return Qp(p,!1);case\"NUMBER\":return parseInt(p);case\"LOCATOR\":return Qp(p);case\"BOOLEAN\":return kB(p);default:return p}})();if(s.values&&!s.values.includes(f))throw new Error(`Invalid value, expected one of ${s.values.join(\", \")}`);return f}function Rnt(t,e,r,s,a){let n=YB(r);if(typeof n!=\"object\"||Array.isArray(n))throw new nt(`Object configuration settings \"${e}\" must be an object`);let c=dj(t,s,{ignoreArrays:!0});if(n===null)return c;for(let[f,p]of Object.entries(n)){let h=`${e}.${f}`;if(!s.properties[f])throw new nt(`Unrecognized configuration settings found: ${e}.${f} - run \"yarn config\" to see the list of settings supported in Yarn`);c.set(f,gj(t,h,p,s.properties[f],a))}return c}function Tnt(t,e,r,s,a){let n=YB(r),c=new Map;if(typeof n!=\"object\"||Array.isArray(n))throw new nt(`Map configuration settings \"${e}\" must be an object`);if(n===null)return c;for(let[f,p]of Object.entries(n)){let h=s.normalizeKeys?s.normalizeKeys(f):f,E=`${e}['${h}']`,C=s.valueDefinition;c.set(h,gj(t,E,p,C,a))}return c}function dj(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case\"SHAPE\":{if(e.isArray&&!r)return[];let s=new Map;for(let[a,n]of Object.entries(e.properties))s.set(a,dj(t,n));return s}case\"MAP\":return e.isArray&&!r?[]:new Map;case\"ABSOLUTE_PATH\":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(s=>J.normalize(s)):J.isAbsolute(e.default)?J.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(s=>J.resolve(t.projectCwd,s)):J.resolve(t.projectCwd,e.default);default:return e.default}}function mR(t,e,r){if(e.type===\"SECRET\"&&typeof t==\"string\"&&r.hideSecrets)return Qnt;if(e.type===\"ABSOLUTE_PATH\"&&typeof t==\"string\"&&r.getNativePaths)return fe.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let s=[];for(let a of t)s.push(mR(a,e,r));return s}if(e.type===\"MAP\"&&t instanceof Map){if(t.size===0)return;let s=new Map;for(let[a,n]of t.entries()){let c=mR(n,e.valueDefinition,r);typeof c<\"u\"&&s.set(a,c)}return s}if(e.type===\"SHAPE\"&&t instanceof Map){if(t.size===0)return;let s=new Map;for(let[a,n]of t.entries()){let c=e.properties[a],f=mR(n,c,r);typeof f<\"u\"&&s.set(a,f)}return s}return t}function Fnt(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(yR)&&(e=(0,rpe.default)(e.slice(yR.length)),t[e]=r);return t}function pj(){let t=`${yR}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r==\"string\")return r;return hj}async function tpe(t){try{return await ce.readFilePromise(t)}catch{return Buffer.of()}}async function Nnt(t,e){return Buffer.compare(...await Promise.all([tpe(t),tpe(e)]))===0}async function Ont(t,e){let[r,s]=await Promise.all([ce.statPromise(t),ce.statPromise(e)]);return r.dev===s.dev&&r.ino===s.ino}async function Mnt({configuration:t,selfPath:e}){let r=t.get(\"yarnPath\");return t.get(\"ignorePath\")||r===null||r===e||await Lnt(r,e)?null:r}var rpe,Lp,npe,ipe,spe,Aj,xnt,ov,knt,Mp,yR,hj,Qnt,wI,ope,ER,dR,Lnt,ze,av=Ze(()=>{Dt();wc();rpe=ut(Cre()),Lp=ut(Fd());Yt();npe=ut(hne()),ipe=Ie(\"module\"),spe=ut(Ld()),Aj=Ie(\"stream\");$ce();oI();Q8();R8();T8();fue();F8();tm();due();OQ();xc();I0();AR();bc();hR();Tp();Wo();xnt=function(){if(!Lp.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=fe.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=ce.readJsonSync(t)}catch{return!1}return!(!(\"repository\"in e)||!e.repository||(e.repository.private??!0))}(),ov=new Set([\"@yarnpkg/plugin-constraints\",\"@yarnpkg/plugin-exec\",\"@yarnpkg/plugin-interactive-tools\",\"@yarnpkg/plugin-stage\",\"@yarnpkg/plugin-typescript\",\"@yarnpkg/plugin-version\",\"@yarnpkg/plugin-workspace-tools\"]),knt=new Set([\"isTestEnv\",\"injectNpmUser\",\"injectNpmPassword\",\"injectNpm2FaToken\",\"zipDataEpilogue\",\"cacheCheckpointOverride\",\"cacheVersionOverride\",\"lockfileVersionOverride\",\"osOverride\",\"cpuOverride\",\"libcOverride\",\"binFolder\",\"version\",\"flags\",\"profile\",\"gpg\",\"ignoreNode\",\"wrapOutput\",\"home\",\"confDir\",\"registry\",\"ignoreCwd\"]),Mp=/^(?!v)[a-z0-9._-]+$/i,yR=\"yarn_\",hj=\".yarnrc.yml\",Qnt=\"********\",wI=(E=>(E.ANY=\"ANY\",E.BOOLEAN=\"BOOLEAN\",E.ABSOLUTE_PATH=\"ABSOLUTE_PATH\",E.LOCATOR=\"LOCATOR\",E.LOCATOR_LOOSE=\"LOCATOR_LOOSE\",E.NUMBER=\"NUMBER\",E.STRING=\"STRING\",E.SECRET=\"SECRET\",E.SHAPE=\"SHAPE\",E.MAP=\"MAP\",E))(wI||{}),ope=ht,ER=(r=>(r.JUNCTIONS=\"junctions\",r.SYMLINKS=\"symlinks\",r))(ER||{}),dR={lastUpdateCheck:{description:\"Last timestamp we checked whether new Yarn versions were available\",type:\"STRING\",default:null},yarnPath:{description:\"Path to the local executable that must be used over the global one\",type:\"ABSOLUTE_PATH\",default:null},ignorePath:{description:\"If true, the local executable will be ignored when using the global one\",type:\"BOOLEAN\",default:!1},globalFolder:{description:\"Folder where all system-global files are stored\",type:\"ABSOLUTE_PATH\",default:H8()},cacheFolder:{description:\"Folder where the cache files must be written\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/cache\"},compressionLevel:{description:\"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)\",type:\"NUMBER\",values:[\"mixed\",0,1,2,3,4,5,6,7,8,9],default:0},virtualFolder:{description:\"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/__virtual__\"},installStatePath:{description:\"Path of the file where the install state will be persisted\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/install-state.gz\"},immutablePatterns:{description:\"Array of glob patterns; files matching them won't be allowed to change during immutable installs\",type:\"STRING\",default:[],isArray:!0},rcFilename:{description:\"Name of the files where the configuration can be found\",type:\"STRING\",default:pj()},enableGlobalCache:{description:\"If true, the system-wide cache folder will be used regardless of `cache-folder`\",type:\"BOOLEAN\",default:!0},cacheMigrationMode:{description:\"Defines the conditions under which Yarn upgrades should cause the cache archives to be regenerated.\",type:\"STRING\",values:[\"always\",\"match-spec\",\"required-only\"],default:\"always\"},enableColors:{description:\"If true, the CLI is allowed to use colors in its output\",type:\"BOOLEAN\",default:Zk,defaultText:\"<dynamic>\"},enableHyperlinks:{description:\"If true, the CLI is allowed to use hyperlinks in its output\",type:\"BOOLEAN\",default:K4,defaultText:\"<dynamic>\"},enableInlineBuilds:{description:\"If true, the CLI will print the build output on the command line\",type:\"BOOLEAN\",default:Lp.isCI,defaultText:\"<dynamic>\"},enableMessageNames:{description:\"If true, the CLI will prefix most messages with codes suitable for search engines\",type:\"BOOLEAN\",default:!0},enableProgressBars:{description:\"If true, the CLI is allowed to show a progress bar for long-running events\",type:\"BOOLEAN\",default:!Lp.isCI,defaultText:\"<dynamic>\"},enableTimers:{description:\"If true, the CLI is allowed to print the time spent executing commands\",type:\"BOOLEAN\",default:!0},enableTips:{description:\"If true, installs will print a helpful message every day of the week\",type:\"BOOLEAN\",default:!Lp.isCI,defaultText:\"<dynamic>\"},preferInteractive:{description:\"If true, the CLI will automatically use the interactive mode when called from a TTY\",type:\"BOOLEAN\",default:!1},preferTruncatedLines:{description:\"If true, the CLI will truncate lines that would go beyond the size of the terminal\",type:\"BOOLEAN\",default:!1},progressBarStyle:{description:\"Which style of progress bar should be used (only when progress bars are enabled)\",type:\"STRING\",default:void 0,defaultText:\"<dynamic>\"},defaultLanguageName:{description:\"Default language mode that should be used when a package doesn't offer any insight\",type:\"STRING\",default:\"node\"},defaultProtocol:{description:\"Default resolution protocol used when resolving pure semver and tag ranges\",type:\"STRING\",default:\"npm:\"},enableTransparentWorkspaces:{description:\"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol\",type:\"BOOLEAN\",default:!0},supportedArchitectures:{description:\"Architectures that Yarn will fetch and inject into the resolver\",type:\"SHAPE\",properties:{os:{description:\"Array of supported process.platform strings, or null to target them all\",type:\"STRING\",isArray:!0,isNullable:!0,default:[\"current\"]},cpu:{description:\"Array of supported process.arch strings, or null to target them all\",type:\"STRING\",isArray:!0,isNullable:!0,default:[\"current\"]},libc:{description:\"Array of supported libc libraries, or null to target them all\",type:\"STRING\",isArray:!0,isNullable:!0,default:[\"current\"]}}},enableMirror:{description:\"If true, the downloaded packages will be retrieved and stored in both the local and global folders\",type:\"BOOLEAN\",default:!0},enableNetwork:{description:\"If false, Yarn will refuse to use the network if required to\",type:\"BOOLEAN\",default:!0},enableOfflineMode:{description:\"If true, Yarn will attempt to retrieve files and metadata from the global cache rather than the network\",type:\"BOOLEAN\",default:!1},httpProxy:{description:\"URL of the http proxy that must be used for outgoing http requests\",type:\"STRING\",default:null},httpsProxy:{description:\"URL of the http proxy that must be used for outgoing https requests\",type:\"STRING\",default:null},unsafeHttpWhitelist:{description:\"List of the hostnames for which http queries are allowed (glob patterns are supported)\",type:\"STRING\",default:[],isArray:!0},httpTimeout:{description:\"Timeout of each http request in milliseconds\",type:\"NUMBER\",default:6e4},httpRetry:{description:\"Retry times on http failure\",type:\"NUMBER\",default:3},networkConcurrency:{description:\"Maximal number of concurrent requests\",type:\"NUMBER\",default:50},taskPoolConcurrency:{description:\"Maximal amount of concurrent heavy task processing\",type:\"NUMBER\",default:cj()},taskPoolMode:{description:\"Execution strategy for heavy tasks\",type:\"STRING\",values:[\"async\",\"workers\"],default:\"workers\"},networkSettings:{description:\"Network settings per hostname (glob patterns are supported)\",type:\"MAP\",valueDefinition:{description:\"\",type:\"SHAPE\",properties:{httpsCaFilePath:{description:\"Path to file containing one or multiple Certificate Authority signing certificates\",type:\"ABSOLUTE_PATH\",default:null},enableNetwork:{description:\"If false, the package manager will refuse to use the network if required to\",type:\"BOOLEAN\",default:null},httpProxy:{description:\"URL of the http proxy that must be used for outgoing http requests\",type:\"STRING\",default:null},httpsProxy:{description:\"URL of the http proxy that must be used for outgoing https requests\",type:\"STRING\",default:null},httpsKeyFilePath:{description:\"Path to file containing private key in PEM format\",type:\"ABSOLUTE_PATH\",default:null},httpsCertFilePath:{description:\"Path to file containing certificate chain in PEM format\",type:\"ABSOLUTE_PATH\",default:null}}}},httpsCaFilePath:{description:\"A path to a file containing one or multiple Certificate Authority signing certificates\",type:\"ABSOLUTE_PATH\",default:null},httpsKeyFilePath:{description:\"Path to file containing private key in PEM format\",type:\"ABSOLUTE_PATH\",default:null},httpsCertFilePath:{description:\"Path to file containing certificate chain in PEM format\",type:\"ABSOLUTE_PATH\",default:null},enableStrictSsl:{description:\"If false, SSL certificate errors will be ignored\",type:\"BOOLEAN\",default:!0},logFilters:{description:\"Overrides for log levels\",type:\"SHAPE\",isArray:!0,concatenateValues:!0,properties:{code:{description:\"Code of the messages covered by this override\",type:\"STRING\",default:void 0},text:{description:\"Code of the texts covered by this override\",type:\"STRING\",default:void 0},pattern:{description:\"Code of the patterns covered by this override\",type:\"STRING\",default:void 0},level:{description:\"Log level override, set to null to remove override\",type:\"STRING\",values:Object.values($k),isNullable:!0,default:void 0}}},enableTelemetry:{description:\"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry\",type:\"BOOLEAN\",default:!0},telemetryInterval:{description:\"Minimal amount of time between two telemetry uploads, in days\",type:\"NUMBER\",default:7},telemetryUserId:{description:\"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.\",type:\"STRING\",default:null},enableHardenedMode:{description:\"If true, automatically enable --check-resolutions --refresh-lockfile on installs\",type:\"BOOLEAN\",default:Lp.isPR&&xnt,defaultText:\"<true on public PRs>\"},enableScripts:{description:\"If true, packages are allowed to have install scripts by default\",type:\"BOOLEAN\",default:!0},enableStrictSettings:{description:\"If true, unknown settings will cause Yarn to abort\",type:\"BOOLEAN\",default:!0},enableImmutableCache:{description:\"If true, the cache is reputed immutable and actions that would modify it will throw\",type:\"BOOLEAN\",default:!1},enableCacheClean:{description:\"If false, disallows the `cache clean` command\",type:\"BOOLEAN\",default:!0},checksumBehavior:{description:\"Enumeration defining what to do when a checksum doesn't match expectations\",type:\"STRING\",default:\"throw\"},injectEnvironmentFiles:{description:\"List of all the environment files that Yarn should inject inside the process when it starts\",type:\"ABSOLUTE_PATH\",default:[\".env.yarn?\"],isArray:!0},packageExtensions:{description:\"Map of package corrections to apply on the dependency tree\",type:\"MAP\",valueDefinition:{description:\"The extension that will be applied to any package whose version matches the specified range\",type:\"SHAPE\",properties:{dependencies:{description:\"The set of dependencies that must be made available to the current package in order for it to work properly\",type:\"MAP\",valueDefinition:{description:\"A range\",type:\"STRING\"}},peerDependencies:{description:\"Inherited dependencies - the consumer of the package will be tasked to provide them\",type:\"MAP\",valueDefinition:{description:\"A semver range\",type:\"STRING\"}},peerDependenciesMeta:{description:\"Extra information related to the dependencies listed in the peerDependencies field\",type:\"MAP\",valueDefinition:{description:\"The peerDependency meta\",type:\"SHAPE\",properties:{optional:{description:\"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error\",type:\"BOOLEAN\",default:!1}}}}}}}};Lnt=process.platform===\"win32\"?Nnt:Ont;ze=class t{constructor(e){this.isCI=Lp.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.env={};this.limits=new Map;this.packageExtensions=null;this.startingCwd=e}static{this.deleteProperty=Symbol()}static{this.telemetry=null}static create(e,r,s){let a=new t(e);typeof r<\"u\"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(dR);let n=typeof s<\"u\"?s:r instanceof Map?r:new Map;for(let[c,f]of n)a.activatePlugin(c,f);return a}static async find(e,r,{strict:s=!0,usePathCheck:a=null,useRc:n=!0}={}){let c=Fnt();delete c.rcFilename;let f=new t(e),p=await t.findRcFiles(e),h=await t.findFolderRcFile(fI());h&&(p.find(me=>me.path===h.path)||p.unshift(h));let E=gue(p.map(le=>[le.path,le.data])),C=vt.dot,S=new Set(Object.keys(dR)),b=({yarnPath:le,ignorePath:me,injectEnvironmentFiles:pe})=>({yarnPath:le,ignorePath:me,injectEnvironmentFiles:pe}),I=({yarnPath:le,ignorePath:me,injectEnvironmentFiles:pe,...Be})=>{let Ce={};for(let[g,we]of Object.entries(Be))S.has(g)&&(Ce[g]=we);return Ce},T=({yarnPath:le,ignorePath:me,...pe})=>{let Be={};for(let[Ce,g]of Object.entries(pe))S.has(Ce)||(Be[Ce]=g);return Be};if(f.importSettings(b(dR)),f.useWithSource(\"<environment>\",b(c),e,{strict:!1}),E){let[le,me]=E;f.useWithSource(le,b(me),C,{strict:!1})}if(a){if(await Mnt({configuration:f,selfPath:a})!==null)return f;f.useWithSource(\"<override>\",{ignorePath:!0},e,{strict:!1,overwrite:!0})}let N=await t.findProjectCwd(e);f.startingCwd=e,f.projectCwd=N;let U=Object.assign(Object.create(null),process.env);f.env=U;let W=await Promise.all(f.get(\"injectEnvironmentFiles\").map(async le=>{let me=le.endsWith(\"?\")?await ce.readFilePromise(le.slice(0,-1),\"utf8\").catch(()=>\"\"):await ce.readFilePromise(le,\"utf8\");return(0,npe.parse)(me)}));for(let le of W)for(let[me,pe]of Object.entries(le))f.env[me]=Vk(pe,{env:U});if(f.importSettings(I(dR)),f.useWithSource(\"<environment>\",I(c),e,{strict:s}),E){let[le,me]=E;f.useWithSource(le,I(me),C,{strict:s})}let ee=le=>\"default\"in le?le.default:le,ie=new Map([[\"@@core\",Xce]]);if(r!==null)for(let le of r.plugins.keys())ie.set(le,ee(r.modules.get(le)));for(let[le,me]of ie)f.activatePlugin(le,me);let ue=new Map([]);if(r!==null){let le=new Map;for(let[Be,Ce]of r.modules)le.set(Be,()=>Ce);let me=new Set,pe=async(Be,Ce)=>{let{factory:g,name:we}=bp(Be);if(!g||me.has(we))return;let ye=new Map(le),Ae=X=>{if((0,ipe.isBuiltin)(X))return bp(X);if(ye.has(X))return ye.get(X)();throw new nt(`This plugin cannot access the package referenced via ${X} which is neither a builtin, nor an exposed entry`)},se=await qE(async()=>ee(await g(Ae)),X=>`${X} (when initializing ${we}, defined in ${Ce})`);le.set(we,()=>se),me.add(we),ue.set(we,se)};if(c.plugins)for(let Be of c.plugins.split(\";\")){let Ce=J.resolve(e,fe.toPortablePath(Be));await pe(Ce,\"<environment>\")}for(let{path:Be,cwd:Ce,data:g}of p)if(n&&Array.isArray(g.plugins))for(let we of g.plugins){let ye=typeof we!=\"string\"?we.path:we,Ae=we?.spec??\"\",se=we?.checksum??\"\";if(ov.has(Ae))continue;let X=J.resolve(Ce,fe.toPortablePath(ye));if(!await ce.existsPromise(X)){if(!Ae){let mt=Ht(f,J.basename(X,\".cjs\"),ht.NAME),j=Ht(f,\".gitignore\",ht.NAME),rt=Ht(f,f.values.get(\"rcFilename\"),ht.NAME),Fe=Ht(f,\"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored\",ht.URL);throw new nt(`Missing source for the ${mt} plugin - please try to remove the plugin from ${rt} then reinstall it manually. This error usually occurs because ${j} is incorrect, check ${Fe} to make sure your plugin folder isn't gitignored.`)}if(!Ae.match(/^https?:/)){let mt=Ht(f,J.basename(X,\".cjs\"),ht.NAME),j=Ht(f,f.values.get(\"rcFilename\"),ht.NAME);throw new nt(`Failed to recognize the source for the ${mt} plugin - please try to delete the plugin from ${j} then reinstall it manually.`)}let De=await oj(Ae,{configuration:f}),Te=cs(De);if(se&&se!==Te){let mt=Ht(f,J.basename(X,\".cjs\"),ht.NAME),j=Ht(f,f.values.get(\"rcFilename\"),ht.NAME),rt=Ht(f,`yarn plugin import ${Ae}`,ht.CODE);throw new nt(`Failed to fetch the ${mt} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${j} then run ${rt} to reimport it.`)}await ce.mkdirPromise(J.dirname(X),{recursive:!0}),await ce.writeFilePromise(X,De)}await pe(X,Be)}}for(let[le,me]of ue)f.activatePlugin(le,me);if(f.useWithSource(\"<environment>\",T(c),e,{strict:s}),E){let[le,me]=E;f.useWithSource(le,T(me),C,{strict:s})}return f.get(\"enableGlobalCache\")&&(f.values.set(\"cacheFolder\",`${f.get(\"globalFolder\")}/cache`),f.sources.set(\"cacheFolder\",\"<internal>\")),f}static async findRcFiles(e){let r=pj(),s=[],a=e,n=null;for(;a!==n;){n=a;let c=J.join(n,r);if(ce.existsSync(c)){let f,p;try{p=await ce.readFilePromise(c,\"utf8\"),f=as(p)}catch{let h=\"\";throw p?.match(/^\\s+(?!-)[^:]+\\s+\\S+/m)&&(h=\" (in particular, make sure you list the colons after each key name)\"),new nt(`Parse error when loading ${c}; please check it's proper Yaml${h}`)}s.unshift({path:c,cwd:n,data:f})}a=J.dirname(n)}return s}static async findFolderRcFile(e){let r=J.join(e,Er.rc),s;try{s=await ce.readFilePromise(r,\"utf8\")}catch(n){if(n.code===\"ENOENT\")return null;throw n}let a=as(s);return{path:r,cwd:e,data:a}}static async findProjectCwd(e){let r=null,s=e,a=null;for(;s!==a;){if(a=s,ce.existsSync(J.join(a,Er.lockfile)))return a;ce.existsSync(J.join(a,Er.manifest))&&(r=a),s=J.dirname(a)}return r}static async updateConfiguration(e,r,s={}){let a=pj(),n=J.join(e,a),c=ce.existsSync(n)?as(await ce.readFilePromise(n,\"utf8\")):{},f=!1,p;if(typeof r==\"function\"){try{p=r(c)}catch{p=r({})}if(p===c)return!1}else{p=c;for(let h of Object.keys(r)){let E=c[h],C=r[h],S;if(typeof C==\"function\")try{S=C(E)}catch{S=C(void 0)}else S=C;E!==S&&(S===t.deleteProperty?delete p[h]:p[h]=S,f=!0)}if(!f)return!1}return await ce.changeFilePromise(n,nl(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await t.updateConfiguration(e,s=>{let a=s.plugins??[];if(a.length===0)return{...s,plugins:r};let n=[],c=[...r];for(let f of a){let p=typeof f!=\"string\"?f.path:f,h=c.find(E=>E.path===p);h?(n.push(h),c=c.filter(E=>E!==h)):n.push(f)}return n.push(...c),{...s,plugins:n}})}static async updateHomeConfiguration(e){let r=fI();return await t.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<\"u\"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,s]of Object.entries(e))if(s!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings \"${r}\"`);this.settings.set(r,s),this.values.set(r,dj(this,s))}}useWithSource(e,r,s,a){try{this.use(e,r,s,a)}catch(n){throw n.message+=` (in ${Ht(this,e,ht.PATH)})`,n}}use(e,r,s,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get(\"enableStrictSettings\");for(let c of[\"enableStrictSettings\",...Object.keys(r)]){let f=r[c],p=U8(f);if(p&&(e=p),typeof f>\"u\"||c===\"plugins\"||e===\"<environment>\"&&knt.has(c))continue;if(c===\"rcFilename\")throw new nt(`The rcFilename settings can only be set via ${`${yR}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(c);if(!h){let C=fI(),S=e[0]!==\"<\"?J.dirname(e):null;if(a&&!(S!==null?C===S:!1))throw new nt(`Unrecognized or legacy configuration settings found: ${c} - run \"yarn config\" to see the list of settings supported in Yarn`);this.invalid.set(c,e);continue}if(this.sources.has(c)&&!(n||h.type===\"MAP\"||h.isArray&&h.concatenateValues))continue;let E;try{E=gj(this,c,f,h,s)}catch(C){throw C.message+=` in ${Ht(this,e,ht.PATH)}`,C}if(c===\"enableStrictSettings\"&&e!==\"<environment>\"){a=E;continue}if(h.type===\"MAP\"){let C=this.values.get(c);this.values.set(c,new Map(n?[...C,...E]:[...E,...C])),this.sources.set(c,`${this.sources.get(c)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let C=this.values.get(c);this.values.set(c,n?[...C,...E]:[...E,...C]),this.sources.set(c,`${this.sources.get(c)}, ${e}`)}else this.values.set(c,E),this.sources.set(c,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key \"${e}\"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:s=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>\"u\")throw new nt(`Couldn't find a configuration settings named \"${e}\"`);return mR(a,n,{hideSecrets:r,getNativePaths:s})}getSubprocessStreams(e,{header:r,prefix:s,report:a}){let n,c,f=ce.createWriteStream(e);if(this.get(\"enableInlineBuilds\")){let p=a.createStreamReporter(`${s} ${Ht(this,\"STDOUT\",\"green\")}`),h=a.createStreamReporter(`${s} ${Ht(this,\"STDERR\",\"red\")}`);n=new Aj.PassThrough,n.pipe(p),n.pipe(f),c=new Aj.PassThrough,c.pipe(h),c.pipe(f)}else n=f,c=f,typeof r<\"u\"&&n.write(`${r}\n`);return{stdout:n,stderr:c}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let s of r.resolvers||[])e.push(new s);return new rm([new TQ,new Ei,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let s of r.fetchers||[])e.push(new s);return new aI([new lI,new cI,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let s of r.linkers||[])e.push(new s);return e}getSupportedArchitectures(){let e=sv(),r=this.get(\"supportedArchitectures\"),s=r.get(\"os\");s!==null&&(s=s.map(c=>c===\"current\"?e.os:c));let a=r.get(\"cpu\");a!==null&&(a=a.map(c=>c===\"current\"?e.cpu:c));let n=r.get(\"libc\");return n!==null&&(n=Wl(n,c=>c===\"current\"?e.libc??Wl.skip:c)),{os:s,cpu:a,libc:n}}isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get(\"preferInteractive\"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(s,a,{userProvided:n=!1}={})=>{if(!cl(s.range))throw new Error(\"Only semver ranges are allowed as keys for the packageExtensions setting\");let c=new Ut;c.load(a,{yamlCompatibilityMode:!0});let f=xB(e,s.identHash),p=[];f.push([s.range,p]);let h={status:\"inactive\",userProvided:n,parentDescriptor:s};for(let E of c.dependencies.values())p.push({...h,type:\"Dependency\",descriptor:E});for(let E of c.peerDependencies.values())p.push({...h,type:\"PeerDependency\",descriptor:E});for(let[E,C]of c.peerDependenciesMeta)for(let[S,b]of Object.entries(C))p.push({...h,type:\"PeerDependencyMeta\",selector:E,key:S,value:b})};await this.triggerHook(s=>s.registerPackageExtensions,this,r);for(let[s,a]of this.get(\"packageExtensions\"))r(C0(s,!0),Yk(a),{userProvided:!0});return e}normalizeLocator(e){return cl(e.reference)?Ws(e,`${this.get(\"defaultProtocol\")}${e.reference}`):Mp.test(e.reference)?Ws(e,`${this.get(\"defaultProtocol\")}${e.reference}`):e}normalizeDependency(e){return cl(e.range)?On(e,`${this.get(\"defaultProtocol\")}${e.range}`):Mp.test(e.range)?On(e,`${this.get(\"defaultProtocol\")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,s])=>[r,this.normalizeDependency(s)]))}normalizePackage(e,{packageExtensions:r}){let s=LB(e),a=r.get(e.identHash);if(typeof a<\"u\"){let c=e.version;if(c!==null){for(let[f,p]of a)if(Xf(c,f))for(let h of p)switch(h.status===\"inactive\"&&(h.status=\"redundant\"),h.type){case\"Dependency\":typeof s.dependencies.get(h.descriptor.identHash)>\"u\"&&(h.status=\"active\",s.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case\"PeerDependency\":typeof s.peerDependencies.get(h.descriptor.identHash)>\"u\"&&(h.status=\"active\",s.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case\"PeerDependencyMeta\":{let E=s.peerDependenciesMeta.get(h.selector);(typeof E>\"u\"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status=\"active\",Yl(s.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:H4(h)}}}let n=c=>c.scope?`${c.scope}__${c.name}`:`${c.name}`;for(let c of s.peerDependenciesMeta.keys()){let f=Sa(c);s.peerDependencies.has(f.identHash)||s.peerDependencies.set(f.identHash,On(f,\"*\"))}for(let c of s.peerDependencies.values()){if(c.scope===\"types\")continue;let f=n(c),p=Da(\"types\",f),h=un(p);s.peerDependencies.has(p.identHash)||s.peerDependenciesMeta.has(h)||s.dependencies.has(p.identHash)||(s.peerDependencies.set(p.identHash,On(p,\"*\")),s.peerDependenciesMeta.set(h,{optional:!0}))}return s.dependencies=new Map(qs(s.dependencies,([,c])=>al(c))),s.peerDependencies=new Map(qs(s.peerDependencies,([,c])=>al(c))),s}getLimit(e){return Yl(this.limits,e,()=>(0,spe.default)(this.get(e)))}async triggerHook(e,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=e(a);n&&await n(...r)}}async triggerMultipleHooks(e,r){for(let s of r)await this.triggerHook(e,...s)}async reduceHook(e,r,...s){let a=r;for(let n of this.plugins.values()){let c=n.hooks;if(!c)continue;let f=e(c);f&&(a=await f(a,...s))}return a}async firstHook(e,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=e(a);if(!n)continue;let c=await n(...r);if(typeof c<\"u\")return c}return null}}});var qr={};Vt(qr,{EndStrategy:()=>Ij,ExecError:()=>IR,PipeError:()=>lv,execvp:()=>uj,pipevp:()=>Wu});function om(t){return t!==null&&typeof t.fd==\"number\"}function mj(){}function yj(){for(let t of am)t.kill()}async function Wu(t,e,{cwd:r,env:s=process.env,strict:a=!1,stdin:n=null,stdout:c,stderr:f,end:p=2}){let h=[\"pipe\",\"pipe\",\"pipe\"];n===null?h[0]=\"ignore\":om(n)&&(h[0]=n),om(c)&&(h[1]=c),om(f)&&(h[2]=f);let E=(0,Ej.default)(t,e,{cwd:fe.fromPortablePath(r),env:{...s,PWD:fe.fromPortablePath(r)},stdio:h});am.add(E),am.size===1&&(process.on(\"SIGINT\",mj),process.on(\"SIGTERM\",yj)),!om(n)&&n!==null&&n.pipe(E.stdin),om(c)||E.stdout.pipe(c,{end:!1}),om(f)||E.stderr.pipe(f,{end:!1});let C=()=>{for(let S of new Set([c,f]))om(S)||S.end()};return new Promise((S,b)=>{E.on(\"error\",I=>{am.delete(E),am.size===0&&(process.off(\"SIGINT\",mj),process.off(\"SIGTERM\",yj)),(p===2||p===1)&&C(),b(I)}),E.on(\"close\",(I,T)=>{am.delete(E),am.size===0&&(process.off(\"SIGINT\",mj),process.off(\"SIGTERM\",yj)),(p===2||p===1&&I!==0)&&C(),I===0||!a?S({code:Cj(I,T)}):b(new lv({fileName:t,code:I,signal:T}))})})}async function uj(t,e,{cwd:r,env:s=process.env,encoding:a=\"utf8\",strict:n=!1}){let c=[\"ignore\",\"pipe\",\"pipe\"],f=[],p=[],h=fe.fromPortablePath(r);typeof s.PWD<\"u\"&&(s={...s,PWD:h});let E=(0,Ej.default)(t,e,{cwd:h,env:s,stdio:c});return E.stdout.on(\"data\",C=>{f.push(C)}),E.stderr.on(\"data\",C=>{p.push(C)}),await new Promise((C,S)=>{E.on(\"error\",b=>{let I=ze.create(r),T=Ht(I,t,ht.PATH);S(new jt(1,`Process ${T} failed to spawn`,N=>{N.reportError(1,`  ${Kf(I,{label:\"Thrown Error\",value:_u(ht.NO_HINT,b.message)})}`)}))}),E.on(\"close\",(b,I)=>{let T=a===\"buffer\"?Buffer.concat(f):Buffer.concat(f).toString(a),N=a===\"buffer\"?Buffer.concat(p):Buffer.concat(p).toString(a);b===0||!n?C({code:Cj(b,I),stdout:T,stderr:N}):S(new IR({fileName:t,code:b,signal:I,stdout:T,stderr:N}))})})}function Cj(t,e){let r=Unt.get(e);return typeof r<\"u\"?128+r:t??1}function _nt(t,e,{configuration:r,report:s}){s.reportError(1,`  ${Kf(r,t!==null?{label:\"Exit Code\",value:_u(ht.NUMBER,t)}:{label:\"Exit Signal\",value:_u(ht.CODE,e)})}`)}var Ej,Ij,lv,IR,am,Unt,gR=Ze(()=>{Dt();Ej=ut(UU());av();Rc();xc();Ij=(s=>(s[s.Never=0]=\"Never\",s[s.ErrorCode=1]=\"ErrorCode\",s[s.Always=2]=\"Always\",s))(Ij||{}),lv=class extends jt{constructor({fileName:e,code:r,signal:s}){let a=ze.create(J.cwd()),n=Ht(a,e,ht.PATH);super(1,`Child ${n} reported an error`,c=>{_nt(r,s,{configuration:a,report:c})}),this.code=Cj(r,s)}},IR=class extends lv{constructor({fileName:e,code:r,signal:s,stdout:a,stderr:n}){super({fileName:e,code:r,signal:s}),this.stdout=a,this.stderr=n}};am=new Set;Unt=new Map([[\"SIGINT\",2],[\"SIGQUIT\",3],[\"SIGKILL\",9],[\"SIGTERM\",15]])});function lpe(t){ape=t}function cv(){return typeof wj>\"u\"&&(wj=ape()),wj}var wj,ape,Bj=Ze(()=>{ape=()=>{throw new Error(\"Assertion failed: No libzip instance is available, and no factory was configured\")}});var cpe=_((CR,Sj)=>{var Hnt=Object.assign({},Ie(\"fs\")),vj=function(){var t=typeof document<\"u\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<\"u\"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<\"u\"?e:{},s,a;r.ready=new Promise(function(Ke,st){s=Ke,a=st});var n={},c;for(c in r)r.hasOwnProperty(c)&&(n[c]=r[c]);var f=[],p=\"./this.program\",h=function(Ke,st){throw st},E=!1,C=!0,S=\"\";function b(Ke){return r.locateFile?r.locateFile(Ke,S):S+Ke}var I,T,N,U;C&&(E?S=Ie(\"path\").dirname(S)+\"/\":S=__dirname+\"/\",I=function(st,St){var lr=Me(st);return lr?St?lr:lr.toString():(N||(N=Hnt),U||(U=Ie(\"path\")),st=U.normalize(st),N.readFileSync(st,St?null:\"utf8\"))},T=function(st){var St=I(st,!0);return St.buffer||(St=new Uint8Array(St)),we(St.buffer),St},process.argv.length>1&&(p=process.argv[1].replace(/\\\\/g,\"/\")),f=process.argv.slice(2),h=function(Ke){process.exit(Ke)},r.inspect=function(){return\"[Emscripten Module object]\"});var W=r.print||console.log.bind(console),ee=r.printErr||console.warn.bind(console);for(c in n)n.hasOwnProperty(c)&&(r[c]=n[c]);n=null,r.arguments&&(f=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var ie=0,ue=function(Ke){ie=Ke},le;r.wasmBinary&&(le=r.wasmBinary);var me=r.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&ts(\"no native wasm support detected\");function pe(Ke,st,St){switch(st=st||\"i8\",st.charAt(st.length-1)===\"*\"&&(st=\"i32\"),st){case\"i1\":return Ve[Ke>>0];case\"i8\":return Ve[Ke>>0];case\"i16\":return mh((Ke>>1)*2);case\"i32\":return to((Ke>>2)*4);case\"i64\":return to((Ke>>2)*4);case\"float\":return Af((Ke>>2)*4);case\"double\":return dh((Ke>>3)*8);default:ts(\"invalid type for getValue: \"+st)}return null}var Be,Ce=!1,g;function we(Ke,st){Ke||ts(\"Assertion failed: \"+st)}function ye(Ke){var st=r[\"_\"+Ke];return we(st,\"Cannot call unknown function \"+Ke+\", make sure it is exported\"),st}function Ae(Ke,st,St,lr,te){var Ee={string:function(Gi){var Rn=0;if(Gi!=null&&Gi!==0){var Ga=(Gi.length<<2)+1;Rn=wi(Ga),mt(Gi,Rn,Ga)}return Rn},array:function(Gi){var Rn=wi(Gi.length);return Fe(Gi,Rn),Rn}};function Oe(Gi){return st===\"string\"?De(Gi):st===\"boolean\"?!!Gi:Gi}var dt=ye(Ke),Et=[],Pt=0;if(lr)for(var tr=0;tr<lr.length;tr++){var An=Ee[St[tr]];An?(Pt===0&&(Pt=gf()),Et[tr]=An(lr[tr])):Et[tr]=lr[tr]}var li=dt.apply(null,Et);return li=Oe(li),Pt!==0&&fc(Pt),li}function se(Ke,st,St,lr){St=St||[];var te=St.every(function(Oe){return Oe===\"number\"}),Ee=st!==\"string\";return Ee&&te&&!lr?ye(Ke):function(){return Ae(Ke,st,St,arguments,lr)}}var X=new TextDecoder(\"utf8\");function De(Ke,st){if(!Ke)return\"\";for(var St=Ke+st,lr=Ke;!(lr>=St)&&ke[lr];)++lr;return X.decode(ke.subarray(Ke,lr))}function Te(Ke,st,St,lr){if(!(lr>0))return 0;for(var te=St,Ee=St+lr-1,Oe=0;Oe<Ke.length;++Oe){var dt=Ke.charCodeAt(Oe);if(dt>=55296&&dt<=57343){var Et=Ke.charCodeAt(++Oe);dt=65536+((dt&1023)<<10)|Et&1023}if(dt<=127){if(St>=Ee)break;st[St++]=dt}else if(dt<=2047){if(St+1>=Ee)break;st[St++]=192|dt>>6,st[St++]=128|dt&63}else if(dt<=65535){if(St+2>=Ee)break;st[St++]=224|dt>>12,st[St++]=128|dt>>6&63,st[St++]=128|dt&63}else{if(St+3>=Ee)break;st[St++]=240|dt>>18,st[St++]=128|dt>>12&63,st[St++]=128|dt>>6&63,st[St++]=128|dt&63}}return st[St]=0,St-te}function mt(Ke,st,St){return Te(Ke,ke,st,St)}function j(Ke){for(var st=0,St=0;St<Ke.length;++St){var lr=Ke.charCodeAt(St);lr>=55296&&lr<=57343&&(lr=65536+((lr&1023)<<10)|Ke.charCodeAt(++St)&1023),lr<=127?++st:lr<=2047?st+=2:lr<=65535?st+=3:st+=4}return st}function rt(Ke){var st=j(Ke)+1,St=La(st);return St&&Te(Ke,Ve,St,st),St}function Fe(Ke,st){Ve.set(Ke,st)}function Ne(Ke,st){return Ke%st>0&&(Ke+=st-Ke%st),Ke}var be,Ve,ke,it,Ue,x,w,P,y,F;function z(Ke){be=Ke,r.HEAP_DATA_VIEW=F=new DataView(Ke),r.HEAP8=Ve=new Int8Array(Ke),r.HEAP16=it=new Int16Array(Ke),r.HEAP32=x=new Int32Array(Ke),r.HEAPU8=ke=new Uint8Array(Ke),r.HEAPU16=Ue=new Uint16Array(Ke),r.HEAPU32=w=new Uint32Array(Ke),r.HEAPF32=P=new Float32Array(Ke),r.HEAPF64=y=new Float64Array(Ke)}var Z=r.INITIAL_MEMORY||16777216,$,oe=[],xe=[],Re=[],lt=!1;function Ct(){if(r.preRun)for(typeof r.preRun==\"function\"&&(r.preRun=[r.preRun]);r.preRun.length;)bt(r.preRun.shift());Rs(oe)}function qt(){lt=!0,Rs(xe)}function ir(){if(r.postRun)for(typeof r.postRun==\"function\"&&(r.postRun=[r.postRun]);r.postRun.length;)br(r.postRun.shift());Rs(Re)}function bt(Ke){oe.unshift(Ke)}function gn(Ke){xe.unshift(Ke)}function br(Ke){Re.unshift(Ke)}var Ir=0,Or=null,nn=null;function ai(Ke){Ir++,r.monitorRunDependencies&&r.monitorRunDependencies(Ir)}function Io(Ke){if(Ir--,r.monitorRunDependencies&&r.monitorRunDependencies(Ir),Ir==0&&(Or!==null&&(clearInterval(Or),Or=null),nn)){var st=nn;nn=null,st()}}r.preloadedImages={},r.preloadedAudios={};function ts(Ke){r.onAbort&&r.onAbort(Ke),Ke+=\"\",ee(Ke),Ce=!0,g=1,Ke=\"abort(\"+Ke+\"). Build with -s ASSERTIONS=1 for more info.\";var st=new WebAssembly.RuntimeError(Ke);throw a(st),st}var $s=\"data:application/octet-stream;base64,\";function Co(Ke){return Ke.startsWith($s)}var Hi=\"data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYgABAGIAEiAA0ACwwDCwJAAkBBEBAJIgUEQCAFIAY7AQogBSAHOwEIIAUgAjYCBCAFQQA2AgAgBkUNASAFIAggBhBjIgY2AgwgBg0CIAUQBgtBACECIAQEQCAEQQA2AgQgBEEONgIACyABEAggAEUNBANAIAAoAgAhASAAKAIMEAYgABAGIAEiAA0ACwwECyAFQQA2AgwLAkAgAEUEQCAFIQAMAQsgCSAFNgIACyAFIQkgAS0AAA0ACwsCQCABLQAABH8gASkDECABKQMIUQVBAAsNACABIAEtAAAEfiABKQMIIAEpAxB9BUIACyIKQv////8PgxATIQICQCAKpyIFQQNLDQAgAkUNACACQcEUIAUQPUUNAQtBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAQNAIAAoAgAhASAAKAIMEAYgABAGIAEiAA0ACwwBCyABEAggAwRAIAMgADYCAEEBDwtBASECIABFDQADQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsLIAILvgEBBX8gAAR/IAAhAgNAIAIiBCgCACICDQALIAEEQANAIAEiAy8BCCEGIAMoAgAhASAAIQICQAJAA0ACQCACLwEIIAZHDQAgAi8BCiIFIAMvAQpHDQAgBUUNAiACKAIMIAMoAgwgBRA9RQ0CCyACKAIAIgINAAsgA0EANgIAIAQgAzYCACADIQQMAQsgAiACKAIEIAMoAgRBgAZxcjYCBCADQQA2AgAgAygCDBAGIAMQBgsgAQ0ACwsgAAUgAQsLVQICfgF/AkACQCAALQAARQ0AIAApAxAiAkIBfCIDIAJUDQAgAyAAKQMIWA0BCyAAQQA6AAAPCyAAKAIEIgRFBEAPCyAAIAM3AxAgBCACp2ogAToAAAt9AQN/IwBBEGsiAiQAIAIgATYCDEF/IQMCQCAALQAoDQACQCAAKAIAIgRFDQAgBCABEHFBf0oNACAAKAIAIQEgAEEMaiIABEAgACABKAIMNgIAIAAgASgCEDYCBAsMAQsgACACQQxqQgRBExAOQj+HpyEDCyACQRBqJAAgAwvdAQEDfyABIAApAzBaBEAgAEEIagRAIABBADYCDCAAQRI2AggLQX8PCyAAQQhqIQIgAC0AGEECcQRAIAIEQCACQQA2AgQgAkEZNgIAC0F/DwtBfyEDAkAgACABQQAgAhBTIgRFDQAgACgCUCAEIAIQfkUNAAJ/IAEgACkDMFoEQCAAQQhqBEAgAEEANgIMIABBEjYCCAtBfwwBCyABp0EEdCICIAAoAkBqKAIEECAgACgCQCACaiICQQA2AgQgAhBAQQALDQAgACgCQCABp0EEdGpBAToADEEAIQMLIAMLpgIBBX9BfyEFAkAgACABQQBBABAmRQ0AIAAtABhBAnEEQCAAQQhqIgAEQCAAQQA2AgQgAEEZNgIAC0F/DwsCfyAAKAJAIgQgAaciBkEEdGooAgAiBUUEQCADQYCA2I14RyEHQQMMAQsgBSgCRCADRyEHIAUtAAkLIQggBCAGQQR0aiIEIQYgBCgCBCEEQQAgAiAIRiAHG0UEQAJAIAQNACAGIAUQKyIENgIEIAQNACAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0F/DwsgBCADNgJEIAQgAjoACSAEIAQoAgBBEHI2AgBBAA8LQQAhBSAERQ0AIAQgBCgCAEFvcSIANgIAIABFBEAgBBAgIAZBADYCBEEADwsgBCADNgJEIAQgCDoACQsgBQvjCAIFfwR+IAAtABhBAnEEQCAAQQhqBEAgAEEANgIMIABBGTYCCAtCfw8LIAApAzAhCwJAIANBgMAAcQRAIAAgASADQQAQTCIJQn9SDQELAn4CQAJAIAApAzAiCUIBfCIMIAApAzgiClQEQCAAKAJAIQQMAQsgCkIBhiIJQoAIIAlCgAhUGyIJQhAgCUIQVhsgCnwiCadBBHQiBK0gCkIEhkLw////D4NUDQEgACgCQCAEEDQiBEUNASAAIAk3AzggACAENgJAIAApAzAiCUIBfCEMCyAAIAw3AzAgBCAJp0EEdGoiBEIANwIAIARCADcABSAJDAELIABBCGoEQCAAQQA2AgwgAEEONgIIC0J/CyIJQgBZDQBCfw8LAkAgAUUNAAJ/QQAhBCAJIAApAzBaBEAgAEEIagRAIABBADYCDCAAQRI2AggLQX8MAQsgAC0AGEECcQRAIABBCGoEQCAAQQA2AgwgAEEZNgIIC0F/DAELAkAgAUUNACABLQAARQ0AQX8gASABECJB//8DcSADIABBCGoQNSIERQ0BGiADQYAwcQ0AIARBABAjQQNHDQAgBEECNgIICwJAIAAgAUEAQQAQTCIKQgBTIgENACAJIApRDQAgBBAQIABBCGoEQCAAQQA2AgwgAEEKNgIIC0F/DAELAkAgAUEBIAkgClEbRQ0AAkACfwJAIAAoAkAiASAJpyIFQQR0aiIGKAIAIgMEQCADKAIwIAQQYg0BCyAEIAYoAgQNARogBiAGKAIAECsiAzYCBCAEIAMNARogAEEIagRAIABBADYCDCAAQQ42AggLDAILQQEhByAGKAIAKAIwC0EAQQAgAEEIaiIDECUiCEUNAAJAAkAgASAFQQR0aiIFKAIEIgENACAGKAIAIgENAEEAIQEMAQsgASgCMCIBRQRAQQAhAQwBCyABQQBBACADECUiAUUNAQsgACgCUCAIIAlBACADEE1FDQAgAQRAIAAoAlAgAUEAEH4aCyAFKAIEIQMgBwRAIANFDQIgAy0AAEECcUUNAiADKAIwEBAgBSgCBCIBIAEoAgBBfXEiAzYCACADRQRAIAEQICAFQQA2AgQgBBAQQQAMBAsgASAGKAIAKAIwNgIwIAQQEEEADAMLIAMoAgAiAUECcQRAIAMoAjAQECAFKAIEIgMoAgAhAQsgAyAENgIwIAMgAUECcjYCAEEADAILIAQQEEF/DAELIAQQEEEAC0UNACALIAApAzBRBEBCfw8LIAAoAkAgCadBBHRqED4gACALNwMwQn8PCyAJpyIGQQR0IgEgACgCQGoQQAJAAkAgACgCQCIEIAFqIgMoAgAiBUUNAAJAIAMoAgQiAwRAIAMoAgAiAEEBcUUNAQwCCyAFECshAyAAKAJAIgQgBkEEdGogAzYCBCADRQ0CIAMoAgAhAAsgA0F+NgIQIAMgAEEBcjYCAAsgASAEaiACNgIIIAkPCyAAQQhqBEAgAEEANgIMIABBDjYCCAtCfwteAQF/IwBBEGsiAiQAAn8gACgCJEEBRwRAIABBDGoiAARAIABBADYCBCAAQRI2AgALQX8MAQsgAkEANgIIIAIgATcDACAAIAJCEEEMEA5CP4enCyEAIAJBEGokACAAC9oDAQZ/IwBBEGsiBSQAIAUgAjYCDCMAQaABayIEJAAgBEEIakHA8ABBkAEQBxogBCAANgI0IAQgADYCHCAEQX4gAGsiA0H/////ByADQf////8HSRsiBjYCOCAEIAAgBmoiADYCJCAEIAA2AhggBEEIaiEAIwBB0AFrIgMkACADIAI2AswBIANBoAFqQQBBKBAZIAMgAygCzAE2AsgBAkBBACABIANByAFqIANB0ABqIANBoAFqEEpBAEgNACAAKAJMQQBOIQcgACgCACECIAAsAEpBAEwEQCAAIAJBX3E2AgALIAJBIHEhCAJ/IAAoAjAEQCAAIAEgA0HIAWogA0HQAGogA0GgAWoQSgwBCyAAQdAANgIwIAAgA0HQAGo2AhAgACADNgIcIAAgAzYCFCAAKAIsIQIgACADNgIsIAAgASADQcgBaiADQdAAaiADQaABahBKIAJFDQAaIABBAEEAIAAoAiQRAAAaIABBADYCMCAAIAI2AiwgAEEANgIcIABBADYCECAAKAIUGiAAQQA2AhRBAAsaIAAgACgCACAIcjYCACAHRQ0ACyADQdABaiQAIAYEQCAEKAIcIgAgACAEKAIYRmtBADoAAAsgBEGgAWokACAFQRBqJAALUwEDfwJAIAAoAgAsAABBMGtBCk8NAANAIAAoAgAiAiwAACEDIAAgAkEBajYCACABIANqQTBrIQEgAiwAAUEwa0EKTw0BIAFBCmwhAQwACwALIAELuwIAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4KAAECAwQFBgcICQoLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAkEAEQcACwubAgAgAEUEQEEADwsCfwJAIAAEfyABQf8ATQ0BAkBB9IIBKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDAQLIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMMBAsgAUGAgARrQf//P00EQCAAIAFBP3FBgAFyOgADIAAgAUESdkHwAXI6AAAgACABQQZ2QT9xQYABcjoAAiAAIAFBDHZBP3FBgAFyOgABQQQMBAsLQYSEAUEZNgIAQX8FQQELDAELIAAgAToAAEEBCwvjAQECfyACQQBHIQMCQAJAAkAgAEEDcUUNACACRQ0AIAFB/wFxIQQDQCAALQAAIARGDQIgAkEBayICQQBHIQMgAEEBaiIAQQNxRQ0BIAINAAsLIANFDQELAkAgAC0AACABQf8BcUYNACACQQRJDQAgAUH/AXFBgYKECGwhAwNAIAAoAgAgA3MiBEF/cyAEQYGChAhrcUGAgYKEeHENASAAQQRqIQAgAkEEayICQQNLDQALCyACRQ0AIAFB/wFxIQEDQCABIAAtAABGBEAgAA8LIABBAWohACACQQFrIgINAAsLQQALeQEBfAJAIABFDQAgACsDECAAKwMgIgIgAUQAAAAAAAAAACABRAAAAAAAAAAAZBsiAUQAAAAAAADwPyABRAAAAAAAAPA/YxsgACsDKCACoaKgIgEgACsDGKFjRQ0AIAAoAgAgASAAKAIMIAAoAgQRDgAgACABOQMYCwtIAQF8AkAgAEUNACAAKwMQIAArAyAiASAAKwMoIAGhoCIBIAArAxihY0UNACAAKAIAIAEgACgCDCAAKAIEEQ4AIAAgATkDGAsLWgICfgF/An8CQAJAIAAtAABFDQAgACkDECIBQgF8IgIgAVQNACACIAApAwhYDQELIABBADoAAEEADAELQQAgACgCBCIDRQ0AGiAAIAI3AxAgAyABp2otAAALC4IEAgZ/AX4gAEEAIAEbRQRAIAIEQCACQQA2AgQgAkESNgIAC0EADwsCQAJAIAApAwhQDQAgACgCECABLQAAIgQEf0Kl6wohCSABIQMDQCAJIAStQv8Bg3whCSADLQABIgQEQCADQQFqIQMgCUL/////D4NCIX4hCQwBCwsgCacFQYUqCyIEIAAoAgBwQQJ0aiIGKAIAIgNFDQADQAJAIAMoAhwgBEcNACABIAMoAgAQOA0AAkAgAykDCEJ/UQRAIAMoAhghAQJAIAUEQCAFIAE2AhgMAQsgBiABNgIACyADEAYgACAAKQMIQgF9Igk3AwggCbogACgCACIBuER7FK5H4XqEP6JjRQ0BIAFBgQJJDQECf0EAIQMgACgCACIGIAFBAXYiBUcEQCAFEDwiB0UEQCACBEAgAkEANgIEIAJBDjYCAAtBAAwCCwJAIAApAwhCACAGG1AEQCAAKAIQIQQMAQsgACgCECEEA0AgBCADQQJ0aigCACIBBEADQCABKAIYIQIgASAHIAEoAhwgBXBBAnRqIggoAgA2AhggCCABNgIAIAIiAQ0ACwsgA0EBaiIDIAZHDQALCyAEEAYgACAFNgIAIAAgBzYCEAtBAQsNAQwFCyADQn83AxALQQEPCyADIgUoAhgiAw0ACwsgAgRAIAJBADYCBCACQQk2AgALC0EAC6UGAgl/AX4jAEHwAGsiBSQAAkACQCAARQ0AAkAgAQRAIAEpAzAgAlYNAQtBACEDIABBCGoEQCAAQQA2AgwgAEESNgIICwwCCwJAIANBCHENACABKAJAIAKnQQR0aiIGKAIIRQRAIAYtAAxFDQELQQAhAyAAQQhqBEAgAEEANgIMIABBDzYCCAsMAgsgASACIANBCHIgBUE4ahCKAUF/TARAQQAhAyAAQQhqBEAgAEEANgIMIABBFDYCCAsMAgsgA0EDdkEEcSADciIGQQRxIQcgBSkDUCEOIAUvAWghCQJAIANBIHFFIAUvAWpBAEdxIgtFDQAgBA0AIAAoAhwiBA0AQQAhAyAAQQhqBEAgAEEANgIMIABBGjYCCAsMAgsgBSkDWFAEQCAAQQBCAEEAEFIhAwwCCwJAIAdFIgwgCUEAR3EiDUEBckUEQEEAIQMgBUEAOwEwIAUgDjcDICAFIA43AxggBSAFKAJgNgIoIAVC3AA3AwAgASgCACAOIAVBACABIAIgAEEIahBeIgYNAQwDC0EAIQMgASACIAYgAEEIaiIGECYiB0UNAiABKAIAIAUpA1ggBUE4aiAHLwEMQQF2QQNxIAEgAiAGEF4iBkUNAgsCfyAGIAE2AiwCQCABKAJEIghBAWoiCiABKAJIIgdJBEAgASgCTCEHDAELIAEoAkwgB0EKaiIIQQJ0EDQiB0UEQCABQQhqBEAgAUEANgIMIAFBDjYCCAtBfwwCCyABIAc2AkwgASAINgJIIAEoAkQiCEEBaiEKCyABIAo2AkQgByAIQQJ0aiAGNgIAQQALQX9MBEAgBhALDAELAkAgC0UEQCAGIQEMAQtBJkEAIAUvAWpBAUYbIgFFBEAgAEEIagRAIABBADYCDCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w==\";Co(Hi)||(Hi=b(Hi));function eo(Ke){try{if(Ke==Hi&&le)return new Uint8Array(le);var st=Me(Ke);if(st)return st;if(T)return T(Ke);throw\"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)\"}catch(St){ts(St)}}function wo(Ke,st){var St,lr,te;try{te=eo(Ke),lr=new WebAssembly.Module(te),St=new WebAssembly.Instance(lr,st)}catch(Oe){var Ee=Oe.toString();throw ee(\"failed to compile wasm module: \"+Ee),(Ee.includes(\"imported Memory\")||Ee.includes(\"memory import\"))&&ee(\"Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time).\"),Oe}return[St,lr]}function QA(){var Ke={a:cu};function st(te,Ee){var Oe=te.exports;r.asm=Oe,Be=r.asm.g,z(Be.buffer),$=r.asm.W,gn(r.asm.h),Io(\"wasm-instantiate\")}if(ai(\"wasm-instantiate\"),r.instantiateWasm)try{var St=r.instantiateWasm(Ke,st);return St}catch(te){return ee(\"Module.instantiateWasm callback failed with error: \"+te),!1}var lr=wo(Hi,Ke);return st(lr[0]),r.asm}function Af(Ke){return F.getFloat32(Ke,!0)}function dh(Ke){return F.getFloat64(Ke,!0)}function mh(Ke){return F.getInt16(Ke,!0)}function to(Ke){return F.getInt32(Ke,!0)}function jn(Ke,st){F.setInt32(Ke,st,!0)}function Rs(Ke){for(;Ke.length>0;){var st=Ke.shift();if(typeof st==\"function\"){st(r);continue}var St=st.func;typeof St==\"number\"?st.arg===void 0?$.get(St)():$.get(St)(st.arg):St(st.arg===void 0?null:st.arg)}}function ro(Ke,st){var St=new Date(to((Ke>>2)*4)*1e3);jn((st>>2)*4,St.getUTCSeconds()),jn((st+4>>2)*4,St.getUTCMinutes()),jn((st+8>>2)*4,St.getUTCHours()),jn((st+12>>2)*4,St.getUTCDate()),jn((st+16>>2)*4,St.getUTCMonth()),jn((st+20>>2)*4,St.getUTCFullYear()-1900),jn((st+24>>2)*4,St.getUTCDay()),jn((st+36>>2)*4,0),jn((st+32>>2)*4,0);var lr=Date.UTC(St.getUTCFullYear(),0,1,0,0,0,0),te=(St.getTime()-lr)/(1e3*60*60*24)|0;return jn((st+28>>2)*4,te),ro.GMTString||(ro.GMTString=rt(\"GMT\")),jn((st+40>>2)*4,ro.GMTString),st}function ou(Ke,st){return ro(Ke,st)}function au(Ke,st,St){ke.copyWithin(Ke,st,st+St)}function lu(Ke){try{return Be.grow(Ke-be.byteLength+65535>>>16),z(Be.buffer),1}catch{}}function RA(Ke){var st=ke.length;Ke=Ke>>>0;var St=2147483648;if(Ke>St)return!1;for(var lr=1;lr<=4;lr*=2){var te=st*(1+.2/lr);te=Math.min(te,Ke+100663296);var Ee=Math.min(St,Ne(Math.max(Ke,te),65536)),Oe=lu(Ee);if(Oe)return!0}return!1}function TA(Ke){ue(Ke)}function oa(Ke){var st=Date.now()/1e3|0;return Ke&&jn((Ke>>2)*4,st),st}function aa(){if(aa.called)return;aa.called=!0;var Ke=new Date().getFullYear(),st=new Date(Ke,0,1),St=new Date(Ke,6,1),lr=st.getTimezoneOffset(),te=St.getTimezoneOffset(),Ee=Math.max(lr,te);jn((vl()>>2)*4,Ee*60),jn((Is()>>2)*4,+(lr!=te));function Oe(An){var li=An.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return li?li[1]:\"GMT\"}var dt=Oe(st),Et=Oe(St),Pt=rt(dt),tr=rt(Et);te<lr?(jn((Mi()>>2)*4,Pt),jn((Mi()+4>>2)*4,tr)):(jn((Mi()>>2)*4,tr),jn((Mi()+4>>2)*4,Pt))}function FA(Ke){aa();var st=Date.UTC(to((Ke+20>>2)*4)+1900,to((Ke+16>>2)*4),to((Ke+12>>2)*4),to((Ke+8>>2)*4),to((Ke+4>>2)*4),to((Ke>>2)*4),0),St=new Date(st);jn((Ke+24>>2)*4,St.getUTCDay());var lr=Date.UTC(St.getUTCFullYear(),0,1,0,0,0,0),te=(St.getTime()-lr)/(1e3*60*60*24)|0;return jn((Ke+28>>2)*4,te),St.getTime()/1e3|0}var gr=typeof atob==\"function\"?atob:function(Ke){var st=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",St=\"\",lr,te,Ee,Oe,dt,Et,Pt,tr=0;Ke=Ke.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do Oe=st.indexOf(Ke.charAt(tr++)),dt=st.indexOf(Ke.charAt(tr++)),Et=st.indexOf(Ke.charAt(tr++)),Pt=st.indexOf(Ke.charAt(tr++)),lr=Oe<<2|dt>>4,te=(dt&15)<<4|Et>>2,Ee=(Et&3)<<6|Pt,St=St+String.fromCharCode(lr),Et!==64&&(St=St+String.fromCharCode(te)),Pt!==64&&(St=St+String.fromCharCode(Ee));while(tr<Ke.length);return St};function Bo(Ke){if(typeof C==\"boolean\"&&C){var st;try{st=Buffer.from(Ke,\"base64\")}catch{st=new Buffer(Ke,\"base64\")}return new Uint8Array(st.buffer,st.byteOffset,st.byteLength)}try{for(var St=gr(Ke),lr=new Uint8Array(St.length),te=0;te<St.length;++te)lr[te]=St.charCodeAt(te);return lr}catch{throw new Error(\"Converting base64 string to bytes failed.\")}}function Me(Ke){if(Co(Ke))return Bo(Ke.slice($s.length))}var cu={e:ou,c:au,d:RA,a:TA,b:oa,f:FA},Cr=QA(),pf=r.___wasm_call_ctors=Cr.h,NA=r._zip_ext_count_symlinks=Cr.i,OA=r._zip_file_get_external_attributes=Cr.j,uu=r._zipstruct_statS=Cr.k,fu=r._zipstruct_stat_size=Cr.l,oc=r._zipstruct_stat_mtime=Cr.m,ve=r._zipstruct_stat_crc=Cr.n,Nt=r._zipstruct_errorS=Cr.o,ac=r._zipstruct_error_code_zip=Cr.p,Oi=r._zipstruct_stat_comp_size=Cr.q,no=r._zipstruct_stat_comp_method=Cr.r,Tt=r._zip_close=Cr.s,xn=r._zip_delete=Cr.t,la=r._zip_dir_add=Cr.u,ji=r._zip_discard=Cr.v,Li=r._zip_error_init_with_code=Cr.w,Na=r._zip_get_error=Cr.x,dn=r._zip_file_get_error=Cr.y,Kn=r._zip_error_strerror=Cr.z,Au=r._zip_fclose=Cr.A,yh=r._zip_file_add=Cr.B,Oa=r._free=Cr.C,La=r._malloc=Cr.D,Ma=r._zip_source_error=Cr.E,$e=r._zip_source_seek=Cr.F,Ua=r._zip_file_set_external_attributes=Cr.G,hf=r._zip_file_set_mtime=Cr.H,lc=r._zip_fopen_index=Cr.I,wn=r._zip_fread=Cr.J,ca=r._zip_get_name=Cr.K,LA=r._zip_get_num_entries=Cr.L,MA=r._zip_source_read=Cr.M,ua=r._zip_name_locate=Cr.N,Bl=r._zip_open_from_source=Cr.O,Mt=r._zip_set_file_compression=Cr.P,kn=r._zip_source_buffer=Cr.Q,fa=r._zip_source_buffer_create=Cr.R,Ha=r._zip_source_close=Cr.S,rs=r._zip_source_free=Cr.T,cc=r._zip_source_keep=Cr.U,pu=r._zip_source_open=Cr.V,uc=r._zip_source_tell=Cr.X,ja=r._zip_stat_index=Cr.Y,Mi=r.__get_tzname=Cr.Z,Is=r.__get_daylight=Cr._,vl=r.__get_timezone=Cr.$,gf=r.stackSave=Cr.aa,fc=r.stackRestore=Cr.ba,wi=r.stackAlloc=Cr.ca;r.cwrap=se,r.getValue=pe;var Qn;nn=function Ke(){Qn||Ac(),Qn||(nn=Ke)};function Ac(Ke){if(Ke=Ke||f,Ir>0||(Ct(),Ir>0))return;function st(){Qn||(Qn=!0,r.calledRun=!0,!Ce&&(qt(),s(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),ir()))}r.setStatus?(r.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){r.setStatus(\"\")},1),st()},1)):st()}if(r.run=Ac,r.preInit)for(typeof r.preInit==\"function\"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Ac(),e}}();typeof CR==\"object\"&&typeof Sj==\"object\"?Sj.exports=vj:typeof define==\"function\"&&define.amd?define([],function(){return vj}):typeof CR==\"object\"&&(CR.createModule=vj)});var Up,upe,fpe,Ape=Ze(()=>{Up=[\"number\",\"number\"],upe=(X=>(X[X.ZIP_ER_OK=0]=\"ZIP_ER_OK\",X[X.ZIP_ER_MULTIDISK=1]=\"ZIP_ER_MULTIDISK\",X[X.ZIP_ER_RENAME=2]=\"ZIP_ER_RENAME\",X[X.ZIP_ER_CLOSE=3]=\"ZIP_ER_CLOSE\",X[X.ZIP_ER_SEEK=4]=\"ZIP_ER_SEEK\",X[X.ZIP_ER_READ=5]=\"ZIP_ER_READ\",X[X.ZIP_ER_WRITE=6]=\"ZIP_ER_WRITE\",X[X.ZIP_ER_CRC=7]=\"ZIP_ER_CRC\",X[X.ZIP_ER_ZIPCLOSED=8]=\"ZIP_ER_ZIPCLOSED\",X[X.ZIP_ER_NOENT=9]=\"ZIP_ER_NOENT\",X[X.ZIP_ER_EXISTS=10]=\"ZIP_ER_EXISTS\",X[X.ZIP_ER_OPEN=11]=\"ZIP_ER_OPEN\",X[X.ZIP_ER_TMPOPEN=12]=\"ZIP_ER_TMPOPEN\",X[X.ZIP_ER_ZLIB=13]=\"ZIP_ER_ZLIB\",X[X.ZIP_ER_MEMORY=14]=\"ZIP_ER_MEMORY\",X[X.ZIP_ER_CHANGED=15]=\"ZIP_ER_CHANGED\",X[X.ZIP_ER_COMPNOTSUPP=16]=\"ZIP_ER_COMPNOTSUPP\",X[X.ZIP_ER_EOF=17]=\"ZIP_ER_EOF\",X[X.ZIP_ER_INVAL=18]=\"ZIP_ER_INVAL\",X[X.ZIP_ER_NOZIP=19]=\"ZIP_ER_NOZIP\",X[X.ZIP_ER_INTERNAL=20]=\"ZIP_ER_INTERNAL\",X[X.ZIP_ER_INCONS=21]=\"ZIP_ER_INCONS\",X[X.ZIP_ER_REMOVE=22]=\"ZIP_ER_REMOVE\",X[X.ZIP_ER_DELETED=23]=\"ZIP_ER_DELETED\",X[X.ZIP_ER_ENCRNOTSUPP=24]=\"ZIP_ER_ENCRNOTSUPP\",X[X.ZIP_ER_RDONLY=25]=\"ZIP_ER_RDONLY\",X[X.ZIP_ER_NOPASSWD=26]=\"ZIP_ER_NOPASSWD\",X[X.ZIP_ER_WRONGPASSWD=27]=\"ZIP_ER_WRONGPASSWD\",X[X.ZIP_ER_OPNOTSUPP=28]=\"ZIP_ER_OPNOTSUPP\",X[X.ZIP_ER_INUSE=29]=\"ZIP_ER_INUSE\",X[X.ZIP_ER_TELL=30]=\"ZIP_ER_TELL\",X[X.ZIP_ER_COMPRESSED_DATA=31]=\"ZIP_ER_COMPRESSED_DATA\",X))(upe||{}),fpe=t=>({get HEAPU8(){return t.HEAPU8},errors:upe,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint32S:t._malloc(4),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap(\"zip_open_from_source\",\"number\",[\"number\",\"number\",\"number\"]),close:t.cwrap(\"zip_close\",\"number\",[\"number\"]),discard:t.cwrap(\"zip_discard\",null,[\"number\"]),getError:t.cwrap(\"zip_get_error\",\"number\",[\"number\"]),getName:t.cwrap(\"zip_get_name\",\"string\",[\"number\",\"number\",\"number\"]),getNumEntries:t.cwrap(\"zip_get_num_entries\",\"number\",[\"number\",\"number\"]),delete:t.cwrap(\"zip_delete\",\"number\",[\"number\",\"number\"]),statIndex:t.cwrap(\"zip_stat_index\",\"number\",[\"number\",...Up,\"number\",\"number\"]),fopenIndex:t.cwrap(\"zip_fopen_index\",\"number\",[\"number\",...Up,\"number\"]),fread:t.cwrap(\"zip_fread\",\"number\",[\"number\",\"number\",\"number\",\"number\"]),fclose:t.cwrap(\"zip_fclose\",\"number\",[\"number\"]),dir:{add:t.cwrap(\"zip_dir_add\",\"number\",[\"number\",\"string\"])},file:{add:t.cwrap(\"zip_file_add\",\"number\",[\"number\",\"string\",\"number\",\"number\"]),getError:t.cwrap(\"zip_file_get_error\",\"number\",[\"number\"]),getExternalAttributes:t.cwrap(\"zip_file_get_external_attributes\",\"number\",[\"number\",...Up,\"number\",\"number\",\"number\"]),setExternalAttributes:t.cwrap(\"zip_file_set_external_attributes\",\"number\",[\"number\",...Up,\"number\",\"number\",\"number\"]),setMtime:t.cwrap(\"zip_file_set_mtime\",\"number\",[\"number\",...Up,\"number\",\"number\"]),setCompression:t.cwrap(\"zip_set_file_compression\",\"number\",[\"number\",...Up,\"number\",\"number\"])},ext:{countSymlinks:t.cwrap(\"zip_ext_count_symlinks\",\"number\",[\"number\"])},error:{initWithCode:t.cwrap(\"zip_error_init_with_code\",null,[\"number\",\"number\"]),strerror:t.cwrap(\"zip_error_strerror\",\"string\",[\"number\"])},name:{locate:t.cwrap(\"zip_name_locate\",\"number\",[\"number\",\"string\",\"number\"])},source:{fromUnattachedBuffer:t.cwrap(\"zip_source_buffer_create\",\"number\",[\"number\",...Up,\"number\",\"number\"]),fromBuffer:t.cwrap(\"zip_source_buffer\",\"number\",[\"number\",\"number\",...Up,\"number\"]),free:t.cwrap(\"zip_source_free\",null,[\"number\"]),keep:t.cwrap(\"zip_source_keep\",null,[\"number\"]),open:t.cwrap(\"zip_source_open\",\"number\",[\"number\"]),close:t.cwrap(\"zip_source_close\",\"number\",[\"number\"]),seek:t.cwrap(\"zip_source_seek\",\"number\",[\"number\",...Up,\"number\"]),tell:t.cwrap(\"zip_source_tell\",\"number\",[\"number\"]),read:t.cwrap(\"zip_source_read\",\"number\",[\"number\",\"number\",\"number\"]),error:t.cwrap(\"zip_source_error\",\"number\",[\"number\"])},struct:{statS:t.cwrap(\"zipstruct_statS\",\"number\",[]),statSize:t.cwrap(\"zipstruct_stat_size\",\"number\",[\"number\"]),statCompSize:t.cwrap(\"zipstruct_stat_comp_size\",\"number\",[\"number\"]),statCompMethod:t.cwrap(\"zipstruct_stat_comp_method\",\"number\",[\"number\"]),statMtime:t.cwrap(\"zipstruct_stat_mtime\",\"number\",[\"number\"]),statCrc:t.cwrap(\"zipstruct_stat_crc\",\"number\",[\"number\"]),errorS:t.cwrap(\"zipstruct_errorS\",\"number\",[]),errorCodeZip:t.cwrap(\"zipstruct_error_code_zip\",\"number\",[\"number\"])}})});function Dj(t,e){let r=t.indexOf(e);if(r<=0)return null;let s=r;for(;r>=0&&(s=r+e.length,t[s]!==J.sep);){if(t[r-1]===J.sep)return null;r=t.indexOf(e,s)}return t.length>s&&t[s]!==J.sep?null:t.slice(0,s)}var $f,ppe=Ze(()=>{Dt();Dt();eA();$f=class t extends e0{static async openPromise(e,r){let s=new t(r);try{return await e(s)}finally{s.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,s=e.readOnlyArchives,a=typeof r>\"u\"?f=>Dj(f,\".zip\"):f=>{for(let p of r){let h=Dj(f,p);if(h)return h}return null},n=(f,p)=>new As(p,{baseFs:f,readOnly:s,stats:f.statSync(p),customZipImplementation:e.customZipImplementation}),c=async(f,p)=>{let h={baseFs:f,readOnly:s,stats:await f.statPromise(p),customZipImplementation:e.customZipImplementation};return()=>new As(p,h)};super({...e,factorySync:n,factoryPromise:c,getMountPoint:a})}}});var Pj,BI,bj=Ze(()=>{Bj();Pj=class extends Error{constructor(e,r){super(e),this.name=\"Libzip Error\",this.code=r}},BI=class{constructor(e){this.filesShouldBeCached=!0;let r=\"buffer\"in e?e.buffer:e.baseFs.readFileSync(e.path);this.libzip=cv();let s=this.libzip.malloc(4);try{let c=0;e.readOnly&&(c|=this.libzip.ZIP_RDONLY);let f=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(f,c,s),this.lzSource=f}catch(p){throw this.libzip.source.free(f),p}if(this.zip===0){let p=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(p,this.libzip.getValue(s,\"i32\")),this.makeLibzipError(p)}}finally{this.libzip.free(s)}let a=this.libzip.getNumEntries(this.zip,0),n=new Array(a);for(let c=0;c<a;++c)n[c]=this.libzip.getName(this.zip,c,0);if(this.listings=n,this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}getSymlinkCount(){return this.symlinkCount}getListings(){return this.listings}stat(e){let r=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,r)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statSize(r)>>>0,n=this.libzip.struct.statMtime(r)>>>0,c=this.libzip.struct.statCrc(r)>>>0;return{size:a,mtime:n,crc:c}}makeLibzipError(e){let r=this.libzip.struct.errorCodeZip(e),s=this.libzip.error.strerror(e),a=new Pj(s,this.libzip.errors[r]);if(r===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${a.message}`);return a}setFileSource(e,r,s){let a=this.allocateSource(s);try{let n=this.libzip.file.add(this.zip,e,a,this.libzip.ZIP_FL_OVERWRITE);if(n===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(r!==null&&this.libzip.file.setCompression(this.zip,n,0,r[0],r[1])===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return n}catch(n){throw this.libzip.source.free(a),n}}setMtime(e,r){if(this.libzip.file.setMtime(this.zip,e,0,r,0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}getExternalAttributes(e){if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let s=this.libzip.getValue(this.libzip.uint08S,\"i8\")>>>0,a=this.libzip.getValue(this.libzip.uint32S,\"i32\")>>>0;return[s,a]}setExternalAttributes(e,r,s){if(this.libzip.file.setExternalAttributes(this.zip,e,0,0,r,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}locate(e){return this.libzip.name.locate(this.zip,e,0)}getFileSource(e){let r=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,r)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(r),n=this.libzip.struct.statCompMethod(r),c=this.libzip.malloc(a);try{let f=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(f===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let p=this.libzip.fread(f,c,a,0);if(p===-1)throw this.makeLibzipError(this.libzip.file.getError(f));if(p<a)throw new Error(\"Incomplete read\");if(p>a)throw new Error(\"Overread\");let h=this.libzip.HEAPU8.subarray(c,c+a);return{data:Buffer.from(h),compressionMethod:n}}finally{this.libzip.fclose(f)}}finally{this.libzip.free(c)}}deleteEntry(e){if(this.libzip.delete(this.zip,e)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}addDirectory(e){let r=this.libzip.dir.add(this.zip,e);if(r===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return r}getBufferAndClose(){try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let e=this.libzip.source.tell(this.lzSource);if(e===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let r=this.libzip.malloc(e);if(!r)throw new Error(\"Couldn't allocate enough memory\");try{let s=this.libzip.source.read(this.lzSource,r,e);if(s===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(s<e)throw new Error(\"Incomplete read\");if(s>e)throw new Error(\"Overread\");let a=Buffer.from(this.libzip.HEAPU8.subarray(r,r+e));return process.env.YARN_IS_TEST_ENV&&process.env.YARN_ZIP_DATA_EPILOGUE&&(a=Buffer.concat([a,Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)])),a}finally{this.libzip.free(r)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource)}}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let r=this.libzip.malloc(e.byteLength);if(!r)throw new Error(\"Couldn't allocate enough memory\");return new Uint8Array(this.libzip.HEAPU8.buffer,r,e.byteLength).set(e),{buffer:r,byteLength:e.byteLength}}allocateUnattachedSource(e){let r=this.libzip.struct.errorS(),{buffer:s,byteLength:a}=this.allocateBuffer(e),n=this.libzip.source.fromUnattachedBuffer(s,a,0,1,r);if(n===0)throw this.libzip.free(r),this.makeLibzipError(r);return n}allocateSource(e){let{buffer:r,byteLength:s}=this.allocateBuffer(e),a=this.libzip.source.fromBuffer(this.zip,r,s,0,1);if(a===0)throw this.libzip.free(r),this.makeLibzipError(this.libzip.getError(this.zip));return a}discard(){this.libzip.discard(this.zip)}}});function jnt(t){if(typeof t==\"string\"&&String(+t)===t)return+t;if(typeof t==\"number\"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(hpe.types.isDate(t))return t.getTime()/1e3;throw new Error(\"Invalid time\")}function wR(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var xa,xj,hpe,kj,lm,Qj,Rj,gpe,As,BR=Ze(()=>{Dt();Dt();Dt();Dt();Dt();Dt();xa=Ie(\"fs\"),xj=Ie(\"stream\"),hpe=Ie(\"util\"),kj=ut(Ie(\"zlib\"));bj();lm=3,Qj=0,Rj=8,gpe=\"mixed\";As=class extends Uf{constructor(r,s={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;s.readOnly&&(this.readOnly=!0);let a=s;this.level=typeof a.level<\"u\"?a.level:gpe;let n=s.customZipImplementation??BI;if(typeof r==\"string\"){let{baseFs:f=new Yn}=a;this.baseFs=f,this.path=r}else this.path=null,this.baseFs=null;if(s.stats)this.stats=s.stats;else if(typeof r==\"string\")try{this.stats=this.baseFs.statSync(r)}catch(f){if(f.code===\"ENOENT\"&&a.create)this.stats=$a.makeDefaultStats();else throw f}else this.stats=$a.makeDefaultStats();typeof r==\"string\"?s.create?this.zipImpl=new n({buffer:wR(),readOnly:this.readOnly}):this.zipImpl=new n({path:r,baseFs:this.baseFs,readOnly:this.readOnly,size:this.stats.size}):this.zipImpl=new n({buffer:r??wR(),readOnly:this.readOnly}),this.listings.set(vt.root,new Set);let c=this.zipImpl.getListings();for(let f=0;f<c.length;f++){let p=c[f];if(J.isAbsolute(p))continue;let h=J.resolve(vt.root,p);this.registerEntry(h,f),p.endsWith(\"/\")&&this.registerListing(h)}this.symlinkCount=this.zipImpl.getSymlinkCount(),this.ready=!0}getExtractHint(r){for(let s of this.entries.keys()){let a=this.pathUtils.extname(s);if(r.relevantExtensions.has(a))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error(\"ZipFS don't have real paths when loaded from a buffer\");return this.path}prepareClose(){if(!this.ready)throw or.EBUSY(\"archive closed, close\");yd(this)}getBufferAndClose(){if(this.prepareClose(),this.entries.size===0)return this.discardAndClose(),wR();try{return this.zipImpl.getBufferAndClose()}finally{this.ready=!1}}discardAndClose(){this.prepareClose(),this.zipImpl.discard(),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error(\"ZipFS cannot be saved and must be discarded when loaded from a buffer\");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===$a.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return J.resolve(vt.root,r)}async openPromise(r,s,a){return this.openSync(r,s,a)}openSync(r,s,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,s){return this.opendirSync(r,s)}opendirSync(r,s={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw or.ENOTDIR(`opendir '${r}'`);let c=[...n],f=this.openSync(a,\"r\");return ex(this,a,c,{onClose:()=>{this.closeSync(f)}})}async readPromise(r,s,a,n,c){return this.readSync(r,s,a,n,c)}readSync(r,s,a=0,n=s.byteLength,c=-1){let f=this.fds.get(r);if(typeof f>\"u\")throw or.EBADF(\"read\");let p=c===-1||c===null?f.cursor:c,h=this.readFileSync(f.p);h.copy(s,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(c===-1||c===null)&&(f.cursor+=E),E}async writePromise(r,s,a,n,c){return typeof s==\"string\"?this.writeSync(r,s,c):this.writeSync(r,s,a,n,c)}writeSync(r,s,a,n,c){throw typeof this.fds.get(r)>\"u\"?or.EBADF(\"read\"):new Error(\"Unimplemented\")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>\"u\")throw or.EBADF(\"read\");this.fds.delete(r)}createReadStream(r,{encoding:s}={}){if(r===null)throw new Error(\"Unimplemented\");let a=this.openSync(r,\"r\"),n=Object.assign(new xj.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(f,p)=>{clearImmediate(c),this.closeSync(a),p(f)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),c=setImmediate(async()=>{try{let f=await this.readFilePromise(r,s);n.bytesRead=f.length,n.end(f)}catch(f){n.destroy(f)}});return n}createWriteStream(r,{encoding:s}={}){if(this.readOnly)throw or.EROFS(`open '${r}'`);if(r===null)throw new Error(\"Unimplemented\");let a=[],n=this.openSync(r,\"w\"),c=Object.assign(new xj.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(f,p)=>{try{f?p(f):(this.writeFileSync(r,Buffer.concat(a),s),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){c.destroy()},bytesWritten:0,path:r,pending:!1});return c.on(\"data\",f=>{let p=Buffer.from(f);c.bytesWritten+=p.length,a.push(p)}),c}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let s=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(s)&&!this.listings.has(s))throw or.ENOENT(`lstat '${r}'`);return s}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw or.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=J.resolve(vt.root,r);return this.entries.has(a)||this.listings.has(a)}let s;try{s=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return s===void 0?!1:this.entries.has(s)||this.listings.has(s)}async accessPromise(r,s){return this.accessSync(r,s)}accessSync(r,s=xa.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`access '${r}'`);if(this.readOnly&&s&xa.constants.W_OK)throw or.EROFS(`access '${r}'`)}async statPromise(r,s={bigint:!1}){return s.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,s={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,s.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(s.throwIfNoEntry===!1)return;throw or.ENOENT(`stat '${r}'`)}if(r[r.length-1]===\"/\"&&!this.listings.has(a))throw or.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,s)}}async fstatPromise(r,s){return this.fstatSync(r,s)}fstatSync(r,s){let a=this.fds.get(r);if(typeof a>\"u\")throw or.EBADF(\"fstatSync\");let{p:n}=a,c=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(c)&&!this.listings.has(c))throw or.ENOENT(`stat '${n}'`);if(n[n.length-1]===\"/\"&&!this.listings.has(c))throw or.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,c,s)}async lstatPromise(r,s={bigint:!1}){return s.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,s={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,s.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(s.throwIfNoEntry===!1)return;throw or.ENOENT(`lstat '${r}'`)}if(r[r.length-1]===\"/\"&&!this.listings.has(a))throw or.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,s)}}statImpl(r,s,a={}){let n=this.entries.get(s);if(typeof n<\"u\"){let c=this.zipImpl.stat(n),f=c.crc,p=c.size,h=c.mtime*1e3,E=this.stats.uid,C=this.stats.gid,S=512,b=Math.ceil(c.size/S),I=h,T=h,N=h,U=new Date(I),W=new Date(T),ee=new Date(N),ie=new Date(h),ue=this.listings.has(s)?xa.constants.S_IFDIR:this.isSymbolicLink(n)?xa.constants.S_IFLNK:xa.constants.S_IFREG,le=ue===xa.constants.S_IFDIR?493:420,me=ue|this.getUnixMode(n,le)&511,pe=Object.assign(new $a.StatEntry,{uid:E,gid:C,size:p,blksize:S,blocks:b,atime:U,birthtime:W,ctime:ee,mtime:ie,atimeMs:I,birthtimeMs:T,ctimeMs:N,mtimeMs:h,mode:me,crc:f});return a.bigint===!0?$a.convertToBigIntStats(pe):pe}if(this.listings.has(s)){let c=this.stats.uid,f=this.stats.gid,p=0,h=512,E=0,C=this.stats.mtimeMs,S=this.stats.mtimeMs,b=this.stats.mtimeMs,I=this.stats.mtimeMs,T=new Date(C),N=new Date(S),U=new Date(b),W=new Date(I),ee=xa.constants.S_IFDIR|493,ue=Object.assign(new $a.StatEntry,{uid:c,gid:f,size:p,blksize:h,blocks:E,atime:T,birthtime:N,ctime:U,mtime:W,atimeMs:C,birthtimeMs:S,ctimeMs:b,mtimeMs:I,mode:ee,crc:0});return a.bigint===!0?$a.convertToBigIntStats(ue):ue}throw new Error(\"Unreachable\")}getUnixMode(r,s){let[a,n]=this.zipImpl.getExternalAttributes(r);return a!==lm?s:n>>>16}registerListing(r){let s=this.listings.get(r);if(s)return s;this.registerListing(J.dirname(r)).add(J.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,s){this.registerListing(J.dirname(r)).add(J.basename(r)),this.entries.set(r,s)}unregisterListing(r){this.listings.delete(r),this.listings.get(J.dirname(r))?.delete(J.basename(r))}unregisterEntry(r){this.unregisterListing(r);let s=this.entries.get(r);this.entries.delete(r),!(typeof s>\"u\")&&(this.fileSources.delete(s),this.isSymbolicLink(s)&&this.symlinkCount--)}deleteEntry(r,s){this.unregisterEntry(r),this.zipImpl.deleteEntry(s)}resolveFilename(r,s,a=!0,n=!0){if(!this.ready)throw or.EBUSY(`archive closed, ${r}`);let c=J.resolve(vt.root,s);if(c===\"/\")return vt.root;let f=this.entries.get(c);if(a&&f!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(f)){let p=this.getFileSource(f).toString();return this.resolveFilename(r,J.resolve(J.dirname(c),p),!0,n)}else return c;for(;;){let p=this.resolveFilename(r,J.dirname(c),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw or.ENOENT(r)}if(!h)throw or.ENOTDIR(r);if(c=J.resolve(p,J.basename(c)),!a||this.symlinkCount===0)break;let C=this.zipImpl.locate(c.slice(1));if(C===-1)break;if(this.isSymbolicLink(C)){let S=this.getFileSource(C).toString();c=J.resolve(J.dirname(c),S)}else break}return c}setFileSource(r,s){let a=Buffer.isBuffer(s)?s:Buffer.from(s),n=J.relative(vt.root,r),c=null;this.level!==\"mixed\"&&(c=[this.level===0?Qj:Rj,this.level]);let f=this.zipImpl.setFileSource(n,c,a);return this.fileSources.set(f,a),f}isSymbolicLink(r){if(this.symlinkCount===0)return!1;let[s,a]=this.zipImpl.getExternalAttributes(r);return s!==lm?!1:(a>>>16&xa.constants.S_IFMT)===xa.constants.S_IFLNK}getFileSource(r,s={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<\"u\")return a;let{data:n,compressionMethod:c}=this.zipImpl.getFileSource(r);if(c===Qj)return this.zipImpl.filesShouldBeCached&&this.fileSources.set(r,n),n;if(c===Rj){if(s.asyncDecompress)return new Promise((f,p)=>{kj.default.inflateRaw(n,(h,E)=>{h?p(h):(this.zipImpl.filesShouldBeCached&&this.fileSources.set(r,E),f(E))})});{let f=kj.default.inflateRawSync(n);return this.zipImpl.filesShouldBeCached&&this.fileSources.set(r,f),f}}else throw new Error(`Unsupported compression method: ${c}`)}async fchmodPromise(r,s){return this.chmodPromise(this.fdToPath(r,\"fchmod\"),s)}fchmodSync(r,s){return this.chmodSync(this.fdToPath(r,\"fchmodSync\"),s)}async chmodPromise(r,s){return this.chmodSync(r,s)}chmodSync(r,s){if(this.readOnly)throw or.EROFS(`chmod '${r}'`);s&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>\"u\")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let f=this.getUnixMode(n,xa.constants.S_IFREG|0)&-512|s;this.zipImpl.setExternalAttributes(n,lm,f<<16)}async fchownPromise(r,s,a){return this.chownPromise(this.fdToPath(r,\"fchown\"),s,a)}fchownSync(r,s,a){return this.chownSync(this.fdToPath(r,\"fchownSync\"),s,a)}async chownPromise(r,s,a){return this.chownSync(r,s,a)}chownSync(r,s,a){throw new Error(\"Unimplemented\")}async renamePromise(r,s){return this.renameSync(r,s)}renameSync(r,s){throw new Error(\"Unimplemented\")}async copyFilePromise(r,s,a){let{indexSource:n,indexDest:c,resolvedDestP:f}=this.prepareCopyFile(r,s,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(f,p);h!==c&&this.registerEntry(f,h)}copyFileSync(r,s,a=0){let{indexSource:n,indexDest:c,resolvedDestP:f}=this.prepareCopyFile(r,s,a),p=this.getFileSource(n),h=this.setFileSource(f,p);h!==c&&this.registerEntry(f,h)}prepareCopyFile(r,s,a=0){if(this.readOnly)throw or.EROFS(`copyfile '${r} -> '${s}'`);if(a&xa.constants.COPYFILE_FICLONE_FORCE)throw or.ENOSYS(\"unsupported clone operation\",`copyfile '${r}' -> ${s}'`);let n=this.resolveFilename(`copyfile '${r} -> ${s}'`,r),c=this.entries.get(n);if(typeof c>\"u\")throw or.EINVAL(`copyfile '${r}' -> '${s}'`);let f=this.resolveFilename(`copyfile '${r}' -> ${s}'`,s),p=this.entries.get(f);if(a&(xa.constants.COPYFILE_EXCL|xa.constants.COPYFILE_FICLONE_FORCE)&&typeof p<\"u\")throw or.EEXIST(`copyfile '${r}' -> '${s}'`);return{indexSource:c,resolvedDestP:f,indexDest:p}}async appendFilePromise(r,s,a){if(this.readOnly)throw or.EROFS(`open '${r}'`);return typeof a>\"u\"?a={flag:\"a\"}:typeof a==\"string\"?a={flag:\"a\",encoding:a}:typeof a.flag>\"u\"&&(a={flag:\"a\",...a}),this.writeFilePromise(r,s,a)}appendFileSync(r,s,a={}){if(this.readOnly)throw or.EROFS(`open '${r}'`);return typeof a>\"u\"?a={flag:\"a\"}:typeof a==\"string\"?a={flag:\"a\",encoding:a}:typeof a.flag>\"u\"&&(a={flag:\"a\",...a}),this.writeFileSync(r,s,a)}fdToPath(r,s){let a=this.fds.get(r)?.p;if(typeof a>\"u\")throw or.EBADF(s);return a}async writeFilePromise(r,s,a){let{encoding:n,mode:c,index:f,resolvedP:p}=this.prepareWriteFile(r,a);f!==void 0&&typeof a==\"object\"&&a.flag&&a.flag.includes(\"a\")&&(s=Buffer.concat([await this.getFileSource(f,{asyncDecompress:!0}),Buffer.from(s)])),n!==null&&(s=s.toString(n));let h=this.setFileSource(p,s);h!==f&&this.registerEntry(p,h),c!==null&&await this.chmodPromise(p,c)}writeFileSync(r,s,a){let{encoding:n,mode:c,index:f,resolvedP:p}=this.prepareWriteFile(r,a);f!==void 0&&typeof a==\"object\"&&a.flag&&a.flag.includes(\"a\")&&(s=Buffer.concat([this.getFileSource(f),Buffer.from(s)])),n!==null&&(s=s.toString(n));let h=this.setFileSource(p,s);h!==f&&this.registerEntry(p,h),c!==null&&this.chmodSync(p,c)}prepareWriteFile(r,s){if(typeof r==\"number\"&&(r=this.fdToPath(r,\"read\")),this.readOnly)throw or.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw or.EISDIR(`open '${r}'`);let n=null,c=null;typeof s==\"string\"?n=s:typeof s==\"object\"&&({encoding:n=null,mode:c=null}=s);let f=this.entries.get(a);return{encoding:n,mode:c,resolvedP:a,index:f}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw or.EROFS(`unlink '${r}'`);let s=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(s))throw or.EISDIR(`unlink '${r}'`);let a=this.entries.get(s);if(typeof a>\"u\")throw or.EINVAL(`unlink '${r}'`);this.deleteEntry(s,a)}async utimesPromise(r,s,a){return this.utimesSync(r,s,a)}utimesSync(r,s,a){if(this.readOnly)throw or.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,s,a){return this.lutimesSync(r,s,a)}lutimesSync(r,s,a){if(this.readOnly)throw or.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,s){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error(\"Unreachable\");this.zipImpl.setMtime(a,jnt(s))}async mkdirPromise(r,s){return this.mkdirSync(r,s)}mkdirSync(r,{mode:s=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:s});if(this.readOnly)throw or.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw or.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,s)}async rmdirPromise(r,s){return this.rmdirSync(r,s)}rmdirSync(r,{recursive:s=!1}={}){if(this.readOnly)throw or.EROFS(`rmdir '${r}'`);if(s){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw or.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw or.ENOTEMPTY(`rmdir '${r}'`);let c=this.entries.get(a);if(typeof c>\"u\")throw or.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,c)}async rmPromise(r,s){return this.rmSync(r,s)}rmSync(r,{recursive:s=!1}={}){if(this.readOnly)throw or.EROFS(`rm '${r}'`);if(s){this.removeSync(r);return}let a=this.resolveFilename(`rm '${r}'`,r),n=this.listings.get(a);if(!n)throw or.ENOTDIR(`rm '${r}'`);if(n.size>0)throw or.ENOTEMPTY(`rm '${r}'`);let c=this.entries.get(a);if(typeof c>\"u\")throw or.EINVAL(`rm '${r}'`);this.deleteEntry(r,c)}hydrateDirectory(r){let s=this.zipImpl.addDirectory(J.relative(vt.root,r));return this.registerListing(r),this.registerEntry(r,s),s}async linkPromise(r,s){return this.linkSync(r,s)}linkSync(r,s){throw or.EOPNOTSUPP(`link '${r}' -> '${s}'`)}async symlinkPromise(r,s){return this.symlinkSync(r,s)}symlinkSync(r,s){if(this.readOnly)throw or.EROFS(`symlink '${r}' -> '${s}'`);let a=this.resolveFilename(`symlink '${r}' -> '${s}'`,s);if(this.listings.has(a))throw or.EISDIR(`symlink '${r}' -> '${s}'`);if(this.entries.has(a))throw or.EEXIST(`symlink '${r}' -> '${s}'`);let n=this.setFileSource(a,r);this.registerEntry(a,n),this.zipImpl.setExternalAttributes(n,lm,(xa.constants.S_IFLNK|511)<<16),this.symlinkCount+=1}async readFilePromise(r,s){typeof s==\"object\"&&(s=s?s.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return s?a.toString(s):a}readFileSync(r,s){typeof s==\"object\"&&(s=s?s.encoding:void 0);let a=this.readFileBuffer(r);return s?a.toString(s):a}readFileBuffer(r,s={asyncDecompress:!1}){typeof r==\"number\"&&(r=this.fdToPath(r,\"read\"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`open '${r}'`);if(r[r.length-1]===\"/\"&&!this.listings.has(a))throw or.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw or.EISDIR(\"read\");let n=this.entries.get(a);if(n===void 0)throw new Error(\"Unreachable\");return this.getFileSource(n,s)}async readdirPromise(r,s){return this.readdirSync(r,s)}readdirSync(r,s){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw or.ENOTDIR(`scandir '${r}'`);if(s?.recursive)if(s?.withFileTypes){let c=Array.from(n,f=>Object.assign(this.statImpl(\"lstat\",J.join(r,f)),{name:f,path:vt.dot,parentPath:vt.dot}));for(let f of c){if(!f.isDirectory())continue;let p=J.join(f.path,f.name),h=this.listings.get(J.join(a,p));for(let E of h)c.push(Object.assign(this.statImpl(\"lstat\",J.join(r,p,E)),{name:E,path:p,parentPath:p}))}return c}else{let c=[...n];for(let f of c){let p=this.listings.get(J.join(a,f));if(!(typeof p>\"u\"))for(let h of p)c.push(J.join(f,h))}return c}else return s?.withFileTypes?Array.from(n,c=>Object.assign(this.statImpl(\"lstat\",J.join(r,c)),{name:c,path:void 0,parentPath:void 0})):[...n]}async readlinkPromise(r){let s=this.prepareReadlink(r);return(await this.getFileSource(s,{asyncDecompress:!0})).toString()}readlinkSync(r){let s=this.prepareReadlink(r);return this.getFileSource(s).toString()}prepareReadlink(r){let s=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(s)&&!this.listings.has(s))throw or.ENOENT(`readlink '${r}'`);if(r[r.length-1]===\"/\"&&!this.listings.has(s))throw or.ENOTDIR(`open '${r}'`);if(this.listings.has(s))throw or.EINVAL(`readlink '${r}'`);let a=this.entries.get(s);if(a===void 0)throw new Error(\"Unreachable\");if(!this.isSymbolicLink(a))throw or.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,s=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>\"u\")throw or.EINVAL(`open '${r}'`);let c=await this.getFileSource(n,{asyncDecompress:!0}),f=Buffer.alloc(s,0);return c.copy(f),await this.writeFilePromise(r,f)}truncateSync(r,s=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>\"u\")throw or.EINVAL(`open '${r}'`);let c=this.getFileSource(n),f=Buffer.alloc(s,0);return c.copy(f),this.writeFileSync(r,f)}async ftruncatePromise(r,s){return this.truncatePromise(this.fdToPath(r,\"ftruncate\"),s)}ftruncateSync(r,s){return this.truncateSync(this.fdToPath(r,\"ftruncateSync\"),s)}watch(r,s,a){let n;switch(typeof s){case\"function\":case\"string\":case\"undefined\":n=!0;break;default:({persistent:n=!0}=s);break}if(!n)return{on:()=>{},close:()=>{}};let c=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(c)}}}watchFile(r,s,a){let n=J.resolve(vt.root,r);return sE(this,n,s,a)}unwatchFile(r,s){let a=J.resolve(vt.root,r);return md(this,a,s)}}});function mpe(t,e,r=Buffer.alloc(0),s){let a=new As(r),n=C=>C===e||C.startsWith(`${e}/`)?C.slice(0,e.length):null,c=async(C,S)=>()=>a,f=(C,S)=>a,p={...t},h=new Yn(p),E=new e0({baseFs:h,getMountPoint:n,factoryPromise:c,factorySync:f,magicByte:21,maxAge:1/0,typeCheck:s?.typeCheck});return U2(dpe.default,new t0(E)),a}var dpe,ype=Ze(()=>{Dt();dpe=ut(Ie(\"fs\"));BR()});var Epe=Ze(()=>{ppe();BR();ype()});var Tj,uv,vR,Ipe=Ze(()=>{Dt();BR();Tj={CENTRAL_DIRECTORY:33639248,END_OF_CENTRAL_DIRECTORY:101010256},uv=22,vR=class t{constructor(e){this.filesShouldBeCached=!1;if(\"buffer\"in e)throw new Error(\"Buffer based zip archives are not supported\");if(!e.readOnly)throw new Error(\"Writable zip archives are not supported\");this.baseFs=e.baseFs,this.fd=this.baseFs.openSync(e.path,\"r\");try{this.entries=t.readZipSync(this.fd,this.baseFs,e.size)}catch(r){throw this.baseFs.closeSync(this.fd),this.fd=\"closed\",r}}static readZipSync(e,r,s){if(s<uv)throw new Error(\"Invalid ZIP file: EOCD not found\");let a=-1,n=Buffer.alloc(uv);if(r.readSync(e,n,0,uv,s-uv),n.readUInt32LE(0)===Tj.END_OF_CENTRAL_DIRECTORY)a=0;else{let T=Math.min(65557,s);n=Buffer.alloc(T),r.readSync(e,n,0,T,Math.max(0,s-T));for(let N=n.length-4;N>=0;N--)if(n.readUInt32LE(N)===Tj.END_OF_CENTRAL_DIRECTORY){a=N;break}if(a===-1)throw new Error(\"Not a zip archive\")}let c=n.readUInt16LE(a+10),f=n.readUInt32LE(a+12),p=n.readUInt32LE(a+16),h=n.readUInt16LE(a+20);if(a+h+uv>n.length)throw new Error(\"Zip archive inconsistent\");if(c==65535||f==4294967295||p==4294967295)throw new Error(\"Zip 64 is not supported\");if(f>s)throw new Error(\"Zip archive inconsistent\");if(c>f/46)throw new Error(\"Zip archive inconsistent\");let E=Buffer.alloc(f);if(r.readSync(e,E,0,E.length,p)!==E.length)throw new Error(\"Zip archive inconsistent\");let C=[],S=0,b=0,I=0;for(;b<c;){if(S+46>E.length)throw new Error(\"Zip archive inconsistent\");if(E.readUInt32LE(S)!==Tj.CENTRAL_DIRECTORY)throw new Error(\"Zip archive inconsistent\");let N=E.readUInt16LE(S+4)>>>8;if(E.readUInt16LE(S+8)&1)throw new Error(\"Encrypted zip files are not supported\");let W=E.readUInt16LE(S+10),ee=E.readUInt32LE(S+16),ie=E.readUInt16LE(S+28),ue=E.readUInt16LE(S+30),le=E.readUInt16LE(S+32),me=E.readUInt32LE(S+42),pe=E.toString(\"utf8\",S+46,S+46+ie).replaceAll(\"\\0\",\" \");if(pe.includes(\"\\0\"))throw new Error(\"Invalid ZIP file\");let Be=E.readUInt32LE(S+20),Ce=E.readUInt32LE(S+38);C.push({name:pe,os:N,mtime:fi.SAFE_TIME,crc:ee,compressionMethod:W,isSymbolicLink:N===lm&&(Ce>>>16&fi.S_IFMT)===fi.S_IFLNK,size:E.readUInt32LE(S+24),compressedSize:Be,externalAttributes:Ce,localHeaderOffset:me}),I+=Be,b+=1,S+=46+ie+ue+le}if(I>s)throw new Error(\"Zip archive inconsistent\");if(S!==E.length)throw new Error(\"Zip archive inconsistent\");return C}getExternalAttributes(e){let r=this.entries[e];return[r.os,r.externalAttributes]}getListings(){return this.entries.map(e=>e.name)}getSymlinkCount(){let e=0;for(let r of this.entries)r.isSymbolicLink&&(e+=1);return e}stat(e){let r=this.entries[e];return{crc:r.crc,mtime:r.mtime,size:r.size}}locate(e){for(let r=0;r<this.entries.length;r++)if(this.entries[r].name===e)return r;return-1}getFileSource(e){if(this.fd===\"closed\")throw new Error(\"ZIP file is closed\");let r=this.entries[e],s=Buffer.alloc(30);this.baseFs.readSync(this.fd,s,0,s.length,r.localHeaderOffset);let a=s.readUInt16LE(26),n=s.readUInt16LE(28),c=Buffer.alloc(r.compressedSize);if(this.baseFs.readSync(this.fd,c,0,r.compressedSize,r.localHeaderOffset+30+a+n)!==r.compressedSize)throw new Error(\"Invalid ZIP file\");return{data:c,compressionMethod:r.compressionMethod}}discard(){this.fd!==\"closed\"&&(this.baseFs.closeSync(this.fd),this.fd=\"closed\")}addDirectory(e){throw new Error(\"Not implemented\")}deleteEntry(e){throw new Error(\"Not implemented\")}setMtime(e,r){throw new Error(\"Not implemented\")}getBufferAndClose(){throw new Error(\"Not implemented\")}setFileSource(e,r,s){throw new Error(\"Not implemented\")}setExternalAttributes(e,r,s){throw new Error(\"Not implemented\")}}});var fv={};Vt(fv,{DEFAULT_COMPRESSION_LEVEL:()=>gpe,DEFLATE:()=>Rj,JsZipImpl:()=>vR,LibZipImpl:()=>BI,STORE:()=>Qj,ZIP_UNIX:()=>lm,ZipFS:()=>As,ZipOpenFS:()=>$f,getArchivePart:()=>Dj,getLibzipPromise:()=>qnt,getLibzipSync:()=>Gnt,makeEmptyArchive:()=>wR,mountMemoryDrive:()=>mpe});function Gnt(){return cv()}async function qnt(){return cv()}var Cpe,eA=Ze(()=>{Bj();Cpe=ut(cpe());Ape();Epe();Ipe();bj();lpe(()=>{let t=(0,Cpe.default)();return fpe(t)})});var Av,wpe=Ze(()=>{Dt();Yt();pv();Av=class extends ot{constructor(){super(...arguments);this.cwd=ge.String(\"--cwd\",process.cwd(),{description:\"The directory to run the command in\"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.usage={description:\"run a command using yarn's portable shell\",details:`\n      This command will run a command using Yarn's portable shell.\n\n      Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell.\n\n      Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell.\n\n      Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used.\n\n      For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md.\n    `,examples:[[\"Run a simple command\",\"$0 echo Hello\"],[\"Run a command with a glob pattern\",\"$0 echo '*.js'\"],[\"Run a command with a redirection\",\"$0 echo Hello World '>' hello.txt\"],[\"Run a command with an escaped glob pattern (The double escape is needed in Unix shells)\",`$0 echo '\"*.js\"'`],[\"Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)\",'$0 \"GREETING=Hello echo $GREETING World\"']]}}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(\" \")}`:this.commandName;return await vI(r,[],{cwd:fe.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var Vl,Bpe=Ze(()=>{Vl=class extends Error{constructor(e){super(e),this.name=\"ShellError\"}}});var PR={};Vt(PR,{fastGlobOptions:()=>Dpe,isBraceExpansion:()=>Fj,isGlobPattern:()=>Wnt,match:()=>Ynt,micromatchOptions:()=>DR});function Wnt(t){if(!SR.default.scan(t,DR).isGlob)return!1;try{SR.default.parse(t,DR)}catch{return!1}return!0}function Ynt(t,{cwd:e,baseFs:r}){return(0,vpe.default)(t,{...Dpe,cwd:fe.fromPortablePath(e),fs:ax(Spe.default,new t0(r))})}function Fj(t){return SR.default.scan(t,DR).isBrace}var vpe,Spe,SR,DR,Dpe,Ppe=Ze(()=>{Dt();vpe=ut(wQ()),Spe=ut(Ie(\"fs\")),SR=ut(Go()),DR={strictBrackets:!0},Dpe={onlyDirectories:!1,onlyFiles:!1}});function Nj(){}function Oj(){for(let t of cm)t.kill()}function Qpe(t,e,r,s){return a=>{let n=a[0]instanceof tA.Transform?\"pipe\":a[0],c=a[1]instanceof tA.Transform?\"pipe\":a[1],f=a[2]instanceof tA.Transform?\"pipe\":a[2],p=(0,xpe.default)(t,e,{...s,stdio:[n,c,f]});return cm.add(p),cm.size===1&&(process.on(\"SIGINT\",Nj),process.on(\"SIGTERM\",Oj)),a[0]instanceof tA.Transform&&a[0].pipe(p.stdin),a[1]instanceof tA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof tA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on(\"error\",E=>{switch(cm.delete(p),cm.size===0&&(process.off(\"SIGINT\",Nj),process.off(\"SIGTERM\",Oj)),E.code){case\"ENOENT\":a[2].write(`command not found: ${t}\n`),h(127);break;case\"EACCES\":a[2].write(`permission denied: ${t}\n`),h(128);break;default:a[2].write(`uncaught error: ${E.message}\n`),h(1);break}}),p.on(\"close\",E=>{cm.delete(p),cm.size===0&&(process.off(\"SIGINT\",Nj),process.off(\"SIGTERM\",Oj)),h(E!==null?E:129)})})}}}function Rpe(t){return e=>{let r=e[0]===\"pipe\"?new tA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function bR(t,e){return Mj.start(t,e)}function bpe(t,e=null){let r=new tA.PassThrough,s=new kpe.StringDecoder,a=\"\";return r.on(\"data\",n=>{let c=s.write(n),f;do if(f=c.indexOf(`\n`),f!==-1){let p=a+c.substring(0,f);c=c.substring(f+1),a=\"\",t(e!==null?`${e} ${p}`:p)}while(f!==-1);a+=c}),r.on(\"end\",()=>{let n=s.end();n!==\"\"&&t(e!==null?`${e} ${n}`:n)}),r}function Tpe(t,{prefix:e}){return{stdout:bpe(r=>t.stdout.write(`${r}\n`),t.stdout.isTTY?e:null),stderr:bpe(r=>t.stderr.write(`${r}\n`),t.stderr.isTTY?e:null)}}var xpe,tA,kpe,cm,Oc,Lj,Mj,Uj=Ze(()=>{xpe=ut(UU()),tA=Ie(\"stream\"),kpe=Ie(\"string_decoder\"),cm=new Set;Oc=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},Lj=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error(\"Assertion failed: No stream attached\");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error(\"Assertion failed: No stream attached\");return this.stream}},Mj=class t{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:s,stderr:a}){let n=new t(null,e);return n.stdin=r,n.stdout=s,n.stderr=a,n}pipeTo(e,r=1){let s=new t(this,e),a=new Lj;return s.pipe=a,s.stdout=this.stdout,s.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),s}async exec(){let e=[\"ignore\",\"ignore\",\"ignore\"];if(this.pipe)e[0]=\"pipe\";else{if(this.stdin===null)throw new Error(\"Assertion failed: No input stream registered\");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error(\"Assertion failed: No output stream registered\");r=this.stdout,e[1]=r.get();let s;if(this.stderr===null)throw new Error(\"Assertion failed: No error stream registered\");s=this.stderr,e[2]=s.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),s.close(),n))}async run(){let e=[];for(let s=this;s;s=s.ancestor)e.push(s.exec());return(await Promise.all(e))[0]}}});var mv={};Vt(mv,{EntryCommand:()=>Av,ShellError:()=>Vl,execute:()=>vI,globUtils:()=>PR});function Fpe(t,e,r){let s=new Jl.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(s,{end:!1}),(e&2)===2&&r.stdin instanceof Jl.Writable&&s.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(s,{end:!1}),(e&2)===2&&s.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(s,{end:!1}),(e&2)===2&&s.pipe(r.stderr,{end:!1});break;default:throw new Vl(`Bad file descriptor: \"${t}\"`)}return s}function kR(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function Jnt(t,e,r){let s=[],a=new Jl.PassThrough;return a.on(\"data\",n=>s.push(n)),await QR(t,e,kR(r,{stdout:a})),Buffer.concat(s).toString().replace(/[\\r\\n]+$/,\"\")}async function Npe(t,e,r){let s=t.map(async n=>{let c=await um(n.args,e,r);return{name:n.name,value:c.join(\" \")}});return(await Promise.all(s)).reduce((n,c)=>(n[c.name]=c.value,n),{})}function xR(t){return t.match(/[^ \\r\\n\\t]+/g)||[]}async function Hpe(t,e,r,s,a=s){switch(t.name){case\"$\":s(String(process.pid));break;case\"#\":s(String(e.args.length));break;case\"@\":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let c=xR(n);for(let f=0;f<c.length-1;++f)a(c[f]);s(c[c.length-1])}break;case\"*\":{let n=e.args.join(\" \");if(t.quoted)s(n);else for(let c of xR(n))a(c)}break;case\"PPID\":s(String(process.ppid));break;case\"RANDOM\":s(String(Math.floor(Math.random()*32768)));break;default:{let n=parseInt(t.name,10),c,f=Number.isFinite(n);if(f?n>=0&&n<e.args.length&&(c=e.args[n]):Object.hasOwn(r.variables,t.name)?c=r.variables[t.name]:Object.hasOwn(r.environment,t.name)&&(c=r.environment[t.name]),typeof c<\"u\"&&t.alternativeValue?c=(await um(t.alternativeValue,e,r)).join(\" \"):typeof c>\"u\"&&(t.defaultValue?c=(await um(t.defaultValue,e,r)).join(\" \"):t.alternativeValue&&(c=\"\")),typeof c>\"u\")throw f?new Vl(`Unbound argument #${n}`):new Vl(`Unbound variable \"${t.name}\"`);if(t.quoted)s(c);else{let p=xR(c);for(let E=0;E<p.length-1;++E)a(p[E]);let h=p[p.length-1];typeof h<\"u\"&&s(h)}}break}}async function hv(t,e,r){if(t.type===\"number\"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: \"${t.value}\", only integers are allowed`)}else if(t.type===\"variable\"){let s=[];await Hpe({...t,quoted:!0},e,r,n=>s.push(n));let a=Number(s.join(\" \"));return Number.isNaN(a)?hv({type:\"variable\",name:s.join(\" \")},e,r):hv({type:\"number\",value:a},e,r)}else return Knt[t.type](await hv(t.left,e,r),await hv(t.right,e,r))}async function um(t,e,r){let s=new Map,a=[],n=[],c=E=>{n.push(E)},f=()=>{n.length>0&&a.push(n.join(\"\")),n=[]},p=E=>{c(E),f()},h=(E,C,S)=>{let b=JSON.stringify({type:E,fd:C}),I=s.get(b);typeof I>\"u\"&&s.set(b,I=[]),I.push(S)};for(let E of t){let C=!1;switch(E.type){case\"redirection\":{let S=await um(E.args,e,r);for(let b of S)h(E.subtype,E.fd,b)}break;case\"argument\":for(let S of E.segments)switch(S.type){case\"text\":c(S.text);break;case\"glob\":c(S.pattern),C=!0;break;case\"shell\":{let b=await Jnt(S.shell,e,r);if(S.quoted)c(b);else{let I=xR(b);for(let T=0;T<I.length-1;++T)p(I[T]);c(I[I.length-1])}}break;case\"variable\":await Hpe(S,e,r,c,p);break;case\"arithmetic\":c(String(await hv(S.arithmetic,e,r)));break}break}if(f(),C){let S=a.pop();if(typeof S>\"u\")throw new Error(\"Assertion failed: Expected a glob pattern to have been set\");let b=await e.glob.match(S,{cwd:r.cwd,baseFs:e.baseFs});if(b.length===0){let I=Fj(S)?\". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22\":\"\";throw new Vl(`No matches found: \"${S}\"${I}`)}for(let I of b.sort())p(I)}}if(s.size>0){let E=[];for(let[C,S]of s.entries())E.splice(E.length,0,C,String(S.length),...S);a.splice(0,0,\"__ysh_set_redirects\",...E,\"--\")}return a}function gv(t,e,r){e.builtins.has(t[0])||(t=[\"command\",...t]);let s=fe.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<\"u\"&&(a={...a,PWD:s});let[n,...c]=t;if(n===\"command\")return Qpe(c[0],c.slice(1),e,{cwd:s,env:a});let f=e.builtins.get(n);if(typeof f>\"u\")throw new Error(`Assertion failed: A builtin should exist for \"${n}\"`);return Rpe(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:C,stdout:S,stderr:b}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await f(c,e,r)}finally{r.stdin=C,r.stdout=S,r.stderr=b}})}function znt(t,e,r){return s=>{let a=new Jl.PassThrough,n=QR(t,e,kR(r,{stdin:a}));return{stdin:a,promise:n}}}function Znt(t,e,r){return s=>{let a=new Jl.PassThrough,n=QR(t,e,r);return{stdin:a,promise:n}}}function Ope(t,e,r,s){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.hasOwn(s.procedures,a));return s.procedures={...s.procedures},s.procedures[a]=t,gv([...e,\"__ysh_run_procedure\",a],r,s)}}async function Lpe(t,e,r){let s=t,a=null,n=null;for(;s;){let c=s.then?{...r}:r,f;switch(s.type){case\"command\":{let p=await um(s.args,e,r),h=await Npe(s.envs,e,r);f=s.envs.length?gv(p,e,kR(c,{environment:h})):gv(p,e,c)}break;case\"subshell\":{let p=await um(s.args,e,r),h=znt(s.subshell,e,c);f=Ope(h,p,e,c)}break;case\"group\":{let p=await um(s.args,e,r),h=Znt(s.group,e,c);f=Ope(h,p,e,c)}break;case\"envs\":{let p=await Npe(s.envs,e,r);c.environment={...c.environment,...p},f=gv([\"true\"],e,c)}break}if(typeof f>\"u\")throw new Error(\"Assertion failed: An action should have been generated\");if(a===null)n=bR(f,{stdin:new Oc(c.stdin),stdout:new Oc(c.stdout),stderr:new Oc(c.stderr)});else{if(n===null)throw new Error(\"Assertion failed: The execution pipeline should have been setup\");switch(a){case\"|\":n=n.pipeTo(f,1);break;case\"|&\":n=n.pipeTo(f,3);break}}s.then?(a=s.then.type,s=s.then.chain):s=null}if(n===null)throw new Error(\"Assertion failed: The execution pipeline should have been setup\");return await n.run()}async function Xnt(t,e,r,{background:s=!1}={}){function a(n){let c=[\"#2E86AB\",\"#A23B72\",\"#F18F01\",\"#C73E1D\",\"#CCE2A3\"],f=c[n%c.length];return Mpe.default.hex(f)}if(s){let n=r.nextBackgroundJobIndex++,c=a(n),f=`[${n}]`,p=c(f),{stdout:h,stderr:E}=Tpe(r,{prefix:p});return r.backgroundJobs.push(Lpe(t,e,kR(r,{stdout:h,stderr:E})).catch(C=>E.write(`${C.message}\n`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${c(AE(t))}' has ended\n`)})),0}return await Lpe(t,e,r)}async function $nt(t,e,r,{background:s=!1}={}){let a,n=f=>{a=f,r.variables[\"?\"]=String(f)},c=async f=>{try{return await Xnt(f.chain,e,r,{background:s&&typeof f.then>\"u\"})}catch(p){if(!(p instanceof Vl))throw p;return r.stderr.write(`${p.message}\n`),1}};for(n(await c(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case\"&&\":a===0&&n(await c(t.then.line));break;case\"||\":a!==0&&n(await c(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: \"${t.then.type}\"`)}t=t.then.line}return a}async function QR(t,e,r){let s=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:c}of t){if(a=await $nt(n,e,r,{background:c===\"&\"}),r.exitCode!==null)return r.exitCode;r.variables[\"?\"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=s,a}function jpe(t){switch(t.type){case\"variable\":return t.name===\"@\"||t.name===\"#\"||t.name===\"*\"||Number.isFinite(parseInt(t.name,10))||\"defaultValue\"in t&&!!t.defaultValue&&t.defaultValue.some(e=>dv(e))||\"alternativeValue\"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>dv(e));case\"arithmetic\":return _j(t.arithmetic);case\"shell\":return Hj(t.shell);default:return!1}}function dv(t){switch(t.type){case\"redirection\":return t.args.some(e=>dv(e));case\"argument\":return t.segments.some(e=>jpe(e));default:throw new Error(`Assertion failed: Unsupported argument type: \"${t.type}\"`)}}function _j(t){switch(t.type){case\"variable\":return jpe(t);case\"number\":return!1;default:return _j(t.left)||_j(t.right)}}function Hj(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let s;switch(r.type){case\"subshell\":s=Hj(r.subshell);break;case\"command\":s=r.envs.some(a=>a.args.some(n=>dv(n)))||r.args.some(a=>dv(a));break}if(s)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vI(t,e=[],{baseFs:r=new Yn,builtins:s={},cwd:a=fe.toPortablePath(process.cwd()),env:n=process.env,stdin:c=process.stdin,stdout:f=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=PR}={}){let C={};for(let[I,T]of Object.entries(n))typeof T<\"u\"&&(C[I]=T);let S=new Map(Vnt);for(let[I,T]of Object.entries(s))S.set(I,T);c===null&&(c=new Jl.PassThrough,c.end());let b=ux(t,E);if(!Hj(b)&&b.length>0&&e.length>0){let{command:I}=b[b.length-1];for(;I.then;)I=I.then.line;let T=I.chain;for(;T.then;)T=T.then.chain;T.type===\"command\"&&(T.args=T.args.concat(e.map(N=>({type:\"argument\",segments:[{type:\"text\",text:N}]}))))}return await QR(b,{args:e,baseFs:r,builtins:S,initialStdin:c,initialStdout:f,initialStderr:p,glob:E},{cwd:a,environment:C,exitCode:null,procedures:{},stdin:c,stdout:f,stderr:p,variables:Object.assign({},h,{\"?\":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var Mpe,Upe,Jl,_pe,Vnt,Knt,pv=Ze(()=>{Dt();wc();Mpe=ut(RE()),Upe=Ie(\"os\"),Jl=Ie(\"stream\"),_pe=Ie(\"timers/promises\");wpe();Bpe();Ppe();Uj();Uj();Vnt=new Map([[\"cd\",async([t=(0,Upe.homedir)(),...e],r,s)=>{let a=J.resolve(s.cwd,fe.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(c=>{throw c.code===\"ENOENT\"?new Vl(`cd: no such file or directory: ${t}`):c})).isDirectory())throw new Vl(`cd: not a directory: ${t}`);return s.cwd=a,0}],[\"pwd\",async(t,e,r)=>(r.stdout.write(`${fe.fromPortablePath(r.cwd)}\n`),0)],[\":\",async(t,e,r)=>0],[\"true\",async(t,e,r)=>0],[\"false\",async(t,e,r)=>1],[\"exit\",async([t,...e],r,s)=>s.exitCode=parseInt(t??s.variables[\"?\"],10)],[\"echo\",async(t,e,r)=>(r.stdout.write(`${t.join(\" \")}\n`),0)],[\"sleep\",async([t],e,r)=>{if(typeof t>\"u\")throw new Vl(\"sleep: missing operand\");let s=Number(t);if(Number.isNaN(s))throw new Vl(`sleep: invalid time interval '${t}'`);return await(0,_pe.setTimeout)(1e3*s,0)}],[\"unset\",async(t,e,r)=>{for(let s of t)delete r.environment[s],delete r.variables[s];return 0}],[\"__ysh_run_procedure\",async(t,e,r)=>{let s=r.procedures[t[0]];return await bR(s,{stdin:new Oc(r.stdin),stdout:new Oc(r.stdout),stderr:new Oc(r.stderr)}).run()}],[\"__ysh_set_redirects\",async(t,e,r)=>{let s=r.stdin,a=r.stdout,n=r.stderr,c=[],f=[],p=[],h=0;for(;t[h]!==\"--\";){let C=t[h++],{type:S,fd:b}=JSON.parse(C),I=W=>{switch(b){case null:case 0:c.push(W);break;default:throw new Error(`Unsupported file descriptor: \"${b}\"`)}},T=W=>{switch(b){case null:case 1:f.push(W);break;case 2:p.push(W);break;default:throw new Error(`Unsupported file descriptor: \"${b}\"`)}},N=Number(t[h++]),U=h+N;for(let W=h;W<U;++h,++W)switch(S){case\"<\":I(()=>e.baseFs.createReadStream(J.resolve(r.cwd,fe.toPortablePath(t[W]))));break;case\"<<<\":I(()=>{let ee=new Jl.PassThrough;return process.nextTick(()=>{ee.write(`${t[W]}\n`),ee.end()}),ee});break;case\"<&\":I(()=>Fpe(Number(t[W]),1,r));break;case\">\":case\">>\":{let ee=J.resolve(r.cwd,fe.toPortablePath(t[W]));T(ee===\"/dev/null\"?new Jl.Writable({autoDestroy:!0,emitClose:!0,write(ie,ue,le){setImmediate(le)}}):e.baseFs.createWriteStream(ee,S===\">>\"?{flags:\"a\"}:void 0))}break;case\">&\":T(Fpe(Number(t[W]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: \"${S}\"`)}}if(c.length>0){let C=new Jl.PassThrough;s=C;let S=b=>{if(b===c.length)C.end();else{let I=c[b]();I.pipe(C,{end:!1}),I.on(\"end\",()=>{S(b+1)})}};S(0)}if(f.length>0){let C=new Jl.PassThrough;a=C;for(let S of f)C.pipe(S)}if(p.length>0){let C=new Jl.PassThrough;n=C;for(let S of p)C.pipe(S)}let E=await bR(gv(t.slice(h+1),e,r),{stdin:new Oc(s),stdout:new Oc(a),stderr:new Oc(n)}).run();return await Promise.all(f.map(C=>new Promise((S,b)=>{C.on(\"error\",I=>{b(I)}),C.on(\"close\",()=>{S()}),C.end()}))),await Promise.all(p.map(C=>new Promise((S,b)=>{C.on(\"error\",I=>{b(I)}),C.on(\"close\",()=>{S()}),C.end()}))),E}]]);Knt={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var Gpe=_((d4t,RR)=>{function eit(){var t=0,e=1,r=2,s=3,a=4,n=5,c=6,f=7,p=8,h=9,E=10,C=11,S=12,b=13,I=14,T=15,N=16,U=17,W=0,ee=1,ie=2,ue=3,le=4;function me(g,we){return 55296<=g.charCodeAt(we)&&g.charCodeAt(we)<=56319&&56320<=g.charCodeAt(we+1)&&g.charCodeAt(we+1)<=57343}function pe(g,we){we===void 0&&(we=0);var ye=g.charCodeAt(we);if(55296<=ye&&ye<=56319&&we<g.length-1){var Ae=ye,se=g.charCodeAt(we+1);return 56320<=se&&se<=57343?(Ae-55296)*1024+(se-56320)+65536:Ae}if(56320<=ye&&ye<=57343&&we>=1){var Ae=g.charCodeAt(we-1),se=ye;return 55296<=Ae&&Ae<=56319?(Ae-55296)*1024+(se-56320)+65536:se}return ye}function Be(g,we,ye){var Ae=[g].concat(we).concat([ye]),se=Ae[Ae.length-2],X=ye,De=Ae.lastIndexOf(I);if(De>1&&Ae.slice(1,De).every(function(j){return j==s})&&[s,b,U].indexOf(g)==-1)return ie;var Te=Ae.lastIndexOf(a);if(Te>0&&Ae.slice(1,Te).every(function(j){return j==a})&&[S,a].indexOf(se)==-1)return Ae.filter(function(j){return j==a}).length%2==1?ue:le;if(se==t&&X==e)return W;if(se==r||se==t||se==e)return X==I&&we.every(function(j){return j==s})?ie:ee;if(X==r||X==t||X==e)return ee;if(se==c&&(X==c||X==f||X==h||X==E))return W;if((se==h||se==f)&&(X==f||X==p))return W;if((se==E||se==p)&&X==p)return W;if(X==s||X==T)return W;if(X==n)return W;if(se==S)return W;var mt=Ae.indexOf(s)!=-1?Ae.lastIndexOf(s)-1:Ae.length-2;return[b,U].indexOf(Ae[mt])!=-1&&Ae.slice(mt+1,-1).every(function(j){return j==s})&&X==I||se==T&&[N,U].indexOf(X)!=-1?W:we.indexOf(a)!=-1?ie:se==a&&X==a?W:ee}this.nextBreak=function(g,we){if(we===void 0&&(we=0),we<0)return 0;if(we>=g.length-1)return g.length;for(var ye=Ce(pe(g,we)),Ae=[],se=we+1;se<g.length;se++)if(!me(g,se-1)){var X=Ce(pe(g,se));if(Be(ye,Ae,X))return se;Ae.push(X)}return g.length},this.splitGraphemes=function(g){for(var we=[],ye=0,Ae;(Ae=this.nextBreak(g,ye))<g.length;)we.push(g.slice(ye,Ae)),ye=Ae;return ye<g.length&&we.push(g.slice(ye)),we},this.iterateGraphemes=function(g){var we=0,ye={next:function(){var Ae,se;return(se=this.nextBreak(g,we))<g.length?(Ae=g.slice(we,se),we=se,{value:Ae,done:!1}):we<g.length?(Ae=g.slice(we),we=g.length,{value:Ae,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<\"u\"&&Symbol.iterator&&(ye[Symbol.iterator]=function(){return ye}),ye},this.countGraphemes=function(g){for(var we=0,ye=0,Ae;(Ae=this.nextBreak(g,ye))<g.length;)ye=Ae,we++;return ye<g.length&&we++,we};function Ce(g){return 1536<=g&&g<=1541||g==1757||g==1807||g==2274||g==3406||g==69821||70082<=g&&g<=70083||g==72250||72326<=g&&g<=72329||g==73030?S:g==13?t:g==10?e:0<=g&&g<=9||11<=g&&g<=12||14<=g&&g<=31||127<=g&&g<=159||g==173||g==1564||g==6158||g==8203||8206<=g&&g<=8207||g==8232||g==8233||8234<=g&&g<=8238||8288<=g&&g<=8292||g==8293||8294<=g&&g<=8303||55296<=g&&g<=57343||g==65279||65520<=g&&g<=65528||65529<=g&&g<=65531||113824<=g&&g<=113827||119155<=g&&g<=119162||g==917504||g==917505||917506<=g&&g<=917535||917632<=g&&g<=917759||918e3<=g&&g<=921599?r:768<=g&&g<=879||1155<=g&&g<=1159||1160<=g&&g<=1161||1425<=g&&g<=1469||g==1471||1473<=g&&g<=1474||1476<=g&&g<=1477||g==1479||1552<=g&&g<=1562||1611<=g&&g<=1631||g==1648||1750<=g&&g<=1756||1759<=g&&g<=1764||1767<=g&&g<=1768||1770<=g&&g<=1773||g==1809||1840<=g&&g<=1866||1958<=g&&g<=1968||2027<=g&&g<=2035||2070<=g&&g<=2073||2075<=g&&g<=2083||2085<=g&&g<=2087||2089<=g&&g<=2093||2137<=g&&g<=2139||2260<=g&&g<=2273||2275<=g&&g<=2306||g==2362||g==2364||2369<=g&&g<=2376||g==2381||2385<=g&&g<=2391||2402<=g&&g<=2403||g==2433||g==2492||g==2494||2497<=g&&g<=2500||g==2509||g==2519||2530<=g&&g<=2531||2561<=g&&g<=2562||g==2620||2625<=g&&g<=2626||2631<=g&&g<=2632||2635<=g&&g<=2637||g==2641||2672<=g&&g<=2673||g==2677||2689<=g&&g<=2690||g==2748||2753<=g&&g<=2757||2759<=g&&g<=2760||g==2765||2786<=g&&g<=2787||2810<=g&&g<=2815||g==2817||g==2876||g==2878||g==2879||2881<=g&&g<=2884||g==2893||g==2902||g==2903||2914<=g&&g<=2915||g==2946||g==3006||g==3008||g==3021||g==3031||g==3072||3134<=g&&g<=3136||3142<=g&&g<=3144||3146<=g&&g<=3149||3157<=g&&g<=3158||3170<=g&&g<=3171||g==3201||g==3260||g==3263||g==3266||g==3270||3276<=g&&g<=3277||3285<=g&&g<=3286||3298<=g&&g<=3299||3328<=g&&g<=3329||3387<=g&&g<=3388||g==3390||3393<=g&&g<=3396||g==3405||g==3415||3426<=g&&g<=3427||g==3530||g==3535||3538<=g&&g<=3540||g==3542||g==3551||g==3633||3636<=g&&g<=3642||3655<=g&&g<=3662||g==3761||3764<=g&&g<=3769||3771<=g&&g<=3772||3784<=g&&g<=3789||3864<=g&&g<=3865||g==3893||g==3895||g==3897||3953<=g&&g<=3966||3968<=g&&g<=3972||3974<=g&&g<=3975||3981<=g&&g<=3991||3993<=g&&g<=4028||g==4038||4141<=g&&g<=4144||4146<=g&&g<=4151||4153<=g&&g<=4154||4157<=g&&g<=4158||4184<=g&&g<=4185||4190<=g&&g<=4192||4209<=g&&g<=4212||g==4226||4229<=g&&g<=4230||g==4237||g==4253||4957<=g&&g<=4959||5906<=g&&g<=5908||5938<=g&&g<=5940||5970<=g&&g<=5971||6002<=g&&g<=6003||6068<=g&&g<=6069||6071<=g&&g<=6077||g==6086||6089<=g&&g<=6099||g==6109||6155<=g&&g<=6157||6277<=g&&g<=6278||g==6313||6432<=g&&g<=6434||6439<=g&&g<=6440||g==6450||6457<=g&&g<=6459||6679<=g&&g<=6680||g==6683||g==6742||6744<=g&&g<=6750||g==6752||g==6754||6757<=g&&g<=6764||6771<=g&&g<=6780||g==6783||6832<=g&&g<=6845||g==6846||6912<=g&&g<=6915||g==6964||6966<=g&&g<=6970||g==6972||g==6978||7019<=g&&g<=7027||7040<=g&&g<=7041||7074<=g&&g<=7077||7080<=g&&g<=7081||7083<=g&&g<=7085||g==7142||7144<=g&&g<=7145||g==7149||7151<=g&&g<=7153||7212<=g&&g<=7219||7222<=g&&g<=7223||7376<=g&&g<=7378||7380<=g&&g<=7392||7394<=g&&g<=7400||g==7405||g==7412||7416<=g&&g<=7417||7616<=g&&g<=7673||7675<=g&&g<=7679||g==8204||8400<=g&&g<=8412||8413<=g&&g<=8416||g==8417||8418<=g&&g<=8420||8421<=g&&g<=8432||11503<=g&&g<=11505||g==11647||11744<=g&&g<=11775||12330<=g&&g<=12333||12334<=g&&g<=12335||12441<=g&&g<=12442||g==42607||42608<=g&&g<=42610||42612<=g&&g<=42621||42654<=g&&g<=42655||42736<=g&&g<=42737||g==43010||g==43014||g==43019||43045<=g&&g<=43046||43204<=g&&g<=43205||43232<=g&&g<=43249||43302<=g&&g<=43309||43335<=g&&g<=43345||43392<=g&&g<=43394||g==43443||43446<=g&&g<=43449||g==43452||g==43493||43561<=g&&g<=43566||43569<=g&&g<=43570||43573<=g&&g<=43574||g==43587||g==43596||g==43644||g==43696||43698<=g&&g<=43700||43703<=g&&g<=43704||43710<=g&&g<=43711||g==43713||43756<=g&&g<=43757||g==43766||g==44005||g==44008||g==44013||g==64286||65024<=g&&g<=65039||65056<=g&&g<=65071||65438<=g&&g<=65439||g==66045||g==66272||66422<=g&&g<=66426||68097<=g&&g<=68099||68101<=g&&g<=68102||68108<=g&&g<=68111||68152<=g&&g<=68154||g==68159||68325<=g&&g<=68326||g==69633||69688<=g&&g<=69702||69759<=g&&g<=69761||69811<=g&&g<=69814||69817<=g&&g<=69818||69888<=g&&g<=69890||69927<=g&&g<=69931||69933<=g&&g<=69940||g==70003||70016<=g&&g<=70017||70070<=g&&g<=70078||70090<=g&&g<=70092||70191<=g&&g<=70193||g==70196||70198<=g&&g<=70199||g==70206||g==70367||70371<=g&&g<=70378||70400<=g&&g<=70401||g==70460||g==70462||g==70464||g==70487||70502<=g&&g<=70508||70512<=g&&g<=70516||70712<=g&&g<=70719||70722<=g&&g<=70724||g==70726||g==70832||70835<=g&&g<=70840||g==70842||g==70845||70847<=g&&g<=70848||70850<=g&&g<=70851||g==71087||71090<=g&&g<=71093||71100<=g&&g<=71101||71103<=g&&g<=71104||71132<=g&&g<=71133||71219<=g&&g<=71226||g==71229||71231<=g&&g<=71232||g==71339||g==71341||71344<=g&&g<=71349||g==71351||71453<=g&&g<=71455||71458<=g&&g<=71461||71463<=g&&g<=71467||72193<=g&&g<=72198||72201<=g&&g<=72202||72243<=g&&g<=72248||72251<=g&&g<=72254||g==72263||72273<=g&&g<=72278||72281<=g&&g<=72283||72330<=g&&g<=72342||72344<=g&&g<=72345||72752<=g&&g<=72758||72760<=g&&g<=72765||g==72767||72850<=g&&g<=72871||72874<=g&&g<=72880||72882<=g&&g<=72883||72885<=g&&g<=72886||73009<=g&&g<=73014||g==73018||73020<=g&&g<=73021||73023<=g&&g<=73029||g==73031||92912<=g&&g<=92916||92976<=g&&g<=92982||94095<=g&&g<=94098||113821<=g&&g<=113822||g==119141||119143<=g&&g<=119145||119150<=g&&g<=119154||119163<=g&&g<=119170||119173<=g&&g<=119179||119210<=g&&g<=119213||119362<=g&&g<=119364||121344<=g&&g<=121398||121403<=g&&g<=121452||g==121461||g==121476||121499<=g&&g<=121503||121505<=g&&g<=121519||122880<=g&&g<=122886||122888<=g&&g<=122904||122907<=g&&g<=122913||122915<=g&&g<=122916||122918<=g&&g<=122922||125136<=g&&g<=125142||125252<=g&&g<=125258||917536<=g&&g<=917631||917760<=g&&g<=917999?s:127462<=g&&g<=127487?a:g==2307||g==2363||2366<=g&&g<=2368||2377<=g&&g<=2380||2382<=g&&g<=2383||2434<=g&&g<=2435||2495<=g&&g<=2496||2503<=g&&g<=2504||2507<=g&&g<=2508||g==2563||2622<=g&&g<=2624||g==2691||2750<=g&&g<=2752||g==2761||2763<=g&&g<=2764||2818<=g&&g<=2819||g==2880||2887<=g&&g<=2888||2891<=g&&g<=2892||g==3007||3009<=g&&g<=3010||3014<=g&&g<=3016||3018<=g&&g<=3020||3073<=g&&g<=3075||3137<=g&&g<=3140||3202<=g&&g<=3203||g==3262||3264<=g&&g<=3265||3267<=g&&g<=3268||3271<=g&&g<=3272||3274<=g&&g<=3275||3330<=g&&g<=3331||3391<=g&&g<=3392||3398<=g&&g<=3400||3402<=g&&g<=3404||3458<=g&&g<=3459||3536<=g&&g<=3537||3544<=g&&g<=3550||3570<=g&&g<=3571||g==3635||g==3763||3902<=g&&g<=3903||g==3967||g==4145||4155<=g&&g<=4156||4182<=g&&g<=4183||g==4228||g==6070||6078<=g&&g<=6085||6087<=g&&g<=6088||6435<=g&&g<=6438||6441<=g&&g<=6443||6448<=g&&g<=6449||6451<=g&&g<=6456||6681<=g&&g<=6682||g==6741||g==6743||6765<=g&&g<=6770||g==6916||g==6965||g==6971||6973<=g&&g<=6977||6979<=g&&g<=6980||g==7042||g==7073||7078<=g&&g<=7079||g==7082||g==7143||7146<=g&&g<=7148||g==7150||7154<=g&&g<=7155||7204<=g&&g<=7211||7220<=g&&g<=7221||g==7393||7410<=g&&g<=7411||g==7415||43043<=g&&g<=43044||g==43047||43136<=g&&g<=43137||43188<=g&&g<=43203||43346<=g&&g<=43347||g==43395||43444<=g&&g<=43445||43450<=g&&g<=43451||43453<=g&&g<=43456||43567<=g&&g<=43568||43571<=g&&g<=43572||g==43597||g==43755||43758<=g&&g<=43759||g==43765||44003<=g&&g<=44004||44006<=g&&g<=44007||44009<=g&&g<=44010||g==44012||g==69632||g==69634||g==69762||69808<=g&&g<=69810||69815<=g&&g<=69816||g==69932||g==70018||70067<=g&&g<=70069||70079<=g&&g<=70080||70188<=g&&g<=70190||70194<=g&&g<=70195||g==70197||70368<=g&&g<=70370||70402<=g&&g<=70403||g==70463||70465<=g&&g<=70468||70471<=g&&g<=70472||70475<=g&&g<=70477||70498<=g&&g<=70499||70709<=g&&g<=70711||70720<=g&&g<=70721||g==70725||70833<=g&&g<=70834||g==70841||70843<=g&&g<=70844||g==70846||g==70849||71088<=g&&g<=71089||71096<=g&&g<=71099||g==71102||71216<=g&&g<=71218||71227<=g&&g<=71228||g==71230||g==71340||71342<=g&&g<=71343||g==71350||71456<=g&&g<=71457||g==71462||72199<=g&&g<=72200||g==72249||72279<=g&&g<=72280||g==72343||g==72751||g==72766||g==72873||g==72881||g==72884||94033<=g&&g<=94078||g==119142||g==119149?n:4352<=g&&g<=4447||43360<=g&&g<=43388?c:4448<=g&&g<=4519||55216<=g&&g<=55238?f:4520<=g&&g<=4607||55243<=g&&g<=55291?p:g==44032||g==44060||g==44088||g==44116||g==44144||g==44172||g==44200||g==44228||g==44256||g==44284||g==44312||g==44340||g==44368||g==44396||g==44424||g==44452||g==44480||g==44508||g==44536||g==44564||g==44592||g==44620||g==44648||g==44676||g==44704||g==44732||g==44760||g==44788||g==44816||g==44844||g==44872||g==44900||g==44928||g==44956||g==44984||g==45012||g==45040||g==45068||g==45096||g==45124||g==45152||g==45180||g==45208||g==45236||g==45264||g==45292||g==45320||g==45348||g==45376||g==45404||g==45432||g==45460||g==45488||g==45516||g==45544||g==45572||g==45600||g==45628||g==45656||g==45684||g==45712||g==45740||g==45768||g==45796||g==45824||g==45852||g==45880||g==45908||g==45936||g==45964||g==45992||g==46020||g==46048||g==46076||g==46104||g==46132||g==46160||g==46188||g==46216||g==46244||g==46272||g==46300||g==46328||g==46356||g==46384||g==46412||g==46440||g==46468||g==46496||g==46524||g==46552||g==46580||g==46608||g==46636||g==46664||g==46692||g==46720||g==46748||g==46776||g==46804||g==46832||g==46860||g==46888||g==46916||g==46944||g==46972||g==47e3||g==47028||g==47056||g==47084||g==47112||g==47140||g==47168||g==47196||g==47224||g==47252||g==47280||g==47308||g==47336||g==47364||g==47392||g==47420||g==47448||g==47476||g==47504||g==47532||g==47560||g==47588||g==47616||g==47644||g==47672||g==47700||g==47728||g==47756||g==47784||g==47812||g==47840||g==47868||g==47896||g==47924||g==47952||g==47980||g==48008||g==48036||g==48064||g==48092||g==48120||g==48148||g==48176||g==48204||g==48232||g==48260||g==48288||g==48316||g==48344||g==48372||g==48400||g==48428||g==48456||g==48484||g==48512||g==48540||g==48568||g==48596||g==48624||g==48652||g==48680||g==48708||g==48736||g==48764||g==48792||g==48820||g==48848||g==48876||g==48904||g==48932||g==48960||g==48988||g==49016||g==49044||g==49072||g==49100||g==49128||g==49156||g==49184||g==49212||g==49240||g==49268||g==49296||g==49324||g==49352||g==49380||g==49408||g==49436||g==49464||g==49492||g==49520||g==49548||g==49576||g==49604||g==49632||g==49660||g==49688||g==49716||g==49744||g==49772||g==49800||g==49828||g==49856||g==49884||g==49912||g==49940||g==49968||g==49996||g==50024||g==50052||g==50080||g==50108||g==50136||g==50164||g==50192||g==50220||g==50248||g==50276||g==50304||g==50332||g==50360||g==50388||g==50416||g==50444||g==50472||g==50500||g==50528||g==50556||g==50584||g==50612||g==50640||g==50668||g==50696||g==50724||g==50752||g==50780||g==50808||g==50836||g==50864||g==50892||g==50920||g==50948||g==50976||g==51004||g==51032||g==51060||g==51088||g==51116||g==51144||g==51172||g==51200||g==51228||g==51256||g==51284||g==51312||g==51340||g==51368||g==51396||g==51424||g==51452||g==51480||g==51508||g==51536||g==51564||g==51592||g==51620||g==51648||g==51676||g==51704||g==51732||g==51760||g==51788||g==51816||g==51844||g==51872||g==51900||g==51928||g==51956||g==51984||g==52012||g==52040||g==52068||g==52096||g==52124||g==52152||g==52180||g==52208||g==52236||g==52264||g==52292||g==52320||g==52348||g==52376||g==52404||g==52432||g==52460||g==52488||g==52516||g==52544||g==52572||g==52600||g==52628||g==52656||g==52684||g==52712||g==52740||g==52768||g==52796||g==52824||g==52852||g==52880||g==52908||g==52936||g==52964||g==52992||g==53020||g==53048||g==53076||g==53104||g==53132||g==53160||g==53188||g==53216||g==53244||g==53272||g==53300||g==53328||g==53356||g==53384||g==53412||g==53440||g==53468||g==53496||g==53524||g==53552||g==53580||g==53608||g==53636||g==53664||g==53692||g==53720||g==53748||g==53776||g==53804||g==53832||g==53860||g==53888||g==53916||g==53944||g==53972||g==54e3||g==54028||g==54056||g==54084||g==54112||g==54140||g==54168||g==54196||g==54224||g==54252||g==54280||g==54308||g==54336||g==54364||g==54392||g==54420||g==54448||g==54476||g==54504||g==54532||g==54560||g==54588||g==54616||g==54644||g==54672||g==54700||g==54728||g==54756||g==54784||g==54812||g==54840||g==54868||g==54896||g==54924||g==54952||g==54980||g==55008||g==55036||g==55064||g==55092||g==55120||g==55148||g==55176?h:44033<=g&&g<=44059||44061<=g&&g<=44087||44089<=g&&g<=44115||44117<=g&&g<=44143||44145<=g&&g<=44171||44173<=g&&g<=44199||44201<=g&&g<=44227||44229<=g&&g<=44255||44257<=g&&g<=44283||44285<=g&&g<=44311||44313<=g&&g<=44339||44341<=g&&g<=44367||44369<=g&&g<=44395||44397<=g&&g<=44423||44425<=g&&g<=44451||44453<=g&&g<=44479||44481<=g&&g<=44507||44509<=g&&g<=44535||44537<=g&&g<=44563||44565<=g&&g<=44591||44593<=g&&g<=44619||44621<=g&&g<=44647||44649<=g&&g<=44675||44677<=g&&g<=44703||44705<=g&&g<=44731||44733<=g&&g<=44759||44761<=g&&g<=44787||44789<=g&&g<=44815||44817<=g&&g<=44843||44845<=g&&g<=44871||44873<=g&&g<=44899||44901<=g&&g<=44927||44929<=g&&g<=44955||44957<=g&&g<=44983||44985<=g&&g<=45011||45013<=g&&g<=45039||45041<=g&&g<=45067||45069<=g&&g<=45095||45097<=g&&g<=45123||45125<=g&&g<=45151||45153<=g&&g<=45179||45181<=g&&g<=45207||45209<=g&&g<=45235||45237<=g&&g<=45263||45265<=g&&g<=45291||45293<=g&&g<=45319||45321<=g&&g<=45347||45349<=g&&g<=45375||45377<=g&&g<=45403||45405<=g&&g<=45431||45433<=g&&g<=45459||45461<=g&&g<=45487||45489<=g&&g<=45515||45517<=g&&g<=45543||45545<=g&&g<=45571||45573<=g&&g<=45599||45601<=g&&g<=45627||45629<=g&&g<=45655||45657<=g&&g<=45683||45685<=g&&g<=45711||45713<=g&&g<=45739||45741<=g&&g<=45767||45769<=g&&g<=45795||45797<=g&&g<=45823||45825<=g&&g<=45851||45853<=g&&g<=45879||45881<=g&&g<=45907||45909<=g&&g<=45935||45937<=g&&g<=45963||45965<=g&&g<=45991||45993<=g&&g<=46019||46021<=g&&g<=46047||46049<=g&&g<=46075||46077<=g&&g<=46103||46105<=g&&g<=46131||46133<=g&&g<=46159||46161<=g&&g<=46187||46189<=g&&g<=46215||46217<=g&&g<=46243||46245<=g&&g<=46271||46273<=g&&g<=46299||46301<=g&&g<=46327||46329<=g&&g<=46355||46357<=g&&g<=46383||46385<=g&&g<=46411||46413<=g&&g<=46439||46441<=g&&g<=46467||46469<=g&&g<=46495||46497<=g&&g<=46523||46525<=g&&g<=46551||46553<=g&&g<=46579||46581<=g&&g<=46607||46609<=g&&g<=46635||46637<=g&&g<=46663||46665<=g&&g<=46691||46693<=g&&g<=46719||46721<=g&&g<=46747||46749<=g&&g<=46775||46777<=g&&g<=46803||46805<=g&&g<=46831||46833<=g&&g<=46859||46861<=g&&g<=46887||46889<=g&&g<=46915||46917<=g&&g<=46943||46945<=g&&g<=46971||46973<=g&&g<=46999||47001<=g&&g<=47027||47029<=g&&g<=47055||47057<=g&&g<=47083||47085<=g&&g<=47111||47113<=g&&g<=47139||47141<=g&&g<=47167||47169<=g&&g<=47195||47197<=g&&g<=47223||47225<=g&&g<=47251||47253<=g&&g<=47279||47281<=g&&g<=47307||47309<=g&&g<=47335||47337<=g&&g<=47363||47365<=g&&g<=47391||47393<=g&&g<=47419||47421<=g&&g<=47447||47449<=g&&g<=47475||47477<=g&&g<=47503||47505<=g&&g<=47531||47533<=g&&g<=47559||47561<=g&&g<=47587||47589<=g&&g<=47615||47617<=g&&g<=47643||47645<=g&&g<=47671||47673<=g&&g<=47699||47701<=g&&g<=47727||47729<=g&&g<=47755||47757<=g&&g<=47783||47785<=g&&g<=47811||47813<=g&&g<=47839||47841<=g&&g<=47867||47869<=g&&g<=47895||47897<=g&&g<=47923||47925<=g&&g<=47951||47953<=g&&g<=47979||47981<=g&&g<=48007||48009<=g&&g<=48035||48037<=g&&g<=48063||48065<=g&&g<=48091||48093<=g&&g<=48119||48121<=g&&g<=48147||48149<=g&&g<=48175||48177<=g&&g<=48203||48205<=g&&g<=48231||48233<=g&&g<=48259||48261<=g&&g<=48287||48289<=g&&g<=48315||48317<=g&&g<=48343||48345<=g&&g<=48371||48373<=g&&g<=48399||48401<=g&&g<=48427||48429<=g&&g<=48455||48457<=g&&g<=48483||48485<=g&&g<=48511||48513<=g&&g<=48539||48541<=g&&g<=48567||48569<=g&&g<=48595||48597<=g&&g<=48623||48625<=g&&g<=48651||48653<=g&&g<=48679||48681<=g&&g<=48707||48709<=g&&g<=48735||48737<=g&&g<=48763||48765<=g&&g<=48791||48793<=g&&g<=48819||48821<=g&&g<=48847||48849<=g&&g<=48875||48877<=g&&g<=48903||48905<=g&&g<=48931||48933<=g&&g<=48959||48961<=g&&g<=48987||48989<=g&&g<=49015||49017<=g&&g<=49043||49045<=g&&g<=49071||49073<=g&&g<=49099||49101<=g&&g<=49127||49129<=g&&g<=49155||49157<=g&&g<=49183||49185<=g&&g<=49211||49213<=g&&g<=49239||49241<=g&&g<=49267||49269<=g&&g<=49295||49297<=g&&g<=49323||49325<=g&&g<=49351||49353<=g&&g<=49379||49381<=g&&g<=49407||49409<=g&&g<=49435||49437<=g&&g<=49463||49465<=g&&g<=49491||49493<=g&&g<=49519||49521<=g&&g<=49547||49549<=g&&g<=49575||49577<=g&&g<=49603||49605<=g&&g<=49631||49633<=g&&g<=49659||49661<=g&&g<=49687||49689<=g&&g<=49715||49717<=g&&g<=49743||49745<=g&&g<=49771||49773<=g&&g<=49799||49801<=g&&g<=49827||49829<=g&&g<=49855||49857<=g&&g<=49883||49885<=g&&g<=49911||49913<=g&&g<=49939||49941<=g&&g<=49967||49969<=g&&g<=49995||49997<=g&&g<=50023||50025<=g&&g<=50051||50053<=g&&g<=50079||50081<=g&&g<=50107||50109<=g&&g<=50135||50137<=g&&g<=50163||50165<=g&&g<=50191||50193<=g&&g<=50219||50221<=g&&g<=50247||50249<=g&&g<=50275||50277<=g&&g<=50303||50305<=g&&g<=50331||50333<=g&&g<=50359||50361<=g&&g<=50387||50389<=g&&g<=50415||50417<=g&&g<=50443||50445<=g&&g<=50471||50473<=g&&g<=50499||50501<=g&&g<=50527||50529<=g&&g<=50555||50557<=g&&g<=50583||50585<=g&&g<=50611||50613<=g&&g<=50639||50641<=g&&g<=50667||50669<=g&&g<=50695||50697<=g&&g<=50723||50725<=g&&g<=50751||50753<=g&&g<=50779||50781<=g&&g<=50807||50809<=g&&g<=50835||50837<=g&&g<=50863||50865<=g&&g<=50891||50893<=g&&g<=50919||50921<=g&&g<=50947||50949<=g&&g<=50975||50977<=g&&g<=51003||51005<=g&&g<=51031||51033<=g&&g<=51059||51061<=g&&g<=51087||51089<=g&&g<=51115||51117<=g&&g<=51143||51145<=g&&g<=51171||51173<=g&&g<=51199||51201<=g&&g<=51227||51229<=g&&g<=51255||51257<=g&&g<=51283||51285<=g&&g<=51311||51313<=g&&g<=51339||51341<=g&&g<=51367||51369<=g&&g<=51395||51397<=g&&g<=51423||51425<=g&&g<=51451||51453<=g&&g<=51479||51481<=g&&g<=51507||51509<=g&&g<=51535||51537<=g&&g<=51563||51565<=g&&g<=51591||51593<=g&&g<=51619||51621<=g&&g<=51647||51649<=g&&g<=51675||51677<=g&&g<=51703||51705<=g&&g<=51731||51733<=g&&g<=51759||51761<=g&&g<=51787||51789<=g&&g<=51815||51817<=g&&g<=51843||51845<=g&&g<=51871||51873<=g&&g<=51899||51901<=g&&g<=51927||51929<=g&&g<=51955||51957<=g&&g<=51983||51985<=g&&g<=52011||52013<=g&&g<=52039||52041<=g&&g<=52067||52069<=g&&g<=52095||52097<=g&&g<=52123||52125<=g&&g<=52151||52153<=g&&g<=52179||52181<=g&&g<=52207||52209<=g&&g<=52235||52237<=g&&g<=52263||52265<=g&&g<=52291||52293<=g&&g<=52319||52321<=g&&g<=52347||52349<=g&&g<=52375||52377<=g&&g<=52403||52405<=g&&g<=52431||52433<=g&&g<=52459||52461<=g&&g<=52487||52489<=g&&g<=52515||52517<=g&&g<=52543||52545<=g&&g<=52571||52573<=g&&g<=52599||52601<=g&&g<=52627||52629<=g&&g<=52655||52657<=g&&g<=52683||52685<=g&&g<=52711||52713<=g&&g<=52739||52741<=g&&g<=52767||52769<=g&&g<=52795||52797<=g&&g<=52823||52825<=g&&g<=52851||52853<=g&&g<=52879||52881<=g&&g<=52907||52909<=g&&g<=52935||52937<=g&&g<=52963||52965<=g&&g<=52991||52993<=g&&g<=53019||53021<=g&&g<=53047||53049<=g&&g<=53075||53077<=g&&g<=53103||53105<=g&&g<=53131||53133<=g&&g<=53159||53161<=g&&g<=53187||53189<=g&&g<=53215||53217<=g&&g<=53243||53245<=g&&g<=53271||53273<=g&&g<=53299||53301<=g&&g<=53327||53329<=g&&g<=53355||53357<=g&&g<=53383||53385<=g&&g<=53411||53413<=g&&g<=53439||53441<=g&&g<=53467||53469<=g&&g<=53495||53497<=g&&g<=53523||53525<=g&&g<=53551||53553<=g&&g<=53579||53581<=g&&g<=53607||53609<=g&&g<=53635||53637<=g&&g<=53663||53665<=g&&g<=53691||53693<=g&&g<=53719||53721<=g&&g<=53747||53749<=g&&g<=53775||53777<=g&&g<=53803||53805<=g&&g<=53831||53833<=g&&g<=53859||53861<=g&&g<=53887||53889<=g&&g<=53915||53917<=g&&g<=53943||53945<=g&&g<=53971||53973<=g&&g<=53999||54001<=g&&g<=54027||54029<=g&&g<=54055||54057<=g&&g<=54083||54085<=g&&g<=54111||54113<=g&&g<=54139||54141<=g&&g<=54167||54169<=g&&g<=54195||54197<=g&&g<=54223||54225<=g&&g<=54251||54253<=g&&g<=54279||54281<=g&&g<=54307||54309<=g&&g<=54335||54337<=g&&g<=54363||54365<=g&&g<=54391||54393<=g&&g<=54419||54421<=g&&g<=54447||54449<=g&&g<=54475||54477<=g&&g<=54503||54505<=g&&g<=54531||54533<=g&&g<=54559||54561<=g&&g<=54587||54589<=g&&g<=54615||54617<=g&&g<=54643||54645<=g&&g<=54671||54673<=g&&g<=54699||54701<=g&&g<=54727||54729<=g&&g<=54755||54757<=g&&g<=54783||54785<=g&&g<=54811||54813<=g&&g<=54839||54841<=g&&g<=54867||54869<=g&&g<=54895||54897<=g&&g<=54923||54925<=g&&g<=54951||54953<=g&&g<=54979||54981<=g&&g<=55007||55009<=g&&g<=55035||55037<=g&&g<=55063||55065<=g&&g<=55091||55093<=g&&g<=55119||55121<=g&&g<=55147||55149<=g&&g<=55175||55177<=g&&g<=55203?E:g==9757||g==9977||9994<=g&&g<=9997||g==127877||127938<=g&&g<=127940||g==127943||127946<=g&&g<=127948||128066<=g&&g<=128067||128070<=g&&g<=128080||g==128110||128112<=g&&g<=128120||g==128124||128129<=g&&g<=128131||128133<=g&&g<=128135||g==128170||128372<=g&&g<=128373||g==128378||g==128400||128405<=g&&g<=128406||128581<=g&&g<=128583||128587<=g&&g<=128591||g==128675||128692<=g&&g<=128694||g==128704||g==128716||129304<=g&&g<=129308||129310<=g&&g<=129311||g==129318||129328<=g&&g<=129337||129341<=g&&g<=129342||129489<=g&&g<=129501?b:127995<=g&&g<=127999?I:g==8205?T:g==9792||g==9794||9877<=g&&g<=9878||g==9992||g==10084||g==127752||g==127806||g==127859||g==127891||g==127908||g==127912||g==127979||g==127981||g==128139||128187<=g&&g<=128188||g==128295||g==128300||g==128488||g==128640||g==128658?N:128102<=g&&g<=128105?U:C}return this}typeof RR<\"u\"&&RR.exports&&(RR.exports=eit)});var Wpe=_((m4t,qpe)=>{var tit=/^(.*?)(\\x1b\\[[^m]+m|\\x1b\\]8;;.*?(\\x1b\\\\|\\u0007))/,TR;function rit(){if(TR)return TR;if(typeof Intl.Segmenter<\"u\"){let t=new Intl.Segmenter(\"en\",{granularity:\"grapheme\"});return TR=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=Gpe(),e=new t;return TR=r=>e.splitGraphemes(r)}}qpe.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError(\"Negative indices aren't supported by this implementation\");let s=r-e,a=\"\",n=0,c=0;for(;t.length>0;){let f=t.match(tit)||[t,t,void 0],p=rit()(f[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(s-c,p.length);a+=p.slice(0,E).join(\"\"),n+=h,c+=E,typeof f[2]<\"u\"&&(a+=f[2]),t=t.slice(f[0].length)}return a}});var fn,yv=Ze(()=>{fn=process.env.YARN_IS_TEST_ENV?\"0.0.0\":\"4.10.3\"});function Zpe(t,{configuration:e,json:r}){if(!e.get(\"enableMessageNames\"))return\"\";let a=Yf(t===null?0:t);return!r&&t===null?Ht(e,a,\"grey\"):a}function jj(t,{configuration:e,json:r}){let s=Zpe(t,{configuration:e,json:r});if(!s||t===null||t===0)return s;let a=Br[t],n=`https://yarnpkg.com/advanced/error-codes#${s}---${a}`.toLowerCase();return KE(e,s,n)}async function SI({configuration:t,stdout:e,forceError:r},s){let a=await Ot.start({configuration:t,stdout:e,includeFooter:!1},async n=>{let c=!1,f=!1;for(let p of s)typeof p.option<\"u\"&&(p.error||r?(f=!0,n.reportError(50,p.message)):(c=!0,n.reportWarning(50,p.message)),p.callback?.());c&&!f&&n.reportSeparator()});return a.hasErrors()?a.exitCode():null}var Kpe,FR,nit,Ype,Vpe,D0,zpe,Jpe,iit,sit,NR,oit,Ot,Ev=Ze(()=>{Kpe=ut(Wpe()),FR=ut(Fd());Gx();Rc();yv();xc();nit=\"\\xB7\",Ype=[\"\\u280B\",\"\\u2819\",\"\\u2839\",\"\\u2838\",\"\\u283C\",\"\\u2834\",\"\\u2826\",\"\\u2827\",\"\\u2807\",\"\\u280F\"],Vpe=80,D0=FR.default.GITHUB_ACTIONS?{start:t=>`::group::${t}\n`,end:t=>`::endgroup::\n`}:FR.default.TRAVIS?{start:t=>`travis_fold:start:${t}\n`,end:t=>`travis_fold:end:${t}\n`}:FR.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\\W+/g,\"_\")}[collapsed=true]\\r\\x1B[0K${t}\n`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\\W+/g,\"_\")}\\r\\x1B[0K`}:null,zpe=D0!==null,Jpe=new Date,iit=[\"iTerm.app\",\"Apple_Terminal\",\"WarpTerminal\",\"vscode\"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,sit=t=>t,NR=sit({patrick:{date:[17,3],chars:[\"\\u{1F340}\",\"\\u{1F331}\"],size:40},simba:{date:[19,7],chars:[\"\\u{1F981}\",\"\\u{1F334}\"],size:40},jack:{date:[31,10],chars:[\"\\u{1F383}\",\"\\u{1F987}\"],size:40},hogsfather:{date:[31,12],chars:[\"\\u{1F389}\",\"\\u{1F384}\"],size:40},default:{chars:[\"=\",\"-\"],size:80}}),oit=iit&&Object.keys(NR).find(t=>{let e=NR[t];return!(e.date&&(e.date[0]!==Jpe.getDate()||e.date[1]!==Jpe.getMonth()+1))})||\"default\";Ot=class extends Ao{constructor({configuration:r,stdout:s,json:a=!1,forceSectionAlignment:n=!1,includeNames:c=!0,includePrefix:f=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:C=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(TB(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=c,this.includePrefix=f,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=C,this.json=a,this.stdout=s,r.get(\"enableProgressBars\")&&!a&&s.isTTY&&s.columns>22){let S=r.get(\"progressBarStyle\")||oit;if(!Object.hasOwn(NR,S))throw new Error(\"Assertion failed: Invalid progress bar style\");this.progressStyle=NR[S];let b=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*b/80)}}static async start(r,s){let a=new this(r),n=process.emitWarning;process.emitWarning=(c,f)=>{if(typeof c!=\"string\"){let h=c;c=h.message,f=f??h.name}let p=typeof f<\"u\"?`${f}: ${c}`:c;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,zd(r.configuration,`Yarn ${fn}`,2));try{await s(a)}catch(c){a.reportExceptionOnce(c)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let s=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,s-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let c={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(c):(c.action(),c.committed=!0);let f=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(c),c.committed&&s?.(p-f)}}async startSectionPromise({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let c={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(c):(c.action(),c.committed=!0);let f=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(c),c.committed&&s?.(p-f)}}startTimerImpl(r,s,a){return{cb:typeof s==\"function\"?s:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\\u250C ${r}`),this.indent+=1,D0!==null&&!this.json&&this.includeInfos&&this.stdout.write(D0.start(r))},reportFooter:f=>{if(this.indent-=1,D0!==null&&!this.json&&this.includeInfos){this.stdout.write(D0.end(r));for(let p of this.timerFooter)p()}this.configuration.get(\"enableTimers\")&&f>200?this.reportInfo(null,`\\u2514 Completed in ${Ht(this.configuration,f,ht.DURATION)}`):this.reportInfo(null,\"\\u2514 Completed\"),this.level-=1},skipIfEmpty:(typeof s==\"function\"?{}:s).skipIfEmpty}}startTimerSync(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a);return this.startSectionSync(c,n)}async startTimerPromise(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a);return this.startSectionPromise(c,n)}reportSeparator(){this.indent===0?this.writeLine(\"\"):this.reportInfo(null,\"\")}reportInfo(r,s){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:\"\",c=`${this.formatPrefix(n,\"blueBright\")}${s}`;this.json?this.reportJson({type:\"info\",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(c)}reportWarning(r,s){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:\"\";this.json?this.reportJson({type:\"warning\",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(`${this.formatPrefix(n,\"yellowBright\")}${s}`)}reportError(r,s){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,s)),this.reportErrorImpl(r,s)}reportErrorImpl(r,s){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:\"\";this.json?this.reportJson({type:\"error\",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(`${this.formatPrefix(n,\"redBright\")}${s}`,{truncate:!1})}reportFold(r,s){if(!D0)return;let a=`${D0.start(r)}${s}${D0.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error(\"Unimplemented: Progress bars can't have both progress and titles.\");let s=!1,a=Promise.resolve().then(async()=>{let c={progress:r.hasProgress?0:void 0,title:r.hasTitle?\"\":void 0};this.progress.set(r,{definition:c,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:f,title:p}of r)s||c.progress===f&&c.title===p||(c.progress=f,c.title=p,this.refreshProgress());n()}),n=()=>{s||(s=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r=\"\";this.errorCount>0?r=\"Failed with errors\":this.warningCount>0?r=\"Done with warnings\":r=\"Done\";let s=Ht(this.configuration,Date.now()-this.startTime,ht.DURATION),a=this.configuration.get(\"enableTimers\")?`${r} in ${s}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:s}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:s})}\n`),this.writeProgress()}writeLines(r,{truncate:s}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:s})}\n`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let s of r)s.committed=!0,s.action()}clearProgress({delta:r=0,clear:s=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\\x1B[${this.progress.size+r}A`),(r>0||s)&&this.stdout.write(\"\\x1B[0J\"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>Vpe&&(this.progressFrame=(this.progressFrame+1)%Ype.length,this.progressTime=r);let s=Ype[this.progressFrame];for(let a of this.progress.values()){let n=\"\";if(typeof a.lastScaledSize<\"u\"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let c=this.formatName(null),f=c?`${c}: `:\"\",p=a.definition.title?` ${a.definition.title}`:\"\";this.stdout.write(`${Ht(this.configuration,\"\\u27A4\",\"blueBright\")} ${f}${s}${n}${p}\n`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},Vpe)}refreshProgress({delta:r=0,force:s=!1}={}){let a=!1,n=!1;if(s||this.progress.size===0)a=!0;else for(let c of this.progress.values()){let f=typeof c.definition.progress<\"u\"?Math.trunc(this.progressMaxScaledSize*c.definition.progress):void 0,p=c.lastScaledSize;c.lastScaledSize=f;let h=c.lastTitle;if(c.lastTitle=c.definition.title,f!==p||(n=h!==c.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:s}={}){return this.progressStyle===null&&(s=!1),typeof s>\"u\"&&(s=this.configuration.get(\"preferTruncatedLines\")),s&&(r=(0,Kpe.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?Zpe(r,{configuration:this.configuration,json:this.json}):\"\"}formatPrefix(r,s){return this.includePrefix?`${Ht(this.configuration,\"\\u27A4\",s)} ${r}${this.formatIndent()}`:\"\"}formatNameWithHyperlink(r){return this.includeNames?jj(r,{configuration:this.configuration,json:this.json}):\"\"}formatIndent(){return this.level>0||!this.forceSectionAlignment?\"\\u2502 \".repeat(this.indent):`${nit} `}}});var In={};Vt(In,{PackageManager:()=>$pe,detectPackageManager:()=>ehe,executePackageAccessibleBinary:()=>she,executePackageScript:()=>OR,executePackageShellcode:()=>Gj,executeWorkspaceAccessibleBinary:()=>pit,executeWorkspaceLifecycleScript:()=>nhe,executeWorkspaceScript:()=>rhe,getPackageAccessibleBinaries:()=>LR,getWorkspaceAccessibleBinaries:()=>ihe,hasPackageScript:()=>uit,hasWorkspaceScript:()=>qj,isNodeScript:()=>Wj,makeScriptEnv:()=>Iv,maybeExecuteWorkspaceLifecycleScript:()=>Ait,prepareExternalProject:()=>cit});async function P0(t,e,r,s=[]){if(process.platform===\"win32\"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @\"${r}\" ${s.map(n=>`\"${n.replace('\"','\"\"')}\"`).join(\" \")} %*`;await ce.writeFilePromise(J.format({dir:t,name:e,ext:\".cmd\"}),a)}await ce.writeFilePromise(J.join(t,e),`#!/bin/sh\nexec \"${r}\" ${s.map(a=>`'${a.replace(/'/g,`'\"'\"'`)}'`).join(\" \")} \"$@\"\n`,{mode:493})}async function ehe(t){let e=await Ut.tryFind(t);if(e?.packageManager){let s=bQ(e.packageManager);if(s?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=s.reference.split(\".\");switch(s.name){case\"yarn\":return{packageManagerField:!0,packageManager:Number(n)===1?\"Yarn Classic\":\"Yarn\",reason:a};case\"npm\":return{packageManagerField:!0,packageManager:\"npm\",reason:a};case\"pnpm\":return{packageManagerField:!0,packageManager:\"pnpm\",reason:a}}}}let r;try{r=await ce.readFilePromise(J.join(t,Er.lockfile),\"utf8\")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:\"Yarn\",reason:'\"__metadata\" key found in yarn.lock'}:{packageManager:\"Yarn Classic\",reason:'\"__metadata\" key not found in yarn.lock, must be a Yarn classic lockfile'}:ce.existsSync(J.join(t,\"package-lock.json\"))?{packageManager:\"npm\",reason:`found npm's \"package-lock.json\" lockfile`}:ce.existsSync(J.join(t,\"pnpm-lock.yaml\"))?{packageManager:\"pnpm\",reason:`found pnpm's \"pnpm-lock.yaml\" lockfile`}:null}async function Iv({project:t,locator:e,binFolder:r,ignoreCorepack:s,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let c={};for(let[E,C]of Object.entries(n))typeof C<\"u\"&&(c[E.toLowerCase()!==\"path\"?E:\"PATH\"]=C);let f=fe.fromPortablePath(r);c.BERRY_BIN_FOLDER=fe.fromPortablePath(f);let p=process.env.COREPACK_ROOT&&!s?fe.join(process.env.COREPACK_ROOT,\"dist/yarn.js\"):process.argv[1];if(await Promise.all([P0(r,\"node\",process.execPath),...fn!==null?[P0(r,\"run\",process.execPath,[p,\"run\"]),P0(r,\"yarn\",process.execPath,[p]),P0(r,\"yarnpkg\",process.execPath,[p]),P0(r,\"node-gyp\",process.execPath,[p,\"run\",\"--top-level\",\"node-gyp\"])]:[]]),t&&(c.INIT_CWD=fe.fromPortablePath(t.configuration.startingCwd),c.PROJECT_CWD=fe.fromPortablePath(t.cwd)),c.PATH=c.PATH?`${f}${fe.delimiter}${c.PATH}`:`${f}`,c.npm_execpath=`${f}${fe.sep}yarn`,c.npm_node_execpath=`${f}${fe.sep}node`,e){if(!t)throw new Error(\"Assertion failed: Missing project\");let E=t.tryWorkspaceByLocator(e),C=E?E.manifest.version??\"\":t.storedPackages.get(e.locatorHash).version??\"\";c.npm_package_name=un(e),c.npm_package_version=C;let S;if(E)S=E.cwd;else{let b=t.storedPackages.get(e.locatorHash);if(!b)throw new Error(`Package for ${Yr(t.configuration,e)} not found in the project`);let I=t.configuration.getLinkers(),T={project:t,report:new Ot({stdout:new b0.PassThrough,configuration:t.configuration})},N=I.find(U=>U.supportsPackage(b,T));if(!N)throw new Error(`The package ${Yr(t.configuration,b)} isn't supported by any of the available linkers`);S=await N.findPackageLocation(b,T)}c.npm_package_json=fe.fromPortablePath(J.join(S,Er.manifest))}let h=fn!==null?`yarn/${fn}`:`yarn/${bp(\"@yarnpkg/core\").version}-core`;return c.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(c.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,c,async(E,C,S)=>await P0(r,E,C,S)),c}async function cit(t,e,{configuration:r,report:s,workspace:a=null,locator:n=null}){await lit(async()=>{await ce.mktempPromise(async c=>{let f=J.join(c,\"pack.log\"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(f,{prefix:fe.fromPortablePath(t),report:s}),C=n&&Gu(n)?rI(n):n,S=C?ll(C):\"an external project\";h.write(`Packing ${S} from sources\n`);let b=await ehe(t),I;b!==null?(h.write(`Using ${b.packageManager} for bootstrap. Reason: ${b.reason}\n\n`),I=b.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn\n\n`),I=\"Yarn\");let T=I===\"Yarn\"&&!b?.packageManagerField;await ce.mktempPromise(async N=>{let U=await Iv({binFolder:N,ignoreCorepack:T,baseEnv:{...process.env,COREPACK_ENABLE_AUTO_PIN:\"0\"}}),ee=new Map([[\"Yarn Classic\",async()=>{let ue=a!==null?[\"workspace\",a]:[],le=J.join(t,Er.manifest),me=await ce.readFilePromise(le),pe=await Wu(process.execPath,[process.argv[1],\"set\",\"version\",\"classic\",\"--only-if-needed\",\"--yarn-path\"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(pe.code!==0)return pe.code;await ce.writeFilePromise(le,me),await ce.appendFilePromise(J.join(t,\".npmignore\"),`/.yarn\n`),h.write(`\n`),delete U.NODE_ENV;let Be=await Wu(\"yarn\",[\"install\"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(Be.code!==0)return Be.code;h.write(`\n`);let Ce=await Wu(\"yarn\",[...ue,\"pack\",\"--filename\",fe.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ce.code!==0?Ce.code:0}],[\"Yarn\",async()=>{let ue=a!==null?[\"workspace\",a]:[];U.YARN_ENABLE_INLINE_BUILDS=\"1\";let le=J.join(t,Er.lockfile);await ce.existsPromise(le)||await ce.writeFilePromise(le,\"\");let me=await Wu(\"yarn\",[...ue,\"pack\",\"--install-if-needed\",\"--filename\",fe.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return me.code!==0?me.code:0}],[\"npm\",async()=>{if(a!==null){let we=new b0.PassThrough,ye=WE(we);we.pipe(h,{end:!1});let Ae=await Wu(\"npm\",[\"--version\"],{cwd:t,env:U,stdin:p,stdout:we,stderr:E,end:0});if(we.end(),Ae.code!==0)return h.end(),E.end(),Ae.code;let se=(await ye).toString().trim();if(!Xf(se,\">=7.x\")){let X=Da(null,\"npm\"),De=On(X,se),Te=On(X,\">=7.x\");throw new Error(`Workspaces aren't supported by ${ni(r,De)}; please upgrade to ${ni(r,Te)} (npm has been detected as the primary package manager for ${Ht(r,t,ht.PATH)})`)}}let ue=a!==null?[\"--workspace\",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let le=await Wu(\"npm\",[\"install\",\"--legacy-peer-deps\"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(le.code!==0)return le.code;let me=new b0.PassThrough,pe=WE(me);me.pipe(h);let Be=await Wu(\"npm\",[\"pack\",\"--silent\",...ue],{cwd:t,env:U,stdin:p,stdout:me,stderr:E});if(Be.code!==0)return Be.code;let Ce=(await pe).toString().trim().replace(/^.*\\n/s,\"\"),g=J.resolve(t,fe.toPortablePath(Ce));return await ce.renamePromise(g,e),0}]]).get(I);if(typeof ee>\"u\")throw new Error(\"Assertion failed: Unsupported workflow\");let ie=await ee();if(!(ie===0||typeof ie>\"u\"))throw ce.detachTemp(c),new jt(58,`Packing the package failed (exit code ${ie}, logs can be found here: ${Ht(r,f,ht.PATH)})`)})})})}async function uit(t,e,{project:r}){let s=r.tryWorkspaceByLocator(t);if(s!==null)return qj(s,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${Yr(r.configuration,t)} not found in the project`);return await $f.openPromise(async n=>{let c=r.configuration,f=r.configuration.getLinkers(),p={project:r,report:new Ot({stdout:new b0.PassThrough,configuration:c})},h=f.find(b=>b.supportsPackage(a,p));if(!h)throw new Error(`The package ${Yr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),C=new Sn(E,{baseFs:n});return(await Ut.find(vt.dot,{baseFs:C})).scripts.has(e)})}async function OR(t,e,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f}){return await ce.mktempPromise(async p=>{let{manifest:h,env:E,cwd:C}=await the(t,{project:a,binFolder:p,cwd:s,lifecycleScript:e}),S=h.scripts.get(e);if(typeof S>\"u\")return 1;let b=async()=>await vI(S,r,{cwd:C,env:E,stdin:n,stdout:c,stderr:f});return await(await a.configuration.reduceHook(T=>T.wrapScriptExecution,b,a,t,e,{script:S,args:r,cwd:C,env:E,stdin:n,stdout:c,stderr:f}))()})}async function Gj(t,e,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f}){return await ce.mktempPromise(async p=>{let{env:h,cwd:E}=await the(t,{project:a,binFolder:p,cwd:s});return await vI(e,r,{cwd:E,env:h,stdin:n,stdout:c,stderr:f})})}async function fit(t,{binFolder:e,cwd:r,lifecycleScript:s}){let a=await Iv({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:s});return await Yj(e,await ihe(t)),typeof r>\"u\"&&(r=J.dirname(await ce.realpathPromise(J.join(t.cwd,\"package.json\")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function the(t,{project:e,binFolder:r,cwd:s,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return fit(n,{binFolder:r,cwd:s,lifecycleScript:a});let c=e.storedPackages.get(t.locatorHash);if(!c)throw new Error(`Package for ${Yr(e.configuration,t)} not found in the project`);return await $f.openPromise(async f=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Ot({stdout:new b0.PassThrough,configuration:p})},C=h.find(N=>N.supportsPackage(c,E));if(!C)throw new Error(`The package ${Yr(e.configuration,c)} isn't supported by any of the available linkers`);let S=await Iv({project:e,locator:t,binFolder:r,lifecycleScript:a});await Yj(r,await LR(t,{project:e}));let b=await C.findPackageLocation(c,E),I=new Sn(b,{baseFs:f}),T=await Ut.find(vt.dot,{baseFs:I});return typeof s>\"u\"&&(s=b),{manifest:T,binFolder:r,env:S,cwd:s}})}async function rhe(t,e,r,{cwd:s,stdin:a,stdout:n,stderr:c}){return await OR(t.anchoredLocator,e,r,{cwd:s,project:t.project,stdin:a,stdout:n,stderr:c})}function qj(t,e){return t.manifest.scripts.has(e)}async function nhe(t,e,{cwd:r,report:s}){let{configuration:a}=t.project,n=null;await ce.mktempPromise(async c=>{let f=J.join(c,`${e}.log`),p=`# This file contains the result of Yarn calling the \"${e}\" lifecycle script inside a workspace (\"${fe.fromPortablePath(t.cwd)}\")\n`,{stdout:h,stderr:E}=a.getSubprocessStreams(f,{report:s,prefix:Yr(a,t.anchoredLocator),header:p});s.reportInfo(36,`Calling the \"${e}\" lifecycle script`);let C=await rhe(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),C!==0)throw ce.detachTemp(c),new jt(36,`${PB(e)} script failed (exit code ${Ht(a,C,ht.NUMBER)}, logs can be found here: ${Ht(a,f,ht.PATH)}); run ${Ht(a,`yarn ${e}`,ht.CODE)} to investigate`)})}async function Ait(t,e,r){qj(t,e)&&await nhe(t,e,r)}function Wj(t){let e=J.extname(t);if(e.match(/\\.[cm]?[jt]sx?$/))return!0;if(e===\".exe\"||e===\".bin\")return!1;let r=Buffer.alloc(4),s;try{s=ce.openSync(t,\"r\")}catch{return!0}try{ce.readSync(s,r,0,r.length,0)}finally{ce.closeSync(s)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function LR(t,{project:e}){let r=e.configuration,s=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${Yr(r,t)} not found in the project`);let n=new b0.Writable,c=r.getLinkers(),f={project:e,report:new Ot({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let C=e.storedResolutions.get(E.descriptorHash);if(!C)throw new Error(`Assertion failed: The resolution (${ni(r,E)}) should have been registered`);p.add(C)}let h=await Promise.all(Array.from(p,async E=>{let C=e.storedPackages.get(E);if(!C)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(C.bin.size===0)return Wl.skip;let S=c.find(I=>I.supportsPackage(C,f));if(!S)return Wl.skip;let b=null;try{b=await S.findPackageLocation(C,f)}catch(I){if(I.code===\"LOCATOR_NOT_INSTALLED\")return Wl.skip;throw I}return{dependency:C,packageLocation:b}}));for(let E of h){if(E===Wl.skip)continue;let{dependency:C,packageLocation:S}=E;for(let[b,I]of C.bin){let T=J.resolve(S,I);s.set(b,[C,fe.fromPortablePath(T),Wj(T)])}}return s}async function ihe(t){return await LR(t.anchoredLocator,{project:t.project})}async function Yj(t,e){await Promise.all(Array.from(e,([r,[,s,a]])=>a?P0(t,r,process.execPath,[s]):P0(t,r,s,[])))}async function she(t,e,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await LR(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${Yr(a.configuration,t)}`);return await ce.mktempPromise(async C=>{let[,S]=E,b=await Iv({project:a,locator:t,binFolder:C});await Yj(b.BERRY_BIN_FOLDER,h);let I=Wj(fe.toPortablePath(S))?Wu(process.execPath,[...p,S,...r],{cwd:s,env:b,stdin:n,stdout:c,stderr:f}):Wu(S,r,{cwd:s,env:b,stdin:n,stdout:c,stderr:f}),T;try{T=await I}finally{await ce.removePromise(b.BERRY_BIN_FOLDER)}return T.code})}async function pit(t,e,r,{cwd:s,stdin:a,stdout:n,stderr:c,packageAccessibleBinaries:f}){return await she(t.anchoredLocator,e,r,{project:t.project,cwd:s,stdin:a,stdout:n,stderr:c,packageAccessibleBinaries:f})}var Xpe,b0,$pe,ait,lit,Vj=Ze(()=>{Dt();Dt();eA();pv();ql();Xpe=ut(Ld()),b0=Ie(\"stream\");oI();Rc();Ev();yv();gR();xc();bc();Tp();Wo();$pe=(a=>(a.Yarn1=\"Yarn Classic\",a.Yarn2=\"Yarn\",a.Npm=\"npm\",a.Pnpm=\"pnpm\",a))($pe||{});ait=2,lit=(0,Xpe.default)(ait)});var DI=_((U4t,ahe)=>{\"use strict\";var ohe=new Map([[\"C\",\"cwd\"],[\"f\",\"file\"],[\"z\",\"gzip\"],[\"P\",\"preservePaths\"],[\"U\",\"unlink\"],[\"strip-components\",\"strip\"],[\"stripComponents\",\"strip\"],[\"keep-newer\",\"newer\"],[\"keepNewer\",\"newer\"],[\"keep-newer-files\",\"newer\"],[\"keepNewerFiles\",\"newer\"],[\"k\",\"keep\"],[\"keep-existing\",\"keep\"],[\"keepExisting\",\"keep\"],[\"m\",\"noMtime\"],[\"no-mtime\",\"noMtime\"],[\"p\",\"preserveOwner\"],[\"L\",\"follow\"],[\"h\",\"follow\"]]);ahe.exports=t=>t?Object.keys(t).map(e=>[ohe.has(e)?ohe.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var bI=_((_4t,dhe)=>{\"use strict\";var lhe=typeof process==\"object\"&&process?process:{stdout:null,stderr:null},hit=Ie(\"events\"),che=Ie(\"stream\"),uhe=Ie(\"string_decoder\").StringDecoder,_p=Symbol(\"EOF\"),Hp=Symbol(\"maybeEmitEnd\"),x0=Symbol(\"emittedEnd\"),MR=Symbol(\"emittingEnd\"),Cv=Symbol(\"emittedError\"),UR=Symbol(\"closed\"),fhe=Symbol(\"read\"),_R=Symbol(\"flush\"),Ahe=Symbol(\"flushChunk\"),ul=Symbol(\"encoding\"),jp=Symbol(\"decoder\"),HR=Symbol(\"flowing\"),wv=Symbol(\"paused\"),PI=Symbol(\"resume\"),Ys=Symbol(\"bufferLength\"),Jj=Symbol(\"bufferPush\"),Kj=Symbol(\"bufferShift\"),Ko=Symbol(\"objectMode\"),zo=Symbol(\"destroyed\"),zj=Symbol(\"emitData\"),phe=Symbol(\"emitEnd\"),Zj=Symbol(\"emitEnd2\"),Gp=Symbol(\"async\"),Bv=t=>Promise.resolve().then(t),hhe=global._MP_NO_ITERATOR_SYMBOLS_!==\"1\",git=hhe&&Symbol.asyncIterator||Symbol(\"asyncIterator not implemented\"),dit=hhe&&Symbol.iterator||Symbol(\"iterator not implemented\"),mit=t=>t===\"end\"||t===\"finish\"||t===\"prefinish\",yit=t=>t instanceof ArrayBuffer||typeof t==\"object\"&&t.constructor&&t.constructor.name===\"ArrayBuffer\"&&t.byteLength>=0,Eit=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),jR=class{constructor(e,r,s){this.src=e,this.dest=r,this.opts=s,this.ondrain=()=>e[PI](),r.on(\"drain\",this.ondrain)}unpipe(){this.dest.removeListener(\"drain\",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},Xj=class extends jR{unpipe(){this.src.removeListener(\"error\",this.proxyErrors),super.unpipe()}constructor(e,r,s){super(e,r,s),this.proxyErrors=a=>r.emit(\"error\",a),e.on(\"error\",this.proxyErrors)}};dhe.exports=class ghe extends che{constructor(e){super(),this[HR]=!1,this[wv]=!1,this.pipes=[],this.buffer=[],this[Ko]=e&&e.objectMode||!1,this[Ko]?this[ul]=null:this[ul]=e&&e.encoding||null,this[ul]===\"buffer\"&&(this[ul]=null),this[Gp]=e&&!!e.async||!1,this[jp]=this[ul]?new uhe(this[ul]):null,this[_p]=!1,this[x0]=!1,this[MR]=!1,this[UR]=!1,this[Cv]=null,this.writable=!0,this.readable=!0,this[Ys]=0,this[zo]=!1}get bufferLength(){return this[Ys]}get encoding(){return this[ul]}set encoding(e){if(this[Ko])throw new Error(\"cannot set encoding in objectMode\");if(this[ul]&&e!==this[ul]&&(this[jp]&&this[jp].lastNeed||this[Ys]))throw new Error(\"cannot change encoding\");this[ul]!==e&&(this[jp]=e?new uhe(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[jp].write(r)))),this[ul]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Ko]}set objectMode(e){this[Ko]=this[Ko]||!!e}get async(){return this[Gp]}set async(e){this[Gp]=this[Gp]||!!e}write(e,r,s){if(this[_p])throw new Error(\"write after end\");if(this[zo])return this.emit(\"error\",Object.assign(new Error(\"Cannot call write after a stream was destroyed\"),{code:\"ERR_STREAM_DESTROYED\"})),!0;typeof r==\"function\"&&(s=r,r=\"utf8\"),r||(r=\"utf8\");let a=this[Gp]?Bv:n=>n();return!this[Ko]&&!Buffer.isBuffer(e)&&(Eit(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):yit(e)?e=Buffer.from(e):typeof e!=\"string\"&&(this.objectMode=!0)),this[Ko]?(this.flowing&&this[Ys]!==0&&this[_R](!0),this.flowing?this.emit(\"data\",e):this[Jj](e),this[Ys]!==0&&this.emit(\"readable\"),s&&a(s),this.flowing):e.length?(typeof e==\"string\"&&!(r===this[ul]&&!this[jp].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[ul]&&(e=this[jp].write(e)),this.flowing&&this[Ys]!==0&&this[_R](!0),this.flowing?this.emit(\"data\",e):this[Jj](e),this[Ys]!==0&&this.emit(\"readable\"),s&&a(s),this.flowing):(this[Ys]!==0&&this.emit(\"readable\"),s&&a(s),this.flowing)}read(e){if(this[zo])return null;if(this[Ys]===0||e===0||e>this[Ys])return this[Hp](),null;this[Ko]&&(e=null),this.buffer.length>1&&!this[Ko]&&(this.encoding?this.buffer=[this.buffer.join(\"\")]:this.buffer=[Buffer.concat(this.buffer,this[Ys])]);let r=this[fhe](e||null,this.buffer[0]);return this[Hp](),r}[fhe](e,r){return e===r.length||e===null?this[Kj]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[Ys]-=e),this.emit(\"data\",r),!this.buffer.length&&!this[_p]&&this.emit(\"drain\"),r}end(e,r,s){return typeof e==\"function\"&&(s=e,e=null),typeof r==\"function\"&&(s=r,r=\"utf8\"),e&&this.write(e,r),s&&this.once(\"end\",s),this[_p]=!0,this.writable=!1,(this.flowing||!this[wv])&&this[Hp](),this}[PI](){this[zo]||(this[wv]=!1,this[HR]=!0,this.emit(\"resume\"),this.buffer.length?this[_R]():this[_p]?this[Hp]():this.emit(\"drain\"))}resume(){return this[PI]()}pause(){this[HR]=!1,this[wv]=!0}get destroyed(){return this[zo]}get flowing(){return this[HR]}get paused(){return this[wv]}[Jj](e){this[Ko]?this[Ys]+=1:this[Ys]+=e.length,this.buffer.push(e)}[Kj](){return this.buffer.length&&(this[Ko]?this[Ys]-=1:this[Ys]-=this.buffer[0].length),this.buffer.shift()}[_R](e){do;while(this[Ahe](this[Kj]()));!e&&!this.buffer.length&&!this[_p]&&this.emit(\"drain\")}[Ahe](e){return e?(this.emit(\"data\",e),this.flowing):!1}pipe(e,r){if(this[zo])return;let s=this[x0];return r=r||{},e===lhe.stdout||e===lhe.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,s?r.end&&e.end():(this.pipes.push(r.proxyErrors?new Xj(this,e,r):new jR(this,e,r)),this[Gp]?Bv(()=>this[PI]()):this[PI]()),e}unpipe(e){let r=this.pipes.find(s=>s.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let s=super.on(e,r);return e===\"data\"&&!this.pipes.length&&!this.flowing?this[PI]():e===\"readable\"&&this[Ys]!==0?super.emit(\"readable\"):mit(e)&&this[x0]?(super.emit(e),this.removeAllListeners(e)):e===\"error\"&&this[Cv]&&(this[Gp]?Bv(()=>r.call(this,this[Cv])):r.call(this,this[Cv])),s}get emittedEnd(){return this[x0]}[Hp](){!this[MR]&&!this[x0]&&!this[zo]&&this.buffer.length===0&&this[_p]&&(this[MR]=!0,this.emit(\"end\"),this.emit(\"prefinish\"),this.emit(\"finish\"),this[UR]&&this.emit(\"close\"),this[MR]=!1)}emit(e,r,...s){if(e!==\"error\"&&e!==\"close\"&&e!==zo&&this[zo])return;if(e===\"data\")return r?this[Gp]?Bv(()=>this[zj](r)):this[zj](r):!1;if(e===\"end\")return this[phe]();if(e===\"close\"){if(this[UR]=!0,!this[x0]&&!this[zo])return;let n=super.emit(\"close\");return this.removeAllListeners(\"close\"),n}else if(e===\"error\"){this[Cv]=r;let n=super.emit(\"error\",r);return this[Hp](),n}else if(e===\"resume\"){let n=super.emit(\"resume\");return this[Hp](),n}else if(e===\"finish\"||e===\"prefinish\"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...s);return this[Hp](),a}[zj](e){for(let s of this.pipes)s.dest.write(e)===!1&&this.pause();let r=super.emit(\"data\",e);return this[Hp](),r}[phe](){this[x0]||(this[x0]=!0,this.readable=!1,this[Gp]?Bv(()=>this[Zj]()):this[Zj]())}[Zj](){if(this[jp]){let r=this[jp].end();if(r){for(let s of this.pipes)s.dest.write(r);super.emit(\"data\",r)}}for(let r of this.pipes)r.end();let e=super.emit(\"end\");return this.removeAllListeners(\"end\"),e}collect(){let e=[];this[Ko]||(e.dataLength=0);let r=this.promise();return this.on(\"data\",s=>{e.push(s),this[Ko]||(e.dataLength+=s.length)}),r.then(()=>e)}concat(){return this[Ko]?Promise.reject(new Error(\"cannot concat in objectMode\")):this.collect().then(e=>this[Ko]?Promise.reject(new Error(\"cannot concat in objectMode\")):this[ul]?e.join(\"\"):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(zo,()=>r(new Error(\"stream destroyed\"))),this.on(\"error\",s=>r(s)),this.on(\"end\",()=>e())})}[git](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[_p])return Promise.resolve({done:!0});let s=null,a=null,n=h=>{this.removeListener(\"data\",c),this.removeListener(\"end\",f),a(h)},c=h=>{this.removeListener(\"error\",n),this.removeListener(\"end\",f),this.pause(),s({value:h,done:!!this[_p]})},f=()=>{this.removeListener(\"error\",n),this.removeListener(\"data\",c),s({done:!0})},p=()=>n(new Error(\"stream destroyed\"));return new Promise((h,E)=>{a=E,s=h,this.once(zo,p),this.once(\"error\",n),this.once(\"end\",f),this.once(\"data\",c)})}}}[dit](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[zo]?(e?this.emit(\"error\",e):this.emit(zo),this):(this[zo]=!0,this.buffer.length=0,this[Ys]=0,typeof this.close==\"function\"&&!this[UR]&&this.close(),e?this.emit(\"error\",e):this.emit(zo),this)}static isStream(e){return!!e&&(e instanceof ghe||e instanceof che||e instanceof hit&&(typeof e.pipe==\"function\"||typeof e.write==\"function\"&&typeof e.end==\"function\"))}}});var yhe=_((H4t,mhe)=>{var Iit=Ie(\"zlib\").constants||{ZLIB_VERNUM:4736};mhe.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},Iit))});var h6=_(Kl=>{\"use strict\";var n6=Ie(\"assert\"),k0=Ie(\"buffer\").Buffer,Che=Ie(\"zlib\"),fm=Kl.constants=yhe(),Cit=bI(),Ehe=k0.concat,Am=Symbol(\"_superWrite\"),kI=class extends Error{constructor(e){super(\"zlib: \"+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code=\"ZLIB_ERROR\"),this.message=\"zlib: \"+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return\"ZlibError\"}},wit=Symbol(\"opts\"),vv=Symbol(\"flushFlag\"),Ihe=Symbol(\"finishFlushFlag\"),p6=Symbol(\"fullFlushFlag\"),Ii=Symbol(\"handle\"),GR=Symbol(\"onError\"),xI=Symbol(\"sawError\"),$j=Symbol(\"level\"),e6=Symbol(\"strategy\"),t6=Symbol(\"ended\"),j4t=Symbol(\"_defaultFullFlush\"),qR=class extends Cit{constructor(e,r){if(!e||typeof e!=\"object\")throw new TypeError(\"invalid options for ZlibBase constructor\");super(e),this[xI]=!1,this[t6]=!1,this[wit]=e,this[vv]=e.flush,this[Ihe]=e.finishFlush;try{this[Ii]=new Che[r](e)}catch(s){throw new kI(s)}this[GR]=s=>{this[xI]||(this[xI]=!0,this.close(),this.emit(\"error\",s))},this[Ii].on(\"error\",s=>this[GR](new kI(s))),this.once(\"end\",()=>this.close)}close(){this[Ii]&&(this[Ii].close(),this[Ii]=null,this.emit(\"close\"))}reset(){if(!this[xI])return n6(this[Ii],\"zlib binding closed\"),this[Ii].reset()}flush(e){this.ended||(typeof e!=\"number\"&&(e=this[p6]),this.write(Object.assign(k0.alloc(0),{[vv]:e})))}end(e,r,s){return e&&this.write(e,r),this.flush(this[Ihe]),this[t6]=!0,super.end(null,null,s)}get ended(){return this[t6]}write(e,r,s){if(typeof r==\"function\"&&(s=r,r=\"utf8\"),typeof e==\"string\"&&(e=k0.from(e,r)),this[xI])return;n6(this[Ii],\"zlib binding closed\");let a=this[Ii]._handle,n=a.close;a.close=()=>{};let c=this[Ii].close;this[Ii].close=()=>{},k0.concat=h=>h;let f;try{let h=typeof e[vv]==\"number\"?e[vv]:this[vv];f=this[Ii]._processChunk(e,h),k0.concat=Ehe}catch(h){k0.concat=Ehe,this[GR](new kI(h))}finally{this[Ii]&&(this[Ii]._handle=a,a.close=n,this[Ii].close=c,this[Ii].removeAllListeners(\"error\"))}this[Ii]&&this[Ii].on(\"error\",h=>this[GR](new kI(h)));let p;if(f)if(Array.isArray(f)&&f.length>0){p=this[Am](k0.from(f[0]));for(let h=1;h<f.length;h++)p=this[Am](f[h])}else p=this[Am](k0.from(f));return s&&s(),p}[Am](e){return super.write(e)}},qp=class extends qR{constructor(e,r){e=e||{},e.flush=e.flush||fm.Z_NO_FLUSH,e.finishFlush=e.finishFlush||fm.Z_FINISH,super(e,r),this[p6]=fm.Z_FULL_FLUSH,this[$j]=e.level,this[e6]=e.strategy}params(e,r){if(!this[xI]){if(!this[Ii])throw new Error(\"cannot switch params when binding is closed\");if(!this[Ii].params)throw new Error(\"not supported in this implementation\");if(this[$j]!==e||this[e6]!==r){this.flush(fm.Z_SYNC_FLUSH),n6(this[Ii],\"zlib binding closed\");let s=this[Ii].flush;this[Ii].flush=(a,n)=>{this.flush(a),n()};try{this[Ii].params(e,r)}finally{this[Ii].flush=s}this[Ii]&&(this[$j]=e,this[e6]=r)}}}},i6=class extends qp{constructor(e){super(e,\"Deflate\")}},s6=class extends qp{constructor(e){super(e,\"Inflate\")}},r6=Symbol(\"_portable\"),o6=class extends qp{constructor(e){super(e,\"Gzip\"),this[r6]=e&&!!e.portable}[Am](e){return this[r6]?(this[r6]=!1,e[9]=255,super[Am](e)):super[Am](e)}},a6=class extends qp{constructor(e){super(e,\"Gunzip\")}},l6=class extends qp{constructor(e){super(e,\"DeflateRaw\")}},c6=class extends qp{constructor(e){super(e,\"InflateRaw\")}},u6=class extends qp{constructor(e){super(e,\"Unzip\")}},WR=class extends qR{constructor(e,r){e=e||{},e.flush=e.flush||fm.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||fm.BROTLI_OPERATION_FINISH,super(e,r),this[p6]=fm.BROTLI_OPERATION_FLUSH}},f6=class extends WR{constructor(e){super(e,\"BrotliCompress\")}},A6=class extends WR{constructor(e){super(e,\"BrotliDecompress\")}};Kl.Deflate=i6;Kl.Inflate=s6;Kl.Gzip=o6;Kl.Gunzip=a6;Kl.DeflateRaw=l6;Kl.InflateRaw=c6;Kl.Unzip=u6;typeof Che.BrotliCompress==\"function\"?(Kl.BrotliCompress=f6,Kl.BrotliDecompress=A6):Kl.BrotliCompress=Kl.BrotliDecompress=class{constructor(){throw new Error(\"Brotli is not supported in this version of Node.js\")}}});var QI=_((W4t,whe)=>{var Bit=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;whe.exports=Bit!==\"win32\"?t=>t:t=>t&&t.replace(/\\\\/g,\"/\")});var YR=_((V4t,Bhe)=>{\"use strict\";var vit=bI(),g6=QI(),d6=Symbol(\"slurp\");Bhe.exports=class extends vit{constructor(e,r,s){switch(super(),this.pause(),this.extended=r,this.globalExtended=s,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case\"File\":case\"OldFile\":case\"Link\":case\"SymbolicLink\":case\"CharacterDevice\":case\"BlockDevice\":case\"Directory\":case\"FIFO\":case\"ContiguousFile\":case\"GNUDumpDir\":break;case\"NextFileHasLongLinkpath\":case\"NextFileHasLongPath\":case\"OldGnuLongPath\":case\"GlobalExtendedHeader\":case\"ExtendedHeader\":case\"OldExtendedHeader\":this.meta=!0;break;default:this.ignore=!0}this.path=g6(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=g6(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[d6](r),s&&this[d6](s,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error(\"writing more to entry than is appropriate\");let s=this.remain,a=this.blockRemain;return this.remain=Math.max(0,s-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:s>=r?super.write(e):super.write(e.slice(0,s))}[d6](e,r){for(let s in e)e[s]!==null&&e[s]!==void 0&&!(r&&s===\"path\")&&(this[s]=s===\"path\"||s===\"linkpath\"?g6(e[s]):e[s])}}});var m6=_(VR=>{\"use strict\";VR.name=new Map([[\"0\",\"File\"],[\"\",\"OldFile\"],[\"1\",\"Link\"],[\"2\",\"SymbolicLink\"],[\"3\",\"CharacterDevice\"],[\"4\",\"BlockDevice\"],[\"5\",\"Directory\"],[\"6\",\"FIFO\"],[\"7\",\"ContiguousFile\"],[\"g\",\"GlobalExtendedHeader\"],[\"x\",\"ExtendedHeader\"],[\"A\",\"SolarisACL\"],[\"D\",\"GNUDumpDir\"],[\"I\",\"Inode\"],[\"K\",\"NextFileHasLongLinkpath\"],[\"L\",\"NextFileHasLongPath\"],[\"M\",\"ContinuationFile\"],[\"N\",\"OldGnuLongPath\"],[\"S\",\"SparseFile\"],[\"V\",\"TapeVolumeHeader\"],[\"X\",\"OldExtendedHeader\"]]);VR.code=new Map(Array.from(VR.name).map(t=>[t[1],t[0]]))});var Phe=_((K4t,Dhe)=>{\"use strict\";var Sit=(t,e)=>{if(Number.isSafeInteger(t))t<0?Pit(t,e):Dit(t,e);else throw Error(\"cannot encode number outside of javascript safe integer range\");return e},Dit=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},Pit=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var s=e.length;s>1;s--){var a=t&255;t=Math.floor(t/256),r?e[s-1]=vhe(a):a===0?e[s-1]=0:(r=!0,e[s-1]=She(a))}},bit=t=>{let e=t[0],r=e===128?kit(t.slice(1,t.length)):e===255?xit(t):null;if(r===null)throw Error(\"invalid base256 encoding\");if(!Number.isSafeInteger(r))throw Error(\"parsed number outside of javascript safe integer range\");return r},xit=t=>{for(var e=t.length,r=0,s=!1,a=e-1;a>-1;a--){var n=t[a],c;s?c=vhe(n):n===0?c=n:(s=!0,c=She(n)),c!==0&&(r-=c*Math.pow(256,e-a-1))}return r},kit=t=>{for(var e=t.length,r=0,s=e-1;s>-1;s--){var a=t[s];a!==0&&(r+=a*Math.pow(256,e-s-1))}return r},vhe=t=>(255^t)&255,She=t=>(255^t)+1&255;Dhe.exports={encode:Sit,parse:bit}});var TI=_((z4t,xhe)=>{\"use strict\";var y6=m6(),RI=Ie(\"path\").posix,bhe=Phe(),E6=Symbol(\"slurp\"),zl=Symbol(\"type\"),w6=class{constructor(e,r,s,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[zl]=\"0\",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,s,a):e&&this.set(e)}decode(e,r,s,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error(\"need 512 bytes for header\");if(this.path=pm(e,r,100),this.mode=Q0(e,r+100,8),this.uid=Q0(e,r+108,8),this.gid=Q0(e,r+116,8),this.size=Q0(e,r+124,12),this.mtime=I6(e,r+136,12),this.cksum=Q0(e,r+148,12),this[E6](s),this[E6](a,!0),this[zl]=pm(e,r+156,1),this[zl]===\"\"&&(this[zl]=\"0\"),this[zl]===\"0\"&&this.path.substr(-1)===\"/\"&&(this[zl]=\"5\"),this[zl]===\"5\"&&(this.size=0),this.linkpath=pm(e,r+157,100),e.slice(r+257,r+265).toString()===\"ustar\\x0000\")if(this.uname=pm(e,r+265,32),this.gname=pm(e,r+297,32),this.devmaj=Q0(e,r+329,8),this.devmin=Q0(e,r+337,8),e[r+475]!==0){let c=pm(e,r+345,155);this.path=c+\"/\"+this.path}else{let c=pm(e,r+345,130);c&&(this.path=c+\"/\"+this.path),this.atime=I6(e,r+476,12),this.ctime=I6(e,r+488,12)}let n=8*32;for(let c=r;c<r+148;c++)n+=e[c];for(let c=r+156;c<r+512;c++)n+=e[c];this.cksumValid=n===this.cksum,this.cksum===null&&n===8*32&&(this.nullBlock=!0)}[E6](e,r){for(let s in e)e[s]!==null&&e[s]!==void 0&&!(r&&s===\"path\")&&(this[s]=e[s])}encode(e,r){if(e||(e=this.block=Buffer.alloc(512),r=0),r||(r=0),!(e.length>=r+512))throw new Error(\"need 512 bytes for header\");let s=this.ctime||this.atime?130:155,a=Qit(this.path||\"\",s),n=a[0],c=a[1];this.needPax=a[2],this.needPax=hm(e,r,100,n)||this.needPax,this.needPax=R0(e,r+100,8,this.mode)||this.needPax,this.needPax=R0(e,r+108,8,this.uid)||this.needPax,this.needPax=R0(e,r+116,8,this.gid)||this.needPax,this.needPax=R0(e,r+124,12,this.size)||this.needPax,this.needPax=C6(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[zl].charCodeAt(0),this.needPax=hm(e,r+157,100,this.linkpath)||this.needPax,e.write(\"ustar\\x0000\",r+257,8),this.needPax=hm(e,r+265,32,this.uname)||this.needPax,this.needPax=hm(e,r+297,32,this.gname)||this.needPax,this.needPax=R0(e,r+329,8,this.devmaj)||this.needPax,this.needPax=R0(e,r+337,8,this.devmin)||this.needPax,this.needPax=hm(e,r+345,s,c)||this.needPax,e[r+475]!==0?this.needPax=hm(e,r+345,155,c)||this.needPax:(this.needPax=hm(e,r+345,130,c)||this.needPax,this.needPax=C6(e,r+476,12,this.atime)||this.needPax,this.needPax=C6(e,r+488,12,this.ctime)||this.needPax);let f=8*32;for(let p=r;p<r+148;p++)f+=e[p];for(let p=r+156;p<r+512;p++)f+=e[p];return this.cksum=f,R0(e,r+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let r in e)e[r]!==null&&e[r]!==void 0&&(this[r]=e[r])}get type(){return y6.name.get(this[zl])||this[zl]}get typeKey(){return this[zl]}set type(e){y6.code.has(e)?this[zl]=y6.code.get(e):this[zl]=e}},Qit=(t,e)=>{let s=t,a=\"\",n,c=RI.parse(t).root||\".\";if(Buffer.byteLength(s)<100)n=[s,a,!1];else{a=RI.dirname(s),s=RI.basename(s);do Buffer.byteLength(s)<=100&&Buffer.byteLength(a)<=e?n=[s,a,!1]:Buffer.byteLength(s)>100&&Buffer.byteLength(a)<=e?n=[s.substr(0,99),a,!0]:(s=RI.join(RI.basename(a),s),a=RI.dirname(a));while(a!==c&&!n);n||(n=[t.substr(0,99),\"\",!0])}return n},pm=(t,e,r)=>t.slice(e,e+r).toString(\"utf8\").replace(/\\0.*/,\"\"),I6=(t,e,r)=>Rit(Q0(t,e,r)),Rit=t=>t===null?null:new Date(t*1e3),Q0=(t,e,r)=>t[e]&128?bhe.parse(t.slice(e,e+r)):Fit(t,e,r),Tit=t=>isNaN(t)?null:t,Fit=(t,e,r)=>Tit(parseInt(t.slice(e,e+r).toString(\"utf8\").replace(/\\0.*$/,\"\").trim(),8)),Nit={12:8589934591,8:2097151},R0=(t,e,r,s)=>s===null?!1:s>Nit[r]||s<0?(bhe.encode(s,t.slice(e,e+r)),!0):(Oit(t,e,r,s),!1),Oit=(t,e,r,s)=>t.write(Lit(s,r),e,r,\"ascii\"),Lit=(t,e)=>Mit(Math.floor(t).toString(8),e),Mit=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join(\"0\")+t+\" \")+\"\\0\",C6=(t,e,r,s)=>s===null?!1:R0(t,e,r,s.getTime()/1e3),Uit=new Array(156).join(\"\\0\"),hm=(t,e,r,s)=>s===null?!1:(t.write(s+Uit,e,r,\"utf8\"),s.length!==Buffer.byteLength(s)||s.length>r);xhe.exports=w6});var JR=_((Z4t,khe)=>{\"use strict\";var _it=TI(),Hit=Ie(\"path\"),Sv=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e===\"\")return null;let r=Buffer.byteLength(e),s=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(s);for(let n=0;n<512;n++)a[n]=0;new _it({path:(\"PaxHeader/\"+Hit.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?\"GlobalExtendedHeader\":\"ExtendedHeader\",linkpath:\"\",uname:this.uname||\"\",gname:this.gname||\"\",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,\"utf8\");for(let n=r+512;n<a.length;n++)a[n]=0;return a}encodeBody(){return this.encodeField(\"path\")+this.encodeField(\"ctime\")+this.encodeField(\"atime\")+this.encodeField(\"dev\")+this.encodeField(\"ino\")+this.encodeField(\"nlink\")+this.encodeField(\"charset\")+this.encodeField(\"comment\")+this.encodeField(\"gid\")+this.encodeField(\"gname\")+this.encodeField(\"linkpath\")+this.encodeField(\"mtime\")+this.encodeField(\"size\")+this.encodeField(\"uid\")+this.encodeField(\"uname\")}encodeField(e){if(this[e]===null||this[e]===void 0)return\"\";let r=this[e]instanceof Date?this[e].getTime()/1e3:this[e],s=\" \"+(e===\"dev\"||e===\"ino\"||e===\"nlink\"?\"SCHILY.\":\"\")+e+\"=\"+r+`\n`,a=Buffer.byteLength(s),n=Math.floor(Math.log(a)/Math.log(10))+1;return a+n>=Math.pow(10,n)&&(n+=1),n+a+s}};Sv.parse=(t,e,r)=>new Sv(jit(Git(t),e),r);var jit=(t,e)=>e?Object.keys(t).reduce((r,s)=>(r[s]=t[s],r),e):t,Git=t=>t.replace(/\\n$/,\"\").split(`\n`).reduce(qit,Object.create(null)),qit=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+\" \").length);let s=e.split(\"=\"),a=s.shift().replace(/^SCHILY\\.(dev|ino|nlink)/,\"$1\");if(!a)return t;let n=s.join(\"=\");return t[a]=/^([A-Z]+\\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};khe.exports=Sv});var FI=_((X4t,Qhe)=>{Qhe.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)===\"/\";)r=e,e--;return r===-1?t:t.slice(0,r)}});var KR=_(($4t,Rhe)=>{\"use strict\";Rhe.exports=t=>class extends t{warn(e,r,s={}){this.file&&(s.file=this.file),this.cwd&&(s.cwd=this.cwd),s.code=r instanceof Error&&r.code||e,s.tarCode=e,!this.strict&&s.recoverable!==!1?(r instanceof Error&&(s=Object.assign(r,s),r=r.message),this.emit(\"warn\",s.tarCode,r,s)):r instanceof Error?this.emit(\"error\",Object.assign(r,s)):this.emit(\"error\",Object.assign(new Error(`${e}: ${r}`),s))}}});var v6=_((t3t,The)=>{\"use strict\";var zR=[\"|\",\"<\",\">\",\"?\",\":\"],B6=zR.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),Wit=new Map(zR.map((t,e)=>[t,B6[e]])),Yit=new Map(B6.map((t,e)=>[t,zR[e]]));The.exports={encode:t=>zR.reduce((e,r)=>e.split(r).join(Wit.get(r)),t),decode:t=>B6.reduce((e,r)=>e.split(r).join(Yit.get(r)),t)}});var S6=_((r3t,Nhe)=>{var{isAbsolute:Vit,parse:Fhe}=Ie(\"path\").win32;Nhe.exports=t=>{let e=\"\",r=Fhe(t);for(;Vit(t)||r.root;){let s=t.charAt(0)===\"/\"&&t.slice(0,4)!==\"//?/\"?\"/\":r.root;t=t.substr(s.length),e+=s,r=Fhe(t)}return[e,t]}});var Lhe=_((n3t,Ohe)=>{\"use strict\";Ohe.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var N6=_((o3t,Zhe)=>{\"use strict\";var qhe=bI(),Whe=JR(),Yhe=TI(),nA=Ie(\"fs\"),Mhe=Ie(\"path\"),rA=QI(),Jit=FI(),Vhe=(t,e)=>e?(t=rA(t).replace(/^\\.(\\/|$)/,\"\"),Jit(e)+\"/\"+t):rA(t),Kit=16*1024*1024,Uhe=Symbol(\"process\"),_he=Symbol(\"file\"),Hhe=Symbol(\"directory\"),P6=Symbol(\"symlink\"),jhe=Symbol(\"hardlink\"),Dv=Symbol(\"header\"),ZR=Symbol(\"read\"),b6=Symbol(\"lstat\"),XR=Symbol(\"onlstat\"),x6=Symbol(\"onread\"),k6=Symbol(\"onreadlink\"),Q6=Symbol(\"openfile\"),R6=Symbol(\"onopenfile\"),T0=Symbol(\"close\"),$R=Symbol(\"mode\"),T6=Symbol(\"awaitDrain\"),D6=Symbol(\"ondrain\"),iA=Symbol(\"prefix\"),Ghe=Symbol(\"hadError\"),Jhe=KR(),zit=v6(),Khe=S6(),zhe=Lhe(),eT=Jhe(class extends qhe{constructor(e,r){if(r=r||{},super(r),typeof e!=\"string\")throw new TypeError(\"path is required\");this.path=rA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||\"\",this.maxReadSize=r.maxReadSize||Kit,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=rA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?rA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn==\"function\"&&this.on(\"warn\",r.onwarn);let s=!1;if(!this.preservePaths){let[a,n]=Khe(this.path);a&&(this.path=n,s=a)}this.win32=!!r.win32||process.platform===\"win32\",this.win32&&(this.path=zit.decode(this.path.replace(/\\\\/g,\"/\")),e=e.replace(/\\\\/g,\"/\")),this.absolute=rA(r.absolute||Mhe.resolve(this.cwd,e)),this.path===\"\"&&(this.path=\"./\"),s&&this.warn(\"TAR_ENTRY_INFO\",`stripping ${s} from absolute path`,{entry:this,path:s+this.path}),this.statCache.has(this.absolute)?this[XR](this.statCache.get(this.absolute)):this[b6]()}emit(e,...r){return e===\"error\"&&(this[Ghe]=!0),super.emit(e,...r)}[b6](){nA.lstat(this.absolute,(e,r)=>{if(e)return this.emit(\"error\",e);this[XR](r)})}[XR](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=Xit(e),this.emit(\"stat\",e),this[Uhe]()}[Uhe](){switch(this.type){case\"File\":return this[_he]();case\"Directory\":return this[Hhe]();case\"SymbolicLink\":return this[P6]();default:return this.end()}}[$R](e){return zhe(e,this.type===\"Directory\",this.portable)}[iA](e){return Vhe(e,this.prefix)}[Dv](){this.type===\"Directory\"&&this.portable&&(this.noMtime=!0),this.header=new Yhe({path:this[iA](this.path),linkpath:this.type===\"Link\"?this[iA](this.linkpath):this.linkpath,mode:this[$R](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:\"\",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new Whe({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[iA](this.path),linkpath:this.type===\"Link\"?this[iA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[Hhe](){this.path.substr(-1)!==\"/\"&&(this.path+=\"/\"),this.stat.size=0,this[Dv](),this.end()}[P6](){nA.readlink(this.absolute,(e,r)=>{if(e)return this.emit(\"error\",e);this[k6](r)})}[k6](e){this.linkpath=rA(e),this[Dv](),this.end()}[jhe](e){this.type=\"Link\",this.linkpath=rA(Mhe.relative(this.cwd,e)),this.stat.size=0,this[Dv](),this.end()}[_he](){if(this.stat.nlink>1){let e=this.stat.dev+\":\"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[jhe](r)}this.linkCache.set(e,this.absolute)}if(this[Dv](),this.stat.size===0)return this.end();this[Q6]()}[Q6](){nA.open(this.absolute,\"r\",(e,r)=>{if(e)return this.emit(\"error\",e);this[R6](r)})}[R6](e){if(this.fd=e,this[Ghe])return this[T0]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[ZR]()}[ZR](){let{fd:e,buf:r,offset:s,length:a,pos:n}=this;nA.read(e,r,s,a,n,(c,f)=>{if(c)return this[T0](()=>this.emit(\"error\",c));this[x6](f)})}[T0](e){nA.close(this.fd,e)}[x6](e){if(e<=0&&this.remain>0){let a=new Error(\"encountered unexpected EOF\");return a.path=this.absolute,a.syscall=\"read\",a.code=\"EOF\",this[T0](()=>this.emit(\"error\",a))}if(e>this.remain){let a=new Error(\"did not encounter expected EOF\");return a.path=this.absolute,a.syscall=\"read\",a.code=\"EOF\",this[T0](()=>this.emit(\"error\",a))}if(e===this.remain)for(let a=e;a<this.length&&e<this.blockRemain;a++)this.buf[a+this.offset]=0,e++,this.remain++;let r=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(r)?this[D6]():this[T6](()=>this[D6]())}[T6](e){this.once(\"drain\",e)}write(e){if(this.blockRemain<e.length){let r=new Error(\"writing more data than expected\");return r.path=this.absolute,this.emit(\"error\",r)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[D6](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[T0](e=>e?this.emit(\"error\",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[ZR]()}}),F6=class extends eT{[b6](){this[XR](nA.lstatSync(this.absolute))}[P6](){this[k6](nA.readlinkSync(this.absolute))}[Q6](){this[R6](nA.openSync(this.absolute,\"r\"))}[ZR](){let e=!0;try{let{fd:r,buf:s,offset:a,length:n,pos:c}=this,f=nA.readSync(r,s,a,n,c);this[x6](f),e=!1}finally{if(e)try{this[T0](()=>{})}catch{}}}[T6](e){e()}[T0](e){nA.closeSync(this.fd),e()}},Zit=Jhe(class extends qhe{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type===\"Directory\"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=rA(e.path),this.mode=this[$R](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=rA(e.linkpath),typeof r.onwarn==\"function\"&&this.on(\"warn\",r.onwarn);let s=!1;if(!this.preservePaths){let[a,n]=Khe(this.path);a&&(this.path=n,s=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new Yhe({path:this[iA](this.path),linkpath:this.type===\"Link\"?this[iA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),s&&this.warn(\"TAR_ENTRY_INFO\",`stripping ${s} from absolute path`,{entry:this,path:s+this.path}),this.header.encode()&&!this.noPax&&super.write(new Whe({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[iA](this.path),linkpath:this.type===\"Link\"?this[iA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[iA](e){return Vhe(e,this.prefix)}[$R](e){return zhe(e,this.type===\"Directory\",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error(\"writing more to entry than is appropriate\");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});eT.Sync=F6;eT.Tar=Zit;var Xit=t=>t.isFile()?\"File\":t.isDirectory()?\"Directory\":t.isSymbolicLink()?\"SymbolicLink\":\"Unsupported\";Zhe.exports=eT});var cT=_((l3t,i0e)=>{\"use strict\";var aT=class{constructor(e,r){this.path=e||\"./\",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},$it=bI(),est=h6(),tst=YR(),q6=N6(),rst=q6.Sync,nst=q6.Tar,ist=$x(),Xhe=Buffer.alloc(1024),nT=Symbol(\"onStat\"),tT=Symbol(\"ended\"),sA=Symbol(\"queue\"),NI=Symbol(\"current\"),gm=Symbol(\"process\"),rT=Symbol(\"processing\"),$he=Symbol(\"processJob\"),oA=Symbol(\"jobs\"),O6=Symbol(\"jobDone\"),iT=Symbol(\"addFSEntry\"),e0e=Symbol(\"addTarEntry\"),_6=Symbol(\"stat\"),H6=Symbol(\"readdir\"),sT=Symbol(\"onreaddir\"),oT=Symbol(\"pipe\"),t0e=Symbol(\"entry\"),L6=Symbol(\"entryOpt\"),j6=Symbol(\"writeEntryClass\"),n0e=Symbol(\"write\"),M6=Symbol(\"ondrain\"),lT=Ie(\"fs\"),r0e=Ie(\"path\"),sst=KR(),U6=QI(),W6=sst(class extends $it{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||\"\",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=U6(e.prefix||\"\"),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[j6]=q6,typeof e.onwarn==\"function\"&&this.on(\"warn\",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!=\"object\"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new est.Gzip(e.gzip),this.zip.on(\"data\",r=>super.write(r)),this.zip.on(\"end\",r=>super.end()),this.zip.on(\"drain\",r=>this[M6]()),this.on(\"resume\",r=>this.zip.resume())):this.on(\"drain\",this[M6]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter==\"function\"?e.filter:r=>!0,this[sA]=new ist,this[oA]=0,this.jobs=+e.jobs||4,this[rT]=!1,this[tT]=!1}[n0e](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[tT]=!0,this[gm](),this}write(e){if(this[tT])throw new Error(\"write after end\");return e instanceof tst?this[e0e](e):this[iT](e),this.flowing}[e0e](e){let r=U6(r0e.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let s=new aT(e.path,r,!1);s.entry=new nst(e,this[L6](s)),s.entry.on(\"end\",a=>this[O6](s)),this[oA]+=1,this[sA].push(s)}this[gm]()}[iT](e){let r=U6(r0e.resolve(this.cwd,e));this[sA].push(new aT(e,r)),this[gm]()}[_6](e){e.pending=!0,this[oA]+=1;let r=this.follow?\"stat\":\"lstat\";lT[r](e.absolute,(s,a)=>{e.pending=!1,this[oA]-=1,s?this.emit(\"error\",s):this[nT](e,a)})}[nT](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[gm]()}[H6](e){e.pending=!0,this[oA]+=1,lT.readdir(e.absolute,(r,s)=>{if(e.pending=!1,this[oA]-=1,r)return this.emit(\"error\",r);this[sT](e,s)})}[sT](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[gm]()}[gm](){if(!this[rT]){this[rT]=!0;for(let e=this[sA].head;e!==null&&this[oA]<this.jobs;e=e.next)if(this[$he](e.value),e.value.ignore){let r=e.next;this[sA].removeNode(e),e.next=r}this[rT]=!1,this[tT]&&!this[sA].length&&this[oA]===0&&(this.zip?this.zip.end(Xhe):(super.write(Xhe),super.end()))}}get[NI](){return this[sA]&&this[sA].head&&this[sA].head.value}[O6](e){this[sA].shift(),this[oA]-=1,this[gm]()}[$he](e){if(!e.pending){if(e.entry){e===this[NI]&&!e.piped&&this[oT](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[nT](e,this.statCache.get(e.absolute)):this[_6](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[sT](e,this.readdirCache.get(e.absolute)):this[H6](e),!e.readdir))){if(e.entry=this[t0e](e),!e.entry){e.ignore=!0;return}e===this[NI]&&!e.piped&&this[oT](e)}}}[L6](e){return{onwarn:(r,s,a)=>this.warn(r,s,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[t0e](e){this[oA]+=1;try{return new this[j6](e.path,this[L6](e)).on(\"end\",()=>this[O6](e)).on(\"error\",r=>this.emit(\"error\",r))}catch(r){this.emit(\"error\",r)}}[M6](){this[NI]&&this[NI].entry&&this[NI].entry.resume()}[oT](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,c=n===\"./\"?\"\":n.replace(/\\/*$/,\"/\");this[iT](c+a)});let r=e.entry,s=this.zip;s?r.on(\"data\",a=>{s.write(a)||r.pause()}):r.on(\"data\",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),G6=class extends W6{constructor(e){super(e),this[j6]=rst}pause(){}resume(){}[_6](e){let r=this.follow?\"statSync\":\"lstatSync\";this[nT](e,lT[r](e.absolute))}[H6](e,r){this[sT](e,lT.readdirSync(e.absolute))}[oT](e){let r=e.entry,s=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,c=n===\"./\"?\"\":n.replace(/\\/*$/,\"/\");this[iT](c+a)}),s?r.on(\"data\",a=>{s.write(a)}):r.on(\"data\",a=>{super[n0e](a)})}};W6.Sync=G6;i0e.exports=W6});var GI=_(bv=>{\"use strict\";var ost=bI(),ast=Ie(\"events\").EventEmitter,fl=Ie(\"fs\"),J6=fl.writev;if(!J6){let t=process.binding(\"fs\"),e=t.FSReqWrap||t.FSReqCallback;J6=(r,s,a,n)=>{let c=(p,h)=>n(p,h,s),f=new e;f.oncomplete=c,t.writeBuffers(r,s,a,f)}}var HI=Symbol(\"_autoClose\"),Yu=Symbol(\"_close\"),Pv=Symbol(\"_ended\"),ii=Symbol(\"_fd\"),s0e=Symbol(\"_finished\"),N0=Symbol(\"_flags\"),Y6=Symbol(\"_flush\"),K6=Symbol(\"_handleChunk\"),z6=Symbol(\"_makeBuf\"),hT=Symbol(\"_mode\"),uT=Symbol(\"_needDrain\"),UI=Symbol(\"_onerror\"),jI=Symbol(\"_onopen\"),V6=Symbol(\"_onread\"),LI=Symbol(\"_onwrite\"),O0=Symbol(\"_open\"),Wp=Symbol(\"_path\"),dm=Symbol(\"_pos\"),aA=Symbol(\"_queue\"),MI=Symbol(\"_read\"),o0e=Symbol(\"_readSize\"),F0=Symbol(\"_reading\"),fT=Symbol(\"_remain\"),a0e=Symbol(\"_size\"),AT=Symbol(\"_write\"),OI=Symbol(\"_writing\"),pT=Symbol(\"_defaultFlag\"),_I=Symbol(\"_errored\"),gT=class extends ost{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!=\"string\")throw new TypeError(\"path must be a string\");this[_I]=!1,this[ii]=typeof r.fd==\"number\"?r.fd:null,this[Wp]=e,this[o0e]=r.readSize||16*1024*1024,this[F0]=!1,this[a0e]=typeof r.size==\"number\"?r.size:1/0,this[fT]=this[a0e],this[HI]=typeof r.autoClose==\"boolean\"?r.autoClose:!0,typeof this[ii]==\"number\"?this[MI]():this[O0]()}get fd(){return this[ii]}get path(){return this[Wp]}write(){throw new TypeError(\"this is a readable stream\")}end(){throw new TypeError(\"this is a readable stream\")}[O0](){fl.open(this[Wp],\"r\",(e,r)=>this[jI](e,r))}[jI](e,r){e?this[UI](e):(this[ii]=r,this.emit(\"open\",r),this[MI]())}[z6](){return Buffer.allocUnsafe(Math.min(this[o0e],this[fT]))}[MI](){if(!this[F0]){this[F0]=!0;let e=this[z6]();if(e.length===0)return process.nextTick(()=>this[V6](null,0,e));fl.read(this[ii],e,0,e.length,null,(r,s,a)=>this[V6](r,s,a))}}[V6](e,r,s){this[F0]=!1,e?this[UI](e):this[K6](r,s)&&this[MI]()}[Yu](){if(this[HI]&&typeof this[ii]==\"number\"){let e=this[ii];this[ii]=null,fl.close(e,r=>r?this.emit(\"error\",r):this.emit(\"close\"))}}[UI](e){this[F0]=!0,this[Yu](),this.emit(\"error\",e)}[K6](e,r){let s=!1;return this[fT]-=e,e>0&&(s=super.write(e<r.length?r.slice(0,e):r)),(e===0||this[fT]<=0)&&(s=!1,this[Yu](),super.end()),s}emit(e,r){switch(e){case\"prefinish\":case\"finish\":break;case\"drain\":typeof this[ii]==\"number\"&&this[MI]();break;case\"error\":return this[_I]?void 0:(this[_I]=!0,super.emit(e,r));default:return super.emit(e,r)}}},Z6=class extends gT{[O0](){let e=!0;try{this[jI](null,fl.openSync(this[Wp],\"r\")),e=!1}finally{e&&this[Yu]()}}[MI](){let e=!0;try{if(!this[F0]){this[F0]=!0;do{let r=this[z6](),s=r.length===0?0:fl.readSync(this[ii],r,0,r.length,null);if(!this[K6](s,r))break}while(!0);this[F0]=!1}e=!1}finally{e&&this[Yu]()}}[Yu](){if(this[HI]&&typeof this[ii]==\"number\"){let e=this[ii];this[ii]=null,fl.closeSync(e),this.emit(\"close\")}}},dT=class extends ast{constructor(e,r){r=r||{},super(r),this.readable=!1,this.writable=!0,this[_I]=!1,this[OI]=!1,this[Pv]=!1,this[uT]=!1,this[aA]=[],this[Wp]=e,this[ii]=typeof r.fd==\"number\"?r.fd:null,this[hT]=r.mode===void 0?438:r.mode,this[dm]=typeof r.start==\"number\"?r.start:null,this[HI]=typeof r.autoClose==\"boolean\"?r.autoClose:!0;let s=this[dm]!==null?\"r+\":\"w\";this[pT]=r.flags===void 0,this[N0]=this[pT]?s:r.flags,this[ii]===null&&this[O0]()}emit(e,r){if(e===\"error\"){if(this[_I])return;this[_I]=!0}return super.emit(e,r)}get fd(){return this[ii]}get path(){return this[Wp]}[UI](e){this[Yu](),this[OI]=!0,this.emit(\"error\",e)}[O0](){fl.open(this[Wp],this[N0],this[hT],(e,r)=>this[jI](e,r))}[jI](e,r){this[pT]&&this[N0]===\"r+\"&&e&&e.code===\"ENOENT\"?(this[N0]=\"w\",this[O0]()):e?this[UI](e):(this[ii]=r,this.emit(\"open\",r),this[Y6]())}end(e,r){return e&&this.write(e,r),this[Pv]=!0,!this[OI]&&!this[aA].length&&typeof this[ii]==\"number\"&&this[LI](null,0),this}write(e,r){return typeof e==\"string\"&&(e=Buffer.from(e,r)),this[Pv]?(this.emit(\"error\",new Error(\"write() after end()\")),!1):this[ii]===null||this[OI]||this[aA].length?(this[aA].push(e),this[uT]=!0,!1):(this[OI]=!0,this[AT](e),!0)}[AT](e){fl.write(this[ii],e,0,e.length,this[dm],(r,s)=>this[LI](r,s))}[LI](e,r){e?this[UI](e):(this[dm]!==null&&(this[dm]+=r),this[aA].length?this[Y6]():(this[OI]=!1,this[Pv]&&!this[s0e]?(this[s0e]=!0,this[Yu](),this.emit(\"finish\")):this[uT]&&(this[uT]=!1,this.emit(\"drain\"))))}[Y6](){if(this[aA].length===0)this[Pv]&&this[LI](null,0);else if(this[aA].length===1)this[AT](this[aA].pop());else{let e=this[aA];this[aA]=[],J6(this[ii],e,this[dm],(r,s)=>this[LI](r,s))}}[Yu](){if(this[HI]&&typeof this[ii]==\"number\"){let e=this[ii];this[ii]=null,fl.close(e,r=>r?this.emit(\"error\",r):this.emit(\"close\"))}}},X6=class extends dT{[O0](){let e;if(this[pT]&&this[N0]===\"r+\")try{e=fl.openSync(this[Wp],this[N0],this[hT])}catch(r){if(r.code===\"ENOENT\")return this[N0]=\"w\",this[O0]();throw r}else e=fl.openSync(this[Wp],this[N0],this[hT]);this[jI](null,e)}[Yu](){if(this[HI]&&typeof this[ii]==\"number\"){let e=this[ii];this[ii]=null,fl.closeSync(e),this.emit(\"close\")}}[AT](e){let r=!0;try{this[LI](null,fl.writeSync(this[ii],e,0,e.length,this[dm])),r=!1}finally{if(r)try{this[Yu]()}catch{}}}};bv.ReadStream=gT;bv.ReadStreamSync=Z6;bv.WriteStream=dT;bv.WriteStreamSync=X6});var BT=_((f3t,h0e)=>{\"use strict\";var lst=KR(),cst=TI(),ust=Ie(\"events\"),fst=$x(),Ast=1024*1024,pst=YR(),l0e=JR(),hst=h6(),$6=Buffer.from([31,139]),Lc=Symbol(\"state\"),mm=Symbol(\"writeEntry\"),Yp=Symbol(\"readEntry\"),eG=Symbol(\"nextEntry\"),c0e=Symbol(\"processEntry\"),Mc=Symbol(\"extendedHeader\"),xv=Symbol(\"globalExtendedHeader\"),L0=Symbol(\"meta\"),u0e=Symbol(\"emitMeta\"),Di=Symbol(\"buffer\"),Vp=Symbol(\"queue\"),ym=Symbol(\"ended\"),f0e=Symbol(\"emittedEnd\"),Em=Symbol(\"emit\"),Al=Symbol(\"unzip\"),mT=Symbol(\"consumeChunk\"),yT=Symbol(\"consumeChunkSub\"),tG=Symbol(\"consumeBody\"),A0e=Symbol(\"consumeMeta\"),p0e=Symbol(\"consumeHeader\"),ET=Symbol(\"consuming\"),rG=Symbol(\"bufferConcat\"),nG=Symbol(\"maybeEnd\"),kv=Symbol(\"writing\"),M0=Symbol(\"aborted\"),IT=Symbol(\"onDone\"),Im=Symbol(\"sawValidEntry\"),CT=Symbol(\"sawNullBlock\"),wT=Symbol(\"sawEOF\"),gst=t=>!0;h0e.exports=lst(class extends ust{constructor(e){e=e||{},super(e),this.file=e.file||\"\",this[Im]=null,this.on(IT,r=>{(this[Lc]===\"begin\"||this[Im]===!1)&&this.warn(\"TAR_BAD_ARCHIVE\",\"Unrecognized archive format\")}),e.ondone?this.on(IT,e.ondone):this.on(IT,r=>{this.emit(\"prefinish\"),this.emit(\"finish\"),this.emit(\"end\"),this.emit(\"close\")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||Ast,this.filter=typeof e.filter==\"function\"?e.filter:gst,this.writable=!0,this.readable=!1,this[Vp]=new fst,this[Di]=null,this[Yp]=null,this[mm]=null,this[Lc]=\"begin\",this[L0]=\"\",this[Mc]=null,this[xv]=null,this[ym]=!1,this[Al]=null,this[M0]=!1,this[CT]=!1,this[wT]=!1,typeof e.onwarn==\"function\"&&this.on(\"warn\",e.onwarn),typeof e.onentry==\"function\"&&this.on(\"entry\",e.onentry)}[p0e](e,r){this[Im]===null&&(this[Im]=!1);let s;try{s=new cst(e,r,this[Mc],this[xv])}catch(a){return this.warn(\"TAR_ENTRY_INVALID\",a)}if(s.nullBlock)this[CT]?(this[wT]=!0,this[Lc]===\"begin\"&&(this[Lc]=\"header\"),this[Em](\"eof\")):(this[CT]=!0,this[Em](\"nullBlock\"));else if(this[CT]=!1,!s.cksumValid)this.warn(\"TAR_ENTRY_INVALID\",\"checksum failure\",{header:s});else if(!s.path)this.warn(\"TAR_ENTRY_INVALID\",\"path is required\",{header:s});else{let a=s.type;if(/^(Symbolic)?Link$/.test(a)&&!s.linkpath)this.warn(\"TAR_ENTRY_INVALID\",\"linkpath required\",{header:s});else if(!/^(Symbolic)?Link$/.test(a)&&s.linkpath)this.warn(\"TAR_ENTRY_INVALID\",\"linkpath forbidden\",{header:s});else{let n=this[mm]=new pst(s,this[Mc],this[xv]);if(!this[Im])if(n.remain){let c=()=>{n.invalid||(this[Im]=!0)};n.on(\"end\",c)}else this[Im]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[Em](\"ignoredEntry\",n),this[Lc]=\"ignore\",n.resume()):n.size>0&&(this[L0]=\"\",n.on(\"data\",c=>this[L0]+=c),this[Lc]=\"meta\"):(this[Mc]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[Em](\"ignoredEntry\",n),this[Lc]=n.remain?\"ignore\":\"header\",n.resume()):(n.remain?this[Lc]=\"body\":(this[Lc]=\"header\",n.end()),this[Yp]?this[Vp].push(n):(this[Vp].push(n),this[eG]())))}}}[c0e](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[Yp]=e,this.emit(\"entry\",e),e.emittedEnd||(e.on(\"end\",s=>this[eG]()),r=!1)):(this[Yp]=null,r=!1),r}[eG](){do;while(this[c0e](this[Vp].shift()));if(!this[Vp].length){let e=this[Yp];!e||e.flowing||e.size===e.remain?this[kv]||this.emit(\"drain\"):e.once(\"drain\",s=>this.emit(\"drain\"))}}[tG](e,r){let s=this[mm],a=s.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return s.write(n),s.blockRemain||(this[Lc]=\"header\",this[mm]=null,s.end()),n.length}[A0e](e,r){let s=this[mm],a=this[tG](e,r);return this[mm]||this[u0e](s),a}[Em](e,r,s){!this[Vp].length&&!this[Yp]?this.emit(e,r,s):this[Vp].push([e,r,s])}[u0e](e){switch(this[Em](\"meta\",this[L0]),e.type){case\"ExtendedHeader\":case\"OldExtendedHeader\":this[Mc]=l0e.parse(this[L0],this[Mc],!1);break;case\"GlobalExtendedHeader\":this[xv]=l0e.parse(this[L0],this[xv],!0);break;case\"NextFileHasLongPath\":case\"OldGnuLongPath\":this[Mc]=this[Mc]||Object.create(null),this[Mc].path=this[L0].replace(/\\0.*/,\"\");break;case\"NextFileHasLongLinkpath\":this[Mc]=this[Mc]||Object.create(null),this[Mc].linkpath=this[L0].replace(/\\0.*/,\"\");break;default:throw new Error(\"unknown meta: \"+e.type)}}abort(e){this[M0]=!0,this.emit(\"abort\",e),this.warn(\"TAR_ABORT\",e,{recoverable:!1})}write(e){if(this[M0])return;if(this[Al]===null&&e){if(this[Di]&&(e=Buffer.concat([this[Di],e]),this[Di]=null),e.length<$6.length)return this[Di]=e,!0;for(let s=0;this[Al]===null&&s<$6.length;s++)e[s]!==$6[s]&&(this[Al]=!1);if(this[Al]===null){let s=this[ym];this[ym]=!1,this[Al]=new hst.Unzip,this[Al].on(\"data\",n=>this[mT](n)),this[Al].on(\"error\",n=>this.abort(n)),this[Al].on(\"end\",n=>{this[ym]=!0,this[mT]()}),this[kv]=!0;let a=this[Al][s?\"end\":\"write\"](e);return this[kv]=!1,a}}this[kv]=!0,this[Al]?this[Al].write(e):this[mT](e),this[kv]=!1;let r=this[Vp].length?!1:this[Yp]?this[Yp].flowing:!0;return!r&&!this[Vp].length&&this[Yp].once(\"drain\",s=>this.emit(\"drain\")),r}[rG](e){e&&!this[M0]&&(this[Di]=this[Di]?Buffer.concat([this[Di],e]):e)}[nG](){if(this[ym]&&!this[f0e]&&!this[M0]&&!this[ET]){this[f0e]=!0;let e=this[mm];if(e&&e.blockRemain){let r=this[Di]?this[Di].length:0;this.warn(\"TAR_BAD_ARCHIVE\",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[Di]&&e.write(this[Di]),e.end()}this[Em](IT)}}[mT](e){if(this[ET])this[rG](e);else if(!e&&!this[Di])this[nG]();else{if(this[ET]=!0,this[Di]){this[rG](e);let r=this[Di];this[Di]=null,this[yT](r)}else this[yT](e);for(;this[Di]&&this[Di].length>=512&&!this[M0]&&!this[wT];){let r=this[Di];this[Di]=null,this[yT](r)}this[ET]=!1}(!this[Di]||this[ym])&&this[nG]()}[yT](e){let r=0,s=e.length;for(;r+512<=s&&!this[M0]&&!this[wT];)switch(this[Lc]){case\"begin\":case\"header\":this[p0e](e,r),r+=512;break;case\"ignore\":case\"body\":r+=this[tG](e,r);break;case\"meta\":r+=this[A0e](e,r);break;default:throw new Error(\"invalid state: \"+this[Lc])}r<s&&(this[Di]?this[Di]=Buffer.concat([e.slice(r),this[Di]]):this[Di]=e.slice(r))}end(e){this[M0]||(this[Al]?this[Al].end(e):(this[ym]=!0,this.write(e)))}})});var vT=_((A3t,y0e)=>{\"use strict\";var dst=DI(),d0e=BT(),qI=Ie(\"fs\"),mst=GI(),g0e=Ie(\"path\"),iG=FI();y0e.exports=(t,e,r)=>{typeof t==\"function\"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e==\"function\"&&(r=e,e=null),e?e=Array.from(e):e=[];let s=dst(t);if(s.sync&&typeof r==\"function\")throw new TypeError(\"callback not supported for sync tar functions\");if(!s.file&&typeof r==\"function\")throw new TypeError(\"callback only supported with file option\");return e.length&&Est(s,e),s.noResume||yst(s),s.file&&s.sync?Ist(s):s.file?Cst(s,r):m0e(s)};var yst=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},Est=(t,e)=>{let r=new Map(e.map(n=>[iG(n),!0])),s=t.filter,a=(n,c)=>{let f=c||g0e.parse(n).root||\".\",p=n===f?!1:r.has(n)?r.get(n):a(g0e.dirname(n),f);return r.set(n,p),p};t.filter=s?(n,c)=>s(n,c)&&a(iG(n)):n=>a(iG(n))},Ist=t=>{let e=m0e(t),r=t.file,s=!0,a;try{let n=qI.statSync(r),c=t.maxReadSize||16*1024*1024;if(n.size<c)e.end(qI.readFileSync(r));else{let f=0,p=Buffer.allocUnsafe(c);for(a=qI.openSync(r,\"r\");f<n.size;){let h=qI.readSync(a,p,0,c,f);f+=h,e.write(p.slice(0,h))}e.end()}s=!1}finally{if(s&&a)try{qI.closeSync(a)}catch{}}},Cst=(t,e)=>{let r=new d0e(t),s=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((c,f)=>{r.on(\"error\",f),r.on(\"end\",c),qI.stat(a,(p,h)=>{if(p)f(p);else{let E=new mst.ReadStream(a,{readSize:s,size:h.size});E.on(\"error\",f),E.pipe(r)}})});return e?n.then(e,e):n},m0e=t=>new d0e(t)});var v0e=_((p3t,B0e)=>{\"use strict\";var wst=DI(),ST=cT(),E0e=GI(),I0e=vT(),C0e=Ie(\"path\");B0e.exports=(t,e,r)=>{if(typeof e==\"function\"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError(\"no files or directories specified\");e=Array.from(e);let s=wst(t);if(s.sync&&typeof r==\"function\")throw new TypeError(\"callback not supported for sync tar functions\");if(!s.file&&typeof r==\"function\")throw new TypeError(\"callback only supported with file option\");return s.file&&s.sync?Bst(s,e):s.file?vst(s,e,r):s.sync?Sst(s,e):Dst(s,e)};var Bst=(t,e)=>{let r=new ST.Sync(t),s=new E0e.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(s),w0e(r,e)},vst=(t,e,r)=>{let s=new ST(t),a=new E0e.WriteStream(t.file,{mode:t.mode||438});s.pipe(a);let n=new Promise((c,f)=>{a.on(\"error\",f),a.on(\"close\",c),s.on(\"error\",f)});return sG(s,e),r?n.then(r,r):n},w0e=(t,e)=>{e.forEach(r=>{r.charAt(0)===\"@\"?I0e({file:C0e.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:s=>t.add(s)}):t.add(r)}),t.end()},sG=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)===\"@\")return I0e({file:C0e.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:s=>t.add(s)}).then(s=>sG(t,e));t.add(r)}t.end()},Sst=(t,e)=>{let r=new ST.Sync(t);return w0e(r,e),r},Dst=(t,e)=>{let r=new ST(t);return sG(r,e),r}});var oG=_((h3t,Q0e)=>{\"use strict\";var Pst=DI(),S0e=cT(),Zl=Ie(\"fs\"),D0e=GI(),P0e=vT(),b0e=Ie(\"path\"),x0e=TI();Q0e.exports=(t,e,r)=>{let s=Pst(t);if(!s.file)throw new TypeError(\"file is required\");if(s.gzip)throw new TypeError(\"cannot append to compressed archives\");if(!e||!Array.isArray(e)||!e.length)throw new TypeError(\"no files or directories specified\");return e=Array.from(e),s.sync?bst(s,e):kst(s,e,r)};var bst=(t,e)=>{let r=new S0e.Sync(t),s=!0,a,n;try{try{a=Zl.openSync(t.file,\"r+\")}catch(p){if(p.code===\"ENOENT\")a=Zl.openSync(t.file,\"w+\");else throw p}let c=Zl.fstatSync(a),f=Buffer.alloc(512);e:for(n=0;n<c.size;n+=512){for(let E=0,C=0;E<512;E+=C){if(C=Zl.readSync(a,f,E,f.length-E,n+E),n===0&&f[0]===31&&f[1]===139)throw new Error(\"cannot append to compressed archives\");if(!C)break e}let p=new x0e(f);if(!p.cksumValid)break;let h=512*Math.ceil(p.size/512);if(n+h+512>c.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}s=!1,xst(t,r,n,a,e)}finally{if(s)try{Zl.closeSync(a)}catch{}}},xst=(t,e,r,s,a)=>{let n=new D0e.WriteStreamSync(t.file,{fd:s,start:r});e.pipe(n),Qst(e,a)},kst=(t,e,r)=>{e=Array.from(e);let s=new S0e(t),a=(c,f,p)=>{let h=(I,T)=>{I?Zl.close(c,N=>p(I)):p(null,T)},E=0;if(f===0)return h(null,0);let C=0,S=Buffer.alloc(512),b=(I,T)=>{if(I)return h(I);if(C+=T,C<512&&T)return Zl.read(c,S,C,S.length-C,E+C,b);if(E===0&&S[0]===31&&S[1]===139)return h(new Error(\"cannot append to compressed archives\"));if(C<512)return h(null,E);let N=new x0e(S);if(!N.cksumValid)return h(null,E);let U=512*Math.ceil(N.size/512);if(E+U+512>f||(E+=U+512,E>=f))return h(null,E);t.mtimeCache&&t.mtimeCache.set(N.path,N.mtime),C=0,Zl.read(c,S,0,512,E,b)};Zl.read(c,S,0,512,E,b)},n=new Promise((c,f)=>{s.on(\"error\",f);let p=\"r+\",h=(E,C)=>{if(E&&E.code===\"ENOENT\"&&p===\"r+\")return p=\"w+\",Zl.open(t.file,p,h);if(E)return f(E);Zl.fstat(C,(S,b)=>{if(S)return Zl.close(C,()=>f(S));a(C,b.size,(I,T)=>{if(I)return f(I);let N=new D0e.WriteStream(t.file,{fd:C,start:T});s.pipe(N),N.on(\"error\",f),N.on(\"close\",c),k0e(s,e)})})};Zl.open(t.file,p,h)});return r?n.then(r,r):n},Qst=(t,e)=>{e.forEach(r=>{r.charAt(0)===\"@\"?P0e({file:b0e.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:s=>t.add(s)}):t.add(r)}),t.end()},k0e=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)===\"@\")return P0e({file:b0e.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:s=>t.add(s)}).then(s=>k0e(t,e));t.add(r)}t.end()}});var T0e=_((g3t,R0e)=>{\"use strict\";var Rst=DI(),Tst=oG();R0e.exports=(t,e,r)=>{let s=Rst(t);if(!s.file)throw new TypeError(\"file is required\");if(s.gzip)throw new TypeError(\"cannot append to compressed archives\");if(!e||!Array.isArray(e)||!e.length)throw new TypeError(\"no files or directories specified\");return e=Array.from(e),Fst(s),Tst(s,e,r)};var Fst=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,s)=>e(r,s)&&!(t.mtimeCache.get(r)>s.mtime):(r,s)=>!(t.mtimeCache.get(r)>s.mtime)}});var O0e=_((d3t,N0e)=>{var{promisify:F0e}=Ie(\"util\"),U0=Ie(\"fs\"),Nst=t=>{if(!t)t={mode:511,fs:U0};else if(typeof t==\"object\")t={mode:511,fs:U0,...t};else if(typeof t==\"number\")t={mode:t,fs:U0};else if(typeof t==\"string\")t={mode:parseInt(t,8),fs:U0};else throw new TypeError(\"invalid options argument\");return t.mkdir=t.mkdir||t.fs.mkdir||U0.mkdir,t.mkdirAsync=F0e(t.mkdir),t.stat=t.stat||t.fs.stat||U0.stat,t.statAsync=F0e(t.stat),t.statSync=t.statSync||t.fs.statSync||U0.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||U0.mkdirSync,t};N0e.exports=Nst});var M0e=_((m3t,L0e)=>{var Ost=process.platform,{resolve:Lst,parse:Mst}=Ie(\"path\"),Ust=t=>{if(/\\0/.test(t))throw Object.assign(new TypeError(\"path must be a string without null bytes\"),{path:t,code:\"ERR_INVALID_ARG_VALUE\"});if(t=Lst(t),Ost===\"win32\"){let e=/[*|\"<>?:]/,{root:r}=Mst(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error(\"Illegal characters in path.\"),{path:t,code:\"EINVAL\"})}return t};L0e.exports=Ust});var G0e=_((y3t,j0e)=>{var{dirname:U0e}=Ie(\"path\"),_0e=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(s=>s.isDirectory()?r:void 0,s=>s.code===\"ENOENT\"?_0e(t,U0e(e),e):void 0),H0e=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(s){return s.code===\"ENOENT\"?H0e(t,U0e(e),e):void 0}};j0e.exports={findMade:_0e,findMadeSync:H0e}});var cG=_((E3t,W0e)=>{var{dirname:q0e}=Ie(\"path\"),aG=(t,e,r)=>{e.recursive=!1;let s=q0e(t);return s===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!==\"EISDIR\")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code===\"ENOENT\")return aG(s,e).then(n=>aG(t,e,n));if(a.code!==\"EEXIST\"&&a.code!==\"EROFS\")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},lG=(t,e,r)=>{let s=q0e(t);if(e.recursive=!1,s===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!==\"EISDIR\")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code===\"ENOENT\")return lG(t,e,lG(s,e,r));if(a.code!==\"EEXIST\"&&a.code!==\"EROFS\")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};W0e.exports={mkdirpManual:aG,mkdirpManualSync:lG}});var J0e=_((I3t,V0e)=>{var{dirname:Y0e}=Ie(\"path\"),{findMade:_st,findMadeSync:Hst}=G0e(),{mkdirpManual:jst,mkdirpManualSync:Gst}=cG(),qst=(t,e)=>(e.recursive=!0,Y0e(t)===t?e.mkdirAsync(t,e):_st(e,t).then(s=>e.mkdirAsync(t,e).then(()=>s).catch(a=>{if(a.code===\"ENOENT\")return jst(t,e);throw a}))),Wst=(t,e)=>{if(e.recursive=!0,Y0e(t)===t)return e.mkdirSync(t,e);let s=Hst(e,t);try{return e.mkdirSync(t,e),s}catch(a){if(a.code===\"ENOENT\")return Gst(t,e);throw a}};V0e.exports={mkdirpNative:qst,mkdirpNativeSync:Wst}});var X0e=_((C3t,Z0e)=>{var K0e=Ie(\"fs\"),Yst=process.version,uG=Yst.replace(/^v/,\"\").split(\".\"),z0e=+uG[0]>10||+uG[0]==10&&+uG[1]>=12,Vst=z0e?t=>t.mkdir===K0e.mkdir:()=>!1,Jst=z0e?t=>t.mkdirSync===K0e.mkdirSync:()=>!1;Z0e.exports={useNative:Vst,useNativeSync:Jst}});var ige=_((w3t,nge)=>{var WI=O0e(),YI=M0e(),{mkdirpNative:$0e,mkdirpNativeSync:ege}=J0e(),{mkdirpManual:tge,mkdirpManualSync:rge}=cG(),{useNative:Kst,useNativeSync:zst}=X0e(),VI=(t,e)=>(t=YI(t),e=WI(e),Kst(e)?$0e(t,e):tge(t,e)),Zst=(t,e)=>(t=YI(t),e=WI(e),zst(e)?ege(t,e):rge(t,e));VI.sync=Zst;VI.native=(t,e)=>$0e(YI(t),WI(e));VI.manual=(t,e)=>tge(YI(t),WI(e));VI.nativeSync=(t,e)=>ege(YI(t),WI(e));VI.manualSync=(t,e)=>rge(YI(t),WI(e));nge.exports=VI});var fge=_((B3t,uge)=>{\"use strict\";var Uc=Ie(\"fs\"),Cm=Ie(\"path\"),Xst=Uc.lchown?\"lchown\":\"chown\",$st=Uc.lchownSync?\"lchownSync\":\"chownSync\",oge=Uc.lchown&&!process.version.match(/v1[1-9]+\\./)&&!process.version.match(/v10\\.[6-9]/),sge=(t,e,r)=>{try{return Uc[$st](t,e,r)}catch(s){if(s.code!==\"ENOENT\")throw s}},eot=(t,e,r)=>{try{return Uc.chownSync(t,e,r)}catch(s){if(s.code!==\"ENOENT\")throw s}},tot=oge?(t,e,r,s)=>a=>{!a||a.code!==\"EISDIR\"?s(a):Uc.chown(t,e,r,s)}:(t,e,r,s)=>s,fG=oge?(t,e,r)=>{try{return sge(t,e,r)}catch(s){if(s.code!==\"EISDIR\")throw s;eot(t,e,r)}}:(t,e,r)=>sge(t,e,r),rot=process.version,age=(t,e,r)=>Uc.readdir(t,e,r),not=(t,e)=>Uc.readdirSync(t,e);/^v4\\./.test(rot)&&(age=(t,e,r)=>Uc.readdir(t,r));var DT=(t,e,r,s)=>{Uc[Xst](t,e,r,tot(t,e,r,a=>{s(a&&a.code!==\"ENOENT\"?a:null)}))},lge=(t,e,r,s,a)=>{if(typeof e==\"string\")return Uc.lstat(Cm.resolve(t,e),(n,c)=>{if(n)return a(n.code!==\"ENOENT\"?n:null);c.name=e,lge(t,c,r,s,a)});if(e.isDirectory())AG(Cm.resolve(t,e.name),r,s,n=>{if(n)return a(n);let c=Cm.resolve(t,e.name);DT(c,r,s,a)});else{let n=Cm.resolve(t,e.name);DT(n,r,s,a)}},AG=(t,e,r,s)=>{age(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code===\"ENOENT\")return s();if(a.code!==\"ENOTDIR\"&&a.code!==\"ENOTSUP\")return s(a)}if(a||!n.length)return DT(t,e,r,s);let c=n.length,f=null,p=h=>{if(!f){if(h)return s(f=h);if(--c===0)return DT(t,e,r,s)}};n.forEach(h=>lge(t,h,e,r,p))})},iot=(t,e,r,s)=>{if(typeof e==\"string\")try{let a=Uc.lstatSync(Cm.resolve(t,e));a.name=e,e=a}catch(a){if(a.code===\"ENOENT\")return;throw a}e.isDirectory()&&cge(Cm.resolve(t,e.name),r,s),fG(Cm.resolve(t,e.name),r,s)},cge=(t,e,r)=>{let s;try{s=not(t,{withFileTypes:!0})}catch(a){if(a.code===\"ENOENT\")return;if(a.code===\"ENOTDIR\"||a.code===\"ENOTSUP\")return fG(t,e,r);throw a}return s&&s.length&&s.forEach(a=>iot(t,a,e,r)),fG(t,e,r)};uge.exports=AG;AG.sync=cge});var gge=_((v3t,pG)=>{\"use strict\";var Age=ige(),_c=Ie(\"fs\"),PT=Ie(\"path\"),pge=fge(),Vu=QI(),bT=class extends Error{constructor(e,r){super(\"Cannot extract through symbolic link\"),this.path=r,this.symlink=e}get name(){return\"SylinkError\"}},xT=class extends Error{constructor(e,r){super(r+\": Cannot cd into '\"+e+\"'\"),this.path=e,this.code=r}get name(){return\"CwdError\"}},kT=(t,e)=>t.get(Vu(e)),Qv=(t,e,r)=>t.set(Vu(e),r),sot=(t,e)=>{_c.stat(t,(r,s)=>{(r||!s.isDirectory())&&(r=new xT(t,r&&r.code||\"ENOTDIR\")),e(r)})};pG.exports=(t,e,r)=>{t=Vu(t);let s=e.umask,a=e.mode|448,n=(a&s)!==0,c=e.uid,f=e.gid,p=typeof c==\"number\"&&typeof f==\"number\"&&(c!==e.processUid||f!==e.processGid),h=e.preserve,E=e.unlink,C=e.cache,S=Vu(e.cwd),b=(N,U)=>{N?r(N):(Qv(C,t,!0),U&&p?pge(U,c,f,W=>b(W)):n?_c.chmod(t,a,r):r())};if(C&&kT(C,t)===!0)return b();if(t===S)return sot(t,b);if(h)return Age(t,{mode:a}).then(N=>b(null,N),b);let T=Vu(PT.relative(S,t)).split(\"/\");QT(S,T,a,C,E,S,null,b)};var QT=(t,e,r,s,a,n,c,f)=>{if(!e.length)return f(null,c);let p=e.shift(),h=Vu(PT.resolve(t+\"/\"+p));if(kT(s,h))return QT(h,e,r,s,a,n,c,f);_c.mkdir(h,r,hge(h,e,r,s,a,n,c,f))},hge=(t,e,r,s,a,n,c,f)=>p=>{p?_c.lstat(t,(h,E)=>{if(h)h.path=h.path&&Vu(h.path),f(h);else if(E.isDirectory())QT(t,e,r,s,a,n,c,f);else if(a)_c.unlink(t,C=>{if(C)return f(C);_c.mkdir(t,r,hge(t,e,r,s,a,n,c,f))});else{if(E.isSymbolicLink())return f(new bT(t,t+\"/\"+e.join(\"/\")));f(p)}}):(c=c||t,QT(t,e,r,s,a,n,c,f))},oot=t=>{let e=!1,r=\"ENOTDIR\";try{e=_c.statSync(t).isDirectory()}catch(s){r=s.code}finally{if(!e)throw new xT(t,r)}};pG.exports.sync=(t,e)=>{t=Vu(t);let r=e.umask,s=e.mode|448,a=(s&r)!==0,n=e.uid,c=e.gid,f=typeof n==\"number\"&&typeof c==\"number\"&&(n!==e.processUid||c!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,C=Vu(e.cwd),S=N=>{Qv(E,t,!0),N&&f&&pge.sync(N,n,c),a&&_c.chmodSync(t,s)};if(E&&kT(E,t)===!0)return S();if(t===C)return oot(C),S();if(p)return S(Age.sync(t,s));let I=Vu(PT.relative(C,t)).split(\"/\"),T=null;for(let N=I.shift(),U=C;N&&(U+=\"/\"+N);N=I.shift())if(U=Vu(PT.resolve(U)),!kT(E,U))try{_c.mkdirSync(U,s),T=T||U,Qv(E,U,!0)}catch{let ee=_c.lstatSync(U);if(ee.isDirectory()){Qv(E,U,!0);continue}else if(h){_c.unlinkSync(U),_c.mkdirSync(U,s),T=T||U,Qv(E,U,!0);continue}else if(ee.isSymbolicLink())return new bT(U,U+\"/\"+I.join(\"/\"))}return S(T)}});var gG=_((S3t,dge)=>{var hG=Object.create(null),{hasOwnProperty:aot}=Object.prototype;dge.exports=t=>(aot.call(hG,t)||(hG[t]=t.normalize(\"NFKD\")),hG[t])});var Ige=_((D3t,Ege)=>{var mge=Ie(\"assert\"),lot=gG(),cot=FI(),{join:yge}=Ie(\"path\"),uot=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,fot=uot===\"win32\";Ege.exports=()=>{let t=new Map,e=new Map,r=h=>h.split(\"/\").slice(0,-1).reduce((C,S)=>(C.length&&(S=yge(C[C.length-1],S)),C.push(S||\"/\"),C),[]),s=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error(\"function does not have any path reservations\");return{paths:E.paths.map(C=>t.get(C)),dirs:[...E.dirs].map(C=>t.get(C))}},n=h=>{let{paths:E,dirs:C}=a(h);return E.every(S=>S[0]===h)&&C.every(S=>S[0]instanceof Set&&S[0].has(h))},c=h=>s.has(h)||!n(h)?!1:(s.add(h),h(()=>f(h)),!0),f=h=>{if(!s.has(h))return!1;let{paths:E,dirs:C}=e.get(h),S=new Set;return E.forEach(b=>{let I=t.get(b);mge.equal(I[0],h),I.length===1?t.delete(b):(I.shift(),typeof I[0]==\"function\"?S.add(I[0]):I[0].forEach(T=>S.add(T)))}),C.forEach(b=>{let I=t.get(b);mge(I[0]instanceof Set),I[0].size===1&&I.length===1?t.delete(b):I[0].size===1?(I.shift(),S.add(I[0])):I[0].delete(h)}),s.delete(h),S.forEach(b=>c(b)),!0};return{check:n,reserve:(h,E)=>{h=fot?[\"win32 parallelization disabled\"]:h.map(S=>lot(cot(yge(S))).toLowerCase());let C=new Set(h.map(S=>r(S)).reduce((S,b)=>S.concat(b)));return e.set(E,{dirs:C,paths:h}),h.forEach(S=>{let b=t.get(S);b?b.push(E):t.set(S,[E])}),C.forEach(S=>{let b=t.get(S);b?b[b.length-1]instanceof Set?b[b.length-1].add(E):b.push(new Set([E])):t.set(S,[new Set([E])])}),c(E)}}}});var Bge=_((P3t,wge)=>{var Aot=process.platform,pot=Aot===\"win32\",hot=global.__FAKE_TESTING_FS__||Ie(\"fs\"),{O_CREAT:got,O_TRUNC:dot,O_WRONLY:mot,UV_FS_O_FILEMAP:Cge=0}=hot.constants,yot=pot&&!!Cge,Eot=512*1024,Iot=Cge|dot|got|mot;wge.exports=yot?t=>t<Eot?Iot:\"w\":()=>\"w\"});var vG=_((b3t,Lge)=>{\"use strict\";var Cot=Ie(\"assert\"),wot=BT(),Mn=Ie(\"fs\"),Bot=GI(),Jp=Ie(\"path\"),Fge=gge(),vge=v6(),vot=Ige(),Sot=S6(),Xl=QI(),Dot=FI(),Pot=gG(),Sge=Symbol(\"onEntry\"),yG=Symbol(\"checkFs\"),Dge=Symbol(\"checkFs2\"),FT=Symbol(\"pruneCache\"),EG=Symbol(\"isReusable\"),Hc=Symbol(\"makeFs\"),IG=Symbol(\"file\"),CG=Symbol(\"directory\"),NT=Symbol(\"link\"),Pge=Symbol(\"symlink\"),bge=Symbol(\"hardlink\"),xge=Symbol(\"unsupported\"),kge=Symbol(\"checkPath\"),_0=Symbol(\"mkdir\"),Zo=Symbol(\"onError\"),RT=Symbol(\"pending\"),Qge=Symbol(\"pend\"),JI=Symbol(\"unpend\"),dG=Symbol(\"ended\"),mG=Symbol(\"maybeClose\"),wG=Symbol(\"skip\"),Rv=Symbol(\"doChown\"),Tv=Symbol(\"uid\"),Fv=Symbol(\"gid\"),Nv=Symbol(\"checkedCwd\"),Nge=Ie(\"crypto\"),Oge=Bge(),bot=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Ov=bot===\"win32\",xot=(t,e)=>{if(!Ov)return Mn.unlink(t,e);let r=t+\".DELETE.\"+Nge.randomBytes(16).toString(\"hex\");Mn.rename(t,r,s=>{if(s)return e(s);Mn.unlink(r,e)})},kot=t=>{if(!Ov)return Mn.unlinkSync(t);let e=t+\".DELETE.\"+Nge.randomBytes(16).toString(\"hex\");Mn.renameSync(t,e),Mn.unlinkSync(e)},Rge=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Tge=t=>Pot(Dot(Xl(t))).toLowerCase(),Qot=(t,e)=>{e=Tge(e);for(let r of t.keys()){let s=Tge(r);(s===e||s.indexOf(e+\"/\")===0)&&t.delete(r)}},Rot=t=>{for(let e of t.keys())t.delete(e)},Lv=class extends wot{constructor(e){if(e||(e={}),e.ondone=r=>{this[dG]=!0,this[mG]()},super(e),this[Nv]=!1,this.reservations=vot(),this.transform=typeof e.transform==\"function\"?e.transform:null,this.writable=!0,this.readable=!1,this[RT]=0,this[dG]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid==\"number\"||typeof e.gid==\"number\"){if(typeof e.uid!=\"number\"||typeof e.gid!=\"number\")throw new TypeError(\"cannot set owner without number uid and gid\");if(e.preserveOwner)throw new TypeError(\"cannot preserve owner in archive and also set owner explicitly\");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!=\"number\"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||Ov,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=Xl(Jp.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask==\"number\"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on(\"entry\",r=>this[Sge](r))}warn(e,r,s={}){return(e===\"TAR_BAD_ARCHIVE\"||e===\"TAR_ABORT\")&&(s.recoverable=!1),super.warn(e,r,s)}[mG](){this[dG]&&this[RT]===0&&(this.emit(\"prefinish\"),this.emit(\"finish\"),this.emit(\"end\"),this.emit(\"close\"))}[kge](e){if(this.strip){let r=Xl(e.path).split(\"/\");if(r.length<this.strip)return!1;if(e.path=r.slice(this.strip).join(\"/\"),e.type===\"Link\"){let s=Xl(e.linkpath).split(\"/\");if(s.length>=this.strip)e.linkpath=s.slice(this.strip).join(\"/\");else return!1}}if(!this.preservePaths){let r=Xl(e.path),s=r.split(\"/\");if(s.includes(\"..\")||Ov&&/^[a-z]:\\.\\.$/i.test(s[0]))return this.warn(\"TAR_ENTRY_ERROR\",\"path contains '..'\",{entry:e,path:r}),!1;let[a,n]=Sot(r);a&&(e.path=n,this.warn(\"TAR_ENTRY_INFO\",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(Jp.isAbsolute(e.path)?e.absolute=Xl(Jp.resolve(e.path)):e.absolute=Xl(Jp.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+\"/\")!==0&&e.absolute!==this.cwd)return this.warn(\"TAR_ENTRY_ERROR\",\"path escaped extraction target\",{entry:e,path:Xl(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!==\"Directory\"&&e.type!==\"GNUDumpDir\")return!1;if(this.win32){let{root:r}=Jp.win32.parse(e.absolute);e.absolute=r+vge.encode(e.absolute.substr(r.length));let{root:s}=Jp.win32.parse(e.path);e.path=s+vge.encode(e.path.substr(s.length))}return!0}[Sge](e){if(!this[kge](e))return e.resume();switch(Cot.equal(typeof e.absolute,\"string\"),e.type){case\"Directory\":case\"GNUDumpDir\":e.mode&&(e.mode=e.mode|448);case\"File\":case\"OldFile\":case\"ContiguousFile\":case\"Link\":case\"SymbolicLink\":return this[yG](e);case\"CharacterDevice\":case\"BlockDevice\":case\"FIFO\":default:return this[xge](e)}}[Zo](e,r){e.name===\"CwdError\"?this.emit(\"error\",e):(this.warn(\"TAR_ENTRY_ERROR\",e,{entry:r}),this[JI](),r.resume())}[_0](e,r,s){Fge(Xl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},s)}[Rv](e){return this.forceChown||this.preserveOwner&&(typeof e.uid==\"number\"&&e.uid!==this.processUid||typeof e.gid==\"number\"&&e.gid!==this.processGid)||typeof this.uid==\"number\"&&this.uid!==this.processUid||typeof this.gid==\"number\"&&this.gid!==this.processGid}[Tv](e){return Rge(this.uid,e.uid,this.processUid)}[Fv](e){return Rge(this.gid,e.gid,this.processGid)}[IG](e,r){let s=e.mode&4095||this.fmode,a=new Bot.WriteStream(e.absolute,{flags:Oge(e.size),mode:s,autoClose:!1});a.on(\"error\",p=>{a.fd&&Mn.close(a.fd,()=>{}),a.write=()=>!0,this[Zo](p,e),r()});let n=1,c=p=>{if(p){a.fd&&Mn.close(a.fd,()=>{}),this[Zo](p,e),r();return}--n===0&&Mn.close(a.fd,h=>{h?this[Zo](h,e):this[JI](),r()})};a.on(\"finish\",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let C=e.atime||new Date,S=e.mtime;Mn.futimes(E,C,S,b=>b?Mn.utimes(h,C,S,I=>c(I&&b)):c())}if(this[Rv](e)){n++;let C=this[Tv](e),S=this[Fv](e);Mn.fchown(E,C,S,b=>b?Mn.chown(h,C,S,I=>c(I&&b)):c())}c()});let f=this.transform&&this.transform(e)||e;f!==e&&(f.on(\"error\",p=>{this[Zo](p,e),r()}),e.pipe(f)),f.pipe(a)}[CG](e,r){let s=e.mode&4095||this.dmode;this[_0](e.absolute,s,a=>{if(a){this[Zo](a,e),r();return}let n=1,c=f=>{--n===0&&(r(),this[JI](),e.resume())};e.mtime&&!this.noMtime&&(n++,Mn.utimes(e.absolute,e.atime||new Date,e.mtime,c)),this[Rv](e)&&(n++,Mn.chown(e.absolute,this[Tv](e),this[Fv](e),c)),c()})}[xge](e){e.unsupported=!0,this.warn(\"TAR_ENTRY_UNSUPPORTED\",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[Pge](e,r){this[NT](e,e.linkpath,\"symlink\",r)}[bge](e,r){let s=Xl(Jp.resolve(this.cwd,e.linkpath));this[NT](e,s,\"link\",r)}[Qge](){this[RT]++}[JI](){this[RT]--,this[mG]()}[wG](e){this[JI](),e.resume()}[EG](e,r){return e.type===\"File\"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!Ov}[yG](e){this[Qge]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,s=>this[Dge](e,s))}[FT](e){e.type===\"SymbolicLink\"?Rot(this.dirCache):e.type!==\"Directory\"&&Qot(this.dirCache,e.absolute)}[Dge](e,r){this[FT](e);let s=f=>{this[FT](e),r(f)},a=()=>{this[_0](this.cwd,this.dmode,f=>{if(f){this[Zo](f,e),s();return}this[Nv]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let f=Xl(Jp.dirname(e.absolute));if(f!==this.cwd)return this[_0](f,this.dmode,p=>{if(p){this[Zo](p,e),s();return}c()})}c()},c=()=>{Mn.lstat(e.absolute,(f,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[wG](e),s();return}if(f||this[EG](e,p))return this[Hc](null,e,s);if(p.isDirectory()){if(e.type===\"Directory\"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=C=>this[Hc](C,e,s);return h?Mn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return Mn.rmdir(e.absolute,h=>this[Hc](h,e,s))}if(e.absolute===this.cwd)return this[Hc](null,e,s);xot(e.absolute,h=>this[Hc](h,e,s))})};this[Nv]?n():a()}[Hc](e,r,s){if(e){this[Zo](e,r),s();return}switch(r.type){case\"File\":case\"OldFile\":case\"ContiguousFile\":return this[IG](r,s);case\"Link\":return this[bge](r,s);case\"SymbolicLink\":return this[Pge](r,s);case\"Directory\":case\"GNUDumpDir\":return this[CG](r,s)}}[NT](e,r,s,a){Mn[s](r,e.absolute,n=>{n?this[Zo](n,e):(this[JI](),e.resume()),a()})}},TT=t=>{try{return[null,t()]}catch(e){return[e,null]}},BG=class extends Lv{[Hc](e,r){return super[Hc](e,r,()=>{})}[yG](e){if(this[FT](e),!this[Nv]){let n=this[_0](this.cwd,this.dmode);if(n)return this[Zo](n,e);this[Nv]=!0}if(e.absolute!==this.cwd){let n=Xl(Jp.dirname(e.absolute));if(n!==this.cwd){let c=this[_0](n,this.dmode);if(c)return this[Zo](c,e)}}let[r,s]=TT(()=>Mn.lstatSync(e.absolute));if(s&&(this.keep||this.newer&&s.mtime>e.mtime))return this[wG](e);if(r||this[EG](e,s))return this[Hc](null,e);if(s.isDirectory()){if(e.type===\"Directory\"){let c=!this.noChmod&&e.mode&&(s.mode&4095)!==e.mode,[f]=c?TT(()=>{Mn.chmodSync(e.absolute,e.mode)}):[];return this[Hc](f,e)}let[n]=TT(()=>Mn.rmdirSync(e.absolute));this[Hc](n,e)}let[a]=e.absolute===this.cwd?[]:TT(()=>kot(e.absolute));this[Hc](a,e)}[IG](e,r){let s=e.mode&4095||this.fmode,a=f=>{let p;try{Mn.closeSync(n)}catch(h){p=h}(f||p)&&this[Zo](f||p,e),r()},n;try{n=Mn.openSync(e.absolute,Oge(e.size),s)}catch(f){return a(f)}let c=this.transform&&this.transform(e)||e;c!==e&&(c.on(\"error\",f=>this[Zo](f,e)),e.pipe(c)),c.on(\"data\",f=>{try{Mn.writeSync(n,f,0,f.length)}catch(p){a(p)}}),c.on(\"end\",f=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{Mn.futimesSync(n,h,E)}catch(C){try{Mn.utimesSync(e.absolute,h,E)}catch{p=C}}}if(this[Rv](e)){let h=this[Tv](e),E=this[Fv](e);try{Mn.fchownSync(n,h,E)}catch(C){try{Mn.chownSync(e.absolute,h,E)}catch{p=p||C}}}a(p)})}[CG](e,r){let s=e.mode&4095||this.dmode,a=this[_0](e.absolute,s);if(a){this[Zo](a,e),r();return}if(e.mtime&&!this.noMtime)try{Mn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[Rv](e))try{Mn.chownSync(e.absolute,this[Tv](e),this[Fv](e))}catch{}r(),e.resume()}[_0](e,r){try{return Fge.sync(Xl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(s){return s}}[NT](e,r,s,a){try{Mn[s+\"Sync\"](r,e.absolute),a(),e.resume()}catch(n){return this[Zo](n,e)}}};Lv.Sync=BG;Lge.exports=Lv});var jge=_((x3t,Hge)=>{\"use strict\";var Tot=DI(),OT=vG(),Uge=Ie(\"fs\"),_ge=GI(),Mge=Ie(\"path\"),SG=FI();Hge.exports=(t,e,r)=>{typeof t==\"function\"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e==\"function\"&&(r=e,e=null),e?e=Array.from(e):e=[];let s=Tot(t);if(s.sync&&typeof r==\"function\")throw new TypeError(\"callback not supported for sync tar functions\");if(!s.file&&typeof r==\"function\")throw new TypeError(\"callback only supported with file option\");return e.length&&Fot(s,e),s.file&&s.sync?Not(s):s.file?Oot(s,r):s.sync?Lot(s):Mot(s)};var Fot=(t,e)=>{let r=new Map(e.map(n=>[SG(n),!0])),s=t.filter,a=(n,c)=>{let f=c||Mge.parse(n).root||\".\",p=n===f?!1:r.has(n)?r.get(n):a(Mge.dirname(n),f);return r.set(n,p),p};t.filter=s?(n,c)=>s(n,c)&&a(SG(n)):n=>a(SG(n))},Not=t=>{let e=new OT.Sync(t),r=t.file,s=Uge.statSync(r),a=t.maxReadSize||16*1024*1024;new _ge.ReadStreamSync(r,{readSize:a,size:s.size}).pipe(e)},Oot=(t,e)=>{let r=new OT(t),s=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((c,f)=>{r.on(\"error\",f),r.on(\"close\",c),Uge.stat(a,(p,h)=>{if(p)f(p);else{let E=new _ge.ReadStream(a,{readSize:s,size:h.size});E.on(\"error\",f),E.pipe(r)}})});return e?n.then(e,e):n},Lot=t=>new OT.Sync(t),Mot=t=>new OT(t)});var Gge=_(bs=>{\"use strict\";bs.c=bs.create=v0e();bs.r=bs.replace=oG();bs.t=bs.list=vT();bs.u=bs.update=T0e();bs.x=bs.extract=jge();bs.Pack=cT();bs.Unpack=vG();bs.Parse=BT();bs.ReadEntry=YR();bs.WriteEntry=N6();bs.Header=TI();bs.Pax=JR();bs.types=m6()});var DG,qge,H0,Mv,Uv,Wge=Ze(()=>{DG=ut(Ld()),qge=Ie(\"worker_threads\"),H0=Symbol(\"kTaskInfo\"),Mv=class{constructor(e,r){this.fn=e;this.limit=(0,DG.default)(r.poolSize)}run(e){return this.limit(()=>this.fn(e))}},Uv=class{constructor(e,r){this.source=e;this.workers=[];this.limit=(0,DG.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let s=this.workers.pop();s?s.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new qge.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,\"--unhandled-rejections=strict\"]});return e.on(\"message\",r=>{if(!e[H0])throw new Error(\"Assertion failed: Worker sent a result without having a task assigned\");e[H0].resolve(r),e[H0]=null,e.unref(),this.workers.push(e)}),e.on(\"error\",r=>{e[H0]?.reject(r),e[H0]=null}),e.on(\"exit\",r=>{r!==0&&e[H0]?.reject(new Error(`Worker exited with code ${r}`)),e[H0]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((s,a)=>{r[H0]={resolve:s,reject:a},r.postMessage(e)})})}}});var Vge=_((T3t,Yge)=>{var PG;Yge.exports.getContent=()=>(typeof PG>\"u\"&&(PG=Ie(\"zlib\").brotliDecompressSync(Buffer.from(\"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\",\"base64\")).toString()),PG)});var ps={};Vt(ps,{convertToZip:()=>jot,convertToZipWorker:()=>kG,extractArchiveTo:()=>Xge,getDefaultTaskPool:()=>zge,getTaskPoolForConfiguration:()=>Zge,makeArchiveFromDirectory:()=>Hot});function Uot(t,e){switch(t){case\"async\":return new Mv(kG,{poolSize:e});case\"workers\":return new Uv((0,xG.getContent)(),{poolSize:e});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}}function zge(){return typeof bG>\"u\"&&(bG=Uot(\"workers\",fs.availableParallelism())),bG}function Zge(t){return typeof t>\"u\"?zge():Yl(_ot,t,()=>{let e=t.get(\"taskPoolMode\"),r=t.get(\"taskPoolConcurrency\");switch(e){case\"async\":return new Mv(kG,{poolSize:r});case\"workers\":return new Uv((0,xG.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}})}async function kG(t){let{tmpFile:e,tgz:r,compressionLevel:s,extractBufferOpts:a}=t,n=new As(e,{create:!0,level:s,stats:$a.makeDefaultStats()}),c=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await Xge(c,n,a),n.saveAndClose(),e}async function Hot(t,{baseFs:e=new Yn,prefixPath:r=vt.root,compressionLevel:s,inMemory:a=!1}={}){let n;if(a)n=new As(null,{level:s});else{let f=await ce.mktempPromise(),p=J.join(f,\"archive.zip\");n=new As(p,{create:!0,level:s})}let c=J.resolve(vt.root,r);return await n.copyPromise(c,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function jot(t,e={}){let r=await ce.mktempPromise(),s=J.join(r,\"archive.zip\"),a=e.compressionLevel??e.configuration?.get(\"compressionLevel\")??\"mixed\",n={prefixPath:e.prefixPath,stripComponents:e.stripComponents};return await(e.taskPool??Zge(e.configuration)).run({tmpFile:s,tgz:t,compressionLevel:a,extractBufferOpts:n}),new As(s,{level:e.compressionLevel})}async function*Got(t){let e=new Kge.default.Parse,r=new Jge.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on(\"entry\",s=>{r.write(s)}),e.on(\"error\",s=>{r.destroy(s)}),e.on(\"close\",()=>{r.destroyed||r.end()}),e.end(t);for await(let s of r){let a=s;yield a,a.resume()}}async function Xge(t,e,{stripComponents:r=0,prefixPath:s=vt.dot}={}){function a(n){if(n.path[0]===\"/\")return!0;let c=n.path.split(/\\//g);return!!(c.some(f=>f===\"..\")||c.length<=r)}for await(let n of Got(t)){if(a(n))continue;let c=J.normalize(fe.toPortablePath(n.path)).replace(/\\/$/,\"\").split(/\\//g);if(c.length<=r)continue;let f=c.slice(r).join(\"/\"),p=J.join(s,f),h=420;switch((n.type===\"Directory\"||(n.mode??0)&73)&&(h|=73),n.type){case\"Directory\":e.mkdirpSync(J.dirname(p),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,fi.SAFE_TIME,fi.SAFE_TIME);break;case\"OldFile\":case\"File\":e.mkdirpSync(J.dirname(p),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),e.writeFileSync(p,await WE(n),{mode:h}),e.utimesSync(p,fi.SAFE_TIME,fi.SAFE_TIME);break;case\"SymbolicLink\":e.mkdirpSync(J.dirname(p),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,fi.SAFE_TIME,fi.SAFE_TIME);break}}return e}var Jge,Kge,xG,bG,_ot,$ge=Ze(()=>{Ge();Dt();eA();Jge=Ie(\"stream\"),Kge=ut(Gge());Wge();bc();xG=ut(Vge());_ot=new WeakMap});var tde=_((QG,ede)=>{(function(t,e){typeof QG==\"object\"?ede.exports=e():typeof define==\"function\"&&define.amd?define(e):t.treeify=e()})(QG,function(){function t(a,n){var c=n?\"\\u2514\":\"\\u251C\";return a?c+=\"\\u2500 \":c+=\"\\u2500\\u2500\\u2510\",c}function e(a,n){var c=[];for(var f in a)a.hasOwnProperty(f)&&(n&&typeof a[f]==\"function\"||c.push(f));return c}function r(a,n,c,f,p,h,E){var C=\"\",S=0,b,I,T=f.slice(0);if(T.push([n,c])&&f.length>0&&(f.forEach(function(U,W){W>0&&(C+=(U[1]?\" \":\"\\u2502\")+\"  \"),!I&&U[0]===n&&(I=!0)}),C+=t(a,c)+a,p&&(typeof n!=\"object\"||n instanceof Date)&&(C+=\": \"+n),I&&(C+=\" (circular ref.)\"),E(C)),!I&&typeof n==\"object\"){var N=e(n,h);N.forEach(function(U){b=++S===N.length,r(U,n[U],b,T,p,h,E)})}}var s={};return s.asLines=function(a,n,c,f){var p=typeof c!=\"function\"?c:!1;r(\".\",a,!1,[],n,p,f||c)},s.asTree=function(a,n,c){var f=\"\";return r(\".\",a,!1,[],n,c,function(p){f+=p+`\n`}),f},s})});var xs={};Vt(xs,{emitList:()=>qot,emitTree:()=>sde,treeNodeToJson:()=>ide,treeNodeToTreeify:()=>nde});function nde(t,{configuration:e}){let r={},s=0,a=(n,c)=>{let f=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of f){if(!h)continue;let{label:E,value:C,children:S}=h,b=[];typeof E<\"u\"&&b.push(zd(e,E,2)),typeof C<\"u\"&&b.push(Ht(e,C[0],C[1])),b.length===0&&b.push(zd(e,`${p}`,2));let I=b.join(\": \").trim(),T=`\\0${s++}\\0`,N=c[`${T}${I}`]={};typeof S<\"u\"&&a(S,N)}};if(typeof t.children>\"u\")throw new Error(\"The root node must only contain children\");return a(t.children,r),r}function ide(t){let e=r=>{if(typeof r.children>\"u\"){if(typeof r.value>\"u\")throw new Error(\"Assertion failed: Expected a value to be set if the children are missing\");return Zd(r.value[0],r.value[1])}let s=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,c]of s)c&&(a[Wot(n)]=e(c));return typeof r.value>\"u\"?a:{value:Zd(r.value[0],r.value[1]),children:a}};return e(t)}function qot(t,{configuration:e,stdout:r,json:s}){let a=t.map(n=>({value:n}));sde({children:a},{configuration:e,stdout:r,json:s})}function sde(t,{configuration:e,stdout:r,json:s,separators:a=0}){if(s){let c=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let f of c)f&&r.write(`${JSON.stringify(ide(f))}\n`);return}let n=(0,rde.asTree)(nde(t,{configuration:e}),!1,!1);if(n=n.replace(/\\0[0-9]+\\0/g,\"\"),a>=1&&(n=n.replace(/^([├└]─)/gm,`\\u2502\n$1`).replace(/^│\\n/,\"\")),a>=2)for(let c=0;c<2;++c)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\\n]+\\n)(([│ ]).{2}[├└].{2}[^\\n]*\\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3  \\u2502 \n$2`).replace(/^│\\n/,\"\");if(a>=3)throw new Error(\"Only the first two levels are accepted by treeUtils.emitTree\");r.write(n)}function Wot(t){return typeof t==\"string\"?t.replace(/^\\0[0-9]+\\0/,\"\"):t}var rde,ode=Ze(()=>{rde=ut(tde());xc()});var LT,ade=Ze(()=>{LT=class{constructor(e){this.releaseFunction=e;this.map=new Map}addOrCreate(e,r){let s=this.map.get(e);if(typeof s<\"u\"){if(s.refCount<=0)throw new Error(`Race condition in RefCountedMap. While adding a new key the refCount is: ${s.refCount} for ${JSON.stringify(e)}`);return s.refCount++,{value:s.value,release:()=>this.release(e)}}else{let a=r();return this.map.set(e,{refCount:1,value:a}),{value:a,release:()=>this.release(e)}}}release(e){let r=this.map.get(e);if(!r)throw new Error(`Unbalanced calls to release. No known instances of: ${JSON.stringify(e)}`);let s=r.refCount;if(s<=0)throw new Error(`Unbalanced calls to release. Too many release vs alloc refcount would become: ${s-1} of ${JSON.stringify(e)}`);s==1?(this.map.delete(e),this.releaseFunction(r.value)):r.refCount--}}});function _v(t){let e=t.match(Yot);if(!e?.groups)throw new Error(\"Assertion failed: Expected the checksum to match the requested pattern\");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var lde,RG,TG,MT,Kr,Yot,FG=Ze(()=>{Ge();Dt();Dt();eA();lde=Ie(\"crypto\"),RG=ut(Ie(\"fs\"));ade();Rc();I0();bc();Wo();TG=YE(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),MT=YE(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Kr=class t{constructor(e,{configuration:r,immutable:s=r.get(\"enableImmutableCache\"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.refCountedZipFsCache=new LT(e=>{e.discardAndClose()});this.cacheId=`-${(0,lde.randomBytes)(8).toString(\"hex\")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=s,this.check=a;let{cacheSpec:n,cacheKey:c}=t.getCacheKey(r);this.cacheSpec=n,this.cacheKey=c}static async find(e,{immutable:r,check:s}={}){let a=new t(e.get(\"cacheFolder\"),{configuration:e,immutable:r,check:s});return await a.setup(),a}static getCacheKey(e){let r=e.get(\"compressionLevel\"),s=r!==\"mixed\"?`c${r}`:\"\";return{cacheKey:[MT,s].join(\"\"),cacheSpec:s}}get mirrorCwd(){if(!this.configuration.get(\"enableMirror\"))return null;let e=`${this.configuration.get(\"globalFolder\")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${nI(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=_v(r).hash.slice(0,10);return`${nI(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:s}=_v(e);if(r===null||r<TG)return!1;let a=this.configuration.get(\"cacheMigrationMode\");return!(r<MT&&a===\"always\"||s!==this.cacheSpec&&a!==\"required-only\")}getLocatorPath(e,r){return this.mirrorCwd===null?J.resolve(this.cwd,this.getVersionFilename(e)):r===null?J.resolve(this.cwd,this.getVersionFilename(e)):J.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?J.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get(\"enableGlobalCache\"))if(this.immutable){if(!await ce.existsPromise(this.cwd))throw new jt(56,\"Cache path does not exist.\")}else{await ce.mkdirPromise(this.cwd,{recursive:!0});let e=J.resolve(this.cwd,\".gitignore\");await ce.changeFilePromise(e,`/.gitignore\n*.flock\n*.tmp\n`)}(this.mirrorCwd||!this.immutable)&&await ce.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,{onHit:s,onMiss:a,loader:n,...c}){let f=this.getLocatorMirrorPath(e),p=new Yn,h=()=>{let pe=new As,Be=J.join(vt.root,P8(e));return pe.mkdirSync(Be,{recursive:!0}),pe.writeJsonSync(J.join(Be,Er.manifest),{name:un(e),mocked:!0}),pe},E=async(pe,{isColdHit:Be,controlPath:Ce=null})=>{if(Ce===null&&c.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!Be?_v(r).cacheKey:this.cacheKey,we=!c.skipIntegrityCheck||!r?`${g}/${await vQ(pe)}`:r;if(Ce!==null){let Ae=!c.skipIntegrityCheck||!r?`${this.cacheKey}/${await vQ(Ce)}`:r;if(we!==Ae)throw new jt(18,\"The remote archive doesn't match the local checksum - has the local cache been corrupted?\")}let ye=null;switch(r!==null&&we!==r&&(this.check?ye=\"throw\":_v(r).cacheKey!==_v(we).cacheKey?ye=\"update\":ye=this.configuration.get(\"checksumBehavior\")),ye){case null:case\"update\":return{isValid:!0,hash:we};case\"ignore\":return{isValid:!0,hash:r};case\"reset\":return{isValid:!1,hash:r};default:case\"throw\":throw new jt(18,\"The remote archive doesn't match the expected checksum\")}},C=async pe=>{if(!n)throw new Error(`Cache check required but no loader configured for ${Yr(this.configuration,e)}`);let Be=await n(),Ce=Be.getRealPath();Be.saveAndClose(),await ce.chmodPromise(Ce,420);let g=await E(pe,{controlPath:Ce,isColdHit:!1});if(!g.isValid)throw new Error(\"Assertion failed: Expected a valid checksum\");return g.hash},S=async()=>{if(f===null||!await ce.existsPromise(f)){let pe=await n(),Be=pe.getRealPath();return pe.saveAndClose(),{source:\"loader\",path:Be}}return{source:\"mirror\",path:f}},b=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${Yr(this.configuration,e)}`);if(this.immutable)throw new jt(56,`Cache entry required but missing for ${Yr(this.configuration,e)}`);let{path:pe,source:Be}=await S(),{hash:Ce}=await E(pe,{isColdHit:!0}),g=this.getLocatorPath(e,Ce),we=[];Be!==\"mirror\"&&f!==null&&we.push(async()=>{let Ae=`${f}${this.cacheId}`;await ce.copyFilePromise(pe,Ae,RG.default.constants.COPYFILE_FICLONE),await ce.chmodPromise(Ae,420),await ce.renamePromise(Ae,f)}),(!c.mirrorWriteOnly||f===null)&&we.push(async()=>{let Ae=`${g}${this.cacheId}`;await ce.copyFilePromise(pe,Ae,RG.default.constants.COPYFILE_FICLONE),await ce.chmodPromise(Ae,420),await ce.renamePromise(Ae,g)});let ye=c.mirrorWriteOnly?f??g:g;return await Promise.all(we.map(Ae=>Ae())),[!1,ye,Ce]},I=async()=>{let Be=(async()=>{let Ce=c.unstablePackages?.has(e.locatorHash),g=Ce||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,we=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,ye=!!c.mockedPackages?.has(e.locatorHash)&&(!this.check||!we),Ae=ye||we,se=Ae?s:a;if(se&&se(),Ae){let X=null,De=g;if(!ye)if(this.check)X=await C(De);else{let Te=await E(De,{isColdHit:!1});if(Te.isValid)X=Te.hash;else return b()}return[ye,De,X]}else{if(this.immutable&&Ce)throw new jt(56,`Cache entry required but missing for ${Yr(this.configuration,e)}; consider defining ${he.pretty(this.configuration,\"supportedArchitectures\",he.Type.CODE)} to cache packages for multiple systems`);return b()}})();this.mutexes.set(e.locatorHash,Be);try{return await Be}finally{this.mutexes.delete(e.locatorHash)}};for(let pe;pe=this.mutexes.get(e.locatorHash);)await pe;let[T,N,U]=await I();T||this.markedFiles.add(N);let W=()=>this.refCountedZipFsCache.addOrCreate(N,()=>T?h():new As(N,{baseFs:p,readOnly:!0})),ee,ie=new oE(()=>G4(()=>(ee=W(),ee.value),pe=>`Failed to open the cache entry for ${Yr(this.configuration,e)}: ${pe}`),J),ue=new _f(N,{baseFs:ie,pathUtils:J}),le=()=>{ee?.release()},me=c.unstablePackages?.has(e.locatorHash)?null:U;return[ue,le,me]}},Yot=/^(?:(?<cacheKey>(?<cacheVersion>[0-9]+)(?<cacheSpec>.*))\\/)?(?<hash>.*)$/});var UT,cde=Ze(()=>{UT=(r=>(r[r.SCRIPT=0]=\"SCRIPT\",r[r.SHELLCODE=1]=\"SHELLCODE\",r))(UT||{})});var Vot,KI,NG=Ze(()=>{Dt();wc();Tp();Wo();Vot=[[/^(git(?:\\+(?:https|ssh))?:\\/\\/.*(?:\\.git)?)#(.*)$/,(t,e,r,s)=>`${r}#commit=${s}`],[/^https:\\/\\/((?:[^/]+?)@)?codeload\\.github\\.com\\/([^/]+\\/[^/]+)\\/tar\\.gz\\/([0-9a-f]+)$/,(t,e,r=\"\",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https:\\/\\/((?:[^/]+?)@)?github\\.com\\/([^/]+\\/[^/]+?)(?:\\.git)?#([0-9a-f]+)$/,(t,e,r=\"\",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https?:\\/\\/[^/]+\\/(?:[^/]+\\/)*(?:@.+(?:\\/|(?:%2f)))?([^/]+)\\/(?:-|download)\\/\\1-[^/]+\\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\\/\\/npm\\.pkg\\.github\\.com\\/download\\/(?:@[^/]+)\\/(?:[^/]+)\\/(?:[^/]+)\\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\\/\\/npm\\.fontawesome\\.com\\/(?:@[^/]+)\\/([^/]+)\\/-\\/([^/]+)\\/\\1-\\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\\/\\/[^/]+\\/.*\\/(@[^/]+)\\/([^/]+)\\/-\\/\\1\\/\\2-(?:[.\\d\\w-]+)\\.tgz(?:#|$)/,(t,e)=>xQ({protocol:\"npm:\",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],KI=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let s=J.join(e.cwd,Er.lockfile);if(!ce.existsSync(s))return;let a=await ce.readFilePromise(s,\"utf8\"),n=as(a);if(Object.hasOwn(n,\"__metadata\"))return;let c=this.resolutions=new Map;for(let f of Object.keys(n)){let p=HB(f);if(!p){r.reportWarning(14,`Failed to parse the string \"${f}\" into a proper descriptor`);continue}let h=cl(p.range)?On(p,`npm:${p.range}`):p,{version:E,resolved:C}=n[f];if(!C)continue;let S;for(let[I,T]of Vot){let N=C.match(I);if(N){S=T(E,...N);break}}if(!S){r.reportWarning(14,`${ni(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not \"${C}\")`);continue}let b=h;try{let I=em(h.range),T=HB(I.selector,!0);T&&(b=T)}catch{}c.set(h.descriptorHash,Ws(b,S))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error(\"Assertion failed: This resolver doesn't support resolving locators to packages\")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!this.resolutions)throw new Error(\"Assertion failed: The resolution store should have been setup\");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error(\"Assertion failed: The resolution should have been registered\");let n=B8(a),c=s.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(c,r,s)}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error(\"Assertion failed: This resolver doesn't support resolving locators to packages\")}}});var lA,ude=Ze(()=>{Rc();Ev();xc();lA=class extends Ao{constructor({configuration:r,stdout:s,suggestInstall:a=!0}){super();this.errorCount=0;TB(this,{configuration:r}),this.configuration=r,this.stdout=s,this.suggestInstall=a}static async start(r,s){let a=new this(r);try{await s(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,s){return s()}async startSectionPromise(r,s){return await s()}startTimerSync(r,s,a){return(typeof s==\"function\"?s:a)()}async startTimerPromise(r,s,a){return await(typeof s==\"function\"?s:a)()}reportSeparator(){}reportInfo(r,s){}reportWarning(r,s){}reportError(r,s){this.errorCount+=1,this.stdout.write(`${Ht(this.configuration,\"\\u27A4\",\"redBright\")} ${this.formatNameWithHyperlink(r)}: ${s}\n`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,s){}async finalize(){this.errorCount>0&&(this.stdout.write(`\n`),this.stdout.write(`${Ht(this.configuration,\"\\u27A4\",\"redBright\")} Errors happened when preparing the environment required to run this command.\n`),this.suggestInstall&&this.stdout.write(`${Ht(this.configuration,\"\\u27A4\",\"redBright\")} This might be caused by packages being missing from the lockfile, in which case running \"yarn install\" might help.\n`))}formatNameWithHyperlink(r){return jj(r,{configuration:this.configuration,json:!1})}}});var zI,OG=Ze(()=>{Wo();zI=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(DQ(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error(\"The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes\")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,s){let a=s.project.storedResolutions.get(e.descriptorHash);if(a){let c=s.project.originalPackages.get(a);if(c)return[c]}let n=s.project.originalPackages.get(DQ(e).locatorHash);if(n)return[n];throw new Error(\"Resolution expected from the lockfile data\")}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let s=r.project.originalPackages.get(e.locatorHash);if(!s)throw new Error(\"The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache\");return s}}});function Kp(){}function Jot(t,e,r,s,a){for(var n=0,c=e.length,f=0,p=0;n<c;n++){var h=e[n];if(h.removed){if(h.value=t.join(s.slice(p,p+h.count)),p+=h.count,n&&e[n-1].added){var C=e[n-1];e[n-1]=e[n],e[n]=C}}else{if(!h.added&&a){var E=r.slice(f,f+h.count);E=E.map(function(b,I){var T=s[p+I];return T.length>b.length?T:b}),h.value=t.join(E)}else h.value=t.join(r.slice(f,f+h.count));f+=h.count,h.added||(p+=h.count)}}var S=e[c-1];return c>1&&typeof S.value==\"string\"&&(S.added||S.removed)&&t.equals(\"\",S.value)&&(e[c-2].value+=S.value,e.pop()),e}function Kot(t){return{newPos:t.newPos,components:t.components.slice(0)}}function zot(t,e){if(typeof t==\"function\")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function pde(t,e,r){return r=zot(r,{ignoreWhitespace:!0}),HG.diff(t,e,r)}function Zot(t,e,r){return jG.diff(t,e,r)}function _T(t){\"@babel/helpers - typeof\";return typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?_T=function(e){return typeof e}:_T=function(e){return e&&typeof Symbol==\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_T(t)}function LG(t){return eat(t)||tat(t)||rat(t)||nat()}function eat(t){if(Array.isArray(t))return MG(t)}function tat(t){if(typeof Symbol<\"u\"&&Symbol.iterator in Object(t))return Array.from(t)}function rat(t,e){if(t){if(typeof t==\"string\")return MG(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r===\"Object\"&&t.constructor&&(r=t.constructor.name),r===\"Map\"||r===\"Set\")return Array.from(t);if(r===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return MG(t,e)}}function MG(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,s=new Array(e);r<e;r++)s[r]=t[r];return s}function nat(){throw new TypeError(`Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function UG(t,e,r,s,a){e=e||[],r=r||[],s&&(t=s(a,t));var n;for(n=0;n<e.length;n+=1)if(e[n]===t)return r[n];var c;if(iat.call(t)===\"[object Array]\"){for(e.push(t),c=new Array(t.length),r.push(c),n=0;n<t.length;n+=1)c[n]=UG(t[n],e,r,s,a);return e.pop(),r.pop(),c}if(t&&t.toJSON&&(t=t.toJSON()),_T(t)===\"object\"&&t!==null){e.push(t),c={},r.push(c);var f=[],p;for(p in t)t.hasOwnProperty(p)&&f.push(p);for(f.sort(),n=0;n<f.length;n+=1)p=f[n],c[p]=UG(t[p],e,r,s,p);e.pop(),r.pop()}else c=t;return c}function hde(t,e,r,s,a,n,c){c||(c={}),typeof c.context>\"u\"&&(c.context=4);var f=Zot(r,s,c);if(!f)return;f.push({value:\"\",lines:[]});function p(U){return U.map(function(W){return\" \"+W})}for(var h=[],E=0,C=0,S=[],b=1,I=1,T=function(W){var ee=f[W],ie=ee.lines||ee.value.replace(/\\n$/,\"\").split(`\n`);if(ee.lines=ie,ee.added||ee.removed){var ue;if(!E){var le=f[W-1];E=b,C=I,le&&(S=c.context>0?p(le.lines.slice(-c.context)):[],E-=S.length,C-=S.length)}(ue=S).push.apply(ue,LG(ie.map(function(Ae){return(ee.added?\"+\":\"-\")+Ae}))),ee.added?I+=ie.length:b+=ie.length}else{if(E)if(ie.length<=c.context*2&&W<f.length-2){var me;(me=S).push.apply(me,LG(p(ie)))}else{var pe,Be=Math.min(ie.length,c.context);(pe=S).push.apply(pe,LG(p(ie.slice(0,Be))));var Ce={oldStart:E,oldLines:b-E+Be,newStart:C,newLines:I-C+Be,lines:S};if(W>=f.length-2&&ie.length<=c.context){var g=/\\n$/.test(r),we=/\\n$/.test(s),ye=ie.length==0&&S.length>Ce.oldLines;!g&&ye&&r.length>0&&S.splice(Ce.oldLines,0,\"\\\\ No newline at end of file\"),(!g&&!ye||!we)&&S.push(\"\\\\ No newline at end of file\")}h.push(Ce),E=0,C=0,S=[]}b+=ie.length,I+=ie.length}},N=0;N<f.length;N++)T(N);return{oldFileName:t,newFileName:e,oldHeader:a,newHeader:n,hunks:h}}var c8t,fde,Ade,HG,jG,Xot,$ot,iat,Hv,_G,GG=Ze(()=>{Kp.prototype={diff:function(e,r){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=s.callback;typeof s==\"function\"&&(a=s,s={}),this.options=s;var n=this;function c(T){return a?(setTimeout(function(){a(void 0,T)},0),!0):T}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var f=r.length,p=e.length,h=1,E=f+p;s.maxEditLength&&(E=Math.min(E,s.maxEditLength));var C=[{newPos:-1,components:[]}],S=this.extractCommon(C[0],r,e,0);if(C[0].newPos+1>=f&&S+1>=p)return c([{value:this.join(r),count:r.length}]);function b(){for(var T=-1*h;T<=h;T+=2){var N=void 0,U=C[T-1],W=C[T+1],ee=(W?W.newPos:0)-T;U&&(C[T-1]=void 0);var ie=U&&U.newPos+1<f,ue=W&&0<=ee&&ee<p;if(!ie&&!ue){C[T]=void 0;continue}if(!ie||ue&&U.newPos<W.newPos?(N=Kot(W),n.pushComponent(N.components,void 0,!0)):(N=U,N.newPos++,n.pushComponent(N.components,!0,void 0)),ee=n.extractCommon(N,r,e,T),N.newPos+1>=f&&ee+1>=p)return c(Jot(n,N.components,r,e,n.useLongestToken));C[T]=N}h++}if(a)(function T(){setTimeout(function(){if(h>E)return a();b()||T()},0)})();else for(;h<=E;){var I=b();if(I)return I}},pushComponent:function(e,r,s){var a=e[e.length-1];a&&a.added===r&&a.removed===s?e[e.length-1]={count:a.count+1,added:r,removed:s}:e.push({count:1,added:r,removed:s})},extractCommon:function(e,r,s,a){for(var n=r.length,c=s.length,f=e.newPos,p=f-a,h=0;f+1<n&&p+1<c&&this.equals(r[f+1],s[p+1]);)f++,p++,h++;return h&&e.components.push({count:h}),e.newPos=f,p},equals:function(e,r){return this.options.comparator?this.options.comparator(e,r):e===r||this.options.ignoreCase&&e.toLowerCase()===r.toLowerCase()},removeEmpty:function(e){for(var r=[],s=0;s<e.length;s++)e[s]&&r.push(e[s]);return r},castInput:function(e){return e},tokenize:function(e){return e.split(\"\")},join:function(e){return e.join(\"\")}};c8t=new Kp;fde=/^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/,Ade=/\\S/,HG=new Kp;HG.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!Ade.test(t)&&!Ade.test(e)};HG.tokenize=function(t){for(var e=t.split(/([^\\S\\r\\n]+|[()[\\]{}'\"\\r\\n]|\\b)/),r=0;r<e.length-1;r++)!e[r+1]&&e[r+2]&&fde.test(e[r])&&fde.test(e[r+2])&&(e[r]+=e[r+2],e.splice(r+1,2),r--);return e};jG=new Kp;jG.tokenize=function(t){var e=[],r=t.split(/(\\n|\\r\\n)/);r[r.length-1]||r.pop();for(var s=0;s<r.length;s++){var a=r[s];s%2&&!this.options.newlineIsToken?e[e.length-1]+=a:(this.options.ignoreWhitespace&&(a=a.trim()),e.push(a))}return e};Xot=new Kp;Xot.tokenize=function(t){return t.split(/(\\S.+?[.!?])(?=\\s+|$)/)};$ot=new Kp;$ot.tokenize=function(t){return t.split(/([{}:;,]|\\s+)/)};iat=Object.prototype.toString,Hv=new Kp;Hv.useLongestToken=!0;Hv.tokenize=jG.tokenize;Hv.castInput=function(t){var e=this.options,r=e.undefinedReplacement,s=e.stringifyReplacer,a=s===void 0?function(n,c){return typeof c>\"u\"?r:c}:s;return typeof t==\"string\"?t:JSON.stringify(UG(t,null,null,a),a,\"  \")};Hv.equals=function(t,e){return Kp.prototype.equals.call(Hv,t.replace(/,([\\r\\n])/g,\"$1\"),e.replace(/,([\\r\\n])/g,\"$1\"))};_G=new Kp;_G.tokenize=function(t){return t.slice()};_G.join=_G.removeEmpty=function(t){return t}});var HT,gde=Ze(()=>{Rc();HT=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,s){return this.resolver.bindDescriptor(e,r,s)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,s){throw new jt(20,`This package doesn't seem to be present in your lockfile; run \"yarn install\" to update the lockfile`)}async getSatisfying(e,r,s,a){throw new jt(20,`This package doesn't seem to be present in your lockfile; run \"yarn install\" to update the lockfile`)}async resolve(e,r){throw new jt(20,`This package doesn't seem to be present in your lockfile; run \"yarn install\" to update the lockfile`)}}});var ki,qG=Ze(()=>{Rc();ki=class extends Ao{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,s){return(typeof r==\"function\"?r:s)()}async startTimerPromise(e,r,s){return await(typeof r==\"function\"?r:s)()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}reportFold(e,r){}async finalize(){}}});var dde,ZI,WG=Ze(()=>{Dt();dde=ut(wQ());oI();tm();xc();I0();Tp();Wo();ZI=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await Ut.tryFind(this.cwd)??new Ut,this.relativeCwd=J.relative(this.project.cwd,this.cwd)||vt.dot;let e=this.manifest.name?this.manifest.name:Da(null,`${this.computeCandidateName()}-${cs(this.relativeCwd).substring(0,6)}`);this.anchoredDescriptor=On(e,`${Ei.protocol}${this.relativeCwd}`),this.anchoredLocator=Ws(e,`${Ei.protocol}${this.relativeCwd}`);let r=this.manifest.workspaceDefinitions.map(({pattern:a})=>a);if(r.length===0)return;let s=await(0,dde.default)(r,{cwd:fe.fromPortablePath(this.cwd),onlyDirectories:!0,ignore:[\"**/node_modules\",\"**/.git\",\"**/.yarn\"]});s.sort(),await s.reduce(async(a,n)=>{let c=J.resolve(this.cwd,fe.toPortablePath(n)),f=await ce.existsPromise(J.join(c,\"package.json\"));await a,f&&this.workspacesCwds.add(c)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${GB(this.project.configuration,this)} (${Ht(this.project.configuration,J.join(this.cwd,Er.manifest),ht.PATH)}) to have been resolved. Run \"yarn install\" to update the lockfile`);return e}accepts(e){let r=e.indexOf(\":\"),s=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(s===Ei.protocol&&J.normalize(a)===this.relativeCwd||s===Ei.protocol&&(a===\"*\"||a===\"^\"||a===\"~\"))return!0;let n=cl(a);return n?s===Ei.protocol?n.test(this.manifest.version??\"0.0.0\"):this.project.configuration.get(\"enableTransparentWorkspaces\")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?\"root-workspace\":`${J.basename(this.cwd)}`||\"unnamed-workspace\"}getRecursiveWorkspaceDependencies({dependencies:e=Ut.hardDependencies}={}){let r=new Set,s=a=>{for(let n of e)for(let c of a.manifest[n].values()){let f=this.project.tryWorkspaceByDescriptor(c);f===null||r.has(f)||(r.add(f),s(f))}};return s(this),r}getRecursiveWorkspaceDependents({dependencies:e=Ut.hardDependencies}={}){let r=new Set,s=a=>{for(let n of this.project.workspaces)e.some(f=>[...n.manifest[f].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&_B(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),s(n))};return s(this),r}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let r of e)for(let s of r.workspacesCwds){let a=this.project.workspacesByCwd.get(s);a&&e.add(a)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let r=J.join(this.cwd,Ut.fileName),s=`${JSON.stringify(e,null,this.manifest.indent)}\n`;await ce.changeFilePromise(r,s,{automaticNewlines:!0}),this.manifest.raw=e}}});function uat({project:t,allDescriptors:e,allResolutions:r,allPackages:s,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:c=new Map,peerWarnings:f=[],peerRequirementNodes:p=new Map,volatileDescriptors:h=new Set}){let E=new Map,C=[],S=new Map,b=new Map,I=new Map,T=new Map,N=new Map,U=new Map(t.workspaces.map(le=>{let me=le.anchoredLocator.locatorHash,pe=s.get(me);if(typeof pe>\"u\")throw new Error(\"Assertion failed: The workspace should have an associated package\");return[me,LB(pe)]})),W=()=>{let le=ce.mktempSync(),me=J.join(le,\"stacktrace.log\"),pe=String(C.length+1).length,Be=C.map((Ce,g)=>`${`${g+1}.`.padStart(pe,\" \")} ${ll(Ce)}\n`).join(\"\");throw ce.writeFileSync(me,Be),ce.detachTemp(le),new jt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${fe.fromPortablePath(me)}`)},ee=le=>{let me=r.get(le.descriptorHash);if(typeof me>\"u\")throw new Error(\"Assertion failed: The resolution should have been registered\");let pe=s.get(me);if(!pe)throw new Error(\"Assertion failed: The package could not be found\");return pe},ie=(le,me,pe,{top:Be,optional:Ce})=>{C.length>1e3&&W(),C.push(me);let g=ue(le,me,pe,{top:Be,optional:Ce});return C.pop(),g},ue=(le,me,pe,{top:Be,optional:Ce})=>{if(Ce||n.delete(me.locatorHash),a.has(me.locatorHash))return;a.add(me.locatorHash);let g=s.get(me.locatorHash);if(!g)throw new Error(`Assertion failed: The package (${Yr(t.configuration,me)}) should have been registered`);let we=new Set,ye=new Map,Ae=[],se=[],X=[],De=[];for(let Te of Array.from(g.dependencies.values())){if(g.peerDependencies.has(Te.identHash)&&g.locatorHash!==Be)continue;if(kp(Te))throw new Error(\"Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch\");h.delete(Te.descriptorHash);let mt=Ce;if(!mt){let ke=g.dependenciesMeta.get(un(Te));if(typeof ke<\"u\"){let it=ke.get(null);typeof it<\"u\"&&it.optional&&(mt=!0)}}let j=r.get(Te.descriptorHash);if(!j)throw new Error(`Assertion failed: The resolution (${ni(t.configuration,Te)}) should have been registered`);let rt=U.get(j)||s.get(j);if(!rt)throw new Error(`Assertion failed: The package (${j}, resolved from ${ni(t.configuration,Te)}) should have been registered`);if(rt.peerDependencies.size===0){ie(Te,rt,new Map,{top:Be,optional:mt});continue}let Fe,Ne,be=new Set,Ve=new Map;Ae.push(()=>{Fe=S8(Te,me.locatorHash),Ne=D8(rt,me.locatorHash),g.dependencies.set(Te.identHash,Fe),r.set(Fe.descriptorHash,Ne.locatorHash),e.set(Fe.descriptorHash,Fe),s.set(Ne.locatorHash,Ne),Pp(T,Ne.locatorHash).add(Fe.descriptorHash),we.add(Ne.locatorHash)}),se.push(()=>{N.set(Ne.locatorHash,Ve);for(let ke of Ne.peerDependencies.values()){let Ue=Yl(ye,ke.identHash,()=>{let x=pe.get(ke.identHash)??null,w=g.dependencies.get(ke.identHash);return!w&&UB(me,ke)&&(le.identHash===me.identHash?w=le:(w=On(me,le.range),e.set(w.descriptorHash,w),r.set(w.descriptorHash,me.locatorHash),h.delete(w.descriptorHash),x=null)),w||(w=On(ke,\"missing:\")),{subject:me,ident:ke,provided:w,root:!x,requests:new Map,hash:`p${cs(me.locatorHash,ke.identHash).slice(0,6)}`}}).provided;if(Ue.range===\"missing:\"&&Ne.dependencies.has(ke.identHash)){Ne.peerDependencies.delete(ke.identHash);continue}if(Ve.set(ke.identHash,{requester:Ne,descriptor:ke,meta:Ne.peerDependenciesMeta.get(un(ke)),children:new Map}),Ne.dependencies.set(ke.identHash,Ue),kp(Ue)){let x=r.get(Ue.descriptorHash);Pp(I,x).add(Ne.locatorHash)}S.set(Ue.identHash,Ue),Ue.range===\"missing:\"&&be.add(Ue.identHash)}Ne.dependencies=new Map(qs(Ne.dependencies,([ke,it])=>un(it)))}),X.push(()=>{if(!s.has(Ne.locatorHash))return;let ke=E.get(rt.locatorHash);typeof ke==\"number\"&&ke>=2&&W();let it=E.get(rt.locatorHash),Ue=typeof it<\"u\"?it+1:1;E.set(rt.locatorHash,Ue),ie(Fe,Ne,Ve,{top:Be,optional:mt}),E.set(rt.locatorHash,Ue-1)}),De.push(()=>{let ke=r.get(Fe.descriptorHash);if(typeof ke>\"u\")throw new Error(\"Assertion failed: Expected the descriptor to be registered\");let it=N.get(ke);if(typeof it>\"u\")throw new Error(\"Assertion failed: Expected the peer requests to be registered\");for(let Ue of ye.values()){let x=it.get(Ue.ident.identHash);x&&(Ue.requests.set(Fe.descriptorHash,x),p.set(Ue.hash,Ue),Ue.root||pe.get(Ue.ident.identHash)?.children.set(Fe.descriptorHash,x))}if(s.has(Ne.locatorHash))for(let Ue of be)Ne.dependencies.delete(Ue)})}for(let Te of[...Ae,...se])Te();for(let Te of we){we.delete(Te);let mt=s.get(Te),j=cs(rI(mt).locatorHash,...Array.from(mt.dependencies.values(),be=>{let Ve=be.range!==\"missing:\"?r.get(be.descriptorHash):\"missing:\";if(typeof Ve>\"u\")throw new Error(`Assertion failed: Expected the resolution for ${ni(t.configuration,be)} to have been registered`);return Ve===Be?`${Ve} (top)`:Ve})),rt=b.get(j);if(typeof rt>\"u\"){b.set(j,mt);continue}let Fe=Pp(T,rt.locatorHash);for(let be of T.get(mt.locatorHash)??[])r.set(be,rt.locatorHash),Fe.add(be);s.delete(mt.locatorHash),a.delete(mt.locatorHash),we.delete(mt.locatorHash);let Ne=I.get(mt.locatorHash);if(Ne!==void 0){let be=Pp(I,rt.locatorHash);for(let Ve of Ne)be.add(Ve),we.add(Ve)}}for(let Te of[...X,...De])Te()};for(let le of t.workspaces){let me=le.anchoredLocator;h.delete(le.anchoredDescriptor.descriptorHash),ie(le.anchoredDescriptor,me,new Map,{top:me.locatorHash,optional:!1})}for(let le of p.values()){if(!le.root)continue;let me=s.get(le.subject.locatorHash);if(typeof me>\"u\")continue;for(let Be of le.requests.values()){let Ce=`p${cs(le.subject.locatorHash,un(le.ident),Be.requester.locatorHash).slice(0,6)}`;c.set(Ce,{subject:le.subject.locatorHash,requested:le.ident,rootRequester:Be.requester.locatorHash,allRequesters:Array.from(qB(Be),g=>g.requester.locatorHash)})}let pe=[...qB(le)];if(le.provided.range!==\"missing:\"){let Be=ee(le.provided),Ce=Be.version??\"0.0.0\",g=ye=>{if(ye.startsWith(Ei.protocol)){if(!t.tryWorkspaceByLocator(Be))return null;ye=ye.slice(Ei.protocol.length),(ye===\"^\"||ye===\"~\")&&(ye=\"*\")}return ye},we=!0;for(let ye of pe){let Ae=g(ye.descriptor.range);if(Ae===null){we=!1;continue}if(!Xf(Ce,Ae)){we=!1;let se=`p${cs(le.subject.locatorHash,un(le.ident),ye.requester.locatorHash).slice(0,6)}`;f.push({type:1,subject:me,requested:le.ident,requester:ye.requester,version:Ce,hash:se,requirementCount:pe.length})}}if(!we){let ye=pe.map(Ae=>g(Ae.descriptor.range));f.push({type:3,node:le,range:ye.includes(null)?null:x8(ye),hash:le.hash})}}else{let Be=!0;for(let Ce of pe)if(!Ce.meta?.optional){Be=!1;let g=`p${cs(le.subject.locatorHash,un(le.ident),Ce.requester.locatorHash).slice(0,6)}`;f.push({type:0,subject:me,requested:le.ident,requester:Ce.requester,hash:g})}Be||f.push({type:2,node:le,hash:le.hash})}}}function*fat(t){let e=new Map;if(\"children\"in t)e.set(t,t);else for(let r of t.requests.values())e.set(r,r);for(let[r,s]of e){yield{request:r,root:s};for(let a of r.children.values())e.has(a)||e.set(a,s)}}function Aat(t,e){let r=[],s=[],a=!1;for(let n of t.peerWarnings)if(!(n.type===1||n.type===0)){if(!t.tryWorkspaceByLocator(n.node.subject)){a=!0;continue}if(n.type===3){let c=t.storedResolutions.get(n.node.provided.descriptorHash);if(typeof c>\"u\")throw new Error(\"Assertion failed: Expected the descriptor to be registered\");let f=t.storedPackages.get(c);if(typeof f>\"u\")throw new Error(\"Assertion failed: Expected the package to be registered\");let p=p0(fat(n.node),({request:C,root:S})=>Xf(f.version??\"0.0.0\",C.descriptor.range)?p0.skip:C===S?Xi(t.configuration,C.requester):`${Xi(t.configuration,C.requester)} (via ${Xi(t.configuration,S.requester)})`),h=[...qB(n.node)].length>1?\"and other dependencies request\":\"requests\",E=n.range?iI(t.configuration,n.range):Ht(t.configuration,\"but they have non-overlapping ranges!\",\"redBright\");r.push(`${Xi(t.configuration,n.node.ident)} is listed by your project with version ${jB(t.configuration,f.version??\"0.0.0\")} (${Ht(t.configuration,n.hash,ht.CODE)}), which doesn't satisfy what ${p} ${h} (${E}).`)}if(n.type===2){let c=n.node.requests.size>1?\" and other dependencies\":\"\";s.push(`${Yr(t.configuration,n.node.subject)} doesn't provide ${Xi(t.configuration,n.node.ident)} (${Ht(t.configuration,n.hash,ht.CODE)}), requested by ${Xi(t.configuration,n.node.requests.values().next().value.requester)}${c}.`)}}e.startSectionSync({reportFooter:()=>{e.reportWarning(86,`Some peer dependencies are incorrectly met by your project; run ${Ht(t.configuration,\"yarn explain peer-requirements <hash>\",ht.CODE)} for details, where ${Ht(t.configuration,\"<hash>\",ht.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let n of qs(r,c=>JE.default(c)))e.reportWarning(60,n);for(let n of qs(s,c=>JE.default(c)))e.reportWarning(2,n)}),a&&e.reportWarning(86,`Some peer dependencies are incorrectly met by dependencies; run ${Ht(t.configuration,\"yarn explain peer-requirements\",ht.CODE)} for details.`)}var jT,GT,Ede,JG,VG,KG,qT,sat,oat,mde,aat,lat,cat,$l,YG,WT,yde,Rt,Ide=Ze(()=>{Dt();Dt();wc();Yt();jT=Ie(\"crypto\");GG();ql();GT=ut(Ld()),Ede=ut(Ai()),JG=Ie(\"util\"),VG=ut(Ie(\"v8\")),KG=ut(Ie(\"zlib\"));FG();av();NG();OG();oI();R8();Rc();gde();Ev();qG();tm();WG();OQ();xc();I0();bc();hR();Vj();Tp();Wo();qT=YE(process.env.YARN_LOCKFILE_VERSION_OVERRIDE??8),sat=3,oat=/ *, */g,mde=/\\/$/,aat=32,lat=(0,JG.promisify)(KG.default.gzip),cat=(0,JG.promisify)(KG.default.gunzip),$l=(r=>(r.UpdateLockfile=\"update-lockfile\",r.SkipBuild=\"skip-build\",r))($l||{}),YG={restoreLinkersCustomData:[\"linkersCustomData\"],restoreResolutions:[\"accessibleLocators\",\"conditionalLocators\",\"disabledLocators\",\"optionalBuilds\",\"storedDescriptors\",\"storedResolutions\",\"storedPackages\",\"lockFileChecksum\"],restoreBuildState:[\"skippedBuilds\",\"storedBuildState\"]},WT=(a=>(a[a.NotProvided=0]=\"NotProvided\",a[a.NotCompatible=1]=\"NotCompatible\",a[a.NodeNotProvided=2]=\"NodeNotProvided\",a[a.NodeNotCompatible=3]=\"NodeNotCompatible\",a))(WT||{}),yde=t=>cs(`${sat}`,t),Rt=class t{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.skippedBuilds=new Set;this.lockfileLastVersion=null;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.peerWarnings=[];this.peerRequirementNodes=new Map;this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){if(!e.projectCwd)throw new nt(`No project found in ${r}`);let s=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,ce.existsSync(J.join(n,Er.manifest))){s=n;break}a=J.dirname(n)}let c=new t(e.projectCwd,{configuration:e});ze.telemetry?.reportProject(c.cwd),await c.setupResolutions(),await c.setupWorkspaces(),ze.telemetry?.reportWorkspaceCount(c.workspaces.length),ze.telemetry?.reportDependencyCount(c.workspaces.reduce((I,T)=>I+T.manifest.dependencies.size+T.manifest.devDependencies.size,0));let f=c.tryWorkspaceByCwd(s);if(f)return{project:c,workspace:f,locator:f.anchoredLocator};let p=await c.findLocatorForLocation(`${s}/`,{strict:!0});if(p)return{project:c,locator:p,workspace:null};let h=Ht(e,c.cwd,ht.PATH),E=Ht(e,J.relative(c.cwd,s),ht.PATH),C=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,S=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,b=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new nt(`The nearest package directory (${Ht(e,s,ht.PATH)}) doesn't seem to be part of the project declared in ${Ht(e,c.cwd,ht.PATH)}.\n\n${[C,S,b].join(`\n`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=J.join(this.cwd,Er.lockfile),r=this.configuration.get(\"defaultLanguageName\");if(ce.existsSync(e)){let s=await ce.readFilePromise(e,\"utf8\");this.lockFileChecksum=yde(s);let a=as(s);if(a.__metadata){let n=a.__metadata.version,c=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n<qT;for(let f of Object.keys(a)){if(f===\"__metadata\")continue;let p=a[f];if(typeof p.resolution>\"u\")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${f})`);let h=Qp(p.resolution,!0),E=new Ut;E.load(p,{yamlCompatibilityMode:!0});let C=E.version,S=E.languageName||r,b=p.linkType.toUpperCase(),I=p.conditions??null,T=E.dependencies,N=E.peerDependencies,U=E.dependenciesMeta,W=E.peerDependenciesMeta,ee=E.bin;if(p.checksum!=null){let ue=typeof c<\"u\"&&!p.checksum.includes(\"/\")?`${c}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,ue)}let ie={...h,version:C,languageName:S,linkType:b,conditions:I,dependencies:T,peerDependencies:N,dependenciesMeta:U,peerDependenciesMeta:W,bin:ee};this.originalPackages.set(ie.locatorHash,ie);for(let ue of f.split(oat)){let le=C0(ue);n<=6&&(le=this.configuration.normalizeDependency(le),le=On(le,le.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,\"$1npm%3A\"))),this.storedDescriptors.set(le.descriptorHash,le),this.storedResolutions.set(le.descriptorHash,h.locatorHash)}}}else s.includes(\"yarn lockfile v1\")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,GT.default)(4),s=async(a,n)=>{if(e.has(n))return a;e.add(n);let c=new ZI(n,{project:this});await r(()=>c.setup());let f=a.then(()=>{this.addWorkspace(c)});return Array.from(c.workspacesCwds).reduce(s,f)};await s(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<\"u\")throw new Error(`Duplicate workspace name ${Xi(this.configuration,e.anchoredLocator)}: ${fe.fromPortablePath(e.cwd)} conflicts with ${fe.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){J.isAbsolute(e)||(e=J.resolve(this.cwd,e)),e=J.normalize(e).replace(/\\/+$/,\"\");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let s of this.workspaces)J.relative(s.cwd,e).startsWith(\"../\")||r&&r.cwd.length>=s.cwd.length||(r=s);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>\"u\"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${Xi(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(Ei.protocol)){let s=e.range.slice(Ei.protocol.length);if(s!==\"^\"&&s!==\"~\"&&s!==\"*\"&&!cl(s))return this.tryWorkspaceByCwd(s)}let r=this.tryWorkspaceByIdent(e);return r===null||(kp(e)&&(e=MB(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${ni(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Gu(e)&&(e=rI(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${Yr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if(\"descriptorHash\"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof r<\"u\"&&!s.has(r)&&this.deleteLocator(r)}if(\"locatorHash\"in e){this.deleteLocator(e.locatorHash);for(let[r,s]of this.storedResolutions)s===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[s,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(s)}for(let s of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(s,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(s.locatorHash);let n=r.get(s.locatorHash);if(n){r.delete(s.locatorHash);for(let c of n)this.deleteDescriptor(c)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,s]of e.dependencies)kp(s)&&e.dependencies.set(r,MB(s))}getDependencyMeta(e,r){let s={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(un(e));if(!n)return s;let c=n.get(null);if(c&&Object.assign(s,c),r===null||!Ede.default.valid(r))return s;for(let[f,p]of n)f!==null&&f===r&&Object.assign(s,p);return s}async findLocatorForLocation(e,{strict:r=!1}={}){let s=new ki,a=this.configuration.getLinkers(),n={project:this,report:s};for(let c of a){let f=await c.findPackageLocator(e,n);if(f){if(r&&(await c.findPackageLocation(f,n)).replace(mde,\"\")!==e.replace(mde,\"\"))continue;return f}}return null}async loadUserConfig(){let e=J.join(this.cwd,\".pnp.cjs\");await ce.existsPromise(e)&&bp(e).setup();let r=J.join(this.cwd,\"yarn.config.cjs\");return await ce.existsPromise(r)?bp(r):null}async preparePackage(e,{resolver:r,resolveOptions:s}){let a=await this.configuration.getPackageExtensions(),n=this.configuration.normalizePackage(e,{packageExtensions:a});for(let[c,f]of n.dependencies){let p=await this.configuration.reduceHook(E=>E.reduceDependency,f,this,n,f,{resolver:r,resolveOptions:s});if(!UB(f,p))throw new Error(\"Assertion failed: The descriptor ident cannot be changed through aliases\");let h=r.bindDescriptor(p,n,s);n.dependencies.set(c,h)}return n}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error(\"Workspaces must have been setup before calling this function\");this.forgetVirtualResolutions();let r=new Map(this.originalPackages),s=[];e.lockfileOnly||this.forgetTransientResolutions();let a=e.resolver||this.configuration.makeResolver(),n=new KI(a);await n.setup(this,{report:e.report});let c=e.lockfileOnly?[new HT(a)]:[n,a],f=new rm([new zI(a),...c]),p=new rm([...c]),h=this.configuration.makeFetcher(),E=e.lockfileOnly?{project:this,report:e.report,resolver:f}:{project:this,report:e.report,resolver:f,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:h,cacheOptions:{mirrorWriteOnly:!0}}},C=new Map,S=new Map,b=new Map,I=new Map,T=new Map,N=new Map,U=this.topLevelWorkspace.anchoredLocator,W=new Set,ee=[],ie=lj(),ue=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Ao.progressViaTitle(),async se=>{let X=async rt=>{let Fe=await qE(async()=>await f.resolve(rt,E),ke=>`${Yr(this.configuration,rt)}: ${ke}`);if(!_B(rt,Fe))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Yr(this.configuration,rt)} to ${Yr(this.configuration,Fe)})`);I.set(Fe.locatorHash,Fe),!r.delete(Fe.locatorHash)&&!this.tryWorkspaceByLocator(Fe)&&s.push(Fe);let be=await this.preparePackage(Fe,{resolver:f,resolveOptions:E}),Ve=Uu([...be.dependencies.values()].map(ke=>j(ke)));return ee.push(Ve),Ve.catch(()=>{}),S.set(be.locatorHash,be),be},De=async rt=>{let Fe=T.get(rt.locatorHash);if(typeof Fe<\"u\")return Fe;let Ne=Promise.resolve().then(()=>X(rt));return T.set(rt.locatorHash,Ne),Ne},Te=async(rt,Fe)=>{let Ne=await j(Fe);return C.set(rt.descriptorHash,rt),b.set(rt.descriptorHash,Ne.locatorHash),Ne},mt=async rt=>{se.setTitle(ni(this.configuration,rt));let Fe=this.resolutionAliases.get(rt.descriptorHash);if(typeof Fe<\"u\")return Te(rt,this.storedDescriptors.get(Fe));let Ne=f.getResolutionDependencies(rt,E),be=Object.fromEntries(await Uu(Object.entries(Ne).map(async([it,Ue])=>{let x=f.bindDescriptor(Ue,U,E),w=await j(x);return W.add(w.locatorHash),[it,w]}))),ke=(await qE(async()=>await f.getCandidates(rt,be,E),it=>`${ni(this.configuration,rt)}: ${it}`))[0];if(typeof ke>\"u\")throw new jt(82,`${ni(this.configuration,rt)}: No candidates found`);if(e.checkResolutions){let{locators:it}=await p.getSatisfying(rt,be,[ke],{...E,resolver:p});if(!it.find(Ue=>Ue.locatorHash===ke.locatorHash))throw new jt(78,`Invalid resolution ${FB(this.configuration,rt,ke)}`)}return C.set(rt.descriptorHash,rt),b.set(rt.descriptorHash,ke.locatorHash),De(ke)},j=rt=>{let Fe=N.get(rt.descriptorHash);if(typeof Fe<\"u\")return Fe;C.set(rt.descriptorHash,rt);let Ne=Promise.resolve().then(()=>mt(rt));return N.set(rt.descriptorHash,Ne),Ne};for(let rt of this.workspaces){let Fe=rt.anchoredDescriptor;ee.push(j(Fe))}for(;ee.length>0;){let rt=[...ee];ee.length=0,await Uu(rt)}});let le=Wl(r.values(),se=>this.tryWorkspaceByLocator(se)?Wl.skip:se);if(s.length>0||le.length>0){let se=new Set(this.workspaces.flatMap(rt=>{let Fe=S.get(rt.anchoredLocator.locatorHash);if(!Fe)throw new Error(\"Assertion failed: The workspace should have been resolved\");return Array.from(Fe.dependencies.values(),Ne=>{let be=b.get(Ne.descriptorHash);if(!be)throw new Error(\"Assertion failed: The resolution should have been registered\");return be})})),X=rt=>se.has(rt.locatorHash)?\"0\":\"1\",De=rt=>ll(rt),Te=qs(s,[X,De]),mt=qs(le,[X,De]),j=e.report.getRecommendedLength();Te.length>0&&e.report.reportInfo(85,`${Ht(this.configuration,\"+\",ht.ADDED)} ${Xk(this.configuration,Te,j)}`),mt.length>0&&e.report.reportInfo(85,`${Ht(this.configuration,\"-\",ht.REMOVED)} ${Xk(this.configuration,mt,j)}`)}let me=new Set(this.resolutionAliases.values()),pe=new Set(S.keys()),Be=new Set,Ce=new Map,g=[],we=new Map;uat({project:this,accessibleLocators:Be,volatileDescriptors:me,optionalBuilds:pe,peerRequirements:Ce,peerWarnings:g,peerRequirementNodes:we,allDescriptors:C,allResolutions:b,allPackages:S});for(let se of W)pe.delete(se);for(let se of me)C.delete(se),b.delete(se);let ye=new Set,Ae=new Set;for(let se of S.values())se.conditions!=null&&pe.has(se.locatorHash)&&(QQ(se,ue)||(QQ(se,ie)&&e.report.reportWarningOnce(77,`${Yr(this.configuration,se)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ht(this.configuration,\"supportedArchitectures\",ht.SETTING)} setting`),Ae.add(se.locatorHash)),ye.add(se.locatorHash));this.storedResolutions=b,this.storedDescriptors=C,this.storedPackages=S,this.accessibleLocators=Be,this.conditionalLocators=ye,this.disabledLocators=Ae,this.originalPackages=I,this.optionalBuilds=pe,this.peerRequirements=Ce,this.peerWarnings=g,this.peerRequirementNodes=we}async fetchEverything({cache:e,report:r,fetcher:s,mode:a,persistProject:n=!0}){let c={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},f=s||this.configuration.makeFetcher(),p={checksums:this.storedChecksums,project:this,cache:e,fetcher:f,report:r,cacheOptions:c},h=Array.from(new Set(qs(this.storedResolutions.values(),[I=>{let T=this.storedPackages.get(I);if(!T)throw new Error(\"Assertion failed: The locator should have been registered\");return ll(T)}])));a===\"update-lockfile\"&&(h=h.filter(I=>!this.storedChecksums.has(I)));let E=!1,C=Ao.progressViaCounter(h.length);await r.reportProgress(C);let S=(0,GT.default)(aat);if(await Uu(h.map(I=>S(async()=>{let T=this.storedPackages.get(I);if(!T)throw new Error(\"Assertion failed: The locator should have been registered\");if(Gu(T))return;let N;try{N=await f.fetch(T,p)}catch(U){U.message=`${Yr(this.configuration,T)}: ${U.message}`,r.reportExceptionOnce(U),E=U;return}N.checksum!=null?this.storedChecksums.set(T.locatorHash,N.checksum):this.storedChecksums.delete(T.locatorHash),N.releaseFs&&N.releaseFs()}).finally(()=>{C.tick()}))),E)throw E;let b=n&&a!==\"update-lockfile\"?await this.cacheCleanup({cache:e,report:r}):null;if(r.cacheMisses.size>0||b){let T=(await Promise.all([...r.cacheMisses].map(async le=>{let me=this.storedPackages.get(le),pe=this.storedChecksums.get(le)??null,Be=e.getLocatorPath(me,pe);return(await ce.statPromise(Be)).size}))).reduce((le,me)=>le+me,0)-(b?.size??0),N=r.cacheMisses.size,U=b?.count??0,W=`${Wk(N,{zero:\"No new packages\",one:\"A package was\",more:`${Ht(this.configuration,N,ht.NUMBER)} packages were`})} added to the project`,ee=`${Wk(U,{zero:\"none were\",one:\"one was\",more:`${Ht(this.configuration,U,ht.NUMBER)} were`})} removed`,ie=T!==0?` (${Ht(this.configuration,T,ht.SIZE_DIFF)})`:\"\",ue=U>0?N>0?`${W}, and ${ee}${ie}.`:`${W}, but ${ee}${ie}.`:`${W}${ie}.`;r.reportInfo(13,ue)}}async linkEverything({cache:e,report:r,fetcher:s,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},c=s||this.configuration.makeFetcher(),f={checksums:this.storedChecksums,project:this,cache:e,fetcher:c,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(ye=>{let Ae=ye.makeInstaller(h),se=ye.getCustomDataKey(),X=this.linkersCustomData.get(se);return typeof X<\"u\"&&Ae.attachCustomData(X),[ye,Ae]})),C=new Map,S=new Map,b=new Map,I=new Map(await Uu([...this.accessibleLocators].map(async ye=>{let Ae=this.storedPackages.get(ye);if(!Ae)throw new Error(\"Assertion failed: The locator should have been registered\");return[ye,await c.fetch(Ae,f)]}))),T=[],N=new Set,U=[];for(let ye of this.accessibleLocators){let Ae=this.storedPackages.get(ye);if(typeof Ae>\"u\")throw new Error(\"Assertion failed: The locator should have been registered\");let se=I.get(Ae.locatorHash);if(typeof se>\"u\")throw new Error(\"Assertion failed: The fetch result should have been registered\");let X=[],De=mt=>{X.push(mt)},Te=this.tryWorkspaceByLocator(Ae);if(Te!==null){let mt=[],{scripts:j}=Te.manifest;for(let Fe of[\"preinstall\",\"install\",\"postinstall\"])j.has(Fe)&&mt.push({type:0,script:Fe});try{for(let[Fe,Ne]of E)if(Fe.supportsPackage(Ae,h)&&(await Ne.installPackage(Ae,se,{holdFetchResult:De})).buildRequest!==null)throw new Error(\"Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core\")}finally{X.length===0?se.releaseFs?.():T.push(Uu(X).catch(()=>{}).then(()=>{se.releaseFs?.()}))}let rt=J.join(se.packageFs.getRealPath(),se.prefixPath);S.set(Ae.locatorHash,rt),!Gu(Ae)&&mt.length>0&&b.set(Ae.locatorHash,{buildDirectives:mt,buildLocations:[rt]})}else{let mt=p.find(Fe=>Fe.supportsPackage(Ae,h));if(!mt)throw new jt(12,`${Yr(this.configuration,Ae)} isn't supported by any available linker`);let j=E.get(mt);if(!j)throw new Error(\"Assertion failed: The installer should have been registered\");let rt;try{rt=await j.installPackage(Ae,se,{holdFetchResult:De})}finally{X.length===0?se.releaseFs?.():T.push(Uu(X).then(()=>{}).then(()=>{se.releaseFs?.()}))}C.set(Ae.locatorHash,mt),S.set(Ae.locatorHash,rt.packageLocation),rt.buildRequest&&rt.packageLocation&&(rt.buildRequest.skipped?(N.add(Ae.locatorHash),this.skippedBuilds.has(Ae.locatorHash)||U.push([Ae,rt.buildRequest.explain])):b.set(Ae.locatorHash,{buildDirectives:rt.buildRequest.directives,buildLocations:[rt.packageLocation]}))}}let W=new Map;for(let ye of this.accessibleLocators){let Ae=this.storedPackages.get(ye);if(!Ae)throw new Error(\"Assertion failed: The locator should have been registered\");let se=this.tryWorkspaceByLocator(Ae)!==null,X=async(De,Te)=>{let mt=S.get(Ae.locatorHash);if(typeof mt>\"u\")throw new Error(`Assertion failed: The package (${Yr(this.configuration,Ae)}) should have been registered`);let j=[];for(let rt of Ae.dependencies.values()){let Fe=this.storedResolutions.get(rt.descriptorHash);if(typeof Fe>\"u\")throw new Error(`Assertion failed: The resolution (${ni(this.configuration,rt)}, from ${Yr(this.configuration,Ae)})should have been registered`);let Ne=this.storedPackages.get(Fe);if(typeof Ne>\"u\")throw new Error(`Assertion failed: The package (${Fe}, resolved from ${ni(this.configuration,rt)}) should have been registered`);let be=this.tryWorkspaceByLocator(Ne)===null?C.get(Fe):null;if(typeof be>\"u\")throw new Error(`Assertion failed: The package (${Fe}, resolved from ${ni(this.configuration,rt)}) should have been registered`);be===De||be===null?S.get(Ne.locatorHash)!==null&&j.push([rt,Ne]):!se&&mt!==null&&xB(W,Fe).push(mt)}mt!==null&&await Te.attachInternalDependencies(Ae,j)};if(se)for(let[De,Te]of E)De.supportsPackage(Ae,h)&&await X(De,Te);else{let De=C.get(Ae.locatorHash);if(!De)throw new Error(\"Assertion failed: The linker should have been found\");let Te=E.get(De);if(!Te)throw new Error(\"Assertion failed: The installer should have been registered\");await X(De,Te)}}for(let[ye,Ae]of W){let se=this.storedPackages.get(ye);if(!se)throw new Error(\"Assertion failed: The package should have been registered\");let X=C.get(se.locatorHash);if(!X)throw new Error(\"Assertion failed: The linker should have been found\");let De=E.get(X);if(!De)throw new Error(\"Assertion failed: The installer should have been registered\");await De.attachExternalDependents(se,Ae)}let ee=new Map;for(let[ye,Ae]of E){let se=await Ae.finalizeInstall();for(let X of se?.records??[])X.buildRequest.skipped?(N.add(X.locator.locatorHash),this.skippedBuilds.has(X.locator.locatorHash)||U.push([X.locator,X.buildRequest.explain])):b.set(X.locator.locatorHash,{buildDirectives:X.buildRequest.directives,buildLocations:X.buildLocations});typeof se?.customData<\"u\"&&ee.set(ye.getCustomDataKey(),se.customData)}if(this.linkersCustomData=ee,await Uu(T),a===\"skip-build\")return;for(let[,ye]of qs(U,([Ae])=>ll(Ae)))ye(r);let ie=new Set(b.keys()),ue=(0,jT.createHash)(\"sha512\");ue.update(process.versions.node),await this.configuration.triggerHook(ye=>ye.globalHashGeneration,this,ye=>{ue.update(\"\\0\"),ue.update(ye)});let le=ue.digest(\"hex\"),me=new Map,pe=ye=>{let Ae=me.get(ye.locatorHash);if(typeof Ae<\"u\")return Ae;let se=this.storedPackages.get(ye.locatorHash);if(typeof se>\"u\")throw new Error(\"Assertion failed: The package should have been registered\");let X=(0,jT.createHash)(\"sha512\");X.update(ye.locatorHash),me.set(ye.locatorHash,\"<recursive>\");for(let De of se.dependencies.values()){let Te=this.storedResolutions.get(De.descriptorHash);if(typeof Te>\"u\")throw new Error(`Assertion failed: The resolution (${ni(this.configuration,De)}) should have been registered`);let mt=this.storedPackages.get(Te);if(typeof mt>\"u\")throw new Error(\"Assertion failed: The package should have been registered\");X.update(pe(mt))}return Ae=X.digest(\"hex\"),me.set(ye.locatorHash,Ae),Ae},Be=(ye,Ae)=>{let se=(0,jT.createHash)(\"sha512\");se.update(le),se.update(pe(ye));for(let X of Ae)se.update(X);return se.digest(\"hex\")},Ce=new Map,g=!1,we=ye=>{let Ae=new Set([ye.locatorHash]);for(let se of Ae){let X=this.storedPackages.get(se);if(!X)throw new Error(\"Assertion failed: The package should have been registered\");for(let De of X.dependencies.values()){let Te=this.storedResolutions.get(De.descriptorHash);if(!Te)throw new Error(`Assertion failed: The resolution (${ni(this.configuration,De)}) should have been registered`);if(Te!==ye.locatorHash&&ie.has(Te))return!1;let mt=this.storedPackages.get(Te);if(!mt)throw new Error(\"Assertion failed: The package should have been registered\");let j=this.tryWorkspaceByLocator(mt);if(j){if(j.anchoredLocator.locatorHash!==ye.locatorHash&&ie.has(j.anchoredLocator.locatorHash))return!1;Ae.add(j.anchoredLocator.locatorHash)}Ae.add(Te)}}return!0};for(;ie.size>0;){let ye=ie.size,Ae=[];for(let se of ie){let X=this.storedPackages.get(se);if(!X)throw new Error(\"Assertion failed: The package should have been registered\");if(!we(X))continue;let De=b.get(X.locatorHash);if(!De)throw new Error(\"Assertion failed: The build directive should have been registered\");let Te=Be(X,De.buildLocations);if(this.storedBuildState.get(X.locatorHash)===Te){Ce.set(X.locatorHash,Te),ie.delete(se);continue}g||(await this.persistInstallStateFile(),g=!0),this.storedBuildState.has(X.locatorHash)?r.reportInfo(8,`${Yr(this.configuration,X)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${Yr(this.configuration,X)} must be built because it never has been before or the last one failed`);let mt=De.buildLocations.map(async j=>{if(!J.isAbsolute(j))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${j})`);for(let rt of De.buildDirectives){let Fe=`# This file contains the result of Yarn building a package (${ll(X)})\n`;switch(rt.type){case 0:Fe+=`# Script name: ${rt.script}\n`;break;case 1:Fe+=`# Script code: ${rt.script}\n`;break}let Ne=null;if(!await ce.mktempPromise(async Ve=>{let ke=J.join(Ve,\"build.log\"),{stdout:it,stderr:Ue}=this.configuration.getSubprocessStreams(ke,{header:Fe,prefix:Yr(this.configuration,X),report:r}),x;try{switch(rt.type){case 0:x=await OR(X,rt.script,[],{cwd:j,project:this,stdin:Ne,stdout:it,stderr:Ue});break;case 1:x=await Gj(X,rt.script,[],{cwd:j,project:this,stdin:Ne,stdout:it,stderr:Ue});break}}catch(y){Ue.write(y.stack),x=1}if(it.end(),Ue.end(),x===0)return!0;ce.detachTemp(Ve);let w=`${Yr(this.configuration,X)} couldn't be built successfully (exit code ${Ht(this.configuration,x,ht.NUMBER)}, logs can be found here: ${Ht(this.configuration,ke,ht.PATH)})`,P=this.optionalBuilds.has(X.locatorHash);return P?r.reportInfo(9,w):r.reportError(9,w),zpe&&r.reportFold(fe.fromPortablePath(ke),ce.readFileSync(ke,\"utf8\")),P}))return!1}return!0});Ae.push(...mt,Promise.allSettled(mt).then(j=>{ie.delete(se),j.every(rt=>rt.status===\"fulfilled\"&&rt.value===!0)&&Ce.set(X.locatorHash,Te)}))}if(await Uu(Ae),ye===ie.size){let se=Array.from(ie).map(X=>{let De=this.storedPackages.get(X);if(!De)throw new Error(\"Assertion failed: The package should have been registered\");return Yr(this.configuration,De)}).join(\", \");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${se})`);break}}this.storedBuildState=Ce,this.skippedBuilds=N}async installWithNewReport(e,r){return(await Ot.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get(\"nodeLinker\");ze.telemetry?.reportInstall(r);let s=!1;if(await e.report.startTimerPromise(\"Project validation\",{skipIfEmpty:!0},async()=>{this.configuration.get(\"enableOfflineMode\")&&e.report.reportWarning(90,\"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it\"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,C)=>{e.report.reportWarning(E,C)},reportError:(E,C)=>{e.report.reportError(E,C),s=!0}})}),s)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,C]of E)for(let S of C)S.status=\"inactive\";let n=J.join(this.cwd,Er.lockfile),c=null;if(e.immutable)try{c=await ce.readFilePromise(n,\"utf8\")}catch(E){throw E.code===\"ENOENT\"?new jt(28,\"The lockfile would have been created by this install, which is explicitly forbidden.\"):E}await e.report.startTimerPromise(\"Resolution step\",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise(\"Post-resolution validation\",{skipIfEmpty:!0},async()=>{Aat(this,e.report);for(let[,E]of a)for(let[,C]of E)for(let S of C)if(S.userProvided){let b=Ht(this.configuration,S,ht.PACKAGE_EXTENSION);switch(S.status){case\"inactive\":e.report.reportWarning(68,`${b}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case\"redundant\":e.report.reportWarning(69,`${b}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(c!==null){let E=Ed(c,this.generateLockfile());if(E!==c){let C=hde(n,n,c,E,void 0,void 0,{maxEditLength:100});if(C){e.report.reportSeparator();for(let S of C.hunks){e.report.reportInfo(null,`@@ -${S.oldStart},${S.oldLines} +${S.newStart},${S.newLines} @@`);for(let b of S.lines)b.startsWith(\"+\")?e.report.reportError(28,Ht(this.configuration,b,ht.ADDED)):b.startsWith(\"-\")?e.report.reportError(28,Ht(this.configuration,b,ht.REMOVED)):e.report.reportInfo(null,Ht(this.configuration,b,\"grey\"))}e.report.reportSeparator()}throw new jt(28,\"The lockfile would have been modified by this install, which is explicitly forbidden.\")}}});for(let E of a.values())for(let[,C]of E)for(let S of C)S.userProvided&&S.status===\"active\"&&ze.telemetry?.reportPackageExtension(Zd(S,ht.PACKAGE_EXTENSION));await e.report.startTimerPromise(\"Fetch step\",async()=>{await this.fetchEverything(e)});let f=e.immutable?[...new Set(this.configuration.get(\"immutablePatterns\"))].sort():[],p=await Promise.all(f.map(async E=>SQ(E,{cwd:this.cwd})));(typeof e.persistProject>\"u\"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise(\"Link step\",async()=>{if(e.mode===\"update-lockfile\"){e.report.reportWarning(73,`Skipped due to ${Ht(this.configuration,\"mode=update-lockfile\",ht.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(f.map(async C=>SQ(C,{cwd:this.cwd})));for(let C=0;C<f.length;++C)p[C]!==E[C]&&e.report.reportError(64,`The checksum for ${f[C]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile();let h=!1;await e.report.startTimerPromise(\"Post-install validation\",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,C)=>{e.report.reportWarning(E,C)},reportError:(E,C)=>{e.report.reportError(E,C),h=!0}})}),!h&&await this.configuration.triggerHook(E=>E.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,c]of this.storedResolutions.entries()){let f=e.get(c);f||e.set(c,f=new Set),f.add(n)}let r={},{cacheKey:s}=Kr.getCacheKey(this.configuration);r.__metadata={version:qT,cacheKey:s};for(let[n,c]of e.entries()){let f=this.originalPackages.get(n);if(!f)continue;let p=[];for(let C of c){let S=this.storedDescriptors.get(C);if(!S)throw new Error(\"Assertion failed: The descriptor should have been registered\");p.push(S)}let h=p.map(C=>al(C)).sort().join(\", \"),E=new Ut;E.version=f.linkType===\"HARD\"?f.version:\"0.0.0-use.local\",E.languageName=f.languageName,E.dependencies=new Map(f.dependencies),E.peerDependencies=new Map(f.peerDependencies),E.dependenciesMeta=new Map(f.dependenciesMeta),E.peerDependenciesMeta=new Map(f.peerDependenciesMeta),E.bin=new Map(f.bin),r[h]={...E.exportTo({},{compatibilityMode:!1}),linkType:f.linkType.toLowerCase(),resolution:ll(f),checksum:this.storedChecksums.get(f.locatorHash),conditions:f.conditions||void 0}}return`${[`# This file is generated by running \"yarn install\" inside your project.\n`,`# Manual changes might be lost - proceed with caution!\n`].join(\"\")}\n`+nl(r)}async persistLockfile(){let e=J.join(this.cwd,Er.lockfile),r=\"\";try{r=await ce.readFilePromise(e,\"utf8\")}catch{}let s=this.generateLockfile(),a=Ed(r,s);a!==r&&(await ce.writeFilePromise(e,a),this.lockFileChecksum=yde(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let c of Object.values(YG))e.push(...c);let r=Kd(this,e),s=VG.default.serialize(r),a=cs(s);if(this.installStateChecksum===a)return;let n=this.configuration.get(\"installStatePath\");await ce.mkdirPromise(J.dirname(n),{recursive:!0}),await ce.writeFilePromise(n,await lat(s)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:s=!0}={}){let a=this.configuration.get(\"installStatePath\"),n;try{let c=await cat(await ce.readFilePromise(a));n=VG.default.deserialize(c),this.installStateChecksum=cs(c)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<\"u\"&&(this.linkersCustomData=n.linkersCustomData),s&&Object.assign(this,Kd(n,YG.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,Kd(n,YG.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ki}),await this.persistInstallStateFile()}async persist(){let e=(0,GT.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get(\"enableGlobalCache\"))return null;let s=new Set([\".gitignore\"]);if(!j8(e.cwd,this.cwd)||!await ce.existsPromise(e.cwd))return null;let a=[];for(let c of await ce.readdirPromise(e.cwd)){if(s.has(c))continue;let f=J.resolve(e.cwd,c);e.markedFiles.has(f)||(e.immutable?r.reportError(56,`${Ht(this.configuration,J.basename(f),\"magenta\")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(ce.lstatPromise(f).then(async p=>(await ce.removePromise(f),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((c,f)=>c+f,0)}}}});function pat(t){let s=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),c=n+a,f=t.state.lastTips??s*864e5,p=f+864e5+8*36e5-t.timeZone,h=c<=t.timeNow,E=p<=t.timeNow,C=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(C={},C.lastUpdate=h?t.timeNow:n,C.lastTips=f,C.blocks=h?{}:t.state.blocks,C.displayedTips=t.state.displayedTips),{nextState:C,triggerUpdate:h,triggerTips:E,nextTips:E?s*864e5:f}}var XI,Cde=Ze(()=>{Dt();yv();I0();AR();bc();Tp();XI=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let s=this.getRegistryPath();this.isNew=!ce.existsSync(s),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),s=f=>f&&fn?Xf(fn,f):!1,a=e.map((f,p)=>p).filter(f=>e[f]&&s(e[f]?.selector));if(a.length===0)return null;let n=a.filter(f=>!r.has(f));if(n.length===0){let f=Math.floor(a.length*.2);this.displayedTips=f>0?this.displayedTips.slice(-f):[],n=a.filter(p=>!r.has(p))}let c=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(c),this.commitTips(),e[c]}reportVersion(e){this.reportValue(\"version\",e.replace(/-git\\..*/,\"-git\"))}reportCommandName(e){this.reportValue(\"commandName\",e||\"<none>\")}reportPluginName(e){this.reportValue(\"pluginName\",e)}reportProject(e){this.reportEnumerator(\"projectCount\",e)}reportInstall(e){this.reportHit(\"installCount\",e)}reportPackageExtension(e){this.reportValue(\"packageExtension\",e)}reportWorkspaceCount(e){this.reportValue(\"workspaceCount\",String(e))}reportDependencyCount(e){this.reportValue(\"dependencyCount\",String(e))}reportValue(e,r){Pp(this.values,e).add(r)}reportEnumerator(e,r){Pp(this.enumerators,e).add(cs(r))}reportHit(e,r=\"*\"){let s=j4(this.hits,e),a=Yl(s,r,()=>0);s.set(r,a+1)}getRegistryPath(){let e=this.configuration.get(\"globalFolder\");return J.join(e,\"telemetry.json\")}sendReport(e){let r=this.getRegistryPath(),s;try{s=ce.readJsonSync(r)}catch{s={}}let{nextState:a,triggerUpdate:n,triggerTips:c,nextTips:f}=pat({state:s,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get(\"telemetryInterval\")});if(this.nextTips=f,this.displayedTips=s.displayedTips??[],a!==null)try{ce.mkdirSync(J.dirname(r),{recursive:!0}),ce.writeJsonSync(r,a)}catch{return!1}if(c&&this.configuration.get(\"enableTips\")&&(this.shouldShowTips=!0),n){let p=s.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=C=>aj(h,C,{configuration:this.configuration}).catch(()=>{});for(let[C,S]of Object.entries(s.blocks??{})){if(Object.keys(S).length===0)continue;let b=S;b.userId=C,b.reportType=\"primary\";for(let N of Object.keys(b.enumerators??{}))b.enumerators[N]=b.enumerators[N].length;E(b);let I=new Map,T=20;for(let[N,U]of Object.entries(b.values))U.length>0&&I.set(N,U.slice(0,T));for(;I.size>0;){let N={};N.userId=C,N.reportType=\"secondary\",N.metrics={};for(let[U,W]of I)N.metrics[U]=W.shift(),W.length===0&&I.delete(U);E(N)}}}}return!0}applyChanges(){let e=this.getRegistryPath(),r;try{r=ce.readJsonSync(e)}catch{r={}}let s=this.configuration.get(\"telemetryUserId\")??\"*\",a=r.blocks=r.blocks??{},n=a[s]=a[s]??{};for(let c of this.hits.keys()){let f=n.hits=n.hits??{},p=f[c]=f[c]??{};for(let[h,E]of this.hits.get(c))p[h]=(p[h]??0)+E}for(let c of[\"values\",\"enumerators\"])for(let f of this[c].keys()){let p=n[c]=n[c]??{};p[f]=[...new Set([...p[f]??[],...this[c].get(f)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),ce.mkdirSync(J.dirname(e),{recursive:!0}),ce.writeJsonSync(e,r)}startBuffer(){process.on(\"exit\",()=>{try{this.applyChanges()}catch{}})}}});var jv={};Vt(jv,{BuildDirectiveType:()=>UT,CACHE_CHECKPOINT:()=>TG,CACHE_VERSION:()=>MT,Cache:()=>Kr,Configuration:()=>ze,DEFAULT_RC_FILENAME:()=>hj,FormatType:()=>ope,InstallMode:()=>$l,LEGACY_PLUGINS:()=>ov,LOCKFILE_VERSION:()=>qT,LegacyMigrationResolver:()=>KI,LightReport:()=>lA,LinkType:()=>VE,LockfileResolver:()=>zI,Manifest:()=>Ut,MessageName:()=>Br,MultiFetcher:()=>aI,PackageExtensionStatus:()=>Y4,PackageExtensionType:()=>W4,PeerWarningType:()=>WT,Project:()=>Rt,Report:()=>Ao,ReportError:()=>jt,SettingsType:()=>wI,StreamReport:()=>Ot,TAG_REGEXP:()=>Mp,TelemetryManager:()=>XI,ThrowReport:()=>ki,VirtualFetcher:()=>lI,WindowsLinkType:()=>ER,Workspace:()=>ZI,WorkspaceFetcher:()=>cI,WorkspaceResolver:()=>Ei,YarnVersion:()=>fn,execUtils:()=>qr,folderUtils:()=>NQ,formatUtils:()=>he,hashUtils:()=>Nn,httpUtils:()=>ln,miscUtils:()=>je,nodeUtils:()=>fs,parseMessageName:()=>jx,reportOptionDeprecations:()=>SI,scriptUtils:()=>In,semverUtils:()=>Fr,stringifyMessageName:()=>Yf,structUtils:()=>G,tgzUtils:()=>ps,treeUtils:()=>xs});var Ge=Ze(()=>{gR();OQ();xc();I0();AR();bc();hR();Vj();Tp();Wo();$ge();ode();FG();av();av();cde();NG();ude();OG();oI();Gx();Q8();Ide();Rc();Ev();Cde();qG();T8();F8();tm();WG();yv();ule()});var Pde=_((OHt,qv)=>{\"use strict\";var gat=process.env.TERM_PROGRAM===\"Hyper\",dat=process.platform===\"win32\",vde=process.platform===\"linux\",zG={ballotDisabled:\"\\u2612\",ballotOff:\"\\u2610\",ballotOn:\"\\u2611\",bullet:\"\\u2022\",bulletWhite:\"\\u25E6\",fullBlock:\"\\u2588\",heart:\"\\u2764\",identicalTo:\"\\u2261\",line:\"\\u2500\",mark:\"\\u203B\",middot:\"\\xB7\",minus:\"\\uFF0D\",multiplication:\"\\xD7\",obelus:\"\\xF7\",pencilDownRight:\"\\u270E\",pencilRight:\"\\u270F\",pencilUpRight:\"\\u2710\",percent:\"%\",pilcrow2:\"\\u2761\",pilcrow:\"\\xB6\",plusMinus:\"\\xB1\",section:\"\\xA7\",starsOff:\"\\u2606\",starsOn:\"\\u2605\",upDownArrow:\"\\u2195\"},Sde=Object.assign({},zG,{check:\"\\u221A\",cross:\"\\xD7\",ellipsisLarge:\"...\",ellipsis:\"...\",info:\"i\",question:\"?\",questionSmall:\"?\",pointer:\">\",pointerSmall:\"\\xBB\",radioOff:\"( )\",radioOn:\"(*)\",warning:\"\\u203C\"}),Dde=Object.assign({},zG,{ballotCross:\"\\u2718\",check:\"\\u2714\",cross:\"\\u2716\",ellipsisLarge:\"\\u22EF\",ellipsis:\"\\u2026\",info:\"\\u2139\",question:\"?\",questionFull:\"\\uFF1F\",questionSmall:\"\\uFE56\",pointer:vde?\"\\u25B8\":\"\\u276F\",pointerSmall:vde?\"\\u2023\":\"\\u203A\",radioOff:\"\\u25EF\",radioOn:\"\\u25C9\",warning:\"\\u26A0\"});qv.exports=dat&&!gat?Sde:Dde;Reflect.defineProperty(qv.exports,\"common\",{enumerable:!1,value:zG});Reflect.defineProperty(qv.exports,\"windows\",{enumerable:!1,value:Sde});Reflect.defineProperty(qv.exports,\"other\",{enumerable:!1,value:Dde})});var Ju=_((LHt,ZG)=>{\"use strict\";var mat=t=>t!==null&&typeof t==\"object\"&&!Array.isArray(t),yat=/[\\u001b\\u009b][[\\]#;?()]*(?:(?:(?:[^\\W_]*;?[^\\W_]*)\\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,bde=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};\"FORCE_COLOR\"in process.env&&(t.enabled=process.env.FORCE_COLOR!==\"0\");let e=n=>{let c=n.open=`\\x1B[${n.codes[0]}m`,f=n.close=`\\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\\\u001b\\\\[${n.codes[1]}m`,\"g\");return n.wrap=(h,E)=>{h.includes(f)&&(h=h.replace(p,f+c));let C=c+h+f;return E?C.replace(/\\r*\\n/g,`${f}$&${c}`):C},n},r=(n,c,f)=>typeof n==\"function\"?n(c):n.wrap(c,f),s=(n,c)=>{if(n===\"\"||n==null)return\"\";if(t.enabled===!1)return n;if(t.visible===!1)return\"\";let f=\"\"+n,p=f.includes(`\n`),h=c.length;for(h>0&&c.includes(\"unstyle\")&&(c=[...new Set([\"unstyle\",...c])].reverse());h-- >0;)f=r(t.styles[c[h]],f,p);return f},a=(n,c,f)=>{t.styles[n]=e({name:n,codes:c}),(t.keys[f]||(t.keys[f]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>s(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a(\"reset\",[0,0],\"modifier\"),a(\"bold\",[1,22],\"modifier\"),a(\"dim\",[2,22],\"modifier\"),a(\"italic\",[3,23],\"modifier\"),a(\"underline\",[4,24],\"modifier\"),a(\"inverse\",[7,27],\"modifier\"),a(\"hidden\",[8,28],\"modifier\"),a(\"strikethrough\",[9,29],\"modifier\"),a(\"black\",[30,39],\"color\"),a(\"red\",[31,39],\"color\"),a(\"green\",[32,39],\"color\"),a(\"yellow\",[33,39],\"color\"),a(\"blue\",[34,39],\"color\"),a(\"magenta\",[35,39],\"color\"),a(\"cyan\",[36,39],\"color\"),a(\"white\",[37,39],\"color\"),a(\"gray\",[90,39],\"color\"),a(\"grey\",[90,39],\"color\"),a(\"bgBlack\",[40,49],\"bg\"),a(\"bgRed\",[41,49],\"bg\"),a(\"bgGreen\",[42,49],\"bg\"),a(\"bgYellow\",[43,49],\"bg\"),a(\"bgBlue\",[44,49],\"bg\"),a(\"bgMagenta\",[45,49],\"bg\"),a(\"bgCyan\",[46,49],\"bg\"),a(\"bgWhite\",[47,49],\"bg\"),a(\"blackBright\",[90,39],\"bright\"),a(\"redBright\",[91,39],\"bright\"),a(\"greenBright\",[92,39],\"bright\"),a(\"yellowBright\",[93,39],\"bright\"),a(\"blueBright\",[94,39],\"bright\"),a(\"magentaBright\",[95,39],\"bright\"),a(\"cyanBright\",[96,39],\"bright\"),a(\"whiteBright\",[97,39],\"bright\"),a(\"bgBlackBright\",[100,49],\"bgBright\"),a(\"bgRedBright\",[101,49],\"bgBright\"),a(\"bgGreenBright\",[102,49],\"bgBright\"),a(\"bgYellowBright\",[103,49],\"bgBright\"),a(\"bgBlueBright\",[104,49],\"bgBright\"),a(\"bgMagentaBright\",[105,49],\"bgBright\"),a(\"bgCyanBright\",[106,49],\"bgBright\"),a(\"bgWhiteBright\",[107,49],\"bgBright\"),t.ansiRegex=yat,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n==\"string\"&&n!==\"\"&&t.ansiRegex.test(n)),t.alias=(n,c)=>{let f=typeof c==\"string\"?t[c]:c;if(typeof f!=\"function\")throw new TypeError(\"Expected alias to be the name of an existing color (string) or a function\");f.stack||(Reflect.defineProperty(f,\"name\",{value:n}),t.styles[n]=f,f.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>s(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(f.stack):f.stack,p}})},t.theme=n=>{if(!mat(n))throw new TypeError(\"Expected theme to be an object\");for(let c of Object.keys(n))t.alias(c,n[c]);return t},t.alias(\"unstyle\",n=>typeof n==\"string\"&&n!==\"\"?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,\"\")):\"\"),t.alias(\"noop\",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=Pde(),t.define=a,t};ZG.exports=bde();ZG.exports.create=bde});var Xo=_(pn=>{\"use strict\";var Eat=Object.prototype.toString,jc=Ju(),xde=!1,XG=[],kde={yellow:\"blue\",cyan:\"red\",green:\"magenta\",black:\"white\",blue:\"yellow\",red:\"cyan\",magenta:\"green\",white:\"black\"};pn.longest=(t,e)=>t.reduce((r,s)=>Math.max(r,e?s[e].length:s.length),0);pn.hasColor=t=>!!t&&jc.hasColor(t);var VT=pn.isObject=t=>t!==null&&typeof t==\"object\"&&!Array.isArray(t);pn.nativeType=t=>Eat.call(t).slice(8,-1).toLowerCase().replace(/\\s/g,\"\");pn.isAsyncFn=t=>pn.nativeType(t)===\"asyncfunction\";pn.isPrimitive=t=>t!=null&&typeof t!=\"object\"&&typeof t!=\"function\";pn.resolve=(t,e,...r)=>typeof e==\"function\"?e.call(t,...r):e;pn.scrollDown=(t=[])=>[...t.slice(1),t[0]];pn.scrollUp=(t=[])=>[t.pop(),...t];pn.reorder=(t=[])=>{let e=t.slice();return e.sort((r,s)=>r.index>s.index?1:r.index<s.index?-1:0),e};pn.swap=(t,e,r)=>{let s=t.length,a=r===s?0:r<0?s-1:r,n=t[e];t[e]=t[a],t[a]=n};pn.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize==\"function\"&&(r=t.getWindowSize()[0]),process.platform===\"win32\"?r-1:r};pn.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize==\"function\"&&(r=t.getWindowSize()[1]),r};pn.wordWrap=(t,e={})=>{if(!t)return t;typeof e==\"number\"&&(e={width:e});let{indent:r=\"\",newline:s=`\n`+r,width:a=80}=e,n=(s+r).match(/[^\\S\\n]/g)||[];a-=n.length;let c=`.{1,${a}}([\\\\s\\\\u200B]+|$)|[^\\\\s\\\\u200B]+?([\\\\s\\\\u200B]+|$)`,f=t.trim(),p=new RegExp(c,\"g\"),h=f.match(p)||[];return h=h.map(E=>E.replace(/\\n$/,\"\")),e.padEnd&&(h=h.map(E=>E.padEnd(a,\" \"))),e.padStart&&(h=h.map(E=>E.padStart(a,\" \"))),r+h.join(s)};pn.unmute=t=>{let e=t.stack.find(s=>jc.keys.color.includes(s));return e?jc[e]:t.stack.find(s=>s.slice(2)===\"bg\")?jc[e.slice(2)]:s=>s};pn.pascal=t=>t?t[0].toUpperCase()+t.slice(1):\"\";pn.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(s=>jc.keys.color.includes(s));if(e){let s=jc[\"bg\"+pn.pascal(e)];return s?s.black:t}let r=t.stack.find(s=>s.slice(0,2)===\"bg\");return r?jc[r.slice(2).toLowerCase()]||t:jc.none};pn.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(s=>jc.keys.color.includes(s)),r=t.stack.find(s=>s.slice(0,2)===\"bg\");if(e&&!r)return jc[kde[e]||e];if(r){let s=r.slice(2).toLowerCase(),a=kde[s];return a&&jc[\"bg\"+pn.pascal(a)]||t}return jc.none};pn.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),s=e>=12?\"pm\":\"am\";e=e%12;let a=e===0?12:e,n=r<10?\"0\"+r:r;return a+\":\"+n+\" \"+s};pn.set=(t={},e=\"\",r)=>e.split(\".\").reduce((s,a,n,c)=>{let f=c.length-1>n?s[a]||{}:r;return!pn.isObject(f)&&n<c.length-1&&(f={}),s[a]=f},t);pn.get=(t={},e=\"\",r)=>{let s=t[e]==null?e.split(\".\").reduce((a,n)=>a&&a[n],t):t[e];return s??r};pn.mixin=(t,e)=>{if(!VT(t))return e;if(!VT(e))return t;for(let r of Object.keys(e)){let s=Object.getOwnPropertyDescriptor(e,r);if(s.hasOwnProperty(\"value\"))if(t.hasOwnProperty(r)&&VT(s.value)){let a=Object.getOwnPropertyDescriptor(t,r);VT(a.value)?t[r]=pn.merge({},t[r],e[r]):Reflect.defineProperty(t,r,s)}else Reflect.defineProperty(t,r,s);else Reflect.defineProperty(t,r,s)}return t};pn.merge=(...t)=>{let e={};for(let r of t)pn.mixin(e,r);return e};pn.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let s of Object.keys(r)){let a=r[s];typeof a==\"function\"?pn.define(t,s,a.bind(e)):pn.define(t,s,a)}};pn.onExit=t=>{let e=(r,s)=>{xde||(xde=!0,XG.forEach(a=>a()),r===!0&&process.exit(128+s))};XG.length===0&&(process.once(\"SIGTERM\",e.bind(null,!0,15)),process.once(\"SIGINT\",e.bind(null,!0,2)),process.once(\"exit\",e)),XG.push(t)};pn.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};pn.defineExport=(t,e,r)=>{let s;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){s=a},get(){return s?s():r()}})}});var Qde=_(rC=>{\"use strict\";rC.ctrl={a:\"first\",b:\"backward\",c:\"cancel\",d:\"deleteForward\",e:\"last\",f:\"forward\",g:\"reset\",i:\"tab\",k:\"cutForward\",l:\"reset\",n:\"newItem\",m:\"cancel\",j:\"submit\",p:\"search\",r:\"remove\",s:\"save\",u:\"undo\",w:\"cutLeft\",x:\"toggleCursor\",v:\"paste\"};rC.shift={up:\"shiftUp\",down:\"shiftDown\",left:\"shiftLeft\",right:\"shiftRight\",tab:\"prev\"};rC.fn={up:\"pageUp\",down:\"pageDown\",left:\"pageLeft\",right:\"pageRight\",delete:\"deleteForward\"};rC.option={b:\"backward\",f:\"forward\",d:\"cutRight\",left:\"cutLeft\",up:\"altUp\",down:\"altDown\"};rC.keys={pageup:\"pageUp\",pagedown:\"pageDown\",home:\"home\",end:\"end\",cancel:\"cancel\",delete:\"deleteForward\",backspace:\"delete\",down:\"down\",enter:\"submit\",escape:\"cancel\",left:\"left\",space:\"space\",number:\"number\",return:\"submit\",right:\"right\",tab:\"next\",up:\"up\"}});var Fde=_((_Ht,Tde)=>{\"use strict\";var Rde=Ie(\"readline\"),Iat=Qde(),Cat=/^(?:\\x1b)([a-zA-Z0-9])$/,wat=/^(?:\\x1b+)(O|N|\\[|\\[\\[)(?:(\\d+)(?:;(\\d+))?([~^$])|(?:1;)?(\\d+)?([a-zA-Z]))/,Bat={OP:\"f1\",OQ:\"f2\",OR:\"f3\",OS:\"f4\",\"[11~\":\"f1\",\"[12~\":\"f2\",\"[13~\":\"f3\",\"[14~\":\"f4\",\"[[A\":\"f1\",\"[[B\":\"f2\",\"[[C\":\"f3\",\"[[D\":\"f4\",\"[[E\":\"f5\",\"[15~\":\"f5\",\"[17~\":\"f6\",\"[18~\":\"f7\",\"[19~\":\"f8\",\"[20~\":\"f9\",\"[21~\":\"f10\",\"[23~\":\"f11\",\"[24~\":\"f12\",\"[A\":\"up\",\"[B\":\"down\",\"[C\":\"right\",\"[D\":\"left\",\"[E\":\"clear\",\"[F\":\"end\",\"[H\":\"home\",OA:\"up\",OB:\"down\",OC:\"right\",OD:\"left\",OE:\"clear\",OF:\"end\",OH:\"home\",\"[1~\":\"home\",\"[2~\":\"insert\",\"[3~\":\"delete\",\"[4~\":\"end\",\"[5~\":\"pageup\",\"[6~\":\"pagedown\",\"[[5~\":\"pageup\",\"[[6~\":\"pagedown\",\"[7~\":\"home\",\"[8~\":\"end\",\"[a\":\"up\",\"[b\":\"down\",\"[c\":\"right\",\"[d\":\"left\",\"[e\":\"clear\",\"[2$\":\"insert\",\"[3$\":\"delete\",\"[5$\":\"pageup\",\"[6$\":\"pagedown\",\"[7$\":\"home\",\"[8$\":\"end\",Oa:\"up\",Ob:\"down\",Oc:\"right\",Od:\"left\",Oe:\"clear\",\"[2^\":\"insert\",\"[3^\":\"delete\",\"[5^\":\"pageup\",\"[6^\":\"pagedown\",\"[7^\":\"home\",\"[8^\":\"end\",\"[Z\":\"tab\"};function vat(t){return[\"[a\",\"[b\",\"[c\",\"[d\",\"[e\",\"[2$\",\"[3$\",\"[5$\",\"[6$\",\"[7$\",\"[8$\",\"[Z\"].includes(t)}function Sat(t){return[\"Oa\",\"Ob\",\"Oc\",\"Od\",\"Oe\",\"[2^\",\"[3^\",\"[5^\",\"[6^\",\"[7^\",\"[8^\"].includes(t)}var JT=(t=\"\",e={})=>{let r,s={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t=\"\\x1B\"+String(t)):t=String(t):t!==void 0&&typeof t!=\"string\"?t=String(t):t||(t=s.sequence||\"\"),s.sequence=s.sequence||t||s.name,t===\"\\r\")s.raw=void 0,s.name=\"return\";else if(t===`\n`)s.name=\"enter\";else if(t===\"\t\")s.name=\"tab\";else if(t===\"\\b\"||t===\"\\x7F\"||t===\"\\x1B\\x7F\"||t===\"\\x1B\\b\")s.name=\"backspace\",s.meta=t.charAt(0)===\"\\x1B\";else if(t===\"\\x1B\"||t===\"\\x1B\\x1B\")s.name=\"escape\",s.meta=t.length===2;else if(t===\" \"||t===\"\\x1B \")s.name=\"space\",s.meta=t.length===2;else if(t<=\"\u001a\")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>=\"0\"&&t<=\"9\")s.name=\"number\";else if(t.length===1&&t>=\"a\"&&t<=\"z\")s.name=t;else if(t.length===1&&t>=\"A\"&&t<=\"Z\")s.name=t.toLowerCase(),s.shift=!0;else if(r=Cat.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(r[1]);else if(r=wat.exec(t)){let a=[...t];a[0]===\"\\x1B\"&&a[1]===\"\\x1B\"&&(s.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(\"\"),c=(r[3]||r[5]||1)-1;s.ctrl=!!(c&4),s.meta=!!(c&10),s.shift=!!(c&1),s.code=n,s.name=Bat[n],s.shift=vat(n)||s.shift,s.ctrl=Sat(n)||s.ctrl}return s};JT.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error(\"Invalid stream passed\");let s=Rde.createInterface({terminal:!0,input:r});Rde.emitKeypressEvents(r,s);let a=(f,p)=>e(f,JT(f,p),s),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on(\"keypress\",a),s.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener(\"keypress\",a),s.pause(),s.close()}};JT.action=(t,e,r)=>{let s={...Iat,...r};return e.ctrl?(e.action=s.ctrl[e.name],e):e.option&&s.option?(e.action=s.option[e.name],e):e.shift?(e.action=s.shift[e.name],e):(e.action=s.keys[e.name],e)};Tde.exports=JT});var Ode=_((HHt,Nde)=>{\"use strict\";Nde.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(e)for(let r of Object.keys(e)){let s=e[r];typeof s==\"number\"&&(s={interval:s}),Dat(t,r,s)}};function Dat(t,e,r={}){let s=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;s.frames=r.frames||[],s.loading=!0;let n=setInterval(()=>{s.ms=Date.now()-s.start,s.tick++,t.render()},a);return s.stop=()=>{s.loading=!1,clearInterval(n)},Reflect.defineProperty(s,\"interval\",{value:n}),t.once(\"close\",()=>s.stop()),s.stop}});var Mde=_((jHt,Lde)=>{\"use strict\";var{define:Pat,width:bat}=Xo(),$G=class{constructor(e){let r=e.options;Pat(this,\"_prompt\",e),this.type=e.type,this.name=e.name,this.message=\"\",this.header=\"\",this.footer=\"\",this.error=\"\",this.hint=\"\",this.input=\"\",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt=\"\",this.buffer=\"\",this.width=bat(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r==\"function\"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading==\"boolean\"?this._loading:this.loadingChoices?\"choices\":!1}get status(){return this.cancelled?\"cancelled\":this.submitted?\"submitted\":\"pending\"}};Lde.exports=$G});var _de=_((GHt,Ude)=>{\"use strict\";var eq=Xo(),ho=Ju(),tq={default:ho.noop,noop:ho.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||eq.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||eq.complement(this.primary)},primary:ho.cyan,success:ho.green,danger:ho.magenta,strong:ho.bold,warning:ho.yellow,muted:ho.dim,disabled:ho.gray,dark:ho.dim.gray,underline:ho.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};tq.merge=(t={})=>{t.styles&&typeof t.styles.enabled==\"boolean\"&&(ho.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible==\"boolean\"&&(ho.visible=t.styles.visible);let e=eq.merge({},tq,t.styles);delete e.merge;for(let r of Object.keys(ho))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>ho[r]});for(let r of Object.keys(ho.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>ho[r]});return e};Ude.exports=tq});var jde=_((qHt,Hde)=>{\"use strict\";var rq=process.platform===\"win32\",zp=Ju(),xat=Xo(),nq={...zp.symbols,upDownDoubleArrow:\"\\u21D5\",upDownDoubleArrow2:\"\\u2B0D\",upDownArrow:\"\\u2195\",asterisk:\"*\",asterism:\"\\u2042\",bulletWhite:\"\\u25E6\",electricArrow:\"\\u2301\",ellipsisLarge:\"\\u22EF\",ellipsisSmall:\"\\u2026\",fullBlock:\"\\u2588\",identicalTo:\"\\u2261\",indicator:zp.symbols.check,leftAngle:\"\\u2039\",mark:\"\\u203B\",minus:\"\\u2212\",multiplication:\"\\xD7\",obelus:\"\\xF7\",percent:\"%\",pilcrow:\"\\xB6\",pilcrow2:\"\\u2761\",pencilUpRight:\"\\u2710\",pencilDownRight:\"\\u270E\",pencilRight:\"\\u270F\",plus:\"+\",plusMinus:\"\\xB1\",pointRight:\"\\u261E\",rightAngle:\"\\u203A\",section:\"\\xA7\",hexagon:{off:\"\\u2B21\",on:\"\\u2B22\",disabled:\"\\u2B22\"},ballot:{on:\"\\u2611\",off:\"\\u2610\",disabled:\"\\u2612\"},stars:{on:\"\\u2605\",off:\"\\u2606\",disabled:\"\\u2606\"},folder:{on:\"\\u25BC\",off:\"\\u25B6\",disabled:\"\\u25B6\"},prefix:{pending:zp.symbols.question,submitted:zp.symbols.check,cancelled:zp.symbols.cross},separator:{pending:zp.symbols.pointerSmall,submitted:zp.symbols.middot,cancelled:zp.symbols.middot},radio:{off:rq?\"( )\":\"\\u25EF\",on:rq?\"(*)\":\"\\u25C9\",disabled:rq?\"(|)\":\"\\u24BE\"},numbers:[\"\\u24EA\",\"\\u2460\",\"\\u2461\",\"\\u2462\",\"\\u2463\",\"\\u2464\",\"\\u2465\",\"\\u2466\",\"\\u2467\",\"\\u2468\",\"\\u2469\",\"\\u246A\",\"\\u246B\",\"\\u246C\",\"\\u246D\",\"\\u246E\",\"\\u246F\",\"\\u2470\",\"\\u2471\",\"\\u2472\",\"\\u2473\",\"\\u3251\",\"\\u3252\",\"\\u3253\",\"\\u3254\",\"\\u3255\",\"\\u3256\",\"\\u3257\",\"\\u3258\",\"\\u3259\",\"\\u325A\",\"\\u325B\",\"\\u325C\",\"\\u325D\",\"\\u325E\",\"\\u325F\",\"\\u32B1\",\"\\u32B2\",\"\\u32B3\",\"\\u32B4\",\"\\u32B5\",\"\\u32B6\",\"\\u32B7\",\"\\u32B8\",\"\\u32B9\",\"\\u32BA\",\"\\u32BB\",\"\\u32BC\",\"\\u32BD\",\"\\u32BE\",\"\\u32BF\"]};nq.merge=t=>{let e=xat.merge({},zp.symbols,nq,t.symbols);return delete e.merge,e};Hde.exports=nq});var qde=_((WHt,Gde)=>{\"use strict\";var kat=_de(),Qat=jde(),Rat=Xo();Gde.exports=t=>{t.options=Rat.merge({},t.options.theme,t.options),t.symbols=Qat.merge(t.options),t.styles=kat.merge(t.options)}});var Kde=_((Vde,Jde)=>{\"use strict\";var Wde=process.env.TERM_PROGRAM===\"Apple_Terminal\",Tat=Ju(),iq=Xo(),Ku=Jde.exports=Vde,Ui=\"\\x1B[\",Yde=\"\\x07\",sq=!1,j0=Ku.code={bell:Yde,beep:Yde,beginning:`${Ui}G`,down:`${Ui}J`,esc:Ui,getPosition:`${Ui}6n`,hide:`${Ui}?25l`,line:`${Ui}2K`,lineEnd:`${Ui}K`,lineStart:`${Ui}1K`,restorePosition:Ui+(Wde?\"8\":\"u\"),savePosition:Ui+(Wde?\"7\":\"s\"),screen:`${Ui}2J`,show:`${Ui}?25h`,up:`${Ui}1J`},wm=Ku.cursor={get hidden(){return sq},hide(){return sq=!0,j0.hide},show(){return sq=!1,j0.show},forward:(t=1)=>`${Ui}${t}C`,backward:(t=1)=>`${Ui}${t}D`,nextLine:(t=1)=>`${Ui}E`.repeat(t),prevLine:(t=1)=>`${Ui}F`.repeat(t),up:(t=1)=>t?`${Ui}${t}A`:\"\",down:(t=1)=>t?`${Ui}${t}B`:\"\",right:(t=1)=>t?`${Ui}${t}C`:\"\",left:(t=1)=>t?`${Ui}${t}D`:\"\",to(t,e){return e?`${Ui}${e+1};${t+1}H`:`${Ui}${t+1}G`},move(t=0,e=0){let r=\"\";return r+=t<0?wm.left(-t):t>0?wm.right(t):\"\",r+=e<0?wm.up(-e):e>0?wm.down(e):\"\",r},restore(t={}){let{after:e,cursor:r,initial:s,input:a,prompt:n,size:c,value:f}=t;if(s=iq.isPrimitive(s)?String(s):\"\",a=iq.isPrimitive(a)?String(a):\"\",f=iq.isPrimitive(f)?String(f):\"\",c){let p=Ku.cursor.up(c)+Ku.cursor.to(n.length),h=a.length-r;return h>0&&(p+=Ku.cursor.left(h)),p}if(f||e){let p=!a&&s?-s.length:-a.length+r;return e&&(p-=e.length),a===\"\"&&s&&!n.includes(s)&&(p+=s.length),Ku.cursor.move(p)}}},oq=Ku.erase={screen:j0.screen,up:j0.up,down:j0.down,line:j0.line,lineEnd:j0.lineEnd,lineStart:j0.lineStart,lines(t){let e=\"\";for(let r=0;r<t;r++)e+=Ku.erase.line+(r<t-1?Ku.cursor.up(1):\"\");return t&&(e+=Ku.code.beginning),e}};Ku.clear=(t=\"\",e=process.stdout.columns)=>{if(!e)return oq.line+wm.to(0);let r=n=>[...Tat.unstyle(n)].length,s=t.split(/\\r?\\n/),a=0;for(let n of s)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(oq.line+wm.prevLine()).repeat(a-1)+oq.line+wm.to(0)}});var nC=_((YHt,Zde)=>{\"use strict\";var Fat=Ie(\"events\"),zde=Ju(),aq=Fde(),Nat=Ode(),Oat=Mde(),Lat=qde(),pl=Xo(),Bm=Kde(),lq=class t extends Fat{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,Lat(this),Nat(this),this.state=new Oat(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Uat(this.options.margin),this.setMaxListeners(0),Mat(this)}async keypress(e,r={}){this.keypressed=!0;let s=aq.action(e,aq(e,r),this.options.actions);this.state.keypress=s,this.emit(\"keypress\",e,s),this.emit(\"state\",this.state.clone());let a=this.options[s.action]||this[s.action]||this.dispatch;if(typeof a==\"function\")return await a.call(this,e,s);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit(\"alert\"):this.stdout.write(Bm.code.beep)}cursorHide(){this.stdout.write(Bm.cursor.hide()),pl.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Bm.cursor.show())}write(e){e&&(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer=\"\",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Bm.cursor.down(e)+Bm.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:s}=this.sections(),{cursor:a,initial:n=\"\",input:c=\"\",value:f=\"\"}=this,p=this.state.size=s.length,h={after:r,cursor:a,initial:n,input:c,prompt:e,size:p,value:f},E=Bm.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:s}=this.state;s=zde.unstyle(s);let a=zde.unstyle(e),n=a.indexOf(s),c=a.slice(0,n),p=a.slice(n).split(`\n`),h=p[0],E=p[p.length-1],S=(s+(r?\" \"+r:\"\")).length,b=S<h.length?h.slice(S+1):\"\";return{header:c,prompt:h,after:b,rest:p.slice(1),last:E}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let r=`\n`+this.symbols.pointer+\" \";typeof e==\"string\"?r+=e.trim():r+=\"Invalid input\",this.state.error=`\n`+this.styles.danger(r),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit(\"submit\",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel==\"function\"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit(\"cancel\",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),r=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(Bm.cursor.down(e.rest.length)),this.write(`\n`.repeat(r))}catch{}this.emit(\"close\")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aq.listen(this,this.keypress.bind(this)),this.once(\"close\",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip==\"function\"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:r,result:s}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>s.call(this,this.value),typeof r.initial==\"function\"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun==\"function\"&&await r.onRun.call(this,this),typeof r.onSubmit==\"function\"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error(\"expected prompt to have a custom render method\")}run(){return new Promise(async(e,r)=>{if(this.once(\"submit\",e),this.once(\"cancel\",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit(\"run\")})}async element(e,r,s){let{options:a,state:n,symbols:c,timers:f}=this,p=f&&f[e];n.timer=p;let h=a[e]||n[e]||c[e],E=r&&r[e]!=null?r[e]:await h;if(E===\"\")return E;let C=await this.resolve(E,n,r,s);return!C&&r&&r[e]?this.resolve(h,n,r,s):C}async prefix(){let e=await this.element(\"prefix\")||this.symbols,r=this.timers&&this.timers.prefix,s=this.state;return s.timer=r,pl.isObject(e)&&(e=e[s.status]||e.pending),pl.hasColor(e)?e:(this.styles[s.status]||this.styles.pending)(e)}async message(){let e=await this.element(\"message\");return pl.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element(\"separator\")||this.symbols,r=this.timers&&this.timers.separator,s=this.state;s.timer=r;let a=e[s.status]||e.pending||s.separator,n=await this.resolve(a,s);return pl.isObject(n)&&(n=n[s.status]||n.pending),pl.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let s=await this.element(\"pointer\",e,r);if(typeof s==\"string\"&&pl.hasColor(s))return s;if(s){let a=this.styles,n=this.index===r,c=n?a.primary:h=>h,f=await this.resolve(s[n?\"on\":\"off\"]||s,this.state),p=pl.hasColor(f)?f:c(f);return n?p:\" \".repeat(f.length)}}async indicator(e,r){let s=await this.element(\"indicator\",e,r);if(typeof s==\"string\"&&pl.hasColor(s))return s;if(s){let a=this.styles,n=e.enabled===!0,c=n?a.success:a.dark,f=s[n?\"on\":\"off\"]||s;return pl.hasColor(f)?f:c(f)}return\"\"}body(){return null}footer(){if(this.state.status===\"pending\")return this.element(\"footer\")}header(){if(this.state.status===\"pending\")return this.element(\"header\")}async hint(){if(this.state.status===\"pending\"&&!this.isValue(this.state.input)){let e=await this.element(\"hint\");return pl.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?\"\":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==\"\"}resolve(e,...r){return pl.resolve(this,e,...r)}get base(){return t.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||pl.height(this.stdout,25)}get width(){return this.options.columns||pl.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,s=[r,e].find(this.isValue.bind(this));return this.isValue(s)?s:this.initial}static get prompt(){return e=>new this(e).run()}};function Mat(t){let e=a=>t[a]===void 0||typeof t[a]==\"function\",r=[\"actions\",\"choices\",\"initial\",\"margin\",\"roles\",\"styles\",\"symbols\",\"theme\",\"timers\",\"value\"],s=[\"body\",\"footer\",\"error\",\"header\",\"hint\",\"indicator\",\"message\",\"prefix\",\"separator\",\"skip\"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n==\"function\"&&e(a)?s.includes(a)||(t[a]=n.bind(t)):typeof t[a]!=\"function\"&&(t[a]=n)}}function Uat(t){typeof t==\"number\"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?`\n`:\" \",s=[];for(let a=0;a<4;a++){let n=r(a);e[a]?s.push(n.repeat(e[a])):s.push(\"\")}return s}Zde.exports=lq});var eme=_((VHt,$de)=>{\"use strict\";var _at=Xo(),Xde={default(t,e){return e},checkbox(t,e){throw new Error(\"checkbox role is not implemented yet\")},editable(t,e){throw new Error(\"editable role is not implemented yet\")},expandable(t,e){throw new Error(\"expandable role is not implemented yet\")},heading(t,e){return e.disabled=\"\",e.indicator=[e.indicator,\" \"].find(r=>r!=null),e.message=e.message||\"\",e},input(t,e){throw new Error(\"input role is not implemented yet\")},option(t,e){return Xde.default(t,e)},radio(t,e){throw new Error(\"radio role is not implemented yet\")},separator(t,e){return e.disabled=\"\",e.indicator=[e.indicator,\" \"].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};$de.exports=(t,e={})=>{let r=_at.merge({},Xde,e.roles);return r[t]||r.default}});var Wv=_((JHt,nme)=>{\"use strict\";var Hat=Ju(),jat=nC(),Gat=eme(),KT=Xo(),{reorder:cq,scrollUp:qat,scrollDown:Wat,isObject:tme,swap:Yat}=KT,uq=class extends jat{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=\"\"}async initialize(){typeof this.options.initial==\"function\"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:s,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!=\"function\"&&this.selectable.length===0)throw new Error(\"At least one choice must be selectable\");tme(r)&&(r=Object.keys(r)),Array.isArray(r)?(s!=null&&(this.index=this.findIndex(s)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(s!=null&&(r=s),typeof r==\"string\"&&(r=this.findIndex(r)),typeof r==\"number\"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let s=[],a=0,n=async(c,f)=>{typeof c==\"function\"&&(c=await c.call(this)),c instanceof Promise&&(c=await c);for(let p=0;p<c.length;p++){let h=c[p]=await this.toChoice(c[p],a++,f);s.push(h),h.choices&&await n(h.choices,h)}return s};return n(e,r).then(c=>(this.state.loadingChoices=!1,c))}async toChoice(e,r,s){if(typeof e==\"function\"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e==\"string\"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=Gat(e.role,this.options)(this,e),typeof e.disabled==\"string\"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint=\"(disabled)\"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||\"\",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input=\"\",e.index=r,e.cursor=0,KT.define(e,\"parent\",s),e.level=s?s.level+1:1,e.indent==null&&(e.indent=s?s.indent+\"  \":e.indent||\"\"),e.path=s?s.path+\".\"+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,Hat.unstyle(e.message).length));let c={...e};return e.reset=(f=c.input,p=c.value)=>{for(let h of Object.keys(c))e[h]=c[h];e.input=f,e.value=p},a==null&&typeof e.initial==\"function\"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit(\"choice\",e,r,this),typeof e.onChoice==\"function\"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,s){let a=await this.toChoice(e,r,s);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,s){let a={name:\"New choice name?\",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,s);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input=\"\",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?\"  \".repeat(e.level-1):\"\":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!=\"boolean\"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(r=>r.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!=\"boolean\"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let s=e.parent;for(;s;){let a=s.choices.filter(n=>this.isDisabled(n));s.enabled=a.every(n=>n.enabled===!0),s=s.parent}return rme(this,this.choices),this.emit(\"toggle\",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=s=>{let a=Number(s);if(a>this.choices.length-1)return this.alert();let n=this.focused,c=this.choices.find(f=>a===f.index);if(!c.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(c)===-1){let f=cq(this.choices),p=f.indexOf(c);if(n.index>p){let h=f.slice(p,p+this.limit),E=f.filter(C=>!h.includes(C));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=f.slice(h).concat(f.slice(0,h))}}return this.index=this.choices.indexOf(c),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(s=>{let a=this.choices.length,n=this.num,c=(f=!1,p)=>{clearTimeout(this.numberTimeout),f&&(p=r(n)),this.num=\"\",s(p)};if(n===\"0\"||n.length===1&&+(n+\"0\")>a)return c(!0);if(Number(n)>a)return c(!1,this.alert());this.numberTimeout=setTimeout(()=>c(!0),this.delay)})}home(){return this.choices=cq(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=cq(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,s=this.index;return this.options.scroll===!1&&s===0?this.alert():e>r&&s===0?this.scrollUp():(this.index=(s-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,s=this.index;return this.options.scroll===!1&&s===r-1?this.alert():e>r&&s===r-1?this.scrollDown():(this.index=(s+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=qat(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=Wat(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Yat(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&[\"disabled\",\"collapsed\",\"hidden\",\"completing\",\"readonly\"].some(s=>e[s]===!0)?!0:e&&e.role===\"heading\"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(s=>!this.isDisabled(s));return e.enabled&&r.every(s=>this.isEnabled(s))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r=\"value\"){return[].concat(e||[]).reduce((s,a)=>(s[a]=this.find(a,r),s),{})}filter(e,r){let a=typeof e==\"function\"?e:(f,p)=>[f.name,p].includes(e),c=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?c.map(f=>f[r]):c}find(e,r){if(tme(e))return r?e[r]:e;let a=typeof e==\"function\"?e:(c,f)=>[c.name,f].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(c=>c.newChoice))return this.alert();let{reorder:r,sort:s}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&s!==!0&&(n=KT.reorder(n)),this.value=a?n.map(c=>c.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(s=>s.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r==\"string\"||typeof r==\"number\"){let s=this.find(r);s&&(this.initial=s.index,this.focus(s,!0))}}}get choices(){return rme(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:s}=this,a=e.limit||this._limit||r.limit||s.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!=\"string\"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function rme(t,e){if(e instanceof Promise)return e;if(typeof e==\"function\"){if(KT.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let s=r.choices.filter(a=>!t.isDisabled(a));r.enabled=s.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}nme.exports=uq});var G0=_((KHt,ime)=>{\"use strict\";var Vat=Wv(),fq=Xo(),Aq=class extends Vat{constructor(e){super(e),this.emptyError=this.options.emptyError||\"No items were selected\"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):\"\"}indicator(e,r){return this.multiple?super.indicator(e,r):\"\"}choiceMessage(e,r){let s=this.resolve(e.message,this.state,e,r);return e.role===\"heading\"&&!fq.hasColor(s)&&(s=this.styles.strong(s)),this.resolve(s,this.state,e,r)}choiceSeparator(){return\":\"}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||\"\"),c=await this.resolve(e.hint,this.state,e,r);c&&!fq.hasColor(c)&&(c=this.styles.muted(c));let f=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],f+a+n,p,this.margin[1],c].filter(Boolean).join(\" \");return e.role===\"heading\"?h():e.disabled?(fq.hasColor(p)||(p=this.styles.disabled(p)),h()):(s&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading===\"choices\")return this.styles.warning(\"Loading choices\");if(this.state.submitted)return\"\";let e=this.visible.map(async(n,c)=>await this.renderChoice(n,c)),r=await Promise.all(e);r.length||r.push(this.styles.danger(\"No matching choices\"));let s=this.margin[0]+r.join(`\n`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,s].filter(Boolean).join(`\n`)}format(){return!this.state.submitted||this.state.cancelled?\"\":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(\", \"):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,s=\"\",a=await this.header(),n=await this.prefix(),c=await this.separator(),f=await this.message();this.options.promptLine!==!1&&(s=[n,f,c,\"\"].join(\" \"),this.state.prompt=s);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),C=await this.footer();p&&(s+=p),h&&!s.includes(h)&&(s+=\" \"+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(s+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,s,E,C].filter(Boolean).join(`\n`)),this.write(this.margin[2]),this.restore()}};ime.exports=Aq});var ome=_((zHt,sme)=>{\"use strict\";var Jat=G0(),Kat=(t,e)=>{let r=t.toLowerCase();return s=>{let n=s.toLowerCase().indexOf(r),c=e(s.slice(n,n+r.length));return n>=0?s.slice(0,n)+c+s.slice(n+r.length):s}},pq=class extends Jat{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:s}=this.state;return this.input=s.slice(0,r)+e+s.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest==\"function\")return this.options.suggest.call(this,e,r);let s=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(s))}pointer(){return\"\"}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(\", \");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!==\"pending\")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=Kat(this.input,e),s=this.choices;this.choices=s.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=s}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};sme.exports=pq});var gq=_((ZHt,ame)=>{\"use strict\";var hq=Xo();ame.exports=(t,e={})=>{t.cursorHide();let{input:r=\"\",initial:s=\"\",pos:a,showCursor:n=!0,color:c}=e,f=c||t.styles.placeholder,p=hq.inverse(t.styles.primary),h=T=>p(t.styles.black(T)),E=r,C=\" \",S=h(C);if(t.blink&&t.blink.off===!0&&(h=T=>T,S=\"\"),n&&a===0&&s===\"\"&&r===\"\")return h(C);if(n&&a===0&&(r===s||r===\"\"))return h(s[0])+f(s.slice(1));s=hq.isPrimitive(s)?`${s}`:\"\",r=hq.isPrimitive(r)?`${r}`:\"\";let b=s&&s.startsWith(r)&&s!==r,I=b?h(s[r.length]):S;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),I=\"\"),n===!1&&(I=\"\"),b){let T=t.styles.unstyle(E+I);return E+I+f(s.slice(T.length))}return E+I}});var zT=_((XHt,lme)=>{\"use strict\";var zat=Ju(),Zat=G0(),Xat=gq(),dq=class extends Zat{constructor(e){super({...e,multiple:!0}),this.type=\"form\",this.initial=this.options.initial,this.align=[this.options.align,\"right\"].find(r=>r!=null),this.emptyError=\"\",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:s,input:a}=r;return r.value=r.input=a.slice(0,s)+e+a.slice(s),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:s}=e;return e.value=e.input=s.slice(0,r-1)+s.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:s}=e;if(s[r]===void 0)return this.alert();let a=`${s}`.slice(0,r)+`${s}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:s}=e;return r&&r.startsWith(s)&&s!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input=\"\",e.cursor=0,this.render()):this.alert()}separator(){return\"\"}format(e){return this.state.submitted?\"\":super.format(e)}pointer(){return\"\"}indicator(e){return e.input?\"\\u29BF\":\"\\u2299\"}async choiceSeparator(e,r){let s=await this.resolve(e.separator,this.state,e,r)||\":\";return s?\" \"+this.styles.disabled(s):\"\"}async renderChoice(e,r){await this.onChoice(e,r);let{state:s,styles:a}=this,{cursor:n,initial:c=\"\",name:f,hint:p,input:h=\"\"}=e,{muted:E,submitted:C,primary:S,danger:b}=a,I=p,T=this.index===r,N=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),W=e.message;this.align===\"right\"&&(W=W.padStart(this.longest+1,\" \")),this.align===\"left\"&&(W=W.padEnd(this.longest+1,\" \"));let ee=this.values[f]=h||c,ie=h?\"success\":\"dark\";await N.call(e,ee,this.state)!==!0&&(ie=\"danger\");let ue=a[ie],le=ue(await this.indicator(e,r))+(e.pad||\"\"),me=this.indent(e),pe=()=>[me,le,W+U,h,I].filter(Boolean).join(\" \");if(s.submitted)return W=zat.unstyle(W),h=C(h),I=\"\",pe();if(e.format)h=await e.format.call(this,h,e,r);else{let Be=this.styles.muted;h=Xat(this,{input:h,initial:c,pos:n,showCursor:T,color:Be})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[f]=await e.result.call(this,ee,e,r)),T&&(W=S(W)),e.error?h+=(h?\" \":\"\")+b(e.error.trim()):e.hint&&(h+=(h?\" \":\"\")+E(e.hint.trim())),pe()}async submit(){return this.value=this.values,super.base.submit.call(this)}};lme.exports=dq});var mq=_(($Ht,ume)=>{\"use strict\";var $at=zT(),elt=()=>{throw new Error(\"expected prompt to have a custom authenticate method\")},cme=(t=elt)=>{class e extends $at{constructor(s){super(s)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(s){return cme(s)}}return e};ume.exports=cme()});var pme=_((ejt,Ame)=>{\"use strict\";var tlt=mq();function rlt(t,e){return t.username===this.options.username&&t.password===this.options.password}var fme=(t=rlt)=>{let e=[{name:\"username\",message:\"username\"},{name:\"password\",message:\"password\",format(s){return this.options.showPassword?s:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(s.length))}}];class r extends tlt.create(t){constructor(a){super({...a,choices:e})}static create(a){return fme(a)}}return r};Ame.exports=fme()});var ZT=_((tjt,hme)=>{\"use strict\";var nlt=nC(),{isPrimitive:ilt,hasColor:slt}=Xo(),yq=class extends nlt{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:s}=this;return s.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return ilt(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status===\"pending\"){let e=await this.element(\"hint\");return slt(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c=this.styles.muted(this.default),f=[s,n,c,a].filter(Boolean).join(\" \");this.state.prompt=f;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),C=await this.error()||await this.hint(),S=await this.footer();C&&!f.includes(C)&&(E+=\" \"+C),f+=\" \"+E,this.clear(r),this.write([p,f,S].filter(Boolean).join(`\n`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};hme.exports=yq});var dme=_((rjt,gme)=>{\"use strict\";var olt=ZT(),Eq=class extends olt{constructor(e){super(e),this.default=this.options.default||(this.initial?\"(Y/n)\":\"(y/N)\")}};gme.exports=Eq});var yme=_((njt,mme)=>{\"use strict\";var alt=G0(),llt=zT(),iC=llt.prototype,Iq=class extends alt{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,\"left\"].find(r=>r!=null),this.emptyError=\"\",this.values={}}dispatch(e,r){let s=this.focused,a=s.parent||{};return!s.editable&&!a.editable&&(e===\"a\"||e===\"i\")?super[e]():iC.dispatch.call(this,e,r)}append(e,r){return iC.append.call(this,e,r)}delete(e,r){return iC.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?iC.next.call(this):super.next()}prev(){return this.focused.editable?iC.prev.call(this):super.prev()}async indicator(e,r){let s=e.indicator||\"\",a=e.editable?s:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||\"\"}indent(e){return e.role===\"heading\"?\"\":e.editable?\" \":\"  \"}async renderChoice(e,r){return e.indent=\"\",e.editable?iC.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return\"\"}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!=\"function\"||r.role===\"heading\")continue;let s=r.parent?this.value[r.parent.name]:this.value;if(r.editable?s=r.value===r.name?r.initial||\"\":r.value:this.isDisabled(r)||(s=r.enabled===!0),e=await r.validate(s,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e==\"string\"?e:\"Invalid Input\"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role===\"heading\"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||\"\":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};mme.exports=Iq});var vm=_((ijt,Eme)=>{\"use strict\";var clt=nC(),ult=gq(),{isPrimitive:flt}=Xo(),Cq=class extends clt{constructor(e){super(e),this.initial=flt(this.initial)?String(this.initial):\"\",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let s=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name===\"return\"&&(!s||s.name!==\"return\")?this.append(`\n`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value=\"\",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:s}=this.state;this.input=`${s}`.slice(0,r)+e+`${s}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),s=this.input.slice(e),a=r.split(\" \");this.state.clipboard.push(a.pop()),this.input=a.join(\" \"),this.cursor=this.input.length,this.input+=s,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):\"\";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):ult(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),s=await this.separator(),a=await this.message(),n=[r,a,s].filter(Boolean).join(\" \");this.state.prompt=n;let c=await this.header(),f=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!f.includes(p)&&(f+=\" \"+p),n+=\" \"+f,this.clear(e),this.write([c,n,h].filter(Boolean).join(`\n`)),this.restore()}};Eme.exports=Cq});var Cme=_((sjt,Ime)=>{\"use strict\";var Alt=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),XT=t=>Alt(t).filter(Boolean);Ime.exports=(t,e={},r=\"\")=>{let{past:s=[],present:a=\"\"}=e,n,c;switch(t){case\"prev\":case\"undo\":return n=s.slice(0,s.length-1),c=s[s.length-1]||\"\",{past:XT([r,...n]),present:c};case\"next\":case\"redo\":return n=s.slice(1),c=s[0]||\"\",{past:XT([...n,r]),present:c};case\"save\":return{past:XT([...s,r]),present:\"\"};case\"remove\":return c=XT(s.filter(f=>f!==r)),a=\"\",c.length&&(a=c.pop()),{past:c,present:a};default:throw new Error(`Invalid action: \"${t}\"`)}}});var Bq=_((ojt,Bme)=>{\"use strict\";var plt=vm(),wme=Cme(),wq=class extends plt{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let s=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get(\"values\")||{past:[],present:s},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=wme(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion(\"prev\")}altDown(){return this.completion(\"next\")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=wme(\"save\",this.data,this.input),this.store.set(\"values\",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Bme.exports=wq});var Sme=_((ajt,vme)=>{\"use strict\";var hlt=vm(),vq=class extends hlt{format(){return\"\"}};vme.exports=vq});var Pme=_((ljt,Dme)=>{\"use strict\";var glt=vm(),Sq=class extends glt{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||\"\"}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(\", \")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Dme.exports=Sq});var xme=_((cjt,bme)=>{\"use strict\";var dlt=G0(),Dq=class extends dlt{constructor(e){super({...e,multiple:!0})}};bme.exports=Dq});var bq=_((ujt,kme)=>{\"use strict\";var mlt=vm(),Pq=class extends mlt{constructor(e={}){super({style:\"number\",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:\"\",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e===\".\"&&this.input.includes(\".\")?this.alert(\"invalid number\"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,s=this.toNumber(this.input);return s>this.max+r?this.alert():(this.input=`${s+r}`,this.render())}down(e){let r=e||this.minor,s=this.toNumber(this.input);return s<this.min-r?this.alert():(this.input=`${s-r}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format==\"function\"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=\"\"){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\\.)|(\\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(r=>this.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};kme.exports=Pq});var Rme=_((fjt,Qme)=>{Qme.exports=bq()});var Fme=_((Ajt,Tme)=>{\"use strict\";var ylt=vm(),xq=class extends ylt{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):\"\"}};Tme.exports=xq});var Lme=_((pjt,Ome)=>{\"use strict\";var Elt=Ju(),Ilt=Wv(),Nme=Xo(),kq=class extends Ilt{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||\"left\"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||`\n   `;let r=e.startNumber||1;typeof this.scale==\"number\"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((s,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let s=0;s<this.scale.length;s++)r.scale.push({index:s})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}heading(e,r,s){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return\"\"}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(\", \"):\"\"}pointer(){return\"\"}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?\"\":[\"\",...this.scale.map(s=>`   ${s.name} - ${s.message}`)].map(s=>this.styles.muted(s)).join(`\n`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading==\"function\"&&(r=this.options.renderScaleHeading.call(this,e));let s=this.scaleLength-r.join(\"\").length,a=Math.round(s/(r.length-1)),c=r.map(p=>this.styles.strong(p)).join(\" \".repeat(a)),f=\" \".repeat(this.widths[0]);return this.margin[3]+f+this.margin[1]+c}scaleIndicator(e,r,s){if(typeof this.options.scaleIndicator==\"function\")return this.options.scaleIndicator.call(this,e,r,s);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let s=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term===\"Hyper\"?\"\":\" \";return s.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!Nme.hasColor(n)&&(n=this.styles.muted(n));let c=I=>this.margin[3]+I.replace(/\\s+$/,\"\").padEnd(this.widths[0],\" \"),f=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),C=this.margin[1]+this.margin[3];this.scaleLength=Elt.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-C.length);let b=Nme.wordWrap(h,{width:this.widths[0],newline:f}).split(`\n`).map(I=>c(I)+this.margin[1]);return s&&(E=this.styles.info(E),b=b.map(I=>this.styles.info(I))),b[0]+=E,this.linebreak&&b.push(\"\"),[p+a,b.join(`\n`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return\"\";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),s=await this.renderScaleHeading();return this.margin[0]+[s,...r.map(a=>a.join(\" \"))].join(`\n`)}async render(){let{submitted:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c=\"\";this.options.promptLine!==!1&&(c=[s,n,a,\"\"].join(\" \"),this.state.prompt=c);let f=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),C=await this.renderChoices(),S=await this.footer(),b=this.emptyError;p&&(c+=p),E&&!c.includes(E)&&(c+=\" \"+E),e&&!p&&!C.trim()&&this.multiple&&b!=null&&(c+=this.styles.danger(b)),this.clear(r),this.write([f,c,h,C,S].filter(Boolean).join(`\n`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};Ome.exports=kq});var _me=_((hjt,Ume)=>{\"use strict\";var Mme=Ju(),Clt=(t=\"\")=>typeof t==\"string\"?t.replace(/^['\"]|['\"]$/g,\"\"):\"\",Rq=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=Clt(e.initial||this.field.initial||\"\"),this.message=e.message||this.name,this.cursor=0,this.input=\"\",this.lines=[]}},wlt=async(t={},e={},r=s=>s)=>{let s=new Set,a=t.fields||[],n=t.template,c=[],f=[],p=[],h=1;typeof n==\"function\"&&(n=await n());let E=-1,C=()=>n[++E],S=()=>n[E+1],b=I=>{I.line=h,c.push(I)};for(b({type:\"bos\",value:\"\"});E<n.length-1;){let I=C();if(/^[^\\S\\n ]$/.test(I)){b({type:\"text\",value:I});continue}if(I===`\n`){b({type:\"newline\",value:I}),h++;continue}if(I===\"\\\\\"){I+=C(),b({type:\"text\",value:I});continue}if((I===\"$\"||I===\"#\"||I===\"{\")&&S()===\"{\"){let N=C();I+=N;let U={type:\"template\",open:I,inner:\"\",close:\"\",value:I},W;for(;W=C();){if(W===\"}\"){S()===\"}\"&&(W+=C()),U.value+=W,U.close=W;break}W===\":\"?(U.initial=\"\",U.key=U.inner):U.initial!==void 0&&(U.initial+=W),U.value+=W,U.inner+=W}U.template=U.open+(U.initial||U.inner)+U.close,U.key=U.key||U.inner,e.hasOwnProperty(U.key)&&(U.initial=e[U.key]),U=r(U),b(U),p.push(U.key),s.add(U.key);let ee=f.find(ie=>ie.name===U.key);U.field=a.find(ie=>ie.name===U.key),ee||(ee=new Rq(U),f.push(ee)),ee.lines.push(U.line-1);continue}let T=c[c.length-1];T.type===\"text\"&&T.line===h?T.value+=I:b({type:\"text\",value:I})}return b({type:\"eos\",value:\"\"}),{input:n,tabstops:c,unique:s,keys:p,items:f}};Ume.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),s={...e.values,...e.initial},{tabstops:a,items:n,keys:c}=await wlt(e,s),f=Qq(\"result\",t,e),p=Qq(\"format\",t,e),h=Qq(\"validate\",t,e,!0),E=t.isValue.bind(t);return async(C={},S=!1)=>{let b=0;C.required=r,C.items=n,C.keys=c,C.output=\"\";let I=async(W,ee,ie,ue)=>{let le=await h(W,ee,ie,ue);return le===!1?\"Invalid field \"+ie.name:le};for(let W of a){let ee=W.value,ie=W.key;if(W.type!==\"template\"){ee&&(C.output+=ee);continue}if(W.type===\"template\"){let ue=n.find(Ce=>Ce.name===ie);e.required===!0&&C.required.add(ue.name);let le=[ue.input,C.values[ue.value],ue.value,ee].find(E),pe=(ue.field||{}).message||W.inner;if(S){let Ce=await I(C.values[ie],C,ue,b);if(Ce&&typeof Ce==\"string\"||Ce===!1){C.invalid.set(ie,Ce);continue}C.invalid.delete(ie);let g=await f(C.values[ie],C,ue,b);C.output+=Mme.unstyle(g);continue}ue.placeholder=!1;let Be=ee;ee=await p(ee,C,ue,b),le!==ee?(C.values[ie]=le,ee=t.styles.typing(le),C.missing.delete(pe)):(C.values[ie]=void 0,le=`<${pe}>`,ee=t.styles.primary(le),ue.placeholder=!0,C.required.has(ie)&&C.missing.add(pe)),C.missing.has(pe)&&C.validating&&(ee=t.styles.warning(le)),C.invalid.has(ie)&&C.validating&&(ee=t.styles.danger(le)),b===C.index&&(Be!==ee?ee=t.styles.underline(ee):ee=t.styles.heading(Mme.unstyle(ee))),b++}ee&&(C.output+=ee)}let T=C.output.split(`\n`).map(W=>\" \"+W),N=n.length,U=0;for(let W of n)C.invalid.has(W.name)&&W.lines.forEach(ee=>{T[ee][0]===\" \"&&(T[ee]=C.styles.danger(C.symbols.bullet)+T[ee].slice(1))}),t.isValue(C.values[W.name])&&U++;return C.completed=(U/N*100).toFixed(0),C.output=T.join(`\n`),C.output}};function Qq(t,e,r,s){return(a,n,c,f)=>typeof c.field[t]==\"function\"?c.field[t].call(e,a,n,c,f):[s,a].find(p=>e.isValue(p))}});var jme=_((gjt,Hme)=>{\"use strict\";var Blt=Ju(),vlt=_me(),Slt=nC(),Tq=class extends Slt{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await vlt(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let s=this.getItem(),a=s.input.slice(0,this.cursor),n=s.input.slice(this.cursor);this.input=s.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),s=e.input.slice(0,this.cursor-1);this.input=e.input=`${s}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:s,size:a}=this.state,n=[this.options.newline,`\n`].find(W=>W!=null),c=await this.prefix(),f=await this.separator(),p=await this.message(),h=[c,p,f].filter(Boolean).join(\" \");this.state.prompt=h;let E=await this.header(),C=await this.error()||\"\",S=await this.hint()||\"\",b=s?\"\":await this.interpolate(this.state),I=this.state.key=r[e]||\"\",T=await this.format(I),N=await this.footer();T&&(h+=\" \"+T),S&&!T&&this.state.completed===0&&(h+=\" \"+S),this.clear(a);let U=[E,h,b,N,C.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:s,index:a}=this.state,n=r.find(c=>c.name===s[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!=\"function\"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:s,values:a}=this.state;if(e.size){let f=\"\";for(let[p,h]of e)f+=`Invalid ${p}: ${h}\n`;return this.state.error=f,super.submit()}if(r.size)return this.state.error=\"Required: \"+[...r.keys()].join(\", \"),super.submit();let c=Blt.unstyle(s).split(`\n`).map(f=>f.slice(1)).join(`\n`);return this.value={values:a,result:c},super.submit()}};Hme.exports=Tq});var qme=_((djt,Gme)=>{\"use strict\";var Dlt=\"(Use <shift>+<up/down> to sort)\",Plt=G0(),Fq=class extends Plt{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Dlt].find(this.isValue.bind(this))}indicator(){return\"\"}async renderChoice(e,r){let s=await super.renderChoice(e,r),a=this.symbols.identicalTo+\" \",n=this.index===r&&this.sorting?this.styles.muted(a):\"  \";return this.options.drag===!1&&(n=\"\"),this.options.numbered===!0?n+`${r+1} - `+s:n+s}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};Gme.exports=Fq});var Yme=_((mjt,Wme)=>{\"use strict\";var blt=Wv(),Nq=class extends blt{constructor(e={}){if(super(e),this.emptyError=e.emptyError||\"No items were selected\",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=[\"\",\"4 - Strongly Agree\",\"3 - Agree\",\"2 - Neutral\",\"1 - Disagree\",\"0 - Strongly Disagree\",\"\"];r=r.map(s=>this.styles.muted(s)),this.state.header=r.join(`\n   `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let s of r)s.scale=xlt(5,this.options),s.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],s=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!s,this.render()}indicator(){return\"\"}pointer(){return\"\"}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return\"   \"}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=this.term===\"Hyper\",n=a?9:8,c=a?\"\":\" \",f=this.symbols.line.repeat(n),p=\" \".repeat(n+(a?0:1)),h=ee=>(ee?this.styles.success(\"\\u25C9\"):\"\\u25EF\")+c,E=r+1+\".\",C=s?this.styles.heading:this.styles.noop,S=await this.resolve(e.message,this.state,e,r),b=this.indent(e),I=b+e.scale.map((ee,ie)=>h(ie===e.scaleIdx)).join(f),T=ee=>ee===e.scaleIdx?C(ee):ee,N=b+e.scale.map((ee,ie)=>T(ie)).join(p),U=()=>[E,S].filter(Boolean).join(\" \"),W=()=>[U(),I,N,\" \"].filter(Boolean).join(`\n`);return s&&(I=this.styles.cyan(I),N=this.styles.cyan(N)),W()}async renderChoices(){if(this.state.submitted)return\"\";let e=this.visible.map(async(s,a)=>await this.renderChoice(s,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger(\"No matching choices\")),r.join(`\n`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(\", \"):\"\"}async render(){let{submitted:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c=[s,n,a].filter(Boolean).join(\" \");this.state.prompt=c;let f=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),C=await this.footer();(p||!h)&&(c+=\" \"+p),h&&!c.includes(h)&&(c+=\" \"+h),e&&!p&&!E&&this.multiple&&this.type!==\"form\"&&(c+=this.styles.danger(this.emptyError)),this.clear(r),this.write([c,f,E,C].filter(Boolean).join(`\n`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function xlt(t,e={}){if(Array.isArray(e.scale))return e.scale.map(s=>({...s}));let r=[];for(let s=1;s<t+1;s++)r.push({i:s,selected:!1});return r}Wme.exports=Nq});var Jme=_((yjt,Vme)=>{Vme.exports=Bq()});var zme=_((Ejt,Kme)=>{\"use strict\";var klt=ZT(),Oq=class extends klt{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||\"no\",this.enabled=this.options.enabled||\"yes\",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e=\"\",r){switch(e.toLowerCase()){case\" \":return this.toggle();case\"1\":case\"y\":case\"t\":return this.enable();case\"0\":case\"n\":case\"f\":return this.disable();default:return this.alert()}}format(){let e=s=>this.styles.primary.underline(s);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(\" / \"))}async render(){let{size:e}=this.state,r=await this.header(),s=await this.prefix(),a=await this.separator(),n=await this.message(),c=await this.format(),f=await this.error()||await this.hint(),p=await this.footer(),h=[s,n,a,c].join(\" \");this.state.prompt=h,f&&!h.includes(f)&&(h+=\" \"+f),this.clear(e),this.write([r,h,p].filter(Boolean).join(`\n`)),this.write(this.margin[2]),this.restore()}};Kme.exports=Oq});var Xme=_((Ijt,Zme)=>{\"use strict\";var Qlt=G0(),Lq=class extends Qlt{constructor(e){if(super(e),typeof this.options.correctChoice!=\"number\"||this.options.correctChoice<0)throw new Error(\"Please specify the index of the correct answer from the list of choices\")}async toChoices(e,r){let s=await super.toChoices(e,r);if(s.length<2)throw new Error(\"Please give at least two choices to the user\");if(this.options.correctChoice>s.length)throw new Error(\"Please specify the index of the correct answer from the list of choices\");return s}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Zme.exports=Lq});var eye=_(Mq=>{\"use strict\";var $me=Xo(),ks=(t,e)=>{$me.defineExport(Mq,t,e),$me.defineExport(Mq,t.toLowerCase(),e)};ks(\"AutoComplete\",()=>ome());ks(\"BasicAuth\",()=>pme());ks(\"Confirm\",()=>dme());ks(\"Editable\",()=>yme());ks(\"Form\",()=>zT());ks(\"Input\",()=>Bq());ks(\"Invisible\",()=>Sme());ks(\"List\",()=>Pme());ks(\"MultiSelect\",()=>xme());ks(\"Numeral\",()=>Rme());ks(\"Password\",()=>Fme());ks(\"Scale\",()=>Lme());ks(\"Select\",()=>G0());ks(\"Snippet\",()=>jme());ks(\"Sort\",()=>qme());ks(\"Survey\",()=>Yme());ks(\"Text\",()=>Jme());ks(\"Toggle\",()=>zme());ks(\"Quiz\",()=>Xme())});var rye=_((wjt,tye)=>{tye.exports={ArrayPrompt:Wv(),AuthPrompt:mq(),BooleanPrompt:ZT(),NumberPrompt:bq(),StringPrompt:vm()}});var Vv=_((Bjt,iye)=>{\"use strict\";var nye=Ie(\"assert\"),_q=Ie(\"events\"),q0=Xo(),zu=class extends _q{constructor(e,r){super(),this.options=q0.merge({},e),this.answers={...r}}register(e,r){if(q0.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}nye.equal(typeof r,\"function\",\"expected a function\");let s=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[s]=r:this.prompts[s]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r==\"function\"&&(r=await r.call(this)),await this.ask(q0.merge({},this.options,r))}catch(s){return Promise.reject(s)}return this.answers}async ask(e){typeof e==\"function\"&&(e=await e.call(this));let r=q0.merge({},this.options,e),{type:s,name:a}=e,{set:n,get:c}=q0;if(typeof s==\"function\"&&(s=await s.call(this,e,this.answers)),!s)return this.answers[a];nye(this.prompts[s],`Prompt \"${s}\" is not registered`);let f=new this.prompts[s](r),p=c(this.answers,a);f.state.answers=this.answers,f.enquirer=this,a&&f.on(\"submit\",E=>{this.emit(\"answer\",a,E,f),n(this.answers,a,E)});let h=f.emit.bind(f);return f.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit(\"prompt\",f,this),r.autofill&&p!=null?(f.value=f.input=p,r.autofill===\"show\"&&await f.submit()):p=f.value=await f.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||nC()}static get prompts(){return eye()}static get types(){return rye()}static get prompt(){let e=(r,...s)=>{let a=new this(...s),n=a.emit.bind(a);return a.emit=(...c)=>(e.emit(...c),n(...c)),a.prompt(r)};return q0.mixinEmitter(e,new _q),e}};q0.mixinEmitter(zu,new _q);var Uq=zu.prompts;for(let t of Object.keys(Uq)){let e=t.toLowerCase(),r=s=>new Uq[t](s).run();zu.prompt[e]=r,zu[e]=r,zu[t]||Reflect.defineProperty(zu,t,{get:()=>Uq[t]})}var Yv=t=>{q0.defineExport(zu,t,()=>zu.types[t])};Yv(\"ArrayPrompt\");Yv(\"AuthPrompt\");Yv(\"BooleanPrompt\");Yv(\"NumberPrompt\");Yv(\"StringPrompt\");iye.exports=zu});var Aye=_((Y6t,_lt)=>{_lt.exports={name:\"@yarnpkg/cli\",version:\"4.10.3\",license:\"BSD-2-Clause\",main:\"./sources/index.ts\",exports:{\".\":\"./sources/index.ts\",\"./polyfills\":\"./sources/polyfills.ts\",\"./package.json\":\"./package.json\"},dependencies:{\"@yarnpkg/core\":\"workspace:^\",\"@yarnpkg/fslib\":\"workspace:^\",\"@yarnpkg/libzip\":\"workspace:^\",\"@yarnpkg/parsers\":\"workspace:^\",\"@yarnpkg/plugin-catalog\":\"workspace:^\",\"@yarnpkg/plugin-compat\":\"workspace:^\",\"@yarnpkg/plugin-constraints\":\"workspace:^\",\"@yarnpkg/plugin-dlx\":\"workspace:^\",\"@yarnpkg/plugin-essentials\":\"workspace:^\",\"@yarnpkg/plugin-exec\":\"workspace:^\",\"@yarnpkg/plugin-file\":\"workspace:^\",\"@yarnpkg/plugin-git\":\"workspace:^\",\"@yarnpkg/plugin-github\":\"workspace:^\",\"@yarnpkg/plugin-http\":\"workspace:^\",\"@yarnpkg/plugin-init\":\"workspace:^\",\"@yarnpkg/plugin-interactive-tools\":\"workspace:^\",\"@yarnpkg/plugin-jsr\":\"workspace:^\",\"@yarnpkg/plugin-link\":\"workspace:^\",\"@yarnpkg/plugin-nm\":\"workspace:^\",\"@yarnpkg/plugin-npm\":\"workspace:^\",\"@yarnpkg/plugin-npm-cli\":\"workspace:^\",\"@yarnpkg/plugin-pack\":\"workspace:^\",\"@yarnpkg/plugin-patch\":\"workspace:^\",\"@yarnpkg/plugin-pnp\":\"workspace:^\",\"@yarnpkg/plugin-pnpm\":\"workspace:^\",\"@yarnpkg/plugin-stage\":\"workspace:^\",\"@yarnpkg/plugin-typescript\":\"workspace:^\",\"@yarnpkg/plugin-version\":\"workspace:^\",\"@yarnpkg/plugin-workspace-tools\":\"workspace:^\",\"@yarnpkg/shell\":\"workspace:^\",\"ci-info\":\"^4.0.0\",clipanion:\"^4.0.0-rc.2\",semver:\"^7.1.2\",tslib:\"^2.4.0\",typanion:\"^3.14.0\"},devDependencies:{\"@types/semver\":\"^7.1.0\",\"@yarnpkg/builder\":\"workspace:^\",\"@yarnpkg/monorepo\":\"workspace:^\",\"@yarnpkg/pnpify\":\"workspace:^\"},peerDependencies:{\"@yarnpkg/core\":\"workspace:^\"},scripts:{postpack:\"rm -rf lib\",prepack:'run build:compile \"$(pwd)\"',\"build:cli+hook\":\"run build:pnp:hook && builder build bundle\",\"build:cli\":\"builder build bundle\",\"run:cli\":\"builder run\",\"update-local\":\"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/\"},publishConfig:{main:\"./lib/index.js\",bin:null,exports:{\".\":\"./lib/index.js\",\"./package.json\":\"./package.json\"}},files:[\"/lib/**/*\",\"!/lib/pluginConfiguration.*\",\"!/lib/cli.*\"],\"@yarnpkg/builder\":{bundles:{standard:[\"@yarnpkg/plugin-essentials\",\"@yarnpkg/plugin-compat\",\"@yarnpkg/plugin-constraints\",\"@yarnpkg/plugin-dlx\",\"@yarnpkg/plugin-exec\",\"@yarnpkg/plugin-file\",\"@yarnpkg/plugin-git\",\"@yarnpkg/plugin-github\",\"@yarnpkg/plugin-http\",\"@yarnpkg/plugin-init\",\"@yarnpkg/plugin-interactive-tools\",\"@yarnpkg/plugin-jsr\",\"@yarnpkg/plugin-link\",\"@yarnpkg/plugin-nm\",\"@yarnpkg/plugin-npm\",\"@yarnpkg/plugin-npm-cli\",\"@yarnpkg/plugin-pack\",\"@yarnpkg/plugin-patch\",\"@yarnpkg/plugin-pnp\",\"@yarnpkg/plugin-pnpm\",\"@yarnpkg/plugin-stage\",\"@yarnpkg/plugin-typescript\",\"@yarnpkg/plugin-version\",\"@yarnpkg/plugin-workspace-tools\",\"@yarnpkg/plugin-catalog\"]}},repository:{type:\"git\",url:\"git+https://github.com/yarnpkg/berry.git\",directory:\"packages/yarnpkg-cli\"},engines:{node:\">=18.12.0\"}}});var t5=_((v9t,vye)=>{\"use strict\";vye.exports=function(e,r){r===!0&&(r=0);var s=\"\";if(typeof e==\"string\")try{s=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(s=e.protocol);var a=s.split(/\\:|\\+/).filter(Boolean);return typeof r==\"number\"?a[r]:a}});var Dye=_((S9t,Sye)=>{\"use strict\";var oct=t5();function act(t){var e={protocols:[],protocol:null,port:null,resource:\"\",host:\"\",user:\"\",password:\"\",pathname:\"\",hash:\"\",search:\"\",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=oct(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||\"\",e.password=r.password||\"\",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=[\"file\"],e.protocol=e.protocols[0],e.port=\"\",e.resource=\"\",e.user=\"\",e.pathname=\"\",e.hash=\"\",e.search=\"\",e.href=t,e.query={},e.parse_failed=!0}return e}Sye.exports=act});var xye=_((D9t,bye)=>{\"use strict\";var lct=Dye();function cct(t){return t&&typeof t==\"object\"&&\"default\"in t?t:{default:t}}var uct=cct(lct),fct=\"text/plain\",Act=\"us-ascii\",Pye=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),pct=(t,{stripHash:e})=>{let r=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:s,data:a,hash:n}=r.groups,c=s.split(\";\");n=e?\"\":n;let f=!1;c[c.length-1]===\"base64\"&&(c.pop(),f=!0);let p=(c.shift()||\"\").toLowerCase(),E=[...c.map(C=>{let[S,b=\"\"]=C.split(\"=\").map(I=>I.trim());return S===\"charset\"&&(b=b.toLowerCase(),b===Act)?\"\":`${S}${b?`=${b}`:\"\"}`}).filter(Boolean)];return f&&E.push(\"base64\"),(E.length>0||p&&p!==fct)&&E.unshift(p),`data:${E.join(\";\")},${f?a.trim():a}${n?`#${n}`:\"\"}`};function hct(t,e){if(e={defaultProtocol:\"http:\",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return pct(t,e);if(/^view-source:/i.test(t))throw new Error(\"`view-source:` is not supported as it is a non-standard protocol\");let r=t.startsWith(\"//\");!r&&/^\\.*\\//.test(t)||(t=t.replace(/^(?!(?:\\w+:)?\\/\\/)|^\\/\\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error(\"The `forceHttp` and `forceHttps` options cannot be used together\");if(e.forceHttp&&a.protocol===\"https:\"&&(a.protocol=\"http:\"),e.forceHttps&&a.protocol===\"http:\"&&(a.protocol=\"https:\"),e.stripAuthentication&&(a.username=\"\",a.password=\"\"),e.stripHash?a.hash=\"\":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,\"\")),a.pathname){let c=/\\b[a-z][a-z\\d+\\-.]{1,50}:\\/\\//g,f=0,p=\"\";for(;;){let E=c.exec(a.pathname);if(!E)break;let C=E[0],S=E.index,b=a.pathname.slice(f,S);p+=b.replace(/\\/{2,}/g,\"/\"),p+=C,f=S+C.length}let h=a.pathname.slice(f,a.pathname.length);p+=h.replace(/\\/{2,}/g,\"/\"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let c=a.pathname.split(\"/\"),f=c[c.length-1];Pye(f,e.removeDirectoryIndex)&&(c=c.slice(0,-1),a.pathname=c.slice(1).join(\"/\")+\"/\")}if(a.hostname&&(a.hostname=a.hostname.replace(/\\.$/,\"\"),e.stripWWW&&/^www\\.(?!www\\.)[a-z\\-\\d]{1,63}\\.[a-z.\\-\\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\\./,\"\"))),Array.isArray(e.removeQueryParameters))for(let c of[...a.searchParams.keys()])Pye(c,e.removeQueryParameters)&&a.searchParams.delete(c);if(e.removeQueryParameters===!0&&(a.search=\"\"),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\\/$/,\"\"));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname===\"/\"&&!n.endsWith(\"/\")&&a.hash===\"\"&&(t=t.replace(/\\/$/,\"\")),(e.removeTrailingSlash||a.pathname===\"/\")&&a.hash===\"\"&&e.removeSingleSlash&&(t=t.replace(/\\/$/,\"\")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\\/\\//,\"//\")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\\/\\//,\"\")),t}var r5=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\\/\\/)([\\w\\.\\-@]+)[\\/:]([\\~,\\.\\w,\\-,\\_,\\/]+?(?:\\.git|\\/)?)$/,s=n=>{let c=new Error(n);throw c.subject_url=t,c};(typeof t!=\"string\"||!t.trim())&&s(\"Invalid url.\"),t.length>r5.MAX_INPUT_LENGTH&&s(\"Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH.\"),e&&(typeof e!=\"object\"&&(e={stripHash:!1}),t=hct(t,e));let a=uct.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=[\"ssh\"],a.protocol=\"ssh\",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):s(\"URL parsing failed.\")}return a};r5.MAX_INPUT_LENGTH=2048;bye.exports=r5});var Rye=_((P9t,Qye)=>{\"use strict\";var gct=t5();function kye(t){if(Array.isArray(t))return t.indexOf(\"ssh\")!==-1||t.indexOf(\"rsync\")!==-1;if(typeof t!=\"string\")return!1;var e=gct(t);if(t=t.substring(t.indexOf(\"://\")+3),kye(e))return!0;var r=new RegExp(\".([a-zA-Z\\\\d]+):(\\\\d+)/\");return!t.match(r)&&t.indexOf(\"@\")<t.indexOf(\":\")}Qye.exports=kye});var Nye=_((b9t,Fye)=>{\"use strict\";var dct=xye(),Tye=Rye();function mct(t){var e=dct(t);return e.token=\"\",e.password===\"x-oauth-basic\"?e.token=e.user:e.user===\"x-token-auth\"&&(e.token=e.password),Tye(e.protocols)||e.protocols.length===0&&Tye(t)?e.protocol=\"ssh\":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol=\"file\",e.protocols=[\"file\"]),e.href=e.href.replace(/\\/$/,\"\"),e}Fye.exports=mct});var Lye=_((x9t,Oye)=>{\"use strict\";var yct=Nye();function n5(t){if(typeof t!=\"string\")throw new Error(\"The url must be a string.\");var e=/^([a-z\\d-]{1,39})\\/([-\\.\\w]{1,100})$/i;e.test(t)&&(t=\"https://github.com/\"+t);var r=yct(t),s=r.resource.split(\".\"),a=null;switch(r.toString=function(N){return n5.stringify(this,N)},r.source=s.length>2?s.slice(1-s.length).join(\".\"):r.source=r.resource,r.git_suffix=/\\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\\/)|(\\/$)/g,\"\").replace(/\\.git$/,\"\")),r.owner=decodeURIComponent(r.user),r.source){case\"git.cloudforge.com\":r.owner=r.user,r.organization=s[0],r.source=\"cloudforge.com\";break;case\"visualstudio.com\":if(r.resource===\"vs-ssh.visualstudio.com\"){a=r.name.split(\"/\"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+\"/\"+a[3]);break}else{a=r.name.split(\"/\"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name=\"_git/\"+r.name):a.length===3?(r.name=a[2],a[0]===\"DefaultCollection\"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+\"/_git/\"+r.name):(r.owner=a[0],r.full_name=r.owner+\"/_git/\"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+\"/\"+r.owner+\"/_git/\"+r.name);break}case\"dev.azure.com\":case\"azure.com\":if(r.resource===\"ssh.dev.azure.com\"){a=r.name.split(\"/\"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split(\"/\"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name=\"_git/\"+r.name):a.length===3?(r.name=a[2],a[0]===\"DefaultCollection\"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+\"/_git/\"+r.name):(r.owner=a[0],r.full_name=r.owner+\"/_git/\"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+\"/\"+r.owner+\"/_git/\"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\\/+/g,\"\")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,\"\"));break}default:a=r.name.split(\"/\");var n=a.length-1;if(a.length>=2){var c=a.indexOf(\"-\",2),f=a.indexOf(\"blob\",2),p=a.indexOf(\"tree\",2),h=a.indexOf(\"commit\",2),E=a.indexOf(\"src\",2),C=a.indexOf(\"raw\",2),S=a.indexOf(\"edit\",2);n=c>0?c-1:f>0?f-1:p>0?p-1:h>0?h-1:E>0?E-1:C>0?C-1:S>0?S-1:n,r.owner=a.slice(0,n).join(\"/\"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref=\"\",r.filepathtype=\"\",r.filepath=\"\";var b=a.length>n&&a[n+1]===\"-\"?n+1:n;a.length>b+2&&[\"raw\",\"src\",\"blob\",\"tree\",\"edit\"].indexOf(a[b+1])>=0&&(r.filepathtype=a[b+1],r.ref=a[b+2],a.length>b+3&&(r.filepath=a.slice(b+3).join(\"/\"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+=\"/\"),r.full_name+=r.name)),r.owner.startsWith(\"scm/\")&&(r.source=\"bitbucket-server\",r.owner=r.owner.replace(\"scm/\",\"\"),r.organization=r.owner,r.full_name=r.owner+\"/\"+r.name);var I=/(projects|users)\\/(.*?)\\/repos\\/(.*?)((\\/.*$)|$)/,T=I.exec(r.pathname);return T!=null&&(r.source=\"bitbucket-server\",T[1]===\"users\"?r.owner=\"~\"+T[2]:r.owner=T[2],r.organization=r.owner,r.name=T[3],a=T[4].split(\"/\"),a.length>1&&([\"raw\",\"browse\"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join(\"/\"))):a[1]===\"commits\"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+\"/\"+r.name,r.query.at?r.ref=r.query.at:r.ref=\"\"),r}n5.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join(\"+\"):t.protocol);var r=t.port?\":\"+t.port:\"\",s=t.user||\"git\",a=t.git_suffix?\".git\":\"\";switch(e){case\"ssh\":return r?\"ssh://\"+s+\"@\"+t.resource+r+\"/\"+t.full_name+a:s+\"@\"+t.resource+\":\"+t.full_name+a;case\"git+ssh\":case\"ssh+git\":case\"ftp\":case\"ftps\":return e+\"://\"+s+\"@\"+t.resource+r+\"/\"+t.full_name+a;case\"http\":case\"https\":var n=t.token?Ect(t):t.user&&(t.protocols.includes(\"http\")||t.protocols.includes(\"https\"))?t.user+\"@\":\"\";return e+\"://\"+n+t.resource+r+\"/\"+Ict(t)+a;default:return t.href}};function Ect(t){switch(t.source){case\"bitbucket.org\":return\"x-token-auth:\"+t.token+\"@\";default:return t.token+\"@\"}}function Ict(t){switch(t.source){case\"bitbucket-server\":return\"scm/\"+t.full_name;default:return\"\"+t.full_name}}Oye.exports=n5});function Fct(t,e){return e===1&&Tct.has(t[0])}function nS(t){let e=Array.isArray(t)?t:Mu(t);return e.map((s,a)=>Qct.test(s)?`[${s}]`:Rct.test(s)&&!Fct(e,a)?`.${s}`:`[${JSON.stringify(s)}]`).join(\"\").replace(/^\\./,\"\")}function Nct(t,e){let r=[];if(e.methodName!==null&&r.push(he.pretty(t,e.methodName,he.Type.CODE)),e.file!==null){let s=[];s.push(he.pretty(t,e.file,he.Type.PATH)),e.line!==null&&(s.push(he.pretty(t,e.line,he.Type.NUMBER)),e.column!==null&&s.push(he.pretty(t,e.column,he.Type.NUMBER))),r.push(`(${s.join(he.pretty(t,\":\",\"grey\"))})`)}return r.join(\" \")}function nF(t,{manifestUpdates:e,reportedErrors:r},{fix:s}={}){let a=new Map,n=new Map,c=[...r.keys()].map(f=>[f,new Map]);for(let[f,p]of[...c,...e]){let h=r.get(f)?.map(b=>({text:b,fixable:!1}))??[],E=!1,C=t.getWorkspaceByCwd(f),S=C.manifest.exportTo({});for(let[b,I]of p){if(I.size>1){let T=[...I].map(([N,U])=>{let W=he.pretty(t.configuration,N,he.Type.INSPECT),ee=U.size>0?Nct(t.configuration,U.values().next().value):null;return ee!==null?`\n${W} at ${ee}`:`\n${W}`}).join(\"\");h.push({text:`Conflict detected in constraint targeting ${he.pretty(t.configuration,b,he.Type.CODE)}; conflicting values are:${T}`,fixable:!1})}else{let[[T]]=I,N=va(S,b);if(JSON.stringify(N)===JSON.stringify(T))continue;if(!s){let U=typeof N>\"u\"?`Missing field ${he.pretty(t.configuration,b,he.Type.CODE)}; expected ${he.pretty(t.configuration,T,he.Type.INSPECT)}`:typeof T>\"u\"?`Extraneous field ${he.pretty(t.configuration,b,he.Type.CODE)} currently set to ${he.pretty(t.configuration,N,he.Type.INSPECT)}`:`Invalid field ${he.pretty(t.configuration,b,he.Type.CODE)}; expected ${he.pretty(t.configuration,T,he.Type.INSPECT)}, found ${he.pretty(t.configuration,N,he.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof T>\"u\"?A0(S,b):Jd(S,b,T),E=!0}E&&a.set(C,S)}h.length>0&&n.set(C,h)}return{changedWorkspaces:a,remainingErrors:n}}function Zye(t,{configuration:e}){let r={children:[]};for(let[s,a]of t){let n=[];for(let f of a){let p=f.text.split(/\\n/);f.fixable&&(p[0]=`${he.pretty(e,\"\\u2699\",\"gray\")} ${p[0]}`),n.push({value:he.tuple(he.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:he.tuple(he.Type.NO_HINT,h)}))})}let c={value:he.tuple(he.Type.LOCATOR,s.anchoredLocator),children:je.sortMap(n,f=>f.value[1])};r.children.push(c)}return r.children=je.sortMap(r.children,s=>s.value[1]),r}var WC,Qct,Rct,Tct,iS=Ze(()=>{Ge();ql();WC=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let s=Object.hasOwn(e,r)?e[r]:void 0;if(typeof s>\"u\")continue;je.getArrayWithDefault(this.indexes[r],s).push(e)}return e}find(e){if(typeof e>\"u\")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let s=[],a;for(let[c,f]of r){let p=c,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>\"u\"){s.push([p,f]);continue}let E=new Set(h.get(f)??[]);if(E.size===0)return[];if(typeof a>\"u\")a=E;else for(let C of a)E.has(C)||a.delete(C);if(a.size===0)break}let n=[...a??[]];return s.length>0&&(n=n.filter(c=>{for(let[f,p]of s)if(!(typeof p<\"u\"?Object.hasOwn(c,f)&&c[f]===p:Object.hasOwn(c,f)===!1))return!1;return!0})),n}},Qct=/^[0-9]+$/,Rct=/^[a-zA-Z0-9_]+$/,Tct=new Set([\"scripts\",...Ut.allDependencies])});var Xye=_((CYt,m5)=>{var Oct;(function(t){var e=function(){return{\"append/2\":[new t.type.Rule(new t.type.Term(\"append\",[new t.type.Var(\"X\"),new t.type.Var(\"L\")]),new t.type.Term(\"foldl\",[new t.type.Term(\"append\",[]),new t.type.Var(\"X\"),new t.type.Term(\"[]\",[]),new t.type.Var(\"L\")]))],\"append/3\":[new t.type.Rule(new t.type.Term(\"append\",[new t.type.Term(\"[]\",[]),new t.type.Var(\"X\"),new t.type.Var(\"X\")]),null),new t.type.Rule(new t.type.Term(\"append\",[new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Var(\"T\")]),new t.type.Var(\"X\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Var(\"S\")])]),new t.type.Term(\"append\",[new t.type.Var(\"T\"),new t.type.Var(\"X\"),new t.type.Var(\"S\")]))],\"member/2\":[new t.type.Rule(new t.type.Term(\"member\",[new t.type.Var(\"X\"),new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"_\")])]),null),new t.type.Rule(new t.type.Term(\"member\",[new t.type.Var(\"X\"),new t.type.Term(\".\",[new t.type.Var(\"_\"),new t.type.Var(\"Xs\")])]),new t.type.Term(\"member\",[new t.type.Var(\"X\"),new t.type.Var(\"Xs\")]))],\"permutation/2\":[new t.type.Rule(new t.type.Term(\"permutation\",[new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"permutation\",[new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Var(\"T\")]),new t.type.Var(\"S\")]),new t.type.Term(\",\",[new t.type.Term(\"permutation\",[new t.type.Var(\"T\"),new t.type.Var(\"P\")]),new t.type.Term(\",\",[new t.type.Term(\"append\",[new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"P\")]),new t.type.Term(\"append\",[new t.type.Var(\"X\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Var(\"Y\")]),new t.type.Var(\"S\")])])]))],\"maplist/2\":[new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Xs\")])]),new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"P\"),new t.type.Var(\"X\")]),new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Var(\"Xs\")])]))],\"maplist/3\":[new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"A\"),new t.type.Var(\"As\")]),new t.type.Term(\".\",[new t.type.Var(\"B\"),new t.type.Var(\"Bs\")])]),new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"P\"),new t.type.Var(\"A\"),new t.type.Var(\"B\")]),new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Var(\"As\"),new t.type.Var(\"Bs\")])]))],\"maplist/4\":[new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"A\"),new t.type.Var(\"As\")]),new t.type.Term(\".\",[new t.type.Var(\"B\"),new t.type.Var(\"Bs\")]),new t.type.Term(\".\",[new t.type.Var(\"C\"),new t.type.Var(\"Cs\")])]),new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"P\"),new t.type.Var(\"A\"),new t.type.Var(\"B\"),new t.type.Var(\"C\")]),new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Var(\"As\"),new t.type.Var(\"Bs\"),new t.type.Var(\"Cs\")])]))],\"maplist/5\":[new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"A\"),new t.type.Var(\"As\")]),new t.type.Term(\".\",[new t.type.Var(\"B\"),new t.type.Var(\"Bs\")]),new t.type.Term(\".\",[new t.type.Var(\"C\"),new t.type.Var(\"Cs\")]),new t.type.Term(\".\",[new t.type.Var(\"D\"),new t.type.Var(\"Ds\")])]),new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"P\"),new t.type.Var(\"A\"),new t.type.Var(\"B\"),new t.type.Var(\"C\"),new t.type.Var(\"D\")]),new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Var(\"As\"),new t.type.Var(\"Bs\"),new t.type.Var(\"Cs\"),new t.type.Var(\"Ds\")])]))],\"maplist/6\":[new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"A\"),new t.type.Var(\"As\")]),new t.type.Term(\".\",[new t.type.Var(\"B\"),new t.type.Var(\"Bs\")]),new t.type.Term(\".\",[new t.type.Var(\"C\"),new t.type.Var(\"Cs\")]),new t.type.Term(\".\",[new t.type.Var(\"D\"),new t.type.Var(\"Ds\")]),new t.type.Term(\".\",[new t.type.Var(\"E\"),new t.type.Var(\"Es\")])]),new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"P\"),new t.type.Var(\"A\"),new t.type.Var(\"B\"),new t.type.Var(\"C\"),new t.type.Var(\"D\"),new t.type.Var(\"E\")]),new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Var(\"As\"),new t.type.Var(\"Bs\"),new t.type.Var(\"Cs\"),new t.type.Var(\"Ds\"),new t.type.Var(\"Es\")])]))],\"maplist/7\":[new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"A\"),new t.type.Var(\"As\")]),new t.type.Term(\".\",[new t.type.Var(\"B\"),new t.type.Var(\"Bs\")]),new t.type.Term(\".\",[new t.type.Var(\"C\"),new t.type.Var(\"Cs\")]),new t.type.Term(\".\",[new t.type.Var(\"D\"),new t.type.Var(\"Ds\")]),new t.type.Term(\".\",[new t.type.Var(\"E\"),new t.type.Var(\"Es\")]),new t.type.Term(\".\",[new t.type.Var(\"F\"),new t.type.Var(\"Fs\")])]),new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"P\"),new t.type.Var(\"A\"),new t.type.Var(\"B\"),new t.type.Var(\"C\"),new t.type.Var(\"D\"),new t.type.Var(\"E\"),new t.type.Var(\"F\")]),new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Var(\"As\"),new t.type.Var(\"Bs\"),new t.type.Var(\"Cs\"),new t.type.Var(\"Ds\"),new t.type.Var(\"Es\"),new t.type.Var(\"Fs\")])]))],\"maplist/8\":[new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"A\"),new t.type.Var(\"As\")]),new t.type.Term(\".\",[new t.type.Var(\"B\"),new t.type.Var(\"Bs\")]),new t.type.Term(\".\",[new t.type.Var(\"C\"),new t.type.Var(\"Cs\")]),new t.type.Term(\".\",[new t.type.Var(\"D\"),new t.type.Var(\"Ds\")]),new t.type.Term(\".\",[new t.type.Var(\"E\"),new t.type.Var(\"Es\")]),new t.type.Term(\".\",[new t.type.Var(\"F\"),new t.type.Var(\"Fs\")]),new t.type.Term(\".\",[new t.type.Var(\"G\"),new t.type.Var(\"Gs\")])]),new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"P\"),new t.type.Var(\"A\"),new t.type.Var(\"B\"),new t.type.Var(\"C\"),new t.type.Var(\"D\"),new t.type.Var(\"E\"),new t.type.Var(\"F\"),new t.type.Var(\"G\")]),new t.type.Term(\"maplist\",[new t.type.Var(\"P\"),new t.type.Var(\"As\"),new t.type.Var(\"Bs\"),new t.type.Var(\"Cs\"),new t.type.Var(\"Ds\"),new t.type.Var(\"Es\"),new t.type.Var(\"Fs\"),new t.type.Var(\"Gs\")])]))],\"include/3\":[new t.type.Rule(new t.type.Term(\"include\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"include\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Var(\"T\")]),new t.type.Var(\"L\")]),new t.type.Term(\",\",[new t.type.Term(\"=..\",[new t.type.Var(\"P\"),new t.type.Var(\"A\")]),new t.type.Term(\",\",[new t.type.Term(\"append\",[new t.type.Var(\"A\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Term(\"[]\",[])]),new t.type.Var(\"B\")]),new t.type.Term(\",\",[new t.type.Term(\"=..\",[new t.type.Var(\"F\"),new t.type.Var(\"B\")]),new t.type.Term(\",\",[new t.type.Term(\";\",[new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"F\")]),new t.type.Term(\",\",[new t.type.Term(\"=\",[new t.type.Var(\"L\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Var(\"S\")])]),new t.type.Term(\"!\",[])])]),new t.type.Term(\"=\",[new t.type.Var(\"L\"),new t.type.Var(\"S\")])]),new t.type.Term(\"include\",[new t.type.Var(\"P\"),new t.type.Var(\"T\"),new t.type.Var(\"S\")])])])])]))],\"exclude/3\":[new t.type.Rule(new t.type.Term(\"exclude\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[]),new t.type.Term(\"[]\",[])]),null),new t.type.Rule(new t.type.Term(\"exclude\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Var(\"T\")]),new t.type.Var(\"S\")]),new t.type.Term(\",\",[new t.type.Term(\"exclude\",[new t.type.Var(\"P\"),new t.type.Var(\"T\"),new t.type.Var(\"E\")]),new t.type.Term(\",\",[new t.type.Term(\"=..\",[new t.type.Var(\"P\"),new t.type.Var(\"L\")]),new t.type.Term(\",\",[new t.type.Term(\"append\",[new t.type.Var(\"L\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Term(\"[]\",[])]),new t.type.Var(\"Q\")]),new t.type.Term(\",\",[new t.type.Term(\"=..\",[new t.type.Var(\"R\"),new t.type.Var(\"Q\")]),new t.type.Term(\";\",[new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"R\")]),new t.type.Term(\",\",[new t.type.Term(\"!\",[]),new t.type.Term(\"=\",[new t.type.Var(\"S\"),new t.type.Var(\"E\")])])]),new t.type.Term(\"=\",[new t.type.Var(\"S\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Var(\"E\")])])])])])])]))],\"foldl/4\":[new t.type.Rule(new t.type.Term(\"foldl\",[new t.type.Var(\"_\"),new t.type.Term(\"[]\",[]),new t.type.Var(\"I\"),new t.type.Var(\"I\")]),null),new t.type.Rule(new t.type.Term(\"foldl\",[new t.type.Var(\"P\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Var(\"T\")]),new t.type.Var(\"I\"),new t.type.Var(\"R\")]),new t.type.Term(\",\",[new t.type.Term(\"=..\",[new t.type.Var(\"P\"),new t.type.Var(\"L\")]),new t.type.Term(\",\",[new t.type.Term(\"append\",[new t.type.Var(\"L\"),new t.type.Term(\".\",[new t.type.Var(\"I\"),new t.type.Term(\".\",[new t.type.Var(\"H\"),new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Term(\"[]\",[])])])]),new t.type.Var(\"L2\")]),new t.type.Term(\",\",[new t.type.Term(\"=..\",[new t.type.Var(\"P2\"),new t.type.Var(\"L2\")]),new t.type.Term(\",\",[new t.type.Term(\"call\",[new t.type.Var(\"P2\")]),new t.type.Term(\"foldl\",[new t.type.Var(\"P\"),new t.type.Var(\"T\"),new t.type.Var(\"X\"),new t.type.Var(\"R\")])])])])]))],\"select/3\":[new t.type.Rule(new t.type.Term(\"select\",[new t.type.Var(\"E\"),new t.type.Term(\".\",[new t.type.Var(\"E\"),new t.type.Var(\"Xs\")]),new t.type.Var(\"Xs\")]),null),new t.type.Rule(new t.type.Term(\"select\",[new t.type.Var(\"E\"),new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Xs\")]),new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Ys\")])]),new t.type.Term(\"select\",[new t.type.Var(\"E\"),new t.type.Var(\"Xs\"),new t.type.Var(\"Ys\")]))],\"sum_list/2\":[new t.type.Rule(new t.type.Term(\"sum_list\",[new t.type.Term(\"[]\",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term(\"sum_list\",[new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Xs\")]),new t.type.Var(\"S\")]),new t.type.Term(\",\",[new t.type.Term(\"sum_list\",[new t.type.Var(\"Xs\"),new t.type.Var(\"Y\")]),new t.type.Term(\"is\",[new t.type.Var(\"S\"),new t.type.Term(\"+\",[new t.type.Var(\"X\"),new t.type.Var(\"Y\")])])]))],\"max_list/2\":[new t.type.Rule(new t.type.Term(\"max_list\",[new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Term(\"[]\",[])]),new t.type.Var(\"X\")]),null),new t.type.Rule(new t.type.Term(\"max_list\",[new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Xs\")]),new t.type.Var(\"S\")]),new t.type.Term(\",\",[new t.type.Term(\"max_list\",[new t.type.Var(\"Xs\"),new t.type.Var(\"Y\")]),new t.type.Term(\";\",[new t.type.Term(\",\",[new t.type.Term(\">=\",[new t.type.Var(\"X\"),new t.type.Var(\"Y\")]),new t.type.Term(\",\",[new t.type.Term(\"=\",[new t.type.Var(\"S\"),new t.type.Var(\"X\")]),new t.type.Term(\"!\",[])])]),new t.type.Term(\"=\",[new t.type.Var(\"S\"),new t.type.Var(\"Y\")])])]))],\"min_list/2\":[new t.type.Rule(new t.type.Term(\"min_list\",[new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Term(\"[]\",[])]),new t.type.Var(\"X\")]),null),new t.type.Rule(new t.type.Term(\"min_list\",[new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Xs\")]),new t.type.Var(\"S\")]),new t.type.Term(\",\",[new t.type.Term(\"min_list\",[new t.type.Var(\"Xs\"),new t.type.Var(\"Y\")]),new t.type.Term(\";\",[new t.type.Term(\",\",[new t.type.Term(\"=<\",[new t.type.Var(\"X\"),new t.type.Var(\"Y\")]),new t.type.Term(\",\",[new t.type.Term(\"=\",[new t.type.Var(\"S\"),new t.type.Var(\"X\")]),new t.type.Term(\"!\",[])])]),new t.type.Term(\"=\",[new t.type.Var(\"S\"),new t.type.Var(\"Y\")])])]))],\"prod_list/2\":[new t.type.Rule(new t.type.Term(\"prod_list\",[new t.type.Term(\"[]\",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term(\"prod_list\",[new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Xs\")]),new t.type.Var(\"S\")]),new t.type.Term(\",\",[new t.type.Term(\"prod_list\",[new t.type.Var(\"Xs\"),new t.type.Var(\"Y\")]),new t.type.Term(\"is\",[new t.type.Var(\"S\"),new t.type.Term(\"*\",[new t.type.Var(\"X\"),new t.type.Var(\"Y\")])])]))],\"last/2\":[new t.type.Rule(new t.type.Term(\"last\",[new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Term(\"[]\",[])]),new t.type.Var(\"X\")]),null),new t.type.Rule(new t.type.Term(\"last\",[new t.type.Term(\".\",[new t.type.Var(\"_\"),new t.type.Var(\"Xs\")]),new t.type.Var(\"X\")]),new t.type.Term(\"last\",[new t.type.Var(\"Xs\"),new t.type.Var(\"X\")]))],\"prefix/2\":[new t.type.Rule(new t.type.Term(\"prefix\",[new t.type.Var(\"Part\"),new t.type.Var(\"Whole\")]),new t.type.Term(\"append\",[new t.type.Var(\"Part\"),new t.type.Var(\"_\"),new t.type.Var(\"Whole\")]))],\"nth0/3\":[new t.type.Rule(new t.type.Term(\"nth0\",[new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\")]),new t.type.Term(\";\",[new t.type.Term(\"->\",[new t.type.Term(\"var\",[new t.type.Var(\"X\")]),new t.type.Term(\"nth\",[new t.type.Num(0,!1),new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"_\")])]),new t.type.Term(\",\",[new t.type.Term(\">=\",[new t.type.Var(\"X\"),new t.type.Num(0,!1)]),new t.type.Term(\",\",[new t.type.Term(\"nth\",[new t.type.Num(0,!1),new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"_\")]),new t.type.Term(\"!\",[])])])]))],\"nth1/3\":[new t.type.Rule(new t.type.Term(\"nth1\",[new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\")]),new t.type.Term(\";\",[new t.type.Term(\"->\",[new t.type.Term(\"var\",[new t.type.Var(\"X\")]),new t.type.Term(\"nth\",[new t.type.Num(1,!1),new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"_\")])]),new t.type.Term(\",\",[new t.type.Term(\">\",[new t.type.Var(\"X\"),new t.type.Num(0,!1)]),new t.type.Term(\",\",[new t.type.Term(\"nth\",[new t.type.Num(1,!1),new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"_\")]),new t.type.Term(\"!\",[])])])]))],\"nth0/4\":[new t.type.Rule(new t.type.Term(\"nth0\",[new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"W\")]),new t.type.Term(\";\",[new t.type.Term(\"->\",[new t.type.Term(\"var\",[new t.type.Var(\"X\")]),new t.type.Term(\"nth\",[new t.type.Num(0,!1),new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"W\")])]),new t.type.Term(\",\",[new t.type.Term(\">=\",[new t.type.Var(\"X\"),new t.type.Num(0,!1)]),new t.type.Term(\",\",[new t.type.Term(\"nth\",[new t.type.Num(0,!1),new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"W\")]),new t.type.Term(\"!\",[])])])]))],\"nth1/4\":[new t.type.Rule(new t.type.Term(\"nth1\",[new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"W\")]),new t.type.Term(\";\",[new t.type.Term(\"->\",[new t.type.Term(\"var\",[new t.type.Var(\"X\")]),new t.type.Term(\"nth\",[new t.type.Num(1,!1),new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"W\")])]),new t.type.Term(\",\",[new t.type.Term(\">\",[new t.type.Var(\"X\"),new t.type.Num(0,!1)]),new t.type.Term(\",\",[new t.type.Term(\"nth\",[new t.type.Num(1,!1),new t.type.Var(\"X\"),new t.type.Var(\"Y\"),new t.type.Var(\"Z\"),new t.type.Var(\"W\")]),new t.type.Term(\"!\",[])])])]))],\"nth/5\":[new t.type.Rule(new t.type.Term(\"nth\",[new t.type.Var(\"N\"),new t.type.Var(\"N\"),new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Xs\")]),new t.type.Var(\"X\"),new t.type.Var(\"Xs\")]),null),new t.type.Rule(new t.type.Term(\"nth\",[new t.type.Var(\"N\"),new t.type.Var(\"O\"),new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Xs\")]),new t.type.Var(\"Y\"),new t.type.Term(\".\",[new t.type.Var(\"X\"),new t.type.Var(\"Ys\")])]),new t.type.Term(\",\",[new t.type.Term(\"is\",[new t.type.Var(\"M\"),new t.type.Term(\"+\",[new t.type.Var(\"N\"),new t.type.Num(1,!1)])]),new t.type.Term(\"nth\",[new t.type.Var(\"M\"),new t.type.Var(\"O\"),new t.type.Var(\"Xs\"),new t.type.Var(\"Y\"),new t.type.Var(\"Ys\")])]))],\"length/2\":function(s,a,n){var c=n.args[0],f=n.args[1];if(!t.type.is_variable(f)&&!t.type.is_integer(f))s.throw_error(t.error.type(\"integer\",f,n.indicator));else if(t.type.is_integer(f)&&f.value<0)s.throw_error(t.error.domain(\"not_less_than_zero\",f,n.indicator));else{var p=new t.type.Term(\"length\",[c,new t.type.Num(0,!1),f]);t.type.is_integer(f)&&(p=new t.type.Term(\",\",[p,new t.type.Term(\"!\",[])])),s.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},\"length/3\":[new t.type.Rule(new t.type.Term(\"length\",[new t.type.Term(\"[]\",[]),new t.type.Var(\"N\"),new t.type.Var(\"N\")]),null),new t.type.Rule(new t.type.Term(\"length\",[new t.type.Term(\".\",[new t.type.Var(\"_\"),new t.type.Var(\"X\")]),new t.type.Var(\"A\"),new t.type.Var(\"N\")]),new t.type.Term(\",\",[new t.type.Term(\"succ\",[new t.type.Var(\"A\"),new t.type.Var(\"B\")]),new t.type.Term(\"length\",[new t.type.Var(\"X\"),new t.type.Var(\"B\"),new t.type.Var(\"N\")])]))],\"replicate/3\":function(s,a,n){var c=n.args[0],f=n.args[1],p=n.args[2];if(t.type.is_variable(f))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(f))s.throw_error(t.error.type(\"integer\",f,n.indicator));else if(f.value<0)s.throw_error(t.error.domain(\"not_less_than_zero\",f,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))s.throw_error(t.error.type(\"list\",p,n.indicator));else{for(var h=new t.type.Term(\"[]\"),E=0;E<f.value;E++)h=new t.type.Term(\".\",[c,h]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term(\"=\",[h,p])),a.substitution,a)])}},\"sort/2\":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type(\"list\",f,n.indicator));else{for(var p=[],h=c;h.indicator===\"./2\";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))s.throw_error(t.error.type(\"list\",c,n.indicator));else{for(var E=p.sort(t.compare),C=E.length-1;C>0;C--)E[C].equals(E[C-1])&&E.splice(C,1);for(var S=new t.type.Term(\"[]\"),C=E.length-1;C>=0;C--)S=new t.type.Term(\".\",[E[C],S]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term(\"=\",[S,f])),a.substitution,a)])}}},\"msort/2\":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type(\"list\",f,n.indicator));else{for(var p=[],h=c;h.indicator===\"./2\";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))s.throw_error(t.error.type(\"list\",c,n.indicator));else{for(var E=p.sort(t.compare),C=new t.type.Term(\"[]\"),S=E.length-1;S>=0;S--)C=new t.type.Term(\".\",[E[S],C]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term(\"=\",[C,f])),a.substitution,a)])}}},\"keysort/2\":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type(\"list\",f,n.indicator));else{for(var p=[],h,E=c;E.indicator===\"./2\";){if(h=E.args[0],t.type.is_variable(h)){s.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!==\"-/2\"){s.throw_error(t.error.type(\"pair\",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))s.throw_error(t.error.type(\"list\",c,n.indicator));else{for(var C=p.sort(t.compare),S=new t.type.Term(\"[]\"),b=C.length-1;b>=0;b--)S=new t.type.Term(\".\",[new t.type.Term(\"-\",[C[b],C[b].pair]),S]),delete C[b].pair;s.prepend([new t.type.State(a.goal.replace(new t.type.Term(\"=\",[S,f])),a.substitution,a)])}}},\"take/3\":function(s,a,n){var c=n.args[0],f=n.args[1],p=n.args[2];if(t.type.is_variable(f)||t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(f))s.throw_error(t.error.type(\"list\",f,n.indicator));else if(!t.type.is_integer(c))s.throw_error(t.error.type(\"integer\",c,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))s.throw_error(t.error.type(\"list\",p,n.indicator));else{for(var h=c.value,E=[],C=f;h>0&&C.indicator===\"./2\";)E.push(C.args[0]),C=C.args[1],h--;if(h===0){for(var S=new t.type.Term(\"[]\"),h=E.length-1;h>=0;h--)S=new t.type.Term(\".\",[E[h],S]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term(\"=\",[S,p])),a.substitution,a)])}}},\"drop/3\":function(s,a,n){var c=n.args[0],f=n.args[1],p=n.args[2];if(t.type.is_variable(f)||t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(f))s.throw_error(t.error.type(\"list\",f,n.indicator));else if(!t.type.is_integer(c))s.throw_error(t.error.type(\"integer\",c,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))s.throw_error(t.error.type(\"list\",p,n.indicator));else{for(var h=c.value,E=[],C=f;h>0&&C.indicator===\"./2\";)E.push(C.args[0]),C=C.args[1],h--;h===0&&s.prepend([new t.type.State(a.goal.replace(new t.type.Term(\"=\",[C,p])),a.substitution,a)])}},\"reverse/2\":function(s,a,n){var c=n.args[0],f=n.args[1],p=t.type.is_instantiated_list(c),h=t.type.is_instantiated_list(f);if(t.type.is_variable(c)&&t.type.is_variable(f))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(c)&&!t.type.is_fully_list(c))s.throw_error(t.error.type(\"list\",c,n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type(\"list\",f,n.indicator));else if(!p&&!h)s.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?c:f,C=new t.type.Term(\"[]\",[]);E.indicator===\"./2\";)C=new t.type.Term(\".\",[E.args[0],C]),E=E.args[1];s.prepend([new t.type.State(a.goal.replace(new t.type.Term(\"=\",[C,p?f:c])),a.substitution,a)])}},\"list_to_set/2\":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else{for(var p=c,h=[];p.indicator===\"./2\";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!==\"[]/0\")s.throw_error(t.error.type(\"list\",c,n.indicator));else{for(var E=[],C=new t.type.Term(\"[]\",[]),S,b=0;b<h.length;b++){S=!1;for(var I=0;I<E.length&&!S;I++)S=t.compare(h[b],E[I])===0;S||E.push(h[b])}for(b=E.length-1;b>=0;b--)C=new t.type.Term(\".\",[E[b],C]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term(\"=\",[f,C])),a.substitution,a)])}}}}},r=[\"append/2\",\"append/3\",\"member/2\",\"permutation/2\",\"maplist/2\",\"maplist/3\",\"maplist/4\",\"maplist/5\",\"maplist/6\",\"maplist/7\",\"maplist/8\",\"include/3\",\"exclude/3\",\"foldl/4\",\"sum_list/2\",\"max_list/2\",\"min_list/2\",\"prod_list/2\",\"last/2\",\"prefix/2\",\"nth0/3\",\"nth1/3\",\"nth0/4\",\"nth1/4\",\"length/2\",\"replicate/3\",\"select/3\",\"sort/2\",\"msort/2\",\"keysort/2\",\"take/3\",\"drop/3\",\"reverse/2\",\"list_to_set/2\"];typeof m5<\"u\"?m5.exports=function(s){t=s,new t.type.Module(\"lists\",e(),r)}:new t.type.Module(\"lists\",e(),r)})(Oct)});var pEe=_($r=>{\"use strict\";var Pm=process.platform===\"win32\",y5=\"aes-256-cbc\",Lct=\"sha256\",tEe=\"The current environment doesn't support interactive reading from TTY.\",si=Ie(\"fs\"),$ye=process.binding(\"tty_wrap\").TTY,I5=Ie(\"child_process\"),V0=Ie(\"path\"),C5={prompt:\"> \",hideEchoBack:!1,mask:\"*\",limit:[],limitMessage:\"Input another, please.$<( [)limit(])>\",defaultInput:\"\",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:\"utf8\",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},Zp=\"none\",Xu,VC,eEe=!1,Y0,sF,E5,Mct=0,D5=\"\",Dm=[],oF,rEe=!1,w5=!1,sS=!1;function nEe(t){function e(r){return r.replace(/[^\\w\\u0080-\\uFFFF]/g,function(s){return\"#\"+s.charCodeAt(0)+\";\"})}return sF.concat(function(r){var s=[];return Object.keys(r).forEach(function(a){r[a]===\"boolean\"?t[a]&&s.push(\"--\"+a):r[a]===\"string\"&&t[a]&&s.push(\"--\"+a,e(t[a]))}),s}({display:\"string\",displayOnly:\"boolean\",keyIn:\"boolean\",hideEchoBack:\"boolean\",mask:\"string\",limit:\"string\",caseSensitive:\"boolean\"}))}function Uct(t,e){function r(U){var W,ee=\"\",ie;for(E5=E5||Ie(\"os\").tmpdir();;){W=V0.join(E5,U+ee);try{ie=si.openSync(W,\"wx\")}catch(ue){if(ue.code===\"EEXIST\"){ee++;continue}else throw ue}si.closeSync(ie);break}return W}var s,a,n,c={},f,p,h=r(\"readline-sync.stdout\"),E=r(\"readline-sync.stderr\"),C=r(\"readline-sync.exit\"),S=r(\"readline-sync.done\"),b=Ie(\"crypto\"),I,T,N;I=b.createHash(Lct),I.update(\"\"+process.pid+Mct+++Math.random()),N=I.digest(\"hex\"),T=b.createDecipher(y5,N),s=nEe(t),Pm?(a=process.env.ComSpec||\"cmd.exe\",process.env.Q='\"',n=[\"/V:ON\",\"/S\",\"/C\",\"(%Q%\"+a+\"%Q% /V:ON /S /C %Q%%Q%\"+Y0+\"%Q%\"+s.map(function(U){return\" %Q%\"+U+\"%Q%\"}).join(\"\")+\" & (echo !ERRORLEVEL!)>%Q%\"+C+\"%Q%%Q%) 2>%Q%\"+E+\"%Q% |%Q%\"+process.execPath+\"%Q% %Q%\"+__dirname+\"\\\\encrypt.js%Q% %Q%\"+y5+\"%Q% %Q%\"+N+\"%Q% >%Q%\"+h+\"%Q% & (echo 1)>%Q%\"+S+\"%Q%\"]):(a=\"/bin/sh\",n=[\"-c\",'(\"'+Y0+'\"'+s.map(function(U){return\" '\"+U.replace(/'/g,\"'\\\\''\")+\"'\"}).join(\"\")+'; echo $?>\"'+C+'\") 2>\"'+E+'\" |\"'+process.execPath+'\" \"'+__dirname+'/encrypt.js\" \"'+y5+'\" \"'+N+'\" >\"'+h+'\"; echo 1 >\"'+S+'\"']),sS&&sS(\"_execFileSync\",s);try{I5.spawn(a,n,e)}catch(U){c.error=new Error(U.message),c.error.method=\"_execFileSync - spawn\",c.error.program=a,c.error.args=n}for(;si.readFileSync(S,{encoding:t.encoding}).trim()!==\"1\";);return(f=si.readFileSync(C,{encoding:t.encoding}).trim())===\"0\"?c.input=T.update(si.readFileSync(h,{encoding:\"binary\"}),\"hex\",t.encoding)+T.final(t.encoding):(p=si.readFileSync(E,{encoding:t.encoding}).trim(),c.error=new Error(tEe+(p?`\n`+p:\"\")),c.error.method=\"_execFileSync\",c.error.program=a,c.error.args=n,c.error.extMessage=p,c.error.exitCode=+f),si.unlinkSync(h),si.unlinkSync(E),si.unlinkSync(C),si.unlinkSync(S),c}function _ct(t){var e,r={},s,a={env:process.env,encoding:t.encoding};if(Y0||(Pm?process.env.PSModulePath?(Y0=\"powershell.exe\",sF=[\"-ExecutionPolicy\",\"Bypass\",\"-File\",__dirname+\"\\\\read.ps1\"]):(Y0=\"cscript.exe\",sF=[\"//nologo\",__dirname+\"\\\\read.cs.js\"]):(Y0=\"/bin/sh\",sF=[__dirname+\"/read.sh\"])),Pm&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),I5.execFileSync){e=nEe(t),sS&&sS(\"execFileSync\",e);try{r.input=I5.execFileSync(Y0,e,a)}catch(n){s=n.stderr?(n.stderr+\"\").trim():\"\",r.error=new Error(tEe+(s?`\n`+s:\"\")),r.error.method=\"execFileSync\",r.error.program=Y0,r.error.args=e,r.error.extMessage=s,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=Uct(t,a);return r.error||(r.input=r.input.replace(/^\\s*'|'\\s*$/g,\"\"),t.display=\"\"),r}function B5(t){var e=\"\",r=t.display,s=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=_ct(t);if(n.error)throw n.error;return n.input}return w5&&w5(t),function(){var n,c,f;function p(){return n||(n=process.binding(\"fs\"),c=process.binding(\"constants\")),n}if(typeof Zp==\"string\")if(Zp=null,Pm){if(f=function(h){var E=h.replace(/^\\D+/,\"\").split(\".\"),C=0;return(E[0]=+E[0])&&(C+=E[0]*1e4),(E[1]=+E[1])&&(C+=E[1]*100),(E[2]=+E[2])&&(C+=E[2]),C}(process.version),!(f>=20302&&f<40204||f>=5e4&&f<50100||f>=50600&&f<60200)&&process.stdin.isTTY)process.stdin.pause(),Zp=process.stdin.fd,VC=process.stdin._handle;else try{Zp=p().open(\"CONIN$\",c.O_RDWR,parseInt(\"0666\",8)),VC=new $ye(Zp,!0)}catch{}if(process.stdout.isTTY)Xu=process.stdout.fd;else{try{Xu=si.openSync(\"\\\\\\\\.\\\\CON\",\"w\")}catch{}if(typeof Xu!=\"number\")try{Xu=p().open(\"CONOUT$\",c.O_RDWR,parseInt(\"0666\",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{Zp=si.openSync(\"/dev/tty\",\"r\"),VC=process.stdin._handle}catch{}}else try{Zp=si.openSync(\"/dev/tty\",\"r\"),VC=new $ye(Zp,!1)}catch{}if(process.stdout.isTTY)Xu=process.stdout.fd;else try{Xu=si.openSync(\"/dev/tty\",\"w\")}catch{}}}(),function(){var n,c,f=!t.hideEchoBack&&!t.keyIn,p,h,E,C,S;oF=\"\";function b(I){return I===eEe?!0:VC.setRawMode(I)!==0?!1:(eEe=I,!0)}if(rEe||!VC||typeof Xu!=\"number\"&&(t.display||!f)){e=a();return}if(t.display&&(si.writeSync(Xu,t.display),t.display=\"\"),!t.displayOnly){if(!b(!f)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(c=new RegExp(\"[^\"+t.limit+\"]\",\"g\"+(t.caseSensitive?\"\":\"i\")));;){E=0;try{E=si.readSync(Zp,p,0,h)}catch(I){if(I.code!==\"EOF\"){b(!1),e+=a();return}}if(E>0?(C=p.toString(t.encoding,0,E),oF+=C):(C=`\n`,oF+=\"\\0\"),C&&typeof(S=(C.match(/^(.*?)[\\r\\n]/)||[])[1])==\"string\"&&(C=S,n=!0),C&&(C=C.replace(/[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]/g,\"\")),C&&c&&(C=C.replace(c,\"\")),C&&(f||(t.hideEchoBack?t.mask&&si.writeSync(Xu,new Array(C.length+1).join(t.mask)):si.writeSync(Xu,C)),e+=C),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!f&&!s&&si.writeSync(Xu,`\n`),b(!1)}}(),t.print&&!s&&t.print(r+(t.displayOnly?\"\":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+`\n`),t.encoding),t.displayOnly?\"\":D5=t.keepWhitespace||t.keyIn?e:e.trim()}function Hct(t,e){var r=[];function s(a){a!=null&&(Array.isArray(a)?a.forEach(s):(!e||e(a))&&r.push(a))}return s(t),r}function P5(t){return t.replace(/[\\x00-\\x7f]/g,function(e){return\"\\\\x\"+(\"00\"+e.charCodeAt().toString(16)).substr(-2)})}function Vs(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]==\"boolean\"&&(r=t.shift(),r&&(e=Object.keys(C5),t.unshift(C5))),t.reduce(function(s,a){return a==null||(a.hasOwnProperty(\"noEchoBack\")&&!a.hasOwnProperty(\"hideEchoBack\")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty(\"noTrim\")&&!a.hasOwnProperty(\"keepWhitespace\")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var c;if(a.hasOwnProperty(n))switch(c=a[n],n){case\"mask\":case\"limitMessage\":case\"defaultInput\":case\"encoding\":c=c!=null?c+\"\":\"\",c&&n!==\"limitMessage\"&&(c=c.replace(/[\\r\\n]/g,\"\")),s[n]=c;break;case\"bufferSize\":!isNaN(c=parseInt(c,10))&&typeof c==\"number\"&&(s[n]=c);break;case\"displayOnly\":case\"keyIn\":case\"hideEchoBack\":case\"caseSensitive\":case\"keepWhitespace\":case\"history\":case\"cd\":s[n]=!!c;break;case\"limit\":case\"trueValue\":case\"falseValue\":s[n]=Hct(c,function(f){var p=typeof f;return p===\"string\"||p===\"number\"||p===\"function\"||f instanceof RegExp}).map(function(f){return typeof f==\"string\"?f.replace(/[\\r\\n]/g,\"\"):f});break;case\"print\":case\"phContent\":case\"preCheck\":s[n]=typeof c==\"function\"?c:void 0;break;case\"prompt\":case\"display\":s[n]=c??\"\";break}})),s},{})}function v5(t,e,r){return e.some(function(s){var a=typeof s;return a===\"string\"?r?t===s:t.toLowerCase()===s.toLowerCase():a===\"number\"?parseFloat(t)===s:a===\"function\"?s(t):s instanceof RegExp?s.test(t):!1})}function b5(t,e){var r=V0.normalize(Pm?(process.env.HOMEDRIVE||\"\")+(process.env.HOMEPATH||\"\"):process.env.HOME||\"\").replace(/[\\/\\\\]+$/,\"\");return t=V0.normalize(t),e?t.replace(/^~(?=\\/|\\\\|$)/,r):t.replace(new RegExp(\"^\"+P5(r)+\"(?=\\\\/|\\\\\\\\|$)\",Pm?\"i\":\"\"),\"~\")}function JC(t,e){var r=\"(?:\\\\(([\\\\s\\\\S]*?)\\\\))?(\\\\w+|.-.)(?:\\\\(([\\\\s\\\\S]*?)\\\\))?\",s=new RegExp(\"(\\\\$)?(\\\\$<\"+r+\">)\",\"g\"),a=new RegExp(\"(\\\\$)?(\\\\$\\\\{\"+r+\"\\\\})\",\"g\");function n(c,f,p,h,E,C){var S;return f||typeof(S=e(E))!=\"string\"?p:S?(h||\"\")+S+(C||\"\"):\"\"}return t.replace(s,n).replace(a,n)}function iEe(t,e,r){var s,a=[],n=-1,c=0,f=\"\",p;function h(E,C){return C.length>3?(E.push(C[0]+\"...\"+C[C.length-1]),p=!0):C.length&&(E=E.concat(C)),E}return s=t.reduce(function(E,C){return E.concat((C+\"\").split(\"\"))},[]).reduce(function(E,C){var S,b;return e||(C=C.toLowerCase()),S=/^\\d$/.test(C)?1:/^[A-Z]$/.test(C)?2:/^[a-z]$/.test(C)?3:0,r&&S===0?f+=C:(b=C.charCodeAt(0),S&&S===n&&b===c+1?a.push(C):(E=h(E,a),a=[C],n=S),c=b),E},[]),s=h(s,a),f&&(s.push(f),p=!0),{values:s,suppressed:p}}function sEe(t,e){return t.join(t.length>2?\", \":e?\" / \":\"/\")}function oEe(t,e){var r,s,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!=\"string\")switch(t){case\"hideEchoBack\":case\"mask\":case\"defaultInput\":case\"caseSensitive\":case\"keepWhitespace\":case\"encoding\":case\"bufferSize\":case\"history\":case\"cd\":r=e.hasOwnProperty(t)?typeof e[t]==\"boolean\"?e[t]?\"on\":\"off\":e[t]+\"\":\"\";break;case\"limit\":case\"trueValue\":case\"falseValue\":s=e[e.hasOwnProperty(t+\"Src\")?t+\"Src\":t],e.keyIn?(a=iEe(s,e.caseSensitive),s=a.values):s=s.filter(function(c){var f=typeof c;return f===\"string\"||f===\"number\"}),r=sEe(s,a.suppressed);break;case\"limitCount\":case\"limitCountNotZero\":r=e[e.hasOwnProperty(\"limitSrc\")?\"limitSrc\":\"limit\"].length,r=r||t!==\"limitCountNotZero\"?r+\"\":\"\";break;case\"lastInput\":r=D5;break;case\"cwd\":case\"CWD\":case\"cwdHome\":r=process.cwd(),t===\"CWD\"?r=V0.basename(r):t===\"cwdHome\"&&(r=b5(r));break;case\"date\":case\"time\":case\"localeDate\":case\"localeTime\":r=new Date()[\"to\"+t.replace(/^./,function(c){return c.toUpperCase()})+\"String\"]();break;default:typeof(n=(t.match(/^history_m(\\d+)$/)||[])[1])==\"string\"&&(r=Dm[Dm.length-n]||\"\")}return r}function aEe(t){var e=/^(.)-(.)$/.exec(t),r=\"\",s,a,n,c;if(!e)return null;for(s=e[1].charCodeAt(0),a=e[2].charCodeAt(0),c=s<a?1:-1,n=s;n!==a+c;n+=c)r+=String.fromCharCode(n);return r}function S5(t){var e=new RegExp(/(\\s*)(?:(\"|')(.*?)(?:\\2|$)|(\\S+))/g),r,s=\"\",a=[],n;for(t=t.trim();r=e.exec(t);)n=r[3]||r[4]||\"\",r[1]&&(a.push(s),s=\"\"),s+=n;return s&&a.push(s),a}function lEe(t,e){return e.trueValue.length&&v5(t,e.trueValue,e.caseSensitive)?!0:e.falseValue.length&&v5(t,e.falseValue,e.caseSensitive)?!1:t}function cEe(t){var e,r,s,a,n,c,f;function p(E){return oEe(E,t)}function h(E){t.display+=(/[^\\r\\n]$/.test(t.display)?`\n`:\"\")+E}for(t.limitSrc=t.limit,t.displaySrc=t.display,t.limit=\"\",t.display=JC(t.display+\"\",p);;){if(e=B5(t),r=!1,s=\"\",t.defaultInput&&!e&&(e=t.defaultInput),t.history&&((a=/^\\s*\\!(?:\\!|-1)(:p)?\\s*$/.exec(e))?(n=Dm[0]||\"\",a[1]?r=!0:e=n,h(n+`\n`),r||(t.displayOnly=!0,B5(t),t.displayOnly=!1)):e&&e!==Dm[Dm.length-1]&&(Dm=[e])),!r&&t.cd&&e)switch(c=S5(e),c[0].toLowerCase()){case\"cd\":if(c[1])try{process.chdir(b5(c[1],!0))}catch(E){h(E+\"\")}r=!0;break;case\"pwd\":h(process.cwd()),r=!0;break}if(!r&&t.preCheck&&(f=t.preCheck(e,t),e=f.res,f.forceNext&&(r=!0)),!r){if(!t.limitSrc.length||v5(e,t.limitSrc,t.caseSensitive))break;t.limitMessage&&(s=JC(t.limitMessage,p))}h((s?s+`\n`:\"\")+JC(t.displaySrc+\"\",p))}return lEe(e,t)}$r._DBG_set_useExt=function(t){rEe=t};$r._DBG_set_checkOptions=function(t){w5=t};$r._DBG_set_checkMethod=function(t){sS=t};$r._DBG_clearHistory=function(){D5=\"\",Dm=[]};$r.setDefaultOptions=function(t){return C5=Vs(!0,t),Vs(!0)};$r.question=function(t,e){return cEe(Vs(Vs(!0,e),{display:t}))};$r.prompt=function(t){var e=Vs(!0,t);return e.display=e.prompt,cEe(e)};$r.keyIn=function(t,e){var r=Vs(Vs(!0,e),{display:t,keyIn:!0,keepWhitespace:!0});return r.limitSrc=r.limit.filter(function(s){var a=typeof s;return a===\"string\"||a===\"number\"}).map(function(s){return JC(s+\"\",aEe)}),r.limit=P5(r.limitSrc.join(\"\")),[\"trueValue\",\"falseValue\"].forEach(function(s){r[s]=r[s].reduce(function(a,n){var c=typeof n;return c===\"string\"||c===\"number\"?a=a.concat((n+\"\").split(\"\")):a.push(n),a},[])}),r.display=JC(r.display+\"\",function(s){return oEe(s,r)}),lEe(B5(r),r)};$r.questionEMail=function(t,e){return t==null&&(t=\"Input e-mail address: \"),$r.question(t,Vs({hideEchoBack:!1,limit:/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,limitMessage:\"Input valid e-mail address, please.\",trueValue:null,falseValue:null},e,{keepWhitespace:!1,cd:!1}))};$r.questionNewPassword=function(t,e){var r,s,a,n=Vs({hideEchoBack:!0,mask:\"*\",limitMessage:`It can include: $<charlist>\nAnd the length must be: $<length>`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(b){return b===\"charlist\"?r.text:b===\"length\"?s+\"...\"+a:null}}),c,f,p,h,E,C,S;for(e=e||{},c=JC(e.charlist?e.charlist+\"\":\"$<!-~>\",aEe),(isNaN(s=parseInt(e.min,10))||typeof s!=\"number\")&&(s=12),(isNaN(a=parseInt(e.max,10))||typeof a!=\"number\")&&(a=24),h=new RegExp(\"^[\"+P5(c)+\"]{\"+s+\",\"+a+\"}$\"),r=iEe([c],n.caseSensitive,!0),r.text=sEe(r.values,r.suppressed),f=e.confirmMessage!=null?e.confirmMessage:\"Reinput a same one to confirm it: \",p=e.unmatchMessage!=null?e.unmatchMessage:\"It differs from first one. Hit only the Enter key if you want to retry from first one.\",t==null&&(t=\"Input new password: \"),E=n.limitMessage;!S;)n.limit=h,n.limitMessage=E,C=$r.question(t,n),n.limit=[C,\"\"],n.limitMessage=p,S=$r.question(f,n);return C};function uEe(t,e,r){var s;function a(n){return s=r(n),!isNaN(s)&&typeof s==\"number\"}return $r.question(t,Vs({limitMessage:\"Input valid number, please.\"},e,{limit:a,cd:!1})),s}$r.questionInt=function(t,e){return uEe(t,e,function(r){return parseInt(r,10)})};$r.questionFloat=function(t,e){return uEe(t,e,parseFloat)};$r.questionPath=function(t,e){var r,s=\"\",a=Vs({hideEchoBack:!1,limitMessage:`$<error(\n)>Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var c,f,p;n=b5(n,!0),s=\"\";function h(E){E.split(/\\/|\\\\/).reduce(function(C,S){var b=V0.resolve(C+=S+V0.sep);if(!si.existsSync(b))si.mkdirSync(b);else if(!si.statSync(b).isDirectory())throw new Error(\"Non directory already exists: \"+b);return C},\"\")}try{if(c=si.existsSync(n),r=c?si.realpathSync(n):V0.resolve(n),!e.hasOwnProperty(\"exists\")&&!c||typeof e.exists==\"boolean\"&&e.exists!==c)return s=(c?\"Already exists\":\"No such file or directory\")+\": \"+r,!1;if(!c&&e.create&&(e.isDirectory?h(r):(h(V0.dirname(r)),si.closeSync(si.openSync(r,\"w\"))),r=si.realpathSync(r)),c&&(e.min||e.max||e.isFile||e.isDirectory)){if(f=si.statSync(r),e.isFile&&!f.isFile())return s=\"Not file: \"+r,!1;if(e.isDirectory&&!f.isDirectory())return s=\"Not directory: \"+r,!1;if(e.min&&f.size<+e.min||e.max&&f.size>+e.max)return s=\"Size \"+f.size+\" is out of range: \"+r,!1}if(typeof e.validate==\"function\"&&(p=e.validate(r))!==!0)return typeof p==\"string\"&&(s=p),!1}catch(E){return s=E+\"\",!1}return!0},phContent:function(n){return n===\"error\"?s:n!==\"min\"&&n!==\"max\"?null:e.hasOwnProperty(n)?e[n]+\"\":\"\"}});return e=e||{},t==null&&(t='Input path (you can \"cd\" and \"pwd\"): '),$r.question(t,a),r};function fEe(t,e){var r={},s={};return typeof t==\"object\"?(Object.keys(t).forEach(function(a){typeof t[a]==\"function\"&&(s[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=S5(a),n=r.args[0]||\"\",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!==\"_\"&&s.hasOwnProperty(n)?s[n].apply(a,r.args.slice(1)):s.hasOwnProperty(\"_\")?s._.apply(a,r.args):null,{res:a,forceNext:!1}},s.hasOwnProperty(\"_\")||(r.limit=function(){var a=r.args[0]||\"\";return e.caseSensitive||(a=a.toLowerCase()),s.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=S5(a),r.hRes=typeof t==\"function\"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}$r.promptCL=function(t,e){var r=Vs({hideEchoBack:!1,limitMessage:\"Requested command is not available.\",caseSensitive:!1,history:!0},e),s=fEe(t,r);return r.limit=s.limit,r.preCheck=s.preCheck,$r.prompt(r),s.args};$r.promptLoop=function(t,e){for(var r=Vs({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t($r.prompt(r)););};$r.promptCLLoop=function(t,e){var r=Vs({hideEchoBack:!1,limitMessage:\"Requested command is not available.\",caseSensitive:!1,history:!0},e),s=fEe(t,r);for(r.limit=s.limit,r.preCheck=s.preCheck;$r.prompt(r),!s.hRes;);};$r.promptSimShell=function(t){return $r.prompt(Vs({hideEchoBack:!1,history:!0},t,{prompt:function(){return Pm?\"$<cwd>>\":(process.env.USER||\"\")+(process.env.HOSTNAME?\"@\"+process.env.HOSTNAME.replace(/\\..*$/,\"\"):\"\")+\":$<cwdHome>$ \"}()}))};function AEe(t,e,r){var s;return t==null&&(t=\"Are you sure? \"),(!e||e.guide!==!1)&&(t+=\"\")&&(t=t.replace(/\\s*:?\\s*$/,\"\")+\" [y/n]: \"),s=$r.keyIn(t,Vs(e,{hideEchoBack:!1,limit:r,trueValue:\"y\",falseValue:\"n\",caseSensitive:!1})),typeof s==\"boolean\"?s:\"\"}$r.keyInYN=function(t,e){return AEe(t,e)};$r.keyInYNStrict=function(t,e){return AEe(t,e,\"yn\")};$r.keyInPause=function(t,e){t==null&&(t=\"Continue...\"),(!e||e.guide!==!1)&&(t+=\"\")&&(t=t.replace(/\\s+$/,\"\")+\" (Hit any key)\"),$r.keyIn(t,Vs({limit:null},e,{hideEchoBack:!0,mask:\"\"}))};$r.keyInSelect=function(t,e,r){var s=Vs({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p===\"itemsCount\"?t.length+\"\":p===\"firstItem\"?(t[0]+\"\").trim():p===\"lastItem\"?(t[t.length-1]+\"\").trim():null}}),a=\"\",n={},c=49,f=`\n`;if(!Array.isArray(t)||!t.length||t.length>35)throw\"`items` must be Array (max length: 35).\";return t.forEach(function(p,h){var E=String.fromCharCode(c);a+=E,n[E]=h,f+=\"[\"+E+\"] \"+(p+\"\").trim()+`\n`,c=c===57?97:c+1}),(!r||r.cancel!==!1)&&(a+=\"0\",n[0]=-1,f+=\"[0] \"+(r&&r.cancel!=null&&typeof r.cancel!=\"boolean\"?(r.cancel+\"\").trim():\"CANCEL\")+`\n`),s.limit=a,f+=`\n`,e==null&&(e=\"Choose one from list: \"),(e+=\"\")&&((!r||r.guide!==!1)&&(e=e.replace(/\\s*:?\\s*$/,\"\")+\" [$<limit>]: \"),f+=e),n[$r.keyIn(f,s).toLowerCase()]};$r.getRawInput=function(){return oF};function oS(t,e){var r;return e.length&&(r={},r[t]=e[0]),$r.setDefaultOptions(r)[t]}$r.setPrint=function(){return oS(\"print\",arguments)};$r.setPrompt=function(){return oS(\"prompt\",arguments)};$r.setEncoding=function(){return oS(\"encoding\",arguments)};$r.setMask=function(){return oS(\"mask\",arguments)};$r.setBufferSize=function(){return oS(\"bufferSize\",arguments)}});var x5=_((BYt,ec)=>{(function(){var t={major:0,minor:2,patch:66,status:\"beta\"};tau_file_system={files:{},open:function(w,P,y){var F=tau_file_system.files[w];if(!F){if(y===\"read\")return null;F={path:w,text:\"\",type:P,get:function(z,Z){return Z===this.text.length||Z>this.text.length?\"end_of_file\":this.text.substring(Z,Z+z)},put:function(z,Z){return Z===\"end_of_file\"?(this.text+=z,!0):Z===\"past_end_of_file\"?null:(this.text=this.text.substring(0,Z)+z+this.text.substring(Z+z.length),!0)},get_byte:function(z){if(z===\"end_of_stream\")return-1;var Z=Math.floor(z/2);if(this.text.length<=Z)return-1;var $=n(this.text[Math.floor(z/2)],0);return z%2===0?$&255:$/256>>>0},put_byte:function(z,Z){var $=Z===\"end_of_stream\"?this.text.length:Math.floor(Z/2);if(this.text.length<$)return null;var oe=this.text.length===$?-1:n(this.text[Math.floor(Z/2)],0);return Z%2===0?(oe=oe/256>>>0,oe=(oe&255)<<8|z&255):(oe=oe&255,oe=(z&255)<<8|oe&255),this.text.length===$?this.text+=c(oe):this.text=this.text.substring(0,$)+c(oe)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var z=tau_file_system.files[this.path];return z?!0:null}},tau_file_system.files[w]=F}return y===\"write\"&&(F.text=\"\"),F}},tau_user_input={buffer:\"\",get:function(w,P){for(var y;tau_user_input.buffer.length<w;)y=window.prompt(),y&&(tau_user_input.buffer+=y);return y=tau_user_input.buffer.substr(0,w),tau_user_input.buffer=tau_user_input.buffer.substr(w),y}},tau_user_output={put:function(w,P){return console.log(w),!0},flush:function(){return!0}},nodejs_file_system={open:function(w,P,y){var F=Ie(\"fs\"),z=F.openSync(w,y[0]);return y===\"read\"&&!F.existsSync(w)?null:{get:function(Z,$){var oe=new Buffer(Z);return F.readSync(z,oe,0,Z,$),oe.toString()},put:function(Z,$){var oe=Buffer.from(Z);if($===\"end_of_file\")F.writeSync(z,oe);else{if($===\"past_end_of_file\")return null;F.writeSync(z,oe,0,oe.length,$)}return!0},get_byte:function(Z){return null},put_byte:function(Z,$){return null},flush:function(){return!0},close:function(){return F.closeSync(z),!0}}}},nodejs_user_input={buffer:\"\",get:function(w,P){for(var y,F=pEe();nodejs_user_input.buffer.length<w;)nodejs_user_input.buffer+=F.question();return y=nodejs_user_input.buffer.substr(0,w),nodejs_user_input.buffer=nodejs_user_input.buffer.substr(w),y}},nodejs_user_output={put:function(w,P){return process.stdout.write(w),!0},flush:function(){return!0}};var e;Array.prototype.indexOf?e=function(w,P){return w.indexOf(P)}:e=function(w,P){for(var y=w.length,F=0;F<y;F++)if(P===w[F])return F;return-1};var r=function(w,P){if(w.length!==0){for(var y=w[0],F=w.length,z=1;z<F;z++)y=P(y,w[z]);return y}},s;Array.prototype.map?s=function(w,P){return w.map(P)}:s=function(w,P){for(var y=[],F=w.length,z=0;z<F;z++)y.push(P(w[z]));return y};var a;Array.prototype.filter?a=function(w,P){return w.filter(P)}:a=function(w,P){for(var y=[],F=w.length,z=0;z<F;z++)P(w[z])&&y.push(w[z]);return y};var n;String.prototype.codePointAt?n=function(w,P){return w.codePointAt(P)}:n=function(w,P){return w.charCodeAt(P)};var c;String.fromCodePoint?c=function(){return String.fromCodePoint.apply(null,arguments)}:c=function(){return String.fromCharCode.apply(null,arguments)};var f=0,p=1,h=/(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)|\\\\x([0-9a-fA-F]+)\\\\|\\\\([0-7]+)\\\\|(\\\\\\\\)|(\\\\')|('')|(\\\\\")|(\\\\`)|(\\\\.)|(.)/g,E={\"\\\\a\":7,\"\\\\b\":8,\"\\\\f\":12,\"\\\\n\":10,\"\\\\r\":13,\"\\\\t\":9,\"\\\\v\":11};function C(w){var P=[],y=!1;return w.replace(h,function(F,z,Z,$,oe,xe,Re,lt,Ct,qt,ir,bt,gn,br,Ir,Or,nn){switch(!0){case Ct!==void 0:return P.push(parseInt(Ct,16)),\"\";case qt!==void 0:return P.push(parseInt(qt,8)),\"\";case ir!==void 0:case bt!==void 0:case gn!==void 0:case br!==void 0:case Ir!==void 0:return P.push(n(F.substr(1),0)),\"\";case nn!==void 0:return P.push(n(nn,0)),\"\";case Or!==void 0:y=!0;default:return P.push(E[F]),\"\"}}),y?null:P}function S(w,P){var y=\"\";if(w.length<2)return w;try{w=w.replace(/\\\\([0-7]+)\\\\/g,function($,oe){return c(parseInt(oe,8))}),w=w.replace(/\\\\x([0-9a-fA-F]+)\\\\/g,function($,oe){return c(parseInt(oe,16))})}catch{return null}for(var F=0;F<w.length;F++){var z=w.charAt(F),Z=w.charAt(F+1);if(z===P&&Z===P)F++,y+=P;else if(z===\"\\\\\")if([\"a\",\"b\",\"f\",\"n\",\"r\",\"t\",\"v\",\"'\",'\"',\"\\\\\",\"a\",\"\\b\",\"\\f\",`\n`,\"\\r\",\"\t\",\"\\v\"].indexOf(Z)!==-1)switch(F+=1,Z){case\"a\":y+=\"a\";break;case\"b\":y+=\"\\b\";break;case\"f\":y+=\"\\f\";break;case\"n\":y+=`\n`;break;case\"r\":y+=\"\\r\";break;case\"t\":y+=\"\t\";break;case\"v\":y+=\"\\v\";break;case\"'\":y+=\"'\";break;case'\"':y+='\"';break;case\"\\\\\":y+=\"\\\\\";break}else return null;else y+=z}return y}function b(w){for(var P=\"\",y=0;y<w.length;y++)switch(w.charAt(y)){case\"'\":P+=\"\\\\'\";break;case\"\\\\\":P+=\"\\\\\\\\\";break;case\"\\b\":P+=\"\\\\b\";break;case\"\\f\":P+=\"\\\\f\";break;case`\n`:P+=\"\\\\n\";break;case\"\\r\":P+=\"\\\\r\";break;case\"\t\":P+=\"\\\\t\";break;case\"\\v\":P+=\"\\\\v\";break;default:P+=w.charAt(y);break}return P}function I(w){var P=w.substr(2);switch(w.substr(0,2).toLowerCase()){case\"0x\":return parseInt(P,16);case\"0b\":return parseInt(P,2);case\"0o\":return parseInt(P,8);case\"0'\":return C(P)[0];default:return parseFloat(w)}}var T={whitespace:/^\\s*(?:(?:%.*)|(?:\\/\\*(?:\\n|\\r|.)*?\\*\\/)|(?:\\s+))\\s*/,variable:/^(?:[A-Z_][a-zA-Z0-9_]*)/,atom:/^(\\!|,|;|[a-z][0-9a-zA-Z_]*|[#\\$\\&\\*\\+\\-\\.\\/\\:\\<\\=\\>\\?\\@\\^\\~\\\\]+|'(?:[^']*?(?:\\\\(?:x?\\d+)?\\\\)*(?:'')*(?:\\\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\\\[abfnrtv\\\\'\"`]|\\\\x?\\d+\\\\|[^\\\\])|\\d+(?:\\.\\d+(?:[eE][+-]?\\d+)?)?)/,string:/^(?:\"([^\"]|\"\"|\\\\\")*\"|`([^`]|``|\\\\`)*`)/,l_brace:/^(?:\\[)/,r_brace:/^(?:\\])/,l_bracket:/^(?:\\{)/,r_bracket:/^(?:\\})/,bar:/^(?:\\|)/,l_paren:/^(?:\\()/,r_paren:/^(?:\\))/};function N(w,P){return w.get_flag(\"char_conversion\").id===\"on\"?P.replace(/./g,function(y){return w.get_char_conversion(y)}):P}function U(w){this.thread=w,this.text=\"\",this.tokens=[]}U.prototype.set_last_tokens=function(w){return this.tokens=w},U.prototype.new_text=function(w){this.text=w,this.tokens=[]},U.prototype.get_tokens=function(w){var P,y=0,F=0,z=0,Z=[],$=!1;if(w){var oe=this.tokens[w-1];y=oe.len,P=N(this.thread,this.text.substr(oe.len)),F=oe.line,z=oe.start}else P=this.text;if(/^\\s*$/.test(P))return null;for(;P!==\"\";){var xe=[],Re=!1;if(/^\\n/.exec(P)!==null){F++,z=0,y++,P=P.replace(/\\n/,\"\"),$=!0;continue}for(var lt in T)if(T.hasOwnProperty(lt)){var Ct=T[lt].exec(P);Ct&&xe.push({value:Ct[0],name:lt,matches:Ct})}if(!xe.length)return this.set_last_tokens([{value:P,matches:[],name:\"lexical\",line:F,start:z}]);var oe=r(xe,function(br,Ir){return br.value.length>=Ir.value.length?br:Ir});switch(oe.start=z,oe.line=F,P=P.replace(oe.value,\"\"),z+=oe.value.length,y+=oe.value.length,oe.name){case\"atom\":oe.raw=oe.value,oe.value.charAt(0)===\"'\"&&(oe.value=S(oe.value.substr(1,oe.value.length-2),\"'\"),oe.value===null&&(oe.name=\"lexical\",oe.value=\"unknown escape sequence\"));break;case\"number\":oe.float=oe.value.substring(0,2)!==\"0x\"&&oe.value.match(/[.eE]/)!==null&&oe.value!==\"0'.\",oe.value=I(oe.value),oe.blank=Re;break;case\"string\":var qt=oe.value.charAt(0);oe.value=S(oe.value.substr(1,oe.value.length-2),qt),oe.value===null&&(oe.name=\"lexical\",oe.value=\"unknown escape sequence\");break;case\"whitespace\":var ir=Z[Z.length-1];ir&&(ir.space=!0),Re=!0;continue;case\"r_bracket\":Z.length>0&&Z[Z.length-1].name===\"l_bracket\"&&(oe=Z.pop(),oe.name=\"atom\",oe.value=\"{}\",oe.raw=\"{}\",oe.space=!1);break;case\"r_brace\":Z.length>0&&Z[Z.length-1].name===\"l_brace\"&&(oe=Z.pop(),oe.name=\"atom\",oe.value=\"[]\",oe.raw=\"[]\",oe.space=!1);break}oe.len=y,Z.push(oe),Re=!1}var bt=this.set_last_tokens(Z);return bt.length===0?null:bt};function W(w,P,y,F,z){if(!P[y])return{type:f,value:x.error.syntax(P[y-1],\"expression expected\",!0)};var Z;if(F===\"0\"){var $=P[y];switch($.name){case\"number\":return{type:p,len:y+1,value:new x.type.Num($.value,$.float)};case\"variable\":return{type:p,len:y+1,value:new x.type.Var($.value)};case\"string\":var oe;switch(w.get_flag(\"double_quotes\").id){case\"atom\":oe=new j($.value,[]);break;case\"codes\":oe=new j(\"[]\",[]);for(var xe=$.value.length-1;xe>=0;xe--)oe=new j(\".\",[new x.type.Num(n($.value,xe),!1),oe]);break;case\"chars\":oe=new j(\"[]\",[]);for(var xe=$.value.length-1;xe>=0;xe--)oe=new j(\".\",[new x.type.Term($.value.charAt(xe),[]),oe]);break}return{type:p,len:y+1,value:oe};case\"l_paren\":var bt=W(w,P,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:P[bt.len]&&P[bt.len].name===\"r_paren\"?(bt.len++,bt):{type:f,derived:!0,value:x.error.syntax(P[bt.len]?P[bt.len]:P[bt.len-1],\") or operator expected\",!P[bt.len])};case\"l_bracket\":var bt=W(w,P,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:P[bt.len]&&P[bt.len].name===\"r_bracket\"?(bt.len++,bt.value=new j(\"{}\",[bt.value]),bt):{type:f,derived:!0,value:x.error.syntax(P[bt.len]?P[bt.len]:P[bt.len-1],\"} or operator expected\",!P[bt.len])}}var Re=ee(w,P,y,z);return Re.type===p||Re.derived||(Re=ie(w,P,y),Re.type===p||Re.derived)?Re:{type:f,derived:!1,value:x.error.syntax(P[y],\"unexpected token\")}}var lt=w.__get_max_priority(),Ct=w.__get_next_priority(F),qt=y;if(P[y].name===\"atom\"&&P[y+1]&&(P[y].space||P[y+1].name!==\"l_paren\")){var $=P[y++],ir=w.__lookup_operator_classes(F,$.value);if(ir&&ir.indexOf(\"fy\")>-1){var bt=W(w,P,y,F,z);if(bt.type!==f)return $.value===\"-\"&&!$.space&&x.type.is_number(bt.value)?{value:new x.type.Num(-bt.value.value,bt.value.is_float),len:bt.len,type:p}:{value:new x.type.Term($.value,[bt.value]),len:bt.len,type:p};Z=bt}else if(ir&&ir.indexOf(\"fx\")>-1){var bt=W(w,P,y,Ct,z);if(bt.type!==f)return{value:new x.type.Term($.value,[bt.value]),len:bt.len,type:p};Z=bt}}y=qt;var bt=W(w,P,y,Ct,z);if(bt.type===p){y=bt.len;var $=P[y];if(P[y]&&(P[y].name===\"atom\"&&w.__lookup_operator_classes(F,$.value)||P[y].name===\"bar\"&&w.__lookup_operator_classes(F,\"|\"))){var gn=Ct,br=F,ir=w.__lookup_operator_classes(F,$.value);if(ir.indexOf(\"xf\")>-1)return{value:new x.type.Term($.value,[bt.value]),len:++bt.len,type:p};if(ir.indexOf(\"xfx\")>-1){var Ir=W(w,P,y+1,gn,z);return Ir.type===p?{value:new x.type.Term($.value,[bt.value,Ir.value]),len:Ir.len,type:p}:(Ir.derived=!0,Ir)}else if(ir.indexOf(\"xfy\")>-1){var Ir=W(w,P,y+1,br,z);return Ir.type===p?{value:new x.type.Term($.value,[bt.value,Ir.value]),len:Ir.len,type:p}:(Ir.derived=!0,Ir)}else if(bt.type!==f)for(;;){y=bt.len;var $=P[y];if($&&$.name===\"atom\"&&w.__lookup_operator_classes(F,$.value)){var ir=w.__lookup_operator_classes(F,$.value);if(ir.indexOf(\"yf\")>-1)bt={value:new x.type.Term($.value,[bt.value]),len:++y,type:p};else if(ir.indexOf(\"yfx\")>-1){var Ir=W(w,P,++y,gn,z);if(Ir.type===f)return Ir.derived=!0,Ir;y=Ir.len,bt={value:new x.type.Term($.value,[bt.value,Ir.value]),len:y,type:p}}else break}else break}}else Z={type:f,value:x.error.syntax(P[bt.len-1],\"operator expected\")};return bt}return bt}function ee(w,P,y,F){if(!P[y]||P[y].name===\"atom\"&&P[y].raw===\".\"&&!F&&(P[y].space||!P[y+1]||P[y+1].name!==\"l_paren\"))return{type:f,derived:!1,value:x.error.syntax(P[y-1],\"unfounded token\")};var z=P[y],Z=[];if(P[y].name===\"atom\"&&P[y].raw!==\",\"){if(y++,P[y-1].space)return{type:p,len:y,value:new x.type.Term(z.value,Z)};if(P[y]&&P[y].name===\"l_paren\"){if(P[y+1]&&P[y+1].name===\"r_paren\")return{type:f,derived:!0,value:x.error.syntax(P[y+1],\"argument expected\")};var $=W(w,P,++y,\"999\",!0);if($.type===f)return $.derived?$:{type:f,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],\"argument expected\",!P[y])};for(Z.push($.value),y=$.len;P[y]&&P[y].name===\"atom\"&&P[y].value===\",\";){if($=W(w,P,y+1,\"999\",!0),$.type===f)return $.derived?$:{type:f,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],\"argument expected\",!P[y+1])};Z.push($.value),y=$.len}if(P[y]&&P[y].name===\"r_paren\")y++;else return{type:f,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],\", or ) expected\",!P[y])}}return{type:p,len:y,value:new x.type.Term(z.value,Z)}}return{type:f,derived:!1,value:x.error.syntax(P[y],\"term expected\")}}function ie(w,P,y){if(!P[y])return{type:f,derived:!1,value:x.error.syntax(P[y-1],\"[ expected\")};if(P[y]&&P[y].name===\"l_brace\"){var F=W(w,P,++y,\"999\",!0),z=[F.value],Z=void 0;if(F.type===f)return P[y]&&P[y].name===\"r_brace\"?{type:p,len:y+1,value:new x.type.Term(\"[]\",[])}:{type:f,derived:!0,value:x.error.syntax(P[y],\"] expected\")};for(y=F.len;P[y]&&P[y].name===\"atom\"&&P[y].value===\",\";){if(F=W(w,P,y+1,\"999\",!0),F.type===f)return F.derived?F:{type:f,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],\"argument expected\",!P[y+1])};z.push(F.value),y=F.len}var $=!1;if(P[y]&&P[y].name===\"bar\"){if($=!0,F=W(w,P,y+1,\"999\",!0),F.type===f)return F.derived?F:{type:f,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],\"argument expected\",!P[y+1])};Z=F.value,y=F.len}return P[y]&&P[y].name===\"r_brace\"?{type:p,len:y+1,value:g(z,Z)}:{type:f,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],$?\"] expected\":\", or | or ] expected\",!P[y])}}return{type:f,derived:!1,value:x.error.syntax(P[y],\"list expected\")}}function ue(w,P,y){var F=P[y].line,z=W(w,P,y,w.__get_max_priority(),!1),Z=null,$;if(z.type!==f)if(y=z.len,P[y]&&P[y].name===\"atom\"&&P[y].raw===\".\")if(y++,x.type.is_term(z.value)){if(z.value.indicator===\":-/2\"?(Z=new x.type.Rule(z.value.args[0],Ce(z.value.args[1])),$={value:Z,len:y,type:p}):z.value.indicator===\"-->/2\"?(Z=pe(new x.type.Rule(z.value.args[0],z.value.args[1]),w),Z.body=Ce(Z.body),$={value:Z,len:y,type:x.type.is_rule(Z)?p:f}):(Z=new x.type.Rule(z.value,null),$={value:Z,len:y,type:p}),Z){var oe=Z.singleton_variables();oe.length>0&&w.throw_warning(x.warning.singleton(oe,Z.head.indicator,F))}return $}else return{type:f,value:x.error.syntax(P[y],\"callable expected\")};else return{type:f,value:x.error.syntax(P[y]?P[y]:P[y-1],\". or operator expected\")};return z}function le(w,P,y){y=y||{},y.from=y.from?y.from:\"$tau-js\",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var F=new U(w),z={},Z;F.new_text(P);var $=0,oe=F.get_tokens($);do{if(oe===null||!oe[$])break;var xe=ue(w,oe,$);if(xe.type===f)return new j(\"throw\",[xe.value]);if(xe.value.body===null&&xe.value.head.indicator===\"?-/1\"){var Re=new it(w.session);Re.add_goal(xe.value.head.args[0]),Re.answer(function(Ct){x.type.is_error(Ct)?w.throw_warning(Ct.args[0]):(Ct===!1||Ct===null)&&w.throw_warning(x.warning.failed_goal(xe.value.head.args[0],xe.len))}),$=xe.len;var lt=!0}else if(xe.value.body===null&&xe.value.head.indicator===\":-/1\"){var lt=w.run_directive(xe.value.head.args[0]);$=xe.len,xe.value.head.args[0].indicator===\"char_conversion/2\"&&(oe=F.get_tokens($),$=0)}else{Z=xe.value.head.indicator,y.reconsult!==!1&&z[Z]!==!0&&!w.is_multifile_predicate(Z)&&(w.session.rules[Z]=a(w.session.rules[Z]||[],function(qt){return qt.dynamic}),z[Z]=!0);var lt=w.add_rule(xe.value,y);$=xe.len}if(!lt)return lt}while(!0);return!0}function me(w,P){var y=new U(w);y.new_text(P);var F=0;do{var z=y.get_tokens(F);if(z===null)break;var Z=W(w,z,0,w.__get_max_priority(),!1);if(Z.type!==f){var $=Z.len,oe=$;if(z[$]&&z[$].name===\"atom\"&&z[$].raw===\".\")w.add_goal(Ce(Z.value));else{var xe=z[$];return new j(\"throw\",[x.error.syntax(xe||z[$-1],\". or operator expected\",!xe)])}F=Z.len+1}else return new j(\"throw\",[Z.value])}while(!0);return!0}function pe(w,P){w=w.rename(P);var y=P.next_free_variable(),F=Be(w.body,y,P);return F.error?F.value:(w.body=F.value,w.head.args=w.head.args.concat([y,F.variable]),w.head=new j(w.head.id,w.head.args),w)}function Be(w,P,y){var F;if(x.type.is_term(w)&&w.indicator===\"!/0\")return{value:w,variable:P,error:!1};if(x.type.is_term(w)&&w.indicator===\",/2\"){var z=Be(w.args[0],P,y);if(z.error)return z;var Z=Be(w.args[1],z.variable,y);return Z.error?Z:{value:new j(\",\",[z.value,Z.value]),variable:Z.variable,error:!1}}else{if(x.type.is_term(w)&&w.indicator===\"{}/1\")return{value:w.args[0],variable:P,error:!1};if(x.type.is_empty_list(w))return{value:new j(\"true\",[]),variable:P,error:!1};if(x.type.is_list(w)){F=y.next_free_variable();for(var $=w,oe;$.indicator===\"./2\";)oe=$,$=$.args[1];return x.type.is_variable($)?{value:x.error.instantiation(\"DCG\"),variable:P,error:!0}:x.type.is_empty_list($)?(oe.args[1]=F,{value:new j(\"=\",[P,w]),variable:F,error:!1}):{value:x.error.type(\"list\",w,\"DCG\"),variable:P,error:!0}}else return x.type.is_callable(w)?(F=y.next_free_variable(),w.args=w.args.concat([P,F]),w=new j(w.id,w.args),{value:w,variable:F,error:!1}):{value:x.error.type(\"callable\",w,\"DCG\"),variable:P,error:!0}}}function Ce(w){return x.type.is_variable(w)?new j(\"call\",[w]):x.type.is_term(w)&&[\",/2\",\";/2\",\"->/2\"].indexOf(w.indicator)!==-1?new j(w.id,[Ce(w.args[0]),Ce(w.args[1])]):w}function g(w,P){for(var y=P||new x.type.Term(\"[]\",[]),F=w.length-1;F>=0;F--)y=new x.type.Term(\".\",[w[F],y]);return y}function we(w,P){for(var y=w.length-1;y>=0;y--)w[y]===P&&w.splice(y,1)}function ye(w){for(var P={},y=[],F=0;F<w.length;F++)w[F]in P||(y.push(w[F]),P[w[F]]=!0);return y}function Ae(w,P,y,F){if(w.session.rules[y]!==null){for(var z=0;z<w.session.rules[y].length;z++)if(w.session.rules[y][z]===F){w.session.rules[y].splice(z,1),w.success(P);break}}}function se(w){return function(P,y,F){var z=F.args[0],Z=F.args.slice(1,w);if(x.type.is_variable(z))P.throw_error(x.error.instantiation(P.level));else if(!x.type.is_callable(z))P.throw_error(x.error.type(\"callable\",z,P.level));else{var $=new j(z.id,z.args.concat(Z));P.prepend([new be(y.goal.replace($),y.substitution,y)])}}}function X(w){for(var P=w.length-1;P>=0;P--)if(w.charAt(P)===\"/\")return new j(\"/\",[new j(w.substring(0,P)),new Te(parseInt(w.substring(P+1)),!1)])}function De(w){this.id=w}function Te(w,P){this.is_float=P!==void 0?P:parseInt(w)!==w,this.value=this.is_float?w:parseInt(w)}var mt=0;function j(w,P,y){this.ref=y||++mt,this.id=w,this.args=P||[],this.indicator=w+\"/\"+this.args.length}var rt=0;function Fe(w,P,y,F,z,Z){this.id=rt++,this.stream=w,this.mode=P,this.alias=y,this.type=F!==void 0?F:\"text\",this.reposition=z!==void 0?z:!0,this.eof_action=Z!==void 0?Z:\"eof_code\",this.position=this.mode===\"append\"?\"end_of_stream\":0,this.output=this.mode===\"write\"||this.mode===\"append\",this.input=this.mode===\"read\"}function Ne(w){w=w||{},this.links=w}function be(w,P,y){P=P||new Ne,y=y||null,this.goal=w,this.substitution=P,this.parent=y}function Ve(w,P,y){this.head=w,this.body=P,this.dynamic=y||!1}function ke(w){w=w===void 0||w<=0?1e3:w,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new it(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=w,this.streams={user_input:new Fe(typeof ec<\"u\"&&ec.exports?nodejs_user_input:tau_user_input,\"read\",\"user_input\",\"text\",!1,\"reset\"),user_output:new Fe(typeof ec<\"u\"&&ec.exports?nodejs_user_output:tau_user_output,\"write\",\"user_output\",\"text\",!1,\"eof_code\")},this.file_system=typeof ec<\"u\"&&ec.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(P){return P.substitution},this.format_error=function(P){return P.goal},this.flag={bounded:x.flag.bounded.value,max_integer:x.flag.max_integer.value,min_integer:x.flag.min_integer.value,integer_rounding_function:x.flag.integer_rounding_function.value,char_conversion:x.flag.char_conversion.value,debug:x.flag.debug.value,max_arity:x.flag.max_arity.value,unknown:x.flag.unknown.value,double_quotes:x.flag.double_quotes.value,occurs_check:x.flag.occurs_check.value,dialect:x.flag.dialect.value,version_data:x.flag.version_data.value,nodejs:x.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{\":-\":[\"fx\",\"xfx\"],\"-->\":[\"xfx\"],\"?-\":[\"fx\"]},1100:{\";\":[\"xfy\"]},1050:{\"->\":[\"xfy\"]},1e3:{\",\":[\"xfy\"]},900:{\"\\\\+\":[\"fy\"]},700:{\"=\":[\"xfx\"],\"\\\\=\":[\"xfx\"],\"==\":[\"xfx\"],\"\\\\==\":[\"xfx\"],\"@<\":[\"xfx\"],\"@=<\":[\"xfx\"],\"@>\":[\"xfx\"],\"@>=\":[\"xfx\"],\"=..\":[\"xfx\"],is:[\"xfx\"],\"=:=\":[\"xfx\"],\"=\\\\=\":[\"xfx\"],\"<\":[\"xfx\"],\"=<\":[\"xfx\"],\">\":[\"xfx\"],\">=\":[\"xfx\"]},600:{\":\":[\"xfy\"]},500:{\"+\":[\"yfx\"],\"-\":[\"yfx\"],\"/\\\\\":[\"yfx\"],\"\\\\/\":[\"yfx\"]},400:{\"*\":[\"yfx\"],\"/\":[\"yfx\"],\"//\":[\"yfx\"],rem:[\"yfx\"],mod:[\"yfx\"],\"<<\":[\"yfx\"],\">>\":[\"yfx\"]},200:{\"**\":[\"xfx\"],\"^\":[\"xfy\"],\"-\":[\"fy\"],\"+\":[\"fy\"],\"\\\\\":[\"fy\"]}}}function it(w){this.epoch=Date.now(),this.session=w,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level=\"top_level/0\",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function Ue(w,P,y){this.id=w,this.rules=P,this.exports=y,x.module[w]=this}Ue.prototype.exports_predicate=function(w){return this.exports.indexOf(w)!==-1},De.prototype.unify=function(w,P){if(P&&e(w.variables(),this.id)!==-1&&!x.type.is_variable(w))return null;var y={};return y[this.id]=w,new Ne(y)},Te.prototype.unify=function(w,P){return x.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float?new Ne:null},j.prototype.unify=function(w,P){if(x.type.is_term(w)&&this.indicator===w.indicator){for(var y=new Ne,F=0;F<this.args.length;F++){var z=x.unify(this.args[F].apply(y),w.args[F].apply(y),P);if(z===null)return null;for(var Z in z.links)y.links[Z]=z.links[Z];y=y.apply(z)}return y}return null},Fe.prototype.unify=function(w,P){return x.type.is_stream(w)&&this.id===w.id?new Ne:null},De.prototype.toString=function(w){return this.id},Te.prototype.toString=function(w){return this.is_float&&e(this.value.toString(),\".\")===-1?this.value+\".0\":this.value.toString()},j.prototype.toString=function(w,P,y){if(w=w||{},w.quoted=w.quoted===void 0?!0:w.quoted,w.ignore_ops=w.ignore_ops===void 0?!1:w.ignore_ops,w.numbervars=w.numbervars===void 0?!1:w.numbervars,P=P===void 0?1200:P,y=y===void 0?\"\":y,w.numbervars&&this.indicator===\"$VAR/1\"&&x.type.is_integer(this.args[0])&&this.args[0].value>=0){var F=this.args[0].value,z=Math.floor(F/26),Z=F%26;return\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"[Z]+(z!==0?z:\"\")}switch(this.indicator){case\"[]/0\":case\"{}/0\":case\"!/0\":return this.id;case\"{}/1\":return\"{\"+this.args[0].toString(w)+\"}\";case\"./2\":for(var $=\"[\"+this.args[0].toString(w),oe=this.args[1];oe.indicator===\"./2\";)$+=\", \"+oe.args[0].toString(w),oe=oe.args[1];return oe.indicator!==\"[]/0\"&&($+=\"|\"+oe.toString(w)),$+=\"]\",$;case\",/2\":return\"(\"+this.args[0].toString(w)+\", \"+this.args[1].toString(w)+\")\";default:var xe=this.id,Re=w.session?w.session.lookup_operator(this.id,this.args.length):null;if(w.session===void 0||w.ignore_ops||Re===null)return w.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(xe)&&xe!==\"{}\"&&xe!==\"[]\"&&(xe=\"'\"+b(xe)+\"'\"),xe+(this.args.length?\"(\"+s(this.args,function(ir){return ir.toString(w)}).join(\", \")+\")\":\"\");var lt=Re.priority>P.priority||Re.priority===P.priority&&(Re.class===\"xfy\"&&this.indicator!==P.indicator||Re.class===\"yfx\"&&this.indicator!==P.indicator||this.indicator===P.indicator&&Re.class===\"yfx\"&&y===\"right\"||this.indicator===P.indicator&&Re.class===\"xfy\"&&y===\"left\");Re.indicator=this.indicator;var Ct=lt?\"(\":\"\",qt=lt?\")\":\"\";return this.args.length===0?\"(\"+this.id+\")\":[\"fy\",\"fx\"].indexOf(Re.class)!==-1?Ct+xe+\" \"+this.args[0].toString(w,Re)+qt:[\"yf\",\"xf\"].indexOf(Re.class)!==-1?Ct+this.args[0].toString(w,Re)+\" \"+xe+qt:Ct+this.args[0].toString(w,Re,\"left\")+\" \"+this.id+\" \"+this.args[1].toString(w,Re,\"right\")+qt}},Fe.prototype.toString=function(w){return\"<stream>(\"+this.id+\")\"},Ne.prototype.toString=function(w){var P=\"{\";for(var y in this.links)this.links.hasOwnProperty(y)&&(P!==\"{\"&&(P+=\", \"),P+=y+\"/\"+this.links[y].toString(w));return P+=\"}\",P},be.prototype.toString=function(w){return this.goal===null?\"<\"+this.substitution.toString(w)+\">\":\"<\"+this.goal.toString(w)+\", \"+this.substitution.toString(w)+\">\"},Ve.prototype.toString=function(w){return this.body?this.head.toString(w)+\" :- \"+this.body.toString(w)+\".\":this.head.toString(w)+\".\"},ke.prototype.toString=function(w){for(var P=\"\",y=0;y<this.modules.length;y++)P+=\":- use_module(library(\"+this.modules[y]+`)).\n`;P+=`\n`;for(key in this.rules)for(y=0;y<this.rules[key].length;y++)P+=this.rules[key][y].toString(w),P+=`\n`;return P},De.prototype.clone=function(){return new De(this.id)},Te.prototype.clone=function(){return new Te(this.value,this.is_float)},j.prototype.clone=function(){return new j(this.id,s(this.args,function(w){return w.clone()}))},Fe.prototype.clone=function(){return new Stram(this.stream,this.mode,this.alias,this.type,this.reposition,this.eof_action)},Ne.prototype.clone=function(){var w={};for(var P in this.links)this.links.hasOwnProperty(P)&&(w[P]=this.links[P].clone());return new Ne(w)},be.prototype.clone=function(){return new be(this.goal.clone(),this.substitution.clone(),this.parent)},Ve.prototype.clone=function(){return new Ve(this.head.clone(),this.body!==null?this.body.clone():null)},De.prototype.equals=function(w){return x.type.is_variable(w)&&this.id===w.id},Te.prototype.equals=function(w){return x.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float},j.prototype.equals=function(w){if(!x.type.is_term(w)||this.indicator!==w.indicator)return!1;for(var P=0;P<this.args.length;P++)if(!this.args[P].equals(w.args[P]))return!1;return!0},Fe.prototype.equals=function(w){return x.type.is_stream(w)&&this.id===w.id},Ne.prototype.equals=function(w){var P;if(!x.type.is_substitution(w))return!1;for(P in this.links)if(this.links.hasOwnProperty(P)&&(!w.links[P]||!this.links[P].equals(w.links[P])))return!1;for(P in w.links)if(w.links.hasOwnProperty(P)&&!this.links[P])return!1;return!0},be.prototype.equals=function(w){return x.type.is_state(w)&&this.goal.equals(w.goal)&&this.substitution.equals(w.substitution)&&this.parent===w.parent},Ve.prototype.equals=function(w){return x.type.is_rule(w)&&this.head.equals(w.head)&&(this.body===null&&w.body===null||this.body!==null&&this.body.equals(w.body))},De.prototype.rename=function(w){return w.get_free_variable(this)},Te.prototype.rename=function(w){return this},j.prototype.rename=function(w){return new j(this.id,s(this.args,function(P){return P.rename(w)}))},Fe.prototype.rename=function(w){return this},Ve.prototype.rename=function(w){return new Ve(this.head.rename(w),this.body!==null?this.body.rename(w):null)},De.prototype.variables=function(){return[this.id]},Te.prototype.variables=function(){return[]},j.prototype.variables=function(){return[].concat.apply([],s(this.args,function(w){return w.variables()}))},Fe.prototype.variables=function(){return[]},Ve.prototype.variables=function(){return this.body===null?this.head.variables():this.head.variables().concat(this.body.variables())},De.prototype.apply=function(w){return w.lookup(this.id)?w.lookup(this.id):this},Te.prototype.apply=function(w){return this},j.prototype.apply=function(w){if(this.indicator===\"./2\"){for(var P=[],y=this;y.indicator===\"./2\";)P.push(y.args[0].apply(w)),y=y.args[1];for(var F=y.apply(w),z=P.length-1;z>=0;z--)F=new j(\".\",[P[z],F]);return F}return new j(this.id,s(this.args,function(Z){return Z.apply(w)}),this.ref)},Fe.prototype.apply=function(w){return this},Ve.prototype.apply=function(w){return new Ve(this.head.apply(w),this.body!==null?this.body.apply(w):null)},Ne.prototype.apply=function(w){var P,y={};for(P in this.links)this.links.hasOwnProperty(P)&&(y[P]=this.links[P].apply(w));return new Ne(y)},j.prototype.select=function(){for(var w=this;w.indicator===\",/2\";)w=w.args[0];return w},j.prototype.replace=function(w){return this.indicator===\",/2\"?this.args[0].indicator===\",/2\"?new j(\",\",[this.args[0].replace(w),this.args[1]]):w===null?this.args[1]:new j(\",\",[w,this.args[1]]):w},j.prototype.search=function(w){if(x.type.is_term(w)&&w.ref!==void 0&&this.ref===w.ref)return!0;for(var P=0;P<this.args.length;P++)if(x.type.is_term(this.args[P])&&this.args[P].search(w))return!0;return!1},ke.prototype.get_current_input=function(){return this.current_input},it.prototype.get_current_input=function(){return this.session.get_current_input()},ke.prototype.get_current_output=function(){return this.current_output},it.prototype.get_current_output=function(){return this.session.get_current_output()},ke.prototype.set_current_input=function(w){this.current_input=w},it.prototype.set_current_input=function(w){return this.session.set_current_input(w)},ke.prototype.set_current_output=function(w){this.current_input=w},it.prototype.set_current_output=function(w){return this.session.set_current_output(w)},ke.prototype.get_stream_by_alias=function(w){return this.streams[w]},it.prototype.get_stream_by_alias=function(w){return this.session.get_stream_by_alias(w)},ke.prototype.file_system_open=function(w,P,y){return this.file_system.open(w,P,y)},it.prototype.file_system_open=function(w,P,y){return this.session.file_system_open(w,P,y)},ke.prototype.get_char_conversion=function(w){return this.__char_conversion[w]||w},it.prototype.get_char_conversion=function(w){return this.session.get_char_conversion(w)},ke.prototype.parse=function(w){return this.thread.parse(w)},it.prototype.parse=function(w){var P=new U(this);P.new_text(w);var y=P.get_tokens();if(y===null)return!1;var F=W(this,y,0,this.__get_max_priority(),!1);return F.len!==y.length?!1:{value:F.value,expr:F,tokens:y}},ke.prototype.get_flag=function(w){return this.flag[w]},it.prototype.get_flag=function(w){return this.session.get_flag(w)},ke.prototype.add_rule=function(w,P){return P=P||{},P.from=P.from?P.from:\"$tau-js\",this.src_predicates[w.head.indicator]=P.from,this.rules[w.head.indicator]||(this.rules[w.head.indicator]=[]),this.rules[w.head.indicator].push(w),this.public_predicates.hasOwnProperty(w.head.indicator)||(this.public_predicates[w.head.indicator]=!1),!0},it.prototype.add_rule=function(w,P){return this.session.add_rule(w,P)},ke.prototype.run_directive=function(w){this.thread.run_directive(w)},it.prototype.run_directive=function(w){return x.type.is_directive(w)?(x.directive[w.indicator](this,w),!0):!1},ke.prototype.__get_max_priority=function(){return\"1200\"},it.prototype.__get_max_priority=function(){return this.session.__get_max_priority()},ke.prototype.__get_next_priority=function(w){var P=0;w=parseInt(w);for(var y in this.__operators)if(this.__operators.hasOwnProperty(y)){var F=parseInt(y);F>P&&F<w&&(P=F)}return P.toString()},it.prototype.__get_next_priority=function(w){return this.session.__get_next_priority(w)},ke.prototype.__lookup_operator_classes=function(w,P){return this.__operators.hasOwnProperty(w)&&this.__operators[w][P]instanceof Array&&this.__operators[w][P]||!1},it.prototype.__lookup_operator_classes=function(w,P){return this.session.__lookup_operator_classes(w,P)},ke.prototype.lookup_operator=function(w,P){for(var y in this.__operators)if(this.__operators[y][w]){for(var F=0;F<this.__operators[y][w].length;F++)if(P===0||this.__operators[y][w][F].length===P+1)return{priority:y,class:this.__operators[y][w][F]}}return null},it.prototype.lookup_operator=function(w,P){return this.session.lookup_operator(w,P)},ke.prototype.throw_warning=function(w){this.thread.throw_warning(w)},it.prototype.throw_warning=function(w){this.warnings.push(w)},ke.prototype.get_warnings=function(){return this.thread.get_warnings()},it.prototype.get_warnings=function(){return this.warnings},ke.prototype.add_goal=function(w,P){this.thread.add_goal(w,P)},it.prototype.add_goal=function(w,P,y){y=y||null,P===!0&&(this.points=[]);for(var F=w.variables(),z={},Z=0;Z<F.length;Z++)z[F[Z]]=new De(F[Z]);this.points.push(new be(w,new Ne(z),y))},ke.prototype.consult=function(w,P){return this.thread.consult(w,P)},it.prototype.consult=function(w,P){var y=\"\";if(typeof w==\"string\"){y=w;var F=y.length;if(y.substring(F-3,F)===\".pl\"&&document.getElementById(y)){var z=document.getElementById(y),Z=z.getAttribute(\"type\");Z!==null&&Z.replace(/ /g,\"\").toLowerCase()===\"text/prolog\"&&(y=z.text)}}else if(w.nodeName)switch(w.nodeName.toLowerCase()){case\"input\":case\"textarea\":y=w.value;break;default:y=w.innerHTML;break}else return!1;return this.warnings=[],le(this,y,P)},ke.prototype.query=function(w){return this.thread.query(w)},it.prototype.query=function(w){return this.points=[],this.debugger_points=[],me(this,w)},ke.prototype.head_point=function(){return this.thread.head_point()},it.prototype.head_point=function(){return this.points[this.points.length-1]},ke.prototype.get_free_variable=function(w){return this.thread.get_free_variable(w)},it.prototype.get_free_variable=function(w){var P=[];if(w.id===\"_\"||this.session.renamed_variables[w.id]===void 0){for(this.session.rename++,this.points.length>0&&(P=this.head_point().substitution.domain());e(P,x.format_variable(this.session.rename))!==-1;)this.session.rename++;if(w.id===\"_\")return new De(x.format_variable(this.session.rename));this.session.renamed_variables[w.id]=x.format_variable(this.session.rename)}return new De(this.session.renamed_variables[w.id])},ke.prototype.next_free_variable=function(){return this.thread.next_free_variable()},it.prototype.next_free_variable=function(){this.session.rename++;var w=[];for(this.points.length>0&&(w=this.head_point().substitution.domain());e(w,x.format_variable(this.session.rename))!==-1;)this.session.rename++;return new De(x.format_variable(this.session.rename))},ke.prototype.is_public_predicate=function(w){return!this.public_predicates.hasOwnProperty(w)||this.public_predicates[w]===!0},it.prototype.is_public_predicate=function(w){return this.session.is_public_predicate(w)},ke.prototype.is_multifile_predicate=function(w){return this.multifile_predicates.hasOwnProperty(w)&&this.multifile_predicates[w]===!0},it.prototype.is_multifile_predicate=function(w){return this.session.is_multifile_predicate(w)},ke.prototype.prepend=function(w){return this.thread.prepend(w)},it.prototype.prepend=function(w){for(var P=w.length-1;P>=0;P--)this.points.push(w[P])},ke.prototype.success=function(w,P){return this.thread.success(w,P)},it.prototype.success=function(w,y){var y=typeof y>\"u\"?w:y;this.prepend([new be(w.goal.replace(null),w.substitution,y)])},ke.prototype.throw_error=function(w){return this.thread.throw_error(w)},it.prototype.throw_error=function(w){this.prepend([new be(new j(\"throw\",[w]),new Ne,null,null)])},ke.prototype.step_rule=function(w,P){return this.thread.step_rule(w,P)},it.prototype.step_rule=function(w,P){var y=P.indicator;if(w===\"user\"&&(w=null),w===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var F=w===null?this.session.modules:e(this.session.modules,w)===-1?[]:[w],z=0;z<F.length;z++){var Z=x.module[F[z]];if(Z.rules.hasOwnProperty(y)&&(Z.rules.hasOwnProperty(this.level)||Z.exports_predicate(y)))return x.module[F[z]].rules[y]}return null},ke.prototype.step=function(){return this.thread.step()},it.prototype.step=function(){if(this.points.length!==0){var w=!1,P=this.points.pop();if(this.debugger&&this.debugger_states.push(P),x.type.is_term(P.goal)){var y=P.goal.select(),F=null,z=[];if(y!==null){this.total_steps++;for(var Z=P;Z.parent!==null&&Z.parent.goal.search(y);)Z=Z.parent;if(this.level=Z.parent===null?\"top_level/0\":Z.parent.goal.select().indicator,x.type.is_term(y)&&y.indicator===\":/2\"&&(F=y.args[0].id,y=y.args[1]),F===null&&x.type.is_builtin(y))this.__call_indicator=y.indicator,w=x.predicate[y.indicator](this,P,y);else{var $=this.step_rule(F,y);if($===null)this.session.rules.hasOwnProperty(y.indicator)||(this.get_flag(\"unknown\").id===\"error\"?this.throw_error(x.error.existence(\"procedure\",y.indicator,this.level)):this.get_flag(\"unknown\").id===\"warning\"&&this.throw_warning(\"unknown procedure \"+y.indicator+\" (from \"+this.level+\")\"));else if($ instanceof Function)w=$(this,P,y);else{for(var oe in $)if($.hasOwnProperty(oe)){var xe=$[oe];this.session.renamed_variables={},xe=xe.rename(this);var Re=this.get_flag(\"occurs_check\").indicator===\"true/0\",lt=new be,Ct=x.unify(y,xe.head,Re);Ct!==null&&(lt.goal=P.goal.replace(xe.body),lt.goal!==null&&(lt.goal=lt.goal.apply(Ct)),lt.substitution=P.substitution.apply(Ct),lt.parent=P,z.push(lt))}this.prepend(z)}}}}else x.type.is_variable(P.goal)?this.throw_error(x.error.instantiation(this.level)):this.throw_error(x.error.type(\"callable\",P.goal,this.level));return w}},ke.prototype.answer=function(w){return this.thread.answer(w)},it.prototype.answer=function(w){w=w||function(P){},this.__calls.push(w),!(this.__calls.length>1)&&this.again()},ke.prototype.answers=function(w,P,y){return this.thread.answers(w,P,y)},it.prototype.answers=function(w,P,y){var F=P||1e3,z=this;if(P<=0){y&&y();return}this.answer(function(Z){w(Z),Z!==!1?setTimeout(function(){z.answers(w,P-1,y)},1):y&&y()})},ke.prototype.again=function(w){return this.thread.again(w)},it.prototype.again=function(w){for(var P,y=Date.now();this.__calls.length>0;){for(this.warnings=[],w!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!x.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var F=Date.now();this.cpu_time_last=F-y,this.cpu_time+=this.cpu_time_last;var z=this.__calls.shift();this.current_limit<=0?z(null):this.points.length===0?z(!1):x.type.is_error(this.head_point().goal)?(P=this.session.format_error(this.points.pop()),this.points=[],z(P)):(this.debugger&&this.debugger_states.push(this.head_point()),P=this.session.format_success(this.points.pop()),z(P))}},ke.prototype.unfold=function(w){if(w.body===null)return!1;var P=w.head,y=w.body,F=y.select(),z=new it(this),Z=[];z.add_goal(F),z.step();for(var $=z.points.length-1;$>=0;$--){var oe=z.points[$],xe=P.apply(oe.substitution),Re=y.replace(oe.goal);Re!==null&&(Re=Re.apply(oe.substitution)),Z.push(new Ve(xe,Re))}var lt=this.rules[P.indicator],Ct=e(lt,w);return Z.length>0&&Ct!==-1?(lt.splice.apply(lt,[Ct,1].concat(Z)),!0):!1},it.prototype.unfold=function(w){return this.session.unfold(w)},De.prototype.interpret=function(w){return x.error.instantiation(w.level)},Te.prototype.interpret=function(w){return this},j.prototype.interpret=function(w){return x.type.is_unitary_list(this)?this.args[0].interpret(w):x.operate(w,this)},De.prototype.compare=function(w){return this.id<w.id?-1:this.id>w.id?1:0},Te.prototype.compare=function(w){if(this.value===w.value&&this.is_float===w.is_float)return 0;if(this.value<w.value||this.value===w.value&&this.is_float&&!w.is_float)return-1;if(this.value>w.value)return 1},j.prototype.compare=function(w){if(this.args.length<w.args.length||this.args.length===w.args.length&&this.id<w.id)return-1;if(this.args.length>w.args.length||this.args.length===w.args.length&&this.id>w.id)return 1;for(var P=0;P<this.args.length;P++){var y=x.compare(this.args[P],w.args[P]);if(y!==0)return y}return 0},Ne.prototype.lookup=function(w){return this.links[w]?this.links[w]:null},Ne.prototype.filter=function(w){var P={};for(var y in this.links)if(this.links.hasOwnProperty(y)){var F=this.links[y];w(y,F)&&(P[y]=F)}return new Ne(P)},Ne.prototype.exclude=function(w){var P={};for(var y in this.links)this.links.hasOwnProperty(y)&&e(w,y)===-1&&(P[y]=this.links[y]);return new Ne(P)},Ne.prototype.add=function(w,P){this.links[w]=P},Ne.prototype.domain=function(w){var P=w===!0?function(z){return z}:function(z){return new De(z)},y=[];for(var F in this.links)y.push(P(F));return y},De.prototype.compile=function(){return'new pl.type.Var(\"'+this.id.toString()+'\")'},Te.prototype.compile=function(){return\"new pl.type.Num(\"+this.value.toString()+\", \"+this.is_float.toString()+\")\"},j.prototype.compile=function(){return'new pl.type.Term(\"'+this.id.replace(/\"/g,'\\\\\"')+'\", ['+s(this.args,function(w){return w.compile()})+\"])\"},Ve.prototype.compile=function(){return\"new pl.type.Rule(\"+this.head.compile()+\", \"+(this.body===null?\"null\":this.body.compile())+\")\"},ke.prototype.compile=function(){var w,P=[],y;for(var F in this.rules)if(this.rules.hasOwnProperty(F)){var z=this.rules[F];y=[],w='\"'+F+'\": [';for(var Z=0;Z<z.length;Z++)y.push(z[Z].compile());w+=y.join(),w+=\"]\",P.push(w)}return\"{\"+P.join()+\"};\"},De.prototype.toJavaScript=function(){},Te.prototype.toJavaScript=function(){return this.value},j.prototype.toJavaScript=function(){if(this.args.length===0&&this.indicator!==\"[]/0\")return this.id;if(x.type.is_list(this)){for(var w=[],P=this,y;P.indicator===\"./2\";){if(y=P.args[0].toJavaScript(),y===void 0)return;w.push(y),P=P.args[1]}if(P.indicator===\"[]/0\")return w}},Ve.prototype.singleton_variables=function(){var w=this.head.variables(),P={},y=[];this.body!==null&&(w=w.concat(this.body.variables()));for(var F=0;F<w.length;F++)P[w[F]]===void 0&&(P[w[F]]=0),P[w[F]]++;for(var z in P)z!==\"_\"&&P[z]===1&&y.push(z);return y};var x={__env:typeof ec<\"u\"&&ec.exports?global:window,module:{},version:t,parser:{tokenizer:U,expression:W},utils:{str_indicator:X,codePointAt:n,fromCodePoint:c},statistics:{getCountTerms:function(){return mt}},fromJavaScript:{test:{boolean:function(w){return w===!0||w===!1},number:function(w){return typeof w==\"number\"},string:function(w){return typeof w==\"string\"},list:function(w){return w instanceof Array},variable:function(w){return w===void 0},any:function(w){return!0}},conversion:{boolean:function(w){return new j(w?\"true\":\"false\",[])},number:function(w){return new Te(w,w%1!==0)},string:function(w){return new j(w,[])},list:function(w){for(var P=[],y,F=0;F<w.length;F++){if(y=x.fromJavaScript.apply(w[F]),y===void 0)return;P.push(y)}return g(P)},variable:function(w){return new De(\"_\")},any:function(w){}},apply:function(w){for(var P in x.fromJavaScript.test)if(P!==\"any\"&&x.fromJavaScript.test[P](w))return x.fromJavaScript.conversion[P](w);return x.fromJavaScript.conversion.any(w)}},type:{Var:De,Num:Te,Term:j,Rule:Ve,State:be,Stream:Fe,Module:Ue,Thread:it,Session:ke,Substitution:Ne,order:[De,Te,j,Fe],compare:function(w,P){var y=e(x.type.order,w.constructor),F=e(x.type.order,P.constructor);if(y<F)return-1;if(y>F)return 1;if(w.constructor===Te){if(w.is_float&&P.is_float)return 0;if(w.is_float)return-1;if(P.is_float)return 1}return 0},is_substitution:function(w){return w instanceof Ne},is_state:function(w){return w instanceof be},is_rule:function(w){return w instanceof Ve},is_variable:function(w){return w instanceof De},is_stream:function(w){return w instanceof Fe},is_anonymous_var:function(w){return w instanceof De&&w.id===\"_\"},is_callable:function(w){return w instanceof j},is_number:function(w){return w instanceof Te},is_integer:function(w){return w instanceof Te&&!w.is_float},is_float:function(w){return w instanceof Te&&w.is_float},is_term:function(w){return w instanceof j},is_atom:function(w){return w instanceof j&&w.args.length===0},is_ground:function(w){if(w instanceof De)return!1;if(w instanceof j){for(var P=0;P<w.args.length;P++)if(!x.type.is_ground(w.args[P]))return!1}return!0},is_atomic:function(w){return w instanceof j&&w.args.length===0||w instanceof Te},is_compound:function(w){return w instanceof j&&w.args.length>0},is_list:function(w){return w instanceof j&&(w.indicator===\"[]/0\"||w.indicator===\"./2\")},is_empty_list:function(w){return w instanceof j&&w.indicator===\"[]/0\"},is_non_empty_list:function(w){return w instanceof j&&w.indicator===\"./2\"},is_fully_list:function(w){for(;w instanceof j&&w.indicator===\"./2\";)w=w.args[1];return w instanceof De||w instanceof j&&w.indicator===\"[]/0\"},is_instantiated_list:function(w){for(;w instanceof j&&w.indicator===\"./2\";)w=w.args[1];return w instanceof j&&w.indicator===\"[]/0\"},is_unitary_list:function(w){return w instanceof j&&w.indicator===\"./2\"&&w.args[1]instanceof j&&w.args[1].indicator===\"[]/0\"},is_character:function(w){return w instanceof j&&(w.id.length===1||w.id.length>0&&w.id.length<=2&&n(w.id,0)>=65536)},is_character_code:function(w){return w instanceof Te&&!w.is_float&&w.value>=0&&w.value<=1114111},is_byte:function(w){return w instanceof Te&&!w.is_float&&w.value>=0&&w.value<=255},is_operator:function(w){return w instanceof j&&x.arithmetic.evaluation[w.indicator]},is_directive:function(w){return w instanceof j&&x.directive[w.indicator]!==void 0},is_builtin:function(w){return w instanceof j&&x.predicate[w.indicator]!==void 0},is_error:function(w){return w instanceof j&&w.indicator===\"throw/1\"},is_predicate_indicator:function(w){return w instanceof j&&w.indicator===\"//2\"&&w.args[0]instanceof j&&w.args[0].args.length===0&&w.args[1]instanceof Te&&w.args[1].is_float===!1},is_flag:function(w){return w instanceof j&&w.args.length===0&&x.flag[w.id]!==void 0},is_value_flag:function(w,P){if(!x.type.is_flag(w))return!1;for(var y in x.flag[w.id].allowed)if(x.flag[w.id].allowed.hasOwnProperty(y)&&x.flag[w.id].allowed[y].equals(P))return!0;return!1},is_io_mode:function(w){return x.type.is_atom(w)&&[\"read\",\"write\",\"append\"].indexOf(w.id)!==-1},is_stream_option:function(w){return x.type.is_term(w)&&(w.indicator===\"alias/1\"&&x.type.is_atom(w.args[0])||w.indicator===\"reposition/1\"&&x.type.is_atom(w.args[0])&&(w.args[0].id===\"true\"||w.args[0].id===\"false\")||w.indicator===\"type/1\"&&x.type.is_atom(w.args[0])&&(w.args[0].id===\"text\"||w.args[0].id===\"binary\")||w.indicator===\"eof_action/1\"&&x.type.is_atom(w.args[0])&&(w.args[0].id===\"error\"||w.args[0].id===\"eof_code\"||w.args[0].id===\"reset\"))},is_stream_position:function(w){return x.type.is_integer(w)&&w.value>=0||x.type.is_atom(w)&&(w.id===\"end_of_stream\"||w.id===\"past_end_of_stream\")},is_stream_property:function(w){return x.type.is_term(w)&&(w.indicator===\"input/0\"||w.indicator===\"output/0\"||w.indicator===\"alias/1\"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0]))||w.indicator===\"file_name/1\"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0]))||w.indicator===\"position/1\"&&(x.type.is_variable(w.args[0])||x.type.is_stream_position(w.args[0]))||w.indicator===\"reposition/1\"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id===\"true\"||w.args[0].id===\"false\"))||w.indicator===\"type/1\"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id===\"text\"||w.args[0].id===\"binary\"))||w.indicator===\"mode/1\"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id===\"read\"||w.args[0].id===\"write\"||w.args[0].id===\"append\"))||w.indicator===\"eof_action/1\"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id===\"error\"||w.args[0].id===\"eof_code\"||w.args[0].id===\"reset\"))||w.indicator===\"end_of_stream/1\"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id===\"at\"||w.args[0].id===\"past\"||w.args[0].id===\"not\")))},is_streamable:function(w){return w.__proto__.stream!==void 0},is_read_option:function(w){return x.type.is_term(w)&&[\"variables/1\",\"variable_names/1\",\"singletons/1\"].indexOf(w.indicator)!==-1},is_write_option:function(w){return x.type.is_term(w)&&(w.indicator===\"quoted/1\"&&x.type.is_atom(w.args[0])&&(w.args[0].id===\"true\"||w.args[0].id===\"false\")||w.indicator===\"ignore_ops/1\"&&x.type.is_atom(w.args[0])&&(w.args[0].id===\"true\"||w.args[0].id===\"false\")||w.indicator===\"numbervars/1\"&&x.type.is_atom(w.args[0])&&(w.args[0].id===\"true\"||w.args[0].id===\"false\"))},is_close_option:function(w){return x.type.is_term(w)&&w.indicator===\"force/1\"&&x.type.is_atom(w.args[0])&&(w.args[0].id===\"true\"||w.args[0].id===\"false\")},is_modifiable_flag:function(w){return x.type.is_flag(w)&&x.flag[w.id].changeable},is_module:function(w){return w instanceof j&&w.indicator===\"library/1\"&&w.args[0]instanceof j&&w.args[0].args.length===0&&x.module[w.args[0].id]!==void 0}},arithmetic:{evaluation:{\"e/0\":{type_args:null,type_result:!0,fn:function(w){return Math.E}},\"pi/0\":{type_args:null,type_result:!0,fn:function(w){return Math.PI}},\"tau/0\":{type_args:null,type_result:!0,fn:function(w){return 2*Math.PI}},\"epsilon/0\":{type_args:null,type_result:!0,fn:function(w){return Number.EPSILON}},\"+/1\":{type_args:null,type_result:null,fn:function(w,P){return w}},\"-/1\":{type_args:null,type_result:null,fn:function(w,P){return-w}},\"\\\\/1\":{type_args:!1,type_result:!1,fn:function(w,P){return~w}},\"abs/1\":{type_args:null,type_result:null,fn:function(w,P){return Math.abs(w)}},\"sign/1\":{type_args:null,type_result:null,fn:function(w,P){return Math.sign(w)}},\"float_integer_part/1\":{type_args:!0,type_result:!1,fn:function(w,P){return parseInt(w)}},\"float_fractional_part/1\":{type_args:!0,type_result:!0,fn:function(w,P){return w-parseInt(w)}},\"float/1\":{type_args:null,type_result:!0,fn:function(w,P){return parseFloat(w)}},\"floor/1\":{type_args:!0,type_result:!1,fn:function(w,P){return Math.floor(w)}},\"truncate/1\":{type_args:!0,type_result:!1,fn:function(w,P){return parseInt(w)}},\"round/1\":{type_args:!0,type_result:!1,fn:function(w,P){return Math.round(w)}},\"ceiling/1\":{type_args:!0,type_result:!1,fn:function(w,P){return Math.ceil(w)}},\"sin/1\":{type_args:null,type_result:!0,fn:function(w,P){return Math.sin(w)}},\"cos/1\":{type_args:null,type_result:!0,fn:function(w,P){return Math.cos(w)}},\"tan/1\":{type_args:null,type_result:!0,fn:function(w,P){return Math.tan(w)}},\"asin/1\":{type_args:null,type_result:!0,fn:function(w,P){return Math.asin(w)}},\"acos/1\":{type_args:null,type_result:!0,fn:function(w,P){return Math.acos(w)}},\"atan/1\":{type_args:null,type_result:!0,fn:function(w,P){return Math.atan(w)}},\"atan2/2\":{type_args:null,type_result:!0,fn:function(w,P,y){return Math.atan2(w,P)}},\"exp/1\":{type_args:null,type_result:!0,fn:function(w,P){return Math.exp(w)}},\"sqrt/1\":{type_args:null,type_result:!0,fn:function(w,P){return Math.sqrt(w)}},\"log/1\":{type_args:null,type_result:!0,fn:function(w,P){return w>0?Math.log(w):x.error.evaluation(\"undefined\",P.__call_indicator)}},\"+/2\":{type_args:null,type_result:null,fn:function(w,P,y){return w+P}},\"-/2\":{type_args:null,type_result:null,fn:function(w,P,y){return w-P}},\"*/2\":{type_args:null,type_result:null,fn:function(w,P,y){return w*P}},\"//2\":{type_args:null,type_result:!0,fn:function(w,P,y){return P?w/P:x.error.evaluation(\"zero_division\",y.__call_indicator)}},\"///2\":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?parseInt(w/P):x.error.evaluation(\"zero_division\",y.__call_indicator)}},\"**/2\":{type_args:null,type_result:!0,fn:function(w,P,y){return Math.pow(w,P)}},\"^/2\":{type_args:null,type_result:null,fn:function(w,P,y){return Math.pow(w,P)}},\"<</2\":{type_args:!1,type_result:!1,fn:function(w,P,y){return w<<P}},\">>/2\":{type_args:!1,type_result:!1,fn:function(w,P,y){return w>>P}},\"/\\\\/2\":{type_args:!1,type_result:!1,fn:function(w,P,y){return w&P}},\"\\\\//2\":{type_args:!1,type_result:!1,fn:function(w,P,y){return w|P}},\"xor/2\":{type_args:!1,type_result:!1,fn:function(w,P,y){return w^P}},\"rem/2\":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?w%P:x.error.evaluation(\"zero_division\",y.__call_indicator)}},\"mod/2\":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?w-parseInt(w/P)*P:x.error.evaluation(\"zero_division\",y.__call_indicator)}},\"max/2\":{type_args:null,type_result:null,fn:function(w,P,y){return Math.max(w,P)}},\"min/2\":{type_args:null,type_result:null,fn:function(w,P,y){return Math.min(w,P)}}}},directive:{\"dynamic/1\":function(w,P){var y=P.args[0];if(x.type.is_variable(y))w.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_compound(y)||y.indicator!==\"//2\")w.throw_error(x.error.type(\"predicate_indicator\",y,P.indicator));else if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))w.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_atom(y.args[0]))w.throw_error(x.error.type(\"atom\",y.args[0],P.indicator));else if(!x.type.is_integer(y.args[1]))w.throw_error(x.error.type(\"integer\",y.args[1],P.indicator));else{var F=P.args[0].args[0].id+\"/\"+P.args[0].args[1].value;w.session.public_predicates[F]=!0,w.session.rules[F]||(w.session.rules[F]=[])}},\"multifile/1\":function(w,P){var y=P.args[0];x.type.is_variable(y)?w.throw_error(x.error.instantiation(P.indicator)):!x.type.is_compound(y)||y.indicator!==\"//2\"?w.throw_error(x.error.type(\"predicate_indicator\",y,P.indicator)):x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1])?w.throw_error(x.error.instantiation(P.indicator)):x.type.is_atom(y.args[0])?x.type.is_integer(y.args[1])?w.session.multifile_predicates[P.args[0].args[0].id+\"/\"+P.args[0].args[1].value]=!0:w.throw_error(x.error.type(\"integer\",y.args[1],P.indicator)):w.throw_error(x.error.type(\"atom\",y.args[0],P.indicator))},\"set_prolog_flag/2\":function(w,P){var y=P.args[0],F=P.args[1];x.type.is_variable(y)||x.type.is_variable(F)?w.throw_error(x.error.instantiation(P.indicator)):x.type.is_atom(y)?x.type.is_flag(y)?x.type.is_value_flag(y,F)?x.type.is_modifiable_flag(y)?w.session.flag[y.id]=F:w.throw_error(x.error.permission(\"modify\",\"flag\",y)):w.throw_error(x.error.domain(\"flag_value\",new j(\"+\",[y,F]),P.indicator)):w.throw_error(x.error.domain(\"prolog_flag\",y,P.indicator)):w.throw_error(x.error.type(\"atom\",y,P.indicator))},\"use_module/1\":function(w,P){var y=P.args[0];if(x.type.is_variable(y))w.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_term(y))w.throw_error(x.error.type(\"term\",y,P.indicator));else if(x.type.is_module(y)){var F=y.args[0].id;e(w.session.modules,F)===-1&&w.session.modules.push(F)}},\"char_conversion/2\":function(w,P){var y=P.args[0],F=P.args[1];x.type.is_variable(y)||x.type.is_variable(F)?w.throw_error(x.error.instantiation(P.indicator)):x.type.is_character(y)?x.type.is_character(F)?y.id===F.id?delete w.session.__char_conversion[y.id]:w.session.__char_conversion[y.id]=F.id:w.throw_error(x.error.type(\"character\",F,P.indicator)):w.throw_error(x.error.type(\"character\",y,P.indicator))},\"op/3\":function(w,P){var y=P.args[0],F=P.args[1],z=P.args[2];if(x.type.is_variable(y)||x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_integer(y))w.throw_error(x.error.type(\"integer\",y,P.indicator));else if(!x.type.is_atom(F))w.throw_error(x.error.type(\"atom\",F,P.indicator));else if(!x.type.is_atom(z))w.throw_error(x.error.type(\"atom\",z,P.indicator));else if(y.value<0||y.value>1200)w.throw_error(x.error.domain(\"operator_priority\",y,P.indicator));else if(z.id===\",\")w.throw_error(x.error.permission(\"modify\",\"operator\",z,P.indicator));else if(z.id===\"|\"&&(y.value<1001||F.id.length!==3))w.throw_error(x.error.permission(\"modify\",\"operator\",z,P.indicator));else if([\"fy\",\"fx\",\"yf\",\"xf\",\"xfx\",\"yfx\",\"xfy\"].indexOf(F.id)===-1)w.throw_error(x.error.domain(\"operator_specifier\",F,P.indicator));else{var Z={prefix:null,infix:null,postfix:null};for(var $ in w.session.__operators)if(w.session.__operators.hasOwnProperty($)){var oe=w.session.__operators[$][z.id];oe&&(e(oe,\"fx\")!==-1&&(Z.prefix={priority:$,type:\"fx\"}),e(oe,\"fy\")!==-1&&(Z.prefix={priority:$,type:\"fy\"}),e(oe,\"xf\")!==-1&&(Z.postfix={priority:$,type:\"xf\"}),e(oe,\"yf\")!==-1&&(Z.postfix={priority:$,type:\"yf\"}),e(oe,\"xfx\")!==-1&&(Z.infix={priority:$,type:\"xfx\"}),e(oe,\"xfy\")!==-1&&(Z.infix={priority:$,type:\"xfy\"}),e(oe,\"yfx\")!==-1&&(Z.infix={priority:$,type:\"yfx\"}))}var xe;switch(F.id){case\"fy\":case\"fx\":xe=\"prefix\";break;case\"yf\":case\"xf\":xe=\"postfix\";break;default:xe=\"infix\";break}if(((Z.prefix&&xe===\"prefix\"||Z.postfix&&xe===\"postfix\"||Z.infix&&xe===\"infix\")&&Z[xe].type!==F.id||Z.infix&&xe===\"postfix\"||Z.postfix&&xe===\"infix\")&&y.value!==0)w.throw_error(x.error.permission(\"create\",\"operator\",z,P.indicator));else return Z[xe]&&(we(w.session.__operators[Z[xe].priority][z.id],F.id),w.session.__operators[Z[xe].priority][z.id].length===0&&delete w.session.__operators[Z[xe].priority][z.id]),y.value>0&&(w.session.__operators[y.value]||(w.session.__operators[y.value.toString()]={}),w.session.__operators[y.value][z.id]||(w.session.__operators[y.value][z.id]=[]),w.session.__operators[y.value][z.id].push(F.id)),!0}}},predicate:{\"op/3\":function(w,P,y){x.directive[\"op/3\"](w,y)&&w.success(P)},\"current_op/3\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=[];for(var oe in w.session.__operators)for(var xe in w.session.__operators[oe])for(var Re=0;Re<w.session.__operators[oe][xe].length;Re++)$.push(new be(P.goal.replace(new j(\",\",[new j(\"=\",[new Te(oe,!1),F]),new j(\",\",[new j(\"=\",[new j(w.session.__operators[oe][xe][Re],[]),z]),new j(\"=\",[new j(xe,[]),Z])])])),P.substitution,P));w.prepend($)},\";/2\":function(w,P,y){if(x.type.is_term(y.args[0])&&y.args[0].indicator===\"->/2\"){var F=w.points,z=w.session.format_success,Z=w.session.format_error;w.session.format_success=function(Re){return Re.substitution},w.session.format_error=function(Re){return Re.goal},w.points=[new be(y.args[0].args[0],P.substitution,P)];var $=function(Re){w.points=F,w.session.format_success=z,w.session.format_error=Z,Re===!1?w.prepend([new be(P.goal.replace(y.args[1]),P.substitution,P)]):x.type.is_error(Re)?w.throw_error(Re.args[0]):Re===null?(w.prepend([P]),w.__calls.shift()(null)):w.prepend([new be(P.goal.replace(y.args[0].args[1]).apply(Re),P.substitution.apply(Re),P)])};w.__calls.unshift($)}else{var oe=new be(P.goal.replace(y.args[0]),P.substitution,P),xe=new be(P.goal.replace(y.args[1]),P.substitution,P);w.prepend([oe,xe])}},\"!/0\":function(w,P,y){var F,z,Z=[];for(F=P,z=null;F.parent!==null&&F.parent.goal.search(y);)if(z=F,F=F.parent,F.goal!==null){var $=F.goal.select();if($&&$.id===\"call\"&&$.search(y)){F=z;break}}for(var oe=w.points.length-1;oe>=0;oe--){for(var xe=w.points[oe],Re=xe.parent;Re!==null&&Re!==F.parent;)Re=Re.parent;Re===null&&Re!==F.parent&&Z.push(xe)}w.points=Z.reverse(),w.success(P)},\"\\\\+/1\":function(w,P,y){var F=y.args[0];x.type.is_variable(F)?w.throw_error(x.error.instantiation(w.level)):x.type.is_callable(F)?w.prepend([new be(P.goal.replace(new j(\",\",[new j(\",\",[new j(\"call\",[F]),new j(\"!\",[])]),new j(\"fail\",[])])),P.substitution,P),new be(P.goal.replace(null),P.substitution,P)]):w.throw_error(x.error.type(\"callable\",F,w.level))},\"->/2\":function(w,P,y){var F=P.goal.replace(new j(\",\",[y.args[0],new j(\",\",[new j(\"!\"),y.args[1]])]));w.prepend([new be(F,P.substitution,P)])},\"fail/0\":function(w,P,y){},\"false/0\":function(w,P,y){},\"true/0\":function(w,P,y){w.success(P)},\"call/1\":se(1),\"call/2\":se(2),\"call/3\":se(3),\"call/4\":se(4),\"call/5\":se(5),\"call/6\":se(6),\"call/7\":se(7),\"call/8\":se(8),\"once/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"call\",[F]),new j(\"!\",[])])),P.substitution,P)])},\"forall/2\":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j(\"\\\\+\",[new j(\",\",[new j(\"call\",[F]),new j(\"\\\\+\",[new j(\"call\",[z])])])])),P.substitution,P)])},\"repeat/0\":function(w,P,y){w.prepend([new be(P.goal.replace(null),P.substitution,P),P])},\"throw/1\":function(w,P,y){x.type.is_variable(y.args[0])?w.throw_error(x.error.instantiation(w.level)):w.throw_error(y.args[0])},\"catch/3\":function(w,P,y){var F=w.points;w.points=[],w.prepend([new be(y.args[0],P.substitution,P)]);var z=w.session.format_success,Z=w.session.format_error;w.session.format_success=function(oe){return oe.substitution},w.session.format_error=function(oe){return oe.goal};var $=function(oe){var xe=w.points;if(w.points=F,w.session.format_success=z,w.session.format_error=Z,x.type.is_error(oe)){for(var Re=[],lt=w.points.length-1;lt>=0;lt--){for(var ir=w.points[lt],Ct=ir.parent;Ct!==null&&Ct!==P.parent;)Ct=Ct.parent;Ct===null&&Ct!==P.parent&&Re.push(ir)}w.points=Re;var qt=w.get_flag(\"occurs_check\").indicator===\"true/0\",ir=new be,bt=x.unify(oe.args[0],y.args[1],qt);bt!==null?(ir.substitution=P.substitution.apply(bt),ir.goal=P.goal.replace(y.args[2]).apply(bt),ir.parent=P,w.prepend([ir])):w.throw_error(oe.args[0])}else if(oe!==!1){for(var gn=oe===null?[]:[new be(P.goal.apply(oe).replace(null),P.substitution.apply(oe),P)],br=[],lt=xe.length-1;lt>=0;lt--){br.push(xe[lt]);var Ir=xe[lt].goal!==null?xe[lt].goal.select():null;if(x.type.is_term(Ir)&&Ir.indicator===\"!/0\")break}var Or=s(br,function(nn){return nn.goal===null&&(nn.goal=new j(\"true\",[])),nn=new be(P.goal.replace(new j(\"catch\",[nn.goal,y.args[1],y.args[2]])),P.substitution.apply(nn.substitution),nn.parent),nn.exclude=y.args[0].variables(),nn}).reverse();w.prepend(Or),w.prepend(gn),oe===null&&(this.current_limit=0,w.__calls.shift()(null))}};w.__calls.unshift($)},\"=/2\":function(w,P,y){var F=w.get_flag(\"occurs_check\").indicator===\"true/0\",z=new be,Z=x.unify(y.args[0],y.args[1],F);Z!==null&&(z.goal=P.goal.apply(Z).replace(null),z.substitution=P.substitution.apply(Z),z.parent=P,w.prepend([z]))},\"unify_with_occurs_check/2\":function(w,P,y){var F=new be,z=x.unify(y.args[0],y.args[1],!0);z!==null&&(F.goal=P.goal.apply(z).replace(null),F.substitution=P.substitution.apply(z),F.parent=P,w.prepend([F]))},\"\\\\=/2\":function(w,P,y){var F=w.get_flag(\"occurs_check\").indicator===\"true/0\",z=x.unify(y.args[0],y.args[1],F);z===null&&w.success(P)},\"subsumes_term/2\":function(w,P,y){var F=w.get_flag(\"occurs_check\").indicator===\"true/0\",z=x.unify(y.args[1],y.args[0],F);z!==null&&y.args[1].apply(z).equals(y.args[1])&&w.success(P)},\"findall/3\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(z))w.throw_error(x.error.type(\"callable\",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_list(Z))w.throw_error(x.error.type(\"list\",Z,y.indicator));else{var $=w.next_free_variable(),oe=new j(\",\",[z,new j(\"=\",[$,F])]),xe=w.points,Re=w.session.limit,lt=w.session.format_success;w.session.format_success=function(ir){return ir.substitution},w.add_goal(oe,!0,P);var Ct=[],qt=function(ir){if(ir!==!1&&ir!==null&&!x.type.is_error(ir))w.__calls.unshift(qt),Ct.push(ir.links[$.id]),w.session.limit=w.current_limit;else if(w.points=xe,w.session.limit=Re,w.session.format_success=lt,x.type.is_error(ir))w.throw_error(ir.args[0]);else if(w.current_limit>0){for(var bt=new j(\"[]\"),gn=Ct.length-1;gn>=0;gn--)bt=new j(\".\",[Ct[gn],bt]);w.prepend([new be(P.goal.replace(new j(\"=\",[Z,bt])),P.substitution,P)])}};w.__calls.unshift(qt)}},\"bagof/3\":function(w,P,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2];if(x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(Z))w.throw_error(x.error.type(\"callable\",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))w.throw_error(x.error.type(\"list\",$,y.indicator));else{var oe=w.next_free_variable(),xe;Z.indicator===\"^/2\"?(xe=Z.args[0].variables(),Z=Z.args[1]):xe=[],xe=xe.concat(z.variables());for(var Re=Z.variables().filter(function(Or){return e(xe,Or)===-1}),lt=new j(\"[]\"),Ct=Re.length-1;Ct>=0;Ct--)lt=new j(\".\",[new De(Re[Ct]),lt]);var qt=new j(\",\",[Z,new j(\"=\",[oe,new j(\",\",[lt,z])])]),ir=w.points,bt=w.session.limit,gn=w.session.format_success;w.session.format_success=function(Or){return Or.substitution},w.add_goal(qt,!0,P);var br=[],Ir=function(Or){if(Or!==!1&&Or!==null&&!x.type.is_error(Or)){w.__calls.unshift(Ir);var nn=!1,ai=Or.links[oe.id].args[0],Io=Or.links[oe.id].args[1];for(var ts in br)if(br.hasOwnProperty(ts)){var $s=br[ts];if($s.variables.equals(ai)){$s.answers.push(Io),nn=!0;break}}nn||br.push({variables:ai,answers:[Io]}),w.session.limit=w.current_limit}else if(w.points=ir,w.session.limit=bt,w.session.format_success=gn,x.type.is_error(Or))w.throw_error(Or.args[0]);else if(w.current_limit>0){for(var Co=[],Hi=0;Hi<br.length;Hi++){Or=br[Hi].answers;for(var eo=new j(\"[]\"),wo=Or.length-1;wo>=0;wo--)eo=new j(\".\",[Or[wo],eo]);Co.push(new be(P.goal.replace(new j(\",\",[new j(\"=\",[lt,br[Hi].variables]),new j(\"=\",[$,eo])])),P.substitution,P))}w.prepend(Co)}};w.__calls.unshift(Ir)}},\"setof/3\":function(w,P,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2];if(x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(Z))w.throw_error(x.error.type(\"callable\",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))w.throw_error(x.error.type(\"list\",$,y.indicator));else{var oe=w.next_free_variable(),xe;Z.indicator===\"^/2\"?(xe=Z.args[0].variables(),Z=Z.args[1]):xe=[],xe=xe.concat(z.variables());for(var Re=Z.variables().filter(function(Or){return e(xe,Or)===-1}),lt=new j(\"[]\"),Ct=Re.length-1;Ct>=0;Ct--)lt=new j(\".\",[new De(Re[Ct]),lt]);var qt=new j(\",\",[Z,new j(\"=\",[oe,new j(\",\",[lt,z])])]),ir=w.points,bt=w.session.limit,gn=w.session.format_success;w.session.format_success=function(Or){return Or.substitution},w.add_goal(qt,!0,P);var br=[],Ir=function(Or){if(Or!==!1&&Or!==null&&!x.type.is_error(Or)){w.__calls.unshift(Ir);var nn=!1,ai=Or.links[oe.id].args[0],Io=Or.links[oe.id].args[1];for(var ts in br)if(br.hasOwnProperty(ts)){var $s=br[ts];if($s.variables.equals(ai)){$s.answers.push(Io),nn=!0;break}}nn||br.push({variables:ai,answers:[Io]}),w.session.limit=w.current_limit}else if(w.points=ir,w.session.limit=bt,w.session.format_success=gn,x.type.is_error(Or))w.throw_error(Or.args[0]);else if(w.current_limit>0){for(var Co=[],Hi=0;Hi<br.length;Hi++){Or=br[Hi].answers.sort(x.compare);for(var eo=new j(\"[]\"),wo=Or.length-1;wo>=0;wo--)eo=new j(\".\",[Or[wo],eo]);Co.push(new be(P.goal.replace(new j(\",\",[new j(\"=\",[lt,br[Hi].variables]),new j(\"=\",[$,eo])])),P.substitution,P))}w.prepend(Co)}};w.__calls.unshift(Ir)}},\"functor/3\":function(w,P,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2];if(x.type.is_variable(z)&&(x.type.is_variable(Z)||x.type.is_variable($)))w.throw_error(x.error.instantiation(\"functor/3\"));else if(!x.type.is_variable($)&&!x.type.is_integer($))w.throw_error(x.error.type(\"integer\",y.args[2],\"functor/3\"));else if(!x.type.is_variable(Z)&&!x.type.is_atomic(Z))w.throw_error(x.error.type(\"atomic\",y.args[1],\"functor/3\"));else if(x.type.is_integer(Z)&&x.type.is_integer($)&&$.value!==0)w.throw_error(x.error.type(\"atom\",y.args[1],\"functor/3\"));else if(x.type.is_variable(z)){if(y.args[2].value>=0){for(var oe=[],xe=0;xe<$.value;xe++)oe.push(w.next_free_variable());var Re=x.type.is_integer(Z)?Z:new j(Z.id,oe);w.prepend([new be(P.goal.replace(new j(\"=\",[z,Re])),P.substitution,P)])}}else{var lt=x.type.is_integer(z)?z:new j(z.id,[]),Ct=x.type.is_integer(z)?new Te(0,!1):new Te(z.args.length,!1),qt=new j(\",\",[new j(\"=\",[lt,Z]),new j(\"=\",[Ct,$])]);w.prepend([new be(P.goal.replace(qt),P.substitution,P)])}},\"arg/3\":function(w,P,y){if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))w.throw_error(x.error.instantiation(y.indicator));else if(y.args[0].value<0)w.throw_error(x.error.domain(\"not_less_than_zero\",y.args[0],y.indicator));else if(!x.type.is_compound(y.args[1]))w.throw_error(x.error.type(\"compound\",y.args[1],y.indicator));else{var F=y.args[0].value;if(F>0&&F<=y.args[1].args.length){var z=new j(\"=\",[y.args[1].args[F-1],y.args[2]]);w.prepend([new be(P.goal.replace(z),P.substitution,P)])}}},\"=../2\":function(w,P,y){var F;if(x.type.is_variable(y.args[0])&&(x.type.is_variable(y.args[1])||x.type.is_non_empty_list(y.args[1])&&x.type.is_variable(y.args[1].args[0])))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_fully_list(y.args[1]))w.throw_error(x.error.type(\"list\",y.args[1],y.indicator));else if(x.type.is_variable(y.args[0])){if(!x.type.is_variable(y.args[1])){var Z=[];for(F=y.args[1].args[1];F.indicator===\"./2\";)Z.push(F.args[0]),F=F.args[1];x.type.is_variable(y.args[0])&&x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):Z.length===0&&x.type.is_compound(y.args[1].args[0])?w.throw_error(x.error.type(\"atomic\",y.args[1].args[0],y.indicator)):Z.length>0&&(x.type.is_compound(y.args[1].args[0])||x.type.is_number(y.args[1].args[0]))?w.throw_error(x.error.type(\"atom\",y.args[1].args[0],y.indicator)):Z.length===0?w.prepend([new be(P.goal.replace(new j(\"=\",[y.args[1].args[0],y.args[0]],P)),P.substitution,P)]):w.prepend([new be(P.goal.replace(new j(\"=\",[new j(y.args[1].args[0].id,Z),y.args[0]])),P.substitution,P)])}}else{if(x.type.is_atomic(y.args[0]))F=new j(\".\",[y.args[0],new j(\"[]\")]);else{F=new j(\"[]\");for(var z=y.args[0].args.length-1;z>=0;z--)F=new j(\".\",[y.args[0].args[z],F]);F=new j(\".\",[new j(y.args[0].id),F])}w.prepend([new be(P.goal.replace(new j(\"=\",[F,y.args[1]])),P.substitution,P)])}},\"copy_term/2\":function(w,P,y){var F=y.args[0].rename(w);w.prepend([new be(P.goal.replace(new j(\"=\",[F,y.args[1]])),P.substitution,P.parent)])},\"term_variables/2\":function(w,P,y){var F=y.args[0],z=y.args[1];if(!x.type.is_fully_list(z))w.throw_error(x.error.type(\"list\",z,y.indicator));else{var Z=g(s(ye(F.variables()),function($){return new De($)}));w.prepend([new be(P.goal.replace(new j(\"=\",[z,Z])),P.substitution,P)])}},\"clause/2\":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type(\"callable\",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_callable(y.args[1]))w.throw_error(x.error.type(\"callable\",y.args[1],y.indicator));else if(w.session.rules[y.args[0].indicator]!==void 0)if(w.is_public_predicate(y.args[0].indicator)){var F=[];for(var z in w.session.rules[y.args[0].indicator])if(w.session.rules[y.args[0].indicator].hasOwnProperty(z)){var Z=w.session.rules[y.args[0].indicator][z];w.session.renamed_variables={},Z=Z.rename(w),Z.body===null&&(Z.body=new j(\"true\"));var $=new j(\",\",[new j(\"=\",[Z.head,y.args[0]]),new j(\"=\",[Z.body,y.args[1]])]);F.push(new be(P.goal.replace($),P.substitution,P))}w.prepend(F)}else w.throw_error(x.error.permission(\"access\",\"private_procedure\",y.args[0].indicator,y.indicator))},\"current_predicate/1\":function(w,P,y){var F=y.args[0];if(!x.type.is_variable(F)&&(!x.type.is_compound(F)||F.indicator!==\"//2\"))w.throw_error(x.error.type(\"predicate_indicator\",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[0])&&!x.type.is_atom(F.args[0]))w.throw_error(x.error.type(\"atom\",F.args[0],y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[1])&&!x.type.is_integer(F.args[1]))w.throw_error(x.error.type(\"integer\",F.args[1],y.indicator));else{var z=[];for(var Z in w.session.rules)if(w.session.rules.hasOwnProperty(Z)){var $=Z.lastIndexOf(\"/\"),oe=Z.substr(0,$),xe=parseInt(Z.substr($+1,Z.length-($+1))),Re=new j(\"/\",[new j(oe),new Te(xe,!1)]),lt=new j(\"=\",[Re,F]);z.push(new be(P.goal.replace(lt),P.substitution,P))}w.prepend(z)}},\"asserta/1\":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type(\"callable\",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===\":-/2\"?(F=y.args[0].args[0],z=Ce(y.args[0].args[1])):(F=y.args[0],z=null),x.type.is_callable(F)?z!==null&&!x.type.is_callable(z)?w.throw_error(x.error.type(\"callable\",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator]=[new Ve(F,z,!0)].concat(w.session.rules[F.indicator]),w.success(P)):w.throw_error(x.error.permission(\"modify\",\"static_procedure\",F.indicator,y.indicator)):w.throw_error(x.error.type(\"callable\",F,y.indicator))}},\"assertz/1\":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type(\"callable\",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===\":-/2\"?(F=y.args[0].args[0],z=Ce(y.args[0].args[1])):(F=y.args[0],z=null),x.type.is_callable(F)?z!==null&&!x.type.is_callable(z)?w.throw_error(x.error.type(\"callable\",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator].push(new Ve(F,z,!0)),w.success(P)):w.throw_error(x.error.permission(\"modify\",\"static_procedure\",F.indicator,y.indicator)):w.throw_error(x.error.type(\"callable\",F,y.indicator))}},\"retract/1\":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type(\"callable\",y.args[0],y.indicator));else{var F,z;if(y.args[0].indicator===\":-/2\"?(F=y.args[0].args[0],z=y.args[0].args[1]):(F=y.args[0],z=new j(\"true\")),typeof P.retract>\"u\")if(w.is_public_predicate(F.indicator)){if(w.session.rules[F.indicator]!==void 0){for(var Z=[],$=0;$<w.session.rules[F.indicator].length;$++){w.session.renamed_variables={};var oe=w.session.rules[F.indicator][$],xe=oe.rename(w);xe.body===null&&(xe.body=new j(\"true\",[]));var Re=w.get_flag(\"occurs_check\").indicator===\"true/0\",lt=x.unify(new j(\",\",[F,z]),new j(\",\",[xe.head,xe.body]),Re);if(lt!==null){var Ct=new be(P.goal.replace(new j(\",\",[new j(\"retract\",[new j(\":-\",[F,z])]),new j(\",\",[new j(\"=\",[F,xe.head]),new j(\"=\",[z,xe.body])])])),P.substitution,P);Ct.retract=oe,Z.push(Ct)}}w.prepend(Z)}}else w.throw_error(x.error.permission(\"modify\",\"static_procedure\",F.indicator,y.indicator));else Ae(w,P,F.indicator,P.retract)}},\"retractall/1\":function(w,P,y){var F=y.args[0];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_callable(F)?w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"retract\",[new x.type.Term(\":-\",[F,new De(\"_\")])]),new j(\"fail\",[])])),P.substitution,P),new be(P.goal.replace(null),P.substitution,P)]):w.throw_error(x.error.type(\"callable\",F,y.indicator))},\"abolish/1\":function(w,P,y){if(x.type.is_variable(y.args[0])||x.type.is_term(y.args[0])&&y.args[0].indicator===\"//2\"&&(x.type.is_variable(y.args[0].args[0])||x.type.is_variable(y.args[0].args[1])))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_term(y.args[0])||y.args[0].indicator!==\"//2\")w.throw_error(x.error.type(\"predicate_indicator\",y.args[0],y.indicator));else if(!x.type.is_atom(y.args[0].args[0]))w.throw_error(x.error.type(\"atom\",y.args[0].args[0],y.indicator));else if(!x.type.is_integer(y.args[0].args[1]))w.throw_error(x.error.type(\"integer\",y.args[0].args[1],y.indicator));else if(y.args[0].args[1].value<0)w.throw_error(x.error.domain(\"not_less_than_zero\",y.args[0].args[1],y.indicator));else if(x.type.is_number(w.get_flag(\"max_arity\"))&&y.args[0].args[1].value>w.get_flag(\"max_arity\").value)w.throw_error(x.error.representation(\"max_arity\",y.indicator));else{var F=y.args[0].args[0].id+\"/\"+y.args[0].args[1].value;w.is_public_predicate(F)?(delete w.session.rules[F],w.success(P)):w.throw_error(x.error.permission(\"modify\",\"static_procedure\",F,y.indicator))}},\"atom_length/2\":function(w,P,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_atom(y.args[0]))w.throw_error(x.error.type(\"atom\",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_integer(y.args[1]))w.throw_error(x.error.type(\"integer\",y.args[1],y.indicator));else if(x.type.is_integer(y.args[1])&&y.args[1].value<0)w.throw_error(x.error.domain(\"not_less_than_zero\",y.args[1],y.indicator));else{var F=new Te(y.args[0].id.length,!1);w.prepend([new be(P.goal.replace(new j(\"=\",[F,y.args[1]])),P.substitution,P)])}},\"atom_concat/3\":function(w,P,y){var F,z,Z=y.args[0],$=y.args[1],oe=y.args[2];if(x.type.is_variable(oe)&&(x.type.is_variable(Z)||x.type.is_variable($)))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_atom(Z))w.throw_error(x.error.type(\"atom\",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_atom($))w.throw_error(x.error.type(\"atom\",$,y.indicator));else if(!x.type.is_variable(oe)&&!x.type.is_atom(oe))w.throw_error(x.error.type(\"atom\",oe,y.indicator));else{var xe=x.type.is_variable(Z),Re=x.type.is_variable($);if(!xe&&!Re)z=new j(\"=\",[oe,new j(Z.id+$.id)]),w.prepend([new be(P.goal.replace(z),P.substitution,P)]);else if(xe&&!Re)F=oe.id.substr(0,oe.id.length-$.id.length),F+$.id===oe.id&&(z=new j(\"=\",[Z,new j(F)]),w.prepend([new be(P.goal.replace(z),P.substitution,P)]));else if(Re&&!xe)F=oe.id.substr(Z.id.length),Z.id+F===oe.id&&(z=new j(\"=\",[$,new j(F)]),w.prepend([new be(P.goal.replace(z),P.substitution,P)]));else{for(var lt=[],Ct=0;Ct<=oe.id.length;Ct++){var qt=new j(oe.id.substr(0,Ct)),ir=new j(oe.id.substr(Ct));z=new j(\",\",[new j(\"=\",[qt,Z]),new j(\"=\",[ir,$])]),lt.push(new be(P.goal.replace(z),P.substitution,P))}w.prepend(lt)}}},\"sub_atom/5\":function(w,P,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2],oe=y.args[3],xe=y.args[4];if(x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_integer(Z))w.throw_error(x.error.type(\"integer\",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_integer($))w.throw_error(x.error.type(\"integer\",$,y.indicator));else if(!x.type.is_variable(oe)&&!x.type.is_integer(oe))w.throw_error(x.error.type(\"integer\",oe,y.indicator));else if(x.type.is_integer(Z)&&Z.value<0)w.throw_error(x.error.domain(\"not_less_than_zero\",Z,y.indicator));else if(x.type.is_integer($)&&$.value<0)w.throw_error(x.error.domain(\"not_less_than_zero\",$,y.indicator));else if(x.type.is_integer(oe)&&oe.value<0)w.throw_error(x.error.domain(\"not_less_than_zero\",oe,y.indicator));else{var Re=[],lt=[],Ct=[];if(x.type.is_variable(Z))for(F=0;F<=z.id.length;F++)Re.push(F);else Re.push(Z.value);if(x.type.is_variable($))for(F=0;F<=z.id.length;F++)lt.push(F);else lt.push($.value);if(x.type.is_variable(oe))for(F=0;F<=z.id.length;F++)Ct.push(F);else Ct.push(oe.value);var qt=[];for(var ir in Re)if(Re.hasOwnProperty(ir)){F=Re[ir];for(var bt in lt)if(lt.hasOwnProperty(bt)){var gn=lt[bt],br=z.id.length-F-gn;if(e(Ct,br)!==-1&&F+gn+br===z.id.length){var Ir=z.id.substr(F,gn);if(z.id===z.id.substr(0,F)+Ir+z.id.substr(F+gn,br)){var Or=new j(\"=\",[new j(Ir),xe]),nn=new j(\"=\",[Z,new Te(F)]),ai=new j(\"=\",[$,new Te(gn)]),Io=new j(\"=\",[oe,new Te(br)]),ts=new j(\",\",[new j(\",\",[new j(\",\",[nn,ai]),Io]),Or]);qt.push(new be(P.goal.replace(ts),P.substitution,P))}}}}w.prepend(qt)}},\"atom_chars/2\":function(w,P,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type(\"atom\",F,y.indicator));else if(x.type.is_variable(F)){for(var oe=z,xe=x.type.is_variable(F),Re=\"\";oe.indicator===\"./2\";){if(x.type.is_character(oe.args[0]))Re+=oe.args[0].id;else if(x.type.is_variable(oe.args[0])&&xe){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.type(\"character\",oe.args[0],y.indicator));return}oe=oe.args[1]}x.type.is_variable(oe)&&xe?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)?w.throw_error(x.error.type(\"list\",z,y.indicator)):w.prepend([new be(P.goal.replace(new j(\"=\",[new j(Re),F])),P.substitution,P)])}else{for(var Z=new j(\"[]\"),$=F.id.length-1;$>=0;$--)Z=new j(\".\",[new j(F.id.charAt($)),Z]);w.prepend([new be(P.goal.replace(new j(\"=\",[z,Z])),P.substitution,P)])}},\"atom_codes/2\":function(w,P,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type(\"atom\",F,y.indicator));else if(x.type.is_variable(F)){for(var oe=z,xe=x.type.is_variable(F),Re=\"\";oe.indicator===\"./2\";){if(x.type.is_character_code(oe.args[0]))Re+=c(oe.args[0].value);else if(x.type.is_variable(oe.args[0])&&xe){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.representation(\"character_code\",y.indicator));return}oe=oe.args[1]}x.type.is_variable(oe)&&xe?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)?w.throw_error(x.error.type(\"list\",z,y.indicator)):w.prepend([new be(P.goal.replace(new j(\"=\",[new j(Re),F])),P.substitution,P)])}else{for(var Z=new j(\"[]\"),$=F.id.length-1;$>=0;$--)Z=new j(\".\",[new Te(n(F.id,$),!1),Z]);w.prepend([new be(P.goal.replace(new j(\"=\",[z,Z])),P.substitution,P)])}},\"char_code/2\":function(w,P,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_character(F))w.throw_error(x.error.type(\"character\",F,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))w.throw_error(x.error.type(\"integer\",z,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character_code(z))w.throw_error(x.error.representation(\"character_code\",y.indicator));else if(x.type.is_variable(z)){var Z=new Te(n(F.id,0),!1);w.prepend([new be(P.goal.replace(new j(\"=\",[Z,z])),P.substitution,P)])}else{var $=new j(c(z.value));w.prepend([new be(P.goal.replace(new j(\"=\",[$,F])),P.substitution,P)])}},\"number_chars/2\":function(w,P,y){var F,z=y.args[0],Z=y.args[1];if(x.type.is_variable(z)&&x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_number(z))w.throw_error(x.error.type(\"number\",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_list(Z))w.throw_error(x.error.type(\"list\",Z,y.indicator));else{var $=x.type.is_variable(z);if(!x.type.is_variable(Z)){var oe=Z,xe=!0;for(F=\"\";oe.indicator===\"./2\";){if(x.type.is_character(oe.args[0]))F+=oe.args[0].id;else if(x.type.is_variable(oe.args[0]))xe=!1;else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.type(\"character\",oe.args[0],y.indicator));return}oe=oe.args[1]}if(xe=xe&&x.type.is_empty_list(oe),!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)){w.throw_error(x.error.type(\"list\",Z,y.indicator));return}if(!xe&&$){w.throw_error(x.error.instantiation(y.indicator));return}else if(xe)if(x.type.is_variable(oe)&&$){w.throw_error(x.error.instantiation(y.indicator));return}else{var Re=w.parse(F),lt=Re.value;!x.type.is_number(lt)||Re.tokens[Re.tokens.length-1].space?w.throw_error(x.error.syntax_by_predicate(\"parseable_number\",y.indicator)):w.prepend([new be(P.goal.replace(new j(\"=\",[z,lt])),P.substitution,P)]);return}}if(!$){F=z.toString();for(var Ct=new j(\"[]\"),qt=F.length-1;qt>=0;qt--)Ct=new j(\".\",[new j(F.charAt(qt)),Ct]);w.prepend([new be(P.goal.replace(new j(\"=\",[Z,Ct])),P.substitution,P)])}}},\"number_codes/2\":function(w,P,y){var F,z=y.args[0],Z=y.args[1];if(x.type.is_variable(z)&&x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_number(z))w.throw_error(x.error.type(\"number\",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_list(Z))w.throw_error(x.error.type(\"list\",Z,y.indicator));else{var $=x.type.is_variable(z);if(!x.type.is_variable(Z)){var oe=Z,xe=!0;for(F=\"\";oe.indicator===\"./2\";){if(x.type.is_character_code(oe.args[0]))F+=c(oe.args[0].value);else if(x.type.is_variable(oe.args[0]))xe=!1;else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.type(\"character_code\",oe.args[0],y.indicator));return}oe=oe.args[1]}if(xe=xe&&x.type.is_empty_list(oe),!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)){w.throw_error(x.error.type(\"list\",Z,y.indicator));return}if(!xe&&$){w.throw_error(x.error.instantiation(y.indicator));return}else if(xe)if(x.type.is_variable(oe)&&$){w.throw_error(x.error.instantiation(y.indicator));return}else{var Re=w.parse(F),lt=Re.value;!x.type.is_number(lt)||Re.tokens[Re.tokens.length-1].space?w.throw_error(x.error.syntax_by_predicate(\"parseable_number\",y.indicator)):w.prepend([new be(P.goal.replace(new j(\"=\",[z,lt])),P.substitution,P)]);return}}if(!$){F=z.toString();for(var Ct=new j(\"[]\"),qt=F.length-1;qt>=0;qt--)Ct=new j(\".\",[new Te(n(F,qt),!1),Ct]);w.prepend([new be(P.goal.replace(new j(\"=\",[Z,Ct])),P.substitution,P)])}}},\"upcase_atom/2\":function(w,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(z)&&!x.type.is_atom(z)?w.throw_error(x.error.type(\"atom\",z,y.indicator)):w.prepend([new be(P.goal.replace(new j(\"=\",[z,new j(F.id.toUpperCase(),[])])),P.substitution,P)]):w.throw_error(x.error.type(\"atom\",F,y.indicator))},\"downcase_atom/2\":function(w,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(z)&&!x.type.is_atom(z)?w.throw_error(x.error.type(\"atom\",z,y.indicator)):w.prepend([new be(P.goal.replace(new j(\"=\",[z,new j(F.id.toLowerCase(),[])])),P.substitution,P)]):w.throw_error(x.error.type(\"atom\",F,y.indicator))},\"atomic_list_concat/2\":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j(\"atomic_list_concat\",[F,new j(\"\",[]),z])),P.substitution,P)])},\"atomic_list_concat/3\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(x.type.is_variable(z)||x.type.is_variable(F)&&x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_list(F))w.throw_error(x.error.type(\"list\",F,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_atom(Z))w.throw_error(x.error.type(\"atom\",Z,y.indicator));else if(x.type.is_variable(Z)){for(var oe=\"\",xe=F;x.type.is_term(xe)&&xe.indicator===\"./2\";){if(!x.type.is_atom(xe.args[0])&&!x.type.is_number(xe.args[0])){w.throw_error(x.error.type(\"atomic\",xe.args[0],y.indicator));return}oe!==\"\"&&(oe+=z.id),x.type.is_atom(xe.args[0])?oe+=xe.args[0].id:oe+=\"\"+xe.args[0].value,xe=xe.args[1]}oe=new j(oe,[]),x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_term(xe)||xe.indicator!==\"[]/0\"?w.throw_error(x.error.type(\"list\",F,y.indicator)):w.prepend([new be(P.goal.replace(new j(\"=\",[oe,Z])),P.substitution,P)])}else{var $=g(s(Z.id.split(z.id),function(Re){return new j(Re,[])}));w.prepend([new be(P.goal.replace(new j(\"=\",[$,F])),P.substitution,P)])}},\"@=</2\":function(w,P,y){x.compare(y.args[0],y.args[1])<=0&&w.success(P)},\"==/2\":function(w,P,y){x.compare(y.args[0],y.args[1])===0&&w.success(P)},\"\\\\==/2\":function(w,P,y){x.compare(y.args[0],y.args[1])!==0&&w.success(P)},\"@</2\":function(w,P,y){x.compare(y.args[0],y.args[1])<0&&w.success(P)},\"@>/2\":function(w,P,y){x.compare(y.args[0],y.args[1])>0&&w.success(P)},\"@>=/2\":function(w,P,y){x.compare(y.args[0],y.args[1])>=0&&w.success(P)},\"compare/3\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type(\"atom\",F,y.indicator));else if(x.type.is_atom(F)&&[\"<\",\">\",\"=\"].indexOf(F.id)===-1)w.throw_error(x.type.domain(\"order\",F,y.indicator));else{var $=x.compare(z,Z);$=$===0?\"=\":$===-1?\"<\":\">\",w.prepend([new be(P.goal.replace(new j(\"=\",[F,new j($,[])])),P.substitution,P)])}},\"is/2\":function(w,P,y){var F=y.args[1].interpret(w);x.type.is_number(F)?w.prepend([new be(P.goal.replace(new j(\"=\",[y.args[0],F],w.level)),P.substitution,P)]):w.throw_error(F)},\"between/3\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_integer(F))w.throw_error(x.error.type(\"integer\",F,y.indicator));else if(!x.type.is_integer(z))w.throw_error(x.error.type(\"integer\",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_integer(Z))w.throw_error(x.error.type(\"integer\",Z,y.indicator));else if(x.type.is_variable(Z)){var $=[new be(P.goal.replace(new j(\"=\",[Z,F])),P.substitution,P)];F.value<z.value&&$.push(new be(P.goal.replace(new j(\"between\",[new Te(F.value+1,!1),z,Z])),P.substitution,P)),w.prepend($)}else F.value<=Z.value&&z.value>=Z.value&&w.success(P)},\"succ/2\":function(w,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)&&x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_integer(F)?w.throw_error(x.error.type(\"integer\",F,y.indicator)):!x.type.is_variable(z)&&!x.type.is_integer(z)?w.throw_error(x.error.type(\"integer\",z,y.indicator)):!x.type.is_variable(F)&&F.value<0?w.throw_error(x.error.domain(\"not_less_than_zero\",F,y.indicator)):!x.type.is_variable(z)&&z.value<0?w.throw_error(x.error.domain(\"not_less_than_zero\",z,y.indicator)):(x.type.is_variable(z)||z.value>0)&&(x.type.is_variable(F)?w.prepend([new be(P.goal.replace(new j(\"=\",[F,new Te(z.value-1,!1)])),P.substitution,P)]):w.prepend([new be(P.goal.replace(new j(\"=\",[z,new Te(F.value+1,!1)])),P.substitution,P)]))},\"=:=/2\":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F===0&&w.success(P)},\"=\\\\=/2\":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F!==0&&w.success(P)},\"</2\":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F<0&&w.success(P)},\"=</2\":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F<=0&&w.success(P)},\">/2\":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F>0&&w.success(P)},\">=/2\":function(w,P,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F>=0&&w.success(P)},\"var/1\":function(w,P,y){x.type.is_variable(y.args[0])&&w.success(P)},\"atom/1\":function(w,P,y){x.type.is_atom(y.args[0])&&w.success(P)},\"atomic/1\":function(w,P,y){x.type.is_atomic(y.args[0])&&w.success(P)},\"compound/1\":function(w,P,y){x.type.is_compound(y.args[0])&&w.success(P)},\"integer/1\":function(w,P,y){x.type.is_integer(y.args[0])&&w.success(P)},\"float/1\":function(w,P,y){x.type.is_float(y.args[0])&&w.success(P)},\"number/1\":function(w,P,y){x.type.is_number(y.args[0])&&w.success(P)},\"nonvar/1\":function(w,P,y){x.type.is_variable(y.args[0])||w.success(P)},\"ground/1\":function(w,P,y){y.variables().length===0&&w.success(P)},\"acyclic_term/1\":function(w,P,y){for(var F=P.substitution.apply(P.substitution),z=y.args[0].variables(),Z=0;Z<z.length;Z++)if(P.substitution.links[z[Z]]!==void 0&&!P.substitution.links[z[Z]].equals(F.links[z[Z]]))return;w.success(P)},\"callable/1\":function(w,P,y){x.type.is_callable(y.args[0])&&w.success(P)},\"is_list/1\":function(w,P,y){for(var F=y.args[0];x.type.is_term(F)&&F.indicator===\"./2\";)F=F.args[1];x.type.is_term(F)&&F.indicator===\"[]/0\"&&w.success(P)},\"current_input/1\":function(w,P,y){var F=y.args[0];!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain(\"stream\",F,y.indicator)):(x.type.is_atom(F)&&w.get_stream_by_alias(F.id)&&(F=w.get_stream_by_alias(F.id)),w.prepend([new be(P.goal.replace(new j(\"=\",[F,w.get_current_input()])),P.substitution,P)]))},\"current_output/1\":function(w,P,y){var F=y.args[0];!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator)):(x.type.is_atom(F)&&w.get_stream_by_alias(F.id)&&(F=w.get_stream_by_alias(F.id)),w.prepend([new be(P.goal.replace(new j(\"=\",[F,w.get_current_output()])),P.substitution,P)]))},\"set_input/1\":function(w,P,y){var F=y.args[0],z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator)):x.type.is_stream(z)?z.output===!0?w.throw_error(x.error.permission(\"input\",\"stream\",F,y.indicator)):(w.set_current_input(z),w.success(P)):w.throw_error(x.error.existence(\"stream\",F,y.indicator))},\"set_output/1\":function(w,P,y){var F=y.args[0],z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator)):x.type.is_stream(z)?z.input===!0?w.throw_error(x.error.permission(\"output\",\"stream\",F,y.indicator)):(w.set_current_output(z),w.success(P)):w.throw_error(x.error.existence(\"stream\",F,y.indicator))},\"open/3\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2];w.prepend([new be(P.goal.replace(new j(\"open\",[F,z,Z,new j(\"[]\",[])])),P.substitution,P)])},\"open/4\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=y.args[3];if(x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_atom(z))w.throw_error(x.error.type(\"atom\",z,y.indicator));else if(!x.type.is_list($))w.throw_error(x.error.type(\"list\",$,y.indicator));else if(!x.type.is_variable(Z))w.throw_error(x.error.type(\"variable\",Z,y.indicator));else if(!x.type.is_atom(F)&&!x.type.is_streamable(F))w.throw_error(x.error.domain(\"source_sink\",F,y.indicator));else if(!x.type.is_io_mode(z))w.throw_error(x.error.domain(\"io_mode\",z,y.indicator));else{for(var oe={},xe=$,Re;x.type.is_term(xe)&&xe.indicator===\"./2\";){if(Re=xe.args[0],x.type.is_variable(Re)){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_stream_option(Re)){w.throw_error(x.error.domain(\"stream_option\",Re,y.indicator));return}oe[Re.id]=Re.args[0].id,xe=xe.args[1]}if(xe.indicator!==\"[]/0\"){x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):w.throw_error(x.error.type(\"list\",$,y.indicator));return}else{var lt=oe.alias;if(lt&&w.get_stream_by_alias(lt)){w.throw_error(x.error.permission(\"open\",\"source_sink\",new j(\"alias\",[new j(lt,[])]),y.indicator));return}oe.type||(oe.type=\"text\");var Ct;if(x.type.is_atom(F)?Ct=w.file_system_open(F.id,oe.type,z.id):Ct=F.stream(oe.type,z.id),Ct===!1){w.throw_error(x.error.permission(\"open\",\"source_sink\",F,y.indicator));return}else if(Ct===null){w.throw_error(x.error.existence(\"source_sink\",F,y.indicator));return}var qt=new Fe(Ct,z.id,oe.alias,oe.type,oe.reposition===\"true\",oe.eof_action);lt?w.session.streams[lt]=qt:w.session.streams[qt.id]=qt,w.prepend([new be(P.goal.replace(new j(\"=\",[Z,qt])),P.substitution,P)])}}},\"close/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\"close\",[F,new j(\"[]\",[])])),P.substitution,P)])},\"close/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(z))w.throw_error(x.error.type(\"list\",z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence(\"stream\",F,y.indicator));else{for(var $={},oe=z,xe;x.type.is_term(oe)&&oe.indicator===\"./2\";){if(xe=oe.args[0],x.type.is_variable(xe)){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_close_option(xe)){w.throw_error(x.error.domain(\"close_option\",xe,y.indicator));return}$[xe.id]=xe.args[0].id===\"true\",oe=oe.args[1]}if(oe.indicator!==\"[]/0\"){x.type.is_variable(oe)?w.throw_error(x.error.instantiation(y.indicator)):w.throw_error(x.error.type(\"list\",z,y.indicator));return}else{if(Z===w.session.standard_input||Z===w.session.standard_output){w.success(P);return}else Z===w.session.current_input?w.session.current_input=w.session.standard_input:Z===w.session.current_output&&(w.session.current_output=w.session.current_output);Z.alias!==null?delete w.session.streams[Z.alias]:delete w.session.streams[Z.id],Z.output&&Z.stream.flush();var Re=Z.stream.close();Z.stream=null,($.force===!0||Re===!0)&&w.success(P)}}},\"flush_output/0\":function(w,P,y){w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_output\",[new De(\"S\")]),new j(\"flush_output\",[new De(\"S\")])])),P.substitution,P)])},\"flush_output/1\":function(w,P,y){var F=y.args[0],z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator)):!x.type.is_stream(z)||z.stream===null?w.throw_error(x.error.existence(\"stream\",F,y.indicator)):F.input===!0?w.throw_error(x.error.permission(\"output\",\"stream\",output,y.indicator)):(z.stream.flush(),w.success(P))},\"stream_property/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_variable(F)&&(!x.type.is_stream(Z)||Z.stream===null))w.throw_error(x.error.existence(\"stream\",F,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_stream_property(z))w.throw_error(x.error.domain(\"stream_property\",z,y.indicator));else{var $=[],oe=[];if(!x.type.is_variable(F))$.push(Z);else for(var xe in w.session.streams)$.push(w.session.streams[xe]);for(var Re=0;Re<$.length;Re++){var lt=[];$[Re].filename&&lt.push(new j(\"file_name\",[new j($[Re].file_name,[])])),lt.push(new j(\"mode\",[new j($[Re].mode,[])])),lt.push(new j($[Re].input?\"input\":\"output\",[])),$[Re].alias&&lt.push(new j(\"alias\",[new j($[Re].alias,[])])),lt.push(new j(\"position\",[typeof $[Re].position==\"number\"?new Te($[Re].position,!1):new j($[Re].position,[])])),lt.push(new j(\"end_of_stream\",[new j($[Re].position===\"end_of_stream\"?\"at\":$[Re].position===\"past_end_of_stream\"?\"past\":\"not\",[])])),lt.push(new j(\"eof_action\",[new j($[Re].eof_action,[])])),lt.push(new j(\"reposition\",[new j($[Re].reposition?\"true\":\"false\",[])])),lt.push(new j(\"type\",[new j($[Re].type,[])]));for(var Ct=0;Ct<lt.length;Ct++)oe.push(new be(P.goal.replace(new j(\",\",[new j(\"=\",[x.type.is_variable(F)?F:Z,$[Re]]),new j(\"=\",[z,lt[Ct]])])),P.substitution,P))}w.prepend(oe)}},\"at_end_of_stream/0\":function(w,P,y){w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_input\",[new De(\"S\")]),new j(\",\",[new j(\"stream_property\",[new De(\"S\"),new j(\"end_of_stream\",[new De(\"E\")])]),new j(\",\",[new j(\"!\",[]),new j(\";\",[new j(\"=\",[new De(\"E\"),new j(\"at\",[])]),new j(\"=\",[new De(\"E\"),new j(\"past\",[])])])])])])),P.substitution,P)])},\"at_end_of_stream/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"stream_property\",[F,new j(\"end_of_stream\",[new De(\"E\")])]),new j(\",\",[new j(\"!\",[]),new j(\";\",[new j(\"=\",[new De(\"E\"),new j(\"at\",[])]),new j(\"=\",[new De(\"E\"),new j(\"past\",[])])])])])),P.substitution,P)])},\"set_stream_position/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator)):!x.type.is_stream(Z)||Z.stream===null?w.throw_error(x.error.existence(\"stream\",F,y.indicator)):x.type.is_stream_position(z)?Z.reposition===!1?w.throw_error(x.error.permission(\"reposition\",\"stream\",F,y.indicator)):(x.type.is_integer(z)?Z.position=z.value:Z.position=z.id,w.success(P)):w.throw_error(x.error.domain(\"stream_position\",z,y.indicator))},\"get_char/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_input\",[new De(\"S\")]),new j(\"get_char\",[new De(\"S\"),F])])),P.substitution,P)])},\"get_char/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character(z))w.throw_error(x.error.type(\"in_character\",z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence(\"stream\",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission(\"input\",\"stream\",F,y.indicator));else if(Z.type===\"binary\")w.throw_error(x.error.permission(\"input\",\"binary_stream\",F,y.indicator));else if(Z.position===\"past_end_of_stream\"&&Z.eof_action===\"error\")w.throw_error(x.error.permission(\"input\",\"past_end_of_stream\",F,y.indicator));else{var $;if(Z.position===\"end_of_stream\")$=\"end_of_file\",Z.position=\"past_end_of_stream\";else{if($=Z.stream.get(1,Z.position),$===null){w.throw_error(x.error.representation(\"character\",y.indicator));return}Z.position++}w.prepend([new be(P.goal.replace(new j(\"=\",[new j($,[]),z])),P.substitution,P)])}},\"get_code/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_input\",[new De(\"S\")]),new j(\"get_code\",[new De(\"S\"),F])])),P.substitution,P)])},\"get_code/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))w.throw_error(x.error.type(\"integer\",char,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence(\"stream\",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission(\"input\",\"stream\",F,y.indicator));else if(Z.type===\"binary\")w.throw_error(x.error.permission(\"input\",\"binary_stream\",F,y.indicator));else if(Z.position===\"past_end_of_stream\"&&Z.eof_action===\"error\")w.throw_error(x.error.permission(\"input\",\"past_end_of_stream\",F,y.indicator));else{var $;if(Z.position===\"end_of_stream\")$=-1,Z.position=\"past_end_of_stream\";else{if($=Z.stream.get(1,Z.position),$===null){w.throw_error(x.error.representation(\"character\",y.indicator));return}$=n($,0),Z.position++}w.prepend([new be(P.goal.replace(new j(\"=\",[new Te($,!1),z])),P.substitution,P)])}},\"peek_char/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_input\",[new De(\"S\")]),new j(\"peek_char\",[new De(\"S\"),F])])),P.substitution,P)])},\"peek_char/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character(z))w.throw_error(x.error.type(\"in_character\",z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence(\"stream\",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission(\"input\",\"stream\",F,y.indicator));else if(Z.type===\"binary\")w.throw_error(x.error.permission(\"input\",\"binary_stream\",F,y.indicator));else if(Z.position===\"past_end_of_stream\"&&Z.eof_action===\"error\")w.throw_error(x.error.permission(\"input\",\"past_end_of_stream\",F,y.indicator));else{var $;if(Z.position===\"end_of_stream\")$=\"end_of_file\",Z.position=\"past_end_of_stream\";else if($=Z.stream.get(1,Z.position),$===null){w.throw_error(x.error.representation(\"character\",y.indicator));return}w.prepend([new be(P.goal.replace(new j(\"=\",[new j($,[]),z])),P.substitution,P)])}},\"peek_code/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_input\",[new De(\"S\")]),new j(\"peek_code\",[new De(\"S\"),F])])),P.substitution,P)])},\"peek_code/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))w.throw_error(x.error.type(\"integer\",char,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence(\"stream\",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission(\"input\",\"stream\",F,y.indicator));else if(Z.type===\"binary\")w.throw_error(x.error.permission(\"input\",\"binary_stream\",F,y.indicator));else if(Z.position===\"past_end_of_stream\"&&Z.eof_action===\"error\")w.throw_error(x.error.permission(\"input\",\"past_end_of_stream\",F,y.indicator));else{var $;if(Z.position===\"end_of_stream\")$=-1,Z.position=\"past_end_of_stream\";else{if($=Z.stream.get(1,Z.position),$===null){w.throw_error(x.error.representation(\"character\",y.indicator));return}$=n($,0)}w.prepend([new be(P.goal.replace(new j(\"=\",[new Te($,!1),z])),P.substitution,P)])}},\"put_char/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_output\",[new De(\"S\")]),new j(\"put_char\",[new De(\"S\"),F])])),P.substitution,P)])},\"put_char/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_character(z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator)):!x.type.is_stream(Z)||Z.stream===null?w.throw_error(x.error.existence(\"stream\",F,y.indicator)):Z.input?w.throw_error(x.error.permission(\"output\",\"stream\",F,y.indicator)):Z.type===\"binary\"?w.throw_error(x.error.permission(\"output\",\"binary_stream\",F,y.indicator)):Z.stream.put(z.id,Z.position)&&(typeof Z.position==\"number\"&&Z.position++,w.success(P)):w.throw_error(x.error.type(\"character\",z,y.indicator))},\"put_code/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_output\",[new De(\"S\")]),new j(\"put_code\",[new De(\"S\"),F])])),P.substitution,P)])},\"put_code/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_integer(z)?x.type.is_character_code(z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator)):!x.type.is_stream(Z)||Z.stream===null?w.throw_error(x.error.existence(\"stream\",F,y.indicator)):Z.input?w.throw_error(x.error.permission(\"output\",\"stream\",F,y.indicator)):Z.type===\"binary\"?w.throw_error(x.error.permission(\"output\",\"binary_stream\",F,y.indicator)):Z.stream.put_char(c(z.value),Z.position)&&(typeof Z.position==\"number\"&&Z.position++,w.success(P)):w.throw_error(x.error.representation(\"character_code\",y.indicator)):w.throw_error(x.error.type(\"integer\",z,y.indicator))},\"nl/0\":function(w,P,y){w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_output\",[new De(\"S\")]),new j(\"put_char\",[new De(\"S\"),new j(`\n`,[])])])),P.substitution,P)])},\"nl/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\"put_char\",[F,new j(`\n`,[])])),P.substitution,P)])},\"get_byte/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_input\",[new De(\"S\")]),new j(\"get_byte\",[new De(\"S\"),F])])),P.substitution,P)])},\"get_byte/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_byte(z))w.throw_error(x.error.type(\"in_byte\",char,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence(\"stream\",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission(\"input\",\"stream\",F,y.indicator));else if(Z.type===\"text\")w.throw_error(x.error.permission(\"input\",\"text_stream\",F,y.indicator));else if(Z.position===\"past_end_of_stream\"&&Z.eof_action===\"error\")w.throw_error(x.error.permission(\"input\",\"past_end_of_stream\",F,y.indicator));else{var $;if(Z.position===\"end_of_stream\")$=\"end_of_file\",Z.position=\"past_end_of_stream\";else{if($=Z.stream.get_byte(Z.position),$===null){w.throw_error(x.error.representation(\"byte\",y.indicator));return}Z.position++}w.prepend([new be(P.goal.replace(new j(\"=\",[new Te($,!1),z])),P.substitution,P)])}},\"peek_byte/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_input\",[new De(\"S\")]),new j(\"peek_byte\",[new De(\"S\"),F])])),P.substitution,P)])},\"peek_byte/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_byte(z))w.throw_error(x.error.type(\"in_byte\",char,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence(\"stream\",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission(\"input\",\"stream\",F,y.indicator));else if(Z.type===\"text\")w.throw_error(x.error.permission(\"input\",\"text_stream\",F,y.indicator));else if(Z.position===\"past_end_of_stream\"&&Z.eof_action===\"error\")w.throw_error(x.error.permission(\"input\",\"past_end_of_stream\",F,y.indicator));else{var $;if(Z.position===\"end_of_stream\")$=\"end_of_file\",Z.position=\"past_end_of_stream\";else if($=Z.stream.get_byte(Z.position),$===null){w.throw_error(x.error.representation(\"byte\",y.indicator));return}w.prepend([new be(P.goal.replace(new j(\"=\",[new Te($,!1),z])),P.substitution,P)])}},\"put_byte/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_output\",[new De(\"S\")]),new j(\"put_byte\",[new De(\"S\"),F])])),P.substitution,P)])},\"put_byte/2\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_byte(z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator)):!x.type.is_stream(Z)||Z.stream===null?w.throw_error(x.error.existence(\"stream\",F,y.indicator)):Z.input?w.throw_error(x.error.permission(\"output\",\"stream\",F,y.indicator)):Z.type===\"text\"?w.throw_error(x.error.permission(\"output\",\"text_stream\",F,y.indicator)):Z.stream.put_byte(z.value,Z.position)&&(typeof Z.position==\"number\"&&Z.position++,w.success(P)):w.throw_error(x.error.type(\"byte\",z,y.indicator))},\"read/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_input\",[new De(\"S\")]),new j(\"read_term\",[new De(\"S\"),F,new j(\"[]\",[])])])),P.substitution,P)])},\"read/2\":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j(\"read_term\",[F,z,new j(\"[]\",[])])),P.substitution,P)])},\"read_term/2\":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_input\",[new De(\"S\")]),new j(\"read_term\",[new De(\"S\"),F,z])])),P.substitution,P)])},\"read_term/3\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(Z))w.throw_error(x.error.type(\"list\",Z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_stream($)||$.stream===null)w.throw_error(x.error.existence(\"stream\",F,y.indicator));else if($.output)w.throw_error(x.error.permission(\"input\",\"stream\",F,y.indicator));else if($.type===\"binary\")w.throw_error(x.error.permission(\"input\",\"binary_stream\",F,y.indicator));else if($.position===\"past_end_of_stream\"&&$.eof_action===\"error\")w.throw_error(x.error.permission(\"input\",\"past_end_of_stream\",F,y.indicator));else{for(var oe={},xe=Z,Re;x.type.is_term(xe)&&xe.indicator===\"./2\";){if(Re=xe.args[0],x.type.is_variable(Re)){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_read_option(Re)){w.throw_error(x.error.domain(\"read_option\",Re,y.indicator));return}oe[Re.id]=Re.args[0],xe=xe.args[1]}if(xe.indicator!==\"[]/0\"){x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):w.throw_error(x.error.type(\"list\",Z,y.indicator));return}else{for(var lt,Ct,qt,ir=\"\",bt=[],gn=null;gn===null||gn.name!==\"atom\"||gn.value!==\".\"||qt.type===f&&x.flatten_error(new j(\"throw\",[qt.value])).found===\"token_not_found\";){if(lt=$.stream.get(1,$.position),lt===null){w.throw_error(x.error.representation(\"character\",y.indicator));return}if(lt===\"end_of_file\"||lt===\"past_end_of_file\"){qt?w.throw_error(x.error.syntax(bt[qt.len-1],\". or expression expected\",!1)):w.throw_error(x.error.syntax(null,\"token not found\",!0));return}$.position++,ir+=lt,Ct=new U(w),Ct.new_text(ir),bt=Ct.get_tokens(),gn=bt!==null&&bt.length>0?bt[bt.length-1]:null,bt!==null&&(qt=W(w,bt,0,w.__get_max_priority(),!1))}if(qt.type===p&&qt.len===bt.length-1&&gn.value===\".\"){qt=qt.value.rename(w);var br=new j(\"=\",[z,qt]);if(oe.variables){var Ir=g(s(ye(qt.variables()),function(Or){return new De(Or)}));br=new j(\",\",[br,new j(\"=\",[oe.variables,Ir])])}if(oe.variable_names){var Ir=g(s(ye(qt.variables()),function(nn){var ai;for(ai in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(ai)&&w.session.renamed_variables[ai]===nn)break;return new j(\"=\",[new j(ai,[]),new De(nn)])}));br=new j(\",\",[br,new j(\"=\",[oe.variable_names,Ir])])}if(oe.singletons){var Ir=g(s(new Ve(qt,null).singleton_variables(),function(nn){var ai;for(ai in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(ai)&&w.session.renamed_variables[ai]===nn)break;return new j(\"=\",[new j(ai,[]),new De(nn)])}));br=new j(\",\",[br,new j(\"=\",[oe.singletons,Ir])])}w.prepend([new be(P.goal.replace(br),P.substitution,P)])}else qt.type===p?w.throw_error(x.error.syntax(bt[qt.len],\"unexpected token\",!1)):w.throw_error(qt.value)}}},\"write/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_output\",[new De(\"S\")]),new j(\"write\",[new De(\"S\"),F])])),P.substitution,P)])},\"write/2\":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j(\"write_term\",[F,z,new j(\".\",[new j(\"quoted\",[new j(\"false\",[])]),new j(\".\",[new j(\"ignore_ops\",[new j(\"false\")]),new j(\".\",[new j(\"numbervars\",[new j(\"true\")]),new j(\"[]\",[])])])])])),P.substitution,P)])},\"writeq/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_output\",[new De(\"S\")]),new j(\"writeq\",[new De(\"S\"),F])])),P.substitution,P)])},\"writeq/2\":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j(\"write_term\",[F,z,new j(\".\",[new j(\"quoted\",[new j(\"true\",[])]),new j(\".\",[new j(\"ignore_ops\",[new j(\"false\")]),new j(\".\",[new j(\"numbervars\",[new j(\"true\")]),new j(\"[]\",[])])])])])),P.substitution,P)])},\"write_canonical/1\":function(w,P,y){var F=y.args[0];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_output\",[new De(\"S\")]),new j(\"write_canonical\",[new De(\"S\"),F])])),P.substitution,P)])},\"write_canonical/2\":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j(\"write_term\",[F,z,new j(\".\",[new j(\"quoted\",[new j(\"true\",[])]),new j(\".\",[new j(\"ignore_ops\",[new j(\"true\")]),new j(\".\",[new j(\"numbervars\",[new j(\"false\")]),new j(\"[]\",[])])])])])),P.substitution,P)])},\"write_term/2\":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new be(P.goal.replace(new j(\",\",[new j(\"current_output\",[new De(\"S\")]),new j(\"write_term\",[new De(\"S\"),F,z])])),P.substitution,P)])},\"write_term/3\":function(w,P,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(Z))w.throw_error(x.error.type(\"list\",Z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain(\"stream_or_alias\",F,y.indicator));else if(!x.type.is_stream($)||$.stream===null)w.throw_error(x.error.existence(\"stream\",F,y.indicator));else if($.input)w.throw_error(x.error.permission(\"output\",\"stream\",F,y.indicator));else if($.type===\"binary\")w.throw_error(x.error.permission(\"output\",\"binary_stream\",F,y.indicator));else if($.position===\"past_end_of_stream\"&&$.eof_action===\"error\")w.throw_error(x.error.permission(\"output\",\"past_end_of_stream\",F,y.indicator));else{for(var oe={},xe=Z,Re;x.type.is_term(xe)&&xe.indicator===\"./2\";){if(Re=xe.args[0],x.type.is_variable(Re)){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_write_option(Re)){w.throw_error(x.error.domain(\"write_option\",Re,y.indicator));return}oe[Re.id]=Re.args[0].id===\"true\",xe=xe.args[1]}if(xe.indicator!==\"[]/0\"){x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):w.throw_error(x.error.type(\"list\",Z,y.indicator));return}else{oe.session=w.session;var lt=z.toString(oe);$.stream.put(lt,$.position),typeof $.position==\"number\"&&($.position+=lt.length),w.success(P)}}},\"halt/0\":function(w,P,y){w.points=[]},\"halt/1\":function(w,P,y){var F=y.args[0];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_integer(F)?w.points=[]:w.throw_error(x.error.type(\"integer\",F,y.indicator))},\"current_prolog_flag/2\":function(w,P,y){var F=y.args[0],z=y.args[1];if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type(\"atom\",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_flag(F))w.throw_error(x.error.domain(\"prolog_flag\",F,y.indicator));else{var Z=[];for(var $ in x.flag)if(x.flag.hasOwnProperty($)){var oe=new j(\",\",[new j(\"=\",[new j($),F]),new j(\"=\",[w.get_flag($),z])]);Z.push(new be(P.goal.replace(oe),P.substitution,P))}w.prepend(Z)}},\"set_prolog_flag/2\":function(w,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?x.type.is_flag(F)?x.type.is_value_flag(F,z)?x.type.is_modifiable_flag(F)?(w.session.flag[F.id]=z,w.success(P)):w.throw_error(x.error.permission(\"modify\",\"flag\",F)):w.throw_error(x.error.domain(\"flag_value\",new j(\"+\",[F,z]),y.indicator)):w.throw_error(x.error.domain(\"prolog_flag\",F,y.indicator)):w.throw_error(x.error.type(\"atom\",F,y.indicator))}},flag:{bounded:{allowed:[new j(\"true\"),new j(\"false\")],value:new j(\"true\"),changeable:!1},max_integer:{allowed:[new Te(Number.MAX_SAFE_INTEGER)],value:new Te(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Te(Number.MIN_SAFE_INTEGER)],value:new Te(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new j(\"down\"),new j(\"toward_zero\")],value:new j(\"toward_zero\"),changeable:!1},char_conversion:{allowed:[new j(\"on\"),new j(\"off\")],value:new j(\"on\"),changeable:!0},debug:{allowed:[new j(\"on\"),new j(\"off\")],value:new j(\"off\"),changeable:!0},max_arity:{allowed:[new j(\"unbounded\")],value:new j(\"unbounded\"),changeable:!1},unknown:{allowed:[new j(\"error\"),new j(\"fail\"),new j(\"warning\")],value:new j(\"error\"),changeable:!0},double_quotes:{allowed:[new j(\"chars\"),new j(\"codes\"),new j(\"atom\")],value:new j(\"codes\"),changeable:!0},occurs_check:{allowed:[new j(\"false\"),new j(\"true\")],value:new j(\"false\"),changeable:!0},dialect:{allowed:[new j(\"tau\")],value:new j(\"tau\"),changeable:!1},version_data:{allowed:[new j(\"tau\",[new Te(t.major,!1),new Te(t.minor,!1),new Te(t.patch,!1),new j(t.status)])],value:new j(\"tau\",[new Te(t.major,!1),new Te(t.minor,!1),new Te(t.patch,!1),new j(t.status)]),changeable:!1},nodejs:{allowed:[new j(\"yes\"),new j(\"no\")],value:new j(typeof ec<\"u\"&&ec.exports?\"yes\":\"no\"),changeable:!1}},unify:function(w,P,y){y=y===void 0?!1:y;for(var F=[{left:w,right:P}],z={};F.length!==0;){var Z=F.pop();if(w=Z.left,P=Z.right,x.type.is_term(w)&&x.type.is_term(P)){if(w.indicator!==P.indicator)return null;for(var $=0;$<w.args.length;$++)F.push({left:w.args[$],right:P.args[$]})}else if(x.type.is_number(w)&&x.type.is_number(P)){if(w.value!==P.value||w.is_float!==P.is_float)return null}else if(x.type.is_variable(w)){if(x.type.is_variable(P)&&w.id===P.id)continue;if(y===!0&&P.variables().indexOf(w.id)!==-1)return null;if(w.id!==\"_\"){var oe=new Ne;oe.add(w.id,P);for(var $=0;$<F.length;$++)F[$].left=F[$].left.apply(oe),F[$].right=F[$].right.apply(oe);for(var $ in z)z[$]=z[$].apply(oe);z[w.id]=P}}else if(x.type.is_variable(P))F.push({left:P,right:w});else if(w.unify!==void 0){if(!w.unify(P))return null}else return null}return new Ne(z)},compare:function(w,P){var y=x.type.compare(w,P);return y!==0?y:w.compare(P)},arithmetic_compare:function(w,P,y){var F=P.interpret(w);if(x.type.is_number(F)){var z=y.interpret(w);return x.type.is_number(z)?F.value<z.value?-1:F.value>z.value?1:0:z}else return F},operate:function(w,P){if(x.type.is_operator(P)){for(var y=x.type.is_operator(P),F=[],z,Z=!1,$=0;$<P.args.length;$++){if(z=P.args[$].interpret(w),x.type.is_number(z)){if(y.type_args!==null&&z.is_float!==y.type_args)return x.error.type(y.type_args?\"float\":\"integer\",z,w.__call_indicator);F.push(z.value)}else return z;Z=Z||z.is_float}return F.push(w),z=x.arithmetic.evaluation[P.indicator].fn.apply(this,F),Z=y.type_result===null?Z:y.type_result,x.type.is_term(z)?z:z===Number.POSITIVE_INFINITY||z===Number.NEGATIVE_INFINITY?x.error.evaluation(\"overflow\",w.__call_indicator):Z===!1&&w.get_flag(\"bounded\").id===\"true\"&&(z>w.get_flag(\"max_integer\").value||z<w.get_flag(\"min_integer\").value)?x.error.evaluation(\"int_overflow\",w.__call_indicator):new Te(z,Z)}else return x.error.type(\"evaluable\",P.indicator,w.__call_indicator)},error:{existence:function(w,P,y){return typeof P==\"string\"&&(P=X(P)),new j(\"error\",[new j(\"existence_error\",[new j(w),P]),X(y)])},type:function(w,P,y){return new j(\"error\",[new j(\"type_error\",[new j(w),P]),X(y)])},instantiation:function(w){return new j(\"error\",[new j(\"instantiation_error\"),X(w)])},domain:function(w,P,y){return new j(\"error\",[new j(\"domain_error\",[new j(w),P]),X(y)])},representation:function(w,P){return new j(\"error\",[new j(\"representation_error\",[new j(w)]),X(P)])},permission:function(w,P,y,F){return new j(\"error\",[new j(\"permission_error\",[new j(w),new j(P),y]),X(F)])},evaluation:function(w,P){return new j(\"error\",[new j(\"evaluation_error\",[new j(w)]),X(P)])},syntax:function(w,P,y){w=w||{value:\"\",line:0,column:0,matches:[\"\"],start:0};var F=y&&w.matches.length>0?w.start+w.matches[0].length:w.start,z=y?new j(\"token_not_found\"):new j(\"found\",[new j(w.value.toString())]),Z=new j(\".\",[new j(\"line\",[new Te(w.line+1)]),new j(\".\",[new j(\"column\",[new Te(F+1)]),new j(\".\",[z,new j(\"[]\",[])])])]);return new j(\"error\",[new j(\"syntax_error\",[new j(P)]),Z])},syntax_by_predicate:function(w,P){return new j(\"error\",[new j(\"syntax_error\",[new j(w)]),X(P)])}},warning:{singleton:function(w,P,y){for(var F=new j(\"[]\"),z=w.length-1;z>=0;z--)F=new j(\".\",[new De(w[z]),F]);return new j(\"warning\",[new j(\"singleton_variables\",[F,X(P)]),new j(\".\",[new j(\"line\",[new Te(y,!1)]),new j(\"[]\")])])},failed_goal:function(w,P){return new j(\"warning\",[new j(\"failed_goal\",[w]),new j(\".\",[new j(\"line\",[new Te(P,!1)]),new j(\"[]\")])])}},format_variable:function(w){return\"_\"+w},format_answer:function(w,P,F){P instanceof ke&&(P=P.thread);var F=F||{};if(F.session=P?P.session:void 0,x.type.is_error(w))return\"uncaught exception: \"+w.args[0].toString();if(w===!1)return\"false.\";if(w===null)return\"limit exceeded ;\";var z=0,Z=\"\";if(x.type.is_substitution(w)){var $=w.domain(!0);w=w.filter(function(Re,lt){return!x.type.is_variable(lt)||$.indexOf(lt.id)!==-1&&Re!==lt.id})}for(var oe in w.links)w.links.hasOwnProperty(oe)&&(z++,Z!==\"\"&&(Z+=\", \"),Z+=oe.toString(F)+\" = \"+w.links[oe].toString(F));var xe=typeof P>\"u\"||P.points.length>0?\" ;\":\".\";return z===0?\"true\"+xe:Z+xe},flatten_error:function(w){if(!x.type.is_error(w))return null;w=w.args[0];var P={};return P.type=w.args[0].id,P.thrown=P.type===\"syntax_error\"?null:w.args[1].id,P.expected=null,P.found=null,P.representation=null,P.existence=null,P.existence_type=null,P.line=null,P.column=null,P.permission_operation=null,P.permission_type=null,P.evaluation_type=null,P.type===\"type_error\"||P.type===\"domain_error\"?(P.expected=w.args[0].args[0].id,P.found=w.args[0].args[1].toString()):P.type===\"syntax_error\"?w.args[1].indicator===\"./2\"?(P.expected=w.args[0].args[0].id,P.found=w.args[1].args[1].args[1].args[0],P.found=P.found.id===\"token_not_found\"?P.found.id:P.found.args[0].id,P.line=w.args[1].args[0].args[0].value,P.column=w.args[1].args[1].args[0].args[0].value):P.thrown=w.args[1].id:P.type===\"permission_error\"?(P.found=w.args[0].args[2].toString(),P.permission_operation=w.args[0].args[0].id,P.permission_type=w.args[0].args[1].id):P.type===\"evaluation_error\"?P.evaluation_type=w.args[0].args[0].id:P.type===\"representation_error\"?P.representation=w.args[0].args[0].id:P.type===\"existence_error\"&&(P.existence=w.args[0].args[1].toString(),P.existence_type=w.args[0].args[0].id),P},create:function(w){return new x.type.Session(w)}};typeof ec<\"u\"?ec.exports=x:window.pl=x})()});function hEe(t,e,r){t.prepend(r.map(s=>new hl.default.type.State(e.goal.replace(s),e.substitution,e)))}function k5(t){let e=dEe.get(t.session);if(e==null)throw new Error(\"Assertion failed: A project should have been registered for the active session\");return e}function mEe(t,e){dEe.set(t,e),t.consult(`:- use_module(library(${qct.id})).`)}var hl,gEe,J0,jct,Gct,dEe,qct,yEe=Ze(()=>{Ge();ql();hl=ut(x5()),gEe=ut(Ie(\"vm\")),{is_atom:J0,is_variable:jct,is_instantiated_list:Gct}=hl.default.type;dEe=new WeakMap;qct=new hl.default.type.Module(\"constraints\",{\"project_workspaces_by_descriptor/3\":(t,e,r)=>{let[s,a,n]=r.args;if(!J0(s)||!J0(a)){t.throw_error(hl.default.error.instantiation(r.indicator));return}let c=G.parseIdent(s.id),f=G.makeDescriptor(c,a.id),h=k5(t).tryWorkspaceByDescriptor(f);jct(n)&&h!==null&&hEe(t,e,[new hl.default.type.Term(\"=\",[n,new hl.default.type.Term(String(h.relativeCwd))])]),J0(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},\"workspace_field/3\":(t,e,r)=>{let[s,a,n]=r.args;if(!J0(s)||!J0(a)){t.throw_error(hl.default.error.instantiation(r.indicator));return}let f=k5(t).tryWorkspaceByCwd(s.id);if(f==null)return;let p=va(f.manifest.raw,a.id);typeof p>\"u\"||hEe(t,e,[new hl.default.type.Term(\"=\",[n,new hl.default.type.Term(typeof p==\"object\"?JSON.stringify(p):p)])])},\"workspace_field_test/3\":(t,e,r)=>{let[s,a,n]=r.args;t.prepend([new hl.default.type.State(e.goal.replace(new hl.default.type.Term(\"workspace_field_test\",[s,a,n,new hl.default.type.Term(\"[]\",[])])),e.substitution,e)])},\"workspace_field_test/4\":(t,e,r)=>{let[s,a,n,c]=r.args;if(!J0(s)||!J0(a)||!J0(n)||!Gct(c)){t.throw_error(hl.default.error.instantiation(r.indicator));return}let p=k5(t).tryWorkspaceByCwd(s.id);if(p==null)return;let h=va(p.manifest.raw,a.id);if(typeof h>\"u\")return;let E={$$:h};for(let[S,b]of c.toJavaScript().entries())E[`$${S}`]=b;gEe.default.runInNewContext(n.id,E)&&t.success(e)}},[\"project_workspaces_by_descriptor/3\",\"workspace_field/3\",\"workspace_field_test/3\",\"workspace_field_test/4\"])});var aS={};Vt(aS,{Constraints:()=>R5,DependencyType:()=>wEe});function go(t){if(t instanceof KC.default.type.Num)return t.value;if(t instanceof KC.default.type.Term)switch(t.indicator){case\"throw/1\":return go(t.args[0]);case\"error/1\":return go(t.args[0]);case\"error/2\":if(t.args[0]instanceof KC.default.type.Term&&t.args[0].indicator===\"syntax_error/1\")return Object.assign(go(t.args[0]),...go(t.args[1]));{let e=go(t.args[0]);return e.message+=` (in ${go(t.args[1])})`,e}case\"syntax_error/1\":return new jt(43,`Syntax error: ${go(t.args[0])}`);case\"existence_error/2\":return new jt(44,`Existence error: ${go(t.args[0])} ${go(t.args[1])} not found`);case\"instantiation_error/0\":return new jt(75,\"Instantiation error: an argument is variable when an instantiated argument was expected\");case\"line/1\":return{line:go(t.args[0])};case\"column/1\":return{column:go(t.args[0])};case\"found/1\":return{found:go(t.args[0])};case\"./2\":return[go(t.args[0])].concat(go(t.args[1]));case\"//2\":return`${go(t.args[0])}/${go(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function IEe(t){let e;try{e=go(t)}catch(r){throw typeof r==\"string\"?new jt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<\"u\"&&typeof e.column<\"u\"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function bm(t){return t.id===\"null\"?null:`${t.toJavaScript()}`}function Wct(t){if(t.id===\"null\")return null;{let e=t.toJavaScript();if(typeof e!=\"string\")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function K0(t){return typeof t==\"string\"?`'${t}'`:\"[]\"}var CEe,KC,wEe,EEe,Q5,R5,lS=Ze(()=>{Ge();Ge();Dt();CEe=ut(Xye()),KC=ut(x5());iS();yEe();(0,CEe.default)(KC.default);wEe=(s=>(s.Dependencies=\"dependencies\",s.DevDependencies=\"devDependencies\",s.PeerDependencies=\"peerDependencies\",s))(wEe||{}),EEe=[\"dependencies\",\"devDependencies\",\"peerDependencies\"];Q5=class{constructor(e,r){let s=1e3*e.workspaces.length;this.session=KC.default.create(s),mEe(this.session,e),this.session.consult(\":- use_module(library(lists)).\"),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw IEe(r);for(;;){let s=await this.fetchNextAnswer();if(s===null)throw new jt(79,\"Resolution limit exceeded\");if(!s)break;if(s.id===\"throw\")throw IEe(s);yield s}}};R5=class t{constructor(e){this.source=\"\";this.project=e;let r=e.configuration.get(\"constraintsPath\");ce.existsSync(r)&&(this.source=ce.readFileSync(r,\"utf8\"))}static async find(e){return new t(e)}getProjectDatabase(){let e=\"\";for(let r of EEe)e+=`dependency_type(${r}).\n`;for(let r of this.project.workspacesByCwd.values()){let s=r.relativeCwd;e+=`workspace(${K0(s)}).\n`,e+=`workspace_ident(${K0(s)}, ${K0(G.stringifyIdent(r.anchoredLocator))}).\n`,e+=`workspace_version(${K0(s)}, ${K0(r.manifest.version)}).\n`;for(let a of EEe)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${K0(s)}, ${K0(G.stringifyIdent(n))}, ${K0(n.range)}, ${a}).\n`}return e+=`workspace(_) :- false.\n`,e+=`workspace_ident(_, _) :- false.\n`,e+=`workspace_version(_, _) :- false.\n`,e+=`workspace_has_dependency(_, _, _, _) :- false.\n`,e}getDeclarations(){let e=\"\";return e+=`gen_enforced_dependency(_, _, _, _) :- false.\n`,e+=`gen_enforced_field(_, _, _) :- false.\n`,e}get fullSource(){return`${this.getProjectDatabase()}\n${this.source}\n${this.getDeclarations()}`}createSession(){return new Q5(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),s=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:c,dependencyType:f}of e){let p=nS([f,G.stringifyIdent(n)]),h=je.getMapWithDefault(s,a.cwd);je.getMapWithDefault(h,p).set(c??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:c}of r){let f=nS(n),p=je.getMapWithDefault(s,a.cwd);je.getMapWithDefault(p,f).set(JSON.parse(c)??void 0,new Set)}return{manifestUpdates:s,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let s of e.makeQuery(\"workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).\")){let a=J.resolve(this.project.cwd,bm(s.links.WorkspaceCwd)),n=bm(s.links.DependencyIdent),c=bm(s.links.DependencyRange),f=bm(s.links.DependencyType);if(a===null||n===null)throw new Error(\"Invalid rule\");let p=this.project.getWorkspaceByCwd(a),h=G.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:c,dependencyType:f})}return je.sortMap(r,[({dependencyRange:s})=>s!==null?\"0\":\"1\",({workspace:s})=>G.stringifyIdent(s.anchoredLocator),({dependencyIdent:s})=>G.stringifyIdent(s)])}async genEnforcedFields(e){let r=[];for await(let s of e.makeQuery(\"workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).\")){let a=J.resolve(this.project.cwd,bm(s.links.WorkspaceCwd)),n=bm(s.links.FieldPath),c=Wct(s.links.FieldValue);if(a===null||n===null)throw new Error(\"Invalid rule\");let f=this.project.getWorkspaceByCwd(a);r.push({workspace:f,fieldPath:n,fieldValue:c})}return je.sortMap(r,[({workspace:s})=>G.stringifyIdent(s.anchoredLocator),({fieldPath:s})=>s])}async*query(e){let r=this.createSession();for await(let s of r.makeQuery(e)){let a={};for(let[n,c]of Object.entries(s.links))n!==\"_\"&&(a[n]=bm(c));yield a}}}});var QEe=_(uF=>{\"use strict\";Object.defineProperty(uF,\"__esModule\",{value:!0});function BS(t){let e=[...t.caches],r=e.shift();return r===void 0?kEe():{get(s,a,n={miss:()=>Promise.resolve()}){return r.get(s,a,n).catch(()=>BS({caches:e}).get(s,a,n))},set(s,a){return r.set(s,a).catch(()=>BS({caches:e}).set(s,a))},delete(s){return r.delete(s).catch(()=>BS({caches:e}).delete(s))},clear(){return r.clear().catch(()=>BS({caches:e}).clear())}}}function kEe(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}uF.createFallbackableCache=BS;uF.createNullCache=kEe});var TEe=_((iJt,REe)=>{REe.exports=QEe()});var FEe=_(Y5=>{\"use strict\";Object.defineProperty(Y5,\"__esModule\",{value:!0});function uut(t={serializable:!0}){let e={};return{get(r,s,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let c=s(),f=a&&a.miss||(()=>Promise.resolve());return c.then(p=>f(p)).then(()=>c)},set(r,s){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(s):s,Promise.resolve(s)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}Y5.createInMemoryCache=uut});var OEe=_((oJt,NEe)=>{NEe.exports=FEe()});var MEe=_($u=>{\"use strict\";Object.defineProperty($u,\"__esModule\",{value:!0});function fut(t,e,r){let s={\"x-algolia-api-key\":r,\"x-algolia-application-id\":e};return{headers(){return t===V5.WithinHeaders?s:{}},queryParameters(){return t===V5.WithinQueryParameters?s:{}}}}function Aut(t){let e=0,r=()=>(e++,new Promise(s=>{setTimeout(()=>{s(t(r))},Math.min(100*e,1e3))}));return t(r)}function LEe(t,e=(r,s)=>Promise.resolve()){return Object.assign(t,{wait(r){return LEe(t.then(s=>Promise.all([e(s,r),s])).then(s=>s[1]))}})}function put(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),s=t[e];t[e]=t[r],t[r]=s}return t}function hut(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function gut(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var dut=\"4.22.1\",mut=t=>()=>t.transporter.requester.destroy(),V5={WithinQueryParameters:0,WithinHeaders:1};$u.AuthMode=V5;$u.addMethods=hut;$u.createAuth=fut;$u.createRetryablePromise=Aut;$u.createWaitablePromise=LEe;$u.destroy=mut;$u.encode=gut;$u.shuffle=put;$u.version=dut});var vS=_((lJt,UEe)=>{UEe.exports=MEe()});var _Ee=_(J5=>{\"use strict\";Object.defineProperty(J5,\"__esModule\",{value:!0});var yut={Delete:\"DELETE\",Get:\"GET\",Post:\"POST\",Put:\"PUT\"};J5.MethodEnum=yut});var SS=_((uJt,HEe)=>{HEe.exports=_Ee()});var rIe=_(Wi=>{\"use strict\";Object.defineProperty(Wi,\"__esModule\",{value:!0});var GEe=SS();function K5(t,e){let r=t||{},s=r.data||{};return Object.keys(r).forEach(a=>{[\"timeout\",\"headers\",\"queryParameters\",\"data\",\"cacheable\"].indexOf(a)===-1&&(s[a]=r[a])}),{data:Object.entries(s).length>0?s:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var DS={Read:1,Write:2,Any:3},sw={Up:1,Down:2,Timeouted:3},qEe=2*60*1e3;function Z5(t,e=sw.Up){return{...t,status:e,lastUpdate:Date.now()}}function WEe(t){return t.status===sw.Up||Date.now()-t.lastUpdate>qEe}function YEe(t){return t.status===sw.Timeouted&&Date.now()-t.lastUpdate<=qEe}function X5(t){return typeof t==\"string\"?{protocol:\"https\",url:t,accept:DS.Any}:{protocol:t.protocol||\"https\",url:t.url,accept:t.accept||DS.Any}}function Eut(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(Z5(r))))).then(r=>{let s=r.filter(f=>WEe(f)),a=r.filter(f=>YEe(f)),n=[...s,...a],c=n.length>0?n.map(f=>X5(f)):e;return{getTimeout(f,p){return(a.length===0&&f===0?1:a.length+3+f)*p},statelessHosts:c}})}var Iut=({isTimedOut:t,status:e})=>!t&&~~e===0,Cut=t=>{let e=t.status;return t.isTimedOut||Iut(t)||~~(e/100)!==2&&~~(e/100)!==4},wut=({status:t})=>~~(t/100)===2,But=(t,e)=>Cut(t)?e.onRetry(t):wut(t)?e.onSuccess(t):e.onFail(t);function jEe(t,e,r,s){let a=[],n=ZEe(r,s),c=XEe(t,s),f=r.method,p=r.method!==GEe.MethodEnum.Get?{}:{...r.data,...s.data},h={\"x-algolia-agent\":t.userAgent.value,...t.queryParameters,...p,...s.queryParameters},E=0,C=(S,b)=>{let I=S.pop();if(I===void 0)throw tIe(z5(a));let T={data:n,headers:c,method:f,url:KEe(I,r.path,h),connectTimeout:b(E,t.timeouts.connect),responseTimeout:b(E,s.timeout)},N=W=>{let ee={request:T,response:W,host:I,triesLeft:S.length};return a.push(ee),ee},U={onSuccess:W=>VEe(W),onRetry(W){let ee=N(W);return W.isTimedOut&&E++,Promise.all([t.logger.info(\"Retryable failure\",$5(ee)),t.hostsCache.set(I,Z5(I,W.isTimedOut?sw.Timeouted:sw.Down))]).then(()=>C(S,b))},onFail(W){throw N(W),JEe(W,z5(a))}};return t.requester.send(T).then(W=>But(W,U))};return Eut(t.hostsCache,e).then(S=>C([...S.statelessHosts].reverse(),S.getTimeout))}function vut(t){let{hostsCache:e,logger:r,requester:s,requestsCache:a,responsesCache:n,timeouts:c,userAgent:f,hosts:p,queryParameters:h,headers:E}=t,C={hostsCache:e,logger:r,requester:s,requestsCache:a,responsesCache:n,timeouts:c,userAgent:f,headers:E,queryParameters:h,hosts:p.map(S=>X5(S)),read(S,b){let I=K5(b,C.timeouts.read),T=()=>jEe(C,C.hosts.filter(W=>(W.accept&DS.Read)!==0),S,I);if((I.cacheable!==void 0?I.cacheable:S.cacheable)!==!0)return T();let U={request:S,mappedRequestOptions:I,transporter:{queryParameters:C.queryParameters,headers:C.headers}};return C.responsesCache.get(U,()=>C.requestsCache.get(U,()=>C.requestsCache.set(U,T()).then(W=>Promise.all([C.requestsCache.delete(U),W]),W=>Promise.all([C.requestsCache.delete(U),Promise.reject(W)])).then(([W,ee])=>ee)),{miss:W=>C.responsesCache.set(U,W)})},write(S,b){return jEe(C,C.hosts.filter(I=>(I.accept&DS.Write)!==0),S,K5(b,C.timeouts.write))}};return C}function Sut(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let s=`; ${r.segment}${r.version!==void 0?` (${r.version})`:\"\"}`;return e.value.indexOf(s)===-1&&(e.value=`${e.value}${s}`),e}};return e}function VEe(t){try{return JSON.parse(t.content)}catch(e){throw eIe(e.message,t)}}function JEe({content:t,status:e},r){let s=t;try{s=JSON.parse(t).message}catch{}return $Ee(s,e,r)}function Dut(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function KEe(t,e,r){let s=zEe(r),a=`${t.protocol}://${t.url}/${e.charAt(0)===\"/\"?e.substr(1):e}`;return s.length&&(a+=`?${s}`),a}function zEe(t){let e=r=>Object.prototype.toString.call(r)===\"[object Object]\"||Object.prototype.toString.call(r)===\"[object Array]\";return Object.keys(t).map(r=>Dut(\"%s=%s\",r,e(t[r])?JSON.stringify(t[r]):t[r])).join(\"&\")}function ZEe(t,e){if(t.method===GEe.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function XEe(t,e){let r={...t.headers,...e.headers},s={};return Object.keys(r).forEach(a=>{let n=r[a];s[a.toLowerCase()]=n}),s}function z5(t){return t.map(e=>$5(e))}function $5(t){let e=t.request.headers[\"x-algolia-api-key\"]?{\"x-algolia-api-key\":\"*****\"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function $Ee(t,e,r){return{name:\"ApiError\",message:t,status:e,transporterStackTrace:r}}function eIe(t,e){return{name:\"DeserializationError\",message:t,response:e}}function tIe(t){return{name:\"RetryError\",message:\"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.\",transporterStackTrace:t}}Wi.CallEnum=DS;Wi.HostStatusEnum=sw;Wi.createApiError=$Ee;Wi.createDeserializationError=eIe;Wi.createMappedRequestOptions=K5;Wi.createRetryError=tIe;Wi.createStatefulHost=Z5;Wi.createStatelessHost=X5;Wi.createTransporter=vut;Wi.createUserAgent=Sut;Wi.deserializeFailure=JEe;Wi.deserializeSuccess=VEe;Wi.isStatefulHostTimeouted=YEe;Wi.isStatefulHostUp=WEe;Wi.serializeData=ZEe;Wi.serializeHeaders=XEe;Wi.serializeQueryParameters=zEe;Wi.serializeUrl=KEe;Wi.stackFrameWithoutCredentials=$5;Wi.stackTraceWithoutCredentials=z5});var PS=_((AJt,nIe)=>{nIe.exports=rIe()});var iIe=_(Z0=>{\"use strict\";Object.defineProperty(Z0,\"__esModule\",{value:!0});var ow=vS(),Put=PS(),bS=SS(),but=t=>{let e=t.region||\"us\",r=ow.createAuth(ow.AuthMode.WithinHeaders,t.appId,t.apiKey),s=Put.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),\"content-type\":\"application/json\",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return ow.addMethods({appId:a,transporter:s},t.methods)},xut=t=>(e,r)=>t.transporter.write({method:bS.MethodEnum.Post,path:\"2/abtests\",data:e},r),kut=t=>(e,r)=>t.transporter.write({method:bS.MethodEnum.Delete,path:ow.encode(\"2/abtests/%s\",e)},r),Qut=t=>(e,r)=>t.transporter.read({method:bS.MethodEnum.Get,path:ow.encode(\"2/abtests/%s\",e)},r),Rut=t=>e=>t.transporter.read({method:bS.MethodEnum.Get,path:\"2/abtests\"},e),Tut=t=>(e,r)=>t.transporter.write({method:bS.MethodEnum.Post,path:ow.encode(\"2/abtests/%s/stop\",e)},r);Z0.addABTest=xut;Z0.createAnalyticsClient=but;Z0.deleteABTest=kut;Z0.getABTest=Qut;Z0.getABTests=Rut;Z0.stopABTest=Tut});var oIe=_((hJt,sIe)=>{sIe.exports=iIe()});var lIe=_(xS=>{\"use strict\";Object.defineProperty(xS,\"__esModule\",{value:!0});var e9=vS(),Fut=PS(),aIe=SS(),Nut=t=>{let e=t.region||\"us\",r=e9.createAuth(e9.AuthMode.WithinHeaders,t.appId,t.apiKey),s=Fut.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),\"content-type\":\"application/json\",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return e9.addMethods({appId:t.appId,transporter:s},t.methods)},Out=t=>e=>t.transporter.read({method:aIe.MethodEnum.Get,path:\"1/strategies/personalization\"},e),Lut=t=>(e,r)=>t.transporter.write({method:aIe.MethodEnum.Post,path:\"1/strategies/personalization\",data:e},r);xS.createPersonalizationClient=Nut;xS.getPersonalizationStrategy=Out;xS.setPersonalizationStrategy=Lut});var uIe=_((dJt,cIe)=>{cIe.exports=lIe()});var vIe=_(Ft=>{\"use strict\";Object.defineProperty(Ft,\"__esModule\",{value:!0});var Jt=vS(),gl=PS(),Pr=SS(),Mut=Ie(\"crypto\");function fF(t){let e=r=>t.request(r).then(s=>{if(t.batch!==void 0&&t.batch(s.hits),!t.shouldStop(s))return s.cursor?e({cursor:s.cursor}):e({page:(r.page||0)+1})});return e({})}var Uut=t=>{let e=t.appId,r=Jt.createAuth(t.authMode!==void 0?t.authMode:Jt.AuthMode.WithinHeaders,e,t.apiKey),s=gl.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:gl.CallEnum.Read},{url:`${e}.algolia.net`,accept:gl.CallEnum.Write}].concat(Jt.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),\"content-type\":\"application/x-www-form-urlencoded\",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:s,appId:e,addAlgoliaAgent(n,c){s.userAgent.add({segment:n,version:c})},clearCache(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then(()=>{})}};return Jt.addMethods(a,t.methods)};function fIe(){return{name:\"MissingObjectIDError\",message:\"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.\"}}function AIe(){return{name:\"ObjectNotFoundError\",message:\"Object not found.\"}}function pIe(){return{name:\"ValidUntilNotFoundError\",message:\"ValidUntil not found in given secured api key.\"}}var _ut=t=>(e,r)=>{let{queryParameters:s,...a}=r||{},n={acl:e,...s!==void 0?{queryParameters:s}:{}},c=(f,p)=>Jt.createRetryablePromise(h=>kS(t)(f.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:\"1/keys\",data:n},a),c)},Hut=t=>(e,r,s)=>{let a=gl.createMappedRequestOptions(s);return a.queryParameters[\"X-Algolia-User-ID\"]=e,t.transporter.write({method:Pr.MethodEnum.Post,path:\"1/clusters/mapping\",data:{cluster:r}},a)},jut=t=>(e,r,s)=>t.transporter.write({method:Pr.MethodEnum.Post,path:\"1/clusters/mapping/batch\",data:{users:e,cluster:r}},s),Gut=t=>(e,r)=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"/1/dictionaries/%s/batch\",e),data:{clearExistingDictionaryEntries:!0,requests:{action:\"addEntry\",body:[]}}},r),(s,a)=>aw(t)(s.taskID,a)),AF=t=>(e,r,s)=>{let a=(n,c)=>QS(t)(e,{methods:{waitTask:hs}}).waitTask(n.taskID,c);return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/operation\",e),data:{operation:\"copy\",destination:r}},s),a)},qut=t=>(e,r,s)=>AF(t)(e,r,{...s,scope:[hF.Rules]}),Wut=t=>(e,r,s)=>AF(t)(e,r,{...s,scope:[hF.Settings]}),Yut=t=>(e,r,s)=>AF(t)(e,r,{...s,scope:[hF.Synonyms]}),Vut=t=>(e,r)=>e.method===Pr.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),Jut=t=>(e,r)=>{let s=(a,n)=>Jt.createRetryablePromise(c=>kS(t)(e,n).then(c).catch(f=>{if(f.status!==404)throw f}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Delete,path:Jt.encode(\"1/keys/%s\",e)},r),s)},Kut=t=>(e,r,s)=>{let a=r.map(n=>({action:\"deleteEntry\",body:{objectID:n}}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"/1/dictionaries/%s/batch\",e),data:{clearExistingDictionaryEntries:!1,requests:a}},s),(n,c)=>aw(t)(n.taskID,c))},zut=()=>(t,e)=>{let r=gl.serializeQueryParameters(e),s=Mut.createHmac(\"sha256\",t).update(r).digest(\"hex\");return Buffer.from(s+r).toString(\"base64\")},kS=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode(\"1/keys/%s\",e)},r),hIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode(\"1/task/%s\",e.toString())},r),Zut=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:\"/1/dictionaries/*/settings\"},e),Xut=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:\"1/logs\"},e),$ut=()=>t=>{let e=Buffer.from(t,\"base64\").toString(\"ascii\"),r=/validUntil=(\\d+)/,s=e.match(r);if(s===null)throw pIe();return parseInt(s[1],10)-Math.round(new Date().getTime()/1e3)},eft=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:\"1/clusters/mapping/top\"},e),tft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode(\"1/clusters/mapping/%s\",e)},r),rft=t=>e=>{let{retrieveMappings:r,...s}=e||{};return r===!0&&(s.getClusters=!0),t.transporter.read({method:Pr.MethodEnum.Get,path:\"1/clusters/mapping/pending\"},s)},QS=t=>(e,r={})=>{let s={transporter:t.transporter,appId:t.appId,indexName:e};return Jt.addMethods(s,r.methods)},nft=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:\"1/keys\"},e),ift=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:\"1/clusters\"},e),sft=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:\"1/indexes\"},e),oft=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:\"1/clusters/mapping\"},e),aft=t=>(e,r,s)=>{let a=(n,c)=>QS(t)(e,{methods:{waitTask:hs}}).waitTask(n.taskID,c);return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/operation\",e),data:{operation:\"move\",destination:r}},s),a)},lft=t=>(e,r)=>{let s=(a,n)=>Promise.all(Object.keys(a.taskID).map(c=>QS(t)(c,{methods:{waitTask:hs}}).waitTask(a.taskID[c],n)));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:\"1/indexes/*/batch\",data:{requests:e}},r),s)},cft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:\"1/indexes/*/objects\",data:{requests:e}},r),uft=t=>(e,r)=>{let s=e.map(a=>({...a,params:gl.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:Pr.MethodEnum.Post,path:\"1/indexes/*/queries\",data:{requests:s},cacheable:!0},r)},fft=t=>(e,r)=>Promise.all(e.map(s=>{let{facetName:a,facetQuery:n,...c}=s.params;return QS(t)(s.indexName,{methods:{searchForFacetValues:CIe}}).searchForFacetValues(a,n,{...r,...c})})),Aft=t=>(e,r)=>{let s=gl.createMappedRequestOptions(r);return s.queryParameters[\"X-Algolia-User-ID\"]=e,t.transporter.write({method:Pr.MethodEnum.Delete,path:\"1/clusters/mapping\"},s)},pft=t=>(e,r,s)=>{let a=r.map(n=>({action:\"addEntry\",body:n}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"/1/dictionaries/%s/batch\",e),data:{clearExistingDictionaryEntries:!0,requests:a}},s),(n,c)=>aw(t)(n.taskID,c))},hft=t=>(e,r)=>{let s=(a,n)=>Jt.createRetryablePromise(c=>kS(t)(e,n).catch(f=>{if(f.status!==404)throw f;return c()}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/keys/%s/restore\",e)},r),s)},gft=t=>(e,r,s)=>{let a=r.map(n=>({action:\"addEntry\",body:n}));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"/1/dictionaries/%s/batch\",e),data:{clearExistingDictionaryEntries:!1,requests:a}},s),(n,c)=>aw(t)(n.taskID,c))},dft=t=>(e,r,s)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode(\"/1/dictionaries/%s/search\",e),data:{query:r},cacheable:!0},s),mft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:\"1/clusters/mapping/search\",data:{query:e}},r),yft=t=>(e,r)=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Put,path:\"/1/dictionaries/*/settings\",data:e},r),(s,a)=>aw(t)(s.taskID,a)),Eft=t=>(e,r)=>{let s=Object.assign({},r),{queryParameters:a,...n}=r||{},c=a?{queryParameters:a}:{},f=[\"acl\",\"indexes\",\"referers\",\"restrictSources\",\"queryParameters\",\"description\",\"maxQueriesPerIPPerHour\",\"maxHitsPerQuery\"],p=E=>Object.keys(s).filter(C=>f.indexOf(C)!==-1).every(C=>{if(Array.isArray(E[C])&&Array.isArray(s[C])){let S=E[C];return S.length===s[C].length&&S.every((b,I)=>b===s[C][I])}else return E[C]===s[C]}),h=(E,C)=>Jt.createRetryablePromise(S=>kS(t)(e,C).then(b=>p(b)?Promise.resolve():S()));return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Put,path:Jt.encode(\"1/keys/%s\",e),data:c},n),h)},aw=t=>(e,r)=>Jt.createRetryablePromise(s=>hIe(t)(e,r).then(a=>a.status!==\"published\"?s():void 0)),gIe=t=>(e,r)=>{let s=(a,n)=>hs(t)(a.taskID,n);return Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/batch\",t.indexName),data:{requests:e}},r),s)},Ift=t=>e=>fF({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/browse\",t.indexName),data:r},e)}),Cft=t=>e=>{let r={hitsPerPage:1e3,...e};return fF({shouldStop:s=>s.hits.length<r.hitsPerPage,...r,request(s){return wIe(t)(\"\",{...r,...s}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},wft=t=>e=>{let r={hitsPerPage:1e3,...e};return fF({shouldStop:s=>s.hits.length<r.hitsPerPage,...r,request(s){return BIe(t)(\"\",{...r,...s}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},pF=t=>(e,r,s)=>{let{batchSize:a,...n}=s||{},c={taskIDs:[],objectIDs:[]},f=(p=0)=>{let h=[],E;for(E=p;E<e.length&&(h.push(e[E]),h.length!==(a||1e3));E++);return h.length===0?Promise.resolve(c):gIe(t)(h.map(C=>({action:r,body:C})),n).then(C=>(c.objectIDs=c.objectIDs.concat(C.objectIDs),c.taskIDs.push(C.taskID),E++,f(E)))};return Jt.createWaitablePromise(f(),(p,h)=>Promise.all(p.taskIDs.map(E=>hs(t)(E,h))))},Bft=t=>e=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/clear\",t.indexName)},e),(r,s)=>hs(t)(r.taskID,s)),vft=t=>e=>{let{forwardToReplicas:r,...s}=e||{},a=gl.createMappedRequestOptions(s);return r&&(a.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/rules/clear\",t.indexName)},a),(n,c)=>hs(t)(n.taskID,c))},Sft=t=>e=>{let{forwardToReplicas:r,...s}=e||{},a=gl.createMappedRequestOptions(s);return r&&(a.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/synonyms/clear\",t.indexName)},a),(n,c)=>hs(t)(n.taskID,c))},Dft=t=>(e,r)=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/deleteByQuery\",t.indexName),data:e},r),(s,a)=>hs(t)(s.taskID,a)),Pft=t=>e=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Delete,path:Jt.encode(\"1/indexes/%s\",t.indexName)},e),(r,s)=>hs(t)(r.taskID,s)),bft=t=>(e,r)=>Jt.createWaitablePromise(dIe(t)([e],r).then(s=>({taskID:s.taskIDs[0]})),(s,a)=>hs(t)(s.taskID,a)),dIe=t=>(e,r)=>{let s=e.map(a=>({objectID:a}));return pF(t)(s,km.DeleteObject,r)},xft=t=>(e,r)=>{let{forwardToReplicas:s,...a}=r||{},n=gl.createMappedRequestOptions(a);return s&&(n.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Delete,path:Jt.encode(\"1/indexes/%s/rules/%s\",t.indexName,e)},n),(c,f)=>hs(t)(c.taskID,f))},kft=t=>(e,r)=>{let{forwardToReplicas:s,...a}=r||{},n=gl.createMappedRequestOptions(a);return s&&(n.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Delete,path:Jt.encode(\"1/indexes/%s/synonyms/%s\",t.indexName,e)},n),(c,f)=>hs(t)(c.taskID,f))},Qft=t=>e=>mIe(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Rft=t=>(e,r,s)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/answers/%s/prediction\",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},s),Tft=t=>(e,r)=>{let{query:s,paginate:a,...n}=r||{},c=0,f=()=>IIe(t)(s||\"\",{...n,page:c}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:c};if(c++,a===!1||c>=p.nbPages)throw AIe();return f()});return f()},Fft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode(\"1/indexes/%s/%s\",t.indexName,e)},r),Nft=()=>(t,e)=>{for(let[r,s]of Object.entries(t.hits))if(s.objectID===e)return parseInt(r,10);return-1},Oft=t=>(e,r)=>{let{attributesToRetrieve:s,...a}=r||{},n=e.map(c=>({indexName:t.indexName,objectID:c,...s?{attributesToRetrieve:s}:{}}));return t.transporter.read({method:Pr.MethodEnum.Post,path:\"1/indexes/*/objects\",data:{requests:n}},a)},Lft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode(\"1/indexes/%s/rules/%s\",t.indexName,e)},r),mIe=t=>e=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode(\"1/indexes/%s/settings\",t.indexName),data:{getVersion:2}},e),Mft=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode(\"1/indexes/%s/synonyms/%s\",t.indexName,e)},r),yIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Get,path:Jt.encode(\"1/indexes/%s/task/%s\",t.indexName,e.toString())},r),Uft=t=>(e,r)=>Jt.createWaitablePromise(EIe(t)([e],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,a)=>hs(t)(s.taskID,a)),EIe=t=>(e,r)=>{let{createIfNotExists:s,...a}=r||{},n=s?km.PartialUpdateObject:km.PartialUpdateObjectNoCreate;return pF(t)(e,n,a)},_ft=t=>(e,r)=>{let{safe:s,autoGenerateObjectIDIfNotExist:a,batchSize:n,...c}=r||{},f=(I,T,N,U)=>Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/operation\",I),data:{operation:N,destination:T}},U),(W,ee)=>hs(t)(W.taskID,ee)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=t9({appId:t.appId,transporter:t.transporter,indexName:h}),C=[],S=f(t.indexName,h,\"copy\",{...c,scope:[\"settings\",\"synonyms\",\"rules\"]});C.push(S);let b=(s?S.wait(c):S).then(()=>{let I=E(e,{...c,autoGenerateObjectIDIfNotExist:a,batchSize:n});return C.push(I),s?I.wait(c):I}).then(()=>{let I=f(h,t.indexName,\"move\",c);return C.push(I),s?I.wait(c):I}).then(()=>Promise.all(C)).then(([I,T,N])=>({objectIDs:T.objectIDs,taskIDs:[I.taskID,...T.taskIDs,N.taskID]}));return Jt.createWaitablePromise(b,(I,T)=>Promise.all(C.map(N=>N.wait(T))))},Hft=t=>(e,r)=>r9(t)(e,{...r,clearExistingRules:!0}),jft=t=>(e,r)=>n9(t)(e,{...r,clearExistingSynonyms:!0}),Gft=t=>(e,r)=>Jt.createWaitablePromise(t9(t)([e],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,a)=>hs(t)(s.taskID,a)),t9=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:s,...a}=r||{},n=s?km.AddObject:km.UpdateObject;if(n===km.UpdateObject){for(let c of e)if(c.objectID===void 0)return Jt.createWaitablePromise(Promise.reject(fIe()))}return pF(t)(e,n,a)},qft=t=>(e,r)=>r9(t)([e],r),r9=t=>(e,r)=>{let{forwardToReplicas:s,clearExistingRules:a,...n}=r||{},c=gl.createMappedRequestOptions(n);return s&&(c.queryParameters.forwardToReplicas=1),a&&(c.queryParameters.clearExistingRules=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/rules/batch\",t.indexName),data:e},c),(f,p)=>hs(t)(f.taskID,p))},Wft=t=>(e,r)=>n9(t)([e],r),n9=t=>(e,r)=>{let{forwardToReplicas:s,clearExistingSynonyms:a,replaceExistingSynonyms:n,...c}=r||{},f=gl.createMappedRequestOptions(c);return s&&(f.queryParameters.forwardToReplicas=1),(n||a)&&(f.queryParameters.replaceExistingSynonyms=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/synonyms/batch\",t.indexName),data:e},f),(p,h)=>hs(t)(p.taskID,h))},IIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/query\",t.indexName),data:{query:e},cacheable:!0},r),CIe=t=>(e,r,s)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/facets/%s/query\",t.indexName,e),data:{facetQuery:r},cacheable:!0},s),wIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/rules/search\",t.indexName),data:{query:e}},r),BIe=t=>(e,r)=>t.transporter.read({method:Pr.MethodEnum.Post,path:Jt.encode(\"1/indexes/%s/synonyms/search\",t.indexName),data:{query:e}},r),Yft=t=>(e,r)=>{let{forwardToReplicas:s,...a}=r||{},n=gl.createMappedRequestOptions(a);return s&&(n.queryParameters.forwardToReplicas=1),Jt.createWaitablePromise(t.transporter.write({method:Pr.MethodEnum.Put,path:Jt.encode(\"1/indexes/%s/settings\",t.indexName),data:e},n),(c,f)=>hs(t)(c.taskID,f))},hs=t=>(e,r)=>Jt.createRetryablePromise(s=>yIe(t)(e,r).then(a=>a.status!==\"published\"?s():void 0)),Vft={AddObject:\"addObject\",Analytics:\"analytics\",Browser:\"browse\",DeleteIndex:\"deleteIndex\",DeleteObject:\"deleteObject\",EditSettings:\"editSettings\",Inference:\"inference\",ListIndexes:\"listIndexes\",Logs:\"logs\",Personalization:\"personalization\",Recommendation:\"recommendation\",Search:\"search\",SeeUnretrievableAttributes:\"seeUnretrievableAttributes\",Settings:\"settings\",Usage:\"usage\"},km={AddObject:\"addObject\",UpdateObject:\"updateObject\",PartialUpdateObject:\"partialUpdateObject\",PartialUpdateObjectNoCreate:\"partialUpdateObjectNoCreate\",DeleteObject:\"deleteObject\",DeleteIndex:\"delete\",ClearIndex:\"clear\"},hF={Settings:\"settings\",Synonyms:\"synonyms\",Rules:\"rules\"},Jft={None:\"none\",StopIfEnoughMatches:\"stopIfEnoughMatches\"},Kft={Synonym:\"synonym\",OneWaySynonym:\"oneWaySynonym\",AltCorrection1:\"altCorrection1\",AltCorrection2:\"altCorrection2\",Placeholder:\"placeholder\"};Ft.ApiKeyACLEnum=Vft;Ft.BatchActionEnum=km;Ft.ScopeEnum=hF;Ft.StrategyEnum=Jft;Ft.SynonymEnum=Kft;Ft.addApiKey=_ut;Ft.assignUserID=Hut;Ft.assignUserIDs=jut;Ft.batch=gIe;Ft.browseObjects=Ift;Ft.browseRules=Cft;Ft.browseSynonyms=wft;Ft.chunkedBatch=pF;Ft.clearDictionaryEntries=Gut;Ft.clearObjects=Bft;Ft.clearRules=vft;Ft.clearSynonyms=Sft;Ft.copyIndex=AF;Ft.copyRules=qut;Ft.copySettings=Wut;Ft.copySynonyms=Yut;Ft.createBrowsablePromise=fF;Ft.createMissingObjectIDError=fIe;Ft.createObjectNotFoundError=AIe;Ft.createSearchClient=Uut;Ft.createValidUntilNotFoundError=pIe;Ft.customRequest=Vut;Ft.deleteApiKey=Jut;Ft.deleteBy=Dft;Ft.deleteDictionaryEntries=Kut;Ft.deleteIndex=Pft;Ft.deleteObject=bft;Ft.deleteObjects=dIe;Ft.deleteRule=xft;Ft.deleteSynonym=kft;Ft.exists=Qft;Ft.findAnswers=Rft;Ft.findObject=Tft;Ft.generateSecuredApiKey=zut;Ft.getApiKey=kS;Ft.getAppTask=hIe;Ft.getDictionarySettings=Zut;Ft.getLogs=Xut;Ft.getObject=Fft;Ft.getObjectPosition=Nft;Ft.getObjects=Oft;Ft.getRule=Lft;Ft.getSecuredApiKeyRemainingValidity=$ut;Ft.getSettings=mIe;Ft.getSynonym=Mft;Ft.getTask=yIe;Ft.getTopUserIDs=eft;Ft.getUserID=tft;Ft.hasPendingMappings=rft;Ft.initIndex=QS;Ft.listApiKeys=nft;Ft.listClusters=ift;Ft.listIndices=sft;Ft.listUserIDs=oft;Ft.moveIndex=aft;Ft.multipleBatch=lft;Ft.multipleGetObjects=cft;Ft.multipleQueries=uft;Ft.multipleSearchForFacetValues=fft;Ft.partialUpdateObject=Uft;Ft.partialUpdateObjects=EIe;Ft.removeUserID=Aft;Ft.replaceAllObjects=_ft;Ft.replaceAllRules=Hft;Ft.replaceAllSynonyms=jft;Ft.replaceDictionaryEntries=pft;Ft.restoreApiKey=hft;Ft.saveDictionaryEntries=gft;Ft.saveObject=Gft;Ft.saveObjects=t9;Ft.saveRule=qft;Ft.saveRules=r9;Ft.saveSynonym=Wft;Ft.saveSynonyms=n9;Ft.search=IIe;Ft.searchDictionaryEntries=dft;Ft.searchForFacetValues=CIe;Ft.searchRules=wIe;Ft.searchSynonyms=BIe;Ft.searchUserIDs=mft;Ft.setDictionarySettings=yft;Ft.setSettings=Yft;Ft.updateApiKey=Eft;Ft.waitAppTask=aw;Ft.waitTask=hs});var DIe=_((yJt,SIe)=>{SIe.exports=vIe()});var PIe=_(gF=>{\"use strict\";Object.defineProperty(gF,\"__esModule\",{value:!0});function zft(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var Zft={Debug:1,Info:2,Error:3};gF.LogLevelEnum=Zft;gF.createNullLogger=zft});var xIe=_((IJt,bIe)=>{bIe.exports=PIe()});var TIe=_(i9=>{\"use strict\";Object.defineProperty(i9,\"__esModule\",{value:!0});var kIe=Ie(\"http\"),QIe=Ie(\"https\"),Xft=Ie(\"url\"),RIe={keepAlive:!0},$ft=new kIe.Agent(RIe),eAt=new QIe.Agent(RIe);function tAt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:s={}}={}){let a=e||t||$ft,n=r||t||eAt;return{send(c){return new Promise(f=>{let p=Xft.parse(c.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...s,agent:p.protocol===\"https:\"?n:a,hostname:p.hostname,path:h,method:c.method,headers:{...s&&s.headers?s.headers:{},...c.headers},...p.port!==void 0?{port:p.port||\"\"}:{}},C=(p.protocol===\"https:\"?QIe:kIe).request(E,T=>{let N=[];T.on(\"data\",U=>{N=N.concat(U)}),T.on(\"end\",()=>{clearTimeout(b),clearTimeout(I),f({status:T.statusCode||0,content:Buffer.concat(N).toString(),isTimedOut:!1})})}),S=(T,N)=>setTimeout(()=>{C.abort(),f({status:0,content:N,isTimedOut:!0})},T*1e3),b=S(c.connectTimeout,\"Connection timeout\"),I;C.on(\"error\",T=>{clearTimeout(b),clearTimeout(I),f({status:0,content:T.message,isTimedOut:!1})}),C.once(\"response\",()=>{clearTimeout(b),I=S(c.responseTimeout,\"Socket timeout\")}),c.data!==void 0&&C.write(c.data),C.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}i9.createNodeHttpRequester=tAt});var NIe=_((wJt,FIe)=>{FIe.exports=TIe()});var UIe=_((BJt,MIe)=>{\"use strict\";var OIe=TEe(),rAt=OEe(),lw=oIe(),o9=vS(),s9=uIe(),Gt=DIe(),nAt=xIe(),iAt=NIe(),sAt=PS();function LIe(t,e,r){let s={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:iAt.createNodeHttpRequester(),logger:nAt.createNullLogger(),responsesCache:OIe.createNullCache(),requestsCache:OIe.createNullCache(),hostsCache:rAt.createInMemoryCache(),userAgent:sAt.createUserAgent(o9.version).add({segment:\"Node.js\",version:process.versions.node})},a={...s,...r},n=()=>c=>s9.createPersonalizationClient({...s,...c,methods:{getPersonalizationStrategy:s9.getPersonalizationStrategy,setPersonalizationStrategy:s9.setPersonalizationStrategy}});return Gt.createSearchClient({...a,methods:{search:Gt.multipleQueries,searchForFacetValues:Gt.multipleSearchForFacetValues,multipleBatch:Gt.multipleBatch,multipleGetObjects:Gt.multipleGetObjects,multipleQueries:Gt.multipleQueries,copyIndex:Gt.copyIndex,copySettings:Gt.copySettings,copyRules:Gt.copyRules,copySynonyms:Gt.copySynonyms,moveIndex:Gt.moveIndex,listIndices:Gt.listIndices,getLogs:Gt.getLogs,listClusters:Gt.listClusters,multipleSearchForFacetValues:Gt.multipleSearchForFacetValues,getApiKey:Gt.getApiKey,addApiKey:Gt.addApiKey,listApiKeys:Gt.listApiKeys,updateApiKey:Gt.updateApiKey,deleteApiKey:Gt.deleteApiKey,restoreApiKey:Gt.restoreApiKey,assignUserID:Gt.assignUserID,assignUserIDs:Gt.assignUserIDs,getUserID:Gt.getUserID,searchUserIDs:Gt.searchUserIDs,listUserIDs:Gt.listUserIDs,getTopUserIDs:Gt.getTopUserIDs,removeUserID:Gt.removeUserID,hasPendingMappings:Gt.hasPendingMappings,generateSecuredApiKey:Gt.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Gt.getSecuredApiKeyRemainingValidity,destroy:o9.destroy,clearDictionaryEntries:Gt.clearDictionaryEntries,deleteDictionaryEntries:Gt.deleteDictionaryEntries,getDictionarySettings:Gt.getDictionarySettings,getAppTask:Gt.getAppTask,replaceDictionaryEntries:Gt.replaceDictionaryEntries,saveDictionaryEntries:Gt.saveDictionaryEntries,searchDictionaryEntries:Gt.searchDictionaryEntries,setDictionarySettings:Gt.setDictionarySettings,waitAppTask:Gt.waitAppTask,customRequest:Gt.customRequest,initIndex:c=>f=>Gt.initIndex(c)(f,{methods:{batch:Gt.batch,delete:Gt.deleteIndex,findAnswers:Gt.findAnswers,getObject:Gt.getObject,getObjects:Gt.getObjects,saveObject:Gt.saveObject,saveObjects:Gt.saveObjects,search:Gt.search,searchForFacetValues:Gt.searchForFacetValues,waitTask:Gt.waitTask,setSettings:Gt.setSettings,getSettings:Gt.getSettings,partialUpdateObject:Gt.partialUpdateObject,partialUpdateObjects:Gt.partialUpdateObjects,deleteObject:Gt.deleteObject,deleteObjects:Gt.deleteObjects,deleteBy:Gt.deleteBy,clearObjects:Gt.clearObjects,browseObjects:Gt.browseObjects,getObjectPosition:Gt.getObjectPosition,findObject:Gt.findObject,exists:Gt.exists,saveSynonym:Gt.saveSynonym,saveSynonyms:Gt.saveSynonyms,getSynonym:Gt.getSynonym,searchSynonyms:Gt.searchSynonyms,browseSynonyms:Gt.browseSynonyms,deleteSynonym:Gt.deleteSynonym,clearSynonyms:Gt.clearSynonyms,replaceAllObjects:Gt.replaceAllObjects,replaceAllSynonyms:Gt.replaceAllSynonyms,searchRules:Gt.searchRules,getRule:Gt.getRule,deleteRule:Gt.deleteRule,saveRule:Gt.saveRule,saveRules:Gt.saveRules,replaceAllRules:Gt.replaceAllRules,browseRules:Gt.browseRules,clearRules:Gt.clearRules}}),initAnalytics:()=>c=>lw.createAnalyticsClient({...s,...c,methods:{addABTest:lw.addABTest,getABTest:lw.getABTest,getABTests:lw.getABTests,stopABTest:lw.stopABTest,deleteABTest:lw.deleteABTest}}),initPersonalization:n,initRecommendation:()=>c=>(a.logger.info(\"The `initRecommendation` method is deprecated. Use `initPersonalization` instead.\"),n()(c))}})}LIe.version=o9.version;MIe.exports=LIe});var l9=_((vJt,a9)=>{var _Ie=UIe();a9.exports=_Ie;a9.exports.default=_Ie});var f9=_((DJt,GIe)=>{\"use strict\";var jIe=Object.getOwnPropertySymbols,aAt=Object.prototype.hasOwnProperty,lAt=Object.prototype.propertyIsEnumerable;function cAt(t){if(t==null)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}function uAt(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",Object.getOwnPropertyNames(t)[0]===\"5\")return!1;for(var e={},r=0;r<10;r++)e[\"_\"+String.fromCharCode(r)]=r;var s=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(s.join(\"\")!==\"0123456789\")return!1;var a={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join(\"\")===\"abcdefghijklmnopqrst\"}catch{return!1}}GIe.exports=uAt()?Object.assign:function(t,e){for(var r,s=cAt(t),a,n=1;n<arguments.length;n++){r=Object(arguments[n]);for(var c in r)aAt.call(r,c)&&(s[c]=r[c]);if(jIe){a=jIe(r);for(var f=0;f<a.length;f++)lAt.call(r,a[f])&&(s[a[f]]=r[a[f]])}}return s}});var sCe=_(Dn=>{\"use strict\";var p9=f9(),cw=60103,YIe=60106;Dn.Fragment=60107;Dn.StrictMode=60108;Dn.Profiler=60114;var VIe=60109,JIe=60110,KIe=60112;Dn.Suspense=60113;var zIe=60115,ZIe=60116;typeof Symbol==\"function\"&&Symbol.for&&(Gc=Symbol.for,cw=Gc(\"react.element\"),YIe=Gc(\"react.portal\"),Dn.Fragment=Gc(\"react.fragment\"),Dn.StrictMode=Gc(\"react.strict_mode\"),Dn.Profiler=Gc(\"react.profiler\"),VIe=Gc(\"react.provider\"),JIe=Gc(\"react.context\"),KIe=Gc(\"react.forward_ref\"),Dn.Suspense=Gc(\"react.suspense\"),zIe=Gc(\"react.memo\"),ZIe=Gc(\"react.lazy\"));var Gc,qIe=typeof Symbol==\"function\"&&Symbol.iterator;function fAt(t){return t===null||typeof t!=\"object\"?null:(t=qIe&&t[qIe]||t[\"@@iterator\"],typeof t==\"function\"?t:null)}function RS(t){for(var e=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+t,r=1;r<arguments.length;r++)e+=\"&args[]=\"+encodeURIComponent(arguments[r]);return\"Minified React error #\"+t+\"; visit \"+e+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var XIe={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},$Ie={};function uw(t,e,r){this.props=t,this.context=e,this.refs=$Ie,this.updater=r||XIe}uw.prototype.isReactComponent={};uw.prototype.setState=function(t,e){if(typeof t!=\"object\"&&typeof t!=\"function\"&&t!=null)throw Error(RS(85));this.updater.enqueueSetState(this,t,e,\"setState\")};uw.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,\"forceUpdate\")};function eCe(){}eCe.prototype=uw.prototype;function h9(t,e,r){this.props=t,this.context=e,this.refs=$Ie,this.updater=r||XIe}var g9=h9.prototype=new eCe;g9.constructor=h9;p9(g9,uw.prototype);g9.isPureReactComponent=!0;var d9={current:null},tCe=Object.prototype.hasOwnProperty,rCe={key:!0,ref:!0,__self:!0,__source:!0};function nCe(t,e,r){var s,a={},n=null,c=null;if(e!=null)for(s in e.ref!==void 0&&(c=e.ref),e.key!==void 0&&(n=\"\"+e.key),e)tCe.call(e,s)&&!rCe.hasOwnProperty(s)&&(a[s]=e[s]);var f=arguments.length-2;if(f===1)a.children=r;else if(1<f){for(var p=Array(f),h=0;h<f;h++)p[h]=arguments[h+2];a.children=p}if(t&&t.defaultProps)for(s in f=t.defaultProps,f)a[s]===void 0&&(a[s]=f[s]);return{$$typeof:cw,type:t,key:n,ref:c,props:a,_owner:d9.current}}function AAt(t,e){return{$$typeof:cw,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}function m9(t){return typeof t==\"object\"&&t!==null&&t.$$typeof===cw}function pAt(t){var e={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+t.replace(/[=:]/g,function(r){return e[r]})}var WIe=/\\/+/g;function A9(t,e){return typeof t==\"object\"&&t!==null&&t.key!=null?pAt(\"\"+t.key):e.toString(36)}function mF(t,e,r,s,a){var n=typeof t;(n===\"undefined\"||n===\"boolean\")&&(t=null);var c=!1;if(t===null)c=!0;else switch(n){case\"string\":case\"number\":c=!0;break;case\"object\":switch(t.$$typeof){case cw:case YIe:c=!0}}if(c)return c=t,a=a(c),t=s===\"\"?\".\"+A9(c,0):s,Array.isArray(a)?(r=\"\",t!=null&&(r=t.replace(WIe,\"$&/\")+\"/\"),mF(a,e,r,\"\",function(h){return h})):a!=null&&(m9(a)&&(a=AAt(a,r+(!a.key||c&&c.key===a.key?\"\":(\"\"+a.key).replace(WIe,\"$&/\")+\"/\")+t)),e.push(a)),1;if(c=0,s=s===\"\"?\".\":s+\":\",Array.isArray(t))for(var f=0;f<t.length;f++){n=t[f];var p=s+A9(n,f);c+=mF(n,e,r,p,a)}else if(p=fAt(t),typeof p==\"function\")for(t=p.call(t),f=0;!(n=t.next()).done;)n=n.value,p=s+A9(n,f++),c+=mF(n,e,r,p,a);else if(n===\"object\")throw e=\"\"+t,Error(RS(31,e===\"[object Object]\"?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":e));return c}function dF(t,e,r){if(t==null)return t;var s=[],a=0;return mF(t,s,\"\",\"\",function(n){return e.call(r,n,a++)}),s}function hAt(t){if(t._status===-1){var e=t._result;e=e(),t._status=0,t._result=e,e.then(function(r){t._status===0&&(r=r.default,t._status=1,t._result=r)},function(r){t._status===0&&(t._status=2,t._result=r)})}if(t._status===1)return t._result;throw t._result}var iCe={current:null};function Xp(){var t=iCe.current;if(t===null)throw Error(RS(321));return t}var gAt={ReactCurrentDispatcher:iCe,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:d9,IsSomeRendererActing:{current:!1},assign:p9};Dn.Children={map:dF,forEach:function(t,e,r){dF(t,function(){e.apply(this,arguments)},r)},count:function(t){var e=0;return dF(t,function(){e++}),e},toArray:function(t){return dF(t,function(e){return e})||[]},only:function(t){if(!m9(t))throw Error(RS(143));return t}};Dn.Component=uw;Dn.PureComponent=h9;Dn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=gAt;Dn.cloneElement=function(t,e,r){if(t==null)throw Error(RS(267,t));var s=p9({},t.props),a=t.key,n=t.ref,c=t._owner;if(e!=null){if(e.ref!==void 0&&(n=e.ref,c=d9.current),e.key!==void 0&&(a=\"\"+e.key),t.type&&t.type.defaultProps)var f=t.type.defaultProps;for(p in e)tCe.call(e,p)&&!rCe.hasOwnProperty(p)&&(s[p]=e[p]===void 0&&f!==void 0?f[p]:e[p])}var p=arguments.length-2;if(p===1)s.children=r;else if(1<p){f=Array(p);for(var h=0;h<p;h++)f[h]=arguments[h+2];s.children=f}return{$$typeof:cw,type:t.type,key:a,ref:n,props:s,_owner:c}};Dn.createContext=function(t,e){return e===void 0&&(e=null),t={$$typeof:JIe,_calculateChangedBits:e,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null},t.Provider={$$typeof:VIe,_context:t},t.Consumer=t};Dn.createElement=nCe;Dn.createFactory=function(t){var e=nCe.bind(null,t);return e.type=t,e};Dn.createRef=function(){return{current:null}};Dn.forwardRef=function(t){return{$$typeof:KIe,render:t}};Dn.isValidElement=m9;Dn.lazy=function(t){return{$$typeof:ZIe,_payload:{_status:-1,_result:t},_init:hAt}};Dn.memo=function(t,e){return{$$typeof:zIe,type:t,compare:e===void 0?null:e}};Dn.useCallback=function(t,e){return Xp().useCallback(t,e)};Dn.useContext=function(t,e){return Xp().useContext(t,e)};Dn.useDebugValue=function(){};Dn.useEffect=function(t,e){return Xp().useEffect(t,e)};Dn.useImperativeHandle=function(t,e,r){return Xp().useImperativeHandle(t,e,r)};Dn.useLayoutEffect=function(t,e){return Xp().useLayoutEffect(t,e)};Dn.useMemo=function(t,e){return Xp().useMemo(t,e)};Dn.useReducer=function(t,e,r){return Xp().useReducer(t,e,r)};Dn.useRef=function(t){return Xp().useRef(t)};Dn.useState=function(t){return Xp().useState(t)};Dn.version=\"17.0.2\"});var hn=_((bJt,oCe)=>{\"use strict\";oCe.exports=sCe()});var yF=_((xJt,aCe)=>{function dAt(t){var e=typeof t;return t!=null&&(e==\"object\"||e==\"function\")}aCe.exports=dAt});var cCe=_((kJt,lCe)=>{var mAt=typeof global==\"object\"&&global&&global.Object===Object&&global;lCe.exports=mAt});var y9=_((QJt,uCe)=>{var yAt=cCe(),EAt=typeof self==\"object\"&&self&&self.Object===Object&&self,IAt=yAt||EAt||Function(\"return this\")();uCe.exports=IAt});var ACe=_((RJt,fCe)=>{var CAt=y9(),wAt=function(){return CAt.Date.now()};fCe.exports=wAt});var hCe=_((TJt,pCe)=>{var BAt=/\\s/;function vAt(t){for(var e=t.length;e--&&BAt.test(t.charAt(e)););return e}pCe.exports=vAt});var dCe=_((FJt,gCe)=>{var SAt=hCe(),DAt=/^\\s+/;function PAt(t){return t&&t.slice(0,SAt(t)+1).replace(DAt,\"\")}gCe.exports=PAt});var E9=_((NJt,mCe)=>{var bAt=y9(),xAt=bAt.Symbol;mCe.exports=xAt});var CCe=_((OJt,ICe)=>{var yCe=E9(),ECe=Object.prototype,kAt=ECe.hasOwnProperty,QAt=ECe.toString,TS=yCe?yCe.toStringTag:void 0;function RAt(t){var e=kAt.call(t,TS),r=t[TS];try{t[TS]=void 0;var s=!0}catch{}var a=QAt.call(t);return s&&(e?t[TS]=r:delete t[TS]),a}ICe.exports=RAt});var BCe=_((LJt,wCe)=>{var TAt=Object.prototype,FAt=TAt.toString;function NAt(t){return FAt.call(t)}wCe.exports=NAt});var PCe=_((MJt,DCe)=>{var vCe=E9(),OAt=CCe(),LAt=BCe(),MAt=\"[object Null]\",UAt=\"[object Undefined]\",SCe=vCe?vCe.toStringTag:void 0;function _At(t){return t==null?t===void 0?UAt:MAt:SCe&&SCe in Object(t)?OAt(t):LAt(t)}DCe.exports=_At});var xCe=_((UJt,bCe)=>{function HAt(t){return t!=null&&typeof t==\"object\"}bCe.exports=HAt});var QCe=_((_Jt,kCe)=>{var jAt=PCe(),GAt=xCe(),qAt=\"[object Symbol]\";function WAt(t){return typeof t==\"symbol\"||GAt(t)&&jAt(t)==qAt}kCe.exports=WAt});var NCe=_((HJt,FCe)=>{var YAt=dCe(),RCe=yF(),VAt=QCe(),TCe=NaN,JAt=/^[-+]0x[0-9a-f]+$/i,KAt=/^0b[01]+$/i,zAt=/^0o[0-7]+$/i,ZAt=parseInt;function XAt(t){if(typeof t==\"number\")return t;if(VAt(t))return TCe;if(RCe(t)){var e=typeof t.valueOf==\"function\"?t.valueOf():t;t=RCe(e)?e+\"\":e}if(typeof t!=\"string\")return t===0?t:+t;t=YAt(t);var r=KAt.test(t);return r||zAt.test(t)?ZAt(t.slice(2),r?2:8):JAt.test(t)?TCe:+t}FCe.exports=XAt});var MCe=_((jJt,LCe)=>{var $At=yF(),I9=ACe(),OCe=NCe(),ept=\"Expected a function\",tpt=Math.max,rpt=Math.min;function npt(t,e,r){var s,a,n,c,f,p,h=0,E=!1,C=!1,S=!0;if(typeof t!=\"function\")throw new TypeError(ept);e=OCe(e)||0,$At(r)&&(E=!!r.leading,C=\"maxWait\"in r,n=C?tpt(OCe(r.maxWait)||0,e):n,S=\"trailing\"in r?!!r.trailing:S);function b(le){var me=s,pe=a;return s=a=void 0,h=le,c=t.apply(pe,me),c}function I(le){return h=le,f=setTimeout(U,e),E?b(le):c}function T(le){var me=le-p,pe=le-h,Be=e-me;return C?rpt(Be,n-pe):Be}function N(le){var me=le-p,pe=le-h;return p===void 0||me>=e||me<0||C&&pe>=n}function U(){var le=I9();if(N(le))return W(le);f=setTimeout(U,T(le))}function W(le){return f=void 0,S&&s?b(le):(s=a=void 0,c)}function ee(){f!==void 0&&clearTimeout(f),h=0,s=p=a=f=void 0}function ie(){return f===void 0?c:W(I9())}function ue(){var le=I9(),me=N(le);if(s=arguments,a=this,p=le,me){if(f===void 0)return I(p);if(C)return clearTimeout(f),f=setTimeout(U,e),b(p)}return f===void 0&&(f=setTimeout(U,e)),c}return ue.cancel=ee,ue.flush=ie,ue}LCe.exports=npt});var _Ce=_((GJt,UCe)=>{var ipt=MCe(),spt=yF(),opt=\"Expected a function\";function apt(t,e,r){var s=!0,a=!0;if(typeof t!=\"function\")throw new TypeError(opt);return spt(r)&&(s=\"leading\"in r?!!r.leading:s,a=\"trailing\"in r?!!r.trailing:a),ipt(t,e,{leading:s,maxWait:e,trailing:a})}UCe.exports=apt});var w9=_((qJt,C9)=>{\"use strict\";var Cn=C9.exports;C9.exports.default=Cn;var Zn=\"\\x1B[\",NS=\"\\x1B]\",fw=\"\\x07\",EF=\";\",HCe=process.env.TERM_PROGRAM===\"Apple_Terminal\";Cn.cursorTo=(t,e)=>{if(typeof t!=\"number\")throw new TypeError(\"The `x` argument is required\");return typeof e!=\"number\"?Zn+(t+1)+\"G\":Zn+(e+1)+\";\"+(t+1)+\"H\"};Cn.cursorMove=(t,e)=>{if(typeof t!=\"number\")throw new TypeError(\"The `x` argument is required\");let r=\"\";return t<0?r+=Zn+-t+\"D\":t>0&&(r+=Zn+t+\"C\"),e<0?r+=Zn+-e+\"A\":e>0&&(r+=Zn+e+\"B\"),r};Cn.cursorUp=(t=1)=>Zn+t+\"A\";Cn.cursorDown=(t=1)=>Zn+t+\"B\";Cn.cursorForward=(t=1)=>Zn+t+\"C\";Cn.cursorBackward=(t=1)=>Zn+t+\"D\";Cn.cursorLeft=Zn+\"G\";Cn.cursorSavePosition=HCe?\"\\x1B7\":Zn+\"s\";Cn.cursorRestorePosition=HCe?\"\\x1B8\":Zn+\"u\";Cn.cursorGetPosition=Zn+\"6n\";Cn.cursorNextLine=Zn+\"E\";Cn.cursorPrevLine=Zn+\"F\";Cn.cursorHide=Zn+\"?25l\";Cn.cursorShow=Zn+\"?25h\";Cn.eraseLines=t=>{let e=\"\";for(let r=0;r<t;r++)e+=Cn.eraseLine+(r<t-1?Cn.cursorUp():\"\");return t&&(e+=Cn.cursorLeft),e};Cn.eraseEndLine=Zn+\"K\";Cn.eraseStartLine=Zn+\"1K\";Cn.eraseLine=Zn+\"2K\";Cn.eraseDown=Zn+\"J\";Cn.eraseUp=Zn+\"1J\";Cn.eraseScreen=Zn+\"2J\";Cn.scrollUp=Zn+\"S\";Cn.scrollDown=Zn+\"T\";Cn.clearScreen=\"\\x1Bc\";Cn.clearTerminal=process.platform===\"win32\"?`${Cn.eraseScreen}${Zn}0f`:`${Cn.eraseScreen}${Zn}3J${Zn}H`;Cn.beep=fw;Cn.link=(t,e)=>[NS,\"8\",EF,EF,e,fw,t,NS,\"8\",EF,EF,fw].join(\"\");Cn.image=(t,e={})=>{let r=`${NS}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=\";preserveAspectRatio=0\"),r+\":\"+t.toString(\"base64\")+fw};Cn.iTerm={setCwd:(t=process.cwd())=>`${NS}50;CurrentDir=${t}${fw}`,annotation:(t,e={})=>{let r=`${NS}1337;`,s=typeof e.x<\"u\",a=typeof e.y<\"u\";if((s||a)&&!(s&&a&&typeof e.length<\"u\"))throw new Error(\"`x`, `y` and `length` must be defined when `x` or `y` is defined\");return t=t.replace(/\\|/g,\"\"),r+=e.isHidden?\"AddHiddenAnnotation=\":\"AddAnnotation=\",e.length>0?r+=(s?[t,e.length,e.x,e.y]:[e.length,t]).join(\"|\"):r+=t,r+fw}}});var GCe=_((WJt,B9)=>{\"use strict\";var jCe=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};B9.exports=jCe;B9.exports.default=jCe});var WCe=_((YJt,CF)=>{\"use strict\";var lpt=GCe(),IF=new WeakMap,qCe=(t,e={})=>{if(typeof t!=\"function\")throw new TypeError(\"Expected a function\");let r,s=0,a=t.displayName||t.name||\"<anonymous>\",n=function(...c){if(IF.set(n,++s),s===1)r=t.apply(this,c),t=null;else if(e.throw===!0)throw new Error(`Function \\`${a}\\` can only be called once`);return r};return lpt(n,t),IF.set(n,s),n};CF.exports=qCe;CF.exports.default=qCe;CF.exports.callCount=t=>{if(!IF.has(t))throw new Error(`The given function \\`${t.name}\\` is not wrapped by the \\`onetime\\` package`);return IF.get(t)}});var YCe=_((VJt,wF)=>{wF.exports=[\"SIGABRT\",\"SIGALRM\",\"SIGHUP\",\"SIGINT\",\"SIGTERM\"];process.platform!==\"win32\"&&wF.exports.push(\"SIGVTALRM\",\"SIGXCPU\",\"SIGXFSZ\",\"SIGUSR2\",\"SIGTRAP\",\"SIGSYS\",\"SIGQUIT\",\"SIGIOT\");process.platform===\"linux\"&&wF.exports.push(\"SIGIO\",\"SIGPOLL\",\"SIGPWR\",\"SIGSTKFLT\",\"SIGUNUSED\")});var D9=_((JJt,hw)=>{var Qi=global.process,Qm=function(t){return t&&typeof t==\"object\"&&typeof t.removeListener==\"function\"&&typeof t.emit==\"function\"&&typeof t.reallyExit==\"function\"&&typeof t.listeners==\"function\"&&typeof t.kill==\"function\"&&typeof t.pid==\"number\"&&typeof t.on==\"function\"};Qm(Qi)?(VCe=Ie(\"assert\"),Aw=YCe(),JCe=/^win/i.test(Qi.platform),OS=Ie(\"events\"),typeof OS!=\"function\"&&(OS=OS.EventEmitter),Qi.__signal_exit_emitter__?Js=Qi.__signal_exit_emitter__:(Js=Qi.__signal_exit_emitter__=new OS,Js.count=0,Js.emitted={}),Js.infinite||(Js.setMaxListeners(1/0),Js.infinite=!0),hw.exports=function(t,e){if(!Qm(global.process))return function(){};VCe.equal(typeof t,\"function\",\"a callback must be provided for exit handler\"),pw===!1&&v9();var r=\"exit\";e&&e.alwaysLast&&(r=\"afterexit\");var s=function(){Js.removeListener(r,t),Js.listeners(\"exit\").length===0&&Js.listeners(\"afterexit\").length===0&&BF()};return Js.on(r,t),s},BF=function(){!pw||!Qm(global.process)||(pw=!1,Aw.forEach(function(e){try{Qi.removeListener(e,vF[e])}catch{}}),Qi.emit=SF,Qi.reallyExit=S9,Js.count-=1)},hw.exports.unload=BF,Rm=function(e,r,s){Js.emitted[e]||(Js.emitted[e]=!0,Js.emit(e,r,s))},vF={},Aw.forEach(function(t){vF[t]=function(){if(Qm(global.process)){var r=Qi.listeners(t);r.length===Js.count&&(BF(),Rm(\"exit\",null,t),Rm(\"afterexit\",null,t),JCe&&t===\"SIGHUP\"&&(t=\"SIGINT\"),Qi.kill(Qi.pid,t))}}}),hw.exports.signals=function(){return Aw},pw=!1,v9=function(){pw||!Qm(global.process)||(pw=!0,Js.count+=1,Aw=Aw.filter(function(e){try{return Qi.on(e,vF[e]),!0}catch{return!1}}),Qi.emit=zCe,Qi.reallyExit=KCe)},hw.exports.load=v9,S9=Qi.reallyExit,KCe=function(e){Qm(global.process)&&(Qi.exitCode=e||0,Rm(\"exit\",Qi.exitCode,null),Rm(\"afterexit\",Qi.exitCode,null),S9.call(Qi,Qi.exitCode))},SF=Qi.emit,zCe=function(e,r){if(e===\"exit\"&&Qm(global.process)){r!==void 0&&(Qi.exitCode=r);var s=SF.apply(this,arguments);return Rm(\"exit\",Qi.exitCode,null),Rm(\"afterexit\",Qi.exitCode,null),s}else return SF.apply(this,arguments)}):hw.exports=function(){return function(){}};var VCe,Aw,JCe,OS,Js,BF,Rm,vF,pw,v9,S9,KCe,SF,zCe});var XCe=_((KJt,ZCe)=>{\"use strict\";var cpt=WCe(),upt=D9();ZCe.exports=cpt(()=>{upt(()=>{process.stderr.write(\"\\x1B[?25h\")},{alwaysLast:!0})})});var P9=_(gw=>{\"use strict\";var fpt=XCe(),DF=!1;gw.show=(t=process.stderr)=>{t.isTTY&&(DF=!1,t.write(\"\\x1B[?25h\"))};gw.hide=(t=process.stderr)=>{t.isTTY&&(fpt(),DF=!0,t.write(\"\\x1B[?25l\"))};gw.toggle=(t,e)=>{t!==void 0&&(DF=t),DF?gw.show(e):gw.hide(e)}});var rwe=_(LS=>{\"use strict\";var twe=LS&&LS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(LS,\"__esModule\",{value:!0});var $Ce=twe(w9()),ewe=twe(P9()),Apt=(t,{showCursor:e=!1}={})=>{let r=0,s=\"\",a=!1,n=c=>{!e&&!a&&(ewe.default.hide(),a=!0);let f=c+`\n`;f!==s&&(s=f,t.write($Ce.default.eraseLines(r)+f),r=f.split(`\n`).length)};return n.clear=()=>{t.write($Ce.default.eraseLines(r)),s=\"\",r=0},n.done=()=>{s=\"\",r=0,e||(ewe.default.show(),a=!1)},n};LS.default={create:Apt}});var nwe=_((XJt,ppt)=>{ppt.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:\"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:\"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:\"GitLab CI\",constant:\"GITLAB\",env:\"GITLAB_CI\"},{name:\"GoCD\",constant:\"GOCD\",env:\"GO_PIPELINE_LABEL\"},{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_BUILD_BASE\",pr:{env:\"PULL_REQUEST\",ne:\"false\"}},{name:\"Sail CI\",constant:\"SAIL\",env:\"SAILCI\",pr:\"SAIL_PULL_REQUEST_NUMBER\"},{name:\"Semaphore\",constant:\"SEMAPHORE\",env:\"SEMAPHORE\",pr:\"PULL_REQUEST_NUMBER\"},{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\"}}]});var owe=_(tc=>{\"use strict\";var swe=nwe(),uA=process.env;Object.defineProperty(tc,\"_vendors\",{value:swe.map(function(t){return t.constant})});tc.name=null;tc.isPR=null;swe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(s){return iwe(s)});if(tc[t.constant]=r,r)switch(tc.name=t.name,typeof t.pr){case\"string\":tc.isPR=!!uA[t.pr];break;case\"object\":\"env\"in t.pr?tc.isPR=t.pr.env in uA&&uA[t.pr.env]!==t.pr.ne:\"any\"in t.pr?tc.isPR=t.pr.any.some(function(s){return!!uA[s]}):tc.isPR=iwe(t.pr);break;default:tc.isPR=null}});tc.isCI=!!(uA.CI||uA.CONTINUOUS_INTEGRATION||uA.BUILD_NUMBER||uA.RUN_ID||tc.name);function iwe(t){return typeof t==\"string\"?!!uA[t]:Object.keys(t).every(function(e){return uA[e]===t[e]})}});var lwe=_((eKt,awe)=>{\"use strict\";awe.exports=owe().isCI});var uwe=_((tKt,cwe)=>{\"use strict\";var hpt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};cwe.exports=(t,{include:e,exclude:r}={})=>{let s=a=>{let n=c=>typeof c==\"string\"?a===c:c.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of hpt(t.constructor.prototype)){if(n===\"constructor\"||!s(n))continue;let c=Reflect.getOwnPropertyDescriptor(a,n);c&&typeof c.value==\"function\"&&(t[n]=t[n].bind(t))}return t}});var dwe=_(Vn=>{\"use strict\";var mw,_S,kF,F9;typeof performance==\"object\"&&typeof performance.now==\"function\"?(fwe=performance,Vn.unstable_now=function(){return fwe.now()}):(b9=Date,Awe=b9.now(),Vn.unstable_now=function(){return b9.now()-Awe});var fwe,b9,Awe;typeof window>\"u\"||typeof MessageChannel!=\"function\"?(dw=null,x9=null,k9=function(){if(dw!==null)try{var t=Vn.unstable_now();dw(!0,t),dw=null}catch(e){throw setTimeout(k9,0),e}},mw=function(t){dw!==null?setTimeout(mw,0,t):(dw=t,setTimeout(k9,0))},_S=function(t,e){x9=setTimeout(t,e)},kF=function(){clearTimeout(x9)},Vn.unstable_shouldYield=function(){return!1},F9=Vn.unstable_forceFrameRate=function(){}):(pwe=window.setTimeout,hwe=window.clearTimeout,typeof console<\"u\"&&(gwe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!=\"function\"&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"),typeof gwe!=\"function\"&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")),MS=!1,US=null,PF=-1,Q9=5,R9=0,Vn.unstable_shouldYield=function(){return Vn.unstable_now()>=R9},F9=function(){},Vn.unstable_forceFrameRate=function(t){0>t||125<t?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):Q9=0<t?Math.floor(1e3/t):5},T9=new MessageChannel,bF=T9.port2,T9.port1.onmessage=function(){if(US!==null){var t=Vn.unstable_now();R9=t+Q9;try{US(!0,t)?bF.postMessage(null):(MS=!1,US=null)}catch(e){throw bF.postMessage(null),e}}else MS=!1},mw=function(t){US=t,MS||(MS=!0,bF.postMessage(null))},_S=function(t,e){PF=pwe(function(){t(Vn.unstable_now())},e)},kF=function(){hwe(PF),PF=-1});var dw,x9,k9,pwe,hwe,gwe,MS,US,PF,Q9,R9,T9,bF;function N9(t,e){var r=t.length;t.push(e);e:for(;;){var s=r-1>>>1,a=t[s];if(a!==void 0&&0<xF(a,e))t[s]=e,t[r]=a,r=s;else break e}}function ef(t){return t=t[0],t===void 0?null:t}function QF(t){var e=t[0];if(e!==void 0){var r=t.pop();if(r!==e){t[0]=r;e:for(var s=0,a=t.length;s<a;){var n=2*(s+1)-1,c=t[n],f=n+1,p=t[f];if(c!==void 0&&0>xF(c,r))p!==void 0&&0>xF(p,c)?(t[s]=p,t[f]=r,s=f):(t[s]=c,t[n]=r,s=n);else if(p!==void 0&&0>xF(p,r))t[s]=p,t[f]=r,s=f;else break e}}return e}return null}function xF(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var fA=[],X0=[],gpt=1,qc=null,$o=3,RF=!1,Tm=!1,HS=!1;function O9(t){for(var e=ef(X0);e!==null;){if(e.callback===null)QF(X0);else if(e.startTime<=t)QF(X0),e.sortIndex=e.expirationTime,N9(fA,e);else break;e=ef(X0)}}function L9(t){if(HS=!1,O9(t),!Tm)if(ef(fA)!==null)Tm=!0,mw(M9);else{var e=ef(X0);e!==null&&_S(L9,e.startTime-t)}}function M9(t,e){Tm=!1,HS&&(HS=!1,kF()),RF=!0;var r=$o;try{for(O9(e),qc=ef(fA);qc!==null&&(!(qc.expirationTime>e)||t&&!Vn.unstable_shouldYield());){var s=qc.callback;if(typeof s==\"function\"){qc.callback=null,$o=qc.priorityLevel;var a=s(qc.expirationTime<=e);e=Vn.unstable_now(),typeof a==\"function\"?qc.callback=a:qc===ef(fA)&&QF(fA),O9(e)}else QF(fA);qc=ef(fA)}if(qc!==null)var n=!0;else{var c=ef(X0);c!==null&&_S(L9,c.startTime-e),n=!1}return n}finally{qc=null,$o=r,RF=!1}}var dpt=F9;Vn.unstable_IdlePriority=5;Vn.unstable_ImmediatePriority=1;Vn.unstable_LowPriority=4;Vn.unstable_NormalPriority=3;Vn.unstable_Profiling=null;Vn.unstable_UserBlockingPriority=2;Vn.unstable_cancelCallback=function(t){t.callback=null};Vn.unstable_continueExecution=function(){Tm||RF||(Tm=!0,mw(M9))};Vn.unstable_getCurrentPriorityLevel=function(){return $o};Vn.unstable_getFirstCallbackNode=function(){return ef(fA)};Vn.unstable_next=function(t){switch($o){case 1:case 2:case 3:var e=3;break;default:e=$o}var r=$o;$o=e;try{return t()}finally{$o=r}};Vn.unstable_pauseExecution=function(){};Vn.unstable_requestPaint=dpt;Vn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=$o;$o=t;try{return e()}finally{$o=r}};Vn.unstable_scheduleCallback=function(t,e,r){var s=Vn.unstable_now();switch(typeof r==\"object\"&&r!==null?(r=r.delay,r=typeof r==\"number\"&&0<r?s+r:s):r=s,t){case 1:var a=-1;break;case 2:a=250;break;case 5:a=1073741823;break;case 4:a=1e4;break;default:a=5e3}return a=r+a,t={id:gpt++,callback:e,priorityLevel:t,startTime:r,expirationTime:a,sortIndex:-1},r>s?(t.sortIndex=r,N9(X0,t),ef(fA)===null&&t===ef(X0)&&(HS?kF():HS=!0,_S(L9,r-s))):(t.sortIndex=a,N9(fA,t),Tm||RF||(Tm=!0,mw(M9))),t};Vn.unstable_wrapCallback=function(t){var e=$o;return function(){var r=$o;$o=e;try{return t.apply(this,arguments)}finally{$o=r}}}});var U9=_((nKt,mwe)=>{\"use strict\";mwe.exports=dwe()});var ywe=_((iKt,jS)=>{jS.exports=function(e){var r={},s=f9(),a=hn(),n=U9();function c(v){for(var D=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+v,Q=1;Q<arguments.length;Q++)D+=\"&args[]=\"+encodeURIComponent(arguments[Q]);return\"Minified React error #\"+v+\"; visit \"+D+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var f=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,p=60103,h=60106,E=60107,C=60108,S=60114,b=60109,I=60110,T=60112,N=60113,U=60120,W=60115,ee=60116,ie=60121,ue=60129,le=60130,me=60131;if(typeof Symbol==\"function\"&&Symbol.for){var pe=Symbol.for;p=pe(\"react.element\"),h=pe(\"react.portal\"),E=pe(\"react.fragment\"),C=pe(\"react.strict_mode\"),S=pe(\"react.profiler\"),b=pe(\"react.provider\"),I=pe(\"react.context\"),T=pe(\"react.forward_ref\"),N=pe(\"react.suspense\"),U=pe(\"react.suspense_list\"),W=pe(\"react.memo\"),ee=pe(\"react.lazy\"),ie=pe(\"react.block\"),pe(\"react.scope\"),ue=pe(\"react.debug_trace_mode\"),le=pe(\"react.offscreen\"),me=pe(\"react.legacy_hidden\")}var Be=typeof Symbol==\"function\"&&Symbol.iterator;function Ce(v){return v===null||typeof v!=\"object\"?null:(v=Be&&v[Be]||v[\"@@iterator\"],typeof v==\"function\"?v:null)}function g(v){if(v==null)return null;if(typeof v==\"function\")return v.displayName||v.name||null;if(typeof v==\"string\")return v;switch(v){case E:return\"Fragment\";case h:return\"Portal\";case S:return\"Profiler\";case C:return\"StrictMode\";case N:return\"Suspense\";case U:return\"SuspenseList\"}if(typeof v==\"object\")switch(v.$$typeof){case I:return(v.displayName||\"Context\")+\".Consumer\";case b:return(v._context.displayName||\"Context\")+\".Provider\";case T:var D=v.render;return D=D.displayName||D.name||\"\",v.displayName||(D!==\"\"?\"ForwardRef(\"+D+\")\":\"ForwardRef\");case W:return g(v.type);case ie:return g(v._render);case ee:D=v._payload,v=v._init;try{return g(v(D))}catch{}}return null}function we(v){var D=v,Q=v;if(v.alternate)for(;D.return;)D=D.return;else{v=D;do D=v,D.flags&1026&&(Q=D.return),v=D.return;while(v)}return D.tag===3?Q:null}function ye(v){if(we(v)!==v)throw Error(c(188))}function Ae(v){var D=v.alternate;if(!D){if(D=we(v),D===null)throw Error(c(188));return D!==v?null:v}for(var Q=v,H=D;;){var V=Q.return;if(V===null)break;var ne=V.alternate;if(ne===null){if(H=V.return,H!==null){Q=H;continue}break}if(V.child===ne.child){for(ne=V.child;ne;){if(ne===Q)return ye(V),v;if(ne===H)return ye(V),D;ne=ne.sibling}throw Error(c(188))}if(Q.return!==H.return)Q=V,H=ne;else{for(var Se=!1,_e=V.child;_e;){if(_e===Q){Se=!0,Q=V,H=ne;break}if(_e===H){Se=!0,H=V,Q=ne;break}_e=_e.sibling}if(!Se){for(_e=ne.child;_e;){if(_e===Q){Se=!0,Q=ne,H=V;break}if(_e===H){Se=!0,H=ne,Q=V;break}_e=_e.sibling}if(!Se)throw Error(c(189))}}if(Q.alternate!==H)throw Error(c(190))}if(Q.tag!==3)throw Error(c(188));return Q.stateNode.current===Q?v:D}function se(v){if(v=Ae(v),!v)return null;for(var D=v;;){if(D.tag===5||D.tag===6)return D;if(D.child)D.child.return=D,D=D.child;else{if(D===v)break;for(;!D.sibling;){if(!D.return||D.return===v)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}function X(v){if(v=Ae(v),!v)return null;for(var D=v;;){if(D.tag===5||D.tag===6)return D;if(D.child&&D.tag!==4)D.child.return=D,D=D.child;else{if(D===v)break;for(;!D.sibling;){if(!D.return||D.return===v)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}function De(v,D){for(var Q=v.alternate;D!==null;){if(D===v||D===Q)return!0;D=D.return}return!1}var Te=e.getPublicInstance,mt=e.getRootHostContext,j=e.getChildHostContext,rt=e.prepareForCommit,Fe=e.resetAfterCommit,Ne=e.createInstance,be=e.appendInitialChild,Ve=e.finalizeInitialChildren,ke=e.prepareUpdate,it=e.shouldSetTextContent,Ue=e.createTextInstance,x=e.scheduleTimeout,w=e.cancelTimeout,P=e.noTimeout,y=e.isPrimaryRenderer,F=e.supportsMutation,z=e.supportsPersistence,Z=e.supportsHydration,$=e.getInstanceFromNode,oe=e.makeOpaqueHydratingObject,xe=e.makeClientId,Re=e.beforeActiveInstanceBlur,lt=e.afterActiveInstanceBlur,Ct=e.preparePortalMount,qt=e.supportsTestSelectors,ir=e.findFiberRoot,bt=e.getBoundingRect,gn=e.getTextContent,br=e.isHiddenSubtree,Ir=e.matchAccessibilityRole,Or=e.setFocusIfFocusable,nn=e.setupIntersectionObserver,ai=e.appendChild,Io=e.appendChildToContainer,ts=e.commitTextUpdate,$s=e.commitMount,Co=e.commitUpdate,Hi=e.insertBefore,eo=e.insertInContainerBefore,wo=e.removeChild,QA=e.removeChildFromContainer,Af=e.resetTextContent,dh=e.hideInstance,mh=e.hideTextInstance,to=e.unhideInstance,jn=e.unhideTextInstance,Rs=e.clearContainer,ro=e.cloneInstance,ou=e.createContainerChildSet,au=e.appendChildToContainerChildSet,lu=e.finalizeContainerChildren,RA=e.replaceContainerChildren,TA=e.cloneHiddenInstance,oa=e.cloneHiddenTextInstance,aa=e.canHydrateInstance,FA=e.canHydrateTextInstance,gr=e.isSuspenseInstancePending,Bo=e.isSuspenseInstanceFallback,Me=e.getNextHydratableSibling,cu=e.getFirstHydratableChild,Cr=e.hydrateInstance,pf=e.hydrateTextInstance,NA=e.getNextHydratableInstanceAfterSuspenseInstance,OA=e.commitHydratedContainer,uu=e.commitHydratedSuspenseInstance,fu;function oc(v){if(fu===void 0)try{throw Error()}catch(Q){var D=Q.stack.trim().match(/\\n( *(at )?)/);fu=D&&D[1]||\"\"}return`\n`+fu+v}var ve=!1;function Nt(v,D){if(!v||ve)return\"\";ve=!0;var Q=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(D)if(D=function(){throw Error()},Object.defineProperty(D.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(D,[])}catch(pt){var H=pt}Reflect.construct(v,[],D)}else{try{D.call()}catch(pt){H=pt}v.call(D.prototype)}else{try{throw Error()}catch(pt){H=pt}v()}}catch(pt){if(pt&&H&&typeof pt.stack==\"string\"){for(var V=pt.stack.split(`\n`),ne=H.stack.split(`\n`),Se=V.length-1,_e=ne.length-1;1<=Se&&0<=_e&&V[Se]!==ne[_e];)_e--;for(;1<=Se&&0<=_e;Se--,_e--)if(V[Se]!==ne[_e]){if(Se!==1||_e!==1)do if(Se--,_e--,0>_e||V[Se]!==ne[_e])return`\n`+V[Se].replace(\" at new \",\" at \");while(1<=Se&&0<=_e);break}}}finally{ve=!1,Error.prepareStackTrace=Q}return(v=v?v.displayName||v.name:\"\")?oc(v):\"\"}var ac=[],Oi=-1;function no(v){return{current:v}}function Tt(v){0>Oi||(v.current=ac[Oi],ac[Oi]=null,Oi--)}function xn(v,D){Oi++,ac[Oi]=v.current,v.current=D}var la={},ji=no(la),Li=no(!1),Na=la;function dn(v,D){var Q=v.type.contextTypes;if(!Q)return la;var H=v.stateNode;if(H&&H.__reactInternalMemoizedUnmaskedChildContext===D)return H.__reactInternalMemoizedMaskedChildContext;var V={},ne;for(ne in Q)V[ne]=D[ne];return H&&(v=v.stateNode,v.__reactInternalMemoizedUnmaskedChildContext=D,v.__reactInternalMemoizedMaskedChildContext=V),V}function Kn(v){return v=v.childContextTypes,v!=null}function Au(){Tt(Li),Tt(ji)}function yh(v,D,Q){if(ji.current!==la)throw Error(c(168));xn(ji,D),xn(Li,Q)}function Oa(v,D,Q){var H=v.stateNode;if(v=D.childContextTypes,typeof H.getChildContext!=\"function\")return Q;H=H.getChildContext();for(var V in H)if(!(V in v))throw Error(c(108,g(D)||\"Unknown\",V));return s({},Q,H)}function La(v){return v=(v=v.stateNode)&&v.__reactInternalMemoizedMergedChildContext||la,Na=ji.current,xn(ji,v),xn(Li,Li.current),!0}function Ma(v,D,Q){var H=v.stateNode;if(!H)throw Error(c(169));Q?(v=Oa(v,D,Na),H.__reactInternalMemoizedMergedChildContext=v,Tt(Li),Tt(ji),xn(ji,v)):Tt(Li),xn(Li,Q)}var $e=null,Ua=null,hf=n.unstable_now;hf();var lc=0,wn=8;function ca(v){if(1&v)return wn=15,1;if(2&v)return wn=14,2;if(4&v)return wn=13,4;var D=24&v;return D!==0?(wn=12,D):v&32?(wn=11,32):(D=192&v,D!==0?(wn=10,D):v&256?(wn=9,256):(D=3584&v,D!==0?(wn=8,D):v&4096?(wn=7,4096):(D=4186112&v,D!==0?(wn=6,D):(D=62914560&v,D!==0?(wn=5,D):v&67108864?(wn=4,67108864):v&134217728?(wn=3,134217728):(D=805306368&v,D!==0?(wn=2,D):1073741824&v?(wn=1,1073741824):(wn=8,v))))))}function LA(v){switch(v){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function MA(v){switch(v){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(c(358,v))}}function ua(v,D){var Q=v.pendingLanes;if(Q===0)return wn=0;var H=0,V=0,ne=v.expiredLanes,Se=v.suspendedLanes,_e=v.pingedLanes;if(ne!==0)H=ne,V=wn=15;else if(ne=Q&134217727,ne!==0){var pt=ne&~Se;pt!==0?(H=ca(pt),V=wn):(_e&=ne,_e!==0&&(H=ca(_e),V=wn))}else ne=Q&~Se,ne!==0?(H=ca(ne),V=wn):_e!==0&&(H=ca(_e),V=wn);if(H===0)return 0;if(H=31-rs(H),H=Q&((0>H?0:1<<H)<<1)-1,D!==0&&D!==H&&!(D&Se)){if(ca(D),V<=wn)return D;wn=V}if(D=v.entangledLanes,D!==0)for(v=v.entanglements,D&=H;0<D;)Q=31-rs(D),V=1<<Q,H|=v[Q],D&=~V;return H}function Bl(v){return v=v.pendingLanes&-1073741825,v!==0?v:v&1073741824?1073741824:0}function Mt(v,D){switch(v){case 15:return 1;case 14:return 2;case 12:return v=kn(24&~D),v===0?Mt(10,D):v;case 10:return v=kn(192&~D),v===0?Mt(8,D):v;case 8:return v=kn(3584&~D),v===0&&(v=kn(4186112&~D),v===0&&(v=512)),v;case 2:return D=kn(805306368&~D),D===0&&(D=268435456),D}throw Error(c(358,v))}function kn(v){return v&-v}function fa(v){for(var D=[],Q=0;31>Q;Q++)D.push(v);return D}function Ha(v,D,Q){v.pendingLanes|=D;var H=D-1;v.suspendedLanes&=H,v.pingedLanes&=H,v=v.eventTimes,D=31-rs(D),v[D]=Q}var rs=Math.clz32?Math.clz32:uc,cc=Math.log,pu=Math.LN2;function uc(v){return v===0?32:31-(cc(v)/pu|0)|0}var ja=n.unstable_runWithPriority,Mi=n.unstable_scheduleCallback,Is=n.unstable_cancelCallback,vl=n.unstable_shouldYield,gf=n.unstable_requestPaint,fc=n.unstable_now,wi=n.unstable_getCurrentPriorityLevel,Qn=n.unstable_ImmediatePriority,Ac=n.unstable_UserBlockingPriority,Ke=n.unstable_NormalPriority,st=n.unstable_LowPriority,St=n.unstable_IdlePriority,lr={},te=gf!==void 0?gf:function(){},Ee=null,Oe=null,dt=!1,Et=fc(),Pt=1e4>Et?fc:function(){return fc()-Et};function tr(){switch(wi()){case Qn:return 99;case Ac:return 98;case Ke:return 97;case st:return 96;case St:return 95;default:throw Error(c(332))}}function An(v){switch(v){case 99:return Qn;case 98:return Ac;case 97:return Ke;case 96:return st;case 95:return St;default:throw Error(c(332))}}function li(v,D){return v=An(v),ja(v,D)}function Gi(v,D,Q){return v=An(v),Mi(v,D,Q)}function Rn(){if(Oe!==null){var v=Oe;Oe=null,Is(v)}Ga()}function Ga(){if(!dt&&Ee!==null){dt=!0;var v=0;try{var D=Ee;li(99,function(){for(;v<D.length;v++){var Q=D[v];do Q=Q(!0);while(Q!==null)}}),Ee=null}catch(Q){throw Ee!==null&&(Ee=Ee.slice(v+1)),Mi(Qn,Rn),Q}finally{dt=!1}}}var my=f.ReactCurrentBatchConfig;function X1(v,D){return v===D&&(v!==0||1/v===1/D)||v!==v&&D!==D}var vo=typeof Object.is==\"function\"?Object.is:X1,yy=Object.prototype.hasOwnProperty;function Eh(v,D){if(vo(v,D))return!0;if(typeof v!=\"object\"||v===null||typeof D!=\"object\"||D===null)return!1;var Q=Object.keys(v),H=Object.keys(D);if(Q.length!==H.length)return!1;for(H=0;H<Q.length;H++)if(!yy.call(D,Q[H])||!vo(v[Q[H]],D[Q[H]]))return!1;return!0}function $1(v){switch(v.tag){case 5:return oc(v.type);case 16:return oc(\"Lazy\");case 13:return oc(\"Suspense\");case 19:return oc(\"SuspenseList\");case 0:case 2:case 15:return v=Nt(v.type,!1),v;case 11:return v=Nt(v.type.render,!1),v;case 22:return v=Nt(v.type._render,!1),v;case 1:return v=Nt(v.type,!0),v;default:return\"\"}}function So(v,D){if(v&&v.defaultProps){D=s({},D),v=v.defaultProps;for(var Q in v)D[Q]===void 0&&(D[Q]=v[Q]);return D}return D}var Ih=no(null),Ch=null,hu=null,wh=null;function Fg(){wh=hu=Ch=null}function Ng(v,D){v=v.type._context,y?(xn(Ih,v._currentValue),v._currentValue=D):(xn(Ih,v._currentValue2),v._currentValue2=D)}function Og(v){var D=Ih.current;Tt(Ih),v=v.type._context,y?v._currentValue=D:v._currentValue2=D}function Ey(v,D){for(;v!==null;){var Q=v.alternate;if((v.childLanes&D)===D){if(Q===null||(Q.childLanes&D)===D)break;Q.childLanes|=D}else v.childLanes|=D,Q!==null&&(Q.childLanes|=D);v=v.return}}function df(v,D){Ch=v,wh=hu=null,v=v.dependencies,v!==null&&v.firstContext!==null&&(v.lanes&D&&(Je=!0),v.firstContext=null)}function Do(v,D){if(wh!==v&&D!==!1&&D!==0)if((typeof D!=\"number\"||D===1073741823)&&(wh=v,D=1073741823),D={context:v,observedBits:D,next:null},hu===null){if(Ch===null)throw Error(c(308));hu=D,Ch.dependencies={lanes:0,firstContext:D,responders:null}}else hu=hu.next=D;return y?v._currentValue:v._currentValue2}var Sl=!1;function Bh(v){v.updateQueue={baseState:v.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function Lg(v,D){v=v.updateQueue,D.updateQueue===v&&(D.updateQueue={baseState:v.baseState,firstBaseUpdate:v.firstBaseUpdate,lastBaseUpdate:v.lastBaseUpdate,shared:v.shared,effects:v.effects})}function Dl(v,D){return{eventTime:v,lane:D,tag:0,payload:null,callback:null,next:null}}function Pl(v,D){if(v=v.updateQueue,v!==null){v=v.shared;var Q=v.pending;Q===null?D.next=D:(D.next=Q.next,Q.next=D),v.pending=D}}function Iy(v,D){var Q=v.updateQueue,H=v.alternate;if(H!==null&&(H=H.updateQueue,Q===H)){var V=null,ne=null;if(Q=Q.firstBaseUpdate,Q!==null){do{var Se={eventTime:Q.eventTime,lane:Q.lane,tag:Q.tag,payload:Q.payload,callback:Q.callback,next:null};ne===null?V=ne=Se:ne=ne.next=Se,Q=Q.next}while(Q!==null);ne===null?V=ne=D:ne=ne.next=D}else V=ne=D;Q={baseState:H.baseState,firstBaseUpdate:V,lastBaseUpdate:ne,shared:H.shared,effects:H.effects},v.updateQueue=Q;return}v=Q.lastBaseUpdate,v===null?Q.firstBaseUpdate=D:v.next=D,Q.lastBaseUpdate=D}function UA(v,D,Q,H){var V=v.updateQueue;Sl=!1;var ne=V.firstBaseUpdate,Se=V.lastBaseUpdate,_e=V.shared.pending;if(_e!==null){V.shared.pending=null;var pt=_e,Wt=pt.next;pt.next=null,Se===null?ne=Wt:Se.next=Wt,Se=pt;var Sr=v.alternate;if(Sr!==null){Sr=Sr.updateQueue;var Lr=Sr.lastBaseUpdate;Lr!==Se&&(Lr===null?Sr.firstBaseUpdate=Wt:Lr.next=Wt,Sr.lastBaseUpdate=pt)}}if(ne!==null){Lr=V.baseState,Se=0,Sr=Wt=pt=null;do{_e=ne.lane;var Xt=ne.eventTime;if((H&_e)===_e){Sr!==null&&(Sr=Sr.next={eventTime:Xt,lane:0,tag:ne.tag,payload:ne.payload,callback:ne.callback,next:null});e:{var zn=v,yi=ne;switch(_e=D,Xt=Q,yi.tag){case 1:if(zn=yi.payload,typeof zn==\"function\"){Lr=zn.call(Xt,Lr,_e);break e}Lr=zn;break e;case 3:zn.flags=zn.flags&-4097|64;case 0:if(zn=yi.payload,_e=typeof zn==\"function\"?zn.call(Xt,Lr,_e):zn,_e==null)break e;Lr=s({},Lr,_e);break e;case 2:Sl=!0}}ne.callback!==null&&(v.flags|=32,_e=V.effects,_e===null?V.effects=[ne]:_e.push(ne))}else Xt={eventTime:Xt,lane:_e,tag:ne.tag,payload:ne.payload,callback:ne.callback,next:null},Sr===null?(Wt=Sr=Xt,pt=Lr):Sr=Sr.next=Xt,Se|=_e;if(ne=ne.next,ne===null){if(_e=V.shared.pending,_e===null)break;ne=_e.next,_e.next=null,V.lastBaseUpdate=_e,V.shared.pending=null}}while(!0);Sr===null&&(pt=Lr),V.baseState=pt,V.firstBaseUpdate=Wt,V.lastBaseUpdate=Sr,Xg|=Se,v.lanes=Se,v.memoizedState=Lr}}function Cy(v,D,Q){if(v=D.effects,D.effects=null,v!==null)for(D=0;D<v.length;D++){var H=v[D],V=H.callback;if(V!==null){if(H.callback=null,H=Q,typeof V!=\"function\")throw Error(c(191,V));V.call(H)}}}var wy=new a.Component().refs;function _A(v,D,Q,H){D=v.memoizedState,Q=Q(H,D),Q=Q==null?D:s({},D,Q),v.memoizedState=Q,v.lanes===0&&(v.updateQueue.baseState=Q)}var HA={isMounted:function(v){return(v=v._reactInternals)?we(v)===v:!1},enqueueSetState:function(v,D,Q){v=v._reactInternals;var H=ko(),V=Bs(v),ne=Dl(H,V);ne.payload=D,Q!=null&&(ne.callback=Q),Pl(v,ne),Rl(v,V,H)},enqueueReplaceState:function(v,D,Q){v=v._reactInternals;var H=ko(),V=Bs(v),ne=Dl(H,V);ne.tag=1,ne.payload=D,Q!=null&&(ne.callback=Q),Pl(v,ne),Rl(v,V,H)},enqueueForceUpdate:function(v,D){v=v._reactInternals;var Q=ko(),H=Bs(v),V=Dl(Q,H);V.tag=2,D!=null&&(V.callback=D),Pl(v,V),Rl(v,H,Q)}};function Y(v,D,Q,H,V,ne,Se){return v=v.stateNode,typeof v.shouldComponentUpdate==\"function\"?v.shouldComponentUpdate(H,ne,Se):D.prototype&&D.prototype.isPureReactComponent?!Eh(Q,H)||!Eh(V,ne):!0}function xt(v,D,Q){var H=!1,V=la,ne=D.contextType;return typeof ne==\"object\"&&ne!==null?ne=Do(ne):(V=Kn(D)?Na:ji.current,H=D.contextTypes,ne=(H=H!=null)?dn(v,V):la),D=new D(Q,ne),v.memoizedState=D.state!==null&&D.state!==void 0?D.state:null,D.updater=HA,v.stateNode=D,D._reactInternals=v,H&&(v=v.stateNode,v.__reactInternalMemoizedUnmaskedChildContext=V,v.__reactInternalMemoizedMaskedChildContext=ne),D}function jA(v,D,Q,H){v=D.state,typeof D.componentWillReceiveProps==\"function\"&&D.componentWillReceiveProps(Q,H),typeof D.UNSAFE_componentWillReceiveProps==\"function\"&&D.UNSAFE_componentWillReceiveProps(Q,H),D.state!==v&&HA.enqueueReplaceState(D,D.state,null)}function Po(v,D,Q,H){var V=v.stateNode;V.props=Q,V.state=v.memoizedState,V.refs=wy,Bh(v);var ne=D.contextType;typeof ne==\"object\"&&ne!==null?V.context=Do(ne):(ne=Kn(D)?Na:ji.current,V.context=dn(v,ne)),UA(v,Q,V,H),V.state=v.memoizedState,ne=D.getDerivedStateFromProps,typeof ne==\"function\"&&(_A(v,D,ne,Q),V.state=v.memoizedState),typeof D.getDerivedStateFromProps==\"function\"||typeof V.getSnapshotBeforeUpdate==\"function\"||typeof V.UNSAFE_componentWillMount!=\"function\"&&typeof V.componentWillMount!=\"function\"||(D=V.state,typeof V.componentWillMount==\"function\"&&V.componentWillMount(),typeof V.UNSAFE_componentWillMount==\"function\"&&V.UNSAFE_componentWillMount(),D!==V.state&&HA.enqueueReplaceState(V,V.state,null),UA(v,Q,V,H),V.state=v.memoizedState),typeof V.componentDidMount==\"function\"&&(v.flags|=4)}var mf=Array.isArray;function yt(v,D,Q){if(v=Q.ref,v!==null&&typeof v!=\"function\"&&typeof v!=\"object\"){if(Q._owner){if(Q=Q._owner,Q){if(Q.tag!==1)throw Error(c(309));var H=Q.stateNode}if(!H)throw Error(c(147,v));var V=\"\"+v;return D!==null&&D.ref!==null&&typeof D.ref==\"function\"&&D.ref._stringRef===V?D.ref:(D=function(ne){var Se=H.refs;Se===wy&&(Se=H.refs={}),ne===null?delete Se[V]:Se[V]=ne},D._stringRef=V,D)}if(typeof v!=\"string\")throw Error(c(284));if(!Q._owner)throw Error(c(290,v))}return v}function gu(v,D){if(v.type!==\"textarea\")throw Error(c(31,Object.prototype.toString.call(D)===\"[object Object]\"?\"object with keys {\"+Object.keys(D).join(\", \")+\"}\":D))}function By(v){function D(et,qe){if(v){var gt=et.lastEffect;gt!==null?(gt.nextEffect=qe,et.lastEffect=qe):et.firstEffect=et.lastEffect=qe,qe.nextEffect=null,qe.flags=8}}function Q(et,qe){if(!v)return null;for(;qe!==null;)D(et,qe),qe=qe.sibling;return null}function H(et,qe){for(et=new Map;qe!==null;)qe.key!==null?et.set(qe.key,qe):et.set(qe.index,qe),qe=qe.sibling;return et}function V(et,qe){return et=Su(et,qe),et.index=0,et.sibling=null,et}function ne(et,qe,gt){return et.index=gt,v?(gt=et.alternate,gt!==null?(gt=gt.index,gt<qe?(et.flags=2,qe):gt):(et.flags=2,qe)):qe}function Se(et){return v&&et.alternate===null&&(et.flags=2),et}function _e(et,qe,gt,Zt){return qe===null||qe.tag!==6?(qe=P2(gt,et.mode,Zt),qe.return=et,qe):(qe=V(qe,gt),qe.return=et,qe)}function pt(et,qe,gt,Zt){return qe!==null&&qe.elementType===gt.type?(Zt=V(qe,gt.props),Zt.ref=yt(et,qe,gt),Zt.return=et,Zt):(Zt=sd(gt.type,gt.key,gt.props,null,et.mode,Zt),Zt.ref=yt(et,qe,gt),Zt.return=et,Zt)}function Wt(et,qe,gt,Zt){return qe===null||qe.tag!==4||qe.stateNode.containerInfo!==gt.containerInfo||qe.stateNode.implementation!==gt.implementation?(qe=Qo(gt,et.mode,Zt),qe.return=et,qe):(qe=V(qe,gt.children||[]),qe.return=et,qe)}function Sr(et,qe,gt,Zt,Dr){return qe===null||qe.tag!==7?(qe=kf(gt,et.mode,Zt,Dr),qe.return=et,qe):(qe=V(qe,gt),qe.return=et,qe)}function Lr(et,qe,gt){if(typeof qe==\"string\"||typeof qe==\"number\")return qe=P2(\"\"+qe,et.mode,gt),qe.return=et,qe;if(typeof qe==\"object\"&&qe!==null){switch(qe.$$typeof){case p:return gt=sd(qe.type,qe.key,qe.props,null,et.mode,gt),gt.ref=yt(et,null,qe),gt.return=et,gt;case h:return qe=Qo(qe,et.mode,gt),qe.return=et,qe}if(mf(qe)||Ce(qe))return qe=kf(qe,et.mode,gt,null),qe.return=et,qe;gu(et,qe)}return null}function Xt(et,qe,gt,Zt){var Dr=qe!==null?qe.key:null;if(typeof gt==\"string\"||typeof gt==\"number\")return Dr!==null?null:_e(et,qe,\"\"+gt,Zt);if(typeof gt==\"object\"&&gt!==null){switch(gt.$$typeof){case p:return gt.key===Dr?gt.type===E?Sr(et,qe,gt.props.children,Zt,Dr):pt(et,qe,gt,Zt):null;case h:return gt.key===Dr?Wt(et,qe,gt,Zt):null}if(mf(gt)||Ce(gt))return Dr!==null?null:Sr(et,qe,gt,Zt,null);gu(et,gt)}return null}function zn(et,qe,gt,Zt,Dr){if(typeof Zt==\"string\"||typeof Zt==\"number\")return et=et.get(gt)||null,_e(qe,et,\"\"+Zt,Dr);if(typeof Zt==\"object\"&&Zt!==null){switch(Zt.$$typeof){case p:return et=et.get(Zt.key===null?gt:Zt.key)||null,Zt.type===E?Sr(qe,et,Zt.props.children,Dr,Zt.key):pt(qe,et,Zt,Dr);case h:return et=et.get(Zt.key===null?gt:Zt.key)||null,Wt(qe,et,Zt,Dr)}if(mf(Zt)||Ce(Zt))return et=et.get(gt)||null,Sr(qe,et,Zt,Dr,null);gu(qe,Zt)}return null}function yi(et,qe,gt,Zt){for(var Dr=null,Xn=null,kr=qe,Tn=qe=0,_n=null;kr!==null&&Tn<gt.length;Tn++){kr.index>Tn?(_n=kr,kr=null):_n=kr.sibling;var zr=Xt(et,kr,gt[Tn],Zt);if(zr===null){kr===null&&(kr=_n);break}v&&kr&&zr.alternate===null&&D(et,kr),qe=ne(zr,qe,Tn),Xn===null?Dr=zr:Xn.sibling=zr,Xn=zr,kr=_n}if(Tn===gt.length)return Q(et,kr),Dr;if(kr===null){for(;Tn<gt.length;Tn++)kr=Lr(et,gt[Tn],Zt),kr!==null&&(qe=ne(kr,qe,Tn),Xn===null?Dr=kr:Xn.sibling=kr,Xn=kr);return Dr}for(kr=H(et,kr);Tn<gt.length;Tn++)_n=zn(kr,et,Tn,gt[Tn],Zt),_n!==null&&(v&&_n.alternate!==null&&kr.delete(_n.key===null?Tn:_n.key),qe=ne(_n,qe,Tn),Xn===null?Dr=_n:Xn.sibling=_n,Xn=_n);return v&&kr.forEach(function(ci){return D(et,ci)}),Dr}function za(et,qe,gt,Zt){var Dr=Ce(gt);if(typeof Dr!=\"function\")throw Error(c(150));if(gt=Dr.call(gt),gt==null)throw Error(c(151));for(var Xn=Dr=null,kr=qe,Tn=qe=0,_n=null,zr=gt.next();kr!==null&&!zr.done;Tn++,zr=gt.next()){kr.index>Tn?(_n=kr,kr=null):_n=kr.sibling;var ci=Xt(et,kr,zr.value,Zt);if(ci===null){kr===null&&(kr=_n);break}v&&kr&&ci.alternate===null&&D(et,kr),qe=ne(ci,qe,Tn),Xn===null?Dr=ci:Xn.sibling=ci,Xn=ci,kr=_n}if(zr.done)return Q(et,kr),Dr;if(kr===null){for(;!zr.done;Tn++,zr=gt.next())zr=Lr(et,zr.value,Zt),zr!==null&&(qe=ne(zr,qe,Tn),Xn===null?Dr=zr:Xn.sibling=zr,Xn=zr);return Dr}for(kr=H(et,kr);!zr.done;Tn++,zr=gt.next())zr=zn(kr,et,Tn,zr.value,Zt),zr!==null&&(v&&zr.alternate!==null&&kr.delete(zr.key===null?Tn:zr.key),qe=ne(zr,qe,Tn),Xn===null?Dr=zr:Xn.sibling=zr,Xn=zr);return v&&kr.forEach(function(Du){return D(et,Du)}),Dr}return function(et,qe,gt,Zt){var Dr=typeof gt==\"object\"&&gt!==null&&gt.type===E&&gt.key===null;Dr&&(gt=gt.props.children);var Xn=typeof gt==\"object\"&&gt!==null;if(Xn)switch(gt.$$typeof){case p:e:{for(Xn=gt.key,Dr=qe;Dr!==null;){if(Dr.key===Xn){switch(Dr.tag){case 7:if(gt.type===E){Q(et,Dr.sibling),qe=V(Dr,gt.props.children),qe.return=et,et=qe;break e}break;default:if(Dr.elementType===gt.type){Q(et,Dr.sibling),qe=V(Dr,gt.props),qe.ref=yt(et,Dr,gt),qe.return=et,et=qe;break e}}Q(et,Dr);break}else D(et,Dr);Dr=Dr.sibling}gt.type===E?(qe=kf(gt.props.children,et.mode,Zt,gt.key),qe.return=et,et=qe):(Zt=sd(gt.type,gt.key,gt.props,null,et.mode,Zt),Zt.ref=yt(et,qe,gt),Zt.return=et,et=Zt)}return Se(et);case h:e:{for(Dr=gt.key;qe!==null;){if(qe.key===Dr)if(qe.tag===4&&qe.stateNode.containerInfo===gt.containerInfo&&qe.stateNode.implementation===gt.implementation){Q(et,qe.sibling),qe=V(qe,gt.children||[]),qe.return=et,et=qe;break e}else{Q(et,qe);break}else D(et,qe);qe=qe.sibling}qe=Qo(gt,et.mode,Zt),qe.return=et,et=qe}return Se(et)}if(typeof gt==\"string\"||typeof gt==\"number\")return gt=\"\"+gt,qe!==null&&qe.tag===6?(Q(et,qe.sibling),qe=V(qe,gt),qe.return=et,et=qe):(Q(et,qe),qe=P2(gt,et.mode,Zt),qe.return=et,et=qe),Se(et);if(mf(gt))return yi(et,qe,gt,Zt);if(Ce(gt))return za(et,qe,gt,Zt);if(Xn&&gu(et,gt),typeof gt>\"u\"&&!Dr)switch(et.tag){case 1:case 22:case 0:case 11:case 15:throw Error(c(152,g(et.type)||\"Component\"))}return Q(et,qe)}}var Mg=By(!0),e2=By(!1),vh={},ur=no(vh),Ki=no(vh),yf=no(vh);function qa(v){if(v===vh)throw Error(c(174));return v}function Ug(v,D){xn(yf,D),xn(Ki,v),xn(ur,vh),v=mt(D),Tt(ur),xn(ur,v)}function du(){Tt(ur),Tt(Ki),Tt(yf)}function Ef(v){var D=qa(yf.current),Q=qa(ur.current);D=j(Q,v.type,D),Q!==D&&(xn(Ki,v),xn(ur,D))}function wt(v){Ki.current===v&&(Tt(ur),Tt(Ki))}var di=no(0);function GA(v){for(var D=v;D!==null;){if(D.tag===13){var Q=D.memoizedState;if(Q!==null&&(Q=Q.dehydrated,Q===null||gr(Q)||Bo(Q)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if(D.flags&64)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===v)break;for(;D.sibling===null;){if(D.return===null||D.return===v)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}var Wa=null,Aa=null,Ya=!1;function _g(v,D){var Q=Ka(5,null,null,0);Q.elementType=\"DELETED\",Q.type=\"DELETED\",Q.stateNode=D,Q.return=v,Q.flags=8,v.lastEffect!==null?(v.lastEffect.nextEffect=Q,v.lastEffect=Q):v.firstEffect=v.lastEffect=Q}function Sh(v,D){switch(v.tag){case 5:return D=aa(D,v.type,v.pendingProps),D!==null?(v.stateNode=D,!0):!1;case 6:return D=FA(D,v.pendingProps),D!==null?(v.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function Hg(v){if(Ya){var D=Aa;if(D){var Q=D;if(!Sh(v,D)){if(D=Me(Q),!D||!Sh(v,D)){v.flags=v.flags&-1025|2,Ya=!1,Wa=v;return}_g(Wa,Q)}Wa=v,Aa=cu(D)}else v.flags=v.flags&-1025|2,Ya=!1,Wa=v}}function vy(v){for(v=v.return;v!==null&&v.tag!==5&&v.tag!==3&&v.tag!==13;)v=v.return;Wa=v}function qA(v){if(!Z||v!==Wa)return!1;if(!Ya)return vy(v),Ya=!0,!1;var D=v.type;if(v.tag!==5||D!==\"head\"&&D!==\"body\"&&!it(D,v.memoizedProps))for(D=Aa;D;)_g(v,D),D=Me(D);if(vy(v),v.tag===13){if(!Z)throw Error(c(316));if(v=v.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(c(317));Aa=NA(v)}else Aa=Wa?Me(v.stateNode):null;return!0}function jg(){Z&&(Aa=Wa=null,Ya=!1)}var mu=[];function yu(){for(var v=0;v<mu.length;v++){var D=mu[v];y?D._workInProgressVersionPrimary=null:D._workInProgressVersionSecondary=null}mu.length=0}var If=f.ReactCurrentDispatcher,Ts=f.ReactCurrentBatchConfig,Eu=0,Gn=null,ns=null,bi=null,WA=!1,Cf=!1;function mn(){throw Error(c(321))}function Gg(v,D){if(D===null)return!1;for(var Q=0;Q<D.length&&Q<v.length;Q++)if(!vo(v[Q],D[Q]))return!1;return!0}function qg(v,D,Q,H,V,ne){if(Eu=ne,Gn=D,D.memoizedState=null,D.updateQueue=null,D.lanes=0,If.current=v===null||v.memoizedState===null?O:K,v=Q(H,V),Cf){ne=0;do{if(Cf=!1,!(25>ne))throw Error(c(301));ne+=1,bi=ns=null,D.updateQueue=null,If.current=re,v=Q(H,V)}while(Cf)}if(If.current=kt,D=ns!==null&&ns.next!==null,Eu=0,bi=ns=Gn=null,WA=!1,D)throw Error(c(300));return v}function is(){var v={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return bi===null?Gn.memoizedState=bi=v:bi=bi.next=v,bi}function bl(){if(ns===null){var v=Gn.alternate;v=v!==null?v.memoizedState:null}else v=ns.next;var D=bi===null?Gn.memoizedState:bi.next;if(D!==null)bi=D,ns=v;else{if(v===null)throw Error(c(310));ns=v,v={memoizedState:ns.memoizedState,baseState:ns.baseState,baseQueue:ns.baseQueue,queue:ns.queue,next:null},bi===null?Gn.memoizedState=bi=v:bi=bi.next=v}return bi}function bo(v,D){return typeof D==\"function\"?D(v):D}function wf(v){var D=bl(),Q=D.queue;if(Q===null)throw Error(c(311));Q.lastRenderedReducer=v;var H=ns,V=H.baseQueue,ne=Q.pending;if(ne!==null){if(V!==null){var Se=V.next;V.next=ne.next,ne.next=Se}H.baseQueue=V=ne,Q.pending=null}if(V!==null){V=V.next,H=H.baseState;var _e=Se=ne=null,pt=V;do{var Wt=pt.lane;if((Eu&Wt)===Wt)_e!==null&&(_e=_e.next={lane:0,action:pt.action,eagerReducer:pt.eagerReducer,eagerState:pt.eagerState,next:null}),H=pt.eagerReducer===v?pt.eagerState:v(H,pt.action);else{var Sr={lane:Wt,action:pt.action,eagerReducer:pt.eagerReducer,eagerState:pt.eagerState,next:null};_e===null?(Se=_e=Sr,ne=H):_e=_e.next=Sr,Gn.lanes|=Wt,Xg|=Wt}pt=pt.next}while(pt!==null&&pt!==V);_e===null?ne=H:_e.next=Se,vo(H,D.memoizedState)||(Je=!0),D.memoizedState=H,D.baseState=ne,D.baseQueue=_e,Q.lastRenderedState=H}return[D.memoizedState,Q.dispatch]}function Bf(v){var D=bl(),Q=D.queue;if(Q===null)throw Error(c(311));Q.lastRenderedReducer=v;var H=Q.dispatch,V=Q.pending,ne=D.memoizedState;if(V!==null){Q.pending=null;var Se=V=V.next;do ne=v(ne,Se.action),Se=Se.next;while(Se!==V);vo(ne,D.memoizedState)||(Je=!0),D.memoizedState=ne,D.baseQueue===null&&(D.baseState=ne),Q.lastRenderedState=ne}return[ne,H]}function xl(v,D,Q){var H=D._getVersion;H=H(D._source);var V=y?D._workInProgressVersionPrimary:D._workInProgressVersionSecondary;if(V!==null?v=V===H:(v=v.mutableReadLanes,(v=(Eu&v)===v)&&(y?D._workInProgressVersionPrimary=H:D._workInProgressVersionSecondary=H,mu.push(D))),v)return Q(D._source);throw mu.push(D),Error(c(350))}function yn(v,D,Q,H){var V=so;if(V===null)throw Error(c(349));var ne=D._getVersion,Se=ne(D._source),_e=If.current,pt=_e.useState(function(){return xl(V,D,Q)}),Wt=pt[1],Sr=pt[0];pt=bi;var Lr=v.memoizedState,Xt=Lr.refs,zn=Xt.getSnapshot,yi=Lr.source;Lr=Lr.subscribe;var za=Gn;return v.memoizedState={refs:Xt,source:D,subscribe:H},_e.useEffect(function(){Xt.getSnapshot=Q,Xt.setSnapshot=Wt;var et=ne(D._source);if(!vo(Se,et)){et=Q(D._source),vo(Sr,et)||(Wt(et),et=Bs(za),V.mutableReadLanes|=et&V.pendingLanes),et=V.mutableReadLanes,V.entangledLanes|=et;for(var qe=V.entanglements,gt=et;0<gt;){var Zt=31-rs(gt),Dr=1<<Zt;qe[Zt]|=et,gt&=~Dr}}},[Q,D,H]),_e.useEffect(function(){return H(D._source,function(){var et=Xt.getSnapshot,qe=Xt.setSnapshot;try{qe(et(D._source));var gt=Bs(za);V.mutableReadLanes|=gt&V.pendingLanes}catch(Zt){qe(function(){throw Zt})}})},[D,H]),vo(zn,Q)&&vo(yi,D)&&vo(Lr,H)||(v={pending:null,dispatch:null,lastRenderedReducer:bo,lastRenderedState:Sr},v.dispatch=Wt=xh.bind(null,Gn,v),pt.queue=v,pt.baseQueue=null,Sr=xl(V,D,Q),pt.memoizedState=pt.baseState=Sr),Sr}function xo(v,D,Q){var H=bl();return yn(H,v,D,Q)}function Iu(v){var D=is();return typeof v==\"function\"&&(v=v()),D.memoizedState=D.baseState=v,v=D.queue={pending:null,dispatch:null,lastRenderedReducer:bo,lastRenderedState:v},v=v.dispatch=xh.bind(null,Gn,v),[D.memoizedState,v]}function pa(v,D,Q,H){return v={tag:v,create:D,destroy:Q,deps:H,next:null},D=Gn.updateQueue,D===null?(D={lastEffect:null},Gn.updateQueue=D,D.lastEffect=v.next=v):(Q=D.lastEffect,Q===null?D.lastEffect=v.next=v:(H=Q.next,Q.next=v,v.next=H,D.lastEffect=v)),v}function Fs(v){var D=is();return v={current:v},D.memoizedState=v}function Dh(){return bl().memoizedState}function YA(v,D,Q,H){var V=is();Gn.flags|=v,V.memoizedState=pa(1|D,Q,void 0,H===void 0?null:H)}function vf(v,D,Q,H){var V=bl();H=H===void 0?null:H;var ne=void 0;if(ns!==null){var Se=ns.memoizedState;if(ne=Se.destroy,H!==null&&Gg(H,Se.deps)){pa(D,Q,ne,H);return}}Gn.flags|=v,V.memoizedState=pa(1|D,Q,ne,H)}function io(v,D){return YA(516,4,v,D)}function Xr(v,D){return vf(516,4,v,D)}function Ph(v,D){return vf(4,2,v,D)}function VA(v,D){if(typeof D==\"function\")return v=v(),D(v),function(){D(null)};if(D!=null)return v=v(),D.current=v,function(){D.current=null}}function Sy(v,D,Q){return Q=Q!=null?Q.concat([v]):null,vf(4,2,VA.bind(null,D,v),Q)}function Wg(){}function bh(v,D){var Q=bl();D=D===void 0?null:D;var H=Q.memoizedState;return H!==null&&D!==null&&Gg(D,H[1])?H[0]:(Q.memoizedState=[v,D],v)}function pc(v,D){var Q=bl();D=D===void 0?null:D;var H=Q.memoizedState;return H!==null&&D!==null&&Gg(D,H[1])?H[0]:(v=v(),Q.memoizedState=[v,D],v)}function Dy(v,D){var Q=tr();li(98>Q?98:Q,function(){v(!0)}),li(97<Q?97:Q,function(){var H=Ts.transition;Ts.transition=1;try{v(!1),D()}finally{Ts.transition=H}})}function xh(v,D,Q){var H=ko(),V=Bs(v),ne={lane:V,action:Q,eagerReducer:null,eagerState:null,next:null},Se=D.pending;if(Se===null?ne.next=ne:(ne.next=Se.next,Se.next=ne),D.pending=ne,Se=v.alternate,v===Gn||Se!==null&&Se===Gn)Cf=WA=!0;else{if(v.lanes===0&&(Se===null||Se.lanes===0)&&(Se=D.lastRenderedReducer,Se!==null))try{var _e=D.lastRenderedState,pt=Se(_e,Q);if(ne.eagerReducer=Se,ne.eagerState=pt,vo(pt,_e))return}catch{}finally{}Rl(v,V,H)}}var kt={readContext:Do,useCallback:mn,useContext:mn,useEffect:mn,useImperativeHandle:mn,useLayoutEffect:mn,useMemo:mn,useReducer:mn,useRef:mn,useState:mn,useDebugValue:mn,useDeferredValue:mn,useTransition:mn,useMutableSource:mn,useOpaqueIdentifier:mn,unstable_isNewReconciler:!1},O={readContext:Do,useCallback:function(v,D){return is().memoizedState=[v,D===void 0?null:D],v},useContext:Do,useEffect:io,useImperativeHandle:function(v,D,Q){return Q=Q!=null?Q.concat([v]):null,YA(4,2,VA.bind(null,D,v),Q)},useLayoutEffect:function(v,D){return YA(4,2,v,D)},useMemo:function(v,D){var Q=is();return D=D===void 0?null:D,v=v(),Q.memoizedState=[v,D],v},useReducer:function(v,D,Q){var H=is();return D=Q!==void 0?Q(D):D,H.memoizedState=H.baseState=D,v=H.queue={pending:null,dispatch:null,lastRenderedReducer:v,lastRenderedState:D},v=v.dispatch=xh.bind(null,Gn,v),[H.memoizedState,v]},useRef:Fs,useState:Iu,useDebugValue:Wg,useDeferredValue:function(v){var D=Iu(v),Q=D[0],H=D[1];return io(function(){var V=Ts.transition;Ts.transition=1;try{H(v)}finally{Ts.transition=V}},[v]),Q},useTransition:function(){var v=Iu(!1),D=v[0];return v=Dy.bind(null,v[1]),Fs(v),[v,D]},useMutableSource:function(v,D,Q){var H=is();return H.memoizedState={refs:{getSnapshot:D,setSnapshot:null},source:v,subscribe:Q},yn(H,v,D,Q)},useOpaqueIdentifier:function(){if(Ya){var v=!1,D=oe(function(){throw v||(v=!0,Q(xe())),Error(c(355))}),Q=Iu(D)[1];return!(Gn.mode&2)&&(Gn.flags|=516,pa(5,function(){Q(xe())},void 0,null)),D}return D=xe(),Iu(D),D},unstable_isNewReconciler:!1},K={readContext:Do,useCallback:bh,useContext:Do,useEffect:Xr,useImperativeHandle:Sy,useLayoutEffect:Ph,useMemo:pc,useReducer:wf,useRef:Dh,useState:function(){return wf(bo)},useDebugValue:Wg,useDeferredValue:function(v){var D=wf(bo),Q=D[0],H=D[1];return Xr(function(){var V=Ts.transition;Ts.transition=1;try{H(v)}finally{Ts.transition=V}},[v]),Q},useTransition:function(){var v=wf(bo)[0];return[Dh().current,v]},useMutableSource:xo,useOpaqueIdentifier:function(){return wf(bo)[0]},unstable_isNewReconciler:!1},re={readContext:Do,useCallback:bh,useContext:Do,useEffect:Xr,useImperativeHandle:Sy,useLayoutEffect:Ph,useMemo:pc,useReducer:Bf,useRef:Dh,useState:function(){return Bf(bo)},useDebugValue:Wg,useDeferredValue:function(v){var D=Bf(bo),Q=D[0],H=D[1];return Xr(function(){var V=Ts.transition;Ts.transition=1;try{H(v)}finally{Ts.transition=V}},[v]),Q},useTransition:function(){var v=Bf(bo)[0];return[Dh().current,v]},useMutableSource:xo,useOpaqueIdentifier:function(){return Bf(bo)[0]},unstable_isNewReconciler:!1},de=f.ReactCurrentOwner,Je=!1;function At(v,D,Q,H){D.child=v===null?e2(D,null,Q,H):Mg(D,v.child,Q,H)}function dr(v,D,Q,H,V){Q=Q.render;var ne=D.ref;return df(D,V),H=qg(v,D,Q,H,ne,V),v!==null&&!Je?(D.updateQueue=v.updateQueue,D.flags&=-517,v.lanes&=~V,qn(v,D,V)):(D.flags|=1,At(v,D,H,V),D.child)}function vr(v,D,Q,H,V,ne){if(v===null){var Se=Q.type;return typeof Se==\"function\"&&!S2(Se)&&Se.defaultProps===void 0&&Q.compare===null&&Q.defaultProps===void 0?(D.tag=15,D.type=Se,Un(v,D,Se,H,V,ne)):(v=sd(Q.type,null,H,D,D.mode,ne),v.ref=D.ref,v.return=D,D.child=v)}return Se=v.child,!(V&ne)&&(V=Se.memoizedProps,Q=Q.compare,Q=Q!==null?Q:Eh,Q(V,H)&&v.ref===D.ref)?qn(v,D,ne):(D.flags|=1,v=Su(Se,H),v.ref=D.ref,v.return=D,D.child=v)}function Un(v,D,Q,H,V,ne){if(v!==null&&Eh(v.memoizedProps,H)&&v.ref===D.ref)if(Je=!1,(ne&V)!==0)v.flags&16384&&(Je=!0);else return D.lanes=v.lanes,qn(v,D,ne);return JA(v,D,Q,H,ne)}function mi(v,D,Q){var H=D.pendingProps,V=H.children,ne=v!==null?v.memoizedState:null;if(H.mode===\"hidden\"||H.mode===\"unstable-defer-without-hiding\")if(!(D.mode&4))D.memoizedState={baseLanes:0},qy(D,Q);else if(Q&1073741824)D.memoizedState={baseLanes:0},qy(D,ne!==null?ne.baseLanes:Q);else return v=ne!==null?ne.baseLanes|Q:Q,D.lanes=D.childLanes=1073741824,D.memoizedState={baseLanes:v},qy(D,v),null;else ne!==null?(H=ne.baseLanes|Q,D.memoizedState=null):H=Q,qy(D,H);return At(v,D,V,Q),D.child}function Cs(v,D){var Q=D.ref;(v===null&&Q!==null||v!==null&&v.ref!==Q)&&(D.flags|=128)}function JA(v,D,Q,H,V){var ne=Kn(Q)?Na:ji.current;return ne=dn(D,ne),df(D,V),Q=qg(v,D,Q,H,ne,V),v!==null&&!Je?(D.updateQueue=v.updateQueue,D.flags&=-517,v.lanes&=~V,qn(v,D,V)):(D.flags|=1,At(v,D,Q,V),D.child)}function ab(v,D,Q,H,V){if(Kn(Q)){var ne=!0;La(D)}else ne=!1;if(df(D,V),D.stateNode===null)v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),xt(D,Q,H),Po(D,Q,H,V),H=!0;else if(v===null){var Se=D.stateNode,_e=D.memoizedProps;Se.props=_e;var pt=Se.context,Wt=Q.contextType;typeof Wt==\"object\"&&Wt!==null?Wt=Do(Wt):(Wt=Kn(Q)?Na:ji.current,Wt=dn(D,Wt));var Sr=Q.getDerivedStateFromProps,Lr=typeof Sr==\"function\"||typeof Se.getSnapshotBeforeUpdate==\"function\";Lr||typeof Se.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof Se.componentWillReceiveProps!=\"function\"||(_e!==H||pt!==Wt)&&jA(D,Se,H,Wt),Sl=!1;var Xt=D.memoizedState;Se.state=Xt,UA(D,H,Se,V),pt=D.memoizedState,_e!==H||Xt!==pt||Li.current||Sl?(typeof Sr==\"function\"&&(_A(D,Q,Sr,H),pt=D.memoizedState),(_e=Sl||Y(D,Q,_e,H,Xt,pt,Wt))?(Lr||typeof Se.UNSAFE_componentWillMount!=\"function\"&&typeof Se.componentWillMount!=\"function\"||(typeof Se.componentWillMount==\"function\"&&Se.componentWillMount(),typeof Se.UNSAFE_componentWillMount==\"function\"&&Se.UNSAFE_componentWillMount()),typeof Se.componentDidMount==\"function\"&&(D.flags|=4)):(typeof Se.componentDidMount==\"function\"&&(D.flags|=4),D.memoizedProps=H,D.memoizedState=pt),Se.props=H,Se.state=pt,Se.context=Wt,H=_e):(typeof Se.componentDidMount==\"function\"&&(D.flags|=4),H=!1)}else{Se=D.stateNode,Lg(v,D),_e=D.memoizedProps,Wt=D.type===D.elementType?_e:So(D.type,_e),Se.props=Wt,Lr=D.pendingProps,Xt=Se.context,pt=Q.contextType,typeof pt==\"object\"&&pt!==null?pt=Do(pt):(pt=Kn(Q)?Na:ji.current,pt=dn(D,pt));var zn=Q.getDerivedStateFromProps;(Sr=typeof zn==\"function\"||typeof Se.getSnapshotBeforeUpdate==\"function\")||typeof Se.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof Se.componentWillReceiveProps!=\"function\"||(_e!==Lr||Xt!==pt)&&jA(D,Se,H,pt),Sl=!1,Xt=D.memoizedState,Se.state=Xt,UA(D,H,Se,V);var yi=D.memoizedState;_e!==Lr||Xt!==yi||Li.current||Sl?(typeof zn==\"function\"&&(_A(D,Q,zn,H),yi=D.memoizedState),(Wt=Sl||Y(D,Q,Wt,H,Xt,yi,pt))?(Sr||typeof Se.UNSAFE_componentWillUpdate!=\"function\"&&typeof Se.componentWillUpdate!=\"function\"||(typeof Se.componentWillUpdate==\"function\"&&Se.componentWillUpdate(H,yi,pt),typeof Se.UNSAFE_componentWillUpdate==\"function\"&&Se.UNSAFE_componentWillUpdate(H,yi,pt)),typeof Se.componentDidUpdate==\"function\"&&(D.flags|=4),typeof Se.getSnapshotBeforeUpdate==\"function\"&&(D.flags|=256)):(typeof Se.componentDidUpdate!=\"function\"||_e===v.memoizedProps&&Xt===v.memoizedState||(D.flags|=4),typeof Se.getSnapshotBeforeUpdate!=\"function\"||_e===v.memoizedProps&&Xt===v.memoizedState||(D.flags|=256),D.memoizedProps=H,D.memoizedState=yi),Se.props=H,Se.state=yi,Se.context=pt,H=Wt):(typeof Se.componentDidUpdate!=\"function\"||_e===v.memoizedProps&&Xt===v.memoizedState||(D.flags|=4),typeof Se.getSnapshotBeforeUpdate!=\"function\"||_e===v.memoizedProps&&Xt===v.memoizedState||(D.flags|=256),H=!1)}return t2(v,D,Q,H,ne,V)}function t2(v,D,Q,H,V,ne){Cs(v,D);var Se=(D.flags&64)!==0;if(!H&&!Se)return V&&Ma(D,Q,!1),qn(v,D,ne);H=D.stateNode,de.current=D;var _e=Se&&typeof Q.getDerivedStateFromError!=\"function\"?null:H.render();return D.flags|=1,v!==null&&Se?(D.child=Mg(D,v.child,null,ne),D.child=Mg(D,null,_e,ne)):At(v,D,_e,ne),D.memoizedState=H.state,V&&Ma(D,Q,!0),D.child}function Py(v){var D=v.stateNode;D.pendingContext?yh(v,D.pendingContext,D.pendingContext!==D.context):D.context&&yh(v,D.context,!1),Ug(v,D.containerInfo)}var kh={dehydrated:null,retryLane:0};function r2(v,D,Q){var H=D.pendingProps,V=di.current,ne=!1,Se;return(Se=(D.flags&64)!==0)||(Se=v!==null&&v.memoizedState===null?!1:(V&2)!==0),Se?(ne=!0,D.flags&=-65):v!==null&&v.memoizedState===null||H.fallback===void 0||H.unstable_avoidThisFallback===!0||(V|=1),xn(di,V&1),v===null?(H.fallback!==void 0&&Hg(D),v=H.children,V=H.fallback,ne?(v=Va(D,v,V,Q),D.child.memoizedState={baseLanes:Q},D.memoizedState=kh,v):typeof H.unstable_expectedLoadTime==\"number\"?(v=Va(D,v,V,Q),D.child.memoizedState={baseLanes:Q},D.memoizedState=kh,D.lanes=33554432,v):(Q=D2({mode:\"visible\",children:v},D.mode,Q,null),Q.return=D,D.child=Q)):v.memoizedState!==null?ne?(H=KA(v,D,H.children,H.fallback,Q),ne=D.child,V=v.child.memoizedState,ne.memoizedState=V===null?{baseLanes:Q}:{baseLanes:V.baseLanes|Q},ne.childLanes=v.childLanes&~Q,D.memoizedState=kh,H):(Q=n2(v,D,H.children,Q),D.memoizedState=null,Q):ne?(H=KA(v,D,H.children,H.fallback,Q),ne=D.child,V=v.child.memoizedState,ne.memoizedState=V===null?{baseLanes:Q}:{baseLanes:V.baseLanes|Q},ne.childLanes=v.childLanes&~Q,D.memoizedState=kh,H):(Q=n2(v,D,H.children,Q),D.memoizedState=null,Q)}function Va(v,D,Q,H){var V=v.mode,ne=v.child;return D={mode:\"hidden\",children:D},!(V&2)&&ne!==null?(ne.childLanes=0,ne.pendingProps=D):ne=D2(D,V,0,null),Q=kf(Q,V,H,null),ne.return=v,Q.return=v,ne.sibling=Q,v.child=ne,Q}function n2(v,D,Q,H){var V=v.child;return v=V.sibling,Q=Su(V,{mode:\"visible\",children:Q}),!(D.mode&2)&&(Q.lanes=H),Q.return=D,Q.sibling=null,v!==null&&(v.nextEffect=null,v.flags=8,D.firstEffect=D.lastEffect=v),D.child=Q}function KA(v,D,Q,H,V){var ne=D.mode,Se=v.child;v=Se.sibling;var _e={mode:\"hidden\",children:Q};return!(ne&2)&&D.child!==Se?(Q=D.child,Q.childLanes=0,Q.pendingProps=_e,Se=Q.lastEffect,Se!==null?(D.firstEffect=Q.firstEffect,D.lastEffect=Se,Se.nextEffect=null):D.firstEffect=D.lastEffect=null):Q=Su(Se,_e),v!==null?H=Su(v,H):(H=kf(H,ne,V,null),H.flags|=2),H.return=D,Q.return=D,Q.sibling=H,D.child=Q,H}function Qh(v,D){v.lanes|=D;var Q=v.alternate;Q!==null&&(Q.lanes|=D),Ey(v.return,D)}function by(v,D,Q,H,V,ne){var Se=v.memoizedState;Se===null?v.memoizedState={isBackwards:D,rendering:null,renderingStartTime:0,last:H,tail:Q,tailMode:V,lastEffect:ne}:(Se.isBackwards=D,Se.rendering=null,Se.renderingStartTime=0,Se.last=H,Se.tail=Q,Se.tailMode=V,Se.lastEffect=ne)}function lb(v,D,Q){var H=D.pendingProps,V=H.revealOrder,ne=H.tail;if(At(v,D,H.children,Q),H=di.current,H&2)H=H&1|2,D.flags|=64;else{if(v!==null&&v.flags&64)e:for(v=D.child;v!==null;){if(v.tag===13)v.memoizedState!==null&&Qh(v,Q);else if(v.tag===19)Qh(v,Q);else if(v.child!==null){v.child.return=v,v=v.child;continue}if(v===D)break e;for(;v.sibling===null;){if(v.return===null||v.return===D)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}H&=1}if(xn(di,H),!(D.mode&2))D.memoizedState=null;else switch(V){case\"forwards\":for(Q=D.child,V=null;Q!==null;)v=Q.alternate,v!==null&&GA(v)===null&&(V=Q),Q=Q.sibling;Q=V,Q===null?(V=D.child,D.child=null):(V=Q.sibling,Q.sibling=null),by(D,!1,V,Q,ne,D.lastEffect);break;case\"backwards\":for(Q=null,V=D.child,D.child=null;V!==null;){if(v=V.alternate,v!==null&&GA(v)===null){D.child=V;break}v=V.sibling,V.sibling=Q,Q=V,V=v}by(D,!0,Q,null,ne,D.lastEffect);break;case\"together\":by(D,!1,null,null,void 0,D.lastEffect);break;default:D.memoizedState=null}return D.child}function qn(v,D,Q){if(v!==null&&(D.dependencies=v.dependencies),Xg|=D.lanes,Q&D.childLanes){if(v!==null&&D.child!==v.child)throw Error(c(153));if(D.child!==null){for(v=D.child,Q=Su(v,v.pendingProps),D.child=Q,Q.return=D;v.sibling!==null;)v=v.sibling,Q=Q.sibling=Su(v,v.pendingProps),Q.return=D;Q.sibling=null}return D.child}return null}function ss(v){v.flags|=4}var kl,Ql,Cu,ha;if(F)kl=function(v,D){for(var Q=D.child;Q!==null;){if(Q.tag===5||Q.tag===6)be(v,Q.stateNode);else if(Q.tag!==4&&Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===D)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===D)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}},Ql=function(){},Cu=function(v,D,Q,H,V){if(v=v.memoizedProps,v!==H){var ne=D.stateNode,Se=qa(ur.current);Q=ke(ne,Q,v,H,V,Se),(D.updateQueue=Q)&&ss(D)}},ha=function(v,D,Q,H){Q!==H&&ss(D)};else if(z){kl=function(v,D,Q,H){for(var V=D.child;V!==null;){if(V.tag===5){var ne=V.stateNode;Q&&H&&(ne=TA(ne,V.type,V.memoizedProps,V)),be(v,ne)}else if(V.tag===6)ne=V.stateNode,Q&&H&&(ne=oa(ne,V.memoizedProps,V)),be(v,ne);else if(V.tag!==4){if(V.tag===13&&V.flags&4&&(ne=V.memoizedState!==null)){var Se=V.child;if(Se!==null&&(Se.child!==null&&(Se.child.return=Se,kl(v,Se,!0,ne)),ne=Se.sibling,ne!==null)){ne.return=V,V=ne;continue}}if(V.child!==null){V.child.return=V,V=V.child;continue}}if(V===D)break;for(;V.sibling===null;){if(V.return===null||V.return===D)return;V=V.return}V.sibling.return=V.return,V=V.sibling}};var zA=function(v,D,Q,H){for(var V=D.child;V!==null;){if(V.tag===5){var ne=V.stateNode;Q&&H&&(ne=TA(ne,V.type,V.memoizedProps,V)),au(v,ne)}else if(V.tag===6)ne=V.stateNode,Q&&H&&(ne=oa(ne,V.memoizedProps,V)),au(v,ne);else if(V.tag!==4){if(V.tag===13&&V.flags&4&&(ne=V.memoizedState!==null)){var Se=V.child;if(Se!==null&&(Se.child!==null&&(Se.child.return=Se,zA(v,Se,!0,ne)),ne=Se.sibling,ne!==null)){ne.return=V,V=ne;continue}}if(V.child!==null){V.child.return=V,V=V.child;continue}}if(V===D)break;for(;V.sibling===null;){if(V.return===null||V.return===D)return;V=V.return}V.sibling.return=V.return,V=V.sibling}};Ql=function(v){var D=v.stateNode;if(v.firstEffect!==null){var Q=D.containerInfo,H=ou(Q);zA(H,v,!1,!1),D.pendingChildren=H,ss(v),lu(Q,H)}},Cu=function(v,D,Q,H,V){var ne=v.stateNode,Se=v.memoizedProps;if((v=D.firstEffect===null)&&Se===H)D.stateNode=ne;else{var _e=D.stateNode,pt=qa(ur.current),Wt=null;Se!==H&&(Wt=ke(_e,Q,Se,H,V,pt)),v&&Wt===null?D.stateNode=ne:(ne=ro(ne,Wt,Q,Se,H,D,v,_e),Ve(ne,Q,H,V,pt)&&ss(D),D.stateNode=ne,v?ss(D):kl(ne,D,!1,!1))}},ha=function(v,D,Q,H){Q!==H?(v=qa(yf.current),Q=qa(ur.current),D.stateNode=Ue(H,v,Q,D),ss(D)):D.stateNode=v.stateNode}}else Ql=function(){},Cu=function(){},ha=function(){};function ZA(v,D){if(!Ya)switch(v.tailMode){case\"hidden\":D=v.tail;for(var Q=null;D!==null;)D.alternate!==null&&(Q=D),D=D.sibling;Q===null?v.tail=null:Q.sibling=null;break;case\"collapsed\":Q=v.tail;for(var H=null;Q!==null;)Q.alternate!==null&&(H=Q),Q=Q.sibling;H===null?D||v.tail===null?v.tail=null:v.tail.sibling=null:H.sibling=null}}function HL(v,D,Q){var H=D.pendingProps;switch(D.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Kn(D.type)&&Au(),null;case 3:return du(),Tt(Li),Tt(ji),yu(),H=D.stateNode,H.pendingContext&&(H.context=H.pendingContext,H.pendingContext=null),(v===null||v.child===null)&&(qA(D)?ss(D):H.hydrate||(D.flags|=256)),Ql(D),null;case 5:wt(D);var V=qa(yf.current);if(Q=D.type,v!==null&&D.stateNode!=null)Cu(v,D,Q,H,V),v.ref!==D.ref&&(D.flags|=128);else{if(!H){if(D.stateNode===null)throw Error(c(166));return null}if(v=qa(ur.current),qA(D)){if(!Z)throw Error(c(175));v=Cr(D.stateNode,D.type,D.memoizedProps,V,v,D),D.updateQueue=v,v!==null&&ss(D)}else{var ne=Ne(Q,H,V,v,D);kl(ne,D,!1,!1),D.stateNode=ne,Ve(ne,Q,H,V,v)&&ss(D)}D.ref!==null&&(D.flags|=128)}return null;case 6:if(v&&D.stateNode!=null)ha(v,D,v.memoizedProps,H);else{if(typeof H!=\"string\"&&D.stateNode===null)throw Error(c(166));if(v=qa(yf.current),V=qa(ur.current),qA(D)){if(!Z)throw Error(c(176));pf(D.stateNode,D.memoizedProps,D)&&ss(D)}else D.stateNode=Ue(H,v,V,D)}return null;case 13:return Tt(di),H=D.memoizedState,D.flags&64?(D.lanes=Q,D):(H=H!==null,V=!1,v===null?D.memoizedProps.fallback!==void 0&&qA(D):V=v.memoizedState!==null,H&&!V&&D.mode&2&&(v===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||di.current&1?ws===0&&(ws=3):((ws===0||ws===3)&&(ws=4),so===null||!(Xg&134217727)&&!(Fh&134217727)||Nh(so,Ns))),z&&H&&(D.flags|=4),F&&(H||V)&&(D.flags|=4),null);case 4:return du(),Ql(D),v===null&&Ct(D.stateNode.containerInfo),null;case 10:return Og(D),null;case 17:return Kn(D.type)&&Au(),null;case 19:if(Tt(di),H=D.memoizedState,H===null)return null;if(V=(D.flags&64)!==0,ne=H.rendering,ne===null)if(V)ZA(H,!1);else{if(ws!==0||v!==null&&v.flags&64)for(v=D.child;v!==null;){if(ne=GA(v),ne!==null){for(D.flags|=64,ZA(H,!1),v=ne.updateQueue,v!==null&&(D.updateQueue=v,D.flags|=4),H.lastEffect===null&&(D.firstEffect=null),D.lastEffect=H.lastEffect,v=Q,H=D.child;H!==null;)V=H,Q=v,V.flags&=2,V.nextEffect=null,V.firstEffect=null,V.lastEffect=null,ne=V.alternate,ne===null?(V.childLanes=0,V.lanes=Q,V.child=null,V.memoizedProps=null,V.memoizedState=null,V.updateQueue=null,V.dependencies=null,V.stateNode=null):(V.childLanes=ne.childLanes,V.lanes=ne.lanes,V.child=ne.child,V.memoizedProps=ne.memoizedProps,V.memoizedState=ne.memoizedState,V.updateQueue=ne.updateQueue,V.type=ne.type,Q=ne.dependencies,V.dependencies=Q===null?null:{lanes:Q.lanes,firstContext:Q.firstContext}),H=H.sibling;return xn(di,di.current&1|2),D.child}v=v.sibling}H.tail!==null&&Pt()>m2&&(D.flags|=64,V=!0,ZA(H,!1),D.lanes=33554432)}else{if(!V)if(v=GA(ne),v!==null){if(D.flags|=64,V=!0,v=v.updateQueue,v!==null&&(D.updateQueue=v,D.flags|=4),ZA(H,!0),H.tail===null&&H.tailMode===\"hidden\"&&!ne.alternate&&!Ya)return D=D.lastEffect=H.lastEffect,D!==null&&(D.nextEffect=null),null}else 2*Pt()-H.renderingStartTime>m2&&Q!==1073741824&&(D.flags|=64,V=!0,ZA(H,!1),D.lanes=33554432);H.isBackwards?(ne.sibling=D.child,D.child=ne):(v=H.last,v!==null?v.sibling=ne:D.child=ne,H.last=ne)}return H.tail!==null?(v=H.tail,H.rendering=v,H.tail=v.sibling,H.lastEffect=D.lastEffect,H.renderingStartTime=Pt(),v.sibling=null,D=di.current,xn(di,V?D&1|2:D&1),v):null;case 23:case 24:return B2(),v!==null&&v.memoizedState!==null!=(D.memoizedState!==null)&&H.mode!==\"unstable-defer-without-hiding\"&&(D.flags|=4),null}throw Error(c(156,D.tag))}function jL(v){switch(v.tag){case 1:Kn(v.type)&&Au();var D=v.flags;return D&4096?(v.flags=D&-4097|64,v):null;case 3:if(du(),Tt(Li),Tt(ji),yu(),D=v.flags,D&64)throw Error(c(285));return v.flags=D&-4097|64,v;case 5:return wt(v),null;case 13:return Tt(di),D=v.flags,D&4096?(v.flags=D&-4097|64,v):null;case 19:return Tt(di),null;case 4:return du(),null;case 10:return Og(v),null;case 23:case 24:return B2(),null;default:return null}}function Yg(v,D){try{var Q=\"\",H=D;do Q+=$1(H),H=H.return;while(H);var V=Q}catch(ne){V=`\nError generating stack: `+ne.message+`\n`+ne.stack}return{value:v,source:D,stack:V}}function Vg(v,D){try{console.error(D.value)}catch(Q){setTimeout(function(){throw Q})}}var qL=typeof WeakMap==\"function\"?WeakMap:Map;function i2(v,D,Q){Q=Dl(-1,Q),Q.tag=3,Q.payload={element:null};var H=D.value;return Q.callback=function(){_y||(_y=!0,y2=H),Vg(v,D)},Q}function Jg(v,D,Q){Q=Dl(-1,Q),Q.tag=3;var H=v.type.getDerivedStateFromError;if(typeof H==\"function\"){var V=D.value;Q.payload=function(){return Vg(v,D),H(V)}}var ne=v.stateNode;return ne!==null&&typeof ne.componentDidCatch==\"function\"&&(Q.callback=function(){typeof H!=\"function\"&&(hc===null?hc=new Set([this]):hc.add(this),Vg(v,D));var Se=D.stack;this.componentDidCatch(D.value,{componentStack:Se!==null?Se:\"\"})}),Q}var WL=typeof WeakSet==\"function\"?WeakSet:Set;function s2(v){var D=v.ref;if(D!==null)if(typeof D==\"function\")try{D(null)}catch(Q){xf(v,Q)}else D.current=null}function xy(v,D){switch(D.tag){case 0:case 11:case 15:case 22:return;case 1:if(D.flags&256&&v!==null){var Q=v.memoizedProps,H=v.memoizedState;v=D.stateNode,D=v.getSnapshotBeforeUpdate(D.elementType===D.type?Q:So(D.type,Q),H),v.__reactInternalSnapshotBeforeUpdate=D}return;case 3:F&&D.flags&256&&Rs(D.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(c(163))}function Rh(v,D){if(D=D.updateQueue,D=D!==null?D.lastEffect:null,D!==null){var Q=D=D.next;do{if((Q.tag&v)===v){var H=Q.destroy;Q.destroy=void 0,H!==void 0&&H()}Q=Q.next}while(Q!==D)}}function ub(v,D,Q){switch(Q.tag){case 0:case 11:case 15:case 22:if(D=Q.updateQueue,D=D!==null?D.lastEffect:null,D!==null){v=D=D.next;do{if((v.tag&3)===3){var H=v.create;v.destroy=H()}v=v.next}while(v!==D)}if(D=Q.updateQueue,D=D!==null?D.lastEffect:null,D!==null){v=D=D.next;do{var V=v;H=V.next,V=V.tag,V&4&&V&1&&(vb(Q,v),eM(Q,v)),v=H}while(v!==D)}return;case 1:v=Q.stateNode,Q.flags&4&&(D===null?v.componentDidMount():(H=Q.elementType===Q.type?D.memoizedProps:So(Q.type,D.memoizedProps),v.componentDidUpdate(H,D.memoizedState,v.__reactInternalSnapshotBeforeUpdate))),D=Q.updateQueue,D!==null&&Cy(Q,D,v);return;case 3:if(D=Q.updateQueue,D!==null){if(v=null,Q.child!==null)switch(Q.child.tag){case 5:v=Te(Q.child.stateNode);break;case 1:v=Q.child.stateNode}Cy(Q,D,v)}return;case 5:v=Q.stateNode,D===null&&Q.flags&4&&$s(v,Q.type,Q.memoizedProps,Q);return;case 6:return;case 4:return;case 12:return;case 13:Z&&Q.memoizedState===null&&(Q=Q.alternate,Q!==null&&(Q=Q.memoizedState,Q!==null&&(Q=Q.dehydrated,Q!==null&&uu(Q))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(c(163))}function fb(v,D){if(F)for(var Q=v;;){if(Q.tag===5){var H=Q.stateNode;D?dh(H):to(Q.stateNode,Q.memoizedProps)}else if(Q.tag===6)H=Q.stateNode,D?mh(H):jn(H,Q.memoizedProps);else if((Q.tag!==23&&Q.tag!==24||Q.memoizedState===null||Q===v)&&Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===v)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===v)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}}function ky(v,D){if(Ua&&typeof Ua.onCommitFiberUnmount==\"function\")try{Ua.onCommitFiberUnmount($e,D)}catch{}switch(D.tag){case 0:case 11:case 14:case 15:case 22:if(v=D.updateQueue,v!==null&&(v=v.lastEffect,v!==null)){var Q=v=v.next;do{var H=Q,V=H.destroy;if(H=H.tag,V!==void 0)if(H&4)vb(D,Q);else{H=D;try{V()}catch(ne){xf(H,ne)}}Q=Q.next}while(Q!==v)}break;case 1:if(s2(D),v=D.stateNode,typeof v.componentWillUnmount==\"function\")try{v.props=D.memoizedProps,v.state=D.memoizedState,v.componentWillUnmount()}catch(ne){xf(D,ne)}break;case 5:s2(D);break;case 4:F?gb(v,D):z&&z&&(D=D.stateNode.containerInfo,v=ou(D),RA(D,v))}}function Ab(v,D){for(var Q=D;;)if(ky(v,Q),Q.child===null||F&&Q.tag===4){if(Q===D)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===D)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}else Q.child.return=Q,Q=Q.child}function Qy(v){v.alternate=null,v.child=null,v.dependencies=null,v.firstEffect=null,v.lastEffect=null,v.memoizedProps=null,v.memoizedState=null,v.pendingProps=null,v.return=null,v.updateQueue=null}function pb(v){return v.tag===5||v.tag===3||v.tag===4}function hb(v){if(F){e:{for(var D=v.return;D!==null;){if(pb(D))break e;D=D.return}throw Error(c(160))}var Q=D;switch(D=Q.stateNode,Q.tag){case 5:var H=!1;break;case 3:D=D.containerInfo,H=!0;break;case 4:D=D.containerInfo,H=!0;break;default:throw Error(c(161))}Q.flags&16&&(Af(D),Q.flags&=-17);e:t:for(Q=v;;){for(;Q.sibling===null;){if(Q.return===null||pb(Q.return)){Q=null;break e}Q=Q.return}for(Q.sibling.return=Q.return,Q=Q.sibling;Q.tag!==5&&Q.tag!==6&&Q.tag!==18;){if(Q.flags&2||Q.child===null||Q.tag===4)continue t;Q.child.return=Q,Q=Q.child}if(!(Q.flags&2)){Q=Q.stateNode;break e}}H?o2(v,Q,D):a2(v,Q,D)}}function o2(v,D,Q){var H=v.tag,V=H===5||H===6;if(V)v=V?v.stateNode:v.stateNode.instance,D?eo(Q,v,D):Io(Q,v);else if(H!==4&&(v=v.child,v!==null))for(o2(v,D,Q),v=v.sibling;v!==null;)o2(v,D,Q),v=v.sibling}function a2(v,D,Q){var H=v.tag,V=H===5||H===6;if(V)v=V?v.stateNode:v.stateNode.instance,D?Hi(Q,v,D):ai(Q,v);else if(H!==4&&(v=v.child,v!==null))for(a2(v,D,Q),v=v.sibling;v!==null;)a2(v,D,Q),v=v.sibling}function gb(v,D){for(var Q=D,H=!1,V,ne;;){if(!H){H=Q.return;e:for(;;){if(H===null)throw Error(c(160));switch(V=H.stateNode,H.tag){case 5:ne=!1;break e;case 3:V=V.containerInfo,ne=!0;break e;case 4:V=V.containerInfo,ne=!0;break e}H=H.return}H=!0}if(Q.tag===5||Q.tag===6)Ab(v,Q),ne?QA(V,Q.stateNode):wo(V,Q.stateNode);else if(Q.tag===4){if(Q.child!==null){V=Q.stateNode.containerInfo,ne=!0,Q.child.return=Q,Q=Q.child;continue}}else if(ky(v,Q),Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===D)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===D)return;Q=Q.return,Q.tag===4&&(H=!1)}Q.sibling.return=Q.return,Q=Q.sibling}}function l2(v,D){if(F){switch(D.tag){case 0:case 11:case 14:case 15:case 22:Rh(3,D);return;case 1:return;case 5:var Q=D.stateNode;if(Q!=null){var H=D.memoizedProps;v=v!==null?v.memoizedProps:H;var V=D.type,ne=D.updateQueue;D.updateQueue=null,ne!==null&&Co(Q,ne,V,v,H,D)}return;case 6:if(D.stateNode===null)throw Error(c(162));Q=D.memoizedProps,ts(D.stateNode,v!==null?v.memoizedProps:Q,Q);return;case 3:Z&&(D=D.stateNode,D.hydrate&&(D.hydrate=!1,OA(D.containerInfo)));return;case 12:return;case 13:db(D),Kg(D);return;case 19:Kg(D);return;case 17:return;case 23:case 24:fb(D,D.memoizedState!==null);return}throw Error(c(163))}switch(D.tag){case 0:case 11:case 14:case 15:case 22:Rh(3,D);return;case 12:return;case 13:db(D),Kg(D);return;case 19:Kg(D);return;case 3:Z&&(Q=D.stateNode,Q.hydrate&&(Q.hydrate=!1,OA(Q.containerInfo)));break;case 23:case 24:return}e:if(z){switch(D.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:D=D.stateNode,RA(D.containerInfo,D.pendingChildren);break e}throw Error(c(163))}}function db(v){v.memoizedState!==null&&(d2=Pt(),F&&fb(v.child,!0))}function Kg(v){var D=v.updateQueue;if(D!==null){v.updateQueue=null;var Q=v.stateNode;Q===null&&(Q=v.stateNode=new WL),D.forEach(function(H){var V=rM.bind(null,v,H);Q.has(H)||(Q.add(H),H.then(V,V))})}}function YL(v,D){return v!==null&&(v=v.memoizedState,v===null||v.dehydrated!==null)?(D=D.memoizedState,D!==null&&D.dehydrated===null):!1}var Ry=0,Ty=1,Fy=2,zg=3,Ny=4;if(typeof Symbol==\"function\"&&Symbol.for){var Zg=Symbol.for;Ry=Zg(\"selector.component\"),Ty=Zg(\"selector.has_pseudo_class\"),Fy=Zg(\"selector.role\"),zg=Zg(\"selector.test_id\"),Ny=Zg(\"selector.text\")}function Oy(v){var D=$(v);if(D!=null){if(typeof D.memoizedProps[\"data-testname\"]!=\"string\")throw Error(c(364));return D}if(v=ir(v),v===null)throw Error(c(362));return v.stateNode.current}function Sf(v,D){switch(D.$$typeof){case Ry:if(v.type===D.value)return!0;break;case Ty:e:{D=D.value,v=[v,0];for(var Q=0;Q<v.length;){var H=v[Q++],V=v[Q++],ne=D[V];if(H.tag!==5||!br(H)){for(;ne!=null&&Sf(H,ne);)V++,ne=D[V];if(V===D.length){D=!0;break e}else for(H=H.child;H!==null;)v.push(H,V),H=H.sibling}}D=!1}return D;case Fy:if(v.tag===5&&Ir(v.stateNode,D.value))return!0;break;case Ny:if((v.tag===5||v.tag===6)&&(v=gn(v),v!==null&&0<=v.indexOf(D.value)))return!0;break;case zg:if(v.tag===5&&(v=v.memoizedProps[\"data-testname\"],typeof v==\"string\"&&v.toLowerCase()===D.value.toLowerCase()))return!0;break;default:throw Error(c(365,D))}return!1}function Df(v){switch(v.$$typeof){case Ry:return\"<\"+(g(v.value)||\"Unknown\")+\">\";case Ty:return\":has(\"+(Df(v)||\"\")+\")\";case Fy:return'[role=\"'+v.value+'\"]';case Ny:return'\"'+v.value+'\"';case zg:return'[data-testname=\"'+v.value+'\"]';default:throw Error(c(365,v))}}function c2(v,D){var Q=[];v=[v,0];for(var H=0;H<v.length;){var V=v[H++],ne=v[H++],Se=D[ne];if(V.tag!==5||!br(V)){for(;Se!=null&&Sf(V,Se);)ne++,Se=D[ne];if(ne===D.length)Q.push(V);else for(V=V.child;V!==null;)v.push(V,ne),V=V.sibling}}return Q}function u2(v,D){if(!qt)throw Error(c(363));v=Oy(v),v=c2(v,D),D=[],v=Array.from(v);for(var Q=0;Q<v.length;){var H=v[Q++];if(H.tag===5)br(H)||D.push(H.stateNode);else for(H=H.child;H!==null;)v.push(H),H=H.sibling}return D}var Ly=null;function VL(v){if(Ly===null)try{var D=(\"require\"+Math.random()).slice(0,7);Ly=(jS&&jS[D]).call(jS,\"timers\").setImmediate}catch{Ly=function(H){var V=new MessageChannel;V.port1.onmessage=H,V.port2.postMessage(void 0)}}return Ly(v)}var JL=Math.ceil,My=f.ReactCurrentDispatcher,f2=f.ReactCurrentOwner,A2=f.IsSomeRendererActing,xr=0,so=null,zi=null,Ns=0,XA=0,p2=no(0),ws=0,Uy=null,Th=0,Xg=0,Fh=0,h2=0,g2=null,d2=0,m2=1/0;function Pf(){m2=Pt()+500}var sr=null,_y=!1,y2=null,hc=null,bf=!1,$g=null,ed=90,E2=[],I2=[],wu=null,td=0,C2=null,Hy=-1,Bu=0,jy=0,rd=null,nd=!1;function ko(){return xr&48?Pt():Hy!==-1?Hy:Hy=Pt()}function Bs(v){if(v=v.mode,!(v&2))return 1;if(!(v&4))return tr()===99?1:2;if(Bu===0&&(Bu=Th),my.transition!==0){jy!==0&&(jy=g2!==null?g2.pendingLanes:0),v=Bu;var D=4186112&~jy;return D&=-D,D===0&&(v=4186112&~v,D=v&-v,D===0&&(D=8192)),D}return v=tr(),xr&4&&v===98?v=Mt(12,Bu):(v=LA(v),v=Mt(v,Bu)),v}function Rl(v,D,Q){if(50<td)throw td=0,C2=null,Error(c(185));if(v=Gy(v,D),v===null)return null;Ha(v,D,Q),v===so&&(Fh|=D,ws===4&&Nh(v,Ns));var H=tr();D===1?xr&8&&!(xr&48)?w2(v):(ga(v,Q),xr===0&&(Pf(),Rn())):(!(xr&4)||H!==98&&H!==99||(wu===null?wu=new Set([v]):wu.add(v)),ga(v,Q)),g2=v}function Gy(v,D){v.lanes|=D;var Q=v.alternate;for(Q!==null&&(Q.lanes|=D),Q=v,v=v.return;v!==null;)v.childLanes|=D,Q=v.alternate,Q!==null&&(Q.childLanes|=D),Q=v,v=v.return;return Q.tag===3?Q.stateNode:null}function ga(v,D){for(var Q=v.callbackNode,H=v.suspendedLanes,V=v.pingedLanes,ne=v.expirationTimes,Se=v.pendingLanes;0<Se;){var _e=31-rs(Se),pt=1<<_e,Wt=ne[_e];if(Wt===-1){if(!(pt&H)||pt&V){Wt=D,ca(pt);var Sr=wn;ne[_e]=10<=Sr?Wt+250:6<=Sr?Wt+5e3:-1}}else Wt<=D&&(v.expiredLanes|=pt);Se&=~pt}if(H=ua(v,v===so?Ns:0),D=wn,H===0)Q!==null&&(Q!==lr&&Is(Q),v.callbackNode=null,v.callbackPriority=0);else{if(Q!==null){if(v.callbackPriority===D)return;Q!==lr&&Is(Q)}D===15?(Q=w2.bind(null,v),Ee===null?(Ee=[Q],Oe=Mi(Qn,Ga)):Ee.push(Q),Q=lr):D===14?Q=Gi(99,w2.bind(null,v)):(Q=MA(D),Q=Gi(Q,mb.bind(null,v))),v.callbackPriority=D,v.callbackNode=Q}}function mb(v){if(Hy=-1,jy=Bu=0,xr&48)throw Error(c(327));var D=v.callbackNode;if(vu()&&v.callbackNode!==D)return null;var Q=ua(v,v===so?Ns:0);if(Q===0)return null;var H=Q,V=xr;xr|=16;var ne=Cb();(so!==v||Ns!==H)&&(Pf(),Oh(v,H));do try{ZL();break}catch(_e){Ib(v,_e)}while(!0);if(Fg(),My.current=ne,xr=V,zi!==null?H=0:(so=null,Ns=0,H=ws),Th&Fh)Oh(v,0);else if(H!==0){if(H===2&&(xr|=64,v.hydrate&&(v.hydrate=!1,Rs(v.containerInfo)),Q=Bl(v),Q!==0&&(H=id(v,Q))),H===1)throw D=Uy,Oh(v,0),Nh(v,Q),ga(v,Pt()),D;switch(v.finishedWork=v.current.alternate,v.finishedLanes=Q,H){case 0:case 1:throw Error(c(345));case 2:$A(v);break;case 3:if(Nh(v,Q),(Q&62914560)===Q&&(H=d2+500-Pt(),10<H)){if(ua(v,0)!==0)break;if(V=v.suspendedLanes,(V&Q)!==Q){ko(),v.pingedLanes|=v.suspendedLanes&V;break}v.timeoutHandle=x($A.bind(null,v),H);break}$A(v);break;case 4:if(Nh(v,Q),(Q&4186112)===Q)break;for(H=v.eventTimes,V=-1;0<Q;){var Se=31-rs(Q);ne=1<<Se,Se=H[Se],Se>V&&(V=Se),Q&=~ne}if(Q=V,Q=Pt()-Q,Q=(120>Q?120:480>Q?480:1080>Q?1080:1920>Q?1920:3e3>Q?3e3:4320>Q?4320:1960*JL(Q/1960))-Q,10<Q){v.timeoutHandle=x($A.bind(null,v),Q);break}$A(v);break;case 5:$A(v);break;default:throw Error(c(329))}}return ga(v,Pt()),v.callbackNode===D?mb.bind(null,v):null}function Nh(v,D){for(D&=~h2,D&=~Fh,v.suspendedLanes|=D,v.pingedLanes&=~D,v=v.expirationTimes;0<D;){var Q=31-rs(D),H=1<<Q;v[Q]=-1,D&=~H}}function w2(v){if(xr&48)throw Error(c(327));if(vu(),v===so&&v.expiredLanes&Ns){var D=Ns,Q=id(v,D);Th&Fh&&(D=ua(v,D),Q=id(v,D))}else D=ua(v,0),Q=id(v,D);if(v.tag!==0&&Q===2&&(xr|=64,v.hydrate&&(v.hydrate=!1,Rs(v.containerInfo)),D=Bl(v),D!==0&&(Q=id(v,D))),Q===1)throw Q=Uy,Oh(v,0),Nh(v,D),ga(v,Pt()),Q;return v.finishedWork=v.current.alternate,v.finishedLanes=D,$A(v),ga(v,Pt()),null}function KL(){if(wu!==null){var v=wu;wu=null,v.forEach(function(D){D.expiredLanes|=24&D.pendingLanes,ga(D,Pt())})}Rn()}function yb(v,D){var Q=xr;xr|=1;try{return v(D)}finally{xr=Q,xr===0&&(Pf(),Rn())}}function Eb(v,D){var Q=xr;if(Q&48)return v(D);xr|=1;try{if(v)return li(99,v.bind(null,D))}finally{xr=Q,Rn()}}function qy(v,D){xn(p2,XA),XA|=D,Th|=D}function B2(){XA=p2.current,Tt(p2)}function Oh(v,D){v.finishedWork=null,v.finishedLanes=0;var Q=v.timeoutHandle;if(Q!==P&&(v.timeoutHandle=P,w(Q)),zi!==null)for(Q=zi.return;Q!==null;){var H=Q;switch(H.tag){case 1:H=H.type.childContextTypes,H!=null&&Au();break;case 3:du(),Tt(Li),Tt(ji),yu();break;case 5:wt(H);break;case 4:du();break;case 13:Tt(di);break;case 19:Tt(di);break;case 10:Og(H);break;case 23:case 24:B2()}Q=Q.return}so=v,zi=Su(v.current,null),Ns=XA=Th=D,ws=0,Uy=null,h2=Fh=Xg=0}function Ib(v,D){do{var Q=zi;try{if(Fg(),If.current=kt,WA){for(var H=Gn.memoizedState;H!==null;){var V=H.queue;V!==null&&(V.pending=null),H=H.next}WA=!1}if(Eu=0,bi=ns=Gn=null,Cf=!1,f2.current=null,Q===null||Q.return===null){ws=1,Uy=D,zi=null;break}e:{var ne=v,Se=Q.return,_e=Q,pt=D;if(D=Ns,_e.flags|=2048,_e.firstEffect=_e.lastEffect=null,pt!==null&&typeof pt==\"object\"&&typeof pt.then==\"function\"){var Wt=pt;if(!(_e.mode&2)){var Sr=_e.alternate;Sr?(_e.updateQueue=Sr.updateQueue,_e.memoizedState=Sr.memoizedState,_e.lanes=Sr.lanes):(_e.updateQueue=null,_e.memoizedState=null)}var Lr=(di.current&1)!==0,Xt=Se;do{var zn;if(zn=Xt.tag===13){var yi=Xt.memoizedState;if(yi!==null)zn=yi.dehydrated!==null;else{var za=Xt.memoizedProps;zn=za.fallback===void 0?!1:za.unstable_avoidThisFallback!==!0?!0:!Lr}}if(zn){var et=Xt.updateQueue;if(et===null){var qe=new Set;qe.add(Wt),Xt.updateQueue=qe}else et.add(Wt);if(!(Xt.mode&2)){if(Xt.flags|=64,_e.flags|=16384,_e.flags&=-2981,_e.tag===1)if(_e.alternate===null)_e.tag=17;else{var gt=Dl(-1,1);gt.tag=2,Pl(_e,gt)}_e.lanes|=1;break e}pt=void 0,_e=D;var Zt=ne.pingCache;if(Zt===null?(Zt=ne.pingCache=new qL,pt=new Set,Zt.set(Wt,pt)):(pt=Zt.get(Wt),pt===void 0&&(pt=new Set,Zt.set(Wt,pt))),!pt.has(_e)){pt.add(_e);var Dr=Db.bind(null,ne,Wt,_e);Wt.then(Dr,Dr)}Xt.flags|=4096,Xt.lanes=D;break e}Xt=Xt.return}while(Xt!==null);pt=Error((g(_e.type)||\"A React component\")+` suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`)}ws!==5&&(ws=2),pt=Yg(pt,_e),Xt=Se;do{switch(Xt.tag){case 3:ne=pt,Xt.flags|=4096,D&=-D,Xt.lanes|=D;var Xn=i2(Xt,ne,D);Iy(Xt,Xn);break e;case 1:ne=pt;var kr=Xt.type,Tn=Xt.stateNode;if(!(Xt.flags&64)&&(typeof kr.getDerivedStateFromError==\"function\"||Tn!==null&&typeof Tn.componentDidCatch==\"function\"&&(hc===null||!hc.has(Tn)))){Xt.flags|=4096,D&=-D,Xt.lanes|=D;var _n=Jg(Xt,ne,D);Iy(Xt,_n);break e}}Xt=Xt.return}while(Xt!==null)}Bb(Q)}catch(zr){D=zr,zi===Q&&Q!==null&&(zi=Q=Q.return);continue}break}while(!0)}function Cb(){var v=My.current;return My.current=kt,v===null?kt:v}function id(v,D){var Q=xr;xr|=16;var H=Cb();so===v&&Ns===D||Oh(v,D);do try{zL();break}catch(V){Ib(v,V)}while(!0);if(Fg(),xr=Q,My.current=H,zi!==null)throw Error(c(261));return so=null,Ns=0,ws}function zL(){for(;zi!==null;)wb(zi)}function ZL(){for(;zi!==null&&!vl();)wb(zi)}function wb(v){var D=Pb(v.alternate,v,XA);v.memoizedProps=v.pendingProps,D===null?Bb(v):zi=D,f2.current=null}function Bb(v){var D=v;do{var Q=D.alternate;if(v=D.return,D.flags&2048){if(Q=jL(D),Q!==null){Q.flags&=2047,zi=Q;return}v!==null&&(v.firstEffect=v.lastEffect=null,v.flags|=2048)}else{if(Q=HL(Q,D,XA),Q!==null){zi=Q;return}if(Q=D,Q.tag!==24&&Q.tag!==23||Q.memoizedState===null||XA&1073741824||!(Q.mode&4)){for(var H=0,V=Q.child;V!==null;)H|=V.lanes|V.childLanes,V=V.sibling;Q.childLanes=H}v!==null&&!(v.flags&2048)&&(v.firstEffect===null&&(v.firstEffect=D.firstEffect),D.lastEffect!==null&&(v.lastEffect!==null&&(v.lastEffect.nextEffect=D.firstEffect),v.lastEffect=D.lastEffect),1<D.flags&&(v.lastEffect!==null?v.lastEffect.nextEffect=D:v.firstEffect=D,v.lastEffect=D))}if(D=D.sibling,D!==null){zi=D;return}zi=D=v}while(D!==null);ws===0&&(ws=5)}function $A(v){var D=tr();return li(99,XL.bind(null,v,D)),null}function XL(v,D){do vu();while($g!==null);if(xr&48)throw Error(c(327));var Q=v.finishedWork;if(Q===null)return null;if(v.finishedWork=null,v.finishedLanes=0,Q===v.current)throw Error(c(177));v.callbackNode=null;var H=Q.lanes|Q.childLanes,V=H,ne=v.pendingLanes&~V;v.pendingLanes=V,v.suspendedLanes=0,v.pingedLanes=0,v.expiredLanes&=V,v.mutableReadLanes&=V,v.entangledLanes&=V,V=v.entanglements;for(var Se=v.eventTimes,_e=v.expirationTimes;0<ne;){var pt=31-rs(ne),Wt=1<<pt;V[pt]=0,Se[pt]=-1,_e[pt]=-1,ne&=~Wt}if(wu!==null&&!(H&24)&&wu.has(v)&&wu.delete(v),v===so&&(zi=so=null,Ns=0),1<Q.flags?Q.lastEffect!==null?(Q.lastEffect.nextEffect=Q,H=Q.firstEffect):H=Q:H=Q.firstEffect,H!==null){V=xr,xr|=32,f2.current=null,rd=rt(v.containerInfo),nd=!1,sr=H;do try{$L()}catch(qe){if(sr===null)throw Error(c(330));xf(sr,qe),sr=sr.nextEffect}while(sr!==null);rd=null,sr=H;do try{for(Se=v;sr!==null;){var Sr=sr.flags;if(Sr&16&&F&&Af(sr.stateNode),Sr&128){var Lr=sr.alternate;if(Lr!==null){var Xt=Lr.ref;Xt!==null&&(typeof Xt==\"function\"?Xt(null):Xt.current=null)}}switch(Sr&1038){case 2:hb(sr),sr.flags&=-3;break;case 6:hb(sr),sr.flags&=-3,l2(sr.alternate,sr);break;case 1024:sr.flags&=-1025;break;case 1028:sr.flags&=-1025,l2(sr.alternate,sr);break;case 4:l2(sr.alternate,sr);break;case 8:_e=Se,ne=sr,F?gb(_e,ne):Ab(_e,ne);var zn=ne.alternate;Qy(ne),zn!==null&&Qy(zn)}sr=sr.nextEffect}}catch(qe){if(sr===null)throw Error(c(330));xf(sr,qe),sr=sr.nextEffect}while(sr!==null);nd&&lt(),Fe(v.containerInfo),v.current=Q,sr=H;do try{for(Sr=v;sr!==null;){var yi=sr.flags;if(yi&36&&ub(Sr,sr.alternate,sr),yi&128){Lr=void 0;var za=sr.ref;if(za!==null){var et=sr.stateNode;switch(sr.tag){case 5:Lr=Te(et);break;default:Lr=et}typeof za==\"function\"?za(Lr):za.current=Lr}}sr=sr.nextEffect}}catch(qe){if(sr===null)throw Error(c(330));xf(sr,qe),sr=sr.nextEffect}while(sr!==null);sr=null,te(),xr=V}else v.current=Q;if(bf)bf=!1,$g=v,ed=D;else for(sr=H;sr!==null;)D=sr.nextEffect,sr.nextEffect=null,sr.flags&8&&(yi=sr,yi.sibling=null,yi.stateNode=null),sr=D;if(H=v.pendingLanes,H===0&&(hc=null),H===1?v===C2?td++:(td=0,C2=v):td=0,Q=Q.stateNode,Ua&&typeof Ua.onCommitFiberRoot==\"function\")try{Ua.onCommitFiberRoot($e,Q,void 0,(Q.current.flags&64)===64)}catch{}if(ga(v,Pt()),_y)throw _y=!1,v=y2,y2=null,v;return xr&8||Rn(),null}function $L(){for(;sr!==null;){var v=sr.alternate;nd||rd===null||(sr.flags&8?De(sr,rd)&&(nd=!0,Re()):sr.tag===13&&YL(v,sr)&&De(sr,rd)&&(nd=!0,Re()));var D=sr.flags;D&256&&xy(v,sr),!(D&512)||bf||(bf=!0,Gi(97,function(){return vu(),null})),sr=sr.nextEffect}}function vu(){if(ed!==90){var v=97<ed?97:ed;return ed=90,li(v,tM)}return!1}function eM(v,D){E2.push(D,v),bf||(bf=!0,Gi(97,function(){return vu(),null}))}function vb(v,D){I2.push(D,v),bf||(bf=!0,Gi(97,function(){return vu(),null}))}function tM(){if($g===null)return!1;var v=$g;if($g=null,xr&48)throw Error(c(331));var D=xr;xr|=32;var Q=I2;I2=[];for(var H=0;H<Q.length;H+=2){var V=Q[H],ne=Q[H+1],Se=V.destroy;if(V.destroy=void 0,typeof Se==\"function\")try{Se()}catch(pt){if(ne===null)throw Error(c(330));xf(ne,pt)}}for(Q=E2,E2=[],H=0;H<Q.length;H+=2){V=Q[H],ne=Q[H+1];try{var _e=V.create;V.destroy=_e()}catch(pt){if(ne===null)throw Error(c(330));xf(ne,pt)}}for(_e=v.current.firstEffect;_e!==null;)v=_e.nextEffect,_e.nextEffect=null,_e.flags&8&&(_e.sibling=null,_e.stateNode=null),_e=v;return xr=D,Rn(),!0}function Sb(v,D,Q){D=Yg(Q,D),D=i2(v,D,1),Pl(v,D),D=ko(),v=Gy(v,1),v!==null&&(Ha(v,1,D),ga(v,D))}function xf(v,D){if(v.tag===3)Sb(v,v,D);else for(var Q=v.return;Q!==null;){if(Q.tag===3){Sb(Q,v,D);break}else if(Q.tag===1){var H=Q.stateNode;if(typeof Q.type.getDerivedStateFromError==\"function\"||typeof H.componentDidCatch==\"function\"&&(hc===null||!hc.has(H))){v=Yg(D,v);var V=Jg(Q,v,1);if(Pl(Q,V),V=ko(),Q=Gy(Q,1),Q!==null)Ha(Q,1,V),ga(Q,V);else if(typeof H.componentDidCatch==\"function\"&&(hc===null||!hc.has(H)))try{H.componentDidCatch(D,v)}catch{}break}}Q=Q.return}}function Db(v,D,Q){var H=v.pingCache;H!==null&&H.delete(D),D=ko(),v.pingedLanes|=v.suspendedLanes&Q,so===v&&(Ns&Q)===Q&&(ws===4||ws===3&&(Ns&62914560)===Ns&&500>Pt()-d2?Oh(v,0):h2|=Q),ga(v,D)}function rM(v,D){var Q=v.stateNode;Q!==null&&Q.delete(D),D=0,D===0&&(D=v.mode,D&2?D&4?(Bu===0&&(Bu=Th),D=kn(62914560&~Bu),D===0&&(D=4194304)):D=tr()===99?1:2:D=1),Q=ko(),v=Gy(v,D),v!==null&&(Ha(v,D,Q),ga(v,Q))}var Pb;Pb=function(v,D,Q){var H=D.lanes;if(v!==null)if(v.memoizedProps!==D.pendingProps||Li.current)Je=!0;else if(Q&H)Je=!!(v.flags&16384);else{switch(Je=!1,D.tag){case 3:Py(D),jg();break;case 5:Ef(D);break;case 1:Kn(D.type)&&La(D);break;case 4:Ug(D,D.stateNode.containerInfo);break;case 10:Ng(D,D.memoizedProps.value);break;case 13:if(D.memoizedState!==null)return Q&D.child.childLanes?r2(v,D,Q):(xn(di,di.current&1),D=qn(v,D,Q),D!==null?D.sibling:null);xn(di,di.current&1);break;case 19:if(H=(Q&D.childLanes)!==0,v.flags&64){if(H)return lb(v,D,Q);D.flags|=64}var V=D.memoizedState;if(V!==null&&(V.rendering=null,V.tail=null,V.lastEffect=null),xn(di,di.current),H)break;return null;case 23:case 24:return D.lanes=0,mi(v,D,Q)}return qn(v,D,Q)}else Je=!1;switch(D.lanes=0,D.tag){case 2:if(H=D.type,v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),v=D.pendingProps,V=dn(D,ji.current),df(D,Q),V=qg(null,D,H,v,V,Q),D.flags|=1,typeof V==\"object\"&&V!==null&&typeof V.render==\"function\"&&V.$$typeof===void 0){if(D.tag=1,D.memoizedState=null,D.updateQueue=null,Kn(H)){var ne=!0;La(D)}else ne=!1;D.memoizedState=V.state!==null&&V.state!==void 0?V.state:null,Bh(D);var Se=H.getDerivedStateFromProps;typeof Se==\"function\"&&_A(D,H,Se,v),V.updater=HA,D.stateNode=V,V._reactInternals=D,Po(D,H,v,Q),D=t2(null,D,H,!0,ne,Q)}else D.tag=0,At(null,D,V,Q),D=D.child;return D;case 16:V=D.elementType;e:{switch(v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),v=D.pendingProps,ne=V._init,V=ne(V._payload),D.type=V,ne=D.tag=iM(V),v=So(V,v),ne){case 0:D=JA(null,D,V,v,Q);break e;case 1:D=ab(null,D,V,v,Q);break e;case 11:D=dr(null,D,V,v,Q);break e;case 14:D=vr(null,D,V,So(V.type,v),H,Q);break e}throw Error(c(306,V,\"\"))}return D;case 0:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:So(H,V),JA(v,D,H,V,Q);case 1:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:So(H,V),ab(v,D,H,V,Q);case 3:if(Py(D),H=D.updateQueue,v===null||H===null)throw Error(c(282));if(H=D.pendingProps,V=D.memoizedState,V=V!==null?V.element:null,Lg(v,D),UA(D,H,null,Q),H=D.memoizedState.element,H===V)jg(),D=qn(v,D,Q);else{if(V=D.stateNode,(ne=V.hydrate)&&(Z?(Aa=cu(D.stateNode.containerInfo),Wa=D,ne=Ya=!0):ne=!1),ne){if(Z&&(v=V.mutableSourceEagerHydrationData,v!=null))for(V=0;V<v.length;V+=2)ne=v[V],Se=v[V+1],y?ne._workInProgressVersionPrimary=Se:ne._workInProgressVersionSecondary=Se,mu.push(ne);for(Q=e2(D,null,H,Q),D.child=Q;Q;)Q.flags=Q.flags&-3|1024,Q=Q.sibling}else At(v,D,H,Q),jg();D=D.child}return D;case 5:return Ef(D),v===null&&Hg(D),H=D.type,V=D.pendingProps,ne=v!==null?v.memoizedProps:null,Se=V.children,it(H,V)?Se=null:ne!==null&&it(H,ne)&&(D.flags|=16),Cs(v,D),At(v,D,Se,Q),D.child;case 6:return v===null&&Hg(D),null;case 13:return r2(v,D,Q);case 4:return Ug(D,D.stateNode.containerInfo),H=D.pendingProps,v===null?D.child=Mg(D,null,H,Q):At(v,D,H,Q),D.child;case 11:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:So(H,V),dr(v,D,H,V,Q);case 7:return At(v,D,D.pendingProps,Q),D.child;case 8:return At(v,D,D.pendingProps.children,Q),D.child;case 12:return At(v,D,D.pendingProps.children,Q),D.child;case 10:e:{if(H=D.type._context,V=D.pendingProps,Se=D.memoizedProps,ne=V.value,Ng(D,ne),Se!==null){var _e=Se.value;if(ne=vo(_e,ne)?0:(typeof H._calculateChangedBits==\"function\"?H._calculateChangedBits(_e,ne):1073741823)|0,ne===0){if(Se.children===V.children&&!Li.current){D=qn(v,D,Q);break e}}else for(_e=D.child,_e!==null&&(_e.return=D);_e!==null;){var pt=_e.dependencies;if(pt!==null){Se=_e.child;for(var Wt=pt.firstContext;Wt!==null;){if(Wt.context===H&&Wt.observedBits&ne){_e.tag===1&&(Wt=Dl(-1,Q&-Q),Wt.tag=2,Pl(_e,Wt)),_e.lanes|=Q,Wt=_e.alternate,Wt!==null&&(Wt.lanes|=Q),Ey(_e.return,Q),pt.lanes|=Q;break}Wt=Wt.next}}else Se=_e.tag===10&&_e.type===D.type?null:_e.child;if(Se!==null)Se.return=_e;else for(Se=_e;Se!==null;){if(Se===D){Se=null;break}if(_e=Se.sibling,_e!==null){_e.return=Se.return,Se=_e;break}Se=Se.return}_e=Se}}At(v,D,V.children,Q),D=D.child}return D;case 9:return V=D.type,ne=D.pendingProps,H=ne.children,df(D,Q),V=Do(V,ne.unstable_observedBits),H=H(V),D.flags|=1,At(v,D,H,Q),D.child;case 14:return V=D.type,ne=So(V,D.pendingProps),ne=So(V.type,ne),vr(v,D,V,ne,H,Q);case 15:return Un(v,D,D.type,D.pendingProps,H,Q);case 17:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:So(H,V),v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),D.tag=1,Kn(H)?(v=!0,La(D)):v=!1,df(D,Q),xt(D,H,V),Po(D,H,V,Q),t2(null,D,H,!0,v,Q);case 19:return lb(v,D,Q);case 23:return mi(v,D,Q);case 24:return mi(v,D,Q)}throw Error(c(156,D.tag))};var Wy={current:!1},Os=n.unstable_flushAllWithoutAsserting,bb=typeof Os==\"function\";function v2(){if(Os!==void 0)return Os();for(var v=!1;vu();)v=!0;return v}function da(v){try{v2(),VL(function(){v2()?da(v):v()})}catch(D){v(D)}}var Ja=0,Yy=!1;function nM(v,D,Q,H){this.tag=v,this.key=Q,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=H,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Ka(v,D,Q,H){return new nM(v,D,Q,H)}function S2(v){return v=v.prototype,!(!v||!v.isReactComponent)}function iM(v){if(typeof v==\"function\")return S2(v)?1:0;if(v!=null){if(v=v.$$typeof,v===T)return 11;if(v===W)return 14}return 2}function Su(v,D){var Q=v.alternate;return Q===null?(Q=Ka(v.tag,D,v.key,v.mode),Q.elementType=v.elementType,Q.type=v.type,Q.stateNode=v.stateNode,Q.alternate=v,v.alternate=Q):(Q.pendingProps=D,Q.type=v.type,Q.flags=0,Q.nextEffect=null,Q.firstEffect=null,Q.lastEffect=null),Q.childLanes=v.childLanes,Q.lanes=v.lanes,Q.child=v.child,Q.memoizedProps=v.memoizedProps,Q.memoizedState=v.memoizedState,Q.updateQueue=v.updateQueue,D=v.dependencies,Q.dependencies=D===null?null:{lanes:D.lanes,firstContext:D.firstContext},Q.sibling=v.sibling,Q.index=v.index,Q.ref=v.ref,Q}function sd(v,D,Q,H,V,ne){var Se=2;if(H=v,typeof v==\"function\")S2(v)&&(Se=1);else if(typeof v==\"string\")Se=5;else e:switch(v){case E:return kf(Q.children,V,ne,D);case ue:Se=8,V|=16;break;case C:Se=8,V|=1;break;case S:return v=Ka(12,Q,D,V|8),v.elementType=S,v.type=S,v.lanes=ne,v;case N:return v=Ka(13,Q,D,V),v.type=N,v.elementType=N,v.lanes=ne,v;case U:return v=Ka(19,Q,D,V),v.elementType=U,v.lanes=ne,v;case le:return D2(Q,V,ne,D);case me:return v=Ka(24,Q,D,V),v.elementType=me,v.lanes=ne,v;default:if(typeof v==\"object\"&&v!==null)switch(v.$$typeof){case b:Se=10;break e;case I:Se=9;break e;case T:Se=11;break e;case W:Se=14;break e;case ee:Se=16,H=null;break e;case ie:Se=22;break e}throw Error(c(130,v==null?v:typeof v,\"\"))}return D=Ka(Se,Q,D,V),D.elementType=v,D.type=H,D.lanes=ne,D}function kf(v,D,Q,H){return v=Ka(7,v,H,D),v.lanes=Q,v}function D2(v,D,Q,H){return v=Ka(23,v,H,D),v.elementType=le,v.lanes=Q,v}function P2(v,D,Q){return v=Ka(6,v,null,D),v.lanes=Q,v}function Qo(v,D,Q){return D=Ka(4,v.children!==null?v.children:[],v.key,D),D.lanes=Q,D.stateNode={containerInfo:v.containerInfo,pendingChildren:null,implementation:v.implementation},D}function sM(v,D,Q){this.tag=D,this.containerInfo=v,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=P,this.pendingContext=this.context=null,this.hydrate=Q,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=fa(0),this.expirationTimes=fa(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=fa(0),Z&&(this.mutableSourceEagerHydrationData=null)}function xb(v){var D=v._reactInternals;if(D===void 0)throw typeof v.render==\"function\"?Error(c(188)):Error(c(268,Object.keys(v)));return v=se(D),v===null?null:v.stateNode}function kb(v,D){if(v=v.memoizedState,v!==null&&v.dehydrated!==null){var Q=v.retryLane;v.retryLane=Q!==0&&Q<D?Q:D}}function Vy(v,D){kb(v,D),(v=v.alternate)&&kb(v,D)}function oM(v){return v=se(v),v===null?null:v.stateNode}function aM(){return null}return r.IsThisRendererActing=Wy,r.act=function(v){function D(){Ja--,A2.current=Q,Wy.current=H}Yy===!1&&(Yy=!0,console.error(\"act(...) is not supported in production builds of React, and might not behave as expected.\")),Ja++;var Q=A2.current,H=Wy.current;A2.current=!0,Wy.current=!0;try{var V=yb(v)}catch(ne){throw D(),ne}if(V!==null&&typeof V==\"object\"&&typeof V.then==\"function\")return{then:function(ne,Se){V.then(function(){1<Ja||bb===!0&&Q===!0?(D(),ne()):da(function(_e){D(),_e?Se(_e):ne()})},function(_e){D(),Se(_e)})}};try{Ja!==1||bb!==!1&&Q!==!1||v2(),D()}catch(ne){throw D(),ne}return{then:function(ne){ne()}}},r.attemptContinuousHydration=function(v){if(v.tag===13){var D=ko();Rl(v,67108864,D),Vy(v,67108864)}},r.attemptHydrationAtCurrentPriority=function(v){if(v.tag===13){var D=ko(),Q=Bs(v);Rl(v,Q,D),Vy(v,Q)}},r.attemptSynchronousHydration=function(v){switch(v.tag){case 3:var D=v.stateNode;if(D.hydrate){var Q=ca(D.pendingLanes);D.expiredLanes|=Q&D.pendingLanes,ga(D,Pt()),!(xr&48)&&(Pf(),Rn())}break;case 13:var H=ko();Eb(function(){return Rl(v,1,H)}),Vy(v,4)}},r.attemptUserBlockingHydration=function(v){if(v.tag===13){var D=ko();Rl(v,4,D),Vy(v,4)}},r.batchedEventUpdates=function(v,D){var Q=xr;xr|=2;try{return v(D)}finally{xr=Q,xr===0&&(Pf(),Rn())}},r.batchedUpdates=yb,r.createComponentSelector=function(v){return{$$typeof:Ry,value:v}},r.createContainer=function(v,D,Q){return v=new sM(v,D,Q),D=Ka(3,null,null,D===2?7:D===1?3:0),v.current=D,D.stateNode=v,Bh(D),v},r.createHasPsuedoClassSelector=function(v){return{$$typeof:Ty,value:v}},r.createPortal=function(v,D,Q){var H=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:h,key:H==null?null:\"\"+H,children:v,containerInfo:D,implementation:Q}},r.createRoleSelector=function(v){return{$$typeof:Fy,value:v}},r.createTestNameSelector=function(v){return{$$typeof:zg,value:v}},r.createTextSelector=function(v){return{$$typeof:Ny,value:v}},r.deferredUpdates=function(v){return li(97,v)},r.discreteUpdates=function(v,D,Q,H,V){var ne=xr;xr|=4;try{return li(98,v.bind(null,D,Q,H,V))}finally{xr=ne,xr===0&&(Pf(),Rn())}},r.findAllNodes=u2,r.findBoundingRects=function(v,D){if(!qt)throw Error(c(363));D=u2(v,D),v=[];for(var Q=0;Q<D.length;Q++)v.push(bt(D[Q]));for(D=v.length-1;0<D;D--){Q=v[D];for(var H=Q.x,V=H+Q.width,ne=Q.y,Se=ne+Q.height,_e=D-1;0<=_e;_e--)if(D!==_e){var pt=v[_e],Wt=pt.x,Sr=Wt+pt.width,Lr=pt.y,Xt=Lr+pt.height;if(H>=Wt&&ne>=Lr&&V<=Sr&&Se<=Xt){v.splice(D,1);break}else if(H!==Wt||Q.width!==pt.width||Xt<ne||Lr>Se){if(!(ne!==Lr||Q.height!==pt.height||Sr<H||Wt>V)){Wt>H&&(pt.width+=Wt-H,pt.x=H),Sr<V&&(pt.width=V-Wt),v.splice(D,1);break}}else{Lr>ne&&(pt.height+=Lr-ne,pt.y=ne),Xt<Se&&(pt.height=Se-Lr),v.splice(D,1);break}}}return v},r.findHostInstance=xb,r.findHostInstanceWithNoPortals=function(v){return v=X(v),v===null?null:v.tag===20?v.stateNode.instance:v.stateNode},r.findHostInstanceWithWarning=function(v){return xb(v)},r.flushControlled=function(v){var D=xr;xr|=1;try{li(99,v)}finally{xr=D,xr===0&&(Pf(),Rn())}},r.flushDiscreteUpdates=function(){!(xr&49)&&(KL(),vu())},r.flushPassiveEffects=vu,r.flushSync=Eb,r.focusWithin=function(v,D){if(!qt)throw Error(c(363));for(v=Oy(v),D=c2(v,D),D=Array.from(D),v=0;v<D.length;){var Q=D[v++];if(!br(Q)){if(Q.tag===5&&Or(Q.stateNode))return!0;for(Q=Q.child;Q!==null;)D.push(Q),Q=Q.sibling}}return!1},r.getCurrentUpdateLanePriority=function(){return lc},r.getFindAllNodesFailureDescription=function(v,D){if(!qt)throw Error(c(363));var Q=0,H=[];v=[Oy(v),0];for(var V=0;V<v.length;){var ne=v[V++],Se=v[V++],_e=D[Se];if((ne.tag!==5||!br(ne))&&(Sf(ne,_e)&&(H.push(Df(_e)),Se++,Se>Q&&(Q=Se)),Se<D.length))for(ne=ne.child;ne!==null;)v.push(ne,Se),ne=ne.sibling}if(Q<D.length){for(v=[];Q<D.length;Q++)v.push(Df(D[Q]));return`findAllNodes was able to match part of the selector:\n  `+(H.join(\" > \")+`\n\nNo matching component was found for:\n  `)+v.join(\" > \")}return null},r.getPublicRootInstance=function(v){if(v=v.current,!v.child)return null;switch(v.child.tag){case 5:return Te(v.child.stateNode);default:return v.child.stateNode}},r.injectIntoDevTools=function(v){if(v={bundleType:v.bundleType,version:v.version,rendererPackageName:v.rendererPackageName,rendererConfig:v.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:f.ReactCurrentDispatcher,findHostInstanceByFiber:oM,findFiberByHostInstance:v.findFiberByHostInstance||aM,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\")v=!1;else{var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!D.isDisabled&&D.supportsFiber)try{$e=D.inject(v),Ua=D}catch{}v=!0}return v},r.observeVisibleRects=function(v,D,Q,H){if(!qt)throw Error(c(363));v=u2(v,D);var V=nn(v,Q,H).disconnect;return{disconnect:function(){V()}}},r.registerMutableSourceForHydration=function(v,D){var Q=D._getVersion;Q=Q(D._source),v.mutableSourceEagerHydrationData==null?v.mutableSourceEagerHydrationData=[D,Q]:v.mutableSourceEagerHydrationData.push(D,Q)},r.runWithPriority=function(v,D){var Q=lc;try{return lc=v,D()}finally{lc=Q}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(v,D){var Q=xr;xr&=-2,xr|=8;try{return v(D)}finally{xr=Q,xr===0&&(Pf(),Rn())}},r.updateContainer=function(v,D,Q,H){var V=D.current,ne=ko(),Se=Bs(V);e:if(Q){Q=Q._reactInternals;t:{if(we(Q)!==Q||Q.tag!==1)throw Error(c(170));var _e=Q;do{switch(_e.tag){case 3:_e=_e.stateNode.context;break t;case 1:if(Kn(_e.type)){_e=_e.stateNode.__reactInternalMemoizedMergedChildContext;break t}}_e=_e.return}while(_e!==null);throw Error(c(171))}if(Q.tag===1){var pt=Q.type;if(Kn(pt)){Q=Oa(Q,pt,_e);break e}}Q=_e}else Q=la;return D.context===null?D.context=Q:D.pendingContext=Q,D=Dl(ne,Se),D.payload={element:v},H=H===void 0?null:H,H!==null&&(D.callback=H),Pl(V,D),Rl(V,Se,ne),Se},r}});var Iwe=_((sKt,Ewe)=>{\"use strict\";Ewe.exports=ywe()});var wwe=_((oKt,Cwe)=>{\"use strict\";var mpt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};Cwe.exports=mpt});var Dwe=_((aKt,Swe)=>{\"use strict\";var ypt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])}return t},TF=function(){function t(e,r){for(var s=0;s<r.length;s++){var a=r[s];a.enumerable=a.enumerable||!1,a.configurable=!0,\"value\"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(e,r,s){return r&&t(e.prototype,r),s&&t(e,s),e}}();function _9(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function H9(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var tf=wwe(),Ept=function(){function t(e,r,s,a,n,c){H9(this,t),this.left=e,this.right=r,this.top=s,this.bottom=a,this.width=n,this.height=c}return TF(t,[{key:\"fromJS\",value:function(r){r(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:\"toString\",value:function(){return\"<Layout#\"+this.left+\":\"+this.right+\";\"+this.top+\":\"+this.bottom+\";\"+this.width+\":\"+this.height+\">\"}}]),t}(),Bwe=function(){TF(t,null,[{key:\"fromJS\",value:function(r){var s=r.width,a=r.height;return new t(s,a)}}]);function t(e,r){H9(this,t),this.width=e,this.height=r}return TF(t,[{key:\"fromJS\",value:function(r){r(this.width,this.height)}},{key:\"toString\",value:function(){return\"<Size#\"+this.width+\"x\"+this.height+\">\"}}]),t}(),vwe=function(){function t(e,r){H9(this,t),this.unit=e,this.value=r}return TF(t,[{key:\"fromJS\",value:function(r){r(this.unit,this.value)}},{key:\"toString\",value:function(){switch(this.unit){case tf.UNIT_POINT:return String(this.value);case tf.UNIT_PERCENT:return this.value+\"%\";case tf.UNIT_AUTO:return\"auto\";default:return this.value+\"?\"}}},{key:\"valueOf\",value:function(){return this.value}}]),t}();Swe.exports=function(t,e){function r(c,f,p){var h=c[f];c[f]=function(){for(var E=arguments.length,C=Array(E),S=0;S<E;S++)C[S]=arguments[S];return p.call.apply(p,[this,h].concat(C))}}for(var s=[\"setPosition\",\"setMargin\",\"setFlexBasis\",\"setWidth\",\"setHeight\",\"setMinWidth\",\"setMinHeight\",\"setMaxWidth\",\"setMaxHeight\",\"setPadding\"],a=function(){var f,p=s[n],h=(f={},_9(f,tf.UNIT_POINT,e.Node.prototype[p]),_9(f,tf.UNIT_PERCENT,e.Node.prototype[p+\"Percent\"]),_9(f,tf.UNIT_AUTO,e.Node.prototype[p+\"Auto\"]),f);r(e.Node.prototype,p,function(E){for(var C=arguments.length,S=Array(C>1?C-1:0),b=1;b<C;b++)S[b-1]=arguments[b];var I=S.pop(),T=void 0,N=void 0;if(I===\"auto\")T=tf.UNIT_AUTO,N=void 0;else if(I instanceof vwe)T=I.unit,N=I.valueOf();else if(T=typeof I==\"string\"&&I.endsWith(\"%\")?tf.UNIT_PERCENT:tf.UNIT_POINT,N=parseFloat(I),!Number.isNaN(I)&&Number.isNaN(N))throw new Error(\"Invalid value \"+I+\" for \"+p);if(!h[T])throw new Error('Failed to execute \"'+p+`\": Unsupported unit '`+I+\"'\");if(N!==void 0){var U;return(U=h[T]).call.apply(U,[this].concat(S,[N]))}else{var W;return(W=h[T]).call.apply(W,[this].concat(S))}})},n=0;n<s.length;n++)a();return r(e.Config.prototype,\"free\",function(){e.Config.destroy(this)}),r(e.Node,\"create\",function(c,f){return f?e.Node.createWithConfig(f):e.Node.createDefault()}),r(e.Node.prototype,\"free\",function(){e.Node.destroy(this)}),r(e.Node.prototype,\"freeRecursive\",function(){for(var c=0,f=this.getChildCount();c<f;++c)this.getChild(0).freeRecursive();this.free()}),r(e.Node.prototype,\"setMeasureFunc\",function(c,f){return f?c.call(this,function(){return Bwe.fromJS(f.apply(void 0,arguments))}):this.unsetMeasureFunc()}),r(e.Node.prototype,\"calculateLayout\",function(c){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:tf.DIRECTION_LTR;return c.call(this,f,p,h)}),ypt({Config:e.Config,Node:e.Node,Layout:t(\"Layout\",Ept),Size:t(\"Size\",Bwe),Value:t(\"Value\",vwe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},tf)}});var Pwe=_((exports,module)=>{(function(t,e){typeof define==\"function\"&&define.amd?define([],function(){return e}):typeof module==\"object\"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module==\"function\"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall(\"nbind_init\")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<\"u\"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT===\"WEB\")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT===\"WORKER\")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT===\"NODE\")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT===\"SHELL\")ENVIRONMENT_IS_SHELL=!0;else throw new Error(\"The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.\");else ENVIRONMENT_IS_WEB=typeof window==\"object\",ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\",ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof Ie==\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}(\"\")),nodePath||(nodePath={}(\"\")),e=nodePath.normalize(e);var s=nodeFS.readFileSync(e);return r?s:s.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\\\/g,\"/\"):Module.thisProgram=\"unknown-program\"),Module.arguments=process.argv.slice(2),typeof module<\"u\"&&(module.exports=Module),Module.inspect=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<\"u\"&&(Module.printErr=printErr),typeof read<\"u\"?Module.read=read:Module.read=function(){throw\"no read() available\"},Module.readBinary=function(e){if(typeof readbuffer==\"function\")return new Uint8Array(readbuffer(e));var r=read(e,\"binary\");return assert(typeof r==\"object\"),r},typeof scriptArgs<\"u\"?Module.arguments=scriptArgs:typeof arguments<\"u\"&&(Module.arguments=arguments),typeof quit==\"function\"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open(\"GET\",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open(\"GET\",e,!1),r.responseType=\"arraybuffer\",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,s){var a=new XMLHttpRequest;a.open(\"GET\",e,!0),a.responseType=\"arraybuffer\",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):s()},a.onerror=s,a.send(null)},typeof arguments<\"u\"&&(Module.arguments=arguments),typeof console<\"u\")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<\"u\"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>\"u\"&&(Module.setWindowTitle=function(t){document.title=t})}else throw\"Unknown runtime environment. Where are we?\";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram=\"./this.program\"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case\"i1\":case\"i8\":return 1;case\"i16\":return 2;case\"i32\":return 4;case\"i64\":return 8;case\"float\":return 4;case\"double\":return 8;default:{if(t[t.length-1]===\"*\")return Runtime.QUANTUM_SIZE;if(t[0]===\"i\"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e===\"double\"||e===\"i64\"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t==\"i64\"||t==\"double\")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module[\"dynCall_\"+t].apply(null,[e].concat(r)):Module[\"dynCall_\"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e<Runtime.functionPointers.length;e++)if(!Runtime.functionPointers[e])return Runtime.functionPointers[e]=t,2*(1+e);throw\"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.\"},removeFunction:function(t){Runtime.functionPointers[(t-2)/2]=null},warnOnce:function(t){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[t]||(Runtime.warnOnce.shown[t]=1,Module.printErr(t))},funcWrappers:{},getFuncWrapper:function(t,e){if(t){assert(e),Runtime.funcWrappers[e]||(Runtime.funcWrappers[e]={});var r=Runtime.funcWrappers[e];return r[t]||(e.length===1?r[t]=function(){return Runtime.dynCall(e,t)}:e.length===2?r[t]=function(a){return Runtime.dynCall(e,t,[a])}:r[t]=function(){return Runtime.dynCall(e,t,Array.prototype.slice.call(arguments))}),r[t]}},getCompilerSetting:function(t){throw\"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work\"},stackAlloc:function(t){var e=STACKTOP;return STACKTOP=STACKTOP+t|0,STACKTOP=STACKTOP+15&-16,e},staticAlloc:function(t){var e=STATICTOP;return STATICTOP=STATICTOP+t|0,STATICTOP=STATICTOP+15&-16,e},dynamicAlloc:function(t){var e=HEAP32[DYNAMICTOP_PTR>>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var s=enlargeMemory();if(!s)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var s=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return s},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort(\"Assertion failed: \"+e)}function getCFunc(ident){var func=Module[\"_\"+ident];if(!func)try{func=eval(\"_\"+ident)}catch(t){}return assert(func,\"Cannot call unknown function \"+ident+\" (perhaps LLVM optimizations or closure removed it?)\"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,s,a,n){var c=getCFunc(e),f=[],p=0;if(a)for(var h=0;h<a.length;h++){var E=toC[s[h]];E?(p===0&&(p=Runtime.stackSave()),f[h]=E(a[h])):f[h]=a[h]}var C=c.apply(null,f);if(r===\"string\"&&(C=Pointer_stringify(C)),p!==0){if(n&&n.async){EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(p)});return}Runtime.stackRestore(p)}return C};var sourceRegex=/^function\\s*[a-zA-Z$_0-9]*\\s*\\(([^)]*)\\)\\s*{\\s*([^*]*?)[\\s;]*(?:return\\s*(.*?)[;\\s]*)?}$/;function parseJSFunc(t){var e=t.toString().match(sourceRegex).slice(1);return{arguments:e[0],body:e[1],returnValue:e[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var t in JSfuncs)JSfuncs.hasOwnProperty(t)&&(JSsource[t]=parseJSFunc(JSfuncs[t]))}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(t){return t===\"number\"}),numericRet=returnType!==\"string\";if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(t,e){return\"$\"+e}),funcstr=\"(function(\"+argNames.join(\",\")+\") {\",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+=\"var stack = \"+JSsource.stackSave.body+\";\";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type!==\"number\"){var convertCode=JSsource[type+\"ToC\"];funcstr+=\"var \"+convertCode.arguments+\" = \"+arg+\";\",funcstr+=convertCode.body+\";\",funcstr+=arg+\"=(\"+convertCode.returnValue+\");\"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+=\"var ret = \"+cfuncname+\"(\"+argNames.join(\",\")+\");\",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+=\"ret = \"+strgfy+\"(ret);\"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace(\"()\",\"(stack)\")+\";\"),funcstr+=\"return ret})\",eval(funcstr)}})(),Module.ccall=ccall,Module.cwrap=cwrap;function setValue(t,e,r,s){switch(r=r||\"i8\",r.charAt(r.length-1)===\"*\"&&(r=\"i32\"),r){case\"i1\":HEAP8[t>>0]=e;break;case\"i8\":HEAP8[t>>0]=e;break;case\"i16\":HEAP16[t>>1]=e;break;case\"i32\":HEAP32[t>>2]=e;break;case\"i64\":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case\"float\":HEAPF32[t>>2]=e;break;case\"double\":HEAPF64[t>>3]=e;break;default:abort(\"invalid type for setValue: \"+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||\"i8\",e.charAt(e.length-1)===\"*\"&&(e=\"i32\"),e){case\"i1\":return HEAP8[t>>0];case\"i8\":return HEAP8[t>>0];case\"i16\":return HEAP16[t>>1];case\"i32\":return HEAP32[t>>2];case\"i64\":return HEAP32[t>>2];case\"float\":return HEAPF32[t>>2];case\"double\":return HEAPF64[t>>3];default:abort(\"invalid type for setValue: \"+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,s){var a,n;typeof t==\"number\"?(a=!0,n=t):(a=!1,n=t.length);var c=typeof e==\"string\"?e:null,f;if(r==ALLOC_NONE?f=s:f=[typeof _malloc==\"function\"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,c?1:e.length)),a){var s=f,p;for(assert((f&3)==0),p=f+(n&-4);s<p;s+=4)HEAP32[s>>2]=0;for(p=f+n;s<p;)HEAP8[s++>>0]=0;return f}if(c===\"i8\")return t.subarray||t.slice?HEAPU8.set(t,f):HEAPU8.set(new Uint8Array(t),f),f;for(var h=0,E,C,S;h<n;){var b=t[h];if(typeof b==\"function\"&&(b=Runtime.getFunctionIndex(b)),E=c||e[h],E===0){h++;continue}E==\"i64\"&&(E=\"i32\"),setValue(f+h,b,E),S!==E&&(C=Runtime.getNativeTypeSize(E),S=E),h+=C}return f}Module.allocate=allocate;function getMemory(t){return staticSealed?runtimeInitialized?_malloc(t):Runtime.dynamicAlloc(t):Runtime.staticAlloc(t)}Module.getMemory=getMemory;function Pointer_stringify(t,e){if(e===0||!t)return\"\";for(var r=0,s,a=0;s=HEAPU8[t+a>>0],r|=s,!(s==0&&!e||(a++,e&&a==e)););e||(e=a);var n=\"\";if(r<128){for(var c=1024,f;e>0;)f=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,c))),n=n?n+f:f,t+=c,e-=c;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e=\"\";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<\"u\"?new TextDecoder(\"utf8\"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var s,a,n,c,f,p,h=\"\";;){if(s=t[e++],!s)return h;if(!(s&128)){h+=String.fromCharCode(s);continue}if(a=t[e++]&63,(s&224)==192){h+=String.fromCharCode((s&31)<<6|a);continue}if(n=t[e++]&63,(s&240)==224?s=(s&15)<<12|a<<6|n:(c=t[e++]&63,(s&248)==240?s=(s&7)<<18|a<<12|n<<6|c:(f=t[e++]&63,(s&252)==248?s=(s&3)<<24|a<<18|n<<12|c<<6|f:(p=t[e++]&63,s=(s&1)<<30|a<<24|n<<18|c<<12|f<<6|p))),s<65536)h+=String.fromCharCode(s);else{var E=s-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,s){if(!(s>0))return 0;for(var a=r,n=r+s-1,c=0;c<t.length;++c){var f=t.charCodeAt(c);if(f>=55296&&f<=57343&&(f=65536+((f&1023)<<10)|t.charCodeAt(++c)&1023),f<=127){if(r>=n)break;e[r++]=f}else if(f<=2047){if(r+1>=n)break;e[r++]=192|f>>6,e[r++]=128|f&63}else if(f<=65535){if(r+2>=n)break;e[r++]=224|f>>12,e[r++]=128|f>>6&63,e[r++]=128|f&63}else if(f<=2097151){if(r+3>=n)break;e[r++]=240|f>>18,e[r++]=128|f>>12&63,e[r++]=128|f>>6&63,e[r++]=128|f&63}else if(f<=67108863){if(r+4>=n)break;e[r++]=248|f>>24,e[r++]=128|f>>18&63,e[r++]=128|f>>12&63,e[r++]=128|f>>6&63,e[r++]=128|f&63}else{if(r+5>=n)break;e[r++]=252|f>>30,e[r++]=128|f>>24&63,e[r++]=128|f>>18&63,e[r++]=128|f>>12&63,e[r++]=128|f>>6&63,e[r++]=128|f&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r<t.length;++r){var s=t.charCodeAt(r);s>=55296&&s<=57343&&(s=65536+((s&1023)<<10)|t.charCodeAt(++r)&1023),s<=127?++e:s<=2047?e+=2:s<=65535?e+=3:s<=2097151?e+=4:s<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-16le\"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),s=lengthBytesUTF8(r)+1,a=_malloc(s);stringToUTF8(r,a,s);var n=_malloc(4),c=e(a,0,0,n);if(getValue(n,\"i32\")===0&&c)return Pointer_stringify(c)}catch{}finally{a&&_free(a),n&&_free(n),c&&_free(c)}return t}return Runtime.warnOnce(\"warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling\"),t}function demangleAll(t){var e=/__Z[\\w\\d_]+/g;return t.replace(e,function(r){var s=demangle(r);return r===s?r:r+\" [\"+s+\"]\"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return\"(no stack trace available)\"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=`\n`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 \")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY<TOTAL_STACK&&Module.printErr(\"TOTAL_MEMORY should be larger than TOTAL_STACK, was \"+TOTAL_MEMORY+\"! (TOTAL_STACK=\"+TOTAL_STACK+\")\"),Module.buffer?buffer=Module.buffer:buffer=new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}if(HEAP32[0]=1668509029,HEAP16[1]=25459,HEAPU8[2]!==115||HEAPU8[3]!==99)throw\"Runtime error: expected the system to be little-endian!\";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;function callRuntimeCallbacks(t){for(;t.length>0;){var e=t.shift();if(typeof e==\"function\"){e();continue}var r=e.func;typeof r==\"number\"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun==\"function\"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun==\"function\"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var s=r>0?r:lengthBytesUTF8(t)+1,a=new Array(s),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r<t.length;r++){var s=t[r];s>255&&(s&=255),e.push(String.fromCharCode(s))}return e.join(\"\")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce(\"writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!\");var s,a;r&&(a=e+lengthBytesUTF8(t),s=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=s)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var s=0;s<t.length;++s)HEAP8[e++>>0]=t.charCodeAt(s);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var s=e>>>16,a=e&65535,n=r>>>16,c=r&65535;return a*c+(s*c+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,s,a,n,c,f){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,s,a,n,c,f){return ASM_CONSTS[t](e,r,s,a,n,c,f)}function _emscripten_asm_const_iiiii(t,e,r,s,a){return ASM_CONSTS[t](e,r,s,a)}function _emscripten_asm_const_iiidddddd(t,e,r,s,a,n,c,f,p){return ASM_CONSTS[t](e,r,s,a,n,c,f,p)}function _emscripten_asm_const_iiididi(t,e,r,s,a,n,c){return ASM_CONSTS[t](e,r,s,a,n,c)}function _emscripten_asm_const_iiii(t,e,r,s){return ASM_CONSTS[t](e,r,s)}function _emscripten_asm_const_iiiid(t,e,r,s,a){return ASM_CONSTS[t](e,r,s,a)}function _emscripten_asm_const_iiiiii(t,e,r,s,a,n){return ASM_CONSTS[t](e,r,s,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],\"i8\",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr(\"missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj\"),abort(-1)}function __decorate(t,e,r,s){var a=arguments.length,n=a<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,r):s,c;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")n=Reflect.decorate(t,e,r,s);else for(var f=t.length-1;f>=0;f--)(c=t[f])&&(n=(a<3?c(n):a>3?c(e,r,n):c(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,s){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=s/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,\"cbFunction &\":_nbind.CallbackType,\"const cbFunction &\":_nbind.CallbackType,\"const std::string &\":_nbind.StringType,\"std::string\":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:\"\"});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var c=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,c)},Browser.mainLoop.method=\"timeout\";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method=\"rAF\";else if(t==2){if(!window.setImmediate){let n=function(c){c.source===window&&c.data===s&&(c.stopPropagation(),r.shift()())};var a=n,r=[],s=\"setimmediate\";window.addEventListener(\"message\",n,!0),window.setImmediate=function(f){r.push(f),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(f),window.postMessage({target:s})):window.postMessage(s,\"*\")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method=\"immediate\"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,s,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,\"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.\"),Browser.mainLoop.func=t,Browser.mainLoop.arg=s;var n;typeof s<\"u\"?n=function(){Module.dynCall_vi(t,s)}:n=function(){Module.dynCall_v(t)};var c=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,C=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=C:(C=C+.5,Browser.mainLoop.remainingBlockers=(8*E+C)/9)}if(console.log('main loop blocker \"'+h.name+'\" took '+(Date.now()-p)+\" ms\"),Browser.mainLoop.updateStatus(),c<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0);return}if(!(c<Browser.mainLoop.currentlyRunningMainloop)){if(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method===\"timeout\"&&Module.ctx&&(Module.printErr(\"Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!\"),Browser.mainLoop.method=\"\"),Browser.mainLoop.runIter(n),!(c<Browser.mainLoop.currentlyRunningMainloop)&&(typeof SDL==\"object\"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())}}},a||(e&&e>0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw\"SimulateInfiniteLoop\"}var Browser={mainLoop:{scheduler:null,method:\"\",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||\"Please wait...\",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e<r?Module.setStatus(t+\" (\"+(r-e)+\"/\"+r+\")\"):Module.setStatus(t):Module.setStatus(\"\")}},runIter:function(t){if(!ABORT){if(Module.preMainLoop){var e=Module.preMainLoop();if(e===!1)return}try{t()}catch(r){if(r instanceof ExitStatus)return;throw r&&typeof r==\"object\"&&r.stack&&Module.printErr(\"exception thrown: \"+[r,r.stack]),r}Module.postMainLoop&&Module.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),Browser.initted)return;Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch{Browser.hasBlobConstructor=!1,console.log(\"warning: no blob constructor, cannot create blobs with mimetypes\")}Browser.BlobBuilder=typeof MozBlobBuilder<\"u\"?MozBlobBuilder:typeof WebKitBlobBuilder<\"u\"?WebKitBlobBuilder:Browser.hasBlobConstructor?null:console.log(\"warning: no BlobBuilder\"),Browser.URLObject=typeof window<\"u\"?window.URL?window.URL:window.webkitURL:void 0,!Module.noImageDecoding&&typeof Browser.URLObject>\"u\"&&(console.log(\"warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.\"),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,c,f,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(c)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(c)}))}catch(b){Runtime.warnOnce(\"Blob constructor present but fails: \"+b+\"; falling back to blob builder\")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var C=Browser.URLObject.createObjectURL(h),S=new Image;S.onload=function(){assert(S.complete,\"Image \"+c+\" could not be decoded\");var I=document.createElement(\"canvas\");I.width=S.width,I.height=S.height;var T=I.getContext(\"2d\");T.drawImage(S,0,0),Module.preloadedImages[c]=I,Browser.URLObject.revokeObjectURL(C),f&&f(n)},S.onerror=function(I){console.log(\"Image \"+C+\" could not be decoded\"),p&&p()},S.src=C},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{\".ogg\":1,\".wav\":1,\".mp3\":1}},e.handle=function(n,c,f,p){var h=!1;function E(T){h||(h=!0,Module.preloadedAudios[c]=T,f&&f(n))}function C(){h||(h=!0,Module.preloadedAudios[c]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var S=new Blob([n],{type:Browser.getMimetype(c)})}catch{return C()}var b=Browser.URLObject.createObjectURL(S),I=new Audio;I.addEventListener(\"canplaythrough\",function(){E(I)},!1),I.onerror=function(N){if(h)return;console.log(\"warning: browser could not fully decode audio \"+c+\", trying slower base64 approach\");function U(W){for(var ee=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",ie=\"=\",ue=\"\",le=0,me=0,pe=0;pe<W.length;pe++)for(le=le<<8|W[pe],me+=8;me>=6;){var Be=le>>me-6&63;me-=6,ue+=ee[Be]}return me==2?(ue+=ee[(le&3)<<4],ue+=ie+ie):me==4&&(ue+=ee[(le&15)<<2],ue+=ie),ue}I.src=\"data:audio/x-\"+c.substr(-3)+\";base64,\"+U(n),E(I)},I.src=b,Browser.safeSetTimeout(function(){E(I)},1e4)}else return C()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var s=Module.canvas;s&&(s.requestPointerLock=s.requestPointerLock||s.mozRequestPointerLock||s.webkitRequestPointerLock||s.msRequestPointerLock||function(){},s.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},s.exitPointerLock=s.exitPointerLock.bind(document),document.addEventListener(\"pointerlockchange\",r,!1),document.addEventListener(\"mozpointerlockchange\",r,!1),document.addEventListener(\"webkitpointerlockchange\",r,!1),document.addEventListener(\"mspointerlockchange\",r,!1),Module.elementPointerLock&&s.addEventListener(\"click\",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,s){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var c={antialias:!1,alpha:!1};if(s)for(var f in s)c[f]=s[f];n=GL.createContext(t,c),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext(\"2d\");return a?(r&&(e||assert(typeof GLctx>\"u\",\"cannot set in module if GLctx is used, but we are a non-GL context that would replace it\"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>\"u\"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>\"u\"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>\"u\"&&(Browser.vrDevice=null);var s=Module.canvas;function a(){Browser.isFullscreen=!1;var c=s.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===c?(s.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},s.exitFullscreen=s.exitFullscreen.bind(document),Browser.lockPointer&&s.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(c.parentNode.insertBefore(s,c),c.parentNode.removeChild(c),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(s)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener(\"fullscreenchange\",a,!1),document.addEventListener(\"mozfullscreenchange\",a,!1),document.addEventListener(\"webkitfullscreenchange\",a,!1),document.addEventListener(\"MSFullscreenChange\",a,!1));var n=document.createElement(\"div\");s.parentNode.insertBefore(n,s),n.appendChild(s),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr(\"Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.\"),Browser.requestFullScreen=function(s,a,n){return Browser.requestFullscreen(s,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>\"u\"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:\"image/jpeg\",jpeg:\"image/jpeg\",png:\"image/png\",bmp:\"image/bmp\",ogg:\"audio/ogg\",wav:\"audio/wav\",mp3:\"audio/mpeg\"}[t.substr(t.lastIndexOf(\".\")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case\"DOMMouseScroll\":e=t.detail;break;case\"mousewheel\":e=t.wheelDelta;break;case\"wheel\":e=t.deltaY;break;default:throw\"unrecognized mouse wheel event: \"+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!=\"mousemove\"&&\"mozMovementX\"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<\"u\"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,s=Module.canvas.height,a=typeof window.scrollX<\"u\"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<\"u\"?window.scrollY:window.pageYOffset;if(t.type===\"touchstart\"||t.type===\"touchend\"||t.type===\"touchmove\"){var c=t.touch;if(c===void 0)return;var f=c.pageX-(a+e.left),p=c.pageY-(n+e.top);f=f*(r/e.width),p=p*(s/e.height);var h={x:f,y:p};if(t.type===\"touchstart\")Browser.lastTouches[c.identifier]=h,Browser.touches[c.identifier]=h;else if(t.type===\"touchend\"||t.type===\"touchmove\"){var E=Browser.touches[c.identifier];E||(E=h),Browser.lastTouches[c.identifier]=E,Browser.touches[c.identifier]=h}return}var C=t.pageX-(a+e.left),S=t.pageY-(n+e.top);C=C*(r/e.width),S=S*(s/e.height),Browser.mouseMovementX=C-Browser.mouseX,Browser.mouseMovementY=S-Browser.mouseY,Browser.mouseX=C,Browser.mouseY=S}},asyncLoad:function(t,e,r,s){var a=s?\"\":\"al \"+t;Module.readAsync(t,function(n){assert(n,'Loading data file \"'+t+'\" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file \"'+t+'\" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var s=Module.canvas;Browser.updateCanvasDimensions(s,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<\"u\"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<\"u\"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var s=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(s/a<Module.forcedAspectRatio?s=Math.round(a*Module.forcedAspectRatio):a=Math.round(s/Module.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===t.parentNode&&typeof screen<\"u\"){var n=Math.min(screen.width/s,screen.height/a);s=Math.round(s*n),a=Math.round(a*n)}Browser.resizeCanvas?(t.width!=s&&(t.width=s),t.height!=a&&(t.height=a),typeof t.style<\"u\"&&(t.style.removeProperty(\"width\"),t.style.removeProperty(\"height\"))):(t.width!=e&&(t.width=e),t.height!=r&&(t.height=r),typeof t.style<\"u\"&&(s!=e||a!=r?(t.style.setProperty(\"width\",s+\"px\",\"important\"),t.style.setProperty(\"height\",a+\"px\",\"important\")):(t.style.removeProperty(\"width\"),t.style.removeProperty(\"height\"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var t=Browser.nextWgetRequestHandle;return Browser.nextWgetRequestHandle++,t}},SYSCALLS={varargs:0,get:function(t){SYSCALLS.varargs+=4;var e=HEAP32[SYSCALLS.varargs-4>>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(s){return(typeof FS>\"u\"||!(s instanceof FS.ErrnoError))&&abort(s),-s.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>\"u\"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,\"X\"],[1,1,\"const X\"],[128,1,\"X *\"],[256,1,\"X &\"],[384,1,\"X &&\"],[512,1,\"std::shared_ptr<X>\"],[640,1,\"std::unique_ptr<X>\"],[5120,1,\"std::vector<X>\"],[6144,2,\"std::array<X, Y>\"],[9216,-1,\"std::function<X (Y)>\"]];function r(p,h,E,C,S,b){if(h==1){var I=C&896;(I==128||I==256||I==384)&&(p=\"X const\")}var T;return b?T=E.replace(\"X\",p).replace(\"Y\",S):T=p.replace(\"X\",E).replace(\"Y\",S),T.replace(/([*&]) (?=[*&])/g,\"$1\")}function s(p,h,E,C,S){throw new Error(p+\" type \"+E.replace(\"X\",h+\"?\")+(C?\" with flag \"+C:\"\")+\" in \"+S)}function a(p,h,E,C,S,b,I,T){b===void 0&&(b=\"X\"),T===void 0&&(T=1);var N=E(p);if(N)return N;var U=C(p),W=U.placeholderFlag,ee=e[W];I&&ee&&(b=r(I[2],I[0],b,ee[0],\"?\",!0));var ie;W==0&&(ie=\"Unbound\"),W>=10&&(ie=\"Corrupt\"),T>20&&(ie=\"Deeply nested\"),ie&&s(ie,p,b,W,S||\"?\");var ue=U.paramList[0],le=a(ue,h,E,C,S,b,ee,T+1),me,pe={flags:ee[0],id:p,name:\"\",paramList:[le]},Be=[],Ce=\"?\";switch(U.placeholderFlag){case 1:me=le.spec;break;case 2:if((le.flags&15360)==1024&&le.spec.ptrSize==1){pe.flags=7168;break}case 3:case 6:case 5:me=le.spec,le.flags&15360;break;case 8:Ce=\"\"+U.paramList[1],pe.paramList.push(U.paramList[1]);break;case 9:for(var g=0,we=U.paramList[1];g<we.length;g++){var ye=we[g],Ae=a(ye,h,E,C,S,b,ee,T+1);Be.push(Ae.name),pe.paramList.push(Ae)}Ce=Be.join(\", \");break;default:break}if(pe.name=r(ee[2],ee[0],le.name,le.flags,Ce),me){for(var se=0,X=Object.keys(me);se<X.length;se++){var De=X[se];pe[De]=pe[De]||me[De]}pe.flags|=me.flags}return n(h,pe)}function n(p,h){var E=h.flags,C=E&896,S=E&15360;return!h.name&&S==1024&&(h.ptrSize==1?h.name=(E&16?\"\":(E&8?\"un\":\"\")+\"signed \")+\"char\":h.name=(E&8?\"u\":\"\")+(E&32?\"float\":\"int\")+(h.ptrSize*8+\"_t\")),h.ptrSize==8&&!(E&32)&&(S=64),S==2048&&(C==512||C==640?S=4096:C&&(S=3072)),p(S,h)}var c=function(){function p(h){this.id=h.id,this.name=h.name,this.flags=h.flags,this.spec=h}return p.prototype.toString=function(){return this.name},p}(),f={Type:c,getComplexType:a,makeType:n,structureList:e};return t.output=f,t.output||f}function __nbind_register_type(t,e){var r=_nbind.readAsciiString(e),s={flags:10240,id:t,name:r};_nbind.makeType(_nbind.constructType,s)}function __nbind_register_callback_signature(t,e){var r=_nbind.readTypeIdList(t,e),s=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[s]=_nbind.makeJSCaller(r),s}function __extends(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);function s(){this.constructor=t}s.prototype=e.prototype,t.prototype=new s}function __nbind_register_class(t,e,r,s,a,n,c){var f=_nbind.readAsciiString(c),p=_nbind.readPolicyList(e),h=HEAPU32.subarray(t/4,t/4+2),E={flags:2048|(p.Value?2:0),id:h[0],name:f},C=_nbind.makeType(_nbind.constructType,E);C.ptrType=_nbind.getComplexType(h[1],_nbind.constructType,_nbind.getType,_nbind.queryType),C.destroy=_nbind.makeMethodCaller(C.ptrType,{boundID:E.id,flags:0,name:\"destroy\",num:0,ptr:n,title:C.name+\".free\",typeList:[\"void\",\"uint32_t\",\"uint32_t\"]}),a&&(C.superIdList=Array.prototype.slice.call(HEAPU32.subarray(r/4,r/4+a)),C.upcastList=Array.prototype.slice.call(HEAPU32.subarray(s/4,s/4+a))),Module[C.name]=C.makeBound(p),_nbind.BindClass.list.push(C)}function _removeAccessorPrefix(t){var e=/^[Gg]et_?([A-Z]?([A-Z]?))/;return t.replace(e,function(r,s,a){return a?s:s.toLowerCase()})}function __nbind_register_function(t,e,r,s,a,n,c,f,p,h){var E=_nbind.getType(t),C=_nbind.readPolicyList(e),S=_nbind.readTypeIdList(r,s),b;if(c==5)b=[{direct:a,name:\"__nbindConstructor\",ptr:0,title:E.name+\" constructor\",typeList:[\"uint32_t\"].concat(S.slice(1))},{direct:n,name:\"__nbindValueConstructor\",ptr:0,title:E.name+\" value constructor\",typeList:[\"void\",\"uint32_t\"].concat(S.slice(1))}];else{var I=_nbind.readAsciiString(f),T=(E.name&&E.name+\".\")+I;(c==3||c==4)&&(I=_removeAccessorPrefix(I)),b=[{boundID:t,direct:n,name:I,ptr:a,title:T,typeList:S}]}for(var N=0,U=b;N<U.length;N++){var W=U[N];W.signatureType=c,W.policyTbl=C,W.num=p,W.flags=h,E.addMethod(W)}}function _nbind_value(t,e){_nbind.typeNameTbl[t]||_nbind.throwError(\"Unknown value type \"+t),Module.NBind.bind_value(t,e),_defineHidden(_nbind.typeNameTbl[t].proto.prototype.__nbindValueConstructor)(e.prototype,\"__nbindValueConstructor\")}Module._nbind_value=_nbind_value;function __nbind_get_value_object(t,e){var r=_nbind.popValue(t);if(!r.fromJS)throw new Error(\"Object \"+r+\" has no fromJS function\");r.fromJS(function(){r.__nbindValueConstructor.apply(this,Array.prototype.concat.apply([e],arguments))})}function _emscripten_memcpy_big(t,e,r){return HEAPU8.set(HEAPU8.subarray(e,e+r),t),t}function __nbind_register_primitive(t,e,r){var s={flags:1024|r,id:t,ptrSize:e};_nbind.makeType(_nbind.constructType,s)}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],\"i8\",ALLOC_STATIC);function ___setErrNo(t){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),s=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),c=SYSCALLS.get(),f=a;return FS.llseek(r,f,c),HEAP32[n>>2]=r.position,r.getdents&&f===0&&c===0&&(r.getdents=null),0}catch(p){return(typeof FS>\"u\"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),s=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,C){var S=___syscall146.buffers[E];assert(S),C===0||C===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(S,0)),S.length=0):S.push(C)});for(var c=0;c<a;c++){for(var f=HEAP32[s+c*8>>2],p=HEAP32[s+(c*8+4)>>2],h=0;h<p;h++)___syscall146.printChar(r,HEAPU8[f+h]);n+=p}return n}catch(E){return(typeof FS>\"u\"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;t<e.length;t++){var r=e[t];r.finish()}}var ___dso_handle=STATICTOP;STATICTOP+=16,function(_nbind){var typeIdTbl={};_nbind.typeNameTbl={};var Pool=function(){function t(){}return t.lalloc=function(e){e=e+7&-8;var r=HEAPU32[t.usedPtr];if(e>t.pageSize/2||e>t.pageSize-r){var s=_nbind.typeNameTbl.NBind.proto;return s.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var s=HEAPU32[t.pagePtr];if(s){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],s=new r(e);return typeIdTbl[e.id]=s,_nbind.typeNameTbl[e.name]=s,s}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var s=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(s=[s[0],s.slice(1)]),{paramList:s,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r==\"number\"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply(\"\",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:\"d\",float64_t:\"d\",int64_t:\"d\",uint64_t:\"d\",void:\"v\"},s=t.map(function(n){return r[n.name]||\"i\"}).join(\"\"),a=Module[\"dynCall_\"+s];if(!a)throw new Error(\"dynCall_\"+s+\" not found for \"+e+\"(\"+t.map(function(n){return n.name}).join(\", \")+\")\");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,s){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,s)):(r.arity=s,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return s.heap=a[r.ptrSize*8],s.ptrSize=r.ptrSize,s}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,s){return s&&s.Strict&&function(a){if(typeof a==\"number\")return a;throw new Error(\"Type mismatch\")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error(\"Type mismatch\")}if(e&&e.Strict){if(typeof t!=\"string\")throw new Error(\"Type mismatch\")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,s=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,s,r),s}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,s){return function(a){return pushCString(a,s)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(s){return!!s},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return\"!!(\"+r+\")\"},e.prototype.makeWireWrite=function(r,s){return s&&s.Strict&&function(a){if(typeof a==\"boolean\")return a;throw new Error(\"Type mismatch\")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(s){__extends(a,s);function a(n,c,f,p){var h=s.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=c,C=f,S=p;if(n!==_nbind.ptrMarker){var b=h.__nbindConstructor.apply(h,arguments);E=4608,S=HEAPU32[b/4],C=HEAPU32[b/4+1]}var I={configurable:!0,enumerable:!1,value:null,writable:!1},T={__nbindFlags:E,__nbindPtr:C};S&&(T.__nbindShared=S,_nbind.mark(h));for(var N=0,U=Object.keys(T);N<U.length;N++){var W=U[N];I.value=T[W],Object.defineProperty(h,W,I)}return _defineHidden(0)(h,\"__nbindState\"),h}return a.prototype.free=function(){e.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,\"__nbindShared\"),disableMember(this,\"__nbindPtr\")},a}(Wrapper);return __decorate([_defineHidden()],r.prototype,\"__nbindConstructor\",void 0),__decorate([_defineHidden()],r.prototype,\"__nbindValueConstructor\",void 0),__decorate([_defineHidden(t)],r.prototype,\"__nbindPolicies\",void 0),r}_nbind.makeBound=makeBound;function disableMember(t,e){function r(){throw new Error(\"Accessing deleted object\")}Object.defineProperty(t,e,{configurable:!1,enumerable:!1,get:r,set:r})}_nbind.ptrMarker={};var BindClass=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this;return s.wireRead=function(a){return _nbind.popValue(a,s.ptrType)},s.wireWrite=function(a){return pushPointer(a,s.ptrType,!0)},s.pendingSuperCount=0,s.ready=!1,s.methodTbl={},r.paramList?(s.classType=r.paramList[0].classType,s.proto=s.classType.proto):s.classType=s,s}return e.prototype.makeBound=function(r){var s=_nbind.makeBound(r,this);return this.proto=s,this.ptrType.proto=s,s},e.prototype.addMethod=function(r){var s=this.methodTbl[r.name]||[];s.push(r),this.methodTbl[r.name]=s},e.prototype.registerMethods=function(r,s){for(var a,n=0,c=Object.keys(r.methodTbl);n<c.length;n++)for(var f=c[n],p=r.methodTbl[f],h=0,E=p;h<E.length;h++){var C=E[h],S=void 0,b=void 0;if(S=this.proto.prototype,!(s&&C.signatureType!=1))switch(C.signatureType){case 1:S=this.proto;case 5:b=_nbind.makeCaller(C),_nbind.addMethod(S,C.name,b,C.typeList.length-1);break;case 4:a=_nbind.makeMethodCaller(r.ptrType,C);break;case 3:Object.defineProperty(S,C.name,{configurable:!0,enumerable:!1,get:_nbind.makeMethodCaller(r.ptrType,C),set:a});break;case 2:b=_nbind.makeMethodCaller(r.ptrType,C),_nbind.addMethod(S,C.name,b,C.typeList.length-1);break;default:break}}},e.prototype.registerSuperMethods=function(r,s,a){if(!a[r.name]){a[r.name]=!0;for(var n=0,c,f=0,p=r.superIdList||[];f<p.length;f++){var h=p[f],E=_nbind.getType(h);n++<s||s<0?c=-1:c=0,this.registerSuperMethods(E,c,a)}this.registerMethods(r,s<0)}},e.prototype.finish=function(){if(this.ready)return this;this.ready=!0,this.superList=(this.superIdList||[]).map(function(a){return _nbind.getType(a).finish()});var r=this.proto;if(this.superList.length){var s=function(){this.constructor=r};s.prototype=this.superList[0].proto.prototype,r.prototype=new s}return r!=Module&&(r.prototype.__nbindType=this),this.registerSuperMethods(this,1,{}),this},e.prototype.upcastStep=function(r,s){if(r==this)return s;for(var a=0;a<this.superList.length;++a){var n=this.superList[a].upcastStep(r,_nbind.callUpcast(this.upcastList[a],s));if(n)return n}return 0},e}(_nbind.BindType);BindClass.list=[],_nbind.BindClass=BindClass;function popPointer(t,e){return t?new e.proto(_nbind.ptrMarker,e.flags,t):null}_nbind.popPointer=popPointer;function pushPointer(t,e,r){if(!(t instanceof _nbind.Wrapper)){if(r)return _nbind.pushValue(t);throw new Error(\"Type mismatch\")}var s=t.__nbindPtr,a=t.__nbindType.classType,n=e.classType;if(t instanceof e.proto)for(;a!=n;)s=_nbind.callUpcast(a.upcastList[0],s),a=a.superList[0];else if(s=a.upcastStep(n,s),!s)throw new Error(\"Type mismatch\");return s}_nbind.pushPointer=pushPointer;function pushMutablePointer(t,e){var r=pushPointer(t,e);if(t.__nbindFlags&1)throw new Error(\"Passing a const value as a non-const argument\");return r}var BindClassPtr=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this;s.classType=r.paramList[0].classType,s.proto=s.classType.proto;var a=r.flags&1,n=(s.flags&896)==256&&r.flags&2,c=a?pushPointer:pushMutablePointer,f=n?_nbind.popValue:popPointer;return s.makeWireWrite=function(p,h){return h.Nullable?function(E){return E?c(E,s):0}:function(E){return c(E,s)}},s.wireRead=function(p){return f(p,s)},s.wireWrite=function(p){return c(p,s)},s}return e}(_nbind.BindType);_nbind.BindClassPtr=BindClassPtr;function popShared(t,e){var r=HEAPU32[t/4],s=HEAPU32[t/4+1];return s?new e.proto(_nbind.ptrMarker,e.flags,s,r):null}_nbind.popShared=popShared;function pushShared(t,e){if(!(t instanceof e.proto))throw new Error(\"Type mismatch\");return t.__nbindShared}function pushMutableShared(t,e){if(!(t instanceof e.proto))throw new Error(\"Type mismatch\");if(t.__nbindFlags&1)throw new Error(\"Passing a const value as a non-const argument\");return t.__nbindShared}var SharedClassPtr=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this;s.readResources=[_nbind.resources.pool],s.classType=r.paramList[0].classType,s.proto=s.classType.proto;var a=r.flags&1,n=a?pushShared:pushMutableShared;return s.wireRead=function(c){return popShared(c,s)},s.wireWrite=function(c){return n(c,s)},s}return e}(_nbind.BindType);_nbind.SharedClassPtr=SharedClassPtr,_nbind.externalList=[0];var firstFreeExternal=0,External=function(){function t(e){this.refCount=1,this.data=e}return t.prototype.register=function(){var e=firstFreeExternal;return e?firstFreeExternal=_nbind.externalList[e]:e=_nbind.externalList.length,_nbind.externalList[e]=this,e},t.prototype.reference=function(){++this.refCount},t.prototype.dereference=function(e){--this.refCount==0&&(this.free&&this.free(),_nbind.externalList[e]=firstFreeExternal,firstFreeExternal=e)},t}();_nbind.External=External;function popExternal(t){var e=_nbind.externalList[t];return e.dereference(t),e.data}function pushExternal(t){var e=new External(t);return e.reference(),e.register()}var ExternalType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popExternal,r.wireWrite=pushExternal,r}return e}(_nbind.BindType);_nbind.ExternalType=ExternalType,_nbind.callbackSignatureList=[];var CallbackType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=function(s){return typeof s!=\"function\"&&_nbind.throwError(\"Type mismatch\"),new _nbind.External(s).register()},r}return e}(_nbind.BindType);_nbind.CallbackType=CallbackType,_nbind.valueList=[0];var firstFreeValue=0;function pushValue(t){var e=firstFreeValue;return e?firstFreeValue=_nbind.valueList[e]:e=_nbind.valueList.length,_nbind.valueList[e]=t,e*2+1}_nbind.pushValue=pushValue;function popValue(t,e){if(t||_nbind.throwError(\"Value type JavaScript class is missing or not registered\"),t&1){t>>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error(\"Invalid value slot \"+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t==\"number\"?t:pushValue(t)*4096+valueBase}function pop64(t){return t<valueBase?t:popValue((t-valueBase)/4096)}var CreateValueType=function(t){__extends(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.makeWireWrite=function(r){return\"(_nbind.pushValue(new \"+r+\"))\"},e}(_nbind.BindType);_nbind.CreateValueType=CreateValueType;var Int64Type=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=push64,r.wireRead=pop64,r}return e}(_nbind.BindType);_nbind.Int64Type=Int64Type;function pushArray(t,e){if(!t)return 0;var r=t.length;if((e.size||e.size===0)&&r<e.size)throw new Error(\"Type mismatch\");var s=e.memberType.ptrSize,a=_nbind.Pool.lalloc(4+r*s);HEAPU32[a/4]=r;var n=e.memberType.heap,c=(a+4)/s,f=e.memberType.wireWrite,p=0;if(f)for(;p<r;)n[c++]=f(t[p++]);else for(;p<r;)n[c++]=t[p++];return a}_nbind.pushArray=pushArray;function popArray(t,e){if(t===0)return null;var r=HEAPU32[t/4],s=new Array(r),a=e.memberType.heap;t=(t+4)/e.memberType.ptrSize;var n=e.memberType.wireRead,c=0;if(n)for(;c<r;)s[c++]=n(a[t++]);else for(;c<r;)s[c++]=a[t++];return s}_nbind.popArray=popArray;var ArrayType=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this;return s.wireRead=function(a){return popArray(a,s)},s.wireWrite=function(a){return pushArray(a,s)},s.readResources=[_nbind.resources.pool],s.writeResources=[_nbind.resources.pool],s.memberType=r.paramList[0],r.paramList[1]&&(s.size=r.paramList[1]),s}return e}(_nbind.BindType);_nbind.ArrayType=ArrayType;function pushString(t,e){if(t==null)if(e&&e.Nullable)t=\"\";else throw new Error(\"Type mismatch\");if(e&&e.Strict){if(typeof t!=\"string\")throw new Error(\"Type mismatch\")}else t=t.toString();var r=Module.lengthBytesUTF8(t),s=_nbind.Pool.lalloc(4+r+1);return HEAPU32[s/4]=r,Module.stringToUTF8Array(t,HEAPU8,s+4,r+1),s}_nbind.pushString=pushString;function popString(t){if(t===0)return null;var e=HEAPU32[t/4];return Module.Pointer_stringify(t+4,e)}_nbind.popString=popString;var StringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popString,r.wireWrite=pushString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,s){return function(a){return pushString(a,s)}},e}(_nbind.BindType);_nbind.StringType=StringType;function makeArgList(t){return Array.apply(null,Array(t)).map(function(e,r){return\"a\"+(r+1)})}function anyNeedsWireWrite(t,e){return t.reduce(function(r,s){return r||s.needsWireWrite(e)},!1)}function anyNeedsWireRead(t,e){return t.reduce(function(r,s){return r||!!s.needsWireRead(e)},!1)}function makeWireRead(t,e,r,s){var a=t.length;return r.makeWireRead?r.makeWireRead(s,t,a):r.wireRead?(t[a]=r.wireRead,\"(convertParamList[\"+a+\"](\"+s+\"))\"):s}function makeWireWrite(t,e,r,s){var a,n=t.length;return r.makeWireWrite?a=r.makeWireWrite(s,e,t,n):a=r.wireWrite,a?typeof a==\"string\"?a:(t[n]=a,\"(convertParamList[\"+n+\"](\"+s+\"))\"):s}function buildCallerFunction(dynCall,ptrType,ptr,num,policyTbl,needsWireWrite,prefix,returnType,argTypeList,mask,err){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireRead(convertParamList,policyTbl,returnType,\"dynCall(\"+[prefix].concat(argList.map(function(t,e){return makeWireWrite(convertParamList,policyTbl,argTypeList[e],t)})).join(\",\")+\")\"),resourceSet=_nbind.listResources([returnType],argTypeList),sourceCode=\"function(\"+argList.join(\",\")+\"){\"+(mask?\"this.__nbindFlags&mask&&err();\":\"\")+resourceSet.makeOpen()+\"var r=\"+callExpression+\";\"+resourceSet.makeClose()+\"return r;}\";return eval(\"(\"+sourceCode+\")\")}function buildJSCallerFunction(returnType,argTypeList){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireWrite(convertParamList,null,returnType,\"_nbind.externalList[num].data(\"+argList.map(function(t,e){return makeWireRead(convertParamList,null,argTypeList[e],t)}).join(\",\")+\")\"),resourceSet=_nbind.listResources(argTypeList,[returnType]);resourceSet.remove(_nbind.resources.pool);var sourceCode=\"function(\"+[\"dummy\",\"num\"].concat(argList).join(\",\")+\"){\"+resourceSet.makeOpen()+\"var r=\"+callExpression+\";\"+resourceSet.makeClose()+\"return r;}\";return eval(\"(\"+sourceCode+\")\")}_nbind.buildJSCallerFunction=buildJSCallerFunction;function makeJSCaller(t){var e=t.length-1,r=_nbind.getTypes(t,\"callback\"),s=r[0],a=r.slice(1),n=anyNeedsWireRead(a,null),c=s.needsWireWrite(null);if(!c&&!n)switch(e){case 0:return function(f,p){return _nbind.externalList[p].data()};case 1:return function(f,p,h){return _nbind.externalList[p].data(h)};case 2:return function(f,p,h,E){return _nbind.externalList[p].data(h,E)};case 3:return function(f,p,h,E,C){return _nbind.externalList[p].data(h,E,C)};default:break}return buildJSCallerFunction(s,a)}_nbind.makeJSCaller=makeJSCaller;function makeMethodCaller(t,e){var r=e.typeList.length-1,s=e.typeList.slice(0);s.splice(1,0,\"uint32_t\",e.boundID);var a=_nbind.getTypes(s,e.title),n=a[0],c=a.slice(3),f=n.needsWireRead(e.policyTbl),p=anyNeedsWireWrite(c,e.policyTbl),h=e.ptr,E=e.num,C=_nbind.getDynCall(a,e.title),S=~e.flags&1;function b(){throw new Error(\"Calling a non-const method on a const object\")}if(!f&&!p)switch(r){case 0:return function(){return this.__nbindFlags&S?b():C(h,E,_nbind.pushPointer(this,t))};case 1:return function(I){return this.__nbindFlags&S?b():C(h,E,_nbind.pushPointer(this,t),I)};case 2:return function(I,T){return this.__nbindFlags&S?b():C(h,E,_nbind.pushPointer(this,t),I,T)};case 3:return function(I,T,N){return this.__nbindFlags&S?b():C(h,E,_nbind.pushPointer(this,t),I,T,N)};default:break}return buildCallerFunction(C,t,h,E,e.policyTbl,p,\"ptr,num,pushPointer(this,ptrType)\",n,c,S,b)}_nbind.makeMethodCaller=makeMethodCaller;function makeCaller(t){var e=t.typeList.length-1,r=_nbind.getTypes(t.typeList,t.title),s=r[0],a=r.slice(1),n=s.needsWireRead(t.policyTbl),c=anyNeedsWireWrite(a,t.policyTbl),f=t.direct,p=t.ptr;if(t.direct&&!n&&!c){var h=_nbind.getDynCall(r,t.title);switch(e){case 0:return function(){return h(f)};case 1:return function(b){return h(f,b)};case 2:return function(b,I){return h(f,b,I)};case 3:return function(b,I,T){return h(f,b,I,T)};default:break}p=0}var E;if(p){var C=t.typeList.slice(0);C.splice(1,0,\"uint32_t\"),r=_nbind.getTypes(C,t.title),E=\"ptr,num\"}else p=f,E=\"ptr\";var S=_nbind.getDynCall(r,t.title);return buildCallerFunction(S,null,p,t.num,t.policyTbl,c,E,s,a)}_nbind.makeCaller=makeCaller;function makeOverloader(t,e){var r=[];function s(){return r[arguments.length].apply(this,arguments)}return s.addMethod=function(a,n){r[n]=a},s.addMethod(t,e),s}_nbind.makeOverloader=makeOverloader;var Resource=function(){function t(e,r){var s=this;this.makeOpen=function(){return Object.keys(s.openTbl).join(\"\")},this.makeClose=function(){return Object.keys(s.closeTbl).join(\"\")},this.openTbl={},this.closeTbl={},e&&(this.openTbl[e]=!0),r&&(this.closeTbl[r]=!0)}return t.prototype.add=function(e){for(var r=0,s=Object.keys(e.openTbl);r<s.length;r++){var a=s[r];this.openTbl[a]=!0}for(var n=0,c=Object.keys(e.closeTbl);n<c.length;n++){var a=c[n];this.closeTbl[a]=!0}},t.prototype.remove=function(e){for(var r=0,s=Object.keys(e.openTbl);r<s.length;r++){var a=s[r];delete this.openTbl[a]}for(var n=0,c=Object.keys(e.closeTbl);n<c.length;n++){var a=c[n];delete this.closeTbl[a]}},t}();_nbind.Resource=Resource;function listResources(t,e){for(var r=new Resource,s=0,a=t;s<a.length;s++)for(var n=a[s],c=0,f=n.readResources||[];c<f.length;c++){var p=f[c];r.add(p)}for(var h=0,E=e;h<E.length;h++)for(var n=E[h],C=0,S=n.writeResources||[];C<S.length;C++){var p=S[C];r.add(p)}return r}_nbind.listResources=listResources,_nbind.resources={pool:new Resource(\"var used=HEAPU32[_nbind.Pool.usedPtr],page=HEAPU32[_nbind.Pool.pagePtr];\",\"_nbind.Pool.lreset(used,page);\")};var ExternalBuffer=function(t){__extends(e,t);function e(r,s){var a=t.call(this,r)||this;return a.ptr=s,a}return e.prototype.free=function(){_free(this.ptr)},e}(_nbind.External);function getBuffer(t){return t instanceof ArrayBuffer?new Uint8Array(t):t instanceof DataView?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function pushBuffer(t,e){if(t==null&&e&&e.Nullable&&(t=[]),typeof t!=\"object\")throw new Error(\"Type mismatch\");var r=t,s=r.byteLength||r.length;if(!s&&s!==0&&r.byteLength!==0)throw new Error(\"Type mismatch\");var a=_nbind.Pool.lalloc(8),n=_malloc(s),c=a/4;return HEAPU32[c++]=s,HEAPU32[c++]=n,HEAPU32[c++]=new ExternalBuffer(t,n).register(),HEAPU8.set(getBuffer(t),n),a}var BufferType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=pushBuffer,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,s){return function(a){return pushBuffer(a,s)}},e}(_nbind.BindType);_nbind.BufferType=BufferType;function commitBuffer(t,e,r){var s=_nbind.externalList[t].data,a=Buffer;if(typeof Buffer!=\"function\"&&(a=function(){}),!(s instanceof Array)){var n=HEAPU8.subarray(e,e+r);if(s instanceof a){var c=void 0;typeof Buffer.from==\"function\"&&Buffer.from.length>=3?c=Buffer.from(n):c=new Buffer(n),c.copy(s)}else getBuffer(s).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t<e.length;t++){var r=e[t];r.__nbindState&3||r.free()}dirtyList=[],gcTimer=0}_nbind.mark=function(t){};function toggleLightGC(t){t?_nbind.mark=function(e){dirtyList.push(e),gcTimer||(gcTimer=setTimeout(sweep,0))}:_nbind.mark=function(e){}}_nbind.toggleLightGC=toggleLightGC}(_nbind),Module.requestFullScreen=function t(e,r,s){Module.printErr(\"Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead.\"),Module.requestFullScreen=Module.requestFullscreen,Browser.requestFullScreen(e,r,s)},Module.requestFullscreen=function t(e,r,s){Browser.requestFullscreen(e,r,s)},Module.requestAnimationFrame=function t(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function t(e,r,s){Browser.setCanvasSize(e,r,s)},Module.pauseMainLoop=function t(){Browser.mainLoop.pause()},Module.resumeMainLoop=function t(){Browser.mainLoop.resume()},Module.getUserMedia=function t(){Browser.getUserMedia()},Module.createContext=function t(e,r,s,a){return Browser.createContext(e,r,s,a)},ENVIRONMENT_IS_NODE?_emscripten_get_now=function(){var e=process.hrtime();return e[0]*1e3+e[1]/1e6}:typeof dateNow<\"u\"?_emscripten_get_now=dateNow:typeof self==\"object\"&&self.performance&&typeof self.performance.now==\"function\"?_emscripten_get_now=function(){return self.performance.now()}:typeof performance==\"object\"&&typeof performance.now==\"function\"?_emscripten_get_now=function(){return performance.now()}:_emscripten_get_now=Date.now,__ATEXIT__.push(function(){var t=Module._fflush;t&&t(0);var e=___syscall146.printChar;if(e){var r=___syscall146.buffers;r[1].length&&e(1,10),r[2].length&&e(2,10)}}),DYNAMICTOP_PTR=allocate(1,\"i32\",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,s,a,n){try{Module.dynCall_viiiii(t,e,r,s,a,n)}catch(c){if(typeof c!=\"number\"&&c!==\"longjmp\")throw c;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(s){if(typeof s!=\"number\"&&s!==\"longjmp\")throw s;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(s){if(typeof s!=\"number\"&&s!==\"longjmp\")throw s;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,s){try{return Module.dynCall_fiff(t,e,r,s)}catch(a){if(typeof a!=\"number\"&&a!==\"longjmp\")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!=\"number\"&&r!==\"longjmp\")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(s){if(typeof s!=\"number\"&&s!==\"longjmp\")throw s;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!=\"number\"&&r!==\"longjmp\")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,s,a){try{Module.dynCall_viddi(t,e,r,s,a)}catch(n){if(typeof n!=\"number\"&&n!==\"longjmp\")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,s){try{Module.dynCall_vidd(t,e,r,s)}catch(a){if(typeof a!=\"number\"&&a!==\"longjmp\")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,s){try{return Module.dynCall_iiii(t,e,r,s)}catch(a){if(typeof a!=\"number\"&&a!==\"longjmp\")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,s){try{return Module.dynCall_diii(t,e,r,s)}catch(a){if(typeof a!=\"number\"&&a!==\"longjmp\")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!=\"number\"&&r!==\"longjmp\")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(s){if(typeof s!=\"number\"&&s!==\"longjmp\")throw s;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(s){if(typeof s!=\"number\"&&s!==\"longjmp\")throw s;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,s,a,n){try{Module.dynCall_viiddi(t,e,r,s,a,n)}catch(c){if(typeof c!=\"number\"&&c!==\"longjmp\")throw c;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,s,a,n,c){try{Module.dynCall_viiiiii(t,e,r,s,a,n,c)}catch(f){if(typeof f!=\"number\"&&f!==\"longjmp\")throw f;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(s){if(typeof s!=\"number\"&&s!==\"longjmp\")throw s;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!=\"number\"&&e!==\"longjmp\")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,s,a,n){try{return Module.dynCall_iiiiii(t,e,r,s,a,n)}catch(c){if(typeof c!=\"number\"&&c!==\"longjmp\")throw c;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,s,a){try{Module.dynCall_viiid(t,e,r,s,a)}catch(n){if(typeof n!=\"number\"&&n!==\"longjmp\")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,s,a,n,c){try{Module.dynCall_viififi(t,e,r,s,a,n,c)}catch(f){if(typeof f!=\"number\"&&f!==\"longjmp\")throw f;Module.setThrew(1,0)}}function invoke_viii(t,e,r,s){try{Module.dynCall_viii(t,e,r,s)}catch(a){if(typeof a!=\"number\"&&a!==\"longjmp\")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!=\"number\"&&e!==\"longjmp\")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,s){try{Module.dynCall_viid(t,e,r,s)}catch(a){if(typeof a!=\"number\"&&a!==\"longjmp\")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(s){if(typeof s!=\"number\"&&s!==\"longjmp\")throw s;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,s,a){try{Module.dynCall_viiii(t,e,r,s,a)}catch(n){if(typeof n!=\"number\"&&n!==\"longjmp\")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var s=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),c=new t.Uint8Array(r),f=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),C=e.DYNAMICTOP_PTR|0,S=e.tempDoublePtr|0,b=e.ABORT|0,I=e.STACKTOP|0,T=e.STACK_MAX|0,N=e.cttz_i8|0,U=e.___dso_handle|0,W=0,ee=0,ie=0,ue=0,le=t.NaN,me=t.Infinity,pe=0,Be=0,Ce=0,g=0,we=0,ye=0,Ae=t.Math.floor,se=t.Math.abs,X=t.Math.sqrt,De=t.Math.pow,Te=t.Math.cos,mt=t.Math.sin,j=t.Math.tan,rt=t.Math.acos,Fe=t.Math.asin,Ne=t.Math.atan,be=t.Math.atan2,Ve=t.Math.exp,ke=t.Math.log,it=t.Math.ceil,Ue=t.Math.imul,x=t.Math.min,w=t.Math.max,P=t.Math.clz32,y=t.Math.fround,F=e.abort,z=e.assert,Z=e.enlargeMemory,$=e.getTotalMemory,oe=e.abortOnCannotGrowMemory,xe=e.invoke_viiiii,Re=e.invoke_vif,lt=e.invoke_vid,Ct=e.invoke_fiff,qt=e.invoke_vi,ir=e.invoke_vii,bt=e.invoke_ii,gn=e.invoke_viddi,br=e.invoke_vidd,Ir=e.invoke_iiii,Or=e.invoke_diii,nn=e.invoke_di,ai=e.invoke_iid,Io=e.invoke_iii,ts=e.invoke_viiddi,$s=e.invoke_viiiiii,Co=e.invoke_dii,Hi=e.invoke_i,eo=e.invoke_iiiiii,wo=e.invoke_viiid,QA=e.invoke_viififi,Af=e.invoke_viii,dh=e.invoke_v,mh=e.invoke_viid,to=e.invoke_idd,jn=e.invoke_viiii,Rs=e._emscripten_asm_const_iiiii,ro=e._emscripten_asm_const_iiidddddd,ou=e._emscripten_asm_const_iiiid,au=e.__nbind_reference_external,lu=e._emscripten_asm_const_iiiiiiii,RA=e._removeAccessorPrefix,TA=e._typeModule,oa=e.__nbind_register_pool,aa=e.__decorate,FA=e._llvm_stackrestore,gr=e.___cxa_atexit,Bo=e.__extends,Me=e.__nbind_get_value_object,cu=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Cr=e._emscripten_set_main_loop_timing,pf=e.__nbind_register_primitive,NA=e.__nbind_register_type,OA=e._emscripten_memcpy_big,uu=e.__nbind_register_function,fu=e.___setErrNo,oc=e.__nbind_register_class,ve=e.__nbind_finish,Nt=e._abort,ac=e._nbind_value,Oi=e._llvm_stacksave,no=e.___syscall54,Tt=e._defineHidden,xn=e._emscripten_set_main_loop,la=e._emscripten_get_now,ji=e.__nbind_register_callback_signature,Li=e._emscripten_asm_const_iiiiii,Na=e.__nbind_free_external,dn=e._emscripten_asm_const_iiii,Kn=e._emscripten_asm_const_iiididi,Au=e.___syscall6,yh=e._atexit,Oa=e.___syscall140,La=e.___syscall146,Ma=y(0);let $e=y(0);function Ua(o){o=o|0;var l=0;return l=I,I=I+o|0,I=I+15&-16,l|0}function hf(){return I|0}function lc(o){o=o|0,I=o}function wn(o,l){o=o|0,l=l|0,I=o,T=l}function ca(o,l){o=o|0,l=l|0,W||(W=o,ee=l)}function LA(o){o=o|0,ye=o}function MA(){return ye|0}function ua(){var o=0,l=0;Qr(8104,8,400)|0,Qr(8504,408,540)|0,o=9044,l=o+44|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));s[9088]=0,s[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,gr(17,8104,U|0)|0}function Bl(o){o=o|0,dt(o+948|0)}function Mt(o){return o=y(o),((fb(o)|0)&2147483647)>>>0>2139095040|0}function kn(o,l,u){o=o|0,l=l|0,u=u|0;e:do if(n[o+(l<<3)+4>>2]|0)o=o+(l<<3)|0;else{if((l|2|0)==3&&n[o+60>>2]|0){o=o+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[o+52>>2]|0){o=o+48|0;break e}break}default:}if(n[o+68>>2]|0){o=o+64|0;break}else{o=(l|1|0)==5?948:u;break}}while(!1);return o|0}function fa(o){o=o|0;var l=0;return l=_b(1e3)|0,Ha(o,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Qr(l|0,8104,1e3)|0,s[o+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=o,l|0}function Ha(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;d=I,I=I+16|0,A=d,l||(n[A>>2]=u,Wg(o,5,3197,A)),I=d}function rs(){return fa(956)|0}function cc(o){o=o|0;var l=0;return l=Kt(1e3)|0,pu(l,o),Ha(n[o+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function pu(o,l){o=o|0,l=l|0;var u=0;Qr(o|0,l|0,948)|0,Dy(o+948|0,l+948|0),u=o+960|0,o=l+960|0,l=u+40|0;do n[u>>2]=n[o>>2],u=u+4|0,o=o+4|0;while((u|0)<(l|0))}function uc(o){o=o|0;var l=0,u=0,A=0,d=0;if(l=o+944|0,u=n[l>>2]|0,u|0&&(ja(u+948|0,o)|0,n[l>>2]=0),u=Mi(o)|0,u|0){l=0;do n[(Is(o,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(u|0))}u=o+948|0,A=n[u>>2]|0,d=o+952|0,l=n[d>>2]|0,(l|0)!=(A|0)&&(n[d>>2]=l+(~((l+-4-A|0)>>>2)<<2)),vl(u),Hb(o),n[2276]=(n[2276]|0)+-1}function ja(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0;A=n[o>>2]|0,k=o+4|0,u=n[k>>2]|0,m=u;e:do if((A|0)==(u|0))d=A,B=4;else for(o=A;;){if((n[o>>2]|0)==(l|0)){d=o,B=4;break e}if(o=o+4|0,(o|0)==(u|0)){o=0;break}}while(!1);return(B|0)==4&&((d|0)!=(u|0)?(A=d+4|0,o=m-A|0,l=o>>2,l&&(Q2(d|0,A|0,o|0)|0,u=n[k>>2]|0),o=d+(l<<2)|0,(u|0)==(o|0)||(n[k>>2]=u+(~((u+-4-o|0)>>>2)<<2)),o=1):o=0),o|0}function Mi(o){return o=o|0,(n[o+952>>2]|0)-(n[o+948>>2]|0)>>2|0}function Is(o,l){o=o|0,l=l|0;var u=0;return u=n[o+948>>2]|0,(n[o+952>>2]|0)-u>>2>>>0>l>>>0?o=n[u+(l<<2)>>2]|0:o=0,o|0}function vl(o){o=o|0;var l=0,u=0,A=0,d=0;A=I,I=I+32|0,l=A,d=n[o>>2]|0,u=(n[o+4>>2]|0)-d|0,((n[o+8>>2]|0)-d|0)>>>0>u>>>0&&(d=u>>2,ky(l,d,d,o+8|0),Ab(o,l),Qy(l)),I=A}function gf(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0;M=Mi(o)|0;do if(M|0){if((n[(Is(o,0)|0)+944>>2]|0)==(o|0)){if(!(ja(o+948|0,l)|0))break;Qr(l+400|0,8504,540)|0,n[l+944>>2]=0,Oe(o);break}B=n[(n[o+976>>2]|0)+12>>2]|0,k=o+948|0,R=(B|0)==0,u=0,m=0;do A=n[(n[k>>2]|0)+(m<<2)>>2]|0,(A|0)==(l|0)?Oe(o):(d=cc(A)|0,n[(n[k>>2]|0)+(u<<2)>>2]=d,n[d+944>>2]=o,R||gU[B&15](A,d,o,u),u=u+1|0),m=m+1|0;while((m|0)!=(M|0));if(u>>>0<M>>>0){R=o+948|0,k=o+952|0,B=u,u=n[k>>2]|0;do m=(n[R>>2]|0)+(B<<2)|0,A=m+4|0,d=u-A|0,l=d>>2,l&&(Q2(m|0,A|0,d|0)|0,u=n[k>>2]|0),d=u,A=m+(l<<2)|0,(d|0)!=(A|0)&&(u=d+(~((d+-4-A|0)>>>2)<<2)|0,n[k>>2]=u),B=B+1|0;while((B|0)!=(M|0))}}while(!1)}function fc(o){o=o|0;var l=0,u=0,A=0,d=0;wi(o,(Mi(o)|0)==0,2491),wi(o,(n[o+944>>2]|0)==0,2545),l=o+948|0,u=n[l>>2]|0,A=o+952|0,d=n[A>>2]|0,(d|0)!=(u|0)&&(n[A>>2]=d+(~((d+-4-u|0)>>>2)<<2)),vl(l),l=o+976|0,u=n[l>>2]|0,Qr(o|0,8104,1e3)|0,s[u+2>>0]|0&&(n[o+4>>2]=2,n[o+12>>2]=4),n[l>>2]=u}function wi(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;d=I,I=I+16|0,A=d,l||(n[A>>2]=u,xo(o,5,3197,A)),I=d}function Qn(){return n[2276]|0}function Ac(){var o=0;return o=_b(20)|0,Ke((o|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[o>>2]=n[239],n[o+4>>2]=n[240],n[o+8>>2]=n[241],n[o+12>>2]=n[242],n[o+16>>2]=n[243],o|0}function Ke(o,l){o=o|0,l=l|0;var u=0,A=0;A=I,I=I+16|0,u=A,o||(n[u>>2]=l,xo(0,5,3197,u)),I=A}function st(o){o=o|0,Hb(o),n[2277]=(n[2277]|0)+-1}function St(o,l){o=o|0,l=l|0;var u=0;l?(wi(o,(Mi(o)|0)==0,2629),u=1):(u=0,l=0),n[o+964>>2]=l,n[o+988>>2]=u}function lr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,m=A+8|0,d=A+4|0,B=A,n[d>>2]=l,wi(o,(n[l+944>>2]|0)==0,2709),wi(o,(n[o+964>>2]|0)==0,2763),te(o),l=o+948|0,n[B>>2]=(n[l>>2]|0)+(u<<2),n[m>>2]=n[B>>2],Ee(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=o,Oe(o),I=A}function te(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;if(u=Mi(o)|0,u|0&&(n[(Is(o,0)|0)+944>>2]|0)!=(o|0)){A=n[(n[o+976>>2]|0)+12>>2]|0,d=o+948|0,m=(A|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,k=cc(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=k,n[k+944>>2]=o,m||gU[A&15](B,k,o,l),l=l+1|0;while((l|0)!=(u|0))}}function Ee(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0;tt=I,I=I+64|0,q=tt+52|0,k=tt+48|0,ae=tt+28|0,Ye=tt+24|0,Le=tt+20|0,Qe=tt,A=n[o>>2]|0,m=A,l=A+((n[l>>2]|0)-m>>2<<2)|0,A=o+4|0,d=n[A>>2]|0,B=o+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[u>>2],n[A>>2]=(n[A>>2]|0)+4;break}pb(o,l,d,l+4|0),l>>>0<=u>>>0&&(u=(n[A>>2]|0)>>>0>u>>>0?u+4|0:u),n[l>>2]=n[u>>2]}else{A=(d-m>>2)+1|0,d=O(o)|0,d>>>0<A>>>0&&sn(o),L=n[o>>2]|0,M=(n[B>>2]|0)-L|0,m=M>>1,ky(Qe,M>>2>>>0<d>>>1>>>0?m>>>0<A>>>0?A:m:d,l-L>>2,o+8|0),L=Qe+8|0,A=n[L>>2]|0,m=Qe+12|0,M=n[m>>2]|0,B=M,R=A;do if((A|0)==(M|0)){if(M=Qe+4|0,A=n[M>>2]|0,Xe=n[Qe>>2]|0,d=Xe,A>>>0<=Xe>>>0){A=B-d>>1,A=A|0?A:1,ky(ae,A,A>>>2,n[Qe+16>>2]|0),n[Ye>>2]=n[M>>2],n[Le>>2]=n[L>>2],n[k>>2]=n[Ye>>2],n[q>>2]=n[Le>>2],o2(ae,k,q),A=n[Qe>>2]|0,n[Qe>>2]=n[ae>>2],n[ae>>2]=A,A=ae+4|0,Xe=n[M>>2]|0,n[M>>2]=n[A>>2],n[A>>2]=Xe,A=ae+8|0,Xe=n[L>>2]|0,n[L>>2]=n[A>>2],n[A>>2]=Xe,A=ae+12|0,Xe=n[m>>2]|0,n[m>>2]=n[A>>2],n[A>>2]=Xe,Qy(ae),A=n[L>>2]|0;break}m=A,B=((m-d>>2)+1|0)/-2|0,k=A+(B<<2)|0,d=R-m|0,m=d>>2,m&&(Q2(k|0,A|0,d|0)|0,A=n[M>>2]|0),Xe=k+(m<<2)|0,n[L>>2]=Xe,n[M>>2]=A+(B<<2),A=Xe}while(!1);n[A>>2]=n[u>>2],n[L>>2]=(n[L>>2]|0)+4,l=hb(o,Qe,l)|0,Qy(Qe)}while(!1);return I=tt,l|0}function Oe(o){o=o|0;var l=0;do{if(l=o+984|0,s[l>>0]|0)break;s[l>>0]=1,h[o+504>>2]=y(le),o=n[o+944>>2]|0}while(o|0)}function dt(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-4-A|0)>>>2)<<2)),It(u))}function Et(o){return o=o|0,n[o+944>>2]|0}function Pt(o){o=o|0,wi(o,(n[o+964>>2]|0)!=0,2832),Oe(o)}function tr(o){return o=o|0,(s[o+984>>0]|0)!=0|0}function An(o,l){o=o|0,l=l|0,s6e(o,l,400)|0&&(Qr(o|0,l|0,400)|0,Oe(o))}function li(o){o=o|0;var l=$e;return l=y(h[o+44>>2]),o=Mt(l)|0,y(o?y(0):l)}function Gi(o){o=o|0;var l=$e;return l=y(h[o+48>>2]),Mt(l)|0&&(l=s[(n[o+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function Rn(o,l){o=o|0,l=l|0,n[o+980>>2]=l}function Ga(o){return o=o|0,n[o+980>>2]|0}function my(o,l){o=o|0,l=l|0;var u=0;u=o+4|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function X1(o){return o=o|0,n[o+4>>2]|0}function vo(o,l){o=o|0,l=l|0;var u=0;u=o+8|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function yy(o){return o=o|0,n[o+8>>2]|0}function Eh(o,l){o=o|0,l=l|0;var u=0;u=o+12|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function $1(o){return o=o|0,n[o+12>>2]|0}function So(o,l){o=o|0,l=l|0;var u=0;u=o+16|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Ih(o){return o=o|0,n[o+16>>2]|0}function Ch(o,l){o=o|0,l=l|0;var u=0;u=o+20|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function hu(o){return o=o|0,n[o+20>>2]|0}function wh(o,l){o=o|0,l=l|0;var u=0;u=o+24|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Fg(o){return o=o|0,n[o+24>>2]|0}function Ng(o,l){o=o|0,l=l|0;var u=0;u=o+28|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Og(o){return o=o|0,n[o+28>>2]|0}function Ey(o,l){o=o|0,l=l|0;var u=0;u=o+32|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function df(o){return o=o|0,n[o+32>>2]|0}function Do(o,l){o=o|0,l=l|0;var u=0;u=o+36|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Sl(o){return o=o|0,n[o+36>>2]|0}function Bh(o,l){o=o|0,l=y(l);var u=0;u=o+40|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function Lg(o,l){o=o|0,l=y(l);var u=0;u=o+44|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function Dl(o,l){o=o|0,l=y(l);var u=0;u=o+48|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function Pl(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+52|0,d=o+56|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Iy(o,l){o=o|0,l=y(l);var u=0,A=0;A=o+52|0,u=o+56|0,y(h[A>>2])==l&&(n[u>>2]|0)==2||(h[A>>2]=l,A=Mt(l)|0,n[u>>2]=A?3:2,Oe(o))}function UA(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+52|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Cy(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+132+(l<<3)|0,l=o+132+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function wy(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=m?0:2,d=o+132+(l<<3)|0,l=o+132+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function _A(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=l+132+(u<<3)|0,l=n[A+4>>2]|0,u=o,n[u>>2]=n[A>>2],n[u+4>>2]=l}function HA(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+60+(l<<3)|0,l=o+60+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function Y(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=m?0:2,d=o+60+(l<<3)|0,l=o+60+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function xt(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=l+60+(u<<3)|0,l=n[A+4>>2]|0,u=o,n[u>>2]=n[A>>2],n[u+4>>2]=l}function jA(o,l){o=o|0,l=l|0;var u=0;u=o+60+(l<<3)+4|0,(n[u>>2]|0)!=3&&(h[o+60+(l<<3)>>2]=y(le),n[u>>2]=3,Oe(o))}function Po(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+204+(l<<3)|0,l=o+204+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function mf(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=m?0:2,d=o+204+(l<<3)|0,l=o+204+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function yt(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=l+204+(u<<3)|0,l=n[A+4>>2]|0,u=o,n[u>>2]=n[A>>2],n[u+4>>2]=l}function gu(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+276+(l<<3)|0,l=o+276+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function By(o,l){return o=o|0,l=l|0,y(h[o+276+(l<<3)>>2])}function Mg(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+348|0,d=o+352|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function e2(o,l){o=o|0,l=y(l);var u=0,A=0;A=o+348|0,u=o+352|0,y(h[A>>2])==l&&(n[u>>2]|0)==2||(h[A>>2]=l,A=Mt(l)|0,n[u>>2]=A?3:2,Oe(o))}function vh(o){o=o|0;var l=0;l=o+352|0,(n[l>>2]|0)!=3&&(h[o+348>>2]=y(le),n[l>>2]=3,Oe(o))}function ur(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+348|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Ki(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+356|0,d=o+360|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function yf(o,l){o=o|0,l=y(l);var u=0,A=0;A=o+356|0,u=o+360|0,y(h[A>>2])==l&&(n[u>>2]|0)==2||(h[A>>2]=l,A=Mt(l)|0,n[u>>2]=A?3:2,Oe(o))}function qa(o){o=o|0;var l=0;l=o+360|0,(n[l>>2]|0)!=3&&(h[o+356>>2]=y(le),n[l>>2]=3,Oe(o))}function Ug(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+356|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function du(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+364|0,d=o+368|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Ef(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+364|0,d=o+368|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function wt(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+364|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function di(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+372|0,d=o+376|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function GA(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+372|0,d=o+376|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Wa(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+372|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Aa(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+380|0,d=o+384|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Ya(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+380|0,d=o+384|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function _g(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+380|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Sh(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+388|0,d=o+392|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Hg(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+388|0,d=o+392|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function vy(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+388|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function qA(o,l){o=o|0,l=y(l);var u=0;u=o+396|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function jg(o){return o=o|0,y(h[o+396>>2])}function mu(o){return o=o|0,y(h[o+400>>2])}function yu(o){return o=o|0,y(h[o+404>>2])}function If(o){return o=o|0,y(h[o+408>>2])}function Ts(o){return o=o|0,y(h[o+412>>2])}function Eu(o){return o=o|0,y(h[o+416>>2])}function Gn(o){return o=o|0,y(h[o+420>>2])}function ns(o,l){switch(o=o|0,l=l|0,wi(o,(l|0)<6,2918),l|0){case 0:{l=(n[o+496>>2]|0)==2?5:4;break}case 2:{l=(n[o+496>>2]|0)==2?4:5;break}default:}return y(h[o+424+(l<<2)>>2])}function bi(o,l){switch(o=o|0,l=l|0,wi(o,(l|0)<6,2918),l|0){case 0:{l=(n[o+496>>2]|0)==2?5:4;break}case 2:{l=(n[o+496>>2]|0)==2?4:5;break}default:}return y(h[o+448+(l<<2)>>2])}function WA(o,l){switch(o=o|0,l=l|0,wi(o,(l|0)<6,2918),l|0){case 0:{l=(n[o+496>>2]|0)==2?5:4;break}case 2:{l=(n[o+496>>2]|0)==2?4:5;break}default:}return y(h[o+472+(l<<2)>>2])}function Cf(o,l){o=o|0,l=l|0;var u=0,A=$e;return u=n[o+4>>2]|0,(u|0)==(n[l+4>>2]|0)?u?(A=y(h[o>>2]),o=y(se(y(A-y(h[l>>2]))))<y(999999974e-13)):o=1:o=0,o|0}function mn(o,l){o=y(o),l=y(l);var u=0;return Mt(o)|0?u=Mt(l)|0:u=y(se(y(o-l)))<y(999999974e-13),u|0}function Gg(o,l){o=o|0,l=l|0,qg(o,l)}function qg(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u+4|0,n[A>>2]=0,n[A+4>>2]=0,n[A+8>>2]=0,cu(A|0,o|0,l|0,0),xo(o,3,(s[A+11>>0]|0)<0?n[A>>2]|0:A,u),b6e(A),I=u}function is(o,l,u,A){o=y(o),l=y(l),u=u|0,A=A|0;var d=$e;o=y(o*l),d=y(cU(o,y(1)));do if(mn(d,y(0))|0)o=y(o-d);else{if(o=y(o-d),mn(d,y(1))|0){o=y(o+y(1));break}if(u){o=y(o+y(1));break}A||(d>y(.5)?d=y(1):(A=mn(d,y(.5))|0,d=y(A?1:0)),o=y(o+d))}while(!1);return y(o/l)}function bl(o,l,u,A,d,m,B,k,R,M,L,q,ae){o=o|0,l=y(l),u=u|0,A=y(A),d=d|0,m=y(m),B=B|0,k=y(k),R=y(R),M=y(M),L=y(L),q=y(q),ae=ae|0;var Ye=0,Le=$e,Qe=$e,tt=$e,Xe=$e,ct=$e,He=$e;return R<y(0)|M<y(0)?ae=0:(ae|0&&(Le=y(h[ae+4>>2]),Le!=y(0))?(tt=y(is(l,Le,0,0)),Xe=y(is(A,Le,0,0)),Qe=y(is(m,Le,0,0)),Le=y(is(k,Le,0,0))):(Qe=m,tt=l,Le=k,Xe=A),(d|0)==(o|0)?Ye=mn(Qe,tt)|0:Ye=0,(B|0)==(u|0)?ae=mn(Le,Xe)|0:ae=0,!Ye&&(ct=y(l-L),!(bo(o,ct,R)|0))&&!(wf(o,ct,d,R)|0)?Ye=Bf(o,ct,d,m,R)|0:Ye=1,!ae&&(He=y(A-q),!(bo(u,He,M)|0))&&!(wf(u,He,B,M)|0)?ae=Bf(u,He,B,k,M)|0:ae=1,ae=Ye&ae),ae|0}function bo(o,l,u){return o=o|0,l=y(l),u=y(u),(o|0)==1?o=mn(l,u)|0:o=0,o|0}function wf(o,l,u,A){return o=o|0,l=y(l),u=u|0,A=y(A),(o|0)==2&(u|0)==0?l>=A?o=1:o=mn(l,A)|0:o=0,o|0}function Bf(o,l,u,A,d){return o=o|0,l=y(l),u=u|0,A=y(A),d=y(d),(o|0)==2&(u|0)==2&A>l?d<=l?o=1:o=mn(l,d)|0:o=0,o|0}function xl(o,l,u,A,d,m,B,k,R,M,L){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=m|0,B=y(B),k=y(k),R=R|0,M=M|0,L=L|0;var q=0,ae=0,Ye=0,Le=0,Qe=$e,tt=$e,Xe=0,ct=0,He=0,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0,Hn=$e,Ro=$e,To=$e,Fo=0,Xa=0;cr=I,I=I+160|0,$t=cr+152|0,fr=cr+120|0,Gr=cr+104|0,He=cr+72|0,Le=cr+56|0,Lt=cr+8|0,ct=cr,We=(n[2279]|0)+1|0,n[2279]=We,Rr=o+984|0,s[Rr>>0]|0&&(n[o+512>>2]|0)!=(n[2278]|0)?Xe=4:(n[o+516>>2]|0)==(A|0)?Hr=0:Xe=4,(Xe|0)==4&&(n[o+520>>2]=0,n[o+924>>2]=-1,n[o+928>>2]=-1,h[o+932>>2]=y(-1),h[o+936>>2]=y(-1),Hr=1);e:do if(n[o+964>>2]|0)if(Qe=y(yn(o,2,B)),tt=y(yn(o,0,B)),q=o+916|0,To=y(h[q>>2]),Ro=y(h[o+920>>2]),Hn=y(h[o+932>>2]),bl(d,l,m,u,n[o+924>>2]|0,To,n[o+928>>2]|0,Ro,Hn,y(h[o+936>>2]),Qe,tt,L)|0)Xe=22;else if(Ye=n[o+520>>2]|0,!Ye)Xe=21;else for(ae=0;;){if(q=o+524+(ae*24|0)|0,Hn=y(h[q>>2]),Ro=y(h[o+524+(ae*24|0)+4>>2]),To=y(h[o+524+(ae*24|0)+16>>2]),bl(d,l,m,u,n[o+524+(ae*24|0)+8>>2]|0,Hn,n[o+524+(ae*24|0)+12>>2]|0,Ro,To,y(h[o+524+(ae*24|0)+20>>2]),Qe,tt,L)|0){Xe=22;break e}if(ae=ae+1|0,ae>>>0>=Ye>>>0){Xe=21;break}}else{if(R){if(q=o+916|0,!(mn(y(h[q>>2]),l)|0)){Xe=21;break}if(!(mn(y(h[o+920>>2]),u)|0)){Xe=21;break}if((n[o+924>>2]|0)!=(d|0)){Xe=21;break}q=(n[o+928>>2]|0)==(m|0)?q:0,Xe=22;break}if(Ye=n[o+520>>2]|0,!Ye)Xe=21;else for(ae=0;;){if(q=o+524+(ae*24|0)|0,mn(y(h[q>>2]),l)|0&&mn(y(h[o+524+(ae*24|0)+4>>2]),u)|0&&(n[o+524+(ae*24|0)+8>>2]|0)==(d|0)&&(n[o+524+(ae*24|0)+12>>2]|0)==(m|0)){Xe=22;break e}if(ae=ae+1|0,ae>>>0>=Ye>>>0){Xe=21;break}}}while(!1);do if((Xe|0)==21)s[11697]|0?(q=0,Xe=28):(q=0,Xe=31);else if((Xe|0)==22){if(ae=(s[11697]|0)!=0,!((q|0)!=0&(Hr^1)))if(ae){Xe=28;break}else{Xe=31;break}Le=q+16|0,n[o+908>>2]=n[Le>>2],Ye=q+20|0,n[o+912>>2]=n[Ye>>2],(s[11698]|0)==0|ae^1||(n[ct>>2]=Iu(We)|0,n[ct+4>>2]=We,xo(o,4,2972,ct),ae=n[o+972>>2]|0,ae|0&&ip[ae&127](o),d=pa(d,R)|0,m=pa(m,R)|0,Xa=+y(h[Le>>2]),Fo=+y(h[Ye>>2]),n[Lt>>2]=d,n[Lt+4>>2]=m,E[Lt+8>>3]=+l,E[Lt+16>>3]=+u,E[Lt+24>>3]=Xa,E[Lt+32>>3]=Fo,n[Lt+40>>2]=M,xo(o,4,2989,Lt))}while(!1);return(Xe|0)==28&&(ae=Iu(We)|0,n[Le>>2]=ae,n[Le+4>>2]=We,n[Le+8>>2]=Hr?3047:11699,xo(o,4,3038,Le),ae=n[o+972>>2]|0,ae|0&&ip[ae&127](o),Lt=pa(d,R)|0,Xe=pa(m,R)|0,n[He>>2]=Lt,n[He+4>>2]=Xe,E[He+8>>3]=+l,E[He+16>>3]=+u,n[He+24>>2]=M,xo(o,4,3049,He),Xe=31),(Xe|0)==31&&(Fs(o,l,u,A,d,m,B,k,R,L),s[11697]|0&&(ae=n[2279]|0,Lt=Iu(ae)|0,n[Gr>>2]=Lt,n[Gr+4>>2]=ae,n[Gr+8>>2]=Hr?3047:11699,xo(o,4,3083,Gr),ae=n[o+972>>2]|0,ae|0&&ip[ae&127](o),Lt=pa(d,R)|0,Gr=pa(m,R)|0,Fo=+y(h[o+908>>2]),Xa=+y(h[o+912>>2]),n[fr>>2]=Lt,n[fr+4>>2]=Gr,E[fr+8>>3]=Fo,E[fr+16>>3]=Xa,n[fr+24>>2]=M,xo(o,4,3092,fr)),n[o+516>>2]=A,q||(ae=o+520|0,q=n[ae>>2]|0,(q|0)==16&&(s[11697]|0&&xo(o,4,3124,$t),n[ae>>2]=0,q=0),R?q=o+916|0:(n[ae>>2]=q+1,q=o+524+(q*24|0)|0),h[q>>2]=l,h[q+4>>2]=u,n[q+8>>2]=d,n[q+12>>2]=m,n[q+16>>2]=n[o+908>>2],n[q+20>>2]=n[o+912>>2],q=0)),R&&(n[o+416>>2]=n[o+908>>2],n[o+420>>2]=n[o+912>>2],s[o+985>>0]=1,s[Rr>>0]=0),n[2279]=(n[2279]|0)+-1,n[o+512>>2]=n[2278],I=cr,Hr|(q|0)==0|0}function yn(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return A=y(K(o,l,u)),y(A+y(re(o,l,u)))}function xo(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=I,I=I+16|0,d=m,n[d>>2]=A,o?A=n[o+976>>2]|0:A=0,bh(A,o,l,u,d),I=m}function Iu(o){return o=o|0,(o>>>0>60?3201:3201+(60-o)|0)|0}function pa(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;return d=I,I=I+32|0,u=d+12|0,A=d,n[u>>2]=n[254],n[u+4>>2]=n[255],n[u+8>>2]=n[256],n[A>>2]=n[257],n[A+4>>2]=n[258],n[A+8>>2]=n[259],(o|0)>2?o=11699:o=n[(l?A:u)+(o<<2)>>2]|0,I=d,o|0}function Fs(o,l,u,A,d,m,B,k,R,M){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=m|0,B=y(B),k=y(k),R=R|0,M=M|0;var L=0,q=0,ae=0,Ye=0,Le=$e,Qe=$e,tt=$e,Xe=$e,ct=$e,He=$e,We=$e,Lt=0,Gr=0,fr=0,$t=$e,Rr=$e,Hr=0,cr=$e,Hn=0,Ro=0,To=0,Fo=0,Xa=0,Wh=0,Yh=0,gc=0,Vh=0,Tf=0,Ff=0,Jh=0,Kh=0,zh=0,on=0,dc=0,Zh=0,bu=0,Xh=$e,$h=$e,Nf=$e,Of=$e,xu=$e,oo=0,Ll=0,ma=0,mc=0,op=0,ap=$e,Lf=$e,lp=$e,cp=$e,ao=$e,Ms=$e,yc=0,Wn=$e,up=$e,No=$e,ku=$e,Oo=$e,Qu=$e,fp=0,Ap=0,Ru=$e,lo=$e,Ec=0,pp=0,hp=0,gp=0,Nr=$e,ui=0,Us=0,Lo=0,co=0,Mr=0,Ar=0,Ic=0,zt=$e,dp=0,Bi=0;Ic=I,I=I+16|0,oo=Ic+12|0,Ll=Ic+8|0,ma=Ic+4|0,mc=Ic,wi(o,(d|0)==0|(Mt(l)|0)^1,3326),wi(o,(m|0)==0|(Mt(u)|0)^1,3406),Us=At(o,A)|0,n[o+496>>2]=Us,Mr=dr(2,Us)|0,Ar=dr(0,Us)|0,h[o+440>>2]=y(K(o,Mr,B)),h[o+444>>2]=y(re(o,Mr,B)),h[o+428>>2]=y(K(o,Ar,B)),h[o+436>>2]=y(re(o,Ar,B)),h[o+464>>2]=y(vr(o,Mr)),h[o+468>>2]=y(Un(o,Mr)),h[o+452>>2]=y(vr(o,Ar)),h[o+460>>2]=y(Un(o,Ar)),h[o+488>>2]=y(mi(o,Mr,B)),h[o+492>>2]=y(Cs(o,Mr,B)),h[o+476>>2]=y(mi(o,Ar,B)),h[o+484>>2]=y(Cs(o,Ar,B));do if(n[o+964>>2]|0)JA(o,l,u,d,m,B,k);else{if(Lo=o+948|0,co=(n[o+952>>2]|0)-(n[Lo>>2]|0)>>2,!co){ab(o,l,u,d,m,B,k);break}if(!R&&t2(o,l,u,d,m,B,k)|0)break;te(o),dc=o+508|0,s[dc>>0]=0,Mr=dr(n[o+4>>2]|0,Us)|0,Ar=Py(Mr,Us)|0,ui=de(Mr)|0,Zh=n[o+8>>2]|0,pp=o+28|0,bu=(n[pp>>2]|0)!=0,Oo=ui?B:k,Ru=ui?k:B,Xh=y(kh(o,Mr,B)),$h=y(r2(o,Mr,B)),Le=y(kh(o,Ar,B)),Qu=y(Va(o,Mr,B)),lo=y(Va(o,Ar,B)),fr=ui?d:m,Ec=ui?m:d,Nr=ui?Qu:lo,ct=ui?lo:Qu,ku=y(yn(o,2,B)),Xe=y(yn(o,0,B)),Qe=y(y(Xr(o+364|0,B))-Nr),tt=y(y(Xr(o+380|0,B))-Nr),He=y(y(Xr(o+372|0,k))-ct),We=y(y(Xr(o+388|0,k))-ct),Nf=ui?Qe:He,Of=ui?tt:We,ku=y(l-ku),l=y(ku-Nr),Mt(l)|0?Nr=l:Nr=y($n(y(pd(l,tt)),Qe)),up=y(u-Xe),l=y(up-ct),Mt(l)|0?No=l:No=y($n(y(pd(l,We)),He)),Qe=ui?Nr:No,Wn=ui?No:Nr;e:do if((fr|0)==1)for(A=0,q=0;;){if(L=Is(o,q)|0,!A)y(KA(L))>y(0)&&y(Qh(L))>y(0)?A=L:A=0;else if(n2(L)|0){Ye=0;break e}if(q=q+1|0,q>>>0>=co>>>0){Ye=A;break}}else Ye=0;while(!1);Lt=Ye+500|0,Gr=Ye+504|0,A=0,L=0,l=y(0),ae=0;do{if(q=n[(n[Lo>>2]|0)+(ae<<2)>>2]|0,(n[q+36>>2]|0)==1)by(q),s[q+985>>0]=1,s[q+984>>0]=0;else{vf(q),R&&Ph(q,At(q,Us)|0,Qe,Wn,Nr);do if((n[q+24>>2]|0)!=1)if((q|0)==(Ye|0)){n[Lt>>2]=n[2278],h[Gr>>2]=y(0);break}else{lb(o,q,Nr,d,No,Nr,No,m,Us,M);break}else L|0&&(n[L+960>>2]=q),n[q+960>>2]=0,L=q,A=A|0?A:q;while(!1);Ms=y(h[q+504>>2]),l=y(l+y(Ms+y(yn(q,Mr,Nr))))}ae=ae+1|0}while((ae|0)!=(co|0));for(To=l>Qe,yc=bu&((fr|0)==2&To)?1:fr,Hn=(Ec|0)==1,Xa=Hn&(R^1),Wh=(yc|0)==1,Yh=(yc|0)==2,gc=976+(Mr<<2)|0,Vh=(Ec|2|0)==2,zh=Hn&(bu^1),Tf=1040+(Ar<<2)|0,Ff=1040+(Mr<<2)|0,Jh=976+(Ar<<2)|0,Kh=(Ec|0)!=1,To=bu&((fr|0)!=0&To),Ro=o+976|0,Hn=Hn^1,l=Qe,Hr=0,Fo=0,Ms=y(0),xu=y(0);;){e:do if(Hr>>>0<co>>>0)for(Gr=n[Lo>>2]|0,ae=0,We=y(0),He=y(0),tt=y(0),Qe=y(0),q=0,L=0,Ye=Hr;;){if(Lt=n[Gr+(Ye<<2)>>2]|0,(n[Lt+36>>2]|0)!=1&&(n[Lt+940>>2]=Fo,(n[Lt+24>>2]|0)!=1)){if(Xe=y(yn(Lt,Mr,Nr)),on=n[gc>>2]|0,u=y(Xr(Lt+380+(on<<3)|0,Oo)),ct=y(h[Lt+504>>2]),u=y(pd(u,ct)),u=y($n(y(Xr(Lt+364+(on<<3)|0,Oo)),u)),bu&(ae|0)!=0&y(Xe+y(He+u))>l){m=ae,Xe=We,fr=Ye;break e}Xe=y(Xe+u),u=y(He+Xe),Xe=y(We+Xe),n2(Lt)|0&&(tt=y(tt+y(KA(Lt))),Qe=y(Qe-y(ct*y(Qh(Lt))))),L|0&&(n[L+960>>2]=Lt),n[Lt+960>>2]=0,ae=ae+1|0,L=Lt,q=q|0?q:Lt}else Xe=We,u=He;if(Ye=Ye+1|0,Ye>>>0<co>>>0)We=Xe,He=u;else{m=ae,fr=Ye;break}}else m=0,Xe=y(0),tt=y(0),Qe=y(0),q=0,fr=Hr;while(!1);on=tt>y(0)&tt<y(1),$t=on?y(1):tt,on=Qe>y(0)&Qe<y(1),We=on?y(1):Qe;do if(Wh)on=51;else if(Xe<Nf&((Mt(Nf)|0)^1))l=Nf,on=51;else if(Xe>Of&((Mt(Of)|0)^1))l=Of,on=51;else if(s[(n[Ro>>2]|0)+3>>0]|0)on=51;else{if($t!=y(0)&&y(KA(o))!=y(0)){on=53;break}l=Xe,on=53}while(!1);if((on|0)==51&&(on=0,Mt(l)|0?on=53:(Rr=y(l-Xe),cr=l)),(on|0)==53&&(on=0,Xe<y(0)?(Rr=y(-Xe),cr=l):(Rr=y(0),cr=l)),!Xa&&(op=(q|0)==0,!op)){ae=n[gc>>2]|0,Ye=Rr<y(0),ct=y(Rr/We),Lt=Rr>y(0),He=y(Rr/$t),tt=y(0),Xe=y(0),l=y(0),L=q;do u=y(Xr(L+380+(ae<<3)|0,Oo)),Qe=y(Xr(L+364+(ae<<3)|0,Oo)),Qe=y(pd(u,y($n(Qe,y(h[L+504>>2]))))),Ye?(u=y(Qe*y(Qh(L))),u!=y(-0)&&(zt=y(Qe-y(ct*u)),ap=y(qn(L,Mr,zt,cr,Nr)),zt!=ap)&&(tt=y(tt-y(ap-Qe)),l=y(l+u))):Lt&&(Lf=y(KA(L)),Lf!=y(0))&&(zt=y(Qe+y(He*Lf)),lp=y(qn(L,Mr,zt,cr,Nr)),zt!=lp)&&(tt=y(tt-y(lp-Qe)),Xe=y(Xe-Lf)),L=n[L+960>>2]|0;while(L|0);if(l=y(We+l),Qe=y(Rr+tt),op)l=y(0);else{ct=y($t+Xe),Ye=n[gc>>2]|0,Lt=Qe<y(0),Gr=l==y(0),He=y(Qe/l),ae=Qe>y(0),ct=y(Qe/ct),l=y(0);do{zt=y(Xr(q+380+(Ye<<3)|0,Oo)),tt=y(Xr(q+364+(Ye<<3)|0,Oo)),tt=y(pd(zt,y($n(tt,y(h[q+504>>2]))))),Lt?(zt=y(tt*y(Qh(q))),Qe=y(-zt),zt!=y(-0)?(zt=y(He*Qe),Qe=y(qn(q,Mr,y(tt+(Gr?Qe:zt)),cr,Nr))):Qe=tt):ae&&(cp=y(KA(q)),cp!=y(0))?Qe=y(qn(q,Mr,y(tt+y(ct*cp)),cr,Nr)):Qe=tt,l=y(l-y(Qe-tt)),Xe=y(yn(q,Mr,Nr)),u=y(yn(q,Ar,Nr)),Qe=y(Qe+Xe),h[Ll>>2]=Qe,n[mc>>2]=1,tt=y(h[q+396>>2]);e:do if(Mt(tt)|0){L=Mt(Wn)|0;do if(!L){if(To|(io(q,Ar,Wn)|0|Hn)||(ss(o,q)|0)!=4||(n[(kl(q,Ar)|0)+4>>2]|0)==3||(n[(Ql(q,Ar)|0)+4>>2]|0)==3)break;h[oo>>2]=Wn,n[ma>>2]=1;break e}while(!1);if(io(q,Ar,Wn)|0){L=n[q+992+(n[Jh>>2]<<2)>>2]|0,zt=y(u+y(Xr(L,Wn))),h[oo>>2]=zt,L=Kh&(n[L+4>>2]|0)==2,n[ma>>2]=((Mt(zt)|0|L)^1)&1;break}else{h[oo>>2]=Wn,n[ma>>2]=L?0:2;break}}else zt=y(Qe-Xe),$t=y(zt/tt),zt=y(tt*zt),n[ma>>2]=1,h[oo>>2]=y(u+(ui?$t:zt));while(!1);Cu(q,Mr,cr,Nr,mc,Ll),Cu(q,Ar,Wn,Nr,ma,oo);do if(!(io(q,Ar,Wn)|0)&&(ss(o,q)|0)==4){if((n[(kl(q,Ar)|0)+4>>2]|0)==3){L=0;break}L=(n[(Ql(q,Ar)|0)+4>>2]|0)!=3}else L=0;while(!1);zt=y(h[Ll>>2]),$t=y(h[oo>>2]),dp=n[mc>>2]|0,Bi=n[ma>>2]|0,xl(q,ui?zt:$t,ui?$t:zt,Us,ui?dp:Bi,ui?Bi:dp,Nr,No,R&(L^1),3488,M)|0,s[dc>>0]=s[dc>>0]|s[q+508>>0],q=n[q+960>>2]|0}while(q|0)}}else l=y(0);if(l=y(Rr+l),Bi=l<y(0)&1,s[dc>>0]=Bi|c[dc>>0],Yh&l>y(0)?(L=n[gc>>2]|0,n[o+364+(L<<3)+4>>2]|0&&(ao=y(Xr(o+364+(L<<3)|0,Oo)),ao>=y(0))?Qe=y($n(y(0),y(ao-y(cr-l)))):Qe=y(0)):Qe=l,Lt=Hr>>>0<fr>>>0,Lt){Ye=n[Lo>>2]|0,ae=Hr,L=0;do q=n[Ye+(ae<<2)>>2]|0,n[q+24>>2]|0||(L=((n[(kl(q,Mr)|0)+4>>2]|0)==3&1)+L|0,L=L+((n[(Ql(q,Mr)|0)+4>>2]|0)==3&1)|0),ae=ae+1|0;while((ae|0)!=(fr|0));L?(Xe=y(0),u=y(0)):on=101}else on=101;e:do if((on|0)==101)switch(on=0,Zh|0){case 1:{L=0,Xe=y(Qe*y(.5)),u=y(0);break e}case 2:{L=0,Xe=Qe,u=y(0);break e}case 3:{if(m>>>0<=1){L=0,Xe=y(0),u=y(0);break e}u=y((m+-1|0)>>>0),L=0,Xe=y(0),u=y(y($n(Qe,y(0)))/u);break e}case 5:{u=y(Qe/y((m+1|0)>>>0)),L=0,Xe=u;break e}case 4:{u=y(Qe/y(m>>>0)),L=0,Xe=y(u*y(.5));break e}default:{L=0,Xe=y(0),u=y(0);break e}}while(!1);if(l=y(Xh+Xe),Lt){tt=y(Qe/y(L|0)),ae=n[Lo>>2]|0,q=Hr,Qe=y(0);do{L=n[ae+(q<<2)>>2]|0;e:do if((n[L+36>>2]|0)!=1){switch(n[L+24>>2]|0){case 1:{if(ha(L,Mr)|0){if(!R)break e;zt=y(zA(L,Mr,cr)),zt=y(zt+y(vr(o,Mr))),zt=y(zt+y(K(L,Mr,Nr))),h[L+400+(n[Ff>>2]<<2)>>2]=zt;break e}break}case 0:if(Bi=(n[(kl(L,Mr)|0)+4>>2]|0)==3,zt=y(tt+l),l=Bi?zt:l,R&&(Bi=L+400+(n[Ff>>2]<<2)|0,h[Bi>>2]=y(l+y(h[Bi>>2]))),Bi=(n[(Ql(L,Mr)|0)+4>>2]|0)==3,zt=y(tt+l),l=Bi?zt:l,Xa){zt=y(u+y(yn(L,Mr,Nr))),Qe=Wn,l=y(l+y(zt+y(h[L+504>>2])));break e}else{l=y(l+y(u+y(ZA(L,Mr,Nr)))),Qe=y($n(Qe,y(ZA(L,Ar,Nr))));break e}default:}R&&(zt=y(Xe+y(vr(o,Mr))),Bi=L+400+(n[Ff>>2]<<2)|0,h[Bi>>2]=y(zt+y(h[Bi>>2])))}while(!1);q=q+1|0}while((q|0)!=(fr|0))}else Qe=y(0);if(u=y($h+l),Vh?Xe=y(y(qn(o,Ar,y(lo+Qe),Ru,B))-lo):Xe=Wn,tt=y(y(qn(o,Ar,y(lo+(zh?Wn:Qe)),Ru,B))-lo),Lt&R){q=Hr;do{ae=n[(n[Lo>>2]|0)+(q<<2)>>2]|0;do if((n[ae+36>>2]|0)!=1){if((n[ae+24>>2]|0)==1){if(ha(ae,Ar)|0){if(zt=y(zA(ae,Ar,Wn)),zt=y(zt+y(vr(o,Ar))),zt=y(zt+y(K(ae,Ar,Nr))),L=n[Tf>>2]|0,h[ae+400+(L<<2)>>2]=zt,!(Mt(zt)|0))break}else L=n[Tf>>2]|0;zt=y(vr(o,Ar)),h[ae+400+(L<<2)>>2]=y(zt+y(K(ae,Ar,Nr)));break}L=ss(o,ae)|0;do if((L|0)==4){if((n[(kl(ae,Ar)|0)+4>>2]|0)==3){on=139;break}if((n[(Ql(ae,Ar)|0)+4>>2]|0)==3){on=139;break}if(io(ae,Ar,Wn)|0){l=Le;break}dp=n[ae+908+(n[gc>>2]<<2)>>2]|0,n[oo>>2]=dp,l=y(h[ae+396>>2]),Bi=Mt(l)|0,Qe=(n[S>>2]=dp,y(h[S>>2])),Bi?l=tt:(Rr=y(yn(ae,Ar,Nr)),zt=y(Qe/l),l=y(l*Qe),l=y(Rr+(ui?zt:l))),h[Ll>>2]=l,h[oo>>2]=y(y(yn(ae,Mr,Nr))+Qe),n[ma>>2]=1,n[mc>>2]=1,Cu(ae,Mr,cr,Nr,ma,oo),Cu(ae,Ar,Wn,Nr,mc,Ll),l=y(h[oo>>2]),Rr=y(h[Ll>>2]),zt=ui?l:Rr,l=ui?Rr:l,Bi=((Mt(zt)|0)^1)&1,xl(ae,zt,l,Us,Bi,((Mt(l)|0)^1)&1,Nr,No,1,3493,M)|0,l=Le}else on=139;while(!1);e:do if((on|0)==139){on=0,l=y(Xe-y(ZA(ae,Ar,Nr)));do if((n[(kl(ae,Ar)|0)+4>>2]|0)==3){if((n[(Ql(ae,Ar)|0)+4>>2]|0)!=3)break;l=y(Le+y($n(y(0),y(l*y(.5)))));break e}while(!1);if((n[(Ql(ae,Ar)|0)+4>>2]|0)==3){l=Le;break}if((n[(kl(ae,Ar)|0)+4>>2]|0)==3){l=y(Le+y($n(y(0),l)));break}switch(L|0){case 1:{l=Le;break e}case 2:{l=y(Le+y(l*y(.5)));break e}default:{l=y(Le+l);break e}}}while(!1);zt=y(Ms+l),Bi=ae+400+(n[Tf>>2]<<2)|0,h[Bi>>2]=y(zt+y(h[Bi>>2]))}while(!1);q=q+1|0}while((q|0)!=(fr|0))}if(Ms=y(Ms+tt),xu=y($n(xu,u)),m=Fo+1|0,fr>>>0>=co>>>0)break;l=cr,Hr=fr,Fo=m}do if(R){if(L=m>>>0>1,!L&&!(HL(o)|0))break;if(!(Mt(Wn)|0)){l=y(Wn-Ms);e:do switch(n[o+12>>2]|0){case 3:{Le=y(Le+l),He=y(0);break}case 2:{Le=y(Le+y(l*y(.5))),He=y(0);break}case 4:{Wn>Ms?He=y(l/y(m>>>0)):He=y(0);break}case 7:if(Wn>Ms){Le=y(Le+y(l/y(m<<1>>>0))),He=y(l/y(m>>>0)),He=L?He:y(0);break e}else{Le=y(Le+y(l*y(.5))),He=y(0);break e}case 6:{He=y(l/y(Fo>>>0)),He=Wn>Ms&L?He:y(0);break}default:He=y(0)}while(!1);if(m|0)for(Lt=1040+(Ar<<2)|0,Gr=976+(Ar<<2)|0,Ye=0,q=0;;){e:do if(q>>>0<co>>>0)for(Qe=y(0),tt=y(0),l=y(0),ae=q;;){L=n[(n[Lo>>2]|0)+(ae<<2)>>2]|0;do if((n[L+36>>2]|0)!=1&&!(n[L+24>>2]|0)){if((n[L+940>>2]|0)!=(Ye|0))break e;if(jL(L,Ar)|0&&(zt=y(h[L+908+(n[Gr>>2]<<2)>>2]),l=y($n(l,y(zt+y(yn(L,Ar,Nr)))))),(ss(o,L)|0)!=5)break;ao=y(Yg(L)),ao=y(ao+y(K(L,0,Nr))),zt=y(h[L+912>>2]),zt=y(y(zt+y(yn(L,0,Nr)))-ao),ao=y($n(tt,ao)),zt=y($n(Qe,zt)),Qe=zt,tt=ao,l=y($n(l,y(ao+zt)))}while(!1);if(L=ae+1|0,L>>>0<co>>>0)ae=L;else{ae=L;break}}else tt=y(0),l=y(0),ae=q;while(!1);if(ct=y(He+l),u=Le,Le=y(Le+ct),q>>>0<ae>>>0){Xe=y(u+tt),L=q;do{q=n[(n[Lo>>2]|0)+(L<<2)>>2]|0;e:do if((n[q+36>>2]|0)!=1&&!(n[q+24>>2]|0))switch(ss(o,q)|0){case 1:{zt=y(u+y(K(q,Ar,Nr))),h[q+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 3:{zt=y(y(Le-y(re(q,Ar,Nr)))-y(h[q+908+(n[Gr>>2]<<2)>>2])),h[q+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 2:{zt=y(u+y(y(ct-y(h[q+908+(n[Gr>>2]<<2)>>2]))*y(.5))),h[q+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 4:{if(zt=y(u+y(K(q,Ar,Nr))),h[q+400+(n[Lt>>2]<<2)>>2]=zt,io(q,Ar,Wn)|0||(ui?(Qe=y(h[q+908>>2]),l=y(Qe+y(yn(q,Mr,Nr))),tt=ct):(tt=y(h[q+912>>2]),tt=y(tt+y(yn(q,Ar,Nr))),l=ct,Qe=y(h[q+908>>2])),mn(l,Qe)|0&&mn(tt,y(h[q+912>>2]))|0))break e;xl(q,l,tt,Us,1,1,Nr,No,1,3501,M)|0;break e}case 5:{h[q+404>>2]=y(y(Xe-y(Yg(q)))+y(zA(q,0,Wn)));break e}default:break e}while(!1);L=L+1|0}while((L|0)!=(ae|0))}if(Ye=Ye+1|0,(Ye|0)==(m|0))break;q=ae}}}while(!1);if(h[o+908>>2]=y(qn(o,2,ku,B,B)),h[o+912>>2]=y(qn(o,0,up,k,B)),yc|0&&(fp=n[o+32>>2]|0,Ap=(yc|0)==2,!(Ap&(fp|0)!=2))?Ap&(fp|0)==2&&(l=y(Qu+cr),l=y($n(y(pd(l,y(Vg(o,Mr,xu,Oo)))),Qu)),on=198):(l=y(qn(o,Mr,xu,Oo,B)),on=198),(on|0)==198&&(h[o+908+(n[976+(Mr<<2)>>2]<<2)>>2]=l),Ec|0&&(hp=n[o+32>>2]|0,gp=(Ec|0)==2,!(gp&(hp|0)!=2))?gp&(hp|0)==2&&(l=y(lo+Wn),l=y($n(y(pd(l,y(Vg(o,Ar,y(lo+Ms),Ru)))),lo)),on=204):(l=y(qn(o,Ar,y(lo+Ms),Ru,B)),on=204),(on|0)==204&&(h[o+908+(n[976+(Ar<<2)>>2]<<2)>>2]=l),R){if((n[pp>>2]|0)==2){q=976+(Ar<<2)|0,ae=1040+(Ar<<2)|0,L=0;do Ye=Is(o,L)|0,n[Ye+24>>2]|0||(dp=n[q>>2]|0,zt=y(h[o+908+(dp<<2)>>2]),Bi=Ye+400+(n[ae>>2]<<2)|0,zt=y(zt-y(h[Bi>>2])),h[Bi>>2]=y(zt-y(h[Ye+908+(dp<<2)>>2]))),L=L+1|0;while((L|0)!=(co|0))}if(A|0){L=ui?yc:d;do qL(o,A,Nr,L,No,Us,M),A=n[A+960>>2]|0;while(A|0)}if(L=(Mr|2|0)==3,q=(Ar|2|0)==3,L|q){A=0;do ae=n[(n[Lo>>2]|0)+(A<<2)>>2]|0,(n[ae+36>>2]|0)!=1&&(L&&i2(o,ae,Mr),q&&i2(o,ae,Ar)),A=A+1|0;while((A|0)!=(co|0))}}}while(!1);I=Ic}function Dh(o,l){o=o|0,l=y(l);var u=0;Ha(o,l>=y(0),3147),u=l==y(0),h[o+4>>2]=u?y(0):l}function YA(o,l,u,A){o=o|0,l=y(l),u=y(u),A=A|0;var d=$e,m=$e,B=0,k=0,R=0;n[2278]=(n[2278]|0)+1,vf(o),io(o,2,l)|0?(d=y(Xr(n[o+992>>2]|0,l)),R=1,d=y(d+y(yn(o,2,l)))):(d=y(Xr(o+380|0,l)),d>=y(0)?R=2:(R=((Mt(l)|0)^1)&1,d=l)),io(o,0,u)|0?(m=y(Xr(n[o+996>>2]|0,u)),k=1,m=y(m+y(yn(o,0,l)))):(m=y(Xr(o+388|0,u)),m>=y(0)?k=2:(k=((Mt(u)|0)^1)&1,m=u)),B=o+976|0,xl(o,d,m,A,R,k,l,u,1,3189,n[B>>2]|0)|0&&(Ph(o,n[o+496>>2]|0,l,u,l),VA(o,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),s[11696]|0)&&Gg(o,7)}function vf(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;k=I,I=I+32|0,B=k+24|0,m=k+16|0,A=k+8|0,d=k,u=0;do l=o+380+(u<<3)|0,n[o+380+(u<<3)+4>>2]|0&&(R=l,M=n[R+4>>2]|0,L=A,n[L>>2]=n[R>>2],n[L+4>>2]=M,L=o+364+(u<<3)|0,M=n[L+4>>2]|0,R=d,n[R>>2]=n[L>>2],n[R+4>>2]=M,n[m>>2]=n[A>>2],n[m+4>>2]=n[A+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],Cf(m,B)|0)||(l=o+348+(u<<3)|0),n[o+992+(u<<2)>>2]=l,u=u+1|0;while((u|0)!=2);I=k}function io(o,l,u){o=o|0,l=l|0,u=y(u);var A=0;switch(o=n[o+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[o+4>>2]|0){case 0:case 3:{o=0;break}case 1:{y(h[o>>2])<y(0)?o=0:A=5;break}case 2:{y(h[o>>2])<y(0)?o=0:o=(Mt(u)|0)^1;break}default:A=5}return(A|0)==5&&(o=1),o|0}function Xr(o,l){switch(o=o|0,l=y(l),n[o+4>>2]|0){case 2:{l=y(y(y(h[o>>2])*l)/y(100));break}case 1:{l=y(h[o>>2]);break}default:l=y(le)}return y(l)}function Ph(o,l,u,A,d){o=o|0,l=l|0,u=y(u),A=y(A),d=y(d);var m=0,B=$e;l=n[o+944>>2]|0?l:1,m=dr(n[o+4>>2]|0,l)|0,l=Py(m,l)|0,u=y(ub(o,m,u)),A=y(ub(o,l,A)),B=y(u+y(K(o,m,d))),h[o+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,u=y(u+y(re(o,m,d))),h[o+400+(n[1e3+(m<<2)>>2]<<2)>>2]=u,u=y(A+y(K(o,l,d))),h[o+400+(n[1040+(l<<2)>>2]<<2)>>2]=u,d=y(A+y(re(o,l,d))),h[o+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function VA(o,l,u,A){o=o|0,l=y(l),u=y(u),A=y(A);var d=0,m=0,B=$e,k=$e,R=0,M=0,L=$e,q=0,ae=$e,Ye=$e,Le=$e,Qe=$e;if(l!=y(0)&&(d=o+400|0,Qe=y(h[d>>2]),m=o+404|0,Le=y(h[m>>2]),q=o+416|0,Ye=y(h[q>>2]),M=o+420|0,B=y(h[M>>2]),ae=y(Qe+u),L=y(Le+A),A=y(ae+Ye),k=y(L+B),R=(n[o+988>>2]|0)==1,h[d>>2]=y(is(Qe,l,0,R)),h[m>>2]=y(is(Le,l,0,R)),u=y(cU(y(Ye*l),y(1))),mn(u,y(0))|0?m=0:m=(mn(u,y(1))|0)^1,u=y(cU(y(B*l),y(1))),mn(u,y(0))|0?d=0:d=(mn(u,y(1))|0)^1,Qe=y(is(A,l,R&m,R&(m^1))),h[q>>2]=y(Qe-y(is(ae,l,0,R))),Qe=y(is(k,l,R&d,R&(d^1))),h[M>>2]=y(Qe-y(is(L,l,0,R))),m=(n[o+952>>2]|0)-(n[o+948>>2]|0)>>2,m|0)){d=0;do VA(Is(o,d)|0,l,ae,L),d=d+1|0;while((d|0)!=(m|0))}}function Sy(o,l,u,A,d){switch(o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,u|0){case 5:case 0:{o=dX(n[489]|0,A,d)|0;break}default:o=v6e(A,d)|0}return o|0}function Wg(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;d=I,I=I+16|0,m=d,n[m>>2]=A,bh(o,0,l,u,m),I=d}function bh(o,l,u,A,d){if(o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,o=o|0?o:956,LX[n[o+8>>2]&1](o,l,u,A,d)|0,(u|0)==5)Nt();else return}function pc(o,l,u){o=o|0,l=l|0,u=u|0,s[o+l>>0]=u&1}function Dy(o,l){o=o|0,l=l|0;var u=0,A=0;n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,u=l+4|0,A=(n[u>>2]|0)-(n[l>>2]|0)>>2,A|0&&(xh(o,A),kt(o,n[l>>2]|0,n[u>>2]|0,A))}function xh(o,l){o=o|0,l=l|0;var u=0;if((O(o)|0)>>>0<l>>>0&&sn(o),l>>>0>1073741823)Nt();else{u=Kt(l<<2)|0,n[o+4>>2]=u,n[o>>2]=u,n[o+8>>2]=u+(l<<2);return}}function kt(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,A=o+4|0,o=u-l|0,(o|0)>0&&(Qr(n[A>>2]|0,l|0,o|0)|0,n[A>>2]=(n[A>>2]|0)+(o>>>2<<2))}function O(o){return o=o|0,1073741823}function K(o,l,u){return o=o|0,l=l|0,u=y(u),de(l)|0&&n[o+96>>2]|0?o=o+92|0:o=kn(o+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(Je(o,u))}function re(o,l,u){return o=o|0,l=l|0,u=y(u),de(l)|0&&n[o+104>>2]|0?o=o+100|0:o=kn(o+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(Je(o,u))}function de(o){return o=o|0,(o|1|0)==3|0}function Je(o,l){return o=o|0,l=y(l),(n[o+4>>2]|0)==3?l=y(0):l=y(Xr(o,l)),y(l)}function At(o,l){return o=o|0,l=l|0,o=n[o>>2]|0,(o|0?o:(l|0)>1?l:1)|0}function dr(o,l){o=o|0,l=l|0;var u=0;e:do if((l|0)==2){switch(o|0){case 2:{o=3;break e}case 3:break;default:{u=4;break e}}o=2}else u=4;while(!1);return o|0}function vr(o,l){o=o|0,l=l|0;var u=$e;return de(l)|0&&n[o+312>>2]|0&&(u=y(h[o+308>>2]),u>=y(0))||(u=y($n(y(h[(kn(o+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(u)}function Un(o,l){o=o|0,l=l|0;var u=$e;return de(l)|0&&n[o+320>>2]|0&&(u=y(h[o+316>>2]),u>=y(0))||(u=y($n(y(h[(kn(o+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(u)}function mi(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return de(l)|0&&n[o+240>>2]|0&&(A=y(Xr(o+236|0,u)),A>=y(0))||(A=y($n(y(Xr(kn(o+204|0,n[1040+(l<<2)>>2]|0,992)|0,u)),y(0)))),y(A)}function Cs(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return de(l)|0&&n[o+248>>2]|0&&(A=y(Xr(o+244|0,u)),A>=y(0))||(A=y($n(y(Xr(kn(o+204|0,n[1e3+(l<<2)>>2]|0,992)|0,u)),y(0)))),y(A)}function JA(o,l,u,A,d,m,B){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=y(m),B=y(B);var k=$e,R=$e,M=$e,L=$e,q=$e,ae=$e,Ye=0,Le=0,Qe=0;Qe=I,I=I+16|0,Ye=Qe,Le=o+964|0,wi(o,(n[Le>>2]|0)!=0,3519),k=y(Va(o,2,l)),R=y(Va(o,0,l)),M=y(yn(o,2,l)),L=y(yn(o,0,l)),Mt(l)|0?q=l:q=y($n(y(0),y(y(l-M)-k))),Mt(u)|0?ae=u:ae=y($n(y(0),y(y(u-L)-R))),(A|0)==1&(d|0)==1?(h[o+908>>2]=y(qn(o,2,y(l-M),m,m)),l=y(qn(o,0,y(u-L),B,m))):(MX[n[Le>>2]&1](Ye,o,q,A,ae,d),q=y(k+y(h[Ye>>2])),ae=y(l-M),h[o+908>>2]=y(qn(o,2,(A|2|0)==2?q:ae,m,m)),ae=y(R+y(h[Ye+4>>2])),l=y(u-L),l=y(qn(o,0,(d|2|0)==2?ae:l,B,m))),h[o+912>>2]=l,I=Qe}function ab(o,l,u,A,d,m,B){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=y(m),B=y(B);var k=$e,R=$e,M=$e,L=$e;M=y(Va(o,2,m)),k=y(Va(o,0,m)),L=y(yn(o,2,m)),R=y(yn(o,0,m)),l=y(l-L),h[o+908>>2]=y(qn(o,2,(A|2|0)==2?M:l,m,m)),u=y(u-R),h[o+912>>2]=y(qn(o,0,(d|2|0)==2?k:u,B,m))}function t2(o,l,u,A,d,m,B){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=y(m),B=y(B);var k=0,R=$e,M=$e;return k=(A|0)==2,!(l<=y(0)&k)&&!(u<=y(0)&(d|0)==2)&&!((A|0)==1&(d|0)==1)?o=0:(R=y(yn(o,0,m)),M=y(yn(o,2,m)),k=l<y(0)&k|(Mt(l)|0),l=y(l-M),h[o+908>>2]=y(qn(o,2,k?y(0):l,m,m)),l=y(u-R),k=u<y(0)&(d|0)==2|(Mt(u)|0),h[o+912>>2]=y(qn(o,0,k?y(0):l,B,m)),o=1),o|0}function Py(o,l){return o=o|0,l=l|0,Jg(o)|0?o=dr(2,l)|0:o=0,o|0}function kh(o,l,u){return o=o|0,l=l|0,u=y(u),u=y(mi(o,l,u)),y(u+y(vr(o,l)))}function r2(o,l,u){return o=o|0,l=l|0,u=y(u),u=y(Cs(o,l,u)),y(u+y(Un(o,l)))}function Va(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return A=y(kh(o,l,u)),y(A+y(r2(o,l,u)))}function n2(o){return o=o|0,n[o+24>>2]|0?o=0:y(KA(o))!=y(0)?o=1:o=y(Qh(o))!=y(0),o|0}function KA(o){o=o|0;var l=$e;if(n[o+944>>2]|0){if(l=y(h[o+44>>2]),Mt(l)|0)return l=y(h[o+40>>2]),o=l>y(0)&((Mt(l)|0)^1),y(o?l:y(0))}else l=y(0);return y(l)}function Qh(o){o=o|0;var l=$e,u=0,A=$e;do if(n[o+944>>2]|0){if(l=y(h[o+48>>2]),Mt(l)|0){if(u=s[(n[o+976>>2]|0)+2>>0]|0,!(u<<24>>24)&&(A=y(h[o+40>>2]),A<y(0)&((Mt(A)|0)^1))){l=y(-A);break}l=u<<24>>24?y(1):y(0)}}else l=y(0);while(!1);return y(l)}function by(o){o=o|0;var l=0,u=0;if(eE(o+400|0,0,540)|0,s[o+985>>0]=1,te(o),u=Mi(o)|0,u|0){l=o+948|0,o=0;do by(n[(n[l>>2]|0)+(o<<2)>>2]|0),o=o+1|0;while((o|0)!=(u|0))}}function lb(o,l,u,A,d,m,B,k,R,M){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=y(m),B=y(B),k=k|0,R=R|0,M=M|0;var L=0,q=$e,ae=0,Ye=0,Le=$e,Qe=$e,tt=0,Xe=$e,ct=0,He=$e,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0,Hn=0,Ro=0;Hn=I,I=I+16|0,Gr=Hn+12|0,fr=Hn+8|0,$t=Hn+4|0,Rr=Hn,cr=dr(n[o+4>>2]|0,R)|0,We=de(cr)|0,q=y(Xr(WL(l)|0,We?m:B)),Lt=io(l,2,m)|0,Hr=io(l,0,B)|0;do if(!(Mt(q)|0)&&!(Mt(We?u:d)|0)){if(L=l+504|0,!(Mt(y(h[L>>2]))|0)&&(!(s2(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[L>>2]=y($n(q,y(Va(l,cr,m))))}else ae=7;while(!1);do if((ae|0)==7){if(ct=We^1,!(ct|Lt^1)){B=y(Xr(n[l+992>>2]|0,m)),h[l+504>>2]=y($n(B,y(Va(l,2,m))));break}if(!(We|Hr^1)){B=y(Xr(n[l+996>>2]|0,B)),h[l+504>>2]=y($n(B,y(Va(l,0,m))));break}h[Gr>>2]=y(le),h[fr>>2]=y(le),n[$t>>2]=0,n[Rr>>2]=0,Xe=y(yn(l,2,m)),He=y(yn(l,0,m)),Lt?(Le=y(Xe+y(Xr(n[l+992>>2]|0,m))),h[Gr>>2]=Le,n[$t>>2]=1,Ye=1):(Ye=0,Le=y(le)),Hr?(q=y(He+y(Xr(n[l+996>>2]|0,B))),h[fr>>2]=q,n[Rr>>2]=1,L=1):(L=0,q=y(le)),ae=n[o+32>>2]|0,We&(ae|0)==2?ae=2:Mt(Le)|0&&!(Mt(u)|0)&&(h[Gr>>2]=u,n[$t>>2]=2,Ye=2,Le=u),!((ae|0)==2&ct)&&Mt(q)|0&&!(Mt(d)|0)&&(h[fr>>2]=d,n[Rr>>2]=2,L=2,q=d),Qe=y(h[l+396>>2]),tt=Mt(Qe)|0;do if(tt)ae=Ye;else{if((Ye|0)==1&ct){h[fr>>2]=y(y(Le-Xe)/Qe),n[Rr>>2]=1,L=1,ae=1;break}We&(L|0)==1?(h[Gr>>2]=y(Qe*y(q-He)),n[$t>>2]=1,L=1,ae=1):ae=Ye}while(!1);Ro=Mt(u)|0,Ye=(ss(o,l)|0)!=4,!(We|Lt|((A|0)!=1|Ro)|(Ye|(ae|0)==1))&&(h[Gr>>2]=u,n[$t>>2]=1,!tt)&&(h[fr>>2]=y(y(u-Xe)/Qe),n[Rr>>2]=1,L=1),!(Hr|ct|((k|0)!=1|(Mt(d)|0))|(Ye|(L|0)==1))&&(h[fr>>2]=d,n[Rr>>2]=1,!tt)&&(h[Gr>>2]=y(Qe*y(d-He)),n[$t>>2]=1),Cu(l,2,m,m,$t,Gr),Cu(l,0,B,m,Rr,fr),u=y(h[Gr>>2]),d=y(h[fr>>2]),xl(l,u,d,R,n[$t>>2]|0,n[Rr>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(cr<<2)>>2]<<2)>>2]),h[l+504>>2]=y($n(B,y(Va(l,cr,m))))}while(!1);n[l+500>>2]=n[2278],I=Hn}function qn(o,l,u,A,d){return o=o|0,l=l|0,u=y(u),A=y(A),d=y(d),A=y(Vg(o,l,u,A)),y($n(A,y(Va(o,l,d))))}function ss(o,l){return o=o|0,l=l|0,l=l+20|0,l=n[(n[l>>2]|0?l:o+16|0)>>2]|0,(l|0)==5&&Jg(n[o+4>>2]|0)|0&&(l=1),l|0}function kl(o,l){return o=o|0,l=l|0,de(l)|0&&n[o+96>>2]|0?l=4:l=n[1040+(l<<2)>>2]|0,o+60+(l<<3)|0}function Ql(o,l){return o=o|0,l=l|0,de(l)|0&&n[o+104>>2]|0?l=5:l=n[1e3+(l<<2)>>2]|0,o+60+(l<<3)|0}function Cu(o,l,u,A,d,m){switch(o=o|0,l=l|0,u=y(u),A=y(A),d=d|0,m=m|0,u=y(Xr(o+380+(n[976+(l<<2)>>2]<<3)|0,u)),u=y(u+y(yn(o,l,A))),n[d>>2]|0){case 2:case 1:{d=Mt(u)|0,A=y(h[m>>2]),h[m>>2]=d|A<u?A:u;break}case 0:{Mt(u)|0||(n[d>>2]=2,h[m>>2]=u);break}default:}}function ha(o,l){return o=o|0,l=l|0,o=o+132|0,de(l)|0&&n[(kn(o,4,948)|0)+4>>2]|0?o=1:o=(n[(kn(o,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,o|0}function zA(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0;return o=o+132|0,de(l)|0&&(A=kn(o,4,948)|0,(n[A+4>>2]|0)!=0)?d=4:(A=kn(o,n[1040+(l<<2)>>2]|0,948)|0,n[A+4>>2]|0?d=4:u=y(0)),(d|0)==4&&(u=y(Xr(A,u))),y(u)}function ZA(o,l,u){o=o|0,l=l|0,u=y(u);var A=$e;return A=y(h[o+908+(n[976+(l<<2)>>2]<<2)>>2]),A=y(A+y(K(o,l,u))),y(A+y(re(o,l,u)))}function HL(o){o=o|0;var l=0,u=0,A=0;e:do if(Jg(n[o+4>>2]|0)|0)l=0;else if((n[o+16>>2]|0)!=5)if(u=Mi(o)|0,!u)l=0;else for(l=0;;){if(A=Is(o,l)|0,!(n[A+24>>2]|0)&&(n[A+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=u>>>0){l=0;break}}else l=1;while(!1);return l|0}function jL(o,l){o=o|0,l=l|0;var u=$e;return u=y(h[o+908+(n[976+(l<<2)>>2]<<2)>>2]),u>=y(0)&((Mt(u)|0)^1)|0}function Yg(o){o=o|0;var l=$e,u=0,A=0,d=0,m=0,B=0,k=0,R=$e;if(u=n[o+968>>2]|0,u)R=y(h[o+908>>2]),l=y(h[o+912>>2]),l=y(TX[u&0](o,R,l)),wi(o,(Mt(l)|0)^1,3573);else{m=Mi(o)|0;do if(m|0){for(u=0,d=0;;){if(A=Is(o,d)|0,n[A+940>>2]|0){B=8;break}if((n[A+24>>2]|0)!=1)if(k=(ss(o,A)|0)==5,k){u=A;break}else u=u|0?u:A;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!u)break;return l=y(Yg(u)),y(l+y(h[u+404>>2]))}while(!1);l=y(h[o+912>>2])}return y(l)}function Vg(o,l,u,A){o=o|0,l=l|0,u=y(u),A=y(A);var d=$e,m=0;return Jg(l)|0?(l=1,m=3):de(l)|0?(l=0,m=3):(A=y(le),d=y(le)),(m|0)==3&&(d=y(Xr(o+364+(l<<3)|0,A)),A=y(Xr(o+380+(l<<3)|0,A))),m=A<u&(A>=y(0)&((Mt(A)|0)^1)),u=m?A:u,m=d>=y(0)&((Mt(d)|0)^1)&u<d,y(m?d:u)}function qL(o,l,u,A,d,m,B){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=m|0,B=B|0;var k=$e,R=$e,M=0,L=0,q=$e,ae=$e,Ye=$e,Le=0,Qe=0,tt=0,Xe=0,ct=$e,He=0;tt=dr(n[o+4>>2]|0,m)|0,Le=Py(tt,m)|0,Qe=de(tt)|0,q=y(yn(l,2,u)),ae=y(yn(l,0,u)),io(l,2,u)|0?k=y(q+y(Xr(n[l+992>>2]|0,u))):ha(l,2)|0&&xy(l,2)|0?(k=y(h[o+908>>2]),R=y(vr(o,2)),R=y(k-y(R+y(Un(o,2)))),k=y(zA(l,2,u)),k=y(qn(l,2,y(R-y(k+y(Rh(l,2,u)))),u,u))):k=y(le),io(l,0,d)|0?R=y(ae+y(Xr(n[l+996>>2]|0,d))):ha(l,0)|0&&xy(l,0)|0?(R=y(h[o+912>>2]),ct=y(vr(o,0)),ct=y(R-y(ct+y(Un(o,0)))),R=y(zA(l,0,d)),R=y(qn(l,0,y(ct-y(R+y(Rh(l,0,d)))),d,u))):R=y(le),M=Mt(k)|0,L=Mt(R)|0;do if(M^L&&(Ye=y(h[l+396>>2]),!(Mt(Ye)|0)))if(M){k=y(q+y(y(R-ae)*Ye));break}else{ct=y(ae+y(y(k-q)/Ye)),R=L?ct:R;break}while(!1);L=Mt(k)|0,M=Mt(R)|0,L|M&&(He=(L^1)&1,A=u>y(0)&((A|0)!=0&L),k=Qe?k:A?u:k,xl(l,k,R,m,Qe?He:A?2:He,L&(M^1)&1,k,R,0,3623,B)|0,k=y(h[l+908>>2]),k=y(k+y(yn(l,2,u))),R=y(h[l+912>>2]),R=y(R+y(yn(l,0,u)))),xl(l,k,R,m,1,1,k,R,1,3635,B)|0,xy(l,tt)|0&&!(ha(l,tt)|0)?(He=n[976+(tt<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),ct=y(ct-y(Un(o,tt))),ct=y(ct-y(re(l,tt,u))),ct=y(ct-y(Rh(l,tt,Qe?u:d))),h[l+400+(n[1040+(tt<<2)>>2]<<2)>>2]=ct):Xe=21;do if((Xe|0)==21){if(!(ha(l,tt)|0)&&(n[o+8>>2]|0)==1){He=n[976+(tt<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(y(ct-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(tt<<2)>>2]<<2)>>2]=ct;break}!(ha(l,tt)|0)&&(n[o+8>>2]|0)==2&&(He=n[976+(tt<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(tt<<2)>>2]<<2)>>2]=ct)}while(!1);xy(l,Le)|0&&!(ha(l,Le)|0)?(He=n[976+(Le<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),ct=y(ct-y(Un(o,Le))),ct=y(ct-y(re(l,Le,u))),ct=y(ct-y(Rh(l,Le,Qe?d:u))),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=ct):Xe=30;do if((Xe|0)==30&&!(ha(l,Le)|0)){if((ss(o,l)|0)==2){He=n[976+(Le<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(y(ct-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=ct;break}He=(ss(o,l)|0)==3,He^(n[o+28>>2]|0)==2&&(He=n[976+(Le<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=ct)}while(!1)}function i2(o,l,u){o=o|0,l=l|0,u=u|0;var A=$e,d=0;d=n[976+(u<<2)>>2]|0,A=y(h[l+908+(d<<2)>>2]),A=y(y(h[o+908+(d<<2)>>2])-A),A=y(A-y(h[l+400+(n[1040+(u<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(u<<2)>>2]<<2)>>2]=A}function Jg(o){return o=o|0,(o|1|0)==1|0}function WL(o){o=o|0;var l=$e;switch(n[o+56>>2]|0){case 0:case 3:{l=y(h[o+40>>2]),l>y(0)&((Mt(l)|0)^1)?o=s[(n[o+976>>2]|0)+2>>0]|0?1056:992:o=1056;break}default:o=o+52|0}return o|0}function s2(o,l){return o=o|0,l=l|0,(s[o+l>>0]|0)!=0|0}function xy(o,l){return o=o|0,l=l|0,o=o+132|0,de(l)|0&&n[(kn(o,5,948)|0)+4>>2]|0?o=1:o=(n[(kn(o,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,o|0}function Rh(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0;return o=o+132|0,de(l)|0&&(A=kn(o,5,948)|0,(n[A+4>>2]|0)!=0)?d=4:(A=kn(o,n[1e3+(l<<2)>>2]|0,948)|0,n[A+4>>2]|0?d=4:u=y(0)),(d|0)==4&&(u=y(Xr(A,u))),y(u)}function ub(o,l,u){return o=o|0,l=l|0,u=y(u),ha(o,l)|0?u=y(zA(o,l,u)):u=y(-y(Rh(o,l,u))),y(u)}function fb(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function ky(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>1073741823)Nt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<2)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<2)}function Ab(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function Qy(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-4-l|0)>>>2)<<2)),o=n[o>>2]|0,o|0&&It(o)}function pb(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;if(B=o+4|0,k=n[B>>2]|0,d=k-A|0,m=d>>2,o=l+(m<<2)|0,o>>>0<u>>>0){A=k;do n[A>>2]=n[o>>2],o=o+4|0,A=(n[B>>2]|0)+4|0,n[B>>2]=A;while(o>>>0<u>>>0)}m|0&&Q2(k+(0-m<<2)|0,l|0,d|0)|0}function hb(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0;return k=l+4|0,R=n[k>>2]|0,d=n[o>>2]|0,B=u,m=B-d|0,A=R+(0-(m>>2)<<2)|0,n[k>>2]=A,(m|0)>0&&Qr(A|0,d|0,m|0)|0,d=o+4|0,m=l+8|0,A=(n[d>>2]|0)-B|0,(A|0)>0&&(Qr(n[m>>2]|0,u|0,A|0)|0,n[m>>2]=(n[m>>2]|0)+(A>>>2<<2)),B=n[o>>2]|0,n[o>>2]=n[k>>2],n[k>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=o+8|0,u=l+12|0,o=n[B>>2]|0,n[B>>2]=n[u>>2],n[u>>2]=o,n[l>>2]=n[k>>2],R|0}function o2(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[u>>2]|0,(B|0)!=(m|0)){d=o+8|0,u=((m+-4-B|0)>>>2)+1|0,o=B,A=n[d>>2]|0;do n[A>>2]=n[o>>2],A=(n[d>>2]|0)+4|0,n[d>>2]=A,o=o+4|0;while((o|0)!=(m|0));n[l>>2]=B+(u<<2)}}function a2(){ua()}function gb(){var o=0;return o=Kt(4)|0,l2(o),o|0}function l2(o){o=o|0,n[o>>2]=Ac()|0}function db(o){o=o|0,o|0&&(Kg(o),It(o))}function Kg(o){o=o|0,st(n[o>>2]|0)}function YL(o,l,u){o=o|0,l=l|0,u=u|0,pc(n[o>>2]|0,l,u)}function Ry(o,l){o=o|0,l=y(l),Dh(n[o>>2]|0,l)}function Ty(o,l){return o=o|0,l=l|0,s2(n[o>>2]|0,l)|0}function Fy(){var o=0;return o=Kt(8)|0,zg(o,0),o|0}function zg(o,l){o=o|0,l=l|0,l?l=fa(n[l>>2]|0)|0:l=rs()|0,n[o>>2]=l,n[o+4>>2]=0,Rn(l,o)}function Ny(o){o=o|0;var l=0;return l=Kt(8)|0,zg(l,o),l|0}function Zg(o){o=o|0,o|0&&(Oy(o),It(o))}function Oy(o){o=o|0;var l=0;uc(n[o>>2]|0),l=o+4|0,o=n[l>>2]|0,n[l>>2]=0,o|0&&(Sf(o),It(o))}function Sf(o){o=o|0,Df(o)}function Df(o){o=o|0,o=n[o>>2]|0,o|0&&Na(o|0)}function c2(o){return o=o|0,Ga(o)|0}function u2(o){o=o|0;var l=0,u=0;u=o+4|0,l=n[u>>2]|0,n[u>>2]=0,l|0&&(Sf(l),It(l)),fc(n[o>>2]|0)}function Ly(o,l){o=o|0,l=l|0,An(n[o>>2]|0,n[l>>2]|0)}function VL(o,l){o=o|0,l=l|0,wh(n[o>>2]|0,l)}function JL(o,l,u){o=o|0,l=l|0,u=+u,Cy(n[o>>2]|0,l,y(u))}function My(o,l,u){o=o|0,l=l|0,u=+u,wy(n[o>>2]|0,l,y(u))}function f2(o,l){o=o|0,l=l|0,Eh(n[o>>2]|0,l)}function A2(o,l){o=o|0,l=l|0,So(n[o>>2]|0,l)}function xr(o,l){o=o|0,l=l|0,Ch(n[o>>2]|0,l)}function so(o,l){o=o|0,l=l|0,my(n[o>>2]|0,l)}function zi(o,l){o=o|0,l=l|0,Ng(n[o>>2]|0,l)}function Ns(o,l){o=o|0,l=l|0,vo(n[o>>2]|0,l)}function XA(o,l,u){o=o|0,l=l|0,u=+u,HA(n[o>>2]|0,l,y(u))}function p2(o,l,u){o=o|0,l=l|0,u=+u,Y(n[o>>2]|0,l,y(u))}function ws(o,l){o=o|0,l=l|0,jA(n[o>>2]|0,l)}function Uy(o,l){o=o|0,l=l|0,Ey(n[o>>2]|0,l)}function Th(o,l){o=o|0,l=l|0,Do(n[o>>2]|0,l)}function Xg(o,l){o=o|0,l=+l,Bh(n[o>>2]|0,y(l))}function Fh(o,l){o=o|0,l=+l,Pl(n[o>>2]|0,y(l))}function h2(o,l){o=o|0,l=+l,Iy(n[o>>2]|0,y(l))}function g2(o,l){o=o|0,l=+l,Lg(n[o>>2]|0,y(l))}function d2(o,l){o=o|0,l=+l,Dl(n[o>>2]|0,y(l))}function m2(o,l){o=o|0,l=+l,Mg(n[o>>2]|0,y(l))}function Pf(o,l){o=o|0,l=+l,e2(n[o>>2]|0,y(l))}function sr(o){o=o|0,vh(n[o>>2]|0)}function _y(o,l){o=o|0,l=+l,Ki(n[o>>2]|0,y(l))}function y2(o,l){o=o|0,l=+l,yf(n[o>>2]|0,y(l))}function hc(o){o=o|0,qa(n[o>>2]|0)}function bf(o,l){o=o|0,l=+l,du(n[o>>2]|0,y(l))}function $g(o,l){o=o|0,l=+l,Ef(n[o>>2]|0,y(l))}function ed(o,l){o=o|0,l=+l,di(n[o>>2]|0,y(l))}function E2(o,l){o=o|0,l=+l,GA(n[o>>2]|0,y(l))}function I2(o,l){o=o|0,l=+l,Aa(n[o>>2]|0,y(l))}function wu(o,l){o=o|0,l=+l,Ya(n[o>>2]|0,y(l))}function td(o,l){o=o|0,l=+l,Sh(n[o>>2]|0,y(l))}function C2(o,l){o=o|0,l=+l,Hg(n[o>>2]|0,y(l))}function Hy(o,l){o=o|0,l=+l,qA(n[o>>2]|0,y(l))}function Bu(o,l,u){o=o|0,l=l|0,u=+u,gu(n[o>>2]|0,l,y(u))}function jy(o,l,u){o=o|0,l=l|0,u=+u,Po(n[o>>2]|0,l,y(u))}function rd(o,l,u){o=o|0,l=l|0,u=+u,mf(n[o>>2]|0,l,y(u))}function nd(o){return o=o|0,Fg(n[o>>2]|0)|0}function ko(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,_A(d,n[l>>2]|0,u),Bs(o,d),I=A}function Bs(o,l){o=o|0,l=l|0,Rl(o,n[l+4>>2]|0,+y(h[l>>2]))}function Rl(o,l,u){o=o|0,l=l|0,u=+u,n[o>>2]=l,E[o+8>>3]=u}function Gy(o){return o=o|0,$1(n[o>>2]|0)|0}function ga(o){return o=o|0,Ih(n[o>>2]|0)|0}function mb(o){return o=o|0,hu(n[o>>2]|0)|0}function Nh(o){return o=o|0,X1(n[o>>2]|0)|0}function w2(o){return o=o|0,Og(n[o>>2]|0)|0}function KL(o){return o=o|0,yy(n[o>>2]|0)|0}function yb(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,xt(d,n[l>>2]|0,u),Bs(o,d),I=A}function Eb(o){return o=o|0,df(n[o>>2]|0)|0}function qy(o){return o=o|0,Sl(n[o>>2]|0)|0}function B2(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,UA(A,n[l>>2]|0),Bs(o,A),I=u}function Oh(o){return o=o|0,+ +y(li(n[o>>2]|0))}function Ib(o){return o=o|0,+ +y(Gi(n[o>>2]|0))}function Cb(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,ur(A,n[l>>2]|0),Bs(o,A),I=u}function id(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,Ug(A,n[l>>2]|0),Bs(o,A),I=u}function zL(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,wt(A,n[l>>2]|0),Bs(o,A),I=u}function ZL(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,Wa(A,n[l>>2]|0),Bs(o,A),I=u}function wb(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,_g(A,n[l>>2]|0),Bs(o,A),I=u}function Bb(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,vy(A,n[l>>2]|0),Bs(o,A),I=u}function $A(o){return o=o|0,+ +y(jg(n[o>>2]|0))}function XL(o,l){return o=o|0,l=l|0,+ +y(By(n[o>>2]|0,l))}function $L(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,yt(d,n[l>>2]|0,u),Bs(o,d),I=A}function vu(o,l,u){o=o|0,l=l|0,u=u|0,lr(n[o>>2]|0,n[l>>2]|0,u)}function eM(o,l){o=o|0,l=l|0,gf(n[o>>2]|0,n[l>>2]|0)}function vb(o){return o=o|0,Mi(n[o>>2]|0)|0}function tM(o){return o=o|0,o=Et(n[o>>2]|0)|0,o?o=c2(o)|0:o=0,o|0}function Sb(o,l){return o=o|0,l=l|0,o=Is(n[o>>2]|0,l)|0,o?o=c2(o)|0:o=0,o|0}function xf(o,l){o=o|0,l=l|0;var u=0,A=0;A=Kt(4)|0,Db(A,l),u=o+4|0,l=n[u>>2]|0,n[u>>2]=A,l|0&&(Sf(l),It(l)),St(n[o>>2]|0,1)}function Db(o,l){o=o|0,l=l|0,sM(o,l)}function rM(o,l,u,A,d,m){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=m|0;var B=0,k=0;B=I,I=I+16|0,k=B,Pb(k,Ga(l)|0,+u,A,+d,m),h[o>>2]=y(+E[k>>3]),h[o+4>>2]=y(+E[k+8>>3]),I=B}function Pb(o,l,u,A,d,m){o=o|0,l=l|0,u=+u,A=A|0,d=+d,m=m|0;var B=0,k=0,R=0,M=0,L=0;B=I,I=I+32|0,L=B+8|0,M=B+20|0,R=B,k=B+16|0,E[L>>3]=u,n[M>>2]=A,E[R>>3]=d,n[k>>2]=m,Wy(o,n[l+4>>2]|0,L,M,R,k),I=B}function Wy(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0;B=I,I=I+16|0,k=B,Fl(k),l=Os(l)|0,bb(o,l,+E[u>>3],n[A>>2]|0,+E[d>>3],n[m>>2]|0),Nl(k),I=B}function Os(o){return o=o|0,n[o>>2]|0}function bb(o,l,u,A,d,m){o=o|0,l=l|0,u=+u,A=A|0,d=+d,m=m|0;var B=0;B=da(v2()|0)|0,u=+Ja(u),A=Yy(A)|0,d=+Ja(d),nM(o,Kn(0,B|0,l|0,+u,A|0,+d,Yy(m)|0)|0)}function v2(){var o=0;return s[7608]|0||(D2(9120),o=7608,n[o>>2]=1,n[o+4>>2]=0),9120}function da(o){return o=o|0,n[o+8>>2]|0}function Ja(o){return o=+o,+ +kf(o)}function Yy(o){return o=o|0,sd(o)|0}function nM(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;d=I,I=I+32|0,u=d,A=l,A&1?(Ka(u,0),Me(A|0,u|0)|0,S2(o,u),iM(u)):(n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],n[o+12>>2]=n[l+12>>2]),I=d}function Ka(o,l){o=o|0,l=l|0,Su(o,l),n[o+8>>2]=0,s[o+24>>0]=0}function S2(o,l){o=o|0,l=l|0,l=l+8|0,n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],n[o+12>>2]=n[l+12>>2]}function iM(o){o=o|0,s[o+24>>0]=0}function Su(o,l){o=o|0,l=l|0,n[o>>2]=l}function sd(o){return o=o|0,o|0}function kf(o){return o=+o,+o}function D2(o){o=o|0,Qo(o,P2()|0,4)}function P2(){return 1064}function Qo(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u,n[o+8>>2]=ji(l|0,u+1|0)|0}function sM(o,l){o=o|0,l=l|0,l=n[l>>2]|0,n[o>>2]=l,au(l|0)}function xb(o){o=o|0;var l=0,u=0;u=o+4|0,l=n[u>>2]|0,n[u>>2]=0,l|0&&(Sf(l),It(l)),St(n[o>>2]|0,0)}function kb(o){o=o|0,Pt(n[o>>2]|0)}function Vy(o){return o=o|0,tr(n[o>>2]|0)|0}function oM(o,l,u,A){o=o|0,l=+l,u=+u,A=A|0,YA(n[o>>2]|0,y(l),y(u),A)}function aM(o){return o=o|0,+ +y(mu(n[o>>2]|0))}function v(o){return o=o|0,+ +y(If(n[o>>2]|0))}function D(o){return o=o|0,+ +y(yu(n[o>>2]|0))}function Q(o){return o=o|0,+ +y(Ts(n[o>>2]|0))}function H(o){return o=o|0,+ +y(Eu(n[o>>2]|0))}function V(o){return o=o|0,+ +y(Gn(n[o>>2]|0))}function ne(o,l){o=o|0,l=l|0,E[o>>3]=+y(mu(n[l>>2]|0)),E[o+8>>3]=+y(If(n[l>>2]|0)),E[o+16>>3]=+y(yu(n[l>>2]|0)),E[o+24>>3]=+y(Ts(n[l>>2]|0)),E[o+32>>3]=+y(Eu(n[l>>2]|0)),E[o+40>>3]=+y(Gn(n[l>>2]|0))}function Se(o,l){return o=o|0,l=l|0,+ +y(ns(n[o>>2]|0,l))}function _e(o,l){return o=o|0,l=l|0,+ +y(bi(n[o>>2]|0,l))}function pt(o,l){return o=o|0,l=l|0,+ +y(WA(n[o>>2]|0,l))}function Wt(){return Qn()|0}function Sr(){Lr(),Xt(),zn(),yi(),za(),et()}function Lr(){u4e(11713,4938,1)}function Xt(){x_e(10448)}function zn(){u_e(10408)}function yi(){TUe(10324)}function za(){HLe(10096)}function et(){qe(9132)}function qe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0,He=0,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0,Hn=0,Ro=0,To=0,Fo=0,Xa=0,Wh=0,Yh=0,gc=0,Vh=0,Tf=0,Ff=0,Jh=0,Kh=0,zh=0,on=0,dc=0,Zh=0,bu=0,Xh=0,$h=0,Nf=0,Of=0,xu=0,oo=0,Ll=0,ma=0,mc=0,op=0,ap=0,Lf=0,lp=0,cp=0,ao=0,Ms=0,yc=0,Wn=0,up=0,No=0,ku=0,Oo=0,Qu=0,fp=0,Ap=0,Ru=0,lo=0,Ec=0,pp=0,hp=0,gp=0,Nr=0,ui=0,Us=0,Lo=0,co=0,Mr=0,Ar=0,Ic=0;l=I,I=I+672|0,u=l+656|0,Ic=l+648|0,Ar=l+640|0,Mr=l+632|0,co=l+624|0,Lo=l+616|0,Us=l+608|0,ui=l+600|0,Nr=l+592|0,gp=l+584|0,hp=l+576|0,pp=l+568|0,Ec=l+560|0,lo=l+552|0,Ru=l+544|0,Ap=l+536|0,fp=l+528|0,Qu=l+520|0,Oo=l+512|0,ku=l+504|0,No=l+496|0,up=l+488|0,Wn=l+480|0,yc=l+472|0,Ms=l+464|0,ao=l+456|0,cp=l+448|0,lp=l+440|0,Lf=l+432|0,ap=l+424|0,op=l+416|0,mc=l+408|0,ma=l+400|0,Ll=l+392|0,oo=l+384|0,xu=l+376|0,Of=l+368|0,Nf=l+360|0,$h=l+352|0,Xh=l+344|0,bu=l+336|0,Zh=l+328|0,dc=l+320|0,on=l+312|0,zh=l+304|0,Kh=l+296|0,Jh=l+288|0,Ff=l+280|0,Tf=l+272|0,Vh=l+264|0,gc=l+256|0,Yh=l+248|0,Wh=l+240|0,Xa=l+232|0,Fo=l+224|0,To=l+216|0,Ro=l+208|0,Hn=l+200|0,cr=l+192|0,Hr=l+184|0,Rr=l+176|0,$t=l+168|0,fr=l+160|0,Gr=l+152|0,Lt=l+144|0,We=l+136|0,He=l+128|0,ct=l+120|0,Xe=l+112|0,tt=l+104|0,Qe=l+96|0,Le=l+88|0,Ye=l+80|0,ae=l+72|0,q=l+64|0,L=l+56|0,M=l+48|0,R=l+40|0,k=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,A=l,gt(o,3646),Zt(o,3651,2)|0,Dr(o,3665,2)|0,Xn(o,3682,18)|0,n[Ic>>2]=19,n[Ic+4>>2]=0,n[u>>2]=n[Ic>>2],n[u+4>>2]=n[Ic+4>>2],kr(o,3690,u)|0,n[Ar>>2]=1,n[Ar+4>>2]=0,n[u>>2]=n[Ar>>2],n[u+4>>2]=n[Ar+4>>2],Tn(o,3696,u)|0,n[Mr>>2]=2,n[Mr+4>>2]=0,n[u>>2]=n[Mr>>2],n[u+4>>2]=n[Mr+4>>2],_n(o,3706,u)|0,n[co>>2]=1,n[co+4>>2]=0,n[u>>2]=n[co>>2],n[u+4>>2]=n[co+4>>2],zr(o,3722,u)|0,n[Lo>>2]=2,n[Lo+4>>2]=0,n[u>>2]=n[Lo>>2],n[u+4>>2]=n[Lo+4>>2],zr(o,3734,u)|0,n[Us>>2]=3,n[Us+4>>2]=0,n[u>>2]=n[Us>>2],n[u+4>>2]=n[Us+4>>2],_n(o,3753,u)|0,n[ui>>2]=4,n[ui+4>>2]=0,n[u>>2]=n[ui>>2],n[u+4>>2]=n[ui+4>>2],_n(o,3769,u)|0,n[Nr>>2]=5,n[Nr+4>>2]=0,n[u>>2]=n[Nr>>2],n[u+4>>2]=n[Nr+4>>2],_n(o,3783,u)|0,n[gp>>2]=6,n[gp+4>>2]=0,n[u>>2]=n[gp>>2],n[u+4>>2]=n[gp+4>>2],_n(o,3796,u)|0,n[hp>>2]=7,n[hp+4>>2]=0,n[u>>2]=n[hp>>2],n[u+4>>2]=n[hp+4>>2],_n(o,3813,u)|0,n[pp>>2]=8,n[pp+4>>2]=0,n[u>>2]=n[pp>>2],n[u+4>>2]=n[pp+4>>2],_n(o,3825,u)|0,n[Ec>>2]=3,n[Ec+4>>2]=0,n[u>>2]=n[Ec>>2],n[u+4>>2]=n[Ec+4>>2],zr(o,3843,u)|0,n[lo>>2]=4,n[lo+4>>2]=0,n[u>>2]=n[lo>>2],n[u+4>>2]=n[lo+4>>2],zr(o,3853,u)|0,n[Ru>>2]=9,n[Ru+4>>2]=0,n[u>>2]=n[Ru>>2],n[u+4>>2]=n[Ru+4>>2],_n(o,3870,u)|0,n[Ap>>2]=10,n[Ap+4>>2]=0,n[u>>2]=n[Ap>>2],n[u+4>>2]=n[Ap+4>>2],_n(o,3884,u)|0,n[fp>>2]=11,n[fp+4>>2]=0,n[u>>2]=n[fp>>2],n[u+4>>2]=n[fp+4>>2],_n(o,3896,u)|0,n[Qu>>2]=1,n[Qu+4>>2]=0,n[u>>2]=n[Qu>>2],n[u+4>>2]=n[Qu+4>>2],ci(o,3907,u)|0,n[Oo>>2]=2,n[Oo+4>>2]=0,n[u>>2]=n[Oo>>2],n[u+4>>2]=n[Oo+4>>2],ci(o,3915,u)|0,n[ku>>2]=3,n[ku+4>>2]=0,n[u>>2]=n[ku>>2],n[u+4>>2]=n[ku+4>>2],ci(o,3928,u)|0,n[No>>2]=4,n[No+4>>2]=0,n[u>>2]=n[No>>2],n[u+4>>2]=n[No+4>>2],ci(o,3948,u)|0,n[up>>2]=5,n[up+4>>2]=0,n[u>>2]=n[up>>2],n[u+4>>2]=n[up+4>>2],ci(o,3960,u)|0,n[Wn>>2]=6,n[Wn+4>>2]=0,n[u>>2]=n[Wn>>2],n[u+4>>2]=n[Wn+4>>2],ci(o,3974,u)|0,n[yc>>2]=7,n[yc+4>>2]=0,n[u>>2]=n[yc>>2],n[u+4>>2]=n[yc+4>>2],ci(o,3983,u)|0,n[Ms>>2]=20,n[Ms+4>>2]=0,n[u>>2]=n[Ms>>2],n[u+4>>2]=n[Ms+4>>2],kr(o,3999,u)|0,n[ao>>2]=8,n[ao+4>>2]=0,n[u>>2]=n[ao>>2],n[u+4>>2]=n[ao+4>>2],ci(o,4012,u)|0,n[cp>>2]=9,n[cp+4>>2]=0,n[u>>2]=n[cp>>2],n[u+4>>2]=n[cp+4>>2],ci(o,4022,u)|0,n[lp>>2]=21,n[lp+4>>2]=0,n[u>>2]=n[lp>>2],n[u+4>>2]=n[lp+4>>2],kr(o,4039,u)|0,n[Lf>>2]=10,n[Lf+4>>2]=0,n[u>>2]=n[Lf>>2],n[u+4>>2]=n[Lf+4>>2],ci(o,4053,u)|0,n[ap>>2]=11,n[ap+4>>2]=0,n[u>>2]=n[ap>>2],n[u+4>>2]=n[ap+4>>2],ci(o,4065,u)|0,n[op>>2]=12,n[op+4>>2]=0,n[u>>2]=n[op>>2],n[u+4>>2]=n[op+4>>2],ci(o,4084,u)|0,n[mc>>2]=13,n[mc+4>>2]=0,n[u>>2]=n[mc>>2],n[u+4>>2]=n[mc+4>>2],ci(o,4097,u)|0,n[ma>>2]=14,n[ma+4>>2]=0,n[u>>2]=n[ma>>2],n[u+4>>2]=n[ma+4>>2],ci(o,4117,u)|0,n[Ll>>2]=15,n[Ll+4>>2]=0,n[u>>2]=n[Ll>>2],n[u+4>>2]=n[Ll+4>>2],ci(o,4129,u)|0,n[oo>>2]=16,n[oo+4>>2]=0,n[u>>2]=n[oo>>2],n[u+4>>2]=n[oo+4>>2],ci(o,4148,u)|0,n[xu>>2]=17,n[xu+4>>2]=0,n[u>>2]=n[xu>>2],n[u+4>>2]=n[xu+4>>2],ci(o,4161,u)|0,n[Of>>2]=18,n[Of+4>>2]=0,n[u>>2]=n[Of>>2],n[u+4>>2]=n[Of+4>>2],ci(o,4181,u)|0,n[Nf>>2]=5,n[Nf+4>>2]=0,n[u>>2]=n[Nf>>2],n[u+4>>2]=n[Nf+4>>2],zr(o,4196,u)|0,n[$h>>2]=6,n[$h+4>>2]=0,n[u>>2]=n[$h>>2],n[u+4>>2]=n[$h+4>>2],zr(o,4206,u)|0,n[Xh>>2]=7,n[Xh+4>>2]=0,n[u>>2]=n[Xh>>2],n[u+4>>2]=n[Xh+4>>2],zr(o,4217,u)|0,n[bu>>2]=3,n[bu+4>>2]=0,n[u>>2]=n[bu>>2],n[u+4>>2]=n[bu+4>>2],Du(o,4235,u)|0,n[Zh>>2]=1,n[Zh+4>>2]=0,n[u>>2]=n[Zh>>2],n[u+4>>2]=n[Zh+4>>2],lM(o,4251,u)|0,n[dc>>2]=4,n[dc+4>>2]=0,n[u>>2]=n[dc>>2],n[u+4>>2]=n[dc+4>>2],Du(o,4263,u)|0,n[on>>2]=5,n[on+4>>2]=0,n[u>>2]=n[on>>2],n[u+4>>2]=n[on+4>>2],Du(o,4279,u)|0,n[zh>>2]=6,n[zh+4>>2]=0,n[u>>2]=n[zh>>2],n[u+4>>2]=n[zh+4>>2],Du(o,4293,u)|0,n[Kh>>2]=7,n[Kh+4>>2]=0,n[u>>2]=n[Kh>>2],n[u+4>>2]=n[Kh+4>>2],Du(o,4306,u)|0,n[Jh>>2]=8,n[Jh+4>>2]=0,n[u>>2]=n[Jh>>2],n[u+4>>2]=n[Jh+4>>2],Du(o,4323,u)|0,n[Ff>>2]=9,n[Ff+4>>2]=0,n[u>>2]=n[Ff>>2],n[u+4>>2]=n[Ff+4>>2],Du(o,4335,u)|0,n[Tf>>2]=2,n[Tf+4>>2]=0,n[u>>2]=n[Tf>>2],n[u+4>>2]=n[Tf+4>>2],lM(o,4353,u)|0,n[Vh>>2]=12,n[Vh+4>>2]=0,n[u>>2]=n[Vh>>2],n[u+4>>2]=n[Vh+4>>2],od(o,4363,u)|0,n[gc>>2]=1,n[gc+4>>2]=0,n[u>>2]=n[gc>>2],n[u+4>>2]=n[gc+4>>2],ep(o,4376,u)|0,n[Yh>>2]=2,n[Yh+4>>2]=0,n[u>>2]=n[Yh>>2],n[u+4>>2]=n[Yh+4>>2],ep(o,4388,u)|0,n[Wh>>2]=13,n[Wh+4>>2]=0,n[u>>2]=n[Wh>>2],n[u+4>>2]=n[Wh+4>>2],od(o,4402,u)|0,n[Xa>>2]=14,n[Xa+4>>2]=0,n[u>>2]=n[Xa>>2],n[u+4>>2]=n[Xa+4>>2],od(o,4411,u)|0,n[Fo>>2]=15,n[Fo+4>>2]=0,n[u>>2]=n[Fo>>2],n[u+4>>2]=n[Fo+4>>2],od(o,4421,u)|0,n[To>>2]=16,n[To+4>>2]=0,n[u>>2]=n[To>>2],n[u+4>>2]=n[To+4>>2],od(o,4433,u)|0,n[Ro>>2]=17,n[Ro+4>>2]=0,n[u>>2]=n[Ro>>2],n[u+4>>2]=n[Ro+4>>2],od(o,4446,u)|0,n[Hn>>2]=18,n[Hn+4>>2]=0,n[u>>2]=n[Hn>>2],n[u+4>>2]=n[Hn+4>>2],od(o,4458,u)|0,n[cr>>2]=3,n[cr+4>>2]=0,n[u>>2]=n[cr>>2],n[u+4>>2]=n[cr+4>>2],ep(o,4471,u)|0,n[Hr>>2]=1,n[Hr+4>>2]=0,n[u>>2]=n[Hr>>2],n[u+4>>2]=n[Hr+4>>2],Qb(o,4486,u)|0,n[Rr>>2]=10,n[Rr+4>>2]=0,n[u>>2]=n[Rr>>2],n[u+4>>2]=n[Rr+4>>2],Du(o,4496,u)|0,n[$t>>2]=11,n[$t+4>>2]=0,n[u>>2]=n[$t>>2],n[u+4>>2]=n[$t+4>>2],Du(o,4508,u)|0,n[fr>>2]=3,n[fr+4>>2]=0,n[u>>2]=n[fr>>2],n[u+4>>2]=n[fr+4>>2],lM(o,4519,u)|0,n[Gr>>2]=4,n[Gr+4>>2]=0,n[u>>2]=n[Gr>>2],n[u+4>>2]=n[Gr+4>>2],yke(o,4530,u)|0,n[Lt>>2]=19,n[Lt+4>>2]=0,n[u>>2]=n[Lt>>2],n[u+4>>2]=n[Lt+4>>2],Eke(o,4542,u)|0,n[We>>2]=12,n[We+4>>2]=0,n[u>>2]=n[We>>2],n[u+4>>2]=n[We+4>>2],Ike(o,4554,u)|0,n[He>>2]=13,n[He+4>>2]=0,n[u>>2]=n[He>>2],n[u+4>>2]=n[He+4>>2],Cke(o,4568,u)|0,n[ct>>2]=2,n[ct+4>>2]=0,n[u>>2]=n[ct>>2],n[u+4>>2]=n[ct+4>>2],wke(o,4578,u)|0,n[Xe>>2]=20,n[Xe+4>>2]=0,n[u>>2]=n[Xe>>2],n[u+4>>2]=n[Xe+4>>2],Bke(o,4587,u)|0,n[tt>>2]=22,n[tt+4>>2]=0,n[u>>2]=n[tt>>2],n[u+4>>2]=n[tt+4>>2],kr(o,4602,u)|0,n[Qe>>2]=23,n[Qe+4>>2]=0,n[u>>2]=n[Qe>>2],n[u+4>>2]=n[Qe+4>>2],kr(o,4619,u)|0,n[Le>>2]=14,n[Le+4>>2]=0,n[u>>2]=n[Le>>2],n[u+4>>2]=n[Le+4>>2],vke(o,4629,u)|0,n[Ye>>2]=1,n[Ye+4>>2]=0,n[u>>2]=n[Ye>>2],n[u+4>>2]=n[Ye+4>>2],Ske(o,4637,u)|0,n[ae>>2]=4,n[ae+4>>2]=0,n[u>>2]=n[ae>>2],n[u+4>>2]=n[ae+4>>2],ep(o,4653,u)|0,n[q>>2]=5,n[q+4>>2]=0,n[u>>2]=n[q>>2],n[u+4>>2]=n[q+4>>2],ep(o,4669,u)|0,n[L>>2]=6,n[L+4>>2]=0,n[u>>2]=n[L>>2],n[u+4>>2]=n[L+4>>2],ep(o,4686,u)|0,n[M>>2]=7,n[M+4>>2]=0,n[u>>2]=n[M>>2],n[u+4>>2]=n[M+4>>2],ep(o,4701,u)|0,n[R>>2]=8,n[R+4>>2]=0,n[u>>2]=n[R>>2],n[u+4>>2]=n[R+4>>2],ep(o,4719,u)|0,n[k>>2]=9,n[k+4>>2]=0,n[u>>2]=n[k>>2],n[u+4>>2]=n[k+4>>2],ep(o,4736,u)|0,n[B>>2]=21,n[B+4>>2]=0,n[u>>2]=n[B>>2],n[u+4>>2]=n[B+4>>2],Dke(o,4754,u)|0,n[m>>2]=2,n[m+4>>2]=0,n[u>>2]=n[m>>2],n[u+4>>2]=n[m+4>>2],Qb(o,4772,u)|0,n[d>>2]=3,n[d+4>>2]=0,n[u>>2]=n[d>>2],n[u+4>>2]=n[d+4>>2],Qb(o,4790,u)|0,n[A>>2]=4,n[A+4>>2]=0,n[u>>2]=n[A>>2],n[u+4>>2]=n[A+4>>2],Qb(o,4808,u)|0,I=l}function gt(o,l){o=o|0,l=l|0;var u=0;u=RLe()|0,n[o>>2]=u,TLe(u,l),jh(n[o>>2]|0)}function Zt(o,l,u){return o=o|0,l=l|0,u=u|0,yLe(o,Bn(l)|0,u,0),o|0}function Dr(o,l,u){return o=o|0,l=l|0,u=u|0,rLe(o,Bn(l)|0,u,0),o|0}function Xn(o,l,u){return o=o|0,l=l|0,u=u|0,jOe(o,Bn(l)|0,u,0),o|0}function kr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],DOe(o,l,d),I=A,o|0}function Tn(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],aOe(o,l,d),I=A,o|0}function _n(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],WNe(o,l,d),I=A,o|0}function zr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xNe(o,l,d),I=A,o|0}function ci(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pNe(o,l,d),I=A,o|0}function Du(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZFe(o,l,d),I=A,o|0}function lM(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],NFe(o,l,d),I=A,o|0}function od(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],aFe(o,l,d),I=A,o|0}function ep(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],WTe(o,l,d),I=A,o|0}function Qb(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xTe(o,l,d),I=A,o|0}function yke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pTe(o,l,d),I=A,o|0}function Eke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZRe(o,l,d),I=A,o|0}function Ike(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ORe(o,l,d),I=A,o|0}function Cke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CRe(o,l,d),I=A,o|0}function wke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iRe(o,l,d),I=A,o|0}function Bke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],HQe(o,l,d),I=A,o|0}function vke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SQe(o,l,d),I=A,o|0}function Ske(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],aQe(o,l,d),I=A,o|0}function Dke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Pke(o,l,d),I=A,o|0}function Pke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bke(o,u,d,1),I=A}function Bn(o){return o=o|0,o|0}function bke(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=cM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=xke(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,kke(m,A)|0,A),I=d}function cM(){var o=0,l=0;if(s[7616]|0||(pz(9136),gr(24,9136,U|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(_r(9136)|0)){o=9136,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));pz(9136)}return 9136}function xke(o){return o=o|0,0}function kke(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=cM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Az(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(Tke(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function vn(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0;B=I,I=I+32|0,ae=B+24|0,q=B+20|0,R=B+16|0,L=B+12|0,M=B+8|0,k=B+4|0,Ye=B,n[q>>2]=l,n[R>>2]=u,n[L>>2]=A,n[M>>2]=d,n[k>>2]=m,m=o+28|0,n[Ye>>2]=n[m>>2],n[ae>>2]=n[Ye>>2],Qke(o+24|0,ae,q,L,M,R,k)|0,n[m>>2]=n[n[m>>2]>>2],I=B}function Qke(o,l,u,A,d,m,B){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0,o=Rke(l)|0,l=Kt(24)|0,fz(l+4|0,n[u>>2]|0,n[A>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[o>>2],n[o>>2]=l,l|0}function Rke(o){return o=o|0,n[o>>2]|0}function fz(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,n[o>>2]=l,n[o+4>>2]=u,n[o+8>>2]=A,n[o+12>>2]=d,n[o+16>>2]=m}function yr(o,l){return o=o|0,l=l|0,l|o|0}function Az(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function Tke(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=Fke(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,Nke(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Az(m,A,u),n[R>>2]=(n[R>>2]|0)+12,Oke(o,k),Lke(k),I=M;return}}function Fke(o){return o=o|0,357913941}function Nke(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function Oke(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function Lke(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function pz(o){o=o|0,_ke(o)}function Mke(o){o=o|0,Uke(o+24|0)}function _r(o){return o=o|0,n[o>>2]|0}function Uke(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function _ke(o){o=o|0;var l=0;l=en()|0,tn(o,2,3,l,Hke()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function en(){return 9228}function Hke(){return 1140}function jke(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=Gke(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=qke(l,A)|0,I=u,l|0}function tn(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,n[o>>2]=l,n[o+4>>2]=u,n[o+8>>2]=A,n[o+12>>2]=d,n[o+16>>2]=m}function Gke(o){return o=o|0,(n[(cM()|0)+24>>2]|0)+(o*12|0)|0}function qke(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;return d=I,I=I+48|0,A=d,u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),sp[u&31](A,o),A=Wke(A)|0,I=d,A|0}function Wke(o){o=o|0;var l=0,u=0,A=0,d=0;return d=I,I=I+32|0,l=d+12|0,u=d,A=uM(hz()|0)|0,A?(fM(l,A),AM(u,l),Yke(o,u),o=pM(l)|0):o=Vke(o)|0,I=d,o|0}function hz(){var o=0;return s[7632]|0||(nQe(9184),gr(25,9184,U|0)|0,o=7632,n[o>>2]=1,n[o+4>>2]=0),9184}function uM(o){return o=o|0,n[o+36>>2]|0}function fM(o,l){o=o|0,l=l|0,n[o>>2]=l,n[o+4>>2]=o,n[o+8>>2]=0}function AM(o,l){o=o|0,l=l|0,n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=0}function Yke(o,l){o=o|0,l=l|0,Zke(l,o,o+8|0,o+16|0,o+24|0,o+32|0,o+40|0)|0}function pM(o){return o=o|0,n[(n[o+4>>2]|0)+8>>2]|0}function Vke(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0;R=I,I=I+16|0,u=R+4|0,A=R,d=Tl(8)|0,m=d,B=Kt(48)|0,k=B,l=k+48|0;do n[k>>2]=n[o>>2],k=k+4|0,o=o+4|0;while((k|0)<(l|0));return l=m+4|0,n[l>>2]=B,k=Kt(8)|0,B=n[l>>2]|0,n[A>>2]=0,n[u>>2]=n[A>>2],gz(k,B,u),n[d>>2]=k,I=R,m|0}function gz(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1092,n[u+12>>2]=l,n[o+4>>2]=u}function Jke(o){o=o|0,$y(o),It(o)}function Kke(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function zke(o){o=o|0,It(o)}function Zke(o,l,u,A,d,m,B){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0,m=Xke(n[o>>2]|0,l,u,A,d,m,B)|0,B=o+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function Xke(o,l,u,A,d,m,B){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0;var k=0,R=0;return k=I,I=I+16|0,R=k,Fl(R),o=Os(o)|0,B=$ke(o,+E[l>>3],+E[u>>3],+E[A>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,Nl(R),I=k,B|0}function $ke(o,l,u,A,d,m,B){o=o|0,l=+l,u=+u,A=+A,d=+d,m=+m,B=+B;var k=0;return k=da(eQe()|0)|0,l=+Ja(l),u=+Ja(u),A=+Ja(A),d=+Ja(d),m=+Ja(m),ro(0,k|0,o|0,+l,+u,+A,+d,+m,+ +Ja(B))|0}function eQe(){var o=0;return s[7624]|0||(tQe(9172),o=7624,n[o>>2]=1,n[o+4>>2]=0),9172}function tQe(o){o=o|0,Qo(o,rQe()|0,6)}function rQe(){return 1112}function nQe(o){o=o|0,Lh(o)}function iQe(o){o=o|0,dz(o+24|0),mz(o+16|0)}function dz(o){o=o|0,oQe(o)}function mz(o){o=o|0,sQe(o)}function sQe(o){o=o|0;var l=0,u=0;if(l=n[o>>2]|0,l|0)do u=l,l=n[l>>2]|0,It(u);while(l|0);n[o>>2]=0}function oQe(o){o=o|0;var l=0,u=0;if(l=n[o>>2]|0,l|0)do u=l,l=n[l>>2]|0,It(u);while(l|0);n[o>>2]=0}function Lh(o){o=o|0;var l=0;n[o+16>>2]=0,n[o+20>>2]=0,l=o+24|0,n[l>>2]=0,n[o+28>>2]=l,n[o+36>>2]=0,s[o+40>>0]=0,s[o+41>>0]=0}function aQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lQe(o,u,d,0),I=A}function lQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=hM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=cQe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,uQe(m,A)|0,A),I=d}function hM(){var o=0,l=0;if(s[7640]|0||(Ez(9232),gr(26,9232,U|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(_r(9232)|0)){o=9232,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Ez(9232)}return 9232}function cQe(o){return o=o|0,0}function uQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=hM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],yz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(fQe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function yz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function fQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=AQe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,pQe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],yz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,hQe(o,k),gQe(k),I=M;return}}function AQe(o){return o=o|0,357913941}function pQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function hQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function gQe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Ez(o){o=o|0,yQe(o)}function dQe(o){o=o|0,mQe(o+24|0)}function mQe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function yQe(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,EQe()|0,3),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function EQe(){return 1144}function IQe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0;var m=0,B=0,k=0,R=0;m=I,I=I+16|0,B=m+8|0,k=m,R=CQe(o)|0,o=n[R+4>>2]|0,n[k>>2]=n[R>>2],n[k+4>>2]=o,n[B>>2]=n[k>>2],n[B+4>>2]=n[k+4>>2],wQe(l,B,u,A,d),I=m}function CQe(o){return o=o|0,(n[(hM()|0)+24>>2]|0)+(o*12|0)|0}function wQe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0;var m=0,B=0,k=0,R=0,M=0;M=I,I=I+16|0,B=M+2|0,k=M+1|0,R=M,m=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(m=n[(n[o>>2]|0)+m>>2]|0),Qf(B,u),u=+Rf(B,u),Qf(k,A),A=+Rf(k,A),tp(R,d),R=rp(R,d)|0,FX[m&1](o,u,A,R),I=M}function Qf(o,l){o=o|0,l=+l}function Rf(o,l){return o=o|0,l=+l,+ +vQe(l)}function tp(o,l){o=o|0,l=l|0}function rp(o,l){return o=o|0,l=l|0,BQe(l)|0}function BQe(o){return o=o|0,o|0}function vQe(o){return o=+o,+o}function SQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],DQe(o,u,d,1),I=A}function DQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=gM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=PQe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,bQe(m,A)|0,A),I=d}function gM(){var o=0,l=0;if(s[7648]|0||(Cz(9268),gr(27,9268,U|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(_r(9268)|0)){o=9268,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Cz(9268)}return 9268}function PQe(o){return o=o|0,0}function bQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=gM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Iz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(xQe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Iz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function xQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=kQe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,QQe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Iz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,RQe(o,k),TQe(k),I=M;return}}function kQe(o){return o=o|0,357913941}function QQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function RQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function TQe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Cz(o){o=o|0,OQe(o)}function FQe(o){o=o|0,NQe(o+24|0)}function NQe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function OQe(o){o=o|0;var l=0;l=en()|0,tn(o,2,4,l,LQe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function LQe(){return 1160}function MQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=UQe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=_Qe(l,A)|0,I=u,l|0}function UQe(o){return o=o|0,(n[(gM()|0)+24>>2]|0)+(o*12|0)|0}function _Qe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),wz(gd[u&31](o)|0)|0}function wz(o){return o=o|0,o&1|0}function HQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jQe(o,u,d,0),I=A}function jQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=dM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=GQe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,qQe(m,A)|0,A),I=d}function dM(){var o=0,l=0;if(s[7656]|0||(vz(9304),gr(28,9304,U|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(_r(9304)|0)){o=9304,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));vz(9304)}return 9304}function GQe(o){return o=o|0,0}function qQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=dM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Bz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(WQe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Bz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function WQe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=YQe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,VQe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Bz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,JQe(o,k),KQe(k),I=M;return}}function YQe(o){return o=o|0,357913941}function VQe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function JQe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function KQe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function vz(o){o=o|0,XQe(o)}function zQe(o){o=o|0,ZQe(o+24|0)}function ZQe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function XQe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,$Qe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function $Qe(){return 1164}function eRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=tRe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rRe(l,d,u),I=A}function tRe(o){return o=o|0,(n[(dM()|0)+24>>2]|0)+(o*12|0)|0}function rRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),Mh(d,u),u=Uh(d,u)|0,sp[A&31](o,u),_h(d),I=m}function Mh(o,l){o=o|0,l=l|0,nRe(o,l)}function Uh(o,l){return o=o|0,l=l|0,o|0}function _h(o){o=o|0,Sf(o)}function nRe(o,l){o=o|0,l=l|0,mM(o,l)}function mM(o,l){o=o|0,l=l|0,n[o>>2]=l}function iRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sRe(o,u,d,0),I=A}function sRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=yM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=oRe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,aRe(m,A)|0,A),I=d}function yM(){var o=0,l=0;if(s[7664]|0||(Dz(9340),gr(29,9340,U|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(_r(9340)|0)){o=9340,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Dz(9340)}return 9340}function oRe(o){return o=o|0,0}function aRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=yM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Sz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(lRe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Sz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function lRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=cRe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,uRe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Sz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,fRe(o,k),ARe(k),I=M;return}}function cRe(o){return o=o|0,357913941}function uRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function fRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function ARe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Dz(o){o=o|0,gRe(o)}function pRe(o){o=o|0,hRe(o+24|0)}function hRe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function gRe(o){o=o|0;var l=0;l=en()|0,tn(o,2,4,l,dRe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function dRe(){return 1180}function mRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=yRe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=ERe(l,d,u)|0,I=A,u|0}function yRe(o){return o=o|0,(n[(yM()|0)+24>>2]|0)+(o*12|0)|0}function ERe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;return m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),ad(d,u),d=ld(d,u)|0,d=Rb(hU[A&15](o,d)|0)|0,I=m,d|0}function ad(o,l){o=o|0,l=l|0}function ld(o,l){return o=o|0,l=l|0,IRe(l)|0}function Rb(o){return o=o|0,o|0}function IRe(o){return o=o|0,o|0}function CRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wRe(o,u,d,0),I=A}function wRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=EM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=BRe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,vRe(m,A)|0,A),I=d}function EM(){var o=0,l=0;if(s[7672]|0||(bz(9376),gr(30,9376,U|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(_r(9376)|0)){o=9376,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));bz(9376)}return 9376}function BRe(o){return o=o|0,0}function vRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=EM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Pz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(SRe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Pz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function SRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=DRe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,PRe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Pz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,bRe(o,k),xRe(k),I=M;return}}function DRe(o){return o=o|0,357913941}function PRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function bRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function xRe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function bz(o){o=o|0,RRe(o)}function kRe(o){o=o|0,QRe(o+24|0)}function QRe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function RRe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,xz()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function xz(){return 1196}function TRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=FRe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=NRe(l,A)|0,I=u,l|0}function FRe(o){return o=o|0,(n[(EM()|0)+24>>2]|0)+(o*12|0)|0}function NRe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),Rb(gd[u&31](o)|0)|0}function ORe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],LRe(o,u,d,1),I=A}function LRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=IM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=MRe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,URe(m,A)|0,A),I=d}function IM(){var o=0,l=0;if(s[7680]|0||(Qz(9412),gr(31,9412,U|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(_r(9412)|0)){o=9412,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Qz(9412)}return 9412}function MRe(o){return o=o|0,0}function URe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=IM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],kz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(_Re(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function kz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function _Re(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=HRe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,jRe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],kz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,GRe(o,k),qRe(k),I=M;return}}function HRe(o){return o=o|0,357913941}function jRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function GRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function qRe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Qz(o){o=o|0,VRe(o)}function WRe(o){o=o|0,YRe(o+24|0)}function YRe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function VRe(o){o=o|0;var l=0;l=en()|0,tn(o,2,6,l,Rz()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Rz(){return 1200}function JRe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=KRe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=zRe(l,A)|0,I=u,l|0}function KRe(o){return o=o|0,(n[(IM()|0)+24>>2]|0)+(o*12|0)|0}function zRe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),Tb(gd[u&31](o)|0)|0}function Tb(o){return o=o|0,o|0}function ZRe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XRe(o,u,d,0),I=A}function XRe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=CM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=$Re(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,eTe(m,A)|0,A),I=d}function CM(){var o=0,l=0;if(s[7688]|0||(Fz(9448),gr(32,9448,U|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(_r(9448)|0)){o=9448,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Fz(9448)}return 9448}function $Re(o){return o=o|0,0}function eTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=CM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Tz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(tTe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Tz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function tTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=rTe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,nTe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Tz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,iTe(o,k),sTe(k),I=M;return}}function rTe(o){return o=o|0,357913941}function nTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function iTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function sTe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Fz(o){o=o|0,lTe(o)}function oTe(o){o=o|0,aTe(o+24|0)}function aTe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function lTe(o){o=o|0;var l=0;l=en()|0,tn(o,2,6,l,Nz()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Nz(){return 1204}function cTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=uTe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fTe(l,d,u),I=A}function uTe(o){return o=o|0,(n[(CM()|0)+24>>2]|0)+(o*12|0)|0}function fTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),wM(d,u),d=BM(d,u)|0,sp[A&31](o,d),I=m}function wM(o,l){o=o|0,l=l|0}function BM(o,l){return o=o|0,l=l|0,ATe(l)|0}function ATe(o){return o=o|0,o|0}function pTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hTe(o,u,d,0),I=A}function hTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=vM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=gTe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,dTe(m,A)|0,A),I=d}function vM(){var o=0,l=0;if(s[7696]|0||(Lz(9484),gr(33,9484,U|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(_r(9484)|0)){o=9484,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Lz(9484)}return 9484}function gTe(o){return o=o|0,0}function dTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=vM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Oz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(mTe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Oz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function mTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=yTe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ETe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Oz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,ITe(o,k),CTe(k),I=M;return}}function yTe(o){return o=o|0,357913941}function ETe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function ITe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function CTe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Lz(o){o=o|0,vTe(o)}function wTe(o){o=o|0,BTe(o+24|0)}function BTe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function vTe(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,STe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function STe(){return 1212}function DTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+8|0,B=d,k=PTe(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],bTe(l,m,u,A),I=d}function PTe(o){return o=o|0,(n[(vM()|0)+24>>2]|0)+(o*12|0)|0}function bTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;k=I,I=I+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(d=n[(n[o>>2]|0)+d>>2]|0),wM(m,u),m=BM(m,u)|0,ad(B,A),B=ld(B,A)|0,F2[d&15](o,m,B),I=k}function xTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kTe(o,u,d,1),I=A}function kTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=SM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=QTe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,RTe(m,A)|0,A),I=d}function SM(){var o=0,l=0;if(s[7704]|0||(Uz(9520),gr(34,9520,U|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(_r(9520)|0)){o=9520,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Uz(9520)}return 9520}function QTe(o){return o=o|0,0}function RTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=SM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Mz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(TTe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Mz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function TTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=FTe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,NTe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Mz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,OTe(o,k),LTe(k),I=M;return}}function FTe(o){return o=o|0,357913941}function NTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function OTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function LTe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Uz(o){o=o|0,_Te(o)}function MTe(o){o=o|0,UTe(o+24|0)}function UTe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function _Te(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,HTe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function HTe(){return 1224}function jTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;return d=I,I=I+16|0,m=d+8|0,B=d,k=GTe(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],A=+qTe(l,m,u),I=d,+A}function GTe(o){return o=o|0,(n[(SM()|0)+24>>2]|0)+(o*12|0)|0}function qTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),tp(d,u),d=rp(d,u)|0,B=+kf(+OX[A&7](o,d)),I=m,+B}function WTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],YTe(o,u,d,1),I=A}function YTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=DM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=VTe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,JTe(m,A)|0,A),I=d}function DM(){var o=0,l=0;if(s[7712]|0||(Hz(9556),gr(35,9556,U|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(_r(9556)|0)){o=9556,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Hz(9556)}return 9556}function VTe(o){return o=o|0,0}function JTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=DM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_z(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(KTe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function _z(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function KTe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=zTe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ZTe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],_z(m,A,u),n[R>>2]=(n[R>>2]|0)+12,XTe(o,k),$Te(k),I=M;return}}function zTe(o){return o=o|0,357913941}function ZTe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function XTe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function $Te(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Hz(o){o=o|0,rFe(o)}function eFe(o){o=o|0,tFe(o+24|0)}function tFe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function rFe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,nFe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function nFe(){return 1232}function iFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=sFe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=+oFe(l,d),I=A,+u}function sFe(o){return o=o|0,(n[(DM()|0)+24>>2]|0)+(o*12|0)|0}function oFe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),+ +kf(+NX[u&15](o))}function aFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lFe(o,u,d,1),I=A}function lFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=PM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=cFe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,uFe(m,A)|0,A),I=d}function PM(){var o=0,l=0;if(s[7720]|0||(Gz(9592),gr(36,9592,U|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(_r(9592)|0)){o=9592,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Gz(9592)}return 9592}function cFe(o){return o=o|0,0}function uFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=PM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],jz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(fFe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function jz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function fFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=AFe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,pFe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],jz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,hFe(o,k),gFe(k),I=M;return}}function AFe(o){return o=o|0,357913941}function pFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function hFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function gFe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Gz(o){o=o|0,yFe(o)}function dFe(o){o=o|0,mFe(o+24|0)}function mFe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function yFe(o){o=o|0;var l=0;l=en()|0,tn(o,2,7,l,EFe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function EFe(){return 1276}function IFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=CFe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=wFe(l,A)|0,I=u,l|0}function CFe(o){return o=o|0,(n[(PM()|0)+24>>2]|0)+(o*12|0)|0}function wFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;return d=I,I=I+16|0,A=d,u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),sp[u&31](A,o),A=qz(A)|0,I=d,A|0}function qz(o){o=o|0;var l=0,u=0,A=0,d=0;return d=I,I=I+32|0,l=d+12|0,u=d,A=uM(Wz()|0)|0,A?(fM(l,A),AM(u,l),BFe(o,u),o=pM(l)|0):o=vFe(o)|0,I=d,o|0}function Wz(){var o=0;return s[7736]|0||(FFe(9640),gr(25,9640,U|0)|0,o=7736,n[o>>2]=1,n[o+4>>2]=0),9640}function BFe(o,l){o=o|0,l=l|0,bFe(l,o,o+8|0)|0}function vFe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;return u=I,I=I+16|0,d=u+4|0,B=u,A=Tl(8)|0,l=A,k=Kt(16)|0,n[k>>2]=n[o>>2],n[k+4>>2]=n[o+4>>2],n[k+8>>2]=n[o+8>>2],n[k+12>>2]=n[o+12>>2],m=l+4|0,n[m>>2]=k,o=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],bM(o,m,d),n[A>>2]=o,I=u,l|0}function bM(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1244,n[u+12>>2]=l,n[o+4>>2]=u}function SFe(o){o=o|0,$y(o),It(o)}function DFe(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function PFe(o){o=o|0,It(o)}function bFe(o,l,u){return o=o|0,l=l|0,u=u|0,l=xFe(n[o>>2]|0,l,u)|0,u=o+4|0,n[(n[u>>2]|0)+8>>2]=l,n[(n[u>>2]|0)+8>>2]|0}function xFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;return A=I,I=I+16|0,d=A,Fl(d),o=Os(o)|0,u=kFe(o,n[l>>2]|0,+E[u>>3])|0,Nl(d),I=A,u|0}function kFe(o,l,u){o=o|0,l=l|0,u=+u;var A=0;return A=da(QFe()|0)|0,l=Yy(l)|0,ou(0,A|0,o|0,l|0,+ +Ja(u))|0}function QFe(){var o=0;return s[7728]|0||(RFe(9628),o=7728,n[o>>2]=1,n[o+4>>2]=0),9628}function RFe(o){o=o|0,Qo(o,TFe()|0,2)}function TFe(){return 1264}function FFe(o){o=o|0,Lh(o)}function NFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OFe(o,u,d,1),I=A}function OFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=xM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=LFe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,MFe(m,A)|0,A),I=d}function xM(){var o=0,l=0;if(s[7744]|0||(Vz(9684),gr(37,9684,U|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(_r(9684)|0)){o=9684,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Vz(9684)}return 9684}function LFe(o){return o=o|0,0}function MFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=xM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Yz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(UFe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Yz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function UFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=_Fe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,HFe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Yz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,jFe(o,k),GFe(k),I=M;return}}function _Fe(o){return o=o|0,357913941}function HFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function jFe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function GFe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Vz(o){o=o|0,YFe(o)}function qFe(o){o=o|0,WFe(o+24|0)}function WFe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function YFe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,VFe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function VFe(){return 1280}function JFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=KFe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=zFe(l,d,u)|0,I=A,u|0}function KFe(o){return o=o|0,(n[(xM()|0)+24>>2]|0)+(o*12|0)|0}function zFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return B=I,I=I+32|0,d=B,m=B+16|0,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),tp(m,u),m=rp(m,u)|0,F2[A&15](d,o,m),m=qz(d)|0,I=B,m|0}function ZFe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XFe(o,u,d,1),I=A}function XFe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=kM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=$Fe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,eNe(m,A)|0,A),I=d}function kM(){var o=0,l=0;if(s[7752]|0||(Kz(9720),gr(38,9720,U|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(_r(9720)|0)){o=9720,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Kz(9720)}return 9720}function $Fe(o){return o=o|0,0}function eNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=kM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Jz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(tNe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Jz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function tNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=rNe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,nNe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Jz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,iNe(o,k),sNe(k),I=M;return}}function rNe(o){return o=o|0,357913941}function nNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function iNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function sNe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Kz(o){o=o|0,lNe(o)}function oNe(o){o=o|0,aNe(o+24|0)}function aNe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function lNe(o){o=o|0;var l=0;l=en()|0,tn(o,2,8,l,cNe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function cNe(){return 1288}function uNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=fNe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=ANe(l,A)|0,I=u,l|0}function fNe(o){return o=o|0,(n[(kM()|0)+24>>2]|0)+(o*12|0)|0}function ANe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),sd(gd[u&31](o)|0)|0}function pNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hNe(o,u,d,0),I=A}function hNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=QM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=gNe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,dNe(m,A)|0,A),I=d}function QM(){var o=0,l=0;if(s[7760]|0||(Zz(9756),gr(39,9756,U|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(_r(9756)|0)){o=9756,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Zz(9756)}return 9756}function gNe(o){return o=o|0,0}function dNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=QM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],zz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(mNe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function zz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function mNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=yNe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ENe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],zz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,INe(o,k),CNe(k),I=M;return}}function yNe(o){return o=o|0,357913941}function ENe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function INe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function CNe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function Zz(o){o=o|0,vNe(o)}function wNe(o){o=o|0,BNe(o+24|0)}function BNe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function vNe(o){o=o|0;var l=0;l=en()|0,tn(o,2,8,l,SNe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function SNe(){return 1292}function DNe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=PNe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bNe(l,d,u),I=A}function PNe(o){return o=o|0,(n[(QM()|0)+24>>2]|0)+(o*12|0)|0}function bNe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),Qf(d,u),u=+Rf(d,u),RX[A&31](o,u),I=m}function xNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kNe(o,u,d,0),I=A}function kNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=RM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=QNe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,RNe(m,A)|0,A),I=d}function RM(){var o=0,l=0;if(s[7768]|0||($z(9792),gr(40,9792,U|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(_r(9792)|0)){o=9792,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));$z(9792)}return 9792}function QNe(o){return o=o|0,0}function RNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=RM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Xz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(TNe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function Xz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function TNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=FNe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,NNe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Xz(m,A,u),n[R>>2]=(n[R>>2]|0)+12,ONe(o,k),LNe(k),I=M;return}}function FNe(o){return o=o|0,357913941}function NNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function ONe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function LNe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function $z(o){o=o|0,_Ne(o)}function MNe(o){o=o|0,UNe(o+24|0)}function UNe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function _Ne(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,HNe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function HNe(){return 1300}function jNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+8|0,B=d,k=GNe(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],qNe(l,m,u,A),I=d}function GNe(o){return o=o|0,(n[(RM()|0)+24>>2]|0)+(o*12|0)|0}function qNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A;var d=0,m=0,B=0,k=0;k=I,I=I+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(d=n[(n[o>>2]|0)+d>>2]|0),tp(m,u),m=rp(m,u)|0,Qf(B,A),A=+Rf(B,A),_X[d&15](o,m,A),I=k}function WNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],YNe(o,u,d,0),I=A}function YNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=TM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=VNe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,JNe(m,A)|0,A),I=d}function TM(){var o=0,l=0;if(s[7776]|0||(tZ(9828),gr(41,9828,U|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(_r(9828)|0)){o=9828,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));tZ(9828)}return 9828}function VNe(o){return o=o|0,0}function JNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=TM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],eZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(KNe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function eZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function KNe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=zNe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ZNe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],eZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,XNe(o,k),$Ne(k),I=M;return}}function zNe(o){return o=o|0,357913941}function ZNe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function XNe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function $Ne(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function tZ(o){o=o|0,rOe(o)}function eOe(o){o=o|0,tOe(o+24|0)}function tOe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function rOe(o){o=o|0;var l=0;l=en()|0,tn(o,2,7,l,nOe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function nOe(){return 1312}function iOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=sOe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],oOe(l,d,u),I=A}function sOe(o){return o=o|0,(n[(TM()|0)+24>>2]|0)+(o*12|0)|0}function oOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),tp(d,u),d=rp(d,u)|0,sp[A&31](o,d),I=m}function aOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lOe(o,u,d,0),I=A}function lOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=FM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=cOe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,uOe(m,A)|0,A),I=d}function FM(){var o=0,l=0;if(s[7784]|0||(nZ(9864),gr(42,9864,U|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(_r(9864)|0)){o=9864,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));nZ(9864)}return 9864}function cOe(o){return o=o|0,0}function uOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=FM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],rZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(fOe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function rZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function fOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=AOe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,pOe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],rZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,hOe(o,k),gOe(k),I=M;return}}function AOe(o){return o=o|0,357913941}function pOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function hOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function gOe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function nZ(o){o=o|0,yOe(o)}function dOe(o){o=o|0,mOe(o+24|0)}function mOe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function yOe(o){o=o|0;var l=0;l=en()|0,tn(o,2,8,l,EOe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function EOe(){return 1320}function IOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=COe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wOe(l,d,u),I=A}function COe(o){return o=o|0,(n[(FM()|0)+24>>2]|0)+(o*12|0)|0}function wOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),BOe(d,u),d=vOe(d,u)|0,sp[A&31](o,d),I=m}function BOe(o,l){o=o|0,l=l|0}function vOe(o,l){return o=o|0,l=l|0,SOe(l)|0}function SOe(o){return o=o|0,o|0}function DOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],POe(o,u,d,0),I=A}function POe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=NM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=bOe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,xOe(m,A)|0,A),I=d}function NM(){var o=0,l=0;if(s[7792]|0||(sZ(9900),gr(43,9900,U|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(_r(9900)|0)){o=9900,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));sZ(9900)}return 9900}function bOe(o){return o=o|0,0}function xOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=NM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],iZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(kOe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function iZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function kOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=QOe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,ROe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],iZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,TOe(o,k),FOe(k),I=M;return}}function QOe(o){return o=o|0,357913941}function ROe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function TOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function FOe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function sZ(o){o=o|0,LOe(o)}function NOe(o){o=o|0,OOe(o+24|0)}function OOe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function LOe(o){o=o|0;var l=0;l=en()|0,tn(o,2,22,l,MOe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function MOe(){return 1344}function UOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;u=I,I=I+16|0,A=u+8|0,d=u,m=_Oe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],HOe(l,A),I=u}function _Oe(o){return o=o|0,(n[(NM()|0)+24>>2]|0)+(o*12|0)|0}function HOe(o,l){o=o|0,l=l|0;var u=0;u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),ip[u&127](o)}function jOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=OM()|0,o=GOe(u)|0,vn(m,l,d,o,qOe(u,A)|0,A)}function OM(){var o=0,l=0;if(s[7800]|0||(aZ(9936),gr(44,9936,U|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(_r(9936)|0)){o=9936,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));aZ(9936)}return 9936}function GOe(o){return o=o|0,o|0}function qOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=OM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(oZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(WOe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function oZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function WOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=YOe(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,VOe(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,oZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,JOe(o,d),KOe(d),I=k;return}}function YOe(o){return o=o|0,536870911}function VOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function JOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function KOe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function aZ(o){o=o|0,XOe(o)}function zOe(o){o=o|0,ZOe(o+24|0)}function ZOe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function XOe(o){o=o|0;var l=0;l=en()|0,tn(o,1,23,l,Nz()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function $Oe(o,l){o=o|0,l=l|0,tLe(n[(eLe(o)|0)>>2]|0,l)}function eLe(o){return o=o|0,(n[(OM()|0)+24>>2]|0)+(o<<3)|0}function tLe(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,wM(A,l),l=BM(A,l)|0,ip[o&127](l),I=u}function rLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=LM()|0,o=nLe(u)|0,vn(m,l,d,o,iLe(u,A)|0,A)}function LM(){var o=0,l=0;if(s[7808]|0||(cZ(9972),gr(45,9972,U|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(_r(9972)|0)){o=9972,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));cZ(9972)}return 9972}function nLe(o){return o=o|0,o|0}function iLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=LM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(lZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(sLe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function lZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function sLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=oLe(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,aLe(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,lZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,lLe(o,d),cLe(d),I=k;return}}function oLe(o){return o=o|0,536870911}function aLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function lLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function cLe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function cZ(o){o=o|0,ALe(o)}function uLe(o){o=o|0,fLe(o+24|0)}function fLe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function ALe(o){o=o|0;var l=0;l=en()|0,tn(o,1,9,l,pLe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function pLe(){return 1348}function hLe(o,l){return o=o|0,l=l|0,dLe(n[(gLe(o)|0)>>2]|0,l)|0}function gLe(o){return o=o|0,(n[(LM()|0)+24>>2]|0)+(o<<3)|0}function dLe(o,l){o=o|0,l=l|0;var u=0,A=0;return u=I,I=I+16|0,A=u,uZ(A,l),l=fZ(A,l)|0,l=Rb(gd[o&31](l)|0)|0,I=u,l|0}function uZ(o,l){o=o|0,l=l|0}function fZ(o,l){return o=o|0,l=l|0,mLe(l)|0}function mLe(o){return o=o|0,o|0}function yLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=MM()|0,o=ELe(u)|0,vn(m,l,d,o,ILe(u,A)|0,A)}function MM(){var o=0,l=0;if(s[7816]|0||(pZ(10008),gr(46,10008,U|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(_r(10008)|0)){o=10008,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));pZ(10008)}return 10008}function ELe(o){return o=o|0,o|0}function ILe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=MM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(AZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(CLe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function AZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function CLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=wLe(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,BLe(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,AZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,vLe(o,d),SLe(d),I=k;return}}function wLe(o){return o=o|0,536870911}function BLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function vLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function SLe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function pZ(o){o=o|0,bLe(o)}function DLe(o){o=o|0,PLe(o+24|0)}function PLe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function bLe(o){o=o|0;var l=0;l=en()|0,tn(o,1,15,l,xz()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function xLe(o){return o=o|0,QLe(n[(kLe(o)|0)>>2]|0)|0}function kLe(o){return o=o|0,(n[(MM()|0)+24>>2]|0)+(o<<3)|0}function QLe(o){return o=o|0,Rb(Vb[o&7]()|0)|0}function RLe(){var o=0;return s[7832]|0||(_Le(10052),gr(25,10052,U|0)|0,o=7832,n[o>>2]=1,n[o+4>>2]=0),10052}function TLe(o,l){o=o|0,l=l|0,n[o>>2]=FLe()|0,n[o+4>>2]=NLe()|0,n[o+12>>2]=l,n[o+8>>2]=OLe()|0,n[o+32>>2]=2}function FLe(){return 11709}function NLe(){return 1188}function OLe(){return Fb()|0}function LLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(MLe(u),It(u)):l|0&&(Oy(l),It(l))}function Hh(o,l){return o=o|0,l=l|0,l&o|0}function MLe(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function Fb(){var o=0;return s[7824]|0||(n[2511]=ULe()|0,n[2512]=0,o=7824,n[o>>2]=1,n[o+4>>2]=0),10044}function ULe(){return 0}function _Le(o){o=o|0,Lh(o)}function HLe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0;l=I,I=I+32|0,u=l+24|0,m=l+16|0,d=l+8|0,A=l,jLe(o,4827),GLe(o,4834,3)|0,qLe(o,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[u>>2]=n[m>>2],n[u+4>>2]=n[m+4>>2],WLe(o,4841,u)|0,n[d>>2]=1,n[d+4>>2]=0,n[u>>2]=n[d>>2],n[u+4>>2]=n[d+4>>2],YLe(o,4871,u)|0,n[A>>2]=10,n[A+4>>2]=0,n[u>>2]=n[A>>2],n[u+4>>2]=n[A+4>>2],VLe(o,4891,u)|0,I=l}function jLe(o,l){o=o|0,l=l|0;var u=0;u=SUe()|0,n[o>>2]=u,DUe(u,l),jh(n[o>>2]|0)}function GLe(o,l,u){return o=o|0,l=l|0,u=u|0,cUe(o,Bn(l)|0,u,0),o|0}function qLe(o,l,u){return o=o|0,l=l|0,u=u|0,JMe(o,Bn(l)|0,u,0),o|0}function WLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xMe(o,l,d),I=A,o|0}function YLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],uMe(o,l,d),I=A,o|0}function VLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],JLe(o,l,d),I=A,o|0}function JLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KLe(o,u,d,1),I=A}function KLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=UM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=zLe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,ZLe(m,A)|0,A),I=d}function UM(){var o=0,l=0;if(s[7840]|0||(gZ(10100),gr(48,10100,U|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(_r(10100)|0)){o=10100,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));gZ(10100)}return 10100}function zLe(o){return o=o|0,0}function ZLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=UM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],hZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(XLe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function hZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function XLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=$Le(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,eMe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],hZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,tMe(o,k),rMe(k),I=M;return}}function $Le(o){return o=o|0,357913941}function eMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function tMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function rMe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function gZ(o){o=o|0,sMe(o)}function nMe(o){o=o|0,iMe(o+24|0)}function iMe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function sMe(o){o=o|0;var l=0;l=en()|0,tn(o,2,6,l,oMe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function oMe(){return 1364}function aMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=lMe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=cMe(l,d,u)|0,I=A,u|0}function lMe(o){return o=o|0,(n[(UM()|0)+24>>2]|0)+(o*12|0)|0}function cMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;return m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),tp(d,u),d=rp(d,u)|0,d=wz(hU[A&15](o,d)|0)|0,I=m,d|0}function uMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fMe(o,u,d,0),I=A}function fMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=_M()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=AMe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,pMe(m,A)|0,A),I=d}function _M(){var o=0,l=0;if(s[7848]|0||(mZ(10136),gr(49,10136,U|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(_r(10136)|0)){o=10136,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));mZ(10136)}return 10136}function AMe(o){return o=o|0,0}function pMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=_M()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],dZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(hMe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function dZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function hMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=gMe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,dMe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],dZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,mMe(o,k),yMe(k),I=M;return}}function gMe(o){return o=o|0,357913941}function dMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function mMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function yMe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function mZ(o){o=o|0,CMe(o)}function EMe(o){o=o|0,IMe(o+24|0)}function IMe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function CMe(o){o=o|0;var l=0;l=en()|0,tn(o,2,9,l,wMe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function wMe(){return 1372}function BMe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=vMe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SMe(l,d,u),I=A}function vMe(o){return o=o|0,(n[(_M()|0)+24>>2]|0)+(o*12|0)|0}function SMe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=$e;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),DMe(d,u),B=y(PMe(d,u)),QX[A&1](o,B),I=m}function DMe(o,l){o=o|0,l=+l}function PMe(o,l){return o=o|0,l=+l,y(bMe(l))}function bMe(o){return o=+o,y(o)}function xMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kMe(o,u,d,0),I=A}function kMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,R=0,M=0,L=0;d=I,I=I+32|0,m=d+16|0,L=d+8|0,k=d,M=n[u>>2]|0,R=n[u+4>>2]|0,B=n[o>>2]|0,o=HM()|0,n[L>>2]=M,n[L+4>>2]=R,n[m>>2]=n[L>>2],n[m+4>>2]=n[L+4>>2],u=QMe(m)|0,n[k>>2]=M,n[k+4>>2]=R,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,RMe(m,A)|0,A),I=d}function HM(){var o=0,l=0;if(s[7856]|0||(EZ(10172),gr(50,10172,U|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(_r(10172)|0)){o=10172,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));EZ(10172)}return 10172}function QMe(o){return o=o|0,0}function RMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0;return L=I,I=I+32|0,d=L+24|0,B=L+16|0,k=L,R=L+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,q=HM()|0,M=q+24|0,o=yr(l,4)|0,n[R>>2]=o,l=q+28|0,u=n[l>>2]|0,u>>>0<(n[q+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],yZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(TMe(M,k,R),o=n[l>>2]|0),I=L,((o-(n[M>>2]|0)|0)/12|0)+-1|0}function yZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function TMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;if(M=I,I=I+48|0,A=M+32|0,B=M+24|0,k=M,R=o+4|0,d=(((n[R>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=FMe(o)|0,m>>>0<d>>>0)sn(o);else{L=n[o>>2]|0,ae=((n[o+8>>2]|0)-L|0)/12|0,q=ae<<1,NMe(k,ae>>>0<m>>>1>>>0?q>>>0<d>>>0?d:q:m,((n[R>>2]|0)-L|0)/12|0,o+8|0),R=k+8|0,m=n[R>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],yZ(m,A,u),n[R>>2]=(n[R>>2]|0)+12,OMe(o,k),LMe(k),I=M;return}}function FMe(o){return o=o|0,357913941}function NMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function OMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function LMe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&It(o)}function EZ(o){o=o|0,_Me(o)}function MMe(o){o=o|0,UMe(o+24|0)}function UMe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),It(u))}function _Me(o){o=o|0;var l=0;l=en()|0,tn(o,2,3,l,HMe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function HMe(){return 1380}function jMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+8|0,B=d,k=GMe(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],qMe(l,m,u,A),I=d}function GMe(o){return o=o|0,(n[(HM()|0)+24>>2]|0)+(o*12|0)|0}function qMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;k=I,I=I+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(d=n[(n[o>>2]|0)+d>>2]|0),tp(m,u),m=rp(m,u)|0,WMe(B,A),B=YMe(B,A)|0,F2[d&15](o,m,B),I=k}function WMe(o,l){o=o|0,l=l|0}function YMe(o,l){return o=o|0,l=l|0,VMe(l)|0}function VMe(o){return o=o|0,(o|0)!=0|0}function JMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=jM()|0,o=KMe(u)|0,vn(m,l,d,o,zMe(u,A)|0,A)}function jM(){var o=0,l=0;if(s[7864]|0||(CZ(10208),gr(51,10208,U|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(_r(10208)|0)){o=10208,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));CZ(10208)}return 10208}function KMe(o){return o=o|0,o|0}function zMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=jM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(IZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(ZMe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function IZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function ZMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=XMe(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,$Me(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,IZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,eUe(o,d),tUe(d),I=k;return}}function XMe(o){return o=o|0,536870911}function $Me(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function eUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function tUe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function CZ(o){o=o|0,iUe(o)}function rUe(o){o=o|0,nUe(o+24|0)}function nUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function iUe(o){o=o|0;var l=0;l=en()|0,tn(o,1,24,l,sUe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function sUe(){return 1392}function oUe(o,l){o=o|0,l=l|0,lUe(n[(aUe(o)|0)>>2]|0,l)}function aUe(o){return o=o|0,(n[(jM()|0)+24>>2]|0)+(o<<3)|0}function lUe(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,uZ(A,l),l=fZ(A,l)|0,ip[o&127](l),I=u}function cUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=GM()|0,o=uUe(u)|0,vn(m,l,d,o,fUe(u,A)|0,A)}function GM(){var o=0,l=0;if(s[7872]|0||(BZ(10244),gr(52,10244,U|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(_r(10244)|0)){o=10244,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));BZ(10244)}return 10244}function uUe(o){return o=o|0,o|0}function fUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=GM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(wZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(AUe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function wZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function AUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=pUe(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,hUe(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,wZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,gUe(o,d),dUe(d),I=k;return}}function pUe(o){return o=o|0,536870911}function hUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function gUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function dUe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function BZ(o){o=o|0,EUe(o)}function mUe(o){o=o|0,yUe(o+24|0)}function yUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function EUe(o){o=o|0;var l=0;l=en()|0,tn(o,1,16,l,IUe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function IUe(){return 1400}function CUe(o){return o=o|0,BUe(n[(wUe(o)|0)>>2]|0)|0}function wUe(o){return o=o|0,(n[(GM()|0)+24>>2]|0)+(o<<3)|0}function BUe(o){return o=o|0,vUe(Vb[o&7]()|0)|0}function vUe(o){return o=o|0,o|0}function SUe(){var o=0;return s[7880]|0||(RUe(10280),gr(25,10280,U|0)|0,o=7880,n[o>>2]=1,n[o+4>>2]=0),10280}function DUe(o,l){o=o|0,l=l|0,n[o>>2]=PUe()|0,n[o+4>>2]=bUe()|0,n[o+12>>2]=l,n[o+8>>2]=xUe()|0,n[o+32>>2]=4}function PUe(){return 11711}function bUe(){return 1356}function xUe(){return Fb()|0}function kUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(QUe(u),It(u)):l|0&&(Kg(l),It(l))}function QUe(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function RUe(o){o=o|0,Lh(o)}function TUe(o){o=o|0,FUe(o,4920),NUe(o)|0,OUe(o)|0}function FUe(o,l){o=o|0,l=l|0;var u=0;u=Wz()|0,n[o>>2]=u,n_e(u,l),jh(n[o>>2]|0)}function NUe(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,VUe()|0),o|0}function OUe(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,LUe()|0),o|0}function LUe(){var o=0;return s[7888]|0||(vZ(10328),gr(53,10328,U|0)|0,o=7888,n[o>>2]=1,n[o+4>>2]=0),_r(10328)|0||vZ(10328),10328}function cd(o,l){o=o|0,l=l|0,vn(o,0,l,0,0,0)}function vZ(o){o=o|0,_Ue(o),ud(o,10)}function MUe(o){o=o|0,UUe(o+24|0)}function UUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function _Ue(o){o=o|0;var l=0;l=en()|0,tn(o,5,1,l,qUe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function HUe(o,l,u){o=o|0,l=l|0,u=+u,jUe(o,l,u)}function ud(o,l){o=o|0,l=l|0,n[o+20>>2]=l}function jUe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,m=A+8|0,k=A+13|0,d=A,B=A+12|0,tp(k,l),n[m>>2]=rp(k,l)|0,Qf(B,u),E[d>>3]=+Rf(B,u),GUe(o,m,d),I=A}function GUe(o,l,u){o=o|0,l=l|0,u=u|0,Rl(o+8|0,n[l>>2]|0,+E[u>>3]),s[o+24>>0]=1}function qUe(){return 1404}function WUe(o,l){return o=o|0,l=+l,YUe(o,l)|0}function YUe(o,l){o=o|0,l=+l;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return A=I,I=I+16|0,m=A+4|0,B=A+8|0,k=A,d=Tl(8)|0,u=d,R=Kt(16)|0,tp(m,o),o=rp(m,o)|0,Qf(B,l),Rl(R,o,+Rf(B,l)),B=u+4|0,n[B>>2]=R,o=Kt(8)|0,B=n[B>>2]|0,n[k>>2]=0,n[m>>2]=n[k>>2],bM(o,B,m),n[d>>2]=o,I=A,u|0}function VUe(){var o=0;return s[7896]|0||(SZ(10364),gr(54,10364,U|0)|0,o=7896,n[o>>2]=1,n[o+4>>2]=0),_r(10364)|0||SZ(10364),10364}function SZ(o){o=o|0,zUe(o),ud(o,55)}function JUe(o){o=o|0,KUe(o+24|0)}function KUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function zUe(o){o=o|0;var l=0;l=en()|0,tn(o,5,4,l,e_e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function ZUe(o){o=o|0,XUe(o)}function XUe(o){o=o|0,$Ue(o)}function $Ue(o){o=o|0,DZ(o+8|0),s[o+24>>0]=1}function DZ(o){o=o|0,n[o>>2]=0,E[o+8>>3]=0}function e_e(){return 1424}function t_e(){return r_e()|0}function r_e(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0;return l=I,I=I+16|0,d=l+4|0,B=l,u=Tl(8)|0,o=u,A=Kt(16)|0,DZ(A),m=o+4|0,n[m>>2]=A,A=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],bM(A,m,d),n[u>>2]=A,I=l,o|0}function n_e(o,l){o=o|0,l=l|0,n[o>>2]=i_e()|0,n[o+4>>2]=s_e()|0,n[o+12>>2]=l,n[o+8>>2]=o_e()|0,n[o+32>>2]=5}function i_e(){return 11710}function s_e(){return 1416}function o_e(){return Nb()|0}function a_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(l_e(u),It(u)):l|0&&It(l)}function l_e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function Nb(){var o=0;return s[7904]|0||(n[2600]=c_e()|0,n[2601]=0,o=7904,n[o>>2]=1,n[o+4>>2]=0),10400}function c_e(){return n[357]|0}function u_e(o){o=o|0,f_e(o,4926),A_e(o)|0}function f_e(o,l){o=o|0,l=l|0;var u=0;u=hz()|0,n[o>>2]=u,B_e(u,l),jh(n[o>>2]|0)}function A_e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,p_e()|0),o|0}function p_e(){var o=0;return s[7912]|0||(PZ(10412),gr(56,10412,U|0)|0,o=7912,n[o>>2]=1,n[o+4>>2]=0),_r(10412)|0||PZ(10412),10412}function PZ(o){o=o|0,d_e(o),ud(o,57)}function h_e(o){o=o|0,g_e(o+24|0)}function g_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function d_e(o){o=o|0;var l=0;l=en()|0,tn(o,5,5,l,I_e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function m_e(o){o=o|0,y_e(o)}function y_e(o){o=o|0,E_e(o)}function E_e(o){o=o|0;var l=0,u=0;l=o+8|0,u=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(u|0));s[o+56>>0]=1}function I_e(){return 1432}function C_e(){return w_e()|0}function w_e(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0,k=0;B=I,I=I+16|0,o=B+4|0,l=B,u=Tl(8)|0,A=u,d=Kt(48)|0,m=d,k=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(k|0));return m=A+4|0,n[m>>2]=d,k=Kt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[o>>2]=n[l>>2],gz(k,m,o),n[u>>2]=k,I=B,A|0}function B_e(o,l){o=o|0,l=l|0,n[o>>2]=v_e()|0,n[o+4>>2]=S_e()|0,n[o+12>>2]=l,n[o+8>>2]=D_e()|0,n[o+32>>2]=6}function v_e(){return 11704}function S_e(){return 1436}function D_e(){return Nb()|0}function P_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(b_e(u),It(u)):l|0&&It(l)}function b_e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function x_e(o){o=o|0,k_e(o,4933),Q_e(o)|0,R_e(o)|0}function k_e(o,l){o=o|0,l=l|0;var u=0;u=r4e()|0,n[o>>2]=u,n4e(u,l),jh(n[o>>2]|0)}function Q_e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,Y_e()|0),o|0}function R_e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,T_e()|0),o|0}function T_e(){var o=0;return s[7920]|0||(bZ(10452),gr(58,10452,U|0)|0,o=7920,n[o>>2]=1,n[o+4>>2]=0),_r(10452)|0||bZ(10452),10452}function bZ(o){o=o|0,O_e(o),ud(o,1)}function F_e(o){o=o|0,N_e(o+24|0)}function N_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function O_e(o){o=o|0;var l=0;l=en()|0,tn(o,5,1,l,__e()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function L_e(o,l,u){o=o|0,l=+l,u=+u,M_e(o,l,u)}function M_e(o,l,u){o=o|0,l=+l,u=+u;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+32|0,m=A+8|0,k=A+17|0,d=A,B=A+16|0,Qf(k,l),E[m>>3]=+Rf(k,l),Qf(B,u),E[d>>3]=+Rf(B,u),U_e(o,m,d),I=A}function U_e(o,l,u){o=o|0,l=l|0,u=u|0,xZ(o+8|0,+E[l>>3],+E[u>>3]),s[o+24>>0]=1}function xZ(o,l,u){o=o|0,l=+l,u=+u,E[o>>3]=l,E[o+8>>3]=u}function __e(){return 1472}function H_e(o,l){return o=+o,l=+l,j_e(o,l)|0}function j_e(o,l){o=+o,l=+l;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return A=I,I=I+16|0,B=A+4|0,k=A+8|0,R=A,d=Tl(8)|0,u=d,m=Kt(16)|0,Qf(B,o),o=+Rf(B,o),Qf(k,l),xZ(m,o,+Rf(k,l)),k=u+4|0,n[k>>2]=m,m=Kt(8)|0,k=n[k>>2]|0,n[R>>2]=0,n[B>>2]=n[R>>2],kZ(m,k,B),n[d>>2]=m,I=A,u|0}function kZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1452,n[u+12>>2]=l,n[o+4>>2]=u}function G_e(o){o=o|0,$y(o),It(o)}function q_e(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function W_e(o){o=o|0,It(o)}function Y_e(){var o=0;return s[7928]|0||(QZ(10488),gr(59,10488,U|0)|0,o=7928,n[o>>2]=1,n[o+4>>2]=0),_r(10488)|0||QZ(10488),10488}function QZ(o){o=o|0,K_e(o),ud(o,60)}function V_e(o){o=o|0,J_e(o+24|0)}function J_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function K_e(o){o=o|0;var l=0;l=en()|0,tn(o,5,6,l,$_e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function z_e(o){o=o|0,Z_e(o)}function Z_e(o){o=o|0,X_e(o)}function X_e(o){o=o|0,RZ(o+8|0),s[o+24>>0]=1}function RZ(o){o=o|0,n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[o+12>>2]=0}function $_e(){return 1492}function e4e(){return t4e()|0}function t4e(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0;return l=I,I=I+16|0,d=l+4|0,B=l,u=Tl(8)|0,o=u,A=Kt(16)|0,RZ(A),m=o+4|0,n[m>>2]=A,A=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],kZ(A,m,d),n[u>>2]=A,I=l,o|0}function r4e(){var o=0;return s[7936]|0||(c4e(10524),gr(25,10524,U|0)|0,o=7936,n[o>>2]=1,n[o+4>>2]=0),10524}function n4e(o,l){o=o|0,l=l|0,n[o>>2]=i4e()|0,n[o+4>>2]=s4e()|0,n[o+12>>2]=l,n[o+8>>2]=o4e()|0,n[o+32>>2]=7}function i4e(){return 11700}function s4e(){return 1484}function o4e(){return Nb()|0}function a4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(l4e(u),It(u)):l|0&&It(l)}function l4e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function c4e(o){o=o|0,Lh(o)}function u4e(o,l,u){o=o|0,l=l|0,u=u|0,o=Bn(l)|0,l=f4e(u)|0,u=A4e(u,0)|0,j4e(o,l,u,qM()|0,0)}function f4e(o){return o=o|0,o|0}function A4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=qM()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(FZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(E4e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function qM(){var o=0,l=0;if(s[7944]|0||(TZ(10568),gr(61,10568,U|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(_r(10568)|0)){o=10568,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));TZ(10568)}return 10568}function TZ(o){o=o|0,g4e(o)}function p4e(o){o=o|0,h4e(o+24|0)}function h4e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function g4e(o){o=o|0;var l=0;l=en()|0,tn(o,1,17,l,Rz()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function d4e(o){return o=o|0,y4e(n[(m4e(o)|0)>>2]|0)|0}function m4e(o){return o=o|0,(n[(qM()|0)+24>>2]|0)+(o<<3)|0}function y4e(o){return o=o|0,Tb(Vb[o&7]()|0)|0}function FZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function E4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=I4e(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,C4e(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,FZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,w4e(o,d),B4e(d),I=k;return}}function I4e(o){return o=o|0,536870911}function C4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function w4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function B4e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function v4e(){S4e()}function S4e(){D4e(10604)}function D4e(o){o=o|0,P4e(o,4955)}function P4e(o,l){o=o|0,l=l|0;var u=0;u=b4e()|0,n[o>>2]=u,x4e(u,l),jh(n[o>>2]|0)}function b4e(){var o=0;return s[7952]|0||(M4e(10612),gr(25,10612,U|0)|0,o=7952,n[o>>2]=1,n[o+4>>2]=0),10612}function x4e(o,l){o=o|0,l=l|0,n[o>>2]=T4e()|0,n[o+4>>2]=F4e()|0,n[o+12>>2]=l,n[o+8>>2]=N4e()|0,n[o+32>>2]=8}function jh(o){o=o|0;var l=0,u=0;l=I,I=I+16|0,u=l,Jy()|0,n[u>>2]=o,k4e(10608,u),I=l}function Jy(){return s[11714]|0||(n[2652]=0,gr(62,10608,U|0)|0,s[11714]=1),10608}function k4e(o,l){o=o|0,l=l|0;var u=0;u=Kt(8)|0,n[u+4>>2]=n[l>>2],n[u>>2]=n[o>>2],n[o>>2]=u}function Q4e(o){o=o|0,R4e(o)}function R4e(o){o=o|0;var l=0,u=0;if(l=n[o>>2]|0,l|0)do u=l,l=n[l>>2]|0,It(u);while(l|0);n[o>>2]=0}function T4e(){return 11715}function F4e(){return 1496}function N4e(){return Fb()|0}function O4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(L4e(u),It(u)):l|0&&It(l)}function L4e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function M4e(o){o=o|0,Lh(o)}function U4e(o,l){o=o|0,l=l|0;var u=0,A=0;Jy()|0,u=n[2652]|0;e:do if(u|0){for(;A=n[u+4>>2]|0,!(A|0&&!(gX(WM(A)|0,o)|0));)if(u=n[u>>2]|0,!u)break e;_4e(A,l)}while(!1)}function WM(o){return o=o|0,n[o+12>>2]|0}function _4e(o,l){o=o|0,l=l|0;var u=0;o=o+36|0,u=n[o>>2]|0,u|0&&(Sf(u),It(u)),u=Kt(4)|0,Db(u,l),n[o>>2]=u}function YM(){return s[11716]|0||(n[2664]=0,gr(63,10656,U|0)|0,s[11716]=1),10656}function NZ(){var o=0;return s[11717]|0?o=n[2665]|0:(H4e(),n[2665]=1504,s[11717]=1,o=1504),o|0}function H4e(){s[11740]|0||(s[11718]=yr(yr(8,0)|0,0)|0,s[11719]=yr(yr(0,0)|0,0)|0,s[11720]=yr(yr(0,16)|0,0)|0,s[11721]=yr(yr(8,0)|0,0)|0,s[11722]=yr(yr(0,0)|0,0)|0,s[11723]=yr(yr(8,0)|0,0)|0,s[11724]=yr(yr(0,0)|0,0)|0,s[11725]=yr(yr(8,0)|0,0)|0,s[11726]=yr(yr(0,0)|0,0)|0,s[11727]=yr(yr(8,0)|0,0)|0,s[11728]=yr(yr(0,0)|0,0)|0,s[11729]=yr(yr(0,0)|0,32)|0,s[11730]=yr(yr(0,0)|0,32)|0,s[11740]=1)}function OZ(){return 1572}function j4e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0,L=0;m=I,I=I+32|0,L=m+16|0,M=m+12|0,R=m+8|0,k=m+4|0,B=m,n[L>>2]=o,n[M>>2]=l,n[R>>2]=u,n[k>>2]=A,n[B>>2]=d,YM()|0,G4e(10656,L,M,R,k,B),I=m}function G4e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0;B=Kt(24)|0,fz(B+4|0,n[l>>2]|0,n[u>>2]|0,n[A>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[o>>2],n[o>>2]=B}function LZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0;if(ct=I,I=I+32|0,Le=ct+20|0,Qe=ct+8|0,tt=ct+4|0,Xe=ct,l=n[l>>2]|0,l|0){Ye=Le+4|0,R=Le+8|0,M=Qe+4|0,L=Qe+8|0,q=Qe+8|0,ae=Le+8|0;do{if(B=l+4|0,k=VM(B)|0,k|0){if(d=b2(k)|0,n[Le>>2]=0,n[Ye>>2]=0,n[R>>2]=0,A=(x2(k)|0)+1|0,q4e(Le,A),A|0)for(;A=A+-1|0,Pu(Qe,n[d>>2]|0),m=n[Ye>>2]|0,m>>>0<(n[ae>>2]|0)>>>0?(n[m>>2]=n[Qe>>2],n[Ye>>2]=(n[Ye>>2]|0)+4):JM(Le,Qe),A;)d=d+4|0;A=k2(k)|0,n[Qe>>2]=0,n[M>>2]=0,n[L>>2]=0;e:do if(n[A>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?W4e(Qe,A):(n[d>>2]=n[A>>2],n[M>>2]=(n[M>>2]|0)+4),A=A+4|0,!(n[A>>2]|0))break e;d=n[M>>2]|0,m=n[q>>2]|0}while(!1);n[tt>>2]=Ob(B)|0,n[Xe>>2]=_r(k)|0,Y4e(u,o,tt,Xe,Le,Qe),KM(Qe),np(Le)}l=n[l>>2]|0}while(l|0)}I=ct}function VM(o){return o=o|0,n[o+12>>2]|0}function b2(o){return o=o|0,n[o+12>>2]|0}function x2(o){return o=o|0,n[o+16>>2]|0}function q4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;d=I,I=I+32|0,u=d,A=n[o>>2]|0,(n[o+8>>2]|0)-A>>2>>>0<l>>>0&&(WZ(u,l,(n[o+4>>2]|0)-A>>2,o+8|0),YZ(o,u),VZ(u)),I=d}function JM(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0;if(B=I,I=I+32|0,u=B,A=o+4|0,d=((n[A>>2]|0)-(n[o>>2]|0)>>2)+1|0,m=qZ(o)|0,m>>>0<d>>>0)sn(o);else{k=n[o>>2]|0,M=(n[o+8>>2]|0)-k|0,R=M>>1,WZ(u,M>>2>>>0<m>>>1>>>0?R>>>0<d>>>0?d:R:m,(n[A>>2]|0)-k>>2,o+8|0),m=u+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,YZ(o,u),VZ(u),I=B;return}}function k2(o){return o=o|0,n[o+8>>2]|0}function W4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0;if(B=I,I=I+32|0,u=B,A=o+4|0,d=((n[A>>2]|0)-(n[o>>2]|0)>>2)+1|0,m=GZ(o)|0,m>>>0<d>>>0)sn(o);else{k=n[o>>2]|0,M=(n[o+8>>2]|0)-k|0,R=M>>1,f3e(u,M>>2>>>0<m>>>1>>>0?R>>>0<d>>>0?d:R:m,(n[A>>2]|0)-k>>2,o+8|0),m=u+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,A3e(o,u),p3e(u),I=B;return}}function Ob(o){return o=o|0,n[o>>2]|0}function Y4e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,V4e(o,l,u,A,d,m)}function KM(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-4-A|0)>>>2)<<2)),It(u))}function np(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-4-A|0)>>>2)<<2)),It(u))}function V4e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0;B=I,I=I+48|0,L=B+40|0,k=B+32|0,q=B+24|0,R=B+12|0,M=B,Fl(k),o=Os(o)|0,n[q>>2]=n[l>>2],u=n[u>>2]|0,A=n[A>>2]|0,zM(R,d),J4e(M,m),n[L>>2]=n[q>>2],K4e(o,L,u,A,R,M),KM(M),np(R),Nl(k),I=B}function zM(o,l){o=o|0,l=l|0;var u=0,A=0;n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,u=l+4|0,A=(n[u>>2]|0)-(n[l>>2]|0)>>2,A|0&&(c3e(o,A),u3e(o,n[l>>2]|0,n[u>>2]|0,A))}function J4e(o,l){o=o|0,l=l|0;var u=0,A=0;n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,u=l+4|0,A=(n[u>>2]|0)-(n[l>>2]|0)>>2,A|0&&(a3e(o,A),l3e(o,n[l>>2]|0,n[u>>2]|0,A))}function K4e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0;B=I,I=I+32|0,L=B+28|0,q=B+24|0,k=B+12|0,R=B,M=da(z4e()|0)|0,n[q>>2]=n[l>>2],n[L>>2]=n[q>>2],l=fd(L)|0,u=MZ(u)|0,A=ZM(A)|0,n[k>>2]=n[d>>2],L=d+4|0,n[k+4>>2]=n[L>>2],q=d+8|0,n[k+8>>2]=n[q>>2],n[q>>2]=0,n[L>>2]=0,n[d>>2]=0,d=XM(k)|0,n[R>>2]=n[m>>2],L=m+4|0,n[R+4>>2]=n[L>>2],q=m+8|0,n[R+8>>2]=n[q>>2],n[q>>2]=0,n[L>>2]=0,n[m>>2]=0,lu(0,M|0,o|0,l|0,u|0,A|0,d|0,Z4e(R)|0)|0,KM(R),np(k),I=B}function z4e(){var o=0;return s[7968]|0||(s3e(10708),o=7968,n[o>>2]=1,n[o+4>>2]=0),10708}function fd(o){return o=o|0,_Z(o)|0}function MZ(o){return o=o|0,UZ(o)|0}function ZM(o){return o=o|0,Tb(o)|0}function XM(o){return o=o|0,$4e(o)|0}function Z4e(o){return o=o|0,X4e(o)|0}function X4e(o){o=o|0;var l=0,u=0,A=0;if(A=(n[o+4>>2]|0)-(n[o>>2]|0)|0,u=A>>2,A=Tl(A+4|0)|0,n[A>>2]=u,u|0){l=0;do n[A+4+(l<<2)>>2]=UZ(n[(n[o>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(u|0))}return A|0}function UZ(o){return o=o|0,o|0}function $4e(o){o=o|0;var l=0,u=0,A=0;if(A=(n[o+4>>2]|0)-(n[o>>2]|0)|0,u=A>>2,A=Tl(A+4|0)|0,n[A>>2]=u,u|0){l=0;do n[A+4+(l<<2)>>2]=_Z((n[o>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(u|0))}return A|0}function _Z(o){o=o|0;var l=0,u=0,A=0,d=0;return d=I,I=I+32|0,l=d+12|0,u=d,A=uM(HZ()|0)|0,A?(fM(l,A),AM(u,l),Nje(o,u),o=pM(l)|0):o=e3e(o)|0,I=d,o|0}function HZ(){var o=0;return s[7960]|0||(i3e(10664),gr(25,10664,U|0)|0,o=7960,n[o>>2]=1,n[o+4>>2]=0),10664}function e3e(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;return u=I,I=I+16|0,d=u+4|0,B=u,A=Tl(8)|0,l=A,k=Kt(4)|0,n[k>>2]=n[o>>2],m=l+4|0,n[m>>2]=k,o=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],jZ(o,m,d),n[A>>2]=o,I=u,l|0}function jZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1656,n[u+12>>2]=l,n[o+4>>2]=u}function t3e(o){o=o|0,$y(o),It(o)}function r3e(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function n3e(o){o=o|0,It(o)}function i3e(o){o=o|0,Lh(o)}function s3e(o){o=o|0,Qo(o,o3e()|0,5)}function o3e(){return 1676}function a3e(o,l){o=o|0,l=l|0;var u=0;if((GZ(o)|0)>>>0<l>>>0&&sn(o),l>>>0>1073741823)Nt();else{u=Kt(l<<2)|0,n[o+4>>2]=u,n[o>>2]=u,n[o+8>>2]=u+(l<<2);return}}function l3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,A=o+4|0,o=u-l|0,(o|0)>0&&(Qr(n[A>>2]|0,l|0,o|0)|0,n[A>>2]=(n[A>>2]|0)+(o>>>2<<2))}function GZ(o){return o=o|0,1073741823}function c3e(o,l){o=o|0,l=l|0;var u=0;if((qZ(o)|0)>>>0<l>>>0&&sn(o),l>>>0>1073741823)Nt();else{u=Kt(l<<2)|0,n[o+4>>2]=u,n[o>>2]=u,n[o+8>>2]=u+(l<<2);return}}function u3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,A=o+4|0,o=u-l|0,(o|0)>0&&(Qr(n[A>>2]|0,l|0,o|0)|0,n[A>>2]=(n[A>>2]|0)+(o>>>2<<2))}function qZ(o){return o=o|0,1073741823}function f3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>1073741823)Nt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<2)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<2)}function A3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function p3e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-4-l|0)>>>2)<<2)),o=n[o>>2]|0,o|0&&It(o)}function WZ(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>1073741823)Nt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<2)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<2)}function YZ(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function VZ(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-4-l|0)>>>2)<<2)),o=n[o>>2]|0,o|0&&It(o)}function h3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0;if(Qe=I,I=I+32|0,L=Qe+20|0,q=Qe+12|0,M=Qe+16|0,ae=Qe+4|0,Ye=Qe,Le=Qe+8|0,k=NZ()|0,m=n[k>>2]|0,B=n[m>>2]|0,B|0)for(R=n[k+8>>2]|0,k=n[k+4>>2]|0;Pu(L,B),g3e(o,L,k,R),m=m+4|0,B=n[m>>2]|0,B;)R=R+1|0,k=k+1|0;if(m=OZ()|0,B=n[m>>2]|0,B|0)do Pu(L,B),n[q>>2]=n[m+4>>2],d3e(l,L,q),m=m+8|0,B=n[m>>2]|0;while(B|0);if(m=n[(Jy()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,Pu(L,n[(Ky(l)|0)>>2]|0),n[q>>2]=WM(l)|0,m3e(u,L,q),m=n[m>>2]|0;while(m|0);if(Pu(M,0),m=YM()|0,n[L>>2]=n[M>>2],LZ(L,m,d),m=n[(Jy()|0)>>2]|0,m|0){o=L+4|0,l=L+8|0,u=L+8|0;do{if(R=n[m+4>>2]|0,Pu(q,n[(Ky(R)|0)>>2]|0),y3e(ae,JZ(R)|0),B=n[ae>>2]|0,B|0){n[L>>2]=0,n[o>>2]=0,n[l>>2]=0;do Pu(Ye,n[(Ky(n[B+4>>2]|0)|0)>>2]|0),k=n[o>>2]|0,k>>>0<(n[u>>2]|0)>>>0?(n[k>>2]=n[Ye>>2],n[o>>2]=(n[o>>2]|0)+4):JM(L,Ye),B=n[B>>2]|0;while(B|0);E3e(A,q,L),np(L)}n[Le>>2]=n[q>>2],M=KZ(R)|0,n[L>>2]=n[Le>>2],LZ(L,M,d),mz(ae),m=n[m>>2]|0}while(m|0)}I=Qe}function g3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,Q3e(o,l,u,A)}function d3e(o,l,u){o=o|0,l=l|0,u=u|0,k3e(o,l,u)}function Ky(o){return o=o|0,o|0}function m3e(o,l,u){o=o|0,l=l|0,u=u|0,D3e(o,l,u)}function JZ(o){return o=o|0,o+16|0}function y3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;if(m=I,I=I+16|0,d=m+8|0,u=m,n[o>>2]=0,A=n[l>>2]|0,n[d>>2]=A,n[u>>2]=o,u=S3e(u)|0,A|0){if(A=Kt(12)|0,B=(zZ(d)|0)+4|0,o=n[B+4>>2]|0,l=A+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=o,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)o=A;else for(l=A;o=Kt(12)|0,R=(zZ(d)|0)+4|0,k=n[R+4>>2]|0,B=o+4|0,n[B>>2]=n[R>>2],n[B+4>>2]=k,n[l>>2]=o,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=o;n[o>>2]=n[u>>2],n[u>>2]=A}I=m}function E3e(o,l,u){o=o|0,l=l|0,u=u|0,I3e(o,l,u)}function KZ(o){return o=o|0,o+24|0}function I3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+32|0,B=A+24|0,d=A+16|0,k=A+12|0,m=A,Fl(d),o=Os(o)|0,n[k>>2]=n[l>>2],zM(m,u),n[B>>2]=n[k>>2],C3e(o,B,m),np(m),Nl(d),I=A}function C3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+32|0,B=A+16|0,k=A+12|0,d=A,m=da(w3e()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=fd(B)|0,n[d>>2]=n[u>>2],B=u+4|0,n[d+4>>2]=n[B>>2],k=u+8|0,n[d+8>>2]=n[k>>2],n[k>>2]=0,n[B>>2]=0,n[u>>2]=0,Rs(0,m|0,o|0,l|0,XM(d)|0)|0,np(d),I=A}function w3e(){var o=0;return s[7976]|0||(B3e(10720),o=7976,n[o>>2]=1,n[o+4>>2]=0),10720}function B3e(o){o=o|0,Qo(o,v3e()|0,2)}function v3e(){return 1732}function S3e(o){return o=o|0,n[o>>2]|0}function zZ(o){return o=o|0,n[o>>2]|0}function D3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+32|0,m=A+16|0,d=A+8|0,B=A,Fl(d),o=Os(o)|0,n[B>>2]=n[l>>2],u=n[u>>2]|0,n[m>>2]=n[B>>2],ZZ(o,m,u),Nl(d),I=A}function ZZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,m=A+4|0,B=A,d=da(P3e()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=fd(m)|0,Rs(0,d|0,o|0,l|0,MZ(u)|0)|0,I=A}function P3e(){var o=0;return s[7984]|0||(b3e(10732),o=7984,n[o>>2]=1,n[o+4>>2]=0),10732}function b3e(o){o=o|0,Qo(o,x3e()|0,2)}function x3e(){return 1744}function k3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+32|0,m=A+16|0,d=A+8|0,B=A,Fl(d),o=Os(o)|0,n[B>>2]=n[l>>2],u=n[u>>2]|0,n[m>>2]=n[B>>2],ZZ(o,m,u),Nl(d),I=A}function Q3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+32|0,B=d+16|0,m=d+8|0,k=d,Fl(m),o=Os(o)|0,n[k>>2]=n[l>>2],u=s[u>>0]|0,A=s[A>>0]|0,n[B>>2]=n[k>>2],R3e(o,B,u,A),Nl(m),I=d}function R3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,B=d+4|0,k=d,m=da(T3e()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=fd(B)|0,u=zy(u)|0,Li(0,m|0,o|0,l|0,u|0,zy(A)|0)|0,I=d}function T3e(){var o=0;return s[7992]|0||(N3e(10744),o=7992,n[o>>2]=1,n[o+4>>2]=0),10744}function zy(o){return o=o|0,F3e(o)|0}function F3e(o){return o=o|0,o&255|0}function N3e(o){o=o|0,Qo(o,O3e()|0,3)}function O3e(){return 1756}function L3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;switch(ae=I,I=I+32|0,k=ae+8|0,R=ae+4|0,M=ae+20|0,L=ae,mM(o,0),A=Fje(l)|0,n[k>>2]=0,q=k+4|0,n[q>>2]=0,n[k+8>>2]=0,A<<24>>24){case 0:{s[M>>0]=0,M3e(R,u,M),Lb(o,R)|0,Df(R);break}case 8:{q=iU(l)|0,s[M>>0]=8,Pu(L,n[q+4>>2]|0),U3e(R,u,M,L,q+8|0),Lb(o,R)|0,Df(R);break}case 9:{if(m=iU(l)|0,l=n[m+4>>2]|0,l|0)for(B=k+8|0,d=m+12|0;l=l+-1|0,Pu(R,n[d>>2]|0),A=n[q>>2]|0,A>>>0<(n[B>>2]|0)>>>0?(n[A>>2]=n[R>>2],n[q>>2]=(n[q>>2]|0)+4):JM(k,R),l;)d=d+4|0;s[M>>0]=9,Pu(L,n[m+8>>2]|0),_3e(R,u,M,L,k),Lb(o,R)|0,Df(R);break}default:q=iU(l)|0,s[M>>0]=A,Pu(L,n[q+4>>2]|0),H3e(R,u,M,L),Lb(o,R)|0,Df(R)}np(k),I=ae}function M3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,Fl(d),l=Os(l)|0,e8e(o,l,s[u>>0]|0),Nl(d),I=A}function Lb(o,l){o=o|0,l=l|0;var u=0;return u=n[o>>2]|0,u|0&&Na(u|0),n[o>>2]=n[l>>2],n[l>>2]=0,o|0}function U3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0;m=I,I=I+32|0,k=m+16|0,B=m+8|0,R=m,Fl(B),l=Os(l)|0,u=s[u>>0]|0,n[R>>2]=n[A>>2],d=n[d>>2]|0,n[k>>2]=n[R>>2],z3e(o,l,u,k,d),Nl(B),I=m}function _3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0;m=I,I=I+32|0,R=m+24|0,B=m+16|0,M=m+12|0,k=m,Fl(B),l=Os(l)|0,u=s[u>>0]|0,n[M>>2]=n[A>>2],zM(k,d),n[R>>2]=n[M>>2],Y3e(o,l,u,R,k),np(k),Nl(B),I=m}function H3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+32|0,B=d+16|0,m=d+8|0,k=d,Fl(m),l=Os(l)|0,u=s[u>>0]|0,n[k>>2]=n[A>>2],n[B>>2]=n[k>>2],j3e(o,l,u,B),Nl(m),I=d}function j3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+4|0,k=d,B=da(G3e()|0)|0,u=zy(u)|0,n[k>>2]=n[A>>2],n[m>>2]=n[k>>2],Mb(o,Rs(0,B|0,l|0,u|0,fd(m)|0)|0),I=d}function G3e(){var o=0;return s[8e3]|0||(q3e(10756),o=8e3,n[o>>2]=1,n[o+4>>2]=0),10756}function Mb(o,l){o=o|0,l=l|0,mM(o,l)}function q3e(o){o=o|0,Qo(o,W3e()|0,2)}function W3e(){return 1772}function Y3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0;m=I,I=I+32|0,R=m+16|0,M=m+12|0,B=m,k=da(V3e()|0)|0,u=zy(u)|0,n[M>>2]=n[A>>2],n[R>>2]=n[M>>2],A=fd(R)|0,n[B>>2]=n[d>>2],R=d+4|0,n[B+4>>2]=n[R>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[R>>2]=0,n[d>>2]=0,Mb(o,Li(0,k|0,l|0,u|0,A|0,XM(B)|0)|0),np(B),I=m}function V3e(){var o=0;return s[8008]|0||(J3e(10768),o=8008,n[o>>2]=1,n[o+4>>2]=0),10768}function J3e(o){o=o|0,Qo(o,K3e()|0,3)}function K3e(){return 1784}function z3e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0;m=I,I=I+16|0,k=m+4|0,R=m,B=da(Z3e()|0)|0,u=zy(u)|0,n[R>>2]=n[A>>2],n[k>>2]=n[R>>2],A=fd(k)|0,Mb(o,Li(0,B|0,l|0,u|0,A|0,ZM(d)|0)|0),I=m}function Z3e(){var o=0;return s[8016]|0||(X3e(10780),o=8016,n[o>>2]=1,n[o+4>>2]=0),10780}function X3e(o){o=o|0,Qo(o,$3e()|0,3)}function $3e(){return 1800}function e8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=da(t8e()|0)|0,Mb(o,dn(0,A|0,l|0,zy(u)|0)|0)}function t8e(){var o=0;return s[8024]|0||(r8e(10792),o=8024,n[o>>2]=1,n[o+4>>2]=0),10792}function r8e(o){o=o|0,Qo(o,n8e()|0,1)}function n8e(){return 1816}function i8e(){s8e(),o8e(),a8e()}function s8e(){n[2702]=SX(65536)|0}function o8e(){P8e(10856)}function a8e(){l8e(10816)}function l8e(o){o=o|0,c8e(o,5044),u8e(o)|0}function c8e(o,l){o=o|0,l=l|0;var u=0;u=HZ()|0,n[o>>2]=u,C8e(u,l),jh(n[o>>2]|0)}function u8e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,f8e()|0),o|0}function f8e(){var o=0;return s[8032]|0||(XZ(10820),gr(64,10820,U|0)|0,o=8032,n[o>>2]=1,n[o+4>>2]=0),_r(10820)|0||XZ(10820),10820}function XZ(o){o=o|0,h8e(o),ud(o,25)}function A8e(o){o=o|0,p8e(o+24|0)}function p8e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function h8e(o){o=o|0;var l=0;l=en()|0,tn(o,5,18,l,y8e()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function g8e(o,l){o=o|0,l=l|0,d8e(o,l)}function d8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;u=I,I=I+16|0,A=u,d=u+4|0,ad(d,l),n[A>>2]=ld(d,l)|0,m8e(o,A),I=u}function m8e(o,l){o=o|0,l=l|0,$Z(o+4|0,n[l>>2]|0),s[o+8>>0]=1}function $Z(o,l){o=o|0,l=l|0,n[o>>2]=l}function y8e(){return 1824}function E8e(o){return o=o|0,I8e(o)|0}function I8e(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;return u=I,I=I+16|0,d=u+4|0,B=u,A=Tl(8)|0,l=A,k=Kt(4)|0,ad(d,o),$Z(k,ld(d,o)|0),m=l+4|0,n[m>>2]=k,o=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],jZ(o,m,d),n[A>>2]=o,I=u,l|0}function Tl(o){o=o|0;var l=0,u=0;return o=o+7&-8,o>>>0<=32768&&(l=n[2701]|0,o>>>0<=(65536-l|0)>>>0)?(u=(n[2702]|0)+l|0,n[2701]=l+o,o=u):(o=SX(o+8|0)|0,n[o>>2]=n[2703],n[2703]=o,o=o+8|0),o|0}function C8e(o,l){o=o|0,l=l|0,n[o>>2]=w8e()|0,n[o+4>>2]=B8e()|0,n[o+12>>2]=l,n[o+8>>2]=v8e()|0,n[o+32>>2]=9}function w8e(){return 11744}function B8e(){return 1832}function v8e(){return Nb()|0}function S8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(D8e(u),It(u)):l|0&&It(l)}function D8e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function P8e(o){o=o|0,b8e(o,5052),x8e(o)|0,k8e(o,5058,26)|0,Q8e(o,5069,1)|0,R8e(o,5077,10)|0,T8e(o,5087,19)|0,F8e(o,5094,27)|0}function b8e(o,l){o=o|0,l=l|0;var u=0;u=Dje()|0,n[o>>2]=u,Pje(u,l),jh(n[o>>2]|0)}function x8e(o){o=o|0;var l=0;return l=n[o>>2]|0,cd(l,Aje()|0),o|0}function k8e(o,l,u){return o=o|0,l=l|0,u=u|0,JHe(o,Bn(l)|0,u,0),o|0}function Q8e(o,l,u){return o=o|0,l=l|0,u=u|0,THe(o,Bn(l)|0,u,0),o|0}function R8e(o,l,u){return o=o|0,l=l|0,u=u|0,fHe(o,Bn(l)|0,u,0),o|0}function T8e(o,l,u){return o=o|0,l=l|0,u=u|0,z8e(o,Bn(l)|0,u,0),o|0}function eX(o,l){o=o|0,l=l|0;var u=0,A=0;e:for(;;){for(u=n[2703]|0;;){if((u|0)==(l|0))break e;if(A=n[u>>2]|0,n[2703]=A,!u)u=A;else break}It(u)}n[2701]=o}function F8e(o,l,u){return o=o|0,l=l|0,u=u|0,N8e(o,Bn(l)|0,u,0),o|0}function N8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=$M()|0,o=O8e(u)|0,vn(m,l,d,o,L8e(u,A)|0,A)}function $M(){var o=0,l=0;if(s[8040]|0||(rX(10860),gr(65,10860,U|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(_r(10860)|0)){o=10860,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));rX(10860)}return 10860}function O8e(o){return o=o|0,o|0}function L8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=$M()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(tX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(M8e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function tX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function M8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=U8e(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,_8e(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,tX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,H8e(o,d),j8e(d),I=k;return}}function U8e(o){return o=o|0,536870911}function _8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function H8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function j8e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function rX(o){o=o|0,W8e(o)}function G8e(o){o=o|0,q8e(o+24|0)}function q8e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function W8e(o){o=o|0;var l=0;l=en()|0,tn(o,1,11,l,Y8e()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Y8e(){return 1840}function V8e(o,l,u){o=o|0,l=l|0,u=u|0,K8e(n[(J8e(o)|0)>>2]|0,l,u)}function J8e(o){return o=o|0,(n[($M()|0)+24>>2]|0)+(o<<3)|0}function K8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;A=I,I=I+16|0,m=A+1|0,d=A,ad(m,l),l=ld(m,l)|0,ad(d,u),u=ld(d,u)|0,sp[o&31](l,u),I=A}function z8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=eU()|0,o=Z8e(u)|0,vn(m,l,d,o,X8e(u,A)|0,A)}function eU(){var o=0,l=0;if(s[8048]|0||(iX(10896),gr(66,10896,U|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(_r(10896)|0)){o=10896,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));iX(10896)}return 10896}function Z8e(o){return o=o|0,o|0}function X8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=eU()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(nX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):($8e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function nX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function $8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=eHe(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,tHe(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,nX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,rHe(o,d),nHe(d),I=k;return}}function eHe(o){return o=o|0,536870911}function tHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function rHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function nHe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function iX(o){o=o|0,oHe(o)}function iHe(o){o=o|0,sHe(o+24|0)}function sHe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function oHe(o){o=o|0;var l=0;l=en()|0,tn(o,1,11,l,aHe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function aHe(){return 1852}function lHe(o,l){return o=o|0,l=l|0,uHe(n[(cHe(o)|0)>>2]|0,l)|0}function cHe(o){return o=o|0,(n[(eU()|0)+24>>2]|0)+(o<<3)|0}function uHe(o,l){o=o|0,l=l|0;var u=0,A=0;return u=I,I=I+16|0,A=u,ad(A,l),l=ld(A,l)|0,l=Tb(gd[o&31](l)|0)|0,I=u,l|0}function fHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=tU()|0,o=AHe(u)|0,vn(m,l,d,o,pHe(u,A)|0,A)}function tU(){var o=0,l=0;if(s[8056]|0||(oX(10932),gr(67,10932,U|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(_r(10932)|0)){o=10932,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));oX(10932)}return 10932}function AHe(o){return o=o|0,o|0}function pHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=tU()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(sX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(hHe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function sX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function hHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=gHe(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,dHe(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,sX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,mHe(o,d),yHe(d),I=k;return}}function gHe(o){return o=o|0,536870911}function dHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function mHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function yHe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function oX(o){o=o|0,CHe(o)}function EHe(o){o=o|0,IHe(o+24|0)}function IHe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function CHe(o){o=o|0;var l=0;l=en()|0,tn(o,1,7,l,wHe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function wHe(){return 1860}function BHe(o,l,u){return o=o|0,l=l|0,u=u|0,SHe(n[(vHe(o)|0)>>2]|0,l,u)|0}function vHe(o){return o=o|0,(n[(tU()|0)+24>>2]|0)+(o<<3)|0}function SHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0;return A=I,I=I+32|0,B=A+12|0,m=A+8|0,k=A,R=A+16|0,d=A+4|0,DHe(R,l),PHe(k,R,l),Mh(d,u),u=Uh(d,u)|0,n[B>>2]=n[k>>2],F2[o&15](m,B,u),u=bHe(m)|0,Df(m),_h(d),I=A,u|0}function DHe(o,l){o=o|0,l=l|0}function PHe(o,l,u){o=o|0,l=l|0,u=u|0,xHe(o,u)}function bHe(o){return o=o|0,Os(o)|0}function xHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;d=I,I=I+16|0,u=d,A=l,A&1?(kHe(u,0),Me(A|0,u|0)|0,QHe(o,u),RHe(u)):n[o>>2]=n[l>>2],I=d}function kHe(o,l){o=o|0,l=l|0,Su(o,l),n[o+4>>2]=0,s[o+8>>0]=0}function QHe(o,l){o=o|0,l=l|0,n[o>>2]=n[l+4>>2]}function RHe(o){o=o|0,s[o+8>>0]=0}function THe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=rU()|0,o=FHe(u)|0,vn(m,l,d,o,NHe(u,A)|0,A)}function rU(){var o=0,l=0;if(s[8064]|0||(lX(10968),gr(68,10968,U|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(_r(10968)|0)){o=10968,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));lX(10968)}return 10968}function FHe(o){return o=o|0,o|0}function NHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=rU()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(aX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(OHe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function aX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function OHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=LHe(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,MHe(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,aX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,UHe(o,d),_He(d),I=k;return}}function LHe(o){return o=o|0,536870911}function MHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function UHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function _He(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function lX(o){o=o|0,GHe(o)}function HHe(o){o=o|0,jHe(o+24|0)}function jHe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function GHe(o){o=o|0;var l=0;l=en()|0,tn(o,1,1,l,qHe()|0,5),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function qHe(){return 1872}function WHe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,VHe(n[(YHe(o)|0)>>2]|0,l,u,A,d,m)}function YHe(o){return o=o|0,(n[(rU()|0)+24>>2]|0)+(o<<3)|0}function VHe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0;B=I,I=I+32|0,k=B+16|0,R=B+12|0,M=B+8|0,L=B+4|0,q=B,Mh(k,l),l=Uh(k,l)|0,Mh(R,u),u=Uh(R,u)|0,Mh(M,A),A=Uh(M,A)|0,Mh(L,d),d=Uh(L,d)|0,Mh(q,m),m=Uh(q,m)|0,kX[o&1](l,u,A,d,m),_h(q),_h(L),_h(M),_h(R),_h(k),I=B}function JHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=nU()|0,o=KHe(u)|0,vn(m,l,d,o,zHe(u,A)|0,A)}function nU(){var o=0,l=0;if(s[8072]|0||(uX(11004),gr(69,11004,U|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(_r(11004)|0)){o=11004,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));uX(11004)}return 11004}function KHe(o){return o=o|0,o|0}function zHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,R=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,R=nU()|0,B=R+24|0,l=yr(l,4)|0,n[m>>2]=l,u=R+28|0,A=n[u>>2]|0,A>>>0<(n[R+32>>2]|0)>>>0?(cX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(ZHe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function cX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function ZHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=XHe(o)|0,A>>>0<B>>>0)sn(o);else{R=n[o>>2]|0,L=(n[o+8>>2]|0)-R|0,M=L>>2,$He(d,L>>3>>>0<A>>>1>>>0?M>>>0<B>>>0?B:M:A,(n[m>>2]|0)-R>>3,o+8|0),B=d+8|0,cX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,eje(o,d),tje(d),I=k;return}}function XHe(o){return o=o|0,536870911}function $He(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function eje(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function tje(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&It(o)}function uX(o){o=o|0,ije(o)}function rje(o){o=o|0,nje(o+24|0)}function nje(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function ije(o){o=o|0;var l=0;l=en()|0,tn(o,1,12,l,sje()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function sje(){return 1896}function oje(o,l,u){o=o|0,l=l|0,u=u|0,lje(n[(aje(o)|0)>>2]|0,l,u)}function aje(o){return o=o|0,(n[(nU()|0)+24>>2]|0)+(o<<3)|0}function lje(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;A=I,I=I+16|0,m=A+4|0,d=A,cje(m,l),l=uje(m,l)|0,Mh(d,u),u=Uh(d,u)|0,sp[o&31](l,u),_h(d),I=A}function cje(o,l){o=o|0,l=l|0}function uje(o,l){return o=o|0,l=l|0,fje(l)|0}function fje(o){return o=o|0,o|0}function Aje(){var o=0;return s[8080]|0||(fX(11040),gr(70,11040,U|0)|0,o=8080,n[o>>2]=1,n[o+4>>2]=0),_r(11040)|0||fX(11040),11040}function fX(o){o=o|0,gje(o),ud(o,71)}function pje(o){o=o|0,hje(o+24|0)}function hje(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),It(u))}function gje(o){o=o|0;var l=0;l=en()|0,tn(o,5,7,l,Eje()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function dje(o){o=o|0,mje(o)}function mje(o){o=o|0,yje(o)}function yje(o){o=o|0,s[o+8>>0]=1}function Eje(){return 1936}function Ije(){return Cje()|0}function Cje(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0;return l=I,I=I+16|0,d=l+4|0,B=l,u=Tl(8)|0,o=u,m=o+4|0,n[m>>2]=Kt(1)|0,A=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],wje(A,m,d),n[u>>2]=A,I=l,o|0}function wje(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Kt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1916,n[u+12>>2]=l,n[o+4>>2]=u}function Bje(o){o=o|0,$y(o),It(o)}function vje(o){o=o|0,o=n[o+12>>2]|0,o|0&&It(o)}function Sje(o){o=o|0,It(o)}function Dje(){var o=0;return s[8088]|0||(Tje(11076),gr(25,11076,U|0)|0,o=8088,n[o>>2]=1,n[o+4>>2]=0),11076}function Pje(o,l){o=o|0,l=l|0,n[o>>2]=bje()|0,n[o+4>>2]=xje()|0,n[o+12>>2]=l,n[o+8>>2]=kje()|0,n[o+32>>2]=10}function bje(){return 11745}function xje(){return 1940}function kje(){return Fb()|0}function Qje(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(Hh(A,896)|0)==512?u|0&&(Rje(u),It(u)):l|0&&It(l)}function Rje(o){o=o|0,o=n[o+4>>2]|0,o|0&&Gh(o)}function Tje(o){o=o|0,Lh(o)}function Pu(o,l){o=o|0,l=l|0,n[o>>2]=l}function iU(o){return o=o|0,n[o>>2]|0}function Fje(o){return o=o|0,s[n[o>>2]>>0]|0}function Nje(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,n[A>>2]=n[o>>2],Oje(l,A)|0,I=u}function Oje(o,l){o=o|0,l=l|0;var u=0;return u=Lje(n[o>>2]|0,l)|0,l=o+4|0,n[(n[l>>2]|0)+8>>2]=u,n[(n[l>>2]|0)+8>>2]|0}function Lje(o,l){o=o|0,l=l|0;var u=0,A=0;return u=I,I=I+16|0,A=u,Fl(A),o=Os(o)|0,l=Mje(o,n[l>>2]|0)|0,Nl(A),I=u,l|0}function Fl(o){o=o|0,n[o>>2]=n[2701],n[o+4>>2]=n[2703]}function Mje(o,l){o=o|0,l=l|0;var u=0;return u=da(Uje()|0)|0,dn(0,u|0,o|0,ZM(l)|0)|0}function Nl(o){o=o|0,eX(n[o>>2]|0,n[o+4>>2]|0)}function Uje(){var o=0;return s[8096]|0||(_je(11120),o=8096,n[o>>2]=1,n[o+4>>2]=0),11120}function _je(o){o=o|0,Qo(o,Hje()|0,1)}function Hje(){return 1948}function jje(){Gje()}function Gje(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0;if(Le=I,I=I+16|0,L=Le+4|0,q=Le,oa(65536,10804,n[2702]|0,10812),u=NZ()|0,l=n[u>>2]|0,o=n[l>>2]|0,o|0)for(A=n[u+8>>2]|0,u=n[u+4>>2]|0;pf(o|0,c[u>>0]|0|0,s[A>>0]|0),l=l+4|0,o=n[l>>2]|0,o;)A=A+1|0,u=u+1|0;if(o=OZ()|0,l=n[o>>2]|0,l|0)do NA(l|0,n[o+4>>2]|0),o=o+8|0,l=n[o>>2]|0;while(l|0);NA(qje()|0,5167),M=Jy()|0,o=n[M>>2]|0;e:do if(o|0){do Wje(n[o+4>>2]|0),o=n[o>>2]|0;while(o|0);if(o=n[M>>2]|0,o|0){R=M;do{for(;d=o,o=n[o>>2]|0,d=n[d+4>>2]|0,!!(Yje(d)|0);)if(n[q>>2]=R,n[L>>2]=n[q>>2],Vje(M,L)|0,!o)break e;if(Jje(d),R=n[R>>2]|0,l=AX(d)|0,m=Oi()|0,B=I,I=I+((1*(l<<2)|0)+15&-16)|0,k=I,I=I+((1*(l<<2)|0)+15&-16)|0,l=n[(JZ(d)|0)>>2]|0,l|0)for(u=B,A=k;n[u>>2]=n[(Ky(n[l+4>>2]|0)|0)>>2],n[A>>2]=n[l+8>>2],l=n[l>>2]|0,l;)u=u+4|0,A=A+4|0;Qe=Ky(d)|0,l=Kje(d)|0,u=AX(d)|0,A=zje(d)|0,oc(Qe|0,l|0,B|0,k|0,u|0,A|0,WM(d)|0),FA(m|0)}while(o|0)}}while(!1);if(o=n[(YM()|0)>>2]|0,o|0)do Qe=o+4|0,M=VM(Qe)|0,d=k2(M)|0,m=b2(M)|0,B=(x2(M)|0)+1|0,k=Ub(M)|0,R=pX(Qe)|0,M=_r(M)|0,L=Ob(Qe)|0,q=sU(Qe)|0,uu(0,d|0,m|0,B|0,k|0,R|0,M|0,L|0,q|0,oU(Qe)|0),o=n[o>>2]|0;while(o|0);o=n[(Jy()|0)>>2]|0;e:do if(o|0){t:for(;;){if(l=n[o+4>>2]|0,l|0&&(ae=n[(Ky(l)|0)>>2]|0,Ye=n[(KZ(l)|0)>>2]|0,Ye|0)){u=Ye;do{l=u+4|0,A=VM(l)|0;r:do if(A|0)switch(_r(A)|0){case 0:break t;case 4:case 3:case 2:{k=k2(A)|0,R=b2(A)|0,M=(x2(A)|0)+1|0,L=Ub(A)|0,q=_r(A)|0,Qe=Ob(l)|0,uu(ae|0,k|0,R|0,M|0,L|0,0,q|0,Qe|0,sU(l)|0,oU(l)|0);break r}case 1:{B=k2(A)|0,k=b2(A)|0,R=(x2(A)|0)+1|0,M=Ub(A)|0,L=pX(l)|0,q=_r(A)|0,Qe=Ob(l)|0,uu(ae|0,B|0,k|0,R|0,M|0,L|0,q|0,Qe|0,sU(l)|0,oU(l)|0);break r}case 5:{M=k2(A)|0,L=b2(A)|0,q=(x2(A)|0)+1|0,Qe=Ub(A)|0,uu(ae|0,M|0,L|0,q|0,Qe|0,Zje(A)|0,_r(A)|0,0,0,0);break r}default:break r}while(!1);u=n[u>>2]|0}while(u|0)}if(o=n[o>>2]|0,!o)break e}Nt()}while(!1);ve(),I=Le}function qje(){return 11703}function Wje(o){o=o|0,s[o+40>>0]=0}function Yje(o){return o=o|0,(s[o+40>>0]|0)!=0|0}function Vje(o,l){return o=o|0,l=l|0,l=Xje(l)|0,o=n[l>>2]|0,n[l>>2]=n[o>>2],It(o),n[l>>2]|0}function Jje(o){o=o|0,s[o+40>>0]=1}function AX(o){return o=o|0,n[o+20>>2]|0}function Kje(o){return o=o|0,n[o+8>>2]|0}function zje(o){return o=o|0,n[o+32>>2]|0}function Ub(o){return o=o|0,n[o+4>>2]|0}function pX(o){return o=o|0,n[o+4>>2]|0}function sU(o){return o=o|0,n[o+8>>2]|0}function oU(o){return o=o|0,n[o+16>>2]|0}function Zje(o){return o=o|0,n[o+20>>2]|0}function Xje(o){return o=o|0,n[o>>2]|0}function _b(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0,He=0,We=0,Lt=0;Lt=I,I=I+16|0,ae=Lt;do if(o>>>0<245){if(M=o>>>0<11?16:o+11&-8,o=M>>>3,q=n[2783]|0,u=q>>>o,u&3|0)return l=(u&1^1)+o|0,o=11172+(l<<1<<2)|0,u=o+8|0,A=n[u>>2]|0,d=A+8|0,m=n[d>>2]|0,(o|0)==(m|0)?n[2783]=q&~(1<<l):(n[m+12>>2]=o,n[u>>2]=m),We=l<<3,n[A+4>>2]=We|3,We=A+We+4|0,n[We>>2]=n[We>>2]|1,We=d,I=Lt,We|0;if(L=n[2785]|0,M>>>0>L>>>0){if(u|0)return l=2<<o,l=u<<o&(l|0-l),l=(l&0-l)+-1|0,B=l>>>12&16,l=l>>>B,u=l>>>5&8,l=l>>>u,d=l>>>2&4,l=l>>>d,o=l>>>1&2,l=l>>>o,A=l>>>1&1,A=(u|B|d|o|A)+(l>>>A)|0,l=11172+(A<<1<<2)|0,o=l+8|0,d=n[o>>2]|0,B=d+8|0,u=n[B>>2]|0,(l|0)==(u|0)?(o=q&~(1<<A),n[2783]=o):(n[u+12>>2]=l,n[o>>2]=u,o=q),m=(A<<3)-M|0,n[d+4>>2]=M|3,A=d+M|0,n[A+4>>2]=m|1,n[A+m>>2]=m,L|0&&(d=n[2788]|0,l=L>>>3,u=11172+(l<<1<<2)|0,l=1<<l,o&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=u),n[2785]=m,n[2788]=A,We=B,I=Lt,We|0;if(k=n[2784]|0,k){if(u=(k&0-k)+-1|0,B=u>>>12&16,u=u>>>B,m=u>>>5&8,u=u>>>m,R=u>>>2&4,u=u>>>R,A=u>>>1&2,u=u>>>A,o=u>>>1&1,o=n[11436+((m|B|R|A|o)+(u>>>o)<<2)>>2]|0,u=(n[o+4>>2]&-8)-M|0,A=n[o+16+(((n[o+16>>2]|0)==0&1)<<2)>>2]|0,!A)R=o,m=u;else{do B=(n[A+4>>2]&-8)-M|0,R=B>>>0<u>>>0,u=R?B:u,o=R?A:o,A=n[A+16+(((n[A+16>>2]|0)==0&1)<<2)>>2]|0;while(A|0);R=o,m=u}if(B=R+M|0,R>>>0<B>>>0){d=n[R+24>>2]|0,l=n[R+12>>2]|0;do if((l|0)==(R|0)){if(o=R+20|0,l=n[o>>2]|0,!l&&(o=R+16|0,l=n[o>>2]|0,!l)){u=0;break}for(;;){if(u=l+20|0,A=n[u>>2]|0,A|0){l=A,o=u;continue}if(u=l+16|0,A=n[u>>2]|0,A)l=A,o=u;else break}n[o>>2]=0,u=l}else u=n[R+8>>2]|0,n[u+12>>2]=l,n[l+8>>2]=u,u=l;while(!1);do if(d|0){if(l=n[R+28>>2]|0,o=11436+(l<<2)|0,(R|0)==(n[o>>2]|0)){if(n[o>>2]=u,!u){n[2784]=k&~(1<<l);break}}else if(n[d+16+(((n[d+16>>2]|0)!=(R|0)&1)<<2)>>2]=u,!u)break;n[u+24>>2]=d,l=n[R+16>>2]|0,l|0&&(n[u+16>>2]=l,n[l+24>>2]=u),l=n[R+20>>2]|0,l|0&&(n[u+20>>2]=l,n[l+24>>2]=u)}while(!1);return m>>>0<16?(We=m+M|0,n[R+4>>2]=We|3,We=R+We+4|0,n[We>>2]=n[We>>2]|1):(n[R+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,L|0&&(A=n[2788]|0,l=L>>>3,u=11172+(l<<1<<2)|0,l=1<<l,q&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=q|l,l=u,o=u+8|0),n[o>>2]=A,n[l+12>>2]=A,n[A+8>>2]=l,n[A+12>>2]=u),n[2785]=m,n[2788]=B),We=R+8|0,I=Lt,We|0}else q=M}else q=M}else q=M}else if(o>>>0<=4294967231)if(o=o+11|0,M=o&-8,R=n[2784]|0,R){A=0-M|0,o=o>>>8,o?M>>>0>16777215?k=31:(q=(o+1048320|0)>>>16&8,He=o<<q,L=(He+520192|0)>>>16&4,He=He<<L,k=(He+245760|0)>>>16&2,k=14-(L|q|k)+(He<<k>>>15)|0,k=M>>>(k+7|0)&1|k<<1):k=0,u=n[11436+(k<<2)>>2]|0;e:do if(!u)u=0,o=0,He=57;else for(o=0,B=M<<((k|0)==31?0:25-(k>>>1)|0),m=0;;){if(d=(n[u+4>>2]&-8)-M|0,d>>>0<A>>>0)if(d)o=u,A=d;else{o=u,A=0,d=u,He=61;break e}if(d=n[u+20>>2]|0,u=n[u+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(u|0)?m:d,d=(u|0)==0,d){u=m,He=57;break}else B=B<<((d^1)&1)}while(!1);if((He|0)==57){if((u|0)==0&(o|0)==0){if(o=2<<k,o=R&(o|0-o),!o){q=M;break}q=(o&0-o)+-1|0,B=q>>>12&16,q=q>>>B,m=q>>>5&8,q=q>>>m,k=q>>>2&4,q=q>>>k,L=q>>>1&2,q=q>>>L,u=q>>>1&1,o=0,u=n[11436+((m|B|k|L|u)+(q>>>u)<<2)>>2]|0}u?(d=u,He=61):(k=o,B=A)}if((He|0)==61)for(;;)if(He=0,u=(n[d+4>>2]&-8)-M|0,q=u>>>0<A>>>0,u=q?u:A,o=q?d:o,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)A=u,He=61;else{k=o,B=u;break}if(k|0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=k+M|0,k>>>0>=m>>>0)return We=0,I=Lt,We|0;d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(o=k+20|0,l=n[o>>2]|0,!l&&(o=k+16|0,l=n[o>>2]|0,!l)){l=0;break}for(;;){if(u=l+20|0,A=n[u>>2]|0,A|0){l=A,o=u;continue}if(u=l+16|0,A=n[u>>2]|0,A)l=A,o=u;else break}n[o>>2]=0}else We=n[k+8>>2]|0,n[We+12>>2]=l,n[l+8>>2]=We;while(!1);do if(d){if(o=n[k+28>>2]|0,u=11436+(o<<2)|0,(k|0)==(n[u>>2]|0)){if(n[u>>2]=l,!l){A=R&~(1<<o),n[2784]=A;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(k|0)&1)<<2)>>2]=l,!l){A=R;break}n[l+24>>2]=d,o=n[k+16>>2]|0,o|0&&(n[l+16>>2]=o,n[o+24>>2]=l),o=n[k+20>>2]|0,o&&(n[l+20>>2]=o,n[o+24>>2]=l),A=R}else A=R;while(!1);do if(B>>>0>=16){if(n[k+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){u=11172+(l<<1<<2)|0,o=n[2783]|0,l=1<<l,o&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=u;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(He=(l+1048320|0)>>>16&8,We=l<<He,ct=(We+520192|0)>>>16&4,We=We<<ct,l=(We+245760|0)>>>16&2,l=14-(ct|He|l)+(We<<l>>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,u=11436+(l<<2)|0,n[m+28>>2]=l,o=m+16|0,n[o+4>>2]=0,n[o>>2]=0,o=1<<l,!(A&o)){n[2784]=A|o,n[u>>2]=m,n[m+24>>2]=u,n[m+12>>2]=m,n[m+8>>2]=m;break}for(o=B<<((l|0)==31?0:25-(l>>>1)|0),u=n[u>>2]|0;;){if((n[u+4>>2]&-8|0)==(B|0)){He=97;break}if(A=u+16+(o>>>31<<2)|0,l=n[A>>2]|0,l)o=o<<1,u=l;else{He=96;break}}if((He|0)==96){n[A>>2]=m,n[m+24>>2]=u,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((He|0)==97){He=u+8|0,We=n[He>>2]|0,n[We+12>>2]=m,n[He>>2]=m,n[m+8>>2]=We,n[m+12>>2]=u,n[m+24>>2]=0;break}}else We=B+M|0,n[k+4>>2]=We|3,We=k+We+4|0,n[We>>2]=n[We>>2]|1;while(!1);return We=k+8|0,I=Lt,We|0}else q=M}else q=M;else q=-1;while(!1);if(u=n[2785]|0,u>>>0>=q>>>0)return l=u-q|0,o=n[2788]|0,l>>>0>15?(We=o+q|0,n[2788]=We,n[2785]=l,n[We+4>>2]=l|1,n[We+l>>2]=l,n[o+4>>2]=q|3):(n[2785]=0,n[2788]=0,n[o+4>>2]=u|3,We=o+u+4|0,n[We>>2]=n[We>>2]|1),We=o+8|0,I=Lt,We|0;if(B=n[2786]|0,B>>>0>q>>>0)return ct=B-q|0,n[2786]=ct,We=n[2789]|0,He=We+q|0,n[2789]=He,n[He+4>>2]=ct|1,n[We+4>>2]=q|3,We=We+8|0,I=Lt,We|0;if(n[2901]|0?o=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,o=ae&-16^1431655768,n[ae>>2]=o,n[2901]=o,o=4096),k=q+48|0,R=q+47|0,m=o+R|0,d=0-o|0,M=m&d,M>>>0<=q>>>0||(o=n[2893]|0,o|0&&(L=n[2891]|0,ae=L+M|0,ae>>>0<=L>>>0|ae>>>0>o>>>0)))return We=0,I=Lt,We|0;e:do if(n[2894]&4)l=0,He=133;else{u=n[2789]|0;t:do if(u){for(A=11580;o=n[A>>2]|0,!(o>>>0<=u>>>0&&(Qe=A+4|0,(o+(n[Qe>>2]|0)|0)>>>0>u>>>0));)if(o=n[A+8>>2]|0,o)A=o;else{He=118;break t}if(l=m-B&d,l>>>0<2147483647)if(o=qh(l|0)|0,(o|0)==((n[A>>2]|0)+(n[Qe>>2]|0)|0)){if((o|0)!=-1){B=l,m=o,He=135;break e}}else A=o,He=126;else l=0}else He=118;while(!1);do if((He|0)==118)if(u=qh(0)|0,(u|0)!=-1&&(l=u,Ye=n[2902]|0,Le=Ye+-1|0,l=(Le&l|0?(Le+l&0-Ye)-l|0:0)+M|0,Ye=n[2891]|0,Le=l+Ye|0,l>>>0>q>>>0&l>>>0<2147483647)){if(Qe=n[2893]|0,Qe|0&&Le>>>0<=Ye>>>0|Le>>>0>Qe>>>0){l=0;break}if(o=qh(l|0)|0,(o|0)==(u|0)){B=l,m=u,He=135;break e}else A=o,He=126}else l=0;while(!1);do if((He|0)==126){if(u=0-l|0,!(k>>>0>l>>>0&(l>>>0<2147483647&(A|0)!=-1)))if((A|0)==-1){l=0;break}else{B=l,m=A,He=135;break e}if(o=n[2903]|0,o=R-l+o&0-o,o>>>0>=2147483647){B=l,m=A,He=135;break e}if((qh(o|0)|0)==-1){qh(u|0)|0,l=0;break}else{B=o+l|0,m=A,He=135;break e}}while(!1);n[2894]=n[2894]|4,He=133}while(!1);if((He|0)==133&&M>>>0<2147483647&&(ct=qh(M|0)|0,Qe=qh(0)|0,tt=Qe-ct|0,Xe=tt>>>0>(q+40|0)>>>0,!((ct|0)==-1|Xe^1|ct>>>0<Qe>>>0&((ct|0)!=-1&(Qe|0)!=-1)^1))&&(B=Xe?tt:l,m=ct,He=135),(He|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),R=n[2789]|0;do if(R){for(l=11580;;){if(o=n[l>>2]|0,u=l+4|0,A=n[u>>2]|0,(m|0)==(o+A|0)){He=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((He|0)==145&&!(n[l+12>>2]&8|0)&&R>>>0<m>>>0&R>>>0>=o>>>0){n[u>>2]=A+B,We=R+8|0,We=We&7|0?0-We&7:0,He=R+We|0,We=(n[2786]|0)+(B-We)|0,n[2789]=He,n[2786]=We,n[He+4>>2]=We|1,n[He+We+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),u=m+B|0,l=11580;;){if((n[l>>2]|0)==(u|0)){He=153;break}if(o=n[l+8>>2]|0,o)l=o;else break}if((He|0)==153&&!(n[l+12>>2]&8|0)){n[l>>2]=m,L=l+4|0,n[L>>2]=(n[L>>2]|0)+B,L=m+8|0,L=m+(L&7|0?0-L&7:0)|0,l=u+8|0,l=u+(l&7|0?0-l&7:0)|0,M=L+q|0,k=l-L-q|0,n[L+4>>2]=q|3;do if((l|0)!=(R|0)){if((l|0)==(n[2788]|0)){We=(n[2785]|0)+k|0,n[2785]=We,n[2788]=M,n[M+4>>2]=We|1,n[M+We>>2]=We;break}if(o=n[l+4>>2]|0,(o&3|0)==1){B=o&-8,A=o>>>3;e:do if(o>>>0<256)if(o=n[l+8>>2]|0,u=n[l+12>>2]|0,(u|0)==(o|0)){n[2783]=n[2783]&~(1<<A);break}else{n[o+12>>2]=u,n[u+8>>2]=o;break}else{m=n[l+24>>2]|0,o=n[l+12>>2]|0;do if((o|0)==(l|0)){if(A=l+16|0,u=A+4|0,o=n[u>>2]|0,!o)if(o=n[A>>2]|0,o)u=A;else{o=0;break}for(;;){if(A=o+20|0,d=n[A>>2]|0,d|0){o=d,u=A;continue}if(A=o+16|0,d=n[A>>2]|0,d)o=d,u=A;else break}n[u>>2]=0}else We=n[l+8>>2]|0,n[We+12>>2]=o,n[o+8>>2]=We;while(!1);if(!m)break;u=n[l+28>>2]|0,A=11436+(u<<2)|0;do if((l|0)!=(n[A>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=o,!o)break e}else{if(n[A>>2]=o,o|0)break;n[2784]=n[2784]&~(1<<u);break e}while(!1);if(n[o+24>>2]=m,u=l+16|0,A=n[u>>2]|0,A|0&&(n[o+16>>2]=A,n[A+24>>2]=o),u=n[u+4>>2]|0,!u)break;n[o+20>>2]=u,n[u+24>>2]=o}while(!1);l=l+B|0,d=B+k|0}else d=k;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){u=11172+(l<<1<<2)|0,o=n[2783]|0,l=1<<l,o&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=u;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}He=(l+1048320|0)>>>16&8,We=l<<He,ct=(We+520192|0)>>>16&4,We=We<<ct,l=(We+245760|0)>>>16&2,l=14-(ct|He|l)+(We<<l>>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(!1);if(A=11436+(l<<2)|0,n[M+28>>2]=l,o=M+16|0,n[o+4>>2]=0,n[o>>2]=0,o=n[2784]|0,u=1<<l,!(o&u)){n[2784]=o|u,n[A>>2]=M,n[M+24>>2]=A,n[M+12>>2]=M,n[M+8>>2]=M;break}for(o=d<<((l|0)==31?0:25-(l>>>1)|0),u=n[A>>2]|0;;){if((n[u+4>>2]&-8|0)==(d|0)){He=194;break}if(A=u+16+(o>>>31<<2)|0,l=n[A>>2]|0,l)o=o<<1,u=l;else{He=193;break}}if((He|0)==193){n[A>>2]=M,n[M+24>>2]=u,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((He|0)==194){He=u+8|0,We=n[He>>2]|0,n[We+12>>2]=M,n[He>>2]=M,n[M+8>>2]=We,n[M+12>>2]=u,n[M+24>>2]=0;break}}else We=(n[2786]|0)+k|0,n[2786]=We,n[2789]=M,n[M+4>>2]=We|1;while(!1);return We=L+8|0,I=Lt,We|0}for(l=11580;o=n[l>>2]|0,!(o>>>0<=R>>>0&&(We=o+(n[l+4>>2]|0)|0,We>>>0>R>>>0));)l=n[l+8>>2]|0;d=We+-47|0,o=d+8|0,o=d+(o&7|0?0-o&7:0)|0,d=R+16|0,o=o>>>0<d>>>0?R:o,l=o+8|0,u=m+8|0,u=u&7|0?0-u&7:0,He=m+u|0,u=B+-40-u|0,n[2789]=He,n[2786]=u,n[He+4>>2]=u|1,n[He+u+4>>2]=40,n[2790]=n[2905],u=o+4|0,n[u>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=o+24|0;do He=l,l=l+4|0,n[l>>2]=7;while((He+8|0)>>>0<We>>>0);if((o|0)!=(R|0)){if(m=o-R|0,n[u>>2]=n[u>>2]&-2,n[R+4>>2]=m|1,n[o>>2]=m,l=m>>>3,m>>>0<256){u=11172+(l<<1<<2)|0,o=n[2783]|0,l=1<<l,o&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=R,n[l+12>>2]=R,n[R+8>>2]=l,n[R+12>>2]=u;break}if(l=m>>>8,l?m>>>0>16777215?u=31:(He=(l+1048320|0)>>>16&8,We=l<<He,ct=(We+520192|0)>>>16&4,We=We<<ct,u=(We+245760|0)>>>16&2,u=14-(ct|He|u)+(We<<u>>>15)|0,u=m>>>(u+7|0)&1|u<<1):u=0,A=11436+(u<<2)|0,n[R+28>>2]=u,n[R+20>>2]=0,n[d>>2]=0,l=n[2784]|0,o=1<<u,!(l&o)){n[2784]=l|o,n[A>>2]=R,n[R+24>>2]=A,n[R+12>>2]=R,n[R+8>>2]=R;break}for(o=m<<((u|0)==31?0:25-(u>>>1)|0),u=n[A>>2]|0;;){if((n[u+4>>2]&-8|0)==(m|0)){He=216;break}if(A=u+16+(o>>>31<<2)|0,l=n[A>>2]|0,l)o=o<<1,u=l;else{He=215;break}}if((He|0)==215){n[A>>2]=R,n[R+24>>2]=u,n[R+12>>2]=R,n[R+8>>2]=R;break}else if((He|0)==216){He=u+8|0,We=n[He>>2]|0,n[We+12>>2]=R,n[He>>2]=R,n[R+8>>2]=We,n[R+12>>2]=u,n[R+24>>2]=0;break}}}else{We=n[2787]|0,(We|0)==0|m>>>0<We>>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do We=11172+(l<<1<<2)|0,n[We+12>>2]=We,n[We+8>>2]=We,l=l+1|0;while((l|0)!=32);We=m+8|0,We=We&7|0?0-We&7:0,He=m+We|0,We=B+-40-We|0,n[2789]=He,n[2786]=We,n[He+4>>2]=We|1,n[He+We+4>>2]=40,n[2790]=n[2905]}while(!1);if(l=n[2786]|0,l>>>0>q>>>0)return ct=l-q|0,n[2786]=ct,We=n[2789]|0,He=We+q|0,n[2789]=He,n[He+4>>2]=ct|1,n[We+4>>2]=q|3,We=We+8|0,I=Lt,We|0}return n[(Zy()|0)>>2]=12,We=0,I=Lt,We|0}function Hb(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,R=0;if(o){u=o+-8|0,d=n[2787]|0,o=n[o+-4>>2]|0,l=o&-8,R=u+l|0;do if(o&1)k=u,B=u;else{if(A=n[u>>2]|0,!(o&3)||(B=u+(0-A)|0,m=A+l|0,B>>>0<d>>>0))return;if((B|0)==(n[2788]|0)){if(o=R+4|0,l=n[o>>2]|0,(l&3|0)!=3){k=B,l=m;break}n[2785]=m,n[o>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(u=A>>>3,A>>>0<256)if(o=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(o|0)){n[2783]=n[2783]&~(1<<u),k=B,l=m;break}else{n[o+12>>2]=l,n[l+8>>2]=o,k=B,l=m;break}d=n[B+24>>2]|0,o=n[B+12>>2]|0;do if((o|0)==(B|0)){if(u=B+16|0,l=u+4|0,o=n[l>>2]|0,!o)if(o=n[u>>2]|0,o)l=u;else{o=0;break}for(;;){if(u=o+20|0,A=n[u>>2]|0,A|0){o=A,l=u;continue}if(u=o+16|0,A=n[u>>2]|0,A)o=A,l=u;else break}n[l>>2]=0}else k=n[B+8>>2]|0,n[k+12>>2]=o,n[o+8>>2]=k;while(!1);if(d){if(l=n[B+28>>2]|0,u=11436+(l<<2)|0,(B|0)==(n[u>>2]|0)){if(n[u>>2]=o,!o){n[2784]=n[2784]&~(1<<l),k=B,l=m;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(B|0)&1)<<2)>>2]=o,!o){k=B,l=m;break}n[o+24>>2]=d,l=B+16|0,u=n[l>>2]|0,u|0&&(n[o+16>>2]=u,n[u+24>>2]=o),l=n[l+4>>2]|0,l?(n[o+20>>2]=l,n[l+24>>2]=o,k=B,l=m):(k=B,l=m)}else k=B,l=m}while(!1);if(!(B>>>0>=R>>>0)&&(o=R+4|0,A=n[o>>2]|0,!!(A&1))){if(A&2)n[o>>2]=A&-2,n[k+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(o=n[2788]|0,(R|0)==(n[2789]|0)){if(R=(n[2786]|0)+l|0,n[2786]=R,n[2789]=k,n[k+4>>2]=R|1,(k|0)!=(o|0))return;n[2788]=0,n[2785]=0;return}if((R|0)==(o|0)){R=(n[2785]|0)+l|0,n[2785]=R,n[2788]=B,n[k+4>>2]=R|1,n[B+R>>2]=R;return}d=(A&-8)+l|0,u=A>>>3;do if(A>>>0<256)if(l=n[R+8>>2]|0,o=n[R+12>>2]|0,(o|0)==(l|0)){n[2783]=n[2783]&~(1<<u);break}else{n[l+12>>2]=o,n[o+8>>2]=l;break}else{m=n[R+24>>2]|0,o=n[R+12>>2]|0;do if((o|0)==(R|0)){if(u=R+16|0,l=u+4|0,o=n[l>>2]|0,!o)if(o=n[u>>2]|0,o)l=u;else{u=0;break}for(;;){if(u=o+20|0,A=n[u>>2]|0,A|0){o=A,l=u;continue}if(u=o+16|0,A=n[u>>2]|0,A)o=A,l=u;else break}n[l>>2]=0,u=o}else u=n[R+8>>2]|0,n[u+12>>2]=o,n[o+8>>2]=u,u=o;while(!1);if(m|0){if(o=n[R+28>>2]|0,l=11436+(o<<2)|0,(R|0)==(n[l>>2]|0)){if(n[l>>2]=u,!u){n[2784]=n[2784]&~(1<<o);break}}else if(n[m+16+(((n[m+16>>2]|0)!=(R|0)&1)<<2)>>2]=u,!u)break;n[u+24>>2]=m,o=R+16|0,l=n[o>>2]|0,l|0&&(n[u+16>>2]=l,n[l+24>>2]=u),o=n[o+4>>2]|0,o|0&&(n[u+20>>2]=o,n[o+24>>2]=u)}}while(!1);if(n[k+4>>2]=d|1,n[B+d>>2]=d,(k|0)==(n[2788]|0)){n[2785]=d;return}}if(o=d>>>3,d>>>0<256){u=11172+(o<<1<<2)|0,l=n[2783]|0,o=1<<o,l&o?(l=u+8|0,o=n[l>>2]|0):(n[2783]=l|o,o=u,l=u+8|0),n[l>>2]=k,n[o+12>>2]=k,n[k+8>>2]=o,n[k+12>>2]=u;return}o=d>>>8,o?d>>>0>16777215?o=31:(B=(o+1048320|0)>>>16&8,R=o<<B,m=(R+520192|0)>>>16&4,R=R<<m,o=(R+245760|0)>>>16&2,o=14-(m|B|o)+(R<<o>>>15)|0,o=d>>>(o+7|0)&1|o<<1):o=0,A=11436+(o<<2)|0,n[k+28>>2]=o,n[k+20>>2]=0,n[k+16>>2]=0,l=n[2784]|0,u=1<<o;do if(l&u){for(l=d<<((o|0)==31?0:25-(o>>>1)|0),u=n[A>>2]|0;;){if((n[u+4>>2]&-8|0)==(d|0)){o=73;break}if(A=u+16+(l>>>31<<2)|0,o=n[A>>2]|0,o)l=l<<1,u=o;else{o=72;break}}if((o|0)==72){n[A>>2]=k,n[k+24>>2]=u,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((o|0)==73){B=u+8|0,R=n[B>>2]|0,n[R+12>>2]=k,n[B>>2]=k,n[k+8>>2]=R,n[k+12>>2]=u,n[k+24>>2]=0;break}}else n[2784]=l|u,n[A>>2]=k,n[k+24>>2]=A,n[k+12>>2]=k,n[k+8>>2]=k;while(!1);if(R=(n[2791]|0)+-1|0,n[2791]=R,!R)o=11588;else return;for(;o=n[o>>2]|0,o;)o=o+8|0;n[2791]=-1}}}function $je(){return 11628}function e6e(o){o=o|0;var l=0,u=0;return l=I,I=I+16|0,u=l,n[u>>2]=n6e(n[o+60>>2]|0)|0,o=jb(Au(6,u|0)|0)|0,I=l,o|0}function hX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0;q=I,I=I+48|0,M=q+16|0,m=q,d=q+32|0,k=o+28|0,A=n[k>>2]|0,n[d>>2]=A,R=o+20|0,A=(n[R>>2]|0)-A|0,n[d+4>>2]=A,n[d+8>>2]=l,n[d+12>>2]=u,A=A+u|0,B=o+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=jb(La(146,m|0)|0)|0;e:do if((A|0)!=(m|0)){for(l=2;!((m|0)<0);)if(A=A-m|0,Ye=n[d+4>>2]|0,ae=m>>>0>Ye>>>0,d=ae?d+8|0:d,l=(ae<<31>>31)+l|0,Ye=m-(ae?Ye:0)|0,n[d>>2]=(n[d>>2]|0)+Ye,ae=d+4|0,n[ae>>2]=(n[ae>>2]|0)-Ye,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=jb(La(146,M|0)|0)|0,(A|0)==(m|0)){L=3;break e}n[o+16>>2]=0,n[k>>2]=0,n[R>>2]=0,n[o>>2]=n[o>>2]|32,(l|0)==2?u=0:u=u-(n[d+4>>2]|0)|0}else L=3;while(!1);return(L|0)==3&&(Ye=n[o+44>>2]|0,n[o+16>>2]=Ye+(n[o+48>>2]|0),n[k>>2]=Ye,n[R>>2]=Ye),I=q,u|0}function t6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;return d=I,I=I+32|0,m=d,A=d+20|0,n[m>>2]=n[o+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=A,n[m+16>>2]=u,(jb(Oa(140,m|0)|0)|0)<0?(n[A>>2]=-1,o=-1):o=n[A>>2]|0,I=d,o|0}function jb(o){return o=o|0,o>>>0>4294963200&&(n[(Zy()|0)>>2]=0-o,o=-1),o|0}function Zy(){return(r6e()|0)+64|0}function r6e(){return aU()|0}function aU(){return 2084}function n6e(o){return o=o|0,o|0}function i6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;return d=I,I=I+32|0,A=d,n[o+36>>2]=1,!(n[o>>2]&64|0)&&(n[A>>2]=n[o+60>>2],n[A+4>>2]=21523,n[A+8>>2]=d+16,no(54,A|0)|0)&&(s[o+75>>0]=-1),A=hX(o,l,u)|0,I=d,A|0}function gX(o,l){o=o|0,l=l|0;var u=0,A=0;if(u=s[o>>0]|0,A=s[l>>0]|0,!(u<<24>>24)||u<<24>>24!=A<<24>>24)o=A;else{do o=o+1|0,l=l+1|0,u=s[o>>0]|0,A=s[l>>0]|0;while(!(!(u<<24>>24)||u<<24>>24!=A<<24>>24));o=A}return(u&255)-(o&255)|0}function s6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;e:do if(!u)o=0;else{for(;A=s[o>>0]|0,d=s[l>>0]|0,A<<24>>24==d<<24>>24;)if(u=u+-1|0,u)o=o+1|0,l=l+1|0;else{o=0;break e}o=(A&255)-(d&255)|0}while(!1);return o|0}function dX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0;Qe=I,I=I+224|0,L=Qe+120|0,q=Qe+80|0,Ye=Qe,Le=Qe+136|0,A=q,d=A+40|0;do n[A>>2]=0,A=A+4|0;while((A|0)<(d|0));return n[L>>2]=n[u>>2],(lU(0,l,L,Ye,q)|0)<0?u=-1:((n[o+76>>2]|0)>-1?ae=o6e(o)|0:ae=0,u=n[o>>2]|0,M=u&32,(s[o+74>>0]|0)<1&&(n[o>>2]=u&-33),A=o+48|0,n[A>>2]|0?u=lU(o,l,L,Ye,q)|0:(d=o+44|0,m=n[d>>2]|0,n[d>>2]=Le,B=o+28|0,n[B>>2]=Le,k=o+20|0,n[k>>2]=Le,n[A>>2]=80,R=o+16|0,n[R>>2]=Le+80,u=lU(o,l,L,Ye,q)|0,m&&(Yb[n[o+36>>2]&7](o,0,0)|0,u=n[k>>2]|0?u:-1,n[d>>2]=m,n[A>>2]=0,n[R>>2]=0,n[B>>2]=0,n[k>>2]=0)),A=n[o>>2]|0,n[o>>2]=A|M,ae|0&&a6e(o),u=A&32|0?-1:u),I=Qe,u|0}function lU(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0,He=0,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0;cr=I,I=I+64|0,fr=cr+16|0,$t=cr,Lt=cr+24|0,Rr=cr+8|0,Hr=cr+20|0,n[fr>>2]=l,ct=(o|0)!=0,He=Lt+40|0,We=He,Lt=Lt+39|0,Gr=Rr+4|0,B=0,m=0,L=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(Zy()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(!1);if(B=s[l>>0]|0,B<<24>>24)k=l;else{Xe=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=k,Xe=9;break t}case 0:{B=k;break t}default:}tt=k+1|0,n[fr>>2]=tt,B=s[tt>>0]|0,k=tt}t:do if((Xe|0)==9)for(;;){if(Xe=0,(s[k+1>>0]|0)!=37)break t;if(B=B+1|0,k=k+2|0,n[fr>>2]=k,(s[k>>0]|0)==37)Xe=9;else break}while(!1);if(B=B-l|0,ct&&vs(o,l,B),B|0){l=k;continue}R=k+1|0,B=(s[R>>0]|0)+-48|0,B>>>0<10?(tt=(s[k+2>>0]|0)==36,Qe=tt?B:-1,L=tt?1:L,R=tt?k+3|0:R):Qe=-1,n[fr>>2]=R,B=s[R>>0]|0,k=(B<<24>>24)+-32|0;t:do if(k>>>0<32)for(M=0,q=B;;){if(B=1<<k,!(B&75913)){B=q;break t}if(M=B|M,R=R+1|0,n[fr>>2]=R,B=s[R>>0]|0,k=(B<<24>>24)+-32|0,k>>>0>=32)break;q=B}else M=0;while(!1);if(B<<24>>24==42){if(k=R+1|0,B=(s[k>>0]|0)+-48|0,B>>>0<10&&(s[R+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[A+((s[k>>0]|0)+-48<<3)>>2]|0,L=1,R=R+3|0;else{if(L|0){m=-1;break}ct?(L=(n[u>>2]|0)+3&-4,B=n[L>>2]|0,n[u>>2]=L+4,L=0,R=k):(B=0,L=0,R=k)}n[fr>>2]=R,tt=(B|0)<0,B=tt?0-B|0:B,M=tt?M|8192:M}else{if(B=mX(fr)|0,(B|0)<0){m=-1;break}R=n[fr>>2]|0}do if((s[R>>0]|0)==46){if((s[R+1>>0]|0)!=42){n[fr>>2]=R+1,k=mX(fr)|0,R=n[fr>>2]|0;break}if(q=R+2|0,k=(s[q>>0]|0)+-48|0,k>>>0<10&&(s[R+3>>0]|0)==36){n[d+(k<<2)>>2]=10,k=n[A+((s[q>>0]|0)+-48<<3)>>2]|0,R=R+4|0,n[fr>>2]=R;break}if(L|0){m=-1;break e}ct?(tt=(n[u>>2]|0)+3&-4,k=n[tt>>2]|0,n[u>>2]=tt+4):k=0,n[fr>>2]=q,R=q}else k=-1;while(!1);for(Le=0;;){if(((s[R>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(tt=R+1|0,n[fr>>2]=tt,q=s[(s[R>>0]|0)+-65+(5178+(Le*58|0))>>0]|0,ae=q&255,(ae+-1|0)>>>0<8)Le=ae,R=tt;else break}if(!(q<<24>>24)){m=-1;break}Ye=(Qe|0)>-1;do if(q<<24>>24==19)if(Ye){m=-1;break e}else Xe=49;else{if(Ye){n[d+(Qe<<2)>>2]=ae,Ye=A+(Qe<<3)|0,Qe=n[Ye+4>>2]|0,Xe=$t,n[Xe>>2]=n[Ye>>2],n[Xe+4>>2]=Qe,Xe=49;break}if(!ct){m=0;break e}yX($t,ae,u)}while(!1);if((Xe|0)==49&&(Xe=0,!ct)){B=0,l=tt;continue}R=s[R>>0]|0,R=(Le|0)!=0&(R&15|0)==3?R&-33:R,Ye=M&-65537,Qe=M&8192|0?Ye:M;t:do switch(R|0){case 110:switch((Le&255)<<24>>24){case 0:{n[n[$t>>2]>>2]=m,B=0,l=tt;continue e}case 1:{n[n[$t>>2]>>2]=m,B=0,l=tt;continue e}case 2:{B=n[$t>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=tt;continue e}case 3:{a[n[$t>>2]>>1]=m,B=0,l=tt;continue e}case 4:{s[n[$t>>2]>>0]=m,B=0,l=tt;continue e}case 6:{n[n[$t>>2]>>2]=m,B=0,l=tt;continue e}case 7:{B=n[$t>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=tt;continue e}default:{B=0,l=tt;continue e}}case 112:{R=120,k=k>>>0>8?k:8,l=Qe|8,Xe=61;break}case 88:case 120:{l=Qe,Xe=61;break}case 111:{R=$t,l=n[R>>2]|0,R=n[R+4>>2]|0,ae=c6e(l,R,He)|0,Ye=We-ae|0,M=0,q=5642,k=(Qe&8|0)==0|(k|0)>(Ye|0)?k:Ye+1|0,Ye=Qe,Xe=67;break}case 105:case 100:if(R=$t,l=n[R>>2]|0,R=n[R+4>>2]|0,(R|0)<0){l=Gb(0,0,l|0,R|0)|0,R=ye,M=$t,n[M>>2]=l,n[M+4>>2]=R,M=1,q=5642,Xe=66;break t}else{M=(Qe&2049|0)!=0&1,q=Qe&2048|0?5643:Qe&1|0?5644:5642,Xe=66;break t}case 117:{R=$t,M=0,q=5642,l=n[R>>2]|0,R=n[R+4>>2]|0,Xe=66;break}case 99:{s[Lt>>0]=n[$t>>2],l=Lt,M=0,q=5642,ae=He,R=1,k=Ye;break}case 109:{R=u6e(n[(Zy()|0)>>2]|0)|0,Xe=71;break}case 115:{R=n[$t>>2]|0,R=R|0?R:5652,Xe=71;break}case 67:{n[Rr>>2]=n[$t>>2],n[Gr>>2]=0,n[$t>>2]=Rr,ae=-1,R=Rr,Xe=75;break}case 83:{l=n[$t>>2]|0,k?(ae=k,R=l,Xe=75):(Ls(o,32,B,0,Qe),l=0,Xe=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=A6e(o,+E[$t>>3],B,k,Qe,R)|0,l=tt;continue e}default:M=0,q=5642,ae=He,R=k,k=Qe}while(!1);t:do if((Xe|0)==61)Qe=$t,Le=n[Qe>>2]|0,Qe=n[Qe+4>>2]|0,ae=l6e(Le,Qe,He,R&32)|0,q=(l&8|0)==0|(Le|0)==0&(Qe|0)==0,M=q?0:2,q=q?5642:5642+(R>>4)|0,Ye=l,l=Le,R=Qe,Xe=67;else if((Xe|0)==66)ae=Xy(l,R,He)|0,Ye=Qe,Xe=67;else if((Xe|0)==71)Xe=0,Qe=f6e(R,0,k)|0,Le=(Qe|0)==0,l=R,M=0,q=5642,ae=Le?R+k|0:Qe,R=Le?k:Qe-R|0,k=Ye;else if((Xe|0)==75){for(Xe=0,q=R,l=0,k=0;M=n[q>>2]|0,!(!M||(k=EX(Hr,M)|0,(k|0)<0|k>>>0>(ae-l|0)>>>0));)if(l=k+l|0,ae>>>0>l>>>0)q=q+4|0;else break;if((k|0)<0){m=-1;break e}if(Ls(o,32,B,l,Qe),!l)l=0,Xe=84;else for(M=0;;){if(k=n[R>>2]|0,!k){Xe=84;break t}if(k=EX(Hr,k)|0,M=k+M|0,(M|0)>(l|0)){Xe=84;break t}if(vs(o,Hr,k),M>>>0>=l>>>0){Xe=84;break}else R=R+4|0}}while(!1);if((Xe|0)==67)Xe=0,R=(l|0)!=0|(R|0)!=0,Qe=(k|0)!=0|R,R=((R^1)&1)+(We-ae)|0,l=Qe?ae:He,ae=He,R=Qe?(k|0)>(R|0)?k:R:k,k=(k|0)>-1?Ye&-65537:Ye;else if((Xe|0)==84){Xe=0,Ls(o,32,B,l,Qe^8192),B=(B|0)>(l|0)?B:l,l=tt;continue}Le=ae-l|0,Ye=(R|0)<(Le|0)?Le:R,Qe=Ye+M|0,B=(B|0)<(Qe|0)?Qe:B,Ls(o,32,B,Qe,k),vs(o,q,M),Ls(o,48,B,Qe,k^65536),Ls(o,48,Ye,Le,0),vs(o,l,Le),Ls(o,32,B,Qe,k^8192),l=tt}e:do if((Xe|0)==87&&!o)if(!L)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(yX(A+(m<<3)|0,l,u),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(!1);return I=cr,m|0}function o6e(o){return o=o|0,0}function a6e(o){o=o|0}function vs(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]&32||C6e(l,u,o)|0}function mX(o){o=o|0;var l=0,u=0,A=0;if(u=n[o>>2]|0,A=(s[u>>0]|0)+-48|0,A>>>0<10){l=0;do l=A+(l*10|0)|0,u=u+1|0,n[o>>2]=u,A=(s[u>>0]|0)+-48|0;while(A>>>0<10)}else l=0;return l|0}function yX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{A=(n[u>>2]|0)+3&-4,l=n[A>>2]|0,n[u>>2]=A+4,n[o>>2]=l;break e}case 10:{A=(n[u>>2]|0)+3&-4,l=n[A>>2]|0,n[u>>2]=A+4,A=o,n[A>>2]=l,n[A+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{A=(n[u>>2]|0)+3&-4,l=n[A>>2]|0,n[u>>2]=A+4,A=o,n[A>>2]=l,n[A+4>>2]=0;break e}case 12:{A=(n[u>>2]|0)+7&-8,l=A,d=n[l>>2]|0,l=n[l+4>>2]|0,n[u>>2]=A+8,A=o,n[A>>2]=d,n[A+4>>2]=l;break e}case 13:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,A=(A&65535)<<16>>16,d=o,n[d>>2]=A,n[d+4>>2]=((A|0)<0)<<31>>31;break e}case 14:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,d=o,n[d>>2]=A&65535,n[d+4>>2]=0;break e}case 15:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,A=(A&255)<<24>>24,d=o,n[d>>2]=A,n[d+4>>2]=((A|0)<0)<<31>>31;break e}case 16:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,d=o,n[d>>2]=A&255,n[d+4>>2]=0;break e}case 17:{d=(n[u>>2]|0)+7&-8,m=+E[d>>3],n[u>>2]=d+8,E[o>>3]=m;break e}case 18:{d=(n[u>>2]|0)+7&-8,m=+E[d>>3],n[u>>2]=d+8,E[o>>3]=m;break e}default:break e}while(!1);while(!1)}function l6e(o,l,u,A){if(o=o|0,l=l|0,u=u|0,A=A|0,!((o|0)==0&(l|0)==0))do u=u+-1|0,s[u>>0]=c[5694+(o&15)>>0]|0|A,o=qb(o|0,l|0,4)|0,l=ye;while(!((o|0)==0&(l|0)==0));return u|0}function c6e(o,l,u){if(o=o|0,l=l|0,u=u|0,!((o|0)==0&(l|0)==0))do u=u+-1|0,s[u>>0]=o&7|48,o=qb(o|0,l|0,3)|0,l=ye;while(!((o|0)==0&(l|0)==0));return u|0}function Xy(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;if(l>>>0>0|(l|0)==0&o>>>0>4294967295){for(;A=AU(o|0,l|0,10,0)|0,u=u+-1|0,s[u>>0]=A&255|48,A=o,o=fU(o|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&A>>>0>4294967295;)l=ye;l=o}else l=o;if(l)for(;u=u+-1|0,s[u>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return u|0}function u6e(o){return o=o|0,m6e(o,n[(d6e()|0)+188>>2]|0)|0}function f6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;m=l&255,A=(u|0)!=0;e:do if(A&(o&3|0)!=0)for(d=l&255;;){if((s[o>>0]|0)==d<<24>>24){B=6;break e}if(o=o+1|0,u=u+-1|0,A=(u|0)!=0,!(A&(o&3|0)!=0)){B=5;break}}else B=5;while(!1);(B|0)==5&&(A?B=6:u=0);e:do if((B|0)==6&&(d=l&255,(s[o>>0]|0)!=d<<24>>24)){A=Ue(m,16843009)|0;t:do if(u>>>0>3){for(;m=n[o>>2]^A,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(o=o+4|0,u=u+-4|0,u>>>0<=3){B=11;break t}}else B=11;while(!1);if((B|0)==11&&!u){u=0;break}for(;;){if((s[o>>0]|0)==d<<24>>24)break e;if(o=o+1|0,u=u+-1|0,!u){u=0;break}}}while(!1);return(u|0?o:0)|0}function Ls(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0;if(B=I,I=I+256|0,m=B,(u|0)>(A|0)&(d&73728|0)==0){if(d=u-A|0,eE(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=u-A|0;do vs(o,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}vs(o,m,d)}I=B}function EX(o,l){return o=o|0,l=l|0,o?o=h6e(o,l,0)|0:o=0,o|0}function A6e(o,l,u,A,d,m){o=o|0,l=+l,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0,Qe=0,tt=0,Xe=0,ct=0,He=0,We=0,Lt=0,Gr=0,fr=0,$t=0,Rr=0,Hr=0,cr=0,Hn=0;Hn=I,I=I+560|0,R=Hn+8|0,tt=Hn,cr=Hn+524|0,Hr=cr,M=Hn+512|0,n[tt>>2]=0,Rr=M+12|0,IX(l)|0,(ye|0)<0?(l=-l,fr=1,Gr=5659):(fr=(d&2049|0)!=0&1,Gr=d&2048|0?5662:d&1|0?5665:5660),IX(l)|0,$t=ye&2146435072;do if($t>>>0<2146435072|($t|0)==2146435072&!1){if(Ye=+p6e(l,tt)*2,B=Ye!=0,B&&(n[tt>>2]=(n[tt>>2]|0)+-1),ct=m|32,(ct|0)==97){Le=m&32,ae=Le|0?Gr+9|0:Gr,q=fr|2,B=12-A|0;do if(A>>>0>11|(B|0)==0)l=Ye;else{l=8;do B=B+-1|0,l=l*16;while(B|0);if((s[ae>>0]|0)==45){l=-(l+(-Ye-l));break}else{l=Ye+l-l;break}}while(!1);k=n[tt>>2]|0,B=(k|0)<0?0-k|0:k,B=Xy(B,((B|0)<0)<<31>>31,Rr)|0,(B|0)==(Rr|0)&&(B=M+11|0,s[B>>0]=48),s[B+-1>>0]=(k>>31&2)+43,L=B+-2|0,s[L>>0]=m+15,M=(A|0)<1,R=(d&8|0)==0,B=cr;do $t=~~l,k=B+1|0,s[B>>0]=c[5694+$t>>0]|Le,l=(l-+($t|0))*16,(k-Hr|0)==1&&!(R&(M&l==0))?(s[k>>0]=46,B=B+2|0):B=k;while(l!=0);$t=B-Hr|0,Hr=Rr-L|0,Rr=(A|0)!=0&($t+-2|0)<(A|0)?A+2|0:$t,B=Hr+q+Rr|0,Ls(o,32,u,B,d),vs(o,ae,q),Ls(o,48,u,B,d^65536),vs(o,cr,$t),Ls(o,48,Rr-$t|0,0,0),vs(o,L,Hr),Ls(o,32,u,B,d^8192);break}k=(A|0)<0?6:A,B?(B=(n[tt>>2]|0)+-28|0,n[tt>>2]=B,l=Ye*268435456):(l=Ye,B=n[tt>>2]|0),$t=(B|0)<0?R:R+288|0,R=$t;do We=~~l>>>0,n[R>>2]=We,R=R+4|0,l=(l-+(We>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=$t,q=R;;){if(L=(B|0)<29?B:29,B=q+-4|0,B>>>0>=M>>>0){R=0;do He=DX(n[B>>2]|0,0,L|0)|0,He=uU(He|0,ye|0,R|0,0)|0,We=ye,Xe=AU(He|0,We|0,1e9,0)|0,n[B>>2]=Xe,R=fU(He|0,We|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);R&&(M=M+-4|0,n[M>>2]=R)}for(R=q;!(R>>>0<=M>>>0);)if(B=R+-4|0,!(n[B>>2]|0))R=B;else break;if(B=(n[tt>>2]|0)-L|0,n[tt>>2]=B,(B|0)>0)q=R;else break}else M=$t;if((B|0)<0){A=((k+25|0)/9|0)+1|0,Qe=(ct|0)==102;do{if(Le=0-B|0,Le=(Le|0)<9?Le:9,M>>>0<R>>>0){L=(1<<Le)+-1|0,q=1e9>>>Le,ae=0,B=M;do We=n[B>>2]|0,n[B>>2]=(We>>>Le)+ae,ae=Ue(We&L,q)|0,B=B+4|0;while(B>>>0<R>>>0);B=n[M>>2]|0?M:M+4|0,ae?(n[R>>2]=ae,M=B,B=R+4|0):(M=B,B=R)}else M=n[M>>2]|0?M:M+4|0,B=R;R=Qe?$t:M,R=(B-R>>2|0)>(A|0)?R+(A<<2)|0:B,B=(n[tt>>2]|0)+Le|0,n[tt>>2]=B}while((B|0)<0);B=M,A=R}else B=M,A=R;if(We=$t,B>>>0<A>>>0){if(R=(We-B>>2)*9|0,L=n[B>>2]|0,L>>>0>=10){M=10;do M=M*10|0,R=R+1|0;while(L>>>0>=M>>>0)}}else R=0;if(Qe=(ct|0)==103,Xe=(k|0)!=0,M=k-((ct|0)!=102?R:0)+((Xe&Qe)<<31>>31)|0,(M|0)<(((A-We>>2)*9|0)+-9|0)){if(M=M+9216|0,Le=$t+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){L=10;do L=L*10|0,M=M+1|0;while((M|0)!=9)}else L=10;if(q=n[Le>>2]|0,ae=(q>>>0)%(L>>>0)|0,M=(Le+4|0)==(A|0),M&(ae|0)==0)M=Le;else if(Ye=((q>>>0)/(L>>>0)|0)&1|0?9007199254740994:9007199254740992,He=(L|0)/2|0,l=ae>>>0<He>>>0?.5:M&(ae|0)==(He|0)?1:1.5,fr&&(He=(s[Gr>>0]|0)==45,l=He?-l:l,Ye=He?-Ye:Ye),M=q-ae|0,n[Le>>2]=M,Ye+l!=Ye){if(He=M+L|0,n[Le>>2]=He,He>>>0>999999999)for(R=Le;M=R+-4|0,n[R>>2]=0,M>>>0<B>>>0&&(B=B+-4|0,n[B>>2]=0),He=(n[M>>2]|0)+1|0,n[M>>2]=He,He>>>0>999999999;)R=M;else M=Le;if(R=(We-B>>2)*9|0,q=n[B>>2]|0,q>>>0>=10){L=10;do L=L*10|0,R=R+1|0;while(q>>>0>=L>>>0)}}else M=Le;M=M+4|0,M=A>>>0>M>>>0?M:A,He=B}else M=A,He=B;for(ct=M;;){if(ct>>>0<=He>>>0){tt=0;break}if(B=ct+-4|0,!(n[B>>2]|0))ct=B;else{tt=1;break}}A=0-R|0;do if(Qe)if(B=((Xe^1)&1)+k|0,(B|0)>(R|0)&(R|0)>-5?(L=m+-1|0,k=B+-1-R|0):(L=m+-2|0,k=B+-1|0),B=d&8,B)Le=B;else{if(tt&&(Lt=n[ct+-4>>2]|0,(Lt|0)!=0))if((Lt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Lt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((ct-We>>2)*9|0)+-9|0,(L|32|0)==102){Le=B-M|0,Le=(Le|0)>0?Le:0,k=(k|0)<(Le|0)?k:Le,Le=0;break}else{Le=B+R-M|0,Le=(Le|0)>0?Le:0,k=(k|0)<(Le|0)?k:Le,Le=0;break}}else L=m,Le=d&8;while(!1);if(Qe=k|Le,q=(Qe|0)!=0&1,ae=(L|32|0)==102,ae)Xe=0,B=(R|0)>0?R:0;else{if(B=(R|0)<0?A:R,B=Xy(B,((B|0)<0)<<31>>31,Rr)|0,M=Rr,(M-B|0)<2)do B=B+-1|0,s[B>>0]=48;while((M-B|0)<2);s[B+-1>>0]=(R>>31&2)+43,B=B+-2|0,s[B>>0]=L,Xe=B,B=M-B|0}if(B=fr+1+k+q+B|0,Ls(o,32,u,B,d),vs(o,Gr,fr),Ls(o,48,u,B,d^65536),ae){L=He>>>0>$t>>>0?$t:He,Le=cr+9|0,q=Le,ae=cr+8|0,M=L;do{if(R=Xy(n[M>>2]|0,0,Le)|0,(M|0)==(L|0))(R|0)==(Le|0)&&(s[ae>>0]=48,R=ae);else if(R>>>0>cr>>>0){eE(cr|0,48,R-Hr|0)|0;do R=R+-1|0;while(R>>>0>cr>>>0)}vs(o,R,q-R|0),M=M+4|0}while(M>>>0<=$t>>>0);if(Qe|0&&vs(o,5710,1),M>>>0<ct>>>0&(k|0)>0)for(;;){if(R=Xy(n[M>>2]|0,0,Le)|0,R>>>0>cr>>>0){eE(cr|0,48,R-Hr|0)|0;do R=R+-1|0;while(R>>>0>cr>>>0)}if(vs(o,R,(k|0)<9?k:9),M=M+4|0,R=k+-9|0,M>>>0<ct>>>0&(k|0)>9)k=R;else{k=R;break}}Ls(o,48,k+9|0,9,0)}else{if(Qe=tt?ct:He+4|0,(k|0)>-1){tt=cr+9|0,Le=(Le|0)==0,A=tt,q=0-Hr|0,ae=cr+8|0,L=He;do{R=Xy(n[L>>2]|0,0,tt)|0,(R|0)==(tt|0)&&(s[ae>>0]=48,R=ae);do if((L|0)==(He|0)){if(M=R+1|0,vs(o,R,1),Le&(k|0)<1){R=M;break}vs(o,5710,1),R=M}else{if(R>>>0<=cr>>>0)break;eE(cr|0,48,R+q|0)|0;do R=R+-1|0;while(R>>>0>cr>>>0)}while(!1);Hr=A-R|0,vs(o,R,(k|0)>(Hr|0)?Hr:k),k=k-Hr|0,L=L+4|0}while(L>>>0<Qe>>>0&(k|0)>-1)}Ls(o,48,k+18|0,18,0),vs(o,Xe,Rr-Xe|0)}Ls(o,32,u,B,d^8192)}else cr=(m&32|0)!=0,B=fr+3|0,Ls(o,32,u,B,d&-65537),vs(o,Gr,fr),vs(o,l!=l|!1?cr?5686:5690:cr?5678:5682,3),Ls(o,32,u,B,d^8192);while(!1);return I=Hn,((B|0)<(u|0)?u:B)|0}function IX(o){o=+o;var l=0;return E[S>>3]=o,l=n[S>>2]|0,ye=n[S+4>>2]|0,l|0}function p6e(o,l){return o=+o,l=l|0,+ +CX(o,l)}function CX(o,l){o=+o,l=l|0;var u=0,A=0,d=0;switch(E[S>>3]=o,u=n[S>>2]|0,A=n[S+4>>2]|0,d=qb(u|0,A|0,52)|0,d&2047){case 0:{o!=0?(o=+CX(o*18446744073709552e3,l),u=(n[l>>2]|0)+-64|0):u=0,n[l>>2]=u;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[S>>2]=u,n[S+4>>2]=A&-2146435073|1071644672,o=+E[S>>3]}return+o}function h6e(o,l,u){o=o|0,l=l|0,u=u|0;do if(o){if(l>>>0<128){s[o>>0]=l,o=1;break}if(!(n[n[(g6e()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){s[o>>0]=l,o=1;break}else{n[(Zy()|0)>>2]=84,o=-1;break}if(l>>>0<2048){s[o>>0]=l>>>6|192,s[o+1>>0]=l&63|128,o=2;break}if(l>>>0<55296|(l&-8192|0)==57344){s[o>>0]=l>>>12|224,s[o+1>>0]=l>>>6&63|128,s[o+2>>0]=l&63|128,o=3;break}if((l+-65536|0)>>>0<1048576){s[o>>0]=l>>>18|240,s[o+1>>0]=l>>>12&63|128,s[o+2>>0]=l>>>6&63|128,s[o+3>>0]=l&63|128,o=4;break}else{n[(Zy()|0)>>2]=84,o=-1;break}}else o=1;while(!1);return o|0}function g6e(){return aU()|0}function d6e(){return aU()|0}function m6e(o,l){o=o|0,l=l|0;var u=0,A=0;for(A=0;;){if((c[5712+A>>0]|0)==(o|0)){o=2;break}if(u=A+1|0,(u|0)==87){u=5800,A=87,o=5;break}else A=u}if((o|0)==2&&(A?(u=5800,o=5):u=5800),(o|0)==5)for(;;){do o=u,u=u+1|0;while(s[o>>0]|0);if(A=A+-1|0,A)o=5;else break}return y6e(u,n[l+20>>2]|0)|0}function y6e(o,l){return o=o|0,l=l|0,E6e(o,l)|0}function E6e(o,l){return o=o|0,l=l|0,l?l=I6e(n[l>>2]|0,n[l+4>>2]|0,o)|0:l=0,(l|0?l:o)|0}function I6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0;ae=(n[o>>2]|0)+1794895138|0,m=Ad(n[o+8>>2]|0,ae)|0,A=Ad(n[o+12>>2]|0,ae)|0,d=Ad(n[o+16>>2]|0,ae)|0;e:do if(m>>>0<l>>>2>>>0&&(q=l-(m<<2)|0,A>>>0<q>>>0&d>>>0<q>>>0)&&!((d|A)&3|0)){for(q=A>>>2,L=d>>>2,M=0;;){if(k=m>>>1,R=M+k|0,B=R<<1,d=B+q|0,A=Ad(n[o+(d<<2)>>2]|0,ae)|0,d=Ad(n[o+(d+1<<2)>>2]|0,ae)|0,!(d>>>0<l>>>0&A>>>0<(l-d|0)>>>0)){A=0;break e}if(s[o+(d+A)>>0]|0){A=0;break e}if(A=gX(u,o+d|0)|0,!A)break;if(A=(A|0)<0,(m|0)==1){A=0;break e}else M=A?M:R,m=A?k:m-k|0}A=B+L|0,d=Ad(n[o+(A<<2)>>2]|0,ae)|0,A=Ad(n[o+(A+1<<2)>>2]|0,ae)|0,A>>>0<l>>>0&d>>>0<(l-A|0)>>>0?A=s[o+(A+d)>>0]|0?0:o+A|0:A=0}else A=0;while(!1);return A|0}function Ad(o,l){o=o|0,l=l|0;var u=0;return u=xX(o|0)|0,(l|0?u:o)|0}function C6e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=u+16|0,d=n[A>>2]|0,d?m=5:w6e(u)|0?A=0:(d=n[A>>2]|0,m=5);e:do if((m|0)==5){if(k=u+20|0,B=n[k>>2]|0,A=B,(d-B|0)>>>0<l>>>0){A=Yb[n[u+36>>2]&7](u,o,l)|0;break}t:do if((s[u+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=o;break t}if(d=B+-1|0,(s[o+d>>0]|0)==10)break;B=d}if(A=Yb[n[u+36>>2]&7](u,o,B)|0,A>>>0<B>>>0)break e;m=B,d=o+B|0,l=l-B|0,A=n[k>>2]|0}else m=0,d=o;while(!1);Qr(A|0,d|0,l|0)|0,n[k>>2]=(n[k>>2]|0)+l,A=m+l|0}while(!1);return A|0}function w6e(o){o=o|0;var l=0,u=0;return l=o+74|0,u=s[l>>0]|0,s[l>>0]=u+255|u,l=n[o>>2]|0,l&8?(n[o>>2]=l|32,o=-1):(n[o+8>>2]=0,n[o+4>>2]=0,u=n[o+44>>2]|0,n[o+28>>2]=u,n[o+20>>2]=u,n[o+16>>2]=u+(n[o+48>>2]|0),o=0),o|0}function $n(o,l){o=y(o),l=y(l);var u=0,A=0;u=wX(o)|0;do if((u&2147483647)>>>0<=2139095040){if(A=wX(l)|0,(A&2147483647)>>>0<=2139095040)if((A^u|0)<0){o=(u|0)<0?l:o;break}else{o=o<l?l:o;break}}else o=l;while(!1);return y(o)}function wX(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function pd(o,l){o=y(o),l=y(l);var u=0,A=0;u=BX(o)|0;do if((u&2147483647)>>>0<=2139095040){if(A=BX(l)|0,(A&2147483647)>>>0<=2139095040)if((A^u|0)<0){o=(u|0)<0?o:l;break}else{o=o<l?o:l;break}}else o=l;while(!1);return y(o)}function BX(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function cU(o,l){o=y(o),l=y(l);var u=0,A=0,d=0,m=0,B=0,k=0,R=0,M=0;m=(h[S>>2]=o,n[S>>2]|0),k=(h[S>>2]=l,n[S>>2]|0),u=m>>>23&255,B=k>>>23&255,R=m&-2147483648,d=k<<1;e:do if(d|0&&!((u|0)==255|((B6e(l)|0)&2147483647)>>>0>2139095040)){if(A=m<<1,A>>>0<=d>>>0)return l=y(o*y(0)),y((A|0)==(d|0)?l:o);if(u)A=m&8388607|8388608;else{if(u=m<<9,(u|0)>-1){A=u,u=0;do u=u+-1|0,A=A<<1;while((A|0)>-1)}else u=0;A=m<<1-u}if(B)k=k&8388607|8388608;else{if(m=k<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,k=k<<1-d}d=A-k|0,m=(d|0)>-1;t:do if((u|0)>(B|0)){for(;;){if(m)if(d)A=d;else break;if(A=A<<1,u=u+-1|0,d=A-k|0,m=(d|0)>-1,(u|0)<=(B|0))break t}l=y(o*y(0));break e}while(!1);if(m)if(d)A=d;else{l=y(o*y(0));break}if(A>>>0<8388608)do A=A<<1,u=u+-1|0;while(A>>>0<8388608);(u|0)>0?u=A+-8388608|u<<23:u=A>>>(1-u|0),l=(n[S>>2]=u|R,y(h[S>>2]))}else M=3;while(!1);return(M|0)==3&&(l=y(o*l),l=y(l/l)),y(l)}function B6e(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function v6e(o,l){return o=o|0,l=l|0,dX(n[582]|0,o,l)|0}function sn(o){o=o|0,Nt()}function $y(o){o=o|0}function S6e(o,l){return o=o|0,l=l|0,0}function D6e(o){return o=o|0,(vX(o+4|0)|0)==-1?(ip[n[(n[o>>2]|0)+8>>2]&127](o),o=1):o=0,o|0}function vX(o){o=o|0;var l=0;return l=n[o>>2]|0,n[o>>2]=l+-1,l+-1|0}function Gh(o){o=o|0,D6e(o)|0&&P6e(o)}function P6e(o){o=o|0;var l=0;l=o+8|0,n[l>>2]|0&&(vX(l)|0)!=-1||ip[n[(n[o>>2]|0)+16>>2]&127](o)}function Kt(o){o=o|0;var l=0;for(l=o|0?o:1;o=_b(l)|0,!(o|0);){if(o=x6e()|0,!o){o=0;break}UX[o&0]()}return o|0}function SX(o){return o=o|0,Kt(o)|0}function It(o){o=o|0,Hb(o)}function b6e(o){o=o|0,(s[o+11>>0]|0)<0&&It(n[o>>2]|0)}function x6e(){var o=0;return o=n[2923]|0,n[2923]=o+0,o|0}function k6e(){}function Gb(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,A=l-A-(u>>>0>o>>>0|0)>>>0,ye=A,o-u>>>0|0|0}function uU(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,u=o+u>>>0,ye=l+A+(u>>>0<o>>>0|0)>>>0,u|0|0}function eE(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;if(m=o+u|0,l=l&255,(u|0)>=67){for(;o&3;)s[o>>0]=l,o=o+1|0;for(A=m&-4|0,d=A-64|0,B=l|l<<8|l<<16|l<<24;(o|0)<=(d|0);)n[o>>2]=B,n[o+4>>2]=B,n[o+8>>2]=B,n[o+12>>2]=B,n[o+16>>2]=B,n[o+20>>2]=B,n[o+24>>2]=B,n[o+28>>2]=B,n[o+32>>2]=B,n[o+36>>2]=B,n[o+40>>2]=B,n[o+44>>2]=B,n[o+48>>2]=B,n[o+52>>2]=B,n[o+56>>2]=B,n[o+60>>2]=B,o=o+64|0;for(;(o|0)<(A|0);)n[o>>2]=B,o=o+4|0}for(;(o|0)<(m|0);)s[o>>0]=l,o=o+1|0;return m-u|0}function DX(o,l,u){return o=o|0,l=l|0,u=u|0,(u|0)<32?(ye=l<<u|(o&(1<<u)-1<<32-u)>>>32-u,o<<u):(ye=o<<u-32,0)}function qb(o,l,u){return o=o|0,l=l|0,u=u|0,(u|0)<32?(ye=l>>>u,o>>>u|(l&(1<<u)-1)<<32-u):(ye=0,l>>>u-32|0)}function Qr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;if((u|0)>=8192)return OA(o|0,l|0,u|0)|0;if(m=o|0,d=o+u|0,(o&3)==(l&3)){for(;o&3;){if(!u)return m|0;s[o>>0]=s[l>>0]|0,o=o+1|0,l=l+1|0,u=u-1|0}for(u=d&-4|0,A=u-64|0;(o|0)<=(A|0);)n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],n[o+12>>2]=n[l+12>>2],n[o+16>>2]=n[l+16>>2],n[o+20>>2]=n[l+20>>2],n[o+24>>2]=n[l+24>>2],n[o+28>>2]=n[l+28>>2],n[o+32>>2]=n[l+32>>2],n[o+36>>2]=n[l+36>>2],n[o+40>>2]=n[l+40>>2],n[o+44>>2]=n[l+44>>2],n[o+48>>2]=n[l+48>>2],n[o+52>>2]=n[l+52>>2],n[o+56>>2]=n[l+56>>2],n[o+60>>2]=n[l+60>>2],o=o+64|0,l=l+64|0;for(;(o|0)<(u|0);)n[o>>2]=n[l>>2],o=o+4|0,l=l+4|0}else for(u=d-4|0;(o|0)<(u|0);)s[o>>0]=s[l>>0]|0,s[o+1>>0]=s[l+1>>0]|0,s[o+2>>0]=s[l+2>>0]|0,s[o+3>>0]=s[l+3>>0]|0,o=o+4|0,l=l+4|0;for(;(o|0)<(d|0);)s[o>>0]=s[l>>0]|0,o=o+1|0,l=l+1|0;return m|0}function PX(o){o=o|0;var l=0;return l=s[N+(o&255)>>0]|0,(l|0)<8?l|0:(l=s[N+(o>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=s[N+(o>>16&255)>>0]|0,(l|0)<8?l+16|0:(s[N+(o>>>24)>>0]|0)+24|0))}function bX(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,R=0,M=0,L=0,q=0,ae=0,Ye=0,Le=0;if(L=o,R=l,M=R,B=u,ae=A,k=ae,!M)return m=(d|0)!=0,k?m?(n[d>>2]=o|0,n[d+4>>2]=l&0,ae=0,d=0,ye=ae,d|0):(ae=0,d=0,ye=ae,d|0):(m&&(n[d>>2]=(L>>>0)%(B>>>0),n[d+4>>2]=0),ae=0,d=(L>>>0)/(B>>>0)>>>0,ye=ae,d|0);m=(k|0)==0;do if(B){if(!m){if(m=(P(k|0)|0)-(P(M|0)|0)|0,m>>>0<=31){q=m+1|0,k=31-m|0,l=m-31>>31,B=q,o=L>>>(q>>>0)&l|M<<k,l=M>>>(q>>>0)&l,m=0,k=L<<k;break}return d?(n[d>>2]=o|0,n[d+4>>2]=R|l&0,ae=0,d=0,ye=ae,d|0):(ae=0,d=0,ye=ae,d|0)}if(m=B-1|0,m&B|0){k=(P(B|0)|0)+33-(P(M|0)|0)|0,Le=64-k|0,q=32-k|0,R=q>>31,Ye=k-32|0,l=Ye>>31,B=k,o=q-1>>31&M>>>(Ye>>>0)|(M<<q|L>>>(k>>>0))&l,l=l&M>>>(k>>>0),m=L<<Le&R,k=(M<<Le|L>>>(Ye>>>0))&R|L<<q&k-33>>31;break}return d|0&&(n[d>>2]=m&L,n[d+4>>2]=0),(B|0)==1?(Ye=R|l&0,Le=o|0|0,ye=Ye,Le|0):(Le=PX(B|0)|0,Ye=M>>>(Le>>>0)|0,Le=M<<32-Le|L>>>(Le>>>0)|0,ye=Ye,Le|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),Ye=0,Le=(M>>>0)/(B>>>0)>>>0,ye=Ye,Le|0;if(!L)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(k>>>0)),Ye=0,Le=(M>>>0)/(k>>>0)>>>0,ye=Ye,Le|0;if(m=k-1|0,!(m&k))return d|0&&(n[d>>2]=o|0,n[d+4>>2]=m&M|l&0),Ye=0,Le=M>>>((PX(k|0)|0)>>>0),ye=Ye,Le|0;if(m=(P(k|0)|0)-(P(M|0)|0)|0,m>>>0<=30){l=m+1|0,k=31-m|0,B=l,o=M<<k|L>>>(l>>>0),l=M>>>(l>>>0),m=0,k=L<<k;break}return d?(n[d>>2]=o|0,n[d+4>>2]=R|l&0,Ye=0,Le=0,ye=Ye,Le|0):(Ye=0,Le=0,ye=Ye,Le|0)}while(!1);if(!B)M=k,R=0,k=0;else{q=u|0|0,L=ae|A&0,M=uU(q|0,L|0,-1,-1)|0,u=ye,R=k,k=0;do A=R,R=m>>>31|R<<1,m=k|m<<1,A=o<<1|A>>>31|0,ae=o>>>31|l<<1|0,Gb(M|0,u|0,A|0,ae|0)|0,Le=ye,Ye=Le>>31|((Le|0)<0?-1:0)<<1,k=Ye&1,o=Gb(A|0,ae|0,Ye&q|0,(((Le|0)<0?-1:0)>>31|((Le|0)<0?-1:0)<<1)&L|0)|0,l=ye,B=B-1|0;while(B|0);M=R,R=0}return B=0,d|0&&(n[d>>2]=o,n[d+4>>2]=l),Ye=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|R,Le=(m<<1|0)&-2|k,ye=Ye,Le|0}function fU(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,bX(o,l,u,A,0)|0}function qh(o){o=o|0;var l=0,u=0;return u=o+15&-16|0,l=n[C>>2]|0,o=l+u|0,(u|0)>0&(o|0)<(l|0)|(o|0)<0?(oe()|0,fu(12),-1):(n[C>>2]=o,(o|0)>($()|0)&&!(Z()|0)?(n[C>>2]=l,fu(12),-1):l|0)}function Q2(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;if((l|0)<(o|0)&(o|0)<(l+u|0)){for(A=o,l=l+u|0,o=o+u|0;(u|0)>0;)o=o-1|0,l=l-1|0,u=u-1|0,s[o>>0]=s[l>>0]|0;o=A}else Qr(o,l,u)|0;return o|0}function AU(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;return m=I,I=I+16|0,d=m|0,bX(o,l,u,A,d)|0,I=m,ye=n[d+4>>2]|0,n[d>>2]|0|0}function xX(o){return o=o|0,(o&255)<<24|(o>>8&255)<<16|(o>>16&255)<<8|o>>>24|0}function Q6e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,kX[o&1](l|0,u|0,A|0,d|0,m|0)}function R6e(o,l,u){o=o|0,l=l|0,u=y(u),QX[o&1](l|0,y(u))}function T6e(o,l,u){o=o|0,l=l|0,u=+u,RX[o&31](l|0,+u)}function F6e(o,l,u,A){return o=o|0,l=l|0,u=y(u),A=y(A),y(TX[o&0](l|0,y(u),y(A)))}function N6e(o,l){o=o|0,l=l|0,ip[o&127](l|0)}function O6e(o,l,u){o=o|0,l=l|0,u=u|0,sp[o&31](l|0,u|0)}function L6e(o,l){return o=o|0,l=l|0,gd[o&31](l|0)|0}function M6e(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0,FX[o&1](l|0,+u,+A,d|0)}function U6e(o,l,u,A){o=o|0,l=l|0,u=+u,A=+A,EGe[o&1](l|0,+u,+A)}function _6e(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,Yb[o&7](l|0,u|0,A|0)|0}function H6e(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,+IGe[o&1](l|0,u|0,A|0)}function j6e(o,l){return o=o|0,l=l|0,+NX[o&15](l|0)}function G6e(o,l,u){return o=o|0,l=l|0,u=+u,CGe[o&1](l|0,+u)|0}function q6e(o,l,u){return o=o|0,l=l|0,u=u|0,hU[o&15](l|0,u|0)|0}function W6e(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=+A,d=+d,m=m|0,wGe[o&1](l|0,u|0,+A,+d,m|0)}function Y6e(o,l,u,A,d,m,B){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0,BGe[o&1](l|0,u|0,A|0,d|0,m|0,B|0)}function V6e(o,l,u){return o=o|0,l=l|0,u=u|0,+OX[o&7](l|0,u|0)}function J6e(o){return o=o|0,Vb[o&7]()|0}function K6e(o,l,u,A,d,m){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,LX[o&1](l|0,u|0,A|0,d|0,m|0)|0}function z6e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=+d,vGe[o&1](l|0,u|0,A|0,+d)}function Z6e(o,l,u,A,d,m,B){o=o|0,l=l|0,u=u|0,A=y(A),d=d|0,m=y(m),B=B|0,MX[o&1](l|0,u|0,y(A),d|0,y(m),B|0)}function X6e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,F2[o&15](l|0,u|0,A|0)}function $6e(o){o=o|0,UX[o&0]()}function eGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A,_X[o&15](l|0,u|0,+A)}function tGe(o,l,u){return o=o|0,l=+l,u=+u,SGe[o&1](+l,+u)|0}function rGe(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,gU[o&15](l|0,u|0,A|0,d|0)}function nGe(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,F(0)}function iGe(o,l){o=o|0,l=y(l),F(1)}function Za(o,l){o=o|0,l=+l,F(2)}function sGe(o,l,u){return o=o|0,l=y(l),u=y(u),F(3),$e}function wr(o){o=o|0,F(4)}function R2(o,l){o=o|0,l=l|0,F(5)}function Ol(o){return o=o|0,F(6),0}function oGe(o,l,u,A){o=o|0,l=+l,u=+u,A=A|0,F(7)}function aGe(o,l,u){o=o|0,l=+l,u=+u,F(8)}function lGe(o,l,u){return o=o|0,l=l|0,u=u|0,F(9),0}function cGe(o,l,u){return o=o|0,l=l|0,u=u|0,F(10),0}function hd(o){return o=o|0,F(11),0}function uGe(o,l){return o=o|0,l=+l,F(12),0}function T2(o,l){return o=o|0,l=l|0,F(13),0}function fGe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0,F(14)}function AGe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,F(15)}function pU(o,l){return o=o|0,l=l|0,F(16),0}function pGe(){return F(17),0}function hGe(o,l,u,A,d){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,F(18),0}function gGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A,F(19)}function dGe(o,l,u,A,d,m){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=m|0,F(20)}function Wb(o,l,u){o=o|0,l=l|0,u=u|0,F(21)}function mGe(){F(22)}function tE(o,l,u){o=o|0,l=l|0,u=+u,F(23)}function yGe(o,l){return o=+o,l=+l,F(24),0}function rE(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,F(25)}var kX=[nGe,h3e],QX=[iGe,Ry],RX=[Za,Xg,Fh,h2,g2,d2,m2,Pf,_y,y2,bf,$g,ed,E2,I2,wu,td,C2,Hy,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za],TX=[sGe],ip=[wr,$y,Jke,Kke,zke,SFe,DFe,PFe,G_e,q_e,W_e,t3e,r3e,n3e,Bje,vje,Sje,Bl,Zg,u2,sr,hc,xb,kb,Mke,iQe,dQe,FQe,zQe,pRe,kRe,WRe,oTe,wTe,MTe,eFe,dFe,qFe,oNe,wNe,MNe,eOe,dOe,NOe,zOe,uLe,DLe,db,nMe,EMe,MMe,rUe,mUe,MUe,JUe,ZUe,h_e,m_e,F_e,V_e,z_e,p4e,Q4e,dz,A8e,G8e,iHe,EHe,HHe,rje,pje,dje,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr],sp=[R2,Ly,VL,f2,A2,xr,so,zi,Ns,ws,Uy,Th,B2,Cb,id,zL,ZL,wb,Bb,eM,xf,ne,UOe,$Oe,oUe,g8e,U4e,eX,R2,R2,R2,R2],gd=[Ol,e6e,Ny,nd,Gy,ga,mb,Nh,w2,KL,Eb,qy,vb,tM,Vy,xLe,CUe,d4e,E8e,Tl,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol,Ol],FX=[oGe,oM],EGe=[aGe,L_e],Yb=[lGe,hX,t6e,i6e,mRe,JFe,aMe,BHe],IGe=[cGe,jTe],NX=[hd,Oh,Ib,$A,aM,v,D,Q,H,V,hd,hd,hd,hd,hd,hd],CGe=[uGe,WUe],hU=[T2,S6e,Sb,jke,MQe,TRe,JRe,IFe,uNe,hLe,Ty,lHe,T2,T2,T2,T2],wGe=[fGe,IQe],BGe=[AGe,WHe],OX=[pU,XL,Se,_e,pt,iFe,pU,pU],Vb=[pGe,Wt,Fy,gb,t_e,C_e,e4e,Ije],LX=[hGe,Sy],vGe=[gGe,jNe],MX=[dGe,rM],F2=[Wb,ko,yb,$L,vu,eRe,cTe,iOe,IOe,YL,L3e,V8e,oje,Wb,Wb,Wb],UX=[mGe],_X=[tE,JL,My,XA,p2,Bu,jy,rd,DNe,BMe,HUe,tE,tE,tE,tE,tE],SGe=[yGe,H_e],gU=[rE,DTe,LLe,jMe,kUe,a_e,P_e,a4e,O4e,S8e,Qje,rE,rE,rE,rE,rE];return{_llvm_bswap_i32:xX,dynCall_idd:tGe,dynCall_i:J6e,_i64Subtract:Gb,___udivdi3:fU,dynCall_vif:R6e,setThrew:ca,dynCall_viii:X6e,_bitshift64Lshr:qb,_bitshift64Shl:DX,dynCall_vi:N6e,dynCall_viiddi:W6e,dynCall_diii:H6e,dynCall_iii:q6e,_memset:eE,_sbrk:qh,_memcpy:Qr,__GLOBAL__sub_I_Yoga_cpp:a2,dynCall_vii:O6e,___uremdi3:AU,dynCall_vid:T6e,stackAlloc:Ua,_nbind_init:jje,getTempRet0:MA,dynCall_di:j6e,dynCall_iid:G6e,setTempRet0:LA,_i64Add:uU,dynCall_fiff:F6e,dynCall_iiii:_6e,_emscripten_get_global_libc:$je,dynCall_viid:eGe,dynCall_viiid:z6e,dynCall_viififi:Z6e,dynCall_ii:L6e,__GLOBAL__sub_I_Binding_cc:i8e,dynCall_viiii:rGe,dynCall_iiiiii:K6e,stackSave:hf,dynCall_viiiii:Q6e,__GLOBAL__sub_I_nbind_cc:Sr,dynCall_vidd:U6e,_free:Hb,runPostSets:k6e,dynCall_viiiiii:Y6e,establishStackSpace:wn,_memmove:Q2,stackRestore:lc,_malloc:_b,__GLOBAL__sub_I_common_cc:v4e,dynCall_viddi:M6e,dynCall_dii:V6e,dynCall_v:$6e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+t+\")\",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function s(){for(var p=0;p<3;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),\"i8\",ALLOC_NORMAL)];s();for(var n=0;n<r-1;n=n+1)a.push(allocate(intArrayFromString(e[n]),\"i8\",ALLOC_NORMAL)),s();a.push(0),a=allocate(a,\"i32\",ALLOC_NORMAL);try{var c=Module._main(r,a,0);exit(c,!0)}catch(p){if(p instanceof ExitStatus)return;if(p==\"SimulateInfiniteLoop\"){Module.noExitRuntime=!0;return}else{var f=p;p&&typeof p==\"object\"&&p.stack&&(f=[p,p.stack]),Module.printErr(\"exception thrown: \"+f),Module.quit(1,p)}}finally{calledMain=!0}};function run(t){if(t=t||Module.arguments,preloadStartTime===null&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){Module.setStatus(\"\")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t=\"\",ABORT=!0,EXITSTATUS=1;var e=`\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r=\"abort(\"+t+\") at \"+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(s){r=s(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit==\"function\"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var Fm=_((cKt,bwe)=>{\"use strict\";var Ipt=Dwe(),Cpt=Pwe(),j9=!1,G9=null;Cpt({},function(t,e){if(!j9){if(j9=!0,t)throw t;G9=e}});if(!j9)throw new Error(\"Failed to load the yoga module - it needed to be loaded synchronously, but didn't\");bwe.exports=Ipt(G9.bind,G9.lib)});var W9=_((uKt,q9)=>{\"use strict\";var xwe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);q9.exports=xwe;q9.exports.default=xwe});var Qwe=_((fKt,kwe)=>{\"use strict\";kwe.exports=function(){return/\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g}});var GS=_((AKt,Y9)=>{\"use strict\";var wpt=dk(),Bpt=W9(),vpt=Qwe(),Rwe=t=>{if(typeof t!=\"string\"||t.length===0||(t=wpt(t),t.length===0))return 0;t=t.replace(vpt(),\"  \");let e=0;for(let r=0;r<t.length;r++){let s=t.codePointAt(r);s<=31||s>=127&&s<=159||s>=768&&s<=879||(s>65535&&r++,e+=Bpt(s)?2:1)}return e};Y9.exports=Rwe;Y9.exports.default=Rwe});var J9=_((pKt,V9)=>{\"use strict\";var Spt=GS(),Twe=t=>{let e=0;for(let r of t.split(`\n`))e=Math.max(e,Spt(r));return e};V9.exports=Twe;V9.exports.default=Twe});var Fwe=_(qS=>{\"use strict\";var Dpt=qS&&qS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qS,\"__esModule\",{value:!0});var Ppt=Dpt(J9()),K9={};qS.default=t=>{if(t.length===0)return{width:0,height:0};if(K9[t])return K9[t];let e=Ppt.default(t),r=t.split(`\n`).length;return K9[t]={width:e,height:r},{width:e,height:r}}});var Nwe=_(WS=>{\"use strict\";var bpt=WS&&WS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(WS,\"__esModule\",{value:!0});var Pn=bpt(Fm()),xpt=(t,e)=>{\"position\"in e&&t.setPositionType(e.position===\"absolute\"?Pn.default.POSITION_TYPE_ABSOLUTE:Pn.default.POSITION_TYPE_RELATIVE)},kpt=(t,e)=>{\"marginLeft\"in e&&t.setMargin(Pn.default.EDGE_START,e.marginLeft||0),\"marginRight\"in e&&t.setMargin(Pn.default.EDGE_END,e.marginRight||0),\"marginTop\"in e&&t.setMargin(Pn.default.EDGE_TOP,e.marginTop||0),\"marginBottom\"in e&&t.setMargin(Pn.default.EDGE_BOTTOM,e.marginBottom||0)},Qpt=(t,e)=>{\"paddingLeft\"in e&&t.setPadding(Pn.default.EDGE_LEFT,e.paddingLeft||0),\"paddingRight\"in e&&t.setPadding(Pn.default.EDGE_RIGHT,e.paddingRight||0),\"paddingTop\"in e&&t.setPadding(Pn.default.EDGE_TOP,e.paddingTop||0),\"paddingBottom\"in e&&t.setPadding(Pn.default.EDGE_BOTTOM,e.paddingBottom||0)},Rpt=(t,e)=>{var r;\"flexGrow\"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),\"flexShrink\"in e&&t.setFlexShrink(typeof e.flexShrink==\"number\"?e.flexShrink:1),\"flexDirection\"in e&&(e.flexDirection===\"row\"&&t.setFlexDirection(Pn.default.FLEX_DIRECTION_ROW),e.flexDirection===\"row-reverse\"&&t.setFlexDirection(Pn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection===\"column\"&&t.setFlexDirection(Pn.default.FLEX_DIRECTION_COLUMN),e.flexDirection===\"column-reverse\"&&t.setFlexDirection(Pn.default.FLEX_DIRECTION_COLUMN_REVERSE)),\"flexBasis\"in e&&(typeof e.flexBasis==\"number\"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis==\"string\"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),\"alignItems\"in e&&((e.alignItems===\"stretch\"||!e.alignItems)&&t.setAlignItems(Pn.default.ALIGN_STRETCH),e.alignItems===\"flex-start\"&&t.setAlignItems(Pn.default.ALIGN_FLEX_START),e.alignItems===\"center\"&&t.setAlignItems(Pn.default.ALIGN_CENTER),e.alignItems===\"flex-end\"&&t.setAlignItems(Pn.default.ALIGN_FLEX_END)),\"alignSelf\"in e&&((e.alignSelf===\"auto\"||!e.alignSelf)&&t.setAlignSelf(Pn.default.ALIGN_AUTO),e.alignSelf===\"flex-start\"&&t.setAlignSelf(Pn.default.ALIGN_FLEX_START),e.alignSelf===\"center\"&&t.setAlignSelf(Pn.default.ALIGN_CENTER),e.alignSelf===\"flex-end\"&&t.setAlignSelf(Pn.default.ALIGN_FLEX_END)),\"justifyContent\"in e&&((e.justifyContent===\"flex-start\"||!e.justifyContent)&&t.setJustifyContent(Pn.default.JUSTIFY_FLEX_START),e.justifyContent===\"center\"&&t.setJustifyContent(Pn.default.JUSTIFY_CENTER),e.justifyContent===\"flex-end\"&&t.setJustifyContent(Pn.default.JUSTIFY_FLEX_END),e.justifyContent===\"space-between\"&&t.setJustifyContent(Pn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent===\"space-around\"&&t.setJustifyContent(Pn.default.JUSTIFY_SPACE_AROUND))},Tpt=(t,e)=>{var r,s;\"width\"in e&&(typeof e.width==\"number\"?t.setWidth(e.width):typeof e.width==\"string\"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),\"height\"in e&&(typeof e.height==\"number\"?t.setHeight(e.height):typeof e.height==\"string\"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),\"minWidth\"in e&&(typeof e.minWidth==\"string\"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),\"minHeight\"in e&&(typeof e.minHeight==\"string\"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((s=e.minHeight)!==null&&s!==void 0?s:0))},Fpt=(t,e)=>{\"display\"in e&&t.setDisplay(e.display===\"flex\"?Pn.default.DISPLAY_FLEX:Pn.default.DISPLAY_NONE)},Npt=(t,e)=>{if(\"borderStyle\"in e){let r=typeof e.borderStyle==\"string\"?1:0;t.setBorder(Pn.default.EDGE_TOP,r),t.setBorder(Pn.default.EDGE_BOTTOM,r),t.setBorder(Pn.default.EDGE_LEFT,r),t.setBorder(Pn.default.EDGE_RIGHT,r)}};WS.default=(t,e={})=>{xpt(t,e),kpt(t,e),Qpt(t,e),Rpt(t,e),Tpt(t,e),Fpt(t,e),Npt(t,e)}});var Mwe=_((dKt,Lwe)=>{\"use strict\";var YS=GS(),Opt=dk(),Lpt=sk(),Z9=new Set([\"\\x1B\",\"\\x9B\"]),Mpt=39,Owe=t=>`${Z9.values().next().value}[${t}m`,Upt=t=>t.split(\" \").map(e=>YS(e)),z9=(t,e,r)=>{let s=[...e],a=!1,n=YS(Opt(t[t.length-1]));for(let[c,f]of s.entries()){let p=YS(f);if(n+p<=r?t[t.length-1]+=f:(t.push(f),n=0),Z9.has(f))a=!0;else if(a&&f===\"m\"){a=!1;continue}a||(n+=p,n===r&&c<s.length-1&&(t.push(\"\"),n=0))}!n&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},_pt=t=>{let e=t.split(\" \"),r=e.length;for(;r>0&&!(YS(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(\" \")+e.slice(r).join(\"\")},Hpt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()===\"\")return\"\";let s=\"\",a=\"\",n,c=Upt(t),f=[\"\"];for(let[p,h]of t.split(\" \").entries()){r.trim!==!1&&(f[f.length-1]=f[f.length-1].trimLeft());let E=YS(f[f.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(f.push(\"\"),E=0),(E>0||r.trim===!1)&&(f[f.length-1]+=\" \",E++)),r.hard&&c[p]>e){let C=e-E,S=1+Math.floor((c[p]-C-1)/e);Math.floor((c[p]-1)/e)<S&&f.push(\"\"),z9(f,h,e);continue}if(E+c[p]>e&&E>0&&c[p]>0){if(r.wordWrap===!1&&E<e){z9(f,h,e);continue}f.push(\"\")}if(E+c[p]>e&&r.wordWrap===!1){z9(f,h,e);continue}f[f.length-1]+=h}r.trim!==!1&&(f=f.map(_pt)),s=f.join(`\n`);for(let[p,h]of[...s].entries()){if(a+=h,Z9.has(h)){let C=parseFloat(/\\d[^m]*/.exec(s.slice(p,p+4)));n=C===Mpt?null:C}let E=Lpt.codes.get(Number(n));n&&E&&(s[p+1]===`\n`?a+=Owe(E):h===`\n`&&(a+=Owe(n)))}return a};Lwe.exports=(t,e,r)=>String(t).normalize().replace(/\\r\\n/g,`\n`).split(`\n`).map(s=>Hpt(s,e,r)).join(`\n`)});var Hwe=_((mKt,_we)=>{\"use strict\";var Uwe=\"[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\",jpt=t=>t&&t.exact?new RegExp(`^${Uwe}$`):new RegExp(Uwe,\"g\");_we.exports=jpt});var X9=_((yKt,Wwe)=>{\"use strict\";var Gpt=W9(),qpt=Hwe(),jwe=sk(),qwe=[\"\\x1B\",\"\\x9B\"],FF=t=>`${qwe[0]}[${t}m`,Gwe=(t,e,r)=>{let s=[];t=[...t];for(let a of t){let n=a;a.match(\";\")&&(a=a.split(\";\")[0][0]+\"0\");let c=jwe.codes.get(parseInt(a,10));if(c){let f=t.indexOf(c.toString());f>=0?t.splice(f,1):s.push(FF(e?c:n))}else if(e){s.push(FF(0));break}else s.push(FF(n))}if(e&&(s=s.filter((a,n)=>s.indexOf(a)===n),r!==void 0)){let a=FF(jwe.codes.get(parseInt(r,10)));s=s.reduce((n,c)=>c===a?[c,...n]:[...n,c],[])}return s.join(\"\")};Wwe.exports=(t,e,r)=>{let s=[...t.normalize()],a=[];r=typeof r==\"number\"?r:s.length;let n=!1,c,f=0,p=\"\";for(let[h,E]of s.entries()){let C=!1;if(qwe.includes(E)){let S=/\\d[^m]*/.exec(t.slice(h,h+18));c=S&&S.length>0?S[0]:void 0,f<r&&(n=!0,c!==void 0&&a.push(c))}else n&&E===\"m\"&&(n=!1,C=!0);if(!n&&!C&&++f,!qpt({exact:!0}).test(E)&&Gpt(E.codePointAt())&&++f,f>e&&f<=r)p+=E;else if(f===e&&!n&&c!==void 0)p=Gwe(a);else if(f>=r){p+=Gwe(a,!0,c);break}}return p}});var Vwe=_((EKt,Ywe)=>{\"use strict\";var $0=X9(),Wpt=GS();function NF(t,e,r){if(t.charAt(e)===\" \")return e;for(let s=1;s<=3;s++)if(r){if(t.charAt(e+s)===\" \")return e+s}else if(t.charAt(e-s)===\" \")return e-s;return e}Ywe.exports=(t,e,r)=>{r={position:\"end\",preferTruncationOnSpace:!1,...r};let{position:s,space:a,preferTruncationOnSpace:n}=r,c=\"\\u2026\",f=1;if(typeof t!=\"string\")throw new TypeError(`Expected \\`input\\` to be a string, got ${typeof t}`);if(typeof e!=\"number\")throw new TypeError(`Expected \\`columns\\` to be a number, got ${typeof e}`);if(e<1)return\"\";if(e===1)return c;let p=Wpt(t);if(p<=e)return t;if(s===\"start\"){if(n){let h=NF(t,p-e+1,!0);return c+$0(t,h,p).trim()}return a===!0&&(c+=\" \",f=2),c+$0(t,p-e+f,p)}if(s===\"middle\"){a===!0&&(c=\" \"+c+\" \",f=3);let h=Math.floor(e/2);if(n){let E=NF(t,h),C=NF(t,p-(e-h)+1,!0);return $0(t,0,E)+c+$0(t,C,p).trim()}return $0(t,0,h)+c+$0(t,p-(e-h)+f,p)}if(s===\"end\"){if(n){let h=NF(t,e-1);return $0(t,0,h)+c}return a===!0&&(c=\" \"+c,f=2),$0(t,0,e-f)+c}throw new Error(`Expected \\`options.position\\` to be either \\`start\\`, \\`middle\\` or \\`end\\`, got ${s}`)}});var eW=_(VS=>{\"use strict\";var Jwe=VS&&VS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(VS,\"__esModule\",{value:!0});var Ypt=Jwe(Mwe()),Vpt=Jwe(Vwe()),$9={};VS.default=(t,e,r)=>{let s=t+String(e)+String(r);if($9[s])return $9[s];let a=t;if(r===\"wrap\"&&(a=Ypt.default(t,e,{trim:!1,hard:!0})),r.startsWith(\"truncate\")){let n=\"end\";r===\"truncate-middle\"&&(n=\"middle\"),r===\"truncate-start\"&&(n=\"start\"),a=Vpt.default(t,e,{position:n})}return $9[s]=a,a}});var rW=_(tW=>{\"use strict\";Object.defineProperty(tW,\"__esModule\",{value:!0});var Kwe=t=>{let e=\"\";if(t.childNodes.length>0)for(let r of t.childNodes){let s=\"\";r.nodeName===\"#text\"?s=r.nodeValue:((r.nodeName===\"ink-text\"||r.nodeName===\"ink-virtual-text\")&&(s=Kwe(r)),s.length>0&&typeof r.internal_transform==\"function\"&&(s=r.internal_transform(s))),e+=s}return e};tW.default=Kwe});var nW=_(Pi=>{\"use strict\";var JS=Pi&&Pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pi,\"__esModule\",{value:!0});Pi.setTextNodeValue=Pi.createTextNode=Pi.setStyle=Pi.setAttribute=Pi.removeChildNode=Pi.insertBeforeNode=Pi.appendChildNode=Pi.createNode=Pi.TEXT_NAME=void 0;var Jpt=JS(Fm()),zwe=JS(Fwe()),Kpt=JS(Nwe()),zpt=JS(eW()),Zpt=JS(rW());Pi.TEXT_NAME=\"#text\";Pi.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t===\"ink-virtual-text\"?void 0:Jpt.default.Node.create()};return t===\"ink-text\"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(Xpt.bind(null,r))),r};Pi.appendChildNode=(t,e)=>{var r;e.parentNode&&Pi.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName===\"ink-text\"||t.nodeName===\"ink-virtual-text\")&&OF(t)};Pi.insertBeforeNode=(t,e,r)=>{var s,a;e.parentNode&&Pi.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((s=t.yogaNode)===null||s===void 0||s.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName===\"ink-text\"||t.nodeName===\"ink-virtual-text\")&&OF(t)};Pi.removeChildNode=(t,e)=>{var r,s;e.yogaNode&&((s=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||s===void 0||s.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName===\"ink-text\"||t.nodeName===\"ink-virtual-text\")&&OF(t)};Pi.setAttribute=(t,e,r)=>{t.attributes[e]=r};Pi.setStyle=(t,e)=>{t.style=e,t.yogaNode&&Kpt.default(t.yogaNode,e)};Pi.createTextNode=t=>{let e={nodeName:\"#text\",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return Pi.setTextNodeValue(e,t),e};var Xpt=function(t,e){var r,s;let a=t.nodeName===\"#text\"?t.nodeValue:Zpt.default(t),n=zwe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let c=(s=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&s!==void 0?s:\"wrap\",f=zpt.default(a,e,c);return zwe.default(f)},Zwe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:Zwe(t.parentNode)},OF=t=>{let e=Zwe(t);e?.markDirty()};Pi.setTextNodeValue=(t,e)=>{typeof e!=\"string\"&&(e=String(e)),t.nodeValue=e,OF(t)}});var r1e=_(KS=>{\"use strict\";var t1e=KS&&KS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(KS,\"__esModule\",{value:!0});var Xwe=U9(),$pt=t1e(Iwe()),$we=t1e(Fm()),ea=nW(),e1e=t=>{t?.unsetMeasureFunc(),t?.freeRecursive()};KS.default=$pt.default({schedulePassiveEffects:Xwe.unstable_scheduleCallback,cancelPassiveEffects:Xwe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender==\"function\"&&t.onImmediateRender();return}typeof t.onRender==\"function\"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,s=e===\"ink-text\"||e===\"ink-virtual-text\";return r===s?t:{isInsideText:s}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,s)=>{if(s.isInsideText&&t===\"ink-box\")throw new Error(\"<Box> can\\u2019t be nested inside <Text> component\");let a=t===\"ink-text\"&&s.isInsideText?\"ink-virtual-text\":t,n=ea.createNode(a);for(let[c,f]of Object.entries(e))c!==\"children\"&&(c===\"style\"?ea.setStyle(n,f):c===\"internal_transform\"?n.internal_transform=f:c===\"internal_static\"?n.internal_static=!0:ea.setAttribute(n,c,f));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string \"${t}\" must be rendered inside <Text> component`);return ea.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{ea.setTextNodeValue(t,\"\")},unhideTextInstance:(t,e)=>{ea.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay($we.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay($we.default.DISPLAY_FLEX)},appendInitialChild:ea.appendChildNode,appendChild:ea.appendChildNode,insertBefore:ea.insertBeforeNode,finalizeInitialChildren:(t,e,r,s)=>(t.internal_static&&(s.isStaticDirty=!0,s.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:ea.appendChildNode,insertInContainerBefore:ea.insertBeforeNode,removeChildFromContainer:(t,e)=>{ea.removeChildNode(t,e),e1e(e.yogaNode)},prepareUpdate:(t,e,r,s,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},c=Object.keys(s);for(let f of c)if(s[f]!==r[f]){if(f===\"style\"&&typeof s.style==\"object\"&&typeof r.style==\"object\"){let h=s.style,E=r.style,C=Object.keys(h);for(let S of C){if(S===\"borderStyle\"||S===\"borderColor\"){if(typeof n.style!=\"object\"){let b={};n.style=b}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[S]!==E[S]){if(typeof n.style!=\"object\"){let b={};n.style=b}n.style[S]=h[S]}}continue}n[f]=s[f]}return n},commitUpdate:(t,e)=>{for(let[r,s]of Object.entries(e))r!==\"children\"&&(r===\"style\"?ea.setStyle(t,s):r===\"internal_transform\"?t.internal_transform=s:r===\"internal_static\"?t.internal_static=!0:ea.setAttribute(t,r,s))},commitTextUpdate:(t,e,r)=>{ea.setTextNodeValue(t,r)},removeChild:(t,e)=>{ea.removeChildNode(t,e),e1e(e.yogaNode)}})});var i1e=_((vKt,n1e)=>{\"use strict\";n1e.exports=(t,e=1,r)=>{if(r={indent:\" \",includeEmptyLines:!1,...r},typeof t!=\"string\")throw new TypeError(`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof t}\\``);if(typeof e!=\"number\")throw new TypeError(`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof e}\\``);if(typeof r.indent!=\"string\")throw new TypeError(`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof r.indent}\\``);if(e===0)return t;let s=r.includeEmptyLines?/^/gm:/^(?!\\s*$)/gm;return t.replace(s,r.indent.repeat(e))}});var s1e=_(zS=>{\"use strict\";var eht=zS&&zS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(zS,\"__esModule\",{value:!0});var LF=eht(Fm());zS.default=t=>t.getComputedWidth()-t.getComputedPadding(LF.default.EDGE_LEFT)-t.getComputedPadding(LF.default.EDGE_RIGHT)-t.getComputedBorder(LF.default.EDGE_LEFT)-t.getComputedBorder(LF.default.EDGE_RIGHT)});var o1e=_((DKt,tht)=>{tht.exports={single:{topLeft:\"\\u250C\",topRight:\"\\u2510\",bottomRight:\"\\u2518\",bottomLeft:\"\\u2514\",vertical:\"\\u2502\",horizontal:\"\\u2500\"},double:{topLeft:\"\\u2554\",topRight:\"\\u2557\",bottomRight:\"\\u255D\",bottomLeft:\"\\u255A\",vertical:\"\\u2551\",horizontal:\"\\u2550\"},round:{topLeft:\"\\u256D\",topRight:\"\\u256E\",bottomRight:\"\\u256F\",bottomLeft:\"\\u2570\",vertical:\"\\u2502\",horizontal:\"\\u2500\"},bold:{topLeft:\"\\u250F\",topRight:\"\\u2513\",bottomRight:\"\\u251B\",bottomLeft:\"\\u2517\",vertical:\"\\u2503\",horizontal:\"\\u2501\"},singleDouble:{topLeft:\"\\u2553\",topRight:\"\\u2556\",bottomRight:\"\\u255C\",bottomLeft:\"\\u2559\",vertical:\"\\u2551\",horizontal:\"\\u2500\"},doubleSingle:{topLeft:\"\\u2552\",topRight:\"\\u2555\",bottomRight:\"\\u255B\",bottomLeft:\"\\u2558\",vertical:\"\\u2502\",horizontal:\"\\u2550\"},classic:{topLeft:\"+\",topRight:\"+\",bottomRight:\"+\",bottomLeft:\"+\",vertical:\"|\",horizontal:\"-\"}}});var l1e=_((PKt,iW)=>{\"use strict\";var a1e=o1e();iW.exports=a1e;iW.exports.default=a1e});var sW=_(XS=>{\"use strict\";var rht=XS&&XS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(XS,\"__esModule\",{value:!0});var ZS=rht(RE()),nht=/^(rgb|hsl|hsv|hwb)\\(\\s?(\\d+),\\s?(\\d+),\\s?(\\d+)\\s?\\)$/,iht=/^(ansi|ansi256)\\(\\s?(\\d+)\\s?\\)$/,MF=(t,e)=>e===\"foreground\"?t:\"bg\"+t[0].toUpperCase()+t.slice(1);XS.default=(t,e,r)=>{if(!e)return t;if(e in ZS.default){let a=MF(e,r);return ZS.default[a](t)}if(e.startsWith(\"#\")){let a=MF(\"hex\",r);return ZS.default[a](e)(t)}if(e.startsWith(\"ansi\")){let a=iht.exec(e);if(!a)return t;let n=MF(a[1],r),c=Number(a[2]);return ZS.default[n](c)(t)}if(e.startsWith(\"rgb\")||e.startsWith(\"hsl\")||e.startsWith(\"hsv\")||e.startsWith(\"hwb\")){let a=nht.exec(e);if(!a)return t;let n=MF(a[1],r),c=Number(a[2]),f=Number(a[3]),p=Number(a[4]);return ZS.default[n](c,f,p)(t)}return t}});var u1e=_($S=>{\"use strict\";var c1e=$S&&$S.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($S,\"__esModule\",{value:!0});var sht=c1e(l1e()),oW=c1e(sW());$S.default=(t,e,r,s)=>{if(typeof r.style.borderStyle==\"string\"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),c=r.style.borderColor,f=sht.default[r.style.borderStyle],p=oW.default(f.topLeft+f.horizontal.repeat(a-2)+f.topRight,c,\"foreground\"),h=(oW.default(f.vertical,c,\"foreground\")+`\n`).repeat(n-2),E=oW.default(f.bottomLeft+f.horizontal.repeat(a-2)+f.bottomRight,c,\"foreground\");s.write(t,e,p,{transformers:[]}),s.write(t,e+1,h,{transformers:[]}),s.write(t+a-1,e+1,h,{transformers:[]}),s.write(t,e+n-1,E,{transformers:[]})}}});var A1e=_(eD=>{\"use strict\";var Nm=eD&&eD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(eD,\"__esModule\",{value:!0});var oht=Nm(Fm()),aht=Nm(J9()),lht=Nm(i1e()),cht=Nm(eW()),uht=Nm(s1e()),fht=Nm(rW()),Aht=Nm(u1e()),pht=(t,e)=>{var r;let s=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(s){let a=s.getComputedLeft(),n=s.getComputedTop();e=`\n`.repeat(n)+lht.default(e,a)}return e},f1e=(t,e,r)=>{var s;let{offsetX:a=0,offsetY:n=0,transformers:c=[],skipStaticElements:f}=r;if(f&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===oht.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),C=c;if(typeof t.internal_transform==\"function\"&&(C=[t.internal_transform,...c]),t.nodeName===\"ink-text\"){let S=fht.default(t);if(S.length>0){let b=aht.default(S),I=uht.default(p);if(b>I){let T=(s=t.style.textWrap)!==null&&s!==void 0?s:\"wrap\";S=cht.default(S,I,T)}S=pht(t,S),e.write(h,E,S,{transformers:C})}return}if(t.nodeName===\"ink-box\"&&Aht.default(h,E,t,e),t.nodeName===\"ink-root\"||t.nodeName===\"ink-box\")for(let S of t.childNodes)f1e(S,e,{offsetX:h,offsetY:E,transformers:C,skipStaticElements:f})}};eD.default=f1e});var g1e=_(tD=>{\"use strict\";var h1e=tD&&tD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tD,\"__esModule\",{value:!0});var p1e=h1e(X9()),hht=h1e(GS()),aW=class{constructor(e){this.writes=[];let{width:r,height:s}=e;this.width=r,this.height=s}write(e,r,s,a){let{transformers:n}=a;s&&this.writes.push({x:e,y:r,text:s,transformers:n})}get(){let e=[];for(let s=0;s<this.height;s++)e.push(\" \".repeat(this.width));for(let s of this.writes){let{x:a,y:n,text:c,transformers:f}=s,p=c.split(`\n`),h=0;for(let E of p){let C=e[n+h];if(!C)continue;let S=hht.default(E);for(let b of f)E=b(E);e[n+h]=p1e.default(C,0,a)+E+p1e.default(C,a+S),h++}}return{output:e.map(s=>s.trimRight()).join(`\n`),height:e.length}}};tD.default=aW});var y1e=_(rD=>{\"use strict\";var lW=rD&&rD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(rD,\"__esModule\",{value:!0});var ght=lW(Fm()),d1e=lW(A1e()),m1e=lW(g1e());rD.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,ght.default.DIRECTION_LTR);let s=new m1e.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});d1e.default(t,s,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new m1e.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),d1e.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:c}=s.get();return{output:n,outputHeight:c,staticOutput:a?`${a.get().output}\n`:\"\"}}return{output:\"\",outputHeight:0,staticOutput:\"\"}}});var w1e=_((TKt,C1e)=>{\"use strict\";var E1e=Ie(\"stream\"),I1e=[\"assert\",\"count\",\"countReset\",\"debug\",\"dir\",\"dirxml\",\"error\",\"group\",\"groupCollapsed\",\"groupEnd\",\"info\",\"log\",\"table\",\"time\",\"timeEnd\",\"timeLog\",\"trace\",\"warn\"],cW={},dht=t=>{let e=new E1e.PassThrough,r=new E1e.PassThrough;e.write=a=>t(\"stdout\",a),r.write=a=>t(\"stderr\",a);let s=new console.Console(e,r);for(let a of I1e)cW[a]=console[a],console[a]=s[a];return()=>{for(let a of I1e)console[a]=cW[a];cW={}}};C1e.exports=dht});var fW=_(uW=>{\"use strict\";Object.defineProperty(uW,\"__esModule\",{value:!0});uW.default=new WeakMap});var pW=_(AW=>{\"use strict\";Object.defineProperty(AW,\"__esModule\",{value:!0});var mht=hn(),B1e=mht.createContext({exit:()=>{}});B1e.displayName=\"InternalAppContext\";AW.default=B1e});var gW=_(hW=>{\"use strict\";Object.defineProperty(hW,\"__esModule\",{value:!0});var yht=hn(),v1e=yht.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});v1e.displayName=\"InternalStdinContext\";hW.default=v1e});var mW=_(dW=>{\"use strict\";Object.defineProperty(dW,\"__esModule\",{value:!0});var Eht=hn(),S1e=Eht.createContext({stdout:void 0,write:()=>{}});S1e.displayName=\"InternalStdoutContext\";dW.default=S1e});var EW=_(yW=>{\"use strict\";Object.defineProperty(yW,\"__esModule\",{value:!0});var Iht=hn(),D1e=Iht.createContext({stderr:void 0,write:()=>{}});D1e.displayName=\"InternalStderrContext\";yW.default=D1e});var UF=_(IW=>{\"use strict\";Object.defineProperty(IW,\"__esModule\",{value:!0});var Cht=hn(),P1e=Cht.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});P1e.displayName=\"InternalFocusContext\";IW.default=P1e});var x1e=_((_Kt,b1e)=>{\"use strict\";var wht=/[|\\\\{}()[\\]^$+*?.-]/g;b1e.exports=t=>{if(typeof t!=\"string\")throw new TypeError(\"Expected a string\");return t.replace(wht,\"\\\\$&\")}});var T1e=_((HKt,R1e)=>{\"use strict\";var Bht=x1e(),vht=typeof process==\"object\"&&process&&typeof process.cwd==\"function\"?process.cwd():\".\",Q1e=[].concat(Ie(\"module\").builtinModules,\"bootstrap_node\",\"node\").map(t=>new RegExp(`(?:\\\\((?:node:)?${t}(?:\\\\.js)?:\\\\d+:\\\\d+\\\\)$|^\\\\s*at (?:node:)?${t}(?:\\\\.js)?:\\\\d+:\\\\d+$)`));Q1e.push(/\\((?:node:)?internal\\/[^:]+:\\d+:\\d+\\)$/,/\\s*at (?:node:)?internal\\/[^:]+:\\d+:\\d+$/,/\\/\\.node-spawn-wrap-\\w+-\\w+\\/node:\\d+:\\d+\\)?$/);var CW=class t{constructor(e){e={ignoredPackages:[],...e},\"internals\"in e||(e.internals=t.nodeInternals()),\"cwd\"in e||(e.cwd=vht),this._cwd=e.cwd.replace(/\\\\/g,\"/\"),this._internals=[].concat(e.internals,Sht(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...Q1e]}clean(e,r=0){r=\" \".repeat(r),Array.isArray(e)||(e=e.split(`\n`)),!/^\\s*at /.test(e[0])&&/^\\s*at /.test(e[1])&&(e=e.slice(1));let s=!1,a=null,n=[];return e.forEach(c=>{if(c=c.replace(/\\\\/g,\"/\"),this._internals.some(p=>p.test(c)))return;let f=/^\\s*at /.test(c);s?c=c.trimEnd().replace(/^(\\s+)at /,\"$1\"):(c=c.trim(),f&&(c=c.slice(3))),c=c.replace(`${this._cwd}/`,\"\"),c&&(f?(a&&(n.push(a),a=null),n.push(c)):(s=!0,a=c))}),n.map(c=>`${r}${c}\n`).join(\"\")}captureString(e,r=this.captureString){typeof e==\"function\"&&(r=e,e=1/0);let{stackTraceLimit:s}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=s,this.clean(n)}capture(e,r=this.capture){typeof e==\"function\"&&(r=e,e=1/0);let{prepareStackTrace:s,stackTraceLimit:a}=Error;Error.prepareStackTrace=(f,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:c}=n;return Object.assign(Error,{prepareStackTrace:s,stackTraceLimit:a}),c}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let s={line:r.getLineNumber(),column:r.getColumnNumber()};k1e(s,r.getFileName(),this._cwd),r.isConstructor()&&(s.constructor=!0),r.isEval()&&(s.evalOrigin=r.getEvalOrigin()),r.isNative()&&(s.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!==\"Object\"&&a!==\"[object Object]\"&&(s.type=a);let n=r.getFunctionName();n&&(s.function=n);let c=r.getMethodName();return c&&n!==c&&(s.method=c),s}parseLine(e){let r=e&&e.match(Dht);if(!r)return null;let s=r[1]===\"new\",a=r[2],n=r[3],c=r[4],f=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],C=r[9],S=r[10]===\"native\",b=r[11]===\")\",I,T={};if(E&&(T.line=Number(E)),C&&(T.column=Number(C)),b&&h){let N=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===\")\")N++;else if(h.charAt(U)===\"(\"&&h.charAt(U-1)===\" \"&&(N--,N===-1&&h.charAt(U-1)===\" \")){let W=h.slice(0,U-1);h=h.slice(U+1),a+=` (${W}`;break}}if(a){let N=a.match(Pht);N&&(a=N[1],I=N[2])}return k1e(T,h,this._cwd),s&&(T.constructor=!0),n&&(T.evalOrigin=n,T.evalLine=f,T.evalColumn=p,T.evalFile=c&&c.replace(/\\\\/g,\"/\")),S&&(T.native=!0),a&&(T.function=a),I&&a!==I&&(T.method=I),T}};function k1e(t,e,r){e&&(e=e.replace(/\\\\/g,\"/\"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function Sht(t){if(t.length===0)return[];let e=t.map(r=>Bht(r));return new RegExp(`[/\\\\\\\\]node_modules[/\\\\\\\\](?:${e.join(\"|\")})[/\\\\\\\\][^:]+:\\\\d+:\\\\d+`)}var Dht=new RegExp(\"^(?:\\\\s*at )?(?:(new) )?(?:(.*?) \\\\()?(?:eval at ([^ ]+) \\\\((.+?):(\\\\d+):(\\\\d+)\\\\), )?(?:(.+?):(\\\\d+):(\\\\d+)|(native))(\\\\)?)$\"),Pht=/^(.*?) \\[as (.*?)\\]$/;R1e.exports=CW});var N1e=_((jKt,F1e)=>{\"use strict\";F1e.exports=(t,e)=>t.replace(/^\\t+/gm,r=>\" \".repeat(r.length*(e||2)))});var L1e=_((GKt,O1e)=>{\"use strict\";var bht=N1e(),xht=(t,e)=>{let r=[],s=t-e,a=t+e;for(let n=s;n<=a;n++)r.push(n);return r};O1e.exports=(t,e,r)=>{if(typeof t!=\"string\")throw new TypeError(\"Source code is missing.\");if(!e||e<1)throw new TypeError(\"Line number must start from `1`.\");if(t=bht(t).split(/\\r?\\n/),!(e>t.length))return r={around:3,...r},xht(e,r.around).filter(s=>t[s-1]!==void 0).map(s=>({line:s,value:t[s-1]}))}});var _F=_(rf=>{\"use strict\";var kht=rf&&rf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Qht=rf&&rf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Rht=rf&&rf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.hasOwnProperty.call(t,r)&&kht(e,t,r);return Qht(e,t),e},Tht=rf&&rf.__rest||function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,s=Object.getOwnPropertySymbols(t);a<s.length;a++)e.indexOf(s[a])<0&&Object.prototype.propertyIsEnumerable.call(t,s[a])&&(r[s[a]]=t[s[a]]);return r};Object.defineProperty(rf,\"__esModule\",{value:!0});var M1e=Rht(hn()),wW=M1e.forwardRef((t,e)=>{var{children:r}=t,s=Tht(t,[\"children\"]);let a=Object.assign(Object.assign({},s),{marginLeft:s.marginLeft||s.marginX||s.margin||0,marginRight:s.marginRight||s.marginX||s.margin||0,marginTop:s.marginTop||s.marginY||s.margin||0,marginBottom:s.marginBottom||s.marginY||s.margin||0,paddingLeft:s.paddingLeft||s.paddingX||s.padding||0,paddingRight:s.paddingRight||s.paddingX||s.padding||0,paddingTop:s.paddingTop||s.paddingY||s.padding||0,paddingBottom:s.paddingBottom||s.paddingY||s.padding||0});return M1e.default.createElement(\"ink-box\",{ref:e,style:a},r)});wW.displayName=\"Box\";wW.defaultProps={flexDirection:\"row\",flexGrow:0,flexShrink:1};rf.default=wW});var SW=_(nD=>{\"use strict\";var BW=nD&&nD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nD,\"__esModule\",{value:!0});var Fht=BW(hn()),yw=BW(RE()),U1e=BW(sW()),vW=({color:t,backgroundColor:e,dimColor:r,bold:s,italic:a,underline:n,strikethrough:c,inverse:f,wrap:p,children:h})=>{if(h==null)return null;let E=C=>(r&&(C=yw.default.dim(C)),t&&(C=U1e.default(C,t,\"foreground\")),e&&(C=U1e.default(C,e,\"background\")),s&&(C=yw.default.bold(C)),a&&(C=yw.default.italic(C)),n&&(C=yw.default.underline(C)),c&&(C=yw.default.strikethrough(C)),f&&(C=yw.default.inverse(C)),C);return Fht.default.createElement(\"ink-text\",{style:{flexGrow:0,flexShrink:1,flexDirection:\"row\",textWrap:p},internal_transform:E},h)};vW.displayName=\"Text\";vW.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:\"wrap\"};nD.default=vW});var G1e=_(nf=>{\"use strict\";var Nht=nf&&nf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Oht=nf&&nf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Lht=nf&&nf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.hasOwnProperty.call(t,r)&&Nht(e,t,r);return Oht(e,t),e},iD=nf&&nf.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nf,\"__esModule\",{value:!0});var _1e=Lht(Ie(\"fs\")),Qs=iD(hn()),H1e=iD(T1e()),Mht=iD(L1e()),$p=iD(_F()),AA=iD(SW()),j1e=new H1e.default({cwd:process.cwd(),internals:H1e.default.nodeInternals()}),Uht=({error:t})=>{let e=t.stack?t.stack.split(`\n`).slice(1):void 0,r=e?j1e.parseLine(e[0]):void 0,s,a=0;if(r?.file&&r?.line&&_1e.existsSync(r.file)){let n=_1e.readFileSync(r.file,\"utf8\");if(s=Mht.default(n,r.line),s)for(let{line:c}of s)a=Math.max(a,String(c).length)}return Qs.default.createElement($p.default,{flexDirection:\"column\",padding:1},Qs.default.createElement($p.default,null,Qs.default.createElement(AA.default,{backgroundColor:\"red\",color:\"white\"},\" \",\"ERROR\",\" \"),Qs.default.createElement(AA.default,null,\" \",t.message)),r&&Qs.default.createElement($p.default,{marginTop:1},Qs.default.createElement(AA.default,{dimColor:!0},r.file,\":\",r.line,\":\",r.column)),r&&s&&Qs.default.createElement($p.default,{marginTop:1,flexDirection:\"column\"},s.map(({line:n,value:c})=>Qs.default.createElement($p.default,{key:n},Qs.default.createElement($p.default,{width:a+1},Qs.default.createElement(AA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?\"red\":void 0,color:n===r.line?\"white\":void 0},String(n).padStart(a,\" \"),\":\")),Qs.default.createElement(AA.default,{key:n,backgroundColor:n===r.line?\"red\":void 0,color:n===r.line?\"white\":void 0},\" \"+c)))),t.stack&&Qs.default.createElement($p.default,{marginTop:1,flexDirection:\"column\"},t.stack.split(`\n`).slice(1).map(n=>{let c=j1e.parseLine(n);return c?Qs.default.createElement($p.default,{key:n},Qs.default.createElement(AA.default,{dimColor:!0},\"- \"),Qs.default.createElement(AA.default,{dimColor:!0,bold:!0},c.function),Qs.default.createElement(AA.default,{dimColor:!0,color:\"gray\"},\" \",\"(\",c.file,\":\",c.line,\":\",c.column,\")\")):Qs.default.createElement($p.default,{key:n},Qs.default.createElement(AA.default,{dimColor:!0},\"- \"),Qs.default.createElement(AA.default,{dimColor:!0,bold:!0},n))})))};nf.default=Uht});var W1e=_(sf=>{\"use strict\";var _ht=sf&&sf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Hht=sf&&sf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),jht=sf&&sf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.hasOwnProperty.call(t,r)&&_ht(e,t,r);return Hht(e,t),e},Lm=sf&&sf.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sf,\"__esModule\",{value:!0});var Om=jht(hn()),q1e=Lm(P9()),Ght=Lm(pW()),qht=Lm(gW()),Wht=Lm(mW()),Yht=Lm(EW()),Vht=Lm(UF()),Jht=Lm(G1e()),Kht=\"\t\",zht=\"\\x1B[Z\",Zht=\"\\x1B\",HF=class extends Om.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.\nRead about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.\nRead about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding(\"utf8\"),e){this.rawModeEnabledCount===0&&(r.addListener(\"data\",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener(\"data\",this.handleInput),r.pause())},this.handleInput=e=>{e===\"\u0003\"&&this.props.exitOnCtrlC&&this.handleExit(),e===Zht&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===Kht&&this.focusNext(),e===zht&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=e=>{this.setState(r=>r.focusables.some(a=>a?.id===e)?{activeFocusId:e}:r)},this.focusNext=()=>{this.setState(e=>{var r;let s=(r=e.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(e)||s}})},this.focusPrevious=()=>{this.setState(e=>{var r;let s=(r=e.focusables[e.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(e)||s}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(s=>{let a=s.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...s.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(s=>s.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(s=>s.id!==e?s:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(s=>s.id!==e?s:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{var r;let s=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=s+1;a<e.focusables.length;a++)if(!((r=e.focusables[a])===null||r===void 0)&&r.isActive)return e.focusables[a].id},this.findPreviousFocusable=e=>{var r;let s=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=s-1;a>=0;a--)if(!((r=e.focusables[a])===null||r===void 0)&&r.isActive)return e.focusables[a].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return Om.default.createElement(Ght.default.Provider,{value:{exit:this.handleExit}},Om.default.createElement(qht.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},Om.default.createElement(Wht.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},Om.default.createElement(Yht.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},Om.default.createElement(Vht.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?Om.default.createElement(Jht.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){q1e.default.hide(this.props.stdout)}componentWillUnmount(){q1e.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};sf.default=HF;HF.displayName=\"InternalApp\"});var J1e=_(of=>{\"use strict\";var Xht=of&&of.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),$ht=of&&of.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),e0t=of&&of.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.hasOwnProperty.call(t,r)&&Xht(e,t,r);return $ht(e,t),e},af=of&&of.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(of,\"__esModule\",{value:!0});var t0t=af(hn()),Y1e=_Ce(),r0t=af(rwe()),n0t=af(w9()),i0t=af(lwe()),s0t=af(uwe()),DW=af(r1e()),o0t=af(y1e()),a0t=af(D9()),l0t=af(w1e()),c0t=e0t(nW()),u0t=af(fW()),f0t=af(W1e()),Ew=process.env.CI===\"false\"?!1:i0t.default,V1e=()=>{},PW=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:s,staticOutput:a}=o0t.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==`\n`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(Ew){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),s>=this.options.stdout.rows){this.options.stdout.write(n0t.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},s0t.default(this),this.options=e,this.rootNode=c0t.createNode(\"ink-root\"),this.rootNode.onRender=e.debug?this.onRender:Y1e(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=r0t.default.create(e.stdout),this.throttledLog=e.debug?this.log:Y1e(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput=\"\",this.fullStaticOutput=\"\",this.container=DW.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=a0t.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),Ew||(e.stdout.on(\"resize\",this.onRender),this.unsubscribeResize=()=>{e.stdout.off(\"resize\",this.onRender)})}render(e){let r=t0t.default.createElement(f0t.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);DW.default.updateContainer(r,this.container,null,V1e)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(Ew){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(Ew){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole==\"function\"&&this.restoreConsole(),typeof this.unsubscribeResize==\"function\"&&this.unsubscribeResize(),Ew?this.options.stdout.write(this.lastOutput+`\n`):this.options.debug||this.log.done(),this.isUnmounted=!0,DW.default.updateContainer(null,this.container,null,V1e),u0t.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!Ew&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=l0t.default((e,r)=>{e===\"stdout\"&&this.writeToStdout(r),e===\"stderr\"&&(r.startsWith(\"The above error occurred\")||this.writeToStderr(r))}))}};of.default=PW});var z1e=_(sD=>{\"use strict\";var K1e=sD&&sD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sD,\"__esModule\",{value:!0});var A0t=K1e(J1e()),jF=K1e(fW()),p0t=Ie(\"stream\"),h0t=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},g0t(e)),s=d0t(r.stdout,()=>new A0t.default(r));return s.render(t),{rerender:s.render,unmount:()=>s.unmount(),waitUntilExit:s.waitUntilExit,cleanup:()=>jF.default.delete(r.stdout),clear:s.clear}};sD.default=h0t;var g0t=(t={})=>t instanceof p0t.Stream?{stdout:t,stdin:process.stdin}:t,d0t=(t,e)=>{let r;return jF.default.has(t)?r=jF.default.get(t):(r=e(),jF.default.set(t,r)),r}});var X1e=_(eh=>{\"use strict\";var m0t=eh&&eh.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),y0t=eh&&eh.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),E0t=eh&&eh.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.hasOwnProperty.call(t,r)&&m0t(e,t,r);return y0t(e,t),e};Object.defineProperty(eh,\"__esModule\",{value:!0});var oD=E0t(hn()),Z1e=t=>{let{items:e,children:r,style:s}=t,[a,n]=oD.useState(0),c=oD.useMemo(()=>e.slice(a),[e,a]);oD.useLayoutEffect(()=>{n(e.length)},[e.length]);let f=c.map((h,E)=>r(h,a+E)),p=oD.useMemo(()=>Object.assign({position:\"absolute\",flexDirection:\"column\"},s),[s]);return oD.default.createElement(\"ink-box\",{internal_static:!0,style:p},f)};Z1e.displayName=\"Static\";eh.default=Z1e});var e2e=_(aD=>{\"use strict\";var I0t=aD&&aD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(aD,\"__esModule\",{value:!0});var C0t=I0t(hn()),$1e=({children:t,transform:e})=>t==null?null:C0t.default.createElement(\"ink-text\",{style:{flexGrow:0,flexShrink:1,flexDirection:\"row\"},internal_transform:e},t);$1e.displayName=\"Transform\";aD.default=$1e});var r2e=_(lD=>{\"use strict\";var w0t=lD&&lD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lD,\"__esModule\",{value:!0});var B0t=w0t(hn()),t2e=({count:t=1})=>B0t.default.createElement(\"ink-text\",null,`\n`.repeat(t));t2e.displayName=\"Newline\";lD.default=t2e});var s2e=_(cD=>{\"use strict\";var n2e=cD&&cD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cD,\"__esModule\",{value:!0});var v0t=n2e(hn()),S0t=n2e(_F()),i2e=()=>v0t.default.createElement(S0t.default,{flexGrow:1});i2e.displayName=\"Spacer\";cD.default=i2e});var GF=_(uD=>{\"use strict\";var D0t=uD&&uD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uD,\"__esModule\",{value:!0});var P0t=hn(),b0t=D0t(gW()),x0t=()=>P0t.useContext(b0t.default);uD.default=x0t});var a2e=_(fD=>{\"use strict\";var k0t=fD&&fD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fD,\"__esModule\",{value:!0});var o2e=hn(),Q0t=k0t(GF()),R0t=(t,e={})=>{let{stdin:r,setRawMode:s,internal_exitOnCtrlC:a}=Q0t.default();o2e.useEffect(()=>{if(e.isActive!==!1)return s(!0),()=>{s(!1)}},[e.isActive,s]),o2e.useEffect(()=>{if(e.isActive===!1)return;let n=c=>{let f=String(c),p={upArrow:f===\"\\x1B[A\",downArrow:f===\"\\x1B[B\",leftArrow:f===\"\\x1B[D\",rightArrow:f===\"\\x1B[C\",pageDown:f===\"\\x1B[6~\",pageUp:f===\"\\x1B[5~\",return:f===\"\\r\",escape:f===\"\\x1B\",ctrl:!1,shift:!1,tab:f===\"\t\"||f===\"\\x1B[Z\",backspace:f===\"\\b\",delete:f===\"\\x7F\"||f===\"\\x1B[3~\",meta:!1};f<=\"\u001a\"&&!p.return&&(f=String.fromCharCode(f.charCodeAt(0)+97-1),p.ctrl=!0),f.startsWith(\"\\x1B\")&&(f=f.slice(1),p.meta=!0);let h=f>=\"A\"&&f<=\"Z\",E=f>=\"\\u0410\"&&f<=\"\\u042F\";f.length===1&&(h||E)&&(p.shift=!0),p.tab&&f===\"[Z\"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(f=\"\"),(!(f===\"c\"&&p.ctrl)||!a)&&t(f,p)};return r?.on(\"data\",n),()=>{r?.off(\"data\",n)}},[e.isActive,r,a,t])};fD.default=R0t});var l2e=_(AD=>{\"use strict\";var T0t=AD&&AD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(AD,\"__esModule\",{value:!0});var F0t=hn(),N0t=T0t(pW()),O0t=()=>F0t.useContext(N0t.default);AD.default=O0t});var c2e=_(pD=>{\"use strict\";var L0t=pD&&pD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pD,\"__esModule\",{value:!0});var M0t=hn(),U0t=L0t(mW()),_0t=()=>M0t.useContext(U0t.default);pD.default=_0t});var u2e=_(hD=>{\"use strict\";var H0t=hD&&hD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hD,\"__esModule\",{value:!0});var j0t=hn(),G0t=H0t(EW()),q0t=()=>j0t.useContext(G0t.default);hD.default=q0t});var A2e=_(dD=>{\"use strict\";var f2e=dD&&dD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dD,\"__esModule\",{value:!0});var gD=hn(),W0t=f2e(UF()),Y0t=f2e(GF()),V0t=({isActive:t=!0,autoFocus:e=!1,id:r}={})=>{let{isRawModeSupported:s,setRawMode:a}=Y0t.default(),{activeId:n,add:c,remove:f,activate:p,deactivate:h,focus:E}=gD.useContext(W0t.default),C=gD.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return gD.useEffect(()=>(c(C,{autoFocus:e}),()=>{f(C)}),[C,e]),gD.useEffect(()=>{t?p(C):h(C)},[t,C]),gD.useEffect(()=>{if(!(!s||!t))return a(!0),()=>{a(!1)}},[t]),{isFocused:!!C&&n===C,focus:E}};dD.default=V0t});var p2e=_(mD=>{\"use strict\";var J0t=mD&&mD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mD,\"__esModule\",{value:!0});var K0t=hn(),z0t=J0t(UF()),Z0t=()=>{let t=K0t.useContext(z0t.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious,focus:t.focus}};mD.default=Z0t});var h2e=_(bW=>{\"use strict\";Object.defineProperty(bW,\"__esModule\",{value:!0});bW.default=t=>{var e,r,s,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(s=t.yogaNode)===null||s===void 0?void 0:s.getComputedHeight())!==null&&a!==void 0?a:0}}});var Wc=_(mo=>{\"use strict\";Object.defineProperty(mo,\"__esModule\",{value:!0});var X0t=z1e();Object.defineProperty(mo,\"render\",{enumerable:!0,get:function(){return X0t.default}});var $0t=_F();Object.defineProperty(mo,\"Box\",{enumerable:!0,get:function(){return $0t.default}});var egt=SW();Object.defineProperty(mo,\"Text\",{enumerable:!0,get:function(){return egt.default}});var tgt=X1e();Object.defineProperty(mo,\"Static\",{enumerable:!0,get:function(){return tgt.default}});var rgt=e2e();Object.defineProperty(mo,\"Transform\",{enumerable:!0,get:function(){return rgt.default}});var ngt=r2e();Object.defineProperty(mo,\"Newline\",{enumerable:!0,get:function(){return ngt.default}});var igt=s2e();Object.defineProperty(mo,\"Spacer\",{enumerable:!0,get:function(){return igt.default}});var sgt=a2e();Object.defineProperty(mo,\"useInput\",{enumerable:!0,get:function(){return sgt.default}});var ogt=l2e();Object.defineProperty(mo,\"useApp\",{enumerable:!0,get:function(){return ogt.default}});var agt=GF();Object.defineProperty(mo,\"useStdin\",{enumerable:!0,get:function(){return agt.default}});var lgt=c2e();Object.defineProperty(mo,\"useStdout\",{enumerable:!0,get:function(){return lgt.default}});var cgt=u2e();Object.defineProperty(mo,\"useStderr\",{enumerable:!0,get:function(){return cgt.default}});var ugt=A2e();Object.defineProperty(mo,\"useFocus\",{enumerable:!0,get:function(){return ugt.default}});var fgt=p2e();Object.defineProperty(mo,\"useFocusManager\",{enumerable:!0,get:function(){return fgt.default}});var Agt=h2e();Object.defineProperty(mo,\"measureElement\",{enumerable:!0,get:function(){return Agt.default}})});var kW={};Vt(kW,{Gem:()=>xW});var g2e,Mm,xW,qF=Ze(()=>{g2e=ut(Wc()),Mm=ut(hn()),xW=(0,Mm.memo)(({active:t})=>{let e=(0,Mm.useMemo)(()=>t?\"\\u25C9\":\"\\u25EF\",[t]),r=(0,Mm.useMemo)(()=>t?\"green\":\"yellow\",[t]);return Mm.default.createElement(g2e.Text,{color:r},e)})});var m2e={};Vt(m2e,{useKeypress:()=>Um});function Um({active:t},e,r){let{stdin:s}=(0,d2e.useStdin)(),a=(0,WF.useCallback)((n,c)=>e(n,c),r);(0,WF.useEffect)(()=>{if(!(!t||!s))return s.on(\"keypress\",a),()=>{s.off(\"keypress\",a)}},[t,a,s])}var d2e,WF,yD=Ze(()=>{d2e=ut(Wc()),WF=ut(hn())});var E2e={};Vt(E2e,{FocusRequest:()=>y2e,useFocusRequest:()=>QW});var y2e,QW,RW=Ze(()=>{yD();y2e=(r=>(r.BEFORE=\"before\",r.AFTER=\"after\",r))(y2e||{}),QW=function({active:t},e,r){Um({active:t},(s,a)=>{a.name===\"tab\"&&(a.shift?e(\"before\"):e(\"after\"))},r)}});var I2e={};Vt(I2e,{useListInput:()=>ED});var ED,YF=Ze(()=>{yD();ED=function(t,e,{active:r,minus:s,plus:a,set:n,loop:c=!0}){Um({active:r},(f,p)=>{let h=e.indexOf(t);switch(p.name){case s:{let E=h-1;if(c){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(c){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,c])}});var VF={};Vt(VF,{ScrollableItems:()=>pgt});var eg,dl,pgt,JF=Ze(()=>{eg=ut(Wc()),dl=ut(hn());RW();YF();pgt=({active:t=!0,children:e=[],radius:r=10,size:s=1,loop:a=!0,onFocusRequest:n,willReachEnd:c})=>{let f=N=>{if(N.key===null)throw new Error(\"Expected all children to have a key\");return N.key},p=dl.default.Children.map(e,N=>f(N)),h=p[0],[E,C]=(0,dl.useState)(h),S=p.indexOf(E);(0,dl.useEffect)(()=>{p.includes(E)||C(h)},[e]),(0,dl.useEffect)(()=>{c&&S>=p.length-2&&c()},[S]),QW({active:t&&!!n},N=>{n?.(N)},[n]),ED(E,p,{active:t,minus:\"up\",plus:\"down\",set:C,loop:a});let b=S-r,I=S+r;I>p.length&&(b-=I-p.length,I=p.length),b<0&&(I+=-b,b=0),I>=p.length&&(I=p.length-1);let T=[];for(let N=b;N<=I;++N){let U=p[N],W=t&&U===E;T.push(dl.default.createElement(eg.Box,{key:U,height:s},dl.default.createElement(eg.Box,{marginLeft:1,marginRight:1},dl.default.createElement(eg.Text,null,W?dl.default.createElement(eg.Text,{color:\"cyan\",bold:!0},\">\"):\" \")),dl.default.createElement(eg.Box,null,dl.default.cloneElement(e[N],{active:W}))))}return dl.default.createElement(eg.Box,{flexDirection:\"column\",width:\"100%\"},T)}});var C2e,th,w2e,TW,B2e,FW=Ze(()=>{C2e=ut(Wc()),th=ut(hn()),w2e=Ie(\"readline\"),TW=th.default.createContext(null),B2e=({children:t})=>{let{stdin:e,setRawMode:r}=(0,C2e.useStdin)();(0,th.useEffect)(()=>{r&&r(!0),e&&(0,w2e.emitKeypressEvents)(e)},[e,r]);let[s,a]=(0,th.useState)(new Map),n=(0,th.useMemo)(()=>({getAll:()=>s,get:c=>s.get(c),set:(c,f)=>a(new Map([...s,[c,f]]))}),[s,a]);return th.default.createElement(TW.Provider,{value:n,children:t})}});var NW={};Vt(NW,{useMinistore:()=>hgt});function hgt(t,e){let r=(0,KF.useContext)(TW);if(r===null)throw new Error(\"Expected this hook to run with a ministore context attached\");if(typeof t>\"u\")return r.getAll();let s=(0,KF.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>\"u\"&&(a=e),[a,s]}var KF,OW=Ze(()=>{KF=ut(hn());FW()});var ZF={};Vt(ZF,{renderForm:()=>ggt});async function ggt(t,e,{stdin:r,stdout:s,stderr:a}){let n,c=p=>{let{exit:h}=(0,zF.useApp)();Um({active:!0},(E,C)=>{C.name===\"return\"&&(n=p,h())},[h,p])},{waitUntilExit:f}=(0,zF.render)(LW.default.createElement(B2e,null,LW.default.createElement(t,{...e,useSubmit:c})),{stdin:r,stdout:s,stderr:a});return await f(),n}var zF,LW,XF=Ze(()=>{zF=ut(Wc()),LW=ut(hn());FW();yD()});var P2e=_(ID=>{\"use strict\";Object.defineProperty(ID,\"__esModule\",{value:!0});ID.UncontrolledTextInput=void 0;var S2e=hn(),MW=hn(),v2e=Wc(),_m=RE(),D2e=({value:t,placeholder:e=\"\",focus:r=!0,mask:s,highlightPastedText:a=!1,showCursor:n=!0,onChange:c,onSubmit:f})=>{let[{cursorOffset:p,cursorWidth:h},E]=MW.useState({cursorOffset:(t||\"\").length,cursorWidth:0});MW.useEffect(()=>{E(T=>{if(!r||!n)return T;let N=t||\"\";return T.cursorOffset>N.length-1?{cursorOffset:N.length,cursorWidth:0}:T})},[t,r,n]);let C=a?h:0,S=s?s.repeat(t.length):t,b=S,I=e?_m.grey(e):void 0;if(n&&r){I=e.length>0?_m.inverse(e[0])+_m.grey(e.slice(1)):_m.inverse(\" \"),b=S.length>0?\"\":_m.inverse(\" \");let T=0;for(let N of S)T>=p-C&&T<=p?b+=_m.inverse(N):b+=N,T++;S.length>0&&p===S.length&&(b+=_m.inverse(\" \"))}return v2e.useInput((T,N)=>{if(N.upArrow||N.downArrow||N.ctrl&&T===\"c\"||N.tab||N.shift&&N.tab)return;if(N.return){f&&f(t);return}let U=p,W=t,ee=0;N.leftArrow?n&&U--:N.rightArrow?n&&U++:N.backspace||N.delete?p>0&&(W=t.slice(0,p-1)+t.slice(p,t.length),U--):(W=t.slice(0,p)+T+t.slice(p,t.length),U+=T.length,T.length>1&&(ee=T.length)),p<0&&(U=0),p>t.length&&(U=t.length),E({cursorOffset:U,cursorWidth:ee}),W!==t&&c(W)},{isActive:r}),S2e.createElement(v2e.Text,null,e?S.length>0?b:I:b)};ID.default=D2e;ID.UncontrolledTextInput=({initialValue:t=\"\",...e})=>{let[r,s]=MW.useState(t);return S2e.createElement(D2e,Object.assign({},e,{value:r,onChange:s}))}});var k2e={};Vt(k2e,{Pad:()=>UW});var b2e,x2e,UW,_W=Ze(()=>{b2e=ut(Wc()),x2e=ut(hn()),UW=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${\"-\".repeat(t-1)}`:\" \";return x2e.default.createElement(b2e.Text,{dimColor:!e},r)}});var Q2e={};Vt(Q2e,{ItemOptions:()=>dgt});var wD,tg,dgt,R2e=Ze(()=>{wD=ut(Wc()),tg=ut(hn());YF();qF();_W();dgt=function({active:t,skewer:e,options:r,value:s,onChange:a,sizes:n=[]}){let c=r.filter(({label:p})=>!!p).map(({value:p})=>p),f=r.findIndex(p=>p.value===s&&p.label!=\"\");return ED(s,c,{active:t,minus:\"left\",plus:\"right\",set:a}),tg.default.createElement(tg.default.Fragment,null,r.map(({label:p},h)=>{let E=h===f,C=n[h]-1||0,S=p.replace(/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,\"\"),b=Math.max(0,C-S.length-2);return p?tg.default.createElement(wD.Box,{key:p,width:C,marginLeft:1},tg.default.createElement(wD.Text,{wrap:\"truncate\"},tg.default.createElement(xW,{active:E}),\" \",p),e?tg.default.createElement(UW,{active:t,length:b}):null):tg.default.createElement(wD.Box,{key:`spacer-${h}`,width:C,marginLeft:1})}))}});var V2e=_((VZt,Y2e)=>{var ZW;Y2e.exports=()=>(typeof ZW>\"u\"&&(ZW=Ie(\"zlib\").brotliDecompressSync(Buffer.from(\"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\",\"base64\")).toString()),ZW)});var hBe=_((yXt,pBe)=>{var oY=Symbol(\"arg flag\"),Yc=class t extends Error{constructor(e,r){super(e),this.name=\"ArgError\",this.code=r,Object.setPrototypeOf(this,t.prototype)}};function UD(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:s=!1}={}){if(!t)throw new Yc(\"argument specification object is required\",\"ARG_CONFIG_NO_SPEC\");let a={_:[]},n={},c={};for(let f of Object.keys(t)){if(!f)throw new Yc(\"argument key cannot be an empty string\",\"ARG_CONFIG_EMPTY_KEY\");if(f[0]!==\"-\")throw new Yc(`argument key must start with '-' but found: '${f}'`,\"ARG_CONFIG_NONOPT_KEY\");if(f.length===1)throw new Yc(`argument key must have a name; singular '-' keys are not allowed: ${f}`,\"ARG_CONFIG_NONAME_KEY\");if(typeof t[f]==\"string\"){n[f]=t[f];continue}let p=t[f],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]==\"function\"){let[E]=p;p=(C,S,b=[])=>(b.push(E(C,S,b[b.length-1])),b),h=E===Boolean||E[oY]===!0}else if(typeof p==\"function\")h=p===Boolean||p[oY]===!0;else throw new Yc(`type missing or not a function or valid array type: ${f}`,\"ARG_CONFIG_VAD_TYPE\");if(f[1]!==\"-\"&&f.length>2)throw new Yc(`short argument keys (with a single hyphen) must have only one character: ${f}`,\"ARG_CONFIG_SHORTOPT_TOOLONG\");c[f]=[p,h]}for(let f=0,p=e.length;f<p;f++){let h=e[f];if(s&&a._.length>0){a._=a._.concat(e.slice(f));break}if(h===\"--\"){a._=a._.concat(e.slice(f+1));break}if(h.length>1&&h[0]===\"-\"){let E=h[1]===\"-\"||h.length===2?[h]:h.slice(1).split(\"\").map(C=>`-${C}`);for(let C=0;C<E.length;C++){let S=E[C],[b,I]=S[1]===\"-\"?S.split(/=(.*)/,2):[S,void 0],T=b;for(;T in n;)T=n[T];if(!(T in c))if(r){a._.push(S);continue}else throw new Yc(`unknown or unexpected option: ${b}`,\"ARG_UNKNOWN_OPTION\");let[N,U]=c[T];if(!U&&C+1<E.length)throw new Yc(`option requires argument (but was followed by another short argument): ${b}`,\"ARG_MISSING_REQUIRED_SHORTARG\");if(U)a[T]=N(!0,T,a[T]);else if(I===void 0){if(e.length<f+2||e[f+1].length>1&&e[f+1][0]===\"-\"&&!(e[f+1].match(/^-?\\d*(\\.(?=\\d))?\\d*$/)&&(N===Number||typeof BigInt<\"u\"&&N===BigInt))){let W=b===T?\"\":` (alias for ${T})`;throw new Yc(`option requires argument: ${b}${W}`,\"ARG_MISSING_REQUIRED_LONGARG\")}a[T]=N(e[f+1],T,a[T]),++f}else a[T]=N(I,T,a[T])}}else a._.push(h)}return a}UD.flag=t=>(t[oY]=!0,t);UD.COUNT=UD.flag((t,e,r)=>(r||0)+1);UD.ArgError=Yc;pBe.exports=UD});var wBe=_((JXt,CBe)=>{var uY;CBe.exports=()=>(typeof uY>\"u\"&&(uY=Ie(\"zlib\").brotliDecompressSync(Buffer.from(\"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\",\"base64\")).toString()),uY)});var PBe=_((dY,mY)=>{(function(t){dY&&typeof dY==\"object\"&&typeof mY<\"u\"?mY.exports=t():typeof define==\"function\"&&define.amd?define([],t):typeof window<\"u\"?window.isWindows=t():typeof global<\"u\"?global.isWindows=t():typeof self<\"u\"?self.isWindows=t():this.isWindows=t()})(function(){\"use strict\";return function(){return process&&(process.platform===\"win32\"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var QBe=_((Y$t,kBe)=>{\"use strict\";yY.ifExists=mdt;var Dw=Ie(\"util\"),Vc=Ie(\"path\"),bBe=PBe(),hdt=/^#!\\s*(?:\\/usr\\/bin\\/env)?\\s*([^ \\t]+)(.*)$/,gdt={createPwshFile:!0,createCmdFile:bBe(),fs:Ie(\"fs\")},ddt=new Map([[\".js\",\"node\"],[\".cjs\",\"node\"],[\".mjs\",\"node\"],[\".cmd\",\"cmd\"],[\".bat\",\"cmd\"],[\".ps1\",\"pwsh\"],[\".sh\",\"sh\"]]);function xBe(t){let e={...gdt,...t},r=e.fs;return e.fs_={chmod:r.chmod?Dw.promisify(r.chmod):async()=>{},mkdir:Dw.promisify(r.mkdir),readFile:Dw.promisify(r.readFile),stat:Dw.promisify(r.stat),unlink:Dw.promisify(r.unlink),writeFile:Dw.promisify(r.writeFile)},e}async function yY(t,e,r){let s=xBe(r);await s.fs_.stat(t),await Edt(t,e,s)}function mdt(t,e,r){return yY(t,e,r).catch(()=>{})}function ydt(t,e){return e.fs_.unlink(t).catch(()=>{})}async function Edt(t,e,r){let s=await vdt(t,r);return await Idt(e,r),Cdt(t,e,s,r)}function Idt(t,e){return e.fs_.mkdir(Vc.dirname(t),{recursive:!0})}function Cdt(t,e,r,s){let a=xBe(s),n=[{generator:Pdt,extension:\"\"}];return a.createCmdFile&&n.push({generator:Ddt,extension:\".cmd\"}),a.createPwshFile&&n.push({generator:bdt,extension:\".ps1\"}),Promise.all(n.map(c=>Sdt(t,e+c.extension,r,c.generator,a)))}function wdt(t,e){return ydt(t,e)}function Bdt(t,e){return xdt(t,e)}async function vdt(t,e){let a=(await e.fs_.readFile(t,\"utf8\")).trim().split(/\\r*\\n/)[0].match(hdt);if(!a){let n=Vc.extname(t).toLowerCase();return{program:ddt.get(n)||null,additionalArgs:\"\"}}return{program:a[1],additionalArgs:a[2]}}async function Sdt(t,e,r,s,a){let n=a.preserveSymlinks?\"--preserve-symlinks\":\"\",c=[r.additionalArgs,n].filter(f=>f).join(\" \");return a=Object.assign({},a,{prog:r.program,args:c}),await wdt(e,a),await a.fs_.writeFile(e,s(t,e,a),\"utf8\"),Bdt(e,a)}function Ddt(t,e,r){let a=Vc.relative(Vc.dirname(e),t).split(\"/\").join(\"\\\\\"),n=Vc.isAbsolute(a)?`\"${a}\"`:`\"%~dp0\\\\${a}\"`,c,f=r.prog,p=r.args||\"\",h=EY(r.nodePath).win32;f?(c=`\"%~dp0\\\\${f}.exe\"`,a=n):(f=n,p=\"\",a=\"\");let E=r.progArgs?`${r.progArgs.join(\" \")} `:\"\",C=h?`@SET NODE_PATH=${h}\\r\n`:\"\";return c?C+=`@IF EXIST ${c} (\\r\n  ${c} ${p} ${a} ${E}%*\\r\n) ELSE (\\r\n  @SETLOCAL\\r\n  @SET PATHEXT=%PATHEXT:;.JS;=;%\\r\n  ${f} ${p} ${a} ${E}%*\\r\n)\\r\n`:C+=`@${f} ${p} ${a} ${E}%*\\r\n`,C}function Pdt(t,e,r){let s=Vc.relative(Vc.dirname(e),t),a=r.prog&&r.prog.split(\"\\\\\").join(\"/\"),n;s=s.split(\"\\\\\").join(\"/\");let c=Vc.isAbsolute(s)?`\"${s}\"`:`\"$basedir/${s}\"`,f=r.args||\"\",p=EY(r.nodePath).posix;a?(n=`\"$basedir/${r.prog}\"`,s=c):(a=c,f=\"\",s=\"\");let h=r.progArgs?`${r.progArgs.join(\" \")} `:\"\",E=`#!/bin/sh\nbasedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\\\\\,/,g')\")\n\ncase \\`uname\\` in\n    *CYGWIN*) basedir=\\`cygpath -w \"$basedir\"\\`;;\nesac\n\n`,C=r.nodePath?`export NODE_PATH=\"${p}\"\n`:\"\";return n?E+=`${C}if [ -x ${n} ]; then\n  exec ${n} ${f} ${s} ${h}\"$@\"\nelse\n  exec ${a} ${f} ${s} ${h}\"$@\"\nfi\n`:E+=`${C}${a} ${f} ${s} ${h}\"$@\"\nexit $?\n`,E}function bdt(t,e,r){let s=Vc.relative(Vc.dirname(e),t),a=r.prog&&r.prog.split(\"\\\\\").join(\"/\"),n=a&&`\"${a}$exe\"`,c;s=s.split(\"\\\\\").join(\"/\");let f=Vc.isAbsolute(s)?`\"${s}\"`:`\"$basedir/${s}\"`,p=r.args||\"\",h=EY(r.nodePath),E=h.win32,C=h.posix;n?(c=`\"$basedir/${r.prog}$exe\"`,s=f):(n=f,p=\"\",s=\"\");let S=r.progArgs?`${r.progArgs.join(\" \")} `:\"\",b=`#!/usr/bin/env pwsh\n$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent\n\n$exe=\"\"\n${r.nodePath?`$env_node_path=$env:NODE_PATH\n$env:NODE_PATH=\"${E}\"\n`:\"\"}if ($PSVersionTable.PSVersion -lt \"6.0\" -or $IsWindows) {\n  # Fix case when both the Windows and Linux builds of Node\n  # are installed in the same directory\n  $exe=\".exe\"\n}`;return r.nodePath&&(b+=` else {\n  $env:NODE_PATH=\"${C}\"\n}`),c?b+=`\n$ret=0\nif (Test-Path ${c}) {\n  # Support pipeline input\n  if ($MyInvocation.ExpectingInput) {\n    $input | & ${c} ${p} ${s} ${S}$args\n  } else {\n    & ${c} ${p} ${s} ${S}$args\n  }\n  $ret=$LASTEXITCODE\n} else {\n  # Support pipeline input\n  if ($MyInvocation.ExpectingInput) {\n    $input | & ${n} ${p} ${s} ${S}$args\n  } else {\n    & ${n} ${p} ${s} ${S}$args\n  }\n  $ret=$LASTEXITCODE\n}\n${r.nodePath?`$env:NODE_PATH=$env_node_path\n`:\"\"}exit $ret\n`:b+=`\n# Support pipeline input\nif ($MyInvocation.ExpectingInput) {\n  $input | & ${n} ${p} ${s} ${S}$args\n} else {\n  & ${n} ${p} ${s} ${S}$args\n}\n${r.nodePath?`$env:NODE_PATH=$env_node_path\n`:\"\"}exit $LASTEXITCODE\n`,b}function xdt(t,e){return e.fs_.chmod(t,493)}function EY(t){if(!t)return{win32:\"\",posix:\"\"};let e=typeof t==\"string\"?t.split(Vc.delimiter):Array.from(t),r={};for(let s=0;s<e.length;s++){let a=e[s].split(\"/\").join(\"\\\\\"),n=bBe()?e[s].split(\"\\\\\").join(\"/\").replace(/^([^:\\\\/]*):/,(c,f)=>`/mnt/${f.toLowerCase()}`):e[s];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[s]={win32:a,posix:n}}return r}kBe.exports=yY});var TY=_((Ctr,zBe)=>{zBe.exports=Ie(\"stream\")});var eve=_((wtr,$Be)=>{\"use strict\";function ZBe(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,s)}return r}function cmt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?ZBe(Object(r),!0).forEach(function(s){umt(t,s,r[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ZBe(Object(r)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(r,s))})}return t}function umt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function fmt(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function XBe(t,e){for(var r=0;r<e.length;r++){var s=e[r];s.enumerable=s.enumerable||!1,s.configurable=!0,\"value\"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}function Amt(t,e,r){return e&&XBe(t.prototype,e),r&&XBe(t,r),t}var pmt=Ie(\"buffer\"),AN=pmt.Buffer,hmt=Ie(\"util\"),FY=hmt.inspect,gmt=FY&&FY.custom||\"inspect\";function dmt(t,e,r){AN.prototype.copy.call(t,e,r)}$Be.exports=function(){function t(){fmt(this,t),this.head=null,this.tail=null,this.length=0}return Amt(t,[{key:\"push\",value:function(r){var s={data:r,next:null};this.length>0?this.tail.next=s:this.head=s,this.tail=s,++this.length}},{key:\"unshift\",value:function(r){var s={data:r,next:this.head};this.length===0&&(this.tail=s),this.head=s,++this.length}},{key:\"shift\",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:\"clear\",value:function(){this.head=this.tail=null,this.length=0}},{key:\"join\",value:function(r){if(this.length===0)return\"\";for(var s=this.head,a=\"\"+s.data;s=s.next;)a+=r+s.data;return a}},{key:\"concat\",value:function(r){if(this.length===0)return AN.alloc(0);for(var s=AN.allocUnsafe(r>>>0),a=this.head,n=0;a;)dmt(a.data,s,n),n+=a.data.length,a=a.next;return s}},{key:\"consume\",value:function(r,s){var a;return r<this.head.data.length?(a=this.head.data.slice(0,r),this.head.data=this.head.data.slice(r)):r===this.head.data.length?a=this.shift():a=s?this._getString(r):this._getBuffer(r),a}},{key:\"first\",value:function(){return this.head.data}},{key:\"_getString\",value:function(r){var s=this.head,a=1,n=s.data;for(r-=n.length;s=s.next;){var c=s.data,f=r>c.length?c.length:r;if(f===c.length?n+=c:n+=c.slice(0,r),r-=f,r===0){f===c.length?(++a,s.next?this.head=s.next:this.head=this.tail=null):(this.head=s,s.data=c.slice(f));break}++a}return this.length-=a,n}},{key:\"_getBuffer\",value:function(r){var s=AN.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(s),r-=a.data.length;a=a.next;){var c=a.data,f=r>c.length?c.length:r;if(c.copy(s,s.length-r,0,f),r-=f,r===0){f===c.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=c.slice(f));break}++n}return this.length-=n,s}},{key:gmt,value:function(r,s){return FY(this,cmt({},s,{depth:0,customInspect:!1}))}}]),t}()});var OY=_((Btr,rve)=>{\"use strict\";function mmt(t,e){var r=this,s=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return s||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(NY,this,t)):process.nextTick(NY,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(pN,r):(r._writableState.errorEmitted=!0,process.nextTick(tve,r,n)):process.nextTick(tve,r,n):e?(process.nextTick(pN,r),e(n)):process.nextTick(pN,r)}),this)}function tve(t,e){NY(t,e),pN(t)}function pN(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit(\"close\")}function ymt(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function NY(t,e){t.emit(\"error\",e)}function Emt(t,e){var r=t._readableState,s=t._writableState;r&&r.autoDestroy||s&&s.autoDestroy?t.destroy(e):t.emit(\"error\",e)}rve.exports={destroy:mmt,undestroy:ymt,errorOrDestroy:Emt}});var lg=_((vtr,sve)=>{\"use strict\";var ive={};function Kc(t,e,r){r||(r=Error);function s(n,c,f){return typeof e==\"string\"?e:e(n,c,f)}class a extends r{constructor(c,f,p){super(s(c,f,p))}}a.prototype.name=r.name,a.prototype.code=t,ive[t]=a}function nve(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(s=>String(s)),r>2?`one of ${e} ${t.slice(0,r-1).join(\", \")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function Imt(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function Cmt(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function wmt(t,e,r){return typeof r!=\"number\"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Kc(\"ERR_INVALID_OPT_VALUE\",function(t,e){return'The value \"'+e+'\" is invalid for option \"'+t+'\"'},TypeError);Kc(\"ERR_INVALID_ARG_TYPE\",function(t,e,r){let s;typeof e==\"string\"&&Imt(e,\"not \")?(s=\"must not be\",e=e.replace(/^not /,\"\")):s=\"must be\";let a;if(Cmt(t,\" argument\"))a=`The ${t} ${s} ${nve(e,\"type\")}`;else{let n=wmt(t,\".\")?\"property\":\"argument\";a=`The \"${t}\" ${n} ${s} ${nve(e,\"type\")}`}return a+=`. Received type ${typeof r}`,a},TypeError);Kc(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\");Kc(\"ERR_METHOD_NOT_IMPLEMENTED\",function(t){return\"The \"+t+\" method is not implemented\"});Kc(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\");Kc(\"ERR_STREAM_DESTROYED\",function(t){return\"Cannot call \"+t+\" after a stream was destroyed\"});Kc(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\");Kc(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\");Kc(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\");Kc(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError);Kc(\"ERR_UNKNOWN_ENCODING\",function(t){return\"Unknown encoding: \"+t},TypeError);Kc(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\");sve.exports.codes=ive});var LY=_((Str,ove)=>{\"use strict\";var Bmt=lg().codes.ERR_INVALID_OPT_VALUE;function vmt(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function Smt(t,e,r,s){var a=vmt(e,s,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=s?r:\"highWaterMark\";throw new Bmt(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}ove.exports={getHighWaterMark:Smt}});var ave=_((Dtr,MY)=>{typeof Object.create==\"function\"?MY.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:MY.exports=function(e,r){if(r){e.super_=r;var s=function(){};s.prototype=r.prototype,e.prototype=new s,e.prototype.constructor=e}}});var cg=_((Ptr,_Y)=>{try{if(UY=Ie(\"util\"),typeof UY.inherits!=\"function\")throw\"\";_Y.exports=UY.inherits}catch{_Y.exports=ave()}var UY});var cve=_((btr,lve)=>{lve.exports=Ie(\"util\").deprecate});var GY=_((xtr,gve)=>{\"use strict\";gve.exports=Yi;function fve(t){var e=this;this.next=null,this.entry=null,this.finish=function(){Xmt(e,t)}}var Rw;Yi.WritableState=XD;var Dmt={deprecate:cve()},Ave=TY(),gN=Ie(\"buffer\").Buffer,Pmt=global.Uint8Array||function(){};function bmt(t){return gN.from(t)}function xmt(t){return gN.isBuffer(t)||t instanceof Pmt}var jY=OY(),kmt=LY(),Qmt=kmt.getHighWaterMark,ug=lg().codes,Rmt=ug.ERR_INVALID_ARG_TYPE,Tmt=ug.ERR_METHOD_NOT_IMPLEMENTED,Fmt=ug.ERR_MULTIPLE_CALLBACK,Nmt=ug.ERR_STREAM_CANNOT_PIPE,Omt=ug.ERR_STREAM_DESTROYED,Lmt=ug.ERR_STREAM_NULL_VALUES,Mmt=ug.ERR_STREAM_WRITE_AFTER_END,Umt=ug.ERR_UNKNOWN_ENCODING,Tw=jY.errorOrDestroy;cg()(Yi,Ave);function _mt(){}function XD(t,e,r){Rw=Rw||Ym(),t=t||{},typeof r!=\"boolean\"&&(r=e instanceof Rw),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=Qmt(this,t,\"writableHighWaterMark\",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=t.decodeStrings===!1;this.decodeStrings=!s,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){Vmt(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new fve(this)}XD.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(XD.prototype,\"buffer\",{get:Dmt.deprecate(function(){return this.getBuffer()},\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch{}})();var hN;typeof Symbol==\"function\"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==\"function\"?(hN=Function.prototype[Symbol.hasInstance],Object.defineProperty(Yi,Symbol.hasInstance,{value:function(e){return hN.call(this,e)?!0:this!==Yi?!1:e&&e._writableState instanceof XD}})):hN=function(e){return e instanceof this};function Yi(t){Rw=Rw||Ym();var e=this instanceof Rw;if(!e&&!hN.call(Yi,this))return new Yi(t);this._writableState=new XD(t,this,e),this.writable=!0,t&&(typeof t.write==\"function\"&&(this._write=t.write),typeof t.writev==\"function\"&&(this._writev=t.writev),typeof t.destroy==\"function\"&&(this._destroy=t.destroy),typeof t.final==\"function\"&&(this._final=t.final)),Ave.call(this)}Yi.prototype.pipe=function(){Tw(this,new Nmt)};function Hmt(t,e){var r=new Mmt;Tw(t,r),process.nextTick(e,r)}function jmt(t,e,r,s){var a;return r===null?a=new Lmt:typeof r!=\"string\"&&!e.objectMode&&(a=new Rmt(\"chunk\",[\"string\",\"Buffer\"],r)),a?(Tw(t,a),process.nextTick(s,a),!1):!0}Yi.prototype.write=function(t,e,r){var s=this._writableState,a=!1,n=!s.objectMode&&xmt(t);return n&&!gN.isBuffer(t)&&(t=bmt(t)),typeof e==\"function\"&&(r=e,e=null),n?e=\"buffer\":e||(e=s.defaultEncoding),typeof r!=\"function\"&&(r=_mt),s.ending?Hmt(this,r):(n||jmt(this,s,t,r))&&(s.pendingcb++,a=qmt(this,s,n,t,e,r)),a};Yi.prototype.cork=function(){this._writableState.corked++};Yi.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&pve(this,t))};Yi.prototype.setDefaultEncoding=function(e){if(typeof e==\"string\"&&(e=e.toLowerCase()),!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((e+\"\").toLowerCase())>-1))throw new Umt(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Yi.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Gmt(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e==\"string\"&&(e=gN.from(e,r)),e}Object.defineProperty(Yi.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function qmt(t,e,r,s,a,n){if(!r){var c=Gmt(e,s,a);s!==c&&(r=!0,a=\"buffer\",s=c)}var f=e.objectMode?1:s.length;e.length+=f;var p=e.length<e.highWaterMark;if(p||(e.needDrain=!0),e.writing||e.corked){var h=e.lastBufferedRequest;e.lastBufferedRequest={chunk:s,encoding:a,isBuf:r,callback:n,next:null},h?h.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else HY(t,e,!1,f,s,a,n);return p}function HY(t,e,r,s,a,n,c){e.writelen=s,e.writecb=c,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new Omt(\"write\")):r?t._writev(a,e.onwrite):t._write(a,n,e.onwrite),e.sync=!1}function Wmt(t,e,r,s,a){--e.pendingcb,r?(process.nextTick(a,s),process.nextTick(ZD,t,e),t._writableState.errorEmitted=!0,Tw(t,s)):(a(s),t._writableState.errorEmitted=!0,Tw(t,s),ZD(t,e))}function Ymt(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}function Vmt(t,e){var r=t._writableState,s=r.sync,a=r.writecb;if(typeof a!=\"function\")throw new Fmt;if(Ymt(r),e)Wmt(t,r,s,e,a);else{var n=hve(r)||t.destroyed;!n&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&pve(t,r),s?process.nextTick(uve,t,r,n,a):uve(t,r,n,a)}}function uve(t,e,r,s){r||Jmt(t,e),e.pendingcb--,s(),ZD(t,e)}function Jmt(t,e){e.length===0&&e.needDrain&&(e.needDrain=!1,t.emit(\"drain\"))}function pve(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var s=e.bufferedRequestCount,a=new Array(s),n=e.corkedRequestsFree;n.entry=r;for(var c=0,f=!0;r;)a[c]=r,r.isBuf||(f=!1),r=r.next,c+=1;a.allBuffers=f,HY(t,e,!0,e.length,a,\"\",n.finish),e.pendingcb++,e.lastBufferedRequest=null,n.next?(e.corkedRequestsFree=n.next,n.next=null):e.corkedRequestsFree=new fve(e),e.bufferedRequestCount=0}else{for(;r;){var p=r.chunk,h=r.encoding,E=r.callback,C=e.objectMode?1:p.length;if(HY(t,e,!1,C,p,h,E),r=r.next,e.bufferedRequestCount--,e.writing)break}r===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}Yi.prototype._write=function(t,e,r){r(new Tmt(\"_write()\"))};Yi.prototype._writev=null;Yi.prototype.end=function(t,e,r){var s=this._writableState;return typeof t==\"function\"?(r=t,t=null,e=null):typeof e==\"function\"&&(r=e,e=null),t!=null&&this.write(t,e),s.corked&&(s.corked=1,this.uncork()),s.ending||Zmt(this,s,r),this};Object.defineProperty(Yi.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}});function hve(t){return t.ending&&t.length===0&&t.bufferedRequest===null&&!t.finished&&!t.writing}function Kmt(t,e){t._final(function(r){e.pendingcb--,r&&Tw(t,r),e.prefinished=!0,t.emit(\"prefinish\"),ZD(t,e)})}function zmt(t,e){!e.prefinished&&!e.finalCalled&&(typeof t._final==\"function\"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(Kmt,t,e)):(e.prefinished=!0,t.emit(\"prefinish\")))}function ZD(t,e){var r=hve(e);if(r&&(zmt(t,e),e.pendingcb===0&&(e.finished=!0,t.emit(\"finish\"),e.autoDestroy))){var s=t._readableState;(!s||s.autoDestroy&&s.endEmitted)&&t.destroy()}return r}function Zmt(t,e,r){e.ending=!0,ZD(t,e),r&&(e.finished?process.nextTick(r):t.once(\"finish\",r)),e.ended=!0,t.writable=!1}function Xmt(t,e,r){var s=t.entry;for(t.entry=null;s;){var a=s.callback;e.pendingcb--,a(r),s=s.next}e.corkedRequestsFree.next=t}Object.defineProperty(Yi.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}});Yi.prototype.destroy=jY.destroy;Yi.prototype._undestroy=jY.undestroy;Yi.prototype._destroy=function(t,e){e(t)}});var Ym=_((ktr,mve)=>{\"use strict\";var $mt=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};mve.exports=dA;var dve=YY(),WY=GY();cg()(dA,dve);for(qY=$mt(WY.prototype),dN=0;dN<qY.length;dN++)mN=qY[dN],dA.prototype[mN]||(dA.prototype[mN]=WY.prototype[mN]);var qY,mN,dN;function dA(t){if(!(this instanceof dA))return new dA(t);dve.call(this,t),WY.call(this,t),this.allowHalfOpen=!0,t&&(t.readable===!1&&(this.readable=!1),t.writable===!1&&(this.writable=!1),t.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once(\"end\",eyt)))}Object.defineProperty(dA.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(dA.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(dA.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}});function eyt(){this._writableState.ended||process.nextTick(tyt,this)}function tyt(t){t.end()}Object.defineProperty(dA.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var Ive=_((VY,Eve)=>{var yN=Ie(\"buffer\"),ah=yN.Buffer;function yve(t,e){for(var r in t)e[r]=t[r]}ah.from&&ah.alloc&&ah.allocUnsafe&&ah.allocUnsafeSlow?Eve.exports=yN:(yve(yN,VY),VY.Buffer=Fw);function Fw(t,e,r){return ah(t,e,r)}yve(ah,Fw);Fw.from=function(t,e,r){if(typeof t==\"number\")throw new TypeError(\"Argument must not be a number\");return ah(t,e,r)};Fw.alloc=function(t,e,r){if(typeof t!=\"number\")throw new TypeError(\"Argument must be a number\");var s=ah(t);return e!==void 0?typeof r==\"string\"?s.fill(e,r):s.fill(e):s.fill(0),s};Fw.allocUnsafe=function(t){if(typeof t!=\"number\")throw new TypeError(\"Argument must be a number\");return ah(t)};Fw.allocUnsafeSlow=function(t){if(typeof t!=\"number\")throw new TypeError(\"Argument must be a number\");return yN.SlowBuffer(t)}});var zY=_(wve=>{\"use strict\";var KY=Ive().Buffer,Cve=KY.isEncoding||function(t){switch(t=\"\"+t,t&&t.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function ryt(t){if(!t)return\"utf8\";for(var e;;)switch(t){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return t;default:if(e)return;t=(\"\"+t).toLowerCase(),e=!0}}function nyt(t){var e=ryt(t);if(typeof e!=\"string\"&&(KY.isEncoding===Cve||!Cve(t)))throw new Error(\"Unknown encoding: \"+t);return e||t}wve.StringDecoder=$D;function $D(t){this.encoding=nyt(t);var e;switch(this.encoding){case\"utf16le\":this.text=cyt,this.end=uyt,e=4;break;case\"utf8\":this.fillLast=oyt,e=4;break;case\"base64\":this.text=fyt,this.end=Ayt,e=3;break;default:this.write=pyt,this.end=hyt;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=KY.allocUnsafe(e)}$D.prototype.write=function(t){if(t.length===0)return\"\";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return\"\";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||\"\"};$D.prototype.end=lyt;$D.prototype.text=ayt;$D.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function JY(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function iyt(t,e,r){var s=e.length-1;if(s<r)return 0;var a=JY(e[s]);return a>=0?(a>0&&(t.lastNeed=a-1),a):--s<r||a===-2?0:(a=JY(e[s]),a>=0?(a>0&&(t.lastNeed=a-2),a):--s<r||a===-2?0:(a=JY(e[s]),a>=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function syt(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,\"\\uFFFD\";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,\"\\uFFFD\";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,\"\\uFFFD\"}}function oyt(t){var e=this.lastTotal-this.lastNeed,r=syt(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function ayt(t,e){var r=iyt(this,t,e);if(!this.lastNeed)return t.toString(\"utf8\",e);this.lastTotal=r;var s=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,s),t.toString(\"utf8\",e,s)}function lyt(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+\"\\uFFFD\":e}function cyt(t,e){if((t.length-e)%2===0){var r=t.toString(\"utf16le\",e);if(r){var s=r.charCodeAt(r.length-1);if(s>=55296&&s<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString(\"utf16le\",e,t.length-1)}function uyt(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString(\"utf16le\",0,r)}return e}function fyt(t,e){var r=(t.length-e)%3;return r===0?t.toString(\"base64\",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString(\"base64\",e,t.length-r))}function Ayt(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+this.lastChar.toString(\"base64\",0,3-this.lastNeed):e}function pyt(t){return t.toString(this.encoding)}function hyt(t){return t&&t.length?this.write(t):\"\"}});var EN=_((Rtr,Sve)=>{\"use strict\";var Bve=lg().codes.ERR_STREAM_PREMATURE_CLOSE;function gyt(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,s=new Array(r),a=0;a<r;a++)s[a]=arguments[a];t.apply(this,s)}}}function dyt(){}function myt(t){return t.setHeader&&typeof t.abort==\"function\"}function vve(t,e,r){if(typeof e==\"function\")return vve(t,null,e);e||(e={}),r=gyt(r||dyt);var s=e.readable||e.readable!==!1&&t.readable,a=e.writable||e.writable!==!1&&t.writable,n=function(){t.writable||f()},c=t._writableState&&t._writableState.finished,f=function(){a=!1,c=!0,s||r.call(t)},p=t._readableState&&t._readableState.endEmitted,h=function(){s=!1,p=!0,a||r.call(t)},E=function(I){r.call(t,I)},C=function(){var I;if(s&&!p)return(!t._readableState||!t._readableState.ended)&&(I=new Bve),r.call(t,I);if(a&&!c)return(!t._writableState||!t._writableState.ended)&&(I=new Bve),r.call(t,I)},S=function(){t.req.on(\"finish\",f)};return myt(t)?(t.on(\"complete\",f),t.on(\"abort\",C),t.req?S():t.on(\"request\",S)):a&&!t._writableState&&(t.on(\"end\",n),t.on(\"close\",n)),t.on(\"end\",h),t.on(\"finish\",f),e.error!==!1&&t.on(\"error\",E),t.on(\"close\",C),function(){t.removeListener(\"complete\",f),t.removeListener(\"abort\",C),t.removeListener(\"request\",S),t.req&&t.req.removeListener(\"finish\",f),t.removeListener(\"end\",n),t.removeListener(\"close\",n),t.removeListener(\"finish\",f),t.removeListener(\"end\",h),t.removeListener(\"error\",E),t.removeListener(\"close\",C)}}Sve.exports=vve});var Pve=_((Ttr,Dve)=>{\"use strict\";var IN;function fg(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var yyt=EN(),Ag=Symbol(\"lastResolve\"),Vm=Symbol(\"lastReject\"),eP=Symbol(\"error\"),CN=Symbol(\"ended\"),Jm=Symbol(\"lastPromise\"),ZY=Symbol(\"handlePromise\"),Km=Symbol(\"stream\");function pg(t,e){return{value:t,done:e}}function Eyt(t){var e=t[Ag];if(e!==null){var r=t[Km].read();r!==null&&(t[Jm]=null,t[Ag]=null,t[Vm]=null,e(pg(r,!1)))}}function Iyt(t){process.nextTick(Eyt,t)}function Cyt(t,e){return function(r,s){t.then(function(){if(e[CN]){r(pg(void 0,!0));return}e[ZY](r,s)},s)}}var wyt=Object.getPrototypeOf(function(){}),Byt=Object.setPrototypeOf((IN={get stream(){return this[Km]},next:function(){var e=this,r=this[eP];if(r!==null)return Promise.reject(r);if(this[CN])return Promise.resolve(pg(void 0,!0));if(this[Km].destroyed)return new Promise(function(c,f){process.nextTick(function(){e[eP]?f(e[eP]):c(pg(void 0,!0))})});var s=this[Jm],a;if(s)a=new Promise(Cyt(s,this));else{var n=this[Km].read();if(n!==null)return Promise.resolve(pg(n,!1));a=new Promise(this[ZY])}return this[Jm]=a,a}},fg(IN,Symbol.asyncIterator,function(){return this}),fg(IN,\"return\",function(){var e=this;return new Promise(function(r,s){e[Km].destroy(null,function(a){if(a){s(a);return}r(pg(void 0,!0))})})}),IN),wyt),vyt=function(e){var r,s=Object.create(Byt,(r={},fg(r,Km,{value:e,writable:!0}),fg(r,Ag,{value:null,writable:!0}),fg(r,Vm,{value:null,writable:!0}),fg(r,eP,{value:null,writable:!0}),fg(r,CN,{value:e._readableState.endEmitted,writable:!0}),fg(r,ZY,{value:function(n,c){var f=s[Km].read();f?(s[Jm]=null,s[Ag]=null,s[Vm]=null,n(pg(f,!1))):(s[Ag]=n,s[Vm]=c)},writable:!0}),r));return s[Jm]=null,yyt(e,function(a){if(a&&a.code!==\"ERR_STREAM_PREMATURE_CLOSE\"){var n=s[Vm];n!==null&&(s[Jm]=null,s[Ag]=null,s[Vm]=null,n(a)),s[eP]=a;return}var c=s[Ag];c!==null&&(s[Jm]=null,s[Ag]=null,s[Vm]=null,c(pg(void 0,!0))),s[CN]=!0}),e.on(\"readable\",Iyt.bind(null,s)),s};Dve.exports=vyt});var Qve=_((Ftr,kve)=>{\"use strict\";function bve(t,e,r,s,a,n,c){try{var f=t[n](c),p=f.value}catch(h){r(h);return}f.done?e(p):Promise.resolve(p).then(s,a)}function Syt(t){return function(){var e=this,r=arguments;return new Promise(function(s,a){var n=t.apply(e,r);function c(p){bve(n,s,a,c,f,\"next\",p)}function f(p){bve(n,s,a,c,f,\"throw\",p)}c(void 0)})}}function xve(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,s)}return r}function Dyt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?xve(Object(r),!0).forEach(function(s){Pyt(t,s,r[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):xve(Object(r)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(r,s))})}return t}function Pyt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var byt=lg().codes.ERR_INVALID_ARG_TYPE;function xyt(t,e,r){var s;if(e&&typeof e.next==\"function\")s=e;else if(e&&e[Symbol.asyncIterator])s=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])s=e[Symbol.iterator]();else throw new byt(\"iterable\",[\"Iterable\"],e);var a=new t(Dyt({objectMode:!0},r)),n=!1;a._read=function(){n||(n=!0,c())};function c(){return f.apply(this,arguments)}function f(){return f=Syt(function*(){try{var p=yield s.next(),h=p.value,E=p.done;E?a.push(null):a.push(yield h)?c():n=!1}catch(C){a.destroy(C)}}),f.apply(this,arguments)}return a}kve.exports=xyt});var YY=_((Otr,Hve)=>{\"use strict\";Hve.exports=bn;var Nw;bn.ReadableState=Nve;var Ntr=Ie(\"events\").EventEmitter,Fve=function(e,r){return e.listeners(r).length},rP=TY(),wN=Ie(\"buffer\").Buffer,kyt=global.Uint8Array||function(){};function Qyt(t){return wN.from(t)}function Ryt(t){return wN.isBuffer(t)||t instanceof kyt}var XY=Ie(\"util\"),cn;XY&&XY.debuglog?cn=XY.debuglog(\"stream\"):cn=function(){};var Tyt=eve(),sV=OY(),Fyt=LY(),Nyt=Fyt.getHighWaterMark,BN=lg().codes,Oyt=BN.ERR_INVALID_ARG_TYPE,Lyt=BN.ERR_STREAM_PUSH_AFTER_EOF,Myt=BN.ERR_METHOD_NOT_IMPLEMENTED,Uyt=BN.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Ow,$Y,eV;cg()(bn,rP);var tP=sV.errorOrDestroy,tV=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function _yt(t,e,r){if(typeof t.prependListener==\"function\")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function Nve(t,e,r){Nw=Nw||Ym(),t=t||{},typeof r!=\"boolean\"&&(r=e instanceof Nw),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=Nyt(this,t,\"readableHighWaterMark\",r),this.buffer=new Tyt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(Ow||(Ow=zY().StringDecoder),this.decoder=new Ow(t.encoding),this.encoding=t.encoding)}function bn(t){if(Nw=Nw||Ym(),!(this instanceof bn))return new bn(t);var e=this instanceof Nw;this._readableState=new Nve(t,this,e),this.readable=!0,t&&(typeof t.read==\"function\"&&(this._read=t.read),typeof t.destroy==\"function\"&&(this._destroy=t.destroy)),rP.call(this)}Object.defineProperty(bn.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});bn.prototype.destroy=sV.destroy;bn.prototype._undestroy=sV.undestroy;bn.prototype._destroy=function(t,e){e(t)};bn.prototype.push=function(t,e){var r=this._readableState,s;return r.objectMode?s=!0:typeof t==\"string\"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=wN.from(t,e),e=\"\"),s=!0),Ove(this,t,e,!1,s)};bn.prototype.unshift=function(t){return Ove(this,t,null,!0,!1)};function Ove(t,e,r,s,a){cn(\"readableAddChunk\",e);var n=t._readableState;if(e===null)n.reading=!1,Gyt(t,n);else{var c;if(a||(c=Hyt(n,e)),c)tP(t,c);else if(n.objectMode||e&&e.length>0)if(typeof e!=\"string\"&&!n.objectMode&&Object.getPrototypeOf(e)!==wN.prototype&&(e=Qyt(e)),s)n.endEmitted?tP(t,new Uyt):rV(t,n,e,!0);else if(n.ended)tP(t,new Lyt);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?rV(t,n,e,!1):iV(t,n)):rV(t,n,e,!1)}else s||(n.reading=!1,iV(t,n))}return!n.ended&&(n.length<n.highWaterMark||n.length===0)}function rV(t,e,r,s){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,t.emit(\"data\",r)):(e.length+=e.objectMode?1:r.length,s?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&vN(t)),iV(t,e)}function Hyt(t,e){var r;return!Ryt(e)&&typeof e!=\"string\"&&e!==void 0&&!t.objectMode&&(r=new Oyt(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],e)),r}bn.prototype.isPaused=function(){return this._readableState.flowing===!1};bn.prototype.setEncoding=function(t){Ow||(Ow=zY().StringDecoder);var e=new Ow(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,s=\"\";r!==null;)s+=e.write(r.data),r=r.next;return this._readableState.buffer.clear(),s!==\"\"&&this._readableState.buffer.push(s),this._readableState.length=s.length,this};var Rve=1073741824;function jyt(t){return t>=Rve?t=Rve:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function Tve(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=jyt(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}bn.prototype.read=function(t){cn(\"read\",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return cn(\"read: emitReadable\",e.length,e.ended),e.length===0&&e.ended?nV(this):vN(this),null;if(t=Tve(t,e),t===0&&e.ended)return e.length===0&&nV(this),null;var s=e.needReadable;cn(\"need readable\",s),(e.length===0||e.length-t<e.highWaterMark)&&(s=!0,cn(\"length less than watermark\",s)),e.ended||e.reading?(s=!1,cn(\"reading or ended\",s)):s&&(cn(\"do read\"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=Tve(r,e)));var a;return t>0?a=Uve(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&nV(this)),a!==null&&this.emit(\"data\",a),a};function Gyt(t,e){if(cn(\"onEofChunk\"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?vN(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Lve(t)))}}function vN(t){var e=t._readableState;cn(\"emitReadable\",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(cn(\"emitReadable\",e.flowing),e.emittedReadable=!0,process.nextTick(Lve,t))}function Lve(t){var e=t._readableState;cn(\"emitReadable_\",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit(\"readable\"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,oV(t)}function iV(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(qyt,t,e))}function qyt(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var r=e.length;if(cn(\"maybeReadMore read 0\"),t.read(0),r===e.length)break}e.readingMore=!1}bn.prototype._read=function(t){tP(this,new Myt(\"_read()\"))};bn.prototype.pipe=function(t,e){var r=this,s=this._readableState;switch(s.pipesCount){case 0:s.pipes=t;break;case 1:s.pipes=[s.pipes,t];break;default:s.pipes.push(t);break}s.pipesCount+=1,cn(\"pipe count=%d opts=%j\",s.pipesCount,e);var a=(!e||e.end!==!1)&&t!==process.stdout&&t!==process.stderr,n=a?f:T;s.endEmitted?process.nextTick(n):r.once(\"end\",n),t.on(\"unpipe\",c);function c(N,U){cn(\"onunpipe\"),N===r&&U&&U.hasUnpiped===!1&&(U.hasUnpiped=!0,E())}function f(){cn(\"onend\"),t.end()}var p=Wyt(r);t.on(\"drain\",p);var h=!1;function E(){cn(\"cleanup\"),t.removeListener(\"close\",b),t.removeListener(\"finish\",I),t.removeListener(\"drain\",p),t.removeListener(\"error\",S),t.removeListener(\"unpipe\",c),r.removeListener(\"end\",f),r.removeListener(\"end\",T),r.removeListener(\"data\",C),h=!0,s.awaitDrain&&(!t._writableState||t._writableState.needDrain)&&p()}r.on(\"data\",C);function C(N){cn(\"ondata\");var U=t.write(N);cn(\"dest.write\",U),U===!1&&((s.pipesCount===1&&s.pipes===t||s.pipesCount>1&&_ve(s.pipes,t)!==-1)&&!h&&(cn(\"false write response, pause\",s.awaitDrain),s.awaitDrain++),r.pause())}function S(N){cn(\"onerror\",N),T(),t.removeListener(\"error\",S),Fve(t,\"error\")===0&&tP(t,N)}_yt(t,\"error\",S);function b(){t.removeListener(\"finish\",I),T()}t.once(\"close\",b);function I(){cn(\"onfinish\"),t.removeListener(\"close\",b),T()}t.once(\"finish\",I);function T(){cn(\"unpipe\"),r.unpipe(t)}return t.emit(\"pipe\",r),s.flowing||(cn(\"pipe resume\"),r.resume()),t};function Wyt(t){return function(){var r=t._readableState;cn(\"pipeOnDrain\",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&Fve(t,\"data\")&&(r.flowing=!0,oV(t))}}bn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit(\"unpipe\",this,r),this);if(!t){var s=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n<a;n++)s[n].emit(\"unpipe\",this,{hasUnpiped:!1});return this}var c=_ve(e.pipes,t);return c===-1?this:(e.pipes.splice(c,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),t.emit(\"unpipe\",this,r),this)};bn.prototype.on=function(t,e){var r=rP.prototype.on.call(this,t,e),s=this._readableState;return t===\"data\"?(s.readableListening=this.listenerCount(\"readable\")>0,s.flowing!==!1&&this.resume()):t===\"readable\"&&!s.endEmitted&&!s.readableListening&&(s.readableListening=s.needReadable=!0,s.flowing=!1,s.emittedReadable=!1,cn(\"on readable\",s.length,s.reading),s.length?vN(this):s.reading||process.nextTick(Yyt,this)),r};bn.prototype.addListener=bn.prototype.on;bn.prototype.removeListener=function(t,e){var r=rP.prototype.removeListener.call(this,t,e);return t===\"readable\"&&process.nextTick(Mve,this),r};bn.prototype.removeAllListeners=function(t){var e=rP.prototype.removeAllListeners.apply(this,arguments);return(t===\"readable\"||t===void 0)&&process.nextTick(Mve,this),e};function Mve(t){var e=t._readableState;e.readableListening=t.listenerCount(\"readable\")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount(\"data\")>0&&t.resume()}function Yyt(t){cn(\"readable nexttick read 0\"),t.read(0)}bn.prototype.resume=function(){var t=this._readableState;return t.flowing||(cn(\"resume\"),t.flowing=!t.readableListening,Vyt(this,t)),t.paused=!1,this};function Vyt(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(Jyt,t,e))}function Jyt(t,e){cn(\"resume\",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit(\"resume\"),oV(t),e.flowing&&!e.reading&&t.read(0)}bn.prototype.pause=function(){return cn(\"call pause flowing=%j\",this._readableState.flowing),this._readableState.flowing!==!1&&(cn(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this._readableState.paused=!0,this};function oV(t){var e=t._readableState;for(cn(\"flow\",e.flowing);e.flowing&&t.read()!==null;);}bn.prototype.wrap=function(t){var e=this,r=this._readableState,s=!1;t.on(\"end\",function(){if(cn(\"wrapped end\"),r.decoder&&!r.ended){var c=r.decoder.end();c&&c.length&&e.push(c)}e.push(null)}),t.on(\"data\",function(c){if(cn(\"wrapped data\"),r.decoder&&(c=r.decoder.write(c)),!(r.objectMode&&c==null)&&!(!r.objectMode&&(!c||!c.length))){var f=e.push(c);f||(s=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]==\"function\"&&(this[a]=function(f){return function(){return t[f].apply(t,arguments)}}(a));for(var n=0;n<tV.length;n++)t.on(tV[n],this.emit.bind(this,tV[n]));return this._read=function(c){cn(\"wrapped _read\",c),s&&(s=!1,t.resume())},this};typeof Symbol==\"function\"&&(bn.prototype[Symbol.asyncIterator]=function(){return $Y===void 0&&($Y=Pve()),$Y(this)});Object.defineProperty(bn.prototype,\"readableHighWaterMark\",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(bn.prototype,\"readableBuffer\",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(bn.prototype,\"readableFlowing\",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});bn._fromList=Uve;Object.defineProperty(bn.prototype,\"readableLength\",{enumerable:!1,get:function(){return this._readableState.length}});function Uve(t,e){if(e.length===0)return null;var r;return e.objectMode?r=e.buffer.shift():!t||t>=e.length?(e.decoder?r=e.buffer.join(\"\"):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function nV(t){var e=t._readableState;cn(\"endReadable\",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(Kyt,e,t))}function Kyt(t,e){if(cn(\"endReadableNT\",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit(\"end\"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol==\"function\"&&(bn.from=function(t,e){return eV===void 0&&(eV=Qve()),eV(bn,t,e)});function _ve(t,e){for(var r=0,s=t.length;r<s;r++)if(t[r]===e)return r;return-1}});var aV=_((Ltr,Gve)=>{\"use strict\";Gve.exports=lh;var SN=lg().codes,zyt=SN.ERR_METHOD_NOT_IMPLEMENTED,Zyt=SN.ERR_MULTIPLE_CALLBACK,Xyt=SN.ERR_TRANSFORM_ALREADY_TRANSFORMING,$yt=SN.ERR_TRANSFORM_WITH_LENGTH_0,DN=Ym();cg()(lh,DN);function eEt(t,e){var r=this._transformState;r.transforming=!1;var s=r.writecb;if(s===null)return this.emit(\"error\",new Zyt);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),s(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function lh(t){if(!(this instanceof lh))return new lh(t);DN.call(this,t),this._transformState={afterTransform:eEt.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(typeof t.transform==\"function\"&&(this._transform=t.transform),typeof t.flush==\"function\"&&(this._flush=t.flush)),this.on(\"prefinish\",tEt)}function tEt(){var t=this;typeof this._flush==\"function\"&&!this._readableState.destroyed?this._flush(function(e,r){jve(t,e,r)}):jve(this,null,null)}lh.prototype.push=function(t,e){return this._transformState.needTransform=!1,DN.prototype.push.call(this,t,e)};lh.prototype._transform=function(t,e,r){r(new zyt(\"_transform()\"))};lh.prototype._write=function(t,e,r){var s=this._transformState;if(s.writecb=r,s.writechunk=t,s.writeencoding=e,!s.transforming){var a=this._readableState;(s.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};lh.prototype._read=function(t){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};lh.prototype._destroy=function(t,e){DN.prototype._destroy.call(this,t,function(r){e(r)})};function jve(t,e,r){if(e)return t.emit(\"error\",e);if(r!=null&&t.push(r),t._writableState.length)throw new $yt;if(t._transformState.transforming)throw new Xyt;return t.push(null)}});var Yve=_((Mtr,Wve)=>{\"use strict\";Wve.exports=nP;var qve=aV();cg()(nP,qve);function nP(t){if(!(this instanceof nP))return new nP(t);qve.call(this,t)}nP.prototype._transform=function(t,e,r){r(null,t)}});var Zve=_((Utr,zve)=>{\"use strict\";var lV;function rEt(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var Kve=lg().codes,nEt=Kve.ERR_MISSING_ARGS,iEt=Kve.ERR_STREAM_DESTROYED;function Vve(t){if(t)throw t}function sEt(t){return t.setHeader&&typeof t.abort==\"function\"}function oEt(t,e,r,s){s=rEt(s);var a=!1;t.on(\"close\",function(){a=!0}),lV===void 0&&(lV=EN()),lV(t,{readable:e,writable:r},function(c){if(c)return s(c);a=!0,s()});var n=!1;return function(c){if(!a&&!n){if(n=!0,sEt(t))return t.abort();if(typeof t.destroy==\"function\")return t.destroy();s(c||new iEt(\"pipe\"))}}}function Jve(t){t()}function aEt(t,e){return t.pipe(e)}function lEt(t){return!t.length||typeof t[t.length-1]!=\"function\"?Vve:t.pop()}function cEt(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var s=lEt(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new nEt(\"streams\");var a,n=e.map(function(c,f){var p=f<e.length-1,h=f>0;return oEt(c,p,h,function(E){a||(a=E),E&&n.forEach(Jve),!p&&(n.forEach(Jve),s(a))})});return e.reduce(aEt)}zve.exports=cEt});var Lw=_((zc,sP)=>{var iP=Ie(\"stream\");process.env.READABLE_STREAM===\"disable\"&&iP?(sP.exports=iP.Readable,Object.assign(sP.exports,iP),sP.exports.Stream=iP):(zc=sP.exports=YY(),zc.Stream=iP||zc,zc.Readable=zc,zc.Writable=GY(),zc.Duplex=Ym(),zc.Transform=aV(),zc.PassThrough=Yve(),zc.finished=EN(),zc.pipeline=Zve())});var eSe=_((_tr,$ve)=>{\"use strict\";var{Buffer:cf}=Ie(\"buffer\"),Xve=Symbol.for(\"BufferList\");function Ci(t){if(!(this instanceof Ci))return new Ci(t);Ci._init.call(this,t)}Ci._init=function(e){Object.defineProperty(this,Xve,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};Ci.prototype._new=function(e){return new Ci(e)};Ci.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let s=0;s<this._bufs.length;s++){let a=r+this._bufs[s].length;if(e<a||s===this._bufs.length-1)return[s,e-r];r=a}};Ci.prototype._reverseOffset=function(t){let e=t[0],r=t[1];for(let s=0;s<e;s++)r+=this._bufs[s].length;return r};Ci.prototype.get=function(e){if(e>this.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};Ci.prototype.slice=function(e,r){return typeof e==\"number\"&&e<0&&(e+=this.length),typeof r==\"number\"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};Ci.prototype.copy=function(e,r,s,a){if((typeof s!=\"number\"||s<0)&&(s=0),(typeof a!=\"number\"||a>this.length)&&(a=this.length),s>=this.length||a<=0)return e||cf.alloc(0);let n=!!e,c=this._offset(s),f=a-s,p=f,h=n&&r||0,E=c[1];if(s===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:cf.concat(this._bufs,this.length);for(let C=0;C<this._bufs.length;C++)this._bufs[C].copy(e,h),h+=this._bufs[C].length;return e}if(p<=this._bufs[c[0]].length-E)return n?this._bufs[c[0]].copy(e,r,E,E+p):this._bufs[c[0]].slice(E,E+p);n||(e=cf.allocUnsafe(f));for(let C=c[0];C<this._bufs.length;C++){let S=this._bufs[C].length-E;if(p>S)this._bufs[C].copy(e,h,E),h+=S;else{this._bufs[C].copy(e,h,E,E+p),h+=S;break}p-=S,E&&(E=0)}return e.length>h?e.slice(0,h):e};Ci.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!=\"number\"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let s=this._offset(e),a=this._offset(r),n=this._bufs.slice(s[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),s[1]!==0&&(n[0]=n[0].slice(s[1])),this._new(n)};Ci.prototype.toString=function(e,r,s){return this.slice(r,s).toString(e)};Ci.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};Ci.prototype.duplicate=function(){let e=this._new();for(let r=0;r<this._bufs.length;r++)e.append(this._bufs[r]);return e};Ci.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(cf.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let r=0;r<e.length;r++)this.append(e[r]);else if(this._isBufferList(e))for(let r=0;r<e._bufs.length;r++)this.append(e._bufs[r]);else typeof e==\"number\"&&(e=e.toString()),this._appendBuffer(cf.from(e));return this};Ci.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};Ci.prototype.indexOf=function(t,e,r){if(r===void 0&&typeof e==\"string\"&&(r=e,e=void 0),typeof t==\"function\"||Array.isArray(t))throw new TypeError('The \"value\" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof t==\"number\"?t=cf.from([t]):typeof t==\"string\"?t=cf.from(t,r):this._isBufferList(t)?t=t.slice():Array.isArray(t.buffer)?t=cf.from(t.buffer,t.byteOffset,t.byteLength):cf.isBuffer(t)||(t=cf.from(t)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=this._offset(e),a=s[0],n=s[1];for(;a<this._bufs.length;a++){let c=this._bufs[a];for(;n<c.length;)if(c.length-n>=t.length){let p=c.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=c.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};Ci.prototype._match=function(t,e){if(this.length-t<e.length)return!1;for(let r=0;r<e.length;r++)if(this.get(t+r)!==e[r])return!1;return!0};(function(){let t={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in t)(function(r){t[r]===null?Ci.prototype[r]=function(s,a){return this.slice(s,s+a)[r](0,a)}:Ci.prototype[r]=function(s=0){return this.slice(s,s+t[r])[r](0)}})(e)})();Ci.prototype._isBufferList=function(e){return e instanceof Ci||Ci.isBufferList(e)};Ci.isBufferList=function(e){return e!=null&&e[Xve]};$ve.exports=Ci});var tSe=_((Htr,PN)=>{\"use strict\";var cV=Lw().Duplex,uEt=cg(),oP=eSe();function ra(t){if(!(this instanceof ra))return new ra(t);if(typeof t==\"function\"){this._callback=t;let e=function(s){this._callback&&(this._callback(s),this._callback=null)}.bind(this);this.on(\"pipe\",function(s){s.on(\"error\",e)}),this.on(\"unpipe\",function(s){s.removeListener(\"error\",e)}),t=null}oP._init.call(this,t),cV.call(this)}uEt(ra,cV);Object.assign(ra.prototype,oP.prototype);ra.prototype._new=function(e){return new ra(e)};ra.prototype._write=function(e,r,s){this._appendBuffer(e),typeof s==\"function\"&&s()};ra.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};ra.prototype.end=function(e){cV.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};ra.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};ra.prototype._isBufferList=function(e){return e instanceof ra||e instanceof oP||ra.isBufferList(e)};ra.isBufferList=oP.isBufferList;PN.exports=ra;PN.exports.BufferListStream=ra;PN.exports.BufferList=oP});var AV=_(Uw=>{var fEt=Buffer.alloc,AEt=\"0000000000000000000\",pEt=\"7777777777777777777\",rSe=48,nSe=Buffer.from(\"ustar\\0\",\"binary\"),hEt=Buffer.from(\"00\",\"binary\"),gEt=Buffer.from(\"ustar \",\"binary\"),dEt=Buffer.from(\" \\0\",\"binary\"),mEt=parseInt(\"7777\",8),aP=257,fV=263,yEt=function(t,e,r){return typeof t!=\"number\"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},EEt=function(t){switch(t){case 0:return\"file\";case 1:return\"link\";case 2:return\"symlink\";case 3:return\"character-device\";case 4:return\"block-device\";case 5:return\"directory\";case 6:return\"fifo\";case 7:return\"contiguous-file\";case 72:return\"pax-header\";case 55:return\"pax-global-header\";case 27:return\"gnu-long-link-path\";case 28:case 30:return\"gnu-long-path\"}return null},IEt=function(t){switch(t){case\"file\":return 0;case\"link\":return 1;case\"symlink\":return 2;case\"character-device\":return 3;case\"block-device\":return 4;case\"directory\":return 5;case\"fifo\":return 6;case\"contiguous-file\":return 7;case\"pax-header\":return 72}return 0},iSe=function(t,e,r,s){for(;r<s;r++)if(t[r]===e)return r;return s},sSe=function(t){for(var e=256,r=0;r<148;r++)e+=t[r];for(var s=156;s<512;s++)e+=t[s];return e},hg=function(t,e){return t=t.toString(8),t.length>e?pEt.slice(0,e)+\" \":AEt.slice(0,e-t.length)+t+\" \"};function CEt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],s=t.length-1;s>0;s--){var a=t[s];e?r.push(a):r.push(255-a)}var n=0,c=r.length;for(s=0;s<c;s++)n+=r[s]*Math.pow(256,s);return e?n:-1*n}var gg=function(t,e,r){if(t=t.slice(e,e+r),e=0,t[e]&128)return CEt(t);for(;e<t.length&&t[e]===32;)e++;for(var s=yEt(iSe(t,32,e,t.length),t.length,t.length);e<s&&t[e]===0;)e++;return s===e?0:parseInt(t.slice(e,s).toString(),8)},Mw=function(t,e,r,s){return t.slice(e,iSe(t,0,e,e+r)).toString(s)},uV=function(t){var e=Buffer.byteLength(t),r=Math.floor(Math.log(e)/Math.log(10))+1;return e+r>=Math.pow(10,r)&&r++,e+r+t};Uw.decodeLongPath=function(t,e){return Mw(t,0,t.length,e)};Uw.encodePax=function(t){var e=\"\";t.name&&(e+=uV(\" path=\"+t.name+`\n`)),t.linkname&&(e+=uV(\" linkpath=\"+t.linkname+`\n`));var r=t.pax;if(r)for(var s in r)e+=uV(\" \"+s+\"=\"+r[s]+`\n`);return Buffer.from(e)};Uw.decodePax=function(t){for(var e={};t.length;){for(var r=0;r<t.length&&t[r]!==32;)r++;var s=parseInt(t.slice(0,r).toString(),10);if(!s)return e;var a=t.slice(r+1,s-1).toString(),n=a.indexOf(\"=\");if(n===-1)return e;e[a.slice(0,n)]=a.slice(n+1),t=t.slice(s)}return e};Uw.encode=function(t){var e=fEt(512),r=t.name,s=\"\";if(t.typeflag===5&&r[r.length-1]!==\"/\"&&(r+=\"/\"),Buffer.byteLength(r)!==r.length)return null;for(;Buffer.byteLength(r)>100;){var a=r.indexOf(\"/\");if(a===-1)return null;s+=s?\"/\"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(s)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(hg(t.mode&mEt,6),100),e.write(hg(t.uid,6),108),e.write(hg(t.gid,6),116),e.write(hg(t.size,11),124),e.write(hg(t.mtime.getTime()/1e3|0,11),136),e[156]=rSe+IEt(t.type),t.linkname&&e.write(t.linkname,157),nSe.copy(e,aP),hEt.copy(e,fV),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(hg(t.devmajor||0,6),329),e.write(hg(t.devminor||0,6),337),s&&e.write(s,345),e.write(hg(sSe(e),6),148),e)};Uw.decode=function(t,e,r){var s=t[156]===0?0:t[156]-rSe,a=Mw(t,0,100,e),n=gg(t,100,8),c=gg(t,108,8),f=gg(t,116,8),p=gg(t,124,12),h=gg(t,136,12),E=EEt(s),C=t[157]===0?null:Mw(t,157,100,e),S=Mw(t,265,32),b=Mw(t,297,32),I=gg(t,329,8),T=gg(t,337,8),N=sSe(t);if(N===8*32)return null;if(N!==gg(t,148,8))throw new Error(\"Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?\");if(nSe.compare(t,aP,aP+6)===0)t[345]&&(a=Mw(t,345,155,e)+\"/\"+a);else if(!(gEt.compare(t,aP,aP+6)===0&&dEt.compare(t,fV,fV+2)===0)){if(!r)throw new Error(\"Invalid tar header: unknown format.\")}return s===0&&a&&a[a.length-1]===\"/\"&&(s=5),{name:a,mode:n,uid:c,gid:f,size:p,mtime:new Date(1e3*h),type:E,linkname:C,uname:S,gname:b,devmajor:I,devminor:T}}});var ASe=_((Gtr,fSe)=>{var aSe=Ie(\"util\"),wEt=tSe(),lP=AV(),lSe=Lw().Writable,cSe=Lw().PassThrough,uSe=function(){},oSe=function(t){return t&=511,t&&512-t},BEt=function(t,e){var r=new bN(t,e);return r.end(),r},vEt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},bN=function(t,e){this._parent=t,this.offset=e,cSe.call(this,{autoDestroy:!1})};aSe.inherits(bN,cSe);bN.prototype.destroy=function(t){this._parent.destroy(t)};var ch=function(t){if(!(this instanceof ch))return new ch(t);lSe.call(this,t),t=t||{},this._offset=0,this._buffer=wEt(),this._missing=0,this._partial=!1,this._onparse=uSe,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,s=function(){e._continue()},a=function(S){if(e._locked=!1,S)return e.destroy(S);e._stream||s()},n=function(){e._stream=null;var S=oSe(e._header.size);S?e._parse(S,c):e._parse(512,C),e._locked||s()},c=function(){e._buffer.consume(oSe(e._header.size)),e._parse(512,C),s()},f=function(){var S=e._header.size;e._paxGlobal=lP.decodePax(r.slice(0,S)),r.consume(S),n()},p=function(){var S=e._header.size;e._pax=lP.decodePax(r.slice(0,S)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(S),n()},h=function(){var S=e._header.size;this._gnuLongPath=lP.decodeLongPath(r.slice(0,S),t.filenameEncoding),r.consume(S),n()},E=function(){var S=e._header.size;this._gnuLongLinkPath=lP.decodeLongPath(r.slice(0,S),t.filenameEncoding),r.consume(S),n()},C=function(){var S=e._offset,b;try{b=e._header=lP.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(I){e.emit(\"error\",I)}if(r.consume(512),!b){e._parse(512,C),s();return}if(b.type===\"gnu-long-path\"){e._parse(b.size,h),s();return}if(b.type===\"gnu-long-link-path\"){e._parse(b.size,E),s();return}if(b.type===\"pax-global-header\"){e._parse(b.size,f),s();return}if(b.type===\"pax-header\"){e._parse(b.size,p),s();return}if(e._gnuLongPath&&(b.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(b.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=b=vEt(b,e._pax),e._pax=null),e._locked=!0,!b.size||b.type===\"directory\"){e._parse(512,C),e.emit(\"entry\",b,BEt(e,S),a);return}e._stream=new bN(e,S),e.emit(\"entry\",b,e._stream,a),e._parse(b.size,n),s()};this._onheader=C,this._parse(512,C)};aSe.inherits(ch,lSe);ch.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit(\"error\",t),this.emit(\"close\"),this._stream&&this._stream.emit(\"close\"))};ch.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};ch.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=uSe,this._overflow?this._write(this._overflow,void 0,t):t()}};ch.prototype._write=function(t,e,r){if(!this._destroyed){var s=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.length<n)return this._missing-=t.length,this._overflow=null,s?s.write(t,r):(a.append(t),r());this._cb=r,this._missing=0;var c=null;t.length>n&&(c=t.slice(n),t=t.slice(0,n)),s?s.end(t):a.append(t),this._overflow=c,this._onparse()}};ch.prototype._final=function(t){if(this._partial)return this.destroy(new Error(\"Unexpected end of data\"));t()};fSe.exports=ch});var hSe=_((qtr,pSe)=>{pSe.exports=Ie(\"fs\").constants||Ie(\"constants\")});var ESe=_((Wtr,ySe)=>{var _w=hSe(),gSe=aH(),kN=cg(),SEt=Buffer.alloc,dSe=Lw().Readable,Hw=Lw().Writable,DEt=Ie(\"string_decoder\").StringDecoder,xN=AV(),PEt=parseInt(\"755\",8),bEt=parseInt(\"644\",8),mSe=SEt(1024),hV=function(){},pV=function(t,e){e&=511,e&&t.push(mSe.slice(0,512-e))};function xEt(t){switch(t&_w.S_IFMT){case _w.S_IFBLK:return\"block-device\";case _w.S_IFCHR:return\"character-device\";case _w.S_IFDIR:return\"directory\";case _w.S_IFIFO:return\"fifo\";case _w.S_IFLNK:return\"symlink\"}return\"file\"}var QN=function(t){Hw.call(this),this.written=0,this._to=t,this._destroyed=!1};kN(QN,Hw);QN.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};QN.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit(\"close\"))};var RN=function(){Hw.call(this),this.linkname=\"\",this._decoder=new DEt(\"utf-8\"),this._destroyed=!1};kN(RN,Hw);RN.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};RN.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit(\"close\"))};var cP=function(){Hw.call(this),this._destroyed=!1};kN(cP,Hw);cP.prototype._write=function(t,e,r){r(new Error(\"No body allowed for this entry\"))};cP.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit(\"close\"))};var mA=function(t){if(!(this instanceof mA))return new mA(t);dSe.call(this,t),this._drain=hV,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};kN(mA,dSe);mA.prototype.entry=function(t,e,r){if(this._stream)throw new Error(\"already piping an entry\");if(!(this._finalized||this._destroyed)){typeof e==\"function\"&&(r=e,e=null),r||(r=hV);var s=this;if((!t.size||t.type===\"symlink\")&&(t.size=0),t.type||(t.type=xEt(t.mode)),t.mode||(t.mode=t.type===\"directory\"?PEt:bEt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e==\"string\"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return pV(s,t.size),a?process.nextTick(r):this._drain=r,new cP}if(t.type===\"symlink\"&&!t.linkname){var n=new RN;return gSe(n,function(f){if(f)return s.destroy(),r(f);t.linkname=n.linkname,s._encode(t),r()}),n}if(this._encode(t),t.type!==\"file\"&&t.type!==\"contiguous-file\")return process.nextTick(r),new cP;var c=new QN(this);return this._stream=c,gSe(c,function(f){if(s._stream=null,f)return s.destroy(),r(f);if(c.written!==t.size)return s.destroy(),r(new Error(\"size mismatch\"));pV(s,t.size),s._finalizing&&s.finalize(),r()}),c}};mA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(mSe),this.push(null))};mA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit(\"error\",t),this.emit(\"close\"),this._stream&&this._stream.destroy&&this._stream.destroy())};mA.prototype._encode=function(t){if(!t.pax){var e=xN.encode(t);if(e){this.push(e);return}}this._encodePax(t)};mA.prototype._encodePax=function(t){var e=xN.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:\"PaxHeader\",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:\"pax-header\",linkname:t.linkname&&\"PaxHeader\",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(xN.encode(r)),this.push(e),pV(this,e.length),r.size=t.size,r.type=t.type,this.push(xN.encode(r))};mA.prototype._read=function(t){var e=this._drain;this._drain=hV,e()};ySe.exports=mA});var ISe=_(gV=>{gV.extract=ASe();gV.pack=ESe()});var TSe=_(Ra=>{\"use strict\";var jEt=Ra&&Ra.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ra,\"__esModule\",{value:!0});Ra.Minipass=Ra.isWritable=Ra.isReadable=Ra.isStream=void 0;var bSe=typeof process==\"object\"&&process?process:{stdout:null,stderr:null},PV=Ie(\"node:events\"),RSe=jEt(Ie(\"node:stream\")),GEt=Ie(\"node:string_decoder\"),qEt=t=>!!t&&typeof t==\"object\"&&(t instanceof HN||t instanceof RSe.default||(0,Ra.isReadable)(t)||(0,Ra.isWritable)(t));Ra.isStream=qEt;var WEt=t=>!!t&&typeof t==\"object\"&&t instanceof PV.EventEmitter&&typeof t.pipe==\"function\"&&t.pipe!==RSe.default.Writable.prototype.pipe;Ra.isReadable=WEt;var YEt=t=>!!t&&typeof t==\"object\"&&t instanceof PV.EventEmitter&&typeof t.write==\"function\"&&typeof t.end==\"function\";Ra.isWritable=YEt;var uh=Symbol(\"EOF\"),fh=Symbol(\"maybeEmitEnd\"),dg=Symbol(\"emittedEnd\"),NN=Symbol(\"emittingEnd\"),uP=Symbol(\"emittedError\"),ON=Symbol(\"closed\"),xSe=Symbol(\"read\"),LN=Symbol(\"flush\"),kSe=Symbol(\"flushChunk\"),uf=Symbol(\"encoding\"),Gw=Symbol(\"decoder\"),Ks=Symbol(\"flowing\"),fP=Symbol(\"paused\"),qw=Symbol(\"resume\"),zs=Symbol(\"buffer\"),Qa=Symbol(\"pipes\"),Zs=Symbol(\"bufferLength\"),CV=Symbol(\"bufferPush\"),MN=Symbol(\"bufferShift\"),na=Symbol(\"objectMode\"),es=Symbol(\"destroyed\"),wV=Symbol(\"error\"),BV=Symbol(\"emitData\"),QSe=Symbol(\"emitEnd\"),vV=Symbol(\"emitEnd2\"),EA=Symbol(\"async\"),SV=Symbol(\"abort\"),UN=Symbol(\"aborted\"),AP=Symbol(\"signal\"),zm=Symbol(\"dataListeners\"),rc=Symbol(\"discarded\"),pP=t=>Promise.resolve().then(t),VEt=t=>t(),JEt=t=>t===\"end\"||t===\"finish\"||t===\"prefinish\",KEt=t=>t instanceof ArrayBuffer||!!t&&typeof t==\"object\"&&t.constructor&&t.constructor.name===\"ArrayBuffer\"&&t.byteLength>=0,zEt=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),_N=class{src;dest;opts;ondrain;constructor(e,r,s){this.src=e,this.dest=r,this.opts=s,this.ondrain=()=>e[qw](),this.dest.on(\"drain\",this.ondrain)}unpipe(){this.dest.removeListener(\"drain\",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},DV=class extends _N{unpipe(){this.src.removeListener(\"error\",this.proxyErrors),super.unpipe()}constructor(e,r,s){super(e,r,s),this.proxyErrors=a=>r.emit(\"error\",a),e.on(\"error\",this.proxyErrors)}},ZEt=t=>!!t.objectMode,XEt=t=>!t.objectMode&&!!t.encoding&&t.encoding!==\"buffer\",HN=class extends PV.EventEmitter{[Ks]=!1;[fP]=!1;[Qa]=[];[zs]=[];[na];[uf];[EA];[Gw];[uh]=!1;[dg]=!1;[NN]=!1;[ON]=!1;[uP]=null;[Zs]=0;[es]=!1;[AP];[UN]=!1;[zm]=0;[rc]=!1;writable=!0;readable=!0;constructor(...e){let r=e[0]||{};if(super(),r.objectMode&&typeof r.encoding==\"string\")throw new TypeError(\"Encoding and objectMode may not be used together\");ZEt(r)?(this[na]=!0,this[uf]=null):XEt(r)?(this[uf]=r.encoding,this[na]=!1):(this[na]=!1,this[uf]=null),this[EA]=!!r.async,this[Gw]=this[uf]?new GEt.StringDecoder(this[uf]):null,r&&r.debugExposeBuffer===!0&&Object.defineProperty(this,\"buffer\",{get:()=>this[zs]}),r&&r.debugExposePipes===!0&&Object.defineProperty(this,\"pipes\",{get:()=>this[Qa]});let{signal:s}=r;s&&(this[AP]=s,s.aborted?this[SV]():s.addEventListener(\"abort\",()=>this[SV]()))}get bufferLength(){return this[Zs]}get encoding(){return this[uf]}set encoding(e){throw new Error(\"Encoding must be set at instantiation time\")}setEncoding(e){throw new Error(\"Encoding must be set at instantiation time\")}get objectMode(){return this[na]}set objectMode(e){throw new Error(\"objectMode must be set at instantiation time\")}get async(){return this[EA]}set async(e){this[EA]=this[EA]||!!e}[SV](){this[UN]=!0,this.emit(\"abort\",this[AP]?.reason),this.destroy(this[AP]?.reason)}get aborted(){return this[UN]}set aborted(e){}write(e,r,s){if(this[UN])return!1;if(this[uh])throw new Error(\"write after end\");if(this[es])return this.emit(\"error\",Object.assign(new Error(\"Cannot call write after a stream was destroyed\"),{code:\"ERR_STREAM_DESTROYED\"})),!0;typeof r==\"function\"&&(s=r,r=\"utf8\"),r||(r=\"utf8\");let a=this[EA]?pP:VEt;if(!this[na]&&!Buffer.isBuffer(e)){if(zEt(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(KEt(e))e=Buffer.from(e);else if(typeof e!=\"string\")throw new Error(\"Non-contiguous data written to non-objectMode stream\")}return this[na]?(this[Ks]&&this[Zs]!==0&&this[LN](!0),this[Ks]?this.emit(\"data\",e):this[CV](e),this[Zs]!==0&&this.emit(\"readable\"),s&&a(s),this[Ks]):e.length?(typeof e==\"string\"&&!(r===this[uf]&&!this[Gw]?.lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[uf]&&(e=this[Gw].write(e)),this[Ks]&&this[Zs]!==0&&this[LN](!0),this[Ks]?this.emit(\"data\",e):this[CV](e),this[Zs]!==0&&this.emit(\"readable\"),s&&a(s),this[Ks]):(this[Zs]!==0&&this.emit(\"readable\"),s&&a(s),this[Ks])}read(e){if(this[es])return null;if(this[rc]=!1,this[Zs]===0||e===0||e&&e>this[Zs])return this[fh](),null;this[na]&&(e=null),this[zs].length>1&&!this[na]&&(this[zs]=[this[uf]?this[zs].join(\"\"):Buffer.concat(this[zs],this[Zs])]);let r=this[xSe](e||null,this[zs][0]);return this[fh](),r}[xSe](e,r){if(this[na])this[MN]();else{let s=r;e===s.length||e===null?this[MN]():typeof s==\"string\"?(this[zs][0]=s.slice(e),r=s.slice(0,e),this[Zs]-=e):(this[zs][0]=s.subarray(e),r=s.subarray(0,e),this[Zs]-=e)}return this.emit(\"data\",r),!this[zs].length&&!this[uh]&&this.emit(\"drain\"),r}end(e,r,s){return typeof e==\"function\"&&(s=e,e=void 0),typeof r==\"function\"&&(s=r,r=\"utf8\"),e!==void 0&&this.write(e,r),s&&this.once(\"end\",s),this[uh]=!0,this.writable=!1,(this[Ks]||!this[fP])&&this[fh](),this}[qw](){this[es]||(!this[zm]&&!this[Qa].length&&(this[rc]=!0),this[fP]=!1,this[Ks]=!0,this.emit(\"resume\"),this[zs].length?this[LN]():this[uh]?this[fh]():this.emit(\"drain\"))}resume(){return this[qw]()}pause(){this[Ks]=!1,this[fP]=!0,this[rc]=!1}get destroyed(){return this[es]}get flowing(){return this[Ks]}get paused(){return this[fP]}[CV](e){this[na]?this[Zs]+=1:this[Zs]+=e.length,this[zs].push(e)}[MN](){return this[na]?this[Zs]-=1:this[Zs]-=this[zs][0].length,this[zs].shift()}[LN](e=!1){do;while(this[kSe](this[MN]())&&this[zs].length);!e&&!this[zs].length&&!this[uh]&&this.emit(\"drain\")}[kSe](e){return this.emit(\"data\",e),this[Ks]}pipe(e,r){if(this[es])return e;this[rc]=!1;let s=this[dg];return r=r||{},e===bSe.stdout||e===bSe.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,s?r.end&&e.end():(this[Qa].push(r.proxyErrors?new DV(this,e,r):new _N(this,e,r)),this[EA]?pP(()=>this[qw]()):this[qw]()),e}unpipe(e){let r=this[Qa].find(s=>s.dest===e);r&&(this[Qa].length===1?(this[Ks]&&this[zm]===0&&(this[Ks]=!1),this[Qa]=[]):this[Qa].splice(this[Qa].indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let s=super.on(e,r);if(e===\"data\")this[rc]=!1,this[zm]++,!this[Qa].length&&!this[Ks]&&this[qw]();else if(e===\"readable\"&&this[Zs]!==0)super.emit(\"readable\");else if(JEt(e)&&this[dg])super.emit(e),this.removeAllListeners(e);else if(e===\"error\"&&this[uP]){let a=r;this[EA]?pP(()=>a.call(this,this[uP])):a.call(this,this[uP])}return s}removeListener(e,r){return this.off(e,r)}off(e,r){let s=super.off(e,r);return e===\"data\"&&(this[zm]=this.listeners(\"data\").length,this[zm]===0&&!this[rc]&&!this[Qa].length&&(this[Ks]=!1)),s}removeAllListeners(e){let r=super.removeAllListeners(e);return(e===\"data\"||e===void 0)&&(this[zm]=0,!this[rc]&&!this[Qa].length&&(this[Ks]=!1)),r}get emittedEnd(){return this[dg]}[fh](){!this[NN]&&!this[dg]&&!this[es]&&this[zs].length===0&&this[uh]&&(this[NN]=!0,this.emit(\"end\"),this.emit(\"prefinish\"),this.emit(\"finish\"),this[ON]&&this.emit(\"close\"),this[NN]=!1)}emit(e,...r){let s=r[0];if(e!==\"error\"&&e!==\"close\"&&e!==es&&this[es])return!1;if(e===\"data\")return!this[na]&&!s?!1:this[EA]?(pP(()=>this[BV](s)),!0):this[BV](s);if(e===\"end\")return this[QSe]();if(e===\"close\"){if(this[ON]=!0,!this[dg]&&!this[es])return!1;let n=super.emit(\"close\");return this.removeAllListeners(\"close\"),n}else if(e===\"error\"){this[uP]=s,super.emit(wV,s);let n=!this[AP]||this.listeners(\"error\").length?super.emit(\"error\",s):!1;return this[fh](),n}else if(e===\"resume\"){let n=super.emit(\"resume\");return this[fh](),n}else if(e===\"finish\"||e===\"prefinish\"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,...r);return this[fh](),a}[BV](e){for(let s of this[Qa])s.dest.write(e)===!1&&this.pause();let r=this[rc]?!1:super.emit(\"data\",e);return this[fh](),r}[QSe](){return this[dg]?!1:(this[dg]=!0,this.readable=!1,this[EA]?(pP(()=>this[vV]()),!0):this[vV]())}[vV](){if(this[Gw]){let r=this[Gw].end();if(r){for(let s of this[Qa])s.dest.write(r);this[rc]||super.emit(\"data\",r)}}for(let r of this[Qa])r.end();let e=super.emit(\"end\");return this.removeAllListeners(\"end\"),e}async collect(){let e=Object.assign([],{dataLength:0});this[na]||(e.dataLength=0);let r=this.promise();return this.on(\"data\",s=>{e.push(s),this[na]||(e.dataLength+=s.length)}),await r,e}async concat(){if(this[na])throw new Error(\"cannot concat in objectMode\");let e=await this.collect();return this[uf]?e.join(\"\"):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,r)=>{this.on(es,()=>r(new Error(\"stream destroyed\"))),this.on(\"error\",s=>r(s)),this.on(\"end\",()=>e())})}[Symbol.asyncIterator](){this[rc]=!1;let e=!1,r=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return r();let a=this.read();if(a!==null)return Promise.resolve({done:!1,value:a});if(this[uh])return r();let n,c,f=C=>{this.off(\"data\",p),this.off(\"end\",h),this.off(es,E),r(),c(C)},p=C=>{this.off(\"error\",f),this.off(\"end\",h),this.off(es,E),this.pause(),n({value:C,done:!!this[uh]})},h=()=>{this.off(\"error\",f),this.off(\"data\",p),this.off(es,E),r(),n({done:!0,value:void 0})},E=()=>f(new Error(\"stream destroyed\"));return new Promise((C,S)=>{c=S,n=C,this.once(es,E),this.once(\"error\",f),this.once(\"end\",h),this.once(\"data\",p)})},throw:r,return:r,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[rc]=!1;let e=!1,r=()=>(this.pause(),this.off(wV,r),this.off(es,r),this.off(\"end\",r),e=!0,{done:!0,value:void 0}),s=()=>{if(e)return r();let a=this.read();return a===null?r():{done:!1,value:a}};return this.once(\"end\",r),this.once(wV,r),this.once(es,r),{next:s,throw:r,return:r,[Symbol.iterator](){return this}}}destroy(e){if(this[es])return e?this.emit(\"error\",e):this.emit(es),this;this[es]=!0,this[rc]=!0,this[zs].length=0,this[Zs]=0;let r=this;return typeof r.close==\"function\"&&!this[ON]&&r.close(),e?this.emit(\"error\",e):this.emit(es),this}static get isStream(){return Ra.isStream}};Ra.Minipass=HN});var OSe=_((prr,IA)=>{\"use strict\";var gP=Ie(\"crypto\"),{Minipass:$Et}=TSe(),xV=[\"sha512\",\"sha384\",\"sha256\"],QV=[\"sha512\"],eIt=/^[a-z0-9+/]+(?:=?=?)$/i,tIt=/^([a-z0-9]+)-([^?]+)([?\\S*]*)$/,rIt=/^([a-z0-9]+)-([A-Za-z0-9+/=]{44,88})(\\?[\\x21-\\x7E]*)?$/,nIt=/^[\\x21-\\x7E]+$/,dP=t=>t?.length?`?${t.join(\"?\")}`:\"\",kV=class extends $Et{#t;#r;#i;constructor(e){super(),this.size=0,this.opts=e,this.#e(),e?.algorithms?this.algorithms=[...e.algorithms]:this.algorithms=[...QV],this.algorithm!==null&&!this.algorithms.includes(this.algorithm)&&this.algorithms.push(this.algorithm),this.hashes=this.algorithms.map(gP.createHash)}#e(){this.sri=this.opts?.integrity?nc(this.opts?.integrity,this.opts):null,this.expectedSize=this.opts?.size,this.sri?this.sri.isHash?(this.goodSri=!0,this.algorithm=this.sri.algorithm):(this.goodSri=!this.sri.isEmpty(),this.algorithm=this.sri.pickAlgorithm(this.opts)):this.algorithm=null,this.digests=this.goodSri?this.sri[this.algorithm]:null,this.optString=dP(this.opts?.options)}on(e,r){return e===\"size\"&&this.#r?r(this.#r):e===\"integrity\"&&this.#t?r(this.#t):e===\"verified\"&&this.#i?r(this.#i):super.on(e,r)}emit(e,r){return e===\"end\"&&this.#n(),super.emit(e,r)}write(e){return this.size+=e.length,this.hashes.forEach(r=>r.update(e)),super.write(e)}#n(){this.goodSri||this.#e();let e=nc(this.hashes.map((s,a)=>`${this.algorithms[a]}-${s.digest(\"base64\")}${this.optString}`).join(\" \"),this.opts),r=this.goodSri&&e.match(this.sri,this.opts);if(typeof this.expectedSize==\"number\"&&this.size!==this.expectedSize){let s=new Error(`stream size mismatch when checking ${this.sri}.\n  Wanted: ${this.expectedSize}\n  Found: ${this.size}`);s.code=\"EBADSIZE\",s.found=this.size,s.expected=this.expectedSize,s.sri=this.sri,this.emit(\"error\",s)}else if(this.sri&&!r){let s=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${e}. (${this.size} bytes)`);s.code=\"EINTEGRITY\",s.found=e,s.expected=this.digests,s.algorithm=this.algorithm,s.sri=this.sri,this.emit(\"error\",s)}else this.#r=this.size,this.emit(\"size\",this.size),this.#t=e,this.emit(\"integrity\",e),r&&(this.#i=r,this.emit(\"verified\",r))}},Ah=class{get isHash(){return!0}constructor(e,r){let s=r?.strict;this.source=e.trim(),this.digest=\"\",this.algorithm=\"\",this.options=[];let a=this.source.match(s?rIt:tIt);if(!a||s&&!xV.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];n&&(this.options=n.slice(1).split(\"?\"))}hexDigest(){return this.digest&&Buffer.from(this.digest,\"base64\").toString(\"hex\")}toJSON(){return this.toString()}match(e,r){let s=nc(e,r);if(!s)return!1;if(s.isIntegrity){let a=s.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let n=s[a].find(c=>c.digest===this.digest);return n||!1}return s.digest===this.digest?s:!1}toString(e){return e?.strict&&!(xV.includes(this.algorithm)&&this.digest.match(eIt)&&this.options.every(r=>r.match(nIt)))?\"\":`${this.algorithm}-${this.digest}${dP(this.options)}`}};function FSe(t,e,r,s){let a=t!==\"\",n=!1,c=\"\",f=s.length-1;for(let h=0;h<f;h++){let E=Ah.prototype.toString.call(s[h],r);E&&(n=!0,c+=E,c+=e)}let p=Ah.prototype.toString.call(s[f],r);return p&&(n=!0,c+=p),a&&n?t+e+c:t+c}var Zm=class{get isIntegrity(){return!0}toJSON(){return this.toString()}isEmpty(){return Object.keys(this).length===0}toString(e){let r=e?.sep||\" \",s=\"\";if(e?.strict){r=r.replace(/\\S+/g,\" \");for(let a of xV)this[a]&&(s=FSe(s,r,e,this[a]))}else for(let a of Object.keys(this))s=FSe(s,r,e,this[a]);return s}concat(e,r){let s=typeof e==\"string\"?e:hP(e,r);return nc(`${this.toString(r)} ${s}`,r)}hexDigest(){return nc(this,{single:!0}).hexDigest()}merge(e,r){let s=nc(e,r);for(let a in s)if(this[a]){if(!this[a].find(n=>s[a].find(c=>n.digest===c.digest)))throw new Error(\"hashes do not match, cannot update integrity\")}else this[a]=s[a]}match(e,r){let s=nc(e,r);if(!s)return!1;let a=s.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&s[a]&&this[a].find(n=>s[a].find(c=>n.digest===c.digest))||!1}pickAlgorithm(e,r){let s=e?.pickAlgorithm||fIt,a=Object.keys(this).filter(n=>r?.length?r.includes(n):!0);return a.length?a.reduce((n,c)=>s(n,c)||n):null}};IA.exports.parse=nc;function nc(t,e){if(!t)return null;if(typeof t==\"string\")return bV(t,e);if(t.algorithm&&t.digest){let r=new Zm;return r[t.algorithm]=[t],bV(hP(r,e),e)}else return bV(hP(t,e),e)}function bV(t,e){if(e?.single)return new Ah(t,e);let r=t.trim().split(/\\s+/).reduce((s,a)=>{let n=new Ah(a,e);if(n.algorithm&&n.digest){let c=n.algorithm;s[c]||(s[c]=[]),s[c].push(n)}return s},new Zm);return r.isEmpty()?null:r}IA.exports.stringify=hP;function hP(t,e){return t.algorithm&&t.digest?Ah.prototype.toString.call(t,e):typeof t==\"string\"?hP(nc(t,e),e):Zm.prototype.toString.call(t,e)}IA.exports.fromHex=iIt;function iIt(t,e,r){let s=dP(r?.options);return nc(`${e}-${Buffer.from(t,\"hex\").toString(\"base64\")}${s}`,r)}IA.exports.fromData=sIt;function sIt(t,e){let r=e?.algorithms||[...QV],s=dP(e?.options);return r.reduce((a,n)=>{let c=gP.createHash(n).update(t).digest(\"base64\"),f=new Ah(`${n}-${c}${s}`,e);if(f.algorithm&&f.digest){let p=f.algorithm;a[p]||(a[p]=[]),a[p].push(f)}return a},new Zm)}IA.exports.fromStream=oIt;function oIt(t,e){let r=RV(e);return new Promise((s,a)=>{t.pipe(r),t.on(\"error\",a),r.on(\"error\",a);let n;r.on(\"integrity\",c=>{n=c}),r.on(\"end\",()=>s(n)),r.resume()})}IA.exports.checkData=aIt;function aIt(t,e,r){if(e=nc(e,r),!e||!Object.keys(e).length){if(r?.error)throw Object.assign(new Error(\"No valid integrity hashes to check against\"),{code:\"EINTEGRITY\"});return!1}let s=e.pickAlgorithm(r),a=gP.createHash(s).update(t).digest(\"base64\"),n=nc({algorithm:s,digest:a}),c=n.match(e,r);if(r=r||{},c||!r.error)return c;if(typeof r.size==\"number\"&&t.length!==r.size){let f=new Error(`data size mismatch when checking ${e}.\n  Wanted: ${r.size}\n  Found: ${t.length}`);throw f.code=\"EBADSIZE\",f.found=t.length,f.expected=r.size,f.sri=e,f}else{let f=new Error(`Integrity checksum failed when using ${s}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw f.code=\"EINTEGRITY\",f.found=n,f.expected=e,f.algorithm=s,f.sri=e,f}}IA.exports.checkStream=lIt;function lIt(t,e,r){if(r=r||Object.create(null),r.integrity=e,e=nc(e,r),!e||!Object.keys(e).length)return Promise.reject(Object.assign(new Error(\"No valid integrity hashes to check against\"),{code:\"EINTEGRITY\"}));let s=RV(r);return new Promise((a,n)=>{t.pipe(s),t.on(\"error\",n),s.on(\"error\",n);let c;s.on(\"verified\",f=>{c=f}),s.on(\"end\",()=>a(c)),s.resume()})}IA.exports.integrityStream=RV;function RV(t=Object.create(null)){return new kV(t)}IA.exports.create=cIt;function cIt(t){let e=t?.algorithms||[...QV],r=dP(t?.options),s=e.map(gP.createHash);return{update:function(a,n){return s.forEach(c=>c.update(a,n)),this},digest:function(){return e.reduce((n,c)=>{let f=s.shift().digest(\"base64\"),p=new Ah(`${c}-${f}${r}`,t);if(p.algorithm&&p.digest){let h=p.algorithm;n[h]||(n[h]=[]),n[h].push(p)}return n},new Zm)}}}var uIt=gP.getHashes(),NSe=[\"md5\",\"whirlpool\",\"sha1\",\"sha224\",\"sha256\",\"sha384\",\"sha512\",\"sha3\",\"sha3-256\",\"sha3-384\",\"sha3-512\",\"sha3_256\",\"sha3_384\",\"sha3_512\"].filter(t=>uIt.includes(t));function fIt(t,e){return NSe.indexOf(t.toLowerCase())>=NSe.indexOf(e.toLowerCase())?t:e}});var TV=_(mg=>{\"use strict\";Object.defineProperty(mg,\"__esModule\",{value:!0});mg.Signature=mg.Envelope=void 0;mg.Envelope={fromJSON(t){return{payload:jN(t.payload)?Buffer.from(LSe(t.payload)):Buffer.alloc(0),payloadType:jN(t.payloadType)?globalThis.String(t.payloadType):\"\",signatures:globalThis.Array.isArray(t?.signatures)?t.signatures.map(e=>mg.Signature.fromJSON(e)):[]}},toJSON(t){let e={};return t.payload.length!==0&&(e.payload=MSe(t.payload)),t.payloadType!==\"\"&&(e.payloadType=t.payloadType),t.signatures?.length&&(e.signatures=t.signatures.map(r=>mg.Signature.toJSON(r))),e}};mg.Signature={fromJSON(t){return{sig:jN(t.sig)?Buffer.from(LSe(t.sig)):Buffer.alloc(0),keyid:jN(t.keyid)?globalThis.String(t.keyid):\"\"}},toJSON(t){let e={};return t.sig.length!==0&&(e.sig=MSe(t.sig)),t.keyid!==\"\"&&(e.keyid=t.keyid),e}};function LSe(t){return Uint8Array.from(globalThis.Buffer.from(t,\"base64\"))}function MSe(t){return globalThis.Buffer.from(t).toString(\"base64\")}function jN(t){return t!=null}});var _Se=_(GN=>{\"use strict\";Object.defineProperty(GN,\"__esModule\",{value:!0});GN.Timestamp=void 0;GN.Timestamp={fromJSON(t){return{seconds:USe(t.seconds)?globalThis.String(t.seconds):\"0\",nanos:USe(t.nanos)?globalThis.Number(t.nanos):0}},toJSON(t){let e={};return t.seconds!==\"0\"&&(e.seconds=t.seconds),t.nanos!==0&&(e.nanos=Math.round(t.nanos)),e}};function USe(t){return t!=null}});var Ww=_(Ur=>{\"use strict\";Object.defineProperty(Ur,\"__esModule\",{value:!0});Ur.TimeRange=Ur.X509CertificateChain=Ur.SubjectAlternativeName=Ur.X509Certificate=Ur.DistinguishedName=Ur.ObjectIdentifierValuePair=Ur.ObjectIdentifier=Ur.PublicKeyIdentifier=Ur.PublicKey=Ur.RFC3161SignedTimestamp=Ur.LogId=Ur.MessageSignature=Ur.HashOutput=Ur.SubjectAlternativeNameType=Ur.PublicKeyDetails=Ur.HashAlgorithm=void 0;Ur.hashAlgorithmFromJSON=jSe;Ur.hashAlgorithmToJSON=GSe;Ur.publicKeyDetailsFromJSON=qSe;Ur.publicKeyDetailsToJSON=WSe;Ur.subjectAlternativeNameTypeFromJSON=YSe;Ur.subjectAlternativeNameTypeToJSON=VSe;var AIt=_Se(),yl;(function(t){t[t.HASH_ALGORITHM_UNSPECIFIED=0]=\"HASH_ALGORITHM_UNSPECIFIED\",t[t.SHA2_256=1]=\"SHA2_256\",t[t.SHA2_384=2]=\"SHA2_384\",t[t.SHA2_512=3]=\"SHA2_512\",t[t.SHA3_256=4]=\"SHA3_256\",t[t.SHA3_384=5]=\"SHA3_384\"})(yl||(Ur.HashAlgorithm=yl={}));function jSe(t){switch(t){case 0:case\"HASH_ALGORITHM_UNSPECIFIED\":return yl.HASH_ALGORITHM_UNSPECIFIED;case 1:case\"SHA2_256\":return yl.SHA2_256;case 2:case\"SHA2_384\":return yl.SHA2_384;case 3:case\"SHA2_512\":return yl.SHA2_512;case 4:case\"SHA3_256\":return yl.SHA3_256;case 5:case\"SHA3_384\":return yl.SHA3_384;default:throw new globalThis.Error(\"Unrecognized enum value \"+t+\" for enum HashAlgorithm\")}}function GSe(t){switch(t){case yl.HASH_ALGORITHM_UNSPECIFIED:return\"HASH_ALGORITHM_UNSPECIFIED\";case yl.SHA2_256:return\"SHA2_256\";case yl.SHA2_384:return\"SHA2_384\";case yl.SHA2_512:return\"SHA2_512\";case yl.SHA3_256:return\"SHA3_256\";case yl.SHA3_384:return\"SHA3_384\";default:throw new globalThis.Error(\"Unrecognized enum value \"+t+\" for enum HashAlgorithm\")}}var rn;(function(t){t[t.PUBLIC_KEY_DETAILS_UNSPECIFIED=0]=\"PUBLIC_KEY_DETAILS_UNSPECIFIED\",t[t.PKCS1_RSA_PKCS1V5=1]=\"PKCS1_RSA_PKCS1V5\",t[t.PKCS1_RSA_PSS=2]=\"PKCS1_RSA_PSS\",t[t.PKIX_RSA_PKCS1V5=3]=\"PKIX_RSA_PKCS1V5\",t[t.PKIX_RSA_PSS=4]=\"PKIX_RSA_PSS\",t[t.PKIX_RSA_PKCS1V15_2048_SHA256=9]=\"PKIX_RSA_PKCS1V15_2048_SHA256\",t[t.PKIX_RSA_PKCS1V15_3072_SHA256=10]=\"PKIX_RSA_PKCS1V15_3072_SHA256\",t[t.PKIX_RSA_PKCS1V15_4096_SHA256=11]=\"PKIX_RSA_PKCS1V15_4096_SHA256\",t[t.PKIX_RSA_PSS_2048_SHA256=16]=\"PKIX_RSA_PSS_2048_SHA256\",t[t.PKIX_RSA_PSS_3072_SHA256=17]=\"PKIX_RSA_PSS_3072_SHA256\",t[t.PKIX_RSA_PSS_4096_SHA256=18]=\"PKIX_RSA_PSS_4096_SHA256\",t[t.PKIX_ECDSA_P256_HMAC_SHA_256=6]=\"PKIX_ECDSA_P256_HMAC_SHA_256\",t[t.PKIX_ECDSA_P256_SHA_256=5]=\"PKIX_ECDSA_P256_SHA_256\",t[t.PKIX_ECDSA_P384_SHA_384=12]=\"PKIX_ECDSA_P384_SHA_384\",t[t.PKIX_ECDSA_P521_SHA_512=13]=\"PKIX_ECDSA_P521_SHA_512\",t[t.PKIX_ED25519=7]=\"PKIX_ED25519\",t[t.PKIX_ED25519_PH=8]=\"PKIX_ED25519_PH\",t[t.LMS_SHA256=14]=\"LMS_SHA256\",t[t.LMOTS_SHA256=15]=\"LMOTS_SHA256\"})(rn||(Ur.PublicKeyDetails=rn={}));function qSe(t){switch(t){case 0:case\"PUBLIC_KEY_DETAILS_UNSPECIFIED\":return rn.PUBLIC_KEY_DETAILS_UNSPECIFIED;case 1:case\"PKCS1_RSA_PKCS1V5\":return rn.PKCS1_RSA_PKCS1V5;case 2:case\"PKCS1_RSA_PSS\":return rn.PKCS1_RSA_PSS;case 3:case\"PKIX_RSA_PKCS1V5\":return rn.PKIX_RSA_PKCS1V5;case 4:case\"PKIX_RSA_PSS\":return rn.PKIX_RSA_PSS;case 9:case\"PKIX_RSA_PKCS1V15_2048_SHA256\":return rn.PKIX_RSA_PKCS1V15_2048_SHA256;case 10:case\"PKIX_RSA_PKCS1V15_3072_SHA256\":return rn.PKIX_RSA_PKCS1V15_3072_SHA256;case 11:case\"PKIX_RSA_PKCS1V15_4096_SHA256\":return rn.PKIX_RSA_PKCS1V15_4096_SHA256;case 16:case\"PKIX_RSA_PSS_2048_SHA256\":return rn.PKIX_RSA_PSS_2048_SHA256;case 17:case\"PKIX_RSA_PSS_3072_SHA256\":return rn.PKIX_RSA_PSS_3072_SHA256;case 18:case\"PKIX_RSA_PSS_4096_SHA256\":return rn.PKIX_RSA_PSS_4096_SHA256;case 6:case\"PKIX_ECDSA_P256_HMAC_SHA_256\":return rn.PKIX_ECDSA_P256_HMAC_SHA_256;case 5:case\"PKIX_ECDSA_P256_SHA_256\":return rn.PKIX_ECDSA_P256_SHA_256;case 12:case\"PKIX_ECDSA_P384_SHA_384\":return rn.PKIX_ECDSA_P384_SHA_384;case 13:case\"PKIX_ECDSA_P521_SHA_512\":return rn.PKIX_ECDSA_P521_SHA_512;case 7:case\"PKIX_ED25519\":return rn.PKIX_ED25519;case 8:case\"PKIX_ED25519_PH\":return rn.PKIX_ED25519_PH;case 14:case\"LMS_SHA256\":return rn.LMS_SHA256;case 15:case\"LMOTS_SHA256\":return rn.LMOTS_SHA256;default:throw new globalThis.Error(\"Unrecognized enum value \"+t+\" for enum PublicKeyDetails\")}}function WSe(t){switch(t){case rn.PUBLIC_KEY_DETAILS_UNSPECIFIED:return\"PUBLIC_KEY_DETAILS_UNSPECIFIED\";case rn.PKCS1_RSA_PKCS1V5:return\"PKCS1_RSA_PKCS1V5\";case rn.PKCS1_RSA_PSS:return\"PKCS1_RSA_PSS\";case rn.PKIX_RSA_PKCS1V5:return\"PKIX_RSA_PKCS1V5\";case rn.PKIX_RSA_PSS:return\"PKIX_RSA_PSS\";case rn.PKIX_RSA_PKCS1V15_2048_SHA256:return\"PKIX_RSA_PKCS1V15_2048_SHA256\";case rn.PKIX_RSA_PKCS1V15_3072_SHA256:return\"PKIX_RSA_PKCS1V15_3072_SHA256\";case rn.PKIX_RSA_PKCS1V15_4096_SHA256:return\"PKIX_RSA_PKCS1V15_4096_SHA256\";case rn.PKIX_RSA_PSS_2048_SHA256:return\"PKIX_RSA_PSS_2048_SHA256\";case rn.PKIX_RSA_PSS_3072_SHA256:return\"PKIX_RSA_PSS_3072_SHA256\";case rn.PKIX_RSA_PSS_4096_SHA256:return\"PKIX_RSA_PSS_4096_SHA256\";case rn.PKIX_ECDSA_P256_HMAC_SHA_256:return\"PKIX_ECDSA_P256_HMAC_SHA_256\";case rn.PKIX_ECDSA_P256_SHA_256:return\"PKIX_ECDSA_P256_SHA_256\";case rn.PKIX_ECDSA_P384_SHA_384:return\"PKIX_ECDSA_P384_SHA_384\";case rn.PKIX_ECDSA_P521_SHA_512:return\"PKIX_ECDSA_P521_SHA_512\";case rn.PKIX_ED25519:return\"PKIX_ED25519\";case rn.PKIX_ED25519_PH:return\"PKIX_ED25519_PH\";case rn.LMS_SHA256:return\"LMS_SHA256\";case rn.LMOTS_SHA256:return\"LMOTS_SHA256\";default:throw new globalThis.Error(\"Unrecognized enum value \"+t+\" for enum PublicKeyDetails\")}}var CA;(function(t){t[t.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED=0]=\"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED\",t[t.EMAIL=1]=\"EMAIL\",t[t.URI=2]=\"URI\",t[t.OTHER_NAME=3]=\"OTHER_NAME\"})(CA||(Ur.SubjectAlternativeNameType=CA={}));function YSe(t){switch(t){case 0:case\"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED\":return CA.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED;case 1:case\"EMAIL\":return CA.EMAIL;case 2:case\"URI\":return CA.URI;case 3:case\"OTHER_NAME\":return CA.OTHER_NAME;default:throw new globalThis.Error(\"Unrecognized enum value \"+t+\" for enum SubjectAlternativeNameType\")}}function VSe(t){switch(t){case CA.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED:return\"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED\";case CA.EMAIL:return\"EMAIL\";case CA.URI:return\"URI\";case CA.OTHER_NAME:return\"OTHER_NAME\";default:throw new globalThis.Error(\"Unrecognized enum value \"+t+\" for enum SubjectAlternativeNameType\")}}Ur.HashOutput={fromJSON(t){return{algorithm:ds(t.algorithm)?jSe(t.algorithm):0,digest:ds(t.digest)?Buffer.from(Xm(t.digest)):Buffer.alloc(0)}},toJSON(t){let e={};return t.algorithm!==0&&(e.algorithm=GSe(t.algorithm)),t.digest.length!==0&&(e.digest=$m(t.digest)),e}};Ur.MessageSignature={fromJSON(t){return{messageDigest:ds(t.messageDigest)?Ur.HashOutput.fromJSON(t.messageDigest):void 0,signature:ds(t.signature)?Buffer.from(Xm(t.signature)):Buffer.alloc(0)}},toJSON(t){let e={};return t.messageDigest!==void 0&&(e.messageDigest=Ur.HashOutput.toJSON(t.messageDigest)),t.signature.length!==0&&(e.signature=$m(t.signature)),e}};Ur.LogId={fromJSON(t){return{keyId:ds(t.keyId)?Buffer.from(Xm(t.keyId)):Buffer.alloc(0)}},toJSON(t){let e={};return t.keyId.length!==0&&(e.keyId=$m(t.keyId)),e}};Ur.RFC3161SignedTimestamp={fromJSON(t){return{signedTimestamp:ds(t.signedTimestamp)?Buffer.from(Xm(t.signedTimestamp)):Buffer.alloc(0)}},toJSON(t){let e={};return t.signedTimestamp.length!==0&&(e.signedTimestamp=$m(t.signedTimestamp)),e}};Ur.PublicKey={fromJSON(t){return{rawBytes:ds(t.rawBytes)?Buffer.from(Xm(t.rawBytes)):void 0,keyDetails:ds(t.keyDetails)?qSe(t.keyDetails):0,validFor:ds(t.validFor)?Ur.TimeRange.fromJSON(t.validFor):void 0}},toJSON(t){let e={};return t.rawBytes!==void 0&&(e.rawBytes=$m(t.rawBytes)),t.keyDetails!==0&&(e.keyDetails=WSe(t.keyDetails)),t.validFor!==void 0&&(e.validFor=Ur.TimeRange.toJSON(t.validFor)),e}};Ur.PublicKeyIdentifier={fromJSON(t){return{hint:ds(t.hint)?globalThis.String(t.hint):\"\"}},toJSON(t){let e={};return t.hint!==\"\"&&(e.hint=t.hint),e}};Ur.ObjectIdentifier={fromJSON(t){return{id:globalThis.Array.isArray(t?.id)?t.id.map(e=>globalThis.Number(e)):[]}},toJSON(t){let e={};return t.id?.length&&(e.id=t.id.map(r=>Math.round(r))),e}};Ur.ObjectIdentifierValuePair={fromJSON(t){return{oid:ds(t.oid)?Ur.ObjectIdentifier.fromJSON(t.oid):void 0,value:ds(t.value)?Buffer.from(Xm(t.value)):Buffer.alloc(0)}},toJSON(t){let e={};return t.oid!==void 0&&(e.oid=Ur.ObjectIdentifier.toJSON(t.oid)),t.value.length!==0&&(e.value=$m(t.value)),e}};Ur.DistinguishedName={fromJSON(t){return{organization:ds(t.organization)?globalThis.String(t.organization):\"\",commonName:ds(t.commonName)?globalThis.String(t.commonName):\"\"}},toJSON(t){let e={};return t.organization!==\"\"&&(e.organization=t.organization),t.commonName!==\"\"&&(e.commonName=t.commonName),e}};Ur.X509Certificate={fromJSON(t){return{rawBytes:ds(t.rawBytes)?Buffer.from(Xm(t.rawBytes)):Buffer.alloc(0)}},toJSON(t){let e={};return t.rawBytes.length!==0&&(e.rawBytes=$m(t.rawBytes)),e}};Ur.SubjectAlternativeName={fromJSON(t){return{type:ds(t.type)?YSe(t.type):0,identity:ds(t.regexp)?{$case:\"regexp\",regexp:globalThis.String(t.regexp)}:ds(t.value)?{$case:\"value\",value:globalThis.String(t.value)}:void 0}},toJSON(t){let e={};return t.type!==0&&(e.type=VSe(t.type)),t.identity?.$case===\"regexp\"?e.regexp=t.identity.regexp:t.identity?.$case===\"value\"&&(e.value=t.identity.value),e}};Ur.X509CertificateChain={fromJSON(t){return{certificates:globalThis.Array.isArray(t?.certificates)?t.certificates.map(e=>Ur.X509Certificate.fromJSON(e)):[]}},toJSON(t){let e={};return t.certificates?.length&&(e.certificates=t.certificates.map(r=>Ur.X509Certificate.toJSON(r))),e}};Ur.TimeRange={fromJSON(t){return{start:ds(t.start)?HSe(t.start):void 0,end:ds(t.end)?HSe(t.end):void 0}},toJSON(t){let e={};return t.start!==void 0&&(e.start=t.start.toISOString()),t.end!==void 0&&(e.end=t.end.toISOString()),e}};function Xm(t){return Uint8Array.from(globalThis.Buffer.from(t,\"base64\"))}function $m(t){return globalThis.Buffer.from(t).toString(\"base64\")}function pIt(t){let e=(globalThis.Number(t.seconds)||0)*1e3;return e+=(t.nanos||0)/1e6,new globalThis.Date(e)}function HSe(t){return t instanceof globalThis.Date?t:typeof t==\"string\"?new globalThis.Date(t):pIt(AIt.Timestamp.fromJSON(t))}function ds(t){return t!=null}});var FV=_(ms=>{\"use strict\";Object.defineProperty(ms,\"__esModule\",{value:!0});ms.TransparencyLogEntry=ms.InclusionPromise=ms.InclusionProof=ms.Checkpoint=ms.KindVersion=void 0;var JSe=Ww();ms.KindVersion={fromJSON(t){return{kind:Ta(t.kind)?globalThis.String(t.kind):\"\",version:Ta(t.version)?globalThis.String(t.version):\"\"}},toJSON(t){let e={};return t.kind!==\"\"&&(e.kind=t.kind),t.version!==\"\"&&(e.version=t.version),e}};ms.Checkpoint={fromJSON(t){return{envelope:Ta(t.envelope)?globalThis.String(t.envelope):\"\"}},toJSON(t){let e={};return t.envelope!==\"\"&&(e.envelope=t.envelope),e}};ms.InclusionProof={fromJSON(t){return{logIndex:Ta(t.logIndex)?globalThis.String(t.logIndex):\"0\",rootHash:Ta(t.rootHash)?Buffer.from(qN(t.rootHash)):Buffer.alloc(0),treeSize:Ta(t.treeSize)?globalThis.String(t.treeSize):\"0\",hashes:globalThis.Array.isArray(t?.hashes)?t.hashes.map(e=>Buffer.from(qN(e))):[],checkpoint:Ta(t.checkpoint)?ms.Checkpoint.fromJSON(t.checkpoint):void 0}},toJSON(t){let e={};return t.logIndex!==\"0\"&&(e.logIndex=t.logIndex),t.rootHash.length!==0&&(e.rootHash=WN(t.rootHash)),t.treeSize!==\"0\"&&(e.treeSize=t.treeSize),t.hashes?.length&&(e.hashes=t.hashes.map(r=>WN(r))),t.checkpoint!==void 0&&(e.checkpoint=ms.Checkpoint.toJSON(t.checkpoint)),e}};ms.InclusionPromise={fromJSON(t){return{signedEntryTimestamp:Ta(t.signedEntryTimestamp)?Buffer.from(qN(t.signedEntryTimestamp)):Buffer.alloc(0)}},toJSON(t){let e={};return t.signedEntryTimestamp.length!==0&&(e.signedEntryTimestamp=WN(t.signedEntryTimestamp)),e}};ms.TransparencyLogEntry={fromJSON(t){return{logIndex:Ta(t.logIndex)?globalThis.String(t.logIndex):\"0\",logId:Ta(t.logId)?JSe.LogId.fromJSON(t.logId):void 0,kindVersion:Ta(t.kindVersion)?ms.KindVersion.fromJSON(t.kindVersion):void 0,integratedTime:Ta(t.integratedTime)?globalThis.String(t.integratedTime):\"0\",inclusionPromise:Ta(t.inclusionPromise)?ms.InclusionPromise.fromJSON(t.inclusionPromise):void 0,inclusionProof:Ta(t.inclusionProof)?ms.InclusionProof.fromJSON(t.inclusionProof):void 0,canonicalizedBody:Ta(t.canonicalizedBody)?Buffer.from(qN(t.canonicalizedBody)):Buffer.alloc(0)}},toJSON(t){let e={};return t.logIndex!==\"0\"&&(e.logIndex=t.logIndex),t.logId!==void 0&&(e.logId=JSe.LogId.toJSON(t.logId)),t.kindVersion!==void 0&&(e.kindVersion=ms.KindVersion.toJSON(t.kindVersion)),t.integratedTime!==\"0\"&&(e.integratedTime=t.integratedTime),t.inclusionPromise!==void 0&&(e.inclusionPromise=ms.InclusionPromise.toJSON(t.inclusionPromise)),t.inclusionProof!==void 0&&(e.inclusionProof=ms.InclusionProof.toJSON(t.inclusionProof)),t.canonicalizedBody.length!==0&&(e.canonicalizedBody=WN(t.canonicalizedBody)),e}};function qN(t){return Uint8Array.from(globalThis.Buffer.from(t,\"base64\"))}function WN(t){return globalThis.Buffer.from(t).toString(\"base64\")}function Ta(t){return t!=null}});var NV=_(Zc=>{\"use strict\";Object.defineProperty(Zc,\"__esModule\",{value:!0});Zc.Bundle=Zc.VerificationMaterial=Zc.TimestampVerificationData=void 0;var KSe=TV(),wA=Ww(),zSe=FV();Zc.TimestampVerificationData={fromJSON(t){return{rfc3161Timestamps:globalThis.Array.isArray(t?.rfc3161Timestamps)?t.rfc3161Timestamps.map(e=>wA.RFC3161SignedTimestamp.fromJSON(e)):[]}},toJSON(t){let e={};return t.rfc3161Timestamps?.length&&(e.rfc3161Timestamps=t.rfc3161Timestamps.map(r=>wA.RFC3161SignedTimestamp.toJSON(r))),e}};Zc.VerificationMaterial={fromJSON(t){return{content:yg(t.publicKey)?{$case:\"publicKey\",publicKey:wA.PublicKeyIdentifier.fromJSON(t.publicKey)}:yg(t.x509CertificateChain)?{$case:\"x509CertificateChain\",x509CertificateChain:wA.X509CertificateChain.fromJSON(t.x509CertificateChain)}:yg(t.certificate)?{$case:\"certificate\",certificate:wA.X509Certificate.fromJSON(t.certificate)}:void 0,tlogEntries:globalThis.Array.isArray(t?.tlogEntries)?t.tlogEntries.map(e=>zSe.TransparencyLogEntry.fromJSON(e)):[],timestampVerificationData:yg(t.timestampVerificationData)?Zc.TimestampVerificationData.fromJSON(t.timestampVerificationData):void 0}},toJSON(t){let e={};return t.content?.$case===\"publicKey\"?e.publicKey=wA.PublicKeyIdentifier.toJSON(t.content.publicKey):t.content?.$case===\"x509CertificateChain\"?e.x509CertificateChain=wA.X509CertificateChain.toJSON(t.content.x509CertificateChain):t.content?.$case===\"certificate\"&&(e.certificate=wA.X509Certificate.toJSON(t.content.certificate)),t.tlogEntries?.length&&(e.tlogEntries=t.tlogEntries.map(r=>zSe.TransparencyLogEntry.toJSON(r))),t.timestampVerificationData!==void 0&&(e.timestampVerificationData=Zc.TimestampVerificationData.toJSON(t.timestampVerificationData)),e}};Zc.Bundle={fromJSON(t){return{mediaType:yg(t.mediaType)?globalThis.String(t.mediaType):\"\",verificationMaterial:yg(t.verificationMaterial)?Zc.VerificationMaterial.fromJSON(t.verificationMaterial):void 0,content:yg(t.messageSignature)?{$case:\"messageSignature\",messageSignature:wA.MessageSignature.fromJSON(t.messageSignature)}:yg(t.dsseEnvelope)?{$case:\"dsseEnvelope\",dsseEnvelope:KSe.Envelope.fromJSON(t.dsseEnvelope)}:void 0}},toJSON(t){let e={};return t.mediaType!==\"\"&&(e.mediaType=t.mediaType),t.verificationMaterial!==void 0&&(e.verificationMaterial=Zc.VerificationMaterial.toJSON(t.verificationMaterial)),t.content?.$case===\"messageSignature\"?e.messageSignature=wA.MessageSignature.toJSON(t.content.messageSignature):t.content?.$case===\"dsseEnvelope\"&&(e.dsseEnvelope=KSe.Envelope.toJSON(t.content.dsseEnvelope)),e}};function yg(t){return t!=null}});var OV=_(Ti=>{\"use strict\";Object.defineProperty(Ti,\"__esModule\",{value:!0});Ti.ClientTrustConfig=Ti.SigningConfig=Ti.TrustedRoot=Ti.CertificateAuthority=Ti.TransparencyLogInstance=void 0;var El=Ww();Ti.TransparencyLogInstance={fromJSON(t){return{baseUrl:ia(t.baseUrl)?globalThis.String(t.baseUrl):\"\",hashAlgorithm:ia(t.hashAlgorithm)?(0,El.hashAlgorithmFromJSON)(t.hashAlgorithm):0,publicKey:ia(t.publicKey)?El.PublicKey.fromJSON(t.publicKey):void 0,logId:ia(t.logId)?El.LogId.fromJSON(t.logId):void 0,checkpointKeyId:ia(t.checkpointKeyId)?El.LogId.fromJSON(t.checkpointKeyId):void 0}},toJSON(t){let e={};return t.baseUrl!==\"\"&&(e.baseUrl=t.baseUrl),t.hashAlgorithm!==0&&(e.hashAlgorithm=(0,El.hashAlgorithmToJSON)(t.hashAlgorithm)),t.publicKey!==void 0&&(e.publicKey=El.PublicKey.toJSON(t.publicKey)),t.logId!==void 0&&(e.logId=El.LogId.toJSON(t.logId)),t.checkpointKeyId!==void 0&&(e.checkpointKeyId=El.LogId.toJSON(t.checkpointKeyId)),e}};Ti.CertificateAuthority={fromJSON(t){return{subject:ia(t.subject)?El.DistinguishedName.fromJSON(t.subject):void 0,uri:ia(t.uri)?globalThis.String(t.uri):\"\",certChain:ia(t.certChain)?El.X509CertificateChain.fromJSON(t.certChain):void 0,validFor:ia(t.validFor)?El.TimeRange.fromJSON(t.validFor):void 0}},toJSON(t){let e={};return t.subject!==void 0&&(e.subject=El.DistinguishedName.toJSON(t.subject)),t.uri!==\"\"&&(e.uri=t.uri),t.certChain!==void 0&&(e.certChain=El.X509CertificateChain.toJSON(t.certChain)),t.validFor!==void 0&&(e.validFor=El.TimeRange.toJSON(t.validFor)),e}};Ti.TrustedRoot={fromJSON(t){return{mediaType:ia(t.mediaType)?globalThis.String(t.mediaType):\"\",tlogs:globalThis.Array.isArray(t?.tlogs)?t.tlogs.map(e=>Ti.TransparencyLogInstance.fromJSON(e)):[],certificateAuthorities:globalThis.Array.isArray(t?.certificateAuthorities)?t.certificateAuthorities.map(e=>Ti.CertificateAuthority.fromJSON(e)):[],ctlogs:globalThis.Array.isArray(t?.ctlogs)?t.ctlogs.map(e=>Ti.TransparencyLogInstance.fromJSON(e)):[],timestampAuthorities:globalThis.Array.isArray(t?.timestampAuthorities)?t.timestampAuthorities.map(e=>Ti.CertificateAuthority.fromJSON(e)):[]}},toJSON(t){let e={};return t.mediaType!==\"\"&&(e.mediaType=t.mediaType),t.tlogs?.length&&(e.tlogs=t.tlogs.map(r=>Ti.TransparencyLogInstance.toJSON(r))),t.certificateAuthorities?.length&&(e.certificateAuthorities=t.certificateAuthorities.map(r=>Ti.CertificateAuthority.toJSON(r))),t.ctlogs?.length&&(e.ctlogs=t.ctlogs.map(r=>Ti.TransparencyLogInstance.toJSON(r))),t.timestampAuthorities?.length&&(e.timestampAuthorities=t.timestampAuthorities.map(r=>Ti.CertificateAuthority.toJSON(r))),e}};Ti.SigningConfig={fromJSON(t){return{mediaType:ia(t.mediaType)?globalThis.String(t.mediaType):\"\",caUrl:ia(t.caUrl)?globalThis.String(t.caUrl):\"\",oidcUrl:ia(t.oidcUrl)?globalThis.String(t.oidcUrl):\"\",tlogUrls:globalThis.Array.isArray(t?.tlogUrls)?t.tlogUrls.map(e=>globalThis.String(e)):[],tsaUrls:globalThis.Array.isArray(t?.tsaUrls)?t.tsaUrls.map(e=>globalThis.String(e)):[]}},toJSON(t){let e={};return t.mediaType!==\"\"&&(e.mediaType=t.mediaType),t.caUrl!==\"\"&&(e.caUrl=t.caUrl),t.oidcUrl!==\"\"&&(e.oidcUrl=t.oidcUrl),t.tlogUrls?.length&&(e.tlogUrls=t.tlogUrls),t.tsaUrls?.length&&(e.tsaUrls=t.tsaUrls),e}};Ti.ClientTrustConfig={fromJSON(t){return{mediaType:ia(t.mediaType)?globalThis.String(t.mediaType):\"\",trustedRoot:ia(t.trustedRoot)?Ti.TrustedRoot.fromJSON(t.trustedRoot):void 0,signingConfig:ia(t.signingConfig)?Ti.SigningConfig.fromJSON(t.signingConfig):void 0}},toJSON(t){let e={};return t.mediaType!==\"\"&&(e.mediaType=t.mediaType),t.trustedRoot!==void 0&&(e.trustedRoot=Ti.TrustedRoot.toJSON(t.trustedRoot)),t.signingConfig!==void 0&&(e.signingConfig=Ti.SigningConfig.toJSON(t.signingConfig)),e}};function ia(t){return t!=null}});var $Se=_(Vr=>{\"use strict\";Object.defineProperty(Vr,\"__esModule\",{value:!0});Vr.Input=Vr.Artifact=Vr.ArtifactVerificationOptions_ObserverTimestampOptions=Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions=Vr.ArtifactVerificationOptions_TimestampAuthorityOptions=Vr.ArtifactVerificationOptions_CtlogOptions=Vr.ArtifactVerificationOptions_TlogOptions=Vr.ArtifactVerificationOptions=Vr.PublicKeyIdentities=Vr.CertificateIdentities=Vr.CertificateIdentity=void 0;var ZSe=NV(),Eg=Ww(),XSe=OV();Vr.CertificateIdentity={fromJSON(t){return{issuer:gi(t.issuer)?globalThis.String(t.issuer):\"\",san:gi(t.san)?Eg.SubjectAlternativeName.fromJSON(t.san):void 0,oids:globalThis.Array.isArray(t?.oids)?t.oids.map(e=>Eg.ObjectIdentifierValuePair.fromJSON(e)):[]}},toJSON(t){let e={};return t.issuer!==\"\"&&(e.issuer=t.issuer),t.san!==void 0&&(e.san=Eg.SubjectAlternativeName.toJSON(t.san)),t.oids?.length&&(e.oids=t.oids.map(r=>Eg.ObjectIdentifierValuePair.toJSON(r))),e}};Vr.CertificateIdentities={fromJSON(t){return{identities:globalThis.Array.isArray(t?.identities)?t.identities.map(e=>Vr.CertificateIdentity.fromJSON(e)):[]}},toJSON(t){let e={};return t.identities?.length&&(e.identities=t.identities.map(r=>Vr.CertificateIdentity.toJSON(r))),e}};Vr.PublicKeyIdentities={fromJSON(t){return{publicKeys:globalThis.Array.isArray(t?.publicKeys)?t.publicKeys.map(e=>Eg.PublicKey.fromJSON(e)):[]}},toJSON(t){let e={};return t.publicKeys?.length&&(e.publicKeys=t.publicKeys.map(r=>Eg.PublicKey.toJSON(r))),e}};Vr.ArtifactVerificationOptions={fromJSON(t){return{signers:gi(t.certificateIdentities)?{$case:\"certificateIdentities\",certificateIdentities:Vr.CertificateIdentities.fromJSON(t.certificateIdentities)}:gi(t.publicKeys)?{$case:\"publicKeys\",publicKeys:Vr.PublicKeyIdentities.fromJSON(t.publicKeys)}:void 0,tlogOptions:gi(t.tlogOptions)?Vr.ArtifactVerificationOptions_TlogOptions.fromJSON(t.tlogOptions):void 0,ctlogOptions:gi(t.ctlogOptions)?Vr.ArtifactVerificationOptions_CtlogOptions.fromJSON(t.ctlogOptions):void 0,tsaOptions:gi(t.tsaOptions)?Vr.ArtifactVerificationOptions_TimestampAuthorityOptions.fromJSON(t.tsaOptions):void 0,integratedTsOptions:gi(t.integratedTsOptions)?Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.fromJSON(t.integratedTsOptions):void 0,observerOptions:gi(t.observerOptions)?Vr.ArtifactVerificationOptions_ObserverTimestampOptions.fromJSON(t.observerOptions):void 0}},toJSON(t){let e={};return t.signers?.$case===\"certificateIdentities\"?e.certificateIdentities=Vr.CertificateIdentities.toJSON(t.signers.certificateIdentities):t.signers?.$case===\"publicKeys\"&&(e.publicKeys=Vr.PublicKeyIdentities.toJSON(t.signers.publicKeys)),t.tlogOptions!==void 0&&(e.tlogOptions=Vr.ArtifactVerificationOptions_TlogOptions.toJSON(t.tlogOptions)),t.ctlogOptions!==void 0&&(e.ctlogOptions=Vr.ArtifactVerificationOptions_CtlogOptions.toJSON(t.ctlogOptions)),t.tsaOptions!==void 0&&(e.tsaOptions=Vr.ArtifactVerificationOptions_TimestampAuthorityOptions.toJSON(t.tsaOptions)),t.integratedTsOptions!==void 0&&(e.integratedTsOptions=Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.toJSON(t.integratedTsOptions)),t.observerOptions!==void 0&&(e.observerOptions=Vr.ArtifactVerificationOptions_ObserverTimestampOptions.toJSON(t.observerOptions)),e}};Vr.ArtifactVerificationOptions_TlogOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,performOnlineVerification:gi(t.performOnlineVerification)?globalThis.Boolean(t.performOnlineVerification):!1,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.performOnlineVerification!==!1&&(e.performOnlineVerification=t.performOnlineVerification),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_CtlogOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_TimestampAuthorityOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_ObserverTimestampOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.Artifact={fromJSON(t){return{data:gi(t.artifactUri)?{$case:\"artifactUri\",artifactUri:globalThis.String(t.artifactUri)}:gi(t.artifact)?{$case:\"artifact\",artifact:Buffer.from(hIt(t.artifact))}:gi(t.artifactDigest)?{$case:\"artifactDigest\",artifactDigest:Eg.HashOutput.fromJSON(t.artifactDigest)}:void 0}},toJSON(t){let e={};return t.data?.$case===\"artifactUri\"?e.artifactUri=t.data.artifactUri:t.data?.$case===\"artifact\"?e.artifact=gIt(t.data.artifact):t.data?.$case===\"artifactDigest\"&&(e.artifactDigest=Eg.HashOutput.toJSON(t.data.artifactDigest)),e}};Vr.Input={fromJSON(t){return{artifactTrustRoot:gi(t.artifactTrustRoot)?XSe.TrustedRoot.fromJSON(t.artifactTrustRoot):void 0,artifactVerificationOptions:gi(t.artifactVerificationOptions)?Vr.ArtifactVerificationOptions.fromJSON(t.artifactVerificationOptions):void 0,bundle:gi(t.bundle)?ZSe.Bundle.fromJSON(t.bundle):void 0,artifact:gi(t.artifact)?Vr.Artifact.fromJSON(t.artifact):void 0}},toJSON(t){let e={};return t.artifactTrustRoot!==void 0&&(e.artifactTrustRoot=XSe.TrustedRoot.toJSON(t.artifactTrustRoot)),t.artifactVerificationOptions!==void 0&&(e.artifactVerificationOptions=Vr.ArtifactVerificationOptions.toJSON(t.artifactVerificationOptions)),t.bundle!==void 0&&(e.bundle=ZSe.Bundle.toJSON(t.bundle)),t.artifact!==void 0&&(e.artifact=Vr.Artifact.toJSON(t.artifact)),e}};function hIt(t){return Uint8Array.from(globalThis.Buffer.from(t,\"base64\"))}function gIt(t){return globalThis.Buffer.from(t).toString(\"base64\")}function gi(t){return t!=null}});var mP=_(Xc=>{\"use strict\";var dIt=Xc&&Xc.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Yw=Xc&&Xc.__exportStar||function(t,e){for(var r in t)r!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,r)&&dIt(e,t,r)};Object.defineProperty(Xc,\"__esModule\",{value:!0});Yw(TV(),Xc);Yw(NV(),Xc);Yw(Ww(),Xc);Yw(FV(),Xc);Yw(OV(),Xc);Yw($Se(),Xc)});var YN=_(Il=>{\"use strict\";Object.defineProperty(Il,\"__esModule\",{value:!0});Il.BUNDLE_V03_MEDIA_TYPE=Il.BUNDLE_V03_LEGACY_MEDIA_TYPE=Il.BUNDLE_V02_MEDIA_TYPE=Il.BUNDLE_V01_MEDIA_TYPE=void 0;Il.isBundleWithCertificateChain=mIt;Il.isBundleWithPublicKey=yIt;Il.isBundleWithMessageSignature=EIt;Il.isBundleWithDsseEnvelope=IIt;Il.BUNDLE_V01_MEDIA_TYPE=\"application/vnd.dev.sigstore.bundle+json;version=0.1\";Il.BUNDLE_V02_MEDIA_TYPE=\"application/vnd.dev.sigstore.bundle+json;version=0.2\";Il.BUNDLE_V03_LEGACY_MEDIA_TYPE=\"application/vnd.dev.sigstore.bundle+json;version=0.3\";Il.BUNDLE_V03_MEDIA_TYPE=\"application/vnd.dev.sigstore.bundle.v0.3+json\";function mIt(t){return t.verificationMaterial.content.$case===\"x509CertificateChain\"}function yIt(t){return t.verificationMaterial.content.$case===\"publicKey\"}function EIt(t){return t.content.$case===\"messageSignature\"}function IIt(t){return t.content.$case===\"dsseEnvelope\"}});var tDe=_(JN=>{\"use strict\";Object.defineProperty(JN,\"__esModule\",{value:!0});JN.toMessageSignatureBundle=wIt;JN.toDSSEBundle=BIt;var CIt=mP(),VN=YN();function wIt(t){return{mediaType:t.certificateChain?VN.BUNDLE_V02_MEDIA_TYPE:VN.BUNDLE_V03_MEDIA_TYPE,content:{$case:\"messageSignature\",messageSignature:{messageDigest:{algorithm:CIt.HashAlgorithm.SHA2_256,digest:t.digest},signature:t.signature}},verificationMaterial:eDe(t)}}function BIt(t){return{mediaType:t.certificateChain?VN.BUNDLE_V02_MEDIA_TYPE:VN.BUNDLE_V03_MEDIA_TYPE,content:{$case:\"dsseEnvelope\",dsseEnvelope:vIt(t)},verificationMaterial:eDe(t)}}function vIt(t){return{payloadType:t.artifactType,payload:t.artifact,signatures:[SIt(t)]}}function SIt(t){return{keyid:t.keyHint||\"\",sig:t.signature}}function eDe(t){return{content:DIt(t),tlogEntries:[],timestampVerificationData:{rfc3161Timestamps:[]}}}function DIt(t){return t.certificate?t.certificateChain?{$case:\"x509CertificateChain\",x509CertificateChain:{certificates:[{rawBytes:t.certificate}]}}:{$case:\"certificate\",certificate:{rawBytes:t.certificate}}:{$case:\"publicKey\",publicKey:{hint:t.keyHint||\"\"}}}});var MV=_(KN=>{\"use strict\";Object.defineProperty(KN,\"__esModule\",{value:!0});KN.ValidationError=void 0;var LV=class extends Error{constructor(e,r){super(e),this.fields=r}};KN.ValidationError=LV});var UV=_(ey=>{\"use strict\";Object.defineProperty(ey,\"__esModule\",{value:!0});ey.assertBundle=PIt;ey.assertBundleV01=rDe;ey.isBundleV01=bIt;ey.assertBundleV02=xIt;ey.assertBundleLatest=kIt;var zN=MV();function PIt(t){let e=ZN(t);if(e.length>0)throw new zN.ValidationError(\"invalid bundle\",e)}function rDe(t){let e=[];if(e.push(...ZN(t)),e.push(...QIt(t)),e.length>0)throw new zN.ValidationError(\"invalid v0.1 bundle\",e)}function bIt(t){try{return rDe(t),!0}catch{return!1}}function xIt(t){let e=[];if(e.push(...ZN(t)),e.push(...nDe(t)),e.length>0)throw new zN.ValidationError(\"invalid v0.2 bundle\",e)}function kIt(t){let e=[];if(e.push(...ZN(t)),e.push(...nDe(t)),e.push(...RIt(t)),e.length>0)throw new zN.ValidationError(\"invalid bundle\",e)}function ZN(t){let e=[];if((t.mediaType===void 0||!t.mediaType.match(/^application\\/vnd\\.dev\\.sigstore\\.bundle\\+json;version=\\d\\.\\d/)&&!t.mediaType.match(/^application\\/vnd\\.dev\\.sigstore\\.bundle\\.v\\d\\.\\d\\+json/))&&e.push(\"mediaType\"),t.content===void 0)e.push(\"content\");else switch(t.content.$case){case\"messageSignature\":t.content.messageSignature.messageDigest===void 0?e.push(\"content.messageSignature.messageDigest\"):t.content.messageSignature.messageDigest.digest.length===0&&e.push(\"content.messageSignature.messageDigest.digest\"),t.content.messageSignature.signature.length===0&&e.push(\"content.messageSignature.signature\");break;case\"dsseEnvelope\":t.content.dsseEnvelope.payload.length===0&&e.push(\"content.dsseEnvelope.payload\"),t.content.dsseEnvelope.signatures.length!==1?e.push(\"content.dsseEnvelope.signatures\"):t.content.dsseEnvelope.signatures[0].sig.length===0&&e.push(\"content.dsseEnvelope.signatures[0].sig\");break}if(t.verificationMaterial===void 0)e.push(\"verificationMaterial\");else{if(t.verificationMaterial.content===void 0)e.push(\"verificationMaterial.content\");else switch(t.verificationMaterial.content.$case){case\"x509CertificateChain\":t.verificationMaterial.content.x509CertificateChain.certificates.length===0&&e.push(\"verificationMaterial.content.x509CertificateChain.certificates\"),t.verificationMaterial.content.x509CertificateChain.certificates.forEach((r,s)=>{r.rawBytes.length===0&&e.push(`verificationMaterial.content.x509CertificateChain.certificates[${s}].rawBytes`)});break;case\"certificate\":t.verificationMaterial.content.certificate.rawBytes.length===0&&e.push(\"verificationMaterial.content.certificate.rawBytes\");break}t.verificationMaterial.tlogEntries===void 0?e.push(\"verificationMaterial.tlogEntries\"):t.verificationMaterial.tlogEntries.length>0&&t.verificationMaterial.tlogEntries.forEach((r,s)=>{r.logId===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].logId`),r.kindVersion===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].kindVersion`)})}return e}function QIt(t){let e=[];return t.verificationMaterial&&t.verificationMaterial.tlogEntries?.length>0&&t.verificationMaterial.tlogEntries.forEach((r,s)=>{r.inclusionPromise===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].inclusionPromise`)}),e}function nDe(t){let e=[];return t.verificationMaterial&&t.verificationMaterial.tlogEntries?.length>0&&t.verificationMaterial.tlogEntries.forEach((r,s)=>{r.inclusionProof===void 0?e.push(`verificationMaterial.tlogEntries[${s}].inclusionProof`):r.inclusionProof.checkpoint===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].inclusionProof.checkpoint`)}),e}function RIt(t){let e=[];return t.verificationMaterial?.content?.$case===\"x509CertificateChain\"&&e.push(\"verificationMaterial.content.$case\"),e}});var sDe=_(BA=>{\"use strict\";Object.defineProperty(BA,\"__esModule\",{value:!0});BA.envelopeToJSON=BA.envelopeFromJSON=BA.bundleToJSON=BA.bundleFromJSON=void 0;var XN=mP(),iDe=YN(),_V=UV(),TIt=t=>{let e=XN.Bundle.fromJSON(t);switch(e.mediaType){case iDe.BUNDLE_V01_MEDIA_TYPE:(0,_V.assertBundleV01)(e);break;case iDe.BUNDLE_V02_MEDIA_TYPE:(0,_V.assertBundleV02)(e);break;default:(0,_V.assertBundleLatest)(e);break}return e};BA.bundleFromJSON=TIt;var FIt=t=>XN.Bundle.toJSON(t);BA.bundleToJSON=FIt;var NIt=t=>XN.Envelope.fromJSON(t);BA.envelopeFromJSON=NIt;var OIt=t=>XN.Envelope.toJSON(t);BA.envelopeToJSON=OIt});var EP=_(Zr=>{\"use strict\";Object.defineProperty(Zr,\"__esModule\",{value:!0});Zr.isBundleV01=Zr.assertBundleV02=Zr.assertBundleV01=Zr.assertBundleLatest=Zr.assertBundle=Zr.envelopeToJSON=Zr.envelopeFromJSON=Zr.bundleToJSON=Zr.bundleFromJSON=Zr.ValidationError=Zr.isBundleWithPublicKey=Zr.isBundleWithMessageSignature=Zr.isBundleWithDsseEnvelope=Zr.isBundleWithCertificateChain=Zr.BUNDLE_V03_MEDIA_TYPE=Zr.BUNDLE_V03_LEGACY_MEDIA_TYPE=Zr.BUNDLE_V02_MEDIA_TYPE=Zr.BUNDLE_V01_MEDIA_TYPE=Zr.toMessageSignatureBundle=Zr.toDSSEBundle=void 0;var oDe=tDe();Object.defineProperty(Zr,\"toDSSEBundle\",{enumerable:!0,get:function(){return oDe.toDSSEBundle}});Object.defineProperty(Zr,\"toMessageSignatureBundle\",{enumerable:!0,get:function(){return oDe.toMessageSignatureBundle}});var Ig=YN();Object.defineProperty(Zr,\"BUNDLE_V01_MEDIA_TYPE\",{enumerable:!0,get:function(){return Ig.BUNDLE_V01_MEDIA_TYPE}});Object.defineProperty(Zr,\"BUNDLE_V02_MEDIA_TYPE\",{enumerable:!0,get:function(){return Ig.BUNDLE_V02_MEDIA_TYPE}});Object.defineProperty(Zr,\"BUNDLE_V03_LEGACY_MEDIA_TYPE\",{enumerable:!0,get:function(){return Ig.BUNDLE_V03_LEGACY_MEDIA_TYPE}});Object.defineProperty(Zr,\"BUNDLE_V03_MEDIA_TYPE\",{enumerable:!0,get:function(){return Ig.BUNDLE_V03_MEDIA_TYPE}});Object.defineProperty(Zr,\"isBundleWithCertificateChain\",{enumerable:!0,get:function(){return Ig.isBundleWithCertificateChain}});Object.defineProperty(Zr,\"isBundleWithDsseEnvelope\",{enumerable:!0,get:function(){return Ig.isBundleWithDsseEnvelope}});Object.defineProperty(Zr,\"isBundleWithMessageSignature\",{enumerable:!0,get:function(){return Ig.isBundleWithMessageSignature}});Object.defineProperty(Zr,\"isBundleWithPublicKey\",{enumerable:!0,get:function(){return Ig.isBundleWithPublicKey}});var LIt=MV();Object.defineProperty(Zr,\"ValidationError\",{enumerable:!0,get:function(){return LIt.ValidationError}});var $N=sDe();Object.defineProperty(Zr,\"bundleFromJSON\",{enumerable:!0,get:function(){return $N.bundleFromJSON}});Object.defineProperty(Zr,\"bundleToJSON\",{enumerable:!0,get:function(){return $N.bundleToJSON}});Object.defineProperty(Zr,\"envelopeFromJSON\",{enumerable:!0,get:function(){return $N.envelopeFromJSON}});Object.defineProperty(Zr,\"envelopeToJSON\",{enumerable:!0,get:function(){return $N.envelopeToJSON}});var yP=UV();Object.defineProperty(Zr,\"assertBundle\",{enumerable:!0,get:function(){return yP.assertBundle}});Object.defineProperty(Zr,\"assertBundleLatest\",{enumerable:!0,get:function(){return yP.assertBundleLatest}});Object.defineProperty(Zr,\"assertBundleV01\",{enumerable:!0,get:function(){return yP.assertBundleV01}});Object.defineProperty(Zr,\"assertBundleV02\",{enumerable:!0,get:function(){return yP.assertBundleV02}});Object.defineProperty(Zr,\"isBundleV01\",{enumerable:!0,get:function(){return yP.isBundleV01}})});var IP=_(tO=>{\"use strict\";Object.defineProperty(tO,\"__esModule\",{value:!0});tO.ByteStream=void 0;var HV=class extends Error{},eO=class t{constructor(e){this.start=0,e?(this.buf=e,this.view=Buffer.from(e)):(this.buf=new ArrayBuffer(0),this.view=Buffer.from(this.buf))}get buffer(){return this.view.subarray(0,this.start)}get length(){return this.view.byteLength}get position(){return this.start}seek(e){this.start=e}slice(e,r){let s=e+r;if(s>this.length)throw new HV(\"request past end of buffer\");return this.view.subarray(e,s)}appendChar(e){this.ensureCapacity(1),this.view[this.start]=e,this.start+=1}appendUint16(e){this.ensureCapacity(2);let r=new Uint16Array([e]),s=new Uint8Array(r.buffer);this.view[this.start]=s[1],this.view[this.start+1]=s[0],this.start+=2}appendUint24(e){this.ensureCapacity(3);let r=new Uint32Array([e]),s=new Uint8Array(r.buffer);this.view[this.start]=s[2],this.view[this.start+1]=s[1],this.view[this.start+2]=s[0],this.start+=3}appendView(e){this.ensureCapacity(e.length),this.view.set(e,this.start),this.start+=e.length}getBlock(e){if(e<=0)return Buffer.alloc(0);if(this.start+e>this.view.length)throw new Error(\"request past end of buffer\");let r=this.view.subarray(this.start,this.start+e);return this.start+=e,r}getUint8(){return this.getBlock(1)[0]}getUint16(){let e=this.getBlock(2);return e[0]<<8|e[1]}ensureCapacity(e){if(this.start+e>this.view.byteLength){let r=t.BLOCK_SIZE+(e>t.BLOCK_SIZE?e:0);this.realloc(this.view.byteLength+r)}}realloc(e){let r=new ArrayBuffer(e),s=Buffer.from(r);s.set(this.view),this.buf=r,this.view=s}};tO.ByteStream=eO;eO.BLOCK_SIZE=1024});var rO=_(Vw=>{\"use strict\";Object.defineProperty(Vw,\"__esModule\",{value:!0});Vw.ASN1TypeError=Vw.ASN1ParseError=void 0;var jV=class extends Error{};Vw.ASN1ParseError=jV;var GV=class extends Error{};Vw.ASN1TypeError=GV});var lDe=_(nO=>{\"use strict\";Object.defineProperty(nO,\"__esModule\",{value:!0});nO.decodeLength=MIt;nO.encodeLength=UIt;var aDe=rO();function MIt(t){let e=t.getUint8();if(!(e&128))return e;let r=e&127;if(r>6)throw new aDe.ASN1ParseError(\"length exceeds 6 byte limit\");let s=0;for(let a=0;a<r;a++)s=s*256+t.getUint8();if(s===0)throw new aDe.ASN1ParseError(\"indefinite length encoding not supported\");return s}function UIt(t){if(t<128)return Buffer.from([t]);let e=BigInt(t),r=[];for(;e>0n;)r.unshift(Number(e&255n)),e=e>>8n;return Buffer.from([128|r.length,...r])}});var uDe=_(Cg=>{\"use strict\";Object.defineProperty(Cg,\"__esModule\",{value:!0});Cg.parseInteger=jIt;Cg.parseStringASCII=cDe;Cg.parseTime=GIt;Cg.parseOID=qIt;Cg.parseBoolean=WIt;Cg.parseBitString=YIt;var _It=/^(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\.\\d{3})?Z$/,HIt=/^(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\.\\d{3})?Z$/;function jIt(t){let e=0,r=t.length,s=t[e],a=s>127,n=a?255:0;for(;s==n&&++e<r;)s=t[e];if(r-e===0)return BigInt(a?-1:0);s=a?s-256:s;let f=BigInt(s);for(let p=e+1;p<r;++p)f=f*BigInt(256)+BigInt(t[p]);return f}function cDe(t){return t.toString(\"ascii\")}function GIt(t,e){let r=cDe(t),s=e?_It.exec(r):HIt.exec(r);if(!s)throw new Error(\"invalid time\");if(e){let a=Number(s[1]);a+=a>=50?1900:2e3,s[1]=a.toString()}return new Date(`${s[1]}-${s[2]}-${s[3]}T${s[4]}:${s[5]}:${s[6]}Z`)}function qIt(t){let e=0,r=t.length,s=t[e++],a=Math.floor(s/40),n=s%40,c=`${a}.${n}`,f=0;for(;e<r;++e)s=t[e],f=(f<<7)+(s&127),s&128||(c+=`.${f}`,f=0);return c}function WIt(t){return t[0]!==0}function YIt(t){let e=t[0],r=1,s=t.length,a=[];for(let n=r;n<s;++n){let c=t[n],f=n===s-1?e:0;for(let p=7;p>=f;--p)a.push(c>>p&1)}return a}});var ADe=_(iO=>{\"use strict\";Object.defineProperty(iO,\"__esModule\",{value:!0});iO.ASN1Tag=void 0;var fDe=rO(),ty={BOOLEAN:1,INTEGER:2,BIT_STRING:3,OCTET_STRING:4,OBJECT_IDENTIFIER:6,SEQUENCE:16,SET:17,PRINTABLE_STRING:19,UTC_TIME:23,GENERALIZED_TIME:24},qV={UNIVERSAL:0,APPLICATION:1,CONTEXT_SPECIFIC:2,PRIVATE:3},WV=class{constructor(e){if(this.number=e&31,this.constructed=(e&32)===32,this.class=e>>6,this.number===31)throw new fDe.ASN1ParseError(\"long form tags not supported\");if(this.class===qV.UNIVERSAL&&this.number===0)throw new fDe.ASN1ParseError(\"unsupported tag 0x00\")}isUniversal(){return this.class===qV.UNIVERSAL}isContextSpecific(e){let r=this.class===qV.CONTEXT_SPECIFIC;return e!==void 0?r&&this.number===e:r}isBoolean(){return this.isUniversal()&&this.number===ty.BOOLEAN}isInteger(){return this.isUniversal()&&this.number===ty.INTEGER}isBitString(){return this.isUniversal()&&this.number===ty.BIT_STRING}isOctetString(){return this.isUniversal()&&this.number===ty.OCTET_STRING}isOID(){return this.isUniversal()&&this.number===ty.OBJECT_IDENTIFIER}isUTCTime(){return this.isUniversal()&&this.number===ty.UTC_TIME}isGeneralizedTime(){return this.isUniversal()&&this.number===ty.GENERALIZED_TIME}toDER(){return this.number|(this.constructed?32:0)|this.class<<6}};iO.ASN1Tag=WV});var dDe=_(oO=>{\"use strict\";Object.defineProperty(oO,\"__esModule\",{value:!0});oO.ASN1Obj=void 0;var YV=IP(),ry=rO(),hDe=lDe(),Jw=uDe(),VIt=ADe(),sO=class{constructor(e,r,s){this.tag=e,this.value=r,this.subs=s}static parseBuffer(e){return gDe(new YV.ByteStream(e))}toDER(){let e=new YV.ByteStream;if(this.subs.length>0)for(let a of this.subs)e.appendView(a.toDER());else e.appendView(this.value);let r=e.buffer,s=new YV.ByteStream;return s.appendChar(this.tag.toDER()),s.appendView((0,hDe.encodeLength)(r.length)),s.appendView(r),s.buffer}toBoolean(){if(!this.tag.isBoolean())throw new ry.ASN1TypeError(\"not a boolean\");return(0,Jw.parseBoolean)(this.value)}toInteger(){if(!this.tag.isInteger())throw new ry.ASN1TypeError(\"not an integer\");return(0,Jw.parseInteger)(this.value)}toOID(){if(!this.tag.isOID())throw new ry.ASN1TypeError(\"not an OID\");return(0,Jw.parseOID)(this.value)}toDate(){switch(!0){case this.tag.isUTCTime():return(0,Jw.parseTime)(this.value,!0);case this.tag.isGeneralizedTime():return(0,Jw.parseTime)(this.value,!1);default:throw new ry.ASN1TypeError(\"not a date\")}}toBitString(){if(!this.tag.isBitString())throw new ry.ASN1TypeError(\"not a bit string\");return(0,Jw.parseBitString)(this.value)}};oO.ASN1Obj=sO;function gDe(t){let e=new VIt.ASN1Tag(t.getUint8()),r=(0,hDe.decodeLength)(t),s=t.slice(t.position,r),a=t.position,n=[];if(e.constructed)n=pDe(t,r);else if(e.isOctetString())try{n=pDe(t,r)}catch{}return n.length===0&&t.seek(a+r),new sO(e,s,n)}function pDe(t,e){let r=t.position+e;if(r>t.length)throw new ry.ASN1ParseError(\"invalid length\");let s=[];for(;t.position<r;)s.push(gDe(t));if(t.position!==r)throw new ry.ASN1ParseError(\"invalid length\");return s}});var lO=_(aO=>{\"use strict\";Object.defineProperty(aO,\"__esModule\",{value:!0});aO.ASN1Obj=void 0;var JIt=dDe();Object.defineProperty(aO,\"ASN1Obj\",{enumerable:!0,get:function(){return JIt.ASN1Obj}})});var Kw=_(wg=>{\"use strict\";var KIt=wg&&wg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(wg,\"__esModule\",{value:!0});wg.createPublicKey=zIt;wg.digest=ZIt;wg.verify=XIt;wg.bufferEqual=$It;var CP=KIt(Ie(\"crypto\"));function zIt(t,e=\"spki\"){return typeof t==\"string\"?CP.default.createPublicKey(t):CP.default.createPublicKey({key:t,format:\"der\",type:e})}function ZIt(t,...e){let r=CP.default.createHash(t);for(let s of e)r.update(s);return r.digest()}function XIt(t,e,r,s){try{return CP.default.verify(s,t,e,r)}catch{return!1}}function $It(t,e){try{return CP.default.timingSafeEqual(t,e)}catch{return!1}}});var mDe=_(VV=>{\"use strict\";Object.defineProperty(VV,\"__esModule\",{value:!0});VV.preAuthEncoding=tCt;var eCt=\"DSSEv1\";function tCt(t,e){let r=[eCt,t.length,t,e.length,\"\"].join(\" \");return Buffer.concat([Buffer.from(r,\"ascii\"),e])}});var IDe=_(cO=>{\"use strict\";Object.defineProperty(cO,\"__esModule\",{value:!0});cO.base64Encode=rCt;cO.base64Decode=nCt;var yDe=\"base64\",EDe=\"utf-8\";function rCt(t){return Buffer.from(t,EDe).toString(yDe)}function nCt(t){return Buffer.from(t,yDe).toString(EDe)}});var CDe=_(KV=>{\"use strict\";Object.defineProperty(KV,\"__esModule\",{value:!0});KV.canonicalize=JV;function JV(t){let e=\"\";if(t===null||typeof t!=\"object\"||t.toJSON!=null)e+=JSON.stringify(t);else if(Array.isArray(t)){e+=\"[\";let r=!0;t.forEach(s=>{r||(e+=\",\"),r=!1,e+=JV(s)}),e+=\"]\"}else{e+=\"{\";let r=!0;Object.keys(t).sort().forEach(s=>{r||(e+=\",\"),r=!1,e+=JSON.stringify(s),e+=\":\",e+=JV(t[s])}),e+=\"}\"}return e}});var zV=_(uO=>{\"use strict\";Object.defineProperty(uO,\"__esModule\",{value:!0});uO.toDER=oCt;uO.fromDER=aCt;var iCt=/-----BEGIN (.*)-----/,sCt=/-----END (.*)-----/;function oCt(t){let e=\"\";return t.split(`\n`).forEach(r=>{r.match(iCt)||r.match(sCt)||(e+=r)}),Buffer.from(e,\"base64\")}function aCt(t,e=\"CERTIFICATE\"){let s=t.toString(\"base64\").match(/.{1,64}/g)||\"\";return[`-----BEGIN ${e}-----`,...s,`-----END ${e}-----`].join(`\n`).concat(`\n`)}});var fO=_(zw=>{\"use strict\";Object.defineProperty(zw,\"__esModule\",{value:!0});zw.SHA2_HASH_ALGOS=zw.ECDSA_SIGNATURE_ALGOS=void 0;zw.ECDSA_SIGNATURE_ALGOS={\"1.2.840.10045.4.3.1\":\"sha224\",\"1.2.840.10045.4.3.2\":\"sha256\",\"1.2.840.10045.4.3.3\":\"sha384\",\"1.2.840.10045.4.3.4\":\"sha512\"};zw.SHA2_HASH_ALGOS={\"2.16.840.1.101.3.4.2.1\":\"sha256\",\"2.16.840.1.101.3.4.2.2\":\"sha384\",\"2.16.840.1.101.3.4.2.3\":\"sha512\"}});var XV=_(AO=>{\"use strict\";Object.defineProperty(AO,\"__esModule\",{value:!0});AO.RFC3161TimestampVerificationError=void 0;var ZV=class extends Error{};AO.RFC3161TimestampVerificationError=ZV});var BDe=_(vA=>{\"use strict\";var lCt=vA&&vA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),cCt=vA&&vA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),uCt=vA&&vA.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.prototype.hasOwnProperty.call(t,r)&&lCt(e,t,r);return cCt(e,t),e};Object.defineProperty(vA,\"__esModule\",{value:!0});vA.TSTInfo=void 0;var wDe=uCt(Kw()),fCt=fO(),ACt=XV(),$V=class{constructor(e){this.root=e}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let e=this.messageImprintObj.subs[0].subs[0].toOID();return fCt.SHA2_HASH_ALGOS[e]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(e){let r=wDe.digest(this.messageImprintHashAlgorithm,e);if(!wDe.bufferEqual(r,this.messageImprintHashedMessage))throw new ACt.RFC3161TimestampVerificationError(\"message imprint does not match artifact\")}get messageImprintObj(){return this.root.subs[2]}};vA.TSTInfo=$V});var SDe=_(SA=>{\"use strict\";var pCt=SA&&SA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),hCt=SA&&SA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),gCt=SA&&SA.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.prototype.hasOwnProperty.call(t,r)&&pCt(e,t,r);return hCt(e,t),e};Object.defineProperty(SA,\"__esModule\",{value:!0});SA.RFC3161Timestamp=void 0;var dCt=lO(),e7=gCt(Kw()),vDe=fO(),wP=XV(),mCt=BDe(),yCt=\"1.2.840.113549.1.7.2\",ECt=\"1.2.840.113549.1.9.16.1.4\",ICt=\"1.2.840.113549.1.9.4\",t7=class t{constructor(e){this.root=e}static parse(e){let r=dCt.ASN1Obj.parseBuffer(e);return new t(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let e=this.signerDigestAlgorithmObj.subs[0].toOID();return vDe.SHA2_HASH_ALGOS[e]}get signatureAlgorithm(){let e=this.signatureAlgorithmObj.subs[0].toOID();return vDe.ECDSA_SIGNATURE_ALGOS[e]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new mCt.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(e,r){if(!this.timeStampTokenObj)throw new wP.RFC3161TimestampVerificationError(\"timeStampToken is missing\");if(this.contentType!==yCt)throw new wP.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==ECt)throw new wP.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(e),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let e=e7.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!e7.bufferEqual(e,r))throw new wP.RFC3161TimestampVerificationError(\"signed data does not match tstInfo\")}verifySignature(e){let r=this.signedAttrsObj.toDER();if(r[0]=49,!e7.verify(r,e,this.signatureValue,this.signatureAlgorithm))throw new wP.RFC3161TimestampVerificationError(\"signature verification failed\")}get pkiStatusInfoObj(){return this.root.subs[0]}get timeStampTokenObj(){return this.root.subs[1]}get contentTypeObj(){return this.timeStampTokenObj.subs[0]}get signedDataObj(){return this.timeStampTokenObj.subs.find(r=>r.tag.isContextSpecific(0)).subs[0]}get encapContentInfoObj(){return this.signedDataObj.subs[2]}get signerInfosObj(){let e=this.signedDataObj;return e.subs[e.subs.length-1]}get signerInfoObj(){return this.signerInfosObj.subs[0]}get eContentTypeObj(){return this.encapContentInfoObj.subs[0]}get eContentObj(){return this.encapContentInfoObj.subs[1]}get signedAttrsObj(){return this.signerInfoObj.subs.find(r=>r.tag.isContextSpecific(0))}get messageDigestAttributeObj(){return this.signedAttrsObj.subs.find(r=>r.subs[0].tag.isOID()&&r.subs[0].toOID()===ICt)}get signerSidObj(){return this.signerInfoObj.subs[1]}get signerDigestAlgorithmObj(){return this.signerInfoObj.subs[2]}get signatureAlgorithmObj(){return this.signerInfoObj.subs[4]}get signatureValueObj(){return this.signerInfoObj.subs[5]}};SA.RFC3161Timestamp=t7});var DDe=_(pO=>{\"use strict\";Object.defineProperty(pO,\"__esModule\",{value:!0});pO.RFC3161Timestamp=void 0;var CCt=SDe();Object.defineProperty(pO,\"RFC3161Timestamp\",{enumerable:!0,get:function(){return CCt.RFC3161Timestamp}})});var bDe=_(DA=>{\"use strict\";var wCt=DA&&DA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),BCt=DA&&DA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),vCt=DA&&DA.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.prototype.hasOwnProperty.call(t,r)&&wCt(e,t,r);return BCt(e,t),e};Object.defineProperty(DA,\"__esModule\",{value:!0});DA.SignedCertificateTimestamp=void 0;var SCt=vCt(Kw()),PDe=IP(),r7=class t{constructor(e){this.version=e.version,this.logID=e.logID,this.timestamp=e.timestamp,this.extensions=e.extensions,this.hashAlgorithm=e.hashAlgorithm,this.signatureAlgorithm=e.signatureAlgorithm,this.signature=e.signature}get datetime(){return new Date(Number(this.timestamp.readBigInt64BE()))}get algorithm(){switch(this.hashAlgorithm){case 0:return\"none\";case 1:return\"md5\";case 2:return\"sha1\";case 3:return\"sha224\";case 4:return\"sha256\";case 5:return\"sha384\";case 6:return\"sha512\";default:return\"unknown\"}}verify(e,r){let s=new PDe.ByteStream;return s.appendChar(this.version),s.appendChar(0),s.appendView(this.timestamp),s.appendUint16(1),s.appendView(e),s.appendUint16(this.extensions.byteLength),this.extensions.byteLength>0&&s.appendView(this.extensions),SCt.verify(s.buffer,r,this.signature,this.algorithm)}static parse(e){let r=new PDe.ByteStream(e),s=r.getUint8(),a=r.getBlock(32),n=r.getBlock(8),c=r.getUint16(),f=r.getBlock(c),p=r.getUint8(),h=r.getUint8(),E=r.getUint16(),C=r.getBlock(E);if(r.position!==e.length)throw new Error(\"SCT buffer length mismatch\");return new t({version:s,logID:a,timestamp:n,extensions:f,hashAlgorithm:p,signatureAlgorithm:h,signature:C})}};DA.SignedCertificateTimestamp=r7});var c7=_(sa=>{\"use strict\";Object.defineProperty(sa,\"__esModule\",{value:!0});sa.X509SCTExtension=sa.X509SubjectKeyIDExtension=sa.X509AuthorityKeyIDExtension=sa.X509SubjectAlternativeNameExtension=sa.X509KeyUsageExtension=sa.X509BasicConstraintsExtension=sa.X509Extension=void 0;var DCt=IP(),PCt=bDe(),ph=class{constructor(e){this.root=e}get oid(){return this.root.subs[0].toOID()}get critical(){return this.root.subs.length===3?this.root.subs[1].toBoolean():!1}get value(){return this.extnValueObj.value}get valueObj(){return this.extnValueObj}get extnValueObj(){return this.root.subs[this.root.subs.length-1]}};sa.X509Extension=ph;var n7=class extends ph{get isCA(){return this.sequence.subs[0]?.toBoolean()??!1}get pathLenConstraint(){return this.sequence.subs.length>1?this.sequence.subs[1].toInteger():void 0}get sequence(){return this.extnValueObj.subs[0]}};sa.X509BasicConstraintsExtension=n7;var i7=class extends ph{get digitalSignature(){return this.bitString[0]===1}get keyCertSign(){return this.bitString[5]===1}get crlSign(){return this.bitString[6]===1}get bitString(){return this.extnValueObj.subs[0].toBitString()}};sa.X509KeyUsageExtension=i7;var s7=class extends ph{get rfc822Name(){return this.findGeneralName(1)?.value.toString(\"ascii\")}get uri(){return this.findGeneralName(6)?.value.toString(\"ascii\")}otherName(e){let r=this.findGeneralName(0);return r===void 0||r.subs[0].toOID()!==e?void 0:r.subs[1].subs[0].value.toString(\"ascii\")}findGeneralName(e){return this.generalNames.find(r=>r.tag.isContextSpecific(e))}get generalNames(){return this.extnValueObj.subs[0].subs}};sa.X509SubjectAlternativeNameExtension=s7;var o7=class extends ph{get keyIdentifier(){return this.findSequenceMember(0)?.value}findSequenceMember(e){return this.sequence.subs.find(r=>r.tag.isContextSpecific(e))}get sequence(){return this.extnValueObj.subs[0]}};sa.X509AuthorityKeyIDExtension=o7;var a7=class extends ph{get keyIdentifier(){return this.extnValueObj.subs[0].value}};sa.X509SubjectKeyIDExtension=a7;var l7=class extends ph{constructor(e){super(e)}get signedCertificateTimestamps(){let e=this.extnValueObj.subs[0].value,r=new DCt.ByteStream(e),s=r.getUint16()+2,a=[];for(;r.position<s;){let n=r.getUint16(),c=r.getBlock(n);a.push(PCt.SignedCertificateTimestamp.parse(c))}if(r.position!==s)throw new Error(\"SCT list length does not match actual length\");return a}};sa.X509SCTExtension=l7});var QDe=_(ic=>{\"use strict\";var bCt=ic&&ic.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),xCt=ic&&ic.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),kDe=ic&&ic.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.prototype.hasOwnProperty.call(t,r)&&bCt(e,t,r);return xCt(e,t),e};Object.defineProperty(ic,\"__esModule\",{value:!0});ic.X509Certificate=ic.EXTENSION_OID_SCT=void 0;var kCt=lO(),xDe=kDe(Kw()),QCt=fO(),RCt=kDe(zV()),ny=c7(),TCt=\"2.5.29.14\",FCt=\"2.5.29.15\",NCt=\"2.5.29.17\",OCt=\"2.5.29.19\",LCt=\"2.5.29.35\";ic.EXTENSION_OID_SCT=\"1.3.6.1.4.1.11129.2.4.2\";var u7=class t{constructor(e){this.root=e}static parse(e){let r=typeof e==\"string\"?RCt.toDER(e):e,s=kCt.ASN1Obj.parseBuffer(r);return new t(s)}get tbsCertificate(){return this.tbsCertificateObj}get version(){return`v${(this.versionObj.subs[0].toInteger()+BigInt(1)).toString()}`}get serialNumber(){return this.serialNumberObj.value}get notBefore(){return this.validityObj.subs[0].toDate()}get notAfter(){return this.validityObj.subs[1].toDate()}get issuer(){return this.issuerObj.value}get subject(){return this.subjectObj.value}get publicKey(){return this.subjectPublicKeyInfoObj.toDER()}get signatureAlgorithm(){let e=this.signatureAlgorithmObj.subs[0].toOID();return QCt.ECDSA_SIGNATURE_ALGOS[e]}get signatureValue(){return this.signatureValueObj.value.subarray(1)}get subjectAltName(){let e=this.extSubjectAltName;return e?.uri||e?.rfc822Name}get extensions(){return this.extensionsObj?.subs[0]?.subs||[]}get extKeyUsage(){let e=this.findExtension(FCt);return e?new ny.X509KeyUsageExtension(e):void 0}get extBasicConstraints(){let e=this.findExtension(OCt);return e?new ny.X509BasicConstraintsExtension(e):void 0}get extSubjectAltName(){let e=this.findExtension(NCt);return e?new ny.X509SubjectAlternativeNameExtension(e):void 0}get extAuthorityKeyID(){let e=this.findExtension(LCt);return e?new ny.X509AuthorityKeyIDExtension(e):void 0}get extSubjectKeyID(){let e=this.findExtension(TCt);return e?new ny.X509SubjectKeyIDExtension(e):void 0}get extSCT(){let e=this.findExtension(ic.EXTENSION_OID_SCT);return e?new ny.X509SCTExtension(e):void 0}get isCA(){let e=this.extBasicConstraints?.isCA||!1;return this.extKeyUsage?e&&this.extKeyUsage.keyCertSign:e}extension(e){let r=this.findExtension(e);return r?new ny.X509Extension(r):void 0}verify(e){let r=e?.publicKey||this.publicKey,s=xDe.createPublicKey(r);return xDe.verify(this.tbsCertificate.toDER(),s,this.signatureValue,this.signatureAlgorithm)}validForDate(e){return this.notBefore<=e&&e<=this.notAfter}equals(e){return this.root.toDER().equals(e.root.toDER())}clone(){let e=this.root.toDER(),r=Buffer.alloc(e.length);return e.copy(r),t.parse(r)}findExtension(e){return this.extensions.find(r=>r.subs[0].toOID()===e)}get tbsCertificateObj(){return this.root.subs[0]}get signatureAlgorithmObj(){return this.root.subs[1]}get signatureValueObj(){return this.root.subs[2]}get versionObj(){return this.tbsCertificateObj.subs[0]}get serialNumberObj(){return this.tbsCertificateObj.subs[1]}get issuerObj(){return this.tbsCertificateObj.subs[3]}get validityObj(){return this.tbsCertificateObj.subs[4]}get subjectObj(){return this.tbsCertificateObj.subs[5]}get subjectPublicKeyInfoObj(){return this.tbsCertificateObj.subs[6]}get extensionsObj(){return this.tbsCertificateObj.subs.find(e=>e.tag.isContextSpecific(3))}};ic.X509Certificate=u7});var TDe=_(Bg=>{\"use strict\";Object.defineProperty(Bg,\"__esModule\",{value:!0});Bg.X509SCTExtension=Bg.X509Certificate=Bg.EXTENSION_OID_SCT=void 0;var RDe=QDe();Object.defineProperty(Bg,\"EXTENSION_OID_SCT\",{enumerable:!0,get:function(){return RDe.EXTENSION_OID_SCT}});Object.defineProperty(Bg,\"X509Certificate\",{enumerable:!0,get:function(){return RDe.X509Certificate}});var MCt=c7();Object.defineProperty(Bg,\"X509SCTExtension\",{enumerable:!0,get:function(){return MCt.X509SCTExtension}})});var Cl=_(Jn=>{\"use strict\";var UCt=Jn&&Jn.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),_Ct=Jn&&Jn.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),BP=Jn&&Jn.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.prototype.hasOwnProperty.call(t,r)&&UCt(e,t,r);return _Ct(e,t),e};Object.defineProperty(Jn,\"__esModule\",{value:!0});Jn.X509SCTExtension=Jn.X509Certificate=Jn.EXTENSION_OID_SCT=Jn.ByteStream=Jn.RFC3161Timestamp=Jn.pem=Jn.json=Jn.encoding=Jn.dsse=Jn.crypto=Jn.ASN1Obj=void 0;var HCt=lO();Object.defineProperty(Jn,\"ASN1Obj\",{enumerable:!0,get:function(){return HCt.ASN1Obj}});Jn.crypto=BP(Kw());Jn.dsse=BP(mDe());Jn.encoding=BP(IDe());Jn.json=BP(CDe());Jn.pem=BP(zV());var jCt=DDe();Object.defineProperty(Jn,\"RFC3161Timestamp\",{enumerable:!0,get:function(){return jCt.RFC3161Timestamp}});var GCt=IP();Object.defineProperty(Jn,\"ByteStream\",{enumerable:!0,get:function(){return GCt.ByteStream}});var f7=TDe();Object.defineProperty(Jn,\"EXTENSION_OID_SCT\",{enumerable:!0,get:function(){return f7.EXTENSION_OID_SCT}});Object.defineProperty(Jn,\"X509Certificate\",{enumerable:!0,get:function(){return f7.X509Certificate}});Object.defineProperty(Jn,\"X509SCTExtension\",{enumerable:!0,get:function(){return f7.X509SCTExtension}})});var FDe=_(A7=>{\"use strict\";Object.defineProperty(A7,\"__esModule\",{value:!0});A7.extractJWTSubject=WCt;var qCt=Cl();function WCt(t){let e=t.split(\".\",3),r=JSON.parse(qCt.encoding.base64Decode(e[1]));switch(r.iss){case\"https://accounts.google.com\":case\"https://oauth2.sigstore.dev/auth\":return r.email;default:return r.sub}}});var NDe=_((Zrr,YCt)=>{YCt.exports={name:\"@sigstore/sign\",version:\"3.1.0\",description:\"Sigstore signing library\",main:\"dist/index.js\",types:\"dist/index.d.ts\",scripts:{clean:\"shx rm -rf dist *.tsbuildinfo\",build:\"tsc --build\",test:\"jest\"},files:[\"dist\"],author:\"bdehamer@github.com\",license:\"Apache-2.0\",repository:{type:\"git\",url:\"git+https://github.com/sigstore/sigstore-js.git\"},bugs:{url:\"https://github.com/sigstore/sigstore-js/issues\"},homepage:\"https://github.com/sigstore/sigstore-js/tree/main/packages/sign#readme\",publishConfig:{provenance:!0},devDependencies:{\"@sigstore/jest\":\"^0.0.0\",\"@sigstore/mock\":\"^0.10.0\",\"@sigstore/rekor-types\":\"^3.0.0\",\"@types/make-fetch-happen\":\"^10.0.4\",\"@types/promise-retry\":\"^1.1.6\"},dependencies:{\"@sigstore/bundle\":\"^3.1.0\",\"@sigstore/core\":\"^2.0.0\",\"@sigstore/protobuf-specs\":\"^0.4.0\",\"make-fetch-happen\":\"^14.0.2\",\"proc-log\":\"^5.0.0\",\"promise-retry\":\"^2.0.1\"},engines:{node:\"^18.17.0 || >=20.5.0\"}}});var LDe=_(Zw=>{\"use strict\";var VCt=Zw&&Zw.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Zw,\"__esModule\",{value:!0});Zw.getUserAgent=void 0;var ODe=VCt(Ie(\"os\")),JCt=()=>{let t=NDe().version,e=process.version,r=ODe.default.platform(),s=ODe.default.arch();return`sigstore-js/${t} (Node ${e}) (${r}/${s})`};Zw.getUserAgent=JCt});var vg=_(Vi=>{\"use strict\";var KCt=Vi&&Vi.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),zCt=Vi&&Vi.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),MDe=Vi&&Vi.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a<s.length;a++)s[a]!==\"default\"&&KCt(r,e,s[a]);return zCt(r,e),r}}();Object.defineProperty(Vi,\"__esModule\",{value:!0});Vi.ua=Vi.oidc=Vi.pem=Vi.json=Vi.encoding=Vi.dsse=Vi.crypto=void 0;var vP=Cl();Object.defineProperty(Vi,\"crypto\",{enumerable:!0,get:function(){return vP.crypto}});Object.defineProperty(Vi,\"dsse\",{enumerable:!0,get:function(){return vP.dsse}});Object.defineProperty(Vi,\"encoding\",{enumerable:!0,get:function(){return vP.encoding}});Object.defineProperty(Vi,\"json\",{enumerable:!0,get:function(){return vP.json}});Object.defineProperty(Vi,\"pem\",{enumerable:!0,get:function(){return vP.pem}});Vi.oidc=MDe(FDe());Vi.ua=MDe(LDe())});var h7=_(hO=>{\"use strict\";Object.defineProperty(hO,\"__esModule\",{value:!0});hO.BaseBundleBuilder=void 0;var p7=class{constructor(e){this.signer=e.signer,this.witnesses=e.witnesses}async create(e){let r=await this.prepare(e).then(f=>this.signer.sign(f)),s=await this.package(e,r),a=await Promise.all(this.witnesses.map(f=>f.testify(s.content,ZCt(r.key)))),n=[],c=[];return a.forEach(({tlogEntries:f,rfc3161Timestamps:p})=>{n.push(...f??[]),c.push(...p??[])}),s.verificationMaterial.tlogEntries=n,s.verificationMaterial.timestampVerificationData={rfc3161Timestamps:c},s}async prepare(e){return e.data}};hO.BaseBundleBuilder=p7;function ZCt(t){switch(t.$case){case\"publicKey\":return t.publicKey;case\"x509Certificate\":return t.certificate}}});var d7=_(PA=>{\"use strict\";var XCt=PA&&PA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),$Ct=PA&&PA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ewt=PA&&PA.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a<s.length;a++)s[a]!==\"default\"&&XCt(r,e,s[a]);return $Ct(r,e),r}}();Object.defineProperty(PA,\"__esModule\",{value:!0});PA.toMessageSignatureBundle=twt;PA.toDSSEBundle=rwt;var UDe=ewt(EP()),g7=vg();function twt(t,e){let r=g7.crypto.digest(\"sha256\",t.data);return UDe.toMessageSignatureBundle({digest:r,signature:e.signature,certificate:e.key.$case===\"x509Certificate\"?g7.pem.toDER(e.key.certificate):void 0,keyHint:e.key.$case===\"publicKey\"?e.key.hint:void 0,certificateChain:!0})}function rwt(t,e,r){return UDe.toDSSEBundle({artifact:t.data,artifactType:t.type,signature:e.signature,certificate:e.key.$case===\"x509Certificate\"?g7.pem.toDER(e.key.certificate):void 0,keyHint:e.key.$case===\"publicKey\"?e.key.hint:void 0,certificateChain:r})}});var HDe=_(gO=>{\"use strict\";Object.defineProperty(gO,\"__esModule\",{value:!0});gO.DSSEBundleBuilder=void 0;var nwt=vg(),iwt=h7(),swt=d7(),m7=class extends iwt.BaseBundleBuilder{constructor(e){super(e),this.certificateChain=e.certificateChain??!1}async prepare(e){let r=_De(e);return nwt.dsse.preAuthEncoding(r.type,r.data)}async package(e,r){return(0,swt.toDSSEBundle)(_De(e),r,this.certificateChain)}};gO.DSSEBundleBuilder=m7;function _De(t){return{...t,type:t.type??\"\"}}});var jDe=_(dO=>{\"use strict\";Object.defineProperty(dO,\"__esModule\",{value:!0});dO.MessageSignatureBundleBuilder=void 0;var owt=h7(),awt=d7(),y7=class extends owt.BaseBundleBuilder{constructor(e){super(e)}async package(e,r){return(0,awt.toMessageSignatureBundle)(e,r)}};dO.MessageSignatureBundleBuilder=y7});var GDe=_(Xw=>{\"use strict\";Object.defineProperty(Xw,\"__esModule\",{value:!0});Xw.MessageSignatureBundleBuilder=Xw.DSSEBundleBuilder=void 0;var lwt=HDe();Object.defineProperty(Xw,\"DSSEBundleBuilder\",{enumerable:!0,get:function(){return lwt.DSSEBundleBuilder}});var cwt=jDe();Object.defineProperty(Xw,\"MessageSignatureBundleBuilder\",{enumerable:!0,get:function(){return cwt.MessageSignatureBundleBuilder}})});var yO=_(mO=>{\"use strict\";Object.defineProperty(mO,\"__esModule\",{value:!0});mO.HTTPError=void 0;var E7=class extends Error{constructor({status:e,message:r,location:s}){super(`(${e}) ${r}`),this.statusCode=e,this.location=s}};mO.HTTPError=E7});var $w=_(SP=>{\"use strict\";Object.defineProperty(SP,\"__esModule\",{value:!0});SP.InternalError=void 0;SP.internalError=fwt;var uwt=yO(),EO=class extends Error{constructor({code:e,message:r,cause:s}){super(r),this.name=this.constructor.name,this.cause=s,this.code=e}};SP.InternalError=EO;function fwt(t,e,r){throw t instanceof uwt.HTTPError&&(r+=` - ${t.message}`),new EO({code:e,message:r,cause:t})}});var IO=_((anr,qDe)=>{qDe.exports=fetch});var WDe=_(e1=>{\"use strict\";var Awt=e1&&e1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e1,\"__esModule\",{value:!0});e1.CIContextProvider=void 0;var pwt=Awt(IO()),hwt=[gwt,dwt],I7=class{constructor(e=\"sigstore\"){this.audience=e}async getToken(){return Promise.any(hwt.map(e=>e(this.audience))).catch(()=>Promise.reject(\"CI: no tokens available\"))}};e1.CIContextProvider=I7;async function gwt(t){if(!process.env.ACTIONS_ID_TOKEN_REQUEST_URL||!process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN)return Promise.reject(\"no token available\");let e=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);return e.searchParams.append(\"audience\",t),(await(0,pwt.default)(e.href,{retry:2,headers:{Accept:\"application/json\",Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).json().then(s=>s.value)}async function dwt(){return process.env.SIGSTORE_ID_TOKEN?process.env.SIGSTORE_ID_TOKEN:Promise.reject(\"no token available\")}});var YDe=_(CO=>{\"use strict\";Object.defineProperty(CO,\"__esModule\",{value:!0});CO.CIContextProvider=void 0;var mwt=WDe();Object.defineProperty(CO,\"CIContextProvider\",{enumerable:!0,get:function(){return mwt.CIContextProvider}})});var JDe=_((unr,VDe)=>{var ywt=Symbol(\"proc-log.meta\");VDe.exports={META:ywt,output:{LEVELS:[\"standard\",\"error\",\"buffer\",\"flush\"],KEYS:{standard:\"standard\",error:\"error\",buffer:\"buffer\",flush:\"flush\"},standard:function(...t){return process.emit(\"output\",\"standard\",...t)},error:function(...t){return process.emit(\"output\",\"error\",...t)},buffer:function(...t){return process.emit(\"output\",\"buffer\",...t)},flush:function(...t){return process.emit(\"output\",\"flush\",...t)}},log:{LEVELS:[\"notice\",\"error\",\"warn\",\"info\",\"verbose\",\"http\",\"silly\",\"timing\",\"pause\",\"resume\"],KEYS:{notice:\"notice\",error:\"error\",warn:\"warn\",info:\"info\",verbose:\"verbose\",http:\"http\",silly:\"silly\",timing:\"timing\",pause:\"pause\",resume:\"resume\"},error:function(...t){return process.emit(\"log\",\"error\",...t)},notice:function(...t){return process.emit(\"log\",\"notice\",...t)},warn:function(...t){return process.emit(\"log\",\"warn\",...t)},info:function(...t){return process.emit(\"log\",\"info\",...t)},verbose:function(...t){return process.emit(\"log\",\"verbose\",...t)},http:function(...t){return process.emit(\"log\",\"http\",...t)},silly:function(...t){return process.emit(\"log\",\"silly\",...t)},timing:function(...t){return process.emit(\"log\",\"timing\",...t)},pause:function(){return process.emit(\"log\",\"pause\")},resume:function(){return process.emit(\"log\",\"resume\")}},time:{LEVELS:[\"start\",\"end\"],KEYS:{start:\"start\",end:\"end\"},start:function(t,e){process.emit(\"time\",\"start\",t);function r(){return process.emit(\"time\",\"end\",t)}if(typeof e==\"function\"){let s=e();return s&&s.finally?s.finally(r):(r(),s)}return r},end:function(t){return process.emit(\"time\",\"end\",t)}},input:{LEVELS:[\"start\",\"end\",\"read\"],KEYS:{start:\"start\",end:\"end\",read:\"read\"},start:function(t){process.emit(\"input\",\"start\");function e(){return process.emit(\"input\",\"end\")}if(typeof t==\"function\"){let r=t();return r&&r.finally?r.finally(e):(e(),r)}return e},end:function(){return process.emit(\"input\",\"end\")},read:function(...t){let e,r,s=new Promise((a,n)=>{e=a,r=n});return process.emit(\"input\",\"read\",e,r,...t),s}}}});var ZDe=_((fnr,zDe)=>{\"use strict\";function KDe(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function Ewt(t,e,r){if(!t||typeof t==\"string\")throw new TypeError(\"Please pass an Error to err-code\");r||(r={}),typeof e==\"object\"&&(r=e,e=void 0),e!=null&&(r.code=e);try{return KDe(t,r)}catch{r.message=t.message,r.stack=t.stack;let a=function(){};return a.prototype=Object.create(Object.getPrototypeOf(t)),KDe(new a,r)}}zDe.exports=Ewt});var $De=_((Anr,XDe)=>{function $c(t,e){typeof e==\"boolean\"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}XDe.exports=$c;$c.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};$c.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null};$c.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.unshift(new Error(\"RetryOperation timeout occurred\")),!1;this._errors.push(t);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),r=this._timeouts.shift();else return!1;var s=this,a=setTimeout(function(){s._attempts++,s._operationTimeoutCb&&(s._timeout=setTimeout(function(){s._operationTimeoutCb(s._attempts)},s._operationTimeout),s._options.unref&&s._timeout.unref()),s._fn(s._attempts)},r);return this._options.unref&&a.unref(),!0};$c.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};$c.prototype.try=function(t){console.log(\"Using RetryOperation.try() is deprecated\"),this.attempt(t)};$c.prototype.start=function(t){console.log(\"Using RetryOperation.start() is deprecated\"),this.attempt(t)};$c.prototype.start=$c.prototype.try;$c.prototype.errors=function(){return this._errors};$c.prototype.attempts=function(){return this._attempts};$c.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,r=0,s=0;s<this._errors.length;s++){var a=this._errors[s],n=a.message,c=(t[n]||0)+1;t[n]=c,c>=r&&(e=a,r=c)}return e}});var ePe=_(iy=>{var Iwt=$De();iy.operation=function(t){var e=iy.timeouts(t);return new Iwt(e,{forever:t&&t.forever,unref:t&&t.unref,maxRetryTime:t&&t.maxRetryTime})};iy.timeouts=function(t){if(t instanceof Array)return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in t)e[r]=t[r];if(e.minTimeout>e.maxTimeout)throw new Error(\"minTimeout is greater than maxTimeout\");for(var s=[],a=0;a<e.retries;a++)s.push(this.createTimeout(a,e));return t&&t.forever&&!s.length&&s.push(this.createTimeout(a,e)),s.sort(function(n,c){return n-c}),s};iy.createTimeout=function(t,e){var r=e.randomize?Math.random()+1:1,s=Math.round(r*e.minTimeout*Math.pow(e.factor,t));return s=Math.min(s,e.maxTimeout),s};iy.wrap=function(t,e,r){if(e instanceof Array&&(r=e,e=null),!r){r=[];for(var s in t)typeof t[s]==\"function\"&&r.push(s)}for(var a=0;a<r.length;a++){var n=r[a],c=t[n];t[n]=function(p){var h=iy.operation(e),E=Array.prototype.slice.call(arguments,1),C=E.pop();E.push(function(S){h.retry(S)||(S&&(arguments[0]=h.mainError()),C.apply(this,arguments))}),h.attempt(function(){p.apply(t,E)})}.bind(t,c),t[n].options=e}}});var rPe=_((hnr,tPe)=>{tPe.exports=ePe()});var sPe=_((gnr,iPe)=>{\"use strict\";var Cwt=ZDe(),wwt=rPe(),Bwt=Object.prototype.hasOwnProperty;function nPe(t){return t&&t.code===\"EPROMISERETRY\"&&Bwt.call(t,\"retried\")}function vwt(t,e){var r,s;return typeof t==\"object\"&&typeof e==\"function\"&&(r=e,e=t,t=r),s=wwt.operation(e),new Promise(function(a,n){s.attempt(function(c){Promise.resolve().then(function(){return t(function(f){throw nPe(f)&&(f=f.retried),Cwt(new Error(\"Retrying\"),\"EPROMISERETRY\",{retried:f})},c)}).then(a,function(f){nPe(f)&&(f=f.retried,s.retry(f||new Error))||n(f)})})})}iPe.exports=vwt});var wO=_(DP=>{\"use strict\";var aPe=DP&&DP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(DP,\"__esModule\",{value:!0});DP.fetchWithRetry=Owt;var Swt=Ie(\"http2\"),Dwt=aPe(IO()),oPe=JDe(),Pwt=aPe(sPe()),bwt=vg(),xwt=yO(),{HTTP2_HEADER_LOCATION:kwt,HTTP2_HEADER_CONTENT_TYPE:Qwt,HTTP2_HEADER_USER_AGENT:Rwt,HTTP_STATUS_INTERNAL_SERVER_ERROR:Twt,HTTP_STATUS_TOO_MANY_REQUESTS:Fwt,HTTP_STATUS_REQUEST_TIMEOUT:Nwt}=Swt.constants;async function Owt(t,e){return(0,Pwt.default)(async(r,s)=>{let a=e.method||\"POST\",n={[Rwt]:bwt.ua.getUserAgent(),...e.headers},c=await(0,Dwt.default)(t,{method:a,headers:n,body:e.body,timeout:e.timeout,retry:!1}).catch(f=>(oPe.log.http(\"fetch\",`${a} ${t} attempt ${s} failed with ${f}`),r(f)));if(c.ok)return c;{let f=await Lwt(c);if(oPe.log.http(\"fetch\",`${a} ${t} attempt ${s} failed with ${c.status}`),Mwt(c.status))return r(f);throw f}},Uwt(e.retry))}var Lwt=async t=>{let e=t.statusText,r=t.headers.get(kwt)||void 0;if(t.headers.get(Qwt)?.includes(\"application/json\"))try{e=(await t.json()).message||e}catch{}return new xwt.HTTPError({status:t.status,message:e,location:r})},Mwt=t=>[Nwt,Fwt].includes(t)||t>=Twt,Uwt=t=>typeof t==\"boolean\"?{retries:t?1:0}:typeof t==\"number\"?{retries:t}:{retries:0,...t}});var lPe=_(BO=>{\"use strict\";Object.defineProperty(BO,\"__esModule\",{value:!0});BO.Fulcio=void 0;var _wt=wO(),C7=class{constructor(e){this.options=e}async createSigningCertificate(e){let{baseURL:r,retry:s,timeout:a}=this.options,n=`${r}/api/v2/signingCert`;return(await(0,_wt.fetchWithRetry)(n,{headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(e),timeout:a,retry:s})).json()}};BO.Fulcio=C7});var cPe=_(vO=>{\"use strict\";Object.defineProperty(vO,\"__esModule\",{value:!0});vO.CAClient=void 0;var Hwt=$w(),jwt=lPe(),w7=class{constructor(e){this.fulcio=new jwt.Fulcio({baseURL:e.fulcioBaseURL,retry:e.retry,timeout:e.timeout})}async createSigningCertificate(e,r,s){let a=Gwt(e,r,s);try{let n=await this.fulcio.createSigningCertificate(a);return(n.signedCertificateEmbeddedSct?n.signedCertificateEmbeddedSct:n.signedCertificateDetachedSct).chain.certificates}catch(n){(0,Hwt.internalError)(n,\"CA_CREATE_SIGNING_CERTIFICATE_ERROR\",\"error creating signing certificate\")}}};vO.CAClient=w7;function Gwt(t,e,r){return{credentials:{oidcIdentityToken:t},publicKeyRequest:{publicKey:{algorithm:\"ECDSA\",content:e},proofOfPossession:r.toString(\"base64\")}}}});var fPe=_(t1=>{\"use strict\";var qwt=t1&&t1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t1,\"__esModule\",{value:!0});t1.EphemeralSigner=void 0;var uPe=qwt(Ie(\"crypto\")),Wwt=\"ec\",Ywt=\"P-256\",B7=class{constructor(){this.keypair=uPe.default.generateKeyPairSync(Wwt,{namedCurve:Ywt})}async sign(e){let r=uPe.default.sign(null,e,this.keypair.privateKey),s=this.keypair.publicKey.export({format:\"pem\",type:\"spki\"}).toString(\"ascii\");return{signature:r,key:{$case:\"publicKey\",publicKey:s}}}};t1.EphemeralSigner=B7});var APe=_(sy=>{\"use strict\";Object.defineProperty(sy,\"__esModule\",{value:!0});sy.FulcioSigner=sy.DEFAULT_FULCIO_URL=void 0;var v7=$w(),Vwt=vg(),Jwt=cPe(),Kwt=fPe();sy.DEFAULT_FULCIO_URL=\"https://fulcio.sigstore.dev\";var S7=class{constructor(e){this.ca=new Jwt.CAClient({...e,fulcioBaseURL:e.fulcioBaseURL||sy.DEFAULT_FULCIO_URL}),this.identityProvider=e.identityProvider,this.keyHolder=e.keyHolder||new Kwt.EphemeralSigner}async sign(e){let r=await this.getIdentityToken(),s;try{s=Vwt.oidc.extractJWTSubject(r)}catch(f){throw new v7.InternalError({code:\"IDENTITY_TOKEN_PARSE_ERROR\",message:`invalid identity token: ${r}`,cause:f})}let a=await this.keyHolder.sign(Buffer.from(s));if(a.key.$case!==\"publicKey\")throw new v7.InternalError({code:\"CA_CREATE_SIGNING_CERTIFICATE_ERROR\",message:\"unexpected format for signing key\"});let n=await this.ca.createSigningCertificate(r,a.key.publicKey,a.signature);return{signature:(await this.keyHolder.sign(e)).signature,key:{$case:\"x509Certificate\",certificate:n[0]}}}async getIdentityToken(){try{return await this.identityProvider.getToken()}catch(e){throw new v7.InternalError({code:\"IDENTITY_TOKEN_READ_ERROR\",message:\"error retrieving identity token\",cause:e})}}};sy.FulcioSigner=S7});var hPe=_(r1=>{\"use strict\";Object.defineProperty(r1,\"__esModule\",{value:!0});r1.FulcioSigner=r1.DEFAULT_FULCIO_URL=void 0;var pPe=APe();Object.defineProperty(r1,\"DEFAULT_FULCIO_URL\",{enumerable:!0,get:function(){return pPe.DEFAULT_FULCIO_URL}});Object.defineProperty(r1,\"FulcioSigner\",{enumerable:!0,get:function(){return pPe.FulcioSigner}})});var mPe=_(SO=>{\"use strict\";Object.defineProperty(SO,\"__esModule\",{value:!0});SO.Rekor=void 0;var gPe=wO(),D7=class{constructor(e){this.options=e}async createEntry(e){let{baseURL:r,timeout:s,retry:a}=this.options,n=`${r}/api/v1/log/entries`,f=await(await(0,gPe.fetchWithRetry)(n,{headers:{\"Content-Type\":\"application/json\",Accept:\"application/json\"},body:JSON.stringify(e),timeout:s,retry:a})).json();return dPe(f)}async getEntry(e){let{baseURL:r,timeout:s,retry:a}=this.options,n=`${r}/api/v1/log/entries/${e}`,f=await(await(0,gPe.fetchWithRetry)(n,{method:\"GET\",headers:{Accept:\"application/json\"},timeout:s,retry:a})).json();return dPe(f)}};SO.Rekor=D7;function dPe(t){let e=Object.entries(t);if(e.length!=1)throw new Error(\"Received multiple entries in Rekor response\");let[r,s]=e[0];return{...s,uuid:r}}});var EPe=_(DO=>{\"use strict\";Object.defineProperty(DO,\"__esModule\",{value:!0});DO.TLogClient=void 0;var yPe=$w(),zwt=yO(),Zwt=mPe(),P7=class{constructor(e){this.fetchOnConflict=e.fetchOnConflict??!1,this.rekor=new Zwt.Rekor({baseURL:e.rekorBaseURL,retry:e.retry,timeout:e.timeout})}async createEntry(e){let r;try{r=await this.rekor.createEntry(e)}catch(s){if(Xwt(s)&&this.fetchOnConflict){let a=s.location.split(\"/\").pop()||\"\";try{r=await this.rekor.getEntry(a)}catch(n){(0,yPe.internalError)(n,\"TLOG_FETCH_ENTRY_ERROR\",\"error fetching tlog entry\")}}else(0,yPe.internalError)(s,\"TLOG_CREATE_ENTRY_ERROR\",\"error creating tlog entry\")}return r}};DO.TLogClient=P7;function Xwt(t){return t instanceof zwt.HTTPError&&t.statusCode===409&&t.location!==void 0}});var IPe=_(b7=>{\"use strict\";Object.defineProperty(b7,\"__esModule\",{value:!0});b7.toProposedEntry=e1t;var $wt=EP(),Sg=vg(),PP=\"sha256\";function e1t(t,e,r=\"dsse\"){switch(t.$case){case\"dsseEnvelope\":return r===\"intoto\"?n1t(t.dsseEnvelope,e):r1t(t.dsseEnvelope,e);case\"messageSignature\":return t1t(t.messageSignature,e)}}function t1t(t,e){let r=t.messageDigest.digest.toString(\"hex\"),s=t.signature.toString(\"base64\"),a=Sg.encoding.base64Encode(e);return{apiVersion:\"0.0.1\",kind:\"hashedrekord\",spec:{data:{hash:{algorithm:PP,value:r}},signature:{content:s,publicKey:{content:a}}}}}function r1t(t,e){let r=JSON.stringify((0,$wt.envelopeToJSON)(t)),s=Sg.encoding.base64Encode(e);return{apiVersion:\"0.0.1\",kind:\"dsse\",spec:{proposedContent:{envelope:r,verifiers:[s]}}}}function n1t(t,e){let r=Sg.crypto.digest(PP,t.payload).toString(\"hex\"),s=i1t(t,e),a=Sg.encoding.base64Encode(t.payload.toString(\"base64\")),n=Sg.encoding.base64Encode(t.signatures[0].sig.toString(\"base64\")),c=t.signatures[0].keyid,f=Sg.encoding.base64Encode(e),p={payloadType:t.payloadType,payload:a,signatures:[{sig:n,publicKey:f}]};return c.length>0&&(p.signatures[0].keyid=c),{apiVersion:\"0.0.2\",kind:\"intoto\",spec:{content:{envelope:p,hash:{algorithm:PP,value:s},payloadHash:{algorithm:PP,value:r}}}}}function i1t(t,e){let r={payloadType:t.payloadType,payload:t.payload.toString(\"base64\"),signatures:[{sig:t.signatures[0].sig.toString(\"base64\"),publicKey:e}]};return t.signatures[0].keyid.length>0&&(r.signatures[0].keyid=t.signatures[0].keyid),Sg.crypto.digest(PP,Sg.json.canonicalize(r)).toString(\"hex\")}});var CPe=_(oy=>{\"use strict\";Object.defineProperty(oy,\"__esModule\",{value:!0});oy.RekorWitness=oy.DEFAULT_REKOR_URL=void 0;var s1t=vg(),o1t=EPe(),a1t=IPe();oy.DEFAULT_REKOR_URL=\"https://rekor.sigstore.dev\";var x7=class{constructor(e){this.entryType=e.entryType,this.tlog=new o1t.TLogClient({...e,rekorBaseURL:e.rekorBaseURL||oy.DEFAULT_REKOR_URL})}async testify(e,r){let s=(0,a1t.toProposedEntry)(e,r,this.entryType),a=await this.tlog.createEntry(s);return l1t(a)}};oy.RekorWitness=x7;function l1t(t){let e=Buffer.from(t.logID,\"hex\"),r=s1t.encoding.base64Decode(t.body),s=JSON.parse(r),a=t?.verification?.signedEntryTimestamp?c1t(t.verification.signedEntryTimestamp):void 0,n=t?.verification?.inclusionProof?u1t(t.verification.inclusionProof):void 0;return{tlogEntries:[{logIndex:t.logIndex.toString(),logId:{keyId:e},integratedTime:t.integratedTime.toString(),kindVersion:{kind:s.kind,version:s.apiVersion},inclusionPromise:a,inclusionProof:n,canonicalizedBody:Buffer.from(t.body,\"base64\")}]}}function c1t(t){return{signedEntryTimestamp:Buffer.from(t,\"base64\")}}function u1t(t){return{logIndex:t.logIndex.toString(),treeSize:t.treeSize.toString(),rootHash:Buffer.from(t.rootHash,\"hex\"),hashes:t.hashes.map(e=>Buffer.from(e,\"hex\")),checkpoint:{envelope:t.checkpoint}}}});var wPe=_(PO=>{\"use strict\";Object.defineProperty(PO,\"__esModule\",{value:!0});PO.TimestampAuthority=void 0;var f1t=wO(),k7=class{constructor(e){this.options=e}async createTimestamp(e){let{baseURL:r,timeout:s,retry:a}=this.options,n=`${r}/api/v1/timestamp`;return(await(0,f1t.fetchWithRetry)(n,{headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(e),timeout:s,retry:a})).buffer()}};PO.TimestampAuthority=k7});var vPe=_(bO=>{\"use strict\";Object.defineProperty(bO,\"__esModule\",{value:!0});bO.TSAClient=void 0;var A1t=$w(),p1t=wPe(),h1t=vg(),BPe=\"sha256\",Q7=class{constructor(e){this.tsa=new p1t.TimestampAuthority({baseURL:e.tsaBaseURL,retry:e.retry,timeout:e.timeout})}async createTimestamp(e){let r={artifactHash:h1t.crypto.digest(BPe,e).toString(\"base64\"),hashAlgorithm:BPe};try{return await this.tsa.createTimestamp(r)}catch(s){(0,A1t.internalError)(s,\"TSA_CREATE_TIMESTAMP_ERROR\",\"error creating timestamp\")}}};bO.TSAClient=Q7});var SPe=_(xO=>{\"use strict\";Object.defineProperty(xO,\"__esModule\",{value:!0});xO.TSAWitness=void 0;var g1t=vPe(),R7=class{constructor(e){this.tsa=new g1t.TSAClient({tsaBaseURL:e.tsaBaseURL,retry:e.retry,timeout:e.timeout})}async testify(e){let r=d1t(e);return{rfc3161Timestamps:[{signedTimestamp:await this.tsa.createTimestamp(r)}]}}};xO.TSAWitness=R7;function d1t(t){switch(t.$case){case\"dsseEnvelope\":return t.dsseEnvelope.signatures[0].sig;case\"messageSignature\":return t.messageSignature.signature}}});var PPe=_(Dg=>{\"use strict\";Object.defineProperty(Dg,\"__esModule\",{value:!0});Dg.TSAWitness=Dg.RekorWitness=Dg.DEFAULT_REKOR_URL=void 0;var DPe=CPe();Object.defineProperty(Dg,\"DEFAULT_REKOR_URL\",{enumerable:!0,get:function(){return DPe.DEFAULT_REKOR_URL}});Object.defineProperty(Dg,\"RekorWitness\",{enumerable:!0,get:function(){return DPe.RekorWitness}});var m1t=SPe();Object.defineProperty(Dg,\"TSAWitness\",{enumerable:!0,get:function(){return m1t.TSAWitness}})});var F7=_(ys=>{\"use strict\";Object.defineProperty(ys,\"__esModule\",{value:!0});ys.TSAWitness=ys.RekorWitness=ys.DEFAULT_REKOR_URL=ys.FulcioSigner=ys.DEFAULT_FULCIO_URL=ys.CIContextProvider=ys.InternalError=ys.MessageSignatureBundleBuilder=ys.DSSEBundleBuilder=void 0;var bPe=GDe();Object.defineProperty(ys,\"DSSEBundleBuilder\",{enumerable:!0,get:function(){return bPe.DSSEBundleBuilder}});Object.defineProperty(ys,\"MessageSignatureBundleBuilder\",{enumerable:!0,get:function(){return bPe.MessageSignatureBundleBuilder}});var y1t=$w();Object.defineProperty(ys,\"InternalError\",{enumerable:!0,get:function(){return y1t.InternalError}});var E1t=YDe();Object.defineProperty(ys,\"CIContextProvider\",{enumerable:!0,get:function(){return E1t.CIContextProvider}});var xPe=hPe();Object.defineProperty(ys,\"DEFAULT_FULCIO_URL\",{enumerable:!0,get:function(){return xPe.DEFAULT_FULCIO_URL}});Object.defineProperty(ys,\"FulcioSigner\",{enumerable:!0,get:function(){return xPe.FulcioSigner}});var T7=PPe();Object.defineProperty(ys,\"DEFAULT_REKOR_URL\",{enumerable:!0,get:function(){return T7.DEFAULT_REKOR_URL}});Object.defineProperty(ys,\"RekorWitness\",{enumerable:!0,get:function(){return T7.RekorWitness}});Object.defineProperty(ys,\"TSAWitness\",{enumerable:!0,get:function(){return T7.TSAWitness}})});var QPe=_(bP=>{\"use strict\";var kPe=bP&&bP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bP,\"__esModule\",{value:!0});bP.appDataPath=C1t;var I1t=kPe(Ie(\"os\")),n1=kPe(Ie(\"path\"));function C1t(t){let e=I1t.default.homedir();switch(process.platform){case\"darwin\":{let r=n1.default.join(e,\"Library\",\"Application Support\");return n1.default.join(r,t)}case\"win32\":{let r=process.env.LOCALAPPDATA||n1.default.join(e,\"AppData\",\"Local\");return n1.default.join(r,t,\"Data\")}default:{let r=process.env.XDG_DATA_HOME||n1.default.join(e,\".local\",\"share\");return n1.default.join(r,t)}}}});var bA=_(wl=>{\"use strict\";Object.defineProperty(wl,\"__esModule\",{value:!0});wl.UnsupportedAlgorithmError=wl.CryptoError=wl.LengthOrHashMismatchError=wl.UnsignedMetadataError=wl.RepositoryError=wl.ValueError=void 0;var N7=class extends Error{};wl.ValueError=N7;var xP=class extends Error{};wl.RepositoryError=xP;var O7=class extends xP{};wl.UnsignedMetadataError=O7;var L7=class extends xP{};wl.LengthOrHashMismatchError=L7;var kO=class extends Error{};wl.CryptoError=kO;var M7=class extends kO{};wl.UnsupportedAlgorithmError=M7});var TPe=_(Pg=>{\"use strict\";Object.defineProperty(Pg,\"__esModule\",{value:!0});Pg.isDefined=w1t;Pg.isObject=RPe;Pg.isStringArray=B1t;Pg.isObjectArray=v1t;Pg.isStringRecord=S1t;Pg.isObjectRecord=D1t;function w1t(t){return t!==void 0}function RPe(t){return typeof t==\"object\"&&t!==null}function B1t(t){return Array.isArray(t)&&t.every(e=>typeof e==\"string\")}function v1t(t){return Array.isArray(t)&&t.every(RPe)}function S1t(t){return typeof t==\"object\"&&t!==null&&Object.keys(t).every(e=>typeof e==\"string\")&&Object.values(t).every(e=>typeof e==\"string\")}function D1t(t){return typeof t==\"object\"&&t!==null&&Object.keys(t).every(e=>typeof e==\"string\")&&Object.values(t).every(e=>typeof e==\"object\"&&e!==null)}});var _7=_((Fnr,OPe)=>{var FPe=\",\",P1t=\":\",b1t=\"[\",x1t=\"]\",k1t=\"{\",Q1t=\"}\";function U7(t){let e=[];if(typeof t==\"string\")e.push(NPe(t));else if(typeof t==\"boolean\")e.push(JSON.stringify(t));else if(Number.isInteger(t))e.push(JSON.stringify(t));else if(t===null)e.push(JSON.stringify(t));else if(Array.isArray(t)){e.push(b1t);let r=!0;t.forEach(s=>{r||e.push(FPe),r=!1,e.push(U7(s))}),e.push(x1t)}else if(typeof t==\"object\"){e.push(k1t);let r=!0;Object.keys(t).sort().forEach(s=>{r||e.push(FPe),r=!1,e.push(NPe(s)),e.push(P1t),e.push(U7(t[s]))}),e.push(Q1t)}else throw new TypeError(\"cannot encode \"+t.toString());return e.join(\"\")}function NPe(t){return'\"'+t.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"')+'\"'}OPe.exports={canonicalize:U7}});var LPe=_(i1=>{\"use strict\";var R1t=i1&&i1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(i1,\"__esModule\",{value:!0});i1.verifySignature=void 0;var T1t=_7(),F1t=R1t(Ie(\"crypto\")),N1t=(t,e,r)=>{let s=Buffer.from((0,T1t.canonicalize)(t));return F1t.default.verify(void 0,s,e,Buffer.from(r,\"hex\"))};i1.verifySignature=N1t});var ff=_(eu=>{\"use strict\";var O1t=eu&&eu.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),L1t=eu&&eu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),MPe=eu&&eu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.prototype.hasOwnProperty.call(t,r)&&O1t(e,t,r);return L1t(e,t),e};Object.defineProperty(eu,\"__esModule\",{value:!0});eu.crypto=eu.guard=void 0;eu.guard=MPe(TPe());eu.crypto=MPe(LPe())});var ay=_(hh=>{\"use strict\";var M1t=hh&&hh.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hh,\"__esModule\",{value:!0});hh.Signed=hh.MetadataKind=void 0;hh.isMetadataKind=_1t;var U1t=M1t(Ie(\"util\")),kP=bA(),H7=ff(),UPe=[\"1\",\"0\",\"31\"],j7;(function(t){t.Root=\"root\",t.Timestamp=\"timestamp\",t.Snapshot=\"snapshot\",t.Targets=\"targets\"})(j7||(hh.MetadataKind=j7={}));function _1t(t){return typeof t==\"string\"&&Object.values(j7).includes(t)}var G7=class t{constructor(e){this.specVersion=e.specVersion||UPe.join(\".\");let r=this.specVersion.split(\".\");if(!(r.length===2||r.length===3)||!r.every(s=>H1t(s)))throw new kP.ValueError(\"Failed to parse specVersion\");if(r[0]!=UPe[0])throw new kP.ValueError(\"Unsupported specVersion\");this.expires=e.expires,this.version=e.version,this.unrecognizedFields=e.unrecognizedFields||{}}equals(e){return e instanceof t?this.specVersion===e.specVersion&&this.expires===e.expires&&this.version===e.version&&U1t.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}isExpired(e){return e||(e=new Date),e>=new Date(this.expires)}static commonFieldsFromJSON(e){let{spec_version:r,expires:s,version:a,...n}=e;if(H7.guard.isDefined(r)){if(typeof r!=\"string\")throw new TypeError(\"spec_version must be a string\")}else throw new kP.ValueError(\"spec_version is not defined\");if(H7.guard.isDefined(s)){if(typeof s!=\"string\")throw new TypeError(\"expires must be a string\")}else throw new kP.ValueError(\"expires is not defined\");if(H7.guard.isDefined(a)){if(typeof a!=\"number\")throw new TypeError(\"version must be a number\")}else throw new kP.ValueError(\"version is not defined\");return{specVersion:r,expires:s,version:a,unrecognizedFields:n}}};hh.Signed=G7;function H1t(t){return!isNaN(Number(t))}});var QP=_(xg=>{\"use strict\";var _Pe=xg&&xg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xg,\"__esModule\",{value:!0});xg.TargetFile=xg.MetaFile=void 0;var HPe=_Pe(Ie(\"crypto\")),RO=_Pe(Ie(\"util\")),bg=bA(),QO=ff(),q7=class t{constructor(e){if(e.version<=0)throw new bg.ValueError(\"Metafile version must be at least 1\");e.length!==void 0&&jPe(e.length),this.version=e.version,this.length=e.length,this.hashes=e.hashes,this.unrecognizedFields=e.unrecognizedFields||{}}equals(e){return e instanceof t?this.version===e.version&&this.length===e.length&&RO.default.isDeepStrictEqual(this.hashes,e.hashes)&&RO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}verify(e){if(this.length!==void 0&&e.length!==this.length)throw new bg.LengthOrHashMismatchError(`Expected length ${this.length} but got ${e.length}`);this.hashes&&Object.entries(this.hashes).forEach(([r,s])=>{let a;try{a=HPe.default.createHash(r)}catch{throw new bg.LengthOrHashMismatchError(`Hash algorithm ${r} not supported`)}let n=a.update(e).digest(\"hex\");if(n!==s)throw new bg.LengthOrHashMismatchError(`Expected hash ${s} but got ${n}`)})}toJSON(){let e={version:this.version,...this.unrecognizedFields};return this.length!==void 0&&(e.length=this.length),this.hashes&&(e.hashes=this.hashes),e}static fromJSON(e){let{version:r,length:s,hashes:a,...n}=e;if(typeof r!=\"number\")throw new TypeError(\"version must be a number\");if(QO.guard.isDefined(s)&&typeof s!=\"number\")throw new TypeError(\"length must be a number\");if(QO.guard.isDefined(a)&&!QO.guard.isStringRecord(a))throw new TypeError(\"hashes must be string keys and values\");return new t({version:r,length:s,hashes:a,unrecognizedFields:n})}};xg.MetaFile=q7;var W7=class t{constructor(e){jPe(e.length),this.length=e.length,this.path=e.path,this.hashes=e.hashes,this.unrecognizedFields=e.unrecognizedFields||{}}get custom(){let e=this.unrecognizedFields.custom;return!e||Array.isArray(e)||typeof e!=\"object\"?{}:e}equals(e){return e instanceof t?this.length===e.length&&this.path===e.path&&RO.default.isDeepStrictEqual(this.hashes,e.hashes)&&RO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}async verify(e){let r=0,s=Object.keys(this.hashes).reduce((a,n)=>{try{a[n]=HPe.default.createHash(n)}catch{throw new bg.LengthOrHashMismatchError(`Hash algorithm ${n} not supported`)}return a},{});for await(let a of e)r+=a.length,Object.values(s).forEach(n=>{n.update(a)});if(r!==this.length)throw new bg.LengthOrHashMismatchError(`Expected length ${this.length} but got ${r}`);Object.entries(s).forEach(([a,n])=>{let c=this.hashes[a],f=n.digest(\"hex\");if(f!==c)throw new bg.LengthOrHashMismatchError(`Expected hash ${c} but got ${f}`)})}toJSON(){return{length:this.length,hashes:this.hashes,...this.unrecognizedFields}}static fromJSON(e,r){let{length:s,hashes:a,...n}=r;if(typeof s!=\"number\")throw new TypeError(\"length must be a number\");if(!QO.guard.isStringRecord(a))throw new TypeError(\"hashes must have string keys and values\");return new t({length:s,path:e,hashes:a,unrecognizedFields:n})}};xg.TargetFile=W7;function jPe(t){if(t<0)throw new bg.ValueError(\"Length must be at least 0\")}});var GPe=_(Y7=>{\"use strict\";Object.defineProperty(Y7,\"__esModule\",{value:!0});Y7.encodeOIDString=G1t;var j1t=6;function G1t(t){let e=t.split(\".\"),r=parseInt(e[0],10)*40+parseInt(e[1],10),s=[];e.slice(2).forEach(n=>{let c=q1t(parseInt(n,10));s.push(...c)});let a=Buffer.from([r,...s]);return Buffer.from([j1t,a.length,...a])}function q1t(t){let e=[],r=0;for(;t>0;)e.unshift(t&127|r),t>>=7,r=128;return e}});var VPe=_(TP=>{\"use strict\";var W1t=TP&&TP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(TP,\"__esModule\",{value:!0});TP.getPublicKey=K1t;var s1=W1t(Ie(\"crypto\")),RP=bA(),V7=GPe(),TO=48,qPe=3,WPe=0,Y1t=\"1.3.101.112\",V1t=\"1.2.840.10045.2.1\",J1t=\"1.2.840.10045.3.1.7\",J7=\"-----BEGIN PUBLIC KEY-----\";function K1t(t){switch(t.keyType){case\"rsa\":return z1t(t);case\"ed25519\":return Z1t(t);case\"ecdsa\":case\"ecdsa-sha2-nistp256\":case\"ecdsa-sha2-nistp384\":return X1t(t);default:throw new RP.UnsupportedAlgorithmError(`Unsupported key type: ${t.keyType}`)}}function z1t(t){if(!t.keyVal.startsWith(J7))throw new RP.CryptoError(\"Invalid key format\");let e=s1.default.createPublicKey(t.keyVal);switch(t.scheme){case\"rsassa-pss-sha256\":return{key:e,padding:s1.default.constants.RSA_PKCS1_PSS_PADDING};default:throw new RP.UnsupportedAlgorithmError(`Unsupported RSA scheme: ${t.scheme}`)}}function Z1t(t){let e;if(t.keyVal.startsWith(J7))e=s1.default.createPublicKey(t.keyVal);else{if(!YPe(t.keyVal))throw new RP.CryptoError(\"Invalid key format\");e=s1.default.createPublicKey({key:$1t.hexToDER(t.keyVal),format:\"der\",type:\"spki\"})}return{key:e}}function X1t(t){let e;if(t.keyVal.startsWith(J7))e=s1.default.createPublicKey(t.keyVal);else{if(!YPe(t.keyVal))throw new RP.CryptoError(\"Invalid key format\");e=s1.default.createPublicKey({key:e2t.hexToDER(t.keyVal),format:\"der\",type:\"spki\"})}return{key:e}}var $1t={hexToDER:t=>{let e=Buffer.from(t,\"hex\"),r=(0,V7.encodeOIDString)(Y1t),s=Buffer.concat([Buffer.concat([Buffer.from([TO]),Buffer.from([r.length]),r]),Buffer.concat([Buffer.from([qPe]),Buffer.from([e.length+1]),Buffer.from([WPe]),e])]);return Buffer.concat([Buffer.from([TO]),Buffer.from([s.length]),s])}},e2t={hexToDER:t=>{let e=Buffer.from(t,\"hex\"),r=Buffer.concat([Buffer.from([qPe]),Buffer.from([e.length+1]),Buffer.from([WPe]),e]),s=Buffer.concat([(0,V7.encodeOIDString)(V1t),(0,V7.encodeOIDString)(J1t)]),a=Buffer.concat([Buffer.from([TO]),Buffer.from([s.length]),s]);return Buffer.concat([Buffer.from([TO]),Buffer.from([a.length+r.length]),a,r])}},YPe=t=>/^[0-9a-fA-F]+$/.test(t)});var FO=_(o1=>{\"use strict\";var t2t=o1&&o1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(o1,\"__esModule\",{value:!0});o1.Key=void 0;var JPe=t2t(Ie(\"util\")),FP=bA(),KPe=ff(),r2t=VPe(),K7=class t{constructor(e){let{keyID:r,keyType:s,scheme:a,keyVal:n,unrecognizedFields:c}=e;this.keyID=r,this.keyType=s,this.scheme=a,this.keyVal=n,this.unrecognizedFields=c||{}}verifySignature(e){let r=e.signatures[this.keyID];if(!r)throw new FP.UnsignedMetadataError(\"no signature for key found in metadata\");if(!this.keyVal.public)throw new FP.UnsignedMetadataError(\"no public key found\");let s=(0,r2t.getPublicKey)({keyType:this.keyType,scheme:this.scheme,keyVal:this.keyVal.public}),a=e.signed.toJSON();try{if(!KPe.crypto.verifySignature(a,s,r.sig))throw new FP.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}catch(n){throw n instanceof FP.UnsignedMetadataError?n:new FP.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}}equals(e){return e instanceof t?this.keyID===e.keyID&&this.keyType===e.keyType&&this.scheme===e.scheme&&JPe.default.isDeepStrictEqual(this.keyVal,e.keyVal)&&JPe.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}toJSON(){return{keytype:this.keyType,scheme:this.scheme,keyval:this.keyVal,...this.unrecognizedFields}}static fromJSON(e,r){let{keytype:s,scheme:a,keyval:n,...c}=r;if(typeof s!=\"string\")throw new TypeError(\"keytype must be a string\");if(typeof a!=\"string\")throw new TypeError(\"scheme must be a string\");if(!KPe.guard.isStringRecord(n))throw new TypeError(\"keyval must be a string record\");return new t({keyID:e,keyType:s,scheme:a,keyVal:n,unrecognizedFields:c})}};o1.Key=K7});var ebe=_((jnr,$Pe)=>{\"use strict\";$Pe.exports=ZPe;function ZPe(t,e,r){t instanceof RegExp&&(t=zPe(t,r)),e instanceof RegExp&&(e=zPe(e,r));var s=XPe(t,e,r);return s&&{start:s[0],end:s[1],pre:r.slice(0,s[0]),body:r.slice(s[0]+t.length,s[1]),post:r.slice(s[1]+e.length)}}function zPe(t,e){var r=e.match(t);return r?r[0]:null}ZPe.range=XPe;function XPe(t,e,r){var s,a,n,c,f,p=r.indexOf(t),h=r.indexOf(e,p+1),E=p;if(p>=0&&h>0){for(s=[],n=r.length;E>=0&&!f;)E==p?(s.push(E),p=r.indexOf(t,E+1)):s.length==1?f=[s.pop(),h]:(a=s.pop(),a<n&&(n=a,c=h),h=r.indexOf(e,E+1)),E=p<h&&p>=0?p:h;s.length&&(f=[n,c])}return f}});var lbe=_((Gnr,abe)=>{var tbe=ebe();abe.exports=s2t;var rbe=\"\\0SLASH\"+Math.random()+\"\\0\",nbe=\"\\0OPEN\"+Math.random()+\"\\0\",Z7=\"\\0CLOSE\"+Math.random()+\"\\0\",ibe=\"\\0COMMA\"+Math.random()+\"\\0\",sbe=\"\\0PERIOD\"+Math.random()+\"\\0\";function z7(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function n2t(t){return t.split(\"\\\\\\\\\").join(rbe).split(\"\\\\{\").join(nbe).split(\"\\\\}\").join(Z7).split(\"\\\\,\").join(ibe).split(\"\\\\.\").join(sbe)}function i2t(t){return t.split(rbe).join(\"\\\\\").split(nbe).join(\"{\").split(Z7).join(\"}\").split(ibe).join(\",\").split(sbe).join(\".\")}function obe(t){if(!t)return[\"\"];var e=[],r=tbe(\"{\",\"}\",t);if(!r)return t.split(\",\");var s=r.pre,a=r.body,n=r.post,c=s.split(\",\");c[c.length-1]+=\"{\"+a+\"}\";var f=obe(n);return n.length&&(c[c.length-1]+=f.shift(),c.push.apply(c,f)),e.push.apply(e,c),e}function s2t(t){return t?(t.substr(0,2)===\"{}\"&&(t=\"\\\\{\\\\}\"+t.substr(2)),NP(n2t(t),!0).map(i2t)):[]}function o2t(t){return\"{\"+t+\"}\"}function a2t(t){return/^-?0\\d/.test(t)}function l2t(t,e){return t<=e}function c2t(t,e){return t>=e}function NP(t,e){var r=[],s=tbe(\"{\",\"}\",t);if(!s)return[t];var a=s.pre,n=s.post.length?NP(s.post,!1):[\"\"];if(/\\$$/.test(s.pre))for(var c=0;c<n.length;c++){var f=a+\"{\"+s.body+\"}\"+n[c];r.push(f)}else{var p=/^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(s.body),h=/^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(s.body),E=p||h,C=s.body.indexOf(\",\")>=0;if(!E&&!C)return s.post.match(/,.*\\}/)?(t=s.pre+\"{\"+s.body+Z7+s.post,NP(t)):[t];var S;if(E)S=s.body.split(/\\.\\./);else if(S=obe(s.body),S.length===1&&(S=NP(S[0],!1).map(o2t),S.length===1))return n.map(function(Ce){return s.pre+S[0]+Ce});var b;if(E){var I=z7(S[0]),T=z7(S[1]),N=Math.max(S[0].length,S[1].length),U=S.length==3?Math.abs(z7(S[2])):1,W=l2t,ee=T<I;ee&&(U*=-1,W=c2t);var ie=S.some(a2t);b=[];for(var ue=I;W(ue,T);ue+=U){var le;if(h)le=String.fromCharCode(ue),le===\"\\\\\"&&(le=\"\");else if(le=String(ue),ie){var me=N-le.length;if(me>0){var pe=new Array(me+1).join(\"0\");ue<0?le=\"-\"+pe+le.slice(1):le=pe+le}}b.push(le)}}else{b=[];for(var Be=0;Be<S.length;Be++)b.push.apply(b,NP(S[Be],!1))}for(var Be=0;Be<b.length;Be++)for(var c=0;c<n.length;c++){var f=a+b[Be]+n[c];(!e||E||f)&&r.push(f)}}return r}});var cbe=_(NO=>{\"use strict\";Object.defineProperty(NO,\"__esModule\",{value:!0});NO.assertValidPattern=void 0;var u2t=1024*64,f2t=t=>{if(typeof t!=\"string\")throw new TypeError(\"invalid pattern\");if(t.length>u2t)throw new TypeError(\"pattern is too long\")};NO.assertValidPattern=f2t});var fbe=_(OO=>{\"use strict\";Object.defineProperty(OO,\"__esModule\",{value:!0});OO.parseClass=void 0;var A2t={\"[:alnum:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\",!0],\"[:alpha:]\":[\"\\\\p{L}\\\\p{Nl}\",!0],\"[:ascii:]\":[\"\\\\x00-\\\\x7f\",!1],\"[:blank:]\":[\"\\\\p{Zs}\\\\t\",!0],\"[:cntrl:]\":[\"\\\\p{Cc}\",!0],\"[:digit:]\":[\"\\\\p{Nd}\",!0],\"[:graph:]\":[\"\\\\p{Z}\\\\p{C}\",!0,!0],\"[:lower:]\":[\"\\\\p{Ll}\",!0],\"[:print:]\":[\"\\\\p{C}\",!0],\"[:punct:]\":[\"\\\\p{P}\",!0],\"[:space:]\":[\"\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f\",!0],\"[:upper:]\":[\"\\\\p{Lu}\",!0],\"[:word:]\":[\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}\",!0],\"[:xdigit:]\":[\"A-Fa-f0-9\",!1]},OP=t=>t.replace(/[[\\]\\\\-]/g,\"\\\\$&\"),p2t=t=>t.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),ube=t=>t.join(\"\"),h2t=(t,e)=>{let r=e;if(t.charAt(r)!==\"[\")throw new Error(\"not in a brace expression\");let s=[],a=[],n=r+1,c=!1,f=!1,p=!1,h=!1,E=r,C=\"\";e:for(;n<t.length;){let T=t.charAt(n);if((T===\"!\"||T===\"^\")&&n===r+1){h=!0,n++;continue}if(T===\"]\"&&c&&!p){E=n+1;break}if(c=!0,T===\"\\\\\"&&!p){p=!0,n++;continue}if(T===\"[\"&&!p){for(let[N,[U,W,ee]]of Object.entries(A2t))if(t.startsWith(N,n)){if(C)return[\"$.\",!1,t.length-r,!0];n+=N.length,ee?a.push(U):s.push(U),f=f||W;continue e}}if(p=!1,C){T>C?s.push(OP(C)+\"-\"+OP(T)):T===C&&s.push(OP(T)),C=\"\",n++;continue}if(t.startsWith(\"-]\",n+1)){s.push(OP(T+\"-\")),n+=2;continue}if(t.startsWith(\"-\",n+1)){C=T,n+=2;continue}s.push(OP(T)),n++}if(E<n)return[\"\",!1,0,!1];if(!s.length&&!a.length)return[\"$.\",!1,t.length-r,!0];if(a.length===0&&s.length===1&&/^\\\\?.$/.test(s[0])&&!h){let T=s[0].length===2?s[0].slice(-1):s[0];return[p2t(T),!1,E-r,!1]}let S=\"[\"+(h?\"^\":\"\")+ube(s)+\"]\",b=\"[\"+(h?\"\":\"^\")+ube(a)+\"]\";return[s.length&&a.length?\"(\"+S+\"|\"+b+\")\":s.length?S:b,f,E-r,!0]};OO.parseClass=h2t});var MO=_(LO=>{\"use strict\";Object.defineProperty(LO,\"__esModule\",{value:!0});LO.unescape=void 0;var g2t=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/\\[([^\\/\\\\])\\]/g,\"$1\"):t.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g,\"$1$2\").replace(/\\\\([^\\/])/g,\"$1\");LO.unescape=g2t});var eJ=_(HO=>{\"use strict\";Object.defineProperty(HO,\"__esModule\",{value:!0});HO.AST=void 0;var d2t=fbe(),UO=MO(),m2t=new Set([\"!\",\"?\",\"+\",\"*\",\"@\"]),Abe=t=>m2t.has(t),y2t=\"(?!(?:^|/)\\\\.\\\\.?(?:$|/))\",_O=\"(?!\\\\.)\",E2t=new Set([\"[\",\".\"]),I2t=new Set([\"..\",\".\"]),C2t=new Set(\"().*{}+?[]^$\\\\!\"),w2t=t=>t.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),$7=\"[^/]\",pbe=$7+\"*?\",hbe=$7+\"+?\",X7=class t{type;#t;#r;#i=!1;#e=[];#n;#o;#l;#a=!1;#s;#c;#f=!1;constructor(e,r,s={}){this.type=e,e&&(this.#r=!0),this.#n=r,this.#t=this.#n?this.#n.#t:this,this.#s=this.#t===this?s:this.#t.#s,this.#l=this.#t===this?[]:this.#t.#l,e===\"!\"&&!this.#t.#a&&this.#l.push(this),this.#o=this.#n?this.#n.#e.length:0}get hasMagic(){if(this.#r!==void 0)return this.#r;for(let e of this.#e)if(typeof e!=\"string\"&&(e.type||e.hasMagic))return this.#r=!0;return this.#r}toString(){return this.#c!==void 0?this.#c:this.type?this.#c=this.type+\"(\"+this.#e.map(e=>String(e)).join(\"|\")+\")\":this.#c=this.#e.map(e=>String(e)).join(\"\")}#p(){if(this!==this.#t)throw new Error(\"should only call on root\");if(this.#a)return this;this.toString(),this.#a=!0;let e;for(;e=this.#l.pop();){if(e.type!==\"!\")continue;let r=e,s=r.#n;for(;s;){for(let a=r.#o+1;!s.type&&a<s.#e.length;a++)for(let n of e.#e){if(typeof n==\"string\")throw new Error(\"string part in extglob AST??\");n.copyIn(s.#e[a])}r=s,s=r.#n}}return this}push(...e){for(let r of e)if(r!==\"\"){if(typeof r!=\"string\"&&!(r instanceof t&&r.#n===this))throw new Error(\"invalid part: \"+r);this.#e.push(r)}}toJSON(){let e=this.type===null?this.#e.slice().map(r=>typeof r==\"string\"?r:r.toJSON()):[this.type,...this.#e.map(r=>r.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#a&&this.#n?.type===\"!\")&&e.push({}),e}isStart(){if(this.#t===this)return!0;if(!this.#n?.isStart())return!1;if(this.#o===0)return!0;let e=this.#n;for(let r=0;r<this.#o;r++){let s=e.#e[r];if(!(s instanceof t&&s.type===\"!\"))return!1}return!0}isEnd(){if(this.#t===this||this.#n?.type===\"!\")return!0;if(!this.#n?.isEnd())return!1;if(!this.type)return this.#n?.isEnd();let e=this.#n?this.#n.#e.length:0;return this.#o===e-1}copyIn(e){typeof e==\"string\"?this.push(e):this.push(e.clone(this))}clone(e){let r=new t(this.type,e);for(let s of this.#e)r.copyIn(s);return r}static#u(e,r,s,a){let n=!1,c=!1,f=-1,p=!1;if(r.type===null){let b=s,I=\"\";for(;b<e.length;){let T=e.charAt(b++);if(n||T===\"\\\\\"){n=!n,I+=T;continue}if(c){b===f+1?(T===\"^\"||T===\"!\")&&(p=!0):T===\"]\"&&!(b===f+2&&p)&&(c=!1),I+=T;continue}else if(T===\"[\"){c=!0,f=b,p=!1,I+=T;continue}if(!a.noext&&Abe(T)&&e.charAt(b)===\"(\"){r.push(I),I=\"\";let N=new t(T,r);b=t.#u(e,N,b,a),r.push(N);continue}I+=T}return r.push(I),b}let h=s+1,E=new t(null,r),C=[],S=\"\";for(;h<e.length;){let b=e.charAt(h++);if(n||b===\"\\\\\"){n=!n,S+=b;continue}if(c){h===f+1?(b===\"^\"||b===\"!\")&&(p=!0):b===\"]\"&&!(h===f+2&&p)&&(c=!1),S+=b;continue}else if(b===\"[\"){c=!0,f=h,p=!1,S+=b;continue}if(Abe(b)&&e.charAt(h)===\"(\"){E.push(S),S=\"\";let I=new t(b,E);E.push(I),h=t.#u(e,I,h,a);continue}if(b===\"|\"){E.push(S),S=\"\",C.push(E),E=new t(null,r);continue}if(b===\")\")return S===\"\"&&r.#e.length===0&&(r.#f=!0),E.push(S),S=\"\",r.push(...C,E),h;S+=b}return r.type=null,r.#r=void 0,r.#e=[e.substring(s-1)],h}static fromGlob(e,r={}){let s=new t(null,void 0,r);return t.#u(e,s,0,r),s}toMMPattern(){if(this!==this.#t)return this.#t.toMMPattern();let e=this.toString(),[r,s,a,n]=this.toRegExpSource();if(!(a||this.#r||this.#s.nocase&&!this.#s.nocaseMagicOnly&&e.toUpperCase()!==e.toLowerCase()))return s;let f=(this.#s.nocase?\"i\":\"\")+(n?\"u\":\"\");return Object.assign(new RegExp(`^${r}$`,f),{_src:r,_glob:e})}get options(){return this.#s}toRegExpSource(e){let r=e??!!this.#s.dot;if(this.#t===this&&this.#p(),!this.type){let p=this.isStart()&&this.isEnd(),h=this.#e.map(b=>{let[I,T,N,U]=typeof b==\"string\"?t.#h(b,this.#r,p):b.toRegExpSource(e);return this.#r=this.#r||N,this.#i=this.#i||U,I}).join(\"\"),E=\"\";if(this.isStart()&&typeof this.#e[0]==\"string\"&&!(this.#e.length===1&&I2t.has(this.#e[0]))){let I=E2t,T=r&&I.has(h.charAt(0))||h.startsWith(\"\\\\.\")&&I.has(h.charAt(2))||h.startsWith(\"\\\\.\\\\.\")&&I.has(h.charAt(4)),N=!r&&!e&&I.has(h.charAt(0));E=T?y2t:N?_O:\"\"}let C=\"\";return this.isEnd()&&this.#t.#a&&this.#n?.type===\"!\"&&(C=\"(?:$|\\\\/)\"),[E+h+C,(0,UO.unescape)(h),this.#r=!!this.#r,this.#i]}let s=this.type===\"*\"||this.type===\"+\",a=this.type===\"!\"?\"(?:(?!(?:\":\"(?:\",n=this.#A(r);if(this.isStart()&&this.isEnd()&&!n&&this.type!==\"!\"){let p=this.toString();return this.#e=[p],this.type=null,this.#r=void 0,[p,(0,UO.unescape)(this.toString()),!1,!1]}let c=!s||e||r||!_O?\"\":this.#A(!0);c===n&&(c=\"\"),c&&(n=`(?:${n})(?:${c})*?`);let f=\"\";if(this.type===\"!\"&&this.#f)f=(this.isStart()&&!r?_O:\"\")+hbe;else{let p=this.type===\"!\"?\"))\"+(this.isStart()&&!r&&!e?_O:\"\")+pbe+\")\":this.type===\"@\"?\")\":this.type===\"?\"?\")?\":this.type===\"+\"&&c?\")\":this.type===\"*\"&&c?\")?\":`)${this.type}`;f=a+n+p}return[f,(0,UO.unescape)(n),this.#r=!!this.#r,this.#i]}#A(e){return this.#e.map(r=>{if(typeof r==\"string\")throw new Error(\"string type in extglob ast??\");let[s,a,n,c]=r.toRegExpSource(e);return this.#i=this.#i||c,s}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join(\"|\")}static#h(e,r,s=!1){let a=!1,n=\"\",c=!1;for(let f=0;f<e.length;f++){let p=e.charAt(f);if(a){a=!1,n+=(C2t.has(p)?\"\\\\\":\"\")+p;continue}if(p===\"\\\\\"){f===e.length-1?n+=\"\\\\\\\\\":a=!0;continue}if(p===\"[\"){let[h,E,C,S]=(0,d2t.parseClass)(e,f);if(C){n+=h,c=c||E,f+=C-1,r=r||S;continue}}if(p===\"*\"){s&&e===\"*\"?n+=hbe:n+=pbe,r=!0;continue}if(p===\"?\"){n+=$7,r=!0;continue}n+=w2t(p)}return[n,(0,UO.unescape)(e),!!r,c]}};HO.AST=X7});var tJ=_(jO=>{\"use strict\";Object.defineProperty(jO,\"__esModule\",{value:!0});jO.escape=void 0;var B2t=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/[?*()[\\]]/g,\"[$&]\"):t.replace(/[?*()[\\]\\\\]/g,\"\\\\$&\");jO.escape=B2t});var Cbe=_(pr=>{\"use strict\";var v2t=pr&&pr.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pr,\"__esModule\",{value:!0});pr.unescape=pr.escape=pr.AST=pr.Minimatch=pr.match=pr.makeRe=pr.braceExpand=pr.defaults=pr.filter=pr.GLOBSTAR=pr.sep=pr.minimatch=void 0;var S2t=v2t(lbe()),GO=cbe(),mbe=eJ(),D2t=tJ(),P2t=MO(),b2t=(t,e,r={})=>((0,GO.assertValidPattern)(e),!r.nocomment&&e.charAt(0)===\"#\"?!1:new ly(e,r).match(t));pr.minimatch=b2t;var x2t=/^\\*+([^+@!?\\*\\[\\(]*)$/,k2t=t=>e=>!e.startsWith(\".\")&&e.endsWith(t),Q2t=t=>e=>e.endsWith(t),R2t=t=>(t=t.toLowerCase(),e=>!e.startsWith(\".\")&&e.toLowerCase().endsWith(t)),T2t=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),F2t=/^\\*+\\.\\*+$/,N2t=t=>!t.startsWith(\".\")&&t.includes(\".\"),O2t=t=>t!==\".\"&&t!==\"..\"&&t.includes(\".\"),L2t=/^\\.\\*+$/,M2t=t=>t!==\".\"&&t!==\"..\"&&t.startsWith(\".\"),U2t=/^\\*+$/,_2t=t=>t.length!==0&&!t.startsWith(\".\"),H2t=t=>t.length!==0&&t!==\".\"&&t!==\"..\",j2t=/^\\?+([^+@!?\\*\\[\\(]*)?$/,G2t=([t,e=\"\"])=>{let r=ybe([t]);return e?(e=e.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(e)):r},q2t=([t,e=\"\"])=>{let r=Ebe([t]);return e?(e=e.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(e)):r},W2t=([t,e=\"\"])=>{let r=Ebe([t]);return e?s=>r(s)&&s.endsWith(e):r},Y2t=([t,e=\"\"])=>{let r=ybe([t]);return e?s=>r(s)&&s.endsWith(e):r},ybe=([t])=>{let e=t.length;return r=>r.length===e&&!r.startsWith(\".\")},Ebe=([t])=>{let e=t.length;return r=>r.length===e&&r!==\".\"&&r!==\"..\"},Ibe=typeof process==\"object\"&&process?typeof process.env==\"object\"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:\"posix\",gbe={win32:{sep:\"\\\\\"},posix:{sep:\"/\"}};pr.sep=Ibe===\"win32\"?gbe.win32.sep:gbe.posix.sep;pr.minimatch.sep=pr.sep;pr.GLOBSTAR=Symbol(\"globstar **\");pr.minimatch.GLOBSTAR=pr.GLOBSTAR;var V2t=\"[^/]\",J2t=V2t+\"*?\",K2t=\"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\",z2t=\"(?:(?!(?:\\\\/|^)\\\\.).)*?\",Z2t=(t,e={})=>r=>(0,pr.minimatch)(r,t,e);pr.filter=Z2t;pr.minimatch.filter=pr.filter;var tu=(t,e={})=>Object.assign({},t,e),X2t=t=>{if(!t||typeof t!=\"object\"||!Object.keys(t).length)return pr.minimatch;let e=pr.minimatch;return Object.assign((s,a,n={})=>e(s,a,tu(t,n)),{Minimatch:class extends e.Minimatch{constructor(a,n={}){super(a,tu(t,n))}static defaults(a){return e.defaults(tu(t,a)).Minimatch}},AST:class extends e.AST{constructor(a,n,c={}){super(a,n,tu(t,c))}static fromGlob(a,n={}){return e.AST.fromGlob(a,tu(t,n))}},unescape:(s,a={})=>e.unescape(s,tu(t,a)),escape:(s,a={})=>e.escape(s,tu(t,a)),filter:(s,a={})=>e.filter(s,tu(t,a)),defaults:s=>e.defaults(tu(t,s)),makeRe:(s,a={})=>e.makeRe(s,tu(t,a)),braceExpand:(s,a={})=>e.braceExpand(s,tu(t,a)),match:(s,a,n={})=>e.match(s,a,tu(t,n)),sep:e.sep,GLOBSTAR:pr.GLOBSTAR})};pr.defaults=X2t;pr.minimatch.defaults=pr.defaults;var $2t=(t,e={})=>((0,GO.assertValidPattern)(t),e.nobrace||!/\\{(?:(?!\\{).)*\\}/.test(t)?[t]:(0,S2t.default)(t));pr.braceExpand=$2t;pr.minimatch.braceExpand=pr.braceExpand;var eBt=(t,e={})=>new ly(t,e).makeRe();pr.makeRe=eBt;pr.minimatch.makeRe=pr.makeRe;var tBt=(t,e,r={})=>{let s=new ly(e,r);return t=t.filter(a=>s.match(a)),s.options.nonull&&!t.length&&t.push(e),t};pr.match=tBt;pr.minimatch.match=pr.match;var dbe=/[?*]|[+@!]\\(.*?\\)|\\[|\\]/,rBt=t=>t.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),ly=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(e,r={}){(0,GO.assertValidPattern)(e),r=r||{},this.options=r,this.pattern=e,this.platform=r.platform||Ibe,this.isWindows=this.platform===\"win32\",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\\\/g,\"/\")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let r of e)if(typeof r!=\"string\")return!0;return!1}debug(...e){}make(){let e=this.pattern,r=this.options;if(!r.nocomment&&e.charAt(0)===\"#\"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...n)=>console.error(...n)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(n=>this.slashSplit(n));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let a=this.globParts.map((n,c,f)=>{if(this.isWindows&&this.windowsNoMagicRoot){let p=n[0]===\"\"&&n[1]===\"\"&&(n[2]===\"?\"||!dbe.test(n[2]))&&!dbe.test(n[3]),h=/^[a-z]:/i.test(n[0]);if(p)return[...n.slice(0,4),...n.slice(4).map(E=>this.parse(E))];if(h)return[n[0],...n.slice(1).map(E=>this.parse(E))]}return n.map(p=>this.parse(p))});if(this.debug(this.pattern,a),this.set=a.filter(n=>n.indexOf(!1)===-1),this.isWindows)for(let n=0;n<this.set.length;n++){let c=this.set[n];c[0]===\"\"&&c[1]===\"\"&&this.globParts[n][2]===\"?\"&&typeof c[3]==\"string\"&&/^[a-z]:$/i.test(c[3])&&(c[2]=\"?\")}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let s=0;s<e.length;s++)for(let a=0;a<e[s].length;a++)e[s][a]===\"**\"&&(e[s][a]=\"*\");let{optimizationLevel:r=1}=this.options;return r>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):r>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(r=>{let s=-1;for(;(s=r.indexOf(\"**\",s+1))!==-1;){let a=s;for(;r[a+1]===\"**\";)a++;a!==s&&r.splice(s,a-s)}return r})}levelOneOptimize(e){return e.map(r=>(r=r.reduce((s,a)=>{let n=s[s.length-1];return a===\"**\"&&n===\"**\"?s:a===\"..\"&&n&&n!==\"..\"&&n!==\".\"&&n!==\"**\"?(s.pop(),s):(s.push(a),s)},[]),r.length===0?[\"\"]:r))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;a<e.length-1;a++){let n=e[a];a===1&&n===\"\"&&e[0]===\"\"||(n===\".\"||n===\"\")&&(r=!0,e.splice(a,1),a--)}e[0]===\".\"&&e.length===2&&(e[1]===\".\"||e[1]===\"\")&&(r=!0,e.pop())}let s=0;for(;(s=e.indexOf(\"..\",s+1))!==-1;){let a=e[s-1];a&&a!==\".\"&&a!==\"..\"&&a!==\"**\"&&(r=!0,e.splice(s-1,2),s-=2)}}while(r);return e.length===0?[\"\"]:e}firstPhasePreProcess(e){let r=!1;do{r=!1;for(let s of e){let a=-1;for(;(a=s.indexOf(\"**\",a+1))!==-1;){let c=a;for(;s[c+1]===\"**\";)c++;c>a&&s.splice(a+1,c-a);let f=s[a+1],p=s[a+2],h=s[a+3];if(f!==\"..\"||!p||p===\".\"||p===\"..\"||!h||h===\".\"||h===\"..\")continue;r=!0,s.splice(a,1);let E=s.slice(0);E[a]=\"**\",e.push(E),a--}if(!this.preserveMultipleSlashes){for(let c=1;c<s.length-1;c++){let f=s[c];c===1&&f===\"\"&&s[0]===\"\"||(f===\".\"||f===\"\")&&(r=!0,s.splice(c,1),c--)}s[0]===\".\"&&s.length===2&&(s[1]===\".\"||s[1]===\"\")&&(r=!0,s.pop())}let n=0;for(;(n=s.indexOf(\"..\",n+1))!==-1;){let c=s[n-1];if(c&&c!==\".\"&&c!==\"..\"&&c!==\"**\"){r=!0;let p=n===1&&s[n+1]===\"**\"?[\".\"]:[];s.splice(n-1,2,...p),s.length===0&&s.push(\"\"),n-=2}}}}while(r);return e}secondPhasePreProcess(e){for(let r=0;r<e.length-1;r++)for(let s=r+1;s<e.length;s++){let a=this.partsMatch(e[r],e[s],!this.preserveMultipleSlashes);if(a){e[r]=[],e[s]=a;break}}return e.filter(r=>r.length)}partsMatch(e,r,s=!1){let a=0,n=0,c=[],f=\"\";for(;a<e.length&&n<r.length;)if(e[a]===r[n])c.push(f===\"b\"?r[n]:e[a]),a++,n++;else if(s&&e[a]===\"**\"&&r[n]===e[a+1])c.push(e[a]),a++;else if(s&&r[n]===\"**\"&&e[a]===r[n+1])c.push(r[n]),n++;else if(e[a]===\"*\"&&r[n]&&(this.options.dot||!r[n].startsWith(\".\"))&&r[n]!==\"**\"){if(f===\"b\")return!1;f=\"a\",c.push(e[a]),a++,n++}else if(r[n]===\"*\"&&e[a]&&(this.options.dot||!e[a].startsWith(\".\"))&&e[a]!==\"**\"){if(f===\"a\")return!1;f=\"b\",c.push(r[n]),a++,n++}else return!1;return e.length===r.length&&c}parseNegate(){if(this.nonegate)return;let e=this.pattern,r=!1,s=0;for(let a=0;a<e.length&&e.charAt(a)===\"!\";a++)r=!r,s++;s&&(this.pattern=e.slice(s)),this.negate=r}matchOne(e,r,s=!1){let a=this.options;if(this.isWindows){let T=typeof e[0]==\"string\"&&/^[a-z]:$/i.test(e[0]),N=!T&&e[0]===\"\"&&e[1]===\"\"&&e[2]===\"?\"&&/^[a-z]:$/i.test(e[3]),U=typeof r[0]==\"string\"&&/^[a-z]:$/i.test(r[0]),W=!U&&r[0]===\"\"&&r[1]===\"\"&&r[2]===\"?\"&&typeof r[3]==\"string\"&&/^[a-z]:$/i.test(r[3]),ee=N?3:T?0:void 0,ie=W?3:U?0:void 0;if(typeof ee==\"number\"&&typeof ie==\"number\"){let[ue,le]=[e[ee],r[ie]];ue.toLowerCase()===le.toLowerCase()&&(r[ie]=ue,ie>ee?r=r.slice(ie):ee>ie&&(e=e.slice(ee)))}}let{optimizationLevel:n=1}=this.options;n>=2&&(e=this.levelTwoFileOptimize(e)),this.debug(\"matchOne\",this,{file:e,pattern:r}),this.debug(\"matchOne\",e.length,r.length);for(var c=0,f=0,p=e.length,h=r.length;c<p&&f<h;c++,f++){this.debug(\"matchOne loop\");var E=r[f],C=e[c];if(this.debug(r,E,C),E===!1)return!1;if(E===pr.GLOBSTAR){this.debug(\"GLOBSTAR\",[r,E,C]);var S=c,b=f+1;if(b===h){for(this.debug(\"** at the end\");c<p;c++)if(e[c]===\".\"||e[c]===\"..\"||!a.dot&&e[c].charAt(0)===\".\")return!1;return!0}for(;S<p;){var I=e[S];if(this.debug(`\nglobstar while`,e,S,r,b,I),this.matchOne(e.slice(S),r.slice(b),s))return this.debug(\"globstar found match!\",S,p,I),!0;if(I===\".\"||I===\"..\"||!a.dot&&I.charAt(0)===\".\"){this.debug(\"dot detected!\",e,S,r,b);break}this.debug(\"globstar swallow a segment, and continue\"),S++}return!!(s&&(this.debug(`\n>>> no match, partial?`,e,S,r,b),S===p))}let T;if(typeof E==\"string\"?(T=C===E,this.debug(\"string match\",E,C,T)):(T=E.test(C),this.debug(\"pattern match\",E,C,T)),!T)return!1}if(c===p&&f===h)return!0;if(c===p)return s;if(f===h)return c===p-1&&e[c]===\"\";throw new Error(\"wtf?\")}braceExpand(){return(0,pr.braceExpand)(this.pattern,this.options)}parse(e){(0,GO.assertValidPattern)(e);let r=this.options;if(e===\"**\")return pr.GLOBSTAR;if(e===\"\")return\"\";let s,a=null;(s=e.match(U2t))?a=r.dot?H2t:_2t:(s=e.match(x2t))?a=(r.nocase?r.dot?T2t:R2t:r.dot?Q2t:k2t)(s[1]):(s=e.match(j2t))?a=(r.nocase?r.dot?q2t:G2t:r.dot?W2t:Y2t)(s):(s=e.match(F2t))?a=r.dot?O2t:N2t:(s=e.match(L2t))&&(a=M2t);let n=mbe.AST.fromGlob(e,this.options).toMMPattern();return a&&typeof n==\"object\"&&Reflect.defineProperty(n,\"test\",{value:a}),n}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let r=this.options,s=r.noglobstar?J2t:r.dot?K2t:z2t,a=new Set(r.nocase?[\"i\"]:[]),n=e.map(p=>{let h=p.map(E=>{if(E instanceof RegExp)for(let C of E.flags.split(\"\"))a.add(C);return typeof E==\"string\"?rBt(E):E===pr.GLOBSTAR?pr.GLOBSTAR:E._src});return h.forEach((E,C)=>{let S=h[C+1],b=h[C-1];E!==pr.GLOBSTAR||b===pr.GLOBSTAR||(b===void 0?S!==void 0&&S!==pr.GLOBSTAR?h[C+1]=\"(?:\\\\/|\"+s+\"\\\\/)?\"+S:h[C]=s:S===void 0?h[C-1]=b+\"(?:\\\\/|\"+s+\")?\":S!==pr.GLOBSTAR&&(h[C-1]=b+\"(?:\\\\/|\\\\/\"+s+\"\\\\/)\"+S,h[C+1]=pr.GLOBSTAR))}),h.filter(E=>E!==pr.GLOBSTAR).join(\"/\")}).join(\"|\"),[c,f]=e.length>1?[\"(?:\",\")\"]:[\"\",\"\"];n=\"^\"+c+n+f+\"$\",this.negate&&(n=\"^(?!\"+n+\").+$\");try{this.regexp=new RegExp(n,[...a].join(\"\"))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split(\"/\"):this.isWindows&&/^\\/\\/[^\\/]+/.test(e)?[\"\",...e.split(/\\/+/)]:e.split(/\\/+/)}match(e,r=this.partial){if(this.debug(\"match\",e,this.pattern),this.comment)return!1;if(this.empty)return e===\"\";if(e===\"/\"&&r)return!0;let s=this.options;this.isWindows&&(e=e.split(\"\\\\\").join(\"/\"));let a=this.slashSplit(e);this.debug(this.pattern,\"split\",a);let n=this.set;this.debug(this.pattern,\"set\",n);let c=a[a.length-1];if(!c)for(let f=a.length-2;!c&&f>=0;f--)c=a[f];for(let f=0;f<n.length;f++){let p=n[f],h=a;if(s.matchBase&&p.length===1&&(h=[c]),this.matchOne(h,p,r))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(e){return pr.minimatch.defaults(e).Minimatch}};pr.Minimatch=ly;var nBt=eJ();Object.defineProperty(pr,\"AST\",{enumerable:!0,get:function(){return nBt.AST}});var iBt=tJ();Object.defineProperty(pr,\"escape\",{enumerable:!0,get:function(){return iBt.escape}});var sBt=MO();Object.defineProperty(pr,\"unescape\",{enumerable:!0,get:function(){return sBt.unescape}});pr.minimatch.AST=mbe.AST;pr.minimatch.Minimatch=ly;pr.minimatch.escape=D2t.escape;pr.minimatch.unescape=P2t.unescape});var iJ=_(ru=>{\"use strict\";var wbe=ru&&ru.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ru,\"__esModule\",{value:!0});ru.SuccinctRoles=ru.DelegatedRole=ru.Role=ru.TOP_LEVEL_ROLE_NAMES=void 0;var Bbe=wbe(Ie(\"crypto\")),oBt=Cbe(),qO=wbe(Ie(\"util\")),WO=bA(),cy=ff();ru.TOP_LEVEL_ROLE_NAMES=[\"root\",\"targets\",\"snapshot\",\"timestamp\"];var LP=class t{constructor(e){let{keyIDs:r,threshold:s,unrecognizedFields:a}=e;if(aBt(r))throw new WO.ValueError(\"duplicate key IDs found\");if(s<1)throw new WO.ValueError(\"threshold must be at least 1\");this.keyIDs=r,this.threshold=s,this.unrecognizedFields=a||{}}equals(e){return e instanceof t?this.threshold===e.threshold&&qO.default.isDeepStrictEqual(this.keyIDs,e.keyIDs)&&qO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}toJSON(){return{keyids:this.keyIDs,threshold:this.threshold,...this.unrecognizedFields}}static fromJSON(e){let{keyids:r,threshold:s,...a}=e;if(!cy.guard.isStringArray(r))throw new TypeError(\"keyids must be an array\");if(typeof s!=\"number\")throw new TypeError(\"threshold must be a number\");return new t({keyIDs:r,threshold:s,unrecognizedFields:a})}};ru.Role=LP;function aBt(t){return new Set(t).size!==t.length}var rJ=class t extends LP{constructor(e){super(e);let{name:r,terminating:s,paths:a,pathHashPrefixes:n}=e;if(this.name=r,this.terminating=s,e.paths&&e.pathHashPrefixes)throw new WO.ValueError(\"paths and pathHashPrefixes are mutually exclusive\");this.paths=a,this.pathHashPrefixes=n}equals(e){return e instanceof t?super.equals(e)&&this.name===e.name&&this.terminating===e.terminating&&qO.default.isDeepStrictEqual(this.paths,e.paths)&&qO.default.isDeepStrictEqual(this.pathHashPrefixes,e.pathHashPrefixes):!1}isDelegatedPath(e){if(this.paths)return this.paths.some(r=>cBt(e,r));if(this.pathHashPrefixes){let s=Bbe.default.createHash(\"sha256\").update(e).digest(\"hex\");return this.pathHashPrefixes.some(a=>s.startsWith(a))}return!1}toJSON(){let e={...super.toJSON(),name:this.name,terminating:this.terminating};return this.paths&&(e.paths=this.paths),this.pathHashPrefixes&&(e.path_hash_prefixes=this.pathHashPrefixes),e}static fromJSON(e){let{keyids:r,threshold:s,name:a,terminating:n,paths:c,path_hash_prefixes:f,...p}=e;if(!cy.guard.isStringArray(r))throw new TypeError(\"keyids must be an array of strings\");if(typeof s!=\"number\")throw new TypeError(\"threshold must be a number\");if(typeof a!=\"string\")throw new TypeError(\"name must be a string\");if(typeof n!=\"boolean\")throw new TypeError(\"terminating must be a boolean\");if(cy.guard.isDefined(c)&&!cy.guard.isStringArray(c))throw new TypeError(\"paths must be an array of strings\");if(cy.guard.isDefined(f)&&!cy.guard.isStringArray(f))throw new TypeError(\"path_hash_prefixes must be an array of strings\");return new t({keyIDs:r,threshold:s,name:a,terminating:n,paths:c,pathHashPrefixes:f,unrecognizedFields:p})}};ru.DelegatedRole=rJ;var lBt=(t,e)=>t.map((r,s)=>[r,e[s]]);function cBt(t,e){let r=t.split(\"/\"),s=e.split(\"/\");return s.length!=r.length?!1:lBt(r,s).every(([a,n])=>(0,oBt.minimatch)(a,n))}var nJ=class t extends LP{constructor(e){super(e);let{bitLength:r,namePrefix:s}=e;if(r<=0||r>32)throw new WO.ValueError(\"bitLength must be between 1 and 32\");this.bitLength=r,this.namePrefix=s,this.numberOfBins=Math.pow(2,r),this.suffixLen=(this.numberOfBins-1).toString(16).length}equals(e){return e instanceof t?super.equals(e)&&this.bitLength===e.bitLength&&this.namePrefix===e.namePrefix:!1}getRoleForTarget(e){let a=Bbe.default.createHash(\"sha256\").update(e).digest().subarray(0,4),n=32-this.bitLength,f=(a.readUInt32BE()>>>n).toString(16).padStart(this.suffixLen,\"0\");return`${this.namePrefix}-${f}`}*getRoles(){for(let e=0;e<this.numberOfBins;e++){let r=e.toString(16).padStart(this.suffixLen,\"0\");yield`${this.namePrefix}-${r}`}}isDelegatedRole(e){let r=this.namePrefix+\"-\";if(!e.startsWith(r))return!1;let s=e.slice(r.length,e.length);if(s.length!=this.suffixLen||!s.match(/^[0-9a-fA-F]+$/))return!1;let a=parseInt(s,16);return 0<=a&&a<this.numberOfBins}toJSON(){return{...super.toJSON(),bit_length:this.bitLength,name_prefix:this.namePrefix}}static fromJSON(e){let{keyids:r,threshold:s,bit_length:a,name_prefix:n,...c}=e;if(!cy.guard.isStringArray(r))throw new TypeError(\"keyids must be an array of strings\");if(typeof s!=\"number\")throw new TypeError(\"threshold must be a number\");if(typeof a!=\"number\")throw new TypeError(\"bit_length must be a number\");if(typeof n!=\"string\")throw new TypeError(\"name_prefix must be a string\");return new t({keyIDs:r,threshold:s,bitLength:a,namePrefix:n,unrecognizedFields:c})}};ru.SuccinctRoles=nJ});var aJ=_(a1=>{\"use strict\";var uBt=a1&&a1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(a1,\"__esModule\",{value:!0});a1.Root=void 0;var vbe=uBt(Ie(\"util\")),sJ=ay(),Sbe=bA(),fBt=FO(),YO=iJ(),VO=ff(),oJ=class t extends sJ.Signed{constructor(e){if(super(e),this.type=sJ.MetadataKind.Root,this.keys=e.keys||{},this.consistentSnapshot=e.consistentSnapshot??!0,!e.roles)this.roles=YO.TOP_LEVEL_ROLE_NAMES.reduce((r,s)=>({...r,[s]:new YO.Role({keyIDs:[],threshold:1})}),{});else{let r=new Set(Object.keys(e.roles));if(!YO.TOP_LEVEL_ROLE_NAMES.every(s=>r.has(s)))throw new Sbe.ValueError(\"missing top-level role\");this.roles=e.roles}}addKey(e,r){if(!this.roles[r])throw new Sbe.ValueError(`role ${r} does not exist`);this.roles[r].keyIDs.includes(e.keyID)||this.roles[r].keyIDs.push(e.keyID),this.keys[e.keyID]=e}equals(e){return e instanceof t?super.equals(e)&&this.consistentSnapshot===e.consistentSnapshot&&vbe.default.isDeepStrictEqual(this.keys,e.keys)&&vbe.default.isDeepStrictEqual(this.roles,e.roles):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,keys:ABt(this.keys),roles:pBt(this.roles),consistent_snapshot:this.consistentSnapshot,...this.unrecognizedFields}}static fromJSON(e){let{unrecognizedFields:r,...s}=sJ.Signed.commonFieldsFromJSON(e),{keys:a,roles:n,consistent_snapshot:c,...f}=r;if(typeof c!=\"boolean\")throw new TypeError(\"consistent_snapshot must be a boolean\");return new t({...s,keys:hBt(a),roles:gBt(n),consistentSnapshot:c,unrecognizedFields:f})}};a1.Root=oJ;function ABt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function pBt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function hBt(t){let e;if(VO.guard.isDefined(t)){if(!VO.guard.isObjectRecord(t))throw new TypeError(\"keys must be an object\");e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:fBt.Key.fromJSON(s,a)}),{})}return e}function gBt(t){let e;if(VO.guard.isDefined(t)){if(!VO.guard.isObjectRecord(t))throw new TypeError(\"roles must be an object\");e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:YO.Role.fromJSON(a)}),{})}return e}});var cJ=_(JO=>{\"use strict\";Object.defineProperty(JO,\"__esModule\",{value:!0});JO.Signature=void 0;var lJ=class t{constructor(e){let{keyID:r,sig:s}=e;this.keyID=r,this.sig=s}toJSON(){return{keyid:this.keyID,sig:this.sig}}static fromJSON(e){let{keyid:r,sig:s}=e;if(typeof r!=\"string\")throw new TypeError(\"keyid must be a string\");if(typeof s!=\"string\")throw new TypeError(\"sig must be a string\");return new t({keyID:r,sig:s})}};JO.Signature=lJ});var AJ=_(l1=>{\"use strict\";var dBt=l1&&l1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(l1,\"__esModule\",{value:!0});l1.Snapshot=void 0;var mBt=dBt(Ie(\"util\")),uJ=ay(),Pbe=QP(),Dbe=ff(),fJ=class t extends uJ.Signed{constructor(e){super(e),this.type=uJ.MetadataKind.Snapshot,this.meta=e.meta||{\"targets.json\":new Pbe.MetaFile({version:1})}}equals(e){return e instanceof t?super.equals(e)&&mBt.default.isDeepStrictEqual(this.meta,e.meta):!1}toJSON(){return{_type:this.type,meta:yBt(this.meta),spec_version:this.specVersion,version:this.version,expires:this.expires,...this.unrecognizedFields}}static fromJSON(e){let{unrecognizedFields:r,...s}=uJ.Signed.commonFieldsFromJSON(e),{meta:a,...n}=r;return new t({...s,meta:EBt(a),unrecognizedFields:n})}};l1.Snapshot=fJ;function yBt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function EBt(t){let e;if(Dbe.guard.isDefined(t))if(Dbe.guard.isObjectRecord(t))e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:Pbe.MetaFile.fromJSON(a)}),{});else throw new TypeError(\"meta field is malformed\");return e}});var bbe=_(c1=>{\"use strict\";var IBt=c1&&c1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(c1,\"__esModule\",{value:!0});c1.Delegations=void 0;var KO=IBt(Ie(\"util\")),CBt=bA(),wBt=FO(),pJ=iJ(),zO=ff(),hJ=class t{constructor(e){if(this.keys=e.keys,this.unrecognizedFields=e.unrecognizedFields||{},e.roles&&Object.keys(e.roles).some(r=>pJ.TOP_LEVEL_ROLE_NAMES.includes(r)))throw new CBt.ValueError(\"Delegated role name conflicts with top-level role name\");this.succinctRoles=e.succinctRoles,this.roles=e.roles}equals(e){return e instanceof t?KO.default.isDeepStrictEqual(this.keys,e.keys)&&KO.default.isDeepStrictEqual(this.roles,e.roles)&&KO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields)&&KO.default.isDeepStrictEqual(this.succinctRoles,e.succinctRoles):!1}*rolesForTarget(e){if(this.roles)for(let r of Object.values(this.roles))r.isDelegatedPath(e)&&(yield{role:r.name,terminating:r.terminating});else this.succinctRoles&&(yield{role:this.succinctRoles.getRoleForTarget(e),terminating:!0})}toJSON(){let e={keys:BBt(this.keys),...this.unrecognizedFields};return this.roles?e.roles=vBt(this.roles):this.succinctRoles&&(e.succinct_roles=this.succinctRoles.toJSON()),e}static fromJSON(e){let{keys:r,roles:s,succinct_roles:a,...n}=e,c;return zO.guard.isObject(a)&&(c=pJ.SuccinctRoles.fromJSON(a)),new t({keys:SBt(r),roles:DBt(s),unrecognizedFields:n,succinctRoles:c})}};c1.Delegations=hJ;function BBt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function vBt(t){return Object.values(t).map(e=>e.toJSON())}function SBt(t){if(!zO.guard.isObjectRecord(t))throw new TypeError(\"keys is malformed\");return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:wBt.Key.fromJSON(r,s)}),{})}function DBt(t){let e;if(zO.guard.isDefined(t)){if(!zO.guard.isObjectArray(t))throw new TypeError(\"roles is malformed\");e=t.reduce((r,s)=>{let a=pJ.DelegatedRole.fromJSON(s);return{...r,[a.name]:a}},{})}return e}});var mJ=_(u1=>{\"use strict\";var PBt=u1&&u1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(u1,\"__esModule\",{value:!0});u1.Targets=void 0;var xbe=PBt(Ie(\"util\")),gJ=ay(),bBt=bbe(),xBt=QP(),ZO=ff(),dJ=class t extends gJ.Signed{constructor(e){super(e),this.type=gJ.MetadataKind.Targets,this.targets=e.targets||{},this.delegations=e.delegations}addTarget(e){this.targets[e.path]=e}equals(e){return e instanceof t?super.equals(e)&&xbe.default.isDeepStrictEqual(this.targets,e.targets)&&xbe.default.isDeepStrictEqual(this.delegations,e.delegations):!1}toJSON(){let e={_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,targets:kBt(this.targets),...this.unrecognizedFields};return this.delegations&&(e.delegations=this.delegations.toJSON()),e}static fromJSON(e){let{unrecognizedFields:r,...s}=gJ.Signed.commonFieldsFromJSON(e),{targets:a,delegations:n,...c}=r;return new t({...s,targets:QBt(a),delegations:RBt(n),unrecognizedFields:c})}};u1.Targets=dJ;function kBt(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function QBt(t){let e;if(ZO.guard.isDefined(t))if(ZO.guard.isObjectRecord(t))e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:xBt.TargetFile.fromJSON(s,a)}),{});else throw new TypeError(\"targets must be an object\");return e}function RBt(t){let e;if(ZO.guard.isDefined(t))if(ZO.guard.isObject(t))e=bBt.Delegations.fromJSON(t);else throw new TypeError(\"delegations must be an object\");return e}});var CJ=_(XO=>{\"use strict\";Object.defineProperty(XO,\"__esModule\",{value:!0});XO.Timestamp=void 0;var yJ=ay(),kbe=QP(),EJ=ff(),IJ=class t extends yJ.Signed{constructor(e){super(e),this.type=yJ.MetadataKind.Timestamp,this.snapshotMeta=e.snapshotMeta||new kbe.MetaFile({version:1})}equals(e){return e instanceof t?super.equals(e)&&this.snapshotMeta.equals(e.snapshotMeta):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,meta:{\"snapshot.json\":this.snapshotMeta.toJSON()},...this.unrecognizedFields}}static fromJSON(e){let{unrecognizedFields:r,...s}=yJ.Signed.commonFieldsFromJSON(e),{meta:a,...n}=r;return new t({...s,snapshotMeta:TBt(a),unrecognizedFields:n})}};XO.Timestamp=IJ;function TBt(t){let e;if(EJ.guard.isDefined(t)){let r=t[\"snapshot.json\"];if(!EJ.guard.isDefined(r)||!EJ.guard.isObject(r))throw new TypeError(\"missing snapshot.json in meta\");e=kbe.MetaFile.fromJSON(r)}return e}});var Rbe=_(A1=>{\"use strict\";var FBt=A1&&A1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(A1,\"__esModule\",{value:!0});A1.Metadata=void 0;var NBt=_7(),Qbe=FBt(Ie(\"util\")),f1=ay(),MP=bA(),OBt=aJ(),LBt=cJ(),MBt=AJ(),UBt=mJ(),_Bt=CJ(),wJ=ff(),BJ=class t{constructor(e,r,s){this.signed=e,this.signatures=r||{},this.unrecognizedFields=s||{}}sign(e,r=!0){let s=Buffer.from((0,NBt.canonicalize)(this.signed.toJSON())),a=e(s);r||(this.signatures={}),this.signatures[a.keyID]=a}verifyDelegate(e,r){let s,a={};switch(this.signed.type){case f1.MetadataKind.Root:a=this.signed.keys,s=this.signed.roles[e];break;case f1.MetadataKind.Targets:if(!this.signed.delegations)throw new MP.ValueError(`No delegations found for ${e}`);a=this.signed.delegations.keys,this.signed.delegations.roles?s=this.signed.delegations.roles[e]:this.signed.delegations.succinctRoles&&this.signed.delegations.succinctRoles.isDelegatedRole(e)&&(s=this.signed.delegations.succinctRoles);break;default:throw new TypeError(\"invalid metadata type\")}if(!s)throw new MP.ValueError(`no delegation found for ${e}`);let n=new Set;if(s.keyIDs.forEach(c=>{let f=a[c];if(f)try{f.verifySignature(r),n.add(f.keyID)}catch{}}),n.size<s.threshold)throw new MP.UnsignedMetadataError(`${e} was signed by ${n.size}/${s.threshold} keys`)}equals(e){return e instanceof t?this.signed.equals(e.signed)&&Qbe.default.isDeepStrictEqual(this.signatures,e.signatures)&&Qbe.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}toJSON(){return{signatures:Object.values(this.signatures).map(r=>r.toJSON()),signed:this.signed.toJSON(),...this.unrecognizedFields}}static fromJSON(e,r){let{signed:s,signatures:a,...n}=r;if(!wJ.guard.isDefined(s)||!wJ.guard.isObject(s))throw new TypeError(\"signed is not defined\");if(e!==s._type)throw new MP.ValueError(`expected '${e}', got ${s._type}`);if(!wJ.guard.isObjectArray(a))throw new TypeError(\"signatures is not an array\");let c;switch(e){case f1.MetadataKind.Root:c=OBt.Root.fromJSON(s);break;case f1.MetadataKind.Timestamp:c=_Bt.Timestamp.fromJSON(s);break;case f1.MetadataKind.Snapshot:c=MBt.Snapshot.fromJSON(s);break;case f1.MetadataKind.Targets:c=UBt.Targets.fromJSON(s);break;default:throw new TypeError(\"invalid metadata type\")}let f={};return a.forEach(p=>{let h=LBt.Signature.fromJSON(p);if(f[h.keyID])throw new MP.ValueError(`multiple signatures found for keyid: ${h.keyID}`);f[h.keyID]=h}),new t(c,f,n)}};A1.Metadata=BJ});var $O=_(Fi=>{\"use strict\";Object.defineProperty(Fi,\"__esModule\",{value:!0});Fi.Timestamp=Fi.Targets=Fi.Snapshot=Fi.Signature=Fi.Root=Fi.Metadata=Fi.Key=Fi.TargetFile=Fi.MetaFile=Fi.ValueError=Fi.MetadataKind=void 0;var HBt=ay();Object.defineProperty(Fi,\"MetadataKind\",{enumerable:!0,get:function(){return HBt.MetadataKind}});var jBt=bA();Object.defineProperty(Fi,\"ValueError\",{enumerable:!0,get:function(){return jBt.ValueError}});var Tbe=QP();Object.defineProperty(Fi,\"MetaFile\",{enumerable:!0,get:function(){return Tbe.MetaFile}});Object.defineProperty(Fi,\"TargetFile\",{enumerable:!0,get:function(){return Tbe.TargetFile}});var GBt=FO();Object.defineProperty(Fi,\"Key\",{enumerable:!0,get:function(){return GBt.Key}});var qBt=Rbe();Object.defineProperty(Fi,\"Metadata\",{enumerable:!0,get:function(){return qBt.Metadata}});var WBt=aJ();Object.defineProperty(Fi,\"Root\",{enumerable:!0,get:function(){return WBt.Root}});var YBt=cJ();Object.defineProperty(Fi,\"Signature\",{enumerable:!0,get:function(){return YBt.Signature}});var VBt=AJ();Object.defineProperty(Fi,\"Snapshot\",{enumerable:!0,get:function(){return VBt.Snapshot}});var JBt=mJ();Object.defineProperty(Fi,\"Targets\",{enumerable:!0,get:function(){return JBt.Targets}});var KBt=CJ();Object.defineProperty(Fi,\"Timestamp\",{enumerable:!0,get:function(){return KBt.Timestamp}})});var Nbe=_((air,Fbe)=>{var p1=1e3,h1=p1*60,g1=h1*60,uy=g1*24,zBt=uy*7,ZBt=uy*365.25;Fbe.exports=function(t,e){e=e||{};var r=typeof t;if(r===\"string\"&&t.length>0)return XBt(t);if(r===\"number\"&&isFinite(t))return e.long?evt(t):$Bt(t);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(t))};function XBt(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),s=(e[2]||\"ms\").toLowerCase();switch(s){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return r*ZBt;case\"weeks\":case\"week\":case\"w\":return r*zBt;case\"days\":case\"day\":case\"d\":return r*uy;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return r*g1;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return r*h1;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return r*p1;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return r;default:return}}}}function $Bt(t){var e=Math.abs(t);return e>=uy?Math.round(t/uy)+\"d\":e>=g1?Math.round(t/g1)+\"h\":e>=h1?Math.round(t/h1)+\"m\":e>=p1?Math.round(t/p1)+\"s\":t+\"ms\"}function evt(t){var e=Math.abs(t);return e>=uy?eL(t,e,uy,\"day\"):e>=g1?eL(t,e,g1,\"hour\"):e>=h1?eL(t,e,h1,\"minute\"):e>=p1?eL(t,e,p1,\"second\"):t+\" ms\"}function eL(t,e,r,s){var a=e>=r*1.5;return Math.round(t/r)+\" \"+s+(a?\"s\":\"\")}});var vJ=_((lir,Obe)=>{function tvt(t){r.debug=r,r.default=r,r.coerce=p,r.disable=c,r.enable=a,r.enabled=f,r.humanize=Nbe(),r.destroy=h,Object.keys(t).forEach(E=>{r[E]=t[E]}),r.names=[],r.skips=[],r.formatters={};function e(E){let C=0;for(let S=0;S<E.length;S++)C=(C<<5)-C+E.charCodeAt(S),C|=0;return r.colors[Math.abs(C)%r.colors.length]}r.selectColor=e;function r(E){let C,S=null,b,I;function T(...N){if(!T.enabled)return;let U=T,W=Number(new Date),ee=W-(C||W);U.diff=ee,U.prev=C,U.curr=W,C=W,N[0]=r.coerce(N[0]),typeof N[0]!=\"string\"&&N.unshift(\"%O\");let ie=0;N[0]=N[0].replace(/%([a-zA-Z%])/g,(le,me)=>{if(le===\"%%\")return\"%\";ie++;let pe=r.formatters[me];if(typeof pe==\"function\"){let Be=N[ie];le=pe.call(U,Be),N.splice(ie,1),ie--}return le}),r.formatArgs.call(U,N),(U.log||r.log).apply(U,N)}return T.namespace=E,T.useColors=r.useColors(),T.color=r.selectColor(E),T.extend=s,T.destroy=r.destroy,Object.defineProperty(T,\"enabled\",{enumerable:!0,configurable:!1,get:()=>S!==null?S:(b!==r.namespaces&&(b=r.namespaces,I=r.enabled(E)),I),set:N=>{S=N}}),typeof r.init==\"function\"&&r.init(T),T}function s(E,C){let S=r(this.namespace+(typeof C>\"u\"?\":\":C)+E);return S.log=this.log,S}function a(E){r.save(E),r.namespaces=E,r.names=[],r.skips=[];let C=(typeof E==\"string\"?E:\"\").trim().replace(\" \",\",\").split(\",\").filter(Boolean);for(let S of C)S[0]===\"-\"?r.skips.push(S.slice(1)):r.names.push(S)}function n(E,C){let S=0,b=0,I=-1,T=0;for(;S<E.length;)if(b<C.length&&(C[b]===E[S]||C[b]===\"*\"))C[b]===\"*\"?(I=b,T=S,b++):(S++,b++);else if(I!==-1)b=I+1,T++,S=T;else return!1;for(;b<C.length&&C[b]===\"*\";)b++;return b===C.length}function c(){let E=[...r.names,...r.skips.map(C=>\"-\"+C)].join(\",\");return r.enable(\"\"),E}function f(E){for(let C of r.skips)if(n(E,C))return!1;for(let C of r.names)if(n(E,C))return!0;return!1}function p(E){return E instanceof Error?E.stack||E.message:E}function h(){console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\")}return r.enable(r.load()),r}Obe.exports=tvt});var Lbe=_((sc,tL)=>{sc.formatArgs=nvt;sc.save=ivt;sc.load=svt;sc.useColors=rvt;sc.storage=ovt();sc.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\"))}})();sc.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"];function rvt(){if(typeof window<\"u\"&&window.process&&(window.process.type===\"renderer\"||window.process.__nwjs))return!0;if(typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/))return!1;let t;return typeof document<\"u\"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<\"u\"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<\"u\"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)}function nvt(t){if(t[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+t[0]+(this.useColors?\"%c \":\" \")+\"+\"+tL.exports.humanize(this.diff),!this.useColors)return;let e=\"color: \"+this.color;t.splice(1,0,e,\"color: inherit\");let r=0,s=0;t[0].replace(/%[a-zA-Z%]/g,a=>{a!==\"%%\"&&(r++,a===\"%c\"&&(s=r))}),t.splice(s,0,e)}sc.log=console.debug||console.log||(()=>{});function ivt(t){try{t?sc.storage.setItem(\"debug\",t):sc.storage.removeItem(\"debug\")}catch{}}function svt(){let t;try{t=sc.storage.getItem(\"debug\")}catch{}return!t&&typeof process<\"u\"&&\"env\"in process&&(t=process.env.DEBUG),t}function ovt(){try{return localStorage}catch{}}tL.exports=vJ()(sc);var{formatters:avt}=tL.exports;avt.j=function(t){try{return JSON.stringify(t)}catch(e){return\"[UnexpectedJSONParseError]: \"+e.message}}});var Ube=_((Xs,nL)=>{var lvt=Ie(\"tty\"),rL=Ie(\"util\");Xs.init=gvt;Xs.log=Avt;Xs.formatArgs=uvt;Xs.save=pvt;Xs.load=hvt;Xs.useColors=cvt;Xs.destroy=rL.deprecate(()=>{},\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\");Xs.colors=[6,2,3,4,5,1];try{let t=Ie(\"supports-color\");t&&(t.stderr||t).level>=2&&(Xs.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Xs.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,e)=>{let r=e.substring(6).toLowerCase().replace(/_([a-z])/g,(a,n)=>n.toUpperCase()),s=process.env[e];return/^(yes|on|true|enabled)$/i.test(s)?s=!0:/^(no|off|false|disabled)$/i.test(s)?s=!1:s===\"null\"?s=null:s=Number(s),t[r]=s,t},{});function cvt(){return\"colors\"in Xs.inspectOpts?!!Xs.inspectOpts.colors:lvt.isatty(process.stderr.fd)}function uvt(t){let{namespace:e,useColors:r}=this;if(r){let s=this.color,a=\"\\x1B[3\"+(s<8?s:\"8;5;\"+s),n=`  ${a};1m${e} \\x1B[0m`;t[0]=n+t[0].split(`\n`).join(`\n`+n),t.push(a+\"m+\"+nL.exports.humanize(this.diff)+\"\\x1B[0m\")}else t[0]=fvt()+e+\" \"+t[0]}function fvt(){return Xs.inspectOpts.hideDate?\"\":new Date().toISOString()+\" \"}function Avt(...t){return process.stderr.write(rL.formatWithOptions(Xs.inspectOpts,...t)+`\n`)}function pvt(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function hvt(){return process.env.DEBUG}function gvt(t){t.inspectOpts={};let e=Object.keys(Xs.inspectOpts);for(let r=0;r<e.length;r++)t.inspectOpts[e[r]]=Xs.inspectOpts[e[r]]}nL.exports=vJ()(Xs);var{formatters:Mbe}=nL.exports;Mbe.o=function(t){return this.inspectOpts.colors=this.useColors,rL.inspect(t,this.inspectOpts).split(`\n`).map(e=>e.trim()).join(\" \")};Mbe.O=function(t){return this.inspectOpts.colors=this.useColors,rL.inspect(t,this.inspectOpts)}});var DJ=_((cir,SJ)=>{typeof process>\"u\"||process.type===\"renderer\"||process.browser===!0||process.__nwjs?SJ.exports=Lbe():SJ.exports=Ube()});var sL=_(Ji=>{\"use strict\";Object.defineProperty(Ji,\"__esModule\",{value:!0});Ji.DownloadHTTPError=Ji.DownloadLengthMismatchError=Ji.DownloadError=Ji.ExpiredMetadataError=Ji.EqualVersionError=Ji.BadVersionError=Ji.RepositoryError=Ji.PersistError=Ji.RuntimeError=Ji.ValueError=void 0;var PJ=class extends Error{};Ji.ValueError=PJ;var bJ=class extends Error{};Ji.RuntimeError=bJ;var xJ=class extends Error{};Ji.PersistError=xJ;var UP=class extends Error{};Ji.RepositoryError=UP;var iL=class extends UP{};Ji.BadVersionError=iL;var kJ=class extends iL{};Ji.EqualVersionError=kJ;var QJ=class extends UP{};Ji.ExpiredMetadataError=QJ;var _P=class extends Error{};Ji.DownloadError=_P;var RJ=class extends _P{};Ji.DownloadLengthMismatchError=RJ;var TJ=class extends _P{constructor(e,r){super(e),this.statusCode=r}};Ji.DownloadHTTPError=TJ});var Hbe=_(d1=>{\"use strict\";var NJ=d1&&d1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(d1,\"__esModule\",{value:!0});d1.withTempFile=void 0;var FJ=NJ(Ie(\"fs/promises\")),dvt=NJ(Ie(\"os\")),_be=NJ(Ie(\"path\")),mvt=async t=>yvt(async e=>t(_be.default.join(e,\"tempfile\")));d1.withTempFile=mvt;var yvt=async t=>{let e=await FJ.default.realpath(dvt.default.tmpdir()),r=await FJ.default.mkdtemp(e+_be.default.sep);try{return await t(r)}finally{await FJ.default.rm(r,{force:!0,recursive:!0,maxRetries:3})}}});var LJ=_(kg=>{\"use strict\";var aL=kg&&kg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(kg,\"__esModule\",{value:!0});kg.DefaultFetcher=kg.BaseFetcher=void 0;var Evt=aL(DJ()),jbe=aL(Ie(\"fs\")),Ivt=aL(IO()),Cvt=aL(Ie(\"util\")),Gbe=sL(),wvt=Hbe(),Bvt=(0,Evt.default)(\"tuf:fetch\"),oL=class{async downloadFile(e,r,s){return(0,wvt.withTempFile)(async a=>{let n=await this.fetch(e),c=0,f=jbe.default.createWriteStream(a);try{for await(let p of n){let h=Buffer.from(p);if(c+=h.length,c>r)throw new Gbe.DownloadLengthMismatchError(\"Max length reached\");await vvt(f,h)}}finally{await Cvt.default.promisify(f.close).bind(f)()}return s(a)})}async downloadBytes(e,r){return this.downloadFile(e,r,async s=>{let a=jbe.default.createReadStream(s),n=[];for await(let c of a)n.push(c);return Buffer.concat(n)})}};kg.BaseFetcher=oL;var OJ=class extends oL{constructor(e={}){super(),this.timeout=e.timeout,this.retry=e.retry}async fetch(e){Bvt(\"GET %s\",e);let r=await(0,Ivt.default)(e,{timeout:this.timeout,retry:this.retry});if(!r.ok||!r?.body)throw new Gbe.DownloadHTTPError(\"Failed to download\",r.status);return r.body}};kg.DefaultFetcher=OJ;var vvt=async(t,e)=>new Promise((r,s)=>{t.write(e,a=>{a&&s(a),r(!0)})})});var qbe=_(lL=>{\"use strict\";Object.defineProperty(lL,\"__esModule\",{value:!0});lL.defaultConfig=void 0;lL.defaultConfig={maxRootRotations:256,maxDelegations:32,rootMaxLength:512e3,timestampMaxLength:16384,snapshotMaxLength:2e6,targetsMaxLength:5e6,prefixTargetsWithHash:!0,fetchTimeout:1e5,fetchRetries:void 0,fetchRetry:2}});var Wbe=_(cL=>{\"use strict\";Object.defineProperty(cL,\"__esModule\",{value:!0});cL.TrustedMetadataStore=void 0;var Es=$O(),_i=sL(),MJ=class{constructor(e){this.trustedSet={},this.referenceTime=new Date,this.loadTrustedRoot(e)}get root(){if(!this.trustedSet.root)throw new ReferenceError(\"No trusted root metadata\");return this.trustedSet.root}get timestamp(){return this.trustedSet.timestamp}get snapshot(){return this.trustedSet.snapshot}get targets(){return this.trustedSet.targets}getRole(e){return this.trustedSet[e]}updateRoot(e){let r=JSON.parse(e.toString(\"utf8\")),s=Es.Metadata.fromJSON(Es.MetadataKind.Root,r);if(s.signed.type!=Es.MetadataKind.Root)throw new _i.RepositoryError(`Expected 'root', got ${s.signed.type}`);if(this.root.verifyDelegate(Es.MetadataKind.Root,s),s.signed.version!=this.root.signed.version+1)throw new _i.BadVersionError(`Expected version ${this.root.signed.version+1}, got ${s.signed.version}`);return s.verifyDelegate(Es.MetadataKind.Root,s),this.trustedSet.root=s,s}updateTimestamp(e){if(this.snapshot)throw new _i.RuntimeError(\"Cannot update timestamp after snapshot\");if(this.root.signed.isExpired(this.referenceTime))throw new _i.ExpiredMetadataError(\"Final root.json is expired\");let r=JSON.parse(e.toString(\"utf8\")),s=Es.Metadata.fromJSON(Es.MetadataKind.Timestamp,r);if(s.signed.type!=Es.MetadataKind.Timestamp)throw new _i.RepositoryError(`Expected 'timestamp', got ${s.signed.type}`);if(this.root.verifyDelegate(Es.MetadataKind.Timestamp,s),this.timestamp){if(s.signed.version<this.timestamp.signed.version)throw new _i.BadVersionError(`New timestamp version ${s.signed.version} is less than current version ${this.timestamp.signed.version}`);if(s.signed.version===this.timestamp.signed.version)throw new _i.EqualVersionError(`New timestamp version ${s.signed.version} is equal to current version ${this.timestamp.signed.version}`);let a=this.timestamp.signed.snapshotMeta,n=s.signed.snapshotMeta;if(n.version<a.version)throw new _i.BadVersionError(`New snapshot version ${n.version} is less than current version ${a.version}`)}return this.trustedSet.timestamp=s,this.checkFinalTimestamp(),s}updateSnapshot(e,r=!1){if(!this.timestamp)throw new _i.RuntimeError(\"Cannot update snapshot before timestamp\");if(this.targets)throw new _i.RuntimeError(\"Cannot update snapshot after targets\");this.checkFinalTimestamp();let s=this.timestamp.signed.snapshotMeta;r||s.verify(e);let a=JSON.parse(e.toString(\"utf8\")),n=Es.Metadata.fromJSON(Es.MetadataKind.Snapshot,a);if(n.signed.type!=Es.MetadataKind.Snapshot)throw new _i.RepositoryError(`Expected 'snapshot', got ${n.signed.type}`);return this.root.verifyDelegate(Es.MetadataKind.Snapshot,n),this.snapshot&&Object.entries(this.snapshot.signed.meta).forEach(([c,f])=>{let p=n.signed.meta[c];if(!p)throw new _i.RepositoryError(`Missing file ${c} in new snapshot`);if(p.version<f.version)throw new _i.BadVersionError(`New version ${p.version} of ${c} is less than current version ${f.version}`)}),this.trustedSet.snapshot=n,this.checkFinalSnapsnot(),n}updateDelegatedTargets(e,r,s){if(!this.snapshot)throw new _i.RuntimeError(\"Cannot update delegated targets before snapshot\");this.checkFinalSnapsnot();let a=this.trustedSet[s];if(!a)throw new _i.RuntimeError(`No trusted ${s} metadata`);let n=this.snapshot.signed.meta?.[`${r}.json`];if(!n)throw new _i.RepositoryError(`Missing ${r}.json in snapshot`);n.verify(e);let c=JSON.parse(e.toString(\"utf8\")),f=Es.Metadata.fromJSON(Es.MetadataKind.Targets,c);if(f.signed.type!=Es.MetadataKind.Targets)throw new _i.RepositoryError(`Expected 'targets', got ${f.signed.type}`);a.verifyDelegate(r,f);let p=f.signed.version;if(p!=n.version)throw new _i.BadVersionError(`Version ${p} of ${r} does not match snapshot version ${n.version}`);if(f.signed.isExpired(this.referenceTime))throw new _i.ExpiredMetadataError(`${r}.json is expired`);this.trustedSet[r]=f}loadTrustedRoot(e){let r=JSON.parse(e.toString(\"utf8\")),s=Es.Metadata.fromJSON(Es.MetadataKind.Root,r);if(s.signed.type!=Es.MetadataKind.Root)throw new _i.RepositoryError(`Expected 'root', got ${s.signed.type}`);s.verifyDelegate(Es.MetadataKind.Root,s),this.trustedSet.root=s}checkFinalTimestamp(){if(!this.timestamp)throw new ReferenceError(\"No trusted timestamp metadata\");if(this.timestamp.signed.isExpired(this.referenceTime))throw new _i.ExpiredMetadataError(\"Final timestamp.json is expired\")}checkFinalSnapsnot(){if(!this.snapshot)throw new ReferenceError(\"No trusted snapshot metadata\");if(!this.timestamp)throw new ReferenceError(\"No trusted timestamp metadata\");if(this.snapshot.signed.isExpired(this.referenceTime))throw new _i.ExpiredMetadataError(\"snapshot.json is expired\");let e=this.timestamp.signed.snapshotMeta;if(this.snapshot.signed.version!==e.version)throw new _i.BadVersionError(\"Snapshot version doesn't match timestamp\")}};cL.TrustedMetadataStore=MJ});var Ybe=_(UJ=>{\"use strict\";Object.defineProperty(UJ,\"__esModule\",{value:!0});UJ.join=Dvt;var Svt=Ie(\"url\");function Dvt(t,e){return new Svt.URL(Pvt(t)+bvt(e)).toString()}function Pvt(t){return t.endsWith(\"/\")?t:t+\"/\"}function bvt(t){return t.startsWith(\"/\")?t.slice(1):t}});var Vbe=_(nu=>{\"use strict\";var xvt=nu&&nu.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),kvt=nu&&nu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),jJ=nu&&nu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!==\"default\"&&Object.prototype.hasOwnProperty.call(t,r)&&xvt(e,t,r);return kvt(e,t),e},Qvt=nu&&nu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nu,\"__esModule\",{value:!0});nu.Updater=void 0;var xA=$O(),Rvt=Qvt(DJ()),m1=jJ(Ie(\"fs\")),uL=jJ(Ie(\"path\")),Tvt=qbe(),fy=sL(),Fvt=LJ(),Nvt=Wbe(),HP=jJ(Ybe()),_J=(0,Rvt.default)(\"tuf:cache\"),HJ=class{constructor(e){let{metadataDir:r,metadataBaseUrl:s,targetDir:a,targetBaseUrl:n,fetcher:c,config:f}=e;this.dir=r,this.metadataBaseUrl=s,this.targetDir=a,this.targetBaseUrl=n,this.forceCache=e.forceCache??!1;let p=this.loadLocalMetadata(xA.MetadataKind.Root);this.trustedSet=new Nvt.TrustedMetadataStore(p),this.config={...Tvt.defaultConfig,...f},this.fetcher=c||new Fvt.DefaultFetcher({timeout:this.config.fetchTimeout,retry:this.config.fetchRetries??this.config.fetchRetry})}async refresh(){if(this.forceCache)try{await this.loadTimestamp({checkRemote:!1})}catch{await this.loadRoot(),await this.loadTimestamp()}else await this.loadRoot(),await this.loadTimestamp();await this.loadSnapshot(),await this.loadTargets(xA.MetadataKind.Targets,xA.MetadataKind.Root)}async getTargetInfo(e){return this.trustedSet.targets||await this.refresh(),this.preorderDepthFirstWalk(e)}async downloadTarget(e,r,s){let a=r||this.generateTargetPath(e);if(!s){if(!this.targetBaseUrl)throw new fy.ValueError(\"Target base URL not set\");s=this.targetBaseUrl}let n=e.path;if(this.trustedSet.root.signed.consistentSnapshot&&this.config.prefixTargetsWithHash){let p=Object.values(e.hashes),{dir:h,base:E}=uL.parse(n),C=`${p[0]}.${E}`;n=h?`${h}/${C}`:C}let f=HP.join(s,n);return await this.fetcher.downloadFile(f,e.length,async p=>{await e.verify(m1.createReadStream(p)),_J(\"WRITE %s\",a),m1.copyFileSync(p,a)}),a}async findCachedTarget(e,r){r||(r=this.generateTargetPath(e));try{if(m1.existsSync(r))return await e.verify(m1.createReadStream(r)),r}catch{return}}loadLocalMetadata(e){let r=uL.join(this.dir,`${e}.json`);return _J(\"READ %s\",r),m1.readFileSync(r)}async loadRoot(){let r=this.trustedSet.root.signed.version+1,s=r+this.config.maxRootRotations;for(let a=r;a<s;a++){let n=HP.join(this.metadataBaseUrl,`${a}.root.json`);try{let c=await this.fetcher.downloadBytes(n,this.config.rootMaxLength);this.trustedSet.updateRoot(c),this.persistMetadata(xA.MetadataKind.Root,c)}catch(c){if(c instanceof fy.DownloadHTTPError&&[403,404].includes(c.statusCode))break;throw c}}}async loadTimestamp({checkRemote:e}={checkRemote:!0}){try{let a=this.loadLocalMetadata(xA.MetadataKind.Timestamp);if(this.trustedSet.updateTimestamp(a),!e)return}catch{}let r=HP.join(this.metadataBaseUrl,\"timestamp.json\"),s=await this.fetcher.downloadBytes(r,this.config.timestampMaxLength);try{this.trustedSet.updateTimestamp(s)}catch(a){if(a instanceof fy.EqualVersionError)return;throw a}this.persistMetadata(xA.MetadataKind.Timestamp,s)}async loadSnapshot(){try{let e=this.loadLocalMetadata(xA.MetadataKind.Snapshot);this.trustedSet.updateSnapshot(e,!0)}catch{if(!this.trustedSet.timestamp)throw new ReferenceError(\"No timestamp metadata\");let r=this.trustedSet.timestamp.signed.snapshotMeta,s=r.length||this.config.snapshotMaxLength,a=this.trustedSet.root.signed.consistentSnapshot?r.version:void 0,n=HP.join(this.metadataBaseUrl,a?`${a}.snapshot.json`:\"snapshot.json\");try{let c=await this.fetcher.downloadBytes(n,s);this.trustedSet.updateSnapshot(c),this.persistMetadata(xA.MetadataKind.Snapshot,c)}catch(c){throw new fy.RuntimeError(`Unable to load snapshot metadata error ${c}`)}}}async loadTargets(e,r){if(this.trustedSet.getRole(e))return this.trustedSet.getRole(e);try{let s=this.loadLocalMetadata(e);this.trustedSet.updateDelegatedTargets(s,e,r)}catch{if(!this.trustedSet.snapshot)throw new ReferenceError(\"No snapshot metadata\");let a=this.trustedSet.snapshot.signed.meta[`${e}.json`],n=a.length||this.config.targetsMaxLength,c=this.trustedSet.root.signed.consistentSnapshot?a.version:void 0,f=encodeURIComponent(e),p=HP.join(this.metadataBaseUrl,c?`${c}.${f}.json`:`${f}.json`);try{let h=await this.fetcher.downloadBytes(p,n);this.trustedSet.updateDelegatedTargets(h,e,r),this.persistMetadata(e,h)}catch(h){throw new fy.RuntimeError(`Unable to load targets error ${h}`)}}return this.trustedSet.getRole(e)}async preorderDepthFirstWalk(e){let r=[{roleName:xA.MetadataKind.Targets,parentRoleName:xA.MetadataKind.Root}],s=new Set;for(;s.size<=this.config.maxDelegations&&r.length>0;){let{roleName:a,parentRoleName:n}=r.pop();if(s.has(a))continue;let c=(await this.loadTargets(a,n))?.signed;if(!c)continue;let f=c.targets?.[e];if(f)return f;if(s.add(a),c.delegations){let p=[],h=c.delegations.rolesForTarget(e);for(let{role:E,terminating:C}of h)if(p.push({roleName:E,parentRoleName:a}),C){r.splice(0);break}p.reverse(),r.push(...p)}}}generateTargetPath(e){if(!this.targetDir)throw new fy.ValueError(\"Target directory not set\");let r=encodeURIComponent(e.path);return uL.join(this.targetDir,r)}persistMetadata(e,r){let s=encodeURIComponent(e);try{let a=uL.join(this.dir,`${s}.json`);_J(\"WRITE %s\",a),m1.writeFileSync(a,r.toString(\"utf8\"))}catch(a){throw new fy.PersistError(`Failed to persist metadata ${s} error: ${a}`)}}};nu.Updater=HJ});var Jbe=_(Qg=>{\"use strict\";Object.defineProperty(Qg,\"__esModule\",{value:!0});Qg.Updater=Qg.BaseFetcher=Qg.TargetFile=void 0;var Ovt=$O();Object.defineProperty(Qg,\"TargetFile\",{enumerable:!0,get:function(){return Ovt.TargetFile}});var Lvt=LJ();Object.defineProperty(Qg,\"BaseFetcher\",{enumerable:!0,get:function(){return Lvt.BaseFetcher}});var Mvt=Vbe();Object.defineProperty(Qg,\"Updater\",{enumerable:!0,get:function(){return Mvt.Updater}})});var qJ=_(fL=>{\"use strict\";Object.defineProperty(fL,\"__esModule\",{value:!0});fL.TUFError=void 0;var GJ=class extends Error{constructor({code:e,message:r,cause:s}){super(r),this.code=e,this.cause=s,this.name=this.constructor.name}};fL.TUFError=GJ});var Kbe=_(jP=>{\"use strict\";var Uvt=jP&&jP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(jP,\"__esModule\",{value:!0});jP.readTarget=Hvt;var _vt=Uvt(Ie(\"fs\")),AL=qJ();async function Hvt(t,e){let r=await jvt(t,e);return new Promise((s,a)=>{_vt.default.readFile(r,\"utf-8\",(n,c)=>{n?a(new AL.TUFError({code:\"TUF_READ_TARGET_ERROR\",message:`error reading target ${r}`,cause:n})):s(c)})})}async function jvt(t,e){let r;try{r=await t.getTargetInfo(e)}catch(a){throw new AL.TUFError({code:\"TUF_REFRESH_METADATA_ERROR\",message:\"error refreshing TUF metadata\",cause:a})}if(!r)throw new AL.TUFError({code:\"TUF_FIND_TARGET_ERROR\",message:`target ${e} not found`});let s=await t.findCachedTarget(r);if(!s)try{s=await t.downloadTarget(r)}catch(a){throw new AL.TUFError({code:\"TUF_DOWNLOAD_TARGET_ERROR\",message:`error downloading target ${s}`,cause:a})}return s}});var zbe=_((Iir,Gvt)=>{Gvt.exports={\"https://tuf-repo-cdn.sigstore.dev\":{\"root.json\":\"ewogInNpZ25hdHVyZXMiOiBbCiAgewogICAia2V5aWQiOiAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICJzaWciOiAiMzA0NjAyMjEwMDhhYjFmNmYxN2Q0ZjllNmQ3ZGNmMWM4ODkxMmI2YjUzY2MxMDM4ODY0NGFlMWYwOWJjMzdhMDgyY2QwNjAwM2UwMjIxMDBlMTQ1ZWY0YzdiNzgyZDRlODEwN2I1MzQzN2U2NjlkMDQ3Njg5MmNlOTk5OTAzYWUzM2QxNDQ0ODM2Njk5NmU3IgogIH0sCiAgewogICAia2V5aWQiOiAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICJzaWciOiAiMzA0NTAyMjEwMGM3NjhiMmY4NmRhOTk1NjkwMTljMTYwYTA4MWRhNTRhZTM2YzM0YzBhMzEyMGQzY2I2OWI1M2I3ZDExMzc1OGUwMjIwNGY2NzE1MThmNjE3YjIwZDQ2NTM3ZmFlNmMzYjYzYmFlODkxM2Y0ZjE5NjIxNTYxMDVjYzRmMDE5YWMzNWM2YSIKICB9LAogIHsKICAgImtleWlkIjogIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAic2lnIjogIjMwNDUwMjIxMDBiNDQzNGU2OTk1ZDM2OGQyM2U3NDc1OWFjZDBjYjkwMTNjODNhNWQzNTExZjBmOTk3ZWM1NGM0NTZhZTQzNTBhMDIyMDE1YjBlMjY1ZDE4MmQyYjYxZGM3NGUxNTVkOThiM2MzZmJlNTY0YmEwNTI4NmFhMTRjOGRmMDJjOWI3NTY1MTYiCiAgfSwKICB7CiAgICJrZXlpZCI6ICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgInNpZyI6ICIzMDQ1MDIyMTAwODJjNTg0MTFkOTg5ZWI5Zjg2MTQxMDg1N2Q0MjM4MTU5MGVjOTQyNGRiZGFhNTFlNzhlZDEzNTE1NDMxOTA0ZTAyMjAxMTgxODVkYTZhNmMyOTQ3MTMxYzE3Nzk3ZTJiYjc2MjBjZTI2ZTVmMzAxZDFjZWFjNWYyYTdlNThmOWRjZjJlIgogIH0sCiAgewogICAia2V5aWQiOiAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIsCiAgICJzaWciOiAiMzA0NjAyMjEwMGM3ODUxMzg1NGNhZTljMzJlYWE2Yjg4ZTE4OTEyZjQ4MDA2YzI3NTdhMjU4ZjkxNzMxMmNhYmE3NTk0OGViOWUwMjIxMDBkOWUxYjRjZTBhZGZlOWZkMmUyMTQ4ZDdmYTI3YTJmNDBiYTExMjJiZDY5ZGE3NjEyZDhkMTc3NmIwMTNjOTFkIgogIH0sCiAgewogICAia2V5aWQiOiAiZmRmYTgzYTA3YjVhODM1ODliODdkZWQ0MWY3N2YzOWQyMzJhZDkxZjdjY2U1Mjg2OGRhY2QwNmJhMDg5ODQ5ZiIsCiAgICJzaWciOiAiMzA0NTAyMjA1NjQ4M2EyZDVkOWVhOWNlYzZlMTFlYWRmYjMzYzQ4NGI2MTQyOThmYWNhMTVhY2YxYzQzMWIxMWVkN2Y3MzRjMDIyMTAwZDBjMWQ3MjZhZjkyYTg3ZTRlNjY0NTljYTVhZGYzOGEwNWI0NGUxZjk0MzE4NDIzZjk1NGJhZThiY2E1YmIyZSIKICB9LAogIHsKICAgImtleWlkIjogImUyZjU5YWNiOTQ4ODUxOTQwN2UxOGNiZmM5MzI5NTEwYmUwM2MwNGFjYTk5MjlkMmYwMzAxMzQzZmVjODU1MjMiLAogICAic2lnIjogIjMwNDYwMjIxMDBkMDA0ZGU4ODAyNGMzMmRjNTY1M2E5ZjQ4NDNjZmM1MjE1NDI3MDQ4YWQ5NjAwZDJjZjljOTY5ZTZlZGZmM2QyMDIyMTAwZDllYmI3OThmNWZjNjZhZjEwODk5ZGVjZTAxNGE4NjI4Y2NmM2M1NDAyY2Q0YTQyNzAyMDc0NzJmOGY2ZTcxMiIKICB9LAogIHsKICAgImtleWlkIjogIjNjMzQ0YWEwNjhmZDRjYzRlODdkYzUwYjYxMmMwMjQzMWZiYzc3MWU5NTAwMzk5MzY4M2EyYjBiZjI2MGNmMGUiLAogICAic2lnIjogIjMwNDYwMjIxMDBiN2IwOTk5NmM0NWNhMmQ0YjA1NjAzZTU2YmFlZmEyOTcxOGEwYjcxMTQ3Y2Y4YzZlNjYzNDliYWE2MTQ3N2RmMDIyMTAwYzRkYTgwYzcxN2I0ZmE3YmJhMGZkNWM3MmRhOGEwNDk5MzU4YjAxMzU4YjIzMDlmNDFkMTQ1NmVhMWU3ZTFkOSIKICB9LAogIHsKICAgImtleWlkIjogImVjODE2Njk3MzRlMDE3OTk2YzViODVmM2QwMmMzZGUxZGQ0NjM3YTE1MjAxOWZlMWFmMTI1ZDJmOTM2OGI5NWUiLAogICAic2lnIjogIjMwNDYwMjIxMDBiZTk3ODJjMzA3NDRlNDExYTgyZmE4NWI1MTM4ZDYwMWNlMTQ4YmMxOTI1OGFlYzY0ZTdlYzI0NDc4ZjM4ODEyMDIyMTAwY2FlZjYzZGNhZjFhNGI5YTUwMGQzYmQwZTNmMTY0ZWMxOGYxYjYzZDdhOTQ2MGQ5YWNhYjEwNjZkYjBmMDE2ZCIKICB9LAogIHsKICAgImtleWlkIjogIjFlMWQ2NWNlOThiMTBhZGRhZDQ3NjRmZWJmN2RkYTJkMDQzNmIzZDNhMzg5MzU3OWMwZGRkYWVhMjBlNTQ4NDkiLAogICAic2lnIjogIjMwNDUwMjIwNzQ2ZWMzZjg1MzRjZTU1NTMxZDBkMDFmZjY0OTY0ZWY0NDBkMWU3ZDJjNGMxNDI0MDliOGU5NzY5ZjFhZGE2ZjAyMjEwMGUzYjkyOWZjZDkzZWExOGZlYWEwODI1ODg3YTcyMTA0ODk4NzlhNjY3ODBjMDdhODNmNGJkNDZlMmYwOWFiM2IiCiAgfQogXSwKICJzaWduZWQiOiB7CiAgIl90eXBlIjogInJvb3QiLAogICJjb25zaXN0ZW50X3NuYXBzaG90IjogdHJ1ZSwKICAiZXhwaXJlcyI6ICIyMDI1LTAyLTE5VDA4OjA0OjMyWiIsCiAgImtleXMiOiB7CiAgICIyMmY0Y2FlYzZkOGU2Zjk1NTVhZjY2YjNkNGMzY2IwNmEzYmIyM2ZkYzdlMzljOTE2YzYxZjQ2MmU2ZjUyYjA2IjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFekJ6Vk9tSENQb2pNVkxTSTM2NFdpaVY4TlByRFxuNklnUnhWbGlza3ovdit5M0pFUjVtY1ZHY09ObGlEY1dNQzVKMmxmSG1qUE5QaGI0SDd4bThMemZTQT09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBzYW50aWFnb3RvcnJlcyIKICAgfSwKICAgIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVpbmlrU3NBUW1Za05lSDVlWXEvQ25JekxhYWNPXG54bFNhYXdRRE93cUt5L3RDcXhxNXh4UFNKYzIxSzRXSWhzOUd5T2tLZnp1ZVkzR0lMemNNSlo0Y1d3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQGJvYmNhbGxhd2F5IgogICB9LAogICAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXk4WEtzbWhCWURJOEpjMEd3ekJ4ZUtheDBjbTVcblNUS0VVNjVIUEZ1blVuNDFzVDhwaTBGak00SWtIei9ZVW13bUxVTzBXdDdseGhqNkJrTElLNHFZQXc9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAZGxvcmVuYyIKICAgfSwKICAgIjcyNDdmMGRiYWQ4NWIxNDdlMTg2M2JhZGU3NjEyNDNjYzc4NWRjYjdhYTQxMGU3MTA1ZGQzZDJiNjFhMzZkMmMiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVXUmlHcjUraiszSjVTc0grWnRyNW5FMkgyd083XG5CVituTzNzOTNnTGNhMThxVE96SFkxb1d5QUdEeWtNU3NHVFVCU3Q5RCtBbjBLZktzRDJtZlNNNDJRPT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2ktb25saW5lLXVyaSI6ICJnY3BrbXM6Ly9wcm9qZWN0cy9zaWdzdG9yZS1yb290LXNpZ25pbmcvbG9jYXRpb25zL2dsb2JhbC9rZXlSaW5ncy9yb290L2NyeXB0b0tleXMvdGltZXN0YW1wIgogICB9LAogICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTBnaHJoOTJMdzFZcjNpZEdWNVdxQ3RNREI4Q3hcbitEOGhkQzR3MlpMTklwbFZSb1ZHTHNrWWEzZ2hlTXlPamlKOGtQaTE1YVEyLy83UCtvajdVdkpQR3c9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAam9zaHVhZ2wiCiAgIH0sCiAgICJlNzFhNTRkNTQzODM1YmE4NmFkYWQ5NDYwMzc5Yzc2NDFmYjg3MjZkMTY0ZWE3NjY4MDFhMWM1MjJhYmE3ZWEyIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFRVhzejNTWlhGYjhqTVY0Mmo2cEpseWpialI4S1xuTjNCd29jZXhxNkxNSWI1cXNXS09RdkxOMTZOVWVmTGM0SHN3T291bVJzVlZhYWpTcFFTNmZvYmtSdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBtbm02NzgiCiAgIH0KICB9LAogICJyb2xlcyI6IHsKICAgInJvb3QiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI2ZjI2MDA4OWQ1OTIzZGFmMjAxNjZjYTY1N2M1NDNhZjYxODM0NmFiOTcxODg0YTk5OTYyYjAxOTg4YmJlMGMzIiwKICAgICAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICAgIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMwogICB9LAogICAic25hcHNob3QiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI3MjQ3ZjBkYmFkODViMTQ3ZTE4NjNiYWRlNzYxMjQzY2M3ODVkY2I3YWE0MTBlNzEwNWRkM2QyYjYxYTM2ZDJjIgogICAgXSwKICAgICJ0aHJlc2hvbGQiOiAxLAogICAgIngtdHVmLW9uLWNpLWV4cGlyeS1wZXJpb2QiOiAzNjUwLAogICAgIngtdHVmLW9uLWNpLXNpZ25pbmctcGVyaW9kIjogMzY1CiAgIH0sCiAgICJ0YXJnZXRzIjogewogICAgImtleWlkcyI6IFsKICAgICAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICAgImU3MWE1NGQ1NDM4MzViYTg2YWRhZDk0NjAzNzljNzY0MWZiODcyNmQxNjRlYTc2NjgwMWExYzUyMmFiYTdlYTIiLAogICAgICIyMmY0Y2FlYzZkOGU2Zjk1NTVhZjY2YjNkNGMzY2IwNmEzYmIyM2ZkYzdlMzljOTE2YzYxZjQ2MmU2ZjUyYjA2IiwKICAgICAiNjE2NDM4MzgxMjViNDQwYjQwZGI2OTQyZjVjYjVhMzFjMGRjMDQzNjgzMTZlYjJhYWE1OGI5NTkwNGE1ODIyMiIsCiAgICAgImE2ODdlNWJmNGZhYjgyYjBlZTU4ZDQ2ZTA1Yzk1MzUxNDVhMmM5YWZiNDU4ZjQzZDQyYjQ1Y2EwZmRjZTJhNzAiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDMKICAgfSwKICAgInRpbWVzdGFtcCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjcyNDdmMGRiYWQ4NWIxNDdlMTg2M2JhZGU3NjEyNDNjYzc4NWRjYjdhYTQxMGU3MTA1ZGQzZDJiNjFhMzZkMmMiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDEsCiAgICAieC10dWYtb24tY2ktZXhwaXJ5LXBlcmlvZCI6IDcsCiAgICAieC10dWYtb24tY2ktc2lnbmluZy1wZXJpb2QiOiA0CiAgIH0KICB9LAogICJzcGVjX3ZlcnNpb24iOiAiMS4wIiwKICAidmVyc2lvbiI6IDEwLAogICJ4LXR1Zi1vbi1jaS1leHBpcnktcGVyaW9kIjogMTgyLAogICJ4LXR1Zi1vbi1jaS1zaWduaW5nLXBlcmlvZCI6IDMxCiB9Cn0=\",targets:{\"trusted_root.json\":\"ewogICJtZWRpYVR5cGUiOiAiYXBwbGljYXRpb24vdm5kLmRldi5zaWdzdG9yZS50cnVzdGVkcm9vdCtqc29uO3ZlcnNpb249MC4xIiwKICAidGxvZ3MiOiBbCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vcmVrb3Iuc2lnc3RvcmUuZGV2IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUyRzJZKzJ0YWJkVFY1QmNHaUJJeDBhOWZBRndya0JibUxTR3RrczRMM3FYNnlZWTB6dWZCbmhDOFVyL2l5NTVHaFdQLzlBL2JZMkxoQzMwTTkrUll0dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDEtMTJUMTE6NTM6MjcuMDAwWiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAid05JOWF0UUdseitWV2ZPNkxSeWdINFFVZlkvOFc0UkZ3aVQ1aTVXUmdCMD0iCiAgICAgIH0KICAgIH0KICBdLAogICJjZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIjogWwogICAgewogICAgICAic3ViamVjdCI6IHsKICAgICAgICAib3JnYW5pemF0aW9uIjogInNpZ3N0b3JlLmRldiIsCiAgICAgICAgImNvbW1vbk5hbWUiOiAic2lnc3RvcmUiCiAgICAgIH0sCiAgICAgICJ1cmkiOiAiaHR0cHM6Ly9mdWxjaW8uc2lnc3RvcmUuZGV2IiwKICAgICAgImNlcnRDaGFpbiI6IHsKICAgICAgICAiY2VydGlmaWNhdGVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQitEQ0NBWDZnQXdJQkFnSVROVmtEWm9DaW9mUERzeTdkZm02Z2VMYnVoekFLQmdncWhrak9QUVFEQXpBcU1SVXdFd1lEVlFRS0V3eHphV2R6ZEc5eVpTNWtaWFl4RVRBUEJnTlZCQU1UQ0hOcFozTjBiM0psTUI0WERUSXhNRE13TnpBek1qQXlPVm9YRFRNeE1ESXlNekF6TWpBeU9Wb3dLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkxTeUE3SWk1aytwTk84WkVXWTB5bGVtV0Rvd09rTmEza0wrR1pFNVo1R1dlaEw5L0E5YlJOQTNSYnJzWjVpMEpjYXN0YVJMN1NwNWZwL2pENWR4cWMvVWRUVm5sdlMxNmFuKzJZZnN3ZS9RdUxvbFJVQ3JjT0UyKzJpQTUrdHpkNk5tTUdRd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFFd0hRWURWUjBPQkJZRUZNakZIUUJCbWlRcE1sRWs2dzJ1U3UxS0J0UHNNQjhHQTFVZEl3UVlNQmFBRk1qRkhRQkJtaVFwTWxFazZ3MnVTdTFLQnRQc01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01IOGxpV0pmTXVpNnZYWEJoakRnWTRNd3NsbU4vVEp4VmUvODNXckZvbXdtTmYwNTZ5MVg0OEY5YzRtM2Ezb3pYQUl4QUtqUmF5NS9hai9qc0tLR0lrbVFhdGpJOHV1cEhyLytDeEZ2YUpXbXBZcU5rTERHUlUrOW9yemg1aEkyUnJjdWFRPT0iCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMDdUMDM6MjA6MjkuMDAwWiIsCiAgICAgICAgImVuZCI6ICIyMDIyLTEyLTMxVDIzOjU5OjU5Ljk5OVoiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAic2lnc3RvcmUuZGV2IiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJzaWdzdG9yZSIKICAgICAgfSwKICAgICAgInVyaSI6ICJodHRwczovL2Z1bGNpby5zaWdzdG9yZS5kZXYiLAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlDR2pDQ0FhR2dBd0lCQWdJVUFMblZpVmZuVTBickphc21Sa0hybi9VbmZhUXdDZ1lJS29aSXpqMEVBd013S2pFVk1CTUdBMVVFQ2hNTWMybG5jM1J2Y21VdVpHVjJNUkV3RHdZRFZRUURFd2h6YVdkemRHOXlaVEFlRncweU1qQTBNVE15TURBMk1UVmFGdzB6TVRFd01EVXhNelUyTlRoYU1EY3hGVEFUQmdOVkJBb1RESE5wWjNOMGIzSmxMbVJsZGpFZU1Cd0dBMVVFQXhNVmMybG5jM1J2Y21VdGFXNTBaWEp0WldScFlYUmxNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRThSVlMveXNIK05PdnVEWnlQSVp0aWxnVUY5TmxhcllwQWQ5SFAxdkJCSDFVNUNWNzdMU1M3czBaaUg0bkU3SHY3cHRTNkx2dlIvU1RrNzk4TFZnTXpMbEo0SGVJZkYzdEhTYWV4TGNZcFNBU3Ixa1MwTi9SZ0JKei85aldDaVhubzNzd2VUQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSEF3TXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVMzlQcHoxWWtFWmI1cU5qcEtGV2l4aTRZWkQ4d0h3WURWUjBqQkJnd0ZvQVVXTUFlWDVGRnBXYXBlc3lRb1pNaTBDckZ4Zm93Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3UENzUUs0RFlpWllEUElhRGk1SEZLbmZ4WHg2QVNTVm1FUmZzeW5ZQmlYMlg2U0pSblpVODQvOURaZG5GdnZ4bUFqQk90NlFwQmxjNEovMER4dmtUQ3FwY2x2emlMNkJDQ1BuamRsSUIzUHUzQnhzUG15Z1VZN0lpMnpiZENkbGlpb3c9IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUI5ekNDQVh5Z0F3SUJBZ0lVQUxaTkFQRmR4SFB3amVEbG9Ed3lZQ2hBTy80d0NnWUlLb1pJemowRUF3TXdLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQWVGdzB5TVRFd01EY3hNelUyTlRsYUZ3MHpNVEV3TURVeE16VTJOVGhhTUNveEZUQVRCZ05WQkFvVERITnBaM04wYjNKbExtUmxkakVSTUE4R0ExVUVBeE1JYzJsbmMzUnZjbVV3ZGpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBSWdOaUFBVDdYZUZUNHJiM1BRR3dTNElhanRMazMvT2xucGdhbmdhQmNsWXBzWUJyNWkrNHluQjA3Y2ViM0xQME9JT1pkeGV4WDY5YzVpVnV5SlJRK0h6MDV5aStVRjN1QldBbEhwaVM1c2gwK0gyR0hFN1NYcmsxRUM1bTFUcjE5TDlnZzkyall6QmhNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUll3QjVma1VXbFpxbDZ6SkNoa3lMUUtzWEYrakFmQmdOVkhTTUVHREFXZ0JSWXdCNWZrVVdsWnFsNnpKQ2hreUxRS3NYRitqQUtCZ2dxaGtqT1BRUURBd05wQURCbUFqRUFqMW5IZVhacCsxM05XQk5hK0VEc0RQOEcxV1dnMXRDTVdQL1dIUHFwYVZvMGpoc3dlTkZaZ1NzMGVFN3dZSTRxQWpFQTJXQjlvdDk4c0lrb0YzdlpZZGQzL1Z0V0I1YjlUTk1lYTdJeC9zdEo1VGZjTExlQUJMRTRCTkpPc1E0dm5CSEoiCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjItMDQtMTNUMjA6MDY6MTUuMDAwWiIKICAgICAgfQogICAgfQogIF0sCiAgImN0bG9ncyI6IFsKICAgIHsKICAgICAgImJhc2VVcmwiOiAiaHR0cHM6Ly9jdGZlLnNpZ3N0b3JlLmRldi90ZXN0IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUViZndSK1JKdWRYc2NnUkJScEtYMVhGRHkzUHl1ZER4ei9TZm5SaTFmVDhla3BmQmQyTzF1b3o3anIzWjhuS3p4QTY5RVVRK2VGQ0ZJM3pldWJQV1U3dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMTRUMDA6MDA6MDAuMDAwWiIsCiAgICAgICAgICAiZW5kIjogIjIwMjItMTAtMzFUMjM6NTk6NTkuOTk5WiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAiQ0dDUzhDaFMvMmhGMGRGcko0U2NSV2NZckJZOXd6alNiZWE4SWdZMmIzST0iCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vY3RmZS5zaWdzdG9yZS5kZXYvMjAyMiIsCiAgICAgICJoYXNoQWxnb3JpdGhtIjogIlNIQTJfMjU2IiwKICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAicmF3Qnl0ZXMiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaVBTbEZpMENtRlRmRWpDVXFGOUh1Q0VjWVhOS0FhWWFsSUptQlo4eXllelBqVHFoeHJLQnBNbmFvY1Z0TEpCSTFlTTN1WG5RelFHQUpkSjRnczlGeXc9PSIsCiAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICJzdGFydCI6ICIyMDIyLTEwLTIwVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgfQogICAgICB9LAogICAgICAibG9nSWQiOiB7CiAgICAgICAgImtleUlkIjogIjNUMHdhc2JIRVRKakdSNGNtV2MzQXFKS1hyamVQSzMvaDRweWdDOHA3bzQ9IgogICAgICB9CiAgICB9CiAgXSwKICAidGltZXN0YW1wQXV0aG9yaXRpZXMiOiBbCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAiR2l0SHViLCBJbmMuIiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJJbnRlcm5hbCBTZXJ2aWNlcyBSb290IgogICAgICB9LAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlCM0RDQ0FXS2dBd0lCQWdJVWNoa05zSDM2WGEwNGIxTHFJYytxcjlEVmVjTXdDZ1lJS29aSXpqMEVBd013TWpFVk1CTUdBMVVFQ2hNTVIybDBTSFZpTENCSmJtTXVNUmt3RndZRFZRUURFeEJVVTBFZ2FXNTBaWEp0WldScFlYUmxNQjRYRFRJek1EUXhOREF3TURBd01Gb1hEVEkwTURReE16QXdNREF3TUZvd01qRVZNQk1HQTFVRUNoTU1SMmwwU0hWaUxDQkpibU11TVJrd0Z3WURWUVFERXhCVVUwRWdWR2x0WlhOMFlXMXdhVzVuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFVUQ1Wk5iU3FZTWQ2cjhxcE9PRVg5aWJHblpUOUdzdVhPaHIvZjhVOUZKdWdCR0V4S1lwNDBPVUxTMGVyalpXN3hWOXhWNTJObkpmNU9lRHE0ZTVaS3FOV01GUXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUlNQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVhVzFSdWRPZ1Z0MGxlcVkwV0tZYnVQcjQ3d0F3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3YlVIOUh2RDRlakNaSk9XUW5xQWxrcVVSbGx2dTlNOCtWcUxiaVJLK3pTZlpDWndzaWxqUm44TVFRUlNrWEVFNUFqRUFnK1Z4cXRvamZWZnU4RGh6emhDeDlHS0VUYkpIYjE5aVY3Mm1NS1ViREFGbXpaNmJROGI1NFpiOHRpZHk1YVdlIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUNFRENDQVpXZ0F3SUJBZ0lVWDhaTzVRWFA3dk40ZE1RNWU5c1UzbnViOE9nd0NnWUlLb1pJemowRUF3TXdPREVWTUJNR0ExVUVDaE1NUjJsMFNIVmlMQ0JKYm1NdU1SOHdIUVlEVlFRREV4WkpiblJsY201aGJDQlRaWEoyYVdObGN5QlNiMjkwTUI0WERUSXpNRFF4TkRBd01EQXdNRm9YRFRJNE1EUXhNakF3TURBd01Gb3dNakVWTUJNR0ExVUVDaE1NUjJsMFNIVmlMQ0JKYm1NdU1Sa3dGd1lEVlFRREV4QlVVMEVnYVc1MFpYSnRaV1JwWVhSbE1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFdk1MWS9kVFZidklKWUFOQXVzekV3Sm5RRTFsbGZ0eW55TUtJTWhoNDhIbXFiVnI1eWd5YnpzTFJMVktiQldPZFoyMWFlSnorZ1ppeXRaZXRxY3lGOVdsRVI1TkVNZjZKVjdaTm9qUXB4SHE0UkhHb0dTY2VRdi9xdlRpWnhFREtvMll3WkRBT0JnTlZIUThCQWY4RUJBTUNBUVl3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVWFXMVJ1ZE9nVnQwbGVxWTBXS1lidVByNDd3QXdId1lEVlIwakJCZ3dGb0FVOU5ZWWxvYm5BRzRjMC9xanh5SC9scS93eitRd0NnWUlLb1pJemowRUF3TURhUUF3WmdJeEFLMUIxODV5Z0NySVlGbElzM0dqc3dqbndTTUc2TFk4d29MVmRha0tEWnhWYThmOGNxTXMxRGhjeEowKzA5dzk1UUl4QU8rdEJ6Wms3dmpVSjlpSmdENFI2WldUeFFXS3FObTc0ak85OW8rbzlzdjRGSS9TWlRaVEZ5TW4wSUpFSGRObXlBPT0iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQjlEQ0NBWHFnQXdJQkFnSVVhL0pBa2RVaks0SlV3c3F0YWlSSkdXaHFMU293Q2dZSUtvWkl6ajBFQXdNd09ERVZNQk1HQTFVRUNoTU1SMmwwU0hWaUxDQkpibU11TVI4d0hRWURWUVFERXhaSmJuUmxjbTVoYkNCVFpYSjJhV05sY3lCU2IyOTBNQjRYRFRJek1EUXhOREF3TURBd01Gb1hEVE16TURReE1UQXdNREF3TUZvd09ERVZNQk1HQTFVRUNoTU1SMmwwU0hWaUxDQkpibU11TVI4d0hRWURWUVFERXhaSmJuUmxjbTVoYkNCVFpYSjJhV05sY3lCU2IyOTBNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRWY5akZBWHh6NGt4NjhBSFJNT2tGQmhmbERjTVR2emFYejR4L0ZDY1hqSi8xcUVLb24vcVBJR25hVVJza0R0eU5iTkRPcGVKVERERnF0NDhpTVBybnpweDZJWndxZW1mVUpONHhCRVpmemErcFl0L2l5b2QrOXRacjIwUlJXU3YvbzBVd1F6QU9CZ05WSFE4QkFmOEVCQU1DQVFZd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFqQWRCZ05WSFE0RUZnUVU5TllZbG9ibkFHNGMwL3FqeHlIL2xxL3d6K1F3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl4QUxaTFo4QmdSWHpLeExNTU45VklsTytlNGhyQm5OQmdGN3R6N0hucm93djJOZXRaRXJJQUNLRnltQmx2V0R2dE1BSXdaTytraTZzc1ExYnNabzk4TzhtRUFmMk5aN2lpQ2dERFUwVndqZWNvNnp5ZWgwekJUczkvN2dWNkFITlE1M3hEIgogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfSwKICAgICAgInZhbGlkRm9yIjogewogICAgICAgICJzdGFydCI6ICIyMDIzLTA0LTE0VDAwOjAwOjAwLjAwMFoiCiAgICAgIH0KICAgIH0KICBdCn0K\",\"registry.npmjs.org%2Fkeys.json\":\"ewogICAgImtleXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OmpsM2J3c3d1ODBQampva0NnaDBvMnc1YzJVNExoUUFFNTdnajljejFrekEiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTFPbGIzek1BRkZ4WEtIaUlrUU81Y0ozWWhsNWk2VVBwK0lodXRlQkpidUhjQTVVb2dLbzBFV3RsV3dXNktTYUtvVE5FWUw3SmxDUWlWbmtoQmt0VWdnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIxOTk5LTAxLTAxVDAwOjAwOjAwLjAwMFoiLAogICAgICAgICAgICAgICAgICAgICJlbmQiOiAiMjAyNS0wMS0yOVQwMDowMDowMC4wMDBaIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJrZXlJZCI6ICJTSEEyNTY6amwzYndzd3U4MFBqam9rQ2doMG8ydzVjMlU0TGhRQUU1N2dqOWN6MWt6QSIsCiAgICAgICAgICAgICJrZXlVc2FnZSI6ICJucG06YXR0ZXN0YXRpb25zIiwKICAgICAgICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxT2xiM3pNQUZGeFhLSGlJa1FPNWNKM1lobDVpNlVQcCtJaHV0ZUJKYnVIY0E1VW9nS28wRVd0bFd3VzZLU2FLb1RORVlMN0psQ1FpVm5raEJrdFVnZz09IiwKICAgICAgICAgICAgICAgICJrZXlEZXRhaWxzIjogIlBLSVhfRUNEU0FfUDI1Nl9TSEFfMjU2IiwKICAgICAgICAgICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICAgICAgICAgICAic3RhcnQiOiAiMjAyMi0xMi0wMVQwMDowMDowMC4wMDBaIiwKICAgICAgICAgICAgICAgICAgICAiZW5kIjogIjIwMjUtMDEtMjlUMDA6MDA6MDAuMDAwWiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OkRoUTh3UjVBUEJ2RkhMRi8rVGMrQVl2UE9kVHBjSURxT2h4c0JIUndDN1UiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImtleUlkIjogIlNIQTI1NjpEaFE4d1I1QVBCdkZITEYvK1RjK0FZdlBPZFRwY0lEcU9oeHNCSFJ3QzdVIiwKICAgICAgICAgICAgImtleVVzYWdlIjogIm5wbTphdHRlc3RhdGlvbnMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICBdCn0K\"}}}});var Xbe=_(y1=>{\"use strict\";var Zbe=y1&&y1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(y1,\"__esModule\",{value:!0});y1.TUFClient=void 0;var Rg=Zbe(Ie(\"fs\")),GP=Zbe(Ie(\"path\")),qvt=Jbe(),Wvt=pL(),Yvt=Kbe(),YJ=\"targets\",WJ=class{constructor(e){let r=new URL(e.mirrorURL),s=encodeURIComponent(r.host+r.pathname.replace(/\\/$/,\"\")),a=GP.default.join(e.cachePath,s);Vvt(a),Jvt({cachePath:a,mirrorURL:e.mirrorURL,tufRootPath:e.rootPath,forceInit:e.forceInit}),this.updater=Kvt({mirrorURL:e.mirrorURL,cachePath:a,forceCache:e.forceCache,retry:e.retry,timeout:e.timeout})}async refresh(){return this.updater.refresh()}getTarget(e){return(0,Yvt.readTarget)(this.updater,e)}};y1.TUFClient=WJ;function Vvt(t){let e=GP.default.join(t,YJ);Rg.default.existsSync(t)||Rg.default.mkdirSync(t,{recursive:!0}),Rg.default.existsSync(e)||Rg.default.mkdirSync(e)}function Jvt({cachePath:t,mirrorURL:e,tufRootPath:r,forceInit:s}){let a=GP.default.join(t,\"root.json\");if(!Rg.default.existsSync(a)||s)if(r)Rg.default.copyFileSync(r,a);else{let c=zbe()[e];if(!c)throw new Wvt.TUFError({code:\"TUF_INIT_CACHE_ERROR\",message:`No root.json found for mirror: ${e}`});Rg.default.writeFileSync(a,Buffer.from(c[\"root.json\"],\"base64\")),Object.entries(c.targets).forEach(([f,p])=>{Rg.default.writeFileSync(GP.default.join(t,YJ,f),Buffer.from(p,\"base64\"))})}}function Kvt(t){let e={fetchTimeout:t.timeout,fetchRetry:t.retry};return new qvt.Updater({metadataBaseUrl:t.mirrorURL,targetBaseUrl:`${t.mirrorURL}/targets`,metadataDir:t.cachePath,targetDir:GP.default.join(t.cachePath,YJ),forceCache:t.forceCache,config:e})}});var pL=_(gh=>{\"use strict\";Object.defineProperty(gh,\"__esModule\",{value:!0});gh.TUFError=gh.DEFAULT_MIRROR_URL=void 0;gh.getTrustedRoot=nSt;gh.initTUF=iSt;var zvt=mP(),Zvt=QPe(),Xvt=Xbe();gh.DEFAULT_MIRROR_URL=\"https://tuf-repo-cdn.sigstore.dev\";var $vt=\"sigstore-js\",eSt={retries:2},tSt=5e3,rSt=\"trusted_root.json\";async function nSt(t={}){let r=await $be(t).getTarget(rSt);return zvt.TrustedRoot.fromJSON(JSON.parse(r))}async function iSt(t={}){let e=$be(t);return e.refresh().then(()=>e)}function $be(t){return new Xvt.TUFClient({cachePath:t.cachePath||(0,Zvt.appDataPath)($vt),rootPath:t.rootPath,mirrorURL:t.mirrorURL||gh.DEFAULT_MIRROR_URL,retry:t.retry??eSt,timeout:t.timeout??tSt,forceCache:t.forceCache??!1,forceInit:t.forceInit??t.force??!1})}var sSt=qJ();Object.defineProperty(gh,\"TUFError\",{enumerable:!0,get:function(){return sSt.TUFError}})});var exe=_(hL=>{\"use strict\";Object.defineProperty(hL,\"__esModule\",{value:!0});hL.DSSESignatureContent=void 0;var qP=Cl(),VJ=class{constructor(e){this.env=e}compareDigest(e){return qP.crypto.bufferEqual(e,qP.crypto.digest(\"sha256\",this.env.payload))}compareSignature(e){return qP.crypto.bufferEqual(e,this.signature)}verifySignature(e){return qP.crypto.verify(this.preAuthEncoding,e,this.signature)}get signature(){return this.env.signatures.length>0?this.env.signatures[0].sig:Buffer.from(\"\")}get preAuthEncoding(){return qP.dsse.preAuthEncoding(this.env.payloadType,this.env.payload)}};hL.DSSESignatureContent=VJ});var txe=_(gL=>{\"use strict\";Object.defineProperty(gL,\"__esModule\",{value:!0});gL.MessageSignatureContent=void 0;var JJ=Cl(),KJ=class{constructor(e,r){this.signature=e.signature,this.messageDigest=e.messageDigest.digest,this.artifact=r}compareSignature(e){return JJ.crypto.bufferEqual(e,this.signature)}compareDigest(e){return JJ.crypto.bufferEqual(e,this.messageDigest)}verifySignature(e){return JJ.crypto.verify(this.artifact,e,this.signature)}};gL.MessageSignatureContent=KJ});var nxe=_(dL=>{\"use strict\";Object.defineProperty(dL,\"__esModule\",{value:!0});dL.toSignedEntity=lSt;dL.signatureContent=rxe;var zJ=Cl(),oSt=exe(),aSt=txe();function lSt(t,e){let{tlogEntries:r,timestampVerificationData:s}=t.verificationMaterial,a=[];for(let n of r)a.push({$case:\"transparency-log\",tlogEntry:n});for(let n of s?.rfc3161Timestamps??[])a.push({$case:\"timestamp-authority\",timestamp:zJ.RFC3161Timestamp.parse(n.signedTimestamp)});return{signature:rxe(t,e),key:cSt(t),tlogEntries:r,timestamps:a}}function rxe(t,e){switch(t.content.$case){case\"dsseEnvelope\":return new oSt.DSSESignatureContent(t.content.dsseEnvelope);case\"messageSignature\":return new aSt.MessageSignatureContent(t.content.messageSignature,e)}}function cSt(t){switch(t.verificationMaterial.content.$case){case\"publicKey\":return{$case:\"public-key\",hint:t.verificationMaterial.content.publicKey.hint};case\"x509CertificateChain\":return{$case:\"certificate\",certificate:zJ.X509Certificate.parse(t.verificationMaterial.content.x509CertificateChain.certificates[0].rawBytes)};case\"certificate\":return{$case:\"certificate\",certificate:zJ.X509Certificate.parse(t.verificationMaterial.content.certificate.rawBytes)}}}});var Eo=_(E1=>{\"use strict\";Object.defineProperty(E1,\"__esModule\",{value:!0});E1.PolicyError=E1.VerificationError=void 0;var mL=class extends Error{constructor({code:e,message:r,cause:s}){super(r),this.code=e,this.cause=s,this.name=this.constructor.name}},ZJ=class extends mL{};E1.VerificationError=ZJ;var XJ=class extends mL{};E1.PolicyError=XJ});var ixe=_(yL=>{\"use strict\";Object.defineProperty(yL,\"__esModule\",{value:!0});yL.filterCertAuthorities=uSt;yL.filterTLogAuthorities=fSt;function uSt(t,e){return t.filter(r=>r.validFor.start<=e.start&&r.validFor.end>=e.end)}function fSt(t,e){return t.filter(r=>e.logID&&!r.logID.equals(e.logID)?!1:r.validFor.start<=e.targetDate&&e.targetDate<=r.validFor.end)}});var py=_(Ay=>{\"use strict\";Object.defineProperty(Ay,\"__esModule\",{value:!0});Ay.filterTLogAuthorities=Ay.filterCertAuthorities=void 0;Ay.toTrustMaterial=pSt;var $J=Cl(),WP=mP(),ASt=Eo(),eK=new Date(0),tK=new Date(864e13),axe=ixe();Object.defineProperty(Ay,\"filterCertAuthorities\",{enumerable:!0,get:function(){return axe.filterCertAuthorities}});Object.defineProperty(Ay,\"filterTLogAuthorities\",{enumerable:!0,get:function(){return axe.filterTLogAuthorities}});function pSt(t,e){let r=typeof e==\"function\"?e:hSt(e);return{certificateAuthorities:t.certificateAuthorities.map(oxe),timestampAuthorities:t.timestampAuthorities.map(oxe),tlogs:t.tlogs.map(sxe),ctlogs:t.ctlogs.map(sxe),publicKey:r}}function sxe(t){let e=t.publicKey.keyDetails,r=e===WP.PublicKeyDetails.PKCS1_RSA_PKCS1V5||e===WP.PublicKeyDetails.PKIX_RSA_PKCS1V5||e===WP.PublicKeyDetails.PKIX_RSA_PKCS1V15_2048_SHA256||e===WP.PublicKeyDetails.PKIX_RSA_PKCS1V15_3072_SHA256||e===WP.PublicKeyDetails.PKIX_RSA_PKCS1V15_4096_SHA256?\"pkcs1\":\"spki\";return{logID:t.logId.keyId,publicKey:$J.crypto.createPublicKey(t.publicKey.rawBytes,r),validFor:{start:t.publicKey.validFor?.start||eK,end:t.publicKey.validFor?.end||tK}}}function oxe(t){return{certChain:t.certChain.certificates.map(e=>$J.X509Certificate.parse(e.rawBytes)),validFor:{start:t.validFor?.start||eK,end:t.validFor?.end||tK}}}function hSt(t){return e=>{let r=(t||{})[e];if(!r)throw new ASt.VerificationError({code:\"PUBLIC_KEY_ERROR\",message:`key not found: ${e}`});return{publicKey:$J.crypto.createPublicKey(r.rawBytes),validFor:s=>(r.validFor?.start||eK)<=s&&(r.validFor?.end||tK)>=s}}}});var rK=_(YP=>{\"use strict\";Object.defineProperty(YP,\"__esModule\",{value:!0});YP.CertificateChainVerifier=void 0;YP.verifyCertificateChain=dSt;var hy=Eo(),gSt=py();function dSt(t,e){let r=(0,gSt.filterCertAuthorities)(e,{start:t.notBefore,end:t.notAfter}),s;for(let a of r)try{return new EL({trustedCerts:a.certChain,untrustedCert:t}).verify()}catch(n){s=n}throw new hy.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"Failed to verify certificate chain\",cause:s})}var EL=class{constructor(e){this.untrustedCert=e.untrustedCert,this.trustedCerts=e.trustedCerts,this.localCerts=mSt([...e.trustedCerts,e.untrustedCert])}verify(){let e=this.sort();return this.checkPath(e),e}sort(){let e=this.untrustedCert,r=this.buildPaths(e);if(r=r.filter(a=>a.some(n=>this.trustedCerts.includes(n))),r.length===0)throw new hy.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"no trusted certificate path found\"});let s=r.reduce((a,n)=>a.length<n.length?a:n);return[e,...s].slice(0,-1)}buildPaths(e){let r=[],s=this.findIssuer(e);if(s.length===0)throw new hy.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"no valid certificate path found\"});for(let a=0;a<s.length;a++){let n=s[a];if(n.equals(e)){r.push([e]);continue}let c=this.buildPaths(n);for(let f=0;f<c.length;f++)r.push([n,...c[f]])}return r}findIssuer(e){let r=[],s;return e.subject.equals(e.issuer)&&e.verify()?[e]:(e.extAuthorityKeyID&&(s=e.extAuthorityKeyID.keyIdentifier),this.localCerts.forEach(a=>{if(s&&a.extSubjectKeyID){a.extSubjectKeyID.keyIdentifier.equals(s)&&r.push(a);return}a.subject.equals(e.issuer)&&r.push(a)}),r=r.filter(a=>{try{return e.verify(a)}catch{return!1}}),r)}checkPath(e){if(e.length<1)throw new hy.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"certificate chain must contain at least one certificate\"});if(!e.slice(1).every(s=>s.isCA))throw new hy.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"intermediate certificate is not a CA\"});for(let s=e.length-2;s>=0;s--)if(!e[s].issuer.equals(e[s+1].subject))throw new hy.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"incorrect certificate name chaining\"});for(let s=0;s<e.length;s++){let a=e[s];if(a.extBasicConstraints?.isCA){let n=a.extBasicConstraints.pathLenConstraint;if(n!==void 0&&n<s-1)throw new hy.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"path length constraint exceeded\"})}}}};YP.CertificateChainVerifier=EL;function mSt(t){for(let e=0;e<t.length;e++)for(let r=e+1;r<t.length;r++)t[e].equals(t[r])&&(t.splice(r,1),r--);return t}});var lxe=_(nK=>{\"use strict\";Object.defineProperty(nK,\"__esModule\",{value:!0});nK.verifySCTs=ISt;var IL=Cl(),ySt=Eo(),ESt=py();function ISt(t,e,r){let s,a=t.clone();for(let p=0;p<a.extensions.length;p++){let h=a.extensions[p];if(h.subs[0].toOID()===IL.EXTENSION_OID_SCT){s=new IL.X509SCTExtension(h),a.extensions.splice(p,1);break}}if(!s)return[];if(s.signedCertificateTimestamps.length===0)return[];let n=new IL.ByteStream,c=IL.crypto.digest(\"sha256\",e.publicKey);n.appendView(c);let f=a.tbsCertificate.toDER();return n.appendUint24(f.length),n.appendView(f),s.signedCertificateTimestamps.map(p=>{if(!(0,ESt.filterTLogAuthorities)(r,{logID:p.logID,targetDate:p.datetime}).some(C=>p.verify(n.buffer,C.publicKey)))throw new ySt.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"SCT verification failed\"});return p.logID})}});var uxe=_(CL=>{\"use strict\";Object.defineProperty(CL,\"__esModule\",{value:!0});CL.verifyPublicKey=DSt;CL.verifyCertificate=PSt;var CSt=Cl(),cxe=Eo(),wSt=rK(),BSt=lxe(),vSt=\"1.3.6.1.4.1.57264.1.1\",SSt=\"1.3.6.1.4.1.57264.1.8\";function DSt(t,e,r){let s=r.publicKey(t);return e.forEach(a=>{if(!s.validFor(a))throw new cxe.VerificationError({code:\"PUBLIC_KEY_ERROR\",message:`Public key is not valid for timestamp: ${a.toISOString()}`})}),{key:s.publicKey}}function PSt(t,e,r){let s=(0,wSt.verifyCertificateChain)(t,r.certificateAuthorities);if(!e.every(n=>s.every(c=>c.validForDate(n))))throw new cxe.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"certificate is not valid or expired at the specified date\"});return{scts:(0,BSt.verifySCTs)(s[0],s[1],r.ctlogs),signer:bSt(s[0])}}function bSt(t){let e,r=t.extension(SSt);r?e=r.valueObj.subs?.[0]?.value.toString(\"ascii\"):e=t.extension(vSt)?.value.toString(\"ascii\");let s={extensions:{issuer:e},subjectAlternativeName:t.subjectAltName};return{key:CSt.crypto.createPublicKey(t.publicKey),identity:s}}});var Axe=_(wL=>{\"use strict\";Object.defineProperty(wL,\"__esModule\",{value:!0});wL.verifySubjectAlternativeName=xSt;wL.verifyExtensions=kSt;var fxe=Eo();function xSt(t,e){if(e===void 0||!e.match(t))throw new fxe.PolicyError({code:\"UNTRUSTED_SIGNER_ERROR\",message:`certificate identity error - expected ${t}, got ${e}`})}function kSt(t,e={}){let r;for(r in t)if(e[r]!==t[r])throw new fxe.PolicyError({code:\"UNTRUSTED_SIGNER_ERROR\",message:`invalid certificate extension - expected ${r}=${t[r]}, got ${r}=${e[r]}`})}});var pxe=_(lK=>{\"use strict\";Object.defineProperty(lK,\"__esModule\",{value:!0});lK.verifyCheckpoint=TSt;var sK=Cl(),I1=Eo(),QSt=py(),iK=`\n\n`,RSt=/\\u2014 (\\S+) (\\S+)\\n/g;function TSt(t,e){let r=(0,QSt.filterTLogAuthorities)(e,{targetDate:new Date(Number(t.integratedTime)*1e3)}),s=t.inclusionProof,a=oK.fromString(s.checkpoint.envelope),n=aK.fromString(a.note);if(!FSt(a,r))throw new I1.VerificationError({code:\"TLOG_INCLUSION_PROOF_ERROR\",message:\"invalid checkpoint signature\"});if(!sK.crypto.bufferEqual(n.logHash,s.rootHash))throw new I1.VerificationError({code:\"TLOG_INCLUSION_PROOF_ERROR\",message:\"root hash mismatch\"})}function FSt(t,e){let r=Buffer.from(t.note,\"utf-8\");return t.signatures.every(s=>{let a=e.find(n=>sK.crypto.bufferEqual(n.logID.subarray(0,4),s.keyHint));return a?sK.crypto.verify(r,a.publicKey,s.signature):!1})}var oK=class t{constructor(e,r){this.note=e,this.signatures=r}static fromString(e){if(!e.includes(iK))throw new I1.VerificationError({code:\"TLOG_INCLUSION_PROOF_ERROR\",message:\"missing checkpoint separator\"});let r=e.indexOf(iK),s=e.slice(0,r+1),n=e.slice(r+iK.length).matchAll(RSt),c=Array.from(n,f=>{let[,p,h]=f,E=Buffer.from(h,\"base64\");if(E.length<5)throw new I1.VerificationError({code:\"TLOG_INCLUSION_PROOF_ERROR\",message:\"malformed checkpoint signature\"});return{name:p,keyHint:E.subarray(0,4),signature:E.subarray(4)}});if(c.length===0)throw new I1.VerificationError({code:\"TLOG_INCLUSION_PROOF_ERROR\",message:\"no signatures found in checkpoint\"});return new t(s,c)}},aK=class t{constructor(e,r,s,a){this.origin=e,this.logSize=r,this.logHash=s,this.rest=a}static fromString(e){let r=e.trimEnd().split(`\n`);if(r.length<3)throw new I1.VerificationError({code:\"TLOG_INCLUSION_PROOF_ERROR\",message:\"too few lines in checkpoint header\"});let s=r[0],a=BigInt(r[1]),n=Buffer.from(r[2],\"base64\"),c=r.slice(3);return new t(s,a,n,c)}}});var hxe=_(AK=>{\"use strict\";Object.defineProperty(AK,\"__esModule\",{value:!0});AK.verifyMerkleInclusion=LSt;var fK=Cl(),cK=Eo(),NSt=Buffer.from([0]),OSt=Buffer.from([1]);function LSt(t){let e=t.inclusionProof,r=BigInt(e.logIndex),s=BigInt(e.treeSize);if(r<0n||r>=s)throw new cK.VerificationError({code:\"TLOG_INCLUSION_PROOF_ERROR\",message:`invalid index: ${r}`});let{inner:a,border:n}=MSt(r,s);if(e.hashes.length!==a+n)throw new cK.VerificationError({code:\"TLOG_INCLUSION_PROOF_ERROR\",message:\"invalid hash count\"});let c=e.hashes.slice(0,a),f=e.hashes.slice(a),p=qSt(t.canonicalizedBody),h=_St(USt(p,c,r),f);if(!fK.crypto.bufferEqual(h,e.rootHash))throw new cK.VerificationError({code:\"TLOG_INCLUSION_PROOF_ERROR\",message:\"calculated root hash does not match inclusion proof\"})}function MSt(t,e){let r=HSt(t,e),s=jSt(t>>BigInt(r));return{inner:r,border:s}}function USt(t,e,r){return e.reduce((s,a,n)=>r>>BigInt(n)&BigInt(1)?uK(a,s):uK(s,a),t)}function _St(t,e){return e.reduce((r,s)=>uK(s,r),t)}function HSt(t,e){return GSt(t^e-BigInt(1))}function jSt(t){return t.toString(2).split(\"1\").length-1}function GSt(t){return t===0n?0:t.toString(2).length}function uK(t,e){return fK.crypto.digest(\"sha256\",OSt,t,e)}function qSt(t){return fK.crypto.digest(\"sha256\",NSt,t)}});var dxe=_(pK=>{\"use strict\";Object.defineProperty(pK,\"__esModule\",{value:!0});pK.verifyTLogSET=VSt;var gxe=Cl(),WSt=Eo(),YSt=py();function VSt(t,e){if(!(0,YSt.filterTLogAuthorities)(e,{logID:t.logId.keyId,targetDate:new Date(Number(t.integratedTime)*1e3)}).some(a=>{let n=JSt(t),c=Buffer.from(gxe.json.canonicalize(n),\"utf8\"),f=t.inclusionPromise.signedEntryTimestamp;return gxe.crypto.verify(c,a.publicKey,f)}))throw new WSt.VerificationError({code:\"TLOG_INCLUSION_PROMISE_ERROR\",message:\"inclusion promise could not be verified\"})}function JSt(t){let{integratedTime:e,logIndex:r,logId:s,canonicalizedBody:a}=t;return{body:a.toString(\"base64\"),integratedTime:Number(e),logIndex:Number(r),logID:s.keyId.toString(\"hex\")}}});var mxe=_(dK=>{\"use strict\";Object.defineProperty(dK,\"__esModule\",{value:!0});dK.verifyRFC3161Timestamp=ZSt;var hK=Cl(),gK=Eo(),KSt=rK(),zSt=py();function ZSt(t,e,r){let s=t.signingTime;if(r=(0,zSt.filterCertAuthorities)(r,{start:s,end:s}),r=$St(r,{serialNumber:t.signerSerialNumber,issuer:t.signerIssuer}),!r.some(n=>{try{return XSt(t,e,n),!0}catch{return!1}}))throw new gK.VerificationError({code:\"TIMESTAMP_ERROR\",message:\"timestamp could not be verified\"})}function XSt(t,e,r){let[s,...a]=r.certChain,n=hK.crypto.createPublicKey(s.publicKey),c=t.signingTime;try{new KSt.CertificateChainVerifier({untrustedCert:s,trustedCerts:a}).verify()}catch{throw new gK.VerificationError({code:\"TIMESTAMP_ERROR\",message:\"invalid certificate chain\"})}if(!r.certChain.every(p=>p.validForDate(c)))throw new gK.VerificationError({code:\"TIMESTAMP_ERROR\",message:\"timestamp was signed with an expired certificate\"});t.verify(e,n)}function $St(t,e){return t.filter(r=>r.certChain.length>0&&hK.crypto.bufferEqual(r.certChain[0].serialNumber,e.serialNumber)&&hK.crypto.bufferEqual(r.certChain[0].issuer,e.issuer))}});var yxe=_(BL=>{\"use strict\";Object.defineProperty(BL,\"__esModule\",{value:!0});BL.verifyTSATimestamp=sDt;BL.verifyTLogTimestamp=oDt;var eDt=Eo(),tDt=pxe(),rDt=hxe(),nDt=dxe(),iDt=mxe();function sDt(t,e,r){return(0,iDt.verifyRFC3161Timestamp)(t,e,r),{type:\"timestamp-authority\",logID:t.signerSerialNumber,timestamp:t.signingTime}}function oDt(t,e){let r=!1;if(aDt(t)&&((0,nDt.verifyTLogSET)(t,e),r=!0),lDt(t)&&((0,rDt.verifyMerkleInclusion)(t),(0,tDt.verifyCheckpoint)(t,e),r=!0),!r)throw new eDt.VerificationError({code:\"TLOG_MISSING_INCLUSION_ERROR\",message:\"inclusion could not be verified\"});return{type:\"transparency-log\",logID:t.logId.keyId,timestamp:new Date(Number(t.integratedTime)*1e3)}}function aDt(t){return t.inclusionPromise!==void 0}function lDt(t){return t.inclusionProof!==void 0}});var Exe=_(mK=>{\"use strict\";Object.defineProperty(mK,\"__esModule\",{value:!0});mK.verifyDSSETLogBody=cDt;var vL=Eo();function cDt(t,e){switch(t.apiVersion){case\"0.0.1\":return uDt(t,e);default:throw new vL.VerificationError({code:\"TLOG_BODY_ERROR\",message:`unsupported dsse version: ${t.apiVersion}`})}}function uDt(t,e){if(t.spec.signatures?.length!==1)throw new vL.VerificationError({code:\"TLOG_BODY_ERROR\",message:\"signature count mismatch\"});let r=t.spec.signatures[0].signature;if(!e.compareSignature(Buffer.from(r,\"base64\")))throw new vL.VerificationError({code:\"TLOG_BODY_ERROR\",message:\"tlog entry signature mismatch\"});let s=t.spec.payloadHash?.value||\"\";if(!e.compareDigest(Buffer.from(s,\"hex\")))throw new vL.VerificationError({code:\"TLOG_BODY_ERROR\",message:\"DSSE payload hash mismatch\"})}});var Ixe=_(EK=>{\"use strict\";Object.defineProperty(EK,\"__esModule\",{value:!0});EK.verifyHashedRekordTLogBody=fDt;var yK=Eo();function fDt(t,e){switch(t.apiVersion){case\"0.0.1\":return ADt(t,e);default:throw new yK.VerificationError({code:\"TLOG_BODY_ERROR\",message:`unsupported hashedrekord version: ${t.apiVersion}`})}}function ADt(t,e){let r=t.spec.signature.content||\"\";if(!e.compareSignature(Buffer.from(r,\"base64\")))throw new yK.VerificationError({code:\"TLOG_BODY_ERROR\",message:\"signature mismatch\"});let s=t.spec.data.hash?.value||\"\";if(!e.compareDigest(Buffer.from(s,\"hex\")))throw new yK.VerificationError({code:\"TLOG_BODY_ERROR\",message:\"digest mismatch\"})}});var Cxe=_(IK=>{\"use strict\";Object.defineProperty(IK,\"__esModule\",{value:!0});IK.verifyIntotoTLogBody=pDt;var SL=Eo();function pDt(t,e){switch(t.apiVersion){case\"0.0.2\":return hDt(t,e);default:throw new SL.VerificationError({code:\"TLOG_BODY_ERROR\",message:`unsupported intoto version: ${t.apiVersion}`})}}function hDt(t,e){if(t.spec.content.envelope.signatures?.length!==1)throw new SL.VerificationError({code:\"TLOG_BODY_ERROR\",message:\"signature count mismatch\"});let r=gDt(t.spec.content.envelope.signatures[0].sig);if(!e.compareSignature(Buffer.from(r,\"base64\")))throw new SL.VerificationError({code:\"TLOG_BODY_ERROR\",message:\"tlog entry signature mismatch\"});let s=t.spec.content.payloadHash?.value||\"\";if(!e.compareDigest(Buffer.from(s,\"hex\")))throw new SL.VerificationError({code:\"TLOG_BODY_ERROR\",message:\"DSSE payload hash mismatch\"})}function gDt(t){return Buffer.from(t,\"base64\").toString(\"utf-8\")}});var Bxe=_(CK=>{\"use strict\";Object.defineProperty(CK,\"__esModule\",{value:!0});CK.verifyTLogBody=EDt;var wxe=Eo(),dDt=Exe(),mDt=Ixe(),yDt=Cxe();function EDt(t,e){let{kind:r,version:s}=t.kindVersion,a=JSON.parse(t.canonicalizedBody.toString(\"utf8\"));if(r!==a.kind||s!==a.apiVersion)throw new wxe.VerificationError({code:\"TLOG_BODY_ERROR\",message:`kind/version mismatch - expected: ${r}/${s}, received: ${a.kind}/${a.apiVersion}`});switch(a.kind){case\"dsse\":return(0,dDt.verifyDSSETLogBody)(a,e);case\"intoto\":return(0,yDt.verifyIntotoTLogBody)(a,e);case\"hashedrekord\":return(0,mDt.verifyHashedRekordTLogBody)(a,e);default:throw new wxe.VerificationError({code:\"TLOG_BODY_ERROR\",message:`unsupported kind: ${r}`})}}});var bxe=_(DL=>{\"use strict\";Object.defineProperty(DL,\"__esModule\",{value:!0});DL.Verifier=void 0;var IDt=Ie(\"util\"),C1=Eo(),vxe=uxe(),Sxe=Axe(),Dxe=yxe(),CDt=Bxe(),wK=class{constructor(e,r={}){this.trustMaterial=e,this.options={ctlogThreshold:r.ctlogThreshold??1,tlogThreshold:r.tlogThreshold??1,tsaThreshold:r.tsaThreshold??0}}verify(e,r){let s=this.verifyTimestamps(e),a=this.verifySigningKey(e,s);return this.verifyTLogs(e),this.verifySignature(e,a),r&&this.verifyPolicy(r,a.identity||{}),a}verifyTimestamps(e){let r=0,s=0,a=e.timestamps.map(n=>{switch(n.$case){case\"timestamp-authority\":return s++,(0,Dxe.verifyTSATimestamp)(n.timestamp,e.signature.signature,this.trustMaterial.timestampAuthorities);case\"transparency-log\":return r++,(0,Dxe.verifyTLogTimestamp)(n.tlogEntry,this.trustMaterial.tlogs)}});if(Pxe(a))throw new C1.VerificationError({code:\"TIMESTAMP_ERROR\",message:\"duplicate timestamp\"});if(r<this.options.tlogThreshold)throw new C1.VerificationError({code:\"TIMESTAMP_ERROR\",message:`expected ${this.options.tlogThreshold} tlog timestamps, got ${r}`});if(s<this.options.tsaThreshold)throw new C1.VerificationError({code:\"TIMESTAMP_ERROR\",message:`expected ${this.options.tsaThreshold} tsa timestamps, got ${s}`});return a.map(n=>n.timestamp)}verifySigningKey({key:e},r){switch(e.$case){case\"public-key\":return(0,vxe.verifyPublicKey)(e.hint,r,this.trustMaterial);case\"certificate\":{let s=(0,vxe.verifyCertificate)(e.certificate,r,this.trustMaterial);if(Pxe(s.scts))throw new C1.VerificationError({code:\"CERTIFICATE_ERROR\",message:\"duplicate SCT\"});if(s.scts.length<this.options.ctlogThreshold)throw new C1.VerificationError({code:\"CERTIFICATE_ERROR\",message:`expected ${this.options.ctlogThreshold} SCTs, got ${s.scts.length}`});return s.signer}}}verifyTLogs({signature:e,tlogEntries:r}){r.forEach(s=>(0,CDt.verifyTLogBody)(s,e))}verifySignature(e,r){if(!e.signature.verifySignature(r.key))throw new C1.VerificationError({code:\"SIGNATURE_ERROR\",message:\"signature verification failed\"})}verifyPolicy(e,r){e.subjectAlternativeName&&(0,Sxe.verifySubjectAlternativeName)(e.subjectAlternativeName,r.subjectAlternativeName),e.extensions&&(0,Sxe.verifyExtensions)(e.extensions,r.extensions)}};DL.Verifier=wK;function Pxe(t){for(let e=0;e<t.length;e++)for(let r=e+1;r<t.length;r++)if((0,IDt.isDeepStrictEqual)(t[e],t[r]))return!0;return!1}});var PL=_(iu=>{\"use strict\";Object.defineProperty(iu,\"__esModule\",{value:!0});iu.Verifier=iu.toTrustMaterial=iu.VerificationError=iu.PolicyError=iu.toSignedEntity=void 0;var wDt=nxe();Object.defineProperty(iu,\"toSignedEntity\",{enumerable:!0,get:function(){return wDt.toSignedEntity}});var xxe=Eo();Object.defineProperty(iu,\"PolicyError\",{enumerable:!0,get:function(){return xxe.PolicyError}});Object.defineProperty(iu,\"VerificationError\",{enumerable:!0,get:function(){return xxe.VerificationError}});var BDt=py();Object.defineProperty(iu,\"toTrustMaterial\",{enumerable:!0,get:function(){return BDt.toTrustMaterial}});var vDt=bxe();Object.defineProperty(iu,\"Verifier\",{enumerable:!0,get:function(){return vDt.Verifier}})});var kxe=_(Fa=>{\"use strict\";Object.defineProperty(Fa,\"__esModule\",{value:!0});Fa.DEFAULT_TIMEOUT=Fa.DEFAULT_RETRY=void 0;Fa.createBundleBuilder=PDt;Fa.createKeyFinder=bDt;Fa.createVerificationPolicy=xDt;var SDt=Cl(),w1=F7(),DDt=PL();Fa.DEFAULT_RETRY={retries:2};Fa.DEFAULT_TIMEOUT=5e3;function PDt(t,e){let r={signer:kDt(e),witnesses:RDt(e)};switch(t){case\"messageSignature\":return new w1.MessageSignatureBundleBuilder(r);case\"dsseEnvelope\":return new w1.DSSEBundleBuilder({...r,certificateChain:e.legacyCompatibility})}}function bDt(t){return e=>{let r=t(e);if(!r)throw new DDt.VerificationError({code:\"PUBLIC_KEY_ERROR\",message:`key not found: ${e}`});return{publicKey:SDt.crypto.createPublicKey(r),validFor:()=>!0}}}function xDt(t){let e={},r=t.certificateIdentityEmail||t.certificateIdentityURI;return r&&(e.subjectAlternativeName=r),t.certificateIssuer&&(e.extensions={issuer:t.certificateIssuer}),e}function kDt(t){return new w1.FulcioSigner({fulcioBaseURL:t.fulcioURL,identityProvider:t.identityProvider||QDt(t),retry:t.retry??Fa.DEFAULT_RETRY,timeout:t.timeout??Fa.DEFAULT_TIMEOUT})}function QDt(t){let e=t.identityToken;return e?{getToken:()=>Promise.resolve(e)}:new w1.CIContextProvider(\"sigstore\")}function RDt(t){let e=[];return TDt(t)&&e.push(new w1.RekorWitness({rekorBaseURL:t.rekorURL,entryType:t.legacyCompatibility?\"intoto\":\"dsse\",fetchOnConflict:!1,retry:t.retry??Fa.DEFAULT_RETRY,timeout:t.timeout??Fa.DEFAULT_TIMEOUT})),FDt(t)&&e.push(new w1.TSAWitness({tsaBaseURL:t.tsaServerURL,retry:t.retry??Fa.DEFAULT_RETRY,timeout:t.timeout??Fa.DEFAULT_TIMEOUT})),e}function TDt(t){return t.tlogUpload!==!1}function FDt(t){return t.tsaServerURL!==void 0}});var Txe=_(su=>{\"use strict\";var NDt=su&&su.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||(\"get\"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),ODt=su&&su.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Qxe=su&&su.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a<s.length;a++)s[a]!==\"default\"&&NDt(r,e,s[a]);return ODt(r,e),r}}();Object.defineProperty(su,\"__esModule\",{value:!0});su.sign=MDt;su.attest=UDt;su.verify=_Dt;su.createVerifier=Rxe;var vK=EP(),LDt=Qxe(pL()),BK=PL(),B1=Qxe(kxe());async function MDt(t,e={}){let s=await B1.createBundleBuilder(\"messageSignature\",e).create({data:t});return(0,vK.bundleToJSON)(s)}async function UDt(t,e,r={}){let a=await B1.createBundleBuilder(\"dsseEnvelope\",r).create({data:t,type:e});return(0,vK.bundleToJSON)(a)}async function _Dt(t,e,r){let s;return Buffer.isBuffer(e)?s=e:r=e,Rxe(r).then(a=>a.verify(t,s))}async function Rxe(t={}){let e=await LDt.getTrustedRoot({mirrorURL:t.tufMirrorURL,rootPath:t.tufRootPath,cachePath:t.tufCachePath,forceCache:t.tufForceCache,retry:t.retry??B1.DEFAULT_RETRY,timeout:t.timeout??B1.DEFAULT_TIMEOUT}),r=t.keySelector?B1.createKeyFinder(t.keySelector):void 0,s=(0,BK.toTrustMaterial)(e,r),a={ctlogThreshold:t.ctLogThreshold,tlogThreshold:t.tlogThreshold},n=new BK.Verifier(s,a),c=B1.createVerificationPolicy(t);return{verify:(f,p)=>{let h=(0,vK.bundleFromJSON)(f),E=(0,BK.toSignedEntity)(h,p);n.verify(E,c)}}}});var Nxe=_(Ni=>{\"use strict\";Object.defineProperty(Ni,\"__esModule\",{value:!0});Ni.verify=Ni.sign=Ni.createVerifier=Ni.attest=Ni.VerificationError=Ni.PolicyError=Ni.TUFError=Ni.InternalError=Ni.DEFAULT_REKOR_URL=Ni.DEFAULT_FULCIO_URL=Ni.ValidationError=void 0;var HDt=EP();Object.defineProperty(Ni,\"ValidationError\",{enumerable:!0,get:function(){return HDt.ValidationError}});var SK=F7();Object.defineProperty(Ni,\"DEFAULT_FULCIO_URL\",{enumerable:!0,get:function(){return SK.DEFAULT_FULCIO_URL}});Object.defineProperty(Ni,\"DEFAULT_REKOR_URL\",{enumerable:!0,get:function(){return SK.DEFAULT_REKOR_URL}});Object.defineProperty(Ni,\"InternalError\",{enumerable:!0,get:function(){return SK.InternalError}});var jDt=pL();Object.defineProperty(Ni,\"TUFError\",{enumerable:!0,get:function(){return jDt.TUFError}});var Fxe=PL();Object.defineProperty(Ni,\"PolicyError\",{enumerable:!0,get:function(){return Fxe.PolicyError}});Object.defineProperty(Ni,\"VerificationError\",{enumerable:!0,get:function(){return Fxe.VerificationError}});var bL=Txe();Object.defineProperty(Ni,\"attest\",{enumerable:!0,get:function(){return bL.attest}});Object.defineProperty(Ni,\"createVerifier\",{enumerable:!0,get:function(){return bL.createVerifier}});Object.defineProperty(Ni,\"sign\",{enumerable:!0,get:function(){return bL.sign}});Object.defineProperty(Ni,\"verify\",{enumerable:!0,get:function(){return bL.verify}})});Dt();Ge();Dt();var pke=Ie(\"child_process\"),hke=ut(Fd());Yt();var $I=new Map([]);var Gv={};Vt(Gv,{BaseCommand:()=>ft,WorkspaceRequiredError:()=>ar,getCli:()=>Bde,getDynamicLibs:()=>wde,getPluginConfiguration:()=>tC,openWorkspace:()=>eC,pluginCommands:()=>$I,runExit:()=>YT});Yt();var ft=class extends ot{constructor(){super(...arguments);this.cwd=ge.String(\"--cwd\",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<\"u\")throw new nt(\"The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path\");return super.validateAndExecute()}};Ge();Dt();Yt();var ar=class extends nt{constructor(e,r){let s=J.relative(e,r),a=J.join(e,Ut.fileName);super(`This command can only be run from within a workspace of your project (${s} isn't a workspace of ${a}).`)}};Ge();Dt();eA();wc();pv();Yt();var hat=ut(Ai());Ul();var wde=()=>new Map([[\"@yarnpkg/cli\",Gv],[\"@yarnpkg/core\",jv],[\"@yarnpkg/fslib\",_2],[\"@yarnpkg/libzip\",fv],[\"@yarnpkg/parsers\",J2],[\"@yarnpkg/shell\",mv],[\"clipanion\",oB],[\"semver\",hat],[\"typanion\",Ea]]);Ge();async function eC(t,e){let{project:r,workspace:s}=await Rt.find(t,e);if(!s)throw new ar(r.cwd,e);return s}Ge();Dt();eA();wc();pv();Yt();var fbt=ut(Ai());Ul();var f5={};Vt(f5,{AddCommand:()=>sC,BinCommand:()=>oC,CacheCleanCommand:()=>aC,ClipanionCommand:()=>pC,ConfigCommand:()=>fC,ConfigGetCommand:()=>lC,ConfigSetCommand:()=>cC,ConfigUnsetCommand:()=>uC,DedupeCommand:()=>AC,EntryCommand:()=>gC,ExecCommand:()=>mC,ExplainCommand:()=>IC,ExplainPeerRequirementsCommand:()=>yC,HelpCommand:()=>hC,InfoCommand:()=>CC,LinkCommand:()=>BC,NodeCommand:()=>vC,PluginCheckCommand:()=>SC,PluginImportCommand:()=>bC,PluginImportSourcesCommand:()=>xC,PluginListCommand:()=>DC,PluginRemoveCommand:()=>kC,PluginRuntimeCommand:()=>QC,RebuildCommand:()=>RC,RemoveCommand:()=>TC,RunCommand:()=>NC,RunIndexCommand:()=>FC,SetResolutionCommand:()=>OC,SetVersionCommand:()=>EC,SetVersionSourcesCommand:()=>PC,UnlinkCommand:()=>LC,UpCommand:()=>MC,VersionCommand:()=>dC,WhyCommand:()=>UC,WorkspaceCommand:()=>qC,WorkspacesListCommand:()=>GC,YarnCommand:()=>wC,dedupeUtils:()=>tF,default:()=>bct,suggestUtils:()=>Zu});var Yye=ut(Fd());Ge();Ge();Ge();Yt();var uye=ut(Vv());Ul();var Zu={};Vt(Zu,{Modifier:()=>jq,Strategy:()=>$T,Target:()=>Jv,WorkspaceModifier:()=>sye,applyModifier:()=>Flt,extractDescriptorFromPath:()=>Gq,extractRangeModifier:()=>oye,fetchDescriptorFrom:()=>qq,findProjectDescriptors:()=>cye,getModifier:()=>Kv,getSuggestedDescriptors:()=>zv,makeWorkspaceDescriptor:()=>lye,toWorkspaceModifier:()=>aye});Ge();Ge();Dt();var Hq=ut(Ai()),Rlt=\"workspace:\",Jv=(s=>(s.REGULAR=\"dependencies\",s.DEVELOPMENT=\"devDependencies\",s.PEER=\"peerDependencies\",s))(Jv||{}),jq=(s=>(s.CARET=\"^\",s.TILDE=\"~\",s.EXACT=\"\",s))(jq||{}),sye=(s=>(s.CARET=\"^\",s.TILDE=\"~\",s.EXACT=\"*\",s))(sye||{}),$T=(n=>(n.KEEP=\"keep\",n.REUSE=\"reuse\",n.PROJECT=\"project\",n.LATEST=\"latest\",n.CACHE=\"cache\",n))($T||{});function Kv(t,e){return t.exact?\"\":t.caret?\"^\":t.tilde?\"~\":e.configuration.get(\"defaultSemverRangePrefix\")}var Tlt=/^([\\^~]?)[0-9]+(?:\\.[0-9]+){0,2}(?:-\\S+)?$/;function oye(t,{project:e}){let r=t.match(Tlt);return r?r[1]:e.configuration.get(\"defaultSemverRangePrefix\")}function Flt(t,e){let{protocol:r,source:s,params:a,selector:n}=G.parseRange(t.range);return Hq.default.valid(n)&&(n=`${e}${t.range}`),G.makeDescriptor(t,G.makeRange({protocol:r,source:s,params:a,selector:n}))}function aye(t){switch(t){case\"^\":return\"^\";case\"~\":return\"~\";case\"\":return\"*\";default:throw new Error(`Assertion failed: Unknown modifier: \"${t}\"`)}}function lye(t,e){return G.makeDescriptor(t.anchoredDescriptor,`${Rlt}${aye(e)}`)}async function cye(t,{project:e,target:r}){let s=new Map,a=n=>{let c=s.get(n.descriptorHash);return c||s.set(n.descriptorHash,c={descriptor:n,locators:[]}),c};for(let n of e.workspaces)if(r===\"peerDependencies\"){let c=n.manifest.peerDependencies.get(t.identHash);c!==void 0&&a(c).locators.push(n.anchoredLocator)}else{let c=n.manifest.dependencies.get(t.identHash),f=n.manifest.devDependencies.get(t.identHash);r===\"devDependencies\"?f!==void 0?a(f).locators.push(n.anchoredLocator):c!==void 0&&a(c).locators.push(n.anchoredLocator):c!==void 0?a(c).locators.push(n.anchoredLocator):f!==void 0&&a(f).locators.push(n.anchoredLocator)}return s}async function Gq(t,{cwd:e,workspace:r}){return await Olt(async s=>{J.isAbsolute(t)||(t=J.relative(r.cwd,J.resolve(e,t)),t.match(/^\\.{0,2}\\//)||(t=`./${t}`));let{project:a}=r,n=await qq(G.makeIdent(null,\"archive\"),t,{project:r.project,cache:s,workspace:r});if(!n)throw new Error(\"Assertion failed: The descriptor should have been found\");let c=new ki,f=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:s,fetcher:p,report:c,resolver:f},E=f.bindDescriptor(n,r.anchoredLocator,h),C=G.convertDescriptorToLocator(E),S=await p.fetch(C,h),b=await Ut.find(S.prefixPath,{baseFs:S.packageFs});if(!b.name)throw new Error(\"Target path doesn't have a name\");return G.makeDescriptor(b.name,t)})}function Nlt(t){if(t.range===\"unknown\")return{type:\"resolve\",range:\"latest\"};if(Fr.validRange(t.range))return{type:\"fixed\",range:t.range};if(Mp.test(t.range))return{type:\"resolve\",range:t.range};let e=t.range.match(/^(?:jsr:|npm:)(.*)/);if(!e)return{type:\"fixed\",range:t.range};let[,r]=e,s=`${G.stringifyIdent(t)}@`;return r.startsWith(s)&&(r=r.slice(s.length)),Fr.validRange(r)?{type:\"fixed\",range:t.range}:Mp.test(r)?{type:\"resolve\",range:t.range}:{type:\"fixed\",range:t.range}}async function zv(t,{project:e,workspace:r,cache:s,target:a,fixed:n,modifier:c,strategies:f,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let h=!n||t.range===\"unknown\"?Nlt(t):{type:\"fixed\",range:t.range};if(h.type===\"fixed\")return{suggestions:[{descriptor:t,name:`Use ${G.prettyDescriptor(e.configuration,t)}`,reason:\"(unambiguous explicit request)\"}],rejections:[]};let E=typeof r<\"u\"&&r!==null&&r.manifest[a].get(t.identHash)||null,C=[],S=[],b=async I=>{try{await I()}catch(T){S.push(T)}};for(let I of f){if(C.length>=p)break;switch(I){case\"keep\":await b(async()=>{E&&C.push({descriptor:E,name:`Keep ${G.prettyDescriptor(e.configuration,E)}`,reason:\"(no changes)\"})});break;case\"reuse\":await b(async()=>{for(let{descriptor:T,locators:N}of(await cye(t,{project:e,target:a})).values()){if(N.length===1&&N[0].locatorHash===r.anchoredLocator.locatorHash&&f.includes(\"keep\"))continue;let U=`(originally used by ${G.prettyLocator(e.configuration,N[0])}`;U+=N.length>1?` and ${N.length-1} other${N.length>2?\"s\":\"\"})`:\")\",C.push({descriptor:T,name:`Reuse ${G.prettyDescriptor(e.configuration,T)}`,reason:U})}});break;case\"cache\":await b(async()=>{for(let T of e.storedDescriptors.values())T.identHash===t.identHash&&C.push({descriptor:T,name:`Reuse ${G.prettyDescriptor(e.configuration,T)}`,reason:\"(already used somewhere in the lockfile)\"})});break;case\"project\":await b(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let T=e.tryWorkspaceByIdent(t);if(T===null)return;let N=lye(T,c);C.push({descriptor:N,name:`Attach ${G.prettyDescriptor(e.configuration,N)}`,reason:`(local workspace at ${he.pretty(e.configuration,T.relativeCwd,he.Type.PATH)})`})});break;case\"latest\":{let T=e.configuration.get(\"enableNetwork\"),N=e.configuration.get(\"enableOfflineMode\");await b(async()=>{if(a===\"peerDependencies\")C.push({descriptor:G.makeDescriptor(t,\"*\"),name:\"Use *\",reason:\"(catch-all peer dependency pattern)\"});else if(!T&&!N)C.push({descriptor:null,name:\"Resolve from latest\",reason:he.pretty(e.configuration,\"(unavailable because enableNetwork is toggled off)\",\"grey\")});else{let U=await qq(t,h.range,{project:e,cache:s,workspace:r,modifier:c});U&&C.push({descriptor:U,name:`Use ${G.prettyDescriptor(e.configuration,U)}`,reason:`(resolved from ${N?\"the cache\":\"latest\"})`})}})}break}}return{suggestions:C.slice(0,p),rejections:S.slice(0,p)}}async function qq(t,e,{project:r,cache:s,workspace:a,preserveModifier:n=!0,modifier:c}){let f=r.configuration.normalizeDependency(G.makeDescriptor(t,e)),p=new ki,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),C={project:r,fetcher:h,cache:s,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},S={...C,resolver:E,fetchOptions:C},b=E.bindDescriptor(f,a.anchoredLocator,S),I=await E.getCandidates(b,{},S);if(I.length===0)return null;let T=I[0],{protocol:N,source:U,params:W,selector:ee}=G.parseRange(G.convertToManifestRange(T.reference));if(N===r.configuration.get(\"defaultProtocol\")&&(N=null),Hq.default.valid(ee)){let ie=ee;if(typeof c<\"u\")ee=c+ee;else if(n!==!1){let me=typeof n==\"string\"?n:f.range;ee=oye(me,{project:r})+ee}let ue=G.makeDescriptor(T,G.makeRange({protocol:N,source:U,params:W,selector:ee}));(await E.getCandidates(r.configuration.normalizeDependency(ue),{},S)).length!==1&&(ee=ie)}return G.makeDescriptor(T,G.makeRange({protocol:N,source:U,params:W,selector:ee}))}async function Olt(t){return await ce.mktempPromise(async e=>{let r=ze.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Kr(e,{configuration:r,check:!1,immutable:!1}))})}var sC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.fixed=ge.Boolean(\"-F,--fixed\",!1,{description:\"Store dependency tags as-is instead of resolving them\"});this.exact=ge.Boolean(\"-E,--exact\",!1,{description:\"Don't use any semver modifier on the resolved range\"});this.tilde=ge.Boolean(\"-T,--tilde\",!1,{description:\"Use the `~` semver modifier on the resolved range\"});this.caret=ge.Boolean(\"-C,--caret\",!1,{description:\"Use the `^` semver modifier on the resolved range\"});this.dev=ge.Boolean(\"-D,--dev\",!1,{description:\"Add a package as a dev dependency\"});this.peer=ge.Boolean(\"-P,--peer\",!1,{description:\"Add a package as a peer dependency\"});this.optional=ge.Boolean(\"-O,--optional\",!1,{description:\"Add / upgrade a package to an optional regular / peer dependency\"});this.preferDev=ge.Boolean(\"--prefer-dev\",!1,{description:\"Add / upgrade a package to a dev dependency\"});this.interactive=ge.Boolean(\"-i,--interactive\",{description:\"Reuse the specified package from other workspaces in the project\"});this.cached=ge.Boolean(\"--cached\",!1,{description:\"Reuse the highest version already used somewhere within the project\"});this.mode=ge.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:fo($l)});this.silent=ge.Boolean(\"--silent\",{hidden:!0});this.packages=ge.Rest()}static{this.paths=[[\"add\"]]}static{this.usage=ot.Usage({description:\"add dependencies to the project\",details:\"\\n      This command adds a package to the package.json for the nearest workspace.\\n\\n      - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\\n\\n      - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\\n\\n      - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\\n\\n      - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\\\"peerDependenciesMeta\\\": { \\\"<package>\\\": { \\\"optional\\\": true } }`\\n\\n      - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\\n\\n      - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\\n\\n      If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\\n\\n      If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\\n\\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\\n\\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\\n\\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\\n\\n      For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\\n    \",examples:[[\"Add a regular package to the current workspace\",\"$0 add lodash\"],[\"Add a specific version for a package to the current workspace\",\"$0 add lodash@1.2.3\"],[\"Add a package from a GitHub repository (the master branch) to the current workspace using a URL\",\"$0 add lodash@https://github.com/lodash/lodash\"],[\"Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol\",\"$0 add lodash@github:lodash/lodash\"],[\"Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)\",\"$0 add lodash@lodash/lodash\"],[\"Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)\",\"$0 add lodash-es@lodash/lodash#es\"],[\"Add a local package (gzipped tarball format) to the current workspace\",\"$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.fixed,f=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=f||r.get(\"preferReuse\"),h=Kv(this,s),E=[p?\"reuse\":void 0,\"project\",this.cached?\"cache\":void 0,\"latest\"].filter(W=>typeof W<\"u\"),C=f?1/0:1,S=W=>{let ee=G.tryParseDescriptor(W.slice(4));return ee?ee.range===\"unknown\"?G.makeDescriptor(ee,`jsr:${G.stringifyIdent(ee)}@latest`):G.makeDescriptor(ee,`jsr:${ee.range}`):null},b=await Promise.all(this.packages.map(async W=>{let ee=W.match(/^\\.{0,2}\\//)?await Gq(W,{cwd:this.context.cwd,workspace:a}):W.startsWith(\"jsr:\")?S(W):G.tryParseDescriptor(W),ie=W.match(/^(https?:|git@github)/);if(ie)throw new nt(`It seems you are trying to add a package using a ${he.pretty(r,`${ie[0]}...`,he.Type.RANGE)} url; we now require package names to be explicitly specified.\nTry running the command again with the package name prefixed: ${he.pretty(r,\"yarn add\",he.Type.CODE)} ${he.pretty(r,G.makeDescriptor(G.makeIdent(null,\"my-package\"),`${ie[0]}...`),he.Type.DESCRIPTOR)}`);if(!ee)throw new nt(`The ${he.pretty(r,W,he.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ue=Llt(a,ee,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ue.map(async me=>{let pe=await zv(ee,{project:s,workspace:a,cache:n,fixed:c,target:me,modifier:h,strategies:E,maxResults:C});return{request:ee,suggestedDescriptors:pe,target:me}}))})).then(W=>W.flat()),I=await lA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async W=>{for(let{request:ee,suggestedDescriptors:{suggestions:ie,rejections:ue}}of b)if(ie.filter(me=>me.descriptor!==null).length===0){let[me]=ue;if(typeof me>\"u\")throw new Error(\"Assertion failed: Expected an error to have been set\");s.configuration.get(\"enableNetwork\")?W.reportError(27,`${G.prettyDescriptor(r,ee)} can't be resolved to a satisfying range`):W.reportError(27,`${G.prettyDescriptor(r,ee)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),W.reportSeparator(),W.reportExceptionOnce(me)}});if(I.hasErrors())return I.exitCode();let T=!1,N=[],U=[];for(let{suggestedDescriptors:{suggestions:W},target:ee}of b){let ie,ue=W.filter(Be=>Be.descriptor!==null),le=ue[0].descriptor,me=ue.every(Be=>G.areDescriptorsEqual(Be.descriptor,le));ue.length===1||me?ie=le:(T=!0,{answer:ie}=await(0,uye.prompt)({type:\"select\",name:\"answer\",message:\"Which range do you want to use?\",choices:W.map(({descriptor:Be,name:Ce,reason:g})=>Be?{name:Ce,hint:g,descriptor:Be}:{name:Ce,hint:g,disabled:!0}),onCancel:()=>process.exit(130),result(Be){return this.find(Be,\"descriptor\")},stdin:this.context.stdin,stdout:this.context.stdout}));let pe=a.manifest[ee].get(ie.identHash);(typeof pe>\"u\"||pe.descriptorHash!==ie.descriptorHash)&&(a.manifest[ee].set(ie.identHash,ie),this.optional&&(ee===\"dependencies\"?a.manifest.ensureDependencyMeta({...ie,range:\"unknown\"}).optional=!0:ee===\"peerDependencies\"&&(a.manifest.ensurePeerDependencyMeta({...ie,range:\"unknown\"}).optional=!0)),typeof pe>\"u\"?N.push([a,ee,ie,E]):U.push([a,ee,pe,ie]))}return await r.triggerMultipleHooks(W=>W.afterWorkspaceDependencyAddition,N),await r.triggerMultipleHooks(W=>W.afterWorkspaceDependencyReplacement,U),T&&this.context.stdout.write(`\n`),await s.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function Llt(t,e,{dev:r,peer:s,preferDev:a,optional:n}){let c=t.manifest.dependencies.has(e.identHash),f=t.manifest.devDependencies.has(e.identHash),p=t.manifest.peerDependencies.has(e.identHash);if((r||s)&&c)throw new nt(`Package \"${G.prettyIdent(t.project.configuration,e)}\" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!s&&p)throw new nt(`Package \"${G.prettyIdent(t.project.configuration,e)}\" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&f)throw new nt(`Package \"${G.prettyIdent(t.project.configuration,e)}\" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!s&&p)throw new nt(`Package \"${G.prettyIdent(t.project.configuration,e)}\" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new nt(`Package \"${G.prettyIdent(t.project.configuration,e)}\" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return s&&h.push(\"peerDependencies\"),(r||a)&&h.push(\"devDependencies\"),n&&h.push(\"dependencies\"),h.length>0?h:f?[\"devDependencies\"]:p?[\"peerDependencies\"]:[\"dependencies\"]}Ge();Ge();Yt();var oC=class extends ft{constructor(){super(...arguments);this.verbose=ge.Boolean(\"-v,--verbose\",!1,{description:\"Print both the binary name and the locator of the package that provides the binary\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.name=ge.String({required:!1})}static{this.paths=[[\"bin\"]]}static{this.usage=ot.Usage({description:\"get the path to a binary script\",details:`\n      When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \\`-v,--verbose\\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.\n\n      When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.\n    `,examples:[[\"List all the available binaries\",\"$0 bin\"],[\"Print the path to a specific binary\",\"$0 bin eslint\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Rt.find(r,this.context.cwd);if(await s.restoreInstallState(),this.name){let f=(await In.getPackageAccessibleBinaries(a,{project:s})).get(this.name);if(!f)throw new nt(`Couldn't find a binary named \"${this.name}\" for package \"${G.prettyLocator(r,a)}\"`);let[,p]=f;return this.context.stdout.write(`${p}\n`),0}return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async c=>{let f=await In.getPackageAccessibleBinaries(a,{project:s}),h=Array.from(f.keys()).reduce((E,C)=>Math.max(E,C.length),0);for(let[E,[C,S]]of f)c.reportJson({name:E,source:G.stringifyIdent(C),path:S});if(this.verbose)for(let[E,[C]]of f)c.reportInfo(null,`${E.padEnd(h,\" \")}   ${G.prettyLocator(r,C)}`);else for(let E of f.keys())c.reportInfo(null,E)})).exitCode()}};Ge();Dt();Yt();var aC=class extends ft{constructor(){super(...arguments);this.mirror=ge.Boolean(\"--mirror\",!1,{description:\"Remove the global cache files instead of the local cache files\"});this.all=ge.Boolean(\"--all\",!1,{description:\"Remove both the global cache files and the local cache files of the current project\"})}static{this.paths=[[\"cache\",\"clean\"],[\"cache\",\"clear\"]]}static{this.usage=ot.Usage({description:\"remove the shared cache files\",details:`\n      This command will remove all the files from the cache.\n    `,examples:[[\"Remove all the local archives\",\"$0 cache clean\"],[\"Remove all the archives stored in the ~/.yarn directory\",\"$0 cache clean --mirror\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(!r.get(\"enableCacheClean\"))throw new nt(\"Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.\");let s=await Kr.find(r);return(await Ot.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&s.mirrorCwd!==null,c=!this.mirror;n&&(await ce.removePromise(s.mirrorCwd),await r.triggerHook(f=>f.cleanGlobalArtifacts,r)),c&&await ce.removePromise(s.cwd)})).exitCode()}};Ge();Yt();ql();var Wq=Ie(\"util\"),lC=class extends ft{constructor(){super(...arguments);this.why=ge.Boolean(\"--why\",!1,{description:\"Print the explanation for why a setting has its value\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.unsafe=ge.Boolean(\"--no-redacted\",!1,{description:\"Don't redact secrets (such as tokens) from the output\"});this.name=ge.String()}static{this.paths=[[\"config\",\"get\"]]}static{this.usage=ot.Usage({description:\"read a configuration settings\",details:`\n      This command will print a configuration setting.\n\n      Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \\`--no-redacted\\` to get the untransformed value.\n    `,examples:[[\"Print a simple configuration setting\",\"yarn config get yarnPath\"],[\"Print a complex configuration setting\",\"yarn config get packageExtensions\"],[\"Print a nested field from the configuration\",`yarn config get 'npmScopes[\"my-company\"].npmRegistryServer'`],[\"Print a token from the configuration\",\"yarn config get npmAuthToken --no-redacted\"],[\"Print a configuration setting as JSON\",\"yarn config get packageExtensions --json\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=this.name.replace(/[.[].*$/,\"\"),a=this.name.replace(/^[^.[]*/,\"\");if(typeof r.settings.get(s)>\"u\")throw new nt(`Couldn't find a configuration settings named \"${s}\"`);let c=r.getSpecial(s,{hideSecrets:!this.unsafe,getNativePaths:!0}),f=je.convertMapsToIndexableObjects(c),p=a?va(f,a):f,h=await Ot.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p==\"string\")return this.context.stdout.write(`${p}\n`),h.exitCode();Wq.inspect.styles.name=\"cyan\",this.context.stdout.write(`${(0,Wq.inspect)(p,{depth:1/0,colors:r.get(\"enableColors\"),compact:!1})}\n`)}return h.exitCode()}};Ge();Yt();ql();var Yq=Ie(\"util\"),cC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Set complex configuration settings to JSON values\"});this.home=ge.Boolean(\"-H,--home\",!1,{description:\"Update the home configuration instead of the project configuration\"});this.name=ge.String();this.value=ge.String()}static{this.paths=[[\"config\",\"set\"]]}static{this.usage=ot.Usage({description:\"change a configuration settings\",details:`\n      This command will set a configuration setting.\n\n      When used without the \\`--json\\` flag, it can only set a simple configuration setting (a string, a number, or a boolean).\n\n      When used with the \\`--json\\` flag, it can set both simple and complex configuration settings, including Arrays and Objects.\n    `,examples:[[\"Set a simple configuration setting (a string, a number, or a boolean)\",\"yarn config set initScope myScope\"],[\"Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag\",'yarn config set initScope --json \\\\\"myScope\\\\\"'],[\"Set a complex configuration setting (an Array) using the `--json` flag\",`yarn config set unsafeHttpWhitelist --json '[\"*.example.com\", \"example.com\"]'`],[\"Set a complex configuration setting (an Object) using the `--json` flag\",`yarn config set packageExtensions --json '{ \"@babel/parser@*\": { \"dependencies\": { \"@babel/types\": \"*\" } } }'`],[\"Set a nested configuration setting\",'yarn config set npmScopes.company.npmRegistryServer \"https://npm.example.com\"'],[\"Set a nested configuration setting using indexed access for non-simple keys\",`yarn config set 'npmRegistries[\"//npm.example.com\"].npmAuthToken' \"ffffffff-ffff-ffff-ffff-ffffffffffff\"`]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=()=>{if(!r.projectCwd)throw new nt(\"This command must be run from within a project folder\");return r.projectCwd},a=this.name.replace(/[.[].*$/,\"\"),n=this.name.replace(/^[^.[]*\\.?/,\"\");if(typeof r.settings.get(a)>\"u\")throw new nt(`Couldn't find a configuration settings named \"${a}\"`);if(a===\"enableStrictSettings\")throw new nt(\"This setting only affects the file it's in, and thus cannot be set from the CLI\");let f=this.json?JSON.parse(this.value):this.value;await(this.home?I=>ze.updateHomeConfiguration(I):I=>ze.updateConfiguration(s(),I))(I=>{if(n){let T=f0(I);return Jd(T,this.name,f),T}else return{...I,[a]:f}});let E=(await ze.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),C=je.convertMapsToIndexableObjects(E),S=n?va(C,n):C;return(await Ot.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async I=>{Yq.inspect.styles.name=\"cyan\",I.reportInfo(0,`Successfully set ${this.name} to ${(0,Yq.inspect)(S,{depth:1/0,colors:r.get(\"enableColors\"),compact:!1})}`)})).exitCode()}};Ge();Yt();ql();var uC=class extends ft{constructor(){super(...arguments);this.home=ge.Boolean(\"-H,--home\",!1,{description:\"Update the home configuration instead of the project configuration\"});this.name=ge.String()}static{this.paths=[[\"config\",\"unset\"]]}static{this.usage=ot.Usage({description:\"unset a configuration setting\",details:`\n      This command will unset a configuration setting.\n    `,examples:[[\"Unset a simple configuration setting\",\"yarn config unset initScope\"],[\"Unset a complex configuration setting\",\"yarn config unset packageExtensions\"],[\"Unset a nested configuration setting\",\"yarn config unset npmScopes.company.npmRegistryServer\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=()=>{if(!r.projectCwd)throw new nt(\"This command must be run from within a project folder\");return r.projectCwd},a=this.name.replace(/[.[].*$/,\"\"),n=this.name.replace(/^[^.[]*\\.?/,\"\");if(typeof r.settings.get(a)>\"u\")throw new nt(`Couldn't find a configuration settings named \"${a}\"`);let f=this.home?h=>ze.updateHomeConfiguration(h):h=>ze.updateConfiguration(s(),h);return(await Ot.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await f(C=>{if(!vB(C,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,C;let S=n?f0(C):{...C};return A0(S,this.name),S}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Ge();Dt();Yt();var eF=Ie(\"util\"),fC=class extends ft{constructor(){super(...arguments);this.noDefaults=ge.Boolean(\"--no-defaults\",!1,{description:\"Omit the default values from the display\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.verbose=ge.Boolean(\"-v,--verbose\",{hidden:!0});this.why=ge.Boolean(\"--why\",{hidden:!0});this.names=ge.Rest()}static{this.paths=[[\"config\"]]}static{this.usage=ot.Usage({description:\"display the current configuration\",details:`\n      This command prints the current active configuration settings.\n    `,examples:[[\"Print the active configuration settings\",\"$0 config\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins,{strict:!1}),s=await SI({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:\"The --verbose option is deprecated, the settings' descriptions are now always displayed\"},{option:this.why,message:\"The --why option is deprecated, the settings' sources are now always displayed\"}]);if(s!==null)return s;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,c=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async f=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)f.reportError(34,`Invalid configuration key \"${p}\" in ${h}`);f.reportSeparator()}if(this.json)for(let p of a){if(this.noDefaults&&!r.sources.has(p))continue;let h=r.settings.get(p);typeof h>\"u\"&&f.reportError(34,`No configuration key named \"${p}\"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),C=r.sources.get(p)??\"<default>\",S=C&&C[0]!==\"<\"?fe.fromPortablePath(C):C;f.reportJson({key:p,effective:E,source:S,...h})}else{let p={breakLength:1/0,colors:r.get(\"enableColors\"),maxArrayLength:2},h={},E={children:h};for(let C of a){if(this.noDefaults&&!r.sources.has(C))continue;let S=r.settings.get(C),b=r.sources.get(C)??\"<default>\",I=r.getSpecial(C,{hideSecrets:!0,getNativePaths:!0}),T={Description:{label:\"Description\",value:he.tuple(he.Type.MARKDOWN,{text:S.description,format:this.cli.format(),paragraphs:!1})},Source:{label:\"Source\",value:he.tuple(b[0]===\"<\"?he.Type.CODE:he.Type.PATH,b)}};h[C]={value:he.tuple(he.Type.CODE,C),children:T};let N=(U,W)=>{for(let[ee,ie]of W)if(ie instanceof Map){let ue={};U[ee]={children:ue},N(ue,ie)}else U[ee]={label:ee,value:he.tuple(he.Type.NO_HINT,(0,eF.inspect)(ie,p))}};I instanceof Map?N(T,I):T.Value={label:\"Value\",value:he.tuple(he.Type.NO_HINT,(0,eF.inspect)(I,p))}}a.length!==1&&(n=void 0),xs.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<\"u\"){let f=a[0],p=(0,eF.inspect)(r.getSpecial(f,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get(\"enableColors\")});this.context.stdout.write(`\n`),this.context.stdout.write(`${p}\n`)}return c.exitCode()}};Ge();Yt();Ul();var tF={};Vt(tF,{Strategy:()=>Zv,acceptedStrategies:()=>Mlt,dedupe:()=>Vq});Ge();Ge();var fye=ut(Go()),Zv=(e=>(e.HIGHEST=\"highest\",e))(Zv||{}),Mlt=new Set(Object.values(Zv)),Ult={highest:async(t,e,{resolver:r,fetcher:s,resolveOptions:a,fetchOptions:n})=>{let c=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>\"u\")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);je.getSetWithDefault(c,E.identHash).add(h)}let f=new Map(je.mapAndFilter(t.storedDescriptors.values(),p=>G.isVirtualDescriptor(p)?je.mapAndFilter.skip:[p.descriptorHash,je.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=f.get(p.descriptorHash);if(typeof h>\"u\")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>\"u\")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let C=t.originalPackages.get(E);if(typeof C>\"u\")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let S=r.getResolutionDependencies(p,a),b=Object.fromEntries(await je.allSettledSafe(Object.entries(S).map(async([ee,ie])=>{let ue=f.get(ie.descriptorHash);if(typeof ue>\"u\")throw new Error(`Assertion failed: The descriptor (${ie.descriptorHash}) should have been registered`);let le=await ue.promise;if(!le)throw new Error(\"Assertion failed: Expected the dependency to have been through the dedupe process itself\");return[ee,le.updatedPackage]})));if(e.length&&!fye.default.isMatch(G.stringifyIdent(p),e)||!r.shouldPersistResolution(C,a))return C;let I=c.get(p.identHash);if(typeof I>\"u\")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(I.size===1)return C;let T=[...I].map(ee=>{let ie=t.originalPackages.get(ee);if(typeof ie>\"u\")throw new Error(`Assertion failed: The package (${ee}) should have been registered`);return ie}),N=await r.getSatisfying(p,b,T,a),U=N.locators?.[0];if(typeof U>\"u\"||!N.sorted)return C;let W=t.originalPackages.get(U.locatorHash);if(typeof W>\"u\")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return W}).then(async S=>{let b=await t.preparePackage(S,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:C,updatedPackage:S,resolvedPackage:b})}).catch(S=>{h.reject(S)})}return[...f.values()].map(p=>p.promise)}};async function Vq(t,{strategy:e,patterns:r,cache:s,report:a}){let{configuration:n}=t,c=new ki,f=n.makeResolver(),p=n.makeFetcher(),h={cache:s,checksums:t.storedChecksums,fetcher:p,project:t,report:c,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:f,report:c,fetchOptions:h};return await a.startTimerPromise(\"Deduplication step\",async()=>{let C=Ult[e],S=await C(t,r,{resolver:f,resolveOptions:E,fetcher:p,fetchOptions:h}),b=Ao.progressViaCounter(S.length);await a.reportProgress(b);let I=0;await Promise.all(S.map(U=>U.then(W=>{if(W===null||W.currentPackage.locatorHash===W.updatedPackage.locatorHash)return;I++;let{descriptor:ee,currentPackage:ie,updatedPackage:ue}=W;a.reportInfo(0,`${G.prettyDescriptor(n,ee)} can be deduped from ${G.prettyLocator(n,ie)} to ${G.prettyLocator(n,ue)}`),a.reportJson({descriptor:G.stringifyDescriptor(ee),currentResolution:G.stringifyLocator(ie),updatedResolution:G.stringifyLocator(ue)}),t.storedResolutions.set(ee.descriptorHash,ue.locatorHash)}).finally(()=>b.tick())));let T;switch(I){case 0:T=\"No packages\";break;case 1:T=\"One package\";break;default:T=`${I} packages`}let N=he.pretty(n,e,he.Type.CODE);return a.reportInfo(0,`${T} can be deduped using the ${N} strategy`),I})}var AC=class extends ft{constructor(){super(...arguments);this.strategy=ge.String(\"-s,--strategy\",\"highest\",{description:\"The strategy to use when deduping dependencies\",validator:fo(Zv)});this.check=ge.Boolean(\"-c,--check\",!1,{description:\"Exit with exit code 1 when duplicates are found, without persisting the dependency tree\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.mode=ge.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:fo($l)});this.patterns=ge.Rest()}static{this.paths=[[\"dedupe\"]]}static{this.usage=ot.Usage({description:\"deduplicate dependencies with overlapping ranges\",details:\"\\n      Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\\n\\n      This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\\n\\n      - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\\n\\n      **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\\n\\n      If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\\n\\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\\n\\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\\n\\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\\n\\n      This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\\n\\n      ### In-depth explanation:\\n\\n      Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\\n\\n      **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\\n\\n      Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\\n\\n      **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\\n    \",examples:[[\"Dedupe all packages\",\"$0 dedupe\"],[\"Dedupe all packages using a specific strategy\",\"$0 dedupe --strategy highest\"],[\"Dedupe a specific package\",\"$0 dedupe lodash\"],[\"Dedupe all packages with the `@babel/*` scope\",\"$0 dedupe '@babel/*'\"],[\"Check for duplicates (can be used as a CI step)\",\"$0 dedupe --check\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),a=await Kr.find(r);await s.restoreInstallState({restoreResolutions:!1});let n=0,c=await Ot.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async f=>{n=await Vq(s,{strategy:this.strategy,patterns:this.patterns,cache:a,report:f})});return c.hasErrors()?c.exitCode():this.check?n?1:0:await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,mode:this.mode})}};Ge();Yt();var pC=class extends ft{static{this.paths=[[\"--clipanion=definitions\"]]}async execute(){let{plugins:e}=await ze.find(this.context.cwd,this.context.plugins),r=[];for(let c of e){let{commands:f}=c[1];if(f){let h=Ca.from(f).definitions();r.push([c[0],h])}}let s=this.cli.definitions(),a=(c,f)=>c.split(\" \").slice(1).join()===f.split(\" \").slice(1).join(),n=Aye()[\"@yarnpkg/builder\"].bundles.standard;for(let c of r){let f=c[1];for(let p of f)s.find(h=>a(h.path,p.path)).plugin={name:c[0],isDefault:n.includes(c[0])}}this.context.stdout.write(`${JSON.stringify(s,null,2)}\n`)}};var hC=class extends ft{static{this.paths=[[\"help\"],[\"--help\"],[\"-h\"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};Ge();Dt();Yt();var gC=class extends ft{constructor(){super(...arguments);this.leadingArgument=ge.String();this.args=ge.Proxy()}async execute(){if(this.leadingArgument.match(/[\\\\/]/)&&!G.tryParseIdent(this.leadingArgument)){let r=J.resolve(this.context.cwd,fe.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run([\"run\",this.leadingArgument,...this.args])}};Ge();var dC=class extends ft{static{this.paths=[[\"-v\"],[\"--version\"]]}async execute(){this.context.stdout.write(`${fn||\"<unknown>\"}\n`)}};Ge();Ge();Yt();var mC=class extends ft{constructor(){super(...arguments);this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[[\"exec\"]]}static{this.usage=ot.Usage({description:\"execute a shell script\",details:`\n      This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell.\n\n      It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n    `,examples:[[\"Execute a single shell command\",\"$0 exec echo Hello World\"],[\"Execute a shell script\",'$0 exec \"tsc & babel src --out-dir lib\"']]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Rt.find(r,this.context.cwd);return await s.restoreInstallState(),await In.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:s})}};Ge();Yt();Ul();var yC=class extends ft{constructor(){super(...arguments);this.hash=ge.String({required:!1,validator:Nx(wE(),[X2(/^p[0-9a-f]{6}$/)])})}static{this.paths=[[\"explain\",\"peer-requirements\"]]}static{this.usage=ot.Usage({description:\"explain a set of peer requirements\",details:`\n      A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters.\n\n      When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not.\n\n      When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement.\n\n      **Note:** A hash is a seven-letter code consisting of the letter 'p' followed by six characters that can be obtained from peer dependency warnings or from the list of all peer requirements(\\`yarn explain peer-requirements\\`).\n    `,examples:[[\"Explain the corresponding peer requirement for a hash\",\"$0 explain peer-requirements p1a4ed\"],[\"List all peer requirements\",\"$0 explain peer-requirements\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);return await s.restoreInstallState({restoreResolutions:!1}),await s.applyLightResolution(),typeof this.hash<\"u\"?await Hlt(this.hash,s,{stdout:this.context.stdout}):await jlt(s,{stdout:this.context.stdout})}};async function Hlt(t,e,r){let s=e.peerRequirementNodes.get(t);if(typeof s>\"u\")throw new Error(`No peerDependency requirements found for hash: \"${t}\"`);let a=new Set,n=p=>a.has(p.requester.locatorHash)?{value:he.tuple(he.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:p.children.size>0?[{value:he.tuple(he.Type.NO_HINT,\"...\")}]:[]}:(a.add(p.requester.locatorHash),{value:he.tuple(he.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:Object.fromEntries(Array.from(p.children.values(),h=>[G.stringifyLocator(h.requester),n(h)]))}),c=e.peerWarnings.find(p=>p.hash===t);return(await Ot.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async p=>{let h=he.mark(e.configuration),E=c?h.Cross:h.Check;if(p.reportInfo(0,`Package ${he.pretty(e.configuration,s.subject,he.Type.LOCATOR)} is requested to provide ${he.pretty(e.configuration,s.ident,he.Type.IDENT)} by its descendants`),p.reportSeparator(),p.reportInfo(0,he.pretty(e.configuration,s.subject,he.Type.LOCATOR)),xs.emitTree({children:Object.fromEntries(Array.from(s.requests.values(),C=>[G.stringifyLocator(C.requester),n(C)]))},{configuration:e.configuration,stdout:r.stdout,json:!1}),p.reportSeparator(),s.provided.range===\"missing:\"){let C=c?\"\":\" , but all peer requests are optional\";p.reportInfo(0,`${E} Package ${he.pretty(e.configuration,s.subject,he.Type.LOCATOR)} does not provide ${he.pretty(e.configuration,s.ident,he.Type.IDENT)}${C}.`)}else{let C=e.storedResolutions.get(s.provided.descriptorHash);if(!C)throw new Error(\"Assertion failed: Expected the descriptor to be registered\");let S=e.storedPackages.get(C);if(!S)throw new Error(\"Assertion failed: Expected the package to be registered\");p.reportInfo(0,`${E} Package ${he.pretty(e.configuration,s.subject,he.Type.LOCATOR)} provides ${he.pretty(e.configuration,s.ident,he.Type.IDENT)} with version ${G.prettyReference(e.configuration,S.version??\"0.0.0\")}, ${c?\"which does not satisfy all requests.\":\"which satisfies all requests\"}`),c?.type===3&&(c.range?p.reportInfo(0,`  The combined requested range is ${he.pretty(e.configuration,c.range,he.Type.RANGE)}`):p.reportInfo(0,\"  Unfortunately, the requested ranges have no overlap\"))}})).exitCode()}async function jlt(t,e){return(await Ot.start({configuration:t.configuration,stdout:e.stdout,includeFooter:!1,includePrefix:!1},async s=>{let a=he.mark(t.configuration),n=je.sortMap(t.peerRequirementNodes,[([,c])=>G.stringifyLocator(c.subject),([,c])=>G.stringifyIdent(c.ident)]);for(let[,c]of n.values()){if(!c.root)continue;let f=t.peerWarnings.find(E=>E.hash===c.hash),p=[...G.allPeerRequests(c)],h;if(p.length>2?h=` and ${p.length-1} other dependencies`:p.length===2?h=\" and 1 other dependency\":h=\"\",c.provided.range!==\"missing:\"){let E=t.storedResolutions.get(c.provided.descriptorHash);if(!E)throw new Error(\"Assertion failed: Expected the resolution to have been registered\");let C=t.storedPackages.get(E);if(!C)throw new Error(\"Assertion failed: Expected the provided package to have been registered\");let S=`${he.pretty(t.configuration,c.hash,he.Type.CODE)} \\u2192 ${f?a.Cross:a.Check} ${G.prettyLocator(t.configuration,c.subject)} provides ${G.prettyLocator(t.configuration,C)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;f?s.reportWarning(0,S):s.reportInfo(0,S)}else{let E=`${he.pretty(t.configuration,c.hash,he.Type.CODE)} \\u2192 ${f?a.Cross:a.Check} ${G.prettyLocator(t.configuration,c.subject)} doesn't provide ${G.prettyIdent(t.configuration,c.ident)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;f?s.reportWarning(0,E):s.reportInfo(0,E)}}})).exitCode()}Ge();Yt();Ul();Ge();Ge();Dt();Yt();var pye=ut(Ai()),EC=class extends ft{constructor(){super(...arguments);this.useYarnPath=ge.Boolean(\"--yarn-path\",{description:\"Set the yarnPath setting even if the version can be accessed by Corepack\"});this.onlyIfNeeded=ge.Boolean(\"--only-if-needed\",!1,{description:\"Only lock the Yarn version if it isn't already locked\"});this.version=ge.String()}static{this.paths=[[\"set\",\"version\"]]}static{this.usage=ot.Usage({description:\"lock the Yarn version used by the project\",details:\"\\n      This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\\n\\n      By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\\n\\n      A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\\n\\n      The version specifier can be:\\n\\n      - a tag:\\n        - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\\n        - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\\n        - `classic` -> the most recent classic (`^0.x || ^1.x`) release\\n\\n      - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\\n\\n      - a semver version (e.g. `2.4.1`, `1.22.1`)\\n\\n      - a local file referenced through either a relative or absolute path\\n\\n      - `self` -> the version used to invoke the command\\n    \",examples:[[\"Download the latest release from the Yarn repository\",\"$0 set version latest\"],[\"Download the latest canary release from the Yarn repository\",\"$0 set version canary\"],[\"Download the latest classic release from the Yarn repository\",\"$0 set version classic\"],[\"Download the most recent Yarn 3 build\",\"$0 set version 3.x\"],[\"Download a specific Yarn 2 build\",\"$0 set version 2.0.0-rc.30\"],[\"Switch back to a specific Yarn 1 release\",\"$0 set version 1.22.1\"],[\"Use a release from the local filesystem\",\"$0 set version ./yarn.cjs\"],[\"Use a release from a URL\",\"$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js\"],[\"Download the version used to invoke the command\",\"$0 set version self\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get(\"yarnPath\")){let f=r.sources.get(\"yarnPath\");if(!f)throw new Error(\"Assertion failed: Expected 'yarnPath' to have a source\");let p=r.projectCwd??r.startingCwd;if(J.contains(p,f))return 0}let s=()=>{if(typeof fn>\"u\")throw new nt(\"The --install flag can only be used without explicit version specifier from the Yarn CLI\");return`file://${process.argv[1]}`},a,n=(f,p)=>({version:p,url:f.replace(/\\{\\}/g,p)});if(this.version===\"self\")a={url:s(),version:fn??\"self\"};else if(this.version===\"latest\"||this.version===\"berry\"||this.version===\"stable\")a=n(\"https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js\",await Xv(r,\"stable\"));else if(this.version===\"canary\")a=n(\"https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js\",await Xv(r,\"canary\"));else if(this.version===\"classic\")a={url:\"https://classic.yarnpkg.com/latest.js\",version:\"classic\"};else if(this.version.match(/^https?:/))a={url:this.version,version:\"remote\"};else if(this.version.match(/^\\.{0,2}[\\\\/]/)||fe.isAbsolute(this.version))a={url:`file://${J.resolve(fe.toPortablePath(this.version))}`,version:\"file\"};else if(Fr.satisfiesWithPrereleases(this.version,\">=2.0.0\"))a=n(\"https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js\",this.version);else if(Fr.satisfiesWithPrereleases(this.version,\"^0.x || ^1.x\"))a=n(\"https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js\",this.version);else if(Fr.validRange(this.version))a=n(\"https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js\",await Glt(r,this.version));else throw new nt(`Invalid version descriptor \"${this.version}\"`);return(await Ot.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async f=>{let p=async()=>{let h=\"file://\";return a.url.startsWith(h)?(f.reportInfo(0,`Retrieving ${he.pretty(r,a.url,he.Type.PATH)}`),await ce.readFilePromise(a.url.slice(h.length))):(f.reportInfo(0,`Downloading ${he.pretty(r,a.url,he.Type.URL)}`),await ln.get(a.url,{configuration:r}))};await Jq(r,a.version,p,{report:f,useYarnPath:this.useYarnPath})})).exitCode()}};async function Glt(t,e){let s=(await ln.get(\"https://repo.yarnpkg.com/tags\",{configuration:t,jsonResponse:!0})).tags.filter(a=>Fr.satisfiesWithPrereleases(a,e));if(s.length===0)throw new nt(`No matching release found for range ${he.pretty(t,e,he.Type.RANGE)}.`);return s[0]}async function Xv(t,e){let r=await ln.get(\"https://repo.yarnpkg.com/tags\",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new nt(`Tag ${he.pretty(t,e,he.Type.RANGE)} not found`);return r.latest[e]}async function Jq(t,e,r,{report:s,useYarnPath:a}){let n,c=async()=>(typeof n>\"u\"&&(n=await r()),n);if(e===null){let ee=await c();await ce.mktempPromise(async ie=>{let ue=J.join(ie,\"yarn.cjs\");await ce.writeFilePromise(ue,ee);let{stdout:le}=await qr.execvp(process.execPath,[fe.fromPortablePath(ue),\"--version\"],{cwd:ie,env:{...t.env,YARN_IGNORE_PATH:\"1\"}});if(e=le.trim(),!pye.default.valid(e))throw new Error(`Invalid semver version. ${he.pretty(t,\"yarn --version\",he.Type.CODE)} returned:\n${e}`)})}let f=t.projectCwd??t.startingCwd,p=J.resolve(f,\".yarn/releases\"),h=J.resolve(p,`yarn-${e}.cjs`),E=J.relative(t.startingCwd,h),C=je.isTaggedYarnVersion(e),S=t.get(\"yarnPath\"),b=!C,I=b||!!S||!!a;if(a===!1){if(b)throw new jt(0,\"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack\");I=!1}else!I&&!process.env.COREPACK_ROOT&&(s.reportWarning(0,`You don't seem to have ${he.applyHyperlink(t,\"Corepack\",\"https://nodejs.org/api/corepack.html\")} enabled; we'll have to rely on ${he.applyHyperlink(t,\"yarnPath\",\"https://yarnpkg.com/configuration/yarnrc#yarnPath\")} instead`),I=!0);if(I){let ee=await c();s.reportInfo(0,`Saving the new release in ${he.pretty(t,E,\"magenta\")}`),await ce.removePromise(J.dirname(h)),await ce.mkdirPromise(J.dirname(h),{recursive:!0}),await ce.writeFilePromise(h,ee,{mode:493}),await ze.updateConfiguration(f,{yarnPath:J.relative(f,h)})}else await ce.removePromise(J.dirname(h)),await ze.updateConfiguration(f,{yarnPath:ze.deleteProperty});let T=await Ut.tryFind(f)||new Ut;T.packageManager=`yarn@${C?e:await Xv(t,\"stable\")}`;let N={};T.exportTo(N);let U=J.join(f,Ut.fileName),W=`${JSON.stringify(N,null,T.indent)}\n`;return await ce.changeFilePromise(U,W,{automaticNewlines:!0}),{bundleVersion:e}}function hye(t){return Br[jx(t)]}var qlt=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\\n\\n(?<details>(?:.(?!##))+)/gs;async function Wlt(t){let r=`https://repo.yarnpkg.com/${je.isTaggedYarnVersion(fn)?fn:await Xv(t,\"canary\")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,s=await ln.get(r,{configuration:t});return new Map(Array.from(s.toString().matchAll(qlt),({groups:a})=>{if(!a)throw new Error(\"Assertion failed: Expected the match to have been successful\");let n=hye(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected \"${a.name}\" to be named \"${n}\"`);return[a.code,a.details]}))}var IC=class extends ft{constructor(){super(...arguments);this.code=ge.String({required:!1,validator:$2(wE(),[X2(/^YN[0-9]{4}$/)])});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}static{this.paths=[[\"explain\"]]}static{this.usage=ot.Usage({description:\"explain an error code\",details:`\n      When the code argument is specified, this command prints its name and its details.\n\n      When used without arguments, this command lists all error codes and their names.\n    `,examples:[[\"Explain an error code\",\"$0 explain YN0006\"],[\"List all error codes\",\"$0 explain\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(typeof this.code<\"u\"){let s=hye(this.code),a=he.pretty(r,s,he.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),f=(await Wlt(r)).get(this.code),p=typeof f<\"u\"?he.jsonOrPretty(this.json,r,he.tuple(he.Type.MARKDOWN,{text:f,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description.\n\nYou can help us by editing this page on GitHub \\u{1F642}:\n${he.jsonOrPretty(this.json,r,he.tuple(he.Type.URL,\"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx\"))}\n`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:s,details:p})}\n`):this.context.stdout.write(`${n}\n\n${p}\n`)}else{let s={children:je.mapAndFilter(Object.entries(Br),([a,n])=>Number.isNaN(Number(a))?je.mapAndFilter.skip:{label:Yf(Number(a)),value:he.tuple(he.Type.CODE,n)})};xs.emitTree(s,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Ge();Dt();Yt();var gye=ut(Go()),CC=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean(\"-A,--all\",!1,{description:\"Print versions of a package from the whole project\"});this.recursive=ge.Boolean(\"-R,--recursive\",!1,{description:\"Print information for all packages, including transitive dependencies\"});this.extra=ge.Array(\"-X,--extra\",[],{description:\"An array of requests of extra data provided by plugins\"});this.cache=ge.Boolean(\"--cache\",!1,{description:\"Print information about the cache entry of a package (path, size, checksum)\"});this.dependents=ge.Boolean(\"--dependents\",!1,{description:\"Print all dependents for each matching package\"});this.manifest=ge.Boolean(\"--manifest\",!1,{description:\"Print data obtained by looking at the package archive (license, homepage, ...)\"});this.nameOnly=ge.Boolean(\"--name-only\",!1,{description:\"Only print the name for the matching packages\"});this.virtuals=ge.Boolean(\"--virtuals\",!1,{description:\"Print each instance of the virtual packages\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.patterns=ge.Rest()}static{this.paths=[[\"info\"]]}static{this.usage=ot.Usage({description:\"see information related to packages\",details:\"\\n      This command prints various information related to the specified packages, accepting glob patterns.\\n\\n      By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\\n\\n      Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\\n\\n      Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\\n    \",examples:[[\"Show information about Lodash\",\"$0 info lodash\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a&&!this.all)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let c=new Set(this.extra);this.cache&&c.add(\"cache\"),this.dependents&&c.add(\"dependents\"),this.manifest&&c.add(\"manifest\");let f=(ie,{recursive:ue})=>{let le=ie.anchoredLocator.locatorHash,me=new Map,pe=[le];for(;pe.length>0;){let Be=pe.shift();if(me.has(Be))continue;let Ce=s.storedPackages.get(Be);if(typeof Ce>\"u\")throw new Error(\"Assertion failed: Expected the package to be registered\");if(me.set(Be,Ce),G.isVirtualLocator(Ce)&&pe.push(G.devirtualizeLocator(Ce).locatorHash),!(!ue&&Be!==le))for(let g of Ce.dependencies.values()){let we=s.storedResolutions.get(g.descriptorHash);if(typeof we>\"u\")throw new Error(\"Assertion failed: Expected the resolution to be registered\");pe.push(we)}}return me.values()},p=({recursive:ie})=>{let ue=new Map;for(let le of s.workspaces)for(let me of f(le,{recursive:ie}))ue.set(me.locatorHash,me);return ue.values()},h=({all:ie,recursive:ue})=>ie&&ue?s.storedPackages.values():ie?p({recursive:ue}):f(a,{recursive:ue}),E=({all:ie,recursive:ue})=>{let le=h({all:ie,recursive:ue}),me=this.patterns.map(Ce=>{let g=G.parseLocator(Ce),we=gye.default.makeRe(G.stringifyIdent(g)),ye=G.isVirtualLocator(g),Ae=ye?G.devirtualizeLocator(g):g;return se=>{let X=G.stringifyIdent(se);if(!we.test(X))return!1;if(g.reference===\"unknown\")return!0;let De=G.isVirtualLocator(se),Te=De?G.devirtualizeLocator(se):se;return!(ye&&De&&g.reference!==se.reference||Ae.reference!==Te.reference)}}),pe=je.sortMap([...le],Ce=>G.stringifyLocator(Ce));return{selection:pe.filter(Ce=>me.length===0||me.some(g=>g(Ce))),sortedLookup:pe}},{selection:C,sortedLookup:S}=E({all:this.all,recursive:this.recursive});if(C.length===0)throw new nt(\"No package matched your request\");let b=new Map;if(this.dependents)for(let ie of S)for(let ue of ie.dependencies.values()){let le=s.storedResolutions.get(ue.descriptorHash);if(typeof le>\"u\")throw new Error(\"Assertion failed: Expected the resolution to be registered\");je.getArrayWithDefault(b,le).push(ie)}let I=new Map;for(let ie of S){if(!G.isVirtualLocator(ie))continue;let ue=G.devirtualizeLocator(ie);je.getArrayWithDefault(I,ue.locatorHash).push(ie)}let T={},N={children:T},U=r.makeFetcher(),W={project:s,fetcher:U,cache:n,checksums:s.storedChecksums,report:new ki,cacheOptions:{skipIntegrityCheck:!0}},ee=[async(ie,ue,le)=>{if(!ue.has(\"manifest\"))return;let me=await U.fetch(ie,W),pe;try{pe=await Ut.find(me.prefixPath,{baseFs:me.packageFs})}finally{me.releaseFs?.()}le(\"Manifest\",{License:he.tuple(he.Type.NO_HINT,pe.license),Homepage:he.tuple(he.Type.URL,pe.raw.homepage??null)})},async(ie,ue,le)=>{if(!ue.has(\"cache\"))return;let me=s.storedChecksums.get(ie.locatorHash)??null,pe=n.getLocatorPath(ie,me),Be;if(pe!==null)try{Be=await ce.statPromise(pe)}catch{}let Ce=typeof Be<\"u\"?[Be.size,he.Type.SIZE]:void 0;le(\"Cache\",{Checksum:he.tuple(he.Type.NO_HINT,me),Path:he.tuple(he.Type.PATH,pe),Size:Ce})}];for(let ie of C){let ue=G.isVirtualLocator(ie);if(!this.virtuals&&ue)continue;let le={},me={value:[ie,he.Type.LOCATOR],children:le};if(T[G.stringifyLocator(ie)]=me,this.nameOnly){delete me.children;continue}let pe=I.get(ie.locatorHash);typeof pe<\"u\"&&(le.Instances={label:\"Instances\",value:he.tuple(he.Type.NUMBER,pe.length)}),le.Version={label:\"Version\",value:he.tuple(he.Type.NO_HINT,ie.version)};let Be=(g,we)=>{let ye={};if(le[g]=ye,Array.isArray(we))ye.children=we.map(Ae=>({value:Ae}));else{let Ae={};ye.children=Ae;for(let[se,X]of Object.entries(we))typeof X>\"u\"||(Ae[se]={label:se,value:X})}};if(!ue){for(let g of ee)await g(ie,c,Be);await r.triggerHook(g=>g.fetchPackageInfo,ie,c,Be)}ie.bin.size>0&&!ue&&Be(\"Exported Binaries\",[...ie.bin.keys()].map(g=>he.tuple(he.Type.PATH,g)));let Ce=b.get(ie.locatorHash);typeof Ce<\"u\"&&Ce.length>0&&Be(\"Dependents\",Ce.map(g=>he.tuple(he.Type.LOCATOR,g))),ie.dependencies.size>0&&!ue&&Be(\"Dependencies\",[...ie.dependencies.values()].map(g=>{let we=s.storedResolutions.get(g.descriptorHash),ye=typeof we<\"u\"?s.storedPackages.get(we)??null:null;return he.tuple(he.Type.RESOLUTION,{descriptor:g,locator:ye})})),ie.peerDependencies.size>0&&ue&&Be(\"Peer dependencies\",[...ie.peerDependencies.values()].map(g=>{let we=ie.dependencies.get(g.identHash),ye=typeof we<\"u\"?s.storedResolutions.get(we.descriptorHash)??null:null,Ae=ye!==null?s.storedPackages.get(ye)??null:null;return he.tuple(he.Type.RESOLUTION,{descriptor:g,locator:Ae})}))}xs.emitTree(N,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Ge();Dt();wc();var rF=ut(Fd());Yt();var Kq=ut(Ai());Ul();var Ylt=[{selector:t=>t===-1,name:\"nodeLinker\",value:\"node-modules\"},{selector:t=>t!==-1&&t<8,name:\"enableGlobalCache\",value:!1},{selector:t=>t!==-1&&t<8,name:\"compressionLevel\",value:\"mixed\"}],wC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.immutable=ge.Boolean(\"--immutable\",{description:\"Abort with an error exit code if the lockfile was to be modified\"});this.immutableCache=ge.Boolean(\"--immutable-cache\",{description:\"Abort with an error exit code if the cache folder was to be modified\"});this.refreshLockfile=ge.Boolean(\"--refresh-lockfile\",{description:\"Refresh the package metadata stored in the lockfile\"});this.checkCache=ge.Boolean(\"--check-cache\",{description:\"Always refetch the packages and ensure that their checksums are consistent\"});this.checkResolutions=ge.Boolean(\"--check-resolutions\",{description:\"Validates that the package resolutions are coherent\"});this.inlineBuilds=ge.Boolean(\"--inline-builds\",{description:\"Verbosely print the output of the build steps of dependencies\"});this.mode=ge.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:fo($l)});this.cacheFolder=ge.String(\"--cache-folder\",{hidden:!0});this.frozenLockfile=ge.Boolean(\"--frozen-lockfile\",{hidden:!0});this.ignoreEngines=ge.Boolean(\"--ignore-engines\",{hidden:!0});this.nonInteractive=ge.Boolean(\"--non-interactive\",{hidden:!0});this.preferOffline=ge.Boolean(\"--prefer-offline\",{hidden:!0});this.production=ge.Boolean(\"--production\",{hidden:!0});this.registry=ge.String(\"--registry\",{hidden:!0});this.silent=ge.Boolean(\"--silent\",{hidden:!0});this.networkTimeout=ge.String(\"--network-timeout\",{hidden:!0})}static{this.paths=[[\"install\"],ot.Default]}static{this.usage=ot.Usage({description:\"install the project dependencies\",details:\"\\n      This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\\n\\n      - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\\n\\n      - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\\n\\n      - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\\n\\n      - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\\n\\n      Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\\n\\n      If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\\n\\n      If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\\n\\n      If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\\n\\n      If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\\n\\n      If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\\n\\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\\n\\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\\n\\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\\n    \",examples:[[\"Install the project\",\"$0 install\"],[\"Validate a project when using Zero-Installs\",\"$0 install --immutable --immutable-cache\"],[\"Validate a project when using Zero-Installs (slightly safer if you accept external PRs)\",\"$0 install --immutable --immutable-cache --check-cache\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<\"u\"&&r.useWithSource(\"<cli>\",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let s=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=await SI({configuration:r,stdout:this.context.stdout},[{option:this.ignoreEngines,message:\"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore\",error:!rF.default.VERCEL},{option:this.registry,message:\"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file\"},{option:this.preferOffline,message:\"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead\",error:!rF.default.VERCEL},{option:this.production,message:\"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead\",error:!0},{option:this.nonInteractive,message:\"The --non-interactive option is deprecated\",error:!s},{option:this.frozenLockfile,message:\"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead\",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:\"The cache-folder option has been deprecated; use rc settings instead\",error:!rF.default.NETLIFY}]);if(a!==null)return a;let n=this.mode===\"update-lockfile\";if(n&&(this.immutable||this.immutableCache))throw new nt(`${he.pretty(r,\"--immutable\",he.Type.CODE)} and ${he.pretty(r,\"--immutable-cache\",he.Type.CODE)} cannot be used with ${he.pretty(r,\"--mode=update-lockfile\",he.Type.CODE)}`);let c=(this.immutable??r.get(\"enableImmutableInstalls\"))&&!n,f=this.immutableCache&&!n;if(r.projectCwd!==null){let T=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{let U=!1;await Klt(r,c)&&(N.reportInfo(48,\"Automatically removed core plugins that are now builtins \\u{1F44D}\"),U=!0),await Jlt(r,c)&&(N.reportInfo(48,\"Automatically fixed merge conflicts \\u{1F44D}\"),U=!0),U&&N.reportSeparator()});if(T.hasErrors())return T.exitCode()}if(r.projectCwd!==null){let T=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{if(ze.telemetry?.isNew)ze.telemetry.commitTips(),N.reportInfo(65,\"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry\"),N.reportInfo(65,`Run ${he.pretty(r,\"yarn config set --home enableTelemetry 0\",he.Type.CODE)} to disable`),N.reportSeparator();else if(ze.telemetry?.shouldShowTips){let U=await ln.get(\"https://repo.yarnpkg.com/tags\",{configuration:r,jsonResponse:!0}).catch(()=>null);if(U!==null){let W=null;if(fn!==null){let ie=Kq.default.prerelease(fn)?\"canary\":\"stable\",ue=U.latest[ie];Kq.default.gt(ue,fn)&&(W=[ie,ue])}if(W)ze.telemetry.commitTips(),N.reportInfo(88,`${he.applyStyle(r,`A new ${W[0]} version of Yarn is available:`,he.Style.BOLD)} ${G.prettyReference(r,W[1])}!`),N.reportInfo(88,`Upgrade now by running ${he.pretty(r,`yarn set version ${W[1]}`,he.Type.CODE)}`),N.reportSeparator();else{let ee=ze.telemetry.selectTip(U.tips);ee&&(N.reportInfo(89,he.pretty(r,ee.message,he.Type.MARKDOWN_INLINE)),ee.url&&N.reportInfo(89,`Learn more at ${ee.url}`),N.reportSeparator())}}}});if(T.hasErrors())return T.exitCode()}let{project:p,workspace:h}=await Rt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let T=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{let U={};for(let W of Ylt)W.selector(E)&&typeof r.sources.get(W.name)>\"u\"&&(r.use(\"<compat>\",{[W.name]:W.value},p.cwd,{overwrite:!0}),U[W.name]=W.value);Object.keys(U).length>0&&(await ze.updateConfiguration(p.cwd,U),N.reportInfo(87,\"Migrated your project to the latest Yarn version \\u{1F680}\"),N.reportSeparator())});if(T.hasErrors())return T.exitCode()}let C=await Kr.find(r,{immutable:f,check:this.checkCache});if(!h)throw new ar(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let S=r.get(\"enableHardenedMode\");S&&typeof r.sources.get(\"enableHardenedMode\")>\"u\"&&await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async T=>{T.reportWarning(0,\"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled.\"),T.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${he.applyHyperlink(r,\"documentation\",\"https://yarnpkg.com/features/security#hardened-mode\")} for more details.`),T.reportSeparator()}),(this.refreshLockfile??S)&&(p.lockfileNeedsRefresh=!0);let b=this.checkResolutions??S;return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async T=>{await p.install({cache:C,report:T,immutable:c,checkResolutions:b,mode:this.mode})})).exitCode()}},Vlt=\"<<<<<<<\";async function Jlt(t,e){if(!t.projectCwd)return!1;let r=J.join(t.projectCwd,Er.lockfile);if(!await ce.existsPromise(r)||!(await ce.readFilePromise(r,\"utf8\")).includes(Vlt))return!1;if(e)throw new jt(47,\"Cannot autofix a lockfile when running an immutable install\");let a=await qr.execvp(\"git\",[\"rev-parse\",\"MERGE_HEAD\",\"HEAD\"],{cwd:t.projectCwd});if(a.code!==0&&(a=await qr.execvp(\"git\",[\"rev-parse\",\"REBASE_HEAD\",\"HEAD\"],{cwd:t.projectCwd})),a.code!==0&&(a=await qr.execvp(\"git\",[\"rev-parse\",\"CHERRY_PICK_HEAD\",\"HEAD\"],{cwd:t.projectCwd})),a.code!==0)throw new jt(83,\"Git returned an error when trying to find the commits pertaining to the conflict\");let n=await Promise.all(a.stdout.trim().split(/\\n/).map(async f=>{let p=await qr.execvp(\"git\",[\"show\",`${f}:./${Er.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new jt(83,`Git returned an error when trying to access the lockfile content in ${f}`);try{return as(p.stdout)}catch{throw new jt(46,\"A variant of the conflicting lockfile failed to parse\")}}));n=n.filter(f=>!!f.__metadata);for(let f of n){if(f.__metadata.version<7)for(let p of Object.keys(f)){if(p===\"__metadata\")continue;let h=G.parseDescriptor(p,!0),E=t.normalizeDependency(h),C=G.stringifyDescriptor(E);C!==p&&(f[C]=f[p],delete f[p])}for(let p of Object.keys(f)){if(p===\"__metadata\")continue;let h=f[p].checksum;typeof h>\"u\"||h.includes(\"/\")||(f[p].checksum=`${f.__metadata.cacheKey}/${h}`)}}let c=Object.assign({},...n);c.__metadata.version=`${Math.min(...n.map(f=>parseInt(f.__metadata.version??0)))}`,c.__metadata.cacheKey=\"merged\";for(let[f,p]of Object.entries(c))typeof p==\"string\"&&delete c[f];return await ce.changeFilePromise(r,nl(c),{automaticNewlines:!0}),!0}async function Klt(t,e){if(!t.projectCwd)return!1;let r=[],s=J.join(t.projectCwd,\".yarn/plugins/@yarnpkg\");return await ze.updateConfiguration(t.projectCwd,{plugins:n=>{if(!Array.isArray(n))return n;let c=n.filter(f=>{if(!f.path)return!0;let p=J.resolve(t.projectCwd,f.path),h=ov.has(f.spec)&&J.contains(s,p);return h&&r.push(p),!h});return c.length===0?ze.deleteProperty:c.length===n.length?n:c}},{immutable:e})?(await Promise.all(r.map(async n=>{await ce.removePromise(n)})),!0):!1}Ge();Dt();Yt();var BC=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean(\"-A,--all\",!1,{description:\"Link all workspaces belonging to the target projects to the current one\"});this.private=ge.Boolean(\"-p,--private\",!1,{description:\"Also link private workspaces belonging to the target projects to the current one\"});this.relative=ge.Boolean(\"-r,--relative\",!1,{description:\"Link workspaces using relative paths instead of absolute paths\"});this.destinations=ge.Rest()}static{this.paths=[[\"link\"]]}static{this.usage=ot.Usage({description:\"connect the local project to another one\",details:\"\\n      This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\\n    \",examples:[[\"Register one or more remote workspaces for use in the current project\",\"$0 link ~/ts-loader ~/jest\"],[\"Register all workspaces from a remote project for use in the current project\",\"$0 link ~/jest --all\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=s.topLevelWorkspace,f=[];for(let p of this.destinations){let h=J.resolve(this.context.cwd,fe.toPortablePath(p)),E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:S}=await Rt.find(E,h);if(s.cwd===C.cwd)throw new nt(`Invalid destination '${p}'; Can't link the project to itself`);if(!S)throw new ar(C.cwd,h);if(this.all){let b=!1;for(let I of C.workspaces)I.manifest.name&&(!I.manifest.private||this.private)&&(f.push(I),b=!0);if(!b)throw new nt(`No workspace found to be linked in the target project: ${p}`)}else{if(!S.manifest.name)throw new nt(`The target workspace at '${p}' doesn't have a name and thus cannot be linked`);if(S.manifest.private&&!this.private)throw new nt(`The target workspace at '${p}' is marked private - use the --private flag to link it anyway`);f.push(S)}}for(let p of f){let h=G.stringifyIdent(p.anchoredLocator),E=this.relative?J.relative(s.cwd,p.cwd):p.cwd;c.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${E}`})}return await s.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Yt();var vC=class extends ft{constructor(){super(...arguments);this.args=ge.Proxy()}static{this.paths=[[\"node\"]]}static{this.usage=ot.Usage({description:\"run node with the hook already setup\",details:`\n      This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n\n      The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.\n    `,examples:[[\"Run a Node script\",\"$0 node ./my-script.js\"]]})}async execute(){return this.cli.run([\"exec\",\"node\",...this.args])}};Ge();Yt();var SC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}static{this.paths=[[\"plugin\",\"check\"]]}static{this.usage=ot.Usage({category:\"Plugin-related commands\",description:\"find all third-party plugins that differ from their own spec\",details:`\n      Check only the plugins from https.\n\n      If this command detects any plugin differences in the CI environment, it will throw an error.\n    `,examples:[[\"find all third-party plugins that differ from their own spec\",\"$0 plugin check\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=await ze.findRcFiles(this.context.cwd);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let c of s)if(c.data?.plugins)for(let f of c.data.plugins){if(!f.checksum||!f.spec.match(/^https?:/))continue;let p=await ln.get(f.spec,{configuration:r}),h=Nn.makeHash(p);if(f.checksum===h)continue;let E=he.pretty(r,f.path,he.Type.PATH),C=he.pretty(r,f.spec,he.Type.URL),S=`${E} is different from the file provided by ${C}`;n.reportJson({...f,newChecksum:h}),n.reportError(0,S)}})).exitCode()}};Ge();Ge();Dt();Yt();var Iye=Ie(\"os\");Ge();Dt();Yt();var dye=Ie(\"os\");Ge();wc();Yt();var zlt=\"https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml\";async function Sm(t,e){let r=await ln.get(zlt,{configuration:t}),s=as(r.toString());return Object.fromEntries(Object.entries(s).filter(([a,n])=>!e||Fr.satisfiesWithPrereleases(e,n.range??\"<4.0.0-rc.1\")))}var DC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}static{this.paths=[[\"plugin\",\"list\"]]}static{this.usage=ot.Usage({category:\"Plugin-related commands\",description:\"list the available official plugins\",details:\"\\n      This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\\n    \",examples:[[\"List the official plugins\",\"$0 plugin list\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await Sm(r,fn);for(let[c,{experimental:f,...p}]of Object.entries(n)){let h=c;f&&(h+=\" [experimental]\"),a.reportJson({name:c,experimental:f,...p}),a.reportInfo(null,h)}})).exitCode()}};var Zlt=/^[0-9]+$/,Xlt=process.platform===\"win32\";function mye(t){return Zlt.test(t)?`pull/${t}/head`:t}var $lt=({repository:t,branch:e},r)=>[[\"git\",\"init\",fe.fromPortablePath(r)],[\"git\",\"remote\",\"add\",\"origin\",t],[\"git\",\"fetch\",\"origin\",\"--depth=1\",mye(e)],[\"git\",\"reset\",\"--hard\",\"FETCH_HEAD\"]],ect=({branch:t})=>[[\"git\",\"fetch\",\"origin\",\"--depth=1\",mye(t),\"--force\"],[\"git\",\"reset\",\"--hard\",\"FETCH_HEAD\"],[\"git\",\"clean\",\"-dfx\",\"-e\",\"packages/yarnpkg-cli/bundles\"]],tct=({plugins:t,noMinify:e},r,s)=>[[\"yarn\",\"build:cli\",...new Array().concat(...t.map(a=>[\"--plugin\",J.resolve(s,a)])),...e?[\"--no-minify\"]:[],\"|\"],[Xlt?\"move\":\"mv\",\"packages/yarnpkg-cli/bundles/yarn.js\",fe.fromPortablePath(r),\"|\"]],PC=class extends ft{constructor(){super(...arguments);this.installPath=ge.String(\"--path\",{description:\"The path where the repository should be cloned to\"});this.repository=ge.String(\"--repository\",\"https://github.com/yarnpkg/berry.git\",{description:\"The repository that should be cloned\"});this.branch=ge.String(\"--branch\",\"master\",{description:\"The branch of the repository that should be cloned\"});this.plugins=ge.Array(\"--plugin\",[],{description:\"An array of additional plugins that should be included in the bundle\"});this.dryRun=ge.Boolean(\"-n,--dry-run\",!1,{description:\"If set, the bundle will be built but not added to the project\"});this.noMinify=ge.Boolean(\"--no-minify\",!1,{description:\"Build a bundle for development (debugging) - non-minified and non-mangled\"});this.force=ge.Boolean(\"-f,--force\",!1,{description:\"Always clone the repository instead of trying to fetch the latest commits\"});this.skipPlugins=ge.Boolean(\"--skip-plugins\",!1,{description:\"Skip updating the contrib plugins\"})}static{this.paths=[[\"set\",\"version\",\"from\",\"sources\"]]}static{this.usage=ot.Usage({description:\"build Yarn from master\",details:`\n      This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.\n\n      By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \\`--skip-plugins\\` flag.\n    `,examples:[[\"Build Yarn from master\",\"$0 set version from sources\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),a=typeof this.installPath<\"u\"?J.resolve(this.context.cwd,fe.toPortablePath(this.installPath)):J.resolve(fe.toPortablePath((0,dye.tmpdir)()),\"yarnpkg-sources\",Nn.makeHash(this.repository).slice(0,6));return(await Ot.start({configuration:r,stdout:this.context.stdout},async c=>{await zq(this,{configuration:r,report:c,target:a}),c.reportSeparator(),c.reportInfo(0,\"Building a fresh bundle\"),c.reportSeparator();let f=await qr.execvp(\"git\",[\"rev-parse\",\"--short\",\"HEAD\"],{cwd:a,strict:!0}),p=J.join(a,`packages/yarnpkg-cli/bundles/yarn-${f.stdout.trim()}.js`);ce.existsSync(p)||(await $v(tct(this,p,a),{configuration:r,context:this.context,target:a}),c.reportSeparator());let h=await ce.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await Jq(r,null,async()=>h,{report:c});this.skipPlugins||await rct(this,E,{project:s,report:c,target:a})}})).exitCode()}};async function $v(t,{configuration:e,context:r,target:s}){for(let[a,...n]of t){let c=n[n.length-1]===\"|\";if(c&&n.pop(),c)await qr.pipevp(a,n,{cwd:s,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${he.pretty(e,`  $ ${[a,...n].join(\" \")}`,\"grey\")}\n`);try{await qr.execvp(a,n,{cwd:s,strict:!0})}catch(f){throw r.stdout.write(f.stdout||f.stack),f}}}}async function zq(t,{configuration:e,report:r,target:s}){let a=!1;if(!t.force&&ce.existsSync(J.join(s,\".git\"))){r.reportInfo(0,\"Fetching the latest commits\"),r.reportSeparator();try{await $v(ect(t),{configuration:e,context:t.context,target:s}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,\"Repository update failed; we'll try to regenerate it\")}}a||(r.reportInfo(0,\"Cloning the remote repository\"),r.reportSeparator(),await ce.removePromise(s),await ce.mkdirPromise(s,{recursive:!0}),await $v($lt(t,s),{configuration:e,context:t.context,target:s}))}async function rct(t,e,{project:r,report:s,target:a}){let n=await Sm(r.configuration,e),c=new Set(Object.keys(n));for(let f of r.configuration.plugins.keys())c.has(f)&&await Zq(f,t,{project:r,report:s,target:a})}Ge();Ge();Dt();Yt();var yye=ut(Ai()),Eye=Ie(\"vm\");var bC=class extends ft{constructor(){super(...arguments);this.name=ge.String();this.checksum=ge.Boolean(\"--checksum\",!0,{description:\"Whether to care if this plugin is modified\"})}static{this.paths=[[\"plugin\",\"import\"]]}static{this.usage=ot.Usage({category:\"Plugin-related commands\",description:\"download a plugin\",details:`\n      This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.\n\n      Three types of plugin references are accepted:\n\n      - If the plugin is stored within the Yarn repository, it can be referenced by name.\n      - Third-party plugins can be referenced directly through their public urls.\n      - Local plugins can be referenced by their path on the disk.\n\n      If the \\`--no-checksum\\` option is set, Yarn will no longer care if the plugin is modified.\n\n      Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \\`@yarnpkg/builder\\` package).\n    `,examples:[['Download and activate the \"@yarnpkg/plugin-exec\" plugin',\"$0 plugin import @yarnpkg/plugin-exec\"],['Download and activate the \"@yarnpkg/plugin-exec\" plugin (shorthand)',\"$0 plugin import exec\"],[\"Download and activate a community plugin\",\"$0 plugin import https://example.org/path/to/plugin.js\"],[\"Activate a local plugin\",\"$0 plugin import ./path/to/plugin.js\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Ot.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Rt.find(r,this.context.cwd),c,f;if(this.name.match(/^\\.{0,2}[\\\\/]/)||fe.isAbsolute(this.name)){let p=J.resolve(this.context.cwd,fe.toPortablePath(this.name));a.reportInfo(0,`Reading ${he.pretty(r,p,he.Type.PATH)}`),c=J.relative(n.cwd,p),f=await ce.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new jt(52,`Plugin specifier \"${this.name}\" is neither a plugin name nor a valid url`)}c=this.name,p=this.name}else{let h=G.parseLocator(this.name.replace(/^((@yarnpkg\\/)?plugin-)?/,\"@yarnpkg/plugin-\"));if(h.reference!==\"unknown\"&&!yye.default.valid(h.reference))throw new jt(0,\"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.\");let E=G.stringifyIdent(h),C=await Sm(r,fn);if(!Object.hasOwn(C,E)){let S=`Couldn't find a plugin named ${G.prettyIdent(r,h)} on the remote registry.\n`;throw r.plugins.has(E)?S+=`A plugin named ${G.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:S+=`Note that only the plugins referenced on our website (${he.pretty(r,\"https://github.com/yarnpkg/berry/blob/master/plugins.yml\",he.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${he.pretty(r,\"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js\",he.Type.URL)}).`,new jt(51,S)}c=E,p=C[E].url,h.reference!==\"unknown\"?p=p.replace(/\\/master\\//,`/${E}/${h.reference}/`):fn!==null&&(p=p.replace(/\\/master\\//,`/@yarnpkg/cli/${fn}/`))}a.reportInfo(0,`Downloading ${he.pretty(r,p,\"green\")}`),f=await ln.get(p,{configuration:r})}await Xq(c,f,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function Xq(t,e,{checksum:r=!0,project:s,report:a}){let{configuration:n}=s,c={},f={exports:c};(0,Eye.runInNewContext)(e.toString(),{module:f,exports:c});let h=`.yarn/plugins/${f.exports.name}.cjs`,E=J.resolve(s.cwd,h);a.reportInfo(0,`Saving the new plugin in ${he.pretty(n,h,\"magenta\")}`),await ce.mkdirPromise(J.dirname(E),{recursive:!0}),await ce.writeFilePromise(E,e);let C={path:h,spec:t};r&&(C.checksum=Nn.makeHash(e)),await ze.addPlugin(s.cwd,[C])}var nct=({pluginName:t,noMinify:e},r)=>[[\"yarn\",`build:${t}`,...e?[\"--no-minify\"]:[],\"|\"]],xC=class extends ft{constructor(){super(...arguments);this.installPath=ge.String(\"--path\",{description:\"The path where the repository should be cloned to\"});this.repository=ge.String(\"--repository\",\"https://github.com/yarnpkg/berry.git\",{description:\"The repository that should be cloned\"});this.branch=ge.String(\"--branch\",\"master\",{description:\"The branch of the repository that should be cloned\"});this.noMinify=ge.Boolean(\"--no-minify\",!1,{description:\"Build a plugin for development (debugging) - non-minified and non-mangled\"});this.force=ge.Boolean(\"-f,--force\",!1,{description:\"Always clone the repository instead of trying to fetch the latest commits\"});this.name=ge.String()}static{this.paths=[[\"plugin\",\"import\",\"from\",\"sources\"]]}static{this.usage=ot.Usage({category:\"Plugin-related commands\",description:\"build a plugin from sources\",details:`\n      This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.\n\n      The plugins can be referenced by their short name if sourced from the official Yarn repository.\n    `,examples:[['Build and activate the \"@yarnpkg/plugin-exec\" plugin',\"$0 plugin import from sources @yarnpkg/plugin-exec\"],['Build and activate the \"@yarnpkg/plugin-exec\" plugin (shorthand)',\"$0 plugin import from sources exec\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=typeof this.installPath<\"u\"?J.resolve(this.context.cwd,fe.toPortablePath(this.installPath)):J.resolve(fe.toPortablePath((0,Iye.tmpdir)()),\"yarnpkg-sources\",Nn.makeHash(this.repository).slice(0,6));return(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:c}=await Rt.find(r,this.context.cwd),f=G.parseIdent(this.name.replace(/^((@yarnpkg\\/)?plugin-)?/,\"@yarnpkg/plugin-\")),p=G.stringifyIdent(f),h=await Sm(r,fn);if(!Object.hasOwn(h,p))throw new jt(51,`Couldn't find a plugin named \"${p}\" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await zq(this,{configuration:r,report:n,target:s}),await Zq(E,this,{project:c,report:n,target:s})})).exitCode()}};async function Zq(t,{context:e,noMinify:r},{project:s,report:a,target:n}){let c=t.replace(/@yarnpkg\\//,\"\"),{configuration:f}=s;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${c}`),a.reportSeparator(),await $v(nct({pluginName:c,noMinify:r},n),{configuration:f,context:e,target:n}),a.reportSeparator();let p=J.resolve(n,`packages/${c}/bundles/${t}.js`),h=await ce.readFilePromise(p);await Xq(t,h,{project:s,report:a})}Ge();Dt();Yt();var kC=class extends ft{constructor(){super(...arguments);this.name=ge.String()}static{this.paths=[[\"plugin\",\"remove\"]]}static{this.usage=ot.Usage({category:\"Plugin-related commands\",description:\"remove a plugin\",details:`\n      This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.\n\n      **Note:** The plugins have to be referenced by their name property, which can be obtained using the \\`yarn plugin runtime\\` command. Shorthands are not allowed.\n   `,examples:[[\"Remove a plugin imported from the Yarn repository\",\"$0 plugin remove @yarnpkg/plugin-typescript\"],[\"Remove a plugin imported from a local file\",\"$0 plugin remove my-local-plugin\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);return(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{let c=this.name,f=G.parseIdent(c);if(!r.plugins.has(c))throw new nt(`${G.prettyIdent(r,f)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${c}.cjs`,h=J.resolve(s.cwd,p);ce.existsSync(h)&&(n.reportInfo(0,`Removing ${he.pretty(r,p,he.Type.PATH)}...`),await ce.removePromise(h)),n.reportInfo(0,\"Updating the configuration...\"),await ze.updateConfiguration(s.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let C=E.filter(S=>S.path!==p);return C.length===0?ze.deleteProperty:C.length===E.length?E:C}})})).exitCode()}};Ge();Yt();var QC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}static{this.paths=[[\"plugin\",\"runtime\"]]}static{this.usage=ot.Usage({category:\"Plugin-related commands\",description:\"list the active plugins\",details:`\n      This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.\n    `,examples:[[\"List the currently active plugins\",\"$0 plugin runtime\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let c=this.context.plugins.plugins.has(n),f=n;c&&(f+=\" [builtin]\"),a.reportJson({name:n,builtin:c}),a.reportInfo(null,`${f}`)}})).exitCode()}};Ge();Ge();Yt();var RC=class extends ft{constructor(){super(...arguments);this.idents=ge.Rest()}static{this.paths=[[\"rebuild\"]]}static{this.usage=ot.Usage({description:\"rebuild the project's native packages\",details:`\n      This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.\n\n      Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future).\n\n      By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory.\n    `,examples:[[\"Rebuild all packages\",\"$0 rebuild\"],[\"Rebuild fsevents only\",\"$0 rebuild fsevents\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);let c=new Set;for(let f of this.idents)c.add(G.parseIdent(f).identHash);if(await s.restoreInstallState({restoreResolutions:!1}),await s.resolveEverything({cache:n,report:new ki}),c.size>0)for(let f of s.storedPackages.values())c.has(f.identHash)&&(s.storedBuildState.delete(f.locatorHash),s.skippedBuilds.delete(f.locatorHash));else s.storedBuildState.clear(),s.skippedBuilds.clear();return await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();Yt();var $q=ut(Go());Ul();var TC=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean(\"-A,--all\",!1,{description:\"Apply the operation to all workspaces from the current project\"});this.mode=ge.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:fo($l)});this.patterns=ge.Rest()}static{this.paths=[[\"remove\"]]}static{this.usage=ot.Usage({description:\"remove dependencies from the project\",details:`\n      This command will remove the packages matching the specified patterns from the current workspace.\n\n      If the \\`--mode=<mode>\\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n      - \\`skip-build\\` will not run the build scripts at all. Note that this is different from setting \\`enableScripts\\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n      - \\`update-lockfile\\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n      This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n    `,examples:[[\"Remove a dependency from the current project\",\"$0 remove lodash\"],[\"Remove a dependency from all workspaces at once\",\"$0 remove lodash --all\"],[\"Remove all dependencies starting with `eslint-`\",\"$0 remove 'eslint-*'\"],[\"Remove all dependencies with the `@babel` scope\",\"$0 remove '@babel/*'\"],[\"Remove all dependencies matching `react-dom` or `react-helmet`\",\"$0 remove 'react-{dom,helmet}'\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.all?s.workspaces:[a],f=[\"dependencies\",\"devDependencies\",\"peerDependencies\"],p=[],h=!1,E=[];for(let I of this.patterns){let T=!1,N=G.parseIdent(I);for(let U of c){let W=[...U.manifest.peerDependenciesMeta.keys()];for(let ee of(0,$q.default)(W,I))U.manifest.peerDependenciesMeta.delete(ee),h=!0,T=!0;for(let ee of f){let ie=U.manifest.getForScope(ee),ue=[...ie.values()].map(le=>G.stringifyIdent(le));for(let le of(0,$q.default)(ue,G.stringifyIdent(N))){let{identHash:me}=G.parseIdent(le),pe=ie.get(me);if(typeof pe>\"u\")throw new Error(\"Assertion failed: Expected the descriptor to be registered\");U.manifest[ee].delete(me),E.push([U,ee,pe]),h=!0,T=!0}}}T||p.push(I)}let C=p.length>1?\"Patterns\":\"Pattern\",S=p.length>1?\"don't\":\"doesn't\",b=this.all?\"any\":\"this\";if(p.length>0)throw new nt(`${C} ${he.prettyList(r,p,he.Type.CODE)} ${S} match any packages referenced by ${b} workspace`);return h?(await r.triggerMultipleHooks(I=>I.afterWorkspaceDependencyRemoval,E),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};Ge();Ge();Yt();var Cye=Ie(\"util\"),FC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}static{this.paths=[[\"run\"]]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);return(await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async c=>{let f=a.manifest.scripts,p=je.sortMap(f.keys(),C=>C),h={breakLength:1/0,colors:r.get(\"enableColors\"),maxArrayLength:2},E=p.reduce((C,S)=>Math.max(C,S.length),0);for(let[C,S]of f.entries())c.reportInfo(null,`${C.padEnd(E,\" \")}   ${(0,Cye.inspect)(S,h)}`),c.reportJson({name:C,script:S})})).exitCode()}};Ge();Ge();Yt();var NC=class extends ft{constructor(){super(...arguments);this.inspect=ge.String(\"--inspect\",!1,{tolerateBoolean:!0,description:\"Forwarded to the underlying Node process when executing a binary\"});this.inspectBrk=ge.String(\"--inspect-brk\",!1,{tolerateBoolean:!0,description:\"Forwarded to the underlying Node process when executing a binary\"});this.topLevel=ge.Boolean(\"-T,--top-level\",!1,{description:\"Check the root workspace for scripts and/or binaries instead of the current one\"});this.binariesOnly=ge.Boolean(\"-B,--binaries-only\",!1,{description:\"Ignore any user defined scripts and only check for binaries\"});this.require=ge.String(\"--require\",{description:\"Forwarded to the underlying Node process when executing a binary\"});this.silent=ge.Boolean(\"--silent\",{hidden:!0});this.scriptName=ge.String();this.args=ge.Proxy()}static{this.paths=[[\"run\"]]}static{this.usage=ot.Usage({description:\"run a script defined in the package.json\",details:`\n      This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:\n\n      - If the \\`scripts\\` field from your local package.json contains a matching script name, its definition will get executed.\n\n      - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed.\n\n      - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.\n\n      Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).\n    `,examples:[[\"Run the tests from the local workspace\",\"$0 run test\"],['Same thing, but without the \"run\" keyword',\"$0 test\"],[\"Inspect Webpack while running\",\"$0 run --inspect-brk webpack\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a,locator:n}=await Rt.find(r,this.context.cwd);await s.restoreInstallState();let c=this.topLevel?s.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await In.hasPackageScript(c,this.scriptName,{project:s}))return await In.executePackageScript(c,this.scriptName,this.args,{project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let f=await In.getPackageAccessibleBinaries(c,{project:s});if(f.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect==\"string\"?h.push(`--inspect=${this.inspect}`):h.push(\"--inspect\")),this.inspectBrk&&(typeof this.inspectBrk==\"string\"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push(\"--inspect-brk\")),this.require&&h.push(`--require=${this.require}`),await In.executePackageAccessibleBinary(c,this.scriptName,this.args,{cwd:this.context.cwd,project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:f})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(\":\")){let E=(await Promise.all(s.workspaces.map(async C=>C.manifest.scripts.has(this.scriptName)?C:null))).filter(C=>C!==null);if(E.length===1)return await In.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName===\"node-gyp\"?new nt(`Couldn't find a script name \"${this.scriptName}\" in the top-level (used by ${G.prettyLocator(r,n)}). This typically happens because some package depends on \"node-gyp\" to build itself, but didn't list it in their dependencies. To fix that, please run \"yarn add node-gyp\" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new nt(`Couldn't find a script name \"${this.scriptName}\" in the top-level (used by ${G.prettyLocator(r,n)}).`);{if(this.scriptName===\"global\")throw new nt(\"The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead\");let h=[this.scriptName].concat(this.args);for(let[E,C]of $I)for(let S of C)if(h.length>=S.length&&JSON.stringify(h.slice(0,S.length))===JSON.stringify(S))throw new nt(`Couldn't find a script named \"${this.scriptName}\", but a matching command can be found in the ${E} plugin. You can install it with \"yarn plugin import ${E}\".`);throw new nt(`Couldn't find a script named \"${this.scriptName}\".`)}}};Ge();Ge();Yt();var OC=class extends ft{constructor(){super(...arguments);this.descriptor=ge.String();this.resolution=ge.String()}static{this.paths=[[\"set\",\"resolution\"]]}static{this.usage=ot.Usage({description:\"enforce a package resolution\",details:'\\n      This command updates the resolution table so that `descriptor` is resolved by `resolution`.\\n\\n      Note that by default this command only affect the current resolution table - meaning that this \"manual override\" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\\n\\n      Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\\n    ',examples:[[\"Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0\",\"$0 set resolution lodash@npm:^1.2.3 npm:1.5.0\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(await s.restoreInstallState({restoreResolutions:!1}),!a)throw new ar(s.cwd,this.context.cwd);let c=G.parseDescriptor(this.descriptor,!0),f=G.makeDescriptor(c,this.resolution);return s.storedDescriptors.set(c.descriptorHash,c),s.storedDescriptors.set(f.descriptorHash,f),s.resolutionAliases.set(c.descriptorHash,f.descriptorHash),await s.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Ge();Dt();Yt();var wye=ut(Go()),LC=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean(\"-A,--all\",!1,{description:\"Unlink all workspaces belonging to the target project from the current one\"});this.leadingArguments=ge.Rest()}static{this.paths=[[\"unlink\"]]}static{this.usage=ot.Usage({description:\"disconnect the local project from another one\",details:`\n      This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments.\n    `,examples:[[\"Unregister a remote workspace in the current project\",\"$0 unlink ~/ts-loader\"],[\"Unregister all workspaces from a remote project in the current project\",\"$0 unlink ~/jest --all\"],[\"Unregister all previously linked workspaces\",\"$0 unlink --all\"],[\"Unregister all workspaces matching a glob\",\"$0 unlink '@babel/*' 'pkg-{a,b}'\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);let c=s.topLevelWorkspace,f=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of c.manifest.resolutions)h.startsWith(\"portal:\")&&f.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=J.resolve(this.context.cwd,fe.toPortablePath(p));if(je.isPathLike(p)){let E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:S}=await Rt.find(E,h);if(!S)throw new ar(C.cwd,h);if(this.all){for(let b of C.workspaces)b.manifest.name&&f.add(G.stringifyIdent(b.anchoredLocator));if(f.size===0)throw new nt(\"No workspace found to be unlinked in the target project\")}else{if(!S.manifest.name)throw new nt(\"The target workspace doesn't have a name and thus cannot be unlinked\");f.add(G.stringifyIdent(S.anchoredLocator))}}else{let E=[...c.manifest.resolutions.map(({pattern:C})=>C.descriptor.fullName)];for(let C of(0,wye.default)(E,p))f.add(C)}}return c.manifest.resolutions=c.manifest.resolutions.filter(({pattern:p})=>!f.has(p.descriptor.fullName)),await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();Yt();var Bye=ut(Vv()),e5=ut(Go());Ul();var MC=class extends ft{constructor(){super(...arguments);this.interactive=ge.Boolean(\"-i,--interactive\",{description:\"Offer various choices, depending on the detected upgrade paths\"});this.fixed=ge.Boolean(\"-F,--fixed\",!1,{description:\"Store dependency tags as-is instead of resolving them\"});this.exact=ge.Boolean(\"-E,--exact\",!1,{description:\"Don't use any semver modifier on the resolved range\"});this.tilde=ge.Boolean(\"-T,--tilde\",!1,{description:\"Use the `~` semver modifier on the resolved range\"});this.caret=ge.Boolean(\"-C,--caret\",!1,{description:\"Use the `^` semver modifier on the resolved range\"});this.recursive=ge.Boolean(\"-R,--recursive\",!1,{description:\"Resolve again ALL resolutions for those packages\"});this.mode=ge.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:fo($l)});this.patterns=ge.Rest()}static{this.paths=[[\"up\"]]}static{this.usage=ot.Usage({description:\"upgrade dependencies across the project\",details:\"\\n      This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\\n\\n      If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\\n\\n      If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\\n\\n      The, `-C,--caret`, `-E,--exact` and  `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\\n\\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\\n\\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\\n\\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\\n\\n      Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\\n\\n      This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\\n\\n      **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\\n    \",examples:[[\"Upgrade all instances of lodash to the latest release\",\"$0 up lodash\"],[\"Upgrade all instances of lodash to the latest release, but ask confirmation for each\",\"$0 up lodash -i\"],[\"Upgrade all instances of lodash to 1.2.3\",\"$0 up lodash@1.2.3\"],[\"Upgrade all instances of packages with the `@babel` scope to the latest release\",\"$0 up '@babel/*'\"],[\"Upgrade all instances of packages containing the word `jest` to the latest release\",\"$0 up '*jest*'\"],[\"Upgrade all instances of packages with the `@babel` scope to 7.0.0\",\"$0 up '@babel/*@7.0.0'\"]]})}static{this.schema=[tB(\"recursive\",qf.Forbids,[\"interactive\",\"exact\",\"tilde\",\"caret\"],{ignore:[void 0,!1]})]}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=[...s.storedDescriptors.values()],f=c.map(E=>G.stringifyIdent(E)),p=new Set;for(let E of this.patterns){if(G.parseDescriptor(E).range!==\"unknown\")throw new nt(\"Ranges aren't allowed when using --recursive\");for(let C of(0,e5.default)(f,E)){let S=G.parseIdent(C);p.add(S.identHash)}}let h=c.filter(E=>p.has(E.identHash));for(let E of h)s.storedDescriptors.delete(E.descriptorHash),s.storedResolutions.delete(E.descriptorHash);return await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}async executeUpClassic(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.fixed,f=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=Kv(this,s),h=f?[\"keep\",\"reuse\",\"project\",\"latest\"]:[\"project\",\"latest\"],E=[],C=[];for(let N of this.patterns){let U=!1,W=G.parseDescriptor(N),ee=G.stringifyIdent(W);for(let ie of s.workspaces)for(let ue of[\"dependencies\",\"devDependencies\"]){let me=[...ie.manifest.getForScope(ue).values()].map(Be=>G.stringifyIdent(Be)),pe=ee===\"*\"?me:(0,e5.default)(me,ee);for(let Be of pe){let Ce=G.parseIdent(Be),g=ie.manifest[ue].get(Ce.identHash);if(typeof g>\"u\")throw new Error(\"Assertion failed: Expected the descriptor to be registered\");let we=G.makeDescriptor(Ce,W.range);E.push(Promise.resolve().then(async()=>[ie,ue,g,await zv(we,{project:s,workspace:ie,cache:n,target:ue,fixed:c,modifier:p,strategies:h})])),U=!0}}U||C.push(N)}if(C.length>1)throw new nt(`Patterns ${he.prettyList(r,C,he.Type.CODE)} don't match any packages referenced by any workspace`);if(C.length>0)throw new nt(`Pattern ${he.prettyList(r,C,he.Type.CODE)} doesn't match any packages referenced by any workspace`);let S=await Promise.all(E),b=await lA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async N=>{for(let[,,U,{suggestions:W,rejections:ee}]of S){let ie=W.filter(ue=>ue.descriptor!==null);if(ie.length===0){let[ue]=ee;if(typeof ue>\"u\")throw new Error(\"Assertion failed: Expected an error to have been set\");let le=this.cli.error(ue);s.configuration.get(\"enableNetwork\")?N.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range\n\n${le}`):N.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled)\n\n${le}`)}else ie.length>1&&!f&&N.reportError(27,`${G.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(b.hasErrors())return b.exitCode();let I=!1,T=[];for(let[N,U,,{suggestions:W}]of S){let ee,ie=W.filter(pe=>pe.descriptor!==null),ue=ie[0].descriptor,le=ie.every(pe=>G.areDescriptorsEqual(pe.descriptor,ue));ie.length===1||le?ee=ue:(I=!0,{answer:ee}=await(0,Bye.prompt)({type:\"select\",name:\"answer\",message:`Which range do you want to use in ${G.prettyWorkspace(r,N)} \\u276F ${U}?`,choices:W.map(({descriptor:pe,name:Be,reason:Ce})=>pe?{name:Be,hint:Ce,descriptor:pe}:{name:Be,hint:Ce,disabled:!0}),onCancel:()=>process.exit(130),result(pe){return this.find(pe,\"descriptor\")},stdin:this.context.stdin,stdout:this.context.stdout}));let me=N.manifest[U].get(ee.identHash);if(typeof me>\"u\")throw new Error(\"Assertion failed: This descriptor should have a matching entry\");if(me.descriptorHash!==ee.descriptorHash)N.manifest[U].set(ee.identHash,ee),T.push([N,U,me,ee]);else{let pe=r.makeResolver(),Be={project:s,resolver:pe},Ce=r.normalizeDependency(me),g=pe.bindDescriptor(Ce,N.anchoredLocator,Be);s.forgetResolution(g)}}return await r.triggerMultipleHooks(N=>N.afterWorkspaceDependencyReplacement,T),I&&this.context.stdout.write(`\n`),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Ge();Ge();Ge();Yt();var UC=class extends ft{constructor(){super(...arguments);this.recursive=ge.Boolean(\"-R,--recursive\",!1,{description:\"List, for each workspace, what are all the paths that lead to the dependency\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.peers=ge.Boolean(\"--peers\",!1,{description:\"Also print the peer dependencies that match the specified name\"});this.package=ge.String()}static{this.paths=[[\"why\"]]}static{this.usage=ot.Usage({description:\"display the reason why a package is needed\",details:`\n      This command prints the exact reasons why a package appears in the dependency tree.\n\n      If \\`-R,--recursive\\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named \"Foo\" when looking for \"Bar\", it means that \"Foo\" already got printed higher in the tree.\n    `,examples:[[\"Explain why lodash is used in your project\",\"$0 why lodash\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=G.parseIdent(this.package).identHash,c=this.recursive?sct(s,n,{configuration:r,peers:this.peers}):ict(s,n,{configuration:r,peers:this.peers});xs.emitTree(c,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function ict(t,e,{configuration:r,peers:s}){let a=je.sortMap(t.storedPackages.values(),f=>G.stringifyLocator(f)),n={},c={children:n};for(let f of a){let p={};for(let E of f.dependencies.values()){if(!s&&f.peerDependencies.has(E.identHash))continue;let C=t.storedResolutions.get(E.descriptorHash);if(!C)throw new Error(\"Assertion failed: The resolution should have been registered\");let S=t.storedPackages.get(C);if(!S)throw new Error(\"Assertion failed: The package should have been registered\");if(S.identHash!==e)continue;{let I=G.stringifyLocator(f);n[I]={value:[f,he.Type.LOCATOR],children:p}}let b=G.stringifyLocator(S);p[b]={value:[{descriptor:E,locator:S},he.Type.DEPENDENT]}}}return c}function sct(t,e,{configuration:r,peers:s}){let a=je.sortMap(t.workspaces,S=>G.stringifyLocator(S.anchoredLocator)),n=new Set,c=new Set,f=S=>{if(n.has(S.locatorHash))return c.has(S.locatorHash);if(n.add(S.locatorHash),S.identHash===e)return c.add(S.locatorHash),!0;let b=!1;S.identHash===e&&(b=!0);for(let I of S.dependencies.values()){if(!s&&S.peerDependencies.has(I.identHash))continue;let T=t.storedResolutions.get(I.descriptorHash);if(!T)throw new Error(\"Assertion failed: The resolution should have been registered\");let N=t.storedPackages.get(T);if(!N)throw new Error(\"Assertion failed: The package should have been registered\");f(N)&&(b=!0)}return b&&c.add(S.locatorHash),b};for(let S of a)f(S.anchoredPackage);let p=new Set,h={},E={children:h},C=(S,b,I)=>{if(!c.has(S.locatorHash))return;let T=I!==null?he.tuple(he.Type.DEPENDENT,{locator:S,descriptor:I}):he.tuple(he.Type.LOCATOR,S),N={},U={value:T,children:N},W=G.stringifyLocator(S);if(b[W]=U,!(I!==null&&t.tryWorkspaceByLocator(S))&&!p.has(S.locatorHash)){p.add(S.locatorHash);for(let ee of S.dependencies.values()){if(!s&&S.peerDependencies.has(ee.identHash))continue;let ie=t.storedResolutions.get(ee.descriptorHash);if(!ie)throw new Error(\"Assertion failed: The resolution should have been registered\");let ue=t.storedPackages.get(ie);if(!ue)throw new Error(\"Assertion failed: The package should have been registered\");C(ue,N,ee)}}};for(let S of a)C(S.anchoredPackage,h,null);return E}Ge();var u5={};Vt(u5,{GitFetcher:()=>tS,GitResolver:()=>rS,default:()=>Dct,gitUtils:()=>ka});Ge();Dt();var ka={};Vt(ka,{TreeishProtocols:()=>eS,clone:()=>c5,fetchBase:()=>qye,fetchChangedFiles:()=>Wye,fetchChangedWorkspaces:()=>vct,fetchRoot:()=>Gye,isGitUrl:()=>jC,lsRemote:()=>jye,normalizeLocator:()=>Bct,normalizeRepoUrl:()=>_C,resolveUrl:()=>l5,splitRepoUrl:()=>W0,validateRepoUrl:()=>a5});Ge();Dt();Yt();ql();var _ye=ut(Lye()),HC=ut(Ie(\"querystring\")),s5=ut(Ai());function i5(t,e,r){let s=t.indexOf(r);return t.lastIndexOf(e,s>-1?s:1/0)}function Mye(t){try{return new URL(t)}catch{return}}function Cct(t){let e=i5(t,\"@\",\"#\"),r=i5(t,\":\",\"#\");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),i5(t,\":\",\"#\")===-1&&t.indexOf(\"//\")===-1&&(t=`ssh://${t}`),t}function Uye(t){return Mye(t)||Mye(Cct(t))}function _C(t,{git:e=!1}={}){if(t=t.replace(/^git\\+https:/,\"https:\"),t=t.replace(/^(?:github:|https:\\/\\/github\\.com\\/|git:\\/\\/github\\.com\\/)?(?!\\.{1,2}\\/)([a-zA-Z0-9._-]+)\\/(?!\\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\\.git)?(#.*)?$/,\"https://github.com/$1/$2.git$3\"),t=t.replace(/^https:\\/\\/github\\.com\\/(?!\\.{1,2}\\/)([a-zA-Z0-9._-]+)\\/(?!\\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\\/tarball\\/(.+)?$/,\"https://github.com/$1/$2.git#$3\"),e){let r=Uye(t);r&&(t=r.href),t=t.replace(/^git\\+([^:]+):/,\"$1:\")}return t}function Hye(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||\"ssh\"} -o BatchMode=yes`}}var wct=[/^ssh:/,/^git(?:\\+[^:]+)?:/,/^(?:git\\+)?https?:[^#]+\\/[^#]+(?:\\.git)(?:#.*)?$/,/^git@[^#]+\\/[^#]+\\.git(?:#.*)?$/,/^(?:github:|https:\\/\\/github\\.com\\/)?(?!\\.{1,2}\\/)([a-zA-Z._0-9-]+)\\/(?!\\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\\.git)?(?:#.*)?$/,/^https:\\/\\/github\\.com\\/(?!\\.{1,2}\\/)([a-zA-Z0-9._-]+)\\/(?!\\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\\/tarball\\/(.+)?$/],eS=(a=>(a.Commit=\"commit\",a.Head=\"head\",a.Tag=\"tag\",a.Semver=\"semver\",a))(eS||{});function jC(t){return t?wct.some(e=>!!t.match(e)):!1}function W0(t){t=_C(t);let e=t.indexOf(\"#\");if(e===-1)return{repo:t,treeish:{protocol:\"head\",request:\"HEAD\"},extra:{}};let r=t.slice(0,e),s=t.slice(e+1);if(s.match(/^[a-z]+=/)){let a=HC.default.parse(s);for(let[p,h]of Object.entries(a))if(typeof h!=\"string\")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(eS).find(p=>Object.hasOwn(a,p)),[c,f]=typeof n<\"u\"?[n,a[n]]:[\"head\",\"HEAD\"];for(let p of Object.values(eS))delete a[p];return{repo:r,treeish:{protocol:c,request:f},extra:a}}else{let a=s.indexOf(\":\"),[n,c]=a===-1?[null,s]:[s.slice(0,a),s.slice(a+1)];return{repo:r,treeish:{protocol:n,request:c},extra:{}}}}function Bct(t){return G.makeLocator(t,_C(t.reference))}function a5(t,{configuration:e}){let r=_C(t,{git:!0});if(!ln.getNetworkSettings(`https://${(0,_ye.default)(r).resource}`,{configuration:e}).enableNetwork)throw new jt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function jye(t,e){let r=a5(t,{configuration:e}),s=await o5(\"listing refs\",[\"ls-remote\",r],{cwd:e.startingCwd,env:Hye()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\\t([^\\n]+)/gm,c;for(;(c=n.exec(s.stdout))!==null;)a.set(c[2],c[1]);return a}async function l5(t,e){let{repo:r,treeish:{protocol:s,request:a},extra:n}=W0(t),c=await jye(r,e),f=(h,E)=>{switch(h){case\"commit\":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error(\"Invalid commit hash\");return HC.default.stringify({...n,commit:E})}case\"head\":{let C=c.get(E===\"HEAD\"?E:`refs/heads/${E}`);if(typeof C>\"u\")throw new Error(`Unknown head (\"${E}\")`);return HC.default.stringify({...n,commit:C})}case\"tag\":{let C=c.get(`refs/tags/${E}`);if(typeof C>\"u\")throw new Error(`Unknown tag (\"${E}\")`);return HC.default.stringify({...n,commit:C})}case\"semver\":{let C=Fr.validRange(E);if(!C)throw new Error(`Invalid range (\"${E}\")`);let S=new Map([...c.entries()].filter(([I])=>I.startsWith(\"refs/tags/\")).map(([I,T])=>[s5.default.parse(I.slice(10)),T]).filter(I=>I[0]!==null)),b=s5.default.maxSatisfying([...S.keys()],C);if(b===null)throw new Error(`No matching range (\"${E}\")`);return HC.default.stringify({...n,commit:S.get(b)})}case null:{let C;if((C=p(\"commit\",E))!==null||(C=p(\"tag\",E))!==null||(C=p(\"head\",E))!==null)return C;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve \"${E}\" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve \"${E}\" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol (\"${h}\")`)}},p=(h,E)=>{try{return f(h,E)}catch{return null}};return _C(`${r}#${f(s,a)}`)}async function c5(t,e){return await e.getLimit(\"cloneConcurrency\")(async()=>{let{repo:r,treeish:{protocol:s,request:a}}=W0(t);if(s!==\"commit\")throw new Error(\"Invalid treeish protocol when cloning\");let n=a5(r,{configuration:e}),c=await ce.mktempPromise(),f={cwd:c,env:Hye()};return await o5(\"cloning the repository\",[\"clone\",\"-c core.autocrlf=false\",n,fe.fromPortablePath(c)],f,{configuration:e,normalizedRepoUrl:n}),await o5(\"switching branch\",[\"checkout\",`${a}`],f,{configuration:e,normalizedRepoUrl:n}),c})}async function Gye(t){let e,r=t;do{if(e=r,await ce.existsPromise(J.join(e,\".git\")))return e;r=J.dirname(e)}while(r!==e);return null}async function qye(t,{baseRefs:e}){if(e.length===0)throw new nt(\"Can't run this command with zero base refs specified.\");let r=[];for(let f of e){let{code:p}=await qr.execvp(\"git\",[\"merge-base\",f,\"HEAD\"],{cwd:t});p===0&&r.push(f)}if(r.length===0)throw new nt(`No ancestor could be found between any of HEAD and ${e.join(\", \")}`);let{stdout:s}=await qr.execvp(\"git\",[\"merge-base\",\"HEAD\",...r],{cwd:t,strict:!0}),a=s.trim(),{stdout:n}=await qr.execvp(\"git\",[\"show\",\"--quiet\",\"--pretty=format:%s\",a],{cwd:t,strict:!0}),c=n.trim();return{hash:a,title:c}}async function Wye(t,{base:e,project:r}){let s=je.buildIgnorePattern(r.configuration.get(\"changesetIgnorePatterns\")),{stdout:a}=await qr.execvp(\"git\",[\"diff\",\"--name-only\",`${e}`],{cwd:t,strict:!0}),n=a.split(/\\r\\n|\\r|\\n/).filter(h=>h.length>0).map(h=>J.resolve(t,fe.toPortablePath(h))),{stdout:c}=await qr.execvp(\"git\",[\"ls-files\",\"--others\",\"--exclude-standard\"],{cwd:t,strict:!0}),f=c.split(/\\r\\n|\\r|\\n/).filter(h=>h.length>0).map(h=>J.resolve(t,fe.toPortablePath(h))),p=[...new Set([...n,...f].sort())];return s?p.filter(h=>!J.relative(r.cwd,h).match(s)):p}async function vct({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new nt(\"This command can only be run from within a Yarn project\");let r=[J.resolve(e.cwd,Er.lockfile),J.resolve(e.cwd,e.configuration.get(\"cacheFolder\")),J.resolve(e.cwd,e.configuration.get(\"installStatePath\")),J.resolve(e.cwd,e.configuration.get(\"virtualFolder\"))];await e.configuration.triggerHook(c=>c.populateYarnPaths,e,c=>{c!=null&&r.push(c)});let s=await Gye(e.configuration.projectCwd);if(s==null)throw new nt(\"This command can only be run on Git repositories\");let a=await qye(s,{baseRefs:typeof t==\"string\"?[t]:e.configuration.get(\"changesetBaseRefs\")}),n=await Wye(s,{base:a.hash,project:e});return new Set(je.mapAndFilter(n,c=>{let f=e.tryWorkspaceByFilePath(c);return f===null?je.mapAndFilter.skip:r.some(p=>c.startsWith(p))?je.mapAndFilter.skip:f}))}async function o5(t,e,r,{configuration:s,normalizedRepoUrl:a}){try{return await qr.execvp(\"git\",e,{...r,strict:!0})}catch(n){if(!(n instanceof qr.ExecError))throw n;let c=n.reportExtra,f=n.stderr.toString();throw new jt(1,`Failed ${t}`,p=>{p.reportError(1,`  ${he.prettyField(s,{label:\"Repository URL\",value:he.tuple(he.Type.URL,a)})}`);for(let h of f.matchAll(/^(.+?): (.*)$/gm)){let[,E,C]=h;E=E.toLowerCase();let S=E===\"error\"?\"Error\":`${PB(E)} Error`;p.reportError(1,`  ${he.prettyField(s,{label:S,value:he.tuple(he.Type.NO_HINT,C)})}`)}c?.(p)})}}var tS=class{supports(e,r){return jC(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,a=new Map(r.checksums);a.set(e.locatorHash,s);let n={...r,checksums:a},c=await this.downloadHosted(e,n);if(c!==null)return c;let[f,p,h]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(e,n),...r.cacheOptions});return{packageFs:f,releaseFs:p,prefixPath:G.getIdentVendorPath(e),checksum:h}}async downloadHosted(e,r){return r.project.configuration.reduceHook(s=>s.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let s=W0(e.reference),a=await c5(e.reference,r.project.configuration),n=J.resolve(a,s.extra.cwd??vt.dot),c=J.join(n,\"package.tgz\");await In.prepareExternalProject(n,c,{configuration:r.project.configuration,report:r.report,workspace:s.extra.workspace,locator:e});let f=await ce.readFilePromise(c);return await je.releaseAfterUseAsync(async()=>await ps.convertToZip(f,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1}))}};Ge();Ge();var rS=class{supportsDescriptor(e,r){return jC(e.range)}supportsLocator(e,r){return jC(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=await l5(e.range,s.project.configuration);return[G.makeLocator(e,a)]}async getSatisfying(e,r,s,a){let n=W0(e.range);return{locators:s.filter(f=>{if(f.identHash!==e.identHash)return!1;let p=W0(f.reference);return!(n.repo!==p.repo||n.treeish.protocol===\"commit\"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||\"0.0.0\",languageName:a.languageName||r.project.configuration.get(\"defaultLanguageName\"),linkType:\"HARD\",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Sct={configuration:{changesetBaseRefs:{description:\"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.\",type:\"STRING\",isArray:!0,isNullable:!1,default:[\"master\",\"origin/master\",\"upstream/master\",\"main\",\"origin/main\",\"upstream/main\"]},changesetIgnorePatterns:{description:\"Array of glob patterns; files matching them will be ignored when fetching the changed files\",type:\"STRING\",default:[],isArray:!0},cloneConcurrency:{description:\"Maximal number of concurrent clones\",type:\"NUMBER\",default:2}},fetchers:[tS],resolvers:[rS]};var Dct=Sct;Yt();var GC=class extends ft{constructor(){super(...arguments);this.since=ge.String(\"--since\",{description:\"Only include workspaces that have been changed since the specified ref.\",tolerateBoolean:!0});this.recursive=ge.Boolean(\"-R,--recursive\",!1,{description:\"Find packages via dependencies/devDependencies instead of using the workspaces field\"});this.noPrivate=ge.Boolean(\"--no-private\",{description:\"Exclude workspaces that have the private field set to true\"});this.verbose=ge.Boolean(\"-v,--verbose\",!1,{description:\"Also return the cross-dependencies between workspaces\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}static{this.paths=[[\"workspaces\",\"list\"]]}static{this.usage=ot.Usage({category:\"Workspace-related commands\",description:\"list all available workspaces\",details:\"\\n      This command will print the list of all workspaces in the project.\\n\\n      - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\\n\\n      - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\\n\\n      - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\\n\\n      - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\\n    \"})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let c=this.since?await ka.fetchChangedWorkspaces({ref:this.since,project:s}):s.workspaces,f=new Set(c);if(this.recursive)for(let p of[...c].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)f.add(h);for(let p of f){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let C=new Set,S=new Set;for(let b of Ut.hardDependencies)for(let[I,T]of h.getForScope(b)){let N=s.tryWorkspaceByDescriptor(T);N===null?s.workspacesByIdent.has(I)&&S.add(T):C.add(N)}E={workspaceDependencies:Array.from(C).map(b=>b.relativeCwd),mismatchedWorkspaceDependencies:Array.from(S).map(b=>G.stringifyDescriptor(b))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?G.stringifyIdent(h.name):null,...E})}})).exitCode()}};Ge();Ge();Yt();var qC=class extends ft{constructor(){super(...arguments);this.workspaceName=ge.String();this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[[\"workspace\"]]}static{this.usage=ot.Usage({category:\"Workspace-related commands\",description:\"run a command within the specified workspace\",details:`\n      This command will run a given sub-command on a single workspace.\n    `,examples:[[\"Add a package to a single workspace\",\"yarn workspace components add -D react\"],[\"Run build script on a single workspace\",\"yarn workspace components run build\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=s.workspaces,c=new Map(n.map(p=>[G.stringifyIdent(p.anchoredLocator),p])),f=c.get(this.workspaceName);if(f===void 0){let p=Array.from(c.keys()).sort();throw new nt(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:\n  - ${p.join(`\n  - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:f.cwd})}};var Pct={configuration:{enableImmutableInstalls:{description:\"If true (the default on CI), prevents the install command from modifying the lockfile\",type:\"BOOLEAN\",default:Yye.isCI},defaultSemverRangePrefix:{description:\"The default save prefix: '^', '~' or ''\",type:\"STRING\",values:[\"^\",\"~\",\"\"],default:\"^\"},preferReuse:{description:\"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.\",type:\"BOOLEAN\",default:!1}},commands:[aC,lC,cC,uC,OC,PC,EC,GC,pC,hC,gC,dC,sC,oC,fC,AC,mC,yC,IC,CC,wC,BC,LC,vC,SC,xC,bC,kC,DC,QC,RC,TC,FC,NC,MC,UC,qC]},bct=Pct;var d5={};Vt(d5,{default:()=>kct});Ge();var Qt={optional:!0},A5=[[\"@tailwindcss/aspect-ratio@<0.2.1\",{peerDependencies:{tailwindcss:\"^2.0.2\"}}],[\"@tailwindcss/line-clamp@<0.2.1\",{peerDependencies:{tailwindcss:\"^2.0.2\"}}],[\"@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0\",{peerDependencies:{postcss:\"^8.0.0\"}}],[\"@samverschueren/stream-to-observable@<0.3.1\",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],[\"any-observable@<0.5.1\",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],[\"@pm2/agent@<1.0.4\",{dependencies:{debug:\"*\"}}],[\"debug@<4.2.0\",{peerDependenciesMeta:{\"supports-color\":Qt}}],[\"got@<11\",{dependencies:{\"@types/responselike\":\"^1.0.0\",\"@types/keyv\":\"^3.1.1\"}}],[\"cacheable-lookup@<4.1.2\",{dependencies:{\"@types/keyv\":\"^3.1.1\"}}],[\"http-link-dataloader@*\",{peerDependencies:{graphql:\"^0.13.1 || ^14.0.0\"}}],[\"typescript-language-server@*\",{dependencies:{\"vscode-jsonrpc\":\"^5.0.1\",\"vscode-languageserver-protocol\":\"^3.15.0\"}}],[\"postcss-syntax@*\",{peerDependenciesMeta:{\"postcss-html\":Qt,\"postcss-jsx\":Qt,\"postcss-less\":Qt,\"postcss-markdown\":Qt,\"postcss-scss\":Qt}}],[\"jss-plugin-rule-value-function@<=10.1.1\",{dependencies:{\"tiny-warning\":\"^1.0.2\"}}],[\"ink-select-input@<4.1.0\",{peerDependencies:{react:\"^16.8.2\"}}],[\"license-webpack-plugin@<2.3.18\",{peerDependenciesMeta:{webpack:Qt}}],[\"snowpack@>=3.3.0\",{dependencies:{\"node-gyp\":\"^7.1.0\"}}],[\"promise-inflight@*\",{peerDependenciesMeta:{bluebird:Qt}}],[\"reactcss@*\",{peerDependencies:{react:\"*\"}}],[\"react-color@<=2.19.0\",{peerDependencies:{react:\"*\"}}],[\"gatsby-plugin-i18n@*\",{dependencies:{ramda:\"^0.24.1\"}}],[\"useragent@^2.0.0\",{dependencies:{request:\"^2.88.0\",yamlparser:\"0.0.x\",semver:\"5.5.x\"}}],[\"@apollographql/apollo-tools@<=0.5.2\",{peerDependencies:{graphql:\"^14.2.1 || ^15.0.0\"}}],[\"material-table@^2.0.0\",{dependencies:{\"@babel/runtime\":\"^7.11.2\"}}],[\"@babel/parser@*\",{dependencies:{\"@babel/types\":\"^7.8.3\"}}],[\"fork-ts-checker-webpack-plugin@<=6.3.4\",{peerDependencies:{eslint:\">= 6\",typescript:\">= 2.7\",webpack:\">= 4\",\"vue-template-compiler\":\"*\"},peerDependenciesMeta:{eslint:Qt,\"vue-template-compiler\":Qt}}],[\"rc-animate@<=3.1.1\",{peerDependencies:{react:\">=16.9.0\",\"react-dom\":\">=16.9.0\"}}],[\"react-bootstrap-table2-paginator@*\",{dependencies:{classnames:\"^2.2.6\"}}],[\"react-draggable@<=4.4.3\",{peerDependencies:{react:\">= 16.3.0\",\"react-dom\":\">= 16.3.0\"}}],[\"apollo-upload-client@<14\",{peerDependencies:{graphql:\"14 - 15\"}}],[\"react-instantsearch-core@<=6.7.0\",{peerDependencies:{algoliasearch:\">= 3.1 < 5\"}}],[\"react-instantsearch-dom@<=6.7.0\",{dependencies:{\"react-fast-compare\":\"^3.0.0\"}}],[\"ws@<7.2.1\",{peerDependencies:{bufferutil:\"^4.0.1\",\"utf-8-validate\":\"^5.0.2\"},peerDependenciesMeta:{bufferutil:Qt,\"utf-8-validate\":Qt}}],[\"react-portal@<4.2.2\",{peerDependencies:{\"react-dom\":\"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0\"}}],[\"react-scripts@<=4.0.1\",{peerDependencies:{react:\"*\"}}],[\"testcafe@<=1.10.1\",{dependencies:{\"@babel/plugin-transform-for-of\":\"^7.12.1\",\"@babel/runtime\":\"^7.12.5\"}}],[\"testcafe-legacy-api@<=4.2.0\",{dependencies:{\"testcafe-hammerhead\":\"^17.0.1\",\"read-file-relative\":\"^1.2.0\"}}],[\"@google-cloud/firestore@<=4.9.3\",{dependencies:{protobufjs:\"^6.8.6\"}}],[\"gatsby-source-apiserver@*\",{dependencies:{\"babel-polyfill\":\"^6.26.0\"}}],[\"@webpack-cli/package-utils@<=1.0.1-alpha.4\",{dependencies:{\"cross-spawn\":\"^7.0.3\"}}],[\"gatsby-remark-prismjs@<3.3.28\",{dependencies:{lodash:\"^4\"}}],[\"gatsby-plugin-favicon@*\",{peerDependencies:{webpack:\"*\"}}],[\"gatsby-plugin-sharp@<=4.6.0-next.3\",{dependencies:{debug:\"^4.3.1\"}}],[\"gatsby-react-router-scroll@<=5.6.0-next.0\",{dependencies:{\"prop-types\":\"^15.7.2\"}}],[\"@rebass/forms@*\",{dependencies:{\"@styled-system/should-forward-prop\":\"^5.0.0\"},peerDependencies:{react:\"^16.8.6\"}}],[\"rebass@*\",{peerDependencies:{react:\"^16.8.6\"}}],[\"@ant-design/react-slick@<=0.28.3\",{peerDependencies:{react:\">=16.0.0\"}}],[\"mqtt@<4.2.7\",{dependencies:{duplexify:\"^4.1.1\"}}],[\"vue-cli-plugin-vuetify@<=2.0.3\",{dependencies:{semver:\"^6.3.0\"},peerDependenciesMeta:{\"sass-loader\":Qt,\"vuetify-loader\":Qt}}],[\"vue-cli-plugin-vuetify@<=2.0.4\",{dependencies:{\"null-loader\":\"^3.0.0\"}}],[\"vue-cli-plugin-vuetify@>=2.4.3\",{peerDependencies:{vue:\"*\"}}],[\"@vuetify/cli-plugin-utils@<=0.0.4\",{dependencies:{semver:\"^6.3.0\"},peerDependenciesMeta:{\"sass-loader\":Qt}}],[\"@vue/cli-plugin-typescript@<=5.0.0-alpha.0\",{dependencies:{\"babel-loader\":\"^8.1.0\"}}],[\"@vue/cli-plugin-typescript@<=5.0.0-beta.0\",{dependencies:{\"@babel/core\":\"^7.12.16\"},peerDependencies:{\"vue-template-compiler\":\"^2.0.0\"},peerDependenciesMeta:{\"vue-template-compiler\":Qt}}],[\"cordova-ios@<=6.3.0\",{dependencies:{underscore:\"^1.9.2\"}}],[\"cordova-lib@<=10.0.1\",{dependencies:{underscore:\"^1.9.2\"}}],[\"git-node-fs@*\",{peerDependencies:{\"js-git\":\"^0.7.8\"},peerDependenciesMeta:{\"js-git\":Qt}}],[\"consolidate@<0.16.0\",{peerDependencies:{mustache:\"^3.0.0\"},peerDependenciesMeta:{mustache:Qt}}],[\"consolidate@<=0.16.0\",{peerDependencies:{velocityjs:\"^2.0.1\",tinyliquid:\"^0.2.34\",\"liquid-node\":\"^3.0.1\",jade:\"^1.11.0\",\"then-jade\":\"*\",dust:\"^0.3.0\",\"dustjs-helpers\":\"^1.7.4\",\"dustjs-linkedin\":\"^2.7.5\",swig:\"^1.4.2\",\"swig-templates\":\"^2.0.3\",\"razor-tmpl\":\"^1.3.1\",atpl:\">=0.7.6\",liquor:\"^0.0.5\",twig:\"^1.15.2\",ejs:\"^3.1.5\",eco:\"^1.1.0-rc-3\",jazz:\"^0.0.18\",jqtpl:\"~1.1.0\",hamljs:\"^0.6.2\",hamlet:\"^0.3.3\",whiskers:\"^0.4.0\",\"haml-coffee\":\"^1.14.1\",\"hogan.js\":\"^3.0.2\",templayed:\">=0.2.3\",handlebars:\"^4.7.6\",underscore:\"^1.11.0\",lodash:\"^4.17.20\",pug:\"^3.0.0\",\"then-pug\":\"*\",qejs:\"^3.0.5\",walrus:\"^0.10.1\",mustache:\"^4.0.1\",just:\"^0.1.8\",ect:\"^0.5.9\",mote:\"^0.2.0\",toffee:\"^0.3.6\",dot:\"^1.1.3\",\"bracket-template\":\"^1.1.5\",ractive:\"^1.3.12\",nunjucks:\"^3.2.2\",htmling:\"^0.0.8\",\"babel-core\":\"^6.26.3\",plates:\"~0.4.11\",\"react-dom\":\"^16.13.1\",react:\"^16.13.1\",\"arc-templates\":\"^0.5.3\",vash:\"^0.13.0\",slm:\"^2.0.0\",marko:\"^3.14.4\",teacup:\"^2.0.0\",\"coffee-script\":\"^1.12.7\",squirrelly:\"^5.1.0\",twing:\"^5.0.2\"},peerDependenciesMeta:{velocityjs:Qt,tinyliquid:Qt,\"liquid-node\":Qt,jade:Qt,\"then-jade\":Qt,dust:Qt,\"dustjs-helpers\":Qt,\"dustjs-linkedin\":Qt,swig:Qt,\"swig-templates\":Qt,\"razor-tmpl\":Qt,atpl:Qt,liquor:Qt,twig:Qt,ejs:Qt,eco:Qt,jazz:Qt,jqtpl:Qt,hamljs:Qt,hamlet:Qt,whiskers:Qt,\"haml-coffee\":Qt,\"hogan.js\":Qt,templayed:Qt,handlebars:Qt,underscore:Qt,lodash:Qt,pug:Qt,\"then-pug\":Qt,qejs:Qt,walrus:Qt,mustache:Qt,just:Qt,ect:Qt,mote:Qt,toffee:Qt,dot:Qt,\"bracket-template\":Qt,ractive:Qt,nunjucks:Qt,htmling:Qt,\"babel-core\":Qt,plates:Qt,\"react-dom\":Qt,react:Qt,\"arc-templates\":Qt,vash:Qt,slm:Qt,marko:Qt,teacup:Qt,\"coffee-script\":Qt,squirrelly:Qt,twing:Qt}}],[\"vue-loader@<=16.3.3\",{peerDependencies:{\"@vue/compiler-sfc\":\"^3.0.8\",webpack:\"^4.1.0 || ^5.0.0-0\"},peerDependenciesMeta:{\"@vue/compiler-sfc\":Qt}}],[\"vue-loader@^16.7.0\",{peerDependencies:{\"@vue/compiler-sfc\":\"^3.0.8\",vue:\"^3.2.13\"},peerDependenciesMeta:{\"@vue/compiler-sfc\":Qt,vue:Qt}}],[\"scss-parser@<=1.0.5\",{dependencies:{lodash:\"^4.17.21\"}}],[\"query-ast@<1.0.5\",{dependencies:{lodash:\"^4.17.21\"}}],[\"redux-thunk@<=2.3.0\",{peerDependencies:{redux:\"^4.0.0\"}}],[\"skypack@<=0.3.2\",{dependencies:{tar:\"^6.1.0\"}}],[\"@npmcli/metavuln-calculator@<2.0.0\",{dependencies:{\"json-parse-even-better-errors\":\"^2.3.1\"}}],[\"bin-links@<2.3.0\",{dependencies:{\"mkdirp-infer-owner\":\"^1.0.2\"}}],[\"rollup-plugin-polyfill-node@<=0.8.0\",{peerDependencies:{rollup:\"^1.20.0 || ^2.0.0\"}}],[\"snowpack@<3.8.6\",{dependencies:{\"magic-string\":\"^0.25.7\"}}],[\"elm-webpack-loader@*\",{dependencies:{temp:\"^0.9.4\"}}],[\"winston-transport@<=4.4.0\",{dependencies:{logform:\"^2.2.0\"}}],[\"jest-vue-preprocessor@*\",{dependencies:{\"@babel/core\":\"7.8.7\",\"@babel/template\":\"7.8.6\"},peerDependencies:{pug:\"^2.0.4\"},peerDependenciesMeta:{pug:Qt}}],[\"redux-persist@*\",{peerDependencies:{react:\">=16\"},peerDependenciesMeta:{react:Qt}}],[\"sodium@>=3\",{dependencies:{\"node-gyp\":\"^3.8.0\"}}],[\"babel-plugin-graphql-tag@<=3.1.0\",{peerDependencies:{graphql:\"^14.0.0 || ^15.0.0\"}}],[\"@playwright/test@<=1.14.1\",{dependencies:{\"jest-matcher-utils\":\"^26.4.2\"}}],...[\"babel-plugin-remove-graphql-queries@<3.14.0-next.1\",\"babel-preset-gatsby-package@<1.14.0-next.1\",\"create-gatsby@<1.14.0-next.1\",\"gatsby-admin@<0.24.0-next.1\",\"gatsby-cli@<3.14.0-next.1\",\"gatsby-core-utils@<2.14.0-next.1\",\"gatsby-design-tokens@<3.14.0-next.1\",\"gatsby-legacy-polyfills@<1.14.0-next.1\",\"gatsby-plugin-benchmark-reporting@<1.14.0-next.1\",\"gatsby-plugin-graphql-config@<0.23.0-next.1\",\"gatsby-plugin-image@<1.14.0-next.1\",\"gatsby-plugin-mdx@<2.14.0-next.1\",\"gatsby-plugin-netlify-cms@<5.14.0-next.1\",\"gatsby-plugin-no-sourcemaps@<3.14.0-next.1\",\"gatsby-plugin-page-creator@<3.14.0-next.1\",\"gatsby-plugin-preact@<5.14.0-next.1\",\"gatsby-plugin-preload-fonts@<2.14.0-next.1\",\"gatsby-plugin-schema-snapshot@<2.14.0-next.1\",\"gatsby-plugin-styletron@<6.14.0-next.1\",\"gatsby-plugin-subfont@<3.14.0-next.1\",\"gatsby-plugin-utils@<1.14.0-next.1\",\"gatsby-recipes@<0.25.0-next.1\",\"gatsby-source-shopify@<5.6.0-next.1\",\"gatsby-source-wikipedia@<3.14.0-next.1\",\"gatsby-transformer-screenshot@<3.14.0-next.1\",\"gatsby-worker@<0.5.0-next.1\"].map(t=>[t,{dependencies:{\"@babel/runtime\":\"^7.14.8\"}}]),[\"gatsby-core-utils@<2.14.0-next.1\",{dependencies:{got:\"8.3.2\"}}],[\"gatsby-plugin-gatsby-cloud@<=3.1.0-next.0\",{dependencies:{\"gatsby-core-utils\":\"^2.13.0-next.0\"}}],[\"gatsby-plugin-gatsby-cloud@<=3.2.0-next.1\",{peerDependencies:{webpack:\"*\"}}],[\"babel-plugin-remove-graphql-queries@<=3.14.0-next.1\",{dependencies:{\"gatsby-core-utils\":\"^2.8.0-next.1\"}}],[\"gatsby-plugin-netlify@3.13.0-next.1\",{dependencies:{\"gatsby-core-utils\":\"^2.13.0-next.0\"}}],[\"clipanion-v3-codemod@<=0.2.0\",{peerDependencies:{jscodeshift:\"^0.11.0\"}}],[\"react-live@*\",{peerDependencies:{\"react-dom\":\"*\",react:\"*\"}}],[\"webpack@<4.44.1\",{peerDependenciesMeta:{\"webpack-cli\":Qt,\"webpack-command\":Qt}}],[\"webpack@<5.0.0-beta.23\",{peerDependenciesMeta:{\"webpack-cli\":Qt}}],[\"webpack-dev-server@<3.10.2\",{peerDependenciesMeta:{\"webpack-cli\":Qt}}],[\"@docusaurus/responsive-loader@<1.5.0\",{peerDependenciesMeta:{sharp:Qt,jimp:Qt}}],[\"eslint-module-utils@*\",{peerDependenciesMeta:{\"eslint-import-resolver-node\":Qt,\"eslint-import-resolver-typescript\":Qt,\"eslint-import-resolver-webpack\":Qt,\"@typescript-eslint/parser\":Qt}}],[\"eslint-plugin-import@*\",{peerDependenciesMeta:{\"@typescript-eslint/parser\":Qt}}],[\"critters-webpack-plugin@<3.0.2\",{peerDependenciesMeta:{\"html-webpack-plugin\":Qt}}],[\"terser@<=5.10.0\",{dependencies:{acorn:\"^8.5.0\"}}],[\"babel-preset-react-app@10.0.x <10.0.2\",{dependencies:{\"@babel/plugin-proposal-private-property-in-object\":\"^7.16.7\"}}],[\"eslint-config-react-app@*\",{peerDependenciesMeta:{typescript:Qt}}],[\"@vue/eslint-config-typescript@<11.0.0\",{peerDependenciesMeta:{typescript:Qt}}],[\"unplugin-vue2-script-setup@<0.9.1\",{peerDependencies:{\"@vue/composition-api\":\"^1.4.3\",\"@vue/runtime-dom\":\"^3.2.26\"}}],[\"@cypress/snapshot@*\",{dependencies:{debug:\"^3.2.7\"}}],[\"auto-relay@<=0.14.0\",{peerDependencies:{\"reflect-metadata\":\"^0.1.13\"}}],[\"vue-template-babel-compiler@<1.2.0\",{peerDependencies:{\"vue-template-compiler\":\"^2.6.0\"}}],[\"@parcel/transformer-image@<2.5.0\",{peerDependencies:{\"@parcel/core\":\"*\"}}],[\"@parcel/transformer-js@<2.5.0\",{peerDependencies:{\"@parcel/core\":\"*\"}}],[\"parcel@*\",{peerDependenciesMeta:{\"@parcel/core\":Qt}}],[\"react-scripts@*\",{peerDependencies:{eslint:\"*\"}}],[\"focus-trap-react@^8.0.0\",{dependencies:{tabbable:\"^5.3.2\"}}],[\"react-rnd@<10.3.7\",{peerDependencies:{react:\">=16.3.0\",\"react-dom\":\">=16.3.0\"}}],[\"connect-mongo@<5.0.0\",{peerDependencies:{\"express-session\":\"^1.17.1\"}}],[\"vue-i18n@<9\",{peerDependencies:{vue:\"^2\"}}],[\"vue-router@<4\",{peerDependencies:{vue:\"^2\"}}],[\"unified@<10\",{dependencies:{\"@types/unist\":\"^2.0.0\"}}],[\"react-github-btn@<=1.3.0\",{peerDependencies:{react:\">=16.3.0\"}}],[\"react-dev-utils@*\",{peerDependencies:{typescript:\">=2.7\",webpack:\">=4\"},peerDependenciesMeta:{typescript:Qt}}],[\"@asyncapi/react-component@<=1.0.0-next.39\",{peerDependencies:{react:\">=16.8.0\",\"react-dom\":\">=16.8.0\"}}],[\"xo@*\",{peerDependencies:{webpack:\">=1.11.0\"},peerDependenciesMeta:{webpack:Qt}}],[\"babel-plugin-remove-graphql-queries@<=4.20.0-next.0\",{dependencies:{\"@babel/types\":\"^7.15.4\"}}],[\"gatsby-plugin-page-creator@<=4.20.0-next.1\",{dependencies:{\"fs-extra\":\"^10.1.0\"}}],[\"gatsby-plugin-utils@<=3.14.0-next.1\",{dependencies:{fastq:\"^1.13.0\"},peerDependencies:{graphql:\"^15.0.0\"}}],[\"gatsby-plugin-mdx@<3.1.0-next.1\",{dependencies:{mkdirp:\"^1.0.4\"}}],[\"gatsby-plugin-mdx@^2\",{peerDependencies:{gatsby:\"^3.0.0-next\"}}],[\"fdir@<=5.2.0\",{peerDependencies:{picomatch:\"2.x\"},peerDependenciesMeta:{picomatch:Qt}}],[\"babel-plugin-transform-typescript-metadata@<=0.3.2\",{peerDependencies:{\"@babel/core\":\"^7\",\"@babel/traverse\":\"^7\"},peerDependenciesMeta:{\"@babel/traverse\":Qt}}],[\"graphql-compose@>=9.0.10\",{peerDependencies:{graphql:\"^14.2.0 || ^15.0.0 || ^16.0.0\"}}],[\"vite-plugin-vuetify@<=1.0.2\",{peerDependencies:{vue:\"^3.0.0\"}}],[\"webpack-plugin-vuetify@<=2.0.1\",{peerDependencies:{vue:\"^3.2.6\"}}],[\"eslint-import-resolver-vite@<2.0.1\",{dependencies:{debug:\"^4.3.4\",resolve:\"^1.22.8\"}}],[\"notistack@^3.0.0\",{dependencies:{csstype:\"^3.0.10\"}}],[\"@fastify/type-provider-typebox@^5.0.0\",{peerDependencies:{fastify:\"^5.0.0\"}}],[\"@fastify/type-provider-typebox@^4.0.0\",{peerDependencies:{fastify:\"^4.0.0\"}}]];var p5;function Vye(){return typeof p5>\"u\"&&(p5=Ie(\"zlib\").brotliDecompressSync(Buffer.from(\"G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==\",\"base64\")).toString()),p5}var h5;function Jye(){return typeof h5>\"u\"&&(h5=Ie(\"zlib\").brotliDecompressSync(Buffer.from(\"G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=\",\"base64\")).toString()),h5}var g5;function Kye(){return typeof g5>\"u\"&&(g5=Ie(\"zlib\").brotliDecompressSync(Buffer.from(\"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\",\"base64\")).toString()),g5}var zye=new Map([[G.makeIdent(null,\"fsevents\").identHash,Vye],[G.makeIdent(null,\"resolve\").identHash,Jye],[G.makeIdent(null,\"typescript\").identHash,Kye]]),xct={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,s]of A5)e(G.parseDescriptor(r,!0),s)},getBuiltinPatch:async(t,e)=>{let r=\"compat/\";if(!e.startsWith(r))return;let s=G.parseIdent(e.slice(r.length)),a=zye.get(s.identHash)?.();return typeof a<\"u\"?a:null},reduceDependency:async(t,e,r,s)=>typeof zye.get(t.identHash)>\"u\"?t:G.makeDescriptor(t,G.makeRange({protocol:\"patch:\",source:G.stringifyDescriptor(t),selector:`optional!builtin<compat/${G.stringifyIdent(t)}>`,params:null}))}},kct=xct;var T5={};Vt(T5,{ConstraintsCheckCommand:()=>XC,ConstraintsQueryCommand:()=>zC,ConstraintsSourceCommand:()=>ZC,default:()=>Kct});Ge();Ge();iS();var YC=class{constructor(e){this.project=e}createEnvironment(){let e=new WC([\"cwd\",\"ident\"]),r=new WC([\"workspace\",\"type\",\"ident\"]),s=new WC([\"ident\"]),a={manifestUpdates:new Map,reportedErrors:new Map},n=new Map,c=new Map;for(let f of this.project.storedPackages.values()){let p=Array.from(f.peerDependencies.values(),h=>[G.stringifyIdent(h),h.range]);n.set(f.locatorHash,{workspace:null,ident:G.stringifyIdent(f),version:f.version,dependencies:new Map,peerDependencies:new Map(p.filter(([h])=>f.peerDependenciesMeta.get(h)?.optional!==!0)),optionalPeerDependencies:new Map(p.filter(([h])=>f.peerDependenciesMeta.get(h)?.optional===!0))})}for(let f of this.project.storedPackages.values()){let p=n.get(f.locatorHash);p.dependencies=new Map(Array.from(f.dependencies.values(),h=>{let E=this.project.storedResolutions.get(h.descriptorHash);if(typeof E>\"u\")throw new Error(\"Assertion failed: The resolution should have been registered\");let C=n.get(E);if(typeof C>\"u\")throw new Error(\"Assertion failed: The package should have been registered\");return[G.stringifyIdent(h),C]})),p.dependencies.delete(p.ident)}for(let f of this.project.workspaces){let p=G.stringifyIdent(f.anchoredLocator),h=f.manifest.exportTo({}),E=n.get(f.anchoredLocator.locatorHash);if(typeof E>\"u\")throw new Error(\"Assertion failed: The package should have been registered\");let C=(T,N,{caller:U=fs.getCaller()}={})=>{let W=nS(T),ee=je.getMapWithDefault(a.manifestUpdates,f.cwd),ie=je.getMapWithDefault(ee,W),ue=je.getSetWithDefault(ie,N);U!==null&&ue.add(U)},S=T=>C(T,void 0,{caller:fs.getCaller()}),b=T=>{je.getArrayWithDefault(a.reportedErrors,f.cwd).push(T)},I=e.insert({cwd:f.relativeCwd,ident:p,manifest:h,pkg:E,set:C,unset:S,error:b});c.set(f,I);for(let T of Ut.allDependencies)for(let N of f.manifest[T].values()){let U=G.stringifyIdent(N),W=()=>{C([T,U],void 0,{caller:fs.getCaller()})},ee=ue=>{C([T,U],ue,{caller:fs.getCaller()})},ie=null;if(T!==\"peerDependencies\"&&(T!==\"dependencies\"||!f.manifest.devDependencies.has(N.identHash))){let ue=f.anchoredPackage.dependencies.get(N.identHash);if(ue){if(typeof ue>\"u\")throw new Error(\"Assertion failed: The dependency should have been registered\");let le=this.project.storedResolutions.get(ue.descriptorHash);if(typeof le>\"u\")throw new Error(\"Assertion failed: The resolution should have been registered\");let me=n.get(le);if(typeof me>\"u\")throw new Error(\"Assertion failed: The package should have been registered\");ie=me}}r.insert({workspace:I,ident:U,range:N.range,type:T,resolution:ie,update:ee,delete:W,error:b})}}for(let f of this.project.storedPackages.values()){let p=this.project.tryWorkspaceByLocator(f);if(!p)continue;let h=c.get(p);if(typeof h>\"u\")throw new Error(\"Assertion failed: The workspace should have been registered\");let E=n.get(f.locatorHash);if(typeof E>\"u\")throw new Error(\"Assertion failed: The package should have been registered\");E.workspace=h}return{workspaces:e,dependencies:r,packages:s,result:a}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependency:a=>e.dependencies.find(a)[0]??null,dependencies:a=>e.dependencies.find(a),package:a=>e.packages.find(a)[0]??null,packages:a=>e.packages.find(a)}},s=await this.project.loadUserConfig();return s?.constraints?(await s.constraints(r),e.result):null}};Ge();Ge();Yt();var zC=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.query=ge.String()}static{this.paths=[[\"constraints\",\"query\"]]}static{this.usage=ot.Usage({category:\"Constraints-related commands\",description:\"query the constraints fact database\",details:`\n      This command will output all matches to the given prolog query.\n    `,examples:[[\"List all dependencies throughout the workspace\",\"yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'\"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(lS(),aS)),s=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Rt.find(s,this.context.cwd),n=await r.find(a),c=this.query;return c.endsWith(\".\")||(c=`${c}.`),(await Ot.start({configuration:s,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(c)){let E=Array.from(Object.entries(h)),C=E.length,S=E.reduce((b,[I])=>Math.max(b,I.length),0);for(let b=0;b<C;b++){let[I,T]=E[b];p.reportInfo(null,`${Vct(b,C)}${I.padEnd(S,\" \")} = ${Yct(T)}`)}p.reportJson(h)}})).exitCode()}};function Yct(t){return typeof t!=\"string\"?`${t}`:t.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?t:`'${t}'`}function Vct(t,e){let r=t===0,s=t===e-1;return r&&s?\"\":r?\"\\u250C \":s?\"\\u2514 \":\"\\u2502 \"}Ge();Yt();var ZC=class extends ft{constructor(){super(...arguments);this.verbose=ge.Boolean(\"-v,--verbose\",!1,{description:\"Also print the fact database automatically compiled from the workspace manifests\"})}static{this.paths=[[\"constraints\",\"source\"]]}static{this.usage=ot.Usage({category:\"Constraints-related commands\",description:\"print the source code for the constraints\",details:\"\\n      This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\\n    \",examples:[[\"Prints the source code\",\"yarn constraints source\"],[\"Print the source code and the fact database\",\"yarn constraints source -v\"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(lS(),aS)),s=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Rt.find(s,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ge();Ge();Yt();iS();var XC=class extends ft{constructor(){super(...arguments);this.fix=ge.Boolean(\"--fix\",!1,{description:\"Attempt to automatically fix unambiguous issues, following a multi-pass process\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}static{this.paths=[[\"constraints\"]]}static{this.usage=ot.Usage({category:\"Constraints-related commands\",description:\"check that the project constraints are met\",details:`\n      This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code.\n\n      If the \\`--fix\\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution.\n\n      For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints.\n    `,examples:[[\"Check that all constraints are satisfied\",\"yarn constraints\"],[\"Autofix all unmet constraints\",\"yarn constraints --fix\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd);await s.restoreInstallState();let a=await s.loadUserConfig(),n;if(a?.constraints)n=new YC(s);else{let{Constraints:h}=await Promise.resolve().then(()=>(lS(),aS));n=await h.find(s)}let c,f=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:C,remainingErrors:S}=nF(s,E,{fix:this.fix}),b=[];for(let[I,T]of C){let N=I.manifest.indent;I.manifest=new Ut,I.manifest.indent=N,I.manifest.load(T),b.push(I.persistManifest())}if(await Promise.all(b),!(C.size>0&&h>1)){c=Zye(S,{configuration:r}),f=!1,p=!0;for(let[,I]of S)for(let T of I)T.fixable?f=!0:p=!1}}if(c.children.length===0)return 0;if(f){let h=p?`Those errors can all be fixed by running ${he.pretty(r,\"yarn constraints --fix\",he.Type.CODE)}`:`Errors prefixed by '\\u2699' can be fixed by running ${he.pretty(r,\"yarn constraints --fix\",he.Type.CODE)}`;await Ot.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return c.children=je.sortMap(c.children,h=>h.value[1]),xs.emitTree(c,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};iS();var Jct={configuration:{enableConstraintsChecks:{description:\"If true, constraints will run during installs\",type:\"BOOLEAN\",default:!1},constraintsPath:{description:\"The path of the constraints file.\",type:\"ABSOLUTE_PATH\",default:\"./constraints.pro\"}},commands:[zC,ZC,XC],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get(\"enableConstraintsChecks\"))return;let r=await t.loadUserConfig(),s;if(r?.constraints)s=new YC(t);else{let{Constraints:c}=await Promise.resolve().then(()=>(lS(),aS));s=await c.find(t)}let a=await s.process();if(!a)return;let{remainingErrors:n}=nF(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[c,f]of n)for(let p of f)e(84,`${he.pretty(t.configuration,c.anchoredLocator,he.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${he.pretty(t.configuration,\"yarn constraints\",he.Type.CODE)} for more details`)}}},Kct=Jct;var F5={};Vt(F5,{CreateCommand:()=>$C,DlxCommand:()=>ew,default:()=>Zct});Ge();Yt();var $C=class extends ft{constructor(){super(...arguments);this.pkg=ge.String(\"-p,--package\",{description:\"The package to run the provided command from\"});this.quiet=ge.Boolean(\"-q,--quiet\",!1,{description:\"Only report critical errors instead of printing the full install logs\"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[[\"create\"]]}async execute(){let r=[];this.pkg&&r.push(\"--package\",this.pkg),this.quiet&&r.push(\"--quiet\");let s=this.command.replace(/^(@[^@/]+)(@|$)/,\"$1/create$2\"),a=G.parseDescriptor(s),n=a.name.match(/^create(-|$)/)?a:a.scope?G.makeIdent(a.scope,`create-${a.name}`):G.makeIdent(null,`create-${a.name}`),c=G.stringifyIdent(n);return a.range!==\"unknown\"&&(c+=`@${a.range}`),this.cli.run([\"dlx\",...r,c,...this.args])}};Ge();Ge();Dt();Yt();var ew=class extends ft{constructor(){super(...arguments);this.packages=ge.Array(\"-p,--package\",{description:\"The package(s) to install before running the command\"});this.quiet=ge.Boolean(\"-q,--quiet\",!1,{description:\"Only report critical errors instead of printing the full install logs\"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[[\"dlx\"]]}static{this.usage=ot.Usage({description:\"run a package in a temporary environment\",details:\"\\n      This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\\n\\n      By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\\n\\n      Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\\n    \",examples:[[\"Use create-vite to scaffold a new Vite project\",\"yarn dlx create-vite\"],[\"Install multiple packages for a single command\",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e \"console.log('hello!')\"`]]})}async execute(){return ze.telemetry=null,await ce.mktempPromise(async r=>{let s=J.join(r,`dlx-${process.pid}`);await ce.mkdirPromise(s),await ce.writeFilePromise(J.join(s,\"package.json\"),`{}\n`),await ce.writeFilePromise(J.join(s,\"yarn.lock\"),\"\");let a=J.join(s,\".yarnrc.yml\"),n=await ze.findProjectCwd(this.context.cwd),f={enableGlobalCache:!(await ze.find(this.context.cwd,null,{strict:!1})).get(\"enableGlobalCache\"),enableTelemetry:!1,logFilters:[{code:Yf(68),level:he.LogLevel.Discard}]},p=n!==null?J.join(n,\".yarnrc.yml\"):null;p!==null&&ce.existsSync(p)?(await ce.copyFilePromise(p,a),await ze.updateConfiguration(s,N=>{let U=je.toMerged(N,f);return Array.isArray(N.plugins)&&(U.plugins=N.plugins.map(W=>{let ee=typeof W==\"string\"?W:W.path,ie=fe.isAbsolute(ee)?ee:fe.resolve(fe.fromPortablePath(n),ee);return typeof W==\"string\"?ie:{path:ie,spec:W.spec}})),U})):await ce.writeJsonPromise(a,f);let h=this.packages??[this.command],E=G.parseDescriptor(this.command).name,C=await this.cli.run([\"add\",\"--fixed\",\"--\",...h],{cwd:s,quiet:this.quiet});if(C!==0)return C;this.quiet||this.context.stdout.write(`\n`);let S=await ze.find(s,this.context.plugins),{project:b,workspace:I}=await Rt.find(S,s);if(I===null)throw new ar(b.cwd,s);await b.restoreInstallState();let T=await In.getWorkspaceAccessibleBinaries(I);return T.has(E)===!1&&T.size===1&&typeof this.packages>\"u\"&&(E=Array.from(T)[0][0]),await In.executeWorkspaceAccessibleBinary(I,E,this.args,{packageAccessibleBinaries:T,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var zct={commands:[$C,ew]},Zct=zct;var L5={};Vt(L5,{ExecFetcher:()=>uS,ExecResolver:()=>fS,default:()=>eut,execUtils:()=>aF});Ge();Ge();Dt();var cA=\"exec:\";var aF={};Vt(aF,{loadGeneratorFile:()=>cS,makeLocator:()=>O5,makeSpec:()=>BEe,parseSpec:()=>N5});Ge();Dt();function N5(t){let{params:e,selector:r}=G.parseRange(t),s=fe.toPortablePath(r);return{parentLocator:e&&typeof e.locator==\"string\"?G.parseLocator(e.locator):null,path:s}}function BEe({parentLocator:t,path:e,generatorHash:r,protocol:s}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<\"u\"?{hash:r}:{};return G.makeRange({protocol:s,source:e,selector:e,params:{...n,...a}})}function O5(t,{parentLocator:e,path:r,generatorHash:s,protocol:a}){return G.makeLocator(t,BEe({parentLocator:e,path:r,generatorHash:s,protocol:a}))}async function cS(t,e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(t,{protocol:e}),n=J.isAbsolute(a)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,n.localPath)}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=J.join(c.prefixPath,a);return await f.readFilePromise(p,\"utf8\")}var uS=class{supports(e,r){return!!e.reference.startsWith(cA)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:cA});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:c}}async fetchFromDisk(e,r){let s=await cS(e.reference,cA,r);return ce.mktempPromise(async a=>{let n=J.join(a,\"generator.js\");return await ce.writeFilePromise(n,s),ce.mktempPromise(async c=>{if(await this.generatePackage(c,e,n,r),!ce.existsSync(J.join(c,\"build\")))throw new Error(\"The script should have generated a build directory\");return await ps.makeArchiveFromDirectory(J.join(c,\"build\"),{prefixPath:G.getIdentVendorPath(e),compressionLevel:r.project.configuration.get(\"compressionLevel\")})})})}async generatePackage(e,r,s,a){return await ce.mktempPromise(async n=>{let c=await In.makeScriptEnv({project:a.project,binFolder:n}),f=J.join(e,\"runtime.js\");return await ce.mktempPromise(async p=>{let h=J.join(p,\"buildfile.log\"),E=J.join(e,\"generator\"),C=J.join(e,\"build\");await ce.mkdirPromise(E),await ce.mkdirPromise(C);let S={tempDir:fe.fromPortablePath(E),buildDir:fe.fromPortablePath(C),locator:G.stringifyLocator(r)};await ce.writeFilePromise(f,`\n          // Expose 'Module' as a global variable\n          Object.defineProperty(global, 'Module', {\n            get: () => require('module'),\n            configurable: true,\n            enumerable: false,\n          });\n\n          // Expose non-hidden built-in modules as global variables\n          for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) {\n            Object.defineProperty(global, name, {\n              get: () => require(name),\n              configurable: true,\n              enumerable: false,\n            });\n          }\n\n          // Expose the 'execEnv' global variable\n          Object.defineProperty(global, 'execEnv', {\n            value: {\n              ...${JSON.stringify(S)},\n            },\n            enumerable: true,\n          });\n        `);let b=c.NODE_OPTIONS||\"\",I=/\\s*--require\\s+\\S*\\.pnp\\.c?js\\s*/g;b=b.replace(I,\" \").trim(),c.NODE_OPTIONS=b;let{stdout:T,stderr:N}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${G.stringifyLocator(r)})\n`,prefix:G.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await qr.pipevp(process.execPath,[\"--require\",fe.fromPortablePath(f),fe.fromPortablePath(s),G.stringifyIdent(r)],{cwd:e,env:c,stdin:null,stdout:T,stderr:N});if(U!==0)throw ce.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${he.pretty(a.project.configuration,h,he.Type.PATH)})`)})})}};Ge();Ge();var Xct=2,fS=class{supportsDescriptor(e,r){return!!e.range.startsWith(cA)}supportsLocator(e,r){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let{path:a,parentLocator:n}=N5(e.range);if(n===null)throw new Error(\"Assertion failed: The descriptor should have been bound\");let c=await cS(G.makeRange({protocol:cA,source:a,selector:a,params:{locator:G.stringifyLocator(n)}}),cA,s.fetchOptions),f=Nn.makeHash(`${Xct}`,c).slice(0,6);return[O5(e,{parentLocator:n,path:a,generatorHash:f,protocol:cA})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||\"0.0.0\",languageName:a.languageName||r.project.configuration.get(\"defaultLanguageName\"),linkType:\"HARD\",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var $ct={fetchers:[uS],resolvers:[fS]},eut=$ct;var U5={};Vt(U5,{FileFetcher:()=>gS,FileResolver:()=>dS,TarballFileFetcher:()=>mS,TarballFileResolver:()=>yS,default:()=>nut,fileUtils:()=>xm});Ge();Dt();var tw=/^(?:[a-zA-Z]:[\\\\/]|\\.{0,2}\\/)/,AS=/^[^?]*\\.(?:tar\\.gz|tgz)(?:::.*)?$/,$i=\"file:\";var xm={};Vt(xm,{fetchArchiveFromLocator:()=>hS,makeArchiveFromLocator:()=>lF,makeBufferFromLocator:()=>M5,makeLocator:()=>rw,makeSpec:()=>vEe,parseSpec:()=>pS});Ge();Dt();function pS(t){let{params:e,selector:r}=G.parseRange(t),s=fe.toPortablePath(r);return{parentLocator:e&&typeof e.locator==\"string\"?G.parseLocator(e.locator):null,path:s}}function vEe({parentLocator:t,path:e,hash:r,protocol:s}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<\"u\"?{hash:r}:{};return G.makeRange({protocol:s,source:e,selector:e,params:{...n,...a}})}function rw(t,{parentLocator:e,path:r,hash:s,protocol:a}){return G.makeLocator(t,vEe({parentLocator:e,path:r,hash:s,protocol:a}))}async function hS(t,e){let{parentLocator:r,path:s}=G.parseFileStyleRange(t.reference,{protocol:$i}),a=J.isAbsolute(s)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let c=n.packageFs,f=J.join(n.prefixPath,s);return await je.releaseAfterUseAsync(async()=>await c.readFilePromise(f),n.releaseFs)}async function lF(t,{protocol:e,fetchOptions:r,inMemory:s=!1}){let{parentLocator:a,path:n}=G.parseFileStyleRange(t.reference,{protocol:e}),c=J.isAbsolute(n)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(a,r),f=c.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,c.localPath)}:c;c!==f&&c.releaseFs&&c.releaseFs();let p=f.packageFs,h=J.join(f.prefixPath,n);return await je.releaseAfterUseAsync(async()=>await ps.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:G.getIdentVendorPath(t),compressionLevel:r.project.configuration.get(\"compressionLevel\"),inMemory:s}),f.releaseFs)}async function M5(t,{protocol:e,fetchOptions:r}){return(await lF(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var gS=class{supports(e,r){return!!e.reference.startsWith($i)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:$i});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:c}}async fetchFromDisk(e,r){return lF(e,{protocol:$i,fetchOptions:r})}};Ge();Ge();var tut=2,dS=class{supportsDescriptor(e,r){return e.range.match(tw)?!0:!!e.range.startsWith($i)}supportsLocator(e,r){return!!e.reference.startsWith($i)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return tw.test(e.range)&&(e=G.makeDescriptor(e,`${$i}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let{path:a,parentLocator:n}=pS(e.range);if(n===null)throw new Error(\"Assertion failed: The descriptor should have been bound\");let c=await M5(G.makeLocator(e,G.makeRange({protocol:$i,source:a,selector:a,params:{locator:G.stringifyLocator(n)}})),{protocol:$i,fetchOptions:s.fetchOptions}),f=Nn.makeHash(`${tut}`,c).slice(0,6);return[rw(e,{parentLocator:n,path:a,hash:f,protocol:$i})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||\"0.0.0\",languageName:a.languageName||r.project.configuration.get(\"defaultLanguageName\"),linkType:\"HARD\",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ge();var mS=class{supports(e,r){return AS.test(e.reference)?!!e.reference.startsWith($i):!1}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromDisk(e,r){let s=await hS(e,r);return await ps.convertToZip(s,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();Ge();Ge();var yS=class{supportsDescriptor(e,r){return AS.test(e.range)?!!(e.range.startsWith($i)||tw.test(e.range)):!1}supportsLocator(e,r){return AS.test(e.reference)?!!e.reference.startsWith($i):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return tw.test(e.range)&&(e=G.makeDescriptor(e,`${$i}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let{path:a,parentLocator:n}=pS(e.range);if(n===null)throw new Error(\"Assertion failed: The descriptor should have been bound\");let c=rw(e,{parentLocator:n,path:a,hash:\"\",protocol:$i}),f=await hS(c,s.fetchOptions),p=Nn.makeHash(f).slice(0,6);return[rw(e,{parentLocator:n,path:a,hash:p,protocol:$i})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||\"0.0.0\",languageName:a.languageName||r.project.configuration.get(\"defaultLanguageName\"),linkType:\"HARD\",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var rut={fetchers:[mS,gS],resolvers:[yS,dS]},nut=rut;var j5={};Vt(j5,{GithubFetcher:()=>ES,default:()=>sut,githubUtils:()=>cF});Ge();Dt();var cF={};Vt(cF,{invalidGithubUrlMessage:()=>PEe,isGithubUrl:()=>_5,parseGithubUrl:()=>H5});var SEe=ut(Ie(\"querystring\")),DEe=[/^https?:\\/\\/(?:([^/]+?)@)?github.com\\/([^/#]+)\\/([^/#]+)\\/tarball\\/([^/#]+)(?:#(.*))?$/,/^https?:\\/\\/(?:([^/]+?)@)?github.com\\/([^/#]+)\\/([^/#]+?)(?:\\.git)?(?:#(.*))?$/];function _5(t){return t?DEe.some(e=>!!t.match(e)):!1}function H5(t){let e;for(let f of DEe)if(e=t.match(f),e)break;if(!e)throw new Error(PEe(t));let[,r,s,a,n=\"master\"]=e,{commit:c}=SEe.default.parse(n);return n=c||n.replace(/[^:]*:/,\"\"),{auth:r,username:s,reponame:a,treeish:n}}function PEe(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var ES=class{supports(e,r){return!!_5(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let s=await ln.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await ce.mktempPromise(async a=>{let n=new Sn(a);await ps.extractArchiveTo(s,n,{stripComponents:1});let c=ka.splitRepoUrl(e.reference),f=J.join(a,\"package.tgz\");await In.prepareExternalProject(a,f,{configuration:r.project.configuration,report:r.report,workspace:c.extra.workspace,locator:e});let p=await ce.readFilePromise(f);return await ps.convertToZip(p,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:s,username:a,reponame:n,treeish:c}=H5(e.reference);return`https://${s?`${s}@`:\"\"}github.com/${a}/${n}/archive/${c}.tar.gz`}};var iut={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let s=new ES;if(!s.supports(e,r))return null;try{return await s.fetch(e,r)}catch{return null}}}},sut=iut;var G5={};Vt(G5,{TarballHttpFetcher:()=>CS,TarballHttpResolver:()=>wS,default:()=>aut});Ge();function IS(t){let e;try{e=new URL(t)}catch{return!1}return!(e.protocol!==\"http:\"&&e.protocol!==\"https:\"||!e.pathname.match(/(\\.tar\\.gz|\\.tgz|\\/[^.]+)$/))}var CS=class{supports(e,r){return IS(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let s=await ln.get(e.reference,{configuration:r.project.configuration});return await ps.convertToZip(s,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();Ge();var wS=class{supportsDescriptor(e,r){return IS(e.range)}supportsLocator(e,r){return IS(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){return[G.convertDescriptorToLocator(e)]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||\"0.0.0\",languageName:a.languageName||r.project.configuration.get(\"defaultLanguageName\"),linkType:\"HARD\",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var out={fetchers:[CS],resolvers:[wS]},aut=out;var q5={};Vt(q5,{InitCommand:()=>z0,InitInitializerCommand:()=>nw,default:()=>cut});Yt();Ge();Ge();Dt();Yt();var z0=class extends ft{constructor(){super(...arguments);this.private=ge.Boolean(\"-p,--private\",!1,{description:\"Initialize a private package\"});this.workspace=ge.Boolean(\"-w,--workspace\",!1,{description:\"Initialize a workspace root with a `packages/` directory\"});this.install=ge.String(\"-i,--install\",!1,{tolerateBoolean:!0,description:\"Initialize a package with a specific bundle that will be locked in the project\"});this.name=ge.String(\"-n,--name\",{description:\"Initialize a package with the given name\"});this.usev2=ge.Boolean(\"-2\",!1,{hidden:!0});this.yes=ge.Boolean(\"-y,--yes\",{hidden:!0})}static{this.paths=[[\"init\"]]}static{this.usage=ot.Usage({description:\"create a new package\",details:\"\\n      This command will setup a new package in your local directory.\\n\\n      If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\\n\\n      If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\\n\\n      If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\\n\\n      The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\\n    \",examples:[[\"Create a new package in the local directory\",\"yarn init\"],[\"Create a new private package in the local directory\",\"yarn init -p\"],[\"Create a new package and store the Yarn release inside\",\"yarn init -i=latest\"],[\"Create a new private package and defines it as a workspace root\",\"yarn init -w\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=typeof this.install==\"string\"?this.install:this.usev2||this.install===!0?\"latest\":null;return s!==null?await this.executeProxy(r,s):await this.executeRegular(r)}async executeProxy(r,s){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new nt(\"Cannot use the --install flag from within a project subdirectory\");ce.existsSync(this.context.cwd)||await ce.mkdirPromise(this.context.cwd,{recursive:!0});let a=J.join(this.context.cwd,Er.lockfile);ce.existsSync(a)||await ce.writeFilePromise(a,\"\");let n=await this.cli.run([\"set\",\"version\",s],{quiet:!0});if(n!==0)return n;let c=[];return this.private&&c.push(\"-p\"),this.workspace&&c.push(\"-w\"),this.name&&c.push(`-n=${this.name}`),this.yes&&c.push(\"-y\"),await ce.mktempPromise(async f=>{let{code:p}=await qr.pipevp(\"yarn\",[\"init\",...c],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await In.makeScriptEnv({binFolder:f})});return p})}async initialize(){}async executeRegular(r){let s=null;try{s=(await Rt.find(r,this.context.cwd)).project}catch{s=null}ce.existsSync(this.context.cwd)||await ce.mkdirPromise(this.context.cwd,{recursive:!0});let a=await Ut.tryFind(this.context.cwd),n=a??new Ut,c=Object.fromEntries(r.get(\"initFields\").entries());n.load(c),n.name=n.name??G.makeIdent(r.get(\"initScope\"),this.name??J.basename(this.context.cwd)),n.packageManager=fn&&je.isTaggedYarnVersion(fn)?`yarn@${fn}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await ce.mkdirPromise(J.join(this.context.cwd,\"packages\"),{recursive:!0}),n.workspaceDefinitions=[{pattern:\"packages/*\"}]);let f={};n.exportTo(f);let p=J.join(this.context.cwd,Ut.fileName);await ce.changeFilePromise(p,`${JSON.stringify(f,null,2)}\n`,{automaticNewlines:!0});let h=[p],E=J.join(this.context.cwd,\"README.md\");if(ce.existsSync(E)||(await ce.writeFilePromise(E,`# ${G.stringifyIdent(n.name)}\n`),h.push(E)),!s||s.cwd===this.context.cwd){let C=J.join(this.context.cwd,Er.lockfile);ce.existsSync(C)||(await ce.writeFilePromise(C,\"\"),h.push(C));let b=[\".yarn/*\",\"!.yarn/patches\",\"!.yarn/plugins\",\"!.yarn/releases\",\"!.yarn/sdks\",\"!.yarn/versions\",\"\",\"# Whether you use PnP or not, the node_modules folder is often used to store\",\"# build artifacts that should be gitignored\",\"node_modules\",\"\",\"# Swap the comments on the following lines if you wish to use zero-installs\",\"# In that case, don't forget to run `yarn config set enableGlobalCache false`!\",\"# Documentation here: https://yarnpkg.com/features/caching#zero-installs\",\"\",\"#!.yarn/cache\",\".pnp.*\"].map(ue=>`${ue}\n`).join(\"\"),I=J.join(this.context.cwd,\".gitignore\");ce.existsSync(I)||(await ce.writeFilePromise(I,b),h.push(I));let N=[\"/.yarn/**            linguist-vendored\",\"/.yarn/releases/*    binary\",\"/.yarn/plugins/**/*  binary\",\"/.pnp.*              binary linguist-generated\"].map(ue=>`${ue}\n`).join(\"\"),U=J.join(this.context.cwd,\".gitattributes\");ce.existsSync(U)||(await ce.writeFilePromise(U,N),h.push(U));let W={\"*\":{charset:\"utf-8\",endOfLine:\"lf\",indentSize:2,indentStyle:\"space\",insertFinalNewline:!0}};je.mergeIntoTarget(W,r.get(\"initEditorConfig\"));let ee=`root = true\n`;for(let[ue,le]of Object.entries(W)){ee+=`\n[${ue}]\n`;for(let[me,pe]of Object.entries(le)){let Be=me.replace(/[A-Z]/g,Ce=>`_${Ce.toLowerCase()}`);ee+=`${Be} = ${pe}\n`}}let ie=J.join(this.context.cwd,\".editorconfig\");ce.existsSync(ie)||(await ce.writeFilePromise(ie,ee),h.push(ie)),await this.cli.run([\"install\"],{quiet:!0}),await this.initialize(),ce.existsSync(J.join(this.context.cwd,\".git\"))||(await qr.execvp(\"git\",[\"init\"],{cwd:this.context.cwd}),await qr.execvp(\"git\",[\"add\",\"--\",...h],{cwd:this.context.cwd}),await qr.execvp(\"git\",[\"commit\",\"--allow-empty\",\"-m\",\"First commit\"],{cwd:this.context.cwd}))}}};var nw=class extends z0{constructor(){super(...arguments);this.initializer=ge.String();this.argv=ge.Proxy()}static{this.paths=[[\"init\"]]}async initialize(){this.context.stdout.write(`\n`),await this.cli.run([\"dlx\",this.initializer,...this.argv],{quiet:!0})}};var lut={configuration:{initScope:{description:\"Scope used when creating packages via the init command\",type:\"STRING\",default:null},initFields:{description:\"Additional fields to set when creating packages via the init command\",type:\"MAP\",valueDefinition:{description:\"\",type:\"ANY\"}},initEditorConfig:{description:\"Extra rules to define in the generator editorconfig\",type:\"MAP\",valueDefinition:{description:\"\",type:\"ANY\"}}},commands:[z0,nw]},cut=lut;var HW={};Vt(HW,{SearchCommand:()=>Iw,UpgradeInteractiveCommand:()=>Cw,default:()=>ygt});Ge();var xEe=ut(Ie(\"os\"));function iw({stdout:t}){if(xEe.default.endianness()===\"BE\")throw new Error(\"Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures\");if(!t.isTTY)throw new Error(\"Interactive commands can only be used inside a TTY environment\")}Yt();var HIe=ut(l9()),c9={appId:\"OFCNCOG2CU\",apiKey:\"6fe4476ee5a1832882e326b506d14126\",indexName:\"npm-search\"},oAt=(0,HIe.default)(c9.appId,c9.apiKey).initIndex(c9.indexName),u9=async(t,e=0)=>await oAt.search(t,{analyticsTags:[\"yarn-plugin-interactive-tools\"],attributesToRetrieve:[\"name\",\"version\",\"owner\",\"repository\",\"humanDownloadsLast30Days\"],page:e,hitsPerPage:10});var CD=[\"regular\",\"dev\",\"peer\"],Iw=class extends ft{static{this.paths=[[\"search\"]]}static{this.usage=ot.Usage({category:\"Interactive commands\",description:\"open the search interface\",details:`\n    This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry.\n    `,examples:[[\"Open the search window\",\"yarn search\"]]})}async execute(){iw(this.context);let{Gem:e}=await Promise.resolve().then(()=>(qF(),kW)),{ScrollableItems:r}=await Promise.resolve().then(()=>(JF(),VF)),{useKeypress:s}=await Promise.resolve().then(()=>(yD(),m2e)),{useMinistore:a}=await Promise.resolve().then(()=>(OW(),NW)),{renderForm:n}=await Promise.resolve().then(()=>(XF(),ZF)),{default:c}=await Promise.resolve().then(()=>ut(P2e())),{Box:f,Text:p}=await Promise.resolve().then(()=>ut(Wc())),{default:h,useEffect:E,useState:C}=await Promise.resolve().then(()=>ut(hn())),S=await ze.find(this.context.cwd,this.context.plugins),b=()=>h.createElement(f,{flexDirection:\"row\"},h.createElement(f,{flexDirection:\"column\",width:48},h.createElement(f,null,h.createElement(p,null,\"Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<up>\"),\"/\",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<down>\"),\" to move between packages.\")),h.createElement(f,null,h.createElement(p,null,\"Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<space>\"),\" to select a package.\")),h.createElement(f,null,h.createElement(p,null,\"Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<space>\"),\" again to change the target.\"))),h.createElement(f,{flexDirection:\"column\"},h.createElement(f,{marginLeft:1},h.createElement(p,null,\"Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<enter>\"),\" to install the selected packages.\")),h.createElement(f,{marginLeft:1},h.createElement(p,null,\"Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<ctrl+c>\"),\" to abort.\")))),I=()=>h.createElement(h.Fragment,null,h.createElement(f,{width:15},h.createElement(p,{bold:!0,underline:!0,color:\"gray\"},\"Owner\")),h.createElement(f,{width:11},h.createElement(p,{bold:!0,underline:!0,color:\"gray\"},\"Version\")),h.createElement(f,{width:10},h.createElement(p,{bold:!0,underline:!0,color:\"gray\"},\"Downloads\"))),T=()=>h.createElement(f,{width:17},h.createElement(p,{bold:!0,underline:!0,color:\"gray\"},\"Target\")),N=({hit:pe,active:Be})=>{let[Ce,g]=a(pe.name,null);s({active:Be},(Ae,se)=>{if(se.name!==\"space\")return;if(!Ce){g(CD[0]);return}let X=CD.indexOf(Ce)+1;X===CD.length?g(null):g(CD[X])},[Ce,g]);let we=G.parseIdent(pe.name),ye=G.prettyIdent(S,we);return h.createElement(f,null,h.createElement(f,{width:45},h.createElement(p,{bold:!0,wrap:\"wrap\"},ye)),h.createElement(f,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:\"truncate\"},pe.owner.name)),h.createElement(f,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:\"truncate\"},pe.version)),h.createElement(f,{width:16,marginLeft:1},h.createElement(p,null,pe.humanDownloadsLast30Days)))},U=({name:pe,active:Be})=>{let[Ce]=a(pe,null),g=G.parseIdent(pe);return h.createElement(f,null,h.createElement(f,{width:47},h.createElement(p,{bold:!0},\" - \",G.prettyIdent(S,g))),CD.map(we=>h.createElement(f,{key:we,width:14,marginLeft:1},h.createElement(p,null,\" \",h.createElement(e,{active:Ce===we}),\" \",h.createElement(p,{bold:!0},we)))))},W=()=>h.createElement(f,{marginTop:1},h.createElement(p,null,\"Powered by Algolia.\")),ie=await n(({useSubmit:pe})=>{let Be=a();pe(Be);let Ce=Array.from(Be.keys()).filter(j=>Be.get(j)!==null),[g,we]=C(\"\"),[ye,Ae]=C(0),[se,X]=C([]),De=j=>{j.match(/\\t| /)||we(j)},Te=async()=>{Ae(0);let j=await u9(g);j.query===g&&X(j.hits)},mt=async()=>{let j=await u9(g,ye+1);j.query===g&&j.page-1===ye&&(Ae(j.page),X([...se,...j.hits]))};return E(()=>{g?Te():X([])},[g]),h.createElement(f,{flexDirection:\"column\"},h.createElement(b,null),h.createElement(f,{flexDirection:\"row\",marginTop:1},h.createElement(p,{bold:!0},\"Search: \"),h.createElement(f,{width:41},h.createElement(c,{value:g,onChange:De,placeholder:\"i.e. babel, webpack, react...\",showCursor:!1})),h.createElement(I,null)),se.length?h.createElement(r,{radius:2,loop:!1,children:se.map(j=>h.createElement(N,{key:j.name,hit:j,active:!1})),willReachEnd:mt}):h.createElement(p,{color:\"gray\"},\"Start typing...\"),h.createElement(f,{flexDirection:\"row\",marginTop:1},h.createElement(f,{width:49},h.createElement(p,{bold:!0},\"Selected:\")),h.createElement(T,null)),Ce.length?Ce.map(j=>h.createElement(U,{key:j,name:j,active:!1})):h.createElement(p,{color:\"gray\"},\"No selected packages...\"),h.createElement(W,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ie>\"u\")return 1;let ue=Array.from(ie.keys()).filter(pe=>ie.get(pe)===\"regular\"),le=Array.from(ie.keys()).filter(pe=>ie.get(pe)===\"dev\"),me=Array.from(ie.keys()).filter(pe=>ie.get(pe)===\"peer\");return ue.length&&await this.cli.run([\"add\",...ue]),le.length&&await this.cli.run([\"add\",\"--dev\",...le]),me&&await this.cli.run([\"add\",\"--peer\",...me]),0}};Ge();Yt();GG();var F2e=ut(Ai()),T2e=/^((?:[\\^~]|>=?)?)([0-9]+)(\\.[0-9]+)(\\.[0-9]+)((?:-\\S+)?)$/;function N2e(t,e){return t.length>0?[t.slice(0,e)].concat(N2e(t.slice(e),e)):[]}var Cw=class extends ft{static{this.paths=[[\"upgrade-interactive\"]]}static{this.usage=ot.Usage({category:\"Interactive commands\",description:\"open the upgrade interface\",details:`\n      This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade.\n    `,examples:[[\"Open the upgrade window\",\"yarn upgrade-interactive\"]]})}async execute(){iw(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(R2e(),Q2e)),{Pad:r}=await Promise.resolve().then(()=>(_W(),k2e)),{ScrollableItems:s}=await Promise.resolve().then(()=>(JF(),VF)),{useMinistore:a}=await Promise.resolve().then(()=>(OW(),NW)),{renderForm:n}=await Promise.resolve().then(()=>(XF(),ZF)),{Box:c,Text:f}=await Promise.resolve().then(()=>ut(Wc())),{default:p,useEffect:h,useRef:E,useState:C}=await Promise.resolve().then(()=>ut(hn())),S=await ze.find(this.context.cwd,this.context.plugins),{project:b,workspace:I}=await Rt.find(S,this.context.cwd),T=await Kr.find(S);if(!I)throw new ar(b.cwd,this.context.cwd);await b.restoreInstallState({restoreResolutions:!1});let N=this.context.stdout.rows-7,U=(we,ye)=>{let Ae=pde(we,ye),se=\"\";for(let X of Ae)X.added?se+=he.pretty(S,X.value,\"green\"):X.removed||(se+=X.value);return se},W=(we,ye)=>{if(we===ye)return ye;let Ae=G.parseRange(we),se=G.parseRange(ye),X=Ae.selector.match(T2e),De=se.selector.match(T2e);if(!X||!De)return U(we,ye);let Te=[\"gray\",\"red\",\"yellow\",\"green\",\"magenta\"],mt=null,j=\"\";for(let rt=1;rt<Te.length;++rt)mt!==null||X[rt]!==De[rt]?(mt===null&&(mt=Te[rt-1]),j+=he.pretty(S,De[rt],mt)):j+=De[rt];return j},ee=async(we,ye,Ae)=>{let se=await Zu.fetchDescriptorFrom(we,Ae,{project:b,cache:T,preserveModifier:ye,workspace:I});return se!==null?se.range:we.range},ie=async we=>{let ye=F2e.default.valid(we.range)?`^${we.range}`:we.range,[Ae,se]=await Promise.all([ee(we,we.range,ye).catch(()=>null),ee(we,we.range,\"latest\").catch(()=>null)]),X=[{value:null,label:we.range}];return Ae&&Ae!==we.range?X.push({value:Ae,label:W(we.range,Ae)}):X.push({value:null,label:\"\"}),se&&se!==Ae&&se!==we.range?X.push({value:se,label:W(we.range,se)}):X.push({value:null,label:\"\"}),X},ue=()=>p.createElement(c,{flexDirection:\"row\"},p.createElement(c,{flexDirection:\"column\",width:49},p.createElement(c,{marginLeft:1},p.createElement(f,null,\"Press \",p.createElement(f,{bold:!0,color:\"cyanBright\"},\"<up>\"),\"/\",p.createElement(f,{bold:!0,color:\"cyanBright\"},\"<down>\"),\" to select packages.\")),p.createElement(c,{marginLeft:1},p.createElement(f,null,\"Press \",p.createElement(f,{bold:!0,color:\"cyanBright\"},\"<left>\"),\"/\",p.createElement(f,{bold:!0,color:\"cyanBright\"},\"<right>\"),\" to select versions.\"))),p.createElement(c,{flexDirection:\"column\"},p.createElement(c,{marginLeft:1},p.createElement(f,null,\"Press \",p.createElement(f,{bold:!0,color:\"cyanBright\"},\"<enter>\"),\" to install.\")),p.createElement(c,{marginLeft:1},p.createElement(f,null,\"Press \",p.createElement(f,{bold:!0,color:\"cyanBright\"},\"<ctrl+c>\"),\" to abort.\")))),le=()=>p.createElement(c,{flexDirection:\"row\",paddingTop:1,paddingBottom:1},p.createElement(c,{width:50},p.createElement(f,{bold:!0},p.createElement(f,{color:\"greenBright\"},\"?\"),\" Pick the packages you want to upgrade.\")),p.createElement(c,{width:17},p.createElement(f,{bold:!0,underline:!0,color:\"gray\"},\"Current\")),p.createElement(c,{width:17},p.createElement(f,{bold:!0,underline:!0,color:\"gray\"},\"Range\")),p.createElement(c,{width:17},p.createElement(f,{bold:!0,underline:!0,color:\"gray\"},\"Latest\"))),me=({active:we,descriptor:ye,suggestions:Ae})=>{let[se,X]=a(ye.descriptorHash,null),De=G.stringifyIdent(ye),Te=Math.max(0,45-De.length);return p.createElement(p.Fragment,null,p.createElement(c,null,p.createElement(c,{width:45},p.createElement(f,{bold:!0},G.prettyIdent(S,ye)),p.createElement(r,{active:we,length:Te})),p.createElement(e,{active:we,options:Ae,value:se,skewer:!0,onChange:X,sizes:[17,17,17]})))},pe=({dependencies:we})=>{let[ye,Ae]=C(we.map(()=>null)),se=E(!0),X=async De=>{let Te=await ie(De);return Te.filter(mt=>mt.label!==\"\").length<=1?null:{descriptor:De,suggestions:Te}};return h(()=>()=>{se.current=!1},[]),h(()=>{let De=Math.trunc(N*1.75),Te=we.slice(0,De),mt=we.slice(De),j=N2e(mt,N),rt=Te.map(X).reduce(async(Fe,Ne)=>{await Fe;let be=await Ne;be!==null&&se.current&&Ae(Ve=>{let ke=Ve.findIndex(Ue=>Ue===null),it=[...Ve];return it[ke]=be,it})},Promise.resolve());j.reduce((Fe,Ne)=>Promise.all(Ne.map(be=>Promise.resolve().then(()=>X(be)))).then(async be=>{be=be.filter(Ve=>Ve!==null),await Fe,se.current&&Ae(Ve=>{let ke=Ve.findIndex(it=>it===null);return Ve.slice(0,ke).concat(be).concat(Ve.slice(ke+be.length))})}),rt).then(()=>{se.current&&Ae(Fe=>Fe.filter(Ne=>Ne!==null))})},[]),ye.length?p.createElement(s,{radius:N>>1,children:ye.map((De,Te)=>De!==null?p.createElement(me,{key:Te,active:!1,descriptor:De.descriptor,suggestions:De.suggestions}):p.createElement(f,{key:Te},\"Loading...\"))}):p.createElement(f,null,\"No upgrades found\")},Ce=await n(({useSubmit:we})=>{we(a());let ye=new Map;for(let se of b.workspaces)for(let X of[\"dependencies\",\"devDependencies\"])for(let De of se.manifest[X].values())b.tryWorkspaceByDescriptor(De)===null&&(De.range.startsWith(\"link:\")||ye.set(De.descriptorHash,De));let Ae=je.sortMap(ye.values(),se=>G.stringifyDescriptor(se));return p.createElement(c,{flexDirection:\"column\"},p.createElement(ue,null),p.createElement(le,null),p.createElement(pe,{dependencies:Ae}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof Ce>\"u\")return 1;let g=!1;for(let we of b.workspaces)for(let ye of[\"dependencies\",\"devDependencies\"]){let Ae=we.manifest[ye];for(let se of Ae.values()){let X=Ce.get(se.descriptorHash);typeof X<\"u\"&&X!==null&&(Ae.set(se.identHash,G.makeDescriptor(se,X)),g=!0)}}return g?await b.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:T}):0}};var mgt={commands:[Iw,Cw]},ygt=mgt;var GW={};Vt(GW,{default:()=>wgt});Ge();var BD=\"jsr:\";Ge();Ge();function ww(t){let e=t.range.slice(4);if(Fr.validRange(e))return G.makeDescriptor(t,`npm:${G.stringifyIdent(G.wrapIdentIntoScope(t,\"jsr\"))}@${e}`);let r=G.tryParseDescriptor(e,!0);if(r!==null)return G.makeDescriptor(t,`npm:${G.stringifyIdent(G.wrapIdentIntoScope(r,\"jsr\"))}@${r.range}`);throw new Error(`Invalid range: ${t.range}`)}function Bw(t){return G.makeLocator(G.wrapIdentIntoScope(t,\"jsr\"),`npm:${t.reference.slice(4)}`)}function jW(t){return G.makeLocator(G.unwrapIdentFromScope(t,\"jsr\"),`jsr:${t.reference.slice(4)}`)}var $F=class{supports(e,r){return e.reference.startsWith(BD)}getLocalPath(e,r){let s=Bw(e);return r.fetcher.getLocalPath(s,r)}fetch(e,r){let s=Bw(e);return r.fetcher.fetch(s,r)}};var eN=class{supportsDescriptor(e,r){return!!e.range.startsWith(BD)}supportsLocator(e,r){return!!e.reference.startsWith(BD)}shouldPersistResolution(e,r){let s=Bw(e);return r.resolver.shouldPersistResolution(s,r)}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{inner:ww(e)}}async getCandidates(e,r,s){let a=s.project.configuration.normalizeDependency(ww(e));return(await s.resolver.getCandidates(a,r,s)).map(c=>jW(c))}async getSatisfying(e,r,s,a){let n=a.project.configuration.normalizeDependency(ww(e));return a.resolver.getSatisfying(n,r,s,a)}async resolve(e,r){let s=Bw(e),a=await r.resolver.resolve(s,r);return{...a,...jW(a)}}};var Egt=[\"dependencies\",\"devDependencies\",\"peerDependencies\"];function Igt(t,e){for(let r of Egt)for(let s of t.manifest.getForScope(r).values()){if(!s.range.startsWith(\"jsr:\"))continue;let a=ww(s),n=r===\"dependencies\"?G.makeDescriptor(s,\"unknown\"):null,c=n!==null&&t.manifest.ensureDependencyMeta(n).optional?\"optionalDependencies\":r;e[c][G.stringifyIdent(s)]=a.range}}var Cgt={hooks:{beforeWorkspacePacking:Igt},resolvers:[eN],fetchers:[$F]},wgt=Cgt;var qW={};Vt(qW,{LinkFetcher:()=>vD,LinkResolver:()=>SD,PortalFetcher:()=>DD,PortalResolver:()=>PD,default:()=>vgt});Ge();Dt();var rh=\"portal:\",nh=\"link:\";var vD=class{supports(e,r){return!!e.reference.startsWith(nh)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:nh});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:nh}),n=J.isAbsolute(a)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,n.localPath),localPath:vt.root}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=J.resolve(c.localPath??c.packageFs.getRealPath(),c.prefixPath,a);return n.localPath?{packageFs:new Sn(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot,discardFromLookup:!0,localPath:p}:{packageFs:new Hf(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot,discardFromLookup:!0}}};Ge();Dt();var SD=class{supportsDescriptor(e,r){return!!e.range.startsWith(nh)}supportsLocator(e,r){return!!e.reference.startsWith(nh)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=e.range.slice(nh.length);return[G.makeLocator(e,`${nh}${fe.toPortablePath(a)}`)]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:\"0.0.0\",languageName:r.project.configuration.get(\"defaultLanguageName\"),linkType:\"SOFT\",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ge();Dt();var DD=class{supports(e,r){return!!e.reference.startsWith(rh)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:rh});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:rh}),n=J.isAbsolute(a)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,n.localPath),localPath:vt.root}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=J.resolve(c.localPath??c.packageFs.getRealPath(),c.prefixPath,a);return n.localPath?{packageFs:new Sn(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot,localPath:p}:{packageFs:new Hf(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot}}};Ge();Ge();Dt();var PD=class{supportsDescriptor(e,r){return!!e.range.startsWith(rh)}supportsLocator(e,r){return!!e.reference.startsWith(rh)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=e.range.slice(rh.length);return[G.makeLocator(e,`${rh}${fe.toPortablePath(a)}`)]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ut.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||\"0.0.0\",languageName:a.languageName||r.project.configuration.get(\"defaultLanguageName\"),linkType:\"SOFT\",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Bgt={fetchers:[vD,DD],resolvers:[SD,PD]},vgt=Bgt;var PY={};Vt(PY,{NodeModulesLinker:()=>jD,NodeModulesMode:()=>BY,PnpLooseLinker:()=>GD,default:()=>Hdt});Dt();Ge();Dt();Dt();var YW=(t,e)=>`${t}@${e}`,O2e=(t,e)=>{let r=e.indexOf(\"#\"),s=r>=0?e.substring(r+1):e;return YW(t,s)};var M2e=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),s=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:s,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},c;n.debugLevel>=0&&(c=Date.now());let f=Qgt(t,n),p=!1,h=0;do{let E=VW(f,[f],new Set([f.locator]),new Map,n);p=E.anotherRoundNeeded||E.isGraphChanged,n.fastLookupPossible=!1,h++}while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-c}ms, rounds: ${h}`),n.debugLevel>=1){let E=bD(f);if(VW(f,[f],new Set([f.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree:\n${E}, next tree:\n${bD(f)}`);let S=U2e(f);if(S)throw new Error(`${S}, after hoisting finished:\n${bD(f)}`)}return n.debugLevel>=2&&console.log(bD(f)),Rgt(f)},Sgt=t=>{let e=t[t.length-1],r=new Map,s=new Set,a=n=>{if(!s.has(n)){s.add(n);for(let c of n.hoistedDependencies.values())r.set(c.name,c);for(let c of n.dependencies.values())n.peerNames.has(c.name)||a(c)}};return a(e),r},Dgt=t=>{let e=t[t.length-1],r=new Map,s=new Set,a=new Set,n=(c,f)=>{if(s.has(c))return;s.add(c);for(let h of c.hoistedDependencies.values())if(!f.has(h.name)){let E;for(let C of t)E=C.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of c.dependencies.values())p.add(h.name);for(let h of c.dependencies.values())c.peerNames.has(h.name)||n(h,p)};return n(e,a),r},L2e=(t,e)=>{if(e.decoupled)return e;let{name:r,references:s,ident:a,locator:n,dependencies:c,originalDependencies:f,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:C,hoistPriority:S,dependencyKind:b,hoistedFrom:I,hoistedTo:T}=e,N={name:r,references:new Set(s),ident:a,locator:n,dependencies:new Map(c),originalDependencies:new Map(f),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:C,hoistPriority:S,dependencyKind:b,hoistedFrom:new Map(I),hoistedTo:new Map(T)},U=N.dependencies.get(r);return U&&U.ident==N.ident&&N.dependencies.set(r,N),t.dependencies.set(N.name,N),N},Pgt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let s=Array.from(e.keys());s.sort((a,n)=>{let c=e.get(a),f=e.get(n);if(f.hoistPriority!==c.hoistPriority)return f.hoistPriority-c.hoistPriority;{let p=c.dependents.size+c.peerDependents.size;return f.dependents.size+f.peerDependents.size-p}});for(let a of s){let n=a.substring(0,a.indexOf(\"@\",1)),c=a.substring(n.length+1);if(!t.peerNames.has(n)){let f=r.get(n);f||(f=[],r.set(n,f)),f.indexOf(c)<0&&f.push(c)}}return r},WW=t=>{let e=new Set,r=(s,a=new Set)=>{if(!a.has(s)){a.add(s);for(let n of s.peerNames)if(!t.peerNames.has(n)){let c=t.dependencies.get(n);c&&!e.has(c)&&r(c,a)}e.add(s)}};for(let s of t.dependencies.values())t.peerNames.has(s.name)||r(s);return e},VW=(t,e,r,s,a,n=new Set)=>{let c=e[e.length-1];if(n.has(c))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(c);let f=Tgt(c),p=Pgt(c,f),h=t==c?new Map:a.fastLookupPossible?Sgt(e):Dgt(e),E,C=!1,S=!1,b=new Map(Array.from(p.entries()).map(([T,N])=>[T,N[0]])),I=new Map;do{let T=kgt(t,e,r,h,b,p,s,I,a);T.isGraphChanged&&(S=!0),T.anotherRoundNeeded&&(C=!0),E=!1;for(let[N,U]of p)U.length>1&&!c.dependencies.has(N)&&(b.delete(N),U.shift(),b.set(N,U[0]),E=!0)}while(E);for(let T of c.dependencies.values())if(!c.peerNames.has(T.name)&&!r.has(T.locator)){r.add(T.locator);let N=VW(t,[...e,T],r,I,a);N.isGraphChanged&&(S=!0),N.anotherRoundNeeded&&(C=!0),r.delete(T.locator)}return{anotherRoundNeeded:C,isGraphChanged:S}},bgt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},xgt=(t,e,r,s,a,n,c,f,{outputReason:p,fastLookupPossible:h})=>{let E,C=null,S=new Set;p&&(E=`${Array.from(e).map(N=>yo(N)).join(\"\\u2192\")}`);let b=r[r.length-1],T=!(s.ident===b.ident);if(p&&!T&&(C=\"- self-reference\"),T&&(T=s.dependencyKind!==1,p&&!T&&(C=\"- workspace\")),T&&s.dependencyKind===2&&(T=!bgt(s),p&&!T&&(C=\"- external soft link with unhoisted dependencies\")),T&&(T=!t.peerNames.has(s.name),p&&!T&&(C=`- cannot shadow peer: ${yo(t.originalDependencies.get(s.name).locator)} at ${E}`)),T){let N=!1,U=a.get(s.name);if(N=!U||U.ident===s.ident,p&&!N&&(C=`- filled by: ${yo(U.locator)} at ${E}`),N)for(let W=r.length-1;W>=1;W--){let ie=r[W].dependencies.get(s.name);if(ie&&ie.ident!==s.ident){N=!1;let ue=f.get(b);ue||(ue=new Set,f.set(b,ue)),ue.add(s.name),p&&(C=`- filled by ${yo(ie.locator)} at ${r.slice(0,W).map(le=>yo(le.locator)).join(\"\\u2192\")}`);break}}T=N}if(T&&(T=n.get(s.name)===s.ident,p&&!T&&(C=`- filled by: ${yo(c.get(s.name)[0])} at ${E}`)),T){let N=!0,U=new Set(s.peerNames);for(let W=r.length-1;W>=1;W--){let ee=r[W];for(let ie of U){if(ee.peerNames.has(ie)&&ee.originalDependencies.has(ie))continue;let ue=ee.dependencies.get(ie);ue&&t.dependencies.get(ie)!==ue&&(W===r.length-1?S.add(ue):(S=null,N=!1,p&&(C=`- peer dependency ${yo(ue.locator)} from parent ${yo(ee.locator)} was not hoisted to ${E}`))),U.delete(ie)}if(!N)break}T=N}if(T&&!h)for(let N of s.hoistedDependencies.values()){let U=a.get(N.name)||t.dependencies.get(N.name);if(!U||N.ident!==U.ident){T=!1,p&&(C=`- previously hoisted dependency mismatch, needed: ${yo(N.locator)}, available: ${yo(U?.locator)}`);break}}return S!==null&&S.size>0?{isHoistable:2,dependsOn:S,reason:C}:{isHoistable:T?0:1,reason:C}},tN=t=>`${t.name}@${t.locator}`,kgt=(t,e,r,s,a,n,c,f,p)=>{let h=e[e.length-1],E=new Set,C=!1,S=!1,b=(U,W,ee,ie,ue)=>{if(E.has(ie))return;let le=[...W,tN(ie)],me=[...ee,tN(ie)],pe=new Map,Be=new Map;for(let Ae of WW(ie)){let se=xgt(h,r,[h,...U,ie],Ae,s,a,n,f,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(Be.set(Ae,se),se.isHoistable===2)for(let X of se.dependsOn){let De=pe.get(X.name)||new Set;De.add(Ae.name),pe.set(X.name,De)}}let Ce=new Set,g=(Ae,se,X)=>{if(!Ce.has(Ae)){Ce.add(Ae),Be.set(Ae,{isHoistable:1,reason:X});for(let De of pe.get(Ae.name)||[])g(ie.dependencies.get(De),se,p.debugLevel>=2?`- peer dependency ${yo(Ae.locator)} from parent ${yo(ie.locator)} was not hoisted`:\"\")}};for(let[Ae,se]of Be)se.isHoistable===1&&g(Ae,se,se.reason);let we=!1;for(let Ae of Be.keys())if(!Ce.has(Ae)){S=!0;let se=c.get(ie);se&&se.has(Ae.name)&&(C=!0),we=!0,ie.dependencies.delete(Ae.name),ie.hoistedDependencies.set(Ae.name,Ae),ie.reasons.delete(Ae.name);let X=h.dependencies.get(Ae.name);if(p.debugLevel>=2){let De=Array.from(W).concat([ie.locator]).map(mt=>yo(mt)).join(\"\\u2192\"),Te=h.hoistedFrom.get(Ae.name);Te||(Te=[],h.hoistedFrom.set(Ae.name,Te)),Te.push(De),ie.hoistedTo.set(Ae.name,Array.from(e).map(mt=>yo(mt.locator)).join(\"\\u2192\"))}if(!X)h.ident!==Ae.ident&&(h.dependencies.set(Ae.name,Ae),ue.add(Ae));else for(let De of Ae.references)X.references.add(De)}if(ie.dependencyKind===2&&we&&(C=!0),p.check){let Ae=U2e(t);if(Ae)throw new Error(`${Ae}, after hoisting dependencies of ${[h,...U,ie].map(se=>yo(se.locator)).join(\"\\u2192\")}:\n${bD(t)}`)}let ye=WW(ie);for(let Ae of ye)if(Ce.has(Ae)){let se=Be.get(Ae);if((a.get(Ae.name)===Ae.ident||!ie.reasons.has(Ae.name))&&se.isHoistable!==0&&ie.reasons.set(Ae.name,se.reason),!Ae.isHoistBorder&&me.indexOf(tN(Ae))<0){E.add(ie);let De=L2e(ie,Ae);b([...U,ie],le,me,De,T),E.delete(ie)}}},I,T=new Set(WW(h)),N=Array.from(e).map(U=>tN(U));do{I=T,T=new Set;for(let U of I){if(U.locator===h.locator||U.isHoistBorder)continue;let W=L2e(h,U);b([],Array.from(r),N,W,T)}}while(T.size>0);return{anotherRoundNeeded:C,isGraphChanged:S}},U2e=t=>{let e=[],r=new Set,s=new Set,a=(n,c,f)=>{if(r.has(n)||(r.add(n),s.has(n)))return;let p=new Map(c);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),C=()=>`${Array.from(s).concat([n]).map(S=>yo(S.locator)).join(\"\\u2192\")}`;if(n.peerNames.has(h.name)){let S=c.get(h.name);(S!==E||!S||S.ident!==h.ident)&&e.push(`${C()} - broken peer promise: expected ${h.ident} but found ${S&&S.ident}`)}else{let S=f.hoistedFrom.get(n.name),b=n.hoistedTo.get(h.name),I=`${S?` hoisted from ${S.join(\", \")}`:\"\"}`,T=`${b?` hoisted to ${b}`:\"\"}`,N=`${C()}${I}`;E?E.ident!==h.ident&&e.push(`${N} - broken require promise for ${h.name}${T}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${N} - broken require promise: no required dependency ${h.name}${T} found`)}}s.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);s.delete(n)};return a(t,t.dependencies,t),e.join(`\n`)},Qgt=(t,e)=>{let{identName:r,name:s,reference:a,peerNames:n}=t,c={name:s,references:new Set([a]),locator:YW(r,a),ident:O2e(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},f=new Map([[t,c]]),p=(h,E)=>{let C=f.get(h),S=!!C;if(!C){let{name:b,identName:I,reference:T,peerNames:N,hoistPriority:U,dependencyKind:W}=h,ee=e.hoistingLimits.get(E.locator);C={name:b,references:new Set([T]),locator:YW(I,T),ident:O2e(I,T),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(N),reasons:new Map,decoupled:!0,isHoistBorder:ee?ee.has(b):!1,hoistPriority:U||0,dependencyKind:W||0,hoistedFrom:new Map,hoistedTo:new Map},f.set(h,C)}if(E.dependencies.set(h.name,C),E.originalDependencies.set(h.name,C),S){let b=new Set,I=T=>{if(!b.has(T)){b.add(T),T.decoupled=!1;for(let N of T.dependencies.values())T.peerNames.has(N.name)||I(N)}};I(C)}else for(let b of h.dependencies)p(b,C)};for(let h of t.dependencies)p(h,c);return c},JW=t=>t.substring(0,t.indexOf(\"@\",1)),Rgt=t=>{let e={name:t.name,identName:JW(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),s=(a,n,c)=>{let f=r.has(a),p;if(n===a)p=c;else{let{name:h,references:E,locator:C}=a;p={name:h,identName:JW(C),references:E,dependencies:new Set}}if(c.dependencies.add(p),!f){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||s(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())s(a,t,e);return e},Tgt=t=>{let e=new Map,r=new Set([t]),s=c=>`${c.name}@${c.ident}`,a=c=>{let f=s(c),p=e.get(f);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(f,p)),p},n=(c,f)=>{let p=!!r.has(f);if(a(f).dependents.add(c.ident),!p){r.add(f);for(let E of f.dependencies.values()){let C=a(E);C.hoistPriority=Math.max(C.hoistPriority,E.hoistPriority),f.peerNames.has(E.name)?C.peerDependents.add(f.ident):n(f,E)}}};for(let c of t.dependencies.values())t.peerNames.has(c.name)||n(t,c);return e},yo=t=>{if(!t)return\"none\";let e=t.indexOf(\"@\",1),r=t.substring(0,e);r.endsWith(\"$wsroot$\")&&(r=`wh:${r.replace(\"$wsroot$\",\"\")}`);let s=t.substring(e+1);if(s===\"workspace:.\")return\".\";if(s){let a=(s.indexOf(\"#\")>0?s.split(\"#\")[1]:s).replace(\"npm:\",\"\");return s.startsWith(\"virtual\")&&(r=`v:${r}`),a.startsWith(\"workspace\")&&(r=`w:${r}`,a=\"\"),`${r}${a?`@${a}`:\"\"}`}else return`${r}`};var bD=t=>{let e=0,r=(a,n,c=\"\")=>{if(e>5e4||n.has(a))return\"\";e++;let f=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p=\"\";n.add(a);for(let h=0;h<f.length;h++){let E=f[h];if(!a.peerNames.has(E.name)&&E!==a){let C=a.reasons.get(E.name),S=JW(E.locator);p+=`${c}${h<f.length-1?\"\\u251C\\u2500\":\"\\u2514\\u2500\"}${(n.has(E)?\">\":\"\")+(S!==E.name?`a:${E.name}:`:\"\")+yo(E.locator)+(C?` ${C}`:\"\")}\n`,p+=r(E,n,`${c}${h<f.length-1?\"\\u2502 \":\"  \"}`)}}return n.delete(a),p};return r(t,new Set)+(e>5e4?`\nTree is too large, part of the tree has been dunped\n`:\"\")};var xD=(s=>(s.WORKSPACES=\"workspaces\",s.DEPENDENCIES=\"dependencies\",s.NONE=\"none\",s))(xD||{}),_2e=\"node_modules\",rg=\"$wsroot$\";var kD=(t,e)=>{let{packageTree:r,hoistingLimits:s,errors:a,preserveSymlinksRequired:n}=Ngt(t,e),c=null;if(a.length===0){let f=M2e(r,{hoistingLimits:s});c=Lgt(t,f,e)}return{tree:c,errors:a,preserveSymlinksRequired:n}},pA=t=>`${t.name}@${t.reference}`,zW=t=>{let e=new Map;for(let[r,s]of t.entries())if(!s.dirList){let a=e.get(s.locator);a||(a={target:s.target,linkType:s.linkType,locations:[],aliases:s.aliases},e.set(s.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((s,a)=>{let n=s.split(J.delimiter).length,c=a.split(J.delimiter).length;return a===s?0:n!==c?c-n:a>s?1:-1});return e},H2e=(t,e)=>{let r=G.isVirtualLocator(t)?G.devirtualizeLocator(t):t,s=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e;return G.areLocatorsEqual(r,s)},KW=(t,e,r,s)=>{if(t.linkType!==\"SOFT\")return!1;let a=fe.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith(\"virtual:\")?r.resolveVirtual(t.packageLocation):t.packageLocation);return J.contains(s,a)===null},Fgt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error(\"Assertion failed: Expected the top-level package to have been registered\");if(t.findPackageLocator(e.packageLocation)===null)throw new Error(\"Assertion failed: Expected the top-level package to have a physical locator\");let s=fe.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},c=t.getDependencyTreeRoots(),f=new Map,p=new Set,h=(S,b)=>{let I=pA(S);if(p.has(I))return;p.add(I);let T=t.getPackageInformation(S);if(T){let N=b?pA(b):\"\";if(pA(S)!==N&&T.linkType===\"SOFT\"&&!S.reference.startsWith(\"link:\")&&!KW(T,S,t,s)){let U=j2e(T,S,t);(!f.get(U)||S.reference.startsWith(\"workspace:\"))&&f.set(U,S)}for(let[U,W]of T.packageDependencies)W!==null&&(T.packagePeers.has(U)||h(t.getLocator(U,W),S))}};for(let S of c)h(S,null);let E=s.split(J.sep);for(let S of f.values()){let b=t.getPackageInformation(S),T=fe.toPortablePath(b.packageLocation.slice(0,-1)).split(J.sep).slice(E.length),N=n;for(let U of T){let W=N.children.get(U);W||(W={children:new Map},N.children.set(U,W)),N=W}N.workspaceLocator=S}let C=(S,b)=>{if(S.workspaceLocator){let I=pA(b),T=a.get(I);T||(T=new Set,a.set(I,T)),T.add(S.workspaceLocator)}for(let I of S.children.values())C(I,S.workspaceLocator||b)};for(let S of n.children.values())C(S,n.workspaceLocator);return a},Ngt=(t,e)=>{let r=[],s=!1,a=new Map,n=Fgt(t),c=t.getPackageInformation(t.topLevel);if(c===null)throw new Error(\"Assertion failed: Expected the top-level package to have been registered\");let f=t.findPackageLocator(c.packageLocation);if(f===null)throw new Error(\"Assertion failed: Expected the top-level package to have a physical locator\");let p=fe.toPortablePath(c.packageLocation.slice(0,-1)),h={name:f.name,identName:f.name,reference:f.reference,peerNames:c.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,C=(b,I)=>`${pA(I)}:${b}`,S=(b,I,T,N,U,W,ee,ie)=>{let ue=C(b,T),le=E.get(ue),me=!!le;!me&&T.name===f.name&&T.reference===f.reference&&(le=h,E.set(ue,h));let pe=KW(I,T,t,p);if(!le){let Ae=0;pe?Ae=2:I.linkType===\"SOFT\"&&T.name.endsWith(rg)&&(Ae=1),le={name:b,identName:T.name,reference:T.reference,dependencies:new Set,peerNames:Ae===1?new Set:I.packagePeers,dependencyKind:Ae},E.set(ue,le)}let Be;if(pe?Be=2:U.linkType===\"SOFT\"?Be=1:Be=0,le.hoistPriority=Math.max(le.hoistPriority||0,Be),ie&&!pe){let Ae=pA({name:N.identName,reference:N.reference}),se=a.get(Ae)||new Set;a.set(Ae,se),se.add(le.name)}let Ce=new Map(I.packageDependencies);if(e.project){let Ae=e.project.workspacesByCwd.get(fe.toPortablePath(I.packageLocation.slice(0,-1)));if(Ae){let se=new Set([...Array.from(Ae.manifest.peerDependencies.values(),X=>G.stringifyIdent(X)),...Array.from(Ae.manifest.peerDependenciesMeta.keys())]);for(let X of se)Ce.has(X)||(Ce.set(X,W.get(X)||null),le.peerNames.add(X))}}let g=pA({name:T.name.replace(rg,\"\"),reference:T.reference}),we=n.get(g);if(we)for(let Ae of we)Ce.set(`${Ae.name}${rg}`,Ae.reference);(I!==U||I.linkType!==\"SOFT\"||!pe&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(ee)))&&N.dependencies.add(le);let ye=T!==f&&I.linkType===\"SOFT\"&&!T.name.endsWith(rg)&&!pe;if(!me&&!ye){let Ae=new Map;for(let[se,X]of Ce)if(X!==null){let De=t.getLocator(se,X),Te=t.getLocator(se.replace(rg,\"\"),X),mt=t.getPackageInformation(Te);if(mt===null)throw new Error(\"Assertion failed: Expected the package to have been registered\");let j=KW(mt,De,t,p);if(e.validateExternalSoftLinks&&e.project&&j){mt.packageDependencies.size>0&&(s=!0);for(let[Ve,ke]of mt.packageDependencies)if(ke!==null){let it=G.parseLocator(Array.isArray(ke)?`${ke[0]}@${ke[1]}`:`${Ve}@${ke}`);if(pA(it)!==pA(De)){let Ue=Ce.get(Ve);if(Ue){let x=G.parseLocator(Array.isArray(Ue)?`${Ue[0]}@${Ue[1]}`:`${Ve}@${Ue}`);H2e(x,it)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(De.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${T.name}@${T.reference}`))} dependency ${G.prettyLocator(e.project.configuration,it)} conflicts with parent dependency ${G.prettyLocator(e.project.configuration,x)}`})}else{let x=Ae.get(Ve);if(x){let w=x.target,P=G.parseLocator(Array.isArray(w)?`${w[0]}@${w[1]}`:`${Ve}@${w}`);H2e(P,it)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(De.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${T.name}@${T.reference}`))} dependency ${G.prettyLocator(e.project.configuration,it)} conflicts with dependency ${G.prettyLocator(e.project.configuration,P)} from sibling portal ${G.prettyIdent(e.project.configuration,G.parseIdent(x.portal.name))}`})}else Ae.set(Ve,{target:it.reference,portal:De})}}}}let rt=e.hoistingLimitsByCwd?.get(ee),Fe=j?ee:J.relative(p,fe.toPortablePath(mt.packageLocation))||vt.dot,Ne=e.hoistingLimitsByCwd?.get(Fe);S(se,mt,De,le,I,Ce,Fe,rt===\"dependencies\"||Ne===\"dependencies\"||Ne===\"workspaces\")}}};return S(f.name,c,f,h,c,c.packageDependencies,vt.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:s}};function j2e(t,e,r){let s=r.resolveVirtual&&e.reference&&e.reference.startsWith(\"virtual:\")?r.resolveVirtual(t.packageLocation):t.packageLocation;return fe.toPortablePath(s||t.packageLocation)}function Ogt(t,e,r){let s=e.getLocator(t.name.replace(rg,\"\"),t.reference),a=e.getPackageInformation(s);if(a===null)throw new Error(\"Assertion failed: Expected the package to be registered\");return r.pnpifyFs?{linkType:\"SOFT\",target:fe.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:j2e(a,t,e)}}var Lgt=(t,e,r)=>{let s=new Map,a=(E,C,S)=>{let{linkType:b,target:I}=Ogt(E,t,r);return{locator:pA(E),nodePath:C,target:I,linkType:b,aliases:S}},n=E=>{let[C,S]=E.split(\"/\");return S?{scope:C,name:S}:{scope:null,name:C}},c=new Set,f=(E,C,S)=>{if(c.has(E))return;c.add(E);let b=Array.from(E.references).sort().join(\"#\");for(let I of E.dependencies){let T=Array.from(I.references).sort().join(\"#\");if(I.identName===E.identName.replace(rg,\"\")&&T===b)continue;let N=Array.from(I.references).sort(),U={name:I.identName,reference:N[0]},{name:W,scope:ee}=n(I.name),ie=ee?[ee,W]:[W],ue=J.join(C,_2e),le=J.join(ue,...ie),me=`${S}/${U.name}`,pe=a(U,S,N.slice(1)),Be=!1;if(pe.linkType===\"SOFT\"&&r.project){let Ce=r.project.workspacesByCwd.get(pe.target.slice(0,-1));Be=!!(Ce&&!Ce.manifest.name)}if(!I.name.endsWith(rg)&&!Be){let Ce=s.get(le);if(Ce){if(Ce.dirList)throw new Error(`Assertion failed: ${le} cannot merge dir node with leaf node`);{let ye=G.parseLocator(Ce.locator),Ae=G.parseLocator(pe.locator);if(Ce.linkType!==pe.linkType)throw new Error(`Assertion failed: ${le} cannot merge nodes with different link types ${Ce.nodePath}/${G.stringifyLocator(ye)} and ${S}/${G.stringifyLocator(Ae)}`);if(ye.identHash!==Ae.identHash)throw new Error(`Assertion failed: ${le} cannot merge nodes with different idents ${Ce.nodePath}/${G.stringifyLocator(ye)} and ${S}/s${G.stringifyLocator(Ae)}`);pe.aliases=[...pe.aliases,...Ce.aliases,G.parseLocator(Ce.locator).reference]}}s.set(le,pe);let g=le.split(\"/\"),we=g.indexOf(_2e);for(let ye=g.length-1;we>=0&&ye>we;ye--){let Ae=fe.toPortablePath(g.slice(0,ye).join(J.sep)),se=g[ye],X=s.get(Ae);if(!X)s.set(Ae,{dirList:new Set([se])});else if(X.dirList){if(X.dirList.has(se))break;X.dirList.add(se)}}}f(I,pe.linkType===\"SOFT\"?pe.target:le,me)}},p=a({name:e.name,reference:Array.from(e.references)[0]},\"\",[]),h=p.target;return s.set(h,p),f(e,h,\"\"),s};Ge();Ge();Dt();Dt();eA();wc();var gY={};Vt(gY,{PnpInstaller:()=>Gm,PnpLinker:()=>sg,UnplugCommand:()=>Sw,default:()=>pdt,getPnpPath:()=>og,jsInstallUtils:()=>gA,pnpUtils:()=>HD,quotePathIfNeeded:()=>DBe});Dt();var SBe=Ie(\"url\");Ge();Ge();Dt();Dt();var G2e={DEFAULT:{collapsed:!1,next:{\"*\":\"DEFAULT\"}},TOP_LEVEL:{collapsed:!1,next:{fallbackExclusionList:\"FALLBACK_EXCLUSION_LIST\",packageRegistryData:\"PACKAGE_REGISTRY_DATA\",\"*\":\"DEFAULT\"}},FALLBACK_EXCLUSION_LIST:{collapsed:!1,next:{\"*\":\"FALLBACK_EXCLUSION_ENTRIES\"}},FALLBACK_EXCLUSION_ENTRIES:{collapsed:!0,next:{\"*\":\"FALLBACK_EXCLUSION_DATA\"}},FALLBACK_EXCLUSION_DATA:{collapsed:!0,next:{\"*\":\"DEFAULT\"}},PACKAGE_REGISTRY_DATA:{collapsed:!1,next:{\"*\":\"PACKAGE_REGISTRY_ENTRIES\"}},PACKAGE_REGISTRY_ENTRIES:{collapsed:!0,next:{\"*\":\"PACKAGE_STORE_DATA\"}},PACKAGE_STORE_DATA:{collapsed:!1,next:{\"*\":\"PACKAGE_STORE_ENTRIES\"}},PACKAGE_STORE_ENTRIES:{collapsed:!0,next:{\"*\":\"PACKAGE_INFORMATION_DATA\"}},PACKAGE_INFORMATION_DATA:{collapsed:!1,next:{packageDependencies:\"PACKAGE_DEPENDENCIES\",\"*\":\"DEFAULT\"}},PACKAGE_DEPENDENCIES:{collapsed:!1,next:{\"*\":\"PACKAGE_DEPENDENCY\"}},PACKAGE_DEPENDENCY:{collapsed:!0,next:{\"*\":\"DEFAULT\"}}};function Mgt(t,e,r){let s=\"\";s+=\"[\";for(let a=0,n=t.length;a<n;++a)s+=rN(String(a),t[a],e,r).replace(/^ +/g,\"\"),a+1<n&&(s+=\", \");return s+=\"]\",s}function Ugt(t,e,r){let s=`${r}  `,a=\"\";a+=r,a+=`[\n`;for(let n=0,c=t.length;n<c;++n)a+=s+rN(String(n),t[n],e,s).replace(/^ +/,\"\"),n+1<c&&(a+=\",\"),a+=`\n`;return a+=r,a+=\"]\",a}function _gt(t,e,r){let s=Object.keys(t),a=\"\";a+=\"{\";for(let n=0,c=s.length,f=0;n<c;++n){let p=s[n],h=t[p];typeof h>\"u\"||(f!==0&&(a+=\", \"),a+=JSON.stringify(p),a+=\": \",a+=rN(p,h,e,r).replace(/^ +/g,\"\"),f+=1)}return a+=\"}\",a}function Hgt(t,e,r){let s=Object.keys(t),a=`${r}  `,n=\"\";n+=r,n+=`{\n`;let c=0;for(let f=0,p=s.length;f<p;++f){let h=s[f],E=t[h];typeof E>\"u\"||(c!==0&&(n+=\",\",n+=`\n`),n+=a,n+=JSON.stringify(h),n+=\": \",n+=rN(h,E,e,a).replace(/^ +/g,\"\"),c+=1)}return c!==0&&(n+=`\n`),n+=r,n+=\"}\",n}function rN(t,e,r,s){let{next:a}=G2e[r],n=a[t]||a[\"*\"];return q2e(e,n,s)}function q2e(t,e,r){let{collapsed:s}=G2e[e];return Array.isArray(t)?s?Mgt(t,e,r):Ugt(t,e,r):typeof t==\"object\"&&t!==null?s?_gt(t,e,r):Hgt(t,e,r):JSON.stringify(t)}function W2e(t){return q2e(t,\"TOP_LEVEL\",\"\")}function QD(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let s=[];for(let n of e)s.push(r.map(c=>n(c)));let a=r.map((n,c)=>c);return a.sort((n,c)=>{for(let f of s){let p=f[n]<f[c]?-1:f[n]>f[c]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function jgt(t){let e=new Map,r=QD(t.fallbackExclusionList||[],[({name:s,reference:a})=>s,({name:s,reference:a})=>a]);for(let{name:s,reference:a}of r){let n=e.get(s);typeof n>\"u\"&&e.set(s,n=new Set),n.add(a)}return Array.from(e).map(([s,a])=>[s,Array.from(a)])}function Ggt(t){return QD(t.fallbackPool||[],([e])=>e)}function qgt(t){let e=[],r=t.dependencyTreeRoots.find(s=>t.packageRegistry.get(s.name)?.get(s.reference)?.packageLocation===\"./\");for(let[s,a]of QD(t.packageRegistry,([n])=>n===null?\"0\":`1${n}`)){if(s===null)continue;let n=[];e.push([s,n]);for(let[c,{packageLocation:f,packageDependencies:p,packagePeers:h,linkType:E,discardFromLookup:C}]of QD(a,([S])=>S===null?\"0\":`1${S}`)){if(c===null)continue;let S=[];s!==null&&c!==null&&!p.has(s)&&S.push([s,c]);for(let[U,W]of p)S.push([U,W]);let b=QD(S,([U])=>U),I=h&&h.size>0?Array.from(h):void 0,N={packageLocation:f,packageDependencies:b,packagePeers:I,linkType:E,discardFromLookup:C||void 0};n.push([c,N]),r&&s===r.name&&c===r.reference&&e.unshift([null,[[null,N]]])}}return e}function RD(t){return{__info:[\"This file is automatically generated. Do not touch it, or risk\",\"your modifications being lost.\"],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,pnpZipBackend:t.pnpZipBackend,fallbackExclusionList:jgt(t),fallbackPool:Ggt(t),packageRegistryData:qgt(t)}}var J2e=ut(V2e());function K2e(t,e){return[t?`${t}\n`:\"\",`/* eslint-disable */\n`,`// @ts-nocheck\n`,`\"use strict\";\n`,`\n`,e,`\n`,(0,J2e.default)()].join(\"\")}function Wgt(t){return JSON.stringify(t,null,2)}function Ygt(t){return`'${t.replace(/\\\\/g,\"\\\\\\\\\").replace(/'/g,\"\\\\'\").replace(/\\n/g,`\\\\\n`)}'`}function Vgt(t){return[`const RAW_RUNTIME_STATE =\n`,`${Ygt(W2e(t))};\n\n`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) {\n`,`  return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname});\n`,`}\n`].join(\"\")}function Jgt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) {\n`,`  const fs = require('fs');\n`,`  const path = require('path');\n`,`  const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(Er.pnpData)});\n`,`  return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname});\n`,`}\n`].join(\"\")}function z2e(t){let e=RD(t),r=Vgt(e);return K2e(t.shebang,r)}function Z2e(t){let e=RD(t),r=Jgt(),s=K2e(t.shebang,r);return{dataFile:Wgt(e),loaderFile:s}}Dt();function XW(t,{basePath:e}){let r=fe.toPortablePath(e),s=J.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,c=new Map(t.packageRegistryData.map(([C,S])=>[C,new Map(S.map(([b,I])=>{if(C===null!=(b===null))throw new Error(\"Assertion failed: The name and reference should be null, or neither should\");let T=I.discardFromLookup??!1,N={name:C,reference:b},U=n.get(I.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&T,T||(U.locator=N)):n.set(I.packageLocation,{locator:N,discardFromLookup:T});let W=null;return[b,{packageDependencies:new Map(I.packageDependencies),packagePeers:new Set(I.packagePeers),linkType:I.linkType,discardFromLookup:T,get packageLocation(){return W||(W=J.join(s,I.packageLocation))}}]}))])),f=new Map(t.fallbackExclusionList.map(([C,S])=>[C,new Set(S)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:f,pnpZipBackend:t.pnpZipBackend,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:c}}Dt();Dt();var sh=Ie(\"module\"),jm=Ie(\"url\"),lY=Ie(\"util\");var ta=Ie(\"url\");var tBe=ut(Ie(\"assert\"));var $W=Array.isArray,TD=JSON.stringify,FD=Object.getOwnPropertyNames,Hm=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),eY=(t,e)=>RegExp.prototype.exec.call(t,e),tY=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),ng=(t,...e)=>String.prototype.endsWith.apply(t,e),rY=(t,...e)=>String.prototype.includes.apply(t,e),nY=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),ND=(t,...e)=>String.prototype.indexOf.apply(t,e),X2e=(t,...e)=>String.prototype.replace.apply(t,e),ig=(t,...e)=>String.prototype.slice.apply(t,e),hA=(t,...e)=>String.prototype.startsWith.apply(t,e),$2e=Map,eBe=JSON.parse;function OD(t,e,r){return class extends r{constructor(...s){super(e(...s)),this.code=t,this.name=`${r.name} [${t}]`}}}var rBe=OD(\"ERR_PACKAGE_IMPORT_NOT_DEFINED\",(t,e,r)=>`Package import specifier \"${t}\" is not defined${e?` in package ${e}package.json`:\"\"} imported from ${r}`,TypeError),iY=OD(\"ERR_INVALID_MODULE_SPECIFIER\",(t,e,r=void 0)=>`Invalid module \"${t}\" ${e}${r?` imported from ${r}`:\"\"}`,TypeError),nBe=OD(\"ERR_INVALID_PACKAGE_TARGET\",(t,e,r,s=!1,a=void 0)=>{let n=typeof r==\"string\"&&!s&&r.length&&!hA(r,\"./\");return e===\".\"?((0,tBe.default)(s===!1),`Invalid \"exports\" main target ${TD(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:\"\"}${n?'; targets must start with \"./\"':\"\"}`):`Invalid \"${s?\"imports\":\"exports\"}\" target ${TD(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:\"\"}${n?'; targets must start with \"./\"':\"\"}`},Error),LD=OD(\"ERR_INVALID_PACKAGE_CONFIG\",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:\"\"}${r?`. ${r}`:\"\"}`,Error),iBe=OD(\"ERR_PACKAGE_PATH_NOT_EXPORTED\",(t,e,r=void 0)=>e===\".\"?`No \"exports\" main defined in ${t}package.json${r?` imported from ${r}`:\"\"}`:`Package subpath '${e}' is not defined by \"exports\" in ${t}package.json${r?` imported from ${r}`:\"\"}`,Error);var iN=Ie(\"url\");function sBe(t,e){let r=Object.create(null);for(let s=0;s<e.length;s++){let a=e[s];Hm(t,a)&&(r[a]=t[a])}return r}var nN=new $2e;function Kgt(t,e,r,s){let a=nN.get(t);if(a!==void 0)return a;let n=s(t);if(n===void 0){let b={pjsonPath:t,exists:!1,main:void 0,name:void 0,type:\"none\",exports:void 0,imports:void 0};return nN.set(t,b),b}let c;try{c=eBe(n)}catch(b){throw new LD(t,(r?`\"${e}\" from `:\"\")+(0,iN.fileURLToPath)(r||e),b.message)}let{imports:f,main:p,name:h,type:E}=sBe(c,[\"imports\",\"main\",\"name\",\"type\"]),C=Hm(c,\"exports\")?c.exports:void 0;(typeof f!=\"object\"||f===null)&&(f=void 0),typeof p!=\"string\"&&(p=void 0),typeof h!=\"string\"&&(h=void 0),E!==\"module\"&&E!==\"commonjs\"&&(E=\"none\");let S={pjsonPath:t,exists:!0,main:p,name:h,type:E,exports:C,imports:f};return nN.set(t,S),S}function oBe(t,e){let r=new URL(\"./package.json\",t);for(;;){let n=r.pathname;if(ng(n,\"node_modules/package.json\"))break;let c=Kgt((0,iN.fileURLToPath)(r),t,void 0,e);if(c.exists)return c;let f=r;if(r=new URL(\"../package.json\",r),r.pathname===f.pathname)break}let s=(0,iN.fileURLToPath)(r),a={pjsonPath:s,exists:!1,main:void 0,name:void 0,type:\"none\",exports:void 0,imports:void 0};return nN.set(s,a),a}function zgt(t,e,r){throw new rBe(t,e&&(0,ta.fileURLToPath)(new URL(\".\",e)),(0,ta.fileURLToPath)(r))}function Zgt(t,e,r,s){let a=`request is not a valid subpath for the \"${r?\"imports\":\"exports\"}\" resolution of ${(0,ta.fileURLToPath)(e)}`;throw new iY(t,a,s&&(0,ta.fileURLToPath)(s))}function MD(t,e,r,s,a){throw typeof e==\"object\"&&e!==null?e=TD(e,null,\"\"):e=`${e}`,new nBe((0,ta.fileURLToPath)(new URL(\".\",r)),t,e,s,a&&(0,ta.fileURLToPath)(a))}var aBe=/(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\\\|\\/|$)/i,lBe=/\\*/g;function Xgt(t,e,r,s,a,n,c,f){if(e!==\"\"&&!n&&t[t.length-1]!==\"/\"&&MD(r,t,s,c,a),!hA(t,\"./\")){if(c&&!hA(t,\"../\")&&!hA(t,\"/\")){let C=!1;try{new URL(t),C=!0}catch{}if(!C)return n?tY(lBe,t,()=>e):t+e}MD(r,t,s,c,a)}eY(aBe,ig(t,2))!==null&&MD(r,t,s,c,a);let p=new URL(t,s),h=p.pathname,E=new URL(\".\",s).pathname;if(hA(h,E)||MD(r,t,s,c,a),e===\"\")return p;if(eY(aBe,e)!==null){let C=n?X2e(r,\"*\",()=>e):r+e;Zgt(C,s,c,a)}return n?new URL(tY(lBe,p.href,()=>e)):new URL(e,p)}function $gt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function vw(t,e,r,s,a,n,c,f){if(typeof e==\"string\")return Xgt(e,r,s,t,a,n,c,f);if($W(e)){if(e.length===0)return null;let p;for(let h=0;h<e.length;h++){let E=e[h],C;try{C=vw(t,E,r,s,a,n,c,f)}catch(S){if(p=S,S.code===\"ERR_INVALID_PACKAGE_TARGET\")continue;throw S}if(C!==void 0){if(C===null){p=null;continue}return C}}if(p==null)return p;throw p}else if(typeof e==\"object\"&&e!==null){let p=FD(e);for(let h=0;h<p.length;h++){let E=p[h];if($gt(E))throw new LD((0,ta.fileURLToPath)(t),a,'\"exports\" cannot contain numeric property keys.')}for(let h=0;h<p.length;h++){let E=p[h];if(E===\"default\"||f.has(E)){let C=e[E],S=vw(t,C,r,s,a,n,c,f);if(S===void 0)continue;return S}}return}else if(e===null)return null;MD(s,e,t,c,a)}function uBe(t,e){let r=ND(t,\"*\"),s=ND(e,\"*\"),a=r===-1?t.length:r+1,n=s===-1?e.length:s+1;return a>n?-1:n>a||r===-1?1:s===-1||t.length>e.length?-1:e.length>t.length?1:0}function edt(t,e,r){if(typeof t==\"string\"||$W(t))return!0;if(typeof t!=\"object\"||t===null)return!1;let s=FD(t),a=!1,n=0;for(let c=0;c<s.length;c++){let f=s[c],p=f===\"\"||f[0]!==\".\";if(n++===0)a=p;else if(a!==p)throw new LD((0,ta.fileURLToPath)(e),r,`\"exports\" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return a}function sY(t,e,r){throw new iBe((0,ta.fileURLToPath)(new URL(\".\",e)),t,r&&(0,ta.fileURLToPath)(r))}var cBe=new Set;function tdt(t,e,r){let s=(0,ta.fileURLToPath)(e);cBe.has(s+\"|\"+t)||(cBe.add(s+\"|\"+t),process.emitWarning(`Use of deprecated trailing slash pattern mapping \"${t}\" in the \"exports\" field module resolution of the package at ${s}${r?` imported from ${(0,ta.fileURLToPath)(r)}`:\"\"}. Mapping specifiers ending in \"/\" is no longer supported.`,\"DeprecationWarning\",\"DEP0155\"))}function fBe({packageJSONUrl:t,packageSubpath:e,exports:r,base:s,conditions:a}){if(edt(r,t,s)&&(r={\".\":r}),Hm(r,e)&&!rY(e,\"*\")&&!ng(e,\"/\")){let p=r[e],h=vw(t,p,\"\",e,s,!1,!1,a);return h==null&&sY(e,t,s),h}let n=\"\",c,f=FD(r);for(let p=0;p<f.length;p++){let h=f[p],E=ND(h,\"*\");if(E!==-1&&hA(e,ig(h,0,E))){ng(e,\"/\")&&tdt(e,t,s);let C=ig(h,E+1);e.length>=h.length&&ng(e,C)&&uBe(n,h)===1&&nY(h,\"*\")===E&&(n=h,c=ig(e,E,e.length-C.length))}}if(n){let p=r[n],h=vw(t,p,c,n,s,!0,!1,a);return h==null&&sY(e,t,s),h}sY(e,t,s)}function ABe({name:t,base:e,conditions:r,readFileSyncFn:s}){if(t===\"#\"||hA(t,\"#/\")||ng(t,\"/\")){let c=\"is not a valid internal imports specifier name\";throw new iY(t,c,(0,ta.fileURLToPath)(e))}let a,n=oBe(e,s);if(n.exists){a=(0,ta.pathToFileURL)(n.pjsonPath);let c=n.imports;if(c)if(Hm(c,t)&&!rY(t,\"*\")){let f=vw(a,c[t],\"\",t,e,!1,!0,r);if(f!=null)return f}else{let f=\"\",p,h=FD(c);for(let E=0;E<h.length;E++){let C=h[E],S=ND(C,\"*\");if(S!==-1&&hA(t,ig(C,0,S))){let b=ig(C,S+1);t.length>=C.length&&ng(t,b)&&uBe(f,C)===1&&nY(C,\"*\")===S&&(f=C,p=ig(t,S,t.length-b.length))}}if(f){let E=c[f],C=vw(a,E,p,f,e,!0,!0,r);if(C!=null)return C}}}zgt(t,a,e)}Dt();var rdt=new Set([\"BUILTIN_NODE_RESOLUTION_FAILED\",\"MISSING_DEPENDENCY\",\"MISSING_PEER_DEPENDENCY\",\"QUALIFIED_PATH_RESOLUTION_FAILED\",\"UNDECLARED_DEPENDENCY\"]);function gs(t,e,r={},s){s??=rdt.has(t)?\"MODULE_NOT_FOUND\":t;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:s},pnpCode:{...a,value:t},data:{...a,value:r}})}function lf(t){return fe.normalize(fe.fromPortablePath(t))}var dBe=ut(hBe());function mBe(t){return ndt(),aY[t]}var aY;function ndt(){aY||(aY={\"--conditions\":[],...gBe(idt()),...gBe(process.execArgv)})}function gBe(t){return(0,dBe.default)({\"--conditions\":[String],\"-C\":\"--conditions\"},{argv:t,permissive:!0})}function idt(){let t=[],e=sdt(process.env.NODE_OPTIONS||\"\",t);return t.length,e}function sdt(t,e){let r=[],s=!1,a=!0;for(let n=0;n<t.length;++n){let c=t[n];if(c===\"\\\\\"&&s){if(n+1===t.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape)\n`),r;c=t[++n]}else if(c===\" \"&&!s){a=!0;continue}else if(c==='\"'){s=!s;continue}a?(r.push(c),a=!1):r[r.length-1]+=c}return s&&e.push(`invalid value for NODE_OPTIONS (unterminated string)\n`),r}Dt();var[ml,ih]=process.versions.node.split(\".\").map(t=>parseInt(t,10)),yBe=ml>19||ml===19&&ih>=2||ml===18&&ih>=13,IXt=ml===20&&ih<6||ml===19&&ih>=3,CXt=ml>19||ml===19&&ih>=6,wXt=ml>=21||ml===20&&ih>=10||ml===18&&ih>=19,BXt=ml>=21||ml===20&&ih>=10||ml===18&&ih>=20,vXt=ml>=22;function EBe(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>fe.fromPortablePath(uo.resolveVirtual(fe.toPortablePath(e)))),yBe)process.send({\"watch:require\":t});else for(let e of t)process.send({\"watch:require\":e})}function cY(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,s=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\\\/]|\\\\\\\\|\\.{0,2}(?:\\/|$))((?:node:)?(?:@[^/]+\\/)?[^/]+)\\/*(.*|)$/,n=/^(\\/|\\.{1,2}(\\/|$))/,c=/\\/$/,f=/^\\.{0,2}\\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Fe of[\"react-scripts\",\"gatsby\"]){let Ne=t.packageRegistry.get(Fe);if(Ne)for(let be of Ne.keys()){if(be===null)throw new Error(\"Assertion failed: This reference shouldn't be null\");h.push({name:Fe,reference:be})}}let{ignorePattern:C,packageRegistry:S,packageLocatorsByLocations:b}=t;function I(Fe,Ne){return{fn:Fe,args:Ne,error:null,result:null}}function T(Fe){let Ne=process.stderr?.hasColors?.()??process.stdout.isTTY,be=(it,Ue)=>`\\x1B[${it}m${Ue}\\x1B[0m`,Ve=Fe.error;console.error(Ve?be(\"31;1\",`\\u2716 ${Fe.error?.message.replace(/\\n.*/s,\"\")}`):be(\"33;1\",\"\\u203C Resolution\")),Fe.args.length>0&&console.error();for(let it of Fe.args)console.error(`  ${be(\"37;1\",\"In \\u2190\")} ${(0,lY.inspect)(it,{colors:Ne,compact:!0})}`);Fe.result&&(console.error(),console.error(`  ${be(\"37;1\",\"Out \\u2192\")} ${(0,lY.inspect)(Fe.result,{colors:Ne,compact:!0})}`));let ke=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(ke.length>0){console.error();for(let it of ke)console.error(`  ${be(\"38;5;244\",it)}`)}console.error()}function N(Fe,Ne){if(e.allowDebug===!1)return Ne;if(Number.isFinite(s)){if(s>=2)return(...be)=>{let Ve=I(Fe,be);try{return Ve.result=Ne(...be)}catch(ke){throw Ve.error=ke}finally{T(Ve)}};if(s>=1)return(...be)=>{try{return Ne(...be)}catch(Ve){let ke=I(Fe,be);throw ke.error=Ve,T(ke),Ve}}}return Ne}function U(Fe){let Ne=g(Fe);if(!Ne)throw gs(\"INTERNAL\",\"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)\");return Ne}function W(Fe){if(Fe.name===null)return!0;for(let Ne of t.dependencyTreeRoots)if(Ne.name===Fe.name&&Ne.reference===Fe.reference)return!0;return!1}let ee=new Set([\"node\",\"require\",...mBe(\"--conditions\")]);function ie(Fe,Ne=ee,be){let Ve=Ae(J.join(Fe,\"internal.js\"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(Ve===null)throw gs(\"INTERNAL\",`The locator that owns the \"${Fe}\" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:ke}=U(Ve),it=J.join(ke,Er.manifest);if(!e.fakeFs.existsSync(it))return null;let Ue=JSON.parse(e.fakeFs.readFileSync(it,\"utf8\"));if(Ue.exports==null)return null;let x=J.contains(ke,Fe);if(x===null)throw gs(\"INTERNAL\",\"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)\");x!==\".\"&&!f.test(x)&&(x=`./${x}`);try{let w=fBe({packageJSONUrl:(0,jm.pathToFileURL)(fe.fromPortablePath(it)),packageSubpath:x,exports:Ue.exports,base:be?(0,jm.pathToFileURL)(fe.fromPortablePath(be)):null,conditions:Ne});return fe.toPortablePath((0,jm.fileURLToPath)(w))}catch(w){throw gs(\"EXPORTS_RESOLUTION_FAILED\",w.message,{unqualifiedPath:lf(Fe),locator:Ve,pkgJson:Ue,subpath:lf(x),conditions:Ne},w.code)}}function ue(Fe,Ne,{extensions:be}){let Ve;try{Ne.push(Fe),Ve=e.fakeFs.statSync(Fe)}catch{}if(Ve&&!Ve.isDirectory())return e.fakeFs.realpathSync(Fe);if(Ve&&Ve.isDirectory()){let ke;try{ke=JSON.parse(e.fakeFs.readFileSync(J.join(Fe,Er.manifest),\"utf8\"))}catch{}let it;if(ke&&ke.main&&(it=J.resolve(Fe,ke.main)),it&&it!==Fe){let Ue=ue(it,Ne,{extensions:be});if(Ue!==null)return Ue}}for(let ke=0,it=be.length;ke<it;ke++){let Ue=`${Fe}${be[ke]}`;if(Ne.push(Ue),e.fakeFs.existsSync(Ue))return Ue}if(Ve&&Ve.isDirectory())for(let ke=0,it=be.length;ke<it;ke++){let Ue=J.format({dir:Fe,name:\"index\",ext:be[ke]});if(Ne.push(Ue),e.fakeFs.existsSync(Ue))return Ue}return null}function le(Fe){let Ne=new sh.Module(Fe,null);return Ne.filename=Fe,Ne.paths=sh.Module._nodeModulePaths(Fe),Ne}function me(Fe,Ne){return Ne.endsWith(\"/\")&&(Ne=J.join(Ne,\"internal.js\")),sh.Module._resolveFilename(fe.fromPortablePath(Fe),le(fe.fromPortablePath(Ne)),!1,{plugnplay:!1})}function pe(Fe){if(C===null)return!1;let Ne=J.contains(t.basePath,Fe);return Ne===null?!1:!!C.test(Ne.replace(/\\/$/,\"\"))}let Be={std:3,resolveVirtual:1,getAllLocators:1},Ce=p;function g({name:Fe,reference:Ne}){let be=S.get(Fe);if(!be)return null;let Ve=be.get(Ne);return Ve||null}function we({name:Fe,reference:Ne}){let be=[];for(let[Ve,ke]of S)if(Ve!==null)for(let[it,Ue]of ke)it===null||Ue.packageDependencies.get(Fe)!==Ne||Ve===Fe&&it===Ne||be.push({name:Ve,reference:it});return be}function ye(Fe,Ne){let be=new Map,Ve=new Set,ke=Ue=>{let x=JSON.stringify(Ue.name);if(Ve.has(x))return;Ve.add(x);let w=we(Ue);for(let P of w)if(U(P).packagePeers.has(Fe))ke(P);else{let F=be.get(P.name);typeof F>\"u\"&&be.set(P.name,F=new Set),F.add(P.reference)}};ke(Ne);let it=[];for(let Ue of[...be.keys()].sort())for(let x of[...be.get(Ue)].sort())it.push({name:Ue,reference:x});return it}function Ae(Fe,{resolveIgnored:Ne=!1,includeDiscardFromLookup:be=!1}={}){if(pe(Fe)&&!Ne)return null;let Ve=J.relative(t.basePath,Fe);Ve.match(n)||(Ve=`./${Ve}`),Ve.endsWith(\"/\")||(Ve=`${Ve}/`);do{let ke=b.get(Ve);if(typeof ke>\"u\"||ke.discardFromLookup&&!be){Ve=Ve.substring(0,Ve.lastIndexOf(\"/\",Ve.length-2)+1);continue}return ke.locator}while(Ve!==\"\");return null}function se(Fe){try{return e.fakeFs.readFileSync(fe.toPortablePath(Fe),\"utf8\")}catch(Ne){if(Ne.code===\"ENOENT\")return;throw Ne}}function X(Fe,Ne,{considerBuiltins:be=!0}={}){if(Fe.startsWith(\"#\"))throw new Error(\"resolveToUnqualified can not handle private import mappings\");if(Fe===\"pnpapi\")return fe.toPortablePath(e.pnpapiResolution);if(be&&(0,sh.isBuiltin)(Fe))return null;let Ve=lf(Fe),ke=Ne&&lf(Ne);if(Ne&&pe(Ne)&&(!J.isAbsolute(Fe)||Ae(Fe)===null)){let x=me(Fe,Ne);if(x===!1)throw gs(\"BUILTIN_NODE_RESOLUTION_FAILED\",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)\n\nRequire request: \"${Ve}\"\nRequired by: ${ke}\n`,{request:Ve,issuer:ke});return fe.toPortablePath(x)}let it,Ue=Fe.match(a);if(Ue){if(!Ne)throw gs(\"API_ERROR\",\"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute\",{request:Ve,issuer:ke});let[,x,w]=Ue,P=Ae(Ne);if(!P){let Re=me(Fe,Ne);if(Re===!1)throw gs(\"BUILTIN_NODE_RESOLUTION_FAILED\",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).\n\nRequire path: \"${Ve}\"\nRequired by: ${ke}\n`,{request:Ve,issuer:ke});return fe.toPortablePath(Re)}let F=U(P).packageDependencies.get(x),z=null;if(F==null&&P.name!==null){let Re=t.fallbackExclusionList.get(P.name);if(!Re||!Re.has(P.reference)){for(let Ct=0,qt=h.length;Ct<qt;++Ct){let bt=U(h[Ct]).packageDependencies.get(x);if(bt!=null){r?z=bt:F=bt;break}}if(t.enableTopLevelFallback&&F==null&&z===null){let Ct=t.fallbackPool.get(x);Ct!=null&&(z=Ct)}}}let Z=null;if(F===null)if(W(P))Z=gs(\"MISSING_PEER_DEPENDENCY\",`Your application tried to access ${x} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.\n\nRequired package: ${x}${x!==Ve?` (via \"${Ve}\")`:\"\"}\nRequired by: ${ke}\n`,{request:Ve,issuer:ke,dependencyName:x});else{let Re=ye(x,P);Re.every(lt=>W(lt))?Z=gs(\"MISSING_PEER_DEPENDENCY\",`${P.name} tried to access ${x} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${x}${x!==Ve?` (via \"${Ve}\")`:\"\"}\nRequired by: ${P.name}@${P.reference} (via ${ke})\n${Re.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference}\n`).join(\"\")}\n`,{request:Ve,issuer:ke,issuerLocator:Object.assign({},P),dependencyName:x,brokenAncestors:Re}):Z=gs(\"MISSING_PEER_DEPENDENCY\",`${P.name} tried to access ${x} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${x}${x!==Ve?` (via \"${Ve}\")`:\"\"}\nRequired by: ${P.name}@${P.reference} (via ${ke})\n\n${Re.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference}\n`).join(\"\")}\n`,{request:Ve,issuer:ke,issuerLocator:Object.assign({},P),dependencyName:x,brokenAncestors:Re})}else F===void 0&&(!be&&(0,sh.isBuiltin)(Fe)?W(P)?Z=gs(\"UNDECLARED_DEPENDENCY\",`Your application tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${x}${x!==Ve?` (via \"${Ve}\")`:\"\"}\nRequired by: ${ke}\n`,{request:Ve,issuer:ke,dependencyName:x}):Z=gs(\"UNDECLARED_DEPENDENCY\",`${P.name} tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in ${P.name}'s dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${x}${x!==Ve?` (via \"${Ve}\")`:\"\"}\nRequired by: ${ke}\n`,{request:Ve,issuer:ke,issuerLocator:Object.assign({},P),dependencyName:x}):W(P)?Z=gs(\"UNDECLARED_DEPENDENCY\",`Your application tried to access ${x}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${x}${x!==Ve?` (via \"${Ve}\")`:\"\"}\nRequired by: ${ke}\n`,{request:Ve,issuer:ke,dependencyName:x}):Z=gs(\"UNDECLARED_DEPENDENCY\",`${P.name} tried to access ${x}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${x}${x!==Ve?` (via \"${Ve}\")`:\"\"}\nRequired by: ${P.name}@${P.reference} (via ${ke})\n`,{request:Ve,issuer:ke,issuerLocator:Object.assign({},P),dependencyName:x}));if(F==null){if(z===null||Z===null)throw Z||new Error(\"Assertion failed: Expected an error to have been set\");F=z;let Re=Z.message.replace(/\\n.*/g,\"\");Z.message=Re,!E.has(Re)&&s!==0&&(E.add(Re),process.emitWarning(Z))}let $=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:x,reference:F},oe=U($);if(!oe.packageLocation)throw gs(\"MISSING_DEPENDENCY\",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${$.name}@${$.reference}${$.name!==Ve?` (via \"${Ve}\")`:\"\"}\nRequired by: ${P.name}@${P.reference} (via ${ke})\n`,{request:Ve,issuer:ke,dependencyLocator:Object.assign({},$)});let xe=oe.packageLocation;w?it=J.join(xe,w):it=xe}else if(J.isAbsolute(Fe))it=J.normalize(Fe);else{if(!Ne)throw gs(\"API_ERROR\",\"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute\",{request:Ve,issuer:ke});let x=J.resolve(Ne);Ne.match(c)?it=J.normalize(J.join(x,Fe)):it=J.normalize(J.join(J.dirname(x),Fe))}return J.normalize(it)}function De(Fe,Ne,be=ee,Ve){if(n.test(Fe))return Ne;let ke=ie(Ne,be,Ve);return ke?J.normalize(ke):Ne}function Te(Fe,{extensions:Ne=Object.keys(sh.Module._extensions)}={}){let be=[],Ve=ue(Fe,be,{extensions:Ne});if(Ve)return J.normalize(Ve);{EBe(be.map(Ue=>fe.fromPortablePath(Ue)));let ke=lf(Fe),it=Ae(Fe);if(it){let{packageLocation:Ue}=U(it),x=!0;try{e.fakeFs.accessSync(Ue)}catch(w){if(w?.code===\"ENOENT\")x=!1;else{let P=(w?.message??w??\"empty exception thrown\").replace(/^[A-Z]/,y=>y.toLowerCase());throw gs(\"QUALIFIED_PATH_RESOLUTION_FAILED\",`Required package exists but could not be accessed (${P}).\n\nMissing package: ${it.name}@${it.reference}\nExpected package location: ${lf(Ue)}\n`,{unqualifiedPath:ke,extensions:Ne})}}if(!x){let w=Ue.includes(\"/unplugged/\")?\"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).\":\"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.\";throw gs(\"QUALIFIED_PATH_RESOLUTION_FAILED\",`${w}\n\nMissing package: ${it.name}@${it.reference}\nExpected package location: ${lf(Ue)}\n`,{unqualifiedPath:ke,extensions:Ne})}}throw gs(\"QUALIFIED_PATH_RESOLUTION_FAILED\",`Qualified path resolution failed: we looked for the following paths, but none could be accessed.\n\nSource path: ${ke}\n${be.map(Ue=>`Not found: ${lf(Ue)}\n`).join(\"\")}`,{unqualifiedPath:ke,extensions:Ne})}}function mt(Fe,Ne,be){if(!Ne)throw new Error(\"Assertion failed: An issuer is required to resolve private import mappings\");let Ve=ABe({name:Fe,base:(0,jm.pathToFileURL)(fe.fromPortablePath(Ne)),conditions:be.conditions??ee,readFileSyncFn:se});if(Ve instanceof URL)return Te(fe.toPortablePath((0,jm.fileURLToPath)(Ve)),{extensions:be.extensions});if(Ve.startsWith(\"#\"))throw new Error(\"Mapping from one private import to another isn't allowed\");return j(Ve,Ne,be)}function j(Fe,Ne,be={}){try{if(Fe.startsWith(\"#\"))return mt(Fe,Ne,be);let{considerBuiltins:Ve,extensions:ke,conditions:it}=be,Ue=X(Fe,Ne,{considerBuiltins:Ve});if(Fe===\"pnpapi\")return Ue;if(Ue===null)return null;let x=()=>Ne!==null?pe(Ne):!1,w=(!Ve||!(0,sh.isBuiltin)(Fe))&&!x()?De(Fe,Ue,it,Ne):Ue;return Te(w,{extensions:ke})}catch(Ve){throw Object.hasOwn(Ve,\"pnpCode\")&&Object.assign(Ve.data,{request:lf(Fe),issuer:Ne&&lf(Ne)}),Ve}}function rt(Fe){let Ne=J.normalize(Fe),be=uo.resolveVirtual(Ne);return be!==Ne?be:null}return{VERSIONS:Be,topLevel:Ce,getLocator:(Fe,Ne)=>Array.isArray(Ne)?{name:Ne[0],reference:Ne[1]}:{name:Fe,reference:Ne},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Fe=[];for(let[Ne,be]of S)for(let Ve of be.keys())Ne!==null&&Ve!==null&&Fe.push({name:Ne,reference:Ve});return Fe},getPackageInformation:Fe=>{let Ne=g(Fe);if(Ne===null)return null;let be=fe.fromPortablePath(Ne.packageLocation);return{...Ne,packageLocation:be}},findPackageLocator:Fe=>Ae(fe.toPortablePath(Fe)),resolveToUnqualified:N(\"resolveToUnqualified\",(Fe,Ne,be)=>{let Ve=Ne!==null?fe.toPortablePath(Ne):null,ke=X(fe.toPortablePath(Fe),Ve,be);return ke===null?null:fe.fromPortablePath(ke)}),resolveUnqualified:N(\"resolveUnqualified\",(Fe,Ne)=>fe.fromPortablePath(Te(fe.toPortablePath(Fe),Ne))),resolveRequest:N(\"resolveRequest\",(Fe,Ne,be)=>{let Ve=Ne!==null?fe.toPortablePath(Ne):null,ke=j(fe.toPortablePath(Fe),Ve,be);return ke===null?null:fe.fromPortablePath(ke)}),resolveVirtual:N(\"resolveVirtual\",Fe=>{let Ne=rt(fe.toPortablePath(Fe));return Ne!==null?fe.fromPortablePath(Ne):null})}}Dt();var IBe=(t,e,r)=>{let s=RD(t),a=XW(s,{basePath:e}),n=fe.join(e,Er.pnpCjs);return cY(a,{fakeFs:r,pnpapiResolution:n})};var fY=ut(wBe());Yt();var gA={};Vt(gA,{checkManifestCompatibility:()=>BBe,extractBuildRequest:()=>sN,getExtractHint:()=>AY,hasBindingGyp:()=>pY});Ge();Dt();function BBe(t){return G.isPackageCompatible(t,fs.getArchitectureSet())}function sN(t,e,r,{configuration:s}){let a=[];for(let n of[\"preinstall\",\"install\",\"postinstall\"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has(\"install\")&&e.misc.hasBindingGyp&&a.push({type:1,script:\"node-gyp rebuild\"}),a.length===0?null:t.linkType!==\"HARD\"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${G.prettyLocator(s,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${G.prettyLocator(s,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!s.get(\"enableScripts\")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${G.prettyLocator(s,t)} lists build scripts, but all build scripts have been disabled.`)}:BBe(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${G.prettyLocator(s,t)} The ${fs.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var adt=new Set([\".exe\",\".bin\",\".h\",\".hh\",\".hpp\",\".c\",\".cc\",\".cpp\",\".java\",\".jar\",\".node\"]);function AY(t){return t.packageFs.getExtractHint({relevantExtensions:adt})}function pY(t){let e=J.join(t.prefixPath,\"binding.gyp\");return t.packageFs.existsSync(e)}var HD={};Vt(HD,{getUnpluggedPath:()=>_D});Ge();Dt();function _D(t,{configuration:e}){return J.resolve(e.get(\"pnpUnpluggedFolder\"),G.slugifyLocator(t))}var ldt=new Set([G.makeIdent(null,\"open\").identHash,G.makeIdent(null,\"opn\").identHash]),sg=class{constructor(){this.mode=\"strict\";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:\"PnpLinker\",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error(\"Assertion failed: Expected the PnP linker to be enabled\");let s=og(r.project).cjs;if(!ce.existsSync(s))throw new nt(`The project in ${he.pretty(r.project.configuration,`${r.project.cwd}/package.json`,he.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=je.getFactoryWithDefault(this.pnpCache,s,()=>je.dynamicRequire(s,{cachingStrategy:je.CachingStrategy.FsTime})),n={name:G.stringifyIdent(e),reference:e.reference},c=a.getPackageInformation(n);if(!c)throw new nt(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return fe.toPortablePath(c.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=og(r.project).cjs;if(!ce.existsSync(s))return null;let n=je.getFactoryWithDefault(this.pnpCache,s,()=>je.dynamicRequire(s,{cachingStrategy:je.CachingStrategy.FsTime})).findPackageLocator(fe.fromPortablePath(e));return n?G.makeLocator(G.parseIdent(n.name),n.reference):null}makeInstaller(e){return new Gm(e)}isEnabled(e){return!(e.project.configuration.get(\"nodeLinker\")!==\"pnp\"||e.project.configuration.get(\"pnpMode\")!==this.mode)}},Gm=class{constructor(e){this.opts=e;this.mode=\"strict\";this.asyncActions=new je.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,s){let a=G.stringifyIdent(e),n=e.reference,c=!!this.opts.project.tryWorkspaceByLocator(e),f=G.isVirtualLocator(e),p=e.peerDependencies.size>0&&!f,h=!p&&!c,E=!p&&e.linkType!==\"SOFT\",C,S;if(h||E){let ee=f?G.devirtualizeLocator(e):e;C=this.customData.store.get(ee.locatorHash),typeof C>\"u\"&&(C=await cdt(r),e.linkType===\"HARD\"&&this.customData.store.set(ee.locatorHash,C)),C.manifest.type===\"module\"&&(this.isESMLoaderRequired=!0),S=this.opts.project.getDependencyMeta(ee,e.version)}let b=h?sN(e,C,S,{configuration:this.opts.project.configuration}):null,I=E?await this.unplugPackageIfNeeded(e,C,r,S,s):r.packageFs;if(J.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let T=J.resolve(I.getRealPath(),r.prefixPath),N=hY(this.opts.project.cwd,T),U=new Map,W=new Set;if(f){for(let ee of e.peerDependencies.values())U.set(G.stringifyIdent(ee),null),W.add(G.stringifyIdent(ee));if(!c){let ee=G.devirtualizeLocator(e);this.virtualTemplates.set(ee.locatorHash,{location:hY(this.opts.project.cwd,uo.resolveVirtual(T)),locator:ee})}}return je.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:N,packageDependencies:U,packagePeers:W,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:T,buildRequest:b}}async attachInternalDependencies(e,r){let s=this.getPackageInformation(e);for(let[a,n]of r){let c=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];s.packageDependencies.set(G.stringifyIdent(a),c)}}async attachExternalDependents(e,r){for(let s of r)this.getDiskInformation(s).packageDependencies.set(G.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get(\"pnpMode\")!==this.mode)return;let e=og(this.opts.project);if(this.isEsmEnabled()||await ce.removePromise(e.esmLoader),this.opts.project.configuration.get(\"nodeLinker\")!==\"pnp\"){await ce.removePromise(e.cjs),await ce.removePromise(e.data),await ce.removePromise(e.esmLoader),await ce.removePromise(this.opts.project.configuration.get(\"pnpUnpluggedFolder\"));return}for(let{locator:C,location:S}of this.virtualTemplates.values())je.getMapWithDefault(this.packageRegistry,G.stringifyIdent(C)).set(C.reference,{packageLocation:S,packageDependencies:new Map,packagePeers:new Set,linkType:\"SOFT\",discardFromLookup:!1});let r=this.opts.project.configuration.get(\"pnpFallbackMode\"),s=this.opts.project.workspaces.map(({anchoredLocator:C})=>({name:G.stringifyIdent(C),reference:C.reference})),a=r!==\"none\",n=[],c=new Map,f=je.buildIgnorePattern([\".yarn/sdks/**\",...this.opts.project.configuration.get(\"pnpIgnorePatterns\")]),p=this.packageRegistry,h=this.opts.project.configuration.get(\"pnpShebang\"),E=this.opts.project.configuration.get(\"pnpZipBackend\");if(r===\"dependencies-only\")for(let C of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(C)&&n.push({name:G.stringifyIdent(C),reference:C.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:s,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:c,ignorePattern:f,pnpZipBackend:E,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has(\"pnpEnableEsmLoader\"))return this.opts.project.configuration.get(\"pnpEnableEsmLoader\");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type===\"module\")return!0;return!1}async finalizeInstallWithPnp(e){let r=og(this.opts.project),s=await this.locateNodeModules(e.ignorePattern);if(s.length>0){this.opts.report.reportWarning(31,\"One or more node_modules have been detected and will be removed. This operation may take some time.\");for(let n of s)await ce.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get(\"pnpEnableInlining\")){let n=z2e(e);await ce.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await ce.removePromise(r.data)}else{let{dataFile:n,loaderFile:c}=Z2e(e);await ce.changeFilePromise(r.cjs,c,{automaticNewlines:!0,mode:493}),await ce.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,\"ESM support for PnP uses the experimental loader API and is therefore experimental\"),await ce.changeFilePromise(r.esmLoader,(0,fY.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get(\"pnpUnpluggedFolder\");if(this.unpluggedPaths.size===0)await ce.removePromise(a);else for(let n of await ce.readdirPromise(a)){let c=J.resolve(a,n);this.unpluggedPaths.has(c)||await ce.removePromise(c)}}async locateNodeModules(e){let r=[],s=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=J.join(a.cwd,\"node_modules\");if(s&&s.test(J.relative(this.opts.project.cwd,a.cwd))||!ce.existsSync(n))continue;let c=await ce.readdirPromise(n,{withFileTypes:!0}),f=c.filter(p=>!p.isDirectory()||p.name===\".bin\"||!p.name.startsWith(\".\"));if(f.length===c.length)r.push(n);else for(let p of f)r.push(J.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,s,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,s,n):s.packageFs}shouldBeUnplugged(e,r,s){return typeof s.unplugged<\"u\"?s.unplugged:ldt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(sN(e,r,s,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(e,r,s){let a=_D(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new _f(a,{baseFs:r.packageFs,pathUtils:J}):(this.unpluggedPaths.add(a),s.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=J.join(a,r.prefixPath,\".ready\");await ce.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await ce.mkdirPromise(a,{recursive:!0}),await ce.copyPromise(a,vt.dot,{baseFs:r.packageFs,overwrite:!1}),await ce.writeFilePromise(n,\"\"))})),new Sn(a))}getPackageInformation(e){let r=G.stringifyIdent(e),s=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${G.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(s);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${G.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=je.getMapWithDefault(this.packageRegistry,\"@@disk\"),s=hY(this.opts.project.cwd,e);return je.getFactoryWithDefault(r,s,()=>({packageLocation:s,packageDependencies:new Map,packagePeers:new Set,linkType:\"SOFT\",discardFromLookup:!1}))}};function hY(t,e){let r=J.relative(t,e);return r.match(/^\\.{0,2}\\//)||(r=`./${r}`),r.replace(/\\/?$/,\"/\")}async function cdt(t){let e=await Ut.tryFind(t.prefixPath,{baseFs:t.packageFs})??new Ut,r=new Set([\"preinstall\",\"install\",\"postinstall\"]);for(let s of e.scripts.keys())r.has(s)||e.scripts.delete(s);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:AY(t),hasBindingGyp:pY(t)}}}Ge();Ge();Yt();var vBe=ut(Go());var Sw=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean(\"-A,--all\",!1,{description:\"Unplug direct dependencies from the entire project\"});this.recursive=ge.Boolean(\"-R,--recursive\",!1,{description:\"Unplug both direct and transitive dependencies\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.patterns=ge.Rest()}static{this.paths=[[\"unplug\"]]}static{this.usage=ot.Usage({description:\"force the unpacking of a list of packages\",details:\"\\n      This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\\n\\n      A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\\n\\n      Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\\n\\n      By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\\n\\n      This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\\n    \",examples:[[\"Unplug the lodash dependency from the active workspace\",\"yarn unplug lodash\"],[\"Unplug all instances of lodash referenced by any workspace\",\"yarn unplug lodash -A\"],[\"Unplug all instances of lodash referenced by the active workspace and its dependencies\",\"yarn unplug lodash -R\"],[\"Unplug all instances of lodash, anywhere\",\"yarn unplug lodash -AR\"],[\"Unplug one specific version of lodash\",\"yarn unplug lodash@1.2.3\"],[\"Unplug all packages with the `@babel` scope\",\"yarn unplug '@babel/*'\"],[\"Unplug all packages (only for testing, not recommended)\",\"yarn unplug -R '*'\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);if(r.get(\"nodeLinker\")!==\"pnp\")throw new nt(\"This command can only be used if the `nodeLinker` option is set to `pnp`\");await s.restoreInstallState();let c=new Set(this.patterns),f=this.patterns.map(b=>{let I=G.parseDescriptor(b),T=I.range!==\"unknown\"?I:G.makeDescriptor(I,\"*\");if(!Fr.validRange(T.range))throw new nt(`The range of the descriptor patterns must be a valid semver range (${G.prettyDescriptor(r,T)})`);return N=>{let U=G.stringifyIdent(N);return!vBe.default.isMatch(U,G.stringifyIdent(T))||N.version&&!Fr.satisfiesWithPrereleases(N.version,T.range)?!1:(c.delete(b),!0)}}),p=()=>{let b=[];for(let I of s.storedPackages.values())!s.tryWorkspaceByLocator(I)&&!G.isVirtualLocator(I)&&f.some(T=>T(I))&&b.push(I);return b},h=b=>{let I=new Set,T=[],N=(U,W)=>{if(I.has(U.locatorHash))return;let ee=!!s.tryWorkspaceByLocator(U);if(!(W>0&&!this.recursive&&ee)&&(I.add(U.locatorHash),!s.tryWorkspaceByLocator(U)&&f.some(ie=>ie(U))&&T.push(U),!(W>0&&!this.recursive)))for(let ie of U.dependencies.values()){let ue=s.storedResolutions.get(ie.descriptorHash);if(!ue)throw new Error(\"Assertion failed: The resolution should have been registered\");let le=s.storedPackages.get(ue);if(!le)throw new Error(\"Assertion failed: The package should have been registered\");N(le,W+1)}};for(let U of b)N(U.anchoredPackage,0);return T},E,C;if(this.all&&this.recursive?(E=p(),C=\"the project\"):this.all?(E=h(s.workspaces),C=\"any workspace\"):(E=h([a]),C=\"this workspace\"),c.size>1)throw new nt(`Patterns ${he.prettyList(r,c,he.Type.CODE)} don't match any packages referenced by ${C}`);if(c.size>0)throw new nt(`Pattern ${he.prettyList(r,c,he.Type.CODE)} doesn't match any packages referenced by ${C}`);E=je.sortMap(E,b=>G.stringifyLocator(b));let S=await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async b=>{for(let I of E){let T=I.version??\"unknown\",N=s.topLevelWorkspace.manifest.ensureDependencyMeta(G.makeDescriptor(I,T));N.unplugged=!0,b.reportInfo(0,`Will unpack ${G.prettyLocator(r,I)} to ${he.pretty(r,_D(I,{configuration:r}),he.Type.PATH)}`),b.reportJson({locator:G.stringifyLocator(I),version:T})}await s.topLevelWorkspace.persistManifest(),this.json||b.reportSeparator()});return S.hasErrors()?S.exitCode():await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};var og=t=>({cjs:J.join(t.cwd,Er.pnpCjs),data:J.join(t.cwd,Er.pnpData),esmLoader:J.join(t.cwd,Er.pnpEsmLoader)}),DBe=t=>/\\s/.test(t)?JSON.stringify(t):t;async function udt(t,e,r){let s=/\\s*--require\\s+\\S*\\.pnp\\.c?js\\s*/g,a=/\\s*--experimental-loader\\s+\\S*\\.pnp\\.loader\\.mjs\\s*/,n=(e.NODE_OPTIONS??\"\").replace(s,\" \").replace(a,\" \").trim();if(t.configuration.get(\"nodeLinker\")!==\"pnp\"){e.NODE_OPTIONS=n||void 0;return}let c=og(t),f=`--require ${DBe(fe.fromPortablePath(c.cjs))}`;ce.existsSync(c.esmLoader)&&(f=`${f} --experimental-loader ${(0,SBe.pathToFileURL)(fe.fromPortablePath(c.esmLoader)).href}`),ce.existsSync(c.cjs)&&(e.NODE_OPTIONS=n?`${f} ${n}`:f)}async function fdt(t,e){let r=og(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get(\"pnpUnpluggedFolder\"))}var Adt={hooks:{populateYarnPaths:fdt,setupScriptEnvironment:udt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: \"pnp\", \"pnpm\", or \"node-modules\"',type:\"STRING\",default:\"pnp\"},minizip:{description:\"Whether Yarn should use minizip to extract archives\",type:\"BOOLEAN\",default:!1},winLinkType:{description:\"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.\",type:\"STRING\",values:[\"junctions\",\"symlinks\"],default:\"junctions\"},pnpMode:{description:\"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.\",type:\"STRING\",default:\"strict\"},pnpShebang:{description:\"String to prepend to the generated PnP script\",type:\"STRING\",default:\"#!/usr/bin/env node\"},pnpIgnorePatterns:{description:\"Array of glob patterns; files matching them will use the classic resolution\",type:\"STRING\",default:[],isArray:!0},pnpZipBackend:{description:\"Whether to use the experimental js implementation for the ZipFS\",type:\"STRING\",values:[\"libzip\",\"js\"],default:\"libzip\"},pnpEnableEsmLoader:{description:\"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.\",type:\"BOOLEAN\",default:!1},pnpEnableInlining:{description:\"If true, the PnP data will be inlined along with the generated loader\",type:\"BOOLEAN\",default:!0},pnpFallbackMode:{description:\"If true, the generated PnP loader will follow the top-level fallback rule\",type:\"STRING\",default:\"dependencies-only\"},pnpUnpluggedFolder:{description:\"Folder where the unplugged packages must be stored\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/unplugged\"}},linkers:[sg],commands:[Sw]},pdt=Adt;var FBe=ut(QBe());Yt();var wY=ut(Ie(\"crypto\")),NBe=ut(Ie(\"fs\")),OBe=1,Ri=\"node_modules\",oN=\".bin\",LBe=\".yarn-state.yml\",kdt=1e3,BY=(s=>(s.CLASSIC=\"classic\",s.HARDLINKS_LOCAL=\"hardlinks-local\",s.HARDLINKS_GLOBAL=\"hardlinks-global\",s))(BY||{}),jD=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:\"NodeModulesLinker\",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error(\"Assertion failed: Expected the node-modules linker to be enabled\");let s=r.project.tryWorkspaceByLocator(e);if(s)return s.cwd;let a=await je.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await CY(r.project,{unrollAliases:!0}));if(a===null)throw new nt(\"Couldn't find the node_modules state file - running an install might help (findPackageLocation)\");let n=a.locatorMap.get(G.stringifyLocator(e));if(!n){let p=new nt(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code=\"LOCATOR_NOT_INSTALLED\",p}let c=n.locations.sort((p,h)=>p.split(J.sep).length-h.split(J.sep).length),f=J.join(r.project.configuration.startingCwd,Ri);return c.find(p=>J.contains(f,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=await je.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await CY(r.project,{unrollAliases:!0}));if(s===null)return null;let{locationRoot:a,segments:n}=aN(J.resolve(e),{skipPrefix:r.project.cwd}),c=s.locationTree.get(a);if(!c)return null;let f=c.locator;for(let p of n){if(c=c.children.get(p),!c)break;f=c.locator||f}return G.parseLocator(f)}makeInstaller(e){return new IY(e)}isEnabled(e){return e.project.configuration.get(\"nodeLinker\")===\"node-modules\"}},IY=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let s=J.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>\"u\"&&(a=await Qdt(e,r),e.linkType===\"HARD\"&&this.customData.store.set(e.locatorHash,a)),!G.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let n=new Map,c=new Set;n.has(G.stringifyIdent(e))||n.set(G.stringifyIdent(e),e.reference);let f=e;if(G.isVirtualLocator(e)){f=G.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(G.stringifyIdent(E),null),c.add(G.stringifyIdent(E))}let p={packageLocation:`${fe.fromPortablePath(s)}/`,packageDependencies:n,packagePeers:c,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf(\"/\")+1):null;return this.realLocatorChecksums.set(f.locatorHash,h),{packageLocation:s,buildRequest:null}}async attachInternalDependencies(e,r){let s=this.localStore.get(e.locatorHash);if(typeof s>\"u\")throw new Error(\"Assertion failed: Expected information object to have been registered\");for(let[a,n]of r){let c=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];s.pnpNode.packageDependencies.set(G.stringifyIdent(a),c)}}async attachExternalDependents(e,r){throw new Error(\"External dependencies haven't been implemented for the node-modules linker\")}async finalizeInstall(){if(this.opts.project.configuration.get(\"nodeLinker\")!==\"node-modules\")return;let e=new uo({baseFs:new $f({maxOpenFiles:80,readOnlyArchives:!0})}),r=await CY(this.opts.project),s=this.opts.project.configuration.get(\"nmMode\");(r===null||s!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:s,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(S=>{let b=this.opts.project.configuration.get(\"nmHoistingLimits\");try{b=je.validateEnum(xD,S.manifest.installConfig?.hoistingLimits??b)}catch{let I=G.prettyWorkspace(this.opts.project.configuration,S);this.opts.report.reportWarning(57,`${I}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(xD).join(\", \")}, using default: \"${b}\"`)}return[S.relativeCwd,b]})),n=new Map(this.opts.project.workspaces.map(S=>{let b=this.opts.project.configuration.get(\"nmSelfReferences\");return b=S.manifest.installConfig?.selfReferences??b,[S.relativeCwd,b]})),c={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(S,b)=>Array.isArray(b)?{name:b[0],reference:b[1]}:{name:S,reference:b},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(S=>{let b=S.anchoredLocator;return{name:G.stringifyIdent(b),reference:b.reference}}),getPackageInformation:S=>{let b=S.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:G.makeLocator(G.parseIdent(S.name),S.reference),I=this.localStore.get(b.locatorHash);if(typeof I>\"u\")throw new Error(\"Assertion failed: Expected the package reference to have been registered\");return I.pnpNode},findPackageLocator:S=>{let b=this.opts.project.tryWorkspaceByCwd(fe.toPortablePath(S));if(b!==null){let I=b.anchoredLocator;return{name:G.stringifyIdent(I),reference:I.reference}}throw new Error(\"Assertion failed: Unimplemented\")},resolveToUnqualified:()=>{throw new Error(\"Assertion failed: Unimplemented\")},resolveUnqualified:()=>{throw new Error(\"Assertion failed: Unimplemented\")},resolveRequest:()=>{throw new Error(\"Assertion failed: Unimplemented\")},resolveVirtual:S=>fe.fromPortablePath(uo.resolveVirtual(fe.toPortablePath(S)))},{tree:f,errors:p,preserveSymlinksRequired:h}=kD(c,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!f){for(let{messageName:S,text:b}of p)this.opts.report.reportError(S,b);return}let E=zW(f);await Mdt(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async S=>{let b=G.parseLocator(S),I=this.localStore.get(b.locatorHash);if(typeof I>\"u\")throw new Error(\"Assertion failed: Expected the slot to exist\");return I.customPackageData.manifest}});let C=[];for(let[S,b]of E.entries()){if(_Be(S))continue;let I=G.parseLocator(S),T=this.localStore.get(I.locatorHash);if(typeof T>\"u\")throw new Error(\"Assertion failed: Expected the slot to exist\");if(this.opts.project.tryWorkspaceByLocator(T.pkg))continue;let N=gA.extractBuildRequest(T.pkg,T.customPackageData,T.dependencyMeta,{configuration:this.opts.project.configuration});N&&C.push({buildLocations:b.locations,locator:I,buildRequest:N})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${he.pretty(this.opts.project.configuration,\"--preserve-symlinks\",he.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:C}}};async function Qdt(t,e){let r=await Ut.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Ut,s=new Set([\"preinstall\",\"install\",\"postinstall\"]);for(let a of r.scripts.keys())s.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:gA.hasBindingGyp(e)}}}async function Rdt(t,e,r,s,{installChangedByUser:a}){let n=\"\";n+=`# Warning: This file is automatically generated. Removing it is fine, but will\n`,n+=`# cause your node_modules installation to become invalidated.\n`,n+=`\n`,n+=`__metadata:\n`,n+=`  version: ${OBe}\n`,n+=`  nmMode: ${s.value}\n`;let c=Array.from(e.keys()).sort(),f=G.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of c){let C=e.get(E);n+=`\n`,n+=`${JSON.stringify(E)}:\n`,n+=`  locations:\n`;for(let S of C.locations){let b=J.contains(t.cwd,S);if(b===null)throw new Error(`Assertion failed: Expected the path to be within the project (${S})`);n+=`    - ${JSON.stringify(b)}\n`}if(C.aliases.length>0){n+=`  aliases:\n`;for(let S of C.aliases)n+=`    - ${JSON.stringify(S)}\n`}if(E===f&&r.size>0){n+=`  bin:\n`;for(let[S,b]of r){let I=J.contains(t.cwd,S);if(I===null)throw new Error(`Assertion failed: Expected the path to be within the project (${S})`);n+=`    ${JSON.stringify(I)}:\n`;for(let[T,N]of b){let U=J.relative(J.join(S,Ri),N);n+=`      ${JSON.stringify(T)}: ${JSON.stringify(U)}\n`}}}}let p=t.cwd,h=J.join(p,Ri,LBe);a&&await ce.removePromise(h),await ce.changeFilePromise(h,n,{automaticNewlines:!0})}async function CY(t,{unrollAliases:e=!1}={}){let r=t.cwd,s=J.join(r,Ri,LBe),a;try{a=await ce.statPromise(s)}catch{}if(!a)return null;let n=as(await ce.readFilePromise(s,\"utf8\"));if(n.__metadata.version>OBe)return null;let c=n.__metadata.nmMode||\"classic\",f=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let C=E.locations.map(b=>J.join(r,b)),S=E.bin;if(S)for(let[b,I]of Object.entries(S)){let T=J.join(r,fe.toPortablePath(b)),N=je.getMapWithDefault(p,T);for(let[U,W]of Object.entries(I))N.set(U,fe.toPortablePath([T,Ri,W].join(J.sep)))}if(f.set(h,{target:vt.dot,linkType:\"HARD\",locations:C,aliases:E.aliases||[]}),e&&E.aliases)for(let b of E.aliases){let{scope:I,name:T}=G.parseLocator(h),N=G.makeLocator(G.makeIdent(I,T),b),U=G.stringifyLocator(N);f.set(U,{target:vt.dot,linkType:\"HARD\",locations:C,aliases:[]})}}return{locatorMap:f,binSymlinks:p,locationTree:MBe(f,{skipPrefix:t.cwd}),nmMode:c,mtimeMs:a.mtimeMs}}var Pw=async(t,e)=>{if(t.split(J.sep).indexOf(Ri)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{let r;if(!e.innerLoop&&(r=await ce.lstatPromise(t),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!e.isWorkspaceDir)){await ce.unlinkPromise(t);return}let s=await ce.readdirPromise(t,{withFileTypes:!0});for(let n of s){let c=J.join(t,n.name);n.isDirectory()?(n.name!==Ri||e&&e.innerLoop)&&await Pw(c,{innerLoop:!0,contentsOnly:!1}):await ce.unlinkPromise(c)}let a=!e.innerLoop&&e.isWorkspaceDir&&r?.isSymbolicLink();!e.contentsOnly&&!a&&await ce.rmdirPromise(t)}catch(r){if(r.code!==\"ENOENT\"&&r.code!==\"ENOTEMPTY\")throw r}},RBe=4,aN=(t,{skipPrefix:e})=>{let r=J.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let s=r.split(J.sep).filter(p=>p!==\"\"),a=s.indexOf(Ri),n=s.slice(0,a).join(J.sep),c=J.join(e,n),f=s.slice(a);return{locationRoot:c,segments:f}},MBe=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let s=()=>({children:new Map,linkType:\"HARD\"});for(let[a,n]of t.entries()){if(n.linkType===\"SOFT\"&&J.contains(e,n.target)!==null){let f=je.getFactoryWithDefault(r,n.target,s);f.locator=a,f.linkType=n.linkType}for(let c of n.locations){let{locationRoot:f,segments:p}=aN(c,{skipPrefix:e}),h=je.getFactoryWithDefault(r,f,s);for(let E=0;E<p.length;++E){let C=p[E];if(C!==\".\"){let S=je.getFactoryWithDefault(h.children,C,s);h.children.set(C,S),h=S}E===p.length-1&&(h.locator=a,h.linkType=n.linkType)}}}return r},vY=async(t,e,r)=>{if(process.platform===\"win32\"&&r===\"junctions\"){let s;try{s=await ce.lstatPromise(t)}catch{}if(!s||s.isDirectory()){await ce.symlinkPromise(t,e,\"junction\");return}}await ce.symlinkPromise(J.relative(J.dirname(e),t),e)};async function UBe(t,e,r){let s=J.join(t,`${wY.default.randomBytes(16).toString(\"hex\")}.tmp`);try{await ce.writeFilePromise(s,r);try{await ce.linkPromise(s,e)}catch{}}finally{await ce.unlinkPromise(s)}}async function Tdt({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:s,baseFs:a,nmMode:n}){if(r.kind===\"file\"){if(n.value===\"hardlinks-global\"&&s&&r.digest){let f=J.join(s,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await ce.statPromise(f);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs<r.mtimeMs-kdt))if(await Nn.checksumFile(f,{baseFs:ce,algorithm:\"sha1\"})!==r.digest){let C=J.join(s,`${wY.default.randomBytes(16).toString(\"hex\")}.tmp`);await ce.renamePromise(f,C);let S=await a.readFilePromise(t);await ce.writeFilePromise(C,S);try{await ce.linkPromise(C,f),r.mtimeMs=new Date().getTime(),await ce.unlinkPromise(C)}catch{}}else r.mtimeMs||(r.mtimeMs=Math.ceil(h.mtimeMs));await ce.linkPromise(f,e),p=!0}catch{p=!1}if(!p){let h=await a.readFilePromise(t);await UBe(s,f,h),r.mtimeMs=new Date().getTime();try{await ce.linkPromise(f,e)}catch(E){E&&E.code&&E.code==\"EXDEV\"&&(n.value=\"hardlinks-local\",await a.copyFilePromise(t,e))}}}else await a.copyFilePromise(t,e);let c=r.mode&511;c!==420&&await ce.chmodPromise(e,c)}}var Fdt=async(t,e,{baseFs:r,globalHardlinksStore:s,nmMode:a,windowsLinkType:n,packageChecksum:c})=>{await ce.mkdirPromise(t,{recursive:!0});let f=async(E=vt.dot)=>{let C=J.join(e,E),S=await r.readdirPromise(C,{withFileTypes:!0}),b=new Map;for(let I of S){let T=J.join(E,I.name),N,U=J.join(C,I.name);if(I.isFile()){if(N={kind:\"file\",mode:(await r.lstatPromise(U)).mode},a.value===\"hardlinks-global\"){let W=await Nn.checksumFile(U,{baseFs:r,algorithm:\"sha1\"});N.digest=W}}else if(I.isDirectory())N={kind:\"directory\"};else if(I.isSymbolicLink())N={kind:\"symlink\",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,\"0\")})`);if(b.set(T,N),I.isDirectory()&&T!==Ri){let W=await f(T);for(let[ee,ie]of W)b.set(ee,ie)}}return b},p;if(a.value===\"hardlinks-global\"&&s&&c){let E=J.join(s,c.substring(0,2),`${c.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await ce.readFilePromise(E,\"utf8\"))))}catch{p=await f()}}else p=await f();let h=!1;for(let[E,C]of p){let S=J.join(e,E),b=J.join(t,E);if(C.kind===\"directory\")await ce.mkdirPromise(b,{recursive:!0});else if(C.kind===\"file\"){let I=C.mtimeMs;await Tdt({srcPath:S,dstPath:b,entry:C,nmMode:a,baseFs:r,globalHardlinksStore:s}),C.mtimeMs!==I&&(h=!0)}else C.kind===\"symlink\"&&await vY(J.resolve(J.dirname(b),C.symlinkTo),b,n)}if(a.value===\"hardlinks-global\"&&s&&h&&c){let E=J.join(s,c.substring(0,2),`${c.substring(2)}.json`);await ce.removePromise(E),await UBe(s,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function Ndt(t,e,r,s){let a=new Map,n=new Map,c=new Map,f=!1,p=(h,E,C,S,b)=>{let I=!0,T=J.join(h,E),N=new Set;if(E===Ri||E.startsWith(\"@\")){let W;try{W=ce.statSync(T)}catch{}I=!!W,W?W.mtimeMs>r?(f=!0,N=new Set(ce.readdirSync(T))):N=new Set(C.children.get(E).children.keys()):f=!0;let ee=e.get(h);if(ee){let ie=J.join(h,Ri,oN),ue;try{ue=ce.statSync(ie)}catch{}if(!ue)f=!0;else if(ue.mtimeMs>r){f=!0;let le=new Set(ce.readdirSync(ie)),me=new Map;n.set(h,me);for(let[pe,Be]of ee)le.has(pe)&&me.set(pe,Be)}else n.set(h,ee)}}else I=b.has(E);let U=C.children.get(E);if(I){let{linkType:W,locator:ee}=U,ie={children:new Map,linkType:W,locator:ee};if(S.children.set(E,ie),ee){let ue=je.getSetWithDefault(c,ee);ue.add(T),c.set(ee,ue)}for(let ue of U.children.keys())p(T,ue,U,ie,N)}else U.locator&&s.storedBuildState.delete(G.parseLocator(U.locator).locatorHash)};for(let[h,E]of t){let{linkType:C,locator:S}=E,b={children:new Map,linkType:C,locator:S};if(a.set(h,b),S){let I=je.getSetWithDefault(c,E.locator);I.add(h),c.set(E.locator,I)}E.children.has(Ri)&&p(h,Ri,E,b,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:c,installChangedByUser:f}}function _Be(t){let e=G.parseDescriptor(t);return G.isVirtualDescriptor(e)&&(e=G.devirtualizeDescriptor(e)),e.range.startsWith(\"link:\")}async function Odt(t,e,r,{loadManifest:s}){let a=new Map;for(let[f,{locations:p}]of t){let h=_Be(f)?null:await s(f,p[0]),E=new Map;if(h)for(let[C,S]of h.bin){let b=J.join(p[0],S);S!==\"\"&&ce.existsSync(b)&&E.set(C,S)}a.set(f,E)}let n=new Map,c=(f,p,h)=>{let E=new Map,C=J.contains(r,f);if(h.locator&&C!==null){let S=a.get(h.locator);for(let[b,I]of S){let T=J.join(f,fe.toPortablePath(I));E.set(b,T)}for(let[b,I]of h.children){let T=J.join(f,b),N=c(T,T,I);N.size>0&&n.set(f,new Map([...n.get(f)||new Map,...N]))}}else for(let[S,b]of h.children){let I=c(J.join(f,S),p,b);for(let[T,N]of I)E.set(T,N)}return E};for(let[f,p]of e){let h=c(f,f,p);h.size>0&&n.set(f,new Map([...n.get(f)||new Map,...h]))}return n}var TBe=(t,e)=>{if(!t||!e)return t===e;let r=G.parseLocator(t);G.isVirtualLocator(r)&&(r=G.devirtualizeLocator(r));let s=G.parseLocator(e);return G.isVirtualLocator(s)&&(s=G.devirtualizeLocator(s)),G.areLocatorsEqual(r,s)};function SY(t){return J.join(t.get(\"globalFolder\"),\"store\")}function Ldt(t,e){let r=s=>{let a=s.split(J.sep),n=a.lastIndexOf(Ri);if(n<0||n==a.length-1)throw new Error(`Assertion failed. Path is outside of any node_modules package ${s}`);return a.slice(0,n+(a[n+1].startsWith(\"@\")?3:2)).join(J.sep)};for(let s of t.values())for(let[a,n]of s)e.has(r(n))&&s.delete(a)}async function Mdt(t,e,{baseFs:r,project:s,report:a,loadManifest:n,realLocatorChecksums:c}){let f=J.join(s.cwd,Ri),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:C}=Ndt(t.locationTree,t.binSymlinks,t.mtimeMs,s),S=MBe(e,{skipPrefix:s.cwd}),b=[],I=async({srcDir:Be,dstDir:Ce,linkType:g,globalHardlinksStore:we,nmMode:ye,windowsLinkType:Ae,packageChecksum:se})=>{let X=(async()=>{try{g===\"SOFT\"?(await ce.mkdirPromise(J.dirname(Ce),{recursive:!0}),await vY(J.resolve(Be),Ce,Ae)):await Fdt(Ce,Be,{baseFs:r,globalHardlinksStore:we,nmMode:ye,windowsLinkType:Ae,packageChecksum:se})}catch(De){throw De.message=`While persisting ${Be} -> ${Ce} ${De.message}`,De}finally{ie.tick()}})().then(()=>b.splice(b.indexOf(X),1));b.push(X),b.length>RBe&&await Promise.race(b)},T=async(Be,Ce,g)=>{let we=(async()=>{let ye=async(Ae,se,X)=>{try{X.innerLoop||await ce.mkdirPromise(se,{recursive:!0});let De=await ce.readdirPromise(Ae,{withFileTypes:!0});for(let Te of De){if(!X.innerLoop&&Te.name===oN)continue;let mt=J.join(Ae,Te.name),j=J.join(se,Te.name);Te.isDirectory()?(Te.name!==Ri||X&&X.innerLoop)&&(await ce.mkdirPromise(j,{recursive:!0}),await ye(mt,j,{...X,innerLoop:!0})):me.value===\"hardlinks-local\"||me.value===\"hardlinks-global\"?await ce.linkPromise(mt,j):await ce.copyFilePromise(mt,j,NBe.default.constants.COPYFILE_FICLONE)}}catch(De){throw X.innerLoop||(De.message=`While cloning ${Ae} -> ${se} ${De.message}`),De}finally{X.innerLoop||ie.tick()}};await ye(Be,Ce,g)})().then(()=>b.splice(b.indexOf(we),1));b.push(we),b.length>RBe&&await Promise.race(b)},N=async(Be,Ce,g)=>{if(g)for(let[we,ye]of Ce.children){let Ae=g.children.get(we);await N(J.join(Be,we),ye,Ae)}else{Ce.children.has(Ri)&&await Pw(J.join(Be,Ri),{contentsOnly:!1});let we=J.basename(Be)===Ri&&p.has(J.join(J.dirname(Be)));await Pw(Be,{contentsOnly:Be===f,isWorkspaceDir:we})}};for(let[Be,Ce]of p){let g=S.get(Be);for(let[we,ye]of Ce.children){if(we===\".\")continue;let Ae=g&&g.children.get(we),se=J.join(Be,we);await N(se,ye,Ae)}}let U=async(Be,Ce,g)=>{if(g){TBe(Ce.locator,g.locator)||await Pw(Be,{contentsOnly:Ce.linkType===\"HARD\"});for(let[we,ye]of Ce.children){let Ae=g.children.get(we);await U(J.join(Be,we),ye,Ae)}}else{Ce.children.has(Ri)&&await Pw(J.join(Be,Ri),{contentsOnly:!0});let we=J.basename(Be)===Ri&&S.has(J.join(J.dirname(Be)));await Pw(Be,{contentsOnly:Ce.linkType===\"HARD\",isWorkspaceDir:we})}};for(let[Be,Ce]of S){let g=p.get(Be);for(let[we,ye]of Ce.children){if(we===\".\")continue;let Ae=g&&g.children.get(we);await U(J.join(Be,we),ye,Ae)}}let W=new Map,ee=[];for(let[Be,Ce]of E)for(let g of Ce){let{locationRoot:we,segments:ye}=aN(g,{skipPrefix:s.cwd}),Ae=S.get(we),se=we;if(Ae){for(let X of ye)if(se=J.join(se,X),Ae=Ae.children.get(X),!Ae)break;if(Ae){let X=TBe(Ae.locator,Be),De=e.get(Ae.locator),Te=De.target,mt=se,j=De.linkType;if(X)W.has(Te)||W.set(Te,mt);else if(Te!==mt){let rt=G.parseLocator(Ae.locator);G.isVirtualLocator(rt)&&(rt=G.devirtualizeLocator(rt)),ee.push({srcDir:Te,dstDir:mt,linkType:j,realLocatorHash:rt.locatorHash})}}}}for(let[Be,{locations:Ce}]of e.entries())for(let g of Ce){let{locationRoot:we,segments:ye}=aN(g,{skipPrefix:s.cwd}),Ae=p.get(we),se=S.get(we),X=we,De=e.get(Be),Te=G.parseLocator(Be);G.isVirtualLocator(Te)&&(Te=G.devirtualizeLocator(Te));let mt=Te.locatorHash,j=De.target,rt=g;if(j===rt)continue;let Fe=De.linkType;for(let Ne of ye)se=se.children.get(Ne);if(!Ae)ee.push({srcDir:j,dstDir:rt,linkType:Fe,realLocatorHash:mt});else for(let Ne of ye)if(X=J.join(X,Ne),Ae=Ae.children.get(Ne),!Ae){ee.push({srcDir:j,dstDir:rt,linkType:Fe,realLocatorHash:mt});break}}let ie=Ao.progressViaCounter(ee.length),ue=a.reportProgress(ie),le=s.configuration.get(\"nmMode\"),me={value:le},pe=s.configuration.get(\"winLinkType\");try{let Be=me.value===\"hardlinks-global\"?`${SY(s.configuration)}/v1`:null;if(Be&&!await ce.existsPromise(Be)){await ce.mkdirpPromise(Be);for(let g=0;g<256;g++)await ce.mkdirPromise(J.join(Be,g.toString(16).padStart(2,\"0\")))}for(let g of ee)(g.linkType===\"SOFT\"||!W.has(g.srcDir))&&(W.set(g.srcDir,g.dstDir),await I({...g,globalHardlinksStore:Be,nmMode:me,windowsLinkType:pe,packageChecksum:c.get(g.realLocatorHash)||null}));await Promise.all(b),b.length=0;for(let g of ee){let we=W.get(g.srcDir);g.linkType!==\"SOFT\"&&g.dstDir!==we&&await T(we,g.dstDir,{nmMode:me})}await Promise.all(b),await ce.mkdirPromise(f,{recursive:!0}),Ldt(h,new Set(ee.map(g=>g.dstDir)));let Ce=await Odt(e,S,s.cwd,{loadManifest:n});await Udt(h,Ce,s.cwd,pe),await Rdt(s,e,Ce,me,{installChangedByUser:C}),le==\"hardlinks-global\"&&me.value==\"hardlinks-local\"&&a.reportWarningOnce(74,\"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices\")}finally{ue.stop()}}async function Udt(t,e,r,s){for(let a of t.keys()){if(J.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=J.join(a,Ri,oN);await ce.removePromise(n)}}for(let[a,n]of e){if(J.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let c=J.join(a,Ri,oN),f=t.get(a)||new Map;await ce.mkdirPromise(c,{recursive:!0});for(let p of f.keys())n.has(p)||(await ce.removePromise(J.join(c,p)),process.platform===\"win32\"&&await ce.removePromise(J.join(c,`${p}.cmd`)));for(let[p,h]of n){let E=f.get(p),C=J.join(c,p);E!==h&&(process.platform===\"win32\"?await(0,FBe.default)(fe.fromPortablePath(h),fe.fromPortablePath(C),{createPwshFile:!1}):(await ce.removePromise(C),await vY(h,C,s),J.contains(r,await ce.realpathPromise(h))!==null&&await ce.chmodPromise(h,493)))}}}Ge();Dt();eA();var GD=class extends sg{constructor(){super(...arguments);this.mode=\"loose\"}makeInstaller(r){return new DY(r)}},DY=class extends Gm{constructor(){super(...arguments);this.mode=\"loose\"}async transformPnpSettings(r){let s=new uo({baseFs:new $f({maxOpenFiles:80,readOnlyArchives:!0})}),a=IBe(r,this.opts.project.cwd,s),{tree:n,errors:c}=kD(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:C,text:S}of c)this.opts.report.reportError(C,S);return}let f=new Map;r.fallbackPool=f;let p=(C,S)=>{let b=G.parseLocator(S.locator),I=G.stringifyIdent(b);I===C?f.set(C,b.reference):f.set(C,[I,b.reference])},h=J.join(this.opts.project.cwd,Er.nodeModules),E=n.get(h);if(!(typeof E>\"u\")){if(\"target\"in E)throw new Error(\"Assertion failed: Expected the root junction point to be a directory\");for(let C of E.dirList){let S=J.join(h,C),b=n.get(S);if(typeof b>\"u\")throw new Error(\"Assertion failed: Expected the child to have been registered\");if(\"target\"in b)p(C,b);else for(let I of b.dirList){let T=J.join(S,I),N=n.get(T);if(typeof N>\"u\")throw new Error(\"Assertion failed: Expected the subchild to have been registered\");if(\"target\"in N)p(`${C}/${I}`,N);else throw new Error(\"Assertion failed: Expected the leaf junction to be a package\")}}}}};var _dt={hooks:{cleanGlobalArtifacts:async t=>{let e=SY(t);await ce.removePromise(e)}},configuration:{nmHoistingLimits:{description:\"Prevents packages to be hoisted past specific levels\",type:\"STRING\",values:[\"workspaces\",\"dependencies\",\"none\"],default:\"none\"},nmMode:{description:\"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.\",type:\"STRING\",values:[\"classic\",\"hardlinks-local\",\"hardlinks-global\"],default:\"classic\"},nmSelfReferences:{description:\"Defines whether the linker should generate self-referencing symlinks for workspaces.\",type:\"BOOLEAN\",default:!0}},linkers:[jD,GD]},Hdt=_dt;var PK={};Vt(PK,{NpmHttpFetcher:()=>VD,NpmRemapResolver:()=>JD,NpmSemverFetcher:()=>oh,NpmSemverResolver:()=>KD,NpmTagResolver:()=>zD,default:()=>rPt,npmConfigUtils:()=>hi,npmHttpUtils:()=>an,npmPublishUtils:()=>v1});Ge();var JBe=ut(Ai());var oi=\"npm:\";var an={};Vt(an,{AuthType:()=>WBe,customPackageError:()=>qm,del:()=>imt,get:()=>Wm,getIdentUrl:()=>WD,getPackageMetadata:()=>Qw,handleInvalidAuthenticationError:()=>ag,post:()=>rmt,put:()=>nmt});Ge();Ge();Dt();var kY=ut(Vv());ql();var qBe=ut(Ai());var hi={};Vt(hi,{RegistryType:()=>jBe,getAuditRegistry:()=>jdt,getAuthConfiguration:()=>xY,getDefaultRegistry:()=>qD,getPublishRegistry:()=>Gdt,getRegistryConfiguration:()=>GBe,getScopeConfiguration:()=>bY,getScopeRegistry:()=>bw,isPackageApproved:()=>xw,normalizeRegistry:()=>Jc});Ge();var HBe=ut(Go()),jBe=(s=>(s.AUDIT_REGISTRY=\"npmAuditRegistry\",s.FETCH_REGISTRY=\"npmRegistryServer\",s.PUBLISH_REGISTRY=\"npmPublishRegistry\",s))(jBe||{});function Jc(t){return t.replace(/\\/$/,\"\")}function jdt({configuration:t}){return qD({configuration:t,type:\"npmAuditRegistry\"})}function Gdt(t,{configuration:e}){return t.publishConfig?.registry?Jc(t.publishConfig.registry):t.name?bw(t.name.scope,{configuration:e,type:\"npmPublishRegistry\"}):qD({configuration:e,type:\"npmPublishRegistry\"})}function bw(t,{configuration:e,type:r=\"npmRegistryServer\"}){let s=bY(t,{configuration:e});if(s===null)return qD({configuration:e,type:r});let a=s.get(r);return a===null?qD({configuration:e,type:r}):Jc(a)}function qD({configuration:t,type:e=\"npmRegistryServer\"}){let r=t.get(e);return Jc(r!==null?r:t.get(\"npmRegistryServer\"))}function GBe(t,{configuration:e}){let r=e.get(\"npmRegistries\"),s=Jc(t),a=r.get(s);if(typeof a<\"u\")return a;let n=r.get(s.replace(/^[a-z]+:/,\"\"));return typeof n<\"u\"?n:null}var qdt=new Map([[\"npmRegistryServer\",\"https://npm.jsr.io/\"]]);function bY(t,{configuration:e}){if(t===null)return null;let s=e.get(\"npmScopes\").get(t);return s||(t===\"jsr\"?qdt:null)}function xY(t,{configuration:e,ident:r}){let s=r&&bY(r.scope,{configuration:e});return s?.get(\"npmAuthIdent\")||s?.get(\"npmAuthToken\")?s:GBe(t,{configuration:e})||e}function Wdt({configuration:t,version:e,publishTimes:r}){let s=t.get(\"npmMinimalAgeGate\");if(s){let a=r?.[e];if(typeof a>\"u\"||(new Date().getTime()-new Date(a).getTime())/60/1e3<s)return!0}return!1}function Ydt(t,e,r){let s=G.tryParseDescriptor(r);if(!s||s.identHash!==t.identHash&&!HBe.default.isMatch(G.stringifyIdent(t),G.stringifyIdent(s)))return!1;if(s.range===\"unknown\")return!0;let a=Fr.validRange(s.range);return!(!a||!a.test(e))}function Vdt({configuration:t,ident:e,version:r}){return t.get(\"npmPreapprovedPackages\").some(s=>Ydt(e,r,s))}function xw(t){return!Wdt(t)||Vdt(t)}var WBe=(a=>(a[a.NO_AUTH=0]=\"NO_AUTH\",a[a.BEST_EFFORT=1]=\"BEST_EFFORT\",a[a.CONFIGURATION=2]=\"CONFIGURATION\",a[a.ALWAYS_AUTH=3]=\"ALWAYS_AUTH\",a))(WBe||{});async function ag(t,{attemptedAs:e,registry:r,headers:s,configuration:a}){if(cN(t))throw new jt(41,\"Invalid OTP token\");if(t.originalError?.name===\"HTTPError\"&&t.originalError?.response.statusCode===401)throw new jt(41,`Invalid authentication (${typeof e!=\"string\"?`as ${await omt(r,s,{configuration:a})}`:`attempted as ${e}`})`)}function qm(t,e){let r=t.response?.statusCode;return r?r===404?\"Package not found\":r>=500&&r<600?`The registry appears to be down (using a ${he.applyHyperlink(e,\"local cache\",\"https://yarnpkg.com/advanced/lexicon#local-cache\")} might have protected you against such outages)`:null:null}function WD(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}var YBe=new Map,Jdt=new Map;async function Kdt(t){return await je.getFactoryWithDefault(YBe,t,async()=>{let e=null;try{e=await ce.readJsonPromise(t)}catch{}return e})}async function zdt(t,e,{configuration:r,cached:s,registry:a,headers:n,version:c,...f}){return await je.getFactoryWithDefault(Jdt,t,async()=>await Wm(WD(e),{...f,customErrorMessage:qm,configuration:r,registry:a,ident:e,headers:{...n,\"If-None-Match\":s?.etag,\"If-Modified-Since\":s?.lastModified},wrapNetworkRequest:async p=>async()=>{let h=await p();if(h.statusCode===304){if(s===null)throw new Error(\"Assertion failed: cachedMetadata should not be null\");return{...h,body:s.metadata}}let E=Xdt(JSON.parse(h.body.toString())),C={metadata:E,etag:h.headers.etag,lastModified:h.headers[\"last-modified\"]};return YBe.set(t,Promise.resolve(C)),Promise.resolve().then(async()=>{let S=`${t}-${process.pid}.tmp`;await ce.mkdirPromise(J.dirname(S),{recursive:!0}),await ce.writeJsonPromise(S,C,{compact:!0}),await ce.renamePromise(S,t)}).catch(()=>{}),{...h,body:E}}}))}function Zdt(t){return t.scope!==null?`@${t.scope}-${t.name}-${t.scope.length}`:t.name}async function Qw(t,{cache:e,project:r,registry:s,headers:a,version:n,...c}){let{configuration:f}=r;s=YD(f,{ident:t,registry:s});let p=emt(f,s),h=J.join(p,`${Zdt(t)}.json`),E=null;if(!r.lockfileNeedsRefresh&&(E=await Kdt(h),E)){if(typeof n<\"u\"&&typeof E.metadata.versions[n]<\"u\")return E.metadata;if(f.get(\"enableOfflineMode\")){let C=structuredClone(E.metadata),S=new Set;if(e){for(let I of Object.keys(C.versions)){let T=G.makeLocator(t,`npm:${I}`),N=e.getLocatorMirrorPath(T);(!N||!ce.existsSync(N))&&(delete C.versions[I],S.add(I))}let b=C[\"dist-tags\"].latest;if(S.has(b)){let I=Object.keys(E.metadata.versions).sort(qBe.default.compare),T=I.indexOf(b);for(;S.has(I[T])&&T>=0;)T-=1;T>=0?C[\"dist-tags\"].latest=I[T]:delete C[\"dist-tags\"].latest}}return C}}return await zdt(h,t,{...c,configuration:f,cached:E,registry:s,headers:a,version:n})}var VBe=[\"name\",\"dist.tarball\",\"bin\",\"scripts\",\"os\",\"cpu\",\"libc\",\"dependencies\",\"dependenciesMeta\",\"optionalDependencies\",\"peerDependencies\",\"peerDependenciesMeta\",\"deprecated\"];function Xdt(t){return{\"dist-tags\":t[\"dist-tags\"],versions:Object.fromEntries(Object.entries(t.versions).map(([e,r])=>[e,Kd(r,VBe)])),time:t.time}}var $dt=Nn.makeHash(\"time\",...VBe).slice(0,6);function emt(t,e){let r=tmt(t),s=new URL(e);return J.join(r,$dt,s.hostname)}function tmt(t){return J.join(t.get(\"globalFolder\"),\"metadata/npm\")}async function Wm(t,{configuration:e,headers:r,ident:s,authType:a,allowOidc:n,registry:c,...f}){c=YD(e,{ident:s,registry:c}),s&&s.scope&&typeof a>\"u\"&&(a=1);let p=await lN(c,{authType:a,allowOidc:n,configuration:e,ident:s});p&&(r={...r,authorization:p});try{return await ln.get(t.charAt(0)===\"/\"?`${c}${t}`:t,{configuration:e,headers:r,...f})}catch(h){throw await ag(h,{registry:c,configuration:e,headers:r}),h}}async function rmt(t,e,{attemptedAs:r,configuration:s,headers:a,ident:n,authType:c=3,allowOidc:f,registry:p,otp:h,...E}){p=YD(s,{ident:n,registry:p});let C=await lN(p,{authType:c,allowOidc:f,configuration:s,ident:n});C&&(a={...a,authorization:C}),h&&(a={...a,...kw(h)});try{return await ln.post(p+t,e,{configuration:s,headers:a,...E})}catch(S){if(!cN(S)||h)throw await ag(S,{attemptedAs:r,registry:p,configuration:s,headers:a}),S;h=await QY(S,{configuration:s});let b={...a,...kw(h)};try{return await ln.post(`${p}${t}`,e,{configuration:s,headers:b,...E})}catch(I){throw await ag(I,{attemptedAs:r,registry:p,configuration:s,headers:a}),I}}}async function nmt(t,e,{attemptedAs:r,configuration:s,headers:a,ident:n,authType:c=3,allowOidc:f,registry:p,otp:h,...E}){p=YD(s,{ident:n,registry:p});let C=await lN(p,{authType:c,allowOidc:f,configuration:s,ident:n});C&&(a={...a,authorization:C}),h&&(a={...a,...kw(h)});try{return await ln.put(p+t,e,{configuration:s,headers:a,...E})}catch(S){if(!cN(S))throw await ag(S,{attemptedAs:r,registry:p,configuration:s,headers:a}),S;h=await QY(S,{configuration:s});let b={...a,...kw(h)};try{return await ln.put(`${p}${t}`,e,{configuration:s,headers:b,...E})}catch(I){throw await ag(I,{attemptedAs:r,registry:p,configuration:s,headers:a}),I}}}async function imt(t,{attemptedAs:e,configuration:r,headers:s,ident:a,authType:n=3,allowOidc:c,registry:f,otp:p,...h}){f=YD(r,{ident:a,registry:f});let E=await lN(f,{authType:n,allowOidc:c,configuration:r,ident:a});E&&(s={...s,authorization:E}),p&&(s={...s,...kw(p)});try{return await ln.del(f+t,{configuration:r,headers:s,...h})}catch(C){if(!cN(C)||p)throw await ag(C,{attemptedAs:e,registry:f,configuration:r,headers:s}),C;p=await QY(C,{configuration:r});let S={...s,...kw(p)};try{return await ln.del(`${f}${t}`,{configuration:r,headers:S,...h})}catch(b){throw await ag(b,{attemptedAs:e,registry:f,configuration:r,headers:s}),b}}}function YD(t,{ident:e,registry:r}){if(typeof r>\"u\"&&e)return bw(e.scope,{configuration:t});if(typeof r!=\"string\")throw new Error(\"Assertion failed: The registry should be a string\");return Jc(r)}async function lN(t,{authType:e=2,allowOidc:r=!1,configuration:s,ident:a}){let n=xY(t,{configuration:s,ident:a}),c=smt(n,e);if(!c)return null;let f=await s.reduceHook(p=>p.getNpmAuthenticationHeader,void 0,t,{configuration:s,ident:a});if(f)return f;if(n.get(\"npmAuthToken\"))return`Bearer ${n.get(\"npmAuthToken\")}`;if(n.get(\"npmAuthIdent\")){let p=n.get(\"npmAuthIdent\");return p.includes(\":\")?`Basic ${Buffer.from(p).toString(\"base64\")}`:`Basic ${p}`}if(r&&a){let p=await amt(t,{configuration:s,ident:a});if(p)return`Bearer ${p}`}if(c&&e!==1)throw new jt(33,\"No authentication configured for request\");return null}function smt(t,e){switch(e){case 2:return t.get(\"npmAlwaysAuth\");case 1:case 3:return!0;case 0:return!1;default:throw new Error(\"Unreachable\")}}async function omt(t,e,{configuration:r}){if(typeof e>\"u\"||typeof e.authorization>\"u\")return\"an anonymous user\";try{return(await ln.get(new URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??\"an unknown user\"}catch{return\"an unknown user\"}}async function QY(t,{configuration:e}){let r=t.originalError?.response.headers[\"npm-notice\"];if(r&&(await Ot.start({configuration:e,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(0,r.replace(/(https?:\\/\\/\\S+)/g,he.pretty(e,\"$1\",he.Type.URL))),!process.env.YARN_IS_TEST_ENV){let n=r.match(/open (https?:\\/\\/\\S+)/i);if(n&&fs.openUrl){let{openNow:c}=await(0,kY.prompt)({type:\"confirm\",name:\"openNow\",message:\"Do you want to try to open this url now?\",required:!0,initial:!0,onCancel:()=>process.exit(130)});c&&(await fs.openUrl(n[1])||(a.reportSeparator(),a.reportWarning(0,\"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.\")))}}}),process.stdout.write(`\n`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||\"\";let{otp:s}=await(0,kY.prompt)({type:\"password\",name:\"otp\",message:\"One-time password:\",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(`\n`),s}function cN(t){if(t.originalError?.name!==\"HTTPError\")return!1;try{return(t.originalError?.response.headers[\"www-authenticate\"].split(/,\\s*/).map(r=>r.toLowerCase())).includes(\"otp\")}catch{return!1}}function kw(t){return{\"npm-otp\":t}}async function amt(t,{configuration:e,ident:r}){let s=null;if(process.env.GITLAB)s=process.env.NPM_ID_TOKEN||null;else if(process.env.GITHUB_ACTIONS){if(!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN))return null;let a=`npm:${new URL(t).host.replace(\"registry.yarnpkg.com\",\"registry.npmjs.org\").replace(\"yarn.npmjs.org\",\"registry.npmjs.org\")}`,n=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);n.searchParams.append(\"audience\",a),s=(await ln.get(n.href,{configuration:e,jsonResponse:!0,headers:{Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).value}if(!s)return null;try{return(await ln.post(`${t}/-/npm/v1/oidc/token/exchange/package${WD(r)}`,null,{configuration:e,jsonResponse:!0,headers:{Authorization:`Bearer ${s}`}})).token||null}catch{}return null}var VD=class{supports(e,r){if(!e.reference.startsWith(oi))return!1;let{selector:s,params:a}=G.parseRange(e.reference);return!(!JBe.default.valid(s)||a===null||typeof a.__archiveUrl!=\"string\")}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let{params:s}=G.parseRange(e.reference);if(s===null||typeof s.__archiveUrl!=\"string\")throw new Error(\"Assertion failed: The archiveUrl querystring parameter should have been available\");let a=await Wm(s.__archiveUrl,{customErrorMessage:qm,configuration:r.project.configuration,ident:e});return await ps.convertToZip(a,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();var JD=class{supportsDescriptor(e,r){return!(!e.range.startsWith(oi)||!G.tryParseDescriptor(e.range.slice(oi.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error(\"Unreachable\")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){let s=r.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(oi.length),!0));return r.resolver.getResolutionDependencies(s,r)}async getCandidates(e,r,s){let a=s.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(oi.length),!0));return await s.resolver.getCandidates(a,r,s)}async getSatisfying(e,r,s,a){let n=a.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(oi.length),!0));return a.resolver.getSatisfying(n,r,s,a)}resolve(e,r){throw new Error(\"Unreachable\")}};Ge();Ge();var KBe=ut(Ai());var oh=class t{supports(e,r){if(!e.reference.startsWith(oi))return!1;let s=new URL(e.reference);return!(!KBe.default.valid(s.pathname)||s.searchParams.has(\"__archiveUrl\"))}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let s;try{s=await Wm(t.getLocatorUrl(e),{customErrorMessage:qm,configuration:r.project.configuration,ident:e})}catch{s=await Wm(t.getLocatorUrl(e).replace(/%2f/g,\"/\"),{customErrorMessage:qm,configuration:r.project.configuration,ident:e})}return await ps.convertToZip(s,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:s}){let a=bw(e.scope,{configuration:s}),n=t.getLocatorUrl(e);return r=r.replace(/^https?:(\\/\\/(?:[^/]+\\.)?npmjs.org(?:$|\\/))/,\"https:$1\"),a=a.replace(/^https:\\/\\/registry\\.npmjs\\.org($|\\/)/,\"https://registry.yarnpkg.com$1\"),r=r.replace(/^https:\\/\\/registry\\.npmjs\\.org($|\\/)/,\"https://registry.yarnpkg.com$1\"),r===a+n||r===a+n.replace(/%2f/g,\"/\")}static getLocatorUrl(e){let r=Fr.clean(e.reference.slice(oi.length));if(r===null)throw new jt(10,\"The npm semver resolver got selected, but the version isn't semver\");return`${WD(e)}/-/${e.name}-${r}.tgz`}};Ge();Ge();Ge();var RY=ut(Ai());var uN=G.makeIdent(null,\"node-gyp\"),lmt=/\\b(node-gyp|prebuild-install)\\b/,KD=class{supportsDescriptor(e,r){return e.range.startsWith(oi)?!!Fr.validRange(e.range.slice(oi.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(oi))return!1;let{selector:s}=G.parseRange(e.reference);return!!RY.default.valid(s)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=Fr.validRange(e.range.slice(oi.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(oi.length)}`);let n=await Qw(e,{cache:s.fetchOptions?.cache,project:s.project,version:RY.default.valid(a.raw)?a.raw:void 0}),c=je.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new Fr.SemVer(h);if(a.test(E))return xw({configuration:s.project.configuration,ident:e,version:h,publishTimes:n.time})?E:je.mapAndFilter.skip}catch{}return je.mapAndFilter.skip}),f=c.filter(h=>!n.versions[h.raw].deprecated),p=f.length>0?f:c;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=G.makeLocator(e,`${oi}${h.raw}`),C=n.versions[h.raw].dist.tarball;return oh.isConventionalTarballUrl(E,C,{configuration:s.project.configuration})?E:G.bindLocator(E,{__archiveUrl:C})})}async getSatisfying(e,r,s,a){let n=Fr.validRange(e.range.slice(oi.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(oi.length)}`);return{locators:je.mapAndFilter(s,p=>{if(p.identHash!==e.identHash)return je.mapAndFilter.skip;let h=G.tryParseRange(p.reference,{requireProtocol:oi});if(!h)return je.mapAndFilter.skip;let E=new Fr.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:je.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:s}=G.parseRange(e.reference),a=Fr.clean(s);if(a===null)throw new jt(10,\"The npm semver resolver got selected, but the version isn't semver\");let n=await Qw(e,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(n,\"versions\"))throw new jt(15,'Registry returned invalid data for - missing \"versions\" field');if(!Object.hasOwn(n.versions,a))throw new jt(16,`Registry failed to return reference \"${a}\"`);let c=new Ut;if(c.load(n.versions[a]),!c.dependencies.has(uN.identHash)&&!c.peerDependencies.has(uN.identHash)){for(let f of c.scripts.values())if(f.match(lmt)){c.dependencies.set(uN.identHash,G.makeDescriptor(uN,\"latest\"));break}}return{...e,version:a,languageName:\"node\",linkType:\"HARD\",conditions:c.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(c.dependencies),peerDependencies:c.peerDependencies,dependenciesMeta:c.dependenciesMeta,peerDependenciesMeta:c.peerDependenciesMeta,bin:c.bin}}};Ge();Ge();var fN=ut(Ai());var zD=class{supportsDescriptor(e,r){return!(!e.range.startsWith(oi)||!Mp.test(e.range.slice(oi.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error(\"Unreachable\")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=e.range.slice(oi.length),n=await Qw(e,{cache:s.fetchOptions?.cache,project:s.project});if(!Object.hasOwn(n,\"dist-tags\"))throw new jt(15,'Registry returned invalid data - missing \"dist-tags\" field');let c=n[\"dist-tags\"];if(!Object.hasOwn(c,a))throw new jt(16,`Registry failed to return tag \"${a}\"`);let f=Object.keys(n.versions),p=n.time,h=c[a];if(a===\"latest\"&&!xw({configuration:s.project.configuration,ident:e,version:h,publishTimes:p})){let S=h.includes(\"-\"),b=fN.default.rsort(f).find(I=>fN.default.lt(I,h)&&(S||!I.includes(\"-\"))&&xw({configuration:s.project.configuration,ident:e,version:I,publishTimes:p}));if(!b)throw new jt(16,`The version for tag \"${a}\" is quarantined, and no lower version is available`);h=b}let E=G.makeLocator(e,`${oi}${h}`),C=n.versions[h].dist.tarball;return oh.isConventionalTarballUrl(E,C,{configuration:s.project.configuration})?[E]:[G.bindLocator(E,{__archiveUrl:C})]}async getSatisfying(e,r,s,a){let n=[];for(let c of s){if(c.identHash!==e.identHash)continue;let f=G.tryParseRange(c.reference,{requireProtocol:oi});if(!(!f||!fN.default.valid(f.selector))){if(f.params?.__archiveUrl){let p=G.makeRange({protocol:oi,selector:f.selector,source:null,params:null}),[h]=await a.resolver.getCandidates(G.makeDescriptor(e,p),r,a);if(c.reference!==h.reference)continue}n.push(c)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error(\"Unreachable\")}};var v1={};Vt(v1,{getGitHead:()=>$Dt,getPublishAccess:()=>Uxe,getReadmeContent:()=>_xe,makePublishBody:()=>XDt});Ge();Ge();Dt();var IV={};Vt(IV,{PackCommand:()=>jw,default:()=>HEt,packUtils:()=>yA});Ge();Ge();Ge();Dt();Yt();var yA={};Vt(yA,{genPackList:()=>FN,genPackStream:()=>EV,genPackageManifest:()=>DSe,hasPackScripts:()=>mV,prepareForPack:()=>yV});Ge();Dt();var dV=ut(Go()),vSe=ut(ISe()),SSe=Ie(\"zlib\"),kEt=[\"/package.json\",\"/readme\",\"/readme.*\",\"/license\",\"/license.*\",\"/licence\",\"/licence.*\",\"/changelog\",\"/changelog.*\"],QEt=[\"/package.tgz\",\".github\",\".git\",\".hg\",\"node_modules\",\".npmignore\",\".gitignore\",\".#*\",\".DS_Store\"];async function mV(t){return!!(In.hasWorkspaceScript(t,\"prepack\")||In.hasWorkspaceScript(t,\"postpack\"))}async function yV(t,{report:e},r){await In.maybeExecuteWorkspaceLifecycleScript(t,\"prepack\",{report:e});try{let s=J.join(t.cwd,Ut.fileName);await ce.existsPromise(s)&&await t.manifest.loadFile(s,{baseFs:ce}),await r()}finally{await In.maybeExecuteWorkspaceLifecycleScript(t,\"postpack\",{report:e})}}async function EV(t,e){typeof e>\"u\"&&(e=await FN(t));let r=new Set;for(let n of t.manifest.publishConfig?.executableFiles??new Set)r.add(J.normalize(n));for(let n of t.manifest.bin.values())r.add(J.normalize(n));let s=vSe.default.pack();process.nextTick(async()=>{for(let n of e){let c=J.normalize(n),f=J.resolve(t.cwd,c),p=J.join(\"package\",c),h=await ce.lstatPromise(f),E={name:p,mtime:new Date(fi.SAFE_TIME*1e3)},C=r.has(c)?493:420,S,b,I=new Promise((N,U)=>{S=N,b=U}),T=N=>{N?b(N):S()};if(h.isFile()){let N;c===\"package.json\"?N=Buffer.from(JSON.stringify(await DSe(t),null,2)):N=await ce.readFilePromise(f),s.entry({...E,mode:C,type:\"file\"},N,T)}else h.isSymbolicLink()?s.entry({...E,mode:C,type:\"symlink\",linkname:await ce.readlinkPromise(f)},T):T(new Error(`Unsupported file type ${h.mode} for ${fe.fromPortablePath(c)}`));await I}s.finalize()});let a=(0,SSe.createGzip)();return s.pipe(a),a}async function DSe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function FN(t){let e=t.project,r=e.configuration,s={accept:[],reject:[]};for(let C of QEt)s.reject.push(C);for(let C of kEt)s.accept.push(C);s.reject.push(r.get(\"rcFilename\"));let a=C=>{if(C===null||!C.startsWith(`${t.cwd}/`))return;let S=J.relative(t.cwd,C),b=J.resolve(vt.root,S);s.reject.push(b)};a(J.resolve(e.cwd,Er.lockfile)),a(r.get(\"cacheFolder\")),a(r.get(\"globalFolder\")),a(r.get(\"installStatePath\")),a(r.get(\"virtualFolder\")),a(r.get(\"yarnPath\")),await r.triggerHook(C=>C.populateYarnPaths,e,C=>{a(C)});for(let C of e.workspaces){let S=J.relative(t.cwd,C.cwd);S!==\"\"&&!S.match(/^(\\.\\.)?\\//)&&s.reject.push(`/${S}`)}let n={accept:[],reject:[]},c=t.manifest.publishConfig?.main??t.manifest.main,f=t.manifest.publishConfig?.module??t.manifest.module,p=t.manifest.publishConfig?.browser??t.manifest.browser,h=t.manifest.publishConfig?.bin??t.manifest.bin;c!=null&&n.accept.push(J.resolve(vt.root,c)),f!=null&&n.accept.push(J.resolve(vt.root,f)),typeof p==\"string\"&&n.accept.push(J.resolve(vt.root,p));for(let C of h.values())n.accept.push(J.resolve(vt.root,C));if(p instanceof Map)for(let[C,S]of p.entries())n.accept.push(J.resolve(vt.root,C)),typeof S==\"string\"&&n.accept.push(J.resolve(vt.root,S));let E=t.manifest.files!==null;if(E){n.reject.push(\"/*\");for(let C of t.manifest.files)PSe(n.accept,C,{cwd:vt.root})}return await REt(t.cwd,{hasExplicitFileList:E,globalList:s,ignoreList:n})}async function REt(t,{hasExplicitFileList:e,globalList:r,ignoreList:s}){let a=[],n=new Hf(t),c=[[vt.root,[s]]];for(;c.length>0;){let[f,p]=c.pop(),h=await n.lstatPromise(f);if(!wSe(f,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(f),C=!1,S=!1;if(!e||f!==vt.root)for(let T of E)C=C||T===\".gitignore\",S=S||T===\".npmignore\";let b=S?await CSe(n,f,\".npmignore\"):C?await CSe(n,f,\".gitignore\"):null,I=b!==null?[b].concat(p):p;wSe(f,{globalList:r,ignoreLists:p})&&(I=[...p,{accept:[],reject:[\"**/*\"]}]);for(let T of E)c.push([J.resolve(f,T),I])}else(h.isFile()||h.isSymbolicLink())&&a.push(J.relative(vt.root,f))}return a.sort()}async function CSe(t,e,r){let s={accept:[],reject:[]},a=await t.readFilePromise(J.join(e,r),\"utf8\");for(let n of a.split(/\\n/g))PSe(s.reject,n,{cwd:e});return s}function TEt(t,{cwd:e}){let r=t[0]===\"!\";return r&&(t=t.slice(1)),t.match(/\\.{0,1}\\//)&&(t=J.resolve(e,t)),r&&(t=`!${t}`),t}function PSe(t,e,{cwd:r}){let s=e.trim();s===\"\"||s[0]===\"#\"||t.push(TEt(s,{cwd:r}))}function wSe(t,{globalList:e,ignoreLists:r}){let s=TN(t,e.accept);if(s!==0)return s===2;let a=TN(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let c=TN(t,n.accept);if(c!==0)return c===2;let f=TN(t,n.reject);if(f!==0)return f===1}return!1}function TN(t,e){let r=e,s=[];for(let a=0;a<e.length;++a)e[a][0]!==\"!\"?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),s.push(e[a].slice(1)));return BSe(t,s)?2:BSe(t,r)?1:0}function BSe(t,e){let r=e,s=[];for(let a=0;a<e.length;++a)e[a].includes(\"/\")?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),s.push(e[a]));return!!(dV.default.isMatch(t,r,{dot:!0,nocase:!0})||dV.default.isMatch(t,s,{dot:!0,basename:!0,nocase:!0}))}var jw=class extends ft{constructor(){super(...arguments);this.installIfNeeded=ge.Boolean(\"--install-if-needed\",!1,{description:\"Run a preliminary `yarn install` if the package contains build scripts\"});this.dryRun=ge.Boolean(\"-n,--dry-run\",!1,{description:\"Print the file paths without actually generating the package archive\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.out=ge.String(\"-o,--out\",{description:\"Create the archive at the specified path\"});this.filename=ge.String(\"--filename\",{hidden:!0})}static{this.paths=[[\"pack\"]]}static{this.usage=ot.Usage({description:\"generate a tarball from the active workspace\",details:\"\\n      This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\\n\\n      If the `-o,--out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\\n    \",examples:[[\"Create an archive from the active workspace\",\"yarn pack\"],[\"List the files that would be made part of the workspace's archive\",\"yarn pack --dry-run\"],[\"Name and output the archive in a dedicated folder\",\"yarn pack --out /artifacts/%s-%v.tgz\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await mV(a)&&(this.installIfNeeded?await s.install({cache:await Kr.find(r),report:new ki}):await s.restoreInstallState());let n=this.out??this.filename,c=typeof n<\"u\"?J.resolve(this.context.cwd,FEt(n,{workspace:a})):J.resolve(a.cwd,\"package.tgz\");return(await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async p=>{await yV(a,{report:p},async()=>{p.reportJson({base:fe.fromPortablePath(a.cwd)});let h=await FN(a);for(let E of h)p.reportInfo(null,fe.fromPortablePath(E)),p.reportJson({location:fe.fromPortablePath(E)});if(!this.dryRun){let E=await EV(a,h);await ce.mkdirPromise(J.dirname(c),{recursive:!0});let C=ce.createWriteStream(c);E.pipe(C),await new Promise(S=>{C.on(\"finish\",S)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${he.pretty(r,c,he.Type.PATH)}`),p.reportJson({output:fe.fromPortablePath(c)}))})).exitCode()}};function FEt(t,{workspace:e}){let r=t.replace(\"%s\",NEt(e)).replace(\"%v\",OEt(e));return fe.toPortablePath(r)}function NEt(t){return t.manifest.name!==null?G.slugifyIdent(t.manifest.name):\"package\"}function OEt(t){return t.manifest.version!==null?t.manifest.version:\"unknown\"}var LEt=[\"dependencies\",\"devDependencies\",\"peerDependencies\"],MEt=\"workspace:\",UEt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let s of LEt)for(let a of t.manifest.getForScope(s).values()){let n=r.tryWorkspaceByDescriptor(a),c=G.parseRange(a.range);if(c.protocol===MEt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new jt(21,`${G.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let f;G.areDescriptorsEqual(a,n.anchoredDescriptor)||c.selector===\"*\"?f=n.manifest.version??\"0.0.0\":c.selector===\"~\"||c.selector===\"^\"?f=`${c.selector}${n.manifest.version??\"0.0.0\"}`:f=c.selector;let p=s===\"dependencies\"?G.makeDescriptor(a,\"unknown\"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?\"optionalDependencies\":s;e[h][G.stringifyIdent(a)]=f}}},_Et={hooks:{beforeWorkspacePacking:UEt},commands:[jw]},HEt=_Et;var Mxe=ut(OSe());Ge();var Oxe=ut(Nxe()),{env:Bt}=process,GDt=\"application/vnd.in-toto+json\",qDt=\"https://in-toto.io/Statement/v0.1\",WDt=\"https://in-toto.io/Statement/v1\",YDt=\"https://slsa.dev/provenance/v0.2\",VDt=\"https://slsa.dev/provenance/v1\",JDt=\"https://github.com/actions/runner\",KDt=\"https://slsa-framework.github.io/github-actions-buildtypes/workflow/v1\",zDt=\"https://github.com/npm/cli/gitlab\",ZDt=\"v0alpha1\",Lxe=async(t,e)=>{let r;if(Bt.GITHUB_ACTIONS){if(!Bt.ACTIONS_ID_TOKEN_REQUEST_URL)throw new jt(91,'Provenance generation in GitHub Actions requires \"write\" access to the \"id-token\" permission');let s=(Bt.GITHUB_WORKFLOW_REF||\"\").replace(`${Bt.GITHUB_REPOSITORY}/`,\"\"),a=s.indexOf(\"@\"),n=s.slice(0,a),c=s.slice(a+1);r={_type:WDt,subject:t,predicateType:VDt,predicate:{buildDefinition:{buildType:KDt,externalParameters:{workflow:{ref:c,repository:`${Bt.GITHUB_SERVER_URL}/${Bt.GITHUB_REPOSITORY}`,path:n}},internalParameters:{github:{event_name:Bt.GITHUB_EVENT_NAME,repository_id:Bt.GITHUB_REPOSITORY_ID,repository_owner_id:Bt.GITHUB_REPOSITORY_OWNER_ID}},resolvedDependencies:[{uri:`git+${Bt.GITHUB_SERVER_URL}/${Bt.GITHUB_REPOSITORY}@${Bt.GITHUB_REF}`,digest:{gitCommit:Bt.GITHUB_SHA}}]},runDetails:{builder:{id:`${JDt}/${Bt.RUNNER_ENVIRONMENT}`},metadata:{invocationId:`${Bt.GITHUB_SERVER_URL}/${Bt.GITHUB_REPOSITORY}/actions/runs/${Bt.GITHUB_RUN_ID}/attempts/${Bt.GITHUB_RUN_ATTEMPT}`}}}}}else if(Bt.GITLAB_CI){if(!Bt.SIGSTORE_ID_TOKEN)throw new jt(91,`Provenance generation in GitLab CI requires \"SIGSTORE_ID_TOKEN\" with \"sigstore\" audience to be present in \"id_tokens\". For more info see:\nhttps://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:qDt,subject:t,predicateType:YDt,predicate:{buildType:`${zDt}/${ZDt}`,builder:{id:`${Bt.CI_PROJECT_URL}/-/runners/${Bt.CI_RUNNER_ID}`},invocation:{configSource:{uri:`git+${Bt.CI_PROJECT_URL}`,digest:{sha1:Bt.CI_COMMIT_SHA},entryPoint:Bt.CI_JOB_NAME},parameters:{CI:Bt.CI,CI_API_GRAPHQL_URL:Bt.CI_API_GRAPHQL_URL,CI_API_V4_URL:Bt.CI_API_V4_URL,CI_BUILD_BEFORE_SHA:Bt.CI_BUILD_BEFORE_SHA,CI_BUILD_ID:Bt.CI_BUILD_ID,CI_BUILD_NAME:Bt.CI_BUILD_NAME,CI_BUILD_REF:Bt.CI_BUILD_REF,CI_BUILD_REF_NAME:Bt.CI_BUILD_REF_NAME,CI_BUILD_REF_SLUG:Bt.CI_BUILD_REF_SLUG,CI_BUILD_STAGE:Bt.CI_BUILD_STAGE,CI_COMMIT_BEFORE_SHA:Bt.CI_COMMIT_BEFORE_SHA,CI_COMMIT_BRANCH:Bt.CI_COMMIT_BRANCH,CI_COMMIT_REF_NAME:Bt.CI_COMMIT_REF_NAME,CI_COMMIT_REF_PROTECTED:Bt.CI_COMMIT_REF_PROTECTED,CI_COMMIT_REF_SLUG:Bt.CI_COMMIT_REF_SLUG,CI_COMMIT_SHA:Bt.CI_COMMIT_SHA,CI_COMMIT_SHORT_SHA:Bt.CI_COMMIT_SHORT_SHA,CI_COMMIT_TIMESTAMP:Bt.CI_COMMIT_TIMESTAMP,CI_COMMIT_TITLE:Bt.CI_COMMIT_TITLE,CI_CONFIG_PATH:Bt.CI_CONFIG_PATH,CI_DEFAULT_BRANCH:Bt.CI_DEFAULT_BRANCH,CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:Bt.CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX:Bt.CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_SERVER:Bt.CI_DEPENDENCY_PROXY_SERVER,CI_DEPENDENCY_PROXY_USER:Bt.CI_DEPENDENCY_PROXY_USER,CI_JOB_ID:Bt.CI_JOB_ID,CI_JOB_NAME:Bt.CI_JOB_NAME,CI_JOB_NAME_SLUG:Bt.CI_JOB_NAME_SLUG,CI_JOB_STAGE:Bt.CI_JOB_STAGE,CI_JOB_STARTED_AT:Bt.CI_JOB_STARTED_AT,CI_JOB_URL:Bt.CI_JOB_URL,CI_NODE_TOTAL:Bt.CI_NODE_TOTAL,CI_PAGES_DOMAIN:Bt.CI_PAGES_DOMAIN,CI_PAGES_URL:Bt.CI_PAGES_URL,CI_PIPELINE_CREATED_AT:Bt.CI_PIPELINE_CREATED_AT,CI_PIPELINE_ID:Bt.CI_PIPELINE_ID,CI_PIPELINE_IID:Bt.CI_PIPELINE_IID,CI_PIPELINE_SOURCE:Bt.CI_PIPELINE_SOURCE,CI_PIPELINE_URL:Bt.CI_PIPELINE_URL,CI_PROJECT_CLASSIFICATION_LABEL:Bt.CI_PROJECT_CLASSIFICATION_LABEL,CI_PROJECT_DESCRIPTION:Bt.CI_PROJECT_DESCRIPTION,CI_PROJECT_ID:Bt.CI_PROJECT_ID,CI_PROJECT_NAME:Bt.CI_PROJECT_NAME,CI_PROJECT_NAMESPACE:Bt.CI_PROJECT_NAMESPACE,CI_PROJECT_NAMESPACE_ID:Bt.CI_PROJECT_NAMESPACE_ID,CI_PROJECT_PATH:Bt.CI_PROJECT_PATH,CI_PROJECT_PATH_SLUG:Bt.CI_PROJECT_PATH_SLUG,CI_PROJECT_REPOSITORY_LANGUAGES:Bt.CI_PROJECT_REPOSITORY_LANGUAGES,CI_PROJECT_ROOT_NAMESPACE:Bt.CI_PROJECT_ROOT_NAMESPACE,CI_PROJECT_TITLE:Bt.CI_PROJECT_TITLE,CI_PROJECT_URL:Bt.CI_PROJECT_URL,CI_PROJECT_VISIBILITY:Bt.CI_PROJECT_VISIBILITY,CI_REGISTRY:Bt.CI_REGISTRY,CI_REGISTRY_IMAGE:Bt.CI_REGISTRY_IMAGE,CI_REGISTRY_USER:Bt.CI_REGISTRY_USER,CI_RUNNER_DESCRIPTION:Bt.CI_RUNNER_DESCRIPTION,CI_RUNNER_ID:Bt.CI_RUNNER_ID,CI_RUNNER_TAGS:Bt.CI_RUNNER_TAGS,CI_SERVER_HOST:Bt.CI_SERVER_HOST,CI_SERVER_NAME:Bt.CI_SERVER_NAME,CI_SERVER_PORT:Bt.CI_SERVER_PORT,CI_SERVER_PROTOCOL:Bt.CI_SERVER_PROTOCOL,CI_SERVER_REVISION:Bt.CI_SERVER_REVISION,CI_SERVER_SHELL_SSH_HOST:Bt.CI_SERVER_SHELL_SSH_HOST,CI_SERVER_SHELL_SSH_PORT:Bt.CI_SERVER_SHELL_SSH_PORT,CI_SERVER_URL:Bt.CI_SERVER_URL,CI_SERVER_VERSION:Bt.CI_SERVER_VERSION,CI_SERVER_VERSION_MAJOR:Bt.CI_SERVER_VERSION_MAJOR,CI_SERVER_VERSION_MINOR:Bt.CI_SERVER_VERSION_MINOR,CI_SERVER_VERSION_PATCH:Bt.CI_SERVER_VERSION_PATCH,CI_TEMPLATE_REGISTRY_HOST:Bt.CI_TEMPLATE_REGISTRY_HOST,GITLAB_CI:Bt.GITLAB_CI,GITLAB_FEATURES:Bt.GITLAB_FEATURES,GITLAB_USER_ID:Bt.GITLAB_USER_ID,GITLAB_USER_LOGIN:Bt.GITLAB_USER_LOGIN,RUNNER_GENERATE_ARTIFACTS_METADATA:Bt.RUNNER_GENERATE_ARTIFACTS_METADATA},environment:{name:Bt.CI_RUNNER_DESCRIPTION,architecture:Bt.CI_RUNNER_EXECUTABLE_ARCH,server:Bt.CI_SERVER_URL,project:Bt.CI_PROJECT_PATH,job:{id:Bt.CI_JOB_ID},pipeline:{id:Bt.CI_PIPELINE_ID,ref:Bt.CI_CONFIG_PATH}}},metadata:{buildInvocationId:`${Bt.CI_JOB_URL}`,completeness:{parameters:!0,environment:!0,materials:!1},reproducible:!1},materials:[{uri:`git+${Bt.CI_PROJECT_URL}`,digest:{sha1:Bt.CI_COMMIT_SHA}}]}}}else throw new jt(91,\"Provenance generation is only supported in GitHub Actions and GitLab CI\");return Oxe.attest(Buffer.from(JSON.stringify(r)),GDt,e)};async function XDt(t,e,{access:r,tag:s,registry:a,gitHead:n,provenance:c}){let f=t.manifest.name,p=t.manifest.version,h=G.stringifyIdent(f),E=Mxe.default.fromData(e,{algorithms:[\"sha1\",\"sha512\"]}),C=r??Uxe(t,f),S=await _xe(t),b=await yA.genPackageManifest(t),I=`${h}-${p}.tgz`,T=new URL(`${Jc(a)}/${h}/-/${I}`),N={[I]:{content_type:\"application/octet-stream\",data:e.toString(\"base64\"),length:e.length}};if(c){let U={name:`pkg:npm/${h.replace(/^@/,\"%40\")}@${p}`,digest:{sha512:E.sha512[0].hexDigest()}},W=await Lxe([U]),ee=JSON.stringify(W);N[`${h}-${p}.sigstore`]={content_type:W.mediaType,data:ee,length:ee.length}}return{_id:h,_attachments:N,name:h,access:C,\"dist-tags\":{[s]:p},versions:{[p]:{...b,_id:`${h}@${p}`,name:h,version:p,gitHead:n,dist:{shasum:E.sha1[0].hexDigest(),integrity:E.sha512[0].toString(),tarball:T.toString()}}},readme:S}}async function $Dt(t){try{let{stdout:e}=await qr.execvp(\"git\",[\"rev-parse\",\"--revs-only\",\"HEAD\"],{cwd:t});return e.trim()===\"\"?void 0:e.trim()}catch{return}}function Uxe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access==\"string\"?t.manifest.publishConfig.access:r.get(\"npmPublishAccess\")!==null?r.get(\"npmPublishAccess\"):e.scope?\"restricted\":\"public\"}async function _xe(t){let e=fe.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${G.stringifyIdent(r)}\n`;try{a=await ce.readFilePromise(e,\"utf8\")}catch(n){if(n.code===\"ENOENT\")return a;throw n}return a}var DK={npmAlwaysAuth:{description:\"URL of the selected npm registry (note: npm enterprise isn't supported)\",type:\"BOOLEAN\",default:!1},npmAuthIdent:{description:\"Authentication identity for the npm registry (_auth in npm and yarn v1)\",type:\"SECRET\",default:null},npmAuthToken:{description:\"Authentication token for the npm registry (_authToken in npm and yarn v1)\",type:\"SECRET\",default:null}},Hxe={npmAuditRegistry:{description:\"Registry to query for audit reports\",type:\"STRING\",default:null},npmPublishRegistry:{description:\"Registry to push packages to\",type:\"STRING\",default:null},npmRegistryServer:{description:\"URL of the selected npm registry (note: npm enterprise isn't supported)\",type:\"STRING\",default:\"https://registry.yarnpkg.com\"}},ePt={npmMinimalAgeGate:{description:\"Minimum age of a package version according to the publish date on the npm registry in minutes to be considered for installation\",type:\"NUMBER\",default:0},npmPreapprovedPackages:{description:\"Array of package descriptors or package name glob patterns to exclude from the minimum release age check\",type:\"STRING\",isArray:!0,default:[]}},tPt={configuration:{...DK,...Hxe,...ePt,npmScopes:{description:\"Settings per package scope\",type:\"MAP\",valueDefinition:{description:\"\",type:\"SHAPE\",properties:{...DK,...Hxe}}},npmRegistries:{description:\"Settings per registry\",type:\"MAP\",normalizeKeys:Jc,valueDefinition:{description:\"\",type:\"SHAPE\",properties:{...DK}}}},fetchers:[VD,oh],resolvers:[JD,KD,zD]},rPt=tPt;var OK={};Vt(OK,{NpmAuditCommand:()=>D1,NpmInfoCommand:()=>P1,NpmLoginCommand:()=>b1,NpmLogoutCommand:()=>k1,NpmPublishCommand:()=>Q1,NpmTagAddCommand:()=>T1,NpmTagListCommand:()=>R1,NpmTagRemoveCommand:()=>F1,NpmWhoamiCommand:()=>N1,default:()=>cPt,npmAuditTypes:()=>KP,npmAuditUtils:()=>xL});Ge();Ge();Yt();var RK=ut(Go());Ul();var KP={};Vt(KP,{Environment:()=>VP,Severity:()=>JP});var VP=(s=>(s.All=\"all\",s.Production=\"production\",s.Development=\"development\",s))(VP||{}),JP=(n=>(n.Info=\"info\",n.Low=\"low\",n.Moderate=\"moderate\",n.High=\"high\",n.Critical=\"critical\",n))(JP||{});var xL={};Vt(xL,{allSeverities:()=>S1,getPackages:()=>QK,getReportTree:()=>xK,getSeverityInclusions:()=>bK,getTopLevelDependencies:()=>kK});Ge();var jxe=ut(Ai());var S1=[\"info\",\"low\",\"moderate\",\"high\",\"critical\"];function bK(t){if(typeof t>\"u\")return new Set(S1);let e=S1.indexOf(t),r=S1.slice(e);return new Set(r)}function xK(t){let e={},r={children:e};for(let[s,a]of je.sortMap(Object.entries(t),n=>n[0]))for(let n of je.sortMap(a,c=>`${c.id}`))e[`${s}/${n.id}`]={value:he.tuple(he.Type.IDENT,G.parseIdent(s)),children:{ID:typeof n.id<\"u\"&&{label:\"ID\",value:he.tuple(he.Type.ID,n.id)},Issue:{label:\"Issue\",value:he.tuple(he.Type.NO_HINT,n.title)},URL:typeof n.url<\"u\"&&{label:\"URL\",value:he.tuple(he.Type.URL,n.url)},Severity:{label:\"Severity\",value:he.tuple(he.Type.NO_HINT,n.severity)},\"Vulnerable Versions\":{label:\"Vulnerable Versions\",value:he.tuple(he.Type.RANGE,n.vulnerable_versions)},\"Tree Versions\":{label:\"Tree Versions\",children:[...n.versions].sort(jxe.default.compare).map(c=>({value:he.tuple(he.Type.REFERENCE,c)}))},Dependents:{label:\"Dependents\",children:je.sortMap(n.dependents,c=>G.stringifyLocator(c)).map(c=>({value:he.tuple(he.Type.LOCATOR,c)}))}}};return r}function kK(t,e,{all:r,environment:s}){let a=[],n=r?t.workspaces:[e],c=[\"all\",\"production\"].includes(s),f=[\"all\",\"development\"].includes(s);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!f:!c)||a.push({workspace:p,dependency:h});return a}function QK(t,e,{recursive:r}){let s=new Map,a=new Set,n=[],c=(f,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>\"u\")throw new Error(\"Assertion failed: The resolution should have been registered\");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>\"u\")throw new Error(\"Assertion failed: The package should have been registered\");if(G.ensureDevirtualizedLocator(E).reference.startsWith(\"npm:\")&&E.version!==null){let S=G.stringifyIdent(E),b=je.getMapWithDefault(s,S);je.getArrayWithDefault(b,E.version).push(f)}if(r)for(let S of E.dependencies.values())n.push([E,S])};for(let{workspace:f,dependency:p}of e)n.push([f.anchoredLocator,p]);for(;n.length>0;){let[f,p]=n.shift();c(f,p)}return s}var D1=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean(\"-A,--all\",!1,{description:\"Audit dependencies from all workspaces\"});this.recursive=ge.Boolean(\"-R,--recursive\",!1,{description:\"Audit transitive dependencies as well\"});this.environment=ge.String(\"--environment\",\"all\",{description:\"Which environments to cover\",validator:fo(VP)});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.noDeprecations=ge.Boolean(\"--no-deprecations\",!1,{description:\"Don't warn about deprecated packages\"});this.severity=ge.String(\"--severity\",\"info\",{description:\"Minimal severity requested for packages to be displayed\",validator:fo(JP)});this.excludes=ge.Array(\"--exclude\",[],{description:\"Array of glob patterns of packages to exclude from audit\"});this.ignores=ge.Array(\"--ignore\",[],{description:\"Array of glob patterns of advisory ID's to ignore in the audit report\"})}static{this.paths=[[\"npm\",\"audit\"]]}static{this.usage=ot.Usage({description:\"perform a vulnerability audit against the installed packages\",details:`\n      This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths).\n\n      For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \\`-A,--all\\`. To extend this search to both direct and transitive dependencies, use \\`-R,--recursive\\`.\n\n      Applying the \\`--severity\\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${S1.map(r=>`\\`${r}\\``).join(\", \")}.\n\n      If the \\`--json\\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages.\n\n      If certain packages produce false positives for a particular environment, the \\`--exclude\\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \\`npmAuditExcludePackages\\` option.\n\n      If particular advisories are needed to be ignored, the \\`--ignore\\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \\`npmAuditIgnoreAdvisories\\` option.\n\n      To understand the dependency tree requiring vulnerable packages, check the raw report with the \\`--json\\` flag or use \\`yarn why package\\` to get more information as to who depends on them.\n    `,examples:[[\"Checks for known security issues with the installed packages. The output is a list of known issues.\",\"yarn npm audit\"],[\"Audit dependencies in all workspaces\",\"yarn npm audit --all\"],[\"Limit auditing to `dependencies` (excludes `devDependencies`)\",\"yarn npm audit --environment production\"],[\"Show audit report as valid JSON\",\"yarn npm audit --json\"],[\"Audit all direct and transitive dependencies\",\"yarn npm audit --recursive\"],[\"Output moderate (or more severe) vulnerabilities\",\"yarn npm audit --severity moderate\"],[\"Exclude certain packages\",\"yarn npm audit --exclude package1 --exclude package2\"],[\"Ignore specific advisories\",\"yarn npm audit --ignore 1234567 --ignore 7654321\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=kK(s,a,{all:this.all,environment:this.environment}),c=QK(s,n,{recursive:this.recursive}),f=Array.from(new Set([...r.get(\"npmAuditExcludePackages\"),...this.excludes])),p=Object.create(null);for(let[N,U]of c)f.some(W=>RK.default.isMatch(N,W))||(p[N]=[...U.keys()]);let h=hi.getAuditRegistry({configuration:r}),E,C=await lA.start({configuration:r,stdout:this.context.stdout},async()=>{let N=an.post(\"/-/npm/v1/security/advisories/bulk\",p,{authType:an.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([ee,ie])=>{let ue=await an.getPackageMetadata(G.parseIdent(ee),{project:s});return je.mapAndFilter(ie,le=>{let{deprecated:me}=ue.versions[le];return me?[ee,le,me]:je.mapAndFilter.skip})})),W=await N;for(let[ee,ie,ue]of U.flat(1))Object.hasOwn(W,ee)&&W[ee].some(le=>Fr.satisfiesWithPrereleases(ie,le.vulnerable_versions))||(W[ee]??=[],W[ee].push({id:`${ee} (deprecation)`,title:(typeof ue==\"string\"?ue:\"\").trim()||\"This package has been deprecated.\",severity:\"moderate\",vulnerable_versions:ie}));E=W});if(C.hasErrors())return C.exitCode();let S=bK(this.severity),b=Array.from(new Set([...r.get(\"npmAuditIgnoreAdvisories\"),...this.ignores])),I=Object.create(null);for(let[N,U]of Object.entries(E)){let W=U.filter(ee=>!RK.default.isMatch(`${ee.id}`,b)&&S.has(ee.severity));W.length>0&&(I[N]=W.map(ee=>{let ie=c.get(N);if(typeof ie>\"u\")throw new Error(\"Assertion failed: Expected the registry to only return packages that were requested\");let ue=[...ie.keys()].filter(me=>Fr.satisfiesWithPrereleases(me,ee.vulnerable_versions)),le=new Map;for(let me of ue)for(let pe of ie.get(me))le.set(pe.locatorHash,pe);return{...ee,versions:ue,dependents:[...le.values()]}}))}let T=Object.keys(I).length>0;return T?(xs.emitTree(xK(I),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Ot.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async N=>{N.reportInfo(1,\"No audit suggestions\")}),T?1:0)}};Ge();Ge();Dt();Yt();var TK=ut(Ai()),FK=Ie(\"util\"),P1=class extends ft{constructor(){super(...arguments);this.fields=ge.String(\"-f,--fields\",{description:\"A comma-separated list of manifest fields that should be displayed\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.packages=ge.Rest()}static{this.paths=[[\"npm\",\"info\"]]}static{this.usage=ot.Usage({category:\"Npm-related commands\",description:\"show information about a package\",details:\"\\n      This command fetches information about a package from the npm registry and prints it in a tree format.\\n\\n      The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\\n\\n      Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\\n\\n      If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\\n\\n      By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\\n    \",examples:[[\"Show all available information about react (except the `dist`, `readme`, and `users` fields)\",\"yarn npm info react\"],[\"Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)\",\"yarn npm info react --json\"],[\"Show all available information about react@16.12.0\",\"yarn npm info react@16.12.0\"],[\"Show all available information about react@next\",\"yarn npm info react@next\"],[\"Show the description of react\",\"yarn npm info react --fields description\"],[\"Show all available versions of react\",\"yarn npm info react --fields versions\"],[\"Show the readme of react\",\"yarn npm info react --fields readme\"],[\"Show a few fields of react\",\"yarn npm info react --fields homepage,repository\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),a=typeof this.fields<\"u\"?new Set([\"name\",...this.fields.split(/\\s*,\\s*/)]):null,n=[],c=!1,f=await Ot.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h===\".\"){let ie=s.topLevelWorkspace;if(!ie.manifest.name)throw new nt(`Missing ${he.pretty(r,\"name\",he.Type.CODE)} field in ${fe.fromPortablePath(J.join(ie.cwd,Er.manifest))}`);E=G.makeDescriptor(ie.manifest.name,\"unknown\")}else E=G.parseDescriptor(h);let C=an.getIdentUrl(E),S=NK(await an.get(C,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:an.customPackageError})),b=Object.keys(S.versions).sort(TK.default.compareLoose),T=S[\"dist-tags\"].latest||b[b.length-1],N=Fr.validRange(E.range);if(N){let ie=TK.default.maxSatisfying(b,N);ie!==null?T=ie:(p.reportWarning(0,`Unmet range ${G.prettyRange(r,E.range)}; falling back to the latest version`),c=!0)}else Object.hasOwn(S[\"dist-tags\"],E.range)?T=S[\"dist-tags\"][E.range]:E.range!==\"unknown\"&&(p.reportWarning(0,`Unknown tag ${G.prettyRange(r,E.range)}; falling back to the latest version`),c=!0);let U=S.versions[T],W={...S,...U,version:T,versions:b},ee;if(a!==null){ee={};for(let ie of a){let ue=W[ie];if(typeof ue<\"u\")ee[ie]=ue;else{p.reportWarning(1,`The ${he.pretty(r,ie,he.Type.CODE)} field doesn't exist inside ${G.prettyIdent(r,E)}'s information`),c=!0;continue}}}else this.json||(delete W.dist,delete W.readme,delete W.users),ee=W;p.reportJson(ee),this.json||n.push(ee)}});FK.inspect.styles.name=\"cyan\";for(let p of n)(p!==n[0]||c)&&this.context.stdout.write(`\n`),this.context.stdout.write(`${(0,FK.inspect)(p,{depth:1/0,colors:!0,compact:!1})}\n`);return f.exitCode()}};function NK(t){if(Array.isArray(t)){let e=[];for(let r of t)r=NK(r),r&&e.push(r);return e}else if(typeof t==\"object\"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith(\"_\"))continue;let s=NK(t[r]);s&&(e[r]=s)}return e}else return t||null}Ge();Ge();Yt();var Gxe=ut(Vv()),b1=class extends ft{constructor(){super(...arguments);this.scope=ge.String(\"-s,--scope\",{description:\"Login to the registry configured for a given scope\"});this.publish=ge.Boolean(\"--publish\",!1,{description:\"Login to the publish registry\"});this.alwaysAuth=ge.Boolean(\"--always-auth\",{description:\"Set the npmAlwaysAuth configuration\"})}static{this.paths=[[\"npm\",\"login\"]]}static{this.usage=ot.Usage({category:\"Npm-related commands\",description:\"store new login info to access the npm registry\",details:\"\\n      This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\\n\\n      Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\\n\\n      Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\\n    \",examples:[[\"Login to the default registry\",\"yarn npm login\"],[\"Login to the registry linked to the @my-scope registry\",\"yarn npm login --scope my-scope\"],[\"Login to the publish registry for the current package\",\"yarn npm login --publish\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=await kL({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ot.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let c=await sPt({configuration:r,registry:s,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),f=await nPt(s,c,r);return await iPt(s,f,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,\"Successfully logged in\")})).exitCode()}};async function kL({scope:t,publish:e,configuration:r,cwd:s}){return t&&e?hi.getScopeRegistry(t,{configuration:r,type:hi.RegistryType.PUBLISH_REGISTRY}):t?hi.getScopeRegistry(t,{configuration:r}):e?hi.getPublishRegistry((await eC(r,s)).manifest,{configuration:r}):hi.getDefaultRegistry({configuration:r})}async function nPt(t,e,r){let s=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:\"user\",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:an.AuthType.NO_AUTH};try{return(await an.put(s,a,n)).token}catch(E){if(!(E.originalError?.name===\"HTTPError\"&&E.originalError?.response.statusCode===409))throw E}let c={...n,authType:an.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString(\"base64\")}`}},f=await an.get(s,c);for(let[E,C]of Object.entries(f))(!a[E]||E===\"roles\")&&(a[E]=C);let p=`${s}/-rev/${a._rev}`;return(await an.put(p,a,c)).token}async function iPt(t,e,{alwaysAuth:r,scope:s}){let a=c=>f=>{let p=je.isIndexableObject(f)?f:{},h=p[c],E=je.isIndexableObject(h)?h:{};return{...p,[c]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=s?{npmScopes:a(s)}:{npmRegistries:a(t)};return await ze.updateHomeConfiguration(n)}async function sPt({configuration:t,registry:e,report:r,stdin:s,stdout:a}){r.reportInfo(0,`Logging in to ${he.pretty(t,e,he.Type.URL)}`);let n=!1;if(e.match(/^https:\\/\\/npm\\.pkg\\.github\\.com(\\/|$)/)&&(r.reportInfo(0,\"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions.\"),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||\"\",password:t.env.YARN_INJECT_NPM_PASSWORD||\"\"};let c=await(0,Gxe.prompt)([{type:\"input\",name:\"name\",message:\"Username:\",required:!0,onCancel:()=>process.exit(130),stdin:s,stdout:a},{type:\"password\",name:\"password\",message:n?\"Token:\":\"Password:\",required:!0,onCancel:()=>process.exit(130),stdin:s,stdout:a}]);return r.reportSeparator(),c}Ge();Ge();Yt();var x1=new Set([\"npmAuthIdent\",\"npmAuthToken\"]),k1=class extends ft{constructor(){super(...arguments);this.scope=ge.String(\"-s,--scope\",{description:\"Logout of the registry configured for a given scope\"});this.publish=ge.Boolean(\"--publish\",!1,{description:\"Logout of the publish registry\"});this.all=ge.Boolean(\"-A,--all\",!1,{description:\"Logout of all registries\"})}static{this.paths=[[\"npm\",\"logout\"]]}static{this.usage=ot.Usage({category:\"Npm-related commands\",description:\"logout of the npm registry\",details:\"\\n      This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\\n\\n      Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\\n\\n      Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\\n\\n      Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\\n    \",examples:[[\"Logout of the default registry\",\"yarn npm logout\"],[\"Logout of the @my-scope scope\",\"yarn npm logout --scope my-scope\"],[\"Logout of the publish registry for the current package\",\"yarn npm logout --publish\"],[\"Logout of all registries\",\"yarn npm logout --all\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=async()=>{let n=await kL({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),c=await ze.find(this.context.cwd,this.context.plugins),f=G.makeIdent(this.scope??null,\"pkg\");return!hi.getAuthConfiguration(n,{configuration:c,ident:f}).get(\"npmAuthToken\")};return(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await aPt(),n.reportInfo(0,\"Successfully logged out from everything\")),this.scope){await qxe(\"npmScopes\",this.scope),await s()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,\"Scope authentication settings removed, but some other ones settings still apply to it\");return}let c=await kL({configuration:r,cwd:this.context.cwd,publish:this.publish});await qxe(\"npmRegistries\",c),await s()?n.reportInfo(0,`Successfully logged out from ${c}`):n.reportWarning(0,\"Registry authentication settings removed, but some other ones settings still apply to it\")})).exitCode()}};function oPt(t,e){let r=t[e];if(!je.isIndexableObject(r))return!1;let s=new Set(Object.keys(r));if([...x1].every(n=>!s.has(n)))return!1;for(let n of x1)s.delete(n);if(s.size===0)return t[e]=void 0,!0;let a={...r};for(let n of x1)delete a[n];return t[e]=a,!0}async function aPt(){let t=e=>{let r=!1,s=je.isIndexableObject(e)?{...e}:{};s.npmAuthToken&&(delete s.npmAuthToken,r=!0);for(let a of Object.keys(s))oPt(s,a)&&(r=!0);if(Object.keys(s).length!==0)return r?s:e};return await ze.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function qxe(t,e){return await ze.updateHomeConfiguration({[t]:r=>{let s=je.isIndexableObject(r)?r:{};if(!Object.hasOwn(s,e))return r;let a=s[e],n=je.isIndexableObject(a)?a:{},c=new Set(Object.keys(n));if([...x1].every(p=>!c.has(p)))return r;for(let p of x1)c.delete(p);if(c.size===0)return Object.keys(s).length===1?void 0:{...s,[e]:void 0};let f={};for(let p of x1)f[p]=void 0;return{...s,[e]:{...n,...f}}}})}Ge();Dt();Yt();var Q1=class extends ft{constructor(){super(...arguments);this.access=ge.String(\"--access\",{description:\"The access for the published package (public or restricted)\"});this.tag=ge.String(\"--tag\",\"latest\",{description:\"The tag on the registry that the package should be attached to\"});this.tolerateRepublish=ge.Boolean(\"--tolerate-republish\",!1,{description:\"Warn and exit when republishing an already existing version of a package\"});this.otp=ge.String(\"--otp\",{description:\"The OTP token to use with the command\"});this.provenance=ge.Boolean(\"--provenance\",!1,{description:\"Generate provenance for the package. Only available in GitHub Actions and GitLab CI. Can be set globally through the `npmPublishProvenance` setting or the `YARN_NPM_CONFIG_PROVENANCE` environment variable, or per-package through the `publishConfig.provenance` field in package.json.\"});this.dryRun=ge.Boolean(\"-n,--dry-run\",!1,{description:\"Show what would be published without actually publishing\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Output the result in JSON format\"})}static{this.paths=[[\"npm\",\"publish\"]]}static{this.usage=ot.Usage({category:\"Npm-related commands\",description:\"publish the active workspace to the npm registry\",details:'\\n      This command will pack the active workspace into a fresh archive and upload it to the npm registry.\\n\\n      The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\\n\\n      Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka \"private packages\"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\\n    ',examples:[[\"Publish the active workspace\",\"yarn npm publish\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);if(a.manifest.private)throw new nt(\"Private workspaces cannot be published\");if(a.manifest.name===null||a.manifest.version===null)throw new nt(\"Workspaces must have valid names and versions to be published on an external registry\");await s.restoreInstallState();let n=a.manifest.name,c=a.manifest.version,f=hi.getPublishRegistry(a.manifest,{configuration:r});return(await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async h=>{if(this.tolerateRepublish)try{let E=await an.get(an.getIdentUrl(n),{configuration:r,registry:f,ident:n,jsonResponse:!0});if(!Object.hasOwn(E,\"versions\"))throw new jt(15,'Registry returned invalid data for - missing \"versions\" field');if(Object.hasOwn(E.versions,c)){let C=`Registry already knows about version ${c}; skipping.`;h.reportWarning(0,C),h.reportJson({name:n.name,version:c,registry:f,warning:C,skipped:!0});return}}catch(E){if(E.originalError?.response?.statusCode!==404)throw E}await In.maybeExecuteWorkspaceLifecycleScript(a,\"prepublish\",{report:h}),await yA.prepareForPack(a,{report:h},async()=>{let E=await yA.genPackList(a);for(let W of E)h.reportInfo(null,fe.fromPortablePath(W)),h.reportJson({file:fe.fromPortablePath(W)});let C=await yA.genPackStream(a,E),S=await je.bufferStream(C),b=await v1.getGitHead(a.cwd),I=!1,T=\"\";a.manifest.publishConfig&&\"provenance\"in a.manifest.publishConfig?(I=!!a.manifest.publishConfig.provenance,T=I?\"Generating provenance statement because `publishConfig.provenance` field is set.\":\"Skipping provenance statement because `publishConfig.provenance` field is set to false.\"):this.provenance?(I=!0,T=\"Generating provenance statement because `--provenance` flag is set.\"):r.get(\"npmPublishProvenance\")&&(I=!0,T=\"Generating provenance statement because `npmPublishProvenance` setting is set.\"),T&&(h.reportInfo(null,T),h.reportJson({type:\"provenance\",enabled:I,provenanceMessage:T}));let N=await v1.makePublishBody(a,S,{access:this.access,tag:this.tag,registry:f,gitHead:b,provenance:I});this.dryRun||await an.put(an.getIdentUrl(n),N,{configuration:r,registry:f,ident:n,otp:this.otp,jsonResponse:!0,allowOidc:!!(process.env.CI&&(process.env.GITHUB_ACTIONS||process.env.GITLAB))});let U=this.dryRun?`[DRY RUN] Package would be published to ${f} with tag ${this.tag}`:\"Package archive published\";h.reportInfo(0,U),h.reportJson({name:n.name,version:c,registry:f,tag:this.tag||\"latest\",files:E.map(W=>fe.fromPortablePath(W)),access:this.access||null,dryRun:this.dryRun,published:!this.dryRun,message:U,provenance:!!I})})})).exitCode()}};Ge();Yt();var Wxe=ut(Ai());Ge();Dt();Yt();var R1=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.package=ge.String({required:!1})}static{this.paths=[[\"npm\",\"tag\",\"list\"]]}static{this.usage=ot.Usage({category:\"Npm-related commands\",description:\"list all dist-tags of a package\",details:`\n      This command will list all tags of a package from the npm registry.\n\n      If the package is not specified, Yarn will default to the current workspace.\n    `,examples:[[\"List all tags of package `my-pkg`\",\"yarn npm tag list my-pkg\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n;if(typeof this.package<\"u\")n=G.parseIdent(this.package);else{if(!a)throw new ar(s.cwd,this.context.cwd);if(!a.manifest.name)throw new nt(`Missing 'name' field in ${fe.fromPortablePath(J.join(a.cwd,Er.manifest))}`);n=a.manifest.name}let c=await zP(n,r),p={children:je.sortMap(Object.entries(c),([h])=>h).map(([h,E])=>({value:he.tuple(he.Type.RESOLUTION,{descriptor:G.makeDescriptor(n,h),locator:G.makeLocator(n,E)})}))};return xs.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function zP(t,e){let r=`/-/package${an.getIdentUrl(t)}/dist-tags`;return an.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:an.customPackageError})}var T1=class extends ft{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[[\"npm\",\"tag\",\"add\"]]}static{this.usage=ot.Usage({category:\"Npm-related commands\",description:\"add a tag for a specific version of a package\",details:`\n      This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten.\n    `,examples:[[\"Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`\",\"yarn npm tag add my-pkg@2.3.4-beta.4 beta\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=G.parseDescriptor(this.package,!0),c=n.range;if(!Wxe.default.valid(c))throw new nt(`The range ${he.pretty(r,n.range,he.Type.RANGE)} must be a valid semver version`);let f=hi.getPublishRegistry(a.manifest,{configuration:r}),p=he.pretty(r,n,he.Type.IDENT),h=he.pretty(r,c,he.Type.RANGE),E=he.pretty(r,this.tag,he.Type.CODE);return(await Ot.start({configuration:r,stdout:this.context.stdout},async S=>{let b=await zP(n,r);Object.hasOwn(b,this.tag)&&b[this.tag]===c&&S.reportWarning(0,`Tag ${E} is already set to version ${h}`);let I=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.put(I,c,{configuration:r,registry:f,ident:n,jsonRequest:!0,jsonResponse:!0}),S.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Ge();Yt();var F1=class extends ft{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[[\"npm\",\"tag\",\"remove\"]]}static{this.usage=ot.Usage({category:\"Npm-related commands\",description:\"remove a tag from a package\",details:`\n      This command will remove a tag from a package from the npm registry.\n    `,examples:[[\"Remove the `beta` tag from package `my-pkg`\",\"yarn npm tag remove my-pkg beta\"]]})}async execute(){if(this.tag===\"latest\")throw new nt(\"The 'latest' tag cannot be removed.\");let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=G.parseIdent(this.package),c=hi.getPublishRegistry(a.manifest,{configuration:r}),f=he.pretty(r,this.tag,he.Type.CODE),p=he.pretty(r,n,he.Type.IDENT),h=await zP(n,r);if(!Object.hasOwn(h,this.tag))throw new nt(`${f} is not a tag of package ${p}`);return(await Ot.start({configuration:r,stdout:this.context.stdout},async C=>{let S=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.del(S,{configuration:r,registry:c,ident:n,jsonResponse:!0}),C.reportInfo(0,`Tag ${f} removed from package ${p}`)})).exitCode()}};Ge();Ge();Yt();var N1=class extends ft{constructor(){super(...arguments);this.scope=ge.String(\"-s,--scope\",{description:\"Print username for the registry configured for a given scope\"});this.publish=ge.Boolean(\"--publish\",!1,{description:\"Print username for the publish registry\"})}static{this.paths=[[\"npm\",\"whoami\"]]}static{this.usage=ot.Usage({category:\"Npm-related commands\",description:\"display the name of the authenticated user\",details:\"\\n      Print the username associated with the current authentication settings to the standard output.\\n\\n      When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\\n\\n      When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\\n    \",examples:[[\"Print username for the default registry\",\"yarn npm whoami\"],[\"Print username for the registry on a given scope\",\"yarn npm whoami --scope company\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s;return this.scope&&this.publish?s=hi.getScopeRegistry(this.scope,{configuration:r,type:hi.RegistryType.PUBLISH_REGISTRY}):this.scope?s=hi.getScopeRegistry(this.scope,{configuration:r}):this.publish?s=hi.getPublishRegistry((await eC(r,this.context.cwd)).manifest,{configuration:r}):s=hi.getDefaultRegistry({configuration:r}),(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{let c;try{c=await an.get(\"/-/whoami\",{configuration:r,registry:s,authType:an.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?G.makeIdent(this.scope,\"\"):void 0})}catch(f){if(f.response?.statusCode===401||f.response?.statusCode===403){n.reportError(41,\"Authentication failed - your credentials may have expired\");return}else throw f}n.reportInfo(0,c.username)})).exitCode()}};var lPt={configuration:{npmPublishAccess:{description:\"Default access of the published packages\",type:\"STRING\",default:null},npmPublishProvenance:{description:\"Whether to generate provenance for the published packages\",type:\"BOOLEAN\",default:!1},npmAuditExcludePackages:{description:\"Array of glob patterns of packages to exclude from npm audit\",type:\"STRING\",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:\"Array of glob patterns of advisory IDs to exclude from npm audit\",type:\"STRING\",default:[],isArray:!0}},commands:[D1,P1,b1,k1,Q1,T1,R1,F1,N1]},cPt=lPt;var GK={};Vt(GK,{PatchCommand:()=>H1,PatchCommitCommand:()=>_1,PatchFetcher:()=>tb,PatchResolver:()=>rb,default:()=>PPt,patchUtils:()=>gy});Ge();Ge();Dt();eA();var gy={};Vt(gy,{applyPatchFile:()=>RL,diffFolders:()=>HK,ensureUnpatchedDescriptor:()=>LK,ensureUnpatchedLocator:()=>FL,extractPackageToDisk:()=>_K,extractPatchFlags:()=>Xxe,isParentRequired:()=>UK,isPatchDescriptor:()=>TL,isPatchLocator:()=>Tg,loadPatchFiles:()=>eb,makeDescriptor:()=>NL,makeLocator:()=>MK,makePatchHash:()=>jK,parseDescriptor:()=>XP,parseLocator:()=>$P,parsePatchFile:()=>ZP,unpatchDescriptor:()=>vPt,unpatchLocator:()=>SPt});Ge();Dt();Ge();Dt();var uPt=/^@@ -(\\d+)(,(\\d+))? \\+(\\d+)(,(\\d+))? @@.*/;function O1(t){return J.relative(vt.root,J.resolve(vt.root,fe.toPortablePath(t)))}function fPt(t){let e=t.trim().match(uPt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var APt=420,pPt=493;var Yxe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),hPt=t=>({header:fPt(t),parts:[]}),gPt={\"@\":\"header\",\"-\":\"deletion\",\"+\":\"insertion\",\" \":\"context\",\"\\\\\":\"pragma\",undefined:\"context\"};function dPt(t){let e=[],r=Yxe(),s=\"parsing header\",a=null,n=null;function c(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function f(){c(),e.push(r),r=Yxe()}for(let p=0;p<t.length;p++){let h=t[p];if(s===\"parsing header\")if(h.startsWith(\"@@\"))s=\"parsing hunks\",r.hunks=[],p-=1;else if(h.startsWith(\"diff --git \")){r&&r.diffLineFromPath&&f();let E=h.match(/^diff --git a\\/(.*?) b\\/(.*?)\\s*$/);if(!E)throw new Error(`Bad diff line: ${h}`);r.diffLineFromPath=E[1],r.diffLineToPath=E[2]}else if(h.startsWith(\"old mode \"))r.oldMode=h.slice(9).trim();else if(h.startsWith(\"new mode \"))r.newMode=h.slice(9).trim();else if(h.startsWith(\"deleted file mode \"))r.deletedFileMode=h.slice(18).trim();else if(h.startsWith(\"new file mode \"))r.newFileMode=h.slice(14).trim();else if(h.startsWith(\"rename from \"))r.renameFrom=h.slice(12).trim();else if(h.startsWith(\"rename to \"))r.renameTo=h.slice(10).trim();else if(h.startsWith(\"index \")){let E=h.match(/(\\w+)\\.\\.(\\w+)/);if(!E)continue;r.beforeHash=E[1],r.afterHash=E[2]}else h.startsWith(\"semver exclusivity \")?r.semverExclusivity=h.slice(19).trim():h.startsWith(\"--- \")?r.fromPath=h.slice(6).trim():h.startsWith(\"+++ \")&&(r.toPath=h.slice(6).trim());else{let E=gPt[h[0]]||null;switch(E){case\"header\":c(),a=hPt(h);break;case null:s=\"parsing header\",f(),p-=1;break;case\"pragma\":{if(!h.startsWith(\"\\\\ No newline at end of file\"))throw new Error(`Unrecognized pragma in patch file: ${h}`);if(!n)throw new Error(\"Bad parser state: No newline at EOF pragma encountered without context\");n.noNewlineAtEndOfFile=!0}break;case\"context\":case\"deletion\":case\"insertion\":{if(!a)throw new Error(\"Bad parser state: Hunk lines encountered before hunk header\");n&&n.type!==E&&(a.parts.push(n),n=null),n||(n={type:E,lines:[],noNewlineAtEndOfFile:!1}),n.lines.push(h.slice(1))}break;default:je.assertNever(E);break}}}f();for(let{hunks:p}of e)if(p)for(let h of p)yPt(h);return e}function mPt(t){let e=[];for(let r of t){let{semverExclusivity:s,diffLineFromPath:a,diffLineToPath:n,oldMode:c,newMode:f,deletedFileMode:p,newFileMode:h,renameFrom:E,renameTo:C,beforeHash:S,afterHash:b,fromPath:I,toPath:T,hunks:N}=r,U=E?\"rename\":p?\"file deletion\":h?\"file creation\":N&&N.length>0?\"patch\":\"mode change\",W=null;switch(U){case\"rename\":{if(!E||!C)throw new Error(\"Bad parser state: rename from & to not given\");e.push({type:\"rename\",semverExclusivity:s,fromPath:O1(E),toPath:O1(C)}),W=C}break;case\"file deletion\":{let ee=a||I;if(!ee)throw new Error(\"Bad parse state: no path given for file deletion\");e.push({type:\"file deletion\",semverExclusivity:s,hunk:N&&N[0]||null,path:O1(ee),mode:QL(p),hash:S})}break;case\"file creation\":{let ee=n||T;if(!ee)throw new Error(\"Bad parse state: no path given for file creation\");e.push({type:\"file creation\",semverExclusivity:s,hunk:N&&N[0]||null,path:O1(ee),mode:QL(h),hash:b})}break;case\"patch\":case\"mode change\":W=T||n;break;default:je.assertNever(U);break}W&&c&&f&&c!==f&&e.push({type:\"mode change\",semverExclusivity:s,path:O1(W),oldMode:QL(c),newMode:QL(f)}),W&&N&&N.length&&e.push({type:\"patch\",semverExclusivity:s,path:O1(W),hunks:N,beforeHash:S,afterHash:b})}if(e.length===0)throw new Error(\"Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string\");return e}function QL(t){let e=parseInt(t,8)&511;if(e!==APt&&e!==pPt)throw new Error(`Unexpected file mode string: ${t}`);return e}function ZP(t){let e=t.split(/\\n/g);return e[e.length-1]===\"\"&&e.pop(),mPt(dPt(e))}function yPt(t){let e=0,r=0;for(let{type:s,lines:a}of t.parts)switch(s){case\"context\":r+=a.length,e+=a.length;break;case\"deletion\":e+=a.length;break;case\"insertion\":r+=a.length;break;default:je.assertNever(s);break}if(e!==t.header.original.length||r!==t.header.patched.length){let s=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${s(t.header.original.length)} ${s(t.header.patched.length)} @@, got @@ ${s(e)} ${s(r)} @@)`)}}Ge();Dt();var L1=class extends Error{constructor(r,s){super(`Cannot apply hunk #${r+1}`);this.hunk=s}};async function M1(t,e,r){let s=await t.lstatPromise(e),a=await r();typeof a<\"u\"&&(e=a),await t.lutimesPromise(e,s.atime,s.mtime)}async function RL(t,{baseFs:e=new Yn,dryRun:r=!1,version:s=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&s!==null&&!Fr.satisfiesWithPrereleases(s,a.semverExclusivity)))switch(a.type){case\"file deletion\":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await M1(e,J.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case\"rename\":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await M1(e,J.dirname(a.fromPath),async()=>{await M1(e,J.dirname(a.toPath),async()=>{await M1(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case\"file creation\":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(`\n`)+(a.hunk.parts[0].noNewlineAtEndOfFile?\"\":`\n`):\"\";await e.mkdirpPromise(J.dirname(a.path),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,fi.SAFE_TIME,fi.SAFE_TIME)}break;case\"patch\":await M1(e,a.path,async()=>{await CPt(a,{baseFs:e,dryRun:r})});break;case\"mode change\":{let c=(await e.statPromise(a.path)).mode;if(Vxe(a.newMode)!==Vxe(c))continue;await M1(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:je.assertNever(a);break}}function Vxe(t){return(t&64)>0}function Jxe(t){return t.replace(/\\s+$/,\"\")}function IPt(t,e){return Jxe(t)===Jxe(e)}async function CPt({hunks:t,path:e},{baseFs:r,dryRun:s=!1}){let a=await r.statSync(e).mode,c=(await r.readFileSync(e,\"utf8\")).split(/\\n/),f=[],p=0,h=0;for(let C of t){let S=Math.max(h,C.header.patched.start+p),b=Math.max(0,S-h),I=Math.max(0,c.length-S-C.header.original.length),T=Math.max(b,I),N=0,U=0,W=null;for(;N<=T;){if(N<=b&&(U=S-N,W=Kxe(C,c,U),W!==null)){N=-N;break}if(N<=I&&(U=S+N,W=Kxe(C,c,U),W!==null))break;N+=1}if(W===null)throw new L1(t.indexOf(C),C);f.push(W),p+=N,h=U+C.header.original.length}if(s)return;let E=0;for(let C of f)for(let S of C)switch(S.type){case\"splice\":{let b=S.index+E;c.splice(b,S.numToDelete,...S.linesToInsert),E+=S.linesToInsert.length-S.numToDelete}break;case\"pop\":c.pop();break;case\"push\":c.push(S.line);break;default:je.assertNever(S);break}await r.writeFilePromise(e,c.join(`\n`),{mode:a})}function Kxe(t,e,r){let s=[];for(let a of t.parts)switch(a.type){case\"context\":case\"deletion\":{for(let n of a.lines){let c=e[r];if(c==null||!IPt(c,n))return null;r+=1}a.type===\"deletion\"&&(s.push({type:\"splice\",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&s.push({type:\"push\",line:\"\"}))}break;case\"insertion\":s.push({type:\"splice\",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&s.push({type:\"pop\"});break;default:je.assertNever(a.type);break}return s}var BPt=/^builtin<([^>]+)>$/;function U1(t,e){let{protocol:r,source:s,selector:a,params:n}=G.parseRange(t);if(r!==\"patch:\")throw new Error(\"Invalid patch range\");if(s===null)throw new Error(\"Patch locators must explicitly define their source\");let c=a?a.split(/&/).map(E=>fe.toPortablePath(E)):[],f=n&&typeof n.locator==\"string\"?G.parseLocator(n.locator):null,p=n&&typeof n.version==\"string\"?n.version:null,h=e(s);return{parentLocator:f,sourceItem:h,patchPaths:c,sourceVersion:p}}function TL(t){return t.range.startsWith(\"patch:\")}function Tg(t){return t.reference.startsWith(\"patch:\")}function XP(t){let{sourceItem:e,...r}=U1(t.range,G.parseDescriptor);return{...r,sourceDescriptor:e}}function $P(t){let{sourceItem:e,...r}=U1(t.reference,G.parseLocator);return{...r,sourceLocator:e}}function vPt(t){let{sourceItem:e}=U1(t.range,G.parseDescriptor);return e}function SPt(t){let{sourceItem:e}=U1(t.reference,G.parseLocator);return e}function LK(t){if(!TL(t))return t;let{sourceItem:e}=U1(t.range,G.parseDescriptor);return e}function FL(t){if(!Tg(t))return t;let{sourceItem:e}=U1(t.reference,G.parseLocator);return e}function zxe({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:s,patchHash:a},n){let c=t!==null?{locator:G.stringifyLocator(t)}:{},f=typeof s<\"u\"?{version:s}:{},p=typeof a<\"u\"?{hash:a}:{};return G.makeRange({protocol:\"patch:\",source:n(e),selector:r.join(\"&\"),params:{...f,...p,...c}})}function NL(t,{parentLocator:e,sourceDescriptor:r,patchPaths:s}){return G.makeDescriptor(t,zxe({parentLocator:e,sourceItem:r,patchPaths:s},G.stringifyDescriptor))}function MK(t,{parentLocator:e,sourcePackage:r,patchPaths:s,patchHash:a}){return G.makeLocator(t,zxe({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:s,patchHash:a},G.stringifyLocator))}function Zxe({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:s},a){let n=a.lastIndexOf(\"!\");n!==-1&&(a=a.slice(n+1));let c=a.match(BPt);return c!==null?s(c[1]):a.startsWith(\"~/\")?r(a.slice(2)):J.isAbsolute(a)?t(a):e(a)}function Xxe(t){let e=t.lastIndexOf(\"!\");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has(\"optional\")}}function UK(t){return Zxe({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function eb(t,e,r){let s=t!==null?await r.fetcher.fetch(t,r):null,a=s&&s.localPath?{packageFs:new Sn(vt.root),prefixPath:J.relative(vt.root,s.localPath)}:s;s&&s!==a&&s.releaseFs&&s.releaseFs();let n=await je.releaseAfterUseAsync(async()=>await Promise.all(e.map(async c=>{let f=Xxe(c),p=await Zxe({onAbsolute:async h=>await ce.readFilePromise(h,\"utf8\"),onRelative:async h=>{if(a===null)throw new Error(\"Assertion failed: The parent locator should have been fetched\");return await a.packageFs.readFilePromise(J.join(a.prefixPath,h),\"utf8\")},onProject:async h=>await ce.readFilePromise(J.join(r.project.cwd,h),\"utf8\"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},c);return{...f,source:p}})));for(let c of n)typeof c.source==\"string\"&&(c.source=c.source.replace(/\\r\\n?/g,`\n`));return n}async function _K(t,{cache:e,project:r}){let s=r.storedPackages.get(t.locatorHash);if(typeof s>\"u\")throw new Error(\"Assertion failed: Expected the package to be registered\");let a=FL(t),n=r.storedChecksums,c=new ki,f=await ce.mktempPromise(),p=J.join(f,\"source\"),h=J.join(f,\"user\"),E=J.join(f,\".yarn-patch.json\"),C=r.configuration.makeFetcher(),S=[];try{let b,I;if(t.locatorHash===a.locatorHash){let T=await C.fetch(t,{cache:e,project:r,fetcher:C,checksums:n,report:c});S.push(()=>T.releaseFs?.()),b=T,I=T}else b=await C.fetch(t,{cache:e,project:r,fetcher:C,checksums:n,report:c}),S.push(()=>b.releaseFs?.()),I=await C.fetch(t,{cache:e,project:r,fetcher:C,checksums:n,report:c}),S.push(()=>I.releaseFs?.());await Promise.all([ce.copyPromise(p,b.prefixPath,{baseFs:b.packageFs}),ce.copyPromise(h,I.prefixPath,{baseFs:I.packageFs}),ce.writeJsonPromise(E,{locator:G.stringifyLocator(t),version:s.version})])}finally{for(let b of S)b()}return ce.detachTemp(f),h}async function HK(t,e){let r=fe.fromPortablePath(t).replace(/\\\\/g,\"/\"),s=fe.fromPortablePath(e).replace(/\\\\/g,\"/\"),{stdout:a,stderr:n}=await qr.execvp(\"git\",[\"-c\",\"core.safecrlf=false\",\"diff\",\"--src-prefix=a/\",\"--dst-prefix=b/\",\"--ignore-cr-at-eol\",\"--full-index\",\"--no-index\",\"--no-renames\",\"--text\",r,s],{cwd:fe.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:\"1\",HOME:\"\",XDG_CONFIG_HOME:\"\",USERPROFILE:\"\"}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH.\nThe following error was reported by 'git':\n${n}`);let c=r.startsWith(\"/\")?f=>f.slice(1):f=>f;return a.replace(new RegExp(`(a|b)(${je.escapeRegExp(`/${c(r)}/`)})`,\"g\"),\"$1/\").replace(new RegExp(`(a|b)${je.escapeRegExp(`/${c(s)}/`)}`,\"g\"),\"$1/\").replace(new RegExp(je.escapeRegExp(`${r}/`),\"g\"),\"\").replace(new RegExp(je.escapeRegExp(`${s}/`),\"g\"),\"\")}function jK(t,e){let r=[];for(let{source:s}of t){if(s===null)continue;let a=ZP(s);for(let n of a){let{semverExclusivity:c,...f}=n;c!==null&&e!==null&&!Fr.satisfiesWithPrereleases(e,c)||r.push(JSON.stringify(f))}}return Nn.makeHash(`${3}`,...r).slice(0,6)}Ge();function $xe(t,{configuration:e,report:r}){for(let s of t.parts)for(let a of s.lines)switch(s.type){case\"context\":r.reportInfo(null,`  ${he.pretty(e,a,\"grey\")}`);break;case\"deletion\":r.reportError(28,`- ${he.pretty(e,a,he.Type.REMOVED)}`);break;case\"insertion\":r.reportError(28,`+ ${he.pretty(e,a,he.Type.ADDED)}`);break;default:je.assertNever(s.type)}}var tb=class{supports(e,r){return!!Tg(e)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:c}}async patchPackage(e,r){let{parentLocator:s,sourceLocator:a,sourceVersion:n,patchPaths:c}=$P(e),f=await eb(s,c,r),p=await ce.mktempPromise(),h=J.join(p,\"current.zip\"),E=await r.fetcher.fetch(a,r),C=G.getIdentVendorPath(e),S=new As(h,{create:!0,level:r.project.configuration.get(\"compressionLevel\")});await je.releaseAfterUseAsync(async()=>{await S.copyPromise(C,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),S.saveAndClose();for(let{source:b,optional:I}of f){if(b===null)continue;let T=new As(h,{level:r.project.configuration.get(\"compressionLevel\")}),N=new Sn(J.resolve(vt.root,C),{baseFs:T});try{await RL(ZP(b),{baseFs:N,version:n})}catch(U){if(!(U instanceof L1))throw U;let W=r.project.configuration.get(\"enableInlineHunks\"),ee=!W&&!I?\" (set enableInlineHunks for details)\":\"\",ie=`${G.prettyLocator(r.project.configuration,e)}: ${U.message}${ee}`,ue=le=>{W&&$xe(U.hunk,{configuration:r.project.configuration,report:le})};if(T.discardAndClose(),I){r.report.reportWarningOnce(66,ie,{reportExtra:ue});continue}else throw new jt(66,ie,ue)}T.saveAndClose()}return new As(h,{level:r.project.configuration.get(\"compressionLevel\")})}};Ge();var rb=class{supportsDescriptor(e,r){return!!TL(e)}supportsLocator(e,r){return!!Tg(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){let{patchPaths:a}=XP(e);return a.every(n=>!UK(n))?e:G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:s}=XP(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(s)}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let{parentLocator:a,patchPaths:n}=XP(e),c=await eb(a,n,s.fetchOptions),f=r.sourceDescriptor;if(typeof f>\"u\")throw new Error(\"Assertion failed: The dependency should have been resolved\");let p=jK(c,f.version);return[MK(e,{parentLocator:a,sourcePackage:f,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:s}=$P(e);return{...await r.resolver.resolve(s,r),...e}}};Ge();Dt();Yt();var _1=class extends ft{constructor(){super(...arguments);this.save=ge.Boolean(\"-s,--save\",!1,{description:\"Add the patch to your resolution entries\"});this.patchFolder=ge.String()}static{this.paths=[[\"patch-commit\"]]}static{this.usage=ot.Usage({description:\"generate a patch out of a directory\",details:\"\\n      By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\\n\\n      With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\\n\\n      Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\\n    \"})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=J.resolve(this.context.cwd,fe.toPortablePath(this.patchFolder)),c=J.join(n,\"../source\"),f=J.join(n,\"../.yarn-patch.json\");if(!ce.existsSync(c))throw new nt(\"The argument folder didn't get created by 'yarn patch'\");let p=await HK(c,n),h=await ce.readJsonPromise(f),E=G.parseLocator(h.locator,!0);if(!s.storedPackages.has(E.locatorHash))throw new nt(\"No package found in the project for the given locator\");if(!this.save){this.context.stdout.write(p);return}let C=r.get(\"patchFolder\"),S=J.join(C,`${G.slugifyLocator(E)}.patch`);await ce.mkdirPromise(C,{recursive:!0}),await ce.writeFilePromise(S,p);let b=[],I=new Map;for(let T of s.storedPackages.values()){if(G.isVirtualLocator(T))continue;let N=T.dependencies.get(E.identHash);if(!N)continue;let U=G.ensureDevirtualizedDescriptor(N),W=LK(U),ee=s.storedResolutions.get(W.descriptorHash);if(!ee)throw new Error(\"Assertion failed: Expected the resolution to have been registered\");if(!s.storedPackages.get(ee))throw new Error(\"Assertion failed: Expected the package to have been registered\");let ue=s.tryWorkspaceByLocator(T);if(ue)b.push(ue);else{let le=s.originalPackages.get(T.locatorHash);if(!le)throw new Error(\"Assertion failed: Expected the original package to have been registered\");let me=le.dependencies.get(N.identHash);if(!me)throw new Error(\"Assertion failed: Expected the original dependency to have been registered\");I.set(me.descriptorHash,me)}}for(let T of b)for(let N of Ut.hardDependencies){let U=T.manifest[N].get(E.identHash);if(!U)continue;let W=NL(U,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[J.join(Er.home,J.relative(s.cwd,S))]});T.manifest[N].set(U.identHash,W)}for(let T of I.values()){let N=NL(T,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[J.join(Er.home,J.relative(s.cwd,S))]});s.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:G.stringifyIdent(N),description:T.range}},reference:N.range})}await s.persist()}};Ge();Dt();Yt();var H1=class extends ft{constructor(){super(...arguments);this.update=ge.Boolean(\"-u,--update\",!1,{description:\"Reapply local patches that already apply to this packages\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.package=ge.String()}static{this.paths=[[\"patch\"]]}static{this.usage=ot.Usage({description:\"prepare a package for patching\",details:\"\\n      This command will cause a package to be extracted in a temporary directory intended to be editable at will.\\n\\n      Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\\n\\n      Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\\n    \"})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let c=G.parseLocator(this.package);if(c.reference===\"unknown\"){let f=je.mapAndFilter([...s.storedPackages.values()],p=>p.identHash!==c.identHash?je.mapAndFilter.skip:G.isVirtualLocator(p)?je.mapAndFilter.skip:Tg(p)!==this.update?je.mapAndFilter.skip:p);if(f.length===0)throw new nt(\"No package found in the project for the given locator\");if(f.length>1)throw new nt(`Multiple candidate packages found; explicitly choose one of them (use \\`yarn why <package>\\` to get more information as to who depends on them):\n${f.map(p=>`\n- ${G.prettyLocator(r,p)}`).join(\"\")}`);c=f[0]}if(!s.storedPackages.has(c.locatorHash))throw new nt(\"No package found in the project for the given locator\");await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async f=>{let p=FL(c),h=await _K(c,{cache:n,project:s});f.reportJson({locator:G.stringifyLocator(p),path:fe.fromPortablePath(h)});let E=this.update?\" along with its current modifications\":\"\";f.reportInfo(0,`Package ${G.prettyLocator(r,p)} got extracted with success${E}!`),f.reportInfo(0,`You can now edit the following folder: ${he.pretty(r,fe.fromPortablePath(h),\"magenta\")}`),f.reportInfo(0,`Once you are done run ${he.pretty(r,`yarn patch-commit -s ${process.platform===\"win32\"?'\"':\"\"}${fe.fromPortablePath(h)}${process.platform===\"win32\"?'\"':\"\"}`,\"cyan\")} and Yarn will store a patchfile based on your changes.`)})}};var DPt={configuration:{enableInlineHunks:{description:\"If true, the installs will print unmatched patch hunks\",type:\"BOOLEAN\",default:!1},patchFolder:{description:\"Folder where the patch files must be written\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/patches\"}},commands:[_1,H1],fetchers:[tb],resolvers:[rb]},PPt=DPt;var YK={};Vt(YK,{PnpmLinker:()=>nb,default:()=>TPt});Ge();Dt();Yt();var nb=class{getCustomDataKey(){return JSON.stringify({name:\"PnpmLinker\",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error(\"Assertion failed: Expected the pnpm linker to be enabled\");let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new nt(`The project in ${he.pretty(r.project.configuration,`${r.project.cwd}/package.json`,he.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>\"u\")throw new nt(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new nt(`The project in ${he.pretty(r.project.configuration,`${r.project.cwd}/package.json`,he.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\\/node_modules\\/(@[^/]*\\/)?[^/]+)(\\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let c=e,f=e;do{f=c,c=J.dirname(f);let p=a.locatorByPath.get(f);if(p)return p}while(c!==f);return null}makeInstaller(e){return new qK(e)}isEnabled(e){return e.project.configuration.get(\"nodeLinker\")===\"pnpm\"}},qK=class{constructor(e){this.opts=e;this.asyncActions=new je.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=$b(ce,{indexPath:J.join(e.project.configuration.get(\"globalFolder\"),\"index\")})}attachCustomData(e){}async installPackage(e,r,s){switch(e.linkType){case\"SOFT\":return this.installPackageSoft(e,r,s);case\"HARD\":return this.installPackageHard(e,r,s)}throw new Error(\"Assertion failed: Unsupported package link type\")}async installPackageSoft(e,r,s){let a=J.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?J.join(a,Er.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,s){let a=xPt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,G.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),s.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await ce.mkdirPromise(n,{recursive:!0}),await ce.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:\"HardlinkFromIndex\",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let f=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e,p={manifest:await Ut.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Ut,misc:{hasBindingGyp:gA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(f,e.version),E=gA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get(\"nodeLinker\")!==\"pnpm\"||!eke(e,{project:this.opts.project}))return;let s=this.customData.pathsByLocator.get(e.locatorHash);if(typeof s>\"u\")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(e)})`);let{dependenciesLocation:a}=s;a&&this.asyncActions.reduce(e.locatorHash,async n=>{await ce.mkdirPromise(a,{recursive:!0});let c=await kPt(a),f=new Map(c),p=[n],h=(C,S)=>{let b=S;eke(S,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,\"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies\"),b=G.devirtualizeLocator(S));let I=this.customData.pathsByLocator.get(b.locatorHash);if(typeof I>\"u\")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(S)})`);let T=G.stringifyIdent(C),N=J.join(a,T),U=J.relative(J.dirname(N),I.packageLocation),W=f.get(T);f.delete(T),p.push(Promise.resolve().then(async()=>{if(W){if(W.isSymbolicLink()&&await ce.readlinkPromise(N)===U)return;await ce.removePromise(N)}await ce.mkdirpPromise(J.dirname(N)),process.platform==\"win32\"&&this.opts.project.configuration.get(\"winLinkType\")===\"junctions\"?await ce.symlinkPromise(I.packageLocation,N,\"junction\"):await ce.symlinkPromise(U,N)}))},E=!1;for(let[C,S]of r)C.identHash===e.identHash&&(E=!0),h(C,S);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(G.convertLocatorToDescriptor(e),e),p.push(QPt(a,f)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error(\"External dependencies haven't been implemented for the pnpm linker\")}async finalizeInstall(){let e=tke(this.opts.project);if(this.opts.project.configuration.get(\"nodeLinker\")!==\"pnpm\")await ce.removePromise(e);else{let r;try{r=new Set(await ce.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:s}of this.customData.pathsByLocator.values()){if(!s)continue;let a=J.contains(e,s);if(a===null)continue;let[n]=a.split(J.sep);r.delete(n)}await Promise.all([...r].map(async s=>{await ce.removePromise(J.join(e,s))}))}return await this.asyncActions.wait(),await WK(e),this.opts.project.configuration.get(\"nodeLinker\")!==\"node-modules\"&&await WK(bPt(this.opts.project)),{customData:this.customData}}};function bPt(t){return J.join(t.cwd,Er.nodeModules)}function tke(t){return t.configuration.get(\"pnpmStoreFolder\")}function xPt(t,{project:e}){let r=G.slugifyLocator(t),s=tke(e),a=J.join(s,r,\"package\"),n=J.join(s,r,Er.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function eke(t,{project:e}){return!G.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function kPt(t){let e=new Map,r=[];try{r=await ce.readdirPromise(t,{withFileTypes:!0})}catch(s){if(s.code!==\"ENOENT\")throw s}try{for(let s of r)if(!s.name.startsWith(\".\"))if(s.name.startsWith(\"@\")){let a=await ce.readdirPromise(J.join(t,s.name),{withFileTypes:!0});if(a.length===0)e.set(s.name,s);else for(let n of a)e.set(`${s.name}/${n.name}`,n)}else e.set(s.name,s)}catch(s){if(s.code!==\"ENOENT\")throw s}return e}async function QPt(t,e){let r=[],s=new Set;for(let a of e.keys()){r.push(ce.removePromise(J.join(t,a)));let n=G.tryParseIdent(a)?.scope;n&&s.add(`@${n}`)}return Promise.all(r).then(()=>Promise.all([...s].map(a=>WK(J.join(t,a)))))}async function WK(t){try{await ce.rmdirPromise(t)}catch(e){if(e.code!==\"ENOENT\"&&e.code!==\"ENOTEMPTY\"&&e.code!==\"EBUSY\")throw e}}var RPt={configuration:{pnpmStoreFolder:{description:\"By default, the store is stored in the 'node_modules/.store' of the project. Sometimes in CI scenario's it is convenient to store this in a different location so it can be cached and reused.\",type:\"ABSOLUTE_PATH\",default:\"./node_modules/.store\"}},linkers:[nb]},TPt=RPt;var $K={};Vt($K,{StageCommand:()=>j1,default:()=>qPt,stageUtils:()=>LL});Ge();Dt();Yt();Ge();Dt();var LL={};Vt(LL,{ActionType:()=>VK,checkConsensus:()=>OL,expandDirectory:()=>zK,findConsensus:()=>ZK,findVcsRoot:()=>JK,genCommitMessage:()=>XK,getCommitPrefix:()=>rke,isYarnFile:()=>KK});Dt();var VK=(n=>(n[n.CREATE=0]=\"CREATE\",n[n.DELETE=1]=\"DELETE\",n[n.ADD=2]=\"ADD\",n[n.REMOVE=3]=\"REMOVE\",n[n.MODIFY=4]=\"MODIFY\",n))(VK||{});async function JK(t,{marker:e}){do if(!ce.existsSync(J.join(t,e)))t=J.dirname(t);else return t;while(t!==\"/\");return null}function KK(t,{roots:e,names:r}){if(r.has(J.basename(t)))return!0;do if(!e.has(t))t=J.dirname(t);else return!0;while(t!==\"/\");return!1}function zK(t){let e=[],r=[t];for(;r.length>0;){let s=r.pop(),a=ce.readdirSync(s);for(let n of a){let c=J.resolve(s,n);ce.lstatSync(c).isDirectory()?r.push(c):e.push(c)}}return e}function OL(t,e){let r=0,s=0;for(let a of t)a!==\"wip\"&&(e.test(a)?r+=1:s+=1);return r>=s}function ZK(t){let e=OL(t,/^(\\w\\(\\w+\\):\\s*)?\\w+s/),r=OL(t,/^(\\w\\(\\w+\\):\\s*)?[A-Z]/),s=OL(t,/^\\w\\(\\w+\\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:s}}function rke(t){return t.useComponent?\"chore(yarn): \":\"\"}var FPt=new Map([[0,\"create\"],[1,\"delete\"],[2,\"add\"],[3,\"remove\"],[4,\"update\"]]);function XK(t,e){let r=rke(t),s=[],a=e.slice().sort((n,c)=>n[0]-c[0]);for(;a.length>0;){let[n,c]=a.shift(),f=FPt.get(n);t.useUpperCase&&s.length===0&&(f=`${f[0].toUpperCase()}${f.slice(1)}`),t.useThirdPerson&&(f+=\"s\");let p=[c];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=\" (and one other)\":p.length>1&&(h+=` (and ${p.length} others)`),s.push(`${f} ${h}`)}return`${r}${s.join(\", \")}`}var NPt=\"Commit generated via `yarn stage`\",OPt=11;async function nke(t){let{code:e,stdout:r}=await qr.execvp(\"git\",[\"log\",\"-1\",\"--pretty=format:%H\"],{cwd:t});return e===0?r.trim():null}async function LPt(t,e){let r=[],s=e.filter(h=>J.basename(h.path)===\"package.json\");for(let{action:h,path:E}of s){let C=J.relative(t,E);if(h===4){let S=await nke(t),{stdout:b}=await qr.execvp(\"git\",[\"show\",`${S}:${C}`],{cwd:t,strict:!0}),I=await Ut.fromText(b),T=await Ut.fromFile(E),N=new Map([...T.dependencies,...T.devDependencies]),U=new Map([...I.dependencies,...I.devDependencies]);for(let[W,ee]of U){let ie=G.stringifyIdent(ee),ue=N.get(W);ue?ue.range!==ee.range&&r.push([4,`${ie} to ${ue.range}`]):r.push([3,ie])}for(let[W,ee]of N)U.has(W)||r.push([2,G.stringifyIdent(ee)])}else if(h===0){let S=await Ut.fromFile(E);S.name?r.push([0,G.stringifyIdent(S.name)]):r.push([0,\"a package\"])}else if(h===1){let S=await nke(t),{stdout:b}=await qr.execvp(\"git\",[\"show\",`${S}:${C}`],{cwd:t,strict:!0}),I=await Ut.fromText(b);I.name?r.push([1,G.stringifyIdent(I.name)]):r.push([1,\"a package\"])}else throw new Error(\"Assertion failed: Unsupported action type\")}let{code:a,stdout:n}=await qr.execvp(\"git\",[\"log\",`-${OPt}`,\"--pretty=format:%s\"],{cwd:t}),c=a===0?n.split(/\\n/g).filter(h=>h!==\"\"):[],f=ZK(c);return XK(f,r)}var MPt={0:[\" A \",\"?? \"],4:[\" M \"],1:[\" D \"]},UPt={0:[\"A  \"],4:[\"M  \"],1:[\"D  \"]},ike={async findRoot(t){return await JK(t,{marker:\".git\"})},async filterChanges(t,e,r,s){let{stdout:a}=await qr.execvp(\"git\",[\"status\",\"-s\"],{cwd:t,strict:!0}),n=a.toString().split(/\\n/g),c=s?.staged?UPt:MPt;return[].concat(...n.map(p=>{if(p===\"\")return[];let h=p.slice(0,3),E=J.resolve(t,p.slice(3));if(!s?.staged&&h===\"?? \"&&p.endsWith(\"/\"))return zK(E).map(C=>({action:0,path:C}));{let S=[0,4,1].find(b=>c[b].includes(h));return S!==void 0?[{action:S,path:E}]:[]}})).filter(p=>KK(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await LPt(t,e)},async makeStage(t,e){let r=e.map(s=>fe.fromPortablePath(s.path));await qr.execvp(\"git\",[\"add\",\"--\",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let s=e.map(a=>fe.fromPortablePath(a.path));await qr.execvp(\"git\",[\"add\",\"-N\",\"--\",...s],{cwd:t,strict:!0}),await qr.execvp(\"git\",[\"commit\",\"-m\",`${r}\n\n${NPt}\n`,\"--\",...s],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(s=>fe.fromPortablePath(s.path));await qr.execvp(\"git\",[\"reset\",\"HEAD\",\"--\",...r],{cwd:t,strict:!0})}};var _Pt=[ike],j1=class extends ft{constructor(){super(...arguments);this.commit=ge.Boolean(\"-c,--commit\",!1,{description:\"Commit the staged files\"});this.reset=ge.Boolean(\"-r,--reset\",!1,{description:\"Remove all files from the staging area\"});this.dryRun=ge.Boolean(\"-n,--dry-run\",!1,{description:\"Print the commit message and the list of modified files without staging / committing\"});this.update=ge.Boolean(\"-u,--update\",!1,{hidden:!0})}static{this.paths=[[\"stage\"]]}static{this.usage=ot.Usage({description:\"add all yarn files to your vcs\",details:\"\\n      This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\\n\\n      Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\\n\\n      Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\\n    \",examples:[[\"Adds all modified project files to the staging area\",\"yarn stage\"],[\"Creates a new commit containing all modified project files\",\"yarn stage --commit\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Rt.find(r,this.context.cwd),{driver:a,root:n}=await HPt(s.cwd),c=[r.get(\"cacheFolder\"),r.get(\"globalFolder\"),r.get(\"virtualFolder\"),r.get(\"yarnPath\")];await r.triggerHook(C=>C.populateYarnPaths,s,C=>{c.push(C)});let f=new Set;for(let C of c)for(let S of jPt(n,C))f.add(S);let p=new Set([r.get(\"rcFilename\"),Er.lockfile,Er.manifest]),h=await a.filterChanges(n,f,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E}\n`);else for(let C of h)this.context.stdout.write(`${fe.fromPortablePath(C.path)}\n`);else if(this.reset){let C=await a.filterChanges(n,f,p,{staged:!0});C.length===0?this.context.stdout.write(\"No staged changes found!\"):await a.makeReset(n,C)}else h.length===0?this.context.stdout.write(\"No changes found!\"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};async function HPt(t){let e=null,r=null;for(let s of _Pt)if((r=await s.findRoot(t))!==null){e=s;break}if(e===null||r===null)throw new nt(\"No stage driver has been found for your current project\");return{driver:e,root:r}}function jPt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let s;try{s=ce.statSync(e)}catch{break}if(s.isSymbolicLink())e=J.resolve(J.dirname(e),ce.readlinkSync(e));else break}return r}var GPt={commands:[j1]},qPt=GPt;var ez={};Vt(ez,{default:()=>XPt});Ge();Ge();Dt();var ake=ut(Ai());Ge();var ske=ut(l9()),WPt=\"e8e1bd300d860104bb8c58453ffa1eb4\",YPt=\"OFCNCOG2CU\",oke=async(t,e)=>{let r=G.stringifyIdent(t),a=VPt(e).initIndex(\"npm-search\");try{return(await a.getObject(r,{attributesToRetrieve:[\"types\"]})).types?.ts===\"definitely-typed\"}catch{return!1}},VPt=t=>(0,ske.default)(YPt,WPt,{requester:{async send(r){try{let s=await ln.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:s.body,isTimedOut:!1,status:s.statusCode}}catch(s){return{content:s.response.body,isTimedOut:!1,status:s.response.statusCode}}}}});var lke=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,JPt=async(t,e,r,s)=>{if(r.scope===\"types\")return;let{project:a}=t,{configuration:n}=a;if(!(n.get(\"tsEnableAutoTypes\")??(ce.existsSync(J.join(t.cwd,\"tsconfig.json\"))||ce.existsSync(J.join(a.cwd,\"tsconfig.json\")))))return;let f=n.makeResolver(),p={project:a,resolver:f,report:new ki};if(!await oke(r,n))return;let E=lke(r),C=G.parseRange(r.range).selector;if(!Fr.validRange(C)){let N=n.normalizeDependency(r),U=await f.getCandidates(N,{},p);C=G.parseRange(U[0].reference).selector}let S=ake.default.coerce(C);if(S===null)return;let b=`${Zu.Modifier.CARET}${S.major}`,I=G.makeDescriptor(G.makeIdent(\"types\",E),b),T=je.mapAndFind(a.workspaces,N=>{let U=N.manifest.dependencies.get(r.identHash)?.descriptorHash,W=N.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&W!==r.descriptorHash)return je.mapAndFind.skip;let ee=[];for(let ie of Ut.allDependencies){let ue=N.manifest[ie].get(I.identHash);typeof ue>\"u\"||ee.push([ie,ue])}return ee.length===0?je.mapAndFind.skip:ee});if(typeof T<\"u\")for(let[N,U]of T)t.manifest[N].set(U.identHash,U);else{try{let N=n.normalizeDependency(I);if((await f.getCandidates(N,{},p)).length===0)return}catch{return}t.manifest[Zu.Target.DEVELOPMENT].set(I.identHash,I)}},KPt=async(t,e,r)=>{if(r.scope===\"types\")return;let{project:s}=t,{configuration:a}=s;if(!(a.get(\"tsEnableAutoTypes\")??(ce.existsSync(J.join(t.cwd,\"tsconfig.json\"))||ce.existsSync(J.join(s.cwd,\"tsconfig.json\")))))return;let c=lke(r),f=G.makeIdent(\"types\",c);for(let p of Ut.allDependencies)typeof t.manifest[p].get(f.identHash)>\"u\"||t.manifest[p].delete(f.identHash)},zPt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},ZPt={configuration:{tsEnableAutoTypes:{description:\"Whether Yarn should auto-install @types/ dependencies on 'yarn add'\",type:\"BOOLEAN\",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:JPt,afterWorkspaceDependencyRemoval:KPt,beforeWorkspacePacking:zPt}},XPt=ZPt;var sz={};Vt(sz,{VersionApplyCommand:()=>Y1,VersionCheckCommand:()=>V1,VersionCommand:()=>J1,default:()=>nbt,versionUtils:()=>W1});Ge();Ge();Yt();var W1={};Vt(W1,{Decision:()=>G1,applyPrerelease:()=>cke,applyReleases:()=>iz,applyStrategy:()=>ib,clearVersionFiles:()=>tz,getUndecidedDependentWorkspaces:()=>ob,getUndecidedWorkspaces:()=>ML,openVersionFile:()=>q1,requireMoreDecisions:()=>ebt,resolveVersionFiles:()=>sb,suggestStrategy:()=>nz,updateVersionFiles:()=>rz,validateReleaseDecision:()=>dy});Ge();Dt();wc();Yt();ql();var kA=ut(Ai()),$Pt=/^(>=|[~^]|)(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(\\.(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\\+[0-9a-zA-Z-]+(\\.[0-9a-zA-Z-]+)*)?$/,G1=(h=>(h.UNDECIDED=\"undecided\",h.DECLINE=\"decline\",h.MAJOR=\"major\",h.MINOR=\"minor\",h.PATCH=\"patch\",h.PREMAJOR=\"premajor\",h.PREMINOR=\"preminor\",h.PREPATCH=\"prepatch\",h.PRERELEASE=\"prerelease\",h))(G1||{});function dy(t){let e=kA.default.valid(t);return e||je.validateEnum(N4(G1,\"UNDECIDED\"),t)}async function sb(t,{prerelease:e=null}={}){let r=new Map,s=t.configuration.get(\"deferredVersionFolder\");if(!ce.existsSync(s))return r;let a=await ce.readdirPromise(s);for(let n of a){if(!n.endsWith(\".yml\"))continue;let c=J.join(s,n),f=await ce.readFilePromise(c,\"utf8\"),p=as(f);for(let[h,E]of Object.entries(p.releases||{})){if(E===\"decline\")continue;let C=G.parseIdent(h),S=t.tryWorkspaceByIdent(C);if(S===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${J.basename(c)} references ${h})`);if(S.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${G.prettyLocator(t.configuration,S.anchoredLocator)})`);let b=S.manifest.raw.stableVersion??S.manifest.version,I=r.get(S),T=ib(E===\"prerelease\"?S.manifest.version:b,dy(E));if(T===null)throw new Error(`Assertion failed: Expected ${b} to support being bumped via strategy ${E}`);let N=typeof I<\"u\"?kA.default.gt(T,I)?T:I:T;r.set(S,N)}}return e&&(r=new Map([...r].map(([n,c])=>[n,cke(c,{current:n.manifest.version,prerelease:e})]))),r}async function tz(t){let e=t.configuration.get(\"deferredVersionFolder\");ce.existsSync(e)&&await ce.removePromise(e)}async function rz(t,e){let r=new Set(e),s=t.configuration.get(\"deferredVersionFolder\");if(!ce.existsSync(s))return;let a=await ce.readdirPromise(s);for(let n of a){if(!n.endsWith(\".yml\"))continue;let c=J.join(s,n),f=await ce.readFilePromise(c,\"utf8\"),p=as(f),h=p?.releases;if(h){for(let E of Object.keys(h)){let C=G.parseIdent(E),S=t.tryWorkspaceByIdent(C);(S===null||r.has(S))&&delete p.releases[E]}Object.keys(p.releases).length>0?await ce.changeFilePromise(c,nl(new nl.PreserveOrdering(p))):await ce.unlinkPromise(c)}}}async function q1(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new nt(\"This command can only be run from within a Yarn project\");let s=await ka.fetchRoot(r.projectCwd),a=s!==null?await ka.fetchBase(s,{baseRefs:r.get(\"changesetBaseRefs\")}):null,n=s!==null?await ka.fetchChangedFiles(s,{base:a.hash,project:t}):[],c=r.get(\"deferredVersionFolder\"),f=n.filter(b=>J.contains(c,b)!==null);if(f.length>1)throw new nt(`Your current branch contains multiple versioning files; this isn't supported:\n- ${f.map(b=>fe.fromPortablePath(b)).join(`\n- `)}`);let p=new Set(je.mapAndFilter(n,b=>{let I=t.tryWorkspaceByFilePath(b);return I===null?je.mapAndFilter.skip:I}));if(f.length===0&&p.size===0&&!e)return null;let h=f.length===1?f[0]:J.join(c,`${Nn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=ce.existsSync(h)?await ce.readFilePromise(h,\"utf8\"):\"{}\",C=as(E),S=new Map;for(let b of C.declined||[]){let I=G.parseIdent(b),T=t.getWorkspaceByIdent(I);S.set(T,\"decline\")}for(let[b,I]of Object.entries(C.releases||{})){let T=G.parseIdent(b),N=t.getWorkspaceByIdent(T);S.set(N,dy(I))}return{project:t,root:s,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(b=>b.manifest.version!==null)),releases:S,async saveAll(){let b={},I=[],T=[];for(let N of t.workspaces){if(N.manifest.version===null)continue;let U=G.stringifyIdent(N.anchoredLocator),W=S.get(N);W===\"decline\"?I.push(U):typeof W<\"u\"?b[U]=dy(W):p.has(N)&&T.push(U)}await ce.mkdirPromise(J.dirname(h),{recursive:!0}),await ce.changeFilePromise(h,nl(new nl.PreserveOrdering({releases:Object.keys(b).length>0?b:void 0,declined:I.length>0?I:void 0,undecided:T.length>0?T:void 0})))}}}function ebt(t){return ML(t).size>0||ob(t).length>0}function ML(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function ob(t,{include:e=new Set}={}){let r=[],s=new Map(je.mapAndFilter([...t.releases],([n,c])=>c===\"decline\"?je.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(je.mapAndFilter([...t.releases],([n,c])=>c!==\"decline\"?je.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||s.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let c of Ut.hardDependencies)for(let f of n.manifest.getForScope(c).values()){let p=t.project.tryWorkspaceByDescriptor(f);p!==null&&s.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function nz(t,e){let r=kA.default.clean(e);for(let s of Object.values(G1))if(s!==\"undecided\"&&s!==\"decline\"&&kA.default.inc(t,s)===r)return s;return null}function ib(t,e){if(kA.default.valid(e))return e;if(t===null)throw new nt(`Cannot apply the release strategy \"${e}\" unless the workspace already has a valid version`);if(!kA.default.valid(t))throw new nt(`Cannot apply the release strategy \"${e}\" on a non-semver version (${t})`);let r=kA.default.inc(t,e);if(r===null)throw new nt(`Cannot apply the release strategy \"${e}\" on the specified version (${t})`);return r}function iz(t,e,{report:r,exact:s}){let a=new Map;for(let n of t.workspaces)for(let c of Ut.allDependencies)for(let f of n.manifest[c].values()){let p=t.tryWorkspaceByDescriptor(f);if(p===null||!e.has(p))continue;je.getArrayWithDefault(a,p).push([n,c,f.identHash])}for(let[n,c]of e){let f=n.manifest.version;n.manifest.version=c,kA.default.prerelease(c)===null?delete n.manifest.raw.stableVersion:n.manifest.raw.stableVersion||(n.manifest.raw.stableVersion=f);let p=n.manifest.name!==null?G.stringifyIdent(n.manifest.name):null;r.reportInfo(0,`${G.prettyLocator(t.configuration,n.anchoredLocator)}: Bumped to ${c}`),r.reportJson({cwd:fe.fromPortablePath(n.cwd),ident:p,oldVersion:f,newVersion:c});let h=a.get(n);if(!(typeof h>\"u\"))for(let[E,C,S]of h){let b=E.manifest[C].get(S);if(typeof b>\"u\")throw new Error(\"Assertion failed: The dependency should have existed\");let I=b.range,T=!1;if(I.startsWith(Ei.protocol)&&(I=I.slice(Ei.protocol.length),T=!0,I===n.relativeCwd))continue;let N=I.match($Pt);if(!N){r.reportWarning(0,`Couldn't auto-upgrade range ${I} (in ${G.prettyLocator(t.configuration,E.anchoredLocator)})`);continue}let U=s?`${c}`:`${N[1]}${c}`;T&&(U=`${Ei.protocol}${U}`);let W=G.makeDescriptor(b,U);E.manifest[C].set(S,W)}}}var tbt=new Map([[\"%n\",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function cke(t,{current:e,prerelease:r}){let s=new kA.default.SemVer(e),a=s.prerelease.slice(),n=[];s.prerelease=[],s.format()!==t&&(a.length=0);let c=!0,f=r.split(/\\./g);for(let p of f){let h=tbt.get(p);if(typeof h>\"u\")n.push(p),a[0]===p?a.shift():c=!1;else{let E=c?h.extract(a):null;E!==null&&typeof E[0]==\"number\"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),c=!1)}}return s.prerelease&&(s.prerelease=[]),`${t}-${n.join(\".\")}`}var Y1=class extends ft{constructor(){super(...arguments);this.all=ge.Boolean(\"--all\",!1,{description:\"Apply the deferred version changes on all workspaces\"});this.dryRun=ge.Boolean(\"--dry-run\",!1,{description:\"Print the versions without actually generating the package archive\"});this.prerelease=ge.String(\"--prerelease\",{description:\"Add a prerelease identifier to new versions\",tolerateBoolean:!0});this.exact=ge.Boolean(\"--exact\",!1,{description:\"Use the exact version of each package, removes any range. Useful for nightly releases where the range might match another version.\"});this.recursive=ge.Boolean(\"-R,--recursive\",{description:\"Release the transitive workspaces as well\"});this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}static{this.paths=[[\"version\",\"apply\"]]}static{this.usage=ot.Usage({category:\"Release-related commands\",description:\"apply all the deferred version bumps at once\",details:`\n      This command will apply the deferred version changes and remove their definitions from the repository.\n\n      Note that if \\`--prerelease\\` is set, the given prerelease identifier (by default \\`rc.%n\\`) will be used on all new versions and the version definitions will be kept as-is.\n\n      By default only the current workspace will be bumped, but you can configure this behavior by using one of:\n\n      - \\`--recursive\\` to also apply the version bump on its dependencies\n      - \\`--all\\` to apply the version bump on all packages in the repository\n\n      Note that this command will also update the \\`workspace:\\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump.\n    `,examples:[[\"Apply the version change to the local workspace\",\"yarn version apply\"],[\"Apply the version change to all the workspaces in the local workspace\",\"yarn version apply --all\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async f=>{let p=this.prerelease?typeof this.prerelease!=\"boolean\"?this.prerelease:\"rc.%n\":null,h=await sb(s,{prerelease:p}),E=new Map;if(this.all)E=h;else{let C=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let S of C){let b=h.get(S);typeof b<\"u\"&&E.set(S,b)}}if(E.size===0){let C=h.size>0?\" Did you want to add --all?\":\"\";f.reportWarning(0,`The current workspace doesn't seem to require a version bump.${C}`);return}iz(s,E,{report:f,exact:this.exact}),this.dryRun||(p||(this.all?await tz(s):await rz(s,[...E.keys()])),f.reportSeparator())});return this.dryRun||c.hasErrors()?c.exitCode():await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};Ge();Dt();Yt();var UL=ut(Ai());var V1=class extends ft{constructor(){super(...arguments);this.interactive=ge.Boolean(\"-i,--interactive\",{description:\"Open an interactive interface used to set version bumps\"})}static{this.paths=[[\"version\",\"check\"]]}static{this.usage=ot.Usage({category:\"Release-related commands\",description:\"check that all the relevant packages have been bumped\",details:\"\\n      **Warning:** This command currently requires Git.\\n\\n      This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\\n\\n      In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\\n\\n      In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\\n    \",examples:[[\"Check whether the modified packages need a bump\",\"yarn version check\"]]})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){iw(this.context);let{Gem:r}=await Promise.resolve().then(()=>(qF(),kW)),{ScrollableItems:s}=await Promise.resolve().then(()=>(JF(),VF)),{FocusRequest:a}=await Promise.resolve().then(()=>(RW(),E2e)),{useListInput:n}=await Promise.resolve().then(()=>(YF(),I2e)),{renderForm:c}=await Promise.resolve().then(()=>(XF(),ZF)),{Box:f,Text:p}=await Promise.resolve().then(()=>ut(Wc())),{default:h,useCallback:E,useState:C}=await Promise.resolve().then(()=>ut(hn())),S=await ze.find(this.context.cwd,this.context.plugins),{project:b,workspace:I}=await Rt.find(S,this.context.cwd);if(!I)throw new ar(b.cwd,this.context.cwd);await b.restoreInstallState();let T=await q1(b);if(T===null||T.releaseRoots.size===0)return 0;if(T.root===null)throw new nt(\"This command can only be run on Git repositories\");let N=()=>h.createElement(f,{flexDirection:\"row\",paddingBottom:1},h.createElement(f,{flexDirection:\"column\",width:60},h.createElement(f,null,h.createElement(p,null,\"Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<up>\"),\"/\",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<down>\"),\" to select workspaces.\")),h.createElement(f,null,h.createElement(p,null,\"Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<left>\"),\"/\",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<right>\"),\" to select release strategies.\"))),h.createElement(f,{flexDirection:\"column\"},h.createElement(f,{marginLeft:1},h.createElement(p,null,\"Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<enter>\"),\" to save.\")),h.createElement(f,{marginLeft:1},h.createElement(p,null,\"Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<ctrl+c>\"),\" to abort.\")))),U=({workspace:me,active:pe,decision:Be,setDecision:Ce})=>{let g=me.manifest.raw.stableVersion??me.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${G.prettyLocator(S,me.anchoredLocator)})`);if(UL.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let we=[\"undecided\",\"decline\",\"patch\",\"minor\",\"major\"];n(Be,we,{active:pe,minus:\"left\",plus:\"right\",set:Ce});let ye=Be===\"undecided\"?h.createElement(p,{color:\"yellow\"},g):Be===\"decline\"?h.createElement(p,{color:\"green\"},g):h.createElement(p,null,h.createElement(p,{color:\"magenta\"},g),\" \\u2192 \",h.createElement(p,{color:\"green\"},UL.default.valid(Be)?Be:UL.default.inc(g,Be)));return h.createElement(f,{flexDirection:\"column\"},h.createElement(f,null,h.createElement(p,null,G.prettyLocator(S,me.anchoredLocator),\" - \",ye)),h.createElement(f,null,we.map(Ae=>h.createElement(f,{key:Ae,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:Ae===Be}),\" \",Ae)))))},W=me=>{let pe=new Set(T.releaseRoots),Be=new Map([...me].filter(([Ce])=>pe.has(Ce)));for(;;){let Ce=ob({project:T.project,releases:Be}),g=!1;if(Ce.length>0){for(let[we]of Ce)if(!pe.has(we)){pe.add(we),g=!0;let ye=me.get(we);typeof ye<\"u\"&&Be.set(we,ye)}}if(!g)break}return{relevantWorkspaces:pe,relevantReleases:Be}},ee=()=>{let[me,pe]=C(()=>new Map(T.releases)),Be=E((Ce,g)=>{let we=new Map(me);g!==\"undecided\"?we.set(Ce,g):we.delete(Ce);let{relevantReleases:ye}=W(we);pe(ye)},[me,pe]);return[me,Be]},ie=({workspaces:me,releases:pe})=>{let Be=[];Be.push(`${me.size} total`);let Ce=0,g=0;for(let we of me){let ye=pe.get(we);typeof ye>\"u\"?g+=1:ye!==\"decline\"&&(Ce+=1)}return Be.push(`${Ce} release${Ce===1?\"\":\"s\"}`),Be.push(`${g} remaining`),h.createElement(p,{color:\"yellow\"},Be.join(\", \"))},le=await c(({useSubmit:me})=>{let[pe,Be]=ee();me(pe);let{relevantWorkspaces:Ce}=W(pe),g=new Set([...Ce].filter(se=>!T.releaseRoots.has(se))),[we,ye]=C(0),Ae=E(se=>{switch(se){case a.BEFORE:ye(we-1);break;case a.AFTER:ye(we+1);break}},[we,ye]);return h.createElement(f,{flexDirection:\"column\"},h.createElement(N,null),h.createElement(f,null,h.createElement(p,{wrap:\"wrap\"},\"The following files have been modified in your local checkout.\")),h.createElement(f,{flexDirection:\"column\",marginTop:1,paddingLeft:2},[...T.changedFiles].map(se=>h.createElement(f,{key:se},h.createElement(p,null,h.createElement(p,{color:\"grey\"},fe.fromPortablePath(T.root)),fe.sep,fe.relative(fe.fromPortablePath(T.root),fe.fromPortablePath(se)))))),T.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(f,{marginTop:1},h.createElement(p,{wrap:\"wrap\"},\"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):\")),g.size>3?h.createElement(f,{marginTop:1},h.createElement(ie,{workspaces:T.releaseRoots,releases:pe})):null,h.createElement(f,{marginTop:1,flexDirection:\"column\"},h.createElement(s,{active:we%2===0,radius:1,size:2,onFocusRequest:Ae},[...T.releaseRoots].map(se=>h.createElement(U,{key:se.cwd,workspace:se,decision:pe.get(se)||\"undecided\",setDecision:X=>Be(se,X)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(f,{marginTop:1},h.createElement(p,{wrap:\"wrap\"},\"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:\")),h.createElement(f,null,h.createElement(p,null,\"(Press \",h.createElement(p,{bold:!0,color:\"cyanBright\"},\"<tab>\"),\" to move the focus between the workspace groups.)\")),g.size>5?h.createElement(f,{marginTop:1},h.createElement(ie,{workspaces:g,releases:pe})):null,h.createElement(f,{marginTop:1,flexDirection:\"column\"},h.createElement(s,{active:we%2===1,radius:2,size:2,onFocusRequest:Ae},[...g].map(se=>h.createElement(U,{key:se.cwd,workspace:se,decision:pe.get(se)||\"undecided\",setDecision:X=>Be(se,X)}))))):null)},{versionFile:T},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof le>\"u\")return 1;T.releases.clear();for(let[me,pe]of le)T.releases.set(me,pe);await T.saveAll()}async executeStandard(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);return await s.restoreInstallState(),(await Ot.start({configuration:r,stdout:this.context.stdout},async c=>{let f=await q1(s);if(f===null||f.releaseRoots.size===0)return;if(f.root===null)throw new nt(\"This command can only be run on Git repositories\");if(c.reportInfo(0,`Your PR was started right after ${he.pretty(r,f.baseHash.slice(0,7),\"yellow\")} ${he.pretty(r,f.baseTitle,\"magenta\")}`),f.changedFiles.size>0){c.reportInfo(0,\"You have changed the following files since then:\"),c.reportSeparator();for(let S of f.changedFiles)c.reportInfo(null,`${he.pretty(r,fe.fromPortablePath(f.root),\"gray\")}${fe.sep}${fe.relative(fe.fromPortablePath(f.root),fe.fromPortablePath(S))}`)}let p=!1,h=!1,E=ML(f);if(E.size>0){p||c.reportSeparator();for(let S of E)c.reportError(0,`${G.prettyLocator(r,S.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let C=ob(f);for(let[S,b]of C)h||c.reportSeparator(),c.reportError(0,`${G.prettyLocator(r,S.anchoredLocator)} doesn't have a release strategy attached, but depends on ${G.prettyWorkspace(r,b)} which is planned for release.`),h=!0;(p||h)&&(c.reportSeparator(),c.reportInfo(0,\"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed).\"),c.reportInfo(0,\"To correct these errors, run `yarn version check --interactive` then follow the instructions.\"))})).exitCode()}};Ge();Yt();var _L=ut(Ai());var J1=class extends ft{constructor(){super(...arguments);this.deferred=ge.Boolean(\"-d,--deferred\",{description:\"Prepare the version to be bumped during the next release cycle\"});this.immediate=ge.Boolean(\"-i,--immediate\",{description:\"Bump the version immediately\"});this.strategy=ge.String()}static{this.paths=[[\"version\"]]}static{this.usage=ot.Usage({category:\"Release-related commands\",description:\"apply a new version to the current package\",details:\"\\n      This command will bump the version number for the given package, following the specified strategy:\\n\\n      - If `major`, the first number from the semver range will be increased (`X.0.0`).\\n      - If `minor`, the second number from the semver range will be increased (`0.X.0`).\\n      - If `patch`, the third number from the semver range will be increased (`0.0.X`).\\n      - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\\n      - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\\n      - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\\n      - If a valid semver range, it will be used as new version.\\n      - If unspecified, Yarn will ask you for guidance.\\n\\n      For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\\n    \",examples:[[\"Immediately bump the version to the next major\",\"yarn version major\"],[\"Prepare the version to be bumped to the next major\",\"yarn version major --deferred\"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=r.get(\"preferDeferredVersions\");this.deferred&&(n=!0),this.immediate&&(n=!1);let c=_L.default.valid(this.strategy),f=this.strategy===\"decline\",p;if(c)if(a.manifest.version!==null){let E=nz(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!f){if(E===null)throw new nt(\"Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.\");if(typeof E!=\"string\"||!_L.default.valid(E))throw new nt(`Can't bump the version (${E}) if it's not valid semver`)}p=dy(this.strategy)}if(!n){let C=(await sb(s)).get(a);if(typeof C<\"u\"&&p!==\"decline\"){let S=ib(a.manifest.version,p);if(_L.default.lt(S,C))throw new nt(`Can't bump the version to one that would be lower than the current deferred one (${C})`)}}let h=await q1(s,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run([\"version\",\"apply\"])}};var rbt={configuration:{deferredVersionFolder:{description:\"Folder where are stored the versioning files\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/versions\"},preferDeferredVersions:{description:\"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set\",type:\"BOOLEAN\",default:!1}},commands:[Y1,V1,J1]},nbt=rbt;var oz={};Vt(oz,{WorkspacesFocusCommand:()=>K1,WorkspacesForeachCommand:()=>Z1,default:()=>obt});Ge();Ge();Yt();var K1=class extends ft{constructor(){super(...arguments);this.json=ge.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.production=ge.Boolean(\"--production\",!1,{description:\"Only install regular dependencies by omitting dev dependencies\"});this.all=ge.Boolean(\"-A,--all\",!1,{description:\"Install the entire project\"});this.workspaces=ge.Rest()}static{this.paths=[[\"workspaces\",\"focus\"]]}static{this.usage=ot.Usage({category:\"Workspace-related commands\",description:\"install a single workspace and its dependencies\",details:\"\\n      This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\\n\\n      Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\\n\\n      If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\\n    \"})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd),n=await Kr.find(r);await s.restoreInstallState({restoreResolutions:!1});let c;if(this.all)c=new Set(s.workspaces);else if(this.workspaces.length===0){if(!a)throw new ar(s.cwd,this.context.cwd);c=new Set([a])}else c=new Set(this.workspaces.map(f=>s.getWorkspaceByIdent(G.parseIdent(f))));for(let f of c)for(let p of this.production?[\"dependencies\"]:Ut.hardDependencies)for(let h of f.manifest.getForScope(p).values()){let E=s.tryWorkspaceByDescriptor(h);E!==null&&c.add(E)}for(let f of s.workspaces)c.has(f)?this.production&&f.manifest.devDependencies.clear():(f.manifest.installConfig=f.manifest.installConfig||{},f.manifest.installConfig.selfReferences=!1,f.manifest.dependencies.clear(),f.manifest.devDependencies.clear(),f.manifest.peerDependencies.clear(),f.manifest.scripts.clear());return await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,persistProject:!1})}};Ge();Ge();Ge();Yt();var z1=ut(Go()),fke=ut(Ld());Ul();var Z1=class extends ft{constructor(){super(...arguments);this.from=ge.Array(\"--from\",{description:\"An array of glob pattern idents or paths from which to base any recursion\"});this.all=ge.Boolean(\"-A,--all\",{description:\"Run the command on all workspaces of a project\"});this.recursive=ge.Boolean(\"-R,--recursive\",{description:\"Run the command on the current workspace and all of its recursive dependencies\"});this.worktree=ge.Boolean(\"-W,--worktree\",{description:\"Run the command on all workspaces of the current worktree\"});this.verbose=ge.Counter(\"-v,--verbose\",{description:\"Increase level of logging verbosity up to 2 times\"});this.parallel=ge.Boolean(\"-p,--parallel\",!1,{description:\"Run the commands in parallel\"});this.interlaced=ge.Boolean(\"-i,--interlaced\",!1,{description:\"Print the output of commands in real-time instead of buffering it\"});this.jobs=ge.String(\"-j,--jobs\",{description:\"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`\",validator:h_([fo([\"unlimited\"]),$2(p_(),[d_(),g_(1)])])});this.topological=ge.Boolean(\"-t,--topological\",!1,{description:\"Run the command after all workspaces it depends on (regular) have finished\"});this.topologicalDev=ge.Boolean(\"--topological-dev\",!1,{description:\"Run the command after all workspaces it depends on (regular + dev) have finished\"});this.include=ge.Array(\"--include\",[],{description:\"An array of glob pattern idents or paths; only matching workspaces will be traversed\"});this.exclude=ge.Array(\"--exclude\",[],{description:\"An array of glob pattern idents or paths; matching workspaces won't be traversed\"});this.publicOnly=ge.Boolean(\"--no-private\",{description:\"Avoid running the command on private workspaces\"});this.since=ge.String(\"--since\",{description:\"Only include workspaces that have been changed since the specified ref.\",tolerateBoolean:!0});this.dryRun=ge.Boolean(\"-n,--dry-run\",{description:\"Print the commands that would be run, without actually running them\"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[[\"workspaces\",\"foreach\"]]}static{this.usage=ot.Usage({category:\"Workspace-related commands\",description:\"run a command on all workspaces\",details:\"\\n      This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\\n\\n      - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\\n\\n      - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\\n\\n      - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\\n\\n      - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\\n\\n      - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\\n\\n      - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\\n\\n      - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\\n\\n      - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\\n\\n      - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\\n\\n      - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. You can also use the `--no-private` flag to avoid running the command in private workspaces.\\n\\n      The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\\n\\n      If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\\n    \",examples:[[\"Publish all packages\",\"yarn workspaces foreach -A --no-private npm publish --tolerate-republish\"],[\"Run the build script on all descendant packages\",\"yarn workspaces foreach -A run build\"],[\"Run the build script on current and all descendant packages in parallel, building package dependencies first\",\"yarn workspaces foreach -Apt run build\"],[\"Run the build script on several packages and all their dependencies, building dependencies first\",\"yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build\"]]})}static{this.schema=[tB(\"all\",qf.Forbids,[\"from\",\"recursive\",\"since\",\"worktree\"],{missingIf:\"undefined\"}),m_([\"all\",\"recursive\",\"since\",\"worktree\"],{missingIf:\"undefined\"})]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Rt.find(r,this.context.cwd);if(!this.all&&!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),c=n.path.length===1&&n.path[0]===\"run\"&&typeof n.scriptName<\"u\"?n.scriptName:null;if(n.path.length===0)throw new nt(\"Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script\");let f=Ce=>{this.dryRun&&this.context.stdout.write(`${Ce}\n`)},p=()=>{let Ce=this.from.map(g=>z1.default.matcher(g));return s.workspaces.filter(g=>{let we=G.stringifyIdent(g.anchoredLocator),ye=g.relativeCwd;return Ce.some(Ae=>Ae(we)||Ae(ye))})},h=[];if(this.since?(f(\"Option --since is set; selecting the changed workspaces as root for workspace selection\"),h=Array.from(await ka.fetchChangedWorkspaces({ref:this.since,project:s}))):this.from?(f(\"Option --from is set; selecting the specified workspaces\"),h=[...p()]):this.worktree?(f(\"Option --worktree is set; selecting the current workspace\"),h=[a]):this.recursive?(f(\"Option --recursive is set; selecting the current workspace\"),h=[a]):this.all&&(f(\"Option --all is set; selecting all workspaces\"),h=[...s.workspaces]),this.dryRun&&!this.all){for(let Ce of h)f(`\n- ${Ce.relativeCwd}\n  ${G.prettyLocator(r,Ce.anchoredLocator)}`);h.length>0&&f(\"\")}let E;if(this.recursive?this.since?(f(\"Option --recursive --since is set; recursively selecting all dependent workspaces\"),E=new Set(h.map(Ce=>[...Ce.getRecursiveWorkspaceDependents()]).flat())):(f(\"Option --recursive is set; recursively selecting all transitive dependencies\"),E=new Set(h.map(Ce=>[...Ce.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(f(\"Option --worktree is set; recursively selecting all nested workspaces\"),E=new Set(h.map(Ce=>[...Ce.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let Ce of E)f(`\n- ${Ce.relativeCwd}\n  ${G.prettyLocator(r,Ce.anchoredLocator)}`);let C=[],S=!1;if(c?.includes(\":\")){for(let Ce of s.workspaces)if(Ce.manifest.scripts.has(c)&&(S=!S,S===!1))break}for(let Ce of h){if(c&&!Ce.manifest.scripts.has(c)&&!S&&!(await In.getWorkspaceAccessibleBinaries(Ce)).has(c)){f(`Excluding ${Ce.relativeCwd} because it doesn't have a \"${c}\" script`);continue}if(!(c===r.env.npm_lifecycle_event&&Ce.cwd===a.cwd)){if(this.include.length>0&&!z1.default.isMatch(G.stringifyIdent(Ce.anchoredLocator),this.include)&&!z1.default.isMatch(Ce.relativeCwd,this.include)){f(`Excluding ${Ce.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(z1.default.isMatch(G.stringifyIdent(Ce.anchoredLocator),this.exclude)||z1.default.isMatch(Ce.relativeCwd,this.exclude))){f(`Excluding ${Ce.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Ce.manifest.private===!0){f(`Excluding ${Ce.relativeCwd} because it's a private workspace and --no-private was set`);continue}C.push(Ce)}}if(this.dryRun)return 0;let b=this.verbose??(this.context.stdout.isTTY?1/0:0),I=b>0,T=b>1,N=this.parallel?this.jobs===\"unlimited\"?1/0:Number(this.jobs)||Math.ceil(fs.availableParallelism()/2):1,U=N===1?!1:this.parallel,W=U?this.interlaced:!0,ee=(0,fke.default)(N),ie=new Map,ue=new Set,le=0,me=null,pe=!1,Be=await Ot.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async Ce=>{let g=async(we,{commandIndex:ye})=>{if(pe)return-1;!U&&T&&ye>1&&Ce.reportSeparator();let Ae=ibt(we,{configuration:r,label:I,commandIndex:ye}),[se,X]=uke(Ce,{prefix:Ae,interlaced:W}),[De,Te]=uke(Ce,{prefix:Ae,interlaced:W});try{T&&Ce.reportInfo(null,`${Ae?`${Ae} `:\"\"}Process started`);let mt=Date.now(),j=await this.cli.run([this.commandName,...this.args],{cwd:we.cwd,stdout:se,stderr:De})||0;se.end(),De.end(),await X,await Te;let rt=Date.now();if(T){let Fe=r.get(\"enableTimers\")?`, completed in ${he.pretty(r,rt-mt,he.Type.DURATION)}`:\"\";Ce.reportInfo(null,`${Ae?`${Ae} `:\"\"}Process exited (exit code ${j})${Fe}`)}return j===130&&(pe=!0,me=j),j}catch(mt){throw se.end(),De.end(),await X,await Te,mt}};for(let we of C)ie.set(we.anchoredLocator.locatorHash,we);for(;ie.size>0&&!Ce.hasErrors();){let we=[];for(let[X,De]of ie){if(ue.has(De.anchoredDescriptor.descriptorHash))continue;let Te=!0;if(this.topological||this.topologicalDev){let mt=this.topologicalDev?new Map([...De.manifest.dependencies,...De.manifest.devDependencies]):De.manifest.dependencies;for(let j of mt.values()){let rt=s.tryWorkspaceByDescriptor(j);if(Te=rt===null||!ie.has(rt.anchoredLocator.locatorHash),!Te)break}}if(Te&&(ue.add(De.anchoredDescriptor.descriptorHash),we.push(ee(async()=>{let mt=await g(De,{commandIndex:++le});return ie.delete(X),ue.delete(De.anchoredDescriptor.descriptorHash),{workspace:De,exitCode:mt}})),!U))break}if(we.length===0){let X=Array.from(ie.values()).map(De=>G.prettyLocator(r,De.anchoredLocator)).join(\", \");Ce.reportError(3,`Dependency cycle detected (${X})`);return}let ye=await Promise.all(we);ye.forEach(({workspace:X,exitCode:De})=>{De!==0&&Ce.reportError(0,`The command failed in workspace ${G.prettyLocator(r,X.anchoredLocator)} with exit code ${De}`)});let se=ye.map(X=>X.exitCode).find(X=>X!==0);(this.topological||this.topologicalDev)&&typeof se<\"u\"&&Ce.reportError(0,\"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph\")}});return me!==null?me:Be.exitCode()}};function uke(t,{prefix:e,interlaced:r}){let s=t.createStreamReporter(e),a=new je.DefaultStream;a.pipe(s,{end:!1}),a.on(\"finish\",()=>{s.end()});let n=new Promise(f=>{s.on(\"finish\",()=>{f(a.active)})});if(r)return[a,n];let c=new je.BufferStream;return c.pipe(a,{end:!1}),c.on(\"finish\",()=>{a.end()}),[c,n]}function ibt(t,{configuration:e,commandIndex:r,label:s}){if(!s)return null;let n=`[${G.stringifyIdent(t.anchoredLocator)}]:`,c=[\"#2E86AB\",\"#A23B72\",\"#F18F01\",\"#C73E1D\",\"#CCE2A3\"],f=c[r%c.length];return he.pretty(e,n,f)}var sbt={commands:[K1,Z1]},obt=sbt;var uz={};Vt(uz,{default:()=>ubt});Ge();Ge();var az=\"catalog:\";var lz=t=>t.startsWith(az),abt=t=>t.range.slice(az.length)||null,Ake=t=>t===null?\"default catalog\":`catalog \"${t}\"`,lbt=t=>t.scope?`@${t.scope}/${t.name}`:t.name,cz=(t,e,r,s)=>{let a=abt(e),n;if(a===null)n=t.configuration.get(\"catalog\");else try{let E=t.configuration.get(\"catalogs\");E&&(n=E.get(a))}catch{n=void 0}if(!n||n.size===0)throw new jt(82,`${G.prettyDescriptor(t.configuration,e)}: ${Ake(a)} not found or empty`);let c=lbt(e),f=n.get(c);if(!f)throw new jt(82,`${G.prettyDescriptor(t.configuration,e)}: entry not found in ${Ake(a)}`);let p=t.configuration.normalizeDependency(G.makeDescriptor(e,f));return r.bindDescriptor(p,t.topLevelWorkspace.anchoredLocator,s)};var cbt={configuration:{catalog:{description:\"The default catalog of packages\",type:\"MAP\",valueDefinition:{description:\"The catalog of packages\",type:\"STRING\"}},catalogs:{description:\"Named catalogs of packages\",type:\"MAP\",valueDefinition:{description:\"A named catalog\",type:\"MAP\",valueDefinition:{description:\"Package version in the catalog\",type:\"STRING\"}}}},hooks:{beforeWorkspacePacking:(t,e)=>{let r=t.project,s=r.configuration.makeResolver(),a={project:r,resolver:s,report:new ki};for(let n of Ut.allDependencies){let c=e[n];if(c)for(let[f,p]of Object.entries(c)){if(typeof p!=\"string\"||!lz(p))continue;let h=G.parseIdent(f),E=G.makeDescriptor(h,p),C=cz(r,E,s,a),{protocol:S,source:b,params:I,selector:T}=G.parseRange(G.convertToManifestRange(C.range));S===t.project.configuration.get(\"defaultProtocol\")&&(S=null),c[f]=G.makeRange({protocol:S,source:b,params:I,selector:T})}}},reduceDependency:async(t,e,r,s,{resolver:a,resolveOptions:n})=>lz(t.range)?cz(e,t,a,n):t}},ubt=cbt;var tC=()=>({modules:new Map([[\"@yarnpkg/cli\",Gv],[\"@yarnpkg/core\",jv],[\"@yarnpkg/fslib\",_2],[\"@yarnpkg/libzip\",fv],[\"@yarnpkg/parsers\",J2],[\"@yarnpkg/shell\",mv],[\"clipanion\",oB],[\"semver\",fbt],[\"typanion\",Ea],[\"@yarnpkg/plugin-essentials\",f5],[\"@yarnpkg/plugin-compat\",d5],[\"@yarnpkg/plugin-constraints\",T5],[\"@yarnpkg/plugin-dlx\",F5],[\"@yarnpkg/plugin-exec\",L5],[\"@yarnpkg/plugin-file\",U5],[\"@yarnpkg/plugin-git\",u5],[\"@yarnpkg/plugin-github\",j5],[\"@yarnpkg/plugin-http\",G5],[\"@yarnpkg/plugin-init\",q5],[\"@yarnpkg/plugin-interactive-tools\",HW],[\"@yarnpkg/plugin-jsr\",GW],[\"@yarnpkg/plugin-link\",qW],[\"@yarnpkg/plugin-nm\",PY],[\"@yarnpkg/plugin-npm\",PK],[\"@yarnpkg/plugin-npm-cli\",OK],[\"@yarnpkg/plugin-pack\",IV],[\"@yarnpkg/plugin-patch\",GK],[\"@yarnpkg/plugin-pnp\",gY],[\"@yarnpkg/plugin-pnpm\",YK],[\"@yarnpkg/plugin-stage\",$K],[\"@yarnpkg/plugin-typescript\",ez],[\"@yarnpkg/plugin-version\",sz],[\"@yarnpkg/plugin-workspace-tools\",oz],[\"@yarnpkg/plugin-catalog\",uz]]),plugins:new Set([\"@yarnpkg/plugin-essentials\",\"@yarnpkg/plugin-compat\",\"@yarnpkg/plugin-constraints\",\"@yarnpkg/plugin-dlx\",\"@yarnpkg/plugin-exec\",\"@yarnpkg/plugin-file\",\"@yarnpkg/plugin-git\",\"@yarnpkg/plugin-github\",\"@yarnpkg/plugin-http\",\"@yarnpkg/plugin-init\",\"@yarnpkg/plugin-interactive-tools\",\"@yarnpkg/plugin-jsr\",\"@yarnpkg/plugin-link\",\"@yarnpkg/plugin-nm\",\"@yarnpkg/plugin-npm\",\"@yarnpkg/plugin-npm-cli\",\"@yarnpkg/plugin-pack\",\"@yarnpkg/plugin-patch\",\"@yarnpkg/plugin-pnp\",\"@yarnpkg/plugin-pnpm\",\"@yarnpkg/plugin-stage\",\"@yarnpkg/plugin-typescript\",\"@yarnpkg/plugin-version\",\"@yarnpkg/plugin-workspace-tools\",\"@yarnpkg/plugin-catalog\"])});function gke({cwd:t,pluginConfiguration:e}){let r=new Ca({binaryLabel:\"Yarn Package Manager\",binaryName:\"yarn\",binaryVersion:fn??\"<unknown>\"});return Object.assign(r,{defaultContext:{...Ca.defaultContext,cwd:t,plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function Abt(t){if(je.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,s=\">=18.12.0\";if(Fr.satisfiesWithPrereleases(r,s))return!0;let a=new nt(`This tool requires a Node version compatible with ${s} (got ${r}). Upgrade Node, or set \\`YARN_IGNORE_NODE=1\\` in your environment.`);return Ca.defaultContext.stdout.write(t.error(a)),!1}async function dke({selfPath:t,pluginConfiguration:e}){return await ze.find(fe.toPortablePath(process.cwd()),e,{strict:!1,usePathCheck:t})}function pbt(t,e,{yarnPath:r}){if(!ce.existsSync(r))return t.error(new Error(`The \"yarn-path\" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on(\"SIGINT\",()=>{});let s={stdio:\"inherit\",env:{...process.env,YARN_IGNORE_PATH:\"1\"}};try{(0,pke.execFileSync)(process.execPath,[fe.fromPortablePath(r),...e],s)}catch(a){return a.status??1}return 0}function hbt(t,e){let r=null,s=e;return e.length>=2&&e[0]===\"--cwd\"?(r=fe.toPortablePath(e[1]),s=e.slice(2)):e.length>=1&&e[0].startsWith(\"--cwd=\")?(r=fe.toPortablePath(e[0].slice(6)),s=e.slice(1)):e[0]===\"add\"&&e[e.length-2]===\"--cwd\"&&(r=fe.toPortablePath(e[e.length-1]),s=e.slice(0,e.length-2)),t.defaultContext.cwd=r!==null?J.resolve(r):J.cwd(),s}function gbt(t,{configuration:e}){if(!e.get(\"enableTelemetry\")||hke.isCI||!process.stdout.isTTY)return;ze.telemetry=new XI(e,\"puba9cdc10ec5790a2cf4969dd413a47270\");let s=/^@yarnpkg\\/plugin-(.*)$/;for(let a of e.plugins.keys())$I.has(a.match(s)?.[1]??\"\")&&ze.telemetry?.reportPluginName(a);t.binaryVersion&&ze.telemetry.reportVersion(t.binaryVersion)}function mke(t,{configuration:e}){for(let r of e.plugins.values())for(let s of r.commands||[])t.register(s)}async function dbt(t,e,{selfPath:r,pluginConfiguration:s}){if(!Abt(t))return 1;let a=await dke({selfPath:r,pluginConfiguration:s}),n=a.get(\"yarnPath\"),c=a.get(\"ignorePath\");if(n&&!c)return pbt(t,e,{yarnPath:n});delete process.env.YARN_IGNORE_PATH;let f=hbt(t,e);gbt(t,{configuration:a}),mke(t,{configuration:a});let p=t.process(f,t.defaultContext);return p.help||ze.telemetry?.reportCommandName(p.path.join(\" \")),await t.run(p,t.defaultContext)}async function Bde({cwd:t=J.cwd(),pluginConfiguration:e=tC()}={}){let r=gke({cwd:t,pluginConfiguration:e}),s=await dke({pluginConfiguration:e,selfPath:null});return mke(r,{configuration:s}),r}async function YT(t,{cwd:e=J.cwd(),selfPath:r,pluginConfiguration:s}){let a=gke({cwd:e,pluginConfiguration:s});function n(){Ca.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop.\nPlease report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once(\"beforeExit\",n);try{process.exitCode=42,process.exitCode=await dbt(a,t,{selfPath:r,pluginConfiguration:s})}catch(c){Ca.defaultContext.stdout.write(a.error(c)),process.exitCode=1}finally{process.off(\"beforeExit\",n),await ce.rmtempPromise()}}YT(process.argv.slice(2),{cwd:J.cwd(),selfPath:fe.toPortablePath(fe.resolve(process.argv[1])),pluginConfiguration:tC()});})();\n/**\n  @license\n  Copyright (c) 2015, Rebecca Turner\n\n  Permission to use, copy, modify, and/or distribute this software for any\n  purpose with or without fee is hereby granted, provided that the above\n  copyright notice and this permission notice appear in all copies.\n\n  THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n  REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n  FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n  INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n  PERFORMANCE OF THIS SOFTWARE.\n */\n/**\n  @license\n  Copyright Node.js contributors. All rights reserved.\n\n  Permission is hereby granted, free of charge, to any person obtaining a copy\n  of this software and associated documentation files (the \"Software\"), to\n  deal in the Software without restriction, including without limitation the\n  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n  sell copies of the Software, and to permit persons to whom the Software is\n  furnished to do so, subject to the following conditions:\n\n  The above copyright notice and this permission notice shall be included in\n  all copies or substantial portions of the Software.\n\n  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n  IN THE SOFTWARE.\n*/\n/**\n  @license\n  The MIT License (MIT)\n\n  Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)\n\n  Permission is hereby granted, free of charge, to any person obtaining a copy\n  of this software and associated documentation files (the \"Software\"), to deal\n  in the Software without restriction, including without limitation the rights\n  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n  copies of the Software, and to permit persons to whom the Software is\n  furnished to do so, subject to the following conditions:\n\n  The above copyright notice and this permission notice shall be included in\n  all copies or substantial portions of the Software.\n\n  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n  THE SOFTWARE.\n*/\n/**\n  @license\n  Copyright Joyent, Inc. and other Node contributors.\n\n  Permission is hereby granted, free of charge, to any person obtaining a\n  copy of this software and associated documentation files (the\n  \"Software\"), to deal in the Software without restriction, including\n  without limitation the rights to use, copy, modify, merge, publish,\n  distribute, sublicense, and/or sell copies of the Software, and to permit\n  persons to whom the Software is furnished to do so, subject to the\n  following conditions:\n\n  The above copyright notice and this permission notice shall be included\n  in all copies or substantial portions of the Software.\n\n  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n  NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n  DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n  OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n  USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n/*! Bundled license information:\n\nis-number/index.js:\n  (*!\n   * is-number <https://github.com/jonschlinkert/is-number>\n   *\n   * Copyright (c) 2014-present, Jon Schlinkert.\n   * Released under the MIT License.\n   *)\n\nto-regex-range/index.js:\n  (*!\n   * to-regex-range <https://github.com/micromatch/to-regex-range>\n   *\n   * Copyright (c) 2015-present, Jon Schlinkert.\n   * Released under the MIT License.\n   *)\n\nfill-range/index.js:\n  (*!\n   * fill-range <https://github.com/jonschlinkert/fill-range>\n   *\n   * Copyright (c) 2014-present, Jon Schlinkert.\n   * Licensed under the MIT License.\n   *)\n\nis-extglob/index.js:\n  (*!\n   * is-extglob <https://github.com/jonschlinkert/is-extglob>\n   *\n   * Copyright (c) 2014-2016, Jon Schlinkert.\n   * Licensed under the MIT License.\n   *)\n\nis-glob/index.js:\n  (*!\n   * is-glob <https://github.com/jonschlinkert/is-glob>\n   *\n   * Copyright (c) 2014-2017, Jon Schlinkert.\n   * Released under the MIT License.\n   *)\n\nqueue-microtask/index.js:\n  (*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)\n\nrun-parallel/index.js:\n  (*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)\n\ngit-url-parse/lib/index.js:\n  (*!\n   * buildToken\n   * Builds OAuth token prefix (helper function)\n   *\n   * @name buildToken\n   * @function\n   * @param {GitUrl} obj The parsed Git url object.\n   * @return {String} token prefix\n   *)\n\nobject-assign/index.js:\n  (*\n  object-assign\n  (c) Sindre Sorhus\n  @license MIT\n  *)\n\nreact/cjs/react.production.min.js:\n  (** @license React v17.0.2\n   * react.production.min.js\n   *\n   * Copyright (c) Facebook, Inc. and its affiliates.\n   *\n   * This source code is licensed under the MIT license found in the\n   * LICENSE file in the root directory of this source tree.\n   *)\n\nscheduler/cjs/scheduler.production.min.js:\n  (** @license React v0.20.2\n   * scheduler.production.min.js\n   *\n   * Copyright (c) Facebook, Inc. and its affiliates.\n   *\n   * This source code is licensed under the MIT license found in the\n   * LICENSE file in the root directory of this source tree.\n   *)\n\nreact-reconciler/cjs/react-reconciler.production.min.js:\n  (** @license React v0.26.2\n   * react-reconciler.production.min.js\n   *\n   * Copyright (c) Facebook, Inc. and its affiliates.\n   *\n   * This source code is licensed under the MIT license found in the\n   * LICENSE file in the root directory of this source tree.\n   *)\n\nis-windows/index.js:\n  (*!\n   * is-windows <https://github.com/jonschlinkert/is-windows>\n   *\n   * Copyright © 2015-2018, Jon Schlinkert.\n   * Released under the MIT License.\n   *)\n*/\n"
  },
  {
    "path": ".yarn/versions/009f3ed3.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/027a768d.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/043f60d9.yml",
    "content": "undecided:\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/0499e67a.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/04fe5109.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/0659b210.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/06878261.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/06f061c2.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/0a6cfead.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common-substrate\"\n"
  },
  {
    "path": ".yarn/versions/0b41d534.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/0c630ddb.yml",
    "content": "undecided:\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/0c8bf25d.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/0d3c95d9.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/0e4241fb.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/104b6218.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/testing\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/105d24d1.yml",
    "content": "undecided:\n  - \"@subql/common\"\n"
  },
  {
    "path": ".yarn/versions/10d6c790.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/1288810f.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/12a92ad2.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/12c5da87.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/12f2ee2a.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/1419f252.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/1447e381.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/14e4dc88.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/testing\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/16f0d61b.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/1716e1a0.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/185d73c5.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/18880181.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/18951341.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/1a4257af.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/1ab8a1a3.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/1bbf92cf.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/query\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/1be0b830.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/1c09bcf3.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/1d68c78f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/1d7a8221.yml",
    "content": "undecided:\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/1de6dc61.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/1ef24463.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/216439fa.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/2268e307.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/227edb92.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/2347a851.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/25310217.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/2584b0f2.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/25cf0a18.yml",
    "content": "undecided:\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/26d2bede.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/28043ba8.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/2805a1cf.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/29bf85e7.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/2b04685f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/2c10a261.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/2c2090d9.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/2cc4a2fb.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/2d3b7b53.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/2d3c26d4.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/2d61ee26.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/testing\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/2dfadf46.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/2eebe132.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/304647ef.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/30caeb09.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/312f5831.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/31de9883.yml",
    "content": "undecided:\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/322d5d1f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/324f29ae.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/3349f1f9.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/33e756ee.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/34a2b89f.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/350b5b09.yml",
    "content": "undecided:\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/351b62d7.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/35b703be.yml",
    "content": "undecided:\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/35c43c59.yml",
    "content": "undecided:\n  - \"@subql/common\"\n"
  },
  {
    "path": ".yarn/versions/35f00361.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/36f01785.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/37b48f24.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/37e31b0c.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/381d4907.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/382f2b82.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/3938a2bc.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/3a048bf2.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/3adf3bd7.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/3b3e24c8.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/3b8c5afd.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/3d650c95.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/3fbcf2a0.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/3fc924ed.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/4078a944.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/40b6bbec.yml",
    "content": "undecided:\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/41c9116c.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/41e737e2.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/4303222c.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/44082fb1.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/445ef638.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/457bc38f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/46402fec.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/46adba99.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/46b26b5d.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/47d21b05.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/4820d418.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/48ba8de1.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/499171ed.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/49d09eed.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/4a010b8b.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/4b76fe18.yml",
    "content": "undecided:\n  - \"@subql/common-substrate\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/4b8d567b.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/4c23db2c.yml",
    "content": "undecided:\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/4c2f3697.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/4c39a3cb.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/4c67dbef.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/4ce88dfa.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/4d1a19ef.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/4de1b78e.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/4e58ec39.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/4eb161fe.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/4ef5ee6c.yml",
    "content": "undecided:\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/4ef73239.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/4feb4cb4.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/5284b2e3.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/5311ca5a.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/532ac853.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/53d32974.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/53f030f6.yml",
    "content": "undecided:\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/550fcf8e.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/552aabf7.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/55b991e8.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/56fc2408.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/57666882.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/57a75c3c.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/57dc89a1.yml",
    "content": "undecided:\n  - \"@subql/common-substrate\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/5a7ba119.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/5ae3de1b.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/5bb8d394.yml",
    "content": "undecided:\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/5c14c916.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/5dc4e96b.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/5f92bb54.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/610a5feb.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/61b6fc48.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/62a6123d.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/645f2b52.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/646d8ce7.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/65681adf.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/6590072c.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/65da9ecd.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/66b5ccbc.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/testing\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/686e36f7.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/689d69d4.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/68dba50f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/69505fd5.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/testing\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/6a2da136.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/6b90a9bc.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/6bc3e193.yml",
    "content": "undecided:\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/6bc752bc.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/6ca7bbbf.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/6cdd41ea.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/6f262f92.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/6f785cb6.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/6f9a585e.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/6fbb21ed.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/6fdfdb04.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/6ffda578.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/722926be.yml",
    "content": "undecided:\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/7243e463.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/72f372d1.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/744a0dca.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/74d627f7.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/74e58e5b.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/75c144d8.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/75d37c61.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/76034c6c.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/7879dba0.yml",
    "content": "undecided:\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/78a188b4.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/792d5a54.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/7bd9e3d4.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/7c0eab27.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/7cd00a40.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/7cd681fd.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/7d2a0be3.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/7d3fc2ff.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/7d8931c0.yml",
    "content": "undecided:\n  - \"@subql/common-substrate\"\n"
  },
  {
    "path": ".yarn/versions/7d9c7c44.yml",
    "content": "undecided:\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/7e7541ea.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/7f040c3e.yml",
    "content": "undecided:\n  - \"@subql/common\"\n"
  },
  {
    "path": ".yarn/versions/801fb397.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/809ea2e4.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/824e82cb.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n"
  },
  {
    "path": ".yarn/versions/8374b398.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/839fb9d1.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/83bb6400.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/848e4e2b.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/8492acfd.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/84941eaf.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n"
  },
  {
    "path": ".yarn/versions/84dbb7ce.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/84f6e423.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/857e5ecd.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/8601d478.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/863b06ea.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/86ccde0d.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/8868808f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/887de416.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/889ef0f3.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/88fc2bd8.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/8a413ac0.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node-core\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/8b67f09a.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/8db1483b.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/8e400644.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/9028a0bb.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/91e494d1.yml",
    "content": "undecided:\n  - \"@subql/common\"\n"
  },
  {
    "path": ".yarn/versions/920dae9d.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/92e577ad.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/92ff9489.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/testing\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/936dc023.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/94b199e8.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/94c458c9.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/94e27173.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/9697cad0.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/97073d37.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/99cf5827.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/9a8e6f5d.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/9b3e8476.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/9eb1a879.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/9ee902ce.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/9f00000f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/9f0e3f63.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/a13e7af4.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/a2c2414d.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/a32f012b.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/a35b2993.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/a45f2358.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/a48f5a85.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/a5397fcf.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/a5707e08.yml",
    "content": "undecided:\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/a731a8ae.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/a9019480.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/a9d498ca.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/testing\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/abc53221.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/ac20c55f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/ad1e1894.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/aead78a6.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/aed25208.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/aee1ecce.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/aff12ab8.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/testing\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/aff73acf.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/b027b217.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/b03d4318.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/b0c2a823.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/b0fa9de1.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/b2d60f10.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/b2e2403b.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/b426a40b.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/b472bd3f.yml",
    "content": "undecided:\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/b479fb33.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/b4e981f5.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/testing\"\n"
  },
  {
    "path": ".yarn/versions/b5edf689.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/b6bb98d9.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/b774fd26.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/b7f761b8.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/b9a59bb0.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/b9fbde3d.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/ba107355.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/ba8ed0a5.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/bad2bdac.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/bb628b53.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/bc5d92ce.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/bd58ec77.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/bf0c3052.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node\"\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/c03d8f8e.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/c0558c15.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/testing\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/c0f27d9b.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/c285fbd3.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/c31e963e.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/c4866a61.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/c53f3d2c.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/c5dcf5ae.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/c6e0453e.yml",
    "content": "undecided:\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/c92ce9ed.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/c9bd14f9.yml",
    "content": "undecided:\n  - \"@subql/types\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/ca56439e.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/cb885b36.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/cd1b2f42.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/ce799c7c.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/cec7de4a.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/cf33fed9.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/d11aeeaf.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/d2b1da3c.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/d2d9e21c.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/d408027a.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/d4c4867c.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/d52444a9.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/d5ba03dd.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/d6f4a8f0.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/d80bd429.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/d8be227b.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/d9e0b292.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/da057245.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/db4f7e5e.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/dbb42c9d.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/dbefade5.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/dc0e431b.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/dc12d9bd.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/e0c9f4f0.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/e1b8ab9f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/e2a9b214.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/e4f4b87b.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/types\"\n"
  },
  {
    "path": ".yarn/versions/e5f68ec8.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/e67c5647.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/e6985a5f.yml",
    "content": "undecided:\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/e6aa2497.yml",
    "content": "undecided:\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/e74a08eb.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/e7d60c2f.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/e8cc0f85.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/eb626a6c.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/ebb85f62.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/ec268f6d.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/ecf335ea.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/ee2043f1.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/ee841b6d.yml",
    "content": "undecided:\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/eee92eb3.yml",
    "content": "undecided:\n  - \"@subql/common\"\n"
  },
  {
    "path": ".yarn/versions/ef1533bb.yml",
    "content": "undecided:\n  - \"@subql/common-substrate\"\n"
  },
  {
    "path": ".yarn/versions/ef86740e.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/f2404812.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/f3aed7d7.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/f4be8046.yml",
    "content": "undecided:\n  - \"@subql/query\"\n"
  },
  {
    "path": ".yarn/versions/f5fd9c46.yml",
    "content": "undecided:\n  - \"@subql/utils\"\n"
  },
  {
    "path": ".yarn/versions/f6c96839.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/f7027f4a.yml",
    "content": "undecided:\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/f94438ba.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/fbc620b4.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/fbe61a9b.yml",
    "content": "undecided:\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/fc193ed1.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/fc8527ab.yml",
    "content": "undecided:\n  - \"@subql/common\"\n"
  },
  {
    "path": ".yarn/versions/fd047138.yml",
    "content": "undecided:\n  - \"@subql/common-substrate\"\n  - \"@subql/node-core\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/fd2e440b.yml",
    "content": "undecided:\n  - \"@subql/node\"\n"
  },
  {
    "path": ".yarn/versions/fee55ccb.yml",
    "content": ""
  },
  {
    "path": ".yarn/versions/ff1a8bcd.yml",
    "content": "undecided:\n  - \"@subql/cli\"\n  - \"@subql/common\"\n  - \"@subql/common-substrate\"\n  - \"@subql/node\"\n  - \"@subql/node-core\"\n  - \"@subql/query\"\n  - \"@subql/testing\"\n  - \"@subql/types\"\n  - \"@subql/types-core\"\n"
  },
  {
    "path": ".yarn/versions/ff271075.yml",
    "content": "undecided:\n  - \"@subql/common\"\n  - \"@subql/node-core\"\n"
  },
  {
    "path": ".yarn/versions/ff80eab6.yml",
    "content": ""
  },
  {
    "path": ".yarnrc.yml",
    "content": "changesetBaseRefs:\n  - main\n  - origin/main\n\ncompressionLevel: mixed\n\nenableGlobalCache: false\n\nenableImmutableInstalls: false\n\nenableProgressBars: false\n\nnodeLinker: node-modules\n\nnpmAuthToken: \"${NPM_TOKEN:-}\"\n\nnpmPublishRegistry: \"https://registry.npmjs.org\"\n\nyarnPath: .yarn/releases/yarn-4.10.3.cjs\n"
  },
  {
    "path": "CLAUDE.md",
    "content": "# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n\n## Plan and Reivew\n\n### Before Starting work\n- Always in planning mode, to make a plan\n- After the plan is made, make sure to write the plan to ./.claude/tasks/TASK_NAME.md\n- The plan should be a detailed implementation and the reasoning behind them as well as the tasks broken down\n- If the task requires external knowledge or certain dependencies, also research to get the latest knowledge. (Use the Task tool for research)\n- Don't over plan it, always design an MVP\n- Once you make the plan, firstly ask me to review it . Do not continue until I approve the plan\n\n### While implementing\n- The plan should be updated as you work\n- After completing tasks in the plan you should append a detailed description of the channges you made, so the following tasks can be handed over to other engineers\n\n## Development Commands\n\n### Building\n- `yarn build` - Build all packages in the workspace using TypeScript\n- Individual package builds use `tsc -b` and copy necessary files (e.g., CLI templates)\n\n### Testing\n- `yarn test` - Run Jest tests with coverage in UTC timezone\n- `yarn test:ci` - Run tests in CI mode with specific patterns\n- `yarn test:docker` - Run tests in Docker containers\n\n### Linting and Code Quality\n- `yarn lint` - Run ESLint across all TypeScript files in packages\n- Uses ESLint with TypeScript support, Prettier, and various plugins\n- Configured with husky pre-commit hooks and lint-staged\n\n### CLI-Specific Commands (packages/cli)\n- `yarn build` - Builds CLI and copies templates to lib/\n- `yarn format` - Format code using Prettier\n- `yarn codegen` - Generate GraphQL and API client code\n- `yarn codegen:graphql` - Generate GraphQL types\n- `yarn codegen:chs` - Generate consumer host service API client\n\n## Project Architecture\n\n### Monorepo Structure\nThis is a Yarn workspace monorepo containing multiple packages:\n\n- **`@subql/cli`** - Command-line interface for SubQuery projects (OCLIF-based)\n- **`@subql/node`** - Substrate-specific SubQuery indexer implementation\n- **`@subql/node-core`** - Core chain-agnostic indexing functionality\n- **`@subql/query`** - GraphQL query service\n- **`@subql/common`** - Shared utilities and types\n- **`@subql/common-substrate`** - Substrate-specific common utilities\n- **`@subql/types-core`** - Core type definitions\n- **`@subql/utils`** - General utility functions\n\n### CLI Commands Architecture\nThe CLI uses OCLIF framework with commands organized by functionality:\n\n- **Core project lifecycle**: `init`, `build`, `publish`\n- **Code generation**: `codegen` (GraphQL types, ABI imports)\n- **Multi-chain support**: `multi-chain add`\n- **Network operations**: Commands for SubQuery Network (deployments, projects, API keys, boosts)\n- **OnFinality hosting**: Project and deployment management\n- **Migration tools**: Project upgrade utilities\n- **MCP integration**: Model Context Protocol support for AI tools\n\n### Key Technologies\n- **TypeScript** throughout with strict configuration\n- **OCLIF** for CLI framework\n- **Jest** for testing with custom module mapping for workspace packages\n- **ESBuild** and **Webpack** for bundling\n- **GraphQL** code generation\n- **Zod** for schema validation\n- **Ethers.js** for Ethereum integration\n- **WalletConnect** for wallet interactions\n\n### Development Patterns\n\n#### Package Dependencies\nUses Yarn workspace protocol (`workspace:~`) for internal package dependencies to ensure proper linking during development.\n\n#### Testing Setup\n- Custom Jest configuration with module name mapping for workspace packages\n- UTC timezone enforcement for consistent test behavior\n- Coverage collection across multiple packages\n- Special handling for Polkadot packages in transform ignore patterns\n\n#### CLI Command Structure\nCommands follow a consistent pattern:\n- Input validation using Zod schemas\n- Adapter functions for shared logic between CLI and MCP modes\n- Structured logging and error handling\n- Progress indication using ora spinner\n\n#### MCP Integration\nThe CLI supports Model Context Protocol for AI tool integration, allowing commands to be executed through AI interfaces like Cursor.\n\n### Build System\n- TypeScript compilation with project references\n- Template copying for CLI (EJS templates in src/template → lib/template)\n- OCLIF manifest generation for command discovery\n- Automatic README generation from command help\n\n### Network Support\nSubQuery supports multiple blockchain networks:\n- Polkadot/Substrate (primary)\n- Ethereum and EVM-compatible chains\n- Cosmos/CosmWasm\n- Algorand, NEAR, Stellar, Solana, Starknet, Concordium\n\nEach network has its own implementation repository, with this repo containing the core Substrate implementation and shared components.\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# SubQuery Code of Conduct\n\nSubQuery, as contributors, and maintainers pledge to make participation in our project and our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, religion, or sexual identity\nand orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n* Supporting for new contributors by providing help and pointing them to the right examples and documentation \n* Demonstrating empathy and kindness toward other people\n* Using welcoming and inclusive language\n* Being respectful of differing opinions, viewpoints, and experiences\n* Giving and gracefully accepting constructive feedback\n* Focusing on what is best for the overall community\n\nExamples of unacceptable behavior include:\n\n* The use of sexualized language or imagery, and sexual attention or\n  advances of any kind\n* Trolling, insulting or derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or email\n  address, without their explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that is deemed inappropriate, threatening, offensive,\nor harmful.\n\nProject maintainers have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, or to ban temporarily or permanently any \ncontributor for other behaviors that are deemed inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies to all of SubQuery's content on GitHub, as well as at all official SubQuery \nevents, whether offline or online.\n\nExamples of representing a project or community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Reporting Code of Conduct Issues\n\nSubQuery encourages all communities to resolve issues on their own whenever possible. \nThis builds a broader and deeper understanding and ultimately a healthier interaction. \nIn the event that an issue cannot be resolved locally, please feel free to report your concerns by \ncontacting support@subquery.network. \n\nAll complaints will be reviewed and investigated promptly and fairly. SubQuery will respect the privacy and security of the reporter of any incident.\n\nAll reports will be reviewed by a multi-person team and will result in a response that \nis deemed necessary and appropriate to the circumstances. Where additional perspectives are needed, \nthe team may seek insight from others with relevant expertise or experience. The confidentiality\nof the person reporting the incident will be kept at all times. Involved parties are never part of the review team.\n\n## Attribution\n\nThis Code of Conduct is adapted from version 2.0 of the [Contributor Covenant](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html)\n\n"
  },
  {
    "path": "LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "README.md",
    "content": "# Welcome to SubQuery!\n\n**Flexible, reliable, and decentralised APIs for your web3 project**\n\nSubQuery is an Open, Flexible, Fast and Universal data indexing framework for web3. Our mission is to help developers create the decentralised products of the future. \n\nSubQuery allows teams across multiple blockchain architectures to process and query their data. The project is inspired by the growth of data protocols serving the application layer and its aim is to help web3 projects build better dApps by allowing anyone to reliably find and consume data faster. Today, anyone can query and extract blockchain data from various supported networks in only minutes and at no cost.\n\nThe future is multi-chain - SubQuery is no different. SubQuery is well on our way to support all leading blockchain networks with support for the following:\n\n- [Polkadot (and all Substrate networks)](https://subquery.network/doc/indexer/quickstart/quickstart_chains/polkadot.html)\n- [Ethereum (and all EVM-compatible networks)](https://subquery.network/doc/indexer/quickstart/quickstart_chains/ethereum-gravatar.html)\n- [Cosmos (and all CosmWasm and Ethermint networks)](https://subquery.network/doc/indexer/quickstart/quickstart_chains/cosmos-osmosis.html)\n- [Algorand](https://subquery.network/doc/indexer/quickstart/quickstart_chains/algorand.html)\n- [NEAR](https://subquery.network/doc/indexer/quickstart/quickstart_chains/near.html)\n- [Stellar (including Soroban)](https://subquery.network/doc/indexer/quickstart/quickstart_chains/stellar.html)\n- [Solana (Beta)](https://subquery.network/doc/indexer/quickstart/quickstart_chains/solana.html)\n- [Starknet](https://subquery.network/doc/indexer/quickstart/quickstart_chains/starknet.html)\n- [Concordium](https://subquery.network/doc/indexer/quickstart/quickstart_chains/concordium.html)\n\nYou can also use SubQuery to index data from multiple networks in any combination of the above SDKs. See our [Multi-Chain Indexing Quickstart](https://subquery.network/doc/indexer/quickstart/quickstart_multichain/galxe-nft.html) for more details.\n\n## Get Started\n\n### Create a SubQuery project\n\nYou can follow our [Quick Start Guide](https://subquery.network/doc/indexer/quickstart/quickstart.html) to learn how to create, initialize, build, and publish a new SubQuery Project using the `@subql/cli` tool.\n\n### Learn and improve with our comprehensive documentation\n\nDig into every term, usecases, and best-practices that help you build a dApp which your users love. Take a look at our [detailed technical documentation](https://subquery.network/doc/indexer/build/introduction.html).\n\n### Publish your SubQuery Project to the SubQuery Network\n\nTake advantage of the decentralized SubQuery Network to host your project without managing any infrastructure. By publishing to the [SubQuery Network](https://app.subquery.network), you'll benefit from a reliable, scalable, cost-optimised, and censorship-resistant indexing service. Follow our comprehensive [publishing guide](https://subquery.network/doc/subquery_network/architects/publish.html) to learn how to upload your project to the network and start leveraging its distributed infrastructure today.\n\n### Publish to managed hosting providers\n\nIf you prefer a managed hosting option for your indexer deployment, contact our managed hosting partners.\n[Learn more](https://subquery.network/doc/indexer/run_publish/introduction.html#other-hosting-providers-in-the-subquery-community).\n\n### Run your own Indexer and Query Service\n\n[Follow our guide](https://subquery.network/doc/indexer/run_publish/run.html) to run your own SubQuery local node that you can use to debug, test, and run you own GraphQL server.\nYou're going to need to a Postgres database, a node to extract chain data, and a moderately powerful computer to run the indexer in the background.\nYou'll also use our custom-built GraphQL query service [`@subql/query`](https://www.npmjs.com/package/@subql/query) to interact with your SubQuery project.\n\n## MCP (Beta)\n\nYou can also create, build and deploy SubQuery projects using [MCP (Model Context Protocol)](https://modelcontextprotocol.io/introduction). Our MCP integration provides all the same functionality as the CLI but works well with LLMs and AI IDEs such as Cursor.\n\n[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=SubQuery&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBzdWJxbC9jbGkiLCJtY3AiXX0=)\n\n[![VSCode Install MCP Server](https://img.shields.io/badge/VS_Code-NPM-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect/mcp/install?name=SubQuery&inputs=%7B%22id%22%3A%22workingDirectory%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Working%20Directory%22%7D&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22cwd%22%3A%22%24%7Binput%3AworkingDirectory%7D%22%2C%22args%22%3A%5B%22-y%22%2C%22%40subql%2Fcli%22%2C%22mcp%22%5D%7D)\n\n### Manual configuration\n\nFor adding SubQuery MCP into other tools, the following command needs be run by the client.\n\n```bash\nnpx -y @subql/cli mcp\n```\n\nAn example manual configuration:\n\n```json\n\"subquery\": {\n  \"command\": \"npx\",\n  \"args\": [\"-y\", \"@subql/cli\", \"mcp\"]\n}\n```\n\n## Components\n\nThis repository contains all the core components of the SubQuery SDK as well as the Substrate implementation. It includes the following packages:\n\n* [`@subql/cli`](packages/cli) - The command line interface for SubQuery, used to create, build, and publish SubQuery projects\n* [`@subql/node`](packages/node) - The Substrate SubQuery SDK, which provides the indexing functionality for Substrate-based chains\n* [`@subql/node-core`](packages/node-core) - Core indexing functionality that is chain agnostic\n* [`@subql/query`](packages/query) - The GraphQL query service for SubQuery projects, allowing you to interact with your indexed data.\n* [`@subql/common`](packages/common) - Common utilities and types used across SubQuery packages\n* [`@subql/common-substrate`](packages/common-substrate) - Common utilities and types specifically for Substrate-based chains\n* [`@subql/types`](packages/types) - Type definitions for Substrate-based chains and SubQuery projects, including the project manifest and data models\n\nFor more detail on the specific network implementations please see their respective repositories:\n\n* [`@subql/node-ethereum`](https://github.com/subquery/subql-ethereum)\n* [`@subql/node-cosmos`](https://github.com/subquery/subql-cosmos)\n* [`@subql/node-algorand`](https://github.com/subquery/subql-algorand)\n* [`@subql/node-near`](https://github.com/subquery/subql-near)\n* [`@subql/node-stellar`](https://github.com/subquery/subql-stellar)\n* [`@subql/node-solana`](https://github.com/subquery/subql-solana)\n* [`@subql/node-starknet`](https://github.com/subquery/subql-starknet)\n* [`@subql/node-concordium`](https://github.com/subquery/subql-concordium)\n\n### Other Components:\n\n* [`@subql/query-subgraph`](https://github.com/subquery/query-subgraph/) - A Subgraph compatible query service for SubQuery projects.\n\n## Support\n\nWe have a vibrant community of developers and users who are always ready to help. If you have any questions, issues, or need assistance, please reach out to us through the following channels:\n\n- [Discord](https://discord.com/invite/subquery) - The best place to get help and discuss with the community\n- [X](https://twitter.com/subquerynetwork)\n- [Telegram](https://t.me/subquerynetwork)\n- [YouTube](https://www.youtube.com/c/SubQueryNetwork)\n\n## Contribute\n\nWe love contributions and feedback from the community. To contribute the code, we suggest starting by creating an issue in our main repository so we can give you support.\n\n## Copyright\n\nSubQuery is a project built with love from the team at [SubQuery](https://subquery.network) all the way from New Zealand \n\nCopyright © 2025 [SubQuery Pte Ltd](https://subquery.network) authors & contributors\n"
  },
  {
    "path": "SECURITY.md",
    "content": "# Security Policy\n\n[Please see our policy here](https://academy.subquery.network/miscellaneous/vulnerability-reporting.html)\n"
  },
  {
    "path": "contributing.md",
    "content": "# Contributing to the SubQuery project\n\nWelcome and a big thank you for considering contributing to this SubQuery project! Together we can pave the way to a more decentralised future.\n\nWhat follows is a set of guidelines (not rules) for contributing to SubQuery. Following these guidelines will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project. In return, we will reciprocate that respect by addressing your issue, considering changes, collaborating on improvements, and helping you finalise your pull requests.\n\n## Code of Conduct\n\nWe take our open source community projects and responsibility seriously and hold ourselves and other contributors to high standards of communication. By participating and contributing to this project, you agree to uphold our [Code of Conduct](https://github.com/subquery/subql/blob/main/CODE_OF_CONDUCT.md).\n\n## Getting started\n\nContributions to our repositories are made through Issues and Pull Requests (PRs). A few general guidelines that cover both:\n\n* Search for existing Issues and PRs before creating your own.\n* We work hard to makes sure issues are handled in promptly but, depending on the impact, it could take a while to investigate the root cause. A friendly @ mention in the comment thread to the submitter or a contributor can help draw attention if your issue is blocking.\n\n## How to Contribute\n\n### Reporting Bugs\n\nBugs are tracked as GitHub issues. When logging an issue, explain the problem and include additional details to help maintainers reproduce the problem:\n\n* Use a clear and descriptive title for the issue to identify the problem.\n* Describe the exact steps to reproduce the problem.\n* Describe the behavior you observed after following the steps.\n* Explain which behavior you expected to see instead and why.\n* Include screenshots if possible.\n\n### Submitting Pull Requests\n\nIn general, we follow the \"fork-and-pull\" Git workflow\n\n* Fork the repository to your own Github account\n* Clone the project to your machine\n* Create a branch locally with a succinct but descriptive name\n* Commit changes to the branch\n* Following any formatting and testing guidelines specific to this repo\n* Push changes to your fork\n* Open a PR in our repository\n\n### Publishing to Github Releases\n\nIn order to publish to github release, there are prerequisites:\n\n* Firstly in the merged commit the phrase `[release]` must be present \n* Next, you must add a description of the release in the respective package's `CHANGELOG.md`\n* There must be some difference in the package compared with main\n* Lastly, the version must be in a format of x.y.z without '-'\n\nWhen a pull request to main has been accepted the workflow will \ntry to create releases for each package where possible.\n\n## Coding Conventions\n\n### Git Commit Messages\n\n* Use the present tense (\"Add feature\" not \"Added feature\")\n* Use the imperative mood (\"Move cursor to...\" not \"Moves cursor to...\")\n* Limit the first line to 72 characters or less\n\n### JavaScript Styleguide\n\n* All JavaScript code is linted with Prettier and ESLint\n"
  },
  {
    "path": "crowdin.yaml",
    "content": "files:\n  - source: /docs/*.md\n    translation: /docs/%two_letters_code%/%original_file_name%\n  - source: /docs/create/*.md\n    translation: /docs/%two_letters_code%/create/%original_file_name%\n  - source: /docs/faqs/*.md\n    translation: /docs/%two_letters_code%/faqs/%original_file_name%\n  - source: /docs/install/*.md\n    translation: /docs/%two_letters_code%/install/%original_file_name%\n  - source: /docs/miscellaneous/*.md\n    translation: /docs/%two_letters_code%/miscellaneous/%original_file_name%\n  - source: /docs/publish/*.md\n    translation: /docs/%two_letters_code%/publish/%original_file_name%\n  - source: /docs/query/*.md\n    translation: /docs/%two_letters_code%/query/%original_file_name%\n  - source: /docs/quickstart/*.md\n    translation: /docs/%two_letters_code%/quickstart/%original_file_name%\n  - source: /docs/run/*.md\n    translation: /docs/%two_letters_code%/run/%original_file_name%\n  - source: /docs/tutorials_examples/*.md\n    translation: /docs/%two_letters_code%/tutorials_examples/%original_file_name%"
  },
  {
    "path": "deploy/k8s/README.md",
    "content": "# K8s Deploy\nThis [deploy.yaml](deploy.yaml) demonstrates how to run SubQuery in k8s.\n\nYou will need to run \n### 1. a subql-node to index data\n```yaml\napiVersion: apps/v1\nkind: Deployment\n\nmetadata:\n  name: subql-node-1\n  labels:\n    app: subql-node\n    release: subql-node-1\n\nspec:\n  selector:\n    matchLabels:\n      release: subql-node-1\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        release: subql-node-1\n    spec:\n      volumes:\n        - name: project-dir\n          emptyDir:\n            medium: Memory\n      initContainers:\n        - name: prepare\n          imagePullPolicy: IfNotPresent\n          image: node:lts-alpine\n          command:\n            - sh\n            - -c\n            - apk add git && git clone https://github.com/OnFinality-io/subql-examples /subquery && cd /subquery/block-timestamp && npm i -g @subql/cli && yarn && subql codegen && yarn build\n          volumeMounts:\n            - name: project-dir\n              mountPath: '/subquery'\n      containers:\n        - name: indexer\n          imagePullPolicy: IfNotPresent\n          image: onfinality/subql-node:v0.4.0\n          args:\n            - -f\n            - /subquery/block-timestamp\n            - --local\n          env:\n            - name: DB_HOST\n              value: subquery-db-svc\n            - name: DB_PORT\n              value: \"5432\"\n            - name: DB_USER\n              value: postgres\n            - name: DB_PASS\n              value: postgres\n            - name: DB_DATABASE\n              value: postgres\n          volumeMounts:\n            - name: project-dir\n              mountPath: '/subquery'\n          securityContext:\n            runAsUser: 1000\n\n      securityContext:\n        fsGroup: 1000\n      imagePullSecrets:\n        - name: regcred\n```\nNote: `--local` will create subquery tables in public schema, if you want to store multiple subquery in the same db, remove that flag.\n\n#### 2. a Postgres Database\n```yaml\napiVersion: apps/v1\nkind: StatefulSet\n\nmetadata:\n  name: subquery-db\n  labels:\n    app: postgres\n    release: subquery-db\n\nspec:\n  serviceName: subquery-db-svc\n\n  selector:\n    matchLabels:\n      release: subquery-db\n\n  volumeClaimTemplates:\n    - metadata:\n        name: subquery-db-pvc\n        annotations:\n          volume.beta.kubernetes.io/storage-class: standard\n      spec:\n        accessModes:\n          - ReadWriteOnce\n        resources:\n          requests:\n            storage: 20G\n  template:\n    metadata:\n      labels:\n        release: subquery-db\n    spec:\n      containers:\n        - name: db\n          imagePullPolicy: IfNotPresent\n          image: postgres:12-alpine\n          env:\n            - name: POSTGRES_PASSWORD\n              value: postgres\n          ports:\n            - containerPort: 5432\n          volumeMounts:\n            - mountPath: /var/lib/postgresql\n              name: subquery-db-pvc\n\n      securityContext:\n        fsGroup: 1000\n      imagePullSecrets:\n        - name: regcred\n---\napiVersion: v1\nkind: Service\n\nmetadata:\n  name: subquery-db-svc\n\nspec:\n  clusterIP: None\n  ports:\n    - port: 5432\n  selector:\n    release: subquery-db\n```\n\nNote that if used in production, a dedicated database should be used to get better performance.\n\n#### 3. Hasura for graphql querying\n```yaml\napiVersion: apps/v1\nkind: Deployment\n\nmetadata:\n  name: hasura-deploy\n  labels:\n    release: hasura\n\nspec:\n  selector:\n    matchLabels:\n      release: hasura\n  replicas: 1\n\n  template:\n    metadata:\n      labels:\n        release: hasura\n    spec:\n      containers:\n        - name: hasura\n          image: hasura/graphql-engine:v1.3.3\n          imagePullPolicy: IfNotPresent\n          ports:\n            - containerPort: 8080\n          env:\n            # HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres\n            #      ## enable the console served by server\n            #      HASURA_GRAPHQL_ENABLE_CONSOLE: \"true\" # set to \"false\" to disable console\n            #      ## enable debugging mode. It is recommended to disable this in production\n            #      HASURA_GRAPHQL_DEV_MODE: \"true\"\n            #      HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log\n            - name: HASURA_GRAPHQL_DATABASE_URL\n              value: postgres://postgres:postgres@subquery-db-svc:5432/postgres\n            - name: HASURA_GRAPHQL_ENABLE_CONSOLE\n              value: 'true'\n      terminationGracePeriodSeconds: 300\n```\n\nTo gain further security, an archive node should be used in the same k8s cluster, and a NetworkPolicy be added to limit all network communication within the internal network.\n```yaml\napiVersion: networking.k8s.io/v1\nkind: NetworkPolicy\nmetadata:\n  name: subquery-node-egress\nspec:\n  podSelector:\n    matchLabels:\n      release: subql-node-1\n  egress:\n    - to:\n        - ipBlock:\n            cidr: 10.0.0.0/8\n  policyTypes:\n    - Egress\n```\n"
  },
  {
    "path": "deploy/k8s/deploy.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\n\nmetadata:\n  name: subql-node-1\n  labels:\n    app: subql-node\n    release: subql-node-1\n\nspec:\n  selector:\n    matchLabels:\n      release: subql-node-1\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        release: subql-node-1\n    spec:\n      volumes:\n        - name: project-dir\n          emptyDir:\n            medium: Memory\n      initContainers:\n        - name: prepare\n          imagePullPolicy: IfNotPresent\n          image: node:lts-alpine\n          command:\n            - sh\n            - -c\n            - apk add git && git clone https://github.com/OnFinality-io/subql-examples /subquery && cd /subquery/block-timestamp && npm i -g @subql/cli && yarn && subql codegen && yarn build\n          volumeMounts:\n            - name: project-dir\n              mountPath: \"/subquery\"\n      containers:\n        - name: indexer\n          imagePullPolicy: IfNotPresent\n          image: onfinality/subql-node:v0.4.0\n          args:\n            - -f\n            - /subquery/block-timestamp\n            - --local\n          env:\n            - name: DB_HOST\n              value: subquery-db-svc\n            - name: DB_PORT\n              value: \"5432\"\n            - name: DB_USER\n              value: postgres\n            - name: DB_PASS\n              value: postgres\n            - name: DB_DATABASE\n              value: postgres\n          volumeMounts:\n            - name: project-dir\n              mountPath: \"/subquery\"\n          securityContext:\n            runAsUser: 1000\n\n      securityContext:\n        fsGroup: 1000\n      imagePullSecrets:\n        - name: regcred\n\n---\n#apiVersion: networking.k8s.io/v1\n#kind: NetworkPolicy\n#metadata:\n#  name: subquery-node-egress\n#spec:\n#  podSelector:\n#    matchLabels:\n#      release: subql-node-1\n#  egress:\n#    - to:\n#        - ipBlock:\n#            cidr: 10.0.0.0/8\n#  policyTypes:\n#    - Egress\n---\napiVersion: apps/v1\nkind: StatefulSet\n\nmetadata:\n  name: subquery-db\n  labels:\n    app: postgres\n    release: subquery-db\n\nspec:\n  serviceName: subquery-db-svc\n\n  selector:\n    matchLabels:\n      release: subquery-db\n\n  volumeClaimTemplates:\n    - metadata:\n        name: subquery-db-pvc\n        annotations:\n          volume.beta.kubernetes.io/storage-class: standard\n      spec:\n        accessModes:\n          - ReadWriteOnce\n        resources:\n          requests:\n            storage: 20G\n  template:\n    metadata:\n      labels:\n        release: subquery-db\n    spec:\n      containers:\n        - name: db\n          imagePullPolicy: IfNotPresent\n          image: postgres:12-alpine\n          env:\n            - name: POSTGRES_PASSWORD\n              value: postgres\n          ports:\n            - containerPort: 5432\n          volumeMounts:\n            - mountPath: /var/lib/postgresql\n              name: subquery-db-pvc\n\n      securityContext:\n        fsGroup: 1000\n      imagePullSecrets:\n        - name: regcred\n---\napiVersion: v1\nkind: Service\n\nmetadata:\n  name: subquery-db-svc\n\nspec:\n  clusterIP: None\n  ports:\n    - port: 5432\n  selector:\n    release: subquery-db\n---\napiVersion: apps/v1\nkind: Deployment\n\nmetadata:\n  name: hasura-deploy\n  labels:\n    release: hasura\n\nspec:\n  selector:\n    matchLabels:\n      release: hasura\n  replicas: 1\n\n  template:\n    metadata:\n      labels:\n        release: hasura\n    spec:\n      containers:\n        - name: hasura\n          image: hasura/graphql-engine:v1.3.3\n          imagePullPolicy: IfNotPresent\n          ports:\n            - containerPort: 8080\n          env:\n            # HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres\n            #      ## enable the console served by server\n            #      HASURA_GRAPHQL_ENABLE_CONSOLE: \"true\" # set to \"false\" to disable console\n            #      ## enable debugging mode. It is recommended to disable this in production\n            #      HASURA_GRAPHQL_DEV_MODE: \"true\"\n            #      HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log\n            - name: HASURA_GRAPHQL_DATABASE_URL\n              value: postgres://postgres:postgres@subquery-db-svc:5432/postgres\n            - name: HASURA_GRAPHQL_ENABLE_CONSOLE\n              value: \"true\"\n      terminationGracePeriodSeconds: 300\n"
  },
  {
    "path": "eslint.config.js",
    "content": "const {defineConfig, globalIgnores} = require('eslint/config');\n\nconst globals = require('globals');\nconst tsParser = require('@typescript-eslint/parser');\nconst typescriptEslint = require('@typescript-eslint/eslint-plugin');\nconst headers = require('eslint-plugin-headers');\nconst importX = require('eslint-plugin-import-x');\nconst sortDestructureKeys = require('eslint-plugin-sort-destructure-keys');\nconst jest = require('eslint-plugin-jest');\nconst eslintConfigPrettier = require('eslint-config-prettier');\n\nconst js = require('@eslint/js');\n\nmodule.exports = defineConfig([\n  js.configs.recommended,\n  {\n    files: ['**/*.ts'],\n    languageOptions: {\n      globals: {\n        ...globals.node,\n      },\n\n      parser: tsParser,\n\n      parserOptions: {\n        tsconfigRootDir: __dirname,\n        project: true,\n        warnOnUnsupportedTypeScriptVersion: false,\n      },\n    },\n\n    plugins: {\n      headers,\n      import: importX,\n      'sort-destructure-keys': sortDestructureKeys,\n      '@typescript-eslint': typescriptEslint,\n    },\n\n    rules: {\n      ...typescriptEslint.configs['recommended'].rules,\n      ...typescriptEslint.configs['recommended-type-checked'].rules,\n      'require-await': 'off',\n      '@typescript-eslint/require-await': 'error',\n      '@typescript-eslint/explicit-function-return-type': 'off',\n      '@typescript-eslint/no-unsafe-argument': 'off',\n      '@typescript-eslint/no-unsafe-assignment': 'off',\n      '@typescript-eslint/no-unsafe-call': 'off',\n      '@typescript-eslint/no-unsafe-member-access': 'off',\n      '@typescript-eslint/no-unsafe-return': 'off',\n      '@typescript-eslint/no-unsafe-enum': 'off',\n      '@typescript-eslint/no-unnecessary-type-assertion': 'off',\n      '@typescript-eslint/restrict-plus-operands': 'off',\n      '@typescript-eslint/restrict-template-expressions': 'off',\n      '@typescript-eslint/no-unsafe-enum-comparison': 'off',\n      '@typescript-eslint/no-base-to-string': 'off',\n      '@typescript-eslint/unbound-method': 'warn',\n      '@typescript-eslint/no-floating-promises': 'warn',\n      '@typescript-eslint/explicit-module-boundary-types': 'warn',\n      '@typescript-eslint/no-explicit-any': 'warn',\n      '@typescript-eslint/no-require-imports': 'warn',\n      '@typescript-eslint/no-unused-vars': 'warn',\n      '@typescript-eslint/ban-ts-comment': 'warn',\n      '@typescript-eslint/no-inferrable-types': 'warn',\n      '@typescript-eslint/await-thenable': 'error',\n      '@typescript-eslint/dot-notation': 'error',\n      '@typescript-eslint/no-non-null-assertion': 'error',\n\n      '@typescript-eslint/explicit-member-accessibility': [\n        'error',\n        {\n          accessibility: 'no-public',\n        },\n      ],\n\n      '@typescript-eslint/no-namespace': [\n        'error',\n        {\n          allowDeclarations: true,\n        },\n      ],\n\n      '@typescript-eslint/promise-function-async': [\n        'error',\n        {\n          checkArrowFunctions: false,\n        },\n      ],\n\n      complexity: ['error', 20],\n      curly: ['error', 'multi-line'],\n      'default-case': 'error',\n      eqeqeq: ['error', 'always'],\n      'import/no-extraneous-dependencies': 'off',\n\n      'import/order': [\n        'error',\n        {\n          alphabetize: {\n            order: 'asc',\n            caseInsensitive: true,\n          },\n        },\n      ],\n\n      'headers/header-format': [\n        'error',\n        {\n          source: 'string',\n          style: 'line',\n          variables: {\n            year: '2020-2025',\n          },\n          patterns: {\n            year: {\n              pattern: '\\\\d{4}(-\\\\d{4})?',\n              defaultValue: '2020-2025',\n            },\n          },\n          content: 'Copyright {year} SubQuery Pte Ltd authors & contributors\\nSPDX-License-Identifier: GPL-3.0',\n        },\n      ],\n\n      'sort-destructure-keys/sort-destructure-keys': [\n        2,\n        {\n          caseSensitive: true,\n        },\n      ],\n\n      'no-undef': 'off', //https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors\n      'no-console': 'off',\n      'no-duplicate-imports': 'error',\n      'no-return-await': 'error',\n      'no-undef-init': 'error',\n      'prefer-template': 'error',\n      'use-isnan': 'error',\n      ...eslintConfigPrettier.rules,\n    },\n\n    settings: {\n      'import/extensions': ['.js', '.ts'],\n\n      'import/parsers': {\n        '@typescript-eslint/parser': ['.ts', '.tsx'],\n      },\n    },\n  },\n  {\n    files: ['**/*.test.ts', '**/*.spec.ts'],\n\n    plugins: {\n      jest,\n    },\n\n    languageOptions: {\n      globals: {\n        ...globals.jest,\n      },\n    },\n\n    rules: {\n      ...jest.configs['flat/recommended'].rules,\n      '@typescript-eslint/no-non-null-assertion': 'off',\n    },\n  },\n  globalIgnores([\n    'build/**/*',\n    'api_docs/**/*',\n    '**/node_modules/**/*',\n    '**/test/**/*',\n    'scripts/*',\n    'packages/**/dist/**/*',\n    'packages/**/lib/**/*',\n    '**/.eslintrc.js',\n    '**/*.proto',\n    '**/*.ts.snap',\n    '**/sourcemap-test-*.js',\n    '**/*.js',\n    'packages/cli/graphql-codegen.ts',\n    'packages/cli/src/controller/network/__graphql__/**/*',\n  ]),\n]);\n"
  },
  {
    "path": "jest.config.js",
    "content": "/*\n * For a detailed explanation regarding each configuration property and type check, visit:\n * https://jestjs.io/docs/en/configuration.html\n */\n\nmodule.exports = {\n  // All imported modules in your tests should be mocked automatically\n  // automock: false,\n\n  // Stop running tests after `n` failures\n  // bail: 0,\n\n  // The directory where Jest should store its cached dependency information\n  // cacheDirectory: \"/private/var/folders/dt/ybhyl31d30z512ht95p7n_bw0000gn/T/jest_dx\",\n\n  // Automatically clear mock calls and instances between every test\n  // clearMocks: false,\n\n  // Indicates whether the coverage information should be collected while executing the test\n  // collectCoverage: false,\n\n  // An array of glob patterns indicating a set of files for which coverage information should be collected\n  collectCoverageFrom: [\n    'packages/cli/src/**/*.ts',\n    'packages/common/src/**/*.ts',\n    'packages/common-substrate/src/**/*.ts',\n    'packages/node-core/src/**/*.ts',\n    'packages/types-core/src/**/*.ts',\n    'packages/node/src/**/*.ts',\n    'packages/utils/src/**/*.ts',\n  ],\n\n  // The directory where Jest should output its coverage files\n  coverageDirectory: 'coverage',\n\n  // An array of regexp pattern strings used to skip coverage collection\n  // coveragePathIgnorePatterns: [\n  //   \"/node_modules/\"\n  // ],\n\n  // Indicates which provider should be used to instrument code for coverage\n  coverageProvider: 'v8',\n\n  // A list of reporter names that Jest uses when writing coverage reports\n  // coverageReporters: [\n  //   \"json\",\n  //   \"text\",\n  //   \"lcov\",\n  //   \"clover\"\n  // ],\n\n  // An object that configures minimum threshold enforcement for coverage results\n  // coverageThreshold: undefined,\n\n  // A path to a custom dependency extractor\n  // dependencyExtractor: undefined,\n\n  // Make calling deprecated APIs throw helpful error messages\n  // errorOnDeprecated: false,\n\n  // Force coverage collection from ignored files using an array of glob patterns\n  // forceCoverageMatch: [],\n\n  // A path to a module which exports an async function that is triggered once before all test suites\n  // globalSetup: undefined\n\n  // A path to a module which exports an async function that is triggered once after all test suites\n  // globalTeardown: undefined,\n\n  // A set of global variables that need to be available in all test environments\n  // globals: {},\n\n  // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.\n  // maxWorkers: \"50%\",\n\n  // An array of directory names to be searched recursively up from the requiring module's location\n  // moduleDirectories: [\n  //   \"node_modules\"\n  // ],\n\n  // An array of file extensions your modules use\n\n  moduleFileExtensions: ['js', 'json', 'ts'],\n\n  // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module\n  // moduleNameMapper: {},\n  moduleNameMapper: {\n    '^@subql/common-substrate$': '<rootDir>/packages/common-substrate/src/',\n    '^@subql/common-substrate/(.*)$': '<rootDir>/packages/common-substrate/src/$1',\n    '^@subql/common$': '<rootDir>/packages/common/src/',\n    '^@subql/common/(.*)$': '<rootDir>/packages/common/src/$1',\n    '^@subql/node-core$': '<rootDir>/packages/node-core/src/',\n    '^@subql/node-core/(.*)$': '<rootDir>/packages/node-core/src/$1',\n    '^@subql/types-core$': '<rootDir>/packages/types-core/src/',\n    '^@subql/types-core/(.*)$': '<rootDir>/packages/types-core/src/$1',\n    '^@subql/utils$': '<rootDir>/packages/utils/src/',\n    '^@subql/utils/(.*)$': '<rootDir>/packages/utils/src/$1',\n  },\n\n  // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader\n  // modulePathIgnorePatterns: [],\n\n  // Activates notifications for test results\n  // notify: false,\n\n  // An enum that specifies notification mode. Requires { notify: true }\n  // notifyMode: \"failure-change\",\n\n  // A preset that is used as a base for Jest's configuration\n  // preset: undefined,\n\n  // Run tests from one or more projects\n  // projects: undefined,\n\n  // Use this configuration option to add custom reporters to Jest\n  // reporters: undefined,\n\n  // Automatically reset mock state between every test\n  // resetMocks: false,\n\n  // Reset the module registry before running each individual test\n  // resetModules: false,\n\n  // A path to a custom resolver\n  // resolver: undefined,\n\n  // Automatically restore mock state between every test\n  // restoreMocks: false,\n\n  // The root directory that Jest should scan for tests and modules within\n  // rootDir: undefined,\n\n  // A list of paths to directories that Jest should use to search for files in\n  // roots: [\n  //   \"<rootDir>\"\n  // ],\n  // \"rootDir\": [],\n\n  // Allows you to use a custom runner instead of Jest's default test runner\n  // runner: \"jest-runner\",\n\n  // The paths to modules that run some code to configure or set up the testing environment before each test\n  // setupFiles: [],\n  setupFiles: ['<rootDir>/test/jest-setup.ts'],\n\n  // A list of paths to modules that run some code to configure or set up the testing framework before each test\n  // setupFilesAfterEnv: [],\n\n  // The number of seconds after which a test is considered as slow and reported as such in the results.\n  // slowTestThreshold: 5,\n\n  // A list of paths to snapshot serializer modules Jest should use for snapshot testing\n  // snapshotSerializers: [],\n\n  // The test environment that will be used for testing\n  testEnvironment: 'node',\n\n  // Options that will be passed to the testEnvironment\n  // testEnvironmentOptions: {},\n\n  // Adds a location field to test results\n  // testLocationInResults: false,\n\n  // The glob patterns Jest uses to detect test files\n  // testMatch: [\n  //   \"**/__tests__/**/*.[jt]s?(x)\",\n  //   \"**/?(*.)+(spec|test).[tj]s?(x)\"\n  // ],\n\n  // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped\n  testPathIgnorePatterns: [\n    '.*\\\\.fixtures\\\\.ts$',\n    'packages/cli/test/build/src/test/mappingHandler.test.ts',\n    '/node_modules/',\n  ],\n\n  // The regexp pattern or array of patterns that Jest uses to detect test files\n  testRegex: '.*\\\\.(spec)\\\\.ts$',\n\n  // This option allows the use of a custom results processor\n  // testResultsProcessor: undefined,\n\n  // This option allows use of a custom test runner\n  // testRunner: \"jasmine2\",\n\n  // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href\n  // testURL: \"http://localhost\",\n\n  // Setting this value to \"fake\" allows the use of fake timers for functions such as \"setTimeout\"\n  // timers: \"real\",\n\n  // A map from regular expressions to paths to transformers\n  transform: {\n    '^.+\\\\.(ts|tsx)?$': [\n      'ts-jest',\n      {\n        tsconfig: 'tsconfig.test.json',\n      },\n    ],\n  },\n\n  // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation\n  // transformIgnorePatterns: [\n  //   \"/node_modules/\",\n  //   \"\\\\.pnp\\\\.[^\\\\/]+$\"\n  // ],\n\n  transformIgnorePatterns: ['node_modules/(?!(@polkadot)/)'],\n\n  // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them\n  // unmockedModulePathPatterns: undefined,\n\n  // Indicates whether each individual test should be reported during the run\n  // verbose: undefined,\n\n  // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode\n  // watchPathIgnorePatterns: [],\n\n  // Whether to use watchman for file crawling\n  // watchman: true,\n};\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"subql-mono\",\n  \"private\": true,\n  \"workspaces\": [\n    \"packages/*\"\n  ],\n  \"devDependencies\": {\n    \"@actions/core\": \"^1.10.1\",\n    \"@eslint/compat\": \"^1.2.4\",\n    \"@eslint/eslintrc\": \"^3.3.1\",\n    \"@eslint/js\": \"^9.39.0\",\n    \"@geut/chan\": \"^3.2.9\",\n    \"@octokit/request\": \"^8.4.1\",\n    \"@types/node\": \"^22.12.0\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.45.0\",\n    \"@typescript-eslint/parser\": \"^8.45.0\",\n    \"eslint\": \"^9.36.0\",\n    \"eslint-config-prettier\": \"^10.1.8\",\n    \"eslint-plugin-headers\": \"^1.1.2\",\n    \"eslint-plugin-import-x\": \"^4.16.1\",\n    \"eslint-plugin-jest\": \"^29.0.1\",\n    \"eslint-plugin-prettier\": \"^5.5.1\",\n    \"eslint-plugin-sort-destructure-keys\": \"^2.0.0\",\n    \"globals\": \"^15.15.0\",\n    \"husky\": \"^7.0.4\",\n    \"jest\": \"^29.5.0\",\n    \"lint-staged\": \"^16.2.6\",\n    \"prettier\": \"^3.3.3\",\n    \"pretty-quick\": \"^4.2.2\",\n    \"ts-jest\": \"^29.2.4\",\n    \"ts-loader\": \"^9.5.1\",\n    \"ts-node\": \"^10.9.2\",\n    \"tsconfig-paths\": \"^4.2.0\",\n    \"typescript\": \"^5.7.3\"\n  },\n  \"resolutions\": {\n    \"@polkadot/api\": \"^16.4.7\",\n    \"@polkadot/util\": \"^13.5.6\"\n  },\n  \"scripts\": {\n    \"build\": \"yarn workspaces foreach -tA run build\",\n    \"lint\": \"eslint packages --ext .ts\",\n    \"test\": \"TZ=utc jest --coverage\",\n    \"test:ci\": \"TZ=utc jest --testRegex='.*\\\\.(spec|test)\\\\.ts$'\",\n    \"test:all\": \"TZ=utc node --expose-gc ./node_modules/.bin/jest --logHeapUsage --forceExit --ci -w=2 --clearMocks packages/cli/src/controller/publish-controller.spec.ts\",\n    \"test:docker\": \"docker compose -f test/docker-compose.yaml up --remove-orphans --abort-on-container-exit --build test\",\n    \"postinstall\": \"husky install\"\n  },\n  \"lint-staged\": {\n    \"*.ts\": [\n      \"eslint --cache --fix\",\n      \"prettier --write\"\n    ],\n    \"packages/**/*.!(*ejs|ts)\": [\n      \"prettier --write\"\n    ]\n  },\n  \"packageManager\": \"yarn@4.10.3\"\n}\n"
  },
  {
    "path": "packages/cli/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [6.6.3] - 2026-03-20\n### Fixed\n- Issue initializing .env file endpoints array (#2997)\n\n## [6.6.2] - 2025-12-16\n### Fixed\n- Ethers import error (#2984)\n\n### Changed\n- Update MCP SDK and lock down version (#2984)\n\n## [6.6.1] - 2025-11-20\n### Changed\n- Update glob dependency (#2970)\n\n## [6.6.0] - 2025-11-17\n### Added\n- Dynamic networks mapping for subgraph migration (#2964)\n\n### Fixed\n- Subgraph migration transaction handler filter (#2964)\n\n## [6.5.1] - 2025-10-22\n### Changed\n- Fix some typos (#2938)\n- Update swagger-typescript-api (#2939)\n\n## [6.5.0] - 2025-10-15\n### Changed\n- Swap `websocket` for `ws` dependency to fix CVEs (#2931)\n- Minor improvements and fixes from upgrading to eslint 9 with stricter settings (#2929)\n\n### Removed\n- Unused `ora` dependency (#2934)\n\n## [6.4.1] - 2025-09-26\n### Added\n- Build manifest command (#2923)\n\n### Changed\n- Rerelease of previous version\n\n## [6.4.0] - 2025-09-25\n### Added\n- Build manifest command (#2923)\n\n## [6.3.0] - 2025-09-16\n### Added\n- Support for consumer operations on the network via CLI and MCP (#2876)\n- Support for .env in mapping handlers (#2901)\n\n## [6.2.2] - 2025-08-29\n### Changed\n- Fixed typos (#2895)\n\n## [6.2.1] - 2025-08-26\n### Fixed\n- Missing jsonc-parser dependency\n\n## [6.2.0] - 2025-08-25\n### Changed\n- Revert building using esbuild and switch back to webpack (#2891)\n\n## [6.1.3] - 2025-08-01\n### Fixed\n- Issues building ts manifest when running cli from npx (#2877)\n\n## [6.1.2] - 2025-07-31\n### Fixed\n- Build command failing on Windows (#2874)\n\n## [6.1.1] - 2025-07-29\n### Fixed\n- Fix build command for multi-chain projects (#2869)\n\n## [6.1.0] - 2025-07-24\n### Changed\n- Introduce pollyfill files for building (#2865)\n\n## [6.0.2] - 2025-07-17\n### Fixed\n- MCP server version #2853\n\n### Changed\n- Workspace dependencies now match to patch versions rather than exact (#2855)\n\n## [6.0.1] - 2025-07-14\n### Fixed\n- MCP command not running (#2848)\n\n## [6.0.0] - 2025-07-14\n### Added\n- `mcp` subcommand to provide an MCP server for using subquery projects (#2844)\n\n### Changed\n- BEAKING: update all subcommands for consistency (#2844)\n  - Consistent location arguments instead of various flag names when specifying a project or project manifest\n  - Renamed commands relating to OnFinality to their own topic\n\n### Fixed\n- Issues not finding the chain specific common package when using global cli (#2844)\n\n## [5.14.1] - 2025-07-14\n### Fixed\n- Build command not checking ts types (#2842)\n\n## [5.14.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n## [5.13.0] - 2025-06-25\n### Removed\n- fs-extra dependency in favour of fs (#2824)\n\n### Changed\n- Switch build command from webpack to esbuild and support projects using pnpm (#2825)\n\n## [5.12.0] - 2025-06-12\n### Changed\n- Update `oclif` dependency (#2817)\n- Update command descriptions (#2817)\n- Alias `codegen:generate` to `import-abi` (#2817)\n\n### Added\n- The `codegen:generate` command can now attempt to pull ABIs from etherscan (#2817)\n\n## [5.11.0] - 2025-06-05\n### Changed\n- Init command to have more arguments and avoid interaction (#2809)\n\n## [5.10.0] - 2025-05-20\n### Added\n- Support for Solana Codegen (#2787)\n- Support for jsonc tsconfigs in projects (#2796)\n\n## [5.9.1] - 2025-05-08\n### Changed\n- Updated readme (#2781)\n\n## [5.9.0] - 2025-04-30\n### Removed\n- Unused node-fetch dependency (#2772)\n- Problematic boxen dependency (#2774)\n\n### Changed\n- Remove requirement for SUBQL_ACCESS_TOKEN with publish command (#2773)\n\n## [5.8.1] - 2025-04-24\n### Changed\n- Update @subql/utils\n\n## [5.8.0] - 2025-04-17\n### Added\n- Support for Solana (#2745)\n\n## [5.7.1] - 2025-03-20\n### Fixed\n- Testing not updating test results correctly if fetching block fails (#2716)\n\n## [5.7.0] - 2025-02-25\n### Changed\n- Bump `typescript` version\n\n## [5.6.0] - 2025-02-19\n### Changed\n- Update polkadot api to 15 (#2680)\n\n## [5.5.2] - 2025-02-13\n### Fixed\n- Project names containing uppercase letters cannot be deployed.\n\n## [5.5.1] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n\n### Fixed\n- Various typos\n- Codegen producing invalid typescript with dbType directive (#2662)\n\n## [5.5.0] - 2025-01-28\n### Added\n- Add some constants for Starknet\n\n### Changed\n- Added internal note relating to some tests\n\n### Fixed\n- Codegen: getByFields being invalid code (#2649)\n\n## [5.4.0] - 2024-12-11\n### Changed\n- Updated codegen to support id types other than string (#2622)\n\n### Fixed\n- Missing chalk dependency (#2622)\n\n## [5.3.3] - 2024-12-04\n### Changed\n- No actual changes, just a re-release\n\n## [5.3.2] - 2024-11-25\n### Changed\n- Update polkadot/api library to 14 version\n\n## [5.3.1] - 2024-11-22\n### Fixed\n- Multi-chain project initialization error\n\n## [5.3.0] - 2024-10-21\n### Changed\n- Improve codegen error messages (#2567)\n- Update codegen to match changes to store interface making options.limit required on getByField(s) methods (#2567)\n\n## [5.2.8] - 2024-09-25\n### Changed\n- Bump common, Added manifest support for query-subgraph.\n\n## [5.2.7] - 2024-09-16\n### Fixed\n- deployment command minor issues (#2542)\n\n### Removed\n- deprecated cli-ux dependency, switched to using inquirer and ora (#2542)\n\n## [5.2.6] - 2024-09-09\n### Changed\n- Bump webpack from 5.93.0 to 5.94.0\n\n## [5.2.4] - 2024-08-23\n### Fixed\n- Fix migrate schema missing conversion for `Bytes` and `BigDecimal` type (#2538)\n\n## [5.2.3] - 2024-08-14\n### Fixed\n- Supports subgraph migration `kind: ethereum`.\n\n## [5.2.2] - 2024-08-14\n### Added\n- fix case sensitive import for schema entities in codegen (#2211)\n\n### Fixed\n- Glob sync issue (#2534)\n\n## [5.2.1] - 2024-08-12\n### Changed\n- Default deployment type to SubQuery when deploying to the managed service (#2523).\n\n## [5.2.0] - 2024-08-05\n### Changed\n- Update inquirer dependencies (#2501)\n- Improve endpoint type to be based on core type (#2511)\n- Update dependencies (#2518)\n\n### Fixed\n- Not being able to select a custom repo when initializing a project (#2501)\n\n### Added\n- Subgraph graphql schema migration to the migrate command (#2499)\n\n## [5.1.1] - 2024-07-25\n### Changed\n- Bump versions with `@subql/common` and `@subql/utils` (#2498)\n\n## [5.1.0] - 2024-07-11\n### Changed\n- Use `IPFSHTTPClientLite` replace `IPFSHTTPClient` (#2480)\n\n## [5.0.1] - 2024-07-09\n### Changed\n- Changes to ts build settings (#2475)\n\n## [5.0.0] - 2024-07-04\n### Added\n- Enable ts strict mode\n\n### Fixed\n- The IPFS CID for multi-chain requires the directory CID.\n\n### Changed\n- Breaking Change: Removed common network packages from dependencies, only import required module from local/global when using. (#2456)\n\n## [4.15.0] - 2024-06-21\n### Changed\n- Update `@subql/utils`, `@subql/common` and other dependencies\n\n## [4.14.0] - 2024-06-18\n### Removed\n- Deprecated flare SDK (#2428)\n\n## [4.13.1] - 2024-06-12\n### Changed\n- Update `@subql/utils`\n\n## [4.13.0] - 2024-06-12\n### Changed\n- Improve logging and error handling for multichain deploy (#2434)\n\n### Fixed\n- Add missing networks for migration\n- Fixed init command path issue\n- Update common-ethereum to fix issue with ABI validation (#2435)\n\n## [4.12.0] - 2024-06-05\n### Changed\n- Bump with common dependencies\n\n## [4.11.0] - 2024-05-30\n### Added\n- `--queryLimit` flag to deploy command for query service (#2419)\n\n## [4.10.1] - 2024-05-27\n### Fixed\n- Enums being exported twice with codegen\n\n## [4.10.0] - 2024-05-22\n### Changed\n- Remove unused imports (#2408)\n\n## [4.9.0] - 2024-05-20\n### Changed\n- Bump common dependencies to latest version\n\n## [4.8.0] - 2024-05-08\n### Changed\n- Bump with @subql/util, update polkadot dependencies to v11\n\n## [4.7.0] - 2024-05-02\n### Added\n- Migrate a subgraph project to subquery project\n  - enbale migrate its `subgraph.yaml` to `project.ts`\n\n## [4.6.0] - 2024-04-24\n### Added\n- support env & env commands (#2345)\n\n## [4.5.2] - 2024-04-12\n### Fixed\n- Deployments failing with `this.jsonEnabled is not a function` (#2351)\n\n## [4.5.1] - 2024-04-11\n### Fixed\n- Upgrade common dependencies in cli in order to fix build missing `GetOptions` issue\n\n## [4.5.0] - 2024-03-28\n### Added\n- Support multi-chain deployments (#2290)\n\n### Fixed\n- Auth token being undefined when loading from file (#2309)\n\n### Changed\n- Update codegen to use options type and add comment to generated code (#2325)\n\n## [4.4.1] - 2024-03-08\n### Fixed\n- Access token paths on Windows for commands other than publish (#2291)\n\n## [4.4.0] - 2024-03-05\n### Changed\n- Update deployment command to align with ManagedService API changes (#2282)\n\n## [4.3.0] - 2024-02-29\n### Fixed\n- Publish command output flag not working (#2270)\n\n### Changed\n- Update deployment flags to match managed service (#2274)\n\n## [4.2.7] - 2024-02-23\n### Changed\n- Bump axios from 0.27.0 to 0.28.0 (#2262)\n\n## [4.2.6] - 2024-02-02\n### Fixed\n- Bump `common-cosmos` Codegen failing on Windows by using forked version of `telescope` (#2239)\n- Bump `common-ethereum` with Codegen typechain fix (#2239)\n\n## [4.2.5] - 2023-12-22\n### Fixed\n- codegen for some ethereum projects with assets\n\n## [4.2.4] - 2023-12-14\n### Changed\n- Breaking: Update cosmos codegen to fix generating invalid typescript, this could require minor changes to your imports and usage of message types\n- Update all sdk common dependencies\n\n## [4.2.3] - 2023-11-30\n### Removed\n- removed deprecated endpoint query on endpoint suggestion (#2190)\n\n## [4.2.2] - 2023-11-24\n### Changed\n- Update deployment command with v3 api (#2177)\n\n## [4.2.1] - 2023-11-13\n### Changed\n- Update `@subql/utils`\n\n## [4.2.0] - 2023-10-31\n### Added\n- Support building and publishing Concordium projects (#2078)\n- ts-manifest compatibility with `codegen:generate` command (#2111)\n\n## [4.1.0] - 2023-10-25\n### Changed\n- Removed `validate` command from cli, also removed from `@subql/validator` from dependencies (#2121)\n\n### Added\n- Multichain support for TypeScript manifest (#2097)\n- Support for multi endpoints CLI deployment (#2117)\n\n### Fixed\n- Building TS manifest on Windows (#2118)\n\n## [4.0.5] - 2023-10-18\n### Changed\n- Update error handling on deployment commands (#2108)\n\n## [4.0.4] - 2023-10-17\n### Fixed\n- handle error on generate command (#2095)\n\n## [4.0.3] - 2023-10-11\n### Fixed\n- Fixed yaml readers/writers on `init` command (#2082)\n\n## [4.0.2] - 2023-10-11\n### Fixed\n- Codegen expecting a ts manifest but not a yaml manifest (#2084)\n\n## [4.0.1] - 2023-10-10\n### Fixed\n- Fix `codegen` logic for Cosmos Manifests (#2073)\n- Error when generating manifest from ts (#2075)\n\n## [4.0.0] - 2023-10-04\n### Fixed\n- Fix incorrect codegen on unstructured storage proxy contract abis (#1976)\n- Publish multichain projects file to a directory in ipfs (#1981)\n\n### Added\n- Support for cosmwasm contract abi codegen (#1989)\n- Update `subql init` to use proxy templates (#1991)\n- Support build and publish project from typescript manifest. (#2011)\n\n### Changed\n- Update common packages version from `latest`, to ensure they will be bumped (#1992)\n- Update model codegen to include `getByFields` and produce prettier code (#1993)\n- migrate from `oclif` v1 to v2\n- Move abi-codegen from `cli` to `common-ethereum` (#2010)\n- Update common dependencies from each SDK with latest changes\n\n### Removed\n- replaced `oclif-dev` dependency with `oclif` due to v2 migration (#1998)\n- globby from dev dependencies (#1998)\n\n## [3.6.1] - 2023-08-29\n### Fixed\n- Publish command creating invalid deployment (#1977)\n\n## [3.6.0] - 2023-08-25\n### Added\n- `codegen` support for Cosmos (Protobufs to ts) (#1958)\n\n### Fixed\n- Publish command uploading files to IPFS multiple times (#1967)\n\n## [3.5.1] - 2023-08-16\n### Fixed\n- Ensure absolute pathing for all path related flags (#1947)\n\n## [3.5.0] - 2023-08-11\n### Added\n- abi `codegen` support for `cosmos/Ethermint` (#1936)\n\n### Fixed\n- Ensure non evm custom datasource do not generate abis (#1936)\n\n## [3.4.0] - 2023-08-10\n### Added\n- Add new command `codegen:generate`, allowing users to generate a scaffold based on selected ABIs (#1896)\n- `subql init` supports scaffold creation via `codegen:generate` (#1896)\n- Support for update availability logs (#1930)\n\n### Changed\n- change soroban packages to stellar (#1929)\n\n## [3.3.3] - 2023-08-04\n### Fixed\n- `subql codegen` with different pathing ABIs (#1916)\n- Fix codegen entity constructor missing array on field (#1922)\n\n### Added\n- Support building and publishing soroban projects (#1919)\n\n## [3.3.2] - 2023-07-31\n### Fixed\n- Update license in all packages (#1891)\n\n## [3.3.1] - 2023-07-11\n### Fixed\n- `codegen` not working with artifact format files (#1867)\n\n## [3.3.0] - 2023-06-26\n### Removed\n- Support for Terra and Avalanche SDKs. Note: Avalanche is still supported through the Ethereum SDK. (#1841)\n\n## [3.2.0] - 2023-06-19\n### Added\n- Simply multichain running, allow codegen for multichain projects, support adding new chain manifest (#1746)\n\n## [3.1.1] - 2023-06-07\n### Fixed\n- Ensure codegen supports generatedAbis dynamic and custom datasources. (#1780)\n- Codegen will remove unused generatedAbis from generated files (#1789)\n\n## [3.1.0] - 2023-05-31\n### Changed\n- Handle composite indexes with codegen (#1759)\n\n## [3.0.0] - 2023-05-19\n### Changed\n- Codegen will now generate code that is compatible with TS strict settings. This changes entity constructors to take all required parameters. The create method is still the preferred way of defining entities. (#1713)\n\n## [2.1.0] - 2023-05-10\n### Removed\n- Support for older manifest versions (except for migrations) (#1659)\n\n## [2.0.0] - 2023-04-20\n### Changed\n- Major release 2.0.0, align with other package versions\n\n### Added\n- Build `*.test.ts` file to support testing Framework (#1584)\n\n## [1.13.1] - 2023-03-30\n### Added\n- Change in migrate controller, add support for Multiple endpoints (#1551)\n\n### Fixed\n- Fix previous release 1.13.0 failed\n\n## [1.13.0] - 2023-03-29\n### Added\n- `Build` generate sourcemap for projects (#1569)\n\n### Fixed\n- Fix codegen exit when ABI is not valid (#1570)\n- Add validation for `codegen`, graphql conflicts (#1564)\n\n## [1.12.3] - 2023-03-09\n### Fixed\n- Fix ABI codegen skipped due to runtime validation (#1552)\n\n## [1.12.2] - 2023-03-07\n### Fixed\n- Fix `subql publish` with Avalanche manifest (#1546)\n\n## [1.12.1] - 2023-03-07\n### Changed\n- `@subql/common-avalanche` dependency update\n\n## [1.12.0] - 2023-03-06\n### Added\n- Support ETH abi codegen (#1532)\n\n## [1.11.0] - 2023-01-31\n### Fixed\n- Fix `subql publish` failing on windows (#1502)\n\n### Added\n- Support for Near (#1498)\n\n## [1.10.1] - 2022-12-22\n### Fixed\n- Fix command `codegen` to allow templates with other SDKs(#1470)\n\n## [1.10.0] - 2022-12-19\n### Changed\n- Update deploy cli to fix `disableHistorical` option (#1460)\n\n## [1.9.1] - 2022-12-05\n### Fixed\n- Fix for `subql` codegen `--file` flag. (#1446)\n\n## [1.9.0] - 2022-11-23\n### Added\n- Add support to cli/validator for flare (#1416)\n\n## [1.8.0] - 2022-10-27\n### Fixed\n- Fix CLI init project manifest missing comments issue (#1380)\n\n## [1.7.0] - 2022-10-27\n### Added\n- `--dedicatedDB` option to project deployment. (#1355)\n- Flags for advanced settings. (#1352)\n\n### Fixed\n- Specifying query and node versions with or without a `v`. (#1354)\n\n## [1.6.4] - 2022-10-06\n### Changed\n- Update IPFS endpoints. (#1337)\n\n## [1.6.3] - 2022-09-29\n### Fixed\n- Fix Output URL for `project:create-project` command. (#1324)\n- Improve `codegen` command error logs. (#1324)\n\n## [1.6.2] - 2022-09-24\n### Fixed\n- Fixed cli publish failed due to upload file logic unable to validate section is `null`. (#1316)\n\n## [1.6.1] - 2022-09-13\n### Fixed\n- Fixed `subql-init` for Algorand, Avalanche and Cosmos.\n\n## [1.6.0] - 2022-08-17\n### Changed\n- Support new templates mono-repo structure. (#1236)\n\n## [1.5.1] - 2022-08-11\n### Fixed\n- Bump version for missing update `subql-common` in previous release.\n\n## [1.5.0] - 2022-08-04\n### Added\n- Support for Algorand projects (#1228)\n\n### Fixed\n- Removing `.github` directory from starter templates (#1223)\n\n## [1.4.0] - 2022-07-27\n### Added\n- Added redeploy deployment feature (#1205)\n- Rename `--project_name` flag to `--projectName` (#1205)\n\n### Fixed\n- Use latest runner validation from common package. (#1195)\n\n## [1.3.1] - 2022-07-13\n### Fixed\n- Added resolution to downgrade `node-fetch` as we have not support ES module (1184)\n- Added encodedURI for project deployment key (#1183)\n\n## [1.3.0] - 2022-07-12\n### Fixed\n- CLI deployment when no dictionary or matching endpoint is provided (#1180)\n\n### Added\n- Storing ipfs-cid locally (#1169)\n- New Flag `-d` added to `deployment:deploy` command allowing runner versions and endpoints to use default values from manifest (#1176)\n\n### Changed\n- Rename `deploy` command back to `deployment` (#1176)\n\n## [1.2.1] - 2022-07-06\n### Added\n- Add cosmos family to cli init (#1165)\n\n## [1.2.0] - 2022-07-05\n### Fixed\n- update common-avalanche,fix missing filter, asset and options (#1158)\n\n### Changed\n- Rename `deployment` command to `deploy`(#1149)\n\n## [1.1.1] - 2022-06-29\n### Fixed\n- Fixed typo in publish log (#1135)\n\n### Changed\n- Update init and publish tests with manifest 1.0.0 (#1114)\n\n## [1.1.0] - 2022-06-22\n### Changed\n- Increase publish project body size up to 50mb (#1100)\n- Validate support multi networks, also support validate IPFS deployment. To validate project manifest spec version below 1.0.0, will require to provide `network-family` (#1115)\n\n### Added\n- Added avalanche and cosmos to publish (#1105)\n- Now cli able to manage deployment on host service, promote, deploy and delete (#1102)\n\n## [1.0.1] - 2022-05-31\n### Fixed\n- Fix cli init duplicate chainId and genesisHash (#1058)\n\n## [1.0.0] - 2022-05-11\n### Fixed\n- fix undefined file under chainTypes (#1010)\n\n## [0.29.0] - 2022-05-11\n### Changed\n- remove use manifest in codegen (#1001)\n\n## [0.28.0] - 2022-05-06\n### Fixed\n- Fix migrate missing chain types (#975)\n\n### Changed\n- Refactor init command and add network family (#979)\n\n## [0.27.0] - 2022-05-02\n### Added\n- Add utils package (#928)\n\n## [0.26.1] - 2022-04-27\n### Added\n- Support for Terra dynamic datasources (#899)\n\n### Changed\n- Output build errors (#901)\n\n## [0.26.0] - 2022-04-26\n### Added\n- Add manifest specVersion 1.0.0 template to `subql init` command  (#888)\n\n### Changed\n- Drop support for manifest 0.0.1 templates (#900)\n\n## [0.25.0] - 2022-04-12\n### Changed\n- Update @subql/common-terra to allow specifying a mantlemint endpoint (#885)\n\n## [0.24.0] - 2022-04-06\n### Added\n- Add support for manifest 1.0.0, migrate will now upgrade project to 1.0.0 (#845)\n\n## [0.23.0] - 2022-03-22\n### Added\n- Use `TerraProjectManifestVersioned` to support terra contract handling (#848)\n\n## [0.22.0] - 2022-03-01\n### Added\n- Support terra in command line, add terra template (#781)\n\n## [0.21.0] - 2022-02-24\n### Added\n- Support cli publish from a manifest file (#800)\n\n## [0.20.1] - 2022-02-15\n### Fixed\n- Patch release with @subql/validator version bump, in order to fix validation issue.\n\n## [0.20.0] - 2022-02-09\n### Added\n- Add support for dynamic data sources (#773)\n- Add authentication for publish command, access token will read from `SUBQL_ACCESS_TOKEN` in environment or under `$HOME/.subql/SUBQL_ACCESS_TOKEN` (#778)\n\n### Fixed\n- Fix codegen importing jsonType interface multiple times (#784)\n- Fix cli build command issues (#789)\n\n## [0.19.0] - 2022-01-21\n### Added\n- Allow use `subql build` self contained js as instructed by `exports` fields under`package.json` (#753)\n\n### Changed\n- Remove .github directory from new projects (#763)\n\n## [0.18.0] - 2022-01-18\n### Added\n- Filter project templates by selected specVersion (#751)\n\n## [0.17.0] - 2022-01-13\n### Added\n- Warning and advice for use manifest specVersion v0.0.1 (#730)\n- Message for install git suggestion (#733)\n- Allow user to select templates when run `subql init` (#712)\n\n## [0.16.2] - 2021-12-16\n### Changed\n- Update subql/validator dependencies (#720)\n\n## [0.16.1] - 2021-11-30\n### Fixed\n- Remove auto generated enum types and interfaces (#680)\n\n## [0.16.0] - 2021-11-19\n### Fixed\n- Fix migrate datasource entry path (#641)\n- Touch up command line description (#628)\n\n### Changed\n- Codegen controller using new type mappings (#532)\n- Update publish command to handle custom datasource (#641)\n- init command now create spec v0.2.0 project by default (#643)\n\n### Added\n- Support enums in codegen (#551)\n\n## [0.15.0] - 2021-11-03\n### Changed\n- Improve ts typing for `static create()` function in model.ts template (#573)\n- Use jsonrpc client to fetch genesis hash , drop dependencies of polkadot-api (#595)\n- Update `subql validate` to validate custom ds (#596)\n- Bump dependencies (#584)\n\n### Added\n- New command `Subql migrate` allow convert project manifest v0.0.1 to v0.2.0 (#587)\n\n## [0.14.0] - 2021-10-26\n### Added\n- Added publish CLI command which uploads a project to IPFS if it is using project manifest v0.2.0 (#486)\n\n### Changed\n- Update Polkadot/api to 6.5.2 (#564)\n\n## [0.13.0] - 2021-10-12\n### Added\n- Cli now support for manifest spec version `0.2.0` (#495)\n- Expand on cli `init` capabilities, default to not installing dependencies (#485)\n\n## [0.12.0] - 2021-09-16\n### Added\n- Adds command `subql build` which webpacks the project code into a single file (#475)\n\n## [0.11.2] - 2021-09-01\n### Fixed\n- Fix codegen template for jsonField optional field (#459)\n\n## [0.11.1] - 2021-08-27\n### Fixed\n- Deprecated warnings (#448)\n\n## [0.11.0] - 2021-08-20\n### Added\n- Support Bytea type in Cli (#432)\n\n## [0.10.0] - 2021-06-25\n### Changed\n- Update dependencies (#358)\n\n## [0.9.3] - 2021-05-04\n### Added\n- Codegen will support indexed jsonb fields. No get methods will be created for such fields in the entity class. (#291)\n\n## [0.9.2] - 2021-04-21\n### Added\n- Codegen allow query by foreign key field (#285)\n\n## [0.9.0] - 2021-04-19\n### Added\n- annotation is now supported in\n- Can be added on any field of any entity except primary or foreign keys\n- `@subql/node` will recognise it and create table with additional indexes to speed querying\n- Allow query by indexed field via `global.store` (#271)\n- annotation is now supported in\n- We'll automatically generate corresponding JSON interfaces when querying this data (#275)\n- Read more about how you can use this in our [updated docs](https://doc.subquery.network/create/graphql.html#json-type)\n\n## [0.8.0] - 2021-03-11\n### Added\n- Update subquery repo path (#196)\n- codegen will create foreign key for relations: 1-1, and 1-N  (#212)\n- codegen support type Boolean (#216)\n- add subcommand validate (#219)\n\n## [0.7.3] - 2021-02-15\n### Changed\n- bump dependencies (#148)\n\n## [0.7.2] - 2021-02-03\n### Fixed\n- fix yaml formatting problem in the starter scaffold generated by subql init (#140)\n\n## [0.7.1] - 2021-01-27\n### Fixed\n- add missing cli-ux dependency (#133)\n\n## [0.7.0] - 2021-01-27\n### Added\n- add user interaction for subql init (#118)\n\n## [0.6.0] - 2021-01-21\n### Fixed\n- read graphql schema from the location defined in project.yml (#105)\n\n## [0.5.0] - 2021-01-15\n### Changed\n- subql init doesn't need --starter by default (#86)\n- model template use bigint instead of BigInt (#82)\n\n## [0.2.0] - 2020-12-22\n### Changed\n- support subcommand codegen\n- support subcommand init\n\n[Unreleased]: https://github.com/subquery/subql/compare/cli/6.6.3...HEAD\n[6.6.3]: https://github.com/subquery/subql/compare/cli/6.6.2...cli/6.6.3\n[6.6.2]: https://github.com/subquery/subql/compare/cli/6.6.1...cli/6.6.2\n[6.6.1]: https://github.com/subquery/subql/compare/cli/6.6.0...cli/6.6.1\n[6.6.0]: https://github.com/subquery/subql/compare/cli/6.5.1...cli/6.6.0\n[6.5.1]: https://github.com/subquery/subql/compare/cli/6.5.0...cli/6.5.1\n[6.5.0]: https://github.com/subquery/subql/compare/cli/6.4.1...cli/6.5.0\n[6.4.1]: https://github.com/subquery/subql/compare/cli/6.4.0...cli/6.4.1\n[6.4.0]: https://github.com/subquery/subql/compare/cli/6.3.0...cli/6.4.0\n[6.3.0]: https://github.com/subquery/subql/compare/cli/6.2.2...cli/6.3.0\n[6.2.2]: https://github.com/subquery/subql/compare/cli/6.2.1...cli/6.2.2\n[6.2.1]: https://github.com/subquery/subql/compare/cli/6.2.0...cli/6.2.1\n[6.2.0]: https://github.com/subquery/subql/compare/cli/6.1.3...cli/6.2.0\n[6.1.3]: https://github.com/subquery/subql/compare/cli/6.1.2...cli/6.1.3\n[6.1.2]: https://github.com/subquery/subql/compare/cli/6.1.1...cli/6.1.2\n[6.1.1]: https://github.com/subquery/subql/compare/cli/6.1.0...cli/6.1.1\n[6.1.0]: https://github.com/subquery/subql/compare/cli/6.0.2...cli/6.1.0\n[6.0.2]: https://github.com/subquery/subql/compare/cli/6.0.1...cli/6.0.2\n[6.0.1]: https://github.com/subquery/subql/compare/cli/6.0.0...cli/6.0.1\n[6.0.0]: https://github.com/subquery/subql/compare/cli/5.14.1...cli/6.0.0\n[5.14.1]: https://github.com/subquery/subql/compare/cli/5.14.0...cli/5.14.1\n[5.14.0]: https://github.com/subquery/subql/compare/cli/5.13.0...cli/5.14.0\n[5.13.0]: https://github.com/subquery/subql/compare/cli/5.12.0...cli/5.13.0\n[5.12.0]: https://github.com/subquery/subql/compare/cli/5.11.0...cli/5.12.0\n[5.11.0]: https://github.com/subquery/subql/compare/cli/5.10.0...cli/5.11.0\n[5.10.0]: https://github.com/subquery/subql/compare/cli/5.9.1...cli/5.10.0\n[5.9.1]: https://github.com/subquery/subql/compare/cli/5.9.0...cli/5.9.1\n[5.9.0]: https://github.com/subquery/subql/compare/cli/5.8.1...cli/5.9.0\n[5.8.1]: https://github.com/subquery/subql/compare/cli/5.8.0...cli/5.8.1\n[5.8.0]: https://github.com/subquery/subql/compare/cli/5.7.1...cli/5.8.0\n[5.7.1]: https://github.com/subquery/subql/compare/cli/5.7.0...cli/5.7.1\n[5.7.0]: https://github.com/subquery/subql/compare/cli/5.6.0...cli/5.7.0\n[5.6.0]: https://github.com/subquery/subql/compare/cli/5.5.2...cli/5.6.0\n[5.5.2]: https://github.com/subquery/subql/compare/cli/5.5.1...cli/5.5.2\n[5.5.1]: https://github.com/subquery/subql/compare/cli/5.5.0...cli/5.5.1\n[5.5.0]: https://github.com/subquery/subql/compare/cli/5.4.0...cli/5.5.0\n[5.4.0]: https://github.com/subquery/subql/compare/cli/5.3.3...cli/5.4.0\n[5.3.3]: https://github.com/subquery/subql/compare/cli/5.3.2...cli/5.3.3\n[5.3.2]: https://github.com/subquery/subql/compare/cli/5.3.1...cli/5.3.2\n[5.3.1]: https://github.com/subquery/subql/compare/cli/5.3.0...cli/5.3.1\n[5.3.0]: https://github.com/subquery/subql/compare/cli/5.2.8...cli/5.3.0\n[5.2.8]: https://github.com/subquery/subql/compare/cli/5.2.7...cli/5.2.8\n[5.2.7]: https://github.com/subquery/subql/compare/cli/5.2.6...cli/5.2.7\n[5.2.6]: https://github.com/subquery/subql/compare/cli/5.2.4...cli/5.2.6\n[5.2.4]: https://github.com/subquery/subql/compare/cli/5.2.3...cli/5.2.4\n[5.2.3]: https://github.com/subquery/subql/compare/cli/5.2.2...cli/5.2.3\n[5.2.2]: https://github.com/subquery/subql/compare/cli/5.2.1...cli/5.2.2\n[5.2.1]: https://github.com/subquery/subql/compare/cli/5.2.0...cli/5.2.1\n[5.2.0]: https://github.com/subquery/subql/compare/cli/5.1.1...cli/5.2.0\n[5.1.1]: https://github.com/subquery/subql/compare/cli/5.1.0...cli/5.1.1\n[5.1.0]: https://github.com/subquery/subql/compare/cli/5.0.1...cli/5.1.0\n[5.0.1]: https://github.com/subquery/subql/compare/cli/5.0.0...cli/5.0.1\n[5.0.0]: https://github.com/subquery/subql/compare/cli/4.15.0...cli/5.0.0\n[4.15.0]: https://github.com/subquery/subql/compare/cli/4.14.0...cli/4.15.0\n[4.14.0]: https://github.com/subquery/subql/compare/cli/4.13.1...cli/4.14.0\n[4.13.1]: https://github.com/subquery/subql/compare/cli/4.13.0...cli/4.13.1\n[4.13.0]: https://github.com/subquery/subql/compare/cli/4.12.0...cli/4.13.0\n[4.12.0]: https://github.com/subquery/subql/compare/cli/4.11.0...cli/4.12.0\n[4.11.0]: https://github.com/subquery/subql/compare/cli/4.10.1...cli/4.11.0\n[4.10.1]: https://github.com/subquery/subql/compare/cli/4.10.0...cli/4.10.1\n[4.10.0]: https://github.com/subquery/subql/compare/cli/4.9.0...cli/4.10.0\n[4.9.0]: https://github.com/subquery/subql/compare/cli/4.8.0...cli/4.9.0\n[4.8.0]: https://github.com/subquery/subql/compare/cli/4.7.0...cli/4.8.0\n[4.7.0]: https://github.com/subquery/subql/compare/cli/4.6.0...cli/4.7.0\n[4.6.0]: https://github.com/subquery/subql/compare/cli/4.5.2...cli/4.6.0\n[4.5.2]: https://github.com/subquery/subql/compare/cli/4.5.1...cli/4.5.2\n[4.5.1]: https://github.com/subquery/subql/compare/cli/4.5.0...cli/4.5.1\n[4.5.0]: https://github.com/subquery/subql/compare/cli/4.4.1...cli/4.5.0\n[4.4.1]: https://github.com/subquery/subql/compare/cli/4.4.0...cli/4.4.1\n[4.4.0]: https://github.com/subquery/subql/compare/cli/4.3.0...cli/4.4.0\n[4.3.0]: https://github.com/subquery/subql/compare/cli/4.2.7...cli/4.3.0\n[4.2.7]: https://github.com/subquery/subql/compare/cli/4.2.6...cli/4.2.7\n[4.2.6]: https://github.com/subquery/subql/compare/cli/4.2.5...cli/4.2.6\n[4.2.5]: https://github.com/subquery/subql/compare/cli/4.2.4...cli/4.2.5\n[4.2.4]: https://github.com/subquery/subql/compare/cli/4.2.3...cli/4.2.4\n[4.2.3]: https://github.com/subquery/subql/compare/cli/4.2.2...cli/4.2.3\n[4.2.2]: https://github.com/subquery/subql/compare/cli/4.2.1...cli/4.2.2\n[4.2.1]: https://github.com/subquery/subql/compare/cli/4.2.0...cli/4.2.1\n[4.2.0]: https://github.com/subquery/subql/compare/cli/4.1.0...cli/4.2.0\n[4.1.0]: https://github.com/subquery/subql/compare/cli/4.0.5...cli/4.1.0\n[4.0.5]: https://github.com/subquery/subql/compare/cli/4.0.4...cli/4.0.5\n[4.0.4]: https://github.com/subquery/subql/compare/cli/4.0.3...cli/4.0.4\n[4.0.3]: https://github.com/subquery/subql/compare/cli/4.0.2...cli/4.0.3\n[4.0.2]: https://github.com/subquery/subql/compare/cli/4.0.1...cli/4.0.2\n[4.0.1]: https://github.com/subquery/subql/compare/cli/4.0.0...cli/4.0.1\n[4.0.0]: https://github.com/subquery/subql/compare/cli/3.6.1...cli/4.0.0\n[3.6.1]: https://github.com/subquery/subql/compare/cli/3.6.0...cli/3.6.1\n[3.6.0]: https://github.com/subquery/subql/compare/cli/3.5.1...cli/3.6.0\n[3.5.1]: https://github.com/subquery/subql/compare/cli/3.5.0...cli/3.5.1\n[3.5.0]: https://github.com/subquery/subql/compare/cli/3.4.0...cli/3.5.0\n[3.4.0]: https://github.com/subquery/subql/compare/cli/3.3.3...cli/3.4.0\n[3.3.3]: https://github.com/subquery/subql/compare/cli/3.3.2...cli/3.3.3\n[3.3.2]: https://github.com/subquery/subql/compare/cli/3.3.1...cli/3.3.2\n[3.3.1]: https://github.com/subquery/subql/compare/cli/3.3.0...cli/3.3.1\n[3.3.0]: https://github.com/subquery/subql/compare/cli/3.2.0...cli/3.3.0\n[3.2.0]: https://github.com/subquery/subql/compare/cli/v3.1.1...cli/v3.2.0\n[3.1.1]: https://github.com/subquery/subql/compare/cli/3.1.0...cli/3.1.1\n[3.1.0]: https://github.com/subquery/subql/compare/cli/3.0.0...cli/3.1.0\n[3.0.0]: https://github.com/subquery/subql/compare/cli/2.1.0...cli/3.0.0\n[2.1.0]: https://github.com/subquery/subql/compare/cli/2.0.0.../cli/2.1.0\n[2.0.0]: https://github.com/subquery/subql/compare/cli/.1.13.1../cli/2.0.0\n[1.13.1]: https://github.com/subquery/subql/compare/cli/1.13.0.../cli/1.13.1\n[1.13.0]: https://github.com/subquery/subql/compare/cli/1.12.3.../cli/1.13.0\n[1.12.3]: https://github.com/subquery/subql/compare/cli/1.12.2.../cli/1.12.3\n[1.12.2]: https://github.com/subquery/subql/compare/cli/1.12.1.../cli/1.12.2\n[1.12.1]: https://github.com/subquery/subql/compare/cli/1.12.0.../cli/1.12.1\n[1.12.0]: https://github.com/subquery/subql/compare/cli/1.11.0.../cli/1.12.0\n[1.11.0]: https://github.com/subquery/subql/compare/cli/1.10.1.../cli/1.11.0\n[1.10.1]: https://github.com/subquery/subql/compare/cli/1.10.0.../cli/1.10.1\n[1.10.0]: https://github.com/subquery/subql/compare/cli1.9.1/.../cli/1.10.0\n[1.9.1]: https://github.com/subquery/subql/compare/cli/1.9.0.../cli/1.9.1\n[1.9.0]: https://github.com/subquery/subql/compare/cli/1.8.0.../cli/1.9.0\n[1.8.0]: https://github.com/subquery/subql/compare/cli/1.7.0.../cli/1.8.0\n[1.7.0]: https://github.com/subquery/subql/compare/cli/1.6.4.../cli/1.7.0\n[1.6.4]: https://github.com/subquery/subql/compare/cli/1.6.3.../cli/1.6.4\n[1.6.3]: https://github.com/subquery/subql/compare/cli/1.6.2.../cli/1.6.3\n[1.6.2]: https://github.com/subquery/subql/compare/cli/1.6.1.../cli/1.6.2\n[1.6.1]: https://github.com/subquery/subql/compare/cli/1.6.0.../cli/1.6.1\n[1.6.0]: https://github.com/subquery/subql/compare/cli/1.5.1.../cli/1.6.0\n[1.5.1]: https://github.com/subquery/subql/compare/cli/1.5.0.../cli/1.5.1\n[1.5.0]: https://github.com/subquery/subql/compare/cli/1.4.0.../cli/1.5.0\n[1.4.0]: https://github.com/subquery/subql/compare/cli/1.3.1.../cli/1.4.0\n[1.3.1]: https://github.com/subquery/subql/compare/cli/1.3.0.../cli/1.3.1\n[1.3.0]: https://github.com/subquery/subql/compare/cli/1.2.1.../cli/1.3.0\n[1.2.1]: https://github.com/subquery/subql/compare/cli/1.2.0.../cli/1.2.1\n[1.2.0]: https://github.com/subquery/subql/compare/cli/1.1.1.../cli/1.2.0\n[1.1.1]: https://github.com/subquery/subql/compare/cli/1.1.0.../cli/1.1.1\n[1.1.0]: https://github.com/subquery/subql/compare/cli/1.0.1.../cli/1.1.0\n[1.0.1]: https://github.com/subquery/subql/compare/cli/1.0.0.../cli/1.0.1\n[1.0.0]: https://github.com/subquery/subql/compare/cli/.0.29.0../cli/1.0.0\n[0.29.0]: https://github.com/subquery/subql/compare/cli/0.28.0.../cli/0.29.0\n[0.28.0]: https://github.com/subquery/subql/compare/cli/0.27.0.../cli/0.28.0\n[0.27.0]: https://github.com/subquery/subql/compare/cli/0.26.1.../cli/0.27.0\n[0.26.1]: https://github.com/subquery/subql/compare/cli/0.26.0.../cli/0.26.1\n[0.26.0]: https://github.com/subquery/subql/compare/cli/0.25.0.../cli/0.26.0\n[0.25.0]: https://github.com/subquery/subql/compare/cli/0.24.0.../cli/0.25.0\n[0.24.0]: https://github.com/subquery/subql/compare/cli/0.23.0.../cli/0.24.0\n[0.23.0]: https://github.com/subquery/subql/compare/cli/0.22.0.../cli/0.23.0\n[0.22.0]: https://github.com/subquery/subql/compare/cli/0.21.0.../cli/0.22.0\n[0.21.0]: https://github.com/subquery/subql/compare/cli/0.20.1.../cli/0.21.0\n[0.20.1]: https://github.com/subquery/subql/compare/cli/0.20.0...cli/0.20.1\n[0.20.0]: https://github.com/subquery/subql/compare/cli/0.19.0...cli/0.20.0\n[0.19.0]: https://github.com/subquery/subql/compare/cli/0.18.0...cli/0.19.0\n[0.18.0]: https://github.com/subquery/subql/compare/cli/0.17.0...cli/0.18.0\n[0.17.0]: https://github.com/subquery/subql/compare/cli/0.16.2...cli/0.17.0\n[0.16.2]: https://github.com/subquery/subql/compare/cli/0.16.1...cli/0.16.2\n[0.16.1]: https://github.com/subquery/subql/compare/cli/0.16.0...cli/0.16.1\n[0.16.0]: https://github.com/subquery/subql/compare/cli/0.15.0...cli/0.16.0\n[0.15.0]: https://github.com/subquery/subql/compare/cli/0.14.0...cli/0.15.0\n[0.14.0]: https://github.com/subquery/subql/compare/cli/0.13.0...cli/0.14.0\n[0.13.0]: https://github.com/subquery/subql/compare/cli/0.12.0...cli/0.13.0\n[0.12.0]: https://github.com/subquery/subql/compare/cli/0.11.2...cli/0.12.0\n[0.11.2]: https://github.com/subquery/subql/compare/cli/0.11.1...cli/0.11.2\n[0.11.1]: https://github.com/subquery/subql/compare/cli/0.11.0...cli/0.11.1\n[0.11.0]: https://github.com/subquery/subql/compare/cli/0.10.0...cli/0.11.0\n[0.10.0]: https://github.com/subquery/subql/compare/cli/0.9.3...cli/0.10.0\n[0.9.3]: https://github.com/subquery/subql/compare/cli/0.9.2...cli/0.9.3\n[0.9.2]: https://github.com/subquery/subql/compare/v0.9.0...v0.9.2\n[0.9.0]: https://github.com/subquery/subql/compare/v0.8.0...v0.9.0\n[0.8.0]: https://github.com/subquery/subql/compare/v0.7.3...v0.8.0\n[0.7.3]: https://github.com/OnFinality-io/subql/compare/v0.7.2...v0.7.3\n[0.7.2]: https://github.com/OnFinality-io/subql/compare/v0.7.1...v0.7.2\n[0.7.1]: https://github.com/OnFinality-io/subql/compare/v0.7.0...v0.7.1\n[0.7.0]: https://github.com/OnFinality-io/subql/compare/v0.6.0...v0.7.0\n[0.6.0]: https://github.com/OnFinality-io/subql/compare/v0.5.0...v0.6.0\n[0.5.0]: https://github.com/OnFinality-io/subql/compare/v0.2.0...v0.5.0\n[0.2.0]: https://github.com/OnFinality-io/subql/tags/0.2.0\n"
  },
  {
    "path": "packages/cli/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/cli/README.md",
    "content": "# @subql/cli\n\nCLI for SubQuery\n\n[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)\n[![Version](https://img.shields.io/npm/v/@subql/cli.svg)](https://npmjs.org/package/@subql/cli)\n[![Downloads/week](https://img.shields.io/npm/dw/@subql/cli.svg)](https://npmjs.org/package/@subql/cli)\n[![License](https://img.shields.io/npm/l/@subql/cli.svg)](https://github.com/subquery/subql/blob/main/packages/cli/LICENSE)\n\n<!-- toc -->\n\n- [@subql/cli](#subqlcli)\n- [Usage](#usage)\n- [Commands](#commands)\n<!-- tocstop -->\n\n# Usage\n\n<!-- usage -->\n\n```sh-session\n$ npm install -g @subql/cli\n$ subql COMMAND\nrunning command...\n$ subql (--version)\n@subql/cli/6.6.3-0 linux-x64 node-v24.11.1\n$ subql --help [COMMAND]\nUSAGE\n  $ subql COMMAND\n...\n```\n\n<!-- usagestop -->\n\n# Commands\n\n<!-- commands -->\n\n- [`subql build [LOCATION]`](#subql-build-location)\n- [`subql build-manifest [LOCATION]`](#subql-build-manifest-location)\n- [`subql codegen [LOCATION]`](#subql-codegen-location)\n- [`subql codegen:import-abi LOCATION`](#subql-codegenimport-abi-location)\n- [`subql import-abi LOCATION`](#subql-import-abi-location)\n- [`subql init NAME`](#subql-init-name)\n- [`subql mcp`](#subql-mcp)\n- [`subql migrate`](#subql-migrate)\n- [`subql multi-chain:add [LOCATION]`](#subql-multi-chainadd-location)\n- [`subql network:add-deployment-boost`](#subql-networkadd-deployment-boost)\n- [`subql network:connect-wallet`](#subql-networkconnect-wallet)\n- [`subql network:create-api-key NAME`](#subql-networkcreate-api-key-name)\n- [`subql network:create-deployment`](#subql-networkcreate-deployment)\n- [`subql network:create-flex-plan`](#subql-networkcreate-flex-plan)\n- [`subql network:create-project`](#subql-networkcreate-project)\n- [`subql network:disconnect-wallet`](#subql-networkdisconnect-wallet)\n- [`subql network:list-account-boosts`](#subql-networklist-account-boosts)\n- [`subql network:list-api-keys`](#subql-networklist-api-keys)\n- [`subql network:list-deployment-boosts`](#subql-networklist-deployment-boosts)\n- [`subql network:list-deployment-indexers`](#subql-networklist-deployment-indexers)\n- [`subql network:list-deployments`](#subql-networklist-deployments)\n- [`subql network:list-flex-plans`](#subql-networklist-flex-plans)\n- [`subql network:list-projects`](#subql-networklist-projects)\n- [`subql network:remove-api-key NAME`](#subql-networkremove-api-key-name)\n- [`subql network:remove-deployment-boost`](#subql-networkremove-deployment-boost)\n- [`subql network:stop-flex-plan`](#subql-networkstop-flex-plan)\n- [`subql network:swap-deployment-boost`](#subql-networkswap-deployment-boost)\n- [`subql onfinality:create-deployment`](#subql-onfinalitycreate-deployment)\n- [`subql onfinality:create-multichain-deployment [LOCATION]`](#subql-onfinalitycreate-multichain-deployment-location)\n- [`subql onfinality:create-project`](#subql-onfinalitycreate-project)\n- [`subql onfinality:delete-deployment`](#subql-onfinalitydelete-deployment)\n- [`subql onfinality:delete-project`](#subql-onfinalitydelete-project)\n- [`subql onfinality:promote-deployment`](#subql-onfinalitypromote-deployment)\n- [`subql publish [LOCATION]`](#subql-publish-location)\n\n## `subql build [LOCATION]`\n\nBuild this SubQuery project code into a bundle\n\n```\nUSAGE\n  $ subql build [LOCATION] [--output <value>]\n\nARGUMENTS\n  LOCATION  The path to the project, this can be a directory or a project manifest file.\n\nFLAGS\n  --output=<value>  [default: dist] The output location relative to the location\n\nDESCRIPTION\n  Build this SubQuery project code into a bundle\n```\n\n_See code: [src/commands/build.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/build.ts)_\n\n## `subql build-manifest [LOCATION]`\n\nBuild TypeScript manifest file to YAML (generates project.yaml from project.ts)\n\n```\nUSAGE\n  $ subql build-manifest [LOCATION]\n\nARGUMENTS\n  LOCATION  The path to the project, this can be a directory or a project manifest file.\n\nDESCRIPTION\n  Build TypeScript manifest file to YAML (generates project.yaml from project.ts)\n```\n\n_See code: [src/commands/build-manifest.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/build-manifest.ts)_\n\n## `subql codegen [LOCATION]`\n\nGenerate entity types from the GraphQL schema and contract interfaces\n\n```\nUSAGE\n  $ subql codegen [LOCATION]\n\nARGUMENTS\n  LOCATION  The project directory or path to project manifest.\n\nDESCRIPTION\n  Generate entity types from the GraphQL schema and contract interfaces\n```\n\n_See code: [src/commands/codegen/index.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/codegen/index.ts)_\n\n## `subql codegen:import-abi LOCATION`\n\nImport and ABI to generate project handlers and mapping functions based on an Ethereum ABI. If address is provided, it will attempt to fetch the ABI and start block from the Etherscan.\n\n```\nUSAGE\n  $ subql codegen:import-abi LOCATION [--address <value>] [--abiName <value>] [--startBlock <value>] [--abiPath <value>]\n    [--events <value>] [--functions <value>]\n\nARGUMENTS\n  LOCATION  The path to the project, this can be a directory or a project manifest file.\n\nFLAGS\n  --abiName=<value>     The contracts name, if not provided, the contract address will be used if the ABI is fetched\n                        from Etherscan\n  --abiPath=<value>     The path to the ABI file\n  --address=<value>     The contracts address\n  --events=<value>      ABI events to generate handlers for. Use '*' for all. e.g. --events=\"approval, transfer\"\n  --functions=<value>   ABI functions to generate handlers for. Use '*' for all. e.g. --functions=\"approval, transfer\"\n  --startBlock=<value>  The start block of the handler, generally the block the contract is deployed.\n\nDESCRIPTION\n  Import and ABI to generate project handlers and mapping functions based on an Ethereum ABI. If address is provided, it\n  will attempt to fetch the ABI and start block from the Etherscan.\n\nALIASES\n  $ subql import-abi\n```\n\n_See code: [src/commands/codegen/import-abi.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/codegen/import-abi.ts)_\n\n## `subql import-abi LOCATION`\n\nImport and ABI to generate project handlers and mapping functions based on an Ethereum ABI. If address is provided, it will attempt to fetch the ABI and start block from the Etherscan.\n\n```\nUSAGE\n  $ subql import-abi LOCATION [--address <value>] [--abiName <value>] [--startBlock <value>] [--abiPath <value>]\n    [--events <value>] [--functions <value>]\n\nARGUMENTS\n  LOCATION  The path to the project, this can be a directory or a project manifest file.\n\nFLAGS\n  --abiName=<value>     The contracts name, if not provided, the contract address will be used if the ABI is fetched\n                        from Etherscan\n  --abiPath=<value>     The path to the ABI file\n  --address=<value>     The contracts address\n  --events=<value>      ABI events to generate handlers for. Use '*' for all. e.g. --events=\"approval, transfer\"\n  --functions=<value>   ABI functions to generate handlers for. Use '*' for all. e.g. --functions=\"approval, transfer\"\n  --startBlock=<value>  The start block of the handler, generally the block the contract is deployed.\n\nDESCRIPTION\n  Import and ABI to generate project handlers and mapping functions based on an Ethereum ABI. If address is provided, it\n  will attempt to fetch the ABI and start block from the Etherscan.\n\nALIASES\n  $ subql import-abi\n```\n\n## `subql init NAME`\n\nInitialize a SubQuery project from a template\n\n```\nUSAGE\n  $ subql init NAME [--location <value>] [--network <value>] [--networkFamily <value>] [--endpoint\n    <value>] [--installDependencies] [--packageManager npm|yarn|pnpm] [--author <value>]\n\nARGUMENTS\n  NAME  The name of the project to create\n\nFLAGS\n  --author=<value>           The project author that will be set in package.json. Defaults to the current system user\n  --endpoint=<value>         The RPC endpoint that the project will use\n  --installDependencies      Install the dependencies of the project\n  --location=<value>         The path to the project, this can be a directory or a project manifest file.\n  --network=<value>          The name of the network the project will index data for\n  --networkFamily=<value>    The network family the project will index data for, e.g. EVM, Substrate\n  --packageManager=<option>  [default: npm]\n                             <options: npm|yarn|pnpm>\n\nDESCRIPTION\n  Initialize a SubQuery project from a template\n```\n\n_See code: [src/commands/init.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/init.ts)_\n\n## `subql mcp`\n\nRuns an MCP (Model Context Protocol) server over stdio\n\n```\nUSAGE\n  $ subql mcp\n\nDESCRIPTION\n  Runs an MCP (Model Context Protocol) server over stdio\n```\n\n_See code: [src/commands/mcp.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/mcp.ts)_\n\n## `subql migrate`\n\nMigrate a Subgraph project to a SubQuery project, including the manifest and schema.\n\n```\nUSAGE\n  $ subql migrate --input <value> --output <value> [--gitSubDirectory <value>]\n\nFLAGS\n  --gitSubDirectory=<value>  A subdirectory in the git repo if the input is a git repo\n  --input=<value>            (required) A directory or git repo to a subgraph project\n  --output=<value>           (required) The location of the SubQuery project\n\nDESCRIPTION\n  Migrate a Subgraph project to a SubQuery project, including the manifest and schema.\n```\n\n_See code: [src/commands/migrate.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/migrate.ts)_\n\n## `subql multi-chain:add [LOCATION]`\n\nAdd new chain manifest to multi-chain project\n\n```\nUSAGE\n  $ subql multi-chain:add [LOCATION] --chainManifestFile <value>\n\nARGUMENTS\n  LOCATION  The path to the multichain project, this can be a directory or a multichain manifest file.\n\nFLAGS\n  --chainManifestFile=<value>  (required) The path to the new chain manifest\n\nDESCRIPTION\n  Add new chain manifest to multi-chain project\n```\n\n_See code: [src/commands/multi-chain/add.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/multi-chain/add.ts)_\n\n## `subql network:add-deployment-boost`\n\nIncrease the boost for a deployment\n\n```\nUSAGE\n  $ subql network:add-deployment-boost --network mainnet|testnet-mumbai|testnet|local --deploymentId <value> --amount\n  <value>\n\nFLAGS\n  --amount=<value>        (required) The amount to boost the deployment with, in SQT\n  --deploymentId=<value>  (required) The deployment id for the project\n  --network=<option>      (required) [default: mainnet] The network to check.\n                          <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  Increase the boost for a deployment\n```\n\n_See code: [src/commands/network/add-deployment-boost.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/add-deployment-boost.ts)_\n\n## `subql network:connect-wallet`\n\nConnect a wallet via Wallet Connect for interacting with the network\n\n```\nUSAGE\n  $ subql network:connect-wallet\n\nDESCRIPTION\n  Connect a wallet via Wallet Connect for interacting with the network\n```\n\n_See code: [src/commands/network/connect-wallet.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/connect-wallet.ts)_\n\n## `subql network:create-api-key NAME`\n\nCreate an API key for making queries via the SubQuery Network\n\n```\nUSAGE\n  $ subql network:create-api-key NAME --network mainnet|testnet-mumbai|testnet|local\n\nARGUMENTS\n  NAME  The name of the api key, used to identify it\n\nFLAGS\n  --network=<option>  (required) [default: mainnet] The network to check.\n                      <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  Create an API key for making queries via the SubQuery Network\n```\n\n_See code: [src/commands/network/create-api-key.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/create-api-key.ts)_\n\n## `subql network:create-deployment`\n\nCreate a new deployment for a SubQuery project\n\n```\nUSAGE\n  $ subql network:create-deployment --network mainnet|testnet-mumbai|testnet|local --projectId <value> --deploymentId <value>\n    --deploymentVersion <value> [--deploymentDescription <value>]\n\nFLAGS\n  --deploymentDescription=<value>  A description of the deployment, release notes\n  --deploymentId=<value>           (required) The IPFS CID of the published project\n  --deploymentVersion=<value>      (required) The version of the deployment\n  --network=<option>               (required) [default: mainnet] The network to check.\n                                   <options: mainnet|testnet-mumbai|testnet|local>\n  --projectId=<value>              (required) The project id, this should be a 0x prefixed hex number\n\nDESCRIPTION\n  Create a new deployment for a SubQuery project\n```\n\n_See code: [src/commands/network/create-deployment.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/create-deployment.ts)_\n\n## `subql network:create-flex-plan`\n\nCreate a new Flex Plan for querying a SubQuery deployment on the SubQuery Network\n\n```\nUSAGE\n  $ subql network:create-flex-plan --network mainnet|testnet-mumbai|testnet|local --deploymentId <value> --amount\n  <value>\n\nFLAGS\n  --amount=<value>        (required) The amount to deposit into the plan, in SQT\n  --deploymentId=<value>  (required) The deploymentId to create a flex plan for\n  --network=<option>      (required) [default: mainnet] The network to check.\n                          <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  Create a new Flex Plan for querying a SubQuery deployment on the SubQuery Network\n```\n\n_See code: [src/commands/network/create-flex-plan.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/create-flex-plan.ts)_\n\n## `subql network:create-project`\n\nCreate a new SubQuery project on the SubQuery network\n\n```\nUSAGE\n  $ subql network:create-project --network mainnet|testnet-mumbai|testnet|local --deploymentId <value> --projectType\n    0|1|2|3|SUBQUERY|RPC|SQ_DICT|SUBGRAPH --name <value> [--description <value>] [--image <value>] [--tags <value>...]\n    [--website <value>] [--codeRepository <value>] [--deploymentVersion <value>] [--deploymentDescription <value>]\n\nFLAGS\n  --codeRepository=<value>         A URL to the project code repository\n  --deploymentDescription=<value>  A description of the deployment, release notes\n  --deploymentId=<value>           (required) The IPFS CID of the published project\n  --deploymentVersion=<value>      [default: 1.0.0] The version of the deployment\n  --description=<value>            A short description of the project\n  --image=<value>                  A URL to an image for the project\n  --name=<value>                   (required) The name of the project\n  --network=<option>               (required) [default: mainnet] The network to check.\n                                   <options: mainnet|testnet-mumbai|testnet|local>\n  --projectType=<option>           (required)\n                                   <options: 0|1|2|3|SUBQUERY|RPC|SQ_DICT|SUBGRAPH>\n  --tags=<value>...                A list of tags for the project\n  --website=<value>                A URL to the project website\n\nDESCRIPTION\n  Create a new SubQuery project on the SubQuery network\n```\n\n_See code: [src/commands/network/create-project.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/create-project.ts)_\n\n## `subql network:disconnect-wallet`\n\nDisconnect a wallet connected via WalletConnect\n\n```\nUSAGE\n  $ subql network:disconnect-wallet\n\nDESCRIPTION\n  Disconnect a wallet connected via WalletConnect\n```\n\n_See code: [src/commands/network/disconnect-wallet.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/disconnect-wallet.ts)_\n\n## `subql network:list-account-boosts`\n\nGet a list of the deployments an account boosts\n\n```\nUSAGE\n  $ subql network:list-account-boosts --network mainnet|testnet-mumbai|testnet|local [--address <value>]\n\nFLAGS\n  --address=<value>   The account address to list boosts for\n  --network=<option>  (required) [default: mainnet] The network to check.\n                      <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  Get a list of the deployments an account boosts\n```\n\n_See code: [src/commands/network/list-account-boosts.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/list-account-boosts.ts)_\n\n## `subql network:list-api-keys`\n\nList API keys for making queries via the SubQuery Network\n\n```\nUSAGE\n  $ subql network:list-api-keys --network mainnet|testnet-mumbai|testnet|local\n\nFLAGS\n  --network=<option>  (required) [default: mainnet] The network to check.\n                      <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  List API keys for making queries via the SubQuery Network\n```\n\n_See code: [src/commands/network/list-api-keys.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/list-api-keys.ts)_\n\n## `subql network:list-deployment-boosts`\n\nGet a list of boosts made to a project deployment\n\n```\nUSAGE\n  $ subql network:list-deployment-boosts --network mainnet|testnet-mumbai|testnet|local --deploymentId <value>\n\nFLAGS\n  --deploymentId=<value>  (required) The deployment id for the project\n  --network=<option>      (required) [default: mainnet] The network to check.\n                          <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  Get a list of boosts made to a project deployment\n```\n\n_See code: [src/commands/network/list-deployment-boosts.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/list-deployment-boosts.ts)_\n\n## `subql network:list-deployment-indexers`\n\nList the indexers for a deployment on the SubQuery Network\n\n```\nUSAGE\n  $ subql network:list-deployment-indexers --network mainnet|testnet-mumbai|testnet|local --deploymentId <value>\n\nFLAGS\n  --deploymentId=<value>  (required) The DeploymentID of the project to list deployments for\n  --network=<option>      (required) [default: mainnet] The network to check.\n                          <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  List the indexers for a deployment on the SubQuery Network\n```\n\n_See code: [src/commands/network/list-deployment-indexers.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/list-deployment-indexers.ts)_\n\n## `subql network:list-deployments`\n\nList deployments for a SubQuery project\n\n```\nUSAGE\n  $ subql network:list-deployments --network mainnet|testnet-mumbai|testnet|local --projectId <value>\n\nFLAGS\n  --network=<option>   (required) [default: mainnet] The network to check.\n                       <options: mainnet|testnet-mumbai|testnet|local>\n  --projectId=<value>  (required) The ID of the project to list deployments for\n\nDESCRIPTION\n  List deployments for a SubQuery project\n```\n\n_See code: [src/commands/network/list-deployments.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/list-deployments.ts)_\n\n## `subql network:list-flex-plans`\n\nList your Flex Plans for querying projects on the SubQuery Network\n\n```\nUSAGE\n  $ subql network:list-flex-plans --network mainnet|testnet-mumbai|testnet|local [--address <value>]\n\nFLAGS\n  --address=<value>   The account address to list boosts for\n  --network=<option>  (required) [default: mainnet] The network to check.\n                      <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  List your Flex Plans for querying projects on the SubQuery Network\n```\n\n_See code: [src/commands/network/list-flex-plans.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/list-flex-plans.ts)_\n\n## `subql network:list-projects`\n\nList projects for a given account on then SubQuery network\n\n```\nUSAGE\n  $ subql network:list-projects --network mainnet|testnet-mumbai|testnet|local [--address <value>] [--networkRpc\n  <value>]\n\nFLAGS\n  --address=<value>     The address of the account that owns the projects\n  --network=<option>    (required) [default: mainnet] The network to check.\n                        <options: mainnet|testnet-mumbai|testnet|local>\n  --networkRpc=<value>  Override the network rpc url\n\nDESCRIPTION\n  List projects for a given account on then SubQuery network\n```\n\n_See code: [src/commands/network/list-projects.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/list-projects.ts)_\n\n## `subql network:remove-api-key NAME`\n\nRemove an API key used for making queries via the SubQuery Network\n\n```\nUSAGE\n  $ subql network:remove-api-key NAME --network mainnet|testnet-mumbai|testnet|local\n\nARGUMENTS\n  NAME  The name of the api key, used to identify it\n\nFLAGS\n  --network=<option>  (required) [default: mainnet] The network to check.\n                      <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  Remove an API key used for making queries via the SubQuery Network\n```\n\n_See code: [src/commands/network/remove-api-key.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/remove-api-key.ts)_\n\n## `subql network:remove-deployment-boost`\n\nDecrease the boost amount for a project deployment on the SubQuery network\n\n```\nUSAGE\n  $ subql network:remove-deployment-boost --network mainnet|testnet-mumbai|testnet|local --deploymentId <value> --amount\n  <value>\n\nFLAGS\n  --amount=<value>        (required) The amount of boost to remove from the deployment, in SQT\n  --deploymentId=<value>  (required) The deployment id for the project\n  --network=<option>      (required) [default: mainnet] The network to check.\n                          <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  Decrease the boost amount for a project deployment on the SubQuery network\n```\n\n_See code: [src/commands/network/remove-deployment-boost.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/remove-deployment-boost.ts)_\n\n## `subql network:stop-flex-plan`\n\nStop a Flex Plan for a deployment on the SubQuery Network\n\n```\nUSAGE\n  $ subql network:stop-flex-plan --network mainnet|testnet-mumbai|testnet|local --deploymentId <value>\n\nFLAGS\n  --deploymentId=<value>  (required) The deploymentId to create a flex plan for\n  --network=<option>      (required) [default: mainnet] The network to check.\n                          <options: mainnet|testnet-mumbai|testnet|local>\n\nDESCRIPTION\n  Stop a Flex Plan for a deployment on the SubQuery Network\n```\n\n_See code: [src/commands/network/stop-flex-plan.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/stop-flex-plan.ts)_\n\n## `subql network:swap-deployment-boost`\n\nSwap the boost from one deployment to another deployment on the SubQuery Network\n\n```\nUSAGE\n  $ subql network:swap-deployment-boost --network mainnet|testnet-mumbai|testnet|local --fromDeploymentId <value> --toDeploymentId\n    <value> --amount <value>\n\nFLAGS\n  --amount=<value>            (required) The amount to boost the deployment with, in SQT\n  --fromDeploymentId=<value>  (required) The deployment id for the project that is already boosted\n  --network=<option>          (required) [default: mainnet] The network to check.\n                              <options: mainnet|testnet-mumbai|testnet|local>\n  --toDeploymentId=<value>    (required) The deployment id for the project to move the boost to\n\nDESCRIPTION\n  Swap the boost from one deployment to another deployment on the SubQuery Network\n```\n\n_See code: [src/commands/network/swap-deployment-boost.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/network/swap-deployment-boost.ts)_\n\n## `subql onfinality:create-deployment`\n\nCreate a project deployment on the OnFinality managed services\n\n```\nUSAGE\n  $ subql onfinality:create-deployment --org <value> --projectName <value> --type primary|stage --ipfsCID <value>\n    [--indexerVersion <value>] [--queryVersion <value>] [--dict <value>] [--endpoint <value>] [--indexerUnsafe]\n    [--indexerBatchSize <value>] [--indexerSubscription] [--disableHistorical] [--indexerUnfinalized]\n    [--indexerStoreCacheThreshold <value>] [--disableIndexerStoreCacheAsync] [--indexerWorkers <value>] [--queryUnsafe]\n    [--querySubscription] [--queryTimeout <value>] [--queryMaxConnection <value>] [--queryAggregate] [--queryLimit\n    <value>] [--useDefaults]\n\nFLAGS\n  --dict=<value>                        A dictionary endpoint for this projects network\n  --disableHistorical                   Disable historical data indexing\n  --disableIndexerStoreCacheAsync       Disable async store cache\n  --endpoint=<value>                    The RPC endpoint to be used by the project\n  --indexerBatchSize=<value>            [default: 30] The batch size for the indexer\n  --indexerStoreCacheThreshold=<value>  The number of items kept in the cache before flushing\n  --indexerSubscription                 Enable subscription for the indexer\n  --indexerUnfinalized                  Enable unfinalized blocks indexing\n  --indexerUnsafe                       Run the indexer in unsafe mode, this will disable some checks\n  --indexerVersion=<value>              Indexer image version\n  --indexerWorkers=<value>              The number of workers for the indexer\n  --ipfsCID=<value>                     (required) The IPFC CID of the published project\n  --org=<value>                         (required) The Github organization name\n  --projectName=<value>                 (required) Project name\n  --queryAggregate                      Enable aggregate queries\n  --queryLimit=<value>                  The maximum number of results for the query\n  --queryMaxConnection=<value>          The maximum number of connections for the query\n  --querySubscription                   Enable subscription queries\n  --queryTimeout=<value>                The timeout for the query\n  --queryUnsafe                         Run the query in unsafe mode, this will disable some checks\n  --queryVersion=<value>                Query image version\n  --type=<option>                       (required) [default: primary]\n                                        <options: primary|stage>\n  --useDefaults                         Use default values for indexerVersion, queryVersion, dictionary, endpoint\n\nDESCRIPTION\n  Create a project deployment on the OnFinality managed services\n```\n\n_See code: [src/commands/onfinality/create-deployment.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/onfinality/create-deployment.ts)_\n\n## `subql onfinality:create-multichain-deployment [LOCATION]`\n\nCreate a multi-chain project deployment no the OnFinality managed services\n\n```\nUSAGE\n  $ subql onfinality:create-multichain-deployment [LOCATION] --org <value> --projectName <value> --type primary|stage [--indexerVersion\n    <value>] [--queryVersion <value>] [--dict <value>] [--endpoint <value>] [--indexerUnsafe] [--indexerBatchSize\n    <value>] [--indexerSubscription] [--disableHistorical] [--indexerUnfinalized] [--indexerStoreCacheThreshold <value>]\n    [--disableIndexerStoreCacheAsync] [--indexerWorkers <value>] [--queryUnsafe] [--querySubscription] [--queryTimeout\n    <value>] [--queryMaxConnection <value>] [--queryAggregate] [--queryLimit <value>] [--useDefaults] [--ipfs <value>]\n\nARGUMENTS\n  LOCATION  The path to the project, this can be a directory or a project manifest file.\n\nFLAGS\n  --dict=<value>                        A dictionary endpoint for this projects network\n  --disableHistorical                   Disable historical data indexing\n  --disableIndexerStoreCacheAsync       Disable async store cache\n  --endpoint=<value>                    The RPC endpoint to be used by the project\n  --indexerBatchSize=<value>            [default: 30] The batch size for the indexer\n  --indexerStoreCacheThreshold=<value>  The number of items kept in the cache before flushing\n  --indexerSubscription                 Enable subscription for the indexer\n  --indexerUnfinalized                  Enable unfinalized blocks indexing\n  --indexerUnsafe                       Run the indexer in unsafe mode, this will disable some checks\n  --indexerVersion=<value>              Indexer image version\n  --indexerWorkers=<value>              The number of workers for the indexer\n  --ipfs=<value>                        An additional IPFS endpoint to upload to\n  --org=<value>                         (required) The Github organization name\n  --projectName=<value>                 (required) Project name\n  --queryAggregate                      Enable aggregate queries\n  --queryLimit=<value>                  The maximum number of results for the query\n  --queryMaxConnection=<value>          The maximum number of connections for the query\n  --querySubscription                   Enable subscription queries\n  --queryTimeout=<value>                The timeout for the query\n  --queryUnsafe                         Run the query in unsafe mode, this will disable some checks\n  --queryVersion=<value>                Query image version\n  --type=<option>                       (required) [default: primary]\n                                        <options: primary|stage>\n  --useDefaults                         Use default values for indexerVersion, queryVersion, dictionary, endpoint\n\nDESCRIPTION\n  Create a multi-chain project deployment no the OnFinality managed services\n```\n\n_See code: [src/commands/onfinality/create-multichain-deployment.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/onfinality/create-multichain-deployment.ts)_\n\n## `subql onfinality:create-project`\n\nCreate a project on the OnFinality managed services\n\n```\nUSAGE\n  $ subql onfinality:create-project --org <value> --projectName <value> [--logoURL <value>] [--subtitle <value>] [--description\n    <value>] [--dedicatedDB <value>] [--projectType subquery|subgraph]\n\nFLAGS\n  --dedicatedDB=<value>   Dedicated DataBase\n  --description=<value>   Description\n  --logoURL=<value>       Logo URL\n  --org=<value>           (required) Github organization name\n  --projectName=<value>   (required) Project name\n  --projectType=<option>  [default: subquery] Project type [subquery|subgraph]\n                          <options: subquery|subgraph>\n  --subtitle=<value>      Subtitle\n\nDESCRIPTION\n  Create a project on the OnFinality managed services\n```\n\n_See code: [src/commands/onfinality/create-project.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/onfinality/create-project.ts)_\n\n## `subql onfinality:delete-deployment`\n\nDelete a deployment from the OnFinality managed services\n\n```\nUSAGE\n  $ subql onfinality:delete-deployment --org <value> --projectName <value> --deploymentID <value>\n\nFLAGS\n  --deploymentID=<value>  (required) Deployment ID\n  --org=<value>           (required) Github organization name\n  --projectName=<value>   (required) Project name\n\nDESCRIPTION\n  Delete a deployment from the OnFinality managed services\n```\n\n_See code: [src/commands/onfinality/delete-deployment.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/onfinality/delete-deployment.ts)_\n\n## `subql onfinality:delete-project`\n\nDelete a project on the OnFinality managed services\n\n```\nUSAGE\n  $ subql onfinality:delete-project --org <value> --projectName <value>\n\nFLAGS\n  --org=<value>          (required) The Github organization name\n  --projectName=<value>  (required) The project name\n\nDESCRIPTION\n  Delete a project on the OnFinality managed services\n```\n\n_See code: [src/commands/onfinality/delete-project.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/onfinality/delete-project.ts)_\n\n## `subql onfinality:promote-deployment`\n\nPromote a deployment on the OnFinality managed services from a Stage environment to Production\n\n```\nUSAGE\n  $ subql onfinality:promote-deployment --org <value> --projectName <value> --deploymentID <value>\n\nFLAGS\n  --deploymentID=<value>  (required) Deployment ID\n  --org=<value>           (required) Github organization name\n  --projectName=<value>   (required) Project name\n\nDESCRIPTION\n  Promote a deployment on the OnFinality managed services from a Stage environment to Production\n```\n\n_See code: [src/commands/onfinality/promote-deployment.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/onfinality/promote-deployment.ts)_\n\n## `subql publish [LOCATION]`\n\nUpload this SubQuery project to IPFS for distribution\n\n```\nUSAGE\n  $ subql publish [LOCATION] [--ipfs <value>] [--silent]\n\nARGUMENTS\n  LOCATION  The path to the project, this can be a directory or a project manifest file.\n\nFLAGS\n  --ipfs=<value>  An additional IPFS endpoint to upload to\n  --silent        Run the command without logging, only outputs the CIDs\n\nDESCRIPTION\n  Upload this SubQuery project to IPFS for distribution\n```\n\n_See code: [src/commands/publish.ts](https://github.com/subquery/subql/blob/cli/6.6.3-0/packages/cli/src/commands/publish.ts)_\n\n<!-- commandsstop -->\n"
  },
  {
    "path": "packages/cli/bin/run",
    "content": "#!/usr/bin/env node\n\nconst pjson = require('../package.json');\nconst updateNotifier = require('update-notifier');\nconst chalk = require('chalk');\nconst semver = require('semver');\n\nconst notifier = updateNotifier({pkg: pjson, updateCheckInterval: 0});\n\nif (notifier.update) {\n  const {current, latest, name} = notifier.update;\n\n  if (semver.lt(current, latest)) {\n    const message = `\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n Update available ${chalk.dim(current)} → ${chalk.green(latest)}\n Run ${chalk.cyan(`npm i -g ${name}`)} to update\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    `;\n    console.log(message);\n  }\n}\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n  const oclif = await import('@oclif/core');\n  await oclif.execute({development: false, dir: __dirname});\n})();\n"
  },
  {
    "path": "packages/cli/bin/run.cmd",
    "content": "@echo off\n\nnode \"%~dp0\\run\" %*\n"
  },
  {
    "path": "packages/cli/chs-swagger.yml",
    "content": "---\nswagger: '2.0'\ninfo:\n  description: 'API Docs for Subquery Consumer Host Service'\n  version: '1.0.0'\n  title: 'Subquery Consumer Host Service'\n  license:\n    name: 'Apache 2.0'\n    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\nhost: 'localhost:8000'\ntags:\n  - name: 'general'\n    description: 'General operations'\nschemes:\n  - 'https'\n  - 'http'\n\nsecurityDefinitions:\n  Bearer:\n    type: apiKey\n    name: Authorization\n    in: header\n\npaths:\n  /login:\n    post:\n      tags:\n        - 'general'\n      summary: 'User login to get token'\n      operationId: 'auth_controller::user_token'\n      parameters:\n        - in: 'body'\n          name: 'body'\n          description: 'Payload object used to sign user in and return token to user'\n          required: true\n          schema:\n            $ref: '#/definitions/Payload'\n      responses:\n        200:\n          description: 'successful operation'\n          schema:\n            $ref: '#/definitions/QueryToken'\n  /query/{project}:\n    post:\n      tags:\n        - 'general'\n      summary: 'Consumer send query'\n      description: 'Returns the result of the query'\n      operationId: 'query_controller::query'\n      parameters:\n        - name: 'project'\n          in: 'path'\n          description: 'Project ID'\n          required: true\n          type: 'integer'\n          format: 'int64'\n        - name: 'apikey'\n          in: 'formData'\n          description: 'apikey for query'\n          required: true\n          type: 'string'\n        - name: 'body'\n          in: 'body'\n          description: 'query to send'\n          required: true\n      responses:\n        403:\n          description: 'user inactive'\n  /sign/{project}:\n    post:\n      tags:\n        - 'general'\n      summary: 'Consumer sign to open state channel'\n      description: 'Returns the state channel info'\n      operationId: 'query_controller::sign'\n      parameters:\n        - name: 'project'\n          in: 'path'\n          description: 'Project ID'\n          required: true\n          type: 'integer'\n          format: 'int64'\n        - name: 'apikey'\n          in: 'formData'\n          description: 'apikey for query'\n          required: true\n          type: 'string'\n      responses:\n        403:\n          description: 'user inactive'\n        200:\n          description: 'successful operation'\n          schema:\n            $ref: '#/definitions/QueryState'\n  /projects:\n    get:\n      tags:\n        - 'general'\n      summary: 'Get all projects'\n      operationId: 'project_controller::index'\n      responses:\n        200:\n          description: 'successful operation'\n          schema:\n            type: 'array'\n            items:\n              $ref: '#/definitions/Project'\n  /projects/{id}:\n    get:\n      tags:\n        - 'general'\n      summary: 'Get the project by id'\n      operationId: 'project_controller::show'\n      parameters:\n        - name: 'id'\n          in: 'path'\n          description: 'Project ID'\n          required: true\n          type: 'integer'\n          format: 'int64'\n      responses:\n        200:\n          description: 'successful operation'\n          schema:\n            $ref: '#/definitions/ProjectDetail'\n  # /users/projects:\n  #   post:\n  #     tags:\n  #       - 'user'\n  #     summary: 'Consumer select a project to open a state channel'\n  #     operationId: 'project_controller::create'\n  #     security:\n  #       - bearerAuth: []\n  #     parameters:\n  #       - in: 'body'\n  #         name: 'body'\n  #         description: 'OpenChannel object used to open a state channel'\n  #         required: true\n  #         schema:\n  #           $ref: '#/definitions/OpenChannel'\n  #     responses:\n  #       200:\n  #         description: 'successful operation'\n  #         schema:\n  #           $ref: '#/definitions/StateChannel'\n  # /users/channels:\n  #   get:\n  #     tags:\n  #       - 'user'\n  #     summary: 'Get all channels of a consumer'\n  #     operationId: 'channel_controller::index'\n  #     security:\n  #       - bearerAuth: []\n  #     responses:\n  #       200:\n  #         description: 'successful operation'\n  #         schema:\n  #           type: 'array'\n  #           items:\n  #             $ref: '#/definitions/StateChannel'\n  # /users/channels/{channel}:\n  #   get:\n  #     tags:\n  #       - 'user'\n  #     summary: 'Get a channel with channel id'\n  #     operationId: 'channel_controller::show'\n  #     security:\n  #       - bearerAuth: []\n  #     parameters:\n  #       - name: 'channel'\n  #         in: 'path'\n  #         description: 'Channel ID'\n  #         required: true\n  #         type: 'string'\n  #     responses:\n  #       200:\n  #         description: 'successful operation'\n  #         schema:\n  #           $ref: '#/definitions/StateChannel'\n  # /users/channels/{channel}/fund:\n  #   get:\n  #     tags:\n  #       - 'user'\n  #     summary: 'Fund more amount to the state channel'\n  #     operationId: 'channel_controller::fund'\n  #     security:\n  #       - bearerAuth: []\n  #     parameters:\n  #       - name: 'channel'\n  #         in: 'path'\n  #         description: 'Channel ID'\n  #         required: true\n  #         type: 'string'\n  #       - in: 'body'\n  #         name: 'body'\n  #         description: 'Fund object used to fund more amount to the state channel'\n  #         required: true\n  #         schema:\n  #           $ref: '#/definitions/Fund'\n  #     responses:\n  #       200:\n  #         description: 'successful operation'\n  #         schema:\n  #           $ref: '#/definitions/TX'\n  #       400:\n  #         description: 'invalid fund amount / invalid callback signature'\n  # /users/channels/{channel}/finalize:\n  #   get:\n  #     tags:\n  #       - 'user'\n  #     summary: 'Finalize early the state channel and claim'\n  #     operationId: 'channel_controller::finalize'\n  #     security:\n  #       - bearerAuth: []\n  #     parameters:\n  #       - name: 'channel'\n  #         in: 'path'\n  #         description: 'Channel ID'\n  #         required: true\n  #         type: 'string'\n  #     responses:\n  #       200:\n  #         description: 'successful operation'\n  #         schema:\n  #           $ref: '#/definitions/TX'\n  # /users/channels/{channel}/claim:\n  #   get:\n  #     tags:\n  #       - 'user'\n  #     summary: 'Finalize early the state channel and claim'\n  #     operationId: 'channel_controller::claim'\n  #     security:\n  #       - bearerAuth: []\n  #     parameters:\n  #       - name: 'channel'\n  #         in: 'path'\n  #         description: 'Channel ID'\n  #         required: true\n  #         type: 'string'\n  #     responses:\n  #       200:\n  #         description: 'successful operation'\n  #         schema:\n  #           $ref: '#/definitions/TX'\n  #       400:\n  #         description: 'channel not expired'\n  #       401:\n  #         description: 'user not approved'\n  # /users/channels/{channel}/terminate:\n  #   get:\n  #     tags:\n  #       - 'user'\n  #     summary: 'Terminate the state channel'\n  #     operationId: 'channel_controller::terminate'\n  #     security:\n  #       - bearerAuth: []\n  #     parameters:\n  #       - name: 'channel'\n  #         in: 'path'\n  #         description: 'Channel ID'\n  #         required: true\n  #         type: 'string'\n  #     responses:\n  #       200:\n  #         description: 'successful operation'\n  #         schema:\n  #           $ref: '#/definitions/TX'\n  /users/apikeys:\n    get:\n      tags:\n        - 'user'\n      summary: 'Get all apikeys of a user'\n      operationId: 'user_controller::apikey_index'\n      security:\n        - bearerAuth: []\n      responses:\n        200:\n          description: 'successful operation'\n          schema:\n            type: 'array'\n            items:\n              $ref: '#/definitions/Apikey'\n  /users/apikeys/new:\n    post:\n      tags:\n        - 'user'\n      summary: 'Generate an Apikey for user'\n      operationId: 'user_controller::apikey_create'\n      security:\n        - bearerAuth: []\n      parameters:\n        - name: 'body'\n          in: 'body'\n          description: 'Payload object used to create an Apikey'\n          required: true\n          schema:\n            $ref: '#/definitions/NewApiKey'\n      responses:\n        200:\n          description: 'successful operation'\n          schema:\n            $ref: '#/definitions/Apikey'\n  /users/apikeys/{id}/delete:\n    post:\n      tags:\n        - 'user'\n      summary: 'Delete an Apikey for user'\n      operationId: 'user_controller::apikey_remove'\n      security:\n        - bearerAuth: []\n      parameters:\n        - name: 'id'\n          in: 'path'\n          description: 'Apikey ID'\n          required: true\n          type: 'integer'\n          format: 'int64'\n      responses:\n        200:\n          description: 'successful operation'\n          schema:\n            $ref: '#/definitions/Apikey'\n        400:\n          description: 'invalid Apikey to delete'\n  /users/hosting-plans:\n    get:\n      tags:\n        - 'user'\n      summary: 'Get all hosting plans of a user'\n      operationId: 'hosting_plan_controller::index'\n      security:\n        - bearerAuth: []\n      responses:\n        200:\n          description: 'successful operation'\n          schema:\n            type: 'array'\n            items:\n              $ref: '#/definitions/HostingPlanList'\n    post:\n      tags:\n        - 'user'\n      summary: 'Create a new hosting plan for user'\n      operationId: 'hosting_plan_controller::create'\n      security:\n        - bearerAuth: []\n      parameters:\n        - in: 'body'\n          name: 'body'\n          description: 'Options object used to create a new hosting plan'\n          required: true\n          schema:\n            $ref: '#/definitions/CreateHostingPlan'\n      responses:\n        200:\n          description: 'successful operation'\n          schema:\n            $ref: '#/definitions/HostingPlan'\n\n  /users/hosting-plans/{id}:\n    post:\n      tags:\n        - 'user'\n      summary: 'Update a hosting plan for user'\n      operationId: 'hosting_plan_controller::edit'\n      security:\n        - bearerAuth: []\n      parameters:\n        - name: 'id'\n          in: 'path'\n          description: 'Hosting Plan ID'\n          required: true\n          type: 'integer'\n          format: 'int64'\n        - in: 'body'\n          name: body\n          description: 'Options object used to update a hosting plan'\n          required: true\n          schema:\n            $ref: '#/definitions/UpdateHostingPlan'\n      responses:\n        200:\n          description: 'successful operation'\n          schema:\n            $ref: '#/definitions/HostingPlan'\n\ndefinitions:\n  Payload:\n    type: 'object'\n    properties:\n      message:\n        type: 'string'\n        description: 'The message that has a signature for it'\n      signature:\n        type: 'string'\n        description: 'User signature'\n      # These are not right in the provided code\n      # consumer:\n      #   type: 'string'\n      #   description: 'User address'\n      # timestamp:\n      #   type: 'integer'\n      #   format: 'int32'\n      # chain_id:\n      #   type: 'integer'\n      #   format: 'int32'\n  QueryToken:\n    type: 'object'\n    properties:\n      token:\n        type: 'string'\n        description: 'User token'\n  QueryState:\n    type: 'object'\n    properties:\n      channel_id:\n        type: 'integer'\n        format: 'U256'\n      indexer:\n        type: 'string'\n        description: 'Indexer address'\n      consumer:\n        type: 'string'\n        description: 'Consumer address'\n      spent:\n        type: 'integer'\n        format: 'U256'\n      remote:\n        type: 'integer'\n        format: 'U256'\n      is_final:\n        type: 'boolean'\n      indexer_sign:\n        type: 'string'\n      consumer_sign:\n        type: 'string'\n  Project:\n    type: 'object'\n    properties:\n      id:\n        type: 'integer'\n        format: 'i32'\n      owner:\n        type: 'string'\n        description: 'Owner address'\n      metadata:\n        type: 'string'\n        description: 'Project metadata'\n      is_actived:\n        type: 'boolean'\n      created_at:\n        type: 'string'\n        description: 'create timestamp'\n      updated_at:\n        type: 'string'\n        description: 'update timestamp'\n      ptype:\n        type: 'integer'\n    required:\n      - id\n      - owner\n      - metadata\n      - is_actived\n      - created_at\n      - updated_at\n      - ptype\n  Deployment:\n    type: 'object'\n    properties:\n      id:\n        type: 'integer'\n        format: 'i32'\n      project_id:\n        type: 'integer'\n        format: 'i32'\n      deployment:\n        type: 'string'\n        description: 'deployment hash'\n      metadata:\n        type: 'string'\n        description: 'metadata hash'\n      # version:\n      #   type: 'string'\n      is_actived:\n        type: 'boolean'\n      is_latest:\n        type: 'boolean'\n      created_at:\n        type: 'string'\n        description: 'create timestamp'\n      updated_at:\n        type: 'string'\n        description: 'update timestamp'\n    required:\n      - id\n      - project_id\n      - deployment\n      - metadata\n      - is_actived\n      - is_latest\n      - created_at\n      - updated_at\n  DeploymentIndexer:\n    type: 'object'\n    properties:\n      id:\n        type: 'integer'\n        format: 'i32'\n      deployment_id:\n        type: 'integer'\n        format: 'i32'\n      indexer_id:\n        type: 'integer'\n        format: 'i32'\n      indexer:\n        type: 'string'\n      price:\n        type: 'string'\n      max_time:\n        type: 'integer'\n        format: 'i32'\n      block_height:\n        type: 'string'\n      status:\n        type: 'integer'\n        format: 'i16'\n      status_at:\n        type: 'string'\n        description: 'status update timestamp'\n      score:\n        type: 'integer'\n        format: 'i32'\n      reality:\n        type: 'integer'\n        format: 'i32'\n      is_actived:\n        type: 'boolean'\n      created_at:\n        type: 'string'\n        description: 'create timestamp'\n      updated_at:\n        type: 'string'\n        description: 'update timestamp'\n  ProjectDetail:\n    type: 'object'\n    properties:\n      project:\n        type: 'object'\n        $ref: '#/definitions/Project'\n      deployment:\n        type: 'object'\n        $ref: '#/definitions/Deployment'\n      indexers:\n        type: 'array'\n        items:\n          $ref: '#/definitions/DeploymentIndexer'\n  OpenChannel:\n    type: 'object'\n    properties:\n      deployment_indexer:\n        type: 'integer'\n        format: 'i32'\n        description: 'deployment indexer id'\n      amount:\n        type: 'string'\n        description: 'u256 string'\n      expiration:\n        type: 'integer'\n        format: 'i32'\n        description: 'seconds'\n      signature:\n        type: 'string'\n        description: 'signature string, if approved, set empty'\n  StateChannel:\n    type: 'object'\n    properties:\n      id:\n        type: 'integer'\n        format: 'i32'\n      user_id:\n        type: 'integer'\n        format: 'i32'\n      indexer_id:\n        type: 'integer'\n        format: 'i32'\n      status:\n        type: 'integer'\n        format: 'i16'\n      channel:\n        type: 'string'\n      total:\n        type: 'string'\n      spent:\n        type: 'string'\n      onchain:\n        type: 'string'\n      price:\n        type: 'string'\n      is_final:\n        type: 'boolean'\n      indexer_sign:\n        type: 'string'\n      consumer_sign:\n        type: 'string'\n      expired_at:\n        type: 'string'\n        description: 'expired timestamp'\n      terminated_at:\n        type: 'string'\n        description: 'terminated timestamp'\n      terminate_by_indexer:\n        type: 'boolean'\n      deployment:\n        type: 'string'\n      is_actived:\n        type: 'boolean'\n      created_at:\n        type: 'string'\n        description: 'create timestamp'\n      updated_at:\n        type: 'string'\n        description: 'update timestamp'\n  Fund:\n    type: 'object'\n    properties:\n      amount:\n        type: 'string'\n      callback:\n        type: 'string'\n  TX:\n    type: 'string'\n    description: 'transaction hash'\n  NewApiKey:\n    type: 'object'\n    properties:\n      name:\n        type: 'string'\n        description: 'Apikey name'\n    required:\n      - name\n  Apikey:\n    type: 'object'\n    required:\n      - id\n      - user_id\n      - name\n      - value\n      - times\n      - created_at\n      - updated_at\n    properties:\n      id:\n        type: 'integer'\n        format: 'i32'\n      user_id:\n        type: 'integer'\n        format: 'i32'\n      name:\n        type: 'string'\n      value:\n        type: 'string'\n      times:\n        type: 'integer'\n        format: 'i32'\n      created_at:\n        type: 'string'\n        description: 'create timestamp'\n      updated_at:\n        type: 'string'\n        description: 'update timestamp'\n  HostingPlan:\n    type: 'object'\n    required:\n      - id\n      - user_id\n      - deployment_id\n      - channels\n      - closed\n      - maximum\n      - price\n      - spent\n      - expired_at\n      - is_actived\n      - created_at\n      - updated_at\n      - deployment\n      - project\n    properties:\n      id:\n        type: 'integer'\n        format: 'i32'\n      user_id:\n        type: 'integer'\n        format: 'i32'\n      deployment_id:\n        type: 'integer'\n        format: 'i32'\n      channels:\n        type: 'string'\n      closed:\n        type: 'string'\n      maximum:\n        type: 'integer'\n        format: 'i32'\n      price:\n        type: 'string'\n      spent:\n        type: 'string'\n      expired_at:\n        type: 'string'\n      is_actived:\n        type: 'boolean'\n      created_at:\n        type: 'string'\n      updated_at:\n        type: 'string'\n  HostingPlanList:\n    type: 'object'\n    required:\n      - id\n      - user_id\n      - deployment_id\n      - channels\n      - closed\n      - maximum\n      - price\n      - spent\n      - expired_at\n      - is_actived\n      - created_at\n      - updated_at\n      - deployment\n      - project\n    properties:\n      id:\n        type: 'integer'\n        format: 'i32'\n      user_id:\n        type: 'integer'\n        format: 'i32'\n      deployment_id:\n        type: 'integer'\n        format: 'i32'\n      channels:\n        type: 'string'\n      closed:\n        type: 'string'\n      maximum:\n        type: 'integer'\n        format: 'i32'\n      price:\n        type: 'string'\n      spent:\n        type: 'string'\n      expired_at:\n        type: 'string'\n      is_actived:\n        type: 'boolean'\n      created_at:\n        type: 'string'\n      updated_at:\n        type: 'string'\n      deployment:\n        type: 'object'\n        $ref: '#/definitions/Deployment'\n      project:\n        type: 'object'\n        $ref: '#/definitions/Project'\n  CreateHostingPlan:\n    type: 'object'\n    required:\n      - price\n    properties:\n      deployment:\n        type: 'integer'\n        format: 'i32'\n      deploymentId:\n        type: 'string'\n      price:\n        type: 'string'\n  UpdateHostingPlan:\n    type: 'object'\n    required:\n      - price\n      - expiration\n    properties:\n      price:\n        type: 'string' # u256 string\n      expiration:\n        type: 'integer'\n        format: 'i32' # seconds\n"
  },
  {
    "path": "packages/cli/graphql-codegen.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport type {CodegenConfig} from '@graphql-codegen/cli';\n\nconst config: CodegenConfig = {\n  overwrite: true,\n  schema: 'https://gateway.subquery.network/query/QmQqqmwwaBben8ncfHo3DMnDxyWFk5QcEdTmbevzKj7DBd',\n  documents: 'src/controller/network/queries/*.graphql',\n  config: {\n    namingConvention: {\n      enumValues: 'keep',\n    },\n    preResolveTypes: true,\n    avoidOptionals: true,\n    nonOptionalTypename: true,\n    skipTypeNameForRoot: true,\n    immutableTypes: true,\n    scalars: {\n      Date: 'Date',\n      Datetime: 'Date',\n      BigFloat: 'string',\n      BigInt: 'string',\n      Cursor: 'string',\n    },\n  },\n  generates: {\n    'src/controller/network/__graphql__/base-types.ts': {\n      plugins: ['typescript', 'typescript-operations'],\n    },\n    src: {\n      preset: 'near-operation-file',\n      config: {\n        importOperationTypesFrom: 'Types',\n      },\n      presetConfig: {\n        folder: '../__graphql__/network',\n        extensions: '.generated.ts',\n        baseTypesPath: 'controller/network/__graphql__/base-types.ts',\n      },\n      plugins: ['typescript-document-nodes'],\n    },\n  },\n};\n\nexport default config;\n"
  },
  {
    "path": "packages/cli/package.json",
    "content": "{\n  \"name\": \"@subql/cli\",\n  \"description\": \"CLI for SubQuery\",\n  \"version\": \"6.6.3\",\n  \"author\": \"SubQuery Pte Ltd.\",\n  \"bin\": {\n    \"subql\": \"./bin/run\"\n  },\n  \"bugs\": \"https://github.com/subquery/subql/issues\",\n  \"dependencies\": {\n    \"@apollo/client\": \"^3.14.0\",\n    \"@inquirer/prompts\": \"^5.3.6\",\n    \"@modelcontextprotocol/sdk\": \"1.24.3\",\n    \"@oclif/core\": \"^4.8.0\",\n    \"@subql/common\": \"workspace:~\",\n    \"@subql/contract-sdk\": \"^1.9.0\",\n    \"@subql/network-clients\": \"^1.1.0\",\n    \"@subql/utils\": \"workspace:~\",\n    \"@walletconnect/sign-client\": \"^2.17.2\",\n    \"@walletconnect/types\": \"^2.17.2\",\n    \"@walletconnect/utils\": \"^2.17.2\",\n    \"chalk\": \"^4\",\n    \"dotenv\": \"^16.4.5\",\n    \"ejs\": \"^3.1.10\",\n    \"fuzzy\": \"^0.1.3\",\n    \"glob\": \"^11.1\",\n    \"graphql\": \"^16.11.0\",\n    \"graphql-request\": \"^7.2.0\",\n    \"json5\": \"^2.2.3\",\n    \"jsonc-parser\": \"^3.3.1\",\n    \"qrcode-terminal\": \"^0.12.0\",\n    \"resolve-from\": \"^5.0.0\",\n    \"rimraf\": \"^5.0.10\",\n    \"semver\": \"^7.6.3\",\n    \"simple-git\": \"^3.28.0\",\n    \"siwe\": \"^3.0.0\",\n    \"terser-webpack-plugin\": \"^5.3.14\",\n    \"ts-loader\": \"^9.5.1\",\n    \"ts-node\": \"^10.9.2\",\n    \"tsconfig-paths-webpack-plugin\": \"^4.2.0\",\n    \"tslib\": \"^2.6.3\",\n    \"typescript\": \"^5.7.3\",\n    \"update-notifier\": \"^5.1.0\",\n    \"webpack\": \"^5.101.3\",\n    \"webpack-merge\": \"^6.0.1\",\n    \"ws\": \"^8.18.0\",\n    \"yaml\": \"^2.8.1\",\n    \"zod\": \"^3.25.67\"\n  },\n  \"devDependencies\": {\n    \"@graphql-codegen/cli\": \"5.0.7\",\n    \"@graphql-codegen/client-preset\": \"4.8.3\",\n    \"@graphql-codegen/introspection\": \"^4.0.3\",\n    \"@graphql-codegen/near-operation-file-preset\": \"^3.1.0\",\n    \"@graphql-codegen/typescript\": \"^4.1.6\",\n    \"@graphql-codegen/typescript-document-nodes\": \"^4.0.16\",\n    \"@graphql-codegen/typescript-operations\": \"^4.6.1\",\n    \"@subql/common-algorand\": \"^4.4.3\",\n    \"@subql/common-concordium\": \"^4.0.1\",\n    \"@subql/common-cosmos\": \"^5.5.0\",\n    \"@subql/common-ethereum\": \"^4.10.0\",\n    \"@subql/common-near\": \"^4.3.4\",\n    \"@subql/common-solana\": \"^1.2.0\",\n    \"@subql/common-starknet\": \"^1.3.0\",\n    \"@subql/common-stellar\": \"^4.5.0\",\n    \"@subql/common-substrate\": \"workspace:~\",\n    \"@types/ejs\": \"^3.1.5\",\n    \"@types/express\": \"^4.17.21\",\n    \"@types/node\": \"^18.19.42\",\n    \"@types/qrcode-terminal\": \"^0.12.2\",\n    \"@types/semver\": \"^7.5.8\",\n    \"@types/update-notifier\": \"^6\",\n    \"@types/ws\": \"^8.5.13\",\n    \"eslint\": \"^8.8.0\",\n    \"eslint-config-oclif\": \"^4.0.0\",\n    \"eslint-config-oclif-typescript\": \"^1.0.3\",\n    \"oclif\": \"^4.20.8\",\n    \"swagger-typescript-api\": \"^13.2.15\"\n  },\n  \"engines\": {\n    \"node\": \">=20.0.0\"\n  },\n  \"files\": [\n    \"/bin\",\n    \"/lib\",\n    \"/npm-shrinkwrap.json\",\n    \"/oclif.manifest.json\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\"\n  ],\n  \"homepage\": \"https://github.com/subquery/subql\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/subquery/subql.git\",\n    \"directory\": \"packages/cli\"\n  },\n  \"keywords\": [\n    \"oclif\"\n  ],\n  \"license\": \"GPL-3.0\",\n  \"main\": \"lib/index.js\",\n  \"oclif\": {\n    \"commands\": \"./lib/commands\",\n    \"bin\": \"subql\",\n    \"repositoryPrefix\": \"<%- repo %>/blob/cli/<%- version %>/packages/cli/<%- commandPath.replace('lib/', 'src/').replace(/\\\\.js$/, '.ts') %>\"\n  },\n  \"scripts\": {\n    \"build\": \"rm -rf lib && tsc -b && cp -r src/template lib/\",\n    \"postpack\": \"rm -f oclif.manifest.json\",\n    \"posttest\": \"eslint . --ext .ts --config .eslintrc\",\n    \"prepack\": \"yarn build && oclif manifest && oclif readme\",\n    \"test\": \"echo NO TESTS\",\n    \"version\": \"oclif readme && git add README.md\",\n    \"format\": \"prettier --write \\\"src/**/*.ts\\\"\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"cli/\\\"\",\n    \"codegen:graphql\": \"graphql-codegen --config graphql-codegen.ts\",\n    \"codegen:chs\": \"swagger-typescript-api generate -p chs-swagger.yml -o src/controller/network/consumer-host --api-class-name NetworkConsumerHostServiceApi -n consumer-host-service-api.ts\",\n    \"codegen\": \"yarn codegen:graphql && yarn codegen:chs\"\n  },\n  \"types\": \"lib/index.d.ts\",\n  \"stableVersion\": \"6.6.2\"\n}\n"
  },
  {
    "path": "packages/cli/src/adapters/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'node:path';\nimport {stripVTControlCharacters} from 'node:util';\nimport {confirm, input, search, checkbox} from '@inquirer/prompts';\nimport {McpServer} from '@modelcontextprotocol/sdk/server/mcp.js';\nimport {RequestHandlerExtra} from '@modelcontextprotocol/sdk/shared/protocol';\nimport {\n  CallToolResult,\n  ElicitRequestFormParams,\n  ServerNotification,\n  ServerRequest,\n} from '@modelcontextprotocol/sdk/types';\nimport {Args, Command, Flags} from '@oclif/core';\nimport {Flag, Arg} from '@oclif/core/lib/interfaces';\nimport fuzzy from 'fuzzy';\nimport {z, ZodTypeAny, ZodObject, ZodOptional, ZodDefault} from 'zod';\n\nexport type Logger = {\n  info: (message: string) => void;\n  debug: (message: string) => void;\n  error: (message: string) => void;\n  warn: (message: string) => void;\n};\n\n// Extract base type from optional/default wrappers\ntype UnwrapZod<T extends ZodTypeAny> =\n  T extends ZodOptional<infer U> ? UnwrapZod<U> : T extends ZodDefault<infer U> ? UnwrapZod<U> : T;\n\n// Get JS type from base Zod type\ntype ZodToPrimitive<T extends ZodTypeAny> = T extends z.ZodString\n  ? string\n  : T extends z.ZodNumber\n    ? number\n    : T extends z.ZodBoolean\n      ? boolean\n      : never;\n\ntype ZodToPrimitiveArray<T extends ZodTypeAny> =\n  T extends z.ZodArray<infer U> ? ZodToPrimitive<U>[] : ZodToPrimitive<T>;\n\n// Check if optional\ntype HasDefault<T extends ZodTypeAny> = T extends ZodDefault<any> ? true : false;\ntype IsOptional<T extends ZodTypeAny> = T extends ZodOptional<any> ? true : false;\n\n// Combine to determine final flag type\ntype FlagFromZod<T extends ZodTypeAny> =\n  HasDefault<T> extends true\n    ? Flag<ZodToPrimitiveArray<UnwrapZod<T>>>\n    : IsOptional<T> extends true\n      ? Flag<ZodToPrimitiveArray<UnwrapZod<T>> | undefined>\n      : Flag<ZodToPrimitiveArray<T>>;\n\n// Map over the schema\ntype FlagsFromSchema<Shape extends Record<string, ZodTypeAny>> = {\n  [K in keyof Shape]: FlagFromZod<Shape[K]>;\n};\n\ntype ArgFromZod<T extends ZodTypeAny> =\n  HasDefault<T> extends true\n    ? Arg<ZodToPrimitive<UnwrapZod<T>>>\n    : IsOptional<T> extends true\n      ? Arg<ZodToPrimitive<UnwrapZod<T>> | undefined>\n      : Arg<ZodToPrimitive<T>>;\n\ntype ArgsFromSchema<Shape extends Record<string, ZodTypeAny>> = {\n  [K in keyof Shape]: ArgFromZod<Shape[K]>;\n};\n\ntype UnwrapInfo = {type: ZodTypeAny; default: any; array: boolean; optional: boolean};\n\n// Unrwap recursive type information to get the primitive and other information\nfunction unwrap(\n  def: ZodTypeAny,\n  unwrapInfo: UnwrapInfo = {type: def, default: undefined, array: false, optional: false}\n): UnwrapInfo {\n  if (def instanceof z.ZodDefault) {\n    return unwrap(def._def.innerType, {\n      ...unwrapInfo,\n      type: def._def.innerType,\n      default: def._def.defaultValue(),\n    });\n  }\n  if (def instanceof z.ZodOptional) {\n    return unwrap(def._def.innerType, {\n      ...unwrapInfo,\n      type: def._def.innerType,\n      optional: true,\n    });\n  }\n  if (def instanceof z.ZodArray) {\n    return unwrap(def._def.type, {\n      ...unwrapInfo,\n      type: def._def.type,\n      array: true,\n    });\n  }\n  return unwrapInfo;\n}\n\n// Runtime impl\nexport function zodToFlags<Shape extends Record<string, ZodTypeAny>>(schema: ZodObject<Shape>): FlagsFromSchema<Shape> {\n  const flags: Record<string, Flag<any>> = {};\n\n  for (const [key, def] of Object.entries(schema.shape)) {\n    const description = def.description ?? '';\n\n    const {array, default: defaultValue, optional, type} = unwrap(def);\n\n    if (type instanceof z.ZodString) {\n      flags[key] = Flags.string({\n        description,\n        required: !optional,\n        default: defaultValue,\n        multiple: array as any, // Gets around a type issue\n      });\n    } else if (type instanceof z.ZodNumber) {\n      flags[key] = Flags.integer({\n        description,\n        required: !optional,\n        default: defaultValue,\n        multiple: array as any, // Gets around a type issue\n      });\n    } else if (type instanceof z.ZodBoolean) {\n      flags[key] = Flags.boolean({\n        description,\n        default: defaultValue,\n      });\n    } else if (type instanceof z.ZodEnum) {\n      flags[key] = Flags.string({\n        description,\n        required: !optional,\n        default: defaultValue,\n        options: type.options,\n        multiple: array as any, // Gets around a type issue\n      });\n    } else {\n      throw new Error(`Unsupported Zod type for flag: ${key}`);\n    }\n  }\n\n  return flags as FlagsFromSchema<Shape>;\n}\n\nexport function zodToArgs<Shape extends Record<string, ZodTypeAny>>(schema: ZodObject<Shape>): ArgsFromSchema<Shape> {\n  const args: Record<string, Arg<any>> = {};\n\n  for (const [key, def] of Object.entries(schema.shape)) {\n    const description = def.description ?? '';\n\n    const {array, default: defaultValue, optional, type} = unwrap(def);\n\n    if (type instanceof z.ZodString) {\n      args[key] = Args.string({\n        description,\n        required: !optional,\n        default: defaultValue,\n        multiple: array,\n      });\n    } else if (type instanceof z.ZodNumber) {\n      args[key] = Args.integer({\n        description,\n        required: !optional,\n        default: defaultValue,\n      });\n    } else if (type instanceof z.ZodBoolean) {\n      args[key] = Args.boolean({\n        description,\n        default: defaultValue,\n        multiple: array,\n      });\n    } else if (type instanceof z.ZodEnum) {\n      args[key] = Args.string({\n        description,\n        required: !optional,\n        default: defaultValue,\n        multiple: array,\n        options: type.options,\n      });\n    } else {\n      throw new Error(`Unsupported Zod type for arg: ${key}`);\n    }\n  }\n\n  return args as ArgsFromSchema<Shape>;\n}\n\nexport function mcpLogger(server: McpServer['server']): Logger {\n  const log = (level: 'error' | 'debug' | 'info' | 'notice') => (input: string) => {\n    void server.sendLoggingMessage({\n      level,\n      data: stripVTControlCharacters(input),\n    });\n  };\n  return {\n    debug: (message) => log('debug')(message),\n    warn: (message) => log('notice')(message),\n    error: (message) => log('error')(message),\n    info: (message) => log('info')(message),\n  };\n}\n\nexport function commandLogger(command: Command): Logger {\n  return {\n    info: command.log.bind(command),\n    warn: command.warn.bind(command),\n    error: command.error.bind(command),\n    debug: (command as any).debug.bind(command),\n  };\n}\n\nexport function silentLogger(): Logger {\n  return {\n    info: () => {\n      /* Do Nothing */\n    },\n    warn: () => {\n      /* Do Nothing */\n    },\n    error: () => {\n      /* Do Nothing */\n    },\n    debug: () => {\n      /* Do Nothing */\n    },\n  };\n}\n\nexport type PromptTypes = {\n  string: string;\n  number: number;\n  boolean: boolean;\n};\n\nexport type Prompt = <T extends keyof PromptTypes, M extends boolean | undefined = undefined>(opts: {\n  message: string;\n  type: T;\n  required?: boolean;\n  options?: PromptTypes[T][];\n  defaultValue?: PromptTypes[T];\n  multiple?: M;\n}) => Promise<M extends true ? PromptTypes[T][] : PromptTypes[T]>;\n\nexport function makeInputSchema<T extends keyof PromptTypes>(\n  type: T,\n  required?: boolean,\n  mmultiple?: boolean,\n  options?: PromptTypes[T][],\n  defaultValue?: PromptTypes[T]\n): ElicitRequestFormParams['requestedSchema'] {\n  if (type === 'string') {\n    return {\n      type: 'object',\n      properties: {\n        input: {\n          type: 'string',\n          default: defaultValue as PromptTypes['string'],\n          enum: options as string[] | undefined,\n          description: 'Input string',\n        },\n      },\n      required: ['input'],\n      // additionalProperties: false,\n    };\n    // } else if (type === 'number') {\n    //   return zodToJsonSchema(\n    //     z.object({\n    //       input: z\n    //         .number()\n    //         .default(defaultValue as PromptTypes['number'])\n    //         .optional(),\n    //     })\n    //   );\n    // } else if (type === 'boolean') {\n    //   return zodToJsonSchema(\n    //     z.object({\n    //       input: z\n    //         .boolean()\n    //         .default(defaultValue as PromptTypes['boolean'])\n    //         .optional(),\n    //     })\n    //   );\n  } else {\n    throw new Error(`Unsupported prompt type: ${type}`);\n  }\n}\n\nexport function makeMCPElicitPrmompt(server: McpServer): Prompt {\n  return async ({defaultValue, message, multiple, options, required, type}) => {\n    const res = await server.server.elicitInput({\n      mode: 'form',\n      message,\n      requestedSchema: makeInputSchema(type, required, multiple, options, defaultValue),\n    });\n\n    if (res.action === 'decline') {\n      throw new Error('User declined the input');\n    }\n\n    if (res.action === 'cancel') {\n      throw new Error('User cancelled the input');\n    }\n\n    if (res.action === 'accept') {\n      const input = res.content?.input;\n      if (input === undefined) {\n        throw new Error(`Input for ${message} is required`);\n      }\n      if (type === 'string') {\n        return input as any; // TODO fix type, string doesn't work for some reason\n      }\n      if (type === 'boolean') {\n        return input === 'true';\n      }\n      if (type === 'number') {\n        const num = Number(input);\n        if (isNaN(num)) {\n          throw new Error(`Input for ${message} must be a number`);\n        }\n        return num;\n      }\n    }\n\n    throw new Error(`Invalid elicit input response: ${JSON.stringify(res)}`);\n  };\n}\n\n// Helper function for fuzzy search on prompt input\nfunction filterInput<T>(arr: T[]) {\n  return (input: string | undefined): Promise<ReadonlyArray<{value: T}>> => {\n    input ??= '';\n    return Promise.resolve(fuzzy.filter(input, arr).map((r) => ({value: r.original})));\n  };\n}\n\nexport function makeCLIPrompt(): Prompt {\n  return async ({defaultValue, message, multiple, options, required, type}) => {\n    if (!options?.length && multiple) {\n      throw new Error('Multiple selection requires options to be provided');\n    }\n    if (type === 'string') {\n      if (options) {\n        if (multiple) {\n          return checkbox<string>({\n            message,\n            choices: (options as string[]).map((key) => ({value: key})),\n          });\n        }\n        return search<string>({\n          message,\n          source: filterInput<string>(options as string[]),\n          pageSize: 10,\n        });\n      }\n\n      return input({\n        message,\n        default: defaultValue as string | undefined,\n        required,\n      });\n    }\n    if (type === 'number') {\n      if (options) {\n        throw new Error('Number type does not support options');\n      }\n      const res = await input({\n        message,\n        default: defaultValue?.toString() as string | undefined,\n        required,\n      });\n      const num = Number(res);\n      if (isNaN(num)) {\n        throw new Error(`Input for ${message} must be a number`);\n      }\n      return num as any; // For some reason setting this to any fixes the type issue for this function\n    }\n    if (type === 'boolean') {\n      return confirm({\n        message,\n        default: defaultValue as boolean | undefined,\n      });\n    }\n\n    throw new Error(`Unsupported prompt type: ${type}`);\n  };\n}\n\nexport function formatErrorCauses(e: Error): string {\n  let message = e.message;\n  while (e.cause) {\n    e = e.cause as Error;\n    message += `:\\n cause: ${e.message}`;\n  }\n  return message;\n}\n\nexport function getMCPStructuredResponse<T extends z.ZodRawShape>(\n  result: z.ZodObject<T> | z.ZodArray<z.ZodObject<T>>\n): z.ZodObject<{\n  result: z.ZodOptional<z.ZodObject<T> | z.ZodArray<z.ZodObject<T>>>;\n  error: z.ZodOptional<z.ZodString>;\n}> {\n  return z.object({\n    result: z.optional(result),\n    error: z.optional(z.string().describe('Error message if the command fails')),\n  });\n}\n\n/**\n * Wraps a promise to provide a structured response for MCP tools including error handling.\n * @param p A promise which should resolve with T as the same structure as the input to getMCPStructuredResponse\n * @returns\n */\nexport function withStructuredResponse<I, O>(\n  p: (input: I, meta: RequestHandlerExtra<ServerRequest, ServerNotification>) => Promise<O>\n): (input: I, meta: RequestHandlerExtra<ServerRequest, ServerNotification>) => Promise<CallToolResult> {\n  return async (i, meta) => {\n    try {\n      const result = await p(i, meta);\n\n      return {\n        structuredContent: {\n          result,\n        },\n        content: [\n          {\n            type: 'text',\n            text: JSON.stringify(result, null, 2),\n          },\n        ],\n      };\n    } catch (e: any) {\n      return {\n        isError: true,\n        structuredContent: {\n          error: formatErrorCauses(e as Error),\n        },\n        content: [\n          {\n            type: 'text',\n            text: `Error running: ${formatErrorCauses(e)}`,\n          },\n        ],\n      };\n    }\n  };\n}\n\nexport type MCPToolOptions = {\n  /**\n   * Whether or not the client supports elicitaion and the user can be prompted for more information\n   */\n  supportsElicitation?: boolean;\n};\n\nexport async function getMCPWorkingDirectory(server: McpServer): Promise<string> {\n  const {roots} = await server.server.listRoots();\n\n  for (const root of roots) {\n    if (root.uri.startsWith('file://')) {\n      return path.resolve(root.uri.replace('file://', ''));\n    }\n  }\n\n  throw new Error('No valid working directory found in MCP roots.');\n}\n"
  },
  {
    "path": "packages/cli/src/commands/build-manifest.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'node:assert';\nimport {existsSync} from 'node:fs';\nimport path from 'node:path';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {Logger, zodToFlags, mcpLogger, commandLogger, getMCPWorkingDirectory, zodToArgs} from '../adapters/utils';\nimport {resolveToAbsolutePath, buildTsManifest} from '../utils';\n\nexport const buildManifestInputs = z.object({\n  location: z\n    .string({description: 'The path to the project, this can be a directory or a project manifest file.'})\n    .optional(),\n});\ntype BuildManifestInputs = z.infer<typeof buildManifestInputs>;\n\nconst buildManifestOutputs = z.void();\n\nexport async function buildManifestAdapter(\n  workingDir: string,\n  args: BuildManifestInputs,\n  logger: Logger\n): Promise<z.infer<typeof buildManifestOutputs>> {\n  const location = resolveToAbsolutePath(path.resolve(workingDir, args.location ?? ''));\n  assert(existsSync(location), 'Argument `location` is not a valid directory or file');\n\n  await buildTsManifest(location, logger.info.bind(logger));\n\n  logger.info('TypeScript manifest compiled successfully to project.yaml');\n}\n\nexport default class BuildManifest extends Command {\n  static description = 'Build TypeScript manifest file to YAML (generates project.yaml from project.ts)';\n  static flags = zodToFlags(buildManifestInputs.omit({location: true}));\n  static args = zodToArgs(buildManifestInputs.pick({location: true}));\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(BuildManifest);\n    try {\n      await buildManifestAdapter(process.cwd(), {...args, ...flags}, commandLogger(this));\n      this.log('TypeScript manifest built successfully!');\n    } catch (e: any) {\n      this.error(e);\n    }\n  }\n}\n\nexport function registerBuildManifestMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    BuildManifest.name,\n    {\n      description: BuildManifest.description,\n      inputSchema: buildManifestInputs.shape,\n      // outputSchema: buildManifestOutputs.shape,\n    },\n    async (args) => {\n      const cwd = await getMCPWorkingDirectory(server);\n      await buildManifestAdapter(cwd, args, mcpLogger(server.server));\n\n      return {\n        content: [\n          {\n            type: 'text',\n            text: `${BuildManifest.name} completed successfully.`,\n          },\n        ],\n      };\n    }\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/build.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'node:assert';\nimport {existsSync, lstatSync} from 'node:fs';\nimport path from 'node:path';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {glob} from 'glob';\nimport {z} from 'zod';\nimport {Logger, zodToFlags, mcpLogger, commandLogger, getMCPWorkingDirectory, zodToArgs} from '../adapters/utils';\nimport {getBuildEntries, runBundle} from '../controller/build-controller';\nimport {resolveToAbsolutePath, buildTsManifest} from '../utils';\n\nexport const buildInputs = z.object({\n  location: z\n    .string({description: 'The path to the project, this can be a directory or a project manifest file.'})\n    .optional(),\n  output: z.string({description: 'The output location relative to the location'}).optional().default('dist'),\n});\ntype BuildInputs = z.infer<typeof buildInputs>;\n\nconst buildOutputs = z.void();\n\nexport async function buildAdapter(\n  workingDir: string,\n  args: BuildInputs,\n  logger: Logger\n): Promise<z.infer<typeof buildOutputs>> {\n  const location = resolveToAbsolutePath(path.resolve(workingDir, args.location ?? ''));\n  assert(existsSync(location), 'Argument `location` is not a valid directory or file');\n\n  const directory = lstatSync(location).isDirectory() ? location : path.dirname(location);\n\n  await buildTsManifest(location, logger.info.bind(logger));\n\n  // Check that this is a SubQuery project\n  const projectSearch = path.resolve(\n    directory,\n    `./{project*.{yaml,yml},subquery-multichain.yaml${directory !== location ? `,${path.basename(location)}` : ''}}`\n  );\n  const manifests = await glob(projectSearch, {windowsPathsNoEscape: true});\n  if (!manifests.length) {\n    throw new Error(\n      'This is not a SubQuery project, please make sure you run this in the root of your project directory.'\n    );\n  }\n\n  const buildEntries = getBuildEntries(directory, logger);\n  const outputDir = path.resolve(directory, args.output);\n\n  await runBundle(buildEntries, directory, outputDir, false, true, logger);\n}\n\nexport default class Build extends Command {\n  static description = 'Build this SubQuery project code into a bundle';\n  static flags = zodToFlags(buildInputs.omit({location: true}));\n  static args = zodToArgs(buildInputs.pick({location: true}));\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(Build);\n    try {\n      await buildAdapter(process.cwd(), {...args, ...flags}, commandLogger(this));\n      this.log('Project built successfully!');\n    } catch (e: any) {\n      this.error(e);\n    }\n  }\n}\n\nexport function registerBuildMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    Build.name,\n    {\n      description: Build.description,\n      inputSchema: buildInputs.shape,\n      // outputSchema: buildOutputs.shape,\n    },\n    async (args) => {\n      const cwd = await getMCPWorkingDirectory(server);\n      await buildAdapter(cwd, args, mcpLogger(server.server));\n\n      return {\n        content: [\n          {\n            type: 'text',\n            text: `${Build.name} completed successfully.`,\n          },\n        ],\n      };\n    }\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/codegen/import-abi.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {\n  NETWORK_FAMILY,\n  getProjectRootAndManifest,\n  getProjectNetwork,\n  getManifestPath,\n  loadFromJsonOrYaml,\n} from '@subql/common';\nimport type {ProjectManifestV1_0_0} from '@subql/types-core';\nimport type {SubqlRuntimeDatasource as EthereumDs} from '@subql/types-ethereum';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  getMCPWorkingDirectory,\n  Logger,\n  makeCLIPrompt,\n  makeMCPElicitPrmompt,\n  mcpLogger,\n  MCPToolOptions,\n  Prompt,\n  withStructuredResponse,\n  zodToArgs,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {\n  filterObjectsByStateMutability,\n  generateHandlers,\n  generateManifestTs,\n  generateManifestYaml,\n  getManifestData,\n  prepareAbiDirectory,\n  prepareInputFragments,\n  tsExtractor,\n  yamlExtractor,\n  saveAbiToFile,\n  prepareUserInput,\n  UserInput,\n} from '../../controller/generate-controller';\nimport {loadDependency} from '../../modulars';\nimport {extractFromTs, buildManifestFromLocation, getTsManifest} from '../../utils';\nimport {fetchContractDeployHeight, tryFetchAbiFromExplorer} from '../../utils/etherscan';\n\nconst generateInputs = z.object({\n  location: z.string({description: 'The path to the project, this can be a directory or a project manifest file.'}),\n  address: z.string({description: 'The contracts address'}).optional(),\n  abiName: z\n    .string({\n      description:\n        'The contracts name, if not provided, the contract address will be used if the ABI is fetched from Etherscan',\n    })\n    .optional(),\n  startBlock: z\n    .number({\n      description: 'The start block of the handler, generally the block the contract is deployed.',\n    })\n    .optional(),\n  abiPath: z.string({description: 'The path to the ABI file'}).optional(),\n  events: z\n    .string({description: `ABI events to generate handlers for. Use '*' for all. e.g. --events=\"approval, transfer\"`})\n    .optional(),\n  functions: z\n    .string({\n      description: `ABI functions to generate handlers for. Use '*' for all. e.g. --functions=\"approval, transfer\"`,\n    })\n    .optional(),\n});\ntype GenerateInputs = z.infer<typeof generateInputs>;\n\nconst generateOutputs = z.object({\n  address: z.string({description: 'The address of the contract'}).optional(),\n  startBlock: z.number({description: 'The start block of the handler'}).optional(),\n  events: z.array(z.string({description: 'Handlers for events generated during the generation process'})),\n  functions: z.array(z.string({description: 'Handlers for functions generated during the generation process'})),\n});\n\n// eslint-disable-next-line complexity\nasync function generateAdapter(\n  workingDir: string,\n  args: GenerateInputs,\n  logger: Logger,\n  prompt: Prompt | null\n): Promise<z.infer<typeof generateOutputs>> {\n  const location = path.resolve(workingDir, args.location);\n  let isTs = false;\n\n  /*\n    ts manifest can be either single chain ts manifest\n    or multichain ts manifest\n    or multichain yaml manifest containing single chain ts project paths\n  */\n  const tsManifest = getTsManifest(location);\n\n  // Ensure the manifest is built so we can extract data\n  if (tsManifest) {\n    isTs = true;\n    await buildManifestFromLocation(tsManifest, logger.info.bind(logger));\n  }\n\n  const {manifests, root} = getProjectRootAndManifest(location);\n  if (manifests.length > 1) {\n    //\n    throw new Error('For multichain projects a specific manifest must be provided');\n  }\n  const yamlManifest = getManifestPath(root, manifests[0]);\n  const manifest = tsManifest ?? yamlManifest;\n\n  const project = loadFromJsonOrYaml(yamlManifest) as ProjectManifestV1_0_0;\n\n  if (getProjectNetwork(project) !== NETWORK_FAMILY.ethereum) {\n    throw new Error('ABI generation is only supported for Ethereum projects');\n  }\n\n  if (!prompt && !args.events && !args.functions) {\n    throw new Error('Please provide either events and/or functions from the ABI that you wish to import.');\n  }\n\n  if (!args.abiPath) {\n    if (!args.address) {\n      throw new Error('Please provide the Address the attempt to fetch from Etherscan or an ABI file path');\n    }\n    // const spinner = ora({text: 'Finding ABI from Etherscan', isSilent: flags.mcp}).start();\n    logger.info('Finding ABI on Etherscan');\n    try {\n      const abi = await tryFetchAbiFromExplorer(args.address, project.network.chainId);\n      if (!abi) {\n        // spinner.stop();\n        throw new Error('Unable to fetch ABI from Etherscan, please provide an ABI via the abiPath');\n      }\n\n      args.abiPath = await saveAbiToFile(abi, args.abiName ?? args.address, root);\n      logger.info('Found ABI from Etherscan');\n    } catch (e) {\n      // spinner.stop();\n      throw new Error('Failed to fetch ABI from Etherscan', {cause: e});\n    }\n  }\n\n  if (!args.startBlock) {\n    if (!args.address) {\n      // Cannot fetch start block without address\n      throw new Error('Please provide the start block');\n    }\n    logger.info('Finding start height from Etherscan');\n    try {\n      args.startBlock = await fetchContractDeployHeight(args.address, project.network.chainId);\n      if (!args.startBlock) {\n        throw new Error(`Unable to find start block for contract ${args.address}`);\n      }\n      logger.info(`Found contract deployed at height ${args.startBlock}, using as start block.`);\n    } catch (e) {\n      throw new Error(`Unable to fetch start block from Etherscan, please provide the start block`, {cause: e});\n    }\n  }\n\n  const ethModule = loadDependency(NETWORK_FAMILY.ethereum, args.location);\n  const abiName = ethModule.parseContractPath(args.abiPath).name;\n\n  if (fs.existsSync(path.join(root, 'src/mappings/', `${abiName}Handlers.ts`))) {\n    throw new Error(`file: ${abiName}Handlers.ts already exists`);\n  }\n\n  await prepareAbiDirectory(args.abiPath, root);\n  const abiFileName = path.basename(args.abiPath);\n\n  // fragments from abi\n  const abiInterface = ethModule.getAbiInterface(root, abiFileName);\n  const eventsFragments = abiInterface.events;\n  const functionFragments = filterObjectsByStateMutability(abiInterface.functions);\n\n  const selectedEvents = await prepareInputFragments('event', args.events, eventsFragments, abiName, prompt);\n  const selectedFunctions = await prepareInputFragments('function', args.functions, functionFragments, abiName, prompt);\n\n  if (!Object.keys(selectedEvents).length && !Object.keys(selectedFunctions).length) {\n    throw new Error(`When importing an ABI, please select at least one event or function`);\n  }\n\n  let userInput: UserInput;\n\n  if (isTs) {\n    const existingManifest = await fs.promises.readFile(manifest, 'utf8');\n    const extractedDatasources = extractFromTs(existingManifest, {\n      dataSources: undefined,\n    });\n    const existingDs = extractedDatasources.dataSources as string;\n\n    userInput = prepareUserInput(\n      selectedEvents,\n      selectedFunctions,\n      existingDs,\n      args.address,\n      args.startBlock,\n      abiFileName,\n      tsExtractor\n    );\n\n    await generateManifestTs(manifest, userInput, existingManifest);\n  } else {\n    // yaml\n    const existingManifest = await getManifestData(manifest);\n    const existingDs = ((existingManifest.get('dataSources') as any)?.toJSON() as EthereumDs[]) ?? [];\n\n    userInput = prepareUserInput(\n      selectedEvents,\n      selectedFunctions,\n      existingDs,\n      args.address,\n      args.startBlock,\n      abiFileName,\n      yamlExtractor\n    );\n\n    await generateManifestYaml(manifest, userInput, existingManifest);\n  }\n\n  await generateHandlers([userInput.events, userInput.functions], root, abiName);\n\n  return {\n    address: args.address,\n    startBlock: args.startBlock,\n    events: userInput.events.map((event) => event.name),\n    functions: userInput.functions.map((fn) => fn.name),\n  };\n}\n\nexport default class ImportAbi extends Command {\n  static description =\n    'Import and ABI to generate project handlers and mapping functions based on an Ethereum ABI. If address is provided, it will attempt to fetch the ABI and start block from the Etherscan.';\n\n  static flags = zodToFlags(generateInputs.omit({location: true}));\n  static args = zodToArgs(generateInputs.pick({location: true}));\n\n  static aliases = ['import-abi'];\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(ImportAbi);\n\n    const logger = commandLogger(this);\n\n    const result = await generateAdapter(process.cwd(), {...flags, ...args}, logger, makeCLIPrompt());\n\n    this.log('-----------Generated-----------');\n    if (result.address) {\n      this.log(`Address: ${result.address}`);\n    }\n    if (result.startBlock) {\n      this.log(`Start Block: ${result.startBlock}`);\n    }\n    result.functions.forEach((fn) => {\n      this.log(`Function: ${fn} successfully generated`);\n    });\n    result.events.forEach((event) => {\n      this.log(`Event: ${event} successfully generated`);\n    });\n    this.log('-------------------------------');\n  }\n}\n\nconst nonInteractiveGenerateInputs = generateInputs;\n\nexport function registerImportAbiMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    ImportAbi.name,\n    {\n      description: ImportAbi.description,\n      inputSchema: (opts.supportsElicitation ? generateInputs : nonInteractiveGenerateInputs).shape,\n      outputSchema: getMCPStructuredResponse(generateOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      const cwd = await getMCPWorkingDirectory(server);\n      const prompt = opts.supportsElicitation ? makeMCPElicitPrmompt(server) : null;\n      return generateAdapter(cwd, args, logger, prompt);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/codegen/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'node:assert';\nimport {existsSync} from 'node:fs';\nimport path from 'node:path';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {getProjectRootAndManifest, getSchemaPath} from '@subql/common';\nimport {z} from 'zod';\nimport {commandLogger, getMCPWorkingDirectory, Logger, mcpLogger, zodToArgs} from '../../adapters/utils';\nimport {codegen} from '../../controller/codegen-controller';\nimport {resolveToAbsolutePath, buildManifestFromLocation, getTsManifest} from '../../utils';\n\nconst codegenInputs = z.object({\n  location: z.string({description: 'The project directory or path to project manifest.'}).optional(),\n});\ntype CodegenInputs = z.infer<typeof codegenInputs>;\n\nconst codegenOutputs = z.void();\n\nexport async function codegenAdapter(\n  workingDir: string,\n  args: CodegenInputs,\n  logger: Logger\n): Promise<z.infer<typeof codegenOutputs>> {\n  const location = resolveToAbsolutePath(path.resolve(workingDir, args.location ?? ''));\n  assert(existsSync(location), 'Argument `location` is not a valid directory or file');\n\n  /*\n    ts manifest can be either single chain ts manifest\n    or multichain ts manifest\n    or multichain yaml manifest containing single chain ts project paths\n  */\n  const tsManifest = getTsManifest(location);\n\n  if (tsManifest) {\n    await buildManifestFromLocation(tsManifest, logger.info.bind(logger));\n  }\n\n  const {manifests, root} = getProjectRootAndManifest(location);\n\n  let firstSchemaPath: string | null = null;\n\n  for (const manifest of manifests) {\n    const schemaPath = getSchemaPath(root, manifest);\n\n    if (firstSchemaPath === null) {\n      firstSchemaPath = schemaPath;\n    } else if (schemaPath !== firstSchemaPath) {\n      throw new Error('All schema paths are not the same');\n    }\n  }\n\n  await codegen(root, manifests);\n}\n\nexport default class Codegen extends Command {\n  static description = 'Generate entity types from the GraphQL schema and contract interfaces';\n  static args = zodToArgs(codegenInputs);\n\n  async run(): Promise<void> {\n    const {args} = await this.parse(Codegen);\n\n    try {\n      await codegenAdapter(process.cwd(), args, commandLogger(this));\n    } catch (err: any) {\n      this.error(`${err.message}, ${err.cause}`);\n    }\n  }\n}\n\nexport function registerCodegenMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    Codegen.name,\n    {\n      description: Codegen.description,\n      inputSchema: codegenInputs.shape,\n    },\n    async (args, meta) => {\n      const cwd = await getMCPWorkingDirectory(server);\n\n      await codegenAdapter(cwd, args, mcpLogger(server.server));\n\n      return {\n        content: [\n          {\n            type: 'text',\n            text: `${Codegen.name} completed successfully.`,\n          },\n        ],\n      };\n    }\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/init.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'node:assert';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport {stripVTControlCharacters} from 'node:util';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {ProjectNetworkConfig} from '@subql/types-core';\nimport chalk from 'chalk';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPWorkingDirectory,\n  Logger,\n  makeCLIPrompt,\n  makeMCPElicitPrmompt,\n  mcpLogger,\n  MCPToolOptions,\n  Prompt,\n  zodToArgs,\n  zodToFlags,\n} from '../adapters/utils';\nimport {\n  installDependencies,\n  cloneProjectTemplate,\n  readDefaults,\n  prepare,\n  fetchNetworks,\n  fetchExampleProjects,\n  ExampleProjectInterface,\n  Template,\n} from '../controller/init-controller';\nimport {ProjectSpecBase} from '../types';\nimport {resolveToAbsolutePath} from '../utils';\n\nconst initInputs = z.object({\n  name: z.string({description: 'The name of the project to create'}),\n  location: z\n    .string({description: 'The path to the project, this can be a directory or a project manifest file.'})\n    .optional(),\n  network: z.string({description: 'The name of the network the project will index data for'}).optional(),\n  networkFamily: z\n    .string({description: 'The network family the project will index data for, e.g. EVM, Substrate'})\n    .optional(),\n  endpoint: z.string({description: 'The RPC endpoint that the project will use'}).optional(),\n  installDependencies: z.boolean({description: 'Install the dependencies of the project'}).optional().default(true),\n  packageManager: z.enum(['npm', 'yarn', 'pnpm']).optional().default('npm'),\n  author: z\n    .string({description: 'The project author that will be set in package.json. Defaults to the current system user'})\n    .optional(),\n});\ntype InitInputs = z.infer<typeof initInputs>;\n\nconst initOutputs = z.object({\n  projectPath: z.string({description: 'The absolute path to the created project'}),\n});\ntype InitOutputs = z.infer<typeof initOutputs>;\n\nfunction extractEndpoints(endpointConfig: ProjectNetworkConfig['endpoint']): string[] {\n  if (typeof endpointConfig === 'string') {\n    return [endpointConfig];\n  }\n  if (endpointConfig instanceof Array) {\n    return endpointConfig;\n  }\n  return Object.keys(endpointConfig);\n}\n\n// Family needs to be provided because there can be the same network name in different families. eg Bittensor (Substrate and EVM)\nfunction findNetwork(\n  templates: Template[],\n  network: string,\n  family?: string\n): [Template, Template['networks'][number]] {\n  const selectedFamily = templates.find((f) => {\n    if (family) {\n      return f.name.toLowerCase() === family.toLowerCase();\n    }\n    return !!f.networks.find((n) => n.name.toLowerCase() === network.toLowerCase());\n  });\n  if (!selectedFamily) {\n    throw new Error(`Network ${network} not found in the available templates`);\n  }\n\n  const selectedNetwork = selectedFamily.networks.find((v) => network.toLowerCase() === v.name.toLowerCase());\n  if (!selectedNetwork) {\n    throw new Error(`Network ${network} not found in the available templates`);\n  }\n\n  return [selectedFamily, selectedNetwork];\n}\n\nexport async function initAdapter(\n  workingDir: string,\n  args: InitInputs,\n  logger: Logger,\n  prompt: Prompt | null\n): Promise<InitOutputs> {\n  const location = resolveToAbsolutePath(path.resolve(workingDir, args.location ?? ''));\n\n  // TODO if the location includes the name, we can dedupe it\n  if (fs.existsSync(path.join(location, `${args.name}`))) {\n    throw new Error(`Directory ${args.name} exists, try another project name`);\n  }\n\n  const networkTemplates = await fetchNetworks();\n\n  let network = args.network;\n  let family = args.networkFamily;\n  if (!network) {\n    if (!prompt) {\n      throw new Error('Please provide a network');\n    }\n    const networkStrArr = networkTemplates.flatMap((families) => {\n      if (family && families.name.toLowerCase() !== family.toLowerCase()) return [];\n      return families.networks.map((network) => `${network.name} ${chalk.gray(`(${families.name})`)}`);\n    });\n\n    const networkPrompt = await prompt({\n      message: 'Select a network',\n      type: 'string',\n      options: networkStrArr,\n    });\n\n    const [rawNetwork, rawFamily] = stripVTControlCharacters(networkPrompt).split(' (');\n    network = rawNetwork.trim();\n    family ??= rawFamily ? rawFamily.replace(')', '').trim() : undefined;\n  }\n\n  const [selectedFamily, selectedNetwork] = findNetwork(networkTemplates, network, family);\n\n  const candidateProjects = await fetchExampleProjects(selectedFamily.code, selectedNetwork.code);\n\n  const joiner = ` - `;\n  const candidateOptions = candidateProjects.map(\n    (project) => `${project.name}${joiner}${chalk.gray(project.description)}`\n  );\n\n  // Only push other when prompts are available because it requires a user to input a URL\n  if (prompt) {\n    candidateOptions.push(`Other${joiner}${chalk.gray('Enter a git repo URL')}`);\n  }\n\n  const template = prompt\n    ? await prompt({\n        message: 'Select a template project',\n        type: 'string',\n        options: candidateOptions,\n      })\n    : candidateOptions[0];\n\n  const templateName = stripVTControlCharacters(template).split(joiner)[0];\n  let selectedProject: ExampleProjectInterface | undefined;\n  if (templateName === 'Other' && prompt) {\n    const url = await prompt({\n      message: 'Enter a git repo URL',\n      type: 'string',\n      // required: true,\n    });\n\n    selectedProject = {\n      remote: url,\n      name: templateName,\n      path: '',\n      description: '',\n    };\n  } else {\n    selectedProject = candidateProjects.find((project) => project.name === templateName);\n  }\n\n  assert(selectedProject, 'No project selected');\n  const projectPath: string = await cloneProjectTemplate(location, args.name, selectedProject);\n  const {endpoint: defaultEndpoint, isMultiChainProject} = await readDefaults(projectPath);\n\n  const username = os.userInfo().username;\n  const project = {\n    name: args.name,\n    author:\n      args.author ??\n      (await prompt?.({message: 'Author', required: false, defaultValue: username, type: 'string'})) ??\n      username,\n  } as ProjectSpecBase;\n\n  if (!isMultiChainProject) {\n    const projectEndpoints: string[] = extractEndpoints(defaultEndpoint);\n    const endpoint =\n      args.endpoint ??\n      (await prompt?.({\n        message: 'RPC endpoint',\n        type: 'string',\n        defaultValue: projectEndpoints[0],\n        required: false,\n      }));\n    if (endpoint && !projectEndpoints.includes(endpoint)) {\n      projectEndpoints.push(endpoint);\n    }\n\n    project.endpoint = projectEndpoints;\n  }\n\n  await prepare(projectPath, project, isMultiChainProject);\n\n  if (args.installDependencies) {\n    logger.info(`Installing dependencies`);\n    installDependencies(projectPath, args.packageManager);\n    logger.info(`Installed dependencies`);\n  }\n\n  return {\n    projectPath,\n  };\n}\n\nexport default class Init extends Command {\n  static description = 'Initialize a SubQuery project from a template';\n\n  static flags = zodToFlags(initInputs.omit({name: true}));\n  static args = zodToArgs(initInputs.pick({name: true}));\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(Init);\n\n    await initAdapter(process.cwd(), {...flags, ...args}, commandLogger(this), makeCLIPrompt());\n\n    this.log('Project successfully created!');\n  }\n}\n\n// Used when MCP doesn't support elicitInput\nconst nonInteractiveInitInputs = initInputs.required({name: true});\n\nexport function registerInitMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    Init.name,\n    {\n      description: Init.description,\n      inputSchema: (opts.supportsElicitation ? initInputs : nonInteractiveInitInputs).shape,\n      // outputSchema: initOutputs.shape, // TODO once we know the output we can add this\n    },\n    async (args, meta) => {\n      const cwd = await getMCPWorkingDirectory(server);\n      const logger = mcpLogger(server.server);\n\n      const prompt = opts.supportsElicitation ? makeMCPElicitPrmompt(server) : null;\n      const result = await initAdapter(cwd, args, logger, prompt);\n\n      return {\n        content: [\n          {\n            type: 'text',\n            text: `Project created at ${result.projectPath}`,\n          },\n        ],\n      };\n    }\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/mcp.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer} from '@modelcontextprotocol/sdk/server/mcp.js';\nimport {StdioServerTransport} from '@modelcontextprotocol/sdk/server/stdio.js';\nimport {Command} from '@oclif/core';\nimport {MCPToolOptions} from '../adapters/utils';\nimport {fetchNetworks} from '../controller/init-controller';\nimport {registerBuildMCPTool} from './build';\nimport {registerBuildManifestMCPTool} from './build-manifest';\nimport {registerCodegenMCPTool} from './codegen';\nimport {registerImportAbiMCPTool} from './codegen/import-abi';\nimport {registerInitMCPTool} from './init';\nimport {registerMigrateSubgraphMCPTool} from './migrate';\nimport {registerMultichainAddMCPTool} from './multi-chain/add';\nimport {registerAddDeploymentBoostMCPTool} from './network/add-deployment-boost';\nimport {registerConnectWalletMCPTool} from './network/connect-wallet';\nimport {registerCreateNetworkApiKeyMCPTool} from './network/create-api-key';\nimport {registerCreateNetworkDeploymentMCPTool} from './network/create-deployment';\nimport {registerCreateNetworkFlexPlanMCPTool} from './network/create-flex-plan';\nimport {registerCreateNetworkProjectMCPTool} from './network/create-project';\nimport {registerDisconnectWalletMCPTool} from './network/disconnect-wallet';\nimport {registerListAccountBoostsMCPTool} from './network/list-account-boosts';\nimport {registerListDeploymentBoostsMCPTool} from './network/list-deployment-boosts';\nimport {registerListDeploymentIndexersMCPTool} from './network/list-deployment-indexers';\nimport {registerListNetworkDeploymentsMCPTool} from './network/list-deployments';\nimport {registerListFlexPlansMCPTool} from './network/list-flex-plans';\nimport {registerListNetworkProjectsMCPTool} from './network/list-projects';\nimport {registerRemoveDeploymentBoostMCPTool} from './network/remove-deployment-boost';\nimport {registerStopNetworkFlexPlanMCPTool} from './network/stop-flex-plan';\nimport {registerSwapDeploymentBoostMCPTool} from './network/swap-deployment-boost';\nimport {registerCreateDeploymentMCPTool} from './onfinality/create-deployment';\nimport {registerCreateMultichainDeploymentMCPTool} from './onfinality/create-multichain-deployment';\nimport {registerCreateProjectMCPTool} from './onfinality/create-project';\nimport {registerDeleteProjectMCPTool} from './onfinality/delete-project';\nimport {registerPromoteDeploymentMCPTool} from './onfinality/promote-deployment';\nimport {registerPublishMCPTool} from './publish';\n\nconst pjson = require('../../package.json');\n\nexport default class MCP extends Command {\n  static description = 'Runs an MCP (Model Context Protocol) server over stdio';\n\n  async run(): Promise<void> {\n    const server = new McpServer(\n      {\n        name: 'SubQuery CLI',\n        version: pjson.version,\n        // description:\n        //   'Interact with SubQuery CLI commands using Model Context Protocol. This allows you to initialize, build and deploy your SubQuery projects.',\n      },\n      {\n        capabilities: {\n          logging: {}, // Required to enable logging\n        },\n      }\n    );\n\n    // Note: Cursor and Zed don't currently support MCP resources.\n    server.registerResource(\n      'supported-networks',\n      'subql://supported-networks', //new ResourceTemplate('subql://supported-networks', {list: undefined}),\n      {\n        title: 'Supported Networks',\n        description: 'A list of networks SubQuery can initialize a project for',\n      },\n      async (uri: any) => {\n        const networkTemplates = await fetchNetworks();\n        const networkNames = networkTemplates.flatMap((fam) => fam.networks.map((net) => net.name));\n\n        return {\n          contents: [\n            {\n              uri,\n              text: networkNames.join(', '),\n            },\n          ],\n        };\n      }\n    );\n\n    // There needs to be at least one tool registered before a client connects otherwise tools arent discovered\n    registerCodegenMCPTool(server);\n    registerMultichainAddMCPTool(server);\n    registerCreateProjectMCPTool(server);\n    registerDeleteProjectMCPTool(server);\n    registerPromoteDeploymentMCPTool(server);\n    registerBuildMCPTool(server);\n    registerPublishMCPTool(server);\n    registerMigrateSubgraphMCPTool(server);\n\n    registerListNetworkProjectsMCPTool(server);\n    registerListNetworkDeploymentsMCPTool(server);\n    registerListDeploymentBoostsMCPTool(server);\n    registerListDeploymentIndexersMCPTool(server);\n    registerListAccountBoostsMCPTool(server);\n    registerListFlexPlansMCPTool(server);\n    registerCreateNetworkFlexPlanMCPTool(server);\n    registerStopNetworkFlexPlanMCPTool(server);\n    registerCreateNetworkApiKeyMCPTool(server);\n    registerDisconnectWalletMCPTool(server);\n    registerBuildManifestMCPTool(server);\n\n    const transport = new StdioServerTransport();\n    await server.connect(transport);\n\n    /**\n     * MCP is intended to have 1 server per client\n     * We get the clients capabilities to determine the tools used\n     */\n    server.server.oninitialized = () => {\n      const capabilities = server.server.getClientCapabilities();\n\n      const opts: MCPToolOptions = {\n        supportsElicitation: capabilities?.elicitation !== undefined,\n      };\n\n      registerImportAbiMCPTool(server, opts);\n      registerCreateDeploymentMCPTool(server, opts);\n      registerCreateMultichainDeploymentMCPTool(server, opts);\n      registerInitMCPTool(server, opts);\n      registerCreateNetworkProjectMCPTool(server, opts);\n      registerCreateNetworkDeploymentMCPTool(server, opts);\n      registerAddDeploymentBoostMCPTool(server, opts);\n      registerRemoveDeploymentBoostMCPTool(server, opts);\n\n      registerConnectWalletMCPTool(server, opts);\n      registerSwapDeploymentBoostMCPTool(server, opts);\n    };\n\n    return new Promise(() => {\n      // Keep the server running indefinitely\n    });\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/commands/migrate.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {makeTempDir} from '@subql/common';\nimport {rimraf} from 'rimraf';\nimport {DEFAULT_SUBQL_MANIFEST} from '../constants';\nimport Migrate from './migrate';\n\njest.setTimeout(300_000); // 300s\ndescribe('Integration test - Migrate', () => {\n  let projectDir: string;\n\n  beforeAll(async () => {\n    projectDir = await makeTempDir();\n  });\n\n  afterAll(async () => {\n    try {\n      if (!projectDir) return;\n      await rimraf(projectDir);\n    } catch (e) {\n      console.warn('Failed to clean up tmp dir after test', e);\n    }\n  });\n\n  it('could migrate a subgraph project from remote source', async () => {\n    const graphProjectGit = 'https://github.com/graphprotocol/graph-tooling/tree/main/';\n    const graphProjectSubDir = 'examples/ethereum-gravatar';\n    await Migrate.run(['--input', graphProjectGit, '--gitSubDirectory', graphProjectSubDir, '--output', projectDir]);\n    const subqlManifest = await fs.promises.readFile(path.join(projectDir, DEFAULT_SUBQL_MANIFEST), 'utf8');\n    expect(subqlManifest).toContain(`const project: EthereumProject`);\n    expect(subqlManifest).toContain(`name: \"example-ethereum-gravatar\"`);\n    expect(subqlManifest).toContain(`handler: \"handleUpdatedGravatar\"`);\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/commands/migrate.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport fs, {lstatSync} from 'fs';\nimport path from 'path';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {makeTempDir} from '@subql/common';\nimport git from 'simple-git';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  getMCPWorkingDirectory,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToFlags,\n} from '../adapters/utils';\nimport {\n  DEFAULT_SUBGRAPH_MANIFEST,\n  DEFAULT_SUBGRAPH_SCHEMA,\n  DEFAULT_SUBQL_MANIFEST,\n  DEFAULT_SUBQL_SCHEMA,\n} from '../constants';\nimport {preparePackage} from '../controller/init-controller';\nimport {\n  extractGitInfo,\n  extractNetworkFromManifest,\n  improveProjectInfo,\n  migrateAbis,\n  migrateManifest,\n  migrateSchema,\n  prepareProject,\n  readSubgraphManifest,\n  subgraphValidation,\n} from '../controller/migrate';\nimport {migrateMapping} from '../controller/migrate/mapping/migrate-mapping.controller';\n\nconst migrateSubgraphInputs = z.object({\n  input: z.string({description: 'A directory or git repo to a subgraph project'}),\n  output: z.string({description: 'The location of the SubQuery project'}),\n  gitSubDirectory: z.string({description: 'A subdirectory in the git repo if the input is a git repo'}).optional(),\n});\ntype MigrateSubgraphInputs = z.infer<typeof migrateSubgraphInputs>;\n\nconst migrateSubgraphOutputs = z.object({\n  output: z.string({description: 'The output path'}),\n});\n\nasync function migrateSubgraphAdapter(\n  workingDir: string,\n  args: MigrateSubgraphInputs,\n  logger: Logger\n): Promise<z.infer<typeof migrateSubgraphOutputs>> {\n  const gitMatch = extractGitInfo(args.input);\n\n  const parsedSubqlPath = path.parse(path.resolve(workingDir, args.output));\n  // We don't need to check output directory is existing or not\n  const subqlDir = parsedSubqlPath.ext === '' ? args.output : parsedSubqlPath.dir;\n  let subgraphDir: string;\n  let tempSubgraphDir: string | undefined;\n  if (gitMatch) {\n    tempSubgraphDir = await makeTempDir();\n    const {branch, link} = gitMatch;\n    // clone the subdirectory project\n    if (args.gitSubDirectory) {\n      subgraphDir = path.join(tempSubgraphDir, args.gitSubDirectory);\n      await git(tempSubgraphDir).init().addRemote('origin', link);\n      await git(tempSubgraphDir).raw('sparse-checkout', 'set', args.gitSubDirectory);\n      assert(branch, 'Branch is required for git subdirectory');\n      await git(tempSubgraphDir).raw('pull', 'origin', branch);\n    } else {\n      subgraphDir = tempSubgraphDir;\n      await git().clone(link, subgraphDir, branch ? ['-b', branch, '--single-branch'] : ['--single-branch']);\n    }\n    logger.info(\n      `* Pull subgraph project from git: ${link}, branch: ${branch ?? 'default branch'}${\n        args.gitSubDirectory ? `, subdirectory:${args.gitSubDirectory}` : '.'\n      }`\n    );\n  } else {\n    // will return false if directory not exist\n    if (lstatSync(path.resolve(workingDir, args.input), {throwIfNoEntry: false})?.isDirectory()) {\n      if (args.gitSubDirectory) {\n        logger.warn(`Git sub directory only works with git path, not local directories.`);\n      }\n      subgraphDir = args.input;\n    } else {\n      throw new Error(`Subgraph project should be a git ssh/link or file directory`);\n    }\n  }\n\n  const subgraphManifestPath = path.join(subgraphDir, DEFAULT_SUBGRAPH_MANIFEST);\n  const subgraphSchemaPath = path.join(subgraphDir, DEFAULT_SUBGRAPH_SCHEMA);\n  const subqlManifestPath = path.join(subqlDir, DEFAULT_SUBQL_MANIFEST);\n  const subqlSchemaPath = path.join(subqlDir, DEFAULT_SUBQL_SCHEMA);\n\n  try {\n    const subgraphManifest = readSubgraphManifest(subgraphManifestPath, subgraphDir);\n    improveProjectInfo(subgraphDir, subgraphManifest);\n    subgraphValidation(subgraphManifest);\n    const chainInfo = await extractNetworkFromManifest(subgraphManifest);\n    await prepareProject(chainInfo, subqlDir);\n    await migrateAbis(subgraphManifest, subgraphDir, subqlDir);\n    await migrateManifest(chainInfo, subgraphManifest, subqlManifestPath);\n    // render package.json\n    await preparePackage(subqlDir, {\n      name: subgraphManifest.name ?? '',\n      description: subgraphManifest.description,\n      author: subgraphManifest.author ?? '',\n      endpoint: [],\n    });\n    await migrateSchema(subgraphSchemaPath, subqlSchemaPath);\n    await migrateMapping(subgraphDir, subqlDir);\n    logger.info(`* Output migrated SubQuery project to ${subqlDir}`);\n  } catch (e) {\n    fs.rmSync(subqlDir, {recursive: true, force: true});\n    throw new Error(`Migrate project failed: ${e}`);\n  } finally {\n    // Clean project folder, only remove temp dir project, if user provide local project DO NOT REMOVE\n    if (tempSubgraphDir !== undefined) {\n      logger.info('Cleaning up temp git directory');\n      fs.rmSync(tempSubgraphDir, {recursive: true, force: true});\n    }\n  }\n\n  return {\n    output: subqlDir,\n  };\n}\n\nexport default class MigrateSubgraph extends Command {\n  static description = 'Migrate a Subgraph project to a SubQuery project, including the manifest and schema.';\n  static flags = zodToFlags(migrateSubgraphInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(MigrateSubgraph);\n\n    const {output} = await migrateSubgraphAdapter(process.cwd(), flags, commandLogger(this));\n\n    this.log(`Output migrated SubQuery project to ${output}`);\n  }\n}\n\nexport function registerMigrateSubgraphMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    MigrateSubgraph.name,\n    {\n      description: MigrateSubgraph.description,\n      inputSchema: migrateSubgraphInputs.shape,\n      outputSchema: getMCPStructuredResponse(migrateSubgraphOutputs).shape,\n    },\n    withStructuredResponse(async (args, meta) => {\n      const logger = mcpLogger(server.server);\n      const cwd = await getMCPWorkingDirectory(server);\n      return migrateSubgraphAdapter(cwd, args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/multi-chain/add.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'node:path';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {getMCPWorkingDirectory, zodToArgs, zodToFlags} from '../../adapters/utils';\nimport {addChain} from '../../controller/add-chain-controller';\n\nconst multichainAddInputs = z.object({\n  location: z\n    .string({\n      description: 'The path to the multichain project, this can be a directory or a multichain manifest file.',\n    })\n    .optional(),\n  chainManifestFile: z.string({description: 'The path to the new chain manifest'}),\n});\ntype MultichainAddInputs = z.infer<typeof multichainAddInputs>;\n\nconst multichainAddOutputs = z.void();\n\nasync function multichainAddAdapter(\n  workingDir: string,\n  args: MultichainAddInputs\n): Promise<z.infer<typeof multichainAddOutputs>> {\n  const location = path.resolve(workingDir, args.location ?? '');\n  const chainManifestFile = path.resolve(workingDir, args.chainManifestFile);\n  await addChain(location, chainManifestFile);\n}\n\nexport default class MultiChainAdd extends Command {\n  static description = 'Add new chain manifest to multi-chain project';\n  static flags = zodToFlags(multichainAddInputs.omit({location: true}));\n  static args = zodToArgs(multichainAddInputs.pick({location: true}));\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(MultiChainAdd);\n\n    return multichainAddAdapter(process.cwd(), {...args, ...flags});\n  }\n}\n\nexport function registerMultichainAddMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `multichain.${MultiChainAdd.name}`,\n    {\n      description: MultiChainAdd.description,\n      inputSchema: multichainAddInputs.shape,\n    },\n    async (args) => {\n      const cwd = await getMCPWorkingDirectory(server);\n      await multichainAddAdapter(cwd, args);\n      return {\n        content: [\n          {\n            type: 'text',\n            text: `Added chain to multi-chain project`,\n          },\n        ],\n      };\n    }\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/add-deployment-boost.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {parseEther} from '@ethersproject/units';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  makeCLIPrompt,\n  makeMCPElicitPrmompt,\n  mcpLogger,\n  MCPToolOptions,\n  Prompt,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {\n  checkTransactionSuccess,\n  getContractSDK,\n  getSignerOrProvider,\n  cidToBytes32,\n  networkNameSchema,\n  requireSigner,\n  formatSQT,\n} from '../../controller/network/constants';\nimport {parseContractError} from '../../controller/network/contract-errors';\nimport {checkAndIncreaseAllowance} from '../../controller/network/utils';\n\nconst addDeploymentBoostInputs = z.object({\n  network: networkNameSchema,\n  deploymentId: z.string({description: 'The deployment id for the project'}),\n  amount: z.string({description: 'The amount to boost the deployment with, in SQT'}),\n});\ntype BoostProjectInputs = z.infer<typeof addDeploymentBoostInputs>;\n\nconst addDeploymentBoostOutputs = z.object({\n  transactionHash: z.string({description: 'The hash of the transaction that boosted the project'}),\n  amount: z.bigint({description: 'Then new amount in SQT boosted by the account'}),\n});\n\nasync function addDeploymentBoostAdapter(\n  args: BoostProjectInputs,\n  logger: Logger,\n  prompt?: Prompt\n): Promise<z.infer<typeof addDeploymentBoostOutputs>> {\n  const amount = parseEther(args.amount);\n  if (amount.lte(0n)) {\n    throw new Error('Amount must be greater than 0');\n  }\n\n  const signer = await getSignerOrProvider(args.network, logger, undefined);\n  const sdk = getContractSDK(signer, args.network);\n  requireSigner(signer);\n\n  const userAddress = await signer.getAddress();\n  logger.info(`Using address: ${userAddress}`);\n\n  await checkAndIncreaseAllowance(signer, sdk, amount, sdk.rewardsBooster.address, logger, 'boost project', prompt);\n\n  const deploymentIdBytes32 = cidToBytes32(args.deploymentId);\n\n  const tx = await sdk.rewardsBooster.boostDeployment(deploymentIdBytes32, amount).catch(\n    parseContractError({\n      RB015: async () =>\n        `Deployment boost is too small. The total deployment boost needs to be at least ${formatSQT(await sdk.rewardsBooster.minimumDeploymentBooster())}`,\n    })\n  );\n\n  await checkTransactionSuccess(tx);\n\n  return {\n    transactionHash: tx.hash,\n    amount: amount.toBigInt(),\n  };\n}\n\nexport default class AddDeploymentBoost extends Command {\n  static description = 'Increase the boost for a deployment';\n  static flags = zodToFlags(addDeploymentBoostInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(AddDeploymentBoost);\n\n    const result = await addDeploymentBoostAdapter(flags, commandLogger(this), makeCLIPrompt());\n\n    this.log(\n      `Boosted deployment: ${flags.deploymentId} by ${formatSQT(result.amount)}. TransactionHash: ${result.transactionHash}`\n    );\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerAddDeploymentBoostMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    `network.${AddDeploymentBoost.name}`,\n    {\n      description: AddDeploymentBoost.description,\n      inputSchema: addDeploymentBoostInputs.shape,\n      outputSchema: getMCPStructuredResponse(addDeploymentBoostOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      const prompt = opts.supportsElicitation ? makeMCPElicitPrmompt(server) : undefined;\n      return addDeploymentBoostAdapter(args, logger, prompt);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/connect-wallet.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {SQNetworks} from '@subql/network-config';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  makeCLIPrompt,\n  makeMCPElicitPrmompt,\n  mcpLogger,\n  MCPToolOptions,\n  Prompt,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {getSignerOrProvider, requireSigner} from '../../controller/network/constants';\n\nconst connectWalletInputs = z.object({});\ntype ConnectWalletInputs = z.infer<typeof connectWalletInputs>;\n\nconst connnectWalletOutputs = z.object({\n  address: z.string({description: 'The address of the connected wallet'}),\n});\n\nexport async function connectWalletAdapter(\n  args: ConnectWalletInputs,\n  logger: Logger,\n  prompt?: Prompt\n): Promise<z.infer<typeof connnectWalletOutputs>> {\n  const signer = await getSignerOrProvider(SQNetworks.MAINNET, logger, undefined, true);\n  requireSigner(signer);\n\n  return {\n    address: await signer.getAddress(),\n  };\n}\n\nexport default class ConnectWallet extends Command {\n  static description = 'Connect a wallet via Wallet Connect for interacting with the network';\n  static flags = zodToFlags(connectWalletInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(ConnectWallet);\n\n    const {address} = await connectWalletAdapter(flags, commandLogger(this), makeCLIPrompt());\n\n    this.log(`Connected to account: ${address}. You can now use any commands that interact with the network`);\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerConnectWalletMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    `network.${ConnectWallet.name}`,\n    {\n      description: ConnectWallet.description,\n      inputSchema: connectWalletInputs.shape,\n      outputSchema: getMCPStructuredResponse(connnectWalletOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      const prompt = opts.supportsElicitation ? makeMCPElicitPrmompt(server) : undefined;\n\n      return connectWalletAdapter(args, logger, prompt);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/create-api-key.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToArgs,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {networkNameSchema, getSignerOrProvider, requireSigner} from '../../controller/network/constants';\nimport {ConsumerHostClient} from '../../controller/network/consumer-host/client';\nimport {apiKeySchema} from '../../controller/network/consumer-host/schemas';\n\nconst createApiKeyInputs = z.object({\n  network: networkNameSchema,\n  name: z.string({description: 'The name of the api key, used to identify it'}),\n});\ntype CreateApiKeyInputs = z.infer<typeof createApiKeyInputs>;\n\nconst createApiKeyOutputs = apiKeySchema;\n\nexport async function createApiKeyAdapter(\n  args: CreateApiKeyInputs,\n  logger: Logger\n): Promise<z.infer<typeof createApiKeyOutputs>> {\n  const signerOrProvider = await getSignerOrProvider(args.network, logger, undefined, false);\n  requireSigner(signerOrProvider);\n\n  const chs = await ConsumerHostClient.create(args.network, signerOrProvider, logger);\n\n  const apiKey = await chs.newAPIKey(args.name);\n\n  return apiKey;\n}\n\nexport default class CreateNetworkApiKey extends Command {\n  static description = 'Create an API key for making queries via the SubQuery Network';\n  static flags = zodToFlags(createApiKeyInputs.omit({name: true}));\n  static args = zodToArgs(createApiKeyInputs.pick({name: true}));\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(CreateNetworkApiKey);\n    const logger = commandLogger(this);\n\n    const result = await createApiKeyAdapter({...args, ...flags}, logger);\n\n    this.log(`API Key: ${result.apiKey}`);\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerCreateNetworkApiKeyMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${CreateNetworkApiKey.name}`,\n    {\n      description: CreateNetworkApiKey.description,\n      inputSchema: createApiKeyInputs.shape,\n      outputSchema: getMCPStructuredResponse(createApiKeyOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return createApiKeyAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/create-deployment.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {IPFS_WRITE_ENDPOINT, IPFSHTTPClientLite} from '@subql/common';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  makeCLIPrompt,\n  makeMCPElicitPrmompt,\n  mcpLogger,\n  MCPToolOptions,\n  Prompt,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {\n  networkNameSchema,\n  getContractSDK,\n  deploymentMetadataSchema,\n  getSignerOrProvider,\n  requireSigner,\n} from '../../controller/network/constants';\nimport {parseContractError} from '../../controller/network/contract-errors';\n\nconst createDeploymentInputs = z.object({\n  network: networkNameSchema,\n  projectId: z.string({description: 'The project id, this should be a 0x prefixed hex number'}),\n\n  deploymentId: z.string({description: 'The IPFS CID of the published project'}),\n  deploymentVersion: z.string({description: 'The version of the deployment'}),\n  deploymentDescription: z.string({description: 'A description of the deployment, release notes'}).optional(),\n});\ntype CreateDeploymentInputs = z.infer<typeof createDeploymentInputs>;\n\nconst createDeploymentOutputs = z.object({\n  transactionHash: z.string({description: 'The hash of the transaction that created the project'}),\n  deploymentId: z.string({description: 'The ID of the created deployment'}),\n  deploymentUrl: z.string({description: 'The URL of the created deployment in the SubQuery app'}),\n});\n\nexport async function createDeploymentAdapter(\n  args: CreateDeploymentInputs,\n  logger: Logger,\n  prompt?: Prompt\n): Promise<z.infer<typeof createDeploymentOutputs>> {\n  const signerOrProvider = await getSignerOrProvider(args.network, logger, undefined, false);\n  const sdk = getContractSDK(signerOrProvider, args.network);\n  requireSigner(signerOrProvider);\n\n  if (!args.deploymentDescription) {\n    if (prompt) {\n      args.deploymentDescription = await prompt({\n        type: 'string',\n        message: 'Enter a deployment description',\n      });\n    }\n  }\n\n  const deploymentMetadata = deploymentMetadataSchema.parse({\n    version: args.deploymentVersion,\n    description: args.deploymentDescription,\n  });\n\n  // TODO provide auth token\n  let authToken: string | undefined;\n  const ipfs = new IPFSHTTPClientLite({\n    url: IPFS_WRITE_ENDPOINT,\n    headers: authToken ? {Authorization: `Bearer ${authToken}`} : undefined,\n  });\n\n  const {cid} = await ipfs.add(JSON.stringify(deploymentMetadata), {pin: true});\n\n  const tx = await sdk.projectRegistry\n    .addOrUpdateDeployment(args.projectId, args.deploymentId, cid, true)\n    .catch(parseContractError({}));\n\n  // TODO handle tx failure\n  await tx.wait();\n\n  const deploymentUrl = `https://app.subquery.network/explorer/project/${args.projectId}/overview?deploymentId=${args.deploymentId}`;\n\n  return {\n    transactionHash: tx.hash,\n    deploymentId: args.deploymentId,\n    deploymentUrl,\n  };\n}\n\nexport default class CreateNetworkDeployment extends Command {\n  static description = 'Create a new deployment for a SubQuery project';\n  static flags = zodToFlags(createDeploymentInputs);\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(CreateNetworkDeployment);\n    const logger = commandLogger(this);\n\n    const result = await createDeploymentAdapter({...args, ...flags}, logger, makeCLIPrompt());\n    logger.info(`Deployment created successfully! Transaction hash: ${result.transactionHash}`);\n    logger.info(`Deployment URL: ${result.deploymentUrl}`);\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerCreateNetworkDeploymentMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    `network.${CreateNetworkDeployment.name}`,\n    {\n      description: CreateNetworkDeployment.description,\n      inputSchema: (opts.supportsElicitation\n        ? createDeploymentInputs\n        : createDeploymentInputs.required({deploymentDescription: true})\n      ).shape,\n      outputSchema: getMCPStructuredResponse(createDeploymentOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      const prompt = opts.supportsElicitation ? makeMCPElicitPrmompt(server) : undefined;\n      return createDeploymentAdapter(args, logger, prompt);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/create-flex-plan.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {parseEther} from '@ethersproject/units';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  makeCLIPrompt,\n  mcpLogger,\n  Prompt,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {\n  networkNameSchema,\n  getSignerOrProvider,\n  requireSigner,\n  getContractSDK,\n  checkTransactionSuccess,\n  formatSQT,\n} from '../../controller/network/constants';\nimport {ConsumerHostClient} from '../../controller/network/consumer-host/client';\nimport {hostingPlanSchema} from '../../controller/network/consumer-host/schemas';\nimport {listDeploymentBoosts} from '../../controller/network/list-deployment-boosts';\nimport {checkAndIncreaseAllowance} from '../../controller/network/utils';\n\nconst createFlexPlanInputs = z.object({\n  network: networkNameSchema,\n  deploymentId: z.string({description: 'The deploymentId to create a flex plan for'}),\n  amount: z.string({description: 'The amount to deposit into the plan, in SQT'}),\n});\ntype CreateApiKeyInputs = z.infer<typeof createFlexPlanInputs>;\n\nconst createFlexPlanOutputs = z.object({\n  plan: hostingPlanSchema,\n  apiKey: z.string({description: 'An api key if one is created'}).optional(),\n});\n\nexport async function createFlexPlanAdapter(\n  args: CreateApiKeyInputs,\n  logger: Logger,\n  prompt?: Prompt\n): Promise<z.infer<typeof createFlexPlanOutputs>> {\n  const amount = parseEther(args.amount);\n  if (amount.lte(0n)) {\n    throw new Error('Amount must be greater than 0');\n  }\n\n  const signer = await getSignerOrProvider(args.network, logger, undefined, false);\n  const sdk = getContractSDK(signer, args.network);\n  requireSigner(signer);\n\n  const address = await signer.getAddress();\n  const chs = await ConsumerHostClient.create(args.network, signer, logger);\n\n  const boosts = await listDeploymentBoosts(args.network, args.deploymentId);\n  const hasBoosted = boosts.boosts.some((b) => b.consumer.toLowerCase() === address.toLowerCase());\n\n  if (!hasBoosted) {\n    logger.info('Deployment is not boosted, deposit is required');\n    await checkAndIncreaseAllowance(\n      signer,\n      sdk,\n      amount,\n      sdk.consumerHost.address,\n      logger,\n      'create a flex plan',\n      prompt\n    );\n\n    try {\n      logger.info(`Depositing ${formatSQT(amount)} to create flex plan`);\n      const depositTx = await sdk.consumerHost.deposit(amount, true);\n      await checkTransactionSuccess(depositTx);\n    } catch (e) {\n      throw new Error('Failed to deposit SQT for flex plan', {cause: e});\n    }\n  }\n\n  let apiKey: string | undefined;\n  const existingApiKeys = await chs.getAPIKeys();\n  if (!existingApiKeys.length) {\n    logger.info(`Creating an API key`);\n    const newKey = await chs.newAPIKey('QueryEndpoint');\n    apiKey = newKey.apiKey;\n  }\n\n  const plan = await chs.createPlan(args.deploymentId, amount.toBigInt());\n\n  return {\n    apiKey,\n    plan,\n  };\n}\n\nexport default class CreateNetworkFlexPlan extends Command {\n  static description = 'Create a new Flex Plan for querying a SubQuery deployment on the SubQuery Network';\n  static flags = zodToFlags(createFlexPlanInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(CreateNetworkFlexPlan);\n    const logger = commandLogger(this);\n\n    const result = await createFlexPlanAdapter({...flags}, logger, makeCLIPrompt());\n\n    this.log(`API Key: ${result.apiKey}`);\n    this.log(`Plan details: ${JSON.stringify(result.plan, null, 2)}`);\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerCreateNetworkFlexPlanMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${CreateNetworkFlexPlan.name}`,\n    {\n      description: CreateNetworkFlexPlan.description,\n      inputSchema: createFlexPlanInputs.shape,\n      outputSchema: getMCPStructuredResponse(createFlexPlanOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      const prompt = /*opts.supportsElicitation ? makeMCPElicitPrmompt(server) : */ undefined;\n      return createFlexPlanAdapter(args, logger, prompt);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/create-project.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {IPFS_WRITE_ENDPOINT, IPFSHTTPClientLite} from '@subql/common';\nimport {ProjectType} from '@subql/contract-sdk';\nimport {ProjectCreatedEvent} from '@subql/contract-sdk/typechain/contracts/ProjectRegistry';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  makeCLIPrompt,\n  makeMCPElicitPrmompt,\n  mcpLogger,\n  MCPToolOptions,\n  Prompt,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {\n  checkTransactionSuccess,\n  deploymentMetadataSchema,\n  getContractSDK,\n  getSignerOrProvider,\n  networkNameSchema,\n  projectMetadataSchema,\n  projectTypeSchema,\n  requireSigner,\n} from '../../controller/network/constants';\nimport {parseContractError} from '../../controller/network/contract-errors';\n\nconst createProjectInputs = z.object({\n  network: networkNameSchema,\n  deploymentId: z.string({description: 'The IPFS CID of the published project'}),\n  projectType: projectTypeSchema,\n\n  // Project meta\n  name: z.string({description: 'The name of the project'}),\n  description: z.string({description: 'A short description of the project'}).optional(),\n  image: z.string({description: 'A URL to an image for the project'}).optional(),\n  tags: z.array(z.string(), {description: 'A list of tags for the project'}).optional(),\n  website: z.string({description: 'A URL to the project website'}).optional(),\n  codeRepository: z.string({description: 'A URL to the project code repository'}).optional(),\n\n  // Deployment meta\n  deploymentVersion: z.string({description: 'The version of the deployment'}).optional().default('1.0.0'),\n  deploymentDescription: z.string({description: 'A description of the deployment, release notes'}).optional(),\n});\ntype CreateProjectInputs = z.infer<typeof createProjectInputs>;\n\nconst createProjectOutputs = z.object({\n  transactionHash: z.string({description: 'The hash of the transaction that created the project'}),\n  projectId: z.string({description: 'The ID of the created project'}),\n  projectUrl: z.string({description: 'The URL of the created project in the SubQuery app'}),\n});\n\nasync function createProjectAdapter(\n  args: CreateProjectInputs,\n  logger: Logger,\n  prompt?: Prompt\n): Promise<z.infer<typeof createProjectOutputs>> {\n  const signerOrProvider = await getSignerOrProvider(args.network, logger, undefined, true);\n  const sdk = getContractSDK(signerOrProvider, args.network);\n  requireSigner(signerOrProvider);\n\n  const projectType = ProjectType[args.projectType];\n\n  if (!args.description) {\n    if (prompt) {\n      args.description = await prompt({\n        type: 'string',\n        message: 'Enter a short description of the project',\n      });\n    } else {\n      throw new Error('Project description is required');\n    }\n  }\n\n  if (!args.deploymentVersion) {\n    if (prompt) {\n      args.deploymentVersion = await prompt({\n        type: 'string',\n        defaultValue: '1.0.0',\n        message: 'Enter a deployment version',\n      });\n    }\n  }\n\n  if (!args.deploymentDescription) {\n    if (prompt) {\n      args.deploymentDescription = await prompt({\n        type: 'string',\n        message: 'Enter a deployment description',\n      });\n    }\n  }\n\n  const projectMetadata = projectMetadataSchema.parse({\n    name: args.name,\n    description: args.description,\n    image: args.image,\n    tags: args.tags,\n    website: args.website,\n    codeRepository: args.codeRepository,\n  });\n\n  const deploymentVersion =\n    args.deploymentVersion ??\n    (await prompt?.({\n      message: 'Enter the deployment version',\n      defaultValue: '1.0.0',\n      type: 'string',\n    }));\n\n  if (!deploymentVersion) {\n    throw new Error('Deployment version is required');\n  }\n\n  const deploymentMetadata = deploymentMetadataSchema.parse({\n    version: args.deploymentVersion,\n    description: args.deploymentDescription,\n  });\n\n  // TODO provide auth token\n  let authToken: string | undefined;\n  const ipfs = new IPFSHTTPClientLite({\n    url: IPFS_WRITE_ENDPOINT,\n    headers: authToken ? {Authorization: `Bearer ${authToken}`} : undefined,\n  });\n\n  const [{cid: projectMetadataCID}, {cid: deploymentMetadataCID}] = await Promise.all([\n    ipfs.add(JSON.stringify(projectMetadata), {pin: true}),\n    ipfs.add(JSON.stringify(deploymentMetadata), {pin: true}),\n  ]);\n\n  const tx = await sdk.projectRegistry\n    .createProject(projectMetadataCID, deploymentMetadataCID, args.deploymentId, projectType)\n    .catch(parseContractError({}));\n\n  logger.info(`Create project transaction: ${tx.hash}`);\n\n  const receipt = await checkTransactionSuccess(tx);\n\n  let projectId: string | undefined;\n  receipt.events?.forEach((event) => {\n    try {\n      const parsedEvent = sdk.projectRegistry.interface.parseLog(event);\n\n      const createEvent =\n        sdk.projectRegistry.interface.events['ProjectCreated(address,uint256,string,uint8,bytes32,bytes32)'];\n\n      if (parsedEvent.name === createEvent.name) {\n        // Not a full correct type cast but it gets us typed args.\n        projectId = (parsedEvent as unknown as ProjectCreatedEvent).args.projectId.toHexString(); // Index 1\n      }\n    } catch (error) {\n      // Do nothing, event might come from another contract or be unrelated\n    }\n  });\n\n  if (!projectId) {\n    throw new Error(`Unable to determine projectId from transaction events`);\n  }\n\n  return {\n    transactionHash: tx.hash,\n    projectId,\n    projectUrl: `https://app.subquery.network/explorer/project/${projectId}/overview`,\n  };\n}\n\nexport default class CreateNetworkProject extends Command {\n  static description = 'Create a new SubQuery project on the SubQuery network';\n  static flags = zodToFlags(createProjectInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(CreateNetworkProject);\n\n    await createProjectAdapter(flags, commandLogger(this), makeCLIPrompt());\n    this.log('Project created successfully!');\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerCreateNetworkProjectMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    `network.${CreateNetworkProject.name}`,\n    {\n      description: CreateNetworkProject.description,\n      inputSchema: (opts.supportsElicitation ? createProjectInputs : createProjectInputs.required({description: true}))\n        .shape,\n      outputSchema: getMCPStructuredResponse(createProjectOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      const prompt = opts.supportsElicitation ? makeMCPElicitPrmompt(server) : undefined;\n      return createProjectAdapter(args, logger, prompt);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/disconnect-wallet.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {SQNetworks} from '@subql/network-config';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {getSignerOrProvider, isSigner} from '../../controller/network/constants';\nimport {WalletConnectSigner} from '../../controller/network/walletconnect-signer';\n\nconst disconnectWalletInputs = z.object({});\ntype ConnectWalletInputs = z.infer<typeof disconnectWalletInputs>;\n\nconst disconnnectWalletOutputs = z.object({\n  address: z.string({description: 'The address that was disconnected'}).optional(),\n});\n\nexport async function disconnectWalletAdapter(\n  args: ConnectWalletInputs,\n  logger: Logger\n): Promise<z.infer<typeof disconnnectWalletOutputs>> {\n  const signer = await getSignerOrProvider(SQNetworks.MAINNET, logger, undefined, false);\n\n  if (!isSigner(signer)) {\n    logger.warn('No existing account connected');\n    return {};\n  }\n  const address = await signer.getAddress();\n  if (signer instanceof WalletConnectSigner) {\n    await signer.disconnect();\n    await signer.closeConnection();\n  } else {\n    logger.warn('The current account is not connected via WalletConnect, so it cannot be disconnected');\n  }\n\n  return {\n    address,\n  };\n}\n\nexport default class DisconnectWallet extends Command {\n  static description = 'Disconnect a wallet connected via WalletConnect';\n  static flags = zodToFlags(disconnectWalletInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(DisconnectWallet);\n\n    const {address} = await disconnectWalletAdapter(flags, commandLogger(this));\n\n    if (!address) {\n      this.log('No account to disconnect');\n    } else {\n      this.log(`Disconnected account: ${address}.`);\n    }\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerDisconnectWalletMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${DisconnectWallet.name}`,\n    {\n      description: DisconnectWallet.description,\n      inputSchema: disconnectWalletInputs.shape,\n      outputSchema: getMCPStructuredResponse(disconnnectWalletOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return disconnectWalletAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/list-account-boosts.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {formatSQT, networkNameSchema, resolveAddress} from '../../controller/network/constants';\nimport {\n  listAccountBoosts,\n  responseSchema as listBoostsResponseSchema,\n} from '../../controller/network/list-account-boosts';\nimport {jsonToTable} from '../../utils';\n\nexport const listBoostsInputs = z.object({\n  network: networkNameSchema,\n  address: z.string({description: 'The account address to list boosts for'}).optional(),\n});\nexport type ListBoostsInputs = z.infer<typeof listBoostsInputs>;\n\nexport const listBoostsOutputs = listBoostsResponseSchema;\n\nasync function listBoostsAdapter(args: ListBoostsInputs, logger: Logger): Promise<z.infer<typeof listBoostsOutputs>> {\n  const address = await resolveAddress(args.network, logger, undefined, args.address);\n  logger.info(`Listing boosts for address: ${address}`);\n  const boosts = await listAccountBoosts(args.network, address);\n\n  return boosts;\n}\n\nexport default class ListAccountBoosts extends Command {\n  static description = 'Get a list of the deployments an account boosts';\n  static flags = zodToFlags(listBoostsInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(ListAccountBoosts);\n\n    const logger = commandLogger(this);\n\n    const res = await listBoostsAdapter(flags, logger);\n\n    if (!res.boosts.length) {\n      this.log(`This account doesn't boost any projects`);\n    } else {\n      this.log(`Total boost: ${formatSQT(res.totalBoost)}`);\n      this.log(\n        jsonToTable(\n          res.boosts.map(({deploymentId, deploymentMeta, projectId, projectMeta, totalAmount}) => {\n            const subProjectMeta = projectMeta ? {name: projectMeta.name} : {};\n            const subDeploymentMeta = deploymentMeta ? {deploymentVersion: deploymentMeta.version} : {};\n            return {\n              projectId,\n              ...subProjectMeta,\n              deploymentId,\n              ...subDeploymentMeta,\n              amount: formatSQT(totalAmount),\n            };\n          })\n        )\n      );\n    }\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerListAccountBoostsMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${ListAccountBoosts.name}`,\n    {\n      description: ListAccountBoosts.description,\n      inputSchema: listBoostsInputs.shape,\n      outputSchema: getMCPStructuredResponse(listBoostsOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return listBoostsAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/list-api-keys.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {networkNameSchema, getSignerOrProvider, requireSigner} from '../../controller/network/constants';\nimport {ConsumerHostClient} from '../../controller/network/consumer-host/client';\nimport {apiKeySchema} from '../../controller/network/consumer-host/schemas';\nimport {jsonToTable} from '../../utils';\n\nconst listApiKeysInputs = z.object({\n  network: networkNameSchema,\n});\ntype CreateApiKeyInputs = z.infer<typeof listApiKeysInputs>;\n\nconst listApiKeysOutputs = z.array(apiKeySchema);\n\nexport async function listApiKeysAdapter(\n  args: CreateApiKeyInputs,\n  logger: Logger\n): Promise<z.infer<typeof listApiKeysOutputs>> {\n  const signerOrProvider = await getSignerOrProvider(args.network, logger, undefined, false);\n  requireSigner(signerOrProvider);\n\n  const chs = await ConsumerHostClient.create(args.network, signerOrProvider, logger);\n\n  return chs.getAPIKeys();\n}\n\nexport default class ListNetworkApiKeys extends Command {\n  static description = 'List API keys for making queries via the SubQuery Network';\n  static flags = zodToFlags(listApiKeysInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(ListNetworkApiKeys);\n    const logger = commandLogger(this);\n\n    const result = await listApiKeysAdapter({...flags}, logger);\n\n    if (result.length === 0) {\n      this.log('No API keys found.');\n    } else {\n      this.log(jsonToTable(result.map((r) => ({...r, createdAt: new Date(r.createdAt)}))));\n    }\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerListNetworkApiKeysMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${ListNetworkApiKeys.name}`,\n    {\n      description: ListNetworkApiKeys.description,\n      inputSchema: listApiKeysInputs.shape,\n      outputSchema: getMCPStructuredResponse(listApiKeysOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return listApiKeysAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/list-deployment-boosts.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {getMCPStructuredResponse, withStructuredResponse, zodToFlags} from '../../adapters/utils';\nimport {formatSQT, networkNameSchema} from '../../controller/network/constants';\nimport {\n  listDeploymentBoosts,\n  responseSchema as listBoostsResponseSchema,\n} from '../../controller/network/list-deployment-boosts';\nimport {jsonToTable} from '../../utils';\n\nexport const listBoostsInputs = z.object({\n  network: networkNameSchema,\n  deploymentId: z.string({description: 'The deployment id for the project'}),\n});\nexport type ListBoostsInputs = z.infer<typeof listBoostsInputs>;\n\nexport const listBoostsOutputs = listBoostsResponseSchema;\n\nasync function listBoostsAdapter(args: ListBoostsInputs): Promise<z.infer<typeof listBoostsOutputs>> {\n  const boosts = await listDeploymentBoosts(args.network, args.deploymentId);\n\n  return boosts;\n}\n\nexport default class ListDeploymentBoosts extends Command {\n  static description = 'Get a list of boosts made to a project deployment';\n  static flags = zodToFlags(listBoostsInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(ListDeploymentBoosts);\n\n    const res = await listBoostsAdapter(flags);\n\n    if (!res.boosts.length) {\n      this.log('This deployment has no boosts');\n      return;\n    }\n\n    this.log(`Total boost: ${formatSQT(res.totalBoost)}`);\n    this.log(\n      jsonToTable(\n        res.boosts.map((b) => {\n          return {\n            ...b,\n            totalAmount: formatSQT(b.totalAmount),\n            rewards: formatSQT(b.rewards),\n          };\n        })\n      )\n    );\n  }\n}\n\nexport function registerListDeploymentBoostsMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${ListDeploymentBoosts.name}`,\n    {\n      description: ListDeploymentBoosts.description,\n      inputSchema: listBoostsInputs.shape,\n      outputSchema: getMCPStructuredResponse(listBoostsOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      return listBoostsAdapter(args);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/list-deployment-indexers.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {getMCPStructuredResponse, withStructuredResponse, zodToFlags} from '../../adapters/utils';\nimport {networkNameSchema} from '../../controller/network/constants';\nimport {\n  listDeploymentIndexers,\n  deploymentIndexer,\n  IndexerDeploymentMetadata,\n} from '../../controller/network/list-deployment-indexers';\nimport {jsonToTable} from '../../utils';\n\nconst listIndexersInputs = z.object({\n  network: networkNameSchema,\n  deploymentId: z.string({description: 'The DeploymentID of the project to list deployments for'}),\n});\ntype ListIndexersInputs = z.infer<typeof listIndexersInputs>;\n\nconst listIndexersOutputs = z.object({\n  indexers: z.array(deploymentIndexer),\n});\n\nasync function listIndexersAdapter(args: ListIndexersInputs): Promise<z.infer<typeof listIndexersOutputs>> {\n  const indexers = await listDeploymentIndexers(args.network, args.deploymentId);\n\n  return {indexers};\n}\n\nexport default class ListDeploymentIndexers extends Command {\n  static description = 'List the indexers for a deployment on the SubQuery Network';\n  static flags = zodToFlags(listIndexersInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(ListDeploymentIndexers);\n\n    const result = await listIndexersAdapter(flags);\n\n    const getProgress = (indexerDeploymentMeta?: IndexerDeploymentMetadata): string => {\n      if (!indexerDeploymentMeta) return 'Unknown';\n      const blocksBehind = Math.max(indexerDeploymentMeta.targetHeight - indexerDeploymentMeta.lastHeight, 0);\n      const progress = ((indexerDeploymentMeta.lastHeight / indexerDeploymentMeta.targetHeight) * 100).toFixed(2);\n\n      return `${progress}% (${blocksBehind > 0 ? `${blocksBehind} Block${blocksBehind > 1 ? 's' : ''} behind` : 'Fully synced'})`;\n    };\n\n    if (!result.indexers.length) {\n      this.log('This deployment has no indexers');\n      return;\n    }\n\n    this.log(\n      jsonToTable(\n        result.indexers.map(({indexerDeploymentMeta, indexerMeta, indexerMetadata, ...rest}) => {\n          const subMeta = indexerMeta ? {name: indexerMeta.name} : {indexerMetadata};\n\n          return {\n            ...subMeta,\n            ...rest,\n            progress: getProgress(indexerDeploymentMeta),\n            healthy: indexerDeploymentMeta ? (indexerDeploymentMeta.subqueryHealthy ? 'Yes' : 'No') : 'Unknown',\n          };\n        })\n      )\n    );\n  }\n}\n\nexport function registerListDeploymentIndexersMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${ListDeploymentIndexers.name}`,\n    {\n      description: ListDeploymentIndexers.description,\n      inputSchema: listIndexersInputs.shape,\n      outputSchema: getMCPStructuredResponse(listIndexersOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      return listIndexersAdapter(args);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/list-deployments.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {getMCPStructuredResponse, withStructuredResponse, zodToFlags} from '../../adapters/utils';\nimport {networkNameSchema} from '../../controller/network/constants';\nimport {deploymentSchema, listDeployments} from '../../controller/network/list-deployments';\nimport {jsonToTable} from '../../utils';\n\nconst listDeploymentsInputs = z.object({\n  network: networkNameSchema,\n  projectId: z.string({description: 'The ID of the project to list deployments for'}),\n});\ntype ListDeploymentsInputs = z.infer<typeof listDeploymentsInputs>;\n\nconst listDeploymentsOutputs = z.object({\n  deployments: z.array(deploymentSchema),\n});\n\nasync function listDeploymentsAdapter(args: ListDeploymentsInputs): Promise<z.infer<typeof listDeploymentsOutputs>> {\n  const deployments = await listDeployments(args.network, args.projectId);\n\n  return {deployments};\n}\n\nexport default class ListNetworkDeployments extends Command {\n  static description = 'List deployments for a SubQuery project';\n  static flags = zodToFlags(listDeploymentsInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(ListNetworkDeployments);\n\n    const result = await listDeploymentsAdapter(flags);\n\n    if (!result.deployments.length) {\n      this.log('This project has no deployments');\n      return;\n    }\n\n    this.log(\n      jsonToTable(\n        result.deployments.map(({deploymentId, meta, metadata, ...rest}) => {\n          const subMeta = meta ? {version: meta.version, description: meta.description.split('\\n')[0]} : {metadata};\n          return {\n            deploymentId,\n            ...subMeta,\n            ...rest,\n          };\n        })\n      )\n    );\n  }\n}\n\nexport function registerListNetworkDeploymentsMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${ListNetworkDeployments.name}`,\n    {\n      description: ListNetworkDeployments.description,\n      inputSchema: listDeploymentsInputs.shape,\n      outputSchema: getMCPStructuredResponse(listDeploymentsOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      return listDeploymentsAdapter(args);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/list-flex-plans.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {formatSQT, getSignerOrProvider, networkNameSchema, requireSigner} from '../../controller/network/constants';\nimport {ConsumerHostClient} from '../../controller/network/consumer-host/client';\nimport {listFlexPlans, metaHostingPlanSchema} from '../../controller/network/list-flex-plans';\nimport {jsonToTable} from '../../utils';\n\nexport const listFlexPlansInputs = z.object({\n  network: networkNameSchema,\n  address: z.string({description: 'The account address to list boosts for'}).optional(),\n});\nexport type ListFlexPlansInputs = z.infer<typeof listFlexPlansInputs>;\n\nexport const listFlexPlansOutputs = z.array(metaHostingPlanSchema);\n\nasync function listFlexPlansAdapter(\n  args: ListFlexPlansInputs,\n  logger: Logger\n): Promise<z.infer<typeof listFlexPlansOutputs>> {\n  const signerOrProvider = await getSignerOrProvider(args.network, logger, undefined, true);\n  requireSigner(signerOrProvider);\n\n  const chsApi = await ConsumerHostClient.create(args.network, signerOrProvider, logger);\n\n  const plans = await listFlexPlans(chsApi);\n\n  return plans;\n}\n\nexport default class ListFlexPlans extends Command {\n  static description = 'List your Flex Plans for querying projects on the SubQuery Network';\n  static flags = zodToFlags(listFlexPlansInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(ListFlexPlans);\n\n    const logger = commandLogger(this);\n\n    const res = await listFlexPlansAdapter(flags, logger);\n\n    if (!res.length) {\n      this.log('No flex plans');\n    } else {\n      this.log(\n        jsonToTable(\n          res.map((plan) => {\n            return {\n              id: plan.id,\n              project: plan.projectMetadata?.name ?? plan.project.id,\n              deployment: plan.deployment.deployment,\n              price: formatSQT(plan.price),\n              maximum: plan.maximum,\n              spent: formatSQT(plan.spent),\n              active: plan.isActivated,\n              expires: new Date(plan.expiredAt).toLocaleString(),\n              created: new Date(plan.createdAt).toLocaleString(),\n              updated: new Date(plan.updatedAt).toLocaleString(),\n            };\n          })\n        )\n      );\n    }\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerListFlexPlansMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${ListFlexPlans.name}`,\n    {\n      description: ListFlexPlans.description,\n      inputSchema: listFlexPlansInputs.shape,\n      outputSchema: getMCPStructuredResponse(listFlexPlansOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return listFlexPlansAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/list-projects.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {ProjectType} from '@subql/contract-sdk';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {formatSQT, networkNameSchema, resolveAddress} from '../../controller/network/constants';\nimport {listProjects, projectSchema} from '../../controller/network/list-projects';\nimport {jsonToTable} from '../../utils';\n\nconst listProjectsInputs = z.object({\n  address: z.string({description: 'The address of the account that owns the projects'}).optional(),\n  network: networkNameSchema,\n  networkRpc: z.string({description: 'Override the network rpc url'}).optional(),\n});\ntype ListProjectsInputs = z.infer<typeof listProjectsInputs>;\n\nconst listProjectOutputs = z.object({\n  address: z.string({description: 'The account the projects belong to'}),\n  projects: z.array(projectSchema),\n});\n\nasync function listProjectsAdapter(\n  args: ListProjectsInputs,\n  logger: Logger\n): Promise<z.infer<typeof listProjectOutputs>> {\n  const address = await resolveAddress(args.network, logger, args.networkRpc, args.address);\n  logger.info(`Listing projects for address: ${address}`);\n\n  const projects = await listProjects(args.network, address);\n\n  return {\n    address,\n    projects,\n  };\n}\n\nexport default class ListProjects extends Command {\n  static description = 'List projects for a given account on then SubQuery network';\n  static flags = zodToFlags(listProjectsInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(ListProjects);\n\n    const res = await listProjectsAdapter(flags, commandLogger(this));\n\n    this.log(`Projects for account ${res.address}:`);\n    this.log(\n      jsonToTable(\n        res.projects.map(({id, meta, metadata, owner, ...p}) => {\n          const subMeta = meta ? {name: meta.name} : {metadata};\n          return {\n            id,\n            ...subMeta,\n            ...p,\n            totalAllocation: formatSQT(p.totalAllocation),\n            totalBoost: formatSQT(p.totalBoost),\n            totalReward: formatSQT(p.totalReward),\n            type: p.type,\n          };\n        })\n      )\n    );\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerListNetworkProjectsMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${ListProjects.name}`,\n    {\n      description: ListProjects.description,\n      inputSchema: listProjectsInputs.shape,\n      outputSchema: getMCPStructuredResponse(listProjectOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return listProjectsAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/remove-api-key.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToArgs,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {networkNameSchema, getSignerOrProvider, requireSigner} from '../../controller/network/constants';\nimport {ConsumerHostClient} from '../../controller/network/consumer-host/client';\n\nconst removeApiKeyInputs = z.object({\n  network: networkNameSchema,\n  name: z.string({description: 'The name of the api key, used to identify it'}),\n});\ntype CreateApiKeyInputs = z.infer<typeof removeApiKeyInputs>;\n\nconst removeApiKeyOutputs = z.object({});\n\nexport async function removeApiKeyAdapter(\n  args: CreateApiKeyInputs,\n  logger: Logger\n): Promise<z.infer<typeof removeApiKeyOutputs>> {\n  const signerOrProvider = await getSignerOrProvider(args.network, logger, undefined, false);\n  requireSigner(signerOrProvider);\n\n  const chs = await ConsumerHostClient.create(args.network, signerOrProvider, logger);\n\n  const keys = await chs.getAPIKeys();\n\n  const key = keys.find((key) => key.name === args.name);\n  if (!key) {\n    // Key doesn't exist so treat as a no-op\n    return {};\n  }\n\n  await chs.deleteAPIKey(key.id);\n\n  return {};\n}\n\nexport default class RemoveApiKey extends Command {\n  static description = 'Remove an API key used for making queries via the SubQuery Network';\n  static flags = zodToFlags(removeApiKeyInputs.omit({name: true}));\n  static args = zodToArgs(removeApiKeyInputs.pick({name: true}));\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(RemoveApiKey);\n    const logger = commandLogger(this);\n\n    await removeApiKeyAdapter({...args, ...flags}, logger);\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerRemoveApiKeyMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${RemoveApiKey.name}`,\n    {\n      description: RemoveApiKey.description,\n      inputSchema: removeApiKeyInputs.shape,\n      outputSchema: getMCPStructuredResponse(removeApiKeyOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return removeApiKeyAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/remove-deployment-boost.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {parseEther} from '@ethersproject/units';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {DeploymentBoosterAddedEvent} from '@subql/contract-sdk/typechain/contracts/RewardsBooster';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  MCPToolOptions,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {\n  checkTransactionSuccess,\n  getContractSDK,\n  getSignerOrProvider,\n  cidToBytes32,\n  networkNameSchema,\n  requireSigner,\n  formatSQT,\n} from '../../controller/network/constants';\nimport {parseContractError} from '../../controller/network/contract-errors';\n\nconst removeDeploymentBoostInputs = z.object({\n  network: networkNameSchema,\n  deploymentId: z.string({description: 'The deployment id for the project'}),\n  amount: z.string({description: 'The amount of boost to remove from the deployment, in SQT'}),\n});\ntype BoostProjectInputs = z.infer<typeof removeDeploymentBoostInputs>;\n\nconst removeDeploymentBoostOutputs = z.object({\n  transactionHash: z.string({description: 'The hash of the transaction that boosted the project'}),\n});\n\nasync function removeDeploymentBoostAdapter(\n  args: BoostProjectInputs,\n  logger: Logger\n): Promise<z.infer<typeof removeDeploymentBoostOutputs>> {\n  const amount = parseEther(args.amount);\n  if (amount.lte(0n)) {\n    throw new Error('Amount must be greater than 0');\n  }\n  const signerOrProvider = await getSignerOrProvider(args.network, logger);\n  const sdk = getContractSDK(signerOrProvider, args.network);\n  requireSigner(signerOrProvider);\n\n  const userAddress = await signerOrProvider.getAddress();\n  logger.info(`Using address: ${userAddress}`);\n\n  const deploymentIdBytes32 = cidToBytes32(args.deploymentId);\n  const tx = await sdk.rewardsBooster.removeBoosterDeployment(deploymentIdBytes32, amount).catch(\n    parseContractError({\n      RB016: async () =>\n        `Deployment boost will be too small. The total deployment boost needs to be at least ${formatSQT(await sdk.rewardsBooster.minimumDeploymentBooster())}. Either remove less boost, or remove all the boost.`,\n    })\n  );\n\n  const receipt = await checkTransactionSuccess(tx);\n\n  return {\n    transactionHash: tx.hash,\n  };\n}\n\nexport default class RemoveDeploymentBoost extends Command {\n  static description = 'Decrease the boost amount for a project deployment on the SubQuery network';\n  static flags = zodToFlags(removeDeploymentBoostInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(RemoveDeploymentBoost);\n\n    const result = await removeDeploymentBoostAdapter(flags, commandLogger(this));\n\n    this.log('Boosted deployment:', JSON.stringify(result, null, 2));\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerRemoveDeploymentBoostMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    `network.${RemoveDeploymentBoost.name}`,\n    {\n      description: RemoveDeploymentBoost.description,\n      inputSchema: removeDeploymentBoostInputs.shape,\n      outputSchema: getMCPStructuredResponse(removeDeploymentBoostOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return removeDeploymentBoostAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/stop-flex-plan.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {networkNameSchema, getSignerOrProvider, requireSigner} from '../../controller/network/constants';\nimport {ConsumerHostClient} from '../../controller/network/consumer-host/client';\nimport {hostingPlanSchema} from '../../controller/network/consumer-host/schemas';\n\nconst stopFlexPlanInputs = z.object({\n  network: networkNameSchema,\n  deploymentId: z.string({description: 'The deploymentId to create a flex plan for'}),\n});\ntype CreateApiKeyInputs = z.infer<typeof stopFlexPlanInputs>;\n\nconst stopFlexPlanOutputs = z.object({\n  plan: hostingPlanSchema,\n});\n\nexport async function stopFlexPlanAdapter(\n  args: CreateApiKeyInputs,\n  logger: Logger\n): Promise<z.infer<typeof stopFlexPlanOutputs>> {\n  const signer = await getSignerOrProvider(args.network, logger, undefined, false);\n  requireSigner(signer);\n\n  const chs = await ConsumerHostClient.create(args.network, signer, logger);\n\n  const plans = await chs.listPlans();\n  const existingPlan = plans.find((p) => p.deployment.deployment === args.deploymentId);\n  if (!existingPlan) {\n    throw new Error('No existing flex plan for this deployment');\n  }\n\n  const plan = await chs.updatePlan(existingPlan.id, '0', 0).catch((e) => {\n    console.error(e);\n    throw e;\n  });\n\n  return {plan};\n}\n\nexport default class StopNetworkFlexPlan extends Command {\n  static description = 'Stop a Flex Plan for a deployment on the SubQuery Network';\n  static flags = zodToFlags(stopFlexPlanInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(StopNetworkFlexPlan);\n    const logger = commandLogger(this);\n\n    const result = await stopFlexPlanAdapter({...flags}, logger);\n\n    this.log(`Stopped Plan: ${JSON.stringify(result.plan, null, 2)}`);\n\n    // Exit with success, walletconnect will keep things running\n    this.exit(0);\n  }\n}\n\nexport function registerStopNetworkFlexPlanMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `network.${StopNetworkFlexPlan.name}`,\n    {\n      description: StopNetworkFlexPlan.description,\n      inputSchema: stopFlexPlanInputs.shape,\n      outputSchema: getMCPStructuredResponse(stopFlexPlanOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return stopFlexPlanAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/network/swap-deployment-boost.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {parseEther} from '@ethersproject/units';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  makeCLIPrompt,\n  makeMCPElicitPrmompt,\n  mcpLogger,\n  MCPToolOptions,\n  Prompt,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {\n  checkTransactionSuccess,\n  getContractSDK,\n  getSignerOrProvider,\n  cidToBytes32,\n  networkNameSchema,\n  requireSigner,\n  formatSQT,\n} from '../../controller/network/constants';\nimport {parseContractError} from '../../controller/network/contract-errors';\nimport {checkAndIncreaseAllowance} from '../../controller/network/utils';\n\nconst swapDeploymentBoostInputs = z.object({\n  network: networkNameSchema,\n  fromDeploymentId: z.string({description: 'The deployment id for the project that is already boosted'}),\n  toDeploymentId: z.string({description: 'The deployment id for the project to move the boost to'}),\n  amount: z.string({description: 'The amount to boost the deployment with, in SQT'}),\n});\ntype BoostProjectInputs = z.infer<typeof swapDeploymentBoostInputs>;\n\nconst swapDeploymentBoostOutputs = z.object({\n  transactionHash: z.string({description: 'The hash of the transaction that boosted the project'}),\n  amount: z.bigint({description: 'Then new amount in SQT boosted by the account'}),\n});\n\nasync function swapDeploymentBoostAdapter(\n  args: BoostProjectInputs,\n  logger: Logger,\n  prompt?: Prompt\n): Promise<z.infer<typeof swapDeploymentBoostOutputs>> {\n  const amount = parseEther(args.amount);\n  if (amount.lte(0n)) {\n    throw new Error('Amount must be greater than 0');\n  }\n\n  if (args.fromDeploymentId === args.toDeploymentId) {\n    throw new Error('Cannot swap boost to the same deployment');\n  }\n\n  const signer = await getSignerOrProvider(args.network, logger, undefined);\n  const sdk = getContractSDK(signer, args.network);\n  requireSigner(signer);\n\n  const userAddress = await signer.getAddress();\n  logger.info(`Using address: ${userAddress}`);\n\n  await checkAndIncreaseAllowance(signer, sdk, amount, sdk.rewardsBooster.address, logger, 'boost project', prompt);\n\n  const deploymentFromBytes32 = cidToBytes32(args.fromDeploymentId);\n  const deploymentToBytes32 = cidToBytes32(args.toDeploymentId);\n  const tx = await sdk.rewardsBooster\n    .swapBoosterDeployment(userAddress, deploymentFromBytes32, deploymentToBytes32, amount)\n    .catch(parseContractError({}));\n\n  await checkTransactionSuccess(tx);\n\n  return {\n    transactionHash: tx.hash,\n    amount: amount.toBigInt(),\n  };\n}\n\nexport default class SwapDeploymentBoost extends Command {\n  static description = 'Swap the boost from one deployment to another deployment on the SubQuery Network';\n  static flags = zodToFlags(swapDeploymentBoostInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(SwapDeploymentBoost);\n\n    const result = await swapDeploymentBoostAdapter(flags, commandLogger(this), makeCLIPrompt());\n\n    this.log(\n      `Swapped boost (${formatSQT(result.amount)}) from deployment: ${flags.fromDeploymentId} to deployment ${\n        flags.toDeploymentId\n      }. TransactionHash: ${result.transactionHash}`\n    );\n  }\n}\n\nexport function registerSwapDeploymentBoostMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    `network.${SwapDeploymentBoost.name}`,\n    {\n      description: SwapDeploymentBoost.description,\n      inputSchema: swapDeploymentBoostInputs.shape,\n      outputSchema: getMCPStructuredResponse(swapDeploymentBoostOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      const prompt = opts.supportsElicitation ? makeMCPElicitPrmompt(server) : undefined;\n      return swapDeploymentBoostAdapter(args, logger, prompt);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/onfinality/create-deployment.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  Logger,\n  makeCLIPrompt,\n  makeMCPElicitPrmompt,\n  mcpLogger,\n  MCPToolOptions,\n  Prompt,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {ROOT_API_URL_PROD} from '../../constants';\nimport {\n  executeProjectDeployment,\n  generateDeploymentChain,\n  ipfsCID_validate,\n  logDeployment,\n  projectsInfo,\n  promptImageVersion,\n  splitEndpoints,\n} from '../../controller/deploy-controller';\nimport {DeploymentDataTypeSchema, DeploymentOptions, V3DeploymentIndexerType} from '../../types';\nimport {addV, checkToken} from '../../utils';\n\nconst createDeploymentInputs = DeploymentOptions.extend({\n  ipfsCID: z.string({description: 'The IPFC CID of the published project'}),\n});\ntype CreateDeploymentInputs = z.infer<typeof createDeploymentInputs>;\n\nconst createDeploymentOutputs = DeploymentDataTypeSchema;\n\nasync function createDeploymentAdapter(\n  args: CreateDeploymentInputs,\n  logger: Logger,\n  prompt: Prompt | null\n): Promise<z.infer<typeof createDeploymentOutputs> | undefined> {\n  const authToken = await checkToken();\n\n  const validator = await ipfsCID_validate(args.ipfsCID, authToken, ROOT_API_URL_PROD);\n  if (!validator.valid) {\n    throw new Error('Invalid IPFS CID, please check the CID and try again');\n  }\n\n  if (!args.endpoint) {\n    if (args.useDefaults || !prompt) {\n      throw new Error('Please ensure a valid endpoint is provided');\n    }\n\n    args.endpoint = await prompt({\n      message: 'Enter endpoint',\n      required: true,\n      type: 'string',\n    });\n  }\n\n  args.queryVersion = addV(args.queryVersion);\n  args.indexerVersion = addV(args.indexerVersion);\n\n  if (!args.indexerVersion) {\n    assert(validator.manifestRunner, 'Please set manifestRunner in your project');\n\n    args.indexerVersion = await promptImageVersion(\n      validator.manifestRunner.query.name,\n      validator.manifestRunner.query.version,\n      args.useDefaults,\n      authToken,\n      'indexer',\n      prompt\n    );\n  }\n\n  if (!args.queryVersion) {\n    assert(validator.manifestRunner, 'Please set manifestRunner in your project');\n\n    args.queryVersion = await promptImageVersion(\n      validator.manifestRunner.query.name,\n      validator.manifestRunner.query.version,\n      args.useDefaults,\n      authToken,\n      'query',\n      prompt\n    );\n  }\n\n  const projectInfo = await projectsInfo(authToken, args.org, args.projectName, ROOT_API_URL_PROD, args.type);\n  const chains: V3DeploymentIndexerType[] = [];\n  chains.push(\n    generateDeploymentChain({\n      cid: args.ipfsCID,\n      dictEndpoint: args.dict,\n      endpoint: splitEndpoints(args.endpoint),\n      flags: args,\n      indexerImageVersion: args.indexerVersion,\n    })\n  );\n\n  logger.info('Deploying SubQuery project to OnFinality managed services');\n\n  return executeProjectDeployment({\n    authToken,\n    chains,\n    flags: args,\n    ipfsCID: args.ipfsCID,\n    projectInfo,\n  });\n}\n\nexport default class CreateDeployment extends Command {\n  static description = 'Create a project deployment on the OnFinality managed services';\n  static flags = zodToFlags(createDeploymentInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(CreateDeployment);\n    const logger = commandLogger(this);\n    const deploymentOutput = await createDeploymentAdapter(flags, logger, makeCLIPrompt());\n\n    logDeployment(logger, flags.org, flags.projectName, deploymentOutput);\n  }\n}\n\nconst nonInteractiveCreateDeploymentInputs = createDeploymentInputs.extend({\n  useDefaults: z.literal(true).default(true),\n});\n\nexport function registerCreateDeploymentMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    `onfinality.${CreateDeployment.name}`,\n    {\n      description: CreateDeployment.description,\n      inputSchema: (opts.supportsElicitation ? createDeploymentInputs : nonInteractiveCreateDeploymentInputs).shape,\n      outputSchema: createDeploymentOutputs.shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      const prompt = opts.supportsElicitation ? makeMCPElicitPrmompt(server) : null;\n\n      return createDeploymentAdapter(args, logger, prompt);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/onfinality/create-multichain-deployment.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport fs from 'fs';\nimport path from 'path';\nimport {input} from '@inquirer/prompts';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {getMultichainManifestPath, getProjectRootAndManifest} from '@subql/common';\nimport YAML from 'yaml';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  getMCPWorkingDirectory,\n  Logger,\n  makeCLIPrompt,\n  makeMCPElicitPrmompt,\n  mcpLogger,\n  MCPToolOptions,\n  Prompt,\n  withStructuredResponse,\n  zodToArgs,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {ROOT_API_URL_PROD} from '../../constants';\nimport {\n  executeProjectDeployment,\n  generateDeploymentChain,\n  ipfsCID_validate,\n  logDeployment,\n  projectsInfo,\n  promptImageVersion,\n  splitMultichainDataFields,\n} from '../../controller/deploy-controller';\nimport {getDirectoryCid, uploadToIpfs} from '../../controller/publish-controller';\nimport {DeploymentDataTypeSchema, DeploymentOptions, V3DeploymentIndexerType} from '../../types';\nimport {addV, checkToken} from '../../utils';\n\nconst createMultichainDeploymentInputs = DeploymentOptions.extend({\n  location: z\n    .string({description: 'The path to the project, this can be a directory or a project manifest file.'})\n    .optional(),\n  ipfs: z.string({description: 'An additional IPFS endpoint to upload to'}).optional(),\n});\ntype CreateMultichainDeploymentInputs = z.infer<typeof createMultichainDeploymentInputs>;\n\nconst createMultichainDeploymentOutputs = DeploymentDataTypeSchema;\n\nasync function createMultichainDeploymentAdapter(\n  workingDir: string,\n  args: CreateMultichainDeploymentInputs,\n  logger: Logger,\n  prompt: Prompt | null\n): Promise<z.infer<typeof createMultichainDeploymentOutputs> | undefined> {\n  const authToken = await checkToken();\n\n  // Make sure build first, generated project yaml could be added to the project (instead of ts)\n  const location = path.resolve(workingDir, args.location ?? '');\n  const project = getProjectRootAndManifest(location);\n\n  const fullPaths = project.manifests.map((manifest) => path.join(project.root, manifest));\n\n  let multichainManifestPath = getMultichainManifestPath(location);\n  if (!multichainManifestPath) {\n    throw new Error(\n      'Selected project is not multi-chain. Please set correct file.\\n\\n https://academy.subquery.network/build/multi-chain.html'\n    );\n  }\n\n  multichainManifestPath = path.join(project.root, multichainManifestPath);\n  const multichainManifestObject = YAML.parse(fs.readFileSync(multichainManifestPath, 'utf8'));\n\n  logger.info('Uploading project to IPFS');\n  const fileToCidMap = await uploadToIpfs(fullPaths, authToken.trim(), multichainManifestPath, args.ipfs).catch((e) => {\n    throw new Error(`Failed to upload to IPFS`, {cause: e});\n  });\n  logger.info('Uploaded project to IPFS');\n\n  // Multichain query descriptor, The IPFS provided for deployment here must be a directory\n  const ipfsCID = getDirectoryCid(fileToCidMap);\n  assert(ipfsCID, 'Multichain deployment CID not found');\n\n  const projectInfo = await projectsInfo(authToken, args.org, args.projectName, ROOT_API_URL_PROD, args.type);\n  const chains: V3DeploymentIndexerType[] = [];\n\n  const endpoints = splitMultichainDataFields(args.endpoint);\n  const dictionaries = splitMultichainDataFields(args.dict);\n  const indexerVersions = splitMultichainDataFields(args.indexerVersion);\n\n  if (!args.queryVersion) {\n    args.queryVersion = await promptImageVersion(\n      multichainManifestObject.query.name,\n      multichainManifestObject.query.version,\n      args.useDefaults,\n      authToken,\n      'query',\n      prompt\n    );\n  }\n\n  args.queryVersion = addV(args.queryVersion);\n\n  for (const [multichainProjectPath, multichainProjectCid] of fileToCidMap) {\n    if (!multichainProjectPath || multichainProjectPath === path.basename(multichainManifestPath)) continue;\n\n    const validator = await ipfsCID_validate(multichainProjectCid, authToken, ROOT_API_URL_PROD);\n\n    if (!validator.valid) {\n      throw new Error(`Invalid IPFS CID for ${multichainProjectPath}`);\n    }\n\n    assert(validator.chainId, 'Please set chainId in your project');\n    if (!indexerVersions[validator.chainId]) {\n      assert(validator.manifestRunner, 'Please set manifestRunner in your project');\n      indexerVersions[validator.chainId] = await promptImageVersion(\n        validator.manifestRunner.node.name,\n        validator.manifestRunner.node.version,\n        args.useDefaults,\n        authToken,\n        'indexer',\n        // `Enter indexer version for ${multichainProjectPath}`,\n        prompt\n      );\n    }\n\n    indexerVersions[validator.chainId] = addV(indexerVersions[validator.chainId]);\n\n    if (!endpoints[validator.chainId]) {\n      if (args.useDefaults) {\n        throw new Error(\n          'Please ensure a endpoint valid is passed using --endpoint flag with syntax chainId:rpc_endpoint,chainId2:rpc_endpoint2...'\n        );\n      }\n\n      endpoints[validator.chainId] = await input({\n        message: `Enter endpoint for ${multichainProjectPath}`,\n        required: true,\n      });\n    }\n\n    chains.push(\n      generateDeploymentChain({\n        cid: multichainProjectCid,\n        dictEndpoint: dictionaries[validator.chainId],\n        endpoint: [endpoints[validator.chainId]],\n        flags: args,\n        indexerImageVersion: indexerVersions[validator.chainId],\n      })\n    );\n  }\n\n  logger.info(`Deploying SubQuery multi-chain project to Hosted Service, IPFS: ${ipfsCID}`);\n\n  return executeProjectDeployment({\n    // log: logger.info.bind(logger),\n    authToken,\n    chains,\n    flags: args,\n    ipfsCID: ipfsCID,\n    projectInfo,\n  });\n}\n\nexport default class CreateMultichainDeployment extends Command {\n  static description = 'Create a multi-chain project deployment no the OnFinality managed services';\n  static flags = zodToFlags(createMultichainDeploymentInputs.omit({location: true}));\n  static args = zodToArgs(createMultichainDeploymentInputs.pick({location: true}));\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(CreateMultichainDeployment);\n\n    const logger = commandLogger(this);\n    const deploymentOutput = await createMultichainDeploymentAdapter(\n      process.cwd(),\n      {...args, ...flags},\n      logger,\n      makeCLIPrompt()\n    );\n\n    logDeployment(logger, flags.org, flags.projectName, deploymentOutput);\n  }\n}\n\nconst nonInteractiveCreateMultichainDeploymentInputs = createMultichainDeploymentInputs.required({\n  indexerVersion: true,\n  queryVersion: true,\n  // dict: true, // TODO check if this is required\n  endpoint: true,\n});\n\nexport function registerCreateMultichainDeploymentMCPTool(server: McpServer, opts: MCPToolOptions): RegisteredTool {\n  return server.registerTool(\n    `onfinality.${CreateMultichainDeployment.name}`,\n    {\n      description: CreateMultichainDeployment.description,\n      inputSchema: (opts.supportsElicitation\n        ? createMultichainDeploymentInputs\n        : nonInteractiveCreateMultichainDeploymentInputs\n      ).shape,\n      // There is a slight workaround here, the adapter will return an optional output, getting the structured output also makes it optional\n      outputSchema: getMCPStructuredResponse(createMultichainDeploymentOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const cwd = await getMCPWorkingDirectory(server);\n      const logger = mcpLogger(server.server);\n      const prompt = opts.supportsElicitation ? makeMCPElicitPrmompt(server) : null;\n\n      return createMultichainDeploymentAdapter(cwd, args, logger, prompt);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/onfinality/create-project.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {BASE_PROJECT_URL, ROOT_API_URL_PROD} from '../../constants';\nimport {createProject} from '../../controller/project-controller';\nimport {checkToken} from '../../utils';\n\nconst createProjectInputs = z.object({\n  org: z.string({description: 'Github organization name'}),\n  projectName: z.string({description: 'Project name'}),\n  logoURL: z.string({description: 'Logo URL'}).optional(),\n  subtitle: z.string({description: 'Subtitle'}).optional(),\n  description: z.string({description: 'Description'}).optional(),\n  dedicatedDB: z.string({description: 'Dedicated DataBase'}).optional(),\n  projectType: z\n    .enum(['subquery', 'subgraph'], {\n      description: 'Project type [subquery|subgraph]',\n    })\n    .optional()\n    .default('subquery'),\n});\ntype CreateProjectInputs = z.infer<typeof createProjectInputs>;\n\nconst createProjectOutputs = z.object({\n  url: z.string({description: 'The URL to the created project'}),\n});\n\nasync function createProjectAdapter(\n  args: CreateProjectInputs,\n  logger: Logger\n): Promise<z.infer<typeof createProjectOutputs>> {\n  const authToken = await checkToken();\n\n  const result = await createProject(ROOT_API_URL_PROD, authToken, {\n    apiVersion: 'v3',\n    description: args.description,\n    key: `${args.org}/${args.projectName}`,\n    logoUrl: args.logoURL,\n    name: args.projectName,\n    subtitle: args.subtitle,\n    dedicateDBKey: args.dedicatedDB,\n    tag: [],\n    type: args.projectType === 'subquery' ? 1 : 3,\n  });\n\n  const [account, name] = result.key.split('/');\n\n  return {url: `${BASE_PROJECT_URL}/orgs/${account}/projects/${name}/deployments`};\n}\n\nexport default class CreateProject extends Command {\n  static description = 'Create a project on the OnFinality managed services';\n  static flags = zodToFlags(createProjectInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(CreateProject);\n\n    const {url} = await createProjectAdapter(flags, commandLogger(this));\n\n    this.log(`Successfully created project. You can view it at: ${url}`);\n  }\n}\n\nexport function registerCreateProjectMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `onfinality.${CreateProject.name}`,\n    {\n      description: CreateProject.description,\n      inputSchema: createProjectInputs.shape,\n      outputSchema: getMCPStructuredResponse(createProjectOutputs).shape,\n    },\n    withStructuredResponse(async (args, meta) => {\n      const logger = mcpLogger(server.server);\n      return createProjectAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/onfinality/delete-deployment.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {getMCPStructuredResponse, withStructuredResponse, zodToFlags} from '../../adapters/utils';\nimport {ROOT_API_URL_PROD} from '../../constants';\nimport {deleteDeployment} from '../../controller/deploy-controller';\nimport {checkToken} from '../../utils';\n\nconst deleteDeploymentInputs = z.object({\n  org: z.string({description: 'Github organization name'}),\n  projectName: z.string({description: 'Project name'}),\n  deploymentID: z.number({description: 'Deployment ID'}),\n});\ntype DeleteDeploymentInputs = z.infer<typeof deleteDeploymentInputs>;\n\nconst deleteDeploymentOutputs = z.object({\n  deploymentID: z.number({description: 'The ID of the deleted deployment'}),\n});\n\nasync function deleteDeploymentAdapter(args: DeleteDeploymentInputs): Promise<z.infer<typeof deleteDeploymentOutputs>> {\n  const authToken = await checkToken();\n\n  await deleteDeployment(args.org, args.projectName, authToken, args.deploymentID, ROOT_API_URL_PROD);\n  return {deploymentID: args.deploymentID};\n}\n\nexport default class DeleteDeployment extends Command {\n  static description = 'Delete a deployment from the OnFinality managed services';\n  static flags = zodToFlags(deleteDeploymentInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(DeleteDeployment);\n\n    const {deploymentID} = await deleteDeploymentAdapter(flags);\n    this.log(`Deleted deployment: ${deploymentID}`);\n  }\n}\n\nexport function deleteDeploymentMCPAdapter(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `onfinality.${DeleteDeployment.name}`,\n    {\n      description: DeleteDeployment.description,\n      inputSchema: deleteDeploymentInputs.shape,\n      outputSchema: getMCPStructuredResponse(deleteDeploymentOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      return deleteDeploymentAdapter(args);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/onfinality/delete-project.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {zodToFlags} from '../../adapters/utils';\nimport {ROOT_API_URL_PROD} from '../../constants';\nimport {deleteProject} from '../../controller/project-controller';\nimport {checkToken} from '../../utils';\n\nconst deleteProjectInputs = z.object({\n  org: z.string({description: 'The Github organization name'}),\n  projectName: z.string({description: 'The project name'}),\n});\ntype DeleteProjectInputs = z.infer<typeof deleteProjectInputs>;\n\nconst deleteProjectOutputs = z.void();\n\nasync function deleteProjectAdapter(args: DeleteProjectInputs): Promise<z.infer<typeof deleteProjectOutputs>> {\n  const authToken = await checkToken();\n  await deleteProject(authToken, args.org, args.projectName, ROOT_API_URL_PROD);\n}\n\nexport default class DeleteProject extends Command {\n  static description = 'Delete a project on the OnFinality managed services';\n  static flags = zodToFlags(deleteProjectInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(DeleteProject);\n\n    await deleteProjectAdapter(flags);\n\n    this.log(`Project: ${flags.org}/${flags.projectName} has been deleted`);\n  }\n}\n\nexport function registerDeleteProjectMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `onfinality.${DeleteProject.name}`,\n    {\n      description: DeleteProject.description,\n      inputSchema: deleteProjectInputs.shape,\n    },\n    async (args) => {\n      await deleteProjectAdapter(args);\n\n      return {\n        content: [\n          {\n            type: 'text',\n            text: `Project: ${args.org}/${args.projectName} has been deleted`,\n          },\n        ],\n      };\n    }\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/onfinality/promote-deployment.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  Logger,\n  mcpLogger,\n  withStructuredResponse,\n  zodToFlags,\n} from '../../adapters/utils';\nimport {ROOT_API_URL_PROD} from '../../constants';\nimport {promoteDeployment} from '../../controller/deploy-controller';\nimport {checkToken} from '../../utils';\n\nconst promoteInputs = z.object({\n  org: z.string({description: 'Github organization name'}),\n  projectName: z.string({description: 'Project name'}),\n  deploymentID: z.number({description: 'Deployment ID'}),\n});\ntype PromoteInputs = z.infer<typeof promoteInputs>;\n\nconst promoteOutputs = z.object({\n  deploymentID: z.number({description: 'Deployment ID of the promoted deployment'}),\n});\n\nexport async function promoteAdapter(args: PromoteInputs, logger: Logger): Promise<z.infer<typeof promoteOutputs>> {\n  const {deploymentID, org, projectName} = args;\n  const authToken = await checkToken();\n  await promoteDeployment(org, projectName, authToken, deploymentID, ROOT_API_URL_PROD);\n\n  return {\n    deploymentID,\n  };\n}\n\nexport default class PromoteDeployment extends Command {\n  static description = 'Promote a deployment on the OnFinality managed services from a Stage environment to Production';\n  static flags = zodToFlags(promoteInputs);\n\n  async run(): Promise<void> {\n    const {flags} = await this.parse(PromoteDeployment);\n\n    const {deploymentID} = await promoteAdapter(flags, commandLogger(this));\n\n    this.log(`Promoted deployment ${deploymentID} from staging to production`);\n  }\n}\n\nexport function registerPromoteDeploymentMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    `onfinality.${PromoteDeployment.name}`,\n    {\n      description: PromoteDeployment.description,\n      inputSchema: promoteInputs.shape,\n      outputSchema: getMCPStructuredResponse(promoteOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const logger = mcpLogger(server.server);\n      return promoteAdapter(args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/commands/publish.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {rimraf} from 'rimraf';\nimport {createTestProject} from '../createProject.fixtures';\nimport Publish from './publish';\n\njest.setTimeout(300_000); // 300s\ndescribe('Integration test - Publish', () => {\n  let projectDir: string;\n\n  beforeAll(async () => {\n    projectDir = await createTestProject();\n  });\n\n  afterAll(async () => {\n    try {\n      if (!projectDir) return;\n      await rimraf(projectDir);\n    } catch (e) {\n      console.warn('Failed to clean up tmp dir after test', e);\n    }\n  });\n\n  it('overwrites any existing CID files', async () => {\n    const initCID = 'QmWLxg7xV7ZWUyc7ZxZ8XuQQ7NmH8WQGXzg7VZ3QQNqF-testing';\n    const cidFilePath = path.resolve(projectDir, '.project-cid');\n    await fs.promises.writeFile(cidFilePath, initCID);\n    await Publish.run([projectDir]);\n    const cidValue = await fs.promises.readFile(cidFilePath, 'utf8');\n    expect(initCID).not.toEqual(cidValue);\n  });\n\n  it('create ipfsCID file stored in local with dictiory path', async () => {\n    await Publish.run([projectDir]);\n    const cidFile = path.resolve(projectDir, '.project-cid');\n    const fileExists = fs.existsSync(cidFile);\n    const IPFScontent = await fs.promises.readFile(cidFile, 'utf8');\n    expect(IPFScontent).toBeDefined();\n    expect(fileExists).toBeTruthy();\n  });\n\n  // Run this last because it modifies the project\n  it('file name consistent with manifest file name, if -f <manifest path> is used', async () => {\n    const manifestPath = path.resolve(projectDir, 'project.yaml');\n    const testManifestPath = path.resolve(projectDir, 'test.yaml');\n    fs.renameSync(manifestPath, testManifestPath);\n    await Publish.run([testManifestPath]);\n\n    const cidFile = path.resolve(projectDir, '.test-cid');\n    const fileExists = await fs.promises.stat(cidFile);\n    expect(fileExists.isFile()).toBeTruthy();\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/commands/publish.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'node:assert';\nimport {existsSync} from 'node:fs';\nimport path from 'node:path';\nimport {McpServer, RegisteredTool} from '@modelcontextprotocol/sdk/server/mcp';\nimport {Command} from '@oclif/core';\nimport {getMultichainManifestPath, getProjectRootAndManifest} from '@subql/common';\nimport {z} from 'zod';\nimport {\n  commandLogger,\n  getMCPStructuredResponse,\n  getMCPWorkingDirectory,\n  Logger,\n  mcpLogger,\n  silentLogger,\n  withStructuredResponse,\n  zodToArgs,\n  zodToFlags,\n} from '../adapters/utils';\nimport {createIPFSFile, uploadToIpfs} from '../controller/publish-controller';\nimport {getOptionalToken, resolveToAbsolutePath} from '../utils';\nimport {buildAdapter, buildInputs} from './build';\n\nconst publishInputs = z.object({\n  location: z\n    .string({description: 'The path to the project, this can be a directory or a project manifest file.'})\n    .optional(),\n  ipfs: z.string({description: 'An additional IPFS endpoint to upload to'}).optional(),\n});\ntype PublishInputs = z.infer<typeof publishInputs>;\n\nconst publishOutputs = z.object({\n  directory: z.string({description: 'If this is a multichain project then a directory will be created.'}).optional(),\n  files: z.record(z.string(), z.string(), {\n    description: 'A map of file paths to their IPFS CIDs.',\n  }),\n});\ntype PublishOutputs = z.infer<typeof publishOutputs>;\n\nexport async function publishAdapter(workingDir: string, args: PublishInputs, logger: Logger): Promise<PublishOutputs> {\n  const location = resolveToAbsolutePath(path.resolve(workingDir, args.location ?? ''));\n  assert(existsSync(location), 'Argument `location` is not a valid directory or file');\n\n  // Ensure the project is built\n  await buildAdapter(workingDir, buildInputs.parse({location}), logger);\n\n  const project = getProjectRootAndManifest(location);\n\n  const fullPaths = project.manifests.map((manifest) => path.join(project.root, manifest));\n\n  let multichainManifestPath = getMultichainManifestPath(location);\n  if (multichainManifestPath) {\n    multichainManifestPath = path.join(project.root, multichainManifestPath);\n  }\n\n  const authToken = getOptionalToken();\n  const fileToCidMap = await uploadToIpfs(fullPaths, authToken?.trim(), multichainManifestPath, args.ipfs);\n\n  await Promise.all(\n    project.manifests.map((manifest) => {\n      const cid = fileToCidMap.get(manifest);\n      assert(cid, `CID for ${manifest} not found`);\n      return createIPFSFile(project.root, manifest, cid);\n    })\n  );\n\n  const directoryCid = Array.from(fileToCidMap).find(([file]) => file === '');\n\n  return {\n    directory: directoryCid?.[1],\n    files: Object.fromEntries(Array.from(fileToCidMap).filter(([file]) => file !== '')),\n  };\n}\n\nconst extraCommandFlags = z.object({\n  silent: z.boolean({description: 'Run the command without logging, only outputs the CIDs'}).optional().default(false),\n});\nexport default class Publish extends Command {\n  static description = 'Upload this SubQuery project to IPFS for distribution';\n  static flags = zodToFlags(publishInputs.omit({location: true}).merge(extraCommandFlags));\n  static args = zodToArgs(publishInputs.pick({location: true}));\n\n  async run(): Promise<void> {\n    const {args, flags} = await this.parse(Publish);\n\n    const logger = flags.silent ? silentLogger() : commandLogger(this);\n\n    const result = await publishAdapter(process.cwd(), {...flags, ...args}, logger);\n\n    if (flags.silent) {\n      this.log(result.directory);\n      Object.entries(result.files).forEach(([file, cid]) => {\n        this.log(cid);\n      });\n    } else {\n      if (result.directory) {\n        this.log(`SubQuery Multichain Project uploaded to IPFS: ${result.directory}`);\n      }\n      Object.entries(result.files).forEach(([file, cid]) => {\n        this.log(`${result.directory ? '- This includes' : 'SubQuery Project'} ${file} uploaded to IPFS: ${cid}`);\n      });\n    }\n  }\n}\n\nexport function registerPublishMCPTool(server: McpServer): RegisteredTool {\n  return server.registerTool(\n    Publish.name,\n    {\n      description: Publish.description,\n      inputSchema: publishInputs.shape,\n      outputSchema: getMCPStructuredResponse(publishOutputs).shape,\n    },\n    withStructuredResponse(async (args) => {\n      const cwd = await getMCPWorkingDirectory(server);\n\n      const logger = mcpLogger(server.server);\n      return publishAdapter(cwd, args, logger);\n    })\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/constants.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport path from 'path';\nimport {DeploymentType} from './types';\n\n//DEPLOYMENT\nexport const DEFAULT_DEPLOYMENT_TYPE = 'primary' satisfies DeploymentType;\n//PROJECT\nexport const ROOT_API_URL_PROD = 'https://index-api.onfinality.io';\nexport const BASE_PROJECT_URL = 'https://indexing.onfinality.io';\n\nexport const BASE_TEMPLATE_URl = 'https://templates.subquery.network';\n\n// Regex for cold tsManifest\nexport const ENDPOINT_REG = /endpoint:\\s*(\\[[^\\]]+\\]|['\"`][^'\"`]+['\"`])/;\nexport const ADDRESS_REG = /address\\s*:\\s*['\"]([^'\"]+)['\"]/;\nexport const TOPICS_REG = /topics:\\s*(\\[[^\\]]+\\]|['\"`][^'\"`]+['\"`])/;\nexport const FUNCTION_REG = /function\\s*:\\s*['\"]([^'\"]+)['\"]/;\nexport const CHAIN_ID_REG = /chainId:\\s*(\\[[^\\]]+\\]|['\"`][^'\"`]+['\"`])/;\nexport const CAPTURE_CHAIN_ID_REG = /chainId:\\s*(\"([^\"]*)\"|(?<!\")(\\d+))/;\n\nconst rootPath = process.env[process.platform === 'win32' ? 'USERPROFILE' : 'HOME'];\nassert(\n  rootPath,\n  'Cannot determine root path, please create an issue and include your OS. https://github.com/subquery/subql/issues/new'\n);\nexport const ACCESS_TOKEN_PATH = path.resolve(rootPath, '.subql/SUBQL_ACCESS_TOKEN');\nexport const WALLET_CONNECT_STORE_PATH = path.resolve(rootPath, '.subql/wallet-connect.json');\nexport const CONSUMER_HOST_STORE_PATH = path.resolve(rootPath, '.subql/chs.json');\n\nexport const DEFAULT_SUBGRAPH_MANIFEST = 'subgraph.yaml';\nexport const DEFAULT_SUBGRAPH_SCHEMA = 'schema.graphql';\nexport const DEFAULT_SUBQL_MANIFEST = 'project.ts';\nexport const DEFAULT_SUBQL_SCHEMA = 'schema.graphql';\n"
  },
  {
    "path": "packages/cli/src/controller/add-chain-controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs, {existsSync} from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {DEFAULT_MULTICHAIN_MANIFEST} from '@subql/common';\nimport {MultichainProjectManifest, ProjectManifestV1_0_0} from '@subql/types-core';\nimport * as yaml from 'js-yaml';\nimport {rimraf} from 'rimraf';\nimport {YAMLSeq} from 'yaml';\nimport {loadMultichainManifest, validateAndAddChainManifest} from './add-chain-controller';\n\nconst multichainManifest: MultichainProjectManifest = {\n  specVersion: '1.0.0',\n  query: {\n    name: '@subql/query',\n    version: '*',\n  },\n  projects: ['./project-polkadot.yaml'],\n};\n\nconst childChainManifest_1: ProjectManifestV1_0_0 = {\n  specVersion: '1.0.0',\n  version: '1.0.0',\n  name: 'project-polkadot',\n  runner: {\n    node: {\n      name: '@subql/node',\n      version: '*',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n  network: {\n    chainId: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n    endpoint: 'wss://polkadot.api.onfinality.io/public-ws',\n    dictionary: 'https://api.subquery.network/sq/subquery/polkadot-dictionary',\n  },\n  schema: {\n    file: './schema.graphql',\n  },\n  dataSources: [],\n};\n\nconst childChainManifest_2: ProjectManifestV1_0_0 = {\n  specVersion: '1.0.0',\n  version: '1.0.0',\n  name: 'project-kusama',\n  runner: {\n    node: {\n      name: '@subql/node',\n      version: '*',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n  network: {\n    chainId: '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n    endpoint: 'wss://kusama.api.onfinality.io/public-ws',\n    dictionary: 'https://api.subquery.network/sq/subquery/kusama-dictionary',\n  },\n  schema: {\n    file: './schema.graphql',\n  },\n  dataSources: [],\n};\n\nconst childChainManifest_2_wrongSchema: ProjectManifestV1_0_0 = {\n  specVersion: '1.0.0',\n  version: '1.0.0',\n  name: 'project-kusama',\n  runner: {\n    node: {\n      name: '@subql/node',\n      version: '*',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n  network: {\n    chainId: '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n    endpoint: 'wss://kusama.api.onfinality.io/public-ws',\n    dictionary: 'https://api.subquery.network/sq/subquery/kusama-dictionary',\n  },\n  schema: {\n    file: './schema_wrong.graphql',\n  },\n  dataSources: [],\n};\n\nasync function createMultichainProject(\n  multichainManifest: MultichainProjectManifest,\n  childManifests: ProjectManifestV1_0_0[]\n): Promise<string> {\n  const tmpdir = await fs.promises.mkdtemp(`${os.tmpdir()}${path.sep}`);\n  const projectDir = path.join(tmpdir, 'multichain');\n  await fs.promises.mkdir(projectDir);\n  // Create multichain manifest YAML\n  const multichainYaml = yaml.dump(multichainManifest);\n  if (!existsSync(projectDir)) {\n    throw new Error(`${projectDir} does not exist`);\n  }\n  await fs.promises.writeFile(path.join(projectDir, DEFAULT_MULTICHAIN_MANIFEST), multichainYaml);\n\n  // Create child manifest YAML files\n  const childManifestPromises = childManifests.map(async (childManifest) => {\n    const childManifestYaml = yaml.dump(childManifest);\n    const fileName = `${childManifest.name}.yaml`;\n    await fs.promises.writeFile(path.join(projectDir, fileName), childManifestYaml);\n    return fileName;\n  });\n\n  await Promise.all(childManifestPromises);\n\n  return projectDir;\n}\n\nasync function createChildManifestFile(childManifest: ProjectManifestV1_0_0, projectDir: string): Promise<string> {\n  const childManifestYaml = yaml.dump(childManifest);\n  const fileName = `${childManifest.name}.yaml`;\n  await fs.promises.writeFile(path.join(projectDir, fileName), childManifestYaml);\n  return path.join(projectDir, fileName);\n}\n\ndescribe('MultiChain - ADD', () => {\n  let projectDir: string;\n\n  afterEach(async () => {\n    try {\n      await rimraf(projectDir);\n    } catch (e) {\n      console.warn('Failed to clean up tmp dir after test', e);\n    }\n  });\n\n  it('can add chain to multichain manifest - valid schema paths', async () => {\n    projectDir = await createMultichainProject(multichainManifest, [childChainManifest_1]);\n    const chainFile = await createChildManifestFile(childChainManifest_2, projectDir);\n    const multichainManifestPath = path.join(projectDir, DEFAULT_MULTICHAIN_MANIFEST);\n    const multiManifest = loadMultichainManifest(multichainManifestPath);\n    validateAndAddChainManifest(projectDir, chainFile, multiManifest);\n    expect((multiManifest.get('projects') as YAMLSeq).get(1)).toEqual(`${childChainManifest_2.name}.yaml`);\n  });\n\n  it('cannot add chain to multichain manifest - invalid schema path', async () => {\n    projectDir = await createMultichainProject(multichainManifest, [childChainManifest_1]);\n    const chainFile = await createChildManifestFile(childChainManifest_2_wrongSchema, projectDir);\n    const multichainManifestPath = path.join(projectDir, DEFAULT_MULTICHAIN_MANIFEST);\n    const multiManifest = loadMultichainManifest(multichainManifestPath);\n    expect(() => validateAndAddChainManifest(projectDir, chainFile, multiManifest)).toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/add-chain-controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport {DEFAULT_MULTICHAIN_MANIFEST, getProjectRootAndManifest, getSchemaPath, loadFromJsonOrYaml} from '@subql/common';\nimport {MultichainProjectManifest, ProjectManifestV1_0_0} from '@subql/types-core';\nimport {Scalar, Document, parseDocument, YAMLSeq, YAMLMap} from 'yaml';\n\nconst nodeToDockerImage: Record<string, string> = {\n  '@subql/node': 'subquerynetwork/subql-node-substrate',\n  '@subql/node-ethereum': 'subquerynetwork/subql-node-ethereum',\n  '@subql/node-cosmos': 'subquerynetwork/subql-node-cosmos',\n  '@subql/node-algorand': 'subquerynetwork/subql-node-algorand',\n  '@subql/node-near': 'subquerynetwork/subql-node-near',\n  '@subql/node-stellar': 'subquerynetwork/subql-node-stellar',\n  '@subql/node-concordium': 'subquerynetwork/subql-node-concordium',\n  '@subql/node-starknet': 'subquerynetwork/subql-node-starknet',\n  '@subql/node-solana': 'subquerynetwork/subql-node-solana',\n};\n\ntype DockerComposeDependsOn = {\n  condition: string;\n};\n\ntype DockerComposeEnvironment = {\n  [key: string]: string;\n};\n\ntype DockerComposeHealthcheck = {\n  test: ['CMD', ...string[]];\n  interval: string;\n  timeout: string;\n  retries: number;\n};\n\ntype DockerComposeService = {\n  image?: string;\n  depends_on?: Record<string, DockerComposeDependsOn>;\n  restart?: string;\n  environment?: DockerComposeEnvironment;\n  volumes?: string[];\n  command?: string[];\n  healthcheck?: DockerComposeHealthcheck;\n};\n\nexport async function addChain(multichain: string, chainManifestPath: string): Promise<void> {\n  const multichainManifestPath = determineMultichainManifestPath(multichain);\n  const multichainManifest = loadMultichainManifest(multichainManifestPath);\n  chainManifestPath = handleChainManifestOrId(chainManifestPath);\n  validateAndAddChainManifest(path.parse(multichainManifestPath).dir, chainManifestPath, multichainManifest);\n  fs.writeFileSync(multichainManifestPath, multichainManifest.toString());\n  await updateDockerCompose(path.parse(multichainManifestPath).dir, chainManifestPath);\n}\n\nexport function determineMultichainManifestPath(multichain: string): string {\n  if (!multichain) {\n    throw new Error(`Multichain project path -f not provided`);\n  }\n\n  let multichainPath: string;\n  if (fs.lstatSync(multichain).isDirectory()) {\n    multichainPath = path.resolve(multichain, DEFAULT_MULTICHAIN_MANIFEST);\n  } else {\n    if (!fs.existsSync(multichain)) {\n      throw new Error(`Could not resolve multichain project path: ${multichain}`);\n    }\n    multichainPath = multichain;\n  }\n\n  return multichainPath;\n}\n\nexport function loadMultichainManifest(multichainManifestPath: string): Document {\n  let multichainManifest: Document;\n\n  if (!isMultiChainProject(multichainManifestPath)) {\n    throw new Error(`${multichainManifestPath} is an invalid multichain project manifest`);\n  }\n\n  if (fs.existsSync(multichainManifestPath)) {\n    const content = fs.readFileSync(multichainManifestPath, 'utf8');\n    multichainManifest = parseDocument(content);\n  } else {\n    throw new Error(`Multichain project ${multichainManifestPath} does not exist`);\n  }\n\n  return multichainManifest;\n}\n\nexport function handleChainManifestOrId(chainManifestPath: string): string {\n  if (!chainManifestPath) {\n    throw new Error('You must provide chain manifest path');\n  }\n\n  // Check if the provided chain manifest path exists\n  if (!fs.existsSync(chainManifestPath)) {\n    throw new Error(`Chain manifest file does not exist at the specified location: ${chainManifestPath}`);\n  }\n\n  return path.resolve(chainManifestPath);\n}\n\nexport function validateAndAddChainManifest(\n  projectDir: string,\n  chainManifestPath: string,\n  multichainManifest: Document\n): void {\n  // Validate schema paths\n  const chainManifestProject = getProjectRootAndManifest(path.resolve(projectDir, chainManifestPath));\n  const chainManifestSchemaPath = getSchemaPath(chainManifestProject.root, chainManifestProject.manifests[0]);\n\n  console.log(`Chain manifest: ${chainManifestProject.manifests[0]}`);\n\n  for (const manifestPath of (multichainManifest.get('projects') as YAMLSeq).items.map(\n    (item) => (item as Scalar).value as string\n  )) {\n    const project = getProjectRootAndManifest(path.resolve(projectDir, manifestPath));\n    const schemaPath = getSchemaPath(project.root, project.manifests[0]);\n\n    if (schemaPath !== chainManifestSchemaPath) {\n      console.error(\n        `Error: Schema path in the provided chain manifest is different from the schema path in the existing chain manifest for project: ${project.root}`\n      );\n      throw new Error('Schema path mismatch error');\n    }\n  }\n\n  for (const project of (multichainManifest.get('projects') as YAMLSeq<string>).toJSON()) {\n    if (path.resolve(projectDir, project as string) === chainManifestPath) {\n      console.log(`project ${project} already exists in multichain manifest, skipping addition`);\n      return;\n    }\n  }\n\n  // Add the chain manifest path to multichain manifest\n  const relativePath = path.relative(projectDir, chainManifestPath);\n\n  (multichainManifest.get('projects') as YAMLSeq).add(relativePath);\n  console.log(`Successfully added chain manifest path: ${relativePath}`);\n}\n\nexport function loadDockerComposeFile(dockerComposePath: string): Document | undefined {\n  if (fs.existsSync(dockerComposePath)) {\n    const content = fs.readFileSync(dockerComposePath, 'utf8');\n    return parseDocument(content);\n  }\n}\n\nfunction getSubqlNodeService(dockerCompose: Document): DockerComposeService | undefined {\n  const services = dockerCompose.get('services');\n  if (services && services instanceof YAMLMap) {\n    const service = services.items.find((item) => {\n      const image = item.value.get('image') as string;\n      return image?.startsWith('onfinality/subql-node');\n    });\n\n    if (service && service.value instanceof YAMLMap) {\n      const commands = service.value.get('command') as YAMLSeq<string>;\n      if (!(commands.toJSON() as string[]).includes('--multi-chain')) {\n        commands.add('--multi-chain');\n      }\n      return service.value.toJSON() as DockerComposeService;\n    }\n  }\n\n  return undefined;\n}\n\nasync function getDefaultServiceConfiguration(\n  chainManifestPath: string,\n  serviceName: string\n): Promise<DockerComposeService> {\n  const manifest = await loadFromJsonOrYaml(chainManifestPath);\n  let nodeName: string;\n  try {\n    nodeName = (manifest as ProjectManifestV1_0_0).runner.node.name;\n  } catch (e) {\n    throw new Error(`unable to retrieve runner node from manifest: ${e}`);\n  }\n\n  const dockerImage = nodeToDockerImage[nodeName];\n  if (!dockerImage) {\n    throw new Error(`unknown node runner name ${nodeName}`);\n  }\n\n  return {\n    image: `${dockerImage}:latest`,\n    depends_on: {\n      postgres: {\n        condition: 'service_healthy',\n      },\n    },\n    restart: 'always',\n    environment: {\n      DB_USER: 'postgres',\n      DB_PASS: 'postgres',\n      DB_DATABASE: 'postgres',\n      DB_HOST: 'postgres',\n      DB_PORT: '5432',\n    },\n    volumes: ['./:/app'],\n    command: [`-f=app/${path.basename(chainManifestPath)}`, '--multi-chain'],\n    healthcheck: {\n      test: ['CMD', 'curl', '-f', `http://${serviceName}:3000/ready`],\n      interval: '3s',\n      timeout: '5s',\n      retries: 10,\n    },\n  };\n}\n\nexport async function updateDockerCompose(projectDir: string, chainManifestPath: string): Promise<void> {\n  const serviceName = `subquery-node-${path.basename(chainManifestPath, '.yaml')}`;\n  const dockerComposePath = path.join(projectDir, 'docker-compose.yml');\n  const dockerCompose = loadDockerComposeFile(dockerComposePath);\n  if (!dockerCompose) {\n    throw new Error(`Docker Compose file does not exist at the specified location: ${dockerComposePath}`);\n  }\n\n  console.log(`Updating Docker Compose for chain manifest: ${chainManifestPath}`);\n\n  //check if service already exists\n  const services = dockerCompose.get('services');\n  if (services && services instanceof YAMLMap) {\n    const existingService = services.items.find((item) => {\n      const image = item.value.toJSON().image;\n      if (!image || !image.startsWith('onfinality/subql-node')) {\n        return false;\n      }\n      const commands: string[] = item.value.toJSON().command;\n      return commands?.includes(`-f=app/${path.basename(chainManifestPath)}`);\n    });\n\n    if (existingService) {\n      console.log(\n        `Service for ${path.basename(chainManifestPath)} already exists in Docker Compose, skipping addition`\n      );\n      return;\n    }\n  }\n\n  let subqlNodeService = getSubqlNodeService(dockerCompose);\n  if (subqlNodeService) {\n    // If the service already exists, update its configuration\n    subqlNodeService.command = subqlNodeService.command?.filter((cmd) => !cmd.startsWith('-f=')) ?? [];\n    subqlNodeService.command.push(`-f=app/${path.basename(chainManifestPath)}`);\n\n    if (subqlNodeService.healthcheck) {\n      subqlNodeService.healthcheck.test = ['CMD', 'curl', '-f', `http://${serviceName}:3000/ready`];\n    }\n  } else {\n    // Otherwise, create a new service configuration\n    subqlNodeService = await getDefaultServiceConfiguration(chainManifestPath, serviceName);\n  }\n  console.log(`Created new service configuration: ${serviceName}`);\n\n  (services as YAMLMap).add({key: serviceName, value: subqlNodeService});\n\n  // Save the updated Docker Compose file\n  fs.writeFileSync(dockerComposePath, dockerCompose.toString());\n  console.log(`Docker Compose file updated successfully at: ${dockerComposePath}`);\n}\n\nfunction isMultiChainProject(content: string): boolean {\n  return Array.isArray((loadFromJsonOrYaml(content) as MultichainProjectManifest).projects);\n}\n"
  },
  {
    "path": "packages/cli/src/controller/build-controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync, writeFileSync, mkdirSync, rmSync} from 'fs';\nimport {tmpdir} from 'os';\nimport {join, resolve} from 'path';\nimport {getBuildEntries} from './build-controller';\n\n// Mock logger for tests that need it\nconst mockLogger = {\n  warn: jest.fn(),\n  info: jest.fn(),\n  error: jest.fn(),\n  debug: jest.fn(),\n};\n\ndescribe('build controller', () => {\n  it('picks up test and export files', () => {\n    const dir = resolve(__dirname, '../../test/build');\n\n    const entries = getBuildEntries(dir);\n\n    expect(entries['test/mappingHandler.test']).toEqual(resolve(dir, './src/test/mappingHandler.test.ts'));\n    expect(entries.chaintypes).toEqual(resolve(dir, './src/chainTypes.ts'));\n  });\n\n  describe('Environment variable integration', () => {\n    let testDir: string;\n    let srcDir: string;\n    let distDir: string;\n    let envPath: string;\n\n    beforeEach(() => {\n      jest.clearAllMocks();\n\n      // Create test directories\n      testDir = join(tmpdir(), `subql-build-test-${Date.now()}`);\n      srcDir = join(testDir, 'src');\n      distDir = join(testDir, 'dist');\n      envPath = join(testDir, '.env');\n\n      mkdirSync(srcDir, {recursive: true});\n      mkdirSync(distDir, {recursive: true});\n    });\n\n    afterEach(() => {\n      if (existsSync(testDir)) {\n        rmSync(testDir, {recursive: true, force: true});\n      }\n    });\n\n    it('should load environment variables from .env file', () => {\n      // Create .env file\n      const envContent = [\n        'DATABASE_URL=postgresql://localhost:5432/test',\n        'API_KEY=test-key-123',\n        'NODE_ENV=test',\n      ].join('\\n');\n      writeFileSync(envPath, envContent);\n\n      // Import the env utility and test it directly\n      const {getWebpackEnvDefinitions, loadEnvConfig} = require('../utils/env');\n\n      const envConfig = loadEnvConfig(testDir);\n      expect(envConfig).toEqual({\n        DATABASE_URL: 'postgresql://localhost:5432/test',\n        API_KEY: 'test-key-123',\n        NODE_ENV: 'test',\n      });\n\n      const webpackDefinitions = getWebpackEnvDefinitions(envConfig);\n      expect(webpackDefinitions).toEqual({\n        'process.env.DATABASE_URL': '\"postgresql://localhost:5432/test\"',\n        'process.env.API_KEY': '\"test-key-123\"',\n        'process.env.NODE_ENV': '\"test\"',\n      });\n    });\n\n    it('should handle missing .env file gracefully', () => {\n      const {loadEnvConfig} = require('../utils/env');\n\n      const envConfig = loadEnvConfig(testDir);\n      expect(envConfig).toEqual({});\n    });\n\n    it('should handle empty .env file', () => {\n      // Create empty .env file\n      writeFileSync(envPath, '');\n\n      const {loadEnvConfig} = require('../utils/env');\n\n      const envConfig = loadEnvConfig(testDir);\n      expect(envConfig).toEqual({});\n    });\n\n    it('should find default entry file', () => {\n      writeFileSync(join(srcDir, 'index.ts'), 'export {};');\n\n      const packageJson = {\n        name: 'test-project',\n        main: 'src/index.ts',\n      };\n      writeFileSync(join(testDir, 'package.json'), JSON.stringify(packageJson, null, 2));\n\n      const entries = getBuildEntries(testDir, mockLogger);\n\n      expect(entries).toHaveProperty('index');\n      expect(entries.index).toBe(join(testDir, 'src/index.ts'));\n    });\n\n    it('should find test files', () => {\n      const testDir1 = join(srcDir, 'test');\n      const testDir2 = join(srcDir, 'tests');\n\n      mkdirSync(testDir1, {recursive: true});\n      mkdirSync(testDir2, {recursive: true});\n\n      writeFileSync(join(srcDir, 'index.ts'), 'export {};');\n      writeFileSync(join(testDir1, 'handler.test.ts'), 'export {};');\n      writeFileSync(join(testDir2, 'mapping.test.ts'), 'export {};');\n\n      const packageJson = {\n        name: 'test-project',\n        main: 'src/index.ts',\n      };\n      writeFileSync(join(testDir, 'package.json'), JSON.stringify(packageJson, null, 2));\n\n      const entries = getBuildEntries(testDir, mockLogger);\n\n      expect(entries).toHaveProperty('index');\n      expect(entries['test/handler.test']).toBeDefined();\n      expect(entries['tests/mapping.test']).toBeDefined();\n    });\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/build-controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {readFileSync, existsSync} from 'fs';\nimport path from 'path';\nimport {globSync} from 'glob';\nimport {parse} from 'jsonc-parser';\nimport TerserPlugin from 'terser-webpack-plugin';\nimport {TsconfigPathsPlugin} from 'tsconfig-paths-webpack-plugin';\nimport webpack, {Configuration} from 'webpack';\nimport {merge} from 'webpack-merge';\nimport {Logger} from '../adapters/utils';\nimport {loadEnvConfig, getWebpackEnvDefinitions} from '../utils/env';\n\n/**\n * Webpack has been chosen as the bundler for a few reasons.\n * There was a change to esbuild that lead to more problems than it solved.\n * These are the reasons for using webpack:\n * * Good tree shaking including of dependencies. e.g imports to 'ethers' will result in tree shaking of unused code like Providers, this is to avoid importing 'unsafe' node imports like 'http'.\n * * Correctly hoists polyfills. So if something like `global.TextDecoder = SomeOtherTextDecoder` will be set before any other code is run. esbuild does not do this.\n * * There is some issues with pnpm resolving the @subql/types-* and @subql/types-core global entities correctly. This was the reason for switching to esbuild\n */\n\nconst getBaseConfig = (\n  buildEntries: Configuration['entry'],\n  projectDir: string,\n  outputDir: string,\n  development?: boolean\n): webpack.Configuration => {\n  // Load environment variables from .env file\n  const envConfig = loadEnvConfig(projectDir);\n  const envDefinitions = getWebpackEnvDefinitions(envConfig);\n\n  return {\n    target: 'node',\n    mode: development ? 'development' : 'production',\n    context: projectDir,\n    entry: buildEntries,\n    devtool: 'inline-source-map',\n    optimization: {\n      minimize: true,\n      minimizer: [\n        new TerserPlugin({\n          terserOptions: {\n            sourceMap: true,\n            format: {\n              beautify: true,\n            },\n          },\n        }),\n      ],\n    },\n    plugins: [new webpack.DefinePlugin(envDefinitions)],\n    module: {\n      rules: [\n        {\n          test: /\\.tsx?$/,\n          exclude: /node_modules/,\n          loader: require.resolve('ts-loader'),\n          options: {\n            compilerOptions: {\n              declaration: false,\n            },\n          },\n        },\n        {\n          test: /\\.ya?ml$/,\n          use: 'yaml-loader',\n        },\n      ],\n    },\n\n    resolve: {\n      extensions: ['.tsx', '.ts', '.js', '.json'],\n      plugins: [],\n    },\n\n    output: {\n      path: outputDir,\n      filename: '[name].js',\n      libraryTarget: 'commonjs',\n    },\n  };\n};\n\nexport function loadTsConfig(projectDir: string): any {\n  const tsconfigPath = path.join(projectDir, 'tsconfig.json');\n  if (existsSync(tsconfigPath)) {\n    const tsconfig = readFileSync(tsconfigPath, 'utf-8');\n    const tsconfigJson = parse(tsconfig);\n\n    return tsconfigJson;\n  }\n}\n\nexport async function runBundle(\n  buildEntries: Record<string, string>,\n  projectDir: string,\n  outputDir: string,\n  isDev = false,\n  clean = false,\n  logger?: Logger\n): Promise<void> {\n  // Injecting polyfills if they exist, this allows setting global variables like TextDecoder/TextEncoder\n  const inject = [path.resolve(projectDir, './src/polyfill.ts'), path.resolve(projectDir, './src/polyfills.ts')].filter(\n    (file) => existsSync(file)\n  );\n\n  if (inject.length) {\n    logger?.warn(\n      'Support for pollyfill files has been removed. Please move the code to the top of your entry index.ts file'\n    );\n  }\n\n  const config = merge(\n    getBaseConfig(buildEntries, projectDir, outputDir, isDev),\n    {output: {clean}}\n    // Can allow projects to override webpack config here\n  );\n\n  const tsConfig = loadTsConfig(projectDir);\n  if (tsConfig?.compilerOptions?.paths && config.resolve && config.resolve.plugins) {\n    config.resolve.plugins.push(new TsconfigPathsPlugin());\n  }\n\n  await new Promise((resolve, reject) => {\n    const wp = webpack(config);\n\n    if (!wp) {\n      throw new Error('Webpack failed to initialize');\n    }\n\n    wp.run((error, stats) => {\n      if (error) {\n        reject(error);\n        return;\n      }\n      assert(stats, 'Webpack stats is undefined');\n\n      if (stats.hasErrors()) {\n        const info = stats.toJson();\n\n        reject(new Error(info.errors?.map((e) => e.message).join('\\n') ?? 'Unknown error'));\n        return;\n      }\n\n      resolve(true);\n    });\n  });\n}\n\nexport function getBuildEntries(directory: string, logger?: Logger): Record<string, string> {\n  // FIXME: this is an assumption that the default entry is src/index.ts, in reality it should read from the project manifest\n  const defaultEntry = path.join(directory, 'src/index.ts');\n  let buildEntries: Record<string, string> = {\n    index: defaultEntry,\n  };\n\n  globSync(path.join(directory, 'src/test/**/*.test.ts')).forEach((testFile) => {\n    const testName = path.basename(testFile).replace('.ts', '');\n    buildEntries[`test/${testName}`] = testFile;\n  });\n\n  globSync(path.join(directory, 'src/tests/**/*.test.ts')).forEach((testFile) => {\n    const testName = path.basename(testFile).replace('.ts', '');\n    buildEntries[`tests/${testName}`] = testFile;\n  });\n\n  // Get the output location from the project package.json main field\n  const pjson = JSON.parse(readFileSync(path.join(directory, 'package.json')).toString());\n  if (pjson.exports && typeof pjson.exports !== 'string') {\n    buildEntries = Object.entries(pjson.exports as Record<string, string>).reduce(\n      (acc, [key, value]) => {\n        acc[key] = path.resolve(directory, value);\n        return acc;\n      },\n      {...buildEntries}\n    );\n  }\n\n  for (const i in buildEntries) {\n    if (typeof buildEntries[i] !== 'string') {\n      logger?.warn(`Ignoring entry ${i} from build.`);\n      delete buildEntries[i];\n    }\n  }\n\n  return buildEntries;\n}\n"
  },
  {
    "path": "packages/cli/src/controller/codegen-controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {rimraf} from 'rimraf';\nimport {codegen, processFields, validateEntityName} from './codegen-controller';\n\njest.mock('fs', () => {\n  const fs = jest.requireActual('fs');\n  return {\n    ...fs,\n    promises: {\n      ...fs.promises,\n      mkdir: jest.fn(),\n    },\n  };\n});\n\njest.mock('rimraf', () => {\n  return jest.createMockFromModule('rimraf') as unknown;\n});\n\njest.setTimeout(30000);\n\ndescribe('Codegen can generate schema (mocked)', () => {\n  const projectPath = path.join(__dirname, '../../test/test1');\n  it('throw error when make directory failed at beginning of codegen', async () => {\n    (rimraf as unknown as jest.Mock).mockImplementation((path, cb) => cb());\n    (fs.promises.mkdir as jest.Mock).mockImplementation(async () => Promise.reject(new Error()));\n    await expect(codegen(projectPath)).rejects.toThrow(/Failed to prepare/);\n  });\n\n  it('test codegen reserved key validate', () => {\n    const good_name = 'exampleFilterEntity';\n    const good_result = validateEntityName(good_name);\n    expect(good_result).toEqual(good_name);\n\n    const bad_name = 'exampleEntityFilters';\n    expect(() => validateEntityName(bad_name)).toThrow(\n      'EntityName: exampleEntityFilters cannot end with reservedKey: filters'\n    );\n  });\n\n  it('throw error when processing unsupported type in json fields', () => {\n    expect(() =>\n      processFields(\n        'jsonField',\n        'TypeNotSupported',\n        [\n          // Ignoring to test unsupported scalar type\n          {\n            name: 'notSupported',\n            type: 'UnsupportedScalar',\n            nullable: false,\n            isArray: false,\n            isEnum: false,\n          },\n        ],\n        []\n      )\n    ).toThrow(\n      'Schema: undefined type \"UnsupportedScalar\" on field \"notSupported\" in \"type TypeNotSupported @jsonField\"'\n    );\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/codegen-controller.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {rimraf} from 'rimraf';\nimport {codegen} from './codegen-controller';\n\njest.setTimeout(30000);\n\nconst projectPath = path.join(__dirname, '../../test/schemaTest');\n\ndescribe('Codegen can generate schema', () => {\n  afterEach(async () => {\n    await rimraf(path.join(__dirname, '../../test/schemaTest/src'));\n  });\n\n  it('codegen with correct schema should pass', async () => {\n    await expect(codegen(projectPath)).resolves.not.toThrow();\n  });\n\n  it('codegen with incorrect schema field should fail', async () => {\n    await expect(codegen(projectPath, ['project-bad-schema.yaml'])).rejects.toThrow(/is not a valid type/);\n  });\n\n  it('codegen with entities that uses reserved names should throw', async () => {\n    await expect(codegen(projectPath, ['project-bad-entity.yaml'])).rejects.toThrow(\n      'EntityName: exampleEntityFilter cannot end with reservedKey: filter'\n    );\n  });\n\n  it('Codegen should be able to generate ABIs from template datasources', async () => {\n    await codegen(projectPath, ['project-templates-abi.yaml']);\n    await expect(\n      fs.promises.readFile(`${projectPath}/src/types/abi-interfaces/Erc721.ts`, 'utf8')\n    ).resolves.toBeTruthy();\n  });\n\n  it('Should not fail, if ds does not have any assets', async () => {\n    await expect(codegen(projectPath, ['project-no-assets.yaml'])).resolves.not.toThrow();\n  });\n\n  it('Codegen should be able to generate ABIs from customName datasources', async () => {\n    await codegen(projectPath);\n    await expect(\n      fs.promises.readFile(`${projectPath}/src/types/abi-interfaces/Erc721.ts`, 'utf8')\n    ).resolves.toBeTruthy();\n  });\n\n  it('Should clean out existing types directory', async () => {\n    await codegen(projectPath);\n    await codegen(projectPath, ['project-no-abi.yaml']);\n\n    // should not contain abi directory\n    await expect(fs.promises.readFile(`${projectPath}/src/types/abi-interfaces/erc721.ts`, 'utf8')).rejects.toThrow();\n  });\n\n  it('should generate contracts on different glob paths', async () => {\n    await codegen(projectPath, ['typechain-test.yaml']);\n\n    await expect(\n      fs.promises.readFile(`${projectPath}/src/types/abi-interfaces/Erc721.ts`, 'utf8')\n    ).resolves.toBeTruthy();\n    await expect(\n      fs.promises.readFile(`${projectPath}/src/types/abi-interfaces/Artifact.ts`, 'utf8')\n    ).resolves.toBeTruthy();\n\n    await expect(fs.promises.readFile(`${projectPath}/src/types/contracts/Erc721.ts`, 'utf8')).resolves.toBeTruthy();\n    await expect(\n      fs.promises.readFile(`${projectPath}/src/types/abi-interfaces/Artifact.ts`, 'utf8')\n    ).resolves.toBeTruthy();\n  });\n\n  it('Should not generate ABI for non evm ds', async () => {\n    await codegen(projectPath, ['non-evm-project.yaml']);\n    expect(fs.existsSync(`${projectPath}/src/types/abi-interfaces/`)).toBeFalsy();\n  });\n\n  it('Should not generate proto-interfaces if no chaintypes are provided', async () => {\n    await codegen(projectPath, ['project-cosmos.yaml']);\n    expect(fs.existsSync(`${projectPath}/src/types/proto-interfaces/`)).toBeFalsy();\n  });\n\n  it('Should dedupe enums', async () => {\n    await codegen(projectPath, ['project-duplicate-enum.yaml']);\n\n    const fooFile = await fs.promises.readFile(`${projectPath}/src/types/models/Foo.ts`, 'utf8');\n\n    expect(fooFile).toContain(\n      `import {\n    Bar,\n} from '../enums';`\n    );\n  });\n\n  // github issue #2211\n  it('codegen file should import model files with correct case-sensitive names', async () => {\n    await codegen(projectPath, ['project-case-sensitive-import-entity.yaml']);\n\n    const codegenFile = await fs.promises.readFile(`${projectPath}/src/types/models/index.ts`, 'utf8');\n\n    expect(codegenFile).toContain(`export {ExampleField} from \"./ExampleField\"`);\n  });\n\n  it('correctly generates relations with different dbTypes', async () => {\n    const projectPath = path.join(__dirname, '../../test/schemaTest');\n    await codegen(projectPath, ['project-id-type.yaml']);\n\n    const blockEntity = await fs.promises.readFile(`${projectPath}/src/types/models/Block.ts`, 'utf8');\n\n    expect(blockEntity).toContain('        metaId: bigint,');\n    expect(blockEntity).toContain('public metaId: bigint;');\n    expect(blockEntity).toContain(\n      'static async getByMetaId(metaId: bigint, options: GetOptions<CompatBlockProps>): Promise<Block[]> {'\n    );\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/codegen-controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport path from 'path';\nimport {\n  DEFAULT_MANIFEST,\n  getManifestPath,\n  getProjectNetwork,\n  getSchemaPath,\n  loadFromJsonOrYaml,\n  NETWORK_FAMILY,\n} from '@subql/common';\nimport type {SubstrateCustomDatasource} from '@subql/types';\nimport {BaseDataSource, BaseTemplateDataSource, ProjectManifestV1_0_0, TemplateBase} from '@subql/types-core';\nimport {CosmosRuntimeDatasource} from '@subql/types-cosmos/dist/project';\nimport type {\n  SubqlCustomDatasource as EthereumCustomDs,\n  SubqlDatasource,\n  SubqlRuntimeDatasource as EthereumDs,\n} from '@subql/types-ethereum';\nimport type {SubqlRuntimeDatasource as SolanaDs} from '@subql/types-solana';\nimport {\n  getAllEntitiesRelations,\n  getAllEnums,\n  getAllJsonObjects,\n  getTypeByScalarName,\n  GraphQLEntityField,\n  GraphQLEntityIndex,\n  GraphQLJsonFieldType,\n  setJsonObjectType,\n} from '@subql/utils';\nimport {uniq, uniqBy, upperFirst} from 'lodash';\nimport {loadDependency} from '../modulars';\nimport {prepareDirPath, renderTemplate} from '../utils';\n\nexport type TemplateKind = BaseTemplateDataSource;\n\nexport type DatasourceKind = SubstrateCustomDatasource | EthereumDs | EthereumCustomDs;\n\nconst MODEL_TEMPLATE_PATH = path.resolve(__dirname, '../template/model.ts.ejs');\nconst MODELS_INDEX_TEMPLATE_PATH = path.resolve(__dirname, '../template/models-index.ts.ejs');\nconst TYPES_INDEX_TEMPLATE_PATH = path.resolve(__dirname, '../template/types-index.ts.ejs');\nconst INTERFACE_TEMPLATE_PATH = path.resolve(__dirname, '../template/interface.ts.ejs');\nconst ENUM_TEMPLATE_PATH = path.resolve(__dirname, '../template/enum.ts.ejs');\nconst DYNAMIC_DATASOURCE_TEMPLATE_PATH = path.resolve(__dirname, '../template/datasource-templates.ts.ejs');\nconst TYPE_ROOT_DIR = 'src/types';\nconst MODEL_ROOT_DIR = 'src/types/models';\nconst RESERVED_KEYS = ['filter', 'filters'];\n\nconst exportTypes = {\n  models: false,\n  interfaces: false,\n  enums: false,\n  datasources: false,\n};\n\n// 3. Re-format the field of the entity\nexport interface ProcessedField {\n  name: string;\n  type: string;\n  required: boolean;\n  isEnum: boolean;\n  indexed: boolean;\n  unique?: boolean;\n  isArray: boolean;\n  isJsonInterface: boolean;\n}\n\nexport async function generateJsonInterfaces(projectPath: string, schema: string): Promise<void> {\n  const typesDir = path.join(projectPath, TYPE_ROOT_DIR);\n  const jsonObjects = getAllJsonObjects(schema);\n  const jsonInterfaces = jsonObjects.map((r) => {\n    const object = setJsonObjectType(r, jsonObjects);\n    const fields = processFields('jsonField', object.name, object.fields);\n    return {\n      interfaceName: object.name,\n      fields,\n    };\n  });\n\n  if (jsonInterfaces.length !== 0) {\n    const interfaceTemplate = {\n      props: {\n        jsonInterfaces,\n      },\n      helper: {\n        upperFirst,\n      },\n    };\n    try {\n      await renderTemplate(INTERFACE_TEMPLATE_PATH, path.join(typesDir, `interfaces.ts`), interfaceTemplate);\n      exportTypes.interfaces = true;\n    } catch (e) {\n      throw new Error(`Codegen failed for json interface.`, {cause: e});\n    }\n  }\n}\n\nexport async function generateEnums(projectPath: string, schema: string): Promise<void> {\n  const typesDir = path.join(projectPath, TYPE_ROOT_DIR);\n  const jsonObjects = getAllEnums(schema);\n  const enums = jsonObjects.map((r) => {\n    return {\n      name: r.name,\n      values: r.getValues().map((v) => v.name),\n    };\n  });\n\n  if (enums.length !== 0) {\n    const enumsTemplate = {\n      props: {\n        enums,\n      },\n    };\n    try {\n      await renderTemplate(ENUM_TEMPLATE_PATH, path.join(typesDir, `enums.ts`), enumsTemplate);\n      exportTypes.enums = true;\n    } catch (e) {\n      throw new Error(`Codegen failed for enums.`, {cause: e});\n    }\n  }\n}\n\nexport function processFields(\n  type: 'entity' | 'jsonField',\n  className: string,\n  fields: (GraphQLEntityField | GraphQLJsonFieldType)[],\n  indexFields: GraphQLEntityIndex[] = []\n): ProcessedField[] {\n  const fieldList: ProcessedField[] = [];\n  for (const field of fields) {\n    const injectField = {\n      name: field.name,\n      required: !field.nullable,\n      isArray: field.isArray,\n      isEnum: false,\n    } as ProcessedField;\n    if (type === 'entity') {\n      const [indexed, unique] = indexFields.reduce<[boolean, boolean | undefined]>(\n        (acc, indexField) => {\n          if (indexField.fields.includes(field.name) && indexField.fields.length <= 1) {\n            acc[0] = true;\n            if (indexField.fields.length === 1 && indexField.unique) {\n              acc[1] = true;\n            } else if (indexField.unique === undefined) {\n              acc[1] = false;\n            }\n          }\n          return acc;\n        },\n        [false, undefined]\n      );\n      injectField.indexed = indexed;\n      injectField.unique = unique;\n    }\n    if ((field as GraphQLEntityField).isEnum) {\n      injectField.type = field.type;\n      injectField.isEnum = true;\n      injectField.isJsonInterface = false;\n    } else {\n      switch (field.type) {\n        default: {\n          const typeClass = getTypeByScalarName(field.type);\n\n          assert(\n            typeClass && typeClass.tsType,\n            `Schema: undefined type \"${field.type.toString()}\" on field \"${field.name}\" in \"type ${className} @${type}\"`\n          );\n          injectField.type = typeClass.tsType;\n          injectField.isJsonInterface = false;\n          break;\n        }\n        case 'Json': {\n          if (field.jsonInterface === undefined) {\n            throw new Error(`On field ${field.name} type is Json but json interface is not defined`);\n          }\n          injectField.type = upperFirst(field.jsonInterface.name);\n          injectField.isJsonInterface = true;\n        }\n      }\n    }\n    fieldList.push(injectField);\n  }\n  return fieldList;\n}\n\n//1. Prepare models directory and load schema\nexport async function codegen(projectPath: string, fileNames: string[] = [DEFAULT_MANIFEST]): Promise<void> {\n  const modelDir = path.join(projectPath, MODEL_ROOT_DIR);\n  const interfacesPath = path.join(projectPath, TYPE_ROOT_DIR, `interfaces.ts`);\n  await prepareDirPath(modelDir, true);\n  await prepareDirPath(interfacesPath, false);\n  const plainManifests = fileNames.map((fileName) => {\n    const project = loadFromJsonOrYaml(getManifestPath(projectPath, fileName)) as ProjectManifestV1_0_0 & {\n      networkFamily: NETWORK_FAMILY;\n    };\n    project.networkFamily = getProjectNetwork(project);\n    return project;\n  });\n\n  const expectKeys = ['datasources', 'templates'];\n\n  const customDatasources = plainManifests.flatMap((plainManifest) => {\n    return Object.keys(plainManifest)\n      .filter((key) => !expectKeys.includes(key))\n      .map((dsKey) => {\n        const value = (plainManifest as any)[dsKey];\n        if (typeof value === 'object' && value) {\n          return !!Object.keys(value).find((d) => d === 'assets') && value;\n        }\n      })\n      .filter(Boolean);\n  });\n\n  const schema = getSchemaPath(projectPath, fileNames[0]);\n  await generateSchemaModels(projectPath, schema);\n\n  let datasources = plainManifests.reduce((prev, current) => {\n    return prev.concat(current.dataSources);\n  }, [] as BaseDataSource[]);\n\n  const templates = plainManifests.reduce((prev, current) => {\n    if (current.templates && current.templates.length !== 0) {\n      return prev.concat(current.templates);\n    }\n    return prev;\n  }, [] as TemplateKind[]);\n\n  if (templates.length !== 0) {\n    await generateDatasourceTemplates(projectPath, templates);\n    datasources = datasources.concat(templates as DatasourceKind[]);\n  }\n\n  if (customDatasources.length !== 0) {\n    datasources = datasources.concat(customDatasources);\n  }\n\n  const cosmosManifests = plainManifests.filter((m) => m.networkFamily === NETWORK_FAMILY.cosmos);\n  if (cosmosManifests.length > 0) {\n    const cosmosModule = loadDependency(NETWORK_FAMILY.cosmos, projectPath);\n    await cosmosModule.projectCodegen(\n      plainManifests,\n      projectPath,\n      prepareDirPath,\n      renderTemplate,\n      upperFirst,\n      datasources as CosmosRuntimeDatasource[]\n    );\n  }\n  // TODO what about custom datasource processors, e.g. FrontierEvmProcessor, EthermintProcessor\n  const ethManifests = plainManifests.filter((m) => m.networkFamily === NETWORK_FAMILY.ethereum);\n  const solanaManifests = plainManifests.filter((m) => m.networkFamily === NETWORK_FAMILY.solana);\n\n  // Todo, starknet codegen not supported yet\n  const starknetManifests = plainManifests.filter((m) => m.networkFamily === NETWORK_FAMILY.starknet);\n\n  // as we determine it is eth network, ds type should SubqlDatasource\n  if (ethManifests.length > 0 || (!starknetManifests && !!datasources.find((d) => (d as SubqlDatasource)?.assets))) {\n    const ethModule = loadDependency(NETWORK_FAMILY.ethereum, projectPath);\n\n    await ethModule.generateAbis(datasources as EthereumDs[], projectPath, prepareDirPath, upperFirst, renderTemplate);\n  }\n\n  if (solanaManifests.length) {\n    const solModule = loadDependency(NETWORK_FAMILY.solana, projectPath);\n    await solModule.generateIDLInterfaces(datasources as SolanaDs[], projectPath, renderTemplate);\n  }\n\n  if (exportTypes.interfaces || exportTypes.models || exportTypes.enums || exportTypes.datasources) {\n    try {\n      await renderTemplate(TYPES_INDEX_TEMPLATE_PATH, path.join(projectPath, TYPE_ROOT_DIR, `index.ts`), {\n        props: {\n          exportTypes,\n        },\n      });\n    } catch (e) {\n      throw new Error(`Codegen failed for indexes.`, {cause: e});\n    }\n    console.log(`* Types index generated !`);\n  }\n}\n\nexport async function generateSchemaModels(projectPath: string, schemaPath: string): Promise<void> {\n  const modelDir = path.join(projectPath, MODEL_ROOT_DIR);\n  const interfacesPath = path.join(projectPath, TYPE_ROOT_DIR, `interfaces.ts`);\n  await prepareDirPath(modelDir, true);\n  await prepareDirPath(interfacesPath, false);\n\n  await generateJsonInterfaces(projectPath, schemaPath);\n  await generateModels(projectPath, schemaPath);\n  await generateEnums(projectPath, schemaPath);\n}\n\nexport function validateEntityName(name: string): string {\n  for (const reservedKey of RESERVED_KEYS) {\n    if (name.toLowerCase().endsWith(reservedKey.toLowerCase())) {\n      throw new Error(`EntityName: ${name} cannot end with reservedKey: ${reservedKey}`);\n    }\n  }\n  return name;\n}\n// 2. Loop all entities and render it\nexport async function generateModels(projectPath: string, schema: string): Promise<void> {\n  const extractEntities = getAllEntitiesRelations(schema);\n  for (const entity of extractEntities.models) {\n    const baseFolderPath = '.../../base';\n    const className = upperFirst(entity.name);\n\n    const entityName = validateEntityName(entity.name);\n\n    const fields = processFields('entity', className, entity.fields, entity.indexes);\n    const idType = fields.find((f) => f.name === 'id')?.type ?? 'string';\n    const importJsonInterfaces = uniq(fields.filter((field) => field.isJsonInterface).map((f) => f.type));\n    const importEnums = uniq(fields.filter((field) => field.isEnum).map((f) => f.type));\n    const indexedFields = fields.filter((field) => field.indexed && !field.isJsonInterface);\n    const modelTemplate = {\n      props: {\n        baseFolderPath,\n        className,\n        entityName,\n        fields,\n        importJsonInterfaces,\n        importEnums,\n        indexedFields,\n        idType,\n      },\n      helper: {\n        upperFirst,\n      },\n    };\n    try {\n      await renderTemplate(\n        MODEL_TEMPLATE_PATH,\n        path.join(projectPath, MODEL_ROOT_DIR, `${className}.ts`),\n        modelTemplate\n      );\n    } catch (e) {\n      console.error(e);\n      throw new Error(`Codegen failed for entity ${className}.`, {cause: e});\n    }\n    console.log(`* Schema ${className} generated !`);\n  }\n  const classNames = extractEntities.models.map((entity) => upperFirst(entity.name));\n  if (classNames.length !== 0) {\n    try {\n      await renderTemplate(MODELS_INDEX_TEMPLATE_PATH, path.join(projectPath, MODEL_ROOT_DIR, `index.ts`), {\n        props: {\n          classNames,\n        },\n        helper: {\n          upperFirst,\n        },\n      });\n      exportTypes.models = true;\n    } catch (e) {\n      throw new Error(`Failed to codgen for model indexes.`, {cause: e});\n    }\n    console.log(`* Models index generated !`);\n  }\n}\n\nexport async function generateDatasourceTemplates(projectPath: string, templates: TemplateKind[]): Promise<void> {\n  const props = templates.map((t) => ({\n    name: (t as TemplateBase).name,\n    args: 'Record<string, unknown>',\n  }));\n\n  const propsWithoutDuplicates = uniqBy(props, (prop) => `${prop.name}-${prop.args}`);\n\n  try {\n    await renderTemplate(DYNAMIC_DATASOURCE_TEMPLATE_PATH, path.join(projectPath, TYPE_ROOT_DIR, `datasources.ts`), {\n      props: propsWithoutDuplicates,\n    });\n    exportTypes.datasources = true;\n  } catch (e) {\n    console.error(e);\n    throw new Error(`Unable to generate datasource template constructors`);\n  }\n  console.log(`* Datasource template constructors generated !`);\n}\n"
  },
  {
    "path": "packages/cli/src/controller/codegen-cosmos.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {loadFromJsonOrYaml} from '@subql/common';\nimport {projectCodegen} from '@subql/common-cosmos';\nimport {ProjectManifestV1_0_0} from '@subql/types-core';\nimport type {CosmosDatasource, CustomDatasourceTemplate, RuntimeDatasourceTemplate} from '@subql/types-cosmos';\nimport {upperFirst} from 'lodash';\nimport {rimraf} from 'rimraf';\nimport {prepareDirPath, renderTemplate} from '../utils';\n\nconst PROJECT_PATH = path.join(__dirname, '../../test/protoTest1');\nconst MOCK_CHAINTYPES: any = {\n  'osmosis.gamm.v1beta1': {\n    file: './proto/osmosis/gamm/v1beta1/tx.proto',\n    messages: ['MsgSwapExactAmountIn'],\n  },\n  'osmosis.poolmanager.v1beta1': {\n    file: './proto/osmosis/poolmanager/v1beta1/swap_route.proto',\n    messages: ['SwapAmountInRoute'],\n  },\n};\n\njest.setTimeout(30000);\n\ndescribe('Able to generate cosmos types from protobuf', () => {\n  afterEach(async () => {\n    await rimraf(path.join(__dirname, '../../test/protoTest1/src'));\n  });\n\n  const manifest = loadFromJsonOrYaml(path.join(PROJECT_PATH, 'project.yaml')) as ProjectManifestV1_0_0<\n    CosmosDatasource,\n    RuntimeDatasourceTemplate | CustomDatasourceTemplate,\n    any\n  >;\n\n  it('Able to generate ts types from protobufs', async () => {\n    const expectedGeneratedCode =\n      '' +\n      `// SPDX-License-Identifier: Apache-2.0\n\n// Auto-generated , DO NOT EDIT\nimport {CosmosMessage} from \"@subql/types-cosmos\";\n\nimport * as OsmosisGammV1beta1Tx from \"./proto-interfaces/osmosis/gamm/v1beta1/tx\";\n\n\nexport namespace osmosis.gamm.v1beta1.tx {\n\n  export type MsgSwapExactAmountInMessage = CosmosMessage<OsmosisGammV1beta1Tx.MsgSwapExactAmountIn>;\n}\n\n`;\n\n    manifest.network.chaintypes = MOCK_CHAINTYPES;\n    await projectCodegen([manifest], PROJECT_PATH, prepareDirPath, renderTemplate, upperFirst, []);\n    const codegenResult = await fs.promises.readFile(path.join(PROJECT_PATH, '/src/types/CosmosMessageTypes.ts'));\n    expect(fs.existsSync(`${PROJECT_PATH}/src/types/CosmosMessageTypes.ts`)).toBeTruthy();\n    expect(codegenResult.toString()).toBe(expectedGeneratedCode);\n  });\n\n  it('On missing protobuf dependency should throw', async () => {\n    const badChainType = {\n      'osmosis.gamm.v1beta1': {\n        file: './proto/cosmos/osmosis/gamm/v1beta1/tx.proto',\n        messages: ['MsgSwapExactAmountIn'],\n      },\n    };\n    manifest.network.chaintypes = badChainType;\n    await expect(() =>\n      projectCodegen([manifest], PROJECT_PATH, prepareDirPath, renderTemplate, upperFirst, [])\n    ).rejects.toThrow(\n      'Failed to generate from protobufs. Error: chainType osmosis.gamm.v1beta1, file ./proto/cosmos/osmosis/gamm/v1beta1/tx.proto does not exist'\n    );\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/deploy-controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {splitMultichainDataFields} from './deploy-controller';\n\njest.setTimeout(30000);\n\ndescribe('splitMultichainDataFields test', () => {\n  it('Single chain, single endpoint', () => {\n    const result = splitMultichainDataFields('chainIdididid:http://1.1.1.1');\n    expect(result).toEqual({chainIdididid: 'http://1.1.1.1'});\n  });\n\n  it('multi chain, multi endpoint', () => {\n    const result = splitMultichainDataFields(\n      'chainIdididid:http://1.1.1.1,chainIdididid222:http://2.2.2.2,chainIdididid333:http://3.3.33.3'\n    );\n    expect(result).toEqual({\n      chainIdididid: 'http://1.1.1.1',\n      chainIdididid222: 'http://2.2.2.2',\n      chainIdididid333: 'http://3.3.33.3',\n    });\n  });\n\n  it('Incorrect values (endpoint without chainId)', () => {\n    const result = splitMultichainDataFields('http://2.2.2.2,http://2.2.2.3');\n    expect(result).toEqual({});\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/deploy-controller.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ROOT_API_URL_PROD} from '../constants';\nimport {DeploymentDataType, DeploymentType, V3DeploymentIndexerType, ValidateDataType} from '../types';\nimport {delay} from '../utils';\nimport {\n  createDeployment,\n  promoteDeployment,\n  deleteDeployment,\n  deploymentStatus,\n  ipfsCID_validate,\n  imageVersions,\n  updateDeployment,\n  projectsInfo,\n} from './deploy-controller';\nimport {createProject, deleteProject, getProject} from './project-controller';\n\njest.setTimeout(120000);\n\nconst projectSpec = {\n  org: process.env.SUBQL_ORG_TEST!,\n  projectName: 'mockedStarter',\n  ipfs: 'Qmdr4yg98Fv8Yif3anjKVHhjuAKR665j6ekhWsfYUdkaCu',\n  subtitle: 'This project is generated by SubQuery SDK integration tests',\n  description: '',\n  logoURL: '',\n  type: 'stage',\n};\n\nasync function deployTestProject(\n  validator: ValidateDataType,\n  ipfs: string,\n  org: string,\n  project_name: string,\n  testAuth: string,\n  url: string\n): Promise<DeploymentDataType> {\n  const indexerV = await imageVersions(\n    validator.manifestRunner!.node.name,\n    validator.manifestRunner!.node.version,\n    testAuth,\n    url\n  );\n  const queryV = await imageVersions(\n    validator.manifestRunner!.query.name,\n    validator.manifestRunner!.query.version,\n    testAuth,\n    url\n  );\n\n  const endpoint = 'wss://polkadot.api.onfinality.io/public-ws';\n\n  const project: V3DeploymentIndexerType = {\n    cid: ipfs,\n    endpoint,\n    indexerImageVersion: indexerV[0],\n    indexerAdvancedSettings: {\n      indexer: {},\n    },\n  };\n\n  return createDeployment(\n    org,\n    project_name,\n    testAuth,\n    ipfs,\n    queryV[0],\n    projectSpec.type as DeploymentType,\n    {},\n    [project],\n    url\n  );\n}\n\n// Replace/Update your access token when test locally\nconst testAuth = process.env.SUBQL_ACCESS_TOKEN!;\n// Can be re-enabled when test env is ready\ndescribe('CLI deploy, delete, promote', () => {\n  beforeAll(async () => {\n    const {description, logoURL, org, projectName, subtitle} = projectSpec;\n    if (!projectSpec.org) {\n      throw new Error(`Please set SUBQL_ORG_TEST env var.`);\n    }\n\n    const project = await getProject(ROOT_API_URL_PROD, testAuth, `${org}/${projectName}`);\n    if (project) {\n      console.warn('Project already exists, these tests could be being run in parallel');\n      return;\n    }\n    await createProject(ROOT_API_URL_PROD, testAuth, {\n      apiVersion: 'v3',\n      key: `${org}/${projectName}`,\n      logoUrl: logoURL,\n      name: projectName,\n      description,\n      subtitle,\n      tag: [],\n      type: 1,\n    });\n  });\n\n  afterAll(async () => {\n    try {\n      await deleteProject(testAuth, projectSpec.org, projectSpec.projectName, ROOT_API_URL_PROD);\n    } catch (e) {\n      console.warn('Failed to delete project', e);\n    }\n  });\n\n  it('Deploy to Hosted Service and Delete', async () => {\n    const {ipfs, org, projectName} = projectSpec;\n\n    const validator = await ipfsCID_validate(ipfs, testAuth, ROOT_API_URL_PROD);\n    const deploy_output = await deployTestProject(validator, ipfs, org, projectName, testAuth, ROOT_API_URL_PROD);\n\n    const del_output = await deleteDeployment(org, projectName, testAuth, deploy_output.id, ROOT_API_URL_PROD);\n    expect(typeof deploy_output.id).toBe('number');\n    expect(+del_output).toBe(deploy_output.id);\n  });\n\n  // Only test locally\n  // eslint-disable-next-line jest/no-disabled-tests\n  it.skip('Promote Deployment', async () => {\n    const {ipfs, org, projectName} = projectSpec;\n    let status: string | undefined;\n    let attempt = 0;\n    const validator = await ipfsCID_validate(ipfs, testAuth, ROOT_API_URL_PROD);\n    const deployOutput = await deployTestProject(validator, ipfs, org, projectName, testAuth, ROOT_API_URL_PROD);\n    while (status !== 'running') {\n      if (attempt >= 5) break;\n      attempt = attempt + 1;\n      await delay(30);\n      status = await deploymentStatus(org, projectName, testAuth, deployOutput.id, ROOT_API_URL_PROD);\n      if (status === 'running') {\n        const promoteOutput = await promoteDeployment(org, projectName, testAuth, deployOutput.id, ROOT_API_URL_PROD);\n        // eslint-disable-next-line jest/no-conditional-expect\n        expect(+promoteOutput).toBe(deployOutput.id);\n      }\n    }\n  });\n\n  it('should return true for valid ipfsCID', async () => {\n    const validator = await ipfsCID_validate(projectSpec.ipfs, testAuth, ROOT_API_URL_PROD);\n    expect(validator.valid).toBe(true);\n  });\n\n  it('to throw error for invalid ipfsCID', async () => {\n    await expect(ipfsCID_validate('fake', testAuth, ROOT_API_URL_PROD)).rejects.toThrow(\n      'Failed to validate IPFS CID: fake is not a valid subquery deployment id!'\n    );\n  });\n\n  it('reDeploy to Hosted Service', async () => {\n    const {ipfs, org, projectName, type} = projectSpec;\n    const newIPFS = 'Qmdr4yg98Fv8Yif3anjKVHhjuAKR665j6ekhWsfYUdkaCu';\n    const validator = await ipfsCID_validate(projectSpec.ipfs, testAuth, ROOT_API_URL_PROD);\n\n    const deployOutput = await deployTestProject(validator, ipfs, org, projectName, testAuth, ROOT_API_URL_PROD);\n    const initProjectInfo = await projectsInfo(testAuth, org, projectName, ROOT_API_URL_PROD, type);\n\n    const endpoint = 'wss://polkadot.api.onfinality.io/public-ws';\n    const indexerV = await imageVersions(\n      validator.manifestRunner!.node.name,\n      validator.manifestRunner!.node.version,\n      testAuth,\n      ROOT_API_URL_PROD\n    );\n    const queryV = await imageVersions(\n      validator.manifestRunner!.query.name,\n      validator.manifestRunner!.query.version,\n      testAuth,\n      ROOT_API_URL_PROD\n    );\n\n    const project = {\n      cid: ipfs,\n      endpoint,\n      indexerImageVersion: indexerV[0],\n      indexerAdvancedSettings: {\n        indexer: {},\n      },\n    };\n\n    await updateDeployment(\n      org,\n      projectName,\n      deployOutput.id,\n      testAuth,\n      newIPFS,\n      queryV[0],\n      {},\n      [project],\n      ROOT_API_URL_PROD\n    );\n    const updatedInfo = await projectsInfo(testAuth, org, projectName, ROOT_API_URL_PROD, type);\n\n    expect(updatedInfo!.id).toBe(initProjectInfo!.id);\n    expect(updatedInfo!.version).not.toEqual(deployOutput.version);\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/deploy-controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport axios, {Axios} from 'axios';\n\nimport chalk from 'chalk';\nimport {Logger, Prompt} from '../adapters/utils';\nimport {BASE_PROJECT_URL, ROOT_API_URL_PROD} from '../constants';\nimport {\n  DeploymentDataType,\n  ProjectDataType,\n  QueryAdvancedOpts,\n  V3DeploymentIndexerType,\n  V3DeploymentInput,\n  ValidateDataType,\n  ProjectDeploymentInterface,\n  GenerateDeploymentChainInterface,\n  DeploymentFlagsInterface,\n  MultichainDataFieldType,\n  DeploymentType,\n} from '../types';\nimport {buildProjectKey, errorHandle} from '../utils';\n\nfunction getAxiosInstance(url: string, authToken?: string): Axios {\n  const headers: Record<string, string> = {};\n\n  if (authToken) {\n    headers.Authorization = `Bearer ${authToken}`;\n  }\n\n  return axios.create({\n    baseURL: url,\n    headers,\n  });\n}\n\nexport async function createDeployment(\n  org: string,\n  projectName: string,\n  authToken: string,\n  ipfsCID: string,\n  queryImageVersion: string,\n  type: DeploymentType,\n  query: QueryAdvancedOpts,\n  chains: V3DeploymentIndexerType[],\n  url: string\n): Promise<DeploymentDataType> {\n  try {\n    const res = await getAxiosInstance(url, authToken).post(\n      `v3/subqueries/${buildProjectKey(org, projectName)}/deployments`,\n      {\n        cid: ipfsCID,\n        type: type,\n        queryImageVersion: queryImageVersion,\n        queryAdvancedSettings: {query},\n        chains,\n      } satisfies V3DeploymentInput\n    );\n    return res.data.deployment;\n  } catch (e) {\n    throw errorHandle(e, 'Error deploying to hosted service:');\n  }\n}\n\nexport async function promoteDeployment(\n  org: string,\n  projectName: string,\n  authToken: string,\n  deploymentId: number,\n  url: string\n): Promise<string> {\n  try {\n    await getAxiosInstance(url, authToken).post(\n      `subqueries/${buildProjectKey(org, projectName)}/deployments/${deploymentId}/release`\n    );\n    return `${deploymentId}`;\n  } catch (e) {\n    throw errorHandle(e, 'Failed to promote project:');\n  }\n}\n\nexport async function deleteDeployment(\n  org: string,\n  projectName: string,\n  authToken: string,\n  deploymentId: number,\n  url: string\n): Promise<string> {\n  try {\n    await getAxiosInstance(url, authToken).delete(\n      `subqueries/${buildProjectKey(org, projectName)}/deployments/${deploymentId}`\n    );\n    return `${deploymentId}`;\n  } catch (e) {\n    throw errorHandle(e, 'Failed to delete deployment:');\n  }\n}\n\nexport async function deploymentStatus(\n  org: string,\n  projectName: string,\n  authToken: string,\n  deployID: number,\n  url: string\n): Promise<string> {\n  try {\n    const res = await getAxiosInstance(url, authToken).get<{status: string}>(\n      `subqueries/${buildProjectKey(org, projectName)}/deployments/${deployID}/status`\n    );\n    return `${res.data.status}`;\n  } catch (e) {\n    throw errorHandle(e, 'Failed to get deployment status:');\n  }\n}\n\nexport async function projectsInfo(\n  authToken: string,\n  org: string,\n  projectName: string,\n  url: string,\n  type: string\n): Promise<ProjectDataType | undefined> {\n  const key = `${org}/${projectName.toLowerCase()}`;\n  try {\n    const res = await getAxiosInstance(url, authToken).get<ProjectDataType[]>(\n      `v3/subqueries/${buildProjectKey(org, projectName)}/deployments`\n    );\n\n    return res.data.find((element) => element.projectKey === `${key}` && element.type === type);\n  } catch (e) {\n    throw errorHandle(e, 'Failed to get projects:');\n  }\n}\n\nexport async function updateDeployment(\n  org: string,\n  projectName: string,\n  deployID: number,\n  authToken: string,\n  ipfsCID: string,\n  queryVersion: string,\n  query: QueryAdvancedOpts,\n  chains: V3DeploymentIndexerType[],\n  url: string\n): Promise<void> {\n  try {\n    await getAxiosInstance(url, authToken).put(\n      `v3/subqueries/${buildProjectKey(org, projectName)}/deployments/${deployID}`,\n      {\n        cid: ipfsCID,\n        queryImageVersion: queryVersion,\n        queryAdvancedSettings: {query},\n        chains,\n      } as V3DeploymentInput\n    );\n  } catch (e) {\n    throw errorHandle(e, `Failed to redeploy project: ${(e as any).message}`);\n  }\n}\n\nexport async function ipfsCID_validate(\n  cid: string | undefined,\n  authToken: string,\n  url: string\n): Promise<ValidateDataType> {\n  assert(cid, 'IPFS CID is required');\n  try {\n    const res = await getAxiosInstance(url, authToken).post<ValidateDataType>(`ipfs/deployment-id/${cid}/validate`);\n\n    if (res.status === 500) {\n      throw new Error((res.data as unknown as {message: string}).message);\n    }\n\n    return res.data;\n  } catch (e) {\n    throw errorHandle(e, 'Failed to validate IPFS CID:');\n  }\n}\n\nexport async function imageVersions(name: string, version: string, authToken: string, url: string): Promise<string[]> {\n  try {\n    const res = await getAxiosInstance(url, authToken).get<string[]>(\n      `info/images/${encodeURIComponent(name)}?version=${encodeURIComponent(version)}`\n    );\n    return res.data;\n  } catch (e) {\n    throw errorHandle(e, 'Failed to get image:');\n  }\n}\n\nexport function splitEndpoints(endpointStr: string): string[] {\n  return endpointStr.split(',').map((e) => e.trim());\n}\n\nexport interface EndpointType {\n  network: string;\n  endpoint: string;\n  chainId: string;\n}\n\nexport function splitMultichainDataFields(fieldStr = ''): MultichainDataFieldType {\n  const result: MultichainDataFieldType = {};\n\n  splitEndpoints(String(fieldStr)).forEach((unparsedRow) => {\n    const regexpResult = unparsedRow.match(/(.*?):(.*)/);\n    if (regexpResult) {\n      const regexpRes = Object.values(regexpResult);\n      if (regexpRes && regexpRes.length === 6 && ['http', 'https', 'ws', 'wss'].indexOf(regexpRes[1]) === -1) {\n        result[regexpRes[1]] = regexpRes[2];\n      }\n    }\n  });\n\n  return result;\n}\n\nexport function generateDeploymentChain(row: GenerateDeploymentChainInterface): V3DeploymentIndexerType {\n  return {\n    cid: row.cid,\n    dictEndpoint: row.dictEndpoint,\n    endpoint: row.endpoint,\n    indexerImageVersion: row.indexerImageVersion,\n    indexerAdvancedSettings: {\n      indexer: {\n        unsafe: row.flags.indexerUnsafe,\n        batchSize: row.flags.indexerBatchSize,\n        subscription: row.flags.indexerSubscription,\n        historicalData: !row.flags.disableHistorical,\n        unfinalizedBlocks: row.flags.indexerUnfinalized,\n        storeCacheThreshold: row.flags.indexerStoreCacheThreshold,\n        disableStoreCacheAsync: row.flags.disableIndexerStoreCacheAsync,\n      },\n    },\n    extraParams: row.flags.indexerWorkers\n      ? {\n          workers: {\n            num: row.flags.indexerWorkers,\n          },\n        }\n      : {},\n  };\n}\n\nexport function generateAdvancedQueryOptions(flags: DeploymentFlagsInterface): QueryAdvancedOpts {\n  return {\n    unsafe: !!flags.queryUnsafe,\n    subscription: !!flags.querySubscription,\n    queryTimeout: Number(flags.queryTimeout),\n    queryLimit: flags.queryLimit ? Number(flags.queryLimit) : undefined,\n    // maxConnection: Number(flags.queryMaxConnection), // project version or plan does not support maxConnection\n    aggregate: !!flags.queryAggregate,\n  };\n}\n\nexport async function executeProjectDeployment(\n  data: ProjectDeploymentInterface\n): Promise<DeploymentDataType | undefined> {\n  // This should not happe, the commands that call this should set the query version\n  if (!data.flags.queryVersion) {\n    throw new Error('Query version is required');\n  }\n  if (data.projectInfo !== undefined) {\n    await updateDeployment(\n      data.flags.org,\n      data.flags.projectName,\n      data.projectInfo.id,\n      data.authToken,\n      data.ipfsCID,\n      data.flags.queryVersion,\n      generateAdvancedQueryOptions(data.flags),\n      data.chains,\n      ROOT_API_URL_PROD\n    );\n  } else {\n    const deploymentOutput = await createDeployment(\n      data.flags.org,\n      data.flags.projectName,\n      data.authToken,\n      data.ipfsCID,\n      data.flags.queryVersion,\n      data.flags.type,\n      generateAdvancedQueryOptions(data.flags),\n      data.chains,\n      ROOT_API_URL_PROD\n    );\n\n    return deploymentOutput;\n  }\n}\n\nexport async function promptImageVersion(\n  runner: string,\n  version: string,\n  useDefaults: boolean | undefined,\n  authToken: string,\n  type: 'indexer' | 'query',\n  prompt: Prompt | null\n): Promise<string> {\n  const versions = await imageVersions(runner, version, authToken, ROOT_API_URL_PROD);\n  if (useDefaults) {\n    return versions[0];\n  }\n  if (!prompt) {\n    throw new Error(`${type} is required`);\n  }\n\n  return prompt({\n    message: `Enter ${type} version for ${runner}`,\n    type: 'string',\n    options: versions,\n    defaultValue: versions[0],\n  });\n}\n\nexport function logDeployment(logger: Logger, org: string, projectName: string, deploymentOutput?: DeploymentDataType) {\n  if (deploymentOutput) {\n    logger.info(`Project: ${deploymentOutput.projectKey}\n  Status: ${chalk.blue(deploymentOutput.status)}\n  DeploymentID: ${deploymentOutput.id}\n  Deployment Type: ${deploymentOutput.type}\n  Indexer version: ${deploymentOutput.indexerImage}\n  Query version: ${deploymentOutput.queryImage}\n  Endpoint: ${deploymentOutput.endpoint}\n  Dictionary Endpoint: ${deploymentOutput.dictEndpoint}\n  Query URL: ${deploymentOutput.queryUrl}\n  Project URL: ${BASE_PROJECT_URL}/org/${org}/project/${projectName}\n  Advanced Settings for Query: ${JSON.stringify(deploymentOutput.configuration.config.query)}\n  Advanced Settings for Indexer: ${JSON.stringify(deploymentOutput.configuration.config.indexer)}\n`);\n  } else {\n    logger.info(`Project: ${projectName} has been re-deployed`);\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/generate-controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {EventFragment, FunctionFragment} from '@ethersproject/abi';\nimport {DEFAULT_TS_MANIFEST, NETWORK_FAMILY} from '@subql/common';\nimport {getAbiInterface} from '@subql/common-ethereum';\nimport {\n  EthereumDatasourceKind,\n  EthereumHandlerKind,\n  EthereumLogFilter,\n  EthereumTransactionFilter,\n  SubqlRuntimeDatasource as EthereumDs,\n} from '@subql/types-ethereum';\nimport {makeCLIPrompt} from '../adapters/utils';\nimport {ENDPOINT_REG, FUNCTION_REG, TOPICS_REG} from '../constants';\nimport {loadDependency} from '../modulars';\nimport {\n  extractArrayValueFromTsManifest,\n  extractFromTs,\n  findMatchingIndices,\n  replaceArrayValueInTsManifest,\n  resolveToAbsolutePath,\n  splitArrayString,\n} from '../utils';\nimport {\n  constructDatasourcesTs,\n  constructDatasourcesYaml,\n  constructHandlerProps,\n  constructMethod,\n  filterExistingMethods,\n  filterObjectsByStateMutability,\n  generateHandlerName,\n  prepareInputFragments,\n  removeKeyword,\n  tsExtractor,\n  tsStringify,\n  yamlExtractor,\n  SelectedMethod,\n  UserInput,\n} from './generate-controller';\n\nconst mockConstructedFunctions: SelectedMethod[] = [\n  {\n    name: 'transferFrom',\n    method: 'transferFrom(address,address,uint256)',\n  },\n];\n\nconst mockConstructedEvents: SelectedMethod[] = [\n  {\n    name: 'Approval',\n    method: 'Approval(address,address,uint256)',\n  },\n];\n\nconst mockDsFn = (): EthereumDs[] => [\n  {\n    kind: EthereumDatasourceKind.Runtime,\n    startBlock: 1,\n    options: {\n      abi: 'Erc721',\n      address: '',\n    },\n    assets: {\n      erc721: {file: 'erc721.json'},\n    } as unknown as Map<string, {file: string}>,\n    mapping: {\n      file: '',\n      handlers: [\n        {\n          handler: 'handleTransaction',\n          kind: EthereumHandlerKind.Call,\n          filter: {\n            function: 'approve(address,uint256)',\n          },\n        },\n        {\n          handler: 'handleLog',\n          kind: EthereumHandlerKind.Event,\n          filter: {\n            topics: ['Transfer(address,address,uint256)'],\n          },\n        },\n      ],\n    },\n  },\n];\n\nconst mockDsStr =\n  '' +\n  '[\\n' +\n  '{\\n' +\n  \"                kind: 'EthereumDatasourceKind.Runtime',\\n\" +\n  '                startBlock: 4719568,\\n' +\n  '    \\n' +\n  '                options: {\\n' +\n  '                    // Must be a key of assets\\n' +\n  \"                    abi:'erc20',\\n\" +\n  '                    // # this is the contract address for wrapped ether https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\n' +\n  \"                    address:'0x60781C2586D68229fde47564546784ab3fACA982'\\n\" +\n  '                },\\n' +\n  \"                assets: \\\"new Map([['erc20', { file: './abis/erc20.abi.json' }]])\\\",\\n\" +\n  '                mapping: {\\n' +\n  '                    file: \"./dist/index.js\",\\n' +\n  '                    handlers: [\\n' +\n  '                        {\\n' +\n  \"                            kind: 'EthereumHandlerKind.Call',\\n\" +\n  '                            handler: \"handleTransaction\",\\n' +\n  '                            filter: {\\n' +\n  '                                function: \"approve(address,uint256)\",\\n' +\n  '                            },\\n' +\n  '                        },\\n' +\n  '                        {\\n' +\n  \"                            kind: 'EthereumHandlerKind.Event',\\n\" +\n  '                            handler: \"handleLog\",\\n' +\n  '                            filter: {\\n' +\n  '                                topics: [\"Transfer(address,address,uint256)\"],\\n' +\n  '                            },\\n' +\n  '                        },\\n' +\n  '                    ],\\n' +\n  '                },\\n' +\n  '            },\\n' +\n  '        ]';\n\ndescribe('CLI codegen:generate', () => {\n  const projectPath = path.join(__dirname, '../../test/schemaTest');\n  const abiInterface = getAbiInterface(projectPath, './erc721.json');\n  const ethModule = loadDependency(NETWORK_FAMILY.ethereum, process.cwd());\n  const abiName = ethModule.parseContractPath('./erc721.json').name;\n  const eventFragments = abiInterface.events;\n  const functionFragments = filterObjectsByStateMutability(abiInterface.functions);\n\n  it('Construct correct datasources', () => {\n    const mockUserInput: UserInput = {\n      startBlock: 1,\n      functions: mockConstructedFunctions,\n      events: mockConstructedEvents,\n      abiPath: './abis/erc721.json',\n      address: 'aaa',\n    };\n    const constructedDs = constructDatasourcesYaml(mockUserInput, process.cwd());\n    const expectedAsset = new Map();\n    expectedAsset.set('Erc721', {file: './abis/erc721.json'});\n    expect(constructedDs).toStrictEqual({\n      kind: EthereumDatasourceKind.Runtime,\n      startBlock: 1,\n      options: {\n        abi: 'Erc721',\n        address: 'aaa',\n      },\n      assets: expectedAsset,\n      mapping: {\n        file: './dist/index.js',\n        handlers: [\n          {\n            handler: 'handleTransferFromErc721Tx',\n            kind: EthereumHandlerKind.Call,\n            filter: {\n              function: 'transferFrom(address,address,uint256)',\n            },\n          },\n          {\n            handler: 'handleApprovalErc721Log',\n            kind: EthereumHandlerKind.Event,\n            filter: {\n              topics: ['Approval(address,address,uint256)'],\n            },\n          },\n        ],\n      },\n    });\n  });\n\n  it('prepareInputFragments, should return all fragments, if user passes --events=\"*\"', async () => {\n    const result = await prepareInputFragments('event', '*', eventFragments, abiName, makeCLIPrompt());\n    expect(result).toStrictEqual(abiInterface.events);\n  });\n\n  it('prepareInputFragments, no method passed, should prompt through inquirer', async () => {\n    // when using ejs, jest spyOn does not work on inquirer\n    const inquirer = require('@inquirer/prompts');\n\n    const promptSpy = jest.spyOn(inquirer, 'checkbox').mockResolvedValue(['Approval(address,address,uint256)']);\n\n    const emptyStringPassed = await prepareInputFragments('event', '', eventFragments, abiName, makeCLIPrompt());\n    expect(promptSpy).toHaveBeenCalledTimes(1);\n    const undefinedPassed = await prepareInputFragments('event', undefined, eventFragments, abiName, makeCLIPrompt());\n\n    expect(emptyStringPassed).toStrictEqual(undefinedPassed);\n  });\n\n  it('prepareInputFragments, --functions=\"transferFrom\", should return matching fragment method (cased insensitive)', async () => {\n    const result = await prepareInputFragments<FunctionFragment>(\n      'function',\n      'transferFrom',\n      functionFragments,\n      abiName,\n      makeCLIPrompt()\n    );\n    const insensitiveInputResult = await prepareInputFragments<FunctionFragment>(\n      'function',\n      'transFerfrom',\n      functionFragments,\n      abiName,\n      makeCLIPrompt()\n    );\n\n    expect(result).toStrictEqual(insensitiveInputResult);\n    expect(result).toStrictEqual({\n      'transferFrom(address,address,uint256)': abiInterface.functions['transferFrom(address,address,uint256)'],\n    });\n  });\n  it('should throw when passing invalid methods', async () => {\n    await expect(\n      prepareInputFragments<FunctionFragment>(\n        'function',\n        'transferFrom(address,address,uint256)',\n        functionFragments,\n        abiName,\n        makeCLIPrompt()\n      )\n    ).rejects.toThrow(\"'transferFrom(address' is not a valid function on Erc721\");\n    await expect(\n      prepareInputFragments<FunctionFragment>(\n        'function',\n        'transferFrom(address from, address to, uint256 tokenid)',\n        functionFragments,\n        abiName,\n        makeCLIPrompt()\n      )\n    ).rejects.toThrow(\"'transferFrom(address from' is not a valid function on Erc721\");\n\n    await expect(\n      prepareInputFragments('function', 'asdfghj', functionFragments, abiName, makeCLIPrompt())\n    ).rejects.toThrow(\"'asdfghj' is not a valid function on Erc721\");\n  });\n  it('Ensure generateHandlerName', () => {\n    expect(generateHandlerName('transfer', 'erc721', 'log')).toBe('handleTransferErc721Log');\n  });\n  it('Ensure ConstructHandlerProps', () => {\n    const functionMethods = [{name: 'transfer', method: 'transfer(address,uint256)'}];\n    const eventsMethods = [{name: 'Approval', method: 'Approval(address,address,uint256)'}];\n\n    const result = constructHandlerProps([eventsMethods, functionMethods], abiName);\n    expect(result).toStrictEqual({\n      name: 'Erc721',\n      handlers: [\n        {\n          name: 'handleTransferErc721Tx',\n          argName: 'tx',\n          argType: 'TransferTransaction',\n        },\n        {name: 'handleApprovalErc721Log', argName: 'log', argType: 'ApprovalLog'},\n      ],\n    });\n  });\n  it('FilterObjectsByStatMutability', () => {\n    const mockData = {\n      'transfer(address,uint256)': {\n        type: 'function',\n        name: 'transfer',\n        constant: false,\n        inputs: [[], []] as any,\n        outputs: [[]] as any,\n        payable: false,\n        stateMutability: 'nonpayable',\n        gas: null as any,\n        _isFragment: true,\n      },\n      'allowance(address,address)': {\n        type: 'function',\n        name: 'allowance',\n        constant: true,\n        inputs: [[], []] as any,\n        outputs: [[]] as any,\n        payable: false,\n        stateMutability: 'view',\n        gas: null as any,\n        _isFragment: true,\n      },\n    };\n    const filteredResult = filterObjectsByStateMutability(mockData as any as Record<string, FunctionFragment>);\n\n    expect(filteredResult).toEqual({\n      'transfer(address,uint256)': {\n        type: 'function',\n        name: 'transfer',\n        constant: false,\n        inputs: [[], []] as any,\n        outputs: [[]] as any,\n        payable: false,\n        stateMutability: 'nonpayable',\n        gas: null as any,\n        _isFragment: true,\n      },\n    } as any);\n  });\n  it('filter out existing methods, input address === undefined && ds address === \"\", should filter', () => {\n    const ds = mockDsFn();\n    ds[0].options!.address = '';\n    const [cleanEvents, cleanFunctions] = filterExistingMethods(\n      eventFragments,\n      functionFragments,\n      ds,\n      undefined,\n      yamlExtractor\n    );\n    // function approve should be filtered out\n    // event transfer should be filtered out\n    expect(cleanEvents).toStrictEqual({\n      'Approval(address,address,uint256)': eventFragments['Approval(address,address,uint256)'],\n      'ApprovalForAll(address,address,bool)': eventFragments['ApprovalForAll(address,address,bool)'],\n    });\n    expect(cleanEvents['Transfer(address,address,uint256)']).toBeFalsy();\n    expect(cleanFunctions['approve(address,uint256)']).toBeFalsy();\n  });\n\n  it('filter out existing methods, only on matching address', () => {\n    const ds = mockDsFn();\n    ds[0].options!.address = '0x892476D79090Fa77C6B9b79F68d21f62b46bEDd2';\n\n    const [cleanEvents, cleanFunctions] = filterExistingMethods(\n      eventFragments,\n      functionFragments,\n      ds,\n      'zzz',\n      yamlExtractor\n    );\n    const constructedEvents: SelectedMethod[] = constructMethod<EventFragment>(cleanEvents);\n    const constructedFunctions: SelectedMethod[] = constructMethod<FunctionFragment>(cleanFunctions);\n\n    console.log(constructedEvents, '|', constructedFunctions);\n    // expect(constructedEvents.length).toBe(Object.keys(eventFragments).length);\n    // expect(constructedFunctions.length).toBe(Object.keys(functionFragments).length);\n  });\n\n  it('filter out existing methods, inputAddress === undefined || \"\" should filter all ds that contains no address', () => {\n    const ds = mockDsFn();\n    if (ds[0].options?.address) ds[0].options.address = undefined;\n    const [cleanEvents, cleanFunctions] = filterExistingMethods(\n      eventFragments,\n      functionFragments,\n      ds,\n      undefined,\n      yamlExtractor\n    );\n\n    expect(cleanEvents).toStrictEqual({\n      'Approval(address,address,uint256)': eventFragments['Approval(address,address,uint256)'],\n      'ApprovalForAll(address,address,bool)': eventFragments['ApprovalForAll(address,address,bool)'],\n    });\n    expect(cleanEvents['Transfer(address,address,uint256)']).toBeFalsy();\n    expect(cleanFunctions['approve(address,uint256)']).toBeFalsy();\n  });\n  it('filter out different formatted filters', () => {\n    const ds = mockDsFn();\n    ds[0].options!.address = 'zzz';\n    const logHandler = ds[0].mapping.handlers[1].filter as EthereumLogFilter;\n    const txHandler = ds[0].mapping.handlers[0].filter as EthereumTransactionFilter;\n    txHandler.function = 'approve(address to, uint256 tokenId)';\n    logHandler.topics = ['Transfer(address indexed from, address indexed to, uint256 indexed tokenId)'];\n\n    // should filter out approve and Transfer\n    const [cleanEvents, cleanFunctions] = filterExistingMethods(\n      eventFragments,\n      functionFragments,\n      ds,\n      'zzz',\n      yamlExtractor\n    );\n    const constructedEvents: SelectedMethod[] = constructMethod<EventFragment>(cleanEvents);\n    const constructedFunctions: SelectedMethod[] = constructMethod<FunctionFragment>(cleanFunctions);\n\n    expect(constructedEvents).toStrictEqual([\n      {name: 'Approval', method: 'Approval(address,address,uint256)'},\n      {\n        name: 'ApprovalForAll',\n        method: 'ApprovalForAll(address,address,bool)',\n      },\n    ]);\n\n    expect(constructedFunctions).toStrictEqual([\n      {\n        name: 'safeTransferFrom',\n        method: 'safeTransferFrom(address,address,uint256)',\n      },\n      {\n        name: 'safeTransferFrom',\n        method: 'safeTransferFrom(address,address,uint256,bytes)',\n      },\n      {\n        name: 'setApprovalForAll',\n        method: 'setApprovalForAll(address,bool)',\n      },\n      {\n        name: 'transferFrom',\n        method: 'transferFrom(address,address,uint256)',\n      },\n    ]);\n  });\n  it('removeKeyword, should only remove expect value', () => {\n    let inputString = 'event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved)';\n    expect(removeKeyword(inputString)).toBe(\n      'ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved)'\n    );\n\n    inputString = 'function balanceOf(address _owner) external view returns (uint256)';\n    expect(removeKeyword(inputString)).toBe('balanceOf(address _owner) external view returns (uint256)');\n\n    inputString = 'balanceOf(address _owner) external view returns (uint256)';\n    expect(removeKeyword(inputString)).toBe('balanceOf(address _owner) external view returns (uint256)');\n  });\n  it('Able to read from artifacts and abis', () => {\n    const mockPath_1 = path.join(__dirname, '../../test/abiTest1/');\n    const mockPath_2 = path.join(__dirname, '../../test/abiTest2/');\n\n    expect(getAbiInterface(mockPath_1, 'abis.json')).toBeTruthy();\n    expect(getAbiInterface(mockPath_1, 'artifact.json')).toBeTruthy();\n\n    expect(() => getAbiInterface(mockPath_2, 'artifact.json')).toThrow('Provided ABI is not a valid ABI or Artifact');\n  });\n  it('resolve to absolutePath from tilde', () => {\n    const tildePath = '~/Downloads/example.file';\n    expect(resolveToAbsolutePath(tildePath)).toBe(`${os.homedir()}/Downloads/example.file`);\n  });\n  it('resolve to absolutePath from relativePath', () => {\n    const abiPath_relative = './packages/cli/test/abiTest1/abis/abis.json';\n    expect(resolveToAbsolutePath(abiPath_relative)).toBe(path.join(__dirname, '../../test/abiTest1/abis/abis.json'));\n  });\n  it('if absolutePath regex should not do anything', () => {\n    const absolutePath = '/root/Downloads/example.file';\n    expect(resolveToAbsolutePath(absolutePath)).toBe(absolutePath);\n  });\n  it('filter existing methods', () => {\n    const casedInputAddress = '0x60781C2586D68229fde47564546784ab3fACA982'.toLowerCase();\n\n    const [cleanEvents, cleanFunctions] = filterExistingMethods(\n      eventFragments,\n      functionFragments,\n      mockDsStr,\n      casedInputAddress,\n      tsExtractor\n    );\n    // should filter out approve fn and transfer event\n    expect(Object.keys(cleanEvents).includes('Transfer')).toBe(false);\n    expect(Object.keys(cleanFunctions).includes('approval')).toBe(false);\n  });\n  it('splitArrayString', () => {\n    const dsArr =\n      '' +\n      '[\\n' +\n      '{\\n' +\n      \"                kind: 'EthereumDatasourceKind.Runtime',\\n\" +\n      '                startBlock: 4719568,\\n' +\n      '    \\n' +\n      '                options: {\\n' +\n      '                    // Must be a key of assets\\n' +\n      \"                    abi:'erc20',\\n\" +\n      '                    // # this is the contract address for wrapped ether https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\n' +\n      \"                    address:'0x60781C2586D68229fde47564546784ab3fACA982'\\n\" +\n      '                },\\n' +\n      \"                assets: \\\"new Map([['erc20', { file: './abis/erc20.abi.json' }]])\\\",\\n\" +\n      '                mapping: {\\n' +\n      '                    file: \"./dist/index.js\",\\n' +\n      '                    handlers: [\\n' +\n      '                        {\\n' +\n      \"                            kind: 'EthereumHandlerKind.Call',\\n\" +\n      '                            handler: \"handleTransaction\",\\n' +\n      '                            filter: {\\n' +\n      '                                function: \"approve(address,uint256)\",\\n' +\n      '                            },\\n' +\n      '                        },\\n' +\n      '                        {\\n' +\n      \"                            kind: 'EthereumHandlerKind.Event',\\n\" +\n      '                            handler: \"handleLog\",\\n' +\n      '                            filter: {\\n' +\n      '                                topics: [\"Transfer(address,address,uint256)\"],\\n' +\n      '                            },\\n' +\n      '                        },\\n' +\n      '                    ],\\n' +\n      '                },\\n' +\n      '            },\\n' +\n      '{\\n' +\n      \"                kind: 'EthereumDatasourceKind.Runtime',\\n\" +\n      '                startBlock: 4719568,\\n' +\n      '    \\n' +\n      '                options: {\\n' +\n      '                    // Must be a key of assets\\n' +\n      \"                    abi:'erc20',\\n\" +\n      '                    // # this is the contract address for wrapped ether https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\n' +\n      \"                    address:'0x60781C2586D68229fde47564546784ab3fACA982'\\n\" +\n      '                },\\n' +\n      \"                assets: \\\"new Map([['erc20', { file: './abis/erc20.abi.json' }]])\\\",\\n\" +\n      '                mapping: {\\n' +\n      '                    file: \"./dist/index.js\",\\n' +\n      '                    handlers: [\\n' +\n      '                        {\\n' +\n      \"                            kind: 'EthereumHandlerKind.Call',\\n\" +\n      '                            handler: \"handleTransaction\",\\n' +\n      '                            filter: {\\n' +\n      '                                function: \"approve(address,uint256)\",\\n' +\n      '                            },\\n' +\n      '                        },\\n' +\n      '                        {\\n' +\n      \"                            kind: 'EthereumHandlerKind.Event',\\n\" +\n      '                            handler: \"handleLog\",\\n' +\n      '                            filter: {\\n' +\n      '                                topics: [\"Transfer(address,address,uint256)\"],\\n' +\n      '                            },\\n' +\n      '                        },\\n' +\n      '                    ],\\n' +\n      '                },\\n' +\n      '            },\\n' +\n      '        ]';\n    expect(splitArrayString(dsArr).length).toBe(2);\n  });\n  it('Correct constructedDataSourcesTs', () => {\n    const mockUserInput: UserInput = {\n      startBlock: 1,\n      functions: mockConstructedFunctions,\n      events: mockConstructedEvents,\n      abiPath: './abis/erc721.json',\n      address: 'aaa',\n    };\n    expect(constructDatasourcesTs(mockUserInput, process.cwd())).toStrictEqual(\n      `{\n    kind: EthereumDatasourceKind.Runtime,\n    startBlock: 1,\n    options: {\n      abi: 'Erc721',\n      address: 'aaa',\n    },\n    assets: new Map([['Erc721', {file: './abis/erc721.json'}]]),\n    mapping: {\n      file: './dist/index.js',\n      handlers: [\n  {\n    handler: \"handleTransferFromErc721Tx\",\n    kind: EthereumHandlerKind.Call,\n    filter: {\n      function: \"transferFrom(address,address,uint256)\"\n    }\n  },\n  {\n    handler: \"handleApprovalErc721Log\",\n    kind: EthereumHandlerKind.Event,\n    filter: {\n      topics: [\n        \"Approval(address,address,uint256)\"\n      ]\n    }\n  }\n]\n    }\n  }`\n    );\n  });\n  it('Construct correct ds for yaml', () => {\n    const mockUserInput: UserInput = {\n      startBlock: 1,\n      functions: mockConstructedFunctions,\n      events: mockConstructedEvents,\n      abiPath: './abis/erc721.json',\n      address: 'aaa',\n    };\n    expect(constructDatasourcesYaml(mockUserInput, process.cwd())).toStrictEqual({\n      kind: EthereumDatasourceKind.Runtime,\n      startBlock: 1,\n      options: {\n        abi: 'Erc721',\n        address: 'aaa',\n      },\n      assets: new Map([['Erc721', {file: './abis/erc721.json'}]]),\n      mapping: {\n        file: './dist/index.js',\n        handlers: [\n          {\n            handler: 'handleTransferFromErc721Tx',\n            kind: EthereumHandlerKind.Call,\n            filter: {\n              function: 'transferFrom(address,address,uint256)',\n            },\n          },\n          {\n            handler: 'handleApprovalErc721Log',\n            kind: EthereumHandlerKind.Event,\n            filter: {\n              topics: ['Approval(address,address,uint256)'],\n            },\n          },\n        ],\n      },\n    });\n  });\n  it('tsExtractor should extract existing events and functions from ts-manifest', () => {\n    // TODO: extractor fails when encountering comments\n    expect(tsExtractor(mockDsStr, '0x60781C2586D68229fde47564546784ab3fACA982'.toLowerCase())).toStrictEqual({\n      existingEvents: ['Transfer(address,address,uint256)'],\n      existingFunctions: ['approve(address,uint256)'],\n    });\n    expect(tsExtractor(mockDsStr, 'zzz'.toLowerCase())).toStrictEqual({\n      existingEvents: [],\n      existingFunctions: [],\n    });\n  });\n  it('findArray indices', async () => {\n    // locate dataSources\n    const projectPath = path.join(__dirname, '../../test/ts-manifest', DEFAULT_TS_MANIFEST);\n    const m = await fs.promises.readFile(projectPath, 'utf8');\n    expect(findMatchingIndices(m, '[', ']', m.indexOf(`dataSources: `))).toStrictEqual([[1293, 2720]]);\n\n    // locate handlers in DS\n    expect(findMatchingIndices(mockDsStr, '[', ']', mockDsStr.indexOf('handlers: '))).toStrictEqual([[630, 1278]]);\n  });\n  // TODO failing test due to unable to process comments\n  it.skip('extract from TS manifest', async () => {\n    const projectPath = path.join(__dirname, '../../test/ts-manifest', DEFAULT_TS_MANIFEST);\n    const m = await fs.promises.readFile(projectPath, 'utf8');\n    const v = extractFromTs(m, {\n      dataSources: undefined,\n      handlers: undefined,\n      function: FUNCTION_REG,\n      topics: TOPICS_REG,\n      endpoint: ENDPOINT_REG,\n    });\n    expect(v.dataSources).toMatch(\n      '[\\n' +\n        '    {\\n' +\n        '      kind: EthereumDatasourceKind.Runtime,\\n' +\n        '      startBlock: 4719568,\\n' +\n        '\\n' +\n        '      options: {\\n' +\n        '        // Must be a key of assets\\n' +\n        \"        abi: 'erc20',\\n\" +\n        '        // # this is the contract address for wrapped ether https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\n' +\n        \"        address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\\n\" +\n        '      },\\n' +\n        \"      assets: new Map([['erc20', {file: './abis/erc20.abi.json'}]]),\\n\" +\n        '      mapping: {\\n' +\n        \"        file: './dist/index.js',\\n\" +\n        '        handlers: [\\n' +\n        '          {\\n' +\n        '            kind: EthereumHandlerKind.Call,\\n' +\n        \"            handler: 'handleTransaction',\\n\" +\n        '            filter: {\\n' +\n        '              /**\\n' +\n        '               * The function can either be the function fragment or signature\\n' +\n        \"               * function: '0x095ea7b3'\\n\" +\n        \"               * function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000'\\n\" +\n        '               */\\n' +\n        \"              function: 'approve(address spender, uint256 rawAmount)',\\n\" +\n        '            },\\n' +\n        '          },\\n' +\n        '          {\\n' +\n        '            kind: EthereumHandlerKind.Event,\\n' +\n        \"            handler: 'handleLog',\\n\" +\n        '            filter: {\\n' +\n        '              /**\\n' +\n        '               * Follows standard log filters https://docs.ethers.io/v5/concepts/events/\\n' +\n        '               * address: \"0x60781C2586D68229fde47564546784ab3fACA982\"\\n' +\n        '               */\\n' +\n        \"              topics: ['Transfer(address indexed from, address indexed to, uint256 amount)'],\\n\" +\n        '            },\\n' +\n        '          },\\n' +\n        '        ],\\n' +\n        '      },\\n' +\n        '    },\\n' +\n        '  ]'\n    );\n\n    expect(v.handlers).toMatch(\n      '[\\n' +\n        '          {\\n' +\n        '            kind: EthereumHandlerKind.Call,\\n' +\n        \"            handler: 'handleTransaction',\\n\" +\n        '            filter: {\\n' +\n        '              /**\\n' +\n        '               * The function can either be the function fragment or signature\\n' +\n        \"               * function: '0x095ea7b3'\\n\" +\n        \"               * function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000'\\n\" +\n        '               */\\n' +\n        \"              function: 'approve(address spender, uint256 rawAmount)',\\n\" +\n        '            },\\n' +\n        '          },\\n' +\n        '          {\\n' +\n        '            kind: EthereumHandlerKind.Event,\\n' +\n        \"            handler: 'handleLog',\\n\" +\n        '            filter: {\\n' +\n        '              /**\\n' +\n        '               * Follows standard log filters https://docs.ethers.io/v5/concepts/events/\\n' +\n        '               * address: \"0x60781C2586D68229fde47564546784ab3fACA982\"\\n' +\n        '               */\\n' +\n        \"              topics: ['Transfer(address indexed from, address indexed to, uint256 amount)'],\\n\" +\n        '            },\\n' +\n        '          },\\n' +\n        '        ]'\n    );\n    // TODO expected to fail, due to unable to skip comments\n    expect(v.function).toMatch('approve(address spender, uint256 rawAmount)');\n    expect(v.topics?.[0]).toMatch('Transfer(address indexed from, address indexed to, uint256 amount)');\n    expect(v.endpoint?.[0]).toMatch('https://eth.api.onfinality.io/public');\n  });\n  // });\n  // All these test should test against mockData as well as\n  it('Should replace value in tsManifetst', async () => {\n    const projectPath = path.join(__dirname, '../../test/ts-manifest', DEFAULT_TS_MANIFEST);\n    const m = await fs.promises.readFile(projectPath, 'utf8');\n    const v = replaceArrayValueInTsManifest(m, 'dataSources', '[{},{}]');\n    const r = extractArrayValueFromTsManifest(v, 'dataSources');\n    expect(r).toStrictEqual('[{},{}]');\n  });\n  it('Correct output on tsStringify', () => {\n    const mockDs = mockDsFn();\n    const v = tsStringify(mockDs[0].mapping.handlers);\n    expect(v).toBe(`[\n  {\n    handler: \"handleTransaction\",\n    kind: \"ethereum/TransactionHandler\",\n    filter: {\n      function: \"approve(address,uint256)\"\n    }\n  },\n  {\n    handler: \"handleLog\",\n    kind: \"ethereum/LogHandler\",\n    filter: {\n      topics: [\n        \"Transfer(address,address,uint256)\"\n      ]\n    }\n  }\n]`);\n  });\n  it('Split array', () => {\n    expect(splitArrayString(\"[{key: 'value1'},{key: 'value2'}]\")).toStrictEqual([\"{key: 'value1'}\", \"{key: 'value2'}\"]);\n    // trim spacing\n    expect(splitArrayString(\"[{key: 'value1'},{key: 'value2'},  {key:      'value3'}]\")).toStrictEqual([\n      \"{key: 'value1'}\",\n      \"{key: 'value2'}\",\n      \"{key: 'value3'}\",\n    ]);\n\n    // nested objects\n    expect(splitArrayString(`[ \"{key: {key: 'value1'}}\", \"{key: {key: 'value1'}}\"]`)).toStrictEqual([\n      \"{key: {key: 'value1'}}\",\n      \"{key: {key: 'value1'}}\",\n    ]);\n    // nested arrarys and objects\n    expect(\n      splitArrayString(\n        `[ \"{key: {key: ['value1']}}\", \"{key: {key: 'value1'}}\",  \"{key: [{key: 'value1'}, {key: 'value1'}]}\"]`\n      )\n    ).toStrictEqual([\n      \"{key: {key: ['value1']}}\",\n      \"{key: {key: 'value1'}}\",\n      \"{key: [{key: 'value1'}, {key: 'value1'}]}\",\n    ]);\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/generate-controller.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {EventFragment, FunctionFragment} from '@ethersproject/abi';\nimport {DEFAULT_TS_MANIFEST, loadFromJsonOrYaml, NETWORK_FAMILY} from '@subql/common';\nimport {getAbiInterface} from '@subql/common-ethereum';\nimport {SubqlRuntimeDatasource as EthereumDs} from '@subql/types-ethereum';\nimport {rimraf} from 'rimraf';\nimport {Document, stringify} from 'yaml';\nimport {makeCLIPrompt} from '../adapters/utils';\nimport ImportAbi from '../commands/codegen/import-abi';\nimport {loadDependency} from '../modulars';\nimport {\n  constructMethod,\n  filterExistingMethods,\n  filterObjectsByStateMutability,\n  generateHandlerName,\n  generateHandlers,\n  generateManifestTs,\n  generateManifestYaml,\n  getManifestData,\n  prepareAbiDirectory,\n  prepareInputFragments,\n  yamlExtractor,\n  SelectedMethod,\n  UserInput,\n} from './generate-controller';\n\nconst ROOT_MAPPING_DIR = 'src/mappings';\nconst PROJECT_PATH = path.join(__dirname, '../../test/schemaTest');\nconst MANIFEST_PATH = './generate-project.yaml';\n\nconst mockConstructedFunctions: SelectedMethod[] = [\n  {\n    name: 'transferFrom',\n    method: 'transferFrom(address,address,uint256)',\n  },\n];\n\nconst mockConstructedEvents: SelectedMethod[] = [\n  {\n    name: 'Approval',\n    method: 'Approval(address,address,uint256)',\n  },\n];\n\nconst originalManifestData = {\n  specVersion: '1.0.0',\n  name: 'generate-test',\n  version: '0.0.1',\n  runner: {\n    node: {\n      name: '@subql/node-ethereum',\n      version: '*',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n  schema: {\n    file: './schema.graphql',\n  },\n  network: {\n    chainId: '1',\n    endpoint: ['https://eth.api.onfinality.io/public'],\n    dictionary: 'https://gx.api.subquery.network/sq/subquery/eth-dictionary',\n  },\n  dataSources: [\n    {\n      kind: 'ethereum/Runtime',\n      startBlock: 4719568,\n      options: {\n        abi: 'erc721',\n        address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n      },\n      assets: {\n        erc721: {\n          file: './erc721.json',\n        },\n      },\n      mapping: {\n        file: './dist/index.js',\n        handlers: [\n          {\n            handler: 'handleTransaction',\n            kind: 'ethereum/TransactionHandler',\n            filter: {\n              function: 'approve(address spender, uint256 rawAmount)',\n            },\n          },\n          {\n            handler: 'handleLog',\n            kind: 'ethereum/LogHandler',\n            filter: {\n              topics: ['Transfer(address indexed from, address indexed to, uint256 amount)'],\n            },\n          },\n        ],\n      },\n    },\n  ],\n};\n\nconst originalManifestData2 = {\n  specVersion: '1.0.0',\n  name: 'generate-test',\n  version: '0.0.1',\n  runner: {\n    node: {\n      name: '@subql/node-ethereum',\n      version: '*',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n  schema: {\n    file: './schema.graphql',\n  },\n  network: {\n    chainId: '1',\n    endpoint: ['https://eth.api.onfinality.io/public'],\n    dictionary: 'https://gx.api.subquery.network/sq/subquery/eth-dictionary',\n  },\n  dataSources: [\n    {\n      kind: 'ethereum/Runtime',\n      startBlock: 4719568,\n      options: {\n        abi: 'erc721',\n        address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n      },\n      assets: {\n        erc721: {\n          file: './erc721.json',\n        },\n      },\n      mapping: {\n        file: './dist/index.js',\n        handlers: [\n          {\n            handler: 'handleTransaction',\n            kind: 'ethereum/TransactionHandler',\n            filter: {\n              function: 'approve(address,uint256)',\n            },\n          },\n          {\n            handler: 'handleLog',\n            kind: 'ethereum/LogHandler',\n            filter: {\n              topics: ['Transfer(address,address,uint256)'],\n            },\n          },\n        ],\n      },\n    },\n  ],\n};\n\nconst ethModule = loadDependency(NETWORK_FAMILY.ethereum, process.cwd());\nconst abiName = ethModule.parseContractPath('./erc721.json').name;\n\nconst mockUserInput: UserInput = {\n  startBlock: 1,\n  functions: mockConstructedFunctions,\n  events: mockConstructedEvents,\n  abiPath: './abis/erc721.json',\n  address: 'aaa',\n};\n\njest.setTimeout(30000);\n\ndescribe('CLI codegen:generate, Can write to file', () => {\n  afterEach(async () => {\n    await Promise.all([\n      rimraf(path.join(__dirname, '../../test/schemaTest/src')),\n      rimraf(path.join(__dirname, '../../test/schemaTest/abis/abis.json')),\n      rimraf(path.join(__dirname, '../../test/ts-manifest/mock-project.ts')),\n      fs.promises.writeFile(path.join(PROJECT_PATH, MANIFEST_PATH), stringify(originalManifestData), {\n        encoding: 'utf8',\n        flag: 'w',\n      }),\n    ]);\n\n    const doc = new Document(originalManifestData2);\n    const ds = (doc.get('dataSources') as any).items[0];\n    ds.commentBefore = 'datasource comment';\n    ds.get('mapping').get('handlers').comment = 'handler comment';\n    await fs.promises.writeFile(path.join(PROJECT_PATH, './generate-project-2.yaml'), stringify(doc), {\n      encoding: 'utf8',\n      flag: 'w',\n    });\n  });\n  it('generateManifest from ts-manifest', async () => {\n    const pPath = path.join(__dirname, '../../test/ts-manifest');\n    const filePath = path.join(pPath, 'mock-project.ts');\n    const tsManifest = await fs.promises.readFile(path.join(pPath, DEFAULT_TS_MANIFEST), 'utf8');\n    const mockInput: UserInput = {\n      startBlock: 1,\n      functions: mockConstructedFunctions,\n      events: mockConstructedEvents,\n      abiPath: './abis/erc721.json',\n      address: 'aaa',\n    };\n    await generateManifestTs(path.join(pPath, './mock-project.ts'), mockInput, tsManifest);\n    const newManifest = await fs.promises.readFile(filePath, 'utf8');\n    expect(newManifest).toBe(\n      '// @ts-nocheck\\n' +\n        \"import {EthereumProject, EthereumDatasourceKind, EthereumHandlerKind} from '@subql/types-ethereum';\\n\" +\n        '\\n' +\n        '// Can expand the Datasource processor types via the generic param\\n' +\n        'const project: EthereumProject = {\\n' +\n        \"  specVersion: '1.0.0',\\n\" +\n        \"  version: '0.0.1',\\n\" +\n        \"  name: 'ethereum-subql-starter',\\n\" +\n        \"  description: 'This project can be use as a starting point for developing your new Ethereum SubQuery project',\\n\" +\n        '  runner: {\\n' +\n        '    node: {\\n' +\n        \"      name: '@subql/node-ethereum',\\n\" +\n        \"      version: '>=3.0.0',\\n\" +\n        '    },\\n' +\n        '    query: {\\n' +\n        \"      name: '@subql/query',\\n\" +\n        \"      version: '*',\\n\" +\n        '    },\\n' +\n        '  },\\n' +\n        '  schema: {\\n' +\n        \"    file: './schema.graphql',\\n\" +\n        '  },\\n' +\n        '  network: {\\n' +\n        '    /**\\n' +\n        '     * chainId is the EVM Chain ID, for Ethereum this is 1\\n' +\n        '     * https://chainlist.org/chain/1\\n' +\n        '     */\\n' +\n        \"    chainId: '1',\\n\" +\n        '    /**\\n' +\n        '     * This endpoint must be a public non-pruned archive node\\n' +\n        '     * Public nodes may be rate limited, which can affect indexing speed\\n' +\n        '     * When developing your project we suggest getting a private API key\\n' +\n        '     * You can get them from OnFinality for free https://app.onfinality.io\\n' +\n        '     * https://documentation.onfinality.io/support/the-enhanced-api-service\\n' +\n        '     */\\n' +\n        \"    endpoint: ['https://eth.api.onfinality.io/public'],\\n\" +\n        \"    dictionary: 'https://gx.api.subquery.network/sq/subquery/eth-dictionary',\\n\" +\n        '  },\\n' +\n        '  dataSources: [{\\n' +\n        '    kind: EthereumDatasourceKind.Runtime,\\n' +\n        '    startBlock: 1,\\n' +\n        '    options: {\\n' +\n        \"      abi: 'Erc721',\\n\" +\n        \"      address: 'aaa',\\n\" +\n        '    },\\n' +\n        \"    assets: new Map([['Erc721', {file: './abis/erc721.json'}]]),\\n\" +\n        '    mapping: {\\n' +\n        \"      file: './dist/index.js',\\n\" +\n        '      handlers: [\\n' +\n        '  {\\n' +\n        '    handler: \"handleTransferFromErc721Tx\",\\n' +\n        '    kind: EthereumHandlerKind.Call,\\n' +\n        '    filter: {\\n' +\n        '      function: \"transferFrom(address,address,uint256)\"\\n' +\n        '    }\\n' +\n        '  },\\n' +\n        '  {\\n' +\n        '    handler: \"handleApprovalErc721Log\",\\n' +\n        '    kind: EthereumHandlerKind.Event,\\n' +\n        '    filter: {\\n' +\n        '      topics: [\\n' +\n        '        \"Approval(address,address,uint256)\"\\n' +\n        '      ]\\n' +\n        '    }\\n' +\n        '  }\\n' +\n        ']\\n' +\n        '    }\\n' +\n        '  },\\n' +\n        '    {\\n' +\n        '      kind: EthereumDatasourceKind.Runtime,\\n' +\n        '      startBlock: 4719568,\\n' +\n        '\\n' +\n        '      options: {\\n' +\n        '        // Must be a key of assets\\n' +\n        \"        abi: 'erc20',\\n\" +\n        '        // # this is the contract address for wrapped ether https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\n' +\n        \"        address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\\n\" +\n        '      },\\n' +\n        \"      assets: new Map([['erc20', {file: './abis/erc20.abi.json'}]]),\\n\" +\n        '      mapping: {\\n' +\n        \"        file: './dist/index.js',\\n\" +\n        '        handlers: [\\n' +\n        '          {\\n' +\n        '            kind: EthereumHandlerKind.Call,\\n' +\n        \"            handler: 'handleTransaction',\\n\" +\n        '            filter: {\\n' +\n        '              /**\\n' +\n        '               * The function can either be the function fragment or signature\\n' +\n        \"               * function: '0x095ea7b3'\\n\" +\n        \"               * function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000'\\n\" +\n        '               */\\n' +\n        \"              function: 'approve(address spender, uint256 rawAmount)',\\n\" +\n        '            },\\n' +\n        '          },\\n' +\n        '          {\\n' +\n        '            kind: EthereumHandlerKind.Event,\\n' +\n        \"            handler: 'handleLog',\\n\" +\n        '            filter: {\\n' +\n        '              /**\\n' +\n        '               * Follows standard log filters https://docs.ethers.io/v5/concepts/events/\\n' +\n        '               * address: \"0x60781C2586D68229fde47564546784ab3fACA982\"\\n' +\n        '               */\\n' +\n        \"              topics: ['Transfer(address indexed from, address indexed to, uint256 amount)'],\\n\" +\n        '            },\\n' +\n        '          },\\n' +\n        '        ],\\n' +\n        '      },\\n' +\n        '    },\\n' +\n        '  ],\\n' +\n        \"  repository: 'https://github.com/subquery/ethereum-subql-starter',\\n\" +\n        '};\\n' +\n        '\\n' +\n        'export default project;\\n'\n    );\n  });\n  it('Can generate manifest', async () => {\n    const existingManifestData = await getManifestData(path.join(PROJECT_PATH, MANIFEST_PATH));\n    await generateManifestYaml(path.join(PROJECT_PATH, MANIFEST_PATH), mockUserInput, existingManifestData);\n    const updatedManifestDs = (loadFromJsonOrYaml(path.join(PROJECT_PATH, MANIFEST_PATH)) as any).dataSources;\n\n    expect(updatedManifestDs[1]).toStrictEqual({\n      kind: 'ethereum/Runtime',\n      startBlock: mockUserInput.startBlock,\n      options: {\n        abi: 'Erc721',\n        address: mockUserInput.address,\n      },\n      assets: {\n        Erc721: {\n          file: mockUserInput.abiPath,\n        },\n      },\n      mapping: {\n        file: './dist/index.js',\n        handlers: [\n          {\n            filter: {\n              function: mockUserInput.functions[0].method,\n            },\n            handler: `${generateHandlerName(mockUserInput.functions[0].name, abiName, 'tx')}`,\n            kind: 'ethereum/TransactionHandler',\n          },\n          {\n            filter: {\n              topics: [mockUserInput.events[0].method],\n            },\n            handler: `${generateHandlerName(mockUserInput.events[0].name, abiName, 'log')}`,\n            kind: 'ethereum/LogHandler',\n          },\n        ],\n      },\n    });\n  });\n  it('if handler filter already exist with matching address, should not add', async () => {\n    const existingManifestData = await getManifestData(path.join(PROJECT_PATH, './generate-project-2.yaml'));\n    const abiInterface = getAbiInterface(PROJECT_PATH, './erc721.json');\n    const existingDs = (existingManifestData.get('dataSources') as any).toJSON() as EthereumDs[];\n\n    const rawEventFragments = abiInterface.events;\n    const rawFunctionFragments = filterObjectsByStateMutability(abiInterface.functions);\n\n    const selectedEvents = await prepareInputFragments(\n      'event',\n      'approval, transfer',\n      rawEventFragments,\n      abiName,\n      makeCLIPrompt()\n    );\n    const selectedFunctions = await prepareInputFragments(\n      'function',\n      'approve, transferFrom',\n      rawFunctionFragments,\n      abiName,\n      makeCLIPrompt()\n    );\n\n    const [eventFrags, functionFrags] = filterExistingMethods(\n      selectedEvents,\n      selectedFunctions,\n      existingDs,\n      '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n      yamlExtractor\n    );\n\n    mockUserInput.events = constructMethod<EventFragment>(eventFrags);\n    mockUserInput.functions = constructMethod<FunctionFragment>(functionFrags);\n\n    await generateManifestYaml(\n      path.join(PROJECT_PATH, './generate-project-2.yaml'),\n      mockUserInput,\n      existingManifestData\n    );\n\n    const updatedManifestDs = (loadFromJsonOrYaml(path.join(PROJECT_PATH, './generate-project-2.yaml')) as any)\n      .dataSources;\n\n    const handlers = updatedManifestDs.map((e: any) => {\n      return e.mapping.handlers;\n    });\n    expect(handlers[1]).toStrictEqual([\n      {\n        handler: 'handleTransferFromErc721Tx',\n        kind: 'ethereum/TransactionHandler',\n        filter: {\n          function: 'transferFrom(address,address,uint256)',\n        },\n      },\n      {\n        handler: 'handleApprovalErc721Log',\n        kind: 'ethereum/LogHandler',\n        filter: {\n          topics: ['Approval(address,address,uint256)'],\n        },\n      },\n    ]);\n  });\n  it('should preserve any comments in existing datasources', async () => {\n    await fs.promises.mkdir(path.join(PROJECT_PATH, 'src/'));\n    await fs.promises.mkdir(path.join(PROJECT_PATH, ROOT_MAPPING_DIR));\n    await fs.promises.writeFile(path.join(PROJECT_PATH, 'src/index.ts'), 'export * from \"./mappings/mappingHandlers\"');\n\n    await ImportAbi.run([\n      path.join(PROJECT_PATH, './generate-project-2.yaml'),\n      '--events',\n      'approval, transfer',\n      '--functions',\n      'transferFrom, approve',\n      '--abiPath',\n      './erc721.json',\n      '--startBlock',\n      '1',\n    ]);\n\n    const manifest = await getManifestData(path.join(PROJECT_PATH, './generate-project-2.yaml'));\n    const ds = manifest.get('dataSources') as any;\n    expect(ds.commentBefore).toBe('datasource comment');\n    expect(ds.items[0].get('mapping').get('handlers').comment).toBe('handler comment');\n  });\n\n  it('should throw, if handler file exists', async () => {\n    await fs.promises.mkdir(path.join(PROJECT_PATH, 'src/'));\n    await fs.promises.mkdir(path.join(PROJECT_PATH, ROOT_MAPPING_DIR));\n    await fs.promises.writeFile(path.join(PROJECT_PATH, 'src/mappings/Erc721Handlers.ts'), 'zzzzzz');\n\n    await expect(\n      ImportAbi.run([\n        path.join(PROJECT_PATH, './generate-project-2.yaml'),\n        '--events',\n        'approval, transfer',\n        '--functions',\n        'transferFrom, approve',\n        '--abiPath',\n        './erc721.json',\n        '--startBlock',\n        '1',\n      ])\n    ).rejects.toThrow('file: Erc721Handlers.ts already exists');\n  });\n  it('Can generate mapping handlers', async () => {\n    // Prepare directory\n    await fs.promises.mkdir(path.join(PROJECT_PATH, 'src/'));\n    await fs.promises.mkdir(path.join(PROJECT_PATH, ROOT_MAPPING_DIR));\n    await fs.promises.writeFile(path.join(PROJECT_PATH, 'src/index.ts'), 'export * from \"./mappings/mappingHandlers\"');\n\n    // should not overwrite existing data in index.ts\n    await generateHandlers([mockConstructedEvents, mockConstructedFunctions], PROJECT_PATH, abiName);\n    const expectedFnHandler = `${generateHandlerName(mockUserInput.functions[0].name, abiName, 'tx')}`;\n    const expectedEventHandler = `${generateHandlerName(mockUserInput.events[0].name, abiName, 'log')}`;\n\n    const codegenResult = await fs.promises.readFile(\n      path.join(PROJECT_PATH, ROOT_MAPPING_DIR, `${abiName}Handlers.ts`)\n    );\n    const importFile = await fs.promises.readFile(path.join(PROJECT_PATH, '/src', 'index.ts'));\n\n    const expectImportFile =\n      '' +\n      `export * from \"./mappings/mappingHandlers\"\nexport * from \"./mappings/Erc721Handlers\"`;\n\n    const expectedGeneratedCode =\n      '' +\n      `// SPDX-License-Identifier: Apache-2.0\n\n// Auto-generated\n\nimport {TransferFromTransaction,ApprovalLog,} from \"../types/abi-interfaces/Erc721\";\n\n\nexport async function ${expectedFnHandler}(tx: TransferFromTransaction ): Promise<void> {\n// Place your code logic here\n}\n\nexport async function ${expectedEventHandler}(log: ApprovalLog ): Promise<void> {\n// Place your code logic here\n}\n`;\n    expect(importFile.toString()).toBe(expectImportFile);\n    expect(codegenResult.toString()).toBe(expectedGeneratedCode);\n  });\n  it('Throws if invalid abiPath is given', async () => {\n    await expect(prepareAbiDirectory('asd/asd.json', PROJECT_PATH)).rejects.toThrow(\n      'Unable to find abi at: asd/asd.json'\n    );\n  });\n  it('Should be able to parse relative path on abiPath', async () => {\n    const abiPath_relative = './packages/cli/test/abiTest1/abis/abis.json';\n    await prepareAbiDirectory(abiPath_relative, PROJECT_PATH);\n\n    expect(fs.existsSync(path.join(PROJECT_PATH, 'abis/abis.json'))).toBeTruthy();\n  });\n  it('Should be able to parse absolute path on abiPath', async () => {\n    const abiPath_absolute = path.join(__dirname, '../../test/abiTest1/abis/abis.json');\n    await prepareAbiDirectory(abiPath_absolute, PROJECT_PATH);\n\n    expect(fs.existsSync(path.join(PROJECT_PATH, 'abis/abis.json'))).toBeTruthy();\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/generate-controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport type {ConstructorFragment, EventFragment, Fragment, FunctionFragment} from '@ethersproject/abi';\nimport {NETWORK_FAMILY} from '@subql/common';\nimport type {\n  EthereumDatasourceKind,\n  EthereumHandlerKind,\n  EthereumLogFilter,\n  EthereumTransactionFilter,\n  SubqlRuntimeDatasource as EthereumDs,\n  SubqlRuntimeHandler,\n} from '@subql/types-ethereum';\nimport {difference, pickBy, upperFirst} from 'lodash';\nimport {Document, parseDocument, YAMLSeq} from 'yaml';\nimport {Prompt} from '../adapters/utils';\nimport {ADDRESS_REG, FUNCTION_REG, TOPICS_REG} from '../constants';\nimport {loadDependency} from '../modulars';\nimport {\n  extractFromTs,\n  renderTemplate,\n  replaceArrayValueInTsManifest,\n  resolveToAbsolutePath,\n  splitArrayString,\n} from '../utils';\n\nexport interface SelectedMethod {\n  name: string;\n  method: string;\n}\nexport interface UserInput {\n  startBlock: number;\n  functions: SelectedMethod[];\n  events: SelectedMethod[];\n  abiPath: string;\n  address?: string;\n}\n\ninterface HandlerPropType {\n  name: string;\n  argName: string;\n  argType: string;\n}\n\ninterface AbiPropType {\n  name: string;\n  handlers: HandlerPropType[];\n}\n\nconst SCAFFOLD_HANDLER_TEMPLATE_PATH = path.resolve(__dirname, '../template/scaffold-handlers.ts.ejs');\nexport const ROOT_MAPPING_DIR = 'src/mappings';\nexport const DEFAULT_HANDLER_BUILD_PATH = './dist/index.js';\nexport const DEFAULT_ABI_DIR = '/abis';\n\nexport function removeKeyword(inputString: string): string {\n  return inputString.replace(/^(event|function) /, '');\n}\n\n/**\n * Copies the provided ABI file to the default ABI directory in the project root.\n */\nexport async function prepareAbiDirectory(abiPath: string, rootPath: string): Promise<void> {\n  const abiDirPath = path.join(rootPath, DEFAULT_ABI_DIR);\n\n  if (!fs.existsSync(abiDirPath)) {\n    await fs.promises.mkdir(abiDirPath, {recursive: true});\n  }\n\n  if (fs.existsSync(path.join(abiDirPath, abiPath))) {\n    return;\n  }\n\n  // Ensure abiPath is an absolute path\n  const ensuredAbiPath = resolveToAbsolutePath(abiPath);\n\n  try {\n    await fs.promises.copyFile(ensuredAbiPath, path.join(abiDirPath, path.basename(ensuredAbiPath)));\n  } catch (e: any) {\n    if (e.code === 'ENOENT') {\n      throw new Error(`Unable to find abi at: ${abiPath}`);\n    }\n    throw new Error(`Unable to copy abi file: ${e.message}`);\n  }\n}\n\n/**\n * Saves the provided ABI to a file in the default ABI directory.\n * @param abi - The ABI to save.\n * @param addressOrName - The name or address to use as the filename.\n * @param rootPath - The root path of the project.\n * @returns The path to the saved ABI file.\n */\nexport async function saveAbiToFile(abi: unknown, addressOrName: string, rootPath: string): Promise<string> {\n  const abiDirPath = path.join(rootPath, DEFAULT_ABI_DIR);\n  const filePath = path.join(abiDirPath, `${addressOrName}.abi.json`);\n\n  await fs.promises.writeFile(filePath, JSON.stringify(abi, null, 2));\n\n  return filePath;\n}\n\nexport function prepareUserInput<T>(\n  selectedEvents: Record<string, EventFragment>,\n  selectedFunctions: Record<string, FunctionFragment>,\n  existingDs: T,\n  address: string | undefined,\n  startBlock: number,\n  abiFileName: string,\n  extractor: ManifestExtractor<T>\n): UserInput {\n  const [cleanEvents, cleanFunctions] = filterExistingMethods(\n    selectedEvents,\n    selectedFunctions,\n    existingDs,\n    address,\n    extractor\n  );\n\n  const constructedEvents = constructMethod<EventFragment>(cleanEvents);\n  const constructedFunctions = constructMethod<FunctionFragment>(cleanFunctions);\n\n  return {\n    startBlock: startBlock,\n    functions: constructedFunctions,\n    events: constructedEvents,\n    abiPath: `./abis/${abiFileName}`,\n    address: address,\n  };\n}\n\nexport function constructMethod<T extends ConstructorFragment | Fragment>(\n  cleanedFragment: Record<string, T>\n): SelectedMethod[] {\n  return Object.keys(cleanedFragment).map((f) => {\n    return {\n      name: cleanedFragment[f].name,\n      method: f,\n    };\n  });\n}\n\nexport function filterObjectsByStateMutability(\n  obj: Record<string, FunctionFragment>\n): Record<string, FunctionFragment> {\n  return pickBy(obj, (e) => e.stateMutability !== 'view');\n}\n\nexport function getFragmentFormats<T extends ConstructorFragment | Fragment>(fragment: T): {full: string; min: string} {\n  return {\n    full: removeKeyword(fragment.format('full')),\n    min: removeKeyword(fragment.format('minimal')),\n  };\n}\n\nexport function generateHandlerName(name: string, abiName: string, type: 'tx' | 'log'): string {\n  return `handle${upperFirst(name)}${upperFirst(abiName)}${upperFirst(type)}`;\n}\n\nfunction generateFormattedHandlers(\n  userInput: UserInput,\n  abiName: string,\n  kindModifier: (kind: string) => EthereumHandlerKind | string\n): SubqlRuntimeHandler[] {\n  const formattedHandlers: SubqlRuntimeHandler[] = [];\n\n  userInput.functions.forEach((fn) => {\n    const handler: SubqlRuntimeHandler = {\n      handler: generateHandlerName(fn.name, abiName, 'tx'),\n      kind: kindModifier('EthereumHandlerKind.Call') as any, // union type\n      filter: {\n        function: fn.method,\n      },\n    };\n    formattedHandlers.push(handler);\n  });\n\n  userInput.events.forEach((event) => {\n    const handler: SubqlRuntimeHandler = {\n      handler: generateHandlerName(event.name, abiName, 'log'),\n      kind: kindModifier('EthereumHandlerKind.Event') as any, // Should be union type\n      filter: {\n        topics: [event.method],\n      },\n    };\n    formattedHandlers.push(handler);\n  });\n\n  return formattedHandlers;\n}\n\nexport function constructDatasourcesTs(userInput: UserInput, projectPath: string): string {\n  const ethModule = loadDependency(NETWORK_FAMILY.ethereum, projectPath);\n  const abiName = ethModule.parseContractPath(userInput.abiPath).name;\n  const formattedHandlers = generateFormattedHandlers(userInput, abiName, (kind) => kind);\n  const handlersString = tsStringify(formattedHandlers);\n\n  return `{\n    kind: EthereumDatasourceKind.Runtime,\n    startBlock: ${userInput.startBlock},\n    options: {\n      abi: '${abiName}',\n      ${userInput.address && `address: '${userInput.address}',`}\n    },\n    assets: new Map([['${abiName}', {file: '${userInput.abiPath}'}]]),\n    mapping: {\n      file: '${DEFAULT_HANDLER_BUILD_PATH}',\n      handlers: ${handlersString}\n    }\n  }`;\n}\n\nexport function constructDatasourcesYaml(userInput: UserInput, projectPath: string): EthereumDs {\n  const ethModule = loadDependency(NETWORK_FAMILY.ethereum, projectPath);\n  const abiName = ethModule.parseContractPath(userInput.abiPath).name;\n  const formattedHandlers = generateFormattedHandlers(userInput, abiName, (kind) => {\n    if (kind === 'EthereumHandlerKind.Call') return 'ethereum/TransactionHandler' as EthereumHandlerKind.Call;\n    return 'ethereum/LogHandler' as EthereumHandlerKind.Event;\n  });\n  const assets = new Map([[abiName, {file: userInput.abiPath}]]);\n\n  return {\n    kind: 'ethereum/Runtime' as EthereumDatasourceKind.Runtime,\n    startBlock: userInput.startBlock,\n    options: {\n      abi: abiName,\n      ...(userInput.address && {address: userInput.address}),\n    },\n    assets: assets,\n    mapping: {\n      file: DEFAULT_HANDLER_BUILD_PATH,\n      handlers: formattedHandlers,\n    },\n  };\n}\n\n// Selected fragments\nexport async function prepareInputFragments<T extends ConstructorFragment | Fragment>(\n  type: 'event' | 'function',\n  rawInput: string | undefined,\n  availableFragments: Record<string, T>,\n  abiName: string,\n  prompt: Prompt | null\n): Promise<Record<string, T>> {\n  if (!rawInput) {\n    if (!prompt) {\n      // No items selected or\n      return {};\n    }\n\n    const selected = await prompt({\n      message: `Select ${type}`,\n      type: 'string',\n      options: Object.keys(availableFragments),\n      multiple: true,\n    });\n\n    return Object.entries(availableFragments)\n      .filter(([key]) => selected.includes(key))\n      .reduce(\n        (acc, [key, value]) => {\n          acc[key as string] = value;\n          return acc;\n        },\n        {} as Record<string, T>\n      );\n  }\n\n  if (rawInput === '*') {\n    return availableFragments;\n  }\n\n  const selectedFragments: Record<string, T> = {};\n  rawInput.split(',').forEach((input) => {\n    const casedInput = input.trim().toLowerCase();\n    const matchFragment = Object.entries(availableFragments).find((entry) => {\n      const [key, value] = entry;\n      if (casedInput === availableFragments[key].name.toLowerCase()) {\n        selectedFragments[key] = availableFragments[key];\n        return value;\n      }\n    });\n\n    if (!matchFragment) {\n      throw new Error(`'${input}' is not a valid ${type} on ${abiName}`);\n    }\n  });\n\n  return selectedFragments;\n}\nfunction filterExistingFragments<T extends Fragment | ConstructorFragment>(\n  fragments: Record<string, T>,\n  existingMethods: string[]\n): Record<string, T> {\n  const cleanFragments: Record<string, T> = {};\n  for (const key in fragments) {\n    const fragmentFormats = Object.values(getFragmentFormats<T>(fragments[key])).concat(key);\n    const diff = difference(fragmentFormats, existingMethods);\n    if (diff.length === 3) {\n      diff.forEach((fragKey) => {\n        if (fragments[fragKey]) {\n          cleanFragments[fragKey] = fragments[fragKey];\n        }\n      });\n    }\n  }\n\n  return cleanFragments;\n}\n\nexport type ManifestExtractor<T> = (\n  dataSources: T,\n  casedInputAddress: string | undefined\n) => {\n  existingEvents: string[];\n  existingFunctions: string[];\n};\n\nexport function filterExistingMethods<T>(\n  eventFragments: Record<string, EventFragment>,\n  functionFragments: Record<string, FunctionFragment>,\n  dataSources: T,\n  address: string | undefined,\n  extractor: ManifestExtractor<T>\n): [Record<string, EventFragment>, Record<string, FunctionFragment>] {\n  const {existingEvents, existingFunctions} = extractor(dataSources, address && address.toLowerCase());\n\n  return [\n    filterExistingFragments<EventFragment>(eventFragments, existingEvents),\n    filterExistingFragments<FunctionFragment>(functionFragments, existingFunctions),\n  ];\n}\n\nexport const yamlExtractor: ManifestExtractor<EthereumDs[]> = (dataSources, casedInputAddress) => {\n  const existingEvents: string[] = [];\n  const existingFunctions: string[] = [];\n\n  dataSources\n    .filter((d: EthereumDs) => {\n      const dsAddress = d.options?.address?.toLowerCase();\n      return casedInputAddress ? casedInputAddress === dsAddress : !dsAddress;\n    })\n    .forEach((ds: EthereumDs) => {\n      ds.mapping.handlers.forEach((handler) => {\n        if (!handler.filter) return;\n\n        const topics = (handler.filter as EthereumLogFilter).topics?.[0];\n        const func = (handler.filter as EthereumTransactionFilter).function;\n\n        if (topics) {\n          existingEvents.push(topics);\n        }\n        if (func) {\n          existingFunctions.push(func);\n        }\n      });\n    });\n\n  return {existingEvents, existingFunctions};\n};\n\nexport const tsExtractor: ManifestExtractor<string> = (dataSources, casedInputAddress) => {\n  const existingEvents: string[] = [];\n  const existingFunctions: string[] = [];\n\n  splitArrayString(dataSources)\n    .filter((d) => {\n      const match = d.match(ADDRESS_REG);\n      return match && match.length >= 2 && match[1].toLowerCase() === casedInputAddress;\n    })\n    .forEach((d) => {\n      const extractedValue = extractFromTs(d, {handlers: undefined}) as {handlers: string};\n\n      const regResult = extractFromTs(extractedValue.handlers, {\n        topics: TOPICS_REG,\n        function: FUNCTION_REG,\n      });\n      if (regResult.topics !== null) {\n        existingEvents.push(regResult.topics[0]);\n      }\n      if (regResult.function !== null) {\n        existingFunctions.push(regResult.function as string);\n      }\n    });\n\n  return {existingEvents, existingFunctions};\n};\n\nexport async function getManifestData(manifestPath: string): Promise<Document> {\n  const existingManifest = await fs.promises.readFile(path.join(manifestPath), 'utf8');\n  return parseDocument(existingManifest);\n}\n\nexport function prependDatasources(dsStr: string, toPendStr: string): string {\n  if (dsStr.trim().startsWith('[') && dsStr.trim().endsWith(']')) {\n    // Insert the object string right after the opening '['\n    return dsStr.trim().replace('[', `[${toPendStr},`);\n  } else {\n    throw new Error('Input string is not a valid JSON array string');\n  }\n}\nexport async function generateManifestTs(\n  manifestPath: string,\n  userInput: UserInput,\n  existingManifestData: string\n): Promise<void> {\n  const inputDs = constructDatasourcesTs(userInput, manifestPath);\n\n  const extractedDs = extractFromTs(existingManifestData, {dataSources: undefined}) as {dataSources: string};\n  const v = prependDatasources(extractedDs.dataSources, inputDs);\n  const updateManifest = replaceArrayValueInTsManifest(existingManifestData, 'dataSources', v);\n\n  await fs.promises.writeFile(manifestPath, updateManifest, 'utf8');\n}\nexport async function generateManifestYaml(\n  manifestPath: string,\n  userInput: UserInput,\n  existingManifestData: Document\n): Promise<void> {\n  const inputDs = constructDatasourcesYaml(userInput, manifestPath);\n  const dsNode = existingManifestData.get('dataSources') as YAMLSeq;\n  if (!dsNode || !dsNode.items.length) {\n    // To ensure output is in yaml format\n    const cleanDs = new YAMLSeq();\n    cleanDs.add(inputDs);\n    existingManifestData.set('dataSources', cleanDs);\n  } else {\n    dsNode.add(inputDs);\n  }\n  await fs.promises.writeFile(path.join(manifestPath), existingManifestData.toString(), 'utf8');\n}\n\nexport function constructHandlerProps(methods: [SelectedMethod[], SelectedMethod[]], abiName: string): AbiPropType {\n  const handlers: HandlerPropType[] = [];\n  const [events, functions] = methods;\n\n  functions.forEach((fn) => {\n    handlers.push({\n      name: generateHandlerName(fn.name, abiName, 'tx'),\n      argName: 'tx',\n      argType: `${upperFirst(fn.name)}Transaction`,\n    });\n  });\n\n  events.forEach((event) => {\n    handlers.push({\n      name: generateHandlerName(event.name, abiName, 'log'),\n      argName: 'log',\n      argType: `${upperFirst(event.name)}Log`,\n    });\n  });\n\n  return {\n    name: abiName,\n    handlers: handlers,\n  };\n}\n\nexport async function generateHandlers(\n  selectedMethods: [SelectedMethod[], SelectedMethod[]],\n  projectPath: string,\n  abiName: string\n): Promise<void> {\n  const abiProps = constructHandlerProps(selectedMethods, abiName);\n\n  const fileName = `${abiName}Handlers`;\n  try {\n    await renderTemplate(SCAFFOLD_HANDLER_TEMPLATE_PATH, path.join(projectPath, ROOT_MAPPING_DIR, `${fileName}.ts`), {\n      props: {\n        abis: [abiProps],\n      },\n      helper: {upperFirst},\n    });\n    fs.appendFileSync(path.join(projectPath, 'src/index.ts'), `\\nexport * from \"./mappings/${fileName}\"`);\n  } catch (e: any) {\n    throw new Error(`Unable to generate handler scaffolds. ${e.message}`);\n  }\n}\n\nexport function tsStringify(\n  obj: SubqlRuntimeHandler | SubqlRuntimeHandler[] | string,\n  indent = 2,\n  currentIndent = 0\n): string {\n  if (typeof obj !== 'object' || obj === null) {\n    if (typeof obj === 'string' && obj.includes('EthereumHandlerKind')) {\n      return obj; // Return the string as-is without quotes\n    }\n    return JSON.stringify(obj);\n  }\n\n  if (Array.isArray(obj)) {\n    const items = obj.map((item) => tsStringify(item, indent, currentIndent + indent));\n    return `[\\n${items.map((item) => ' '.repeat(currentIndent + indent) + item).join(',\\n')}\\n${' '.repeat(\n      currentIndent\n    )}]`;\n  }\n\n  const entries = Object.entries(obj);\n  const result = entries.map(([key, value]) => {\n    const valueStr = tsStringify(value, indent, currentIndent + indent);\n    return `${' '.repeat(currentIndent + indent)}${key}: ${valueStr}`;\n  });\n\n  return `{\\n${result.join(',\\n')}\\n${' '.repeat(currentIndent)}}`;\n}\n"
  },
  {
    "path": "packages/cli/src/controller/init-controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport * as fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {DEFAULT_TS_MANIFEST} from '@subql/common';\nimport git from 'simple-git';\nimport {ENDPOINT_REG} from '../constants';\nimport {extractFromTs, findReplace, validateEthereumTsManifest} from '../utils';\nimport {\n  cloneProjectGit,\n  fetchExampleProjects,\n  fetchNetworks,\n  fetchTemplates,\n  prepareManifest,\n  preparePackage,\n  validateEthereumProjectManifest,\n} from './init-controller';\n\njest.mock('simple-git', () => {\n  const mGit = {\n    clone: jest.fn(),\n  };\n  return jest.fn(() => mGit);\n});\n\njest.setTimeout(30000);\n\nasync function makeTempDir() {\n  const sep = path.sep;\n  const tmpDir = os.tmpdir();\n  const tempPath = await fs.promises.mkdtemp(`${tmpDir}${sep}`);\n  return tempPath;\n}\nconst projectSpec = {\n  name: 'mocked_starter',\n  repository: '',\n  endpoint: 'wss://rpc.polkadot.io/public-ws',\n  author: 'jay',\n  description: 'this is test for init controller',\n  version: '',\n  license: '',\n};\n\ndescribe('Cli can create project (mocked)', () => {\n  const projectPath = path.join(__dirname, '../../test/schemaTest/');\n  let originalManifest: string;\n  let originalPackage: string;\n  beforeAll(async () => {\n    originalManifest = (await fs.promises.readFile(`${projectPath}/${DEFAULT_TS_MANIFEST}`)).toString();\n    originalPackage = (await fs.promises.readFile(`${projectPath}/package.json`)).toString();\n  });\n\n  afterAll(async () => {\n    // resort original after the test\n    await fs.promises.writeFile(path.join(projectPath, DEFAULT_TS_MANIFEST), originalManifest);\n    await fs.promises.writeFile(path.join(projectPath, 'package.json'), originalPackage);\n  });\n  it('throw error when git clone failed', async () => {\n    const tempPath = await makeTempDir();\n    (git().clone as jest.Mock).mockImplementationOnce((cb) => {\n      cb(new Error());\n    });\n    await expect(cloneProjectGit(tempPath, projectSpec.name, 'invalid_url', 'invalid_branch')).rejects.toThrow(\n      /Failed to clone starter template from git/\n    );\n  });\n  it('validate ethereum project manifest', async () => {\n    const projectPath_eth = path.join(__dirname, '../../test/abiTest1');\n    await expect(validateEthereumProjectManifest(projectPath_eth)).resolves.toBe(true);\n    await expect(validateEthereumProjectManifest(projectPath)).resolves.toBe(false);\n  });\n\n  // These tests are disabled because they can interfere with the service\n  it.skip('fetch templates', async () => {\n    expect((await fetchTemplates()).length).toBeGreaterThan(0);\n  });\n\n  it.skip('fetch networks', async () => {\n    expect((await fetchNetworks()).length).toBeGreaterThan(0);\n  });\n\n  it.skip('fetch example projects', async () => {\n    expect((await fetchExampleProjects('evm', '1')).length).toBeGreaterThan(0);\n  });\n\n  it('readDefaults using regex', async () => {\n    const manifest = (\n      await fs.promises.readFile(path.join(__dirname, `../../test/schemaTest/${DEFAULT_TS_MANIFEST}`))\n    ).toString();\n    expect(\n      extractFromTs(manifest, {\n        endpoint: ENDPOINT_REG,\n      })\n    ).toStrictEqual({\n      endpoint: ['wss://acala-polkadot.api.onfinality.io/public-ws', 'wss://acala-rpc-0.aca-api.network'],\n    });\n  });\n  it('Ensure regex correctness for ENDPOINT_REG', () => {\n    expect(\n      extractFromTs(`endpoint: 'wss://acala-polkadot.api.onfinality.io/public-ws'`, {\n        endpoint: ENDPOINT_REG,\n      })\n    ).toStrictEqual({\n      endpoint: ['wss://acala-polkadot.api.onfinality.io/public-ws'],\n    });\n    expect(\n      extractFromTs('endpoint: `wss://acala-polkadot.api.onfinality.io/public-ws`', {\n        endpoint: ENDPOINT_REG,\n      })\n    ).toStrictEqual({\n      endpoint: ['wss://acala-polkadot.api.onfinality.io/public-ws'],\n    });\n    expect(\n      extractFromTs('endpoint: [`wss://acala-polkadot.api.onfinality.io/public-ws`]', {\n        endpoint: ENDPOINT_REG,\n      })\n    ).toStrictEqual({\n      endpoint: ['wss://acala-polkadot.api.onfinality.io/public-ws'],\n    });\n    expect(\n      extractFromTs(\n        \"endpoint: [`wss://acala-polkadot.api.onfinality.io/public-ws`, 'wss://acala-polkadot.api.onfinality.io/public-ws']\",\n        {\n          endpoint: ENDPOINT_REG,\n        }\n      )\n    ).toStrictEqual({\n      endpoint: [\n        'wss://acala-polkadot.api.onfinality.io/public-ws',\n        'wss://acala-polkadot.api.onfinality.io/public-ws',\n      ],\n    });\n  });\n  it('findReplace using regex', async () => {\n    const manifest = (\n      await fs.promises.readFile(path.join(__dirname, `../../test/schemaTest/${DEFAULT_TS_MANIFEST}`))\n    ).toString();\n    const v = findReplace(manifest, ENDPOINT_REG, \"endpoint: ['wss://acala-polkadot.api.onfinality.io/public-ws']\");\n\n    expect(\n      extractFromTs(v, {\n        endpoint: ENDPOINT_REG,\n      })\n    ).toStrictEqual({endpoint: ['wss://acala-polkadot.api.onfinality.io/public-ws']});\n  });\n  it('findReplace with string endpoints', async () => {\n    const manifest = (\n      await fs.promises.readFile(path.join(__dirname, `../../test/schemaTest/${DEFAULT_TS_MANIFEST}`))\n    ).toString();\n    const v = findReplace(manifest, ENDPOINT_REG, \"endpoint: 'wss://acala-polkadot.api.onfinality.io/public-ws'\");\n\n    expect(\n      extractFromTs(v, {\n        endpoint: ENDPOINT_REG,\n      })\n    ).toStrictEqual({endpoint: ['wss://acala-polkadot.api.onfinality.io/public-ws']});\n  });\n  it('able to extract string endpoints', () => {\n    expect(\n      extractFromTs(\n        `\n      endpoint: 'wss://aaa'\n    `,\n        {endpoint: ENDPOINT_REG}\n      )\n    ).toStrictEqual({endpoint: ['wss://aaa']});\n  });\n  it('Ensure prepareManifest and preparePackage correctness for project.ts', async () => {\n    const project = {\n      name: 'test-1',\n      endpoint: ['https://zzz', 'https://bbb'],\n      author: 'bz888',\n      description: 'tester project',\n    };\n\n    await prepareManifest(projectPath, project);\n    await preparePackage(projectPath, project);\n\n    const packageData = await fs.promises.readFile(`${projectPath}/package.json`);\n    const projectPackage = JSON.parse(packageData.toString());\n\n    expect(projectPackage.name).toBe(project.name);\n    expect(projectPackage.description).toBe(project.description);\n    expect(projectPackage.author).toBe(project.author);\n\n    const updatedManifest = await fs.promises.readFile(`${projectPath}/${DEFAULT_TS_MANIFEST}`);\n    expect(originalManifest).not.toBe(updatedManifest.toString());\n    expect(originalPackage).not.toBe(packageData.toString());\n  });\n  it('Validate validateEthereumTsManifest', () => {\n    const passingManifest = `import {\n  SubstrateDatasourceKind,\n  SubstrateHandlerKind,\n  SubstrateProject,\n} from '@subql/types-ethereum';\n  runner:{ node: '@subql/node-ethereum' }`;\n    const failingManifest = `import {\n  SubstrateDatasourceKind,\n  SubstrateHandlerKind,\n  SubstrateProject,\n} from '@subql/types';\n  runner:{ node: '@subql/node' }`;\n    expect(validateEthereumTsManifest(passingManifest)).toBe(true);\n    expect(validateEthereumTsManifest(failingManifest)).toBe(false);\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/init-controller.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport * as fs from 'fs';\nimport path from 'path';\nimport {makeTempDir} from '@subql/common';\nimport {rimraf} from 'rimraf';\nimport git from 'simple-git';\nimport {parseDocument, Document} from 'yaml';\nimport {isProjectSpecV0_2_0, isProjectSpecV1_0_0, ProjectSpecBase} from '../types';\nimport {\n  cloneProjectGit,\n  cloneProjectTemplate,\n  fetchExampleProjects,\n  prepare,\n  ExampleProjectInterface,\n  readDefaults,\n} from './init-controller';\n\nasync function testYAML(projectPath: string, project: ProjectSpecBase): Promise<{old: Document; new: Document}> {\n  const yamlPath = path.join(`${projectPath}`, `project.yaml`);\n  const manifest = await fs.promises.readFile(yamlPath, 'utf8');\n  const data = parseDocument(manifest);\n\n  const clonedData = data.clone();\n  clonedData.set('description', project.description ?? data.get('description'));\n\n  // network type should be collection\n  const network: any = clonedData.get('network');\n  network.set('endpoint', 'http://def not real endpoint');\n  clonedData.set('version', 'not real version');\n  clonedData.set('name', 'not real name');\n\n  if (isProjectSpecV1_0_0(project)) {\n    network.set('chainId', 'random chainId');\n  } else if (isProjectSpecV0_2_0(project)) {\n    network.set('genesisHash', 'random genesisHash');\n  }\n  return {\n    old: data,\n    new: clonedData,\n  };\n}\n\nasync function fileExists(file: string): Promise<boolean> {\n  await fs.promises.access(file, fs.constants.F_OK);\n  return true;\n}\n\njest.setTimeout(30000);\n\nconst projectSpec = {\n  name: 'mocked_starter',\n  endpoint: ['wss://rpc.polkadot.io/public-ws'],\n  specVersion: '1.0.0',\n  author: 'jay',\n  description: 'this is test for init controller',\n  chainId: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n};\n\ndescribe('Cli can create project', () => {\n  it('should resolve when starter project created via template', async () => {\n    const tempPath = await makeTempDir();\n    const projects = await fetchExampleProjects('polkadot', 'acala');\n    const projectPath = await cloneProjectTemplate(tempPath, projectSpec.name, projects[0]);\n    await prepare(projectPath, projectSpec);\n    await expect(fileExists(path.join(tempPath, `${projectSpec.name}`))).resolves.toEqual(true);\n  });\n\n  it('should resolve when starter project created via git', async () => {\n    const tempPath = await makeTempDir();\n    const projectPath = await cloneProjectGit(\n      tempPath,\n      projectSpec.name,\n      'https://github.com/subquery/subql-starter',\n      'v1.0.0'\n    );\n    await prepare(projectPath, projectSpec);\n    await expect(fileExists(path.join(tempPath, `${projectSpec.name}`))).resolves.toEqual(true);\n  });\n\n  it('throw error if .git exists in starter project', async () => {\n    const tempPath = await makeTempDir();\n    const projects = await fetchExampleProjects('polkadot', 'polkadot');\n    const projectPath = await cloneProjectTemplate(tempPath, projectSpec.name, projects[0]);\n    await prepare(projectPath, projectSpec);\n    await expect(fileExists(path.join(tempPath, `${projectSpec.name}/.git`))).rejects.toThrow();\n  });\n  it('YAML contains comments', async () => {\n    const localPath = await makeTempDir();\n    const tempPath = await makeTempDir();\n\n    // to pull from a commit that still uses project.yaml\n    const projects = await fetchExampleProjects('polkadot', 'polkadot');\n    const projectPath = path.join(localPath, projectSpec.name);\n    await git(tempPath).init().addRemote('origin', projects[0].remote);\n    await git(tempPath).raw('sparse-checkout', 'set', `${projects[0].path}`);\n    await git(tempPath).raw('pull', 'origin', 'd2868e9e46371f0ce45e52acae2ace6cb97296a0');\n\n    await fs.promises.cp(path.join(tempPath, `${projects[0].path}`), projectPath, {recursive: true});\n    fs.rmSync(tempPath, {recursive: true, force: true});\n\n    const output = await testYAML(path.join(localPath, projectSpec.name), projectSpec);\n    expect(output.new.toJS().network.chainId).toBe('random chainId');\n    expect(output.new).not.toEqual(output.old);\n    expect(output.new.toString()).toContain('# The genesis hash of the network (hash of block 0)');\n\n    await rimraf(localPath);\n  });\n\n  it('prepare correctly applies project details', async () => {\n    const tempPath = await makeTempDir();\n    const projects = await fetchExampleProjects('polkadot', 'polkadot');\n    const project = projects.find((p) => p.name === 'Polkadot-starter')!;\n    const projectPath = await cloneProjectTemplate(tempPath, projectSpec.name, project);\n    await prepare(projectPath, projectSpec);\n    const {author, description} = await readDefaults(projectPath);\n\n    //spec version is  not returned from readDefaults\n    //expect(projectSpec.specVersion).toEqual(specVersion);\n    expect(projectSpec.author).toEqual(author);\n    expect(projectSpec.description).toEqual(description);\n    await rimraf(tempPath);\n  });\n\n  it('allow git from sub directory', async () => {\n    const tempPath = await makeTempDir();\n\n    const template: ExampleProjectInterface = {\n      name: 'Polkadot-starter',\n      description: '',\n      remote: 'https://github.com/subquery/subql-starter',\n      path: 'Polkadot/Polkadot-starter',\n    };\n\n    const projectPath = await cloneProjectTemplate(tempPath, projectSpec.name, template);\n    await prepare(projectPath, projectSpec);\n    await expect(fileExists(path.join(tempPath, `${projectSpec.name}`))).resolves.toEqual(true);\n  }, 5000000);\n});\n"
  },
  {
    "path": "packages/cli/src/controller/init-controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport childProcess, {execSync} from 'child_process';\nimport fs from 'fs';\nimport * as path from 'path';\nimport {DEFAULT_MANIFEST, DEFAULT_TS_MANIFEST, loadFromJsonOrYaml, makeTempDir, NETWORK_FAMILY} from '@subql/common';\nimport {ProjectManifestV1_0_0, ProjectNetworkConfig} from '@subql/types-core';\nimport axios from 'axios';\nimport {rimraf} from 'rimraf';\nimport git from 'simple-git';\nimport {parseDocument, YAMLMap, YAMLSeq} from 'yaml';\nimport {BASE_TEMPLATE_URl, CAPTURE_CHAIN_ID_REG, CHAIN_ID_REG, ENDPOINT_REG} from '../constants';\nimport {loadDependency} from '../modulars';\nimport {isProjectSpecV1_0_0, ProjectSpecBase} from '../types';\nimport {\n  defaultEnvDevelopLocalPath,\n  defaultEnvDevelopPath,\n  defaultEnvLocalPath,\n  defaultEnvPath,\n  defaultGitIgnorePath,\n  defaultMultiChainYamlManifestPath,\n  defaultTSManifestPath,\n  defaultYamlManifestPath,\n  errorHandle,\n  extractFromTs,\n  findReplace,\n  prepareDirPath,\n  replaceArrayValueInTsManifest,\n  validateEthereumTsManifest,\n} from '../utils';\n\nexport interface ExampleProjectInterface {\n  name: string;\n  description: string;\n  remote: string;\n  path: string;\n}\n\nexport interface Network {\n  code: string;\n  name: string;\n  chain_id: string;\n  description: string;\n  logo: string;\n}\n\nexport interface Template {\n  code: string;\n  name: string;\n  description: string;\n  logo: string;\n  networks: {\n    code: string;\n    name: string;\n    chain_id: string;\n    description: string;\n    logo: string;\n    examples: ExampleProjectInterface[];\n  }[];\n}\n\nconst axiosInstance = axios.create({baseURL: BASE_TEMPLATE_URl});\n\n// GET /all\n// https://templates.subquery.network/all\nexport async function fetchTemplates(): Promise<Template[]> {\n  try {\n    const res = await axiosInstance.get<{templates: Template[]}>('/all');\n\n    return res.data.templates;\n  } catch (e) {\n    throw errorHandle(e, `Update to reach endpoint '${BASE_TEMPLATE_URl}/all`);\n  }\n}\n\n// GET /networks\n// https://templates.subquery.network/networks\nexport async function fetchNetworks(): Promise<Template[]> {\n  try {\n    const res = await axiosInstance.get<{results: Template[]}>('/networks');\n    return res.data.results;\n  } catch (e) {\n    throw errorHandle(e, `Update to reach endpoint '${BASE_TEMPLATE_URl}/networks`);\n  }\n}\n\n// The family query param must be an exact case-insensitive match otherwise an empty result will be returned\nexport async function fetchExampleProjects(\n  familyCode: string,\n  networkCode: string\n): Promise<ExampleProjectInterface[]> {\n  try {\n    const res = await axiosInstance.get<{results: ExampleProjectInterface[]}>(`/networks/${familyCode}/${networkCode}`);\n    return res.data.results;\n  } catch (e) {\n    throw errorHandle(e, `Update to reach endpoint ${familyCode}/${networkCode}`);\n  }\n}\n\nexport async function cloneProjectGit(\n  localPath: string,\n  projectName: string,\n  projectRemote: string,\n  branch: string\n): Promise<string> {\n  const projectPath = path.join(localPath, projectName);\n  try {\n    await git().clone(projectRemote, projectPath, ['-b', branch, '--single-branch']);\n  } catch (e) {\n    let err = 'Failed to clone starter template from git';\n    try {\n      execSync('git --version');\n    } catch (_) {\n      err += ', please install git and ensure that it is available from command line';\n    }\n    throw new Error(err);\n  }\n  return projectPath;\n}\n\nexport async function cloneProjectTemplate(\n  localPath: string,\n  projectName: string,\n  selectedProject: ExampleProjectInterface\n): Promise<string> {\n  const projectPath = path.join(localPath, projectName);\n  //make temp directory to store project\n  const tempPath = await makeTempDir();\n  //use sparse-checkout to clone project to temp directory\n  await git(tempPath).init().addRemote('origin', selectedProject.remote);\n  await git(tempPath).raw('sparse-checkout', 'set', selectedProject.path);\n  await git(tempPath).raw('pull', 'origin', 'main');\n  // Copy content to project path\n  await fs.promises.cp(path.join(tempPath, selectedProject.path), projectPath, {recursive: true});\n  // Clean temp folder\n  fs.rmSync(tempPath, {recursive: true, force: true});\n  return projectPath;\n}\n\nexport async function readDefaults(projectPath: string): Promise<{\n  endpoint: ProjectNetworkConfig['endpoint'];\n  author: string;\n  description: string;\n  isMultiChainProject: boolean;\n}> {\n  const packageData = await fs.promises.readFile(`${projectPath}/package.json`);\n  const currentPackage = JSON.parse(packageData.toString());\n  const author: string = currentPackage.author;\n  const description: string = currentPackage.description;\n  let endpoint: ProjectNetworkConfig['endpoint'];\n  let isMultiChainProject = false;\n  const defaultTsPath = defaultTSManifestPath(projectPath);\n  const defaultYamlPath = defaultYamlManifestPath(projectPath);\n  const defaultMultiChainPath = defaultMultiChainYamlManifestPath(projectPath);\n\n  if (fs.existsSync(defaultTsPath)) {\n    const tsManifest = await fs.promises.readFile(defaultTsPath, 'utf8');\n    const extractedTsValues = extractFromTs(tsManifest.toString(), {\n      endpoint: ENDPOINT_REG,\n    });\n\n    endpoint = extractedTsValues.endpoint ?? [];\n  } else if (fs.existsSync(defaultYamlPath)) {\n    const yamlManifest = await fs.promises.readFile(defaultYamlPath, 'utf8');\n    const extractedYamlValues = parseDocument(yamlManifest).toJS() as ProjectManifestV1_0_0;\n    endpoint = extractedYamlValues.network.endpoint;\n  } else if (fs.existsSync(defaultMultiChainPath)) {\n    endpoint = [];\n    isMultiChainProject = true;\n  } else {\n    throw new Error('Failed to read manifest file while preparing the project');\n  }\n\n  return {endpoint, author, description, isMultiChainProject};\n}\n\nexport async function prepare(\n  projectPath: string,\n  project: ProjectSpecBase,\n  isMultiChainProject = false\n): Promise<void> {\n  try {\n    if (!isMultiChainProject) await prepareEnv(projectPath, project);\n  } catch (e) {\n    throw new Error('Failed to prepare read or write .env file while preparing the project');\n  }\n  try {\n    if (!isMultiChainProject) await prepareManifest(projectPath, project);\n  } catch (e) {\n    throw new Error('Failed to prepare read or write manifest while preparing the project');\n  }\n  try {\n    await preparePackage(projectPath, project);\n  } catch (e) {\n    throw new Error('Failed to prepare read or write package.json while preparing the project');\n  }\n  try {\n    await rimraf(`${projectPath}/.git`);\n  } catch (e) {\n    throw new Error('Failed to remove .git from template project');\n  }\n  try {\n    await prepareGitIgnore(projectPath);\n  } catch (e) {\n    throw new Error('Failed to prepare read or write .gitignore while preparing the project');\n  }\n}\n\nexport async function preparePackage(projectPath: string, project: ProjectSpecBase): Promise<void> {\n  //load and write package.json\n  const packageData = await fs.promises.readFile(`${projectPath}/package.json`);\n  const currentPackage = JSON.parse(packageData.toString());\n  currentPackage.name = project.name;\n  currentPackage.description = project.description ?? currentPackage.description;\n  currentPackage.author = project.author;\n  //add build and develop scripts\n  currentPackage.scripts = {\n    ...currentPackage.scripts,\n    build: 'subql codegen && subql build',\n    'build:develop': 'NODE_ENV=develop subql codegen && NODE_ENV=develop subql build',\n  };\n  //add dotenv package for env file support\n  currentPackage.devDependencies = {\n    ...currentPackage.devDependencies,\n    dotenv: 'latest',\n  };\n  const newPackage = JSON.stringify(currentPackage, null, 2);\n  await fs.promises.writeFile(`${projectPath}/package.json`, newPackage, 'utf8');\n}\n\nexport async function prepareManifest(projectPath: string, project: ProjectSpecBase): Promise<void> {\n  //load and write manifest(project.ts/project.yaml)\n  const tsPath = defaultTSManifestPath(projectPath);\n  const yamlPath = defaultYamlManifestPath(projectPath);\n  let manifestData: string;\n\n  const isTs = fs.existsSync(tsPath);\n\n  if (isTs) {\n    const tsManifest = (await fs.promises.readFile(tsPath, 'utf8')).toString();\n    //adding env config for endpoint.\n    const formattedEndpoint = `process.env.ENDPOINT!?.split(',') as string[] | string`;\n    const endpointUpdatedManifestData = findReplace(tsManifest, ENDPOINT_REG, `endpoint: ${formattedEndpoint}`);\n    const chainIdUpdatedManifestData = findReplace(\n      endpointUpdatedManifestData,\n      CHAIN_ID_REG,\n      `chainId: process.env.CHAIN_ID!`\n    );\n    manifestData = addDotEnvConfigCode(chainIdUpdatedManifestData);\n  } else {\n    //load and write manifest(project.yaml)\n    const yamlManifest = await fs.promises.readFile(yamlPath, 'utf8');\n    const data = parseDocument(yamlManifest);\n    const clonedData = data.clone();\n\n    const network = clonedData.get('network') as YAMLMap;\n    network.set('endpoint', project.endpoint);\n    clonedData.set('name', project.name);\n    if (isProjectSpecV1_0_0(project)) {\n      network.set('chainId', project.chainId);\n    }\n    manifestData = clonedData.toString();\n  }\n  await fs.promises.writeFile(isTs ? tsPath : yamlPath, manifestData, 'utf8');\n}\n\nexport function addDotEnvConfigCode(manifestData: string): string {\n  // add dotenv config after imports in project.ts file\n  let snippetCodeIndex = -1;\n  const manifestSections = manifestData.split('\\n');\n  for (let i = 0; i < manifestSections.length; i++) {\n    if (manifestSections[i].trim() === '') {\n      snippetCodeIndex = i + 1;\n      break;\n    }\n  }\n\n  if (snippetCodeIndex === -1) {\n    snippetCodeIndex = 0;\n  }\n\n  const envConfigCodeSnippet = `\nimport * as dotenv from 'dotenv';\nimport path from 'path';\n\nconst mode = process.env.NODE_ENV || 'production';\n\n// Load the appropriate .env file\nconst dotenvPath = path.resolve(__dirname, \\`.env\\${mode !== 'production' ? \\`.$\\{mode}\\` : ''}\\`);\ndotenv.config({ path: dotenvPath, quiet: true });\n`;\n\n  // Inserting the env configuration code in project.ts\n  const updatedTsProject = `${\n    manifestSections.slice(0, snippetCodeIndex).join('\\n') + envConfigCodeSnippet\n  }\\n${manifestSections.slice(snippetCodeIndex).join('\\n')}`;\n  return updatedTsProject;\n}\n\nexport async function prepareEnv(projectPath: string, project: ProjectSpecBase): Promise<void> {\n  //load and write manifest(project.ts/project.yaml)\n  const envPath = defaultEnvPath(projectPath);\n  const envDevelopPath = defaultEnvDevelopPath(projectPath);\n  const envLocalPath = defaultEnvLocalPath(projectPath);\n  const envDevelopLocalPath = defaultEnvDevelopLocalPath(projectPath);\n\n  let chainId;\n  if (isProjectSpecV1_0_0(project)) {\n    chainId = project.chainId;\n  } else {\n    const tsPath = defaultTSManifestPath(projectPath);\n    const tsManifest = (await fs.promises.readFile(tsPath, 'utf8')).toString();\n\n    const match = tsManifest.match(CAPTURE_CHAIN_ID_REG);\n    if (match) {\n      chainId = match[2];\n    }\n  }\n\n  //adding env configs\n  const endpointStr = Array.isArray(project.endpoint) ? project.endpoint.join(',') : JSON.stringify(project.endpoint);\n\n  const envData = `ENDPOINT=${endpointStr}\\nCHAIN_ID=${chainId}`;\n  await fs.promises.writeFile(envPath, envData, 'utf8');\n  await fs.promises.writeFile(envDevelopPath, envData, 'utf8');\n  await fs.promises.writeFile(envLocalPath, envData, 'utf8');\n  await fs.promises.writeFile(envDevelopLocalPath, envData, 'utf8');\n}\n\nexport async function prepareGitIgnore(projectPath: string): Promise<void> {\n  //load and write .gitignore\n  const gitIgnorePath = defaultGitIgnorePath(projectPath);\n  const isGitIgnore = fs.existsSync(gitIgnorePath);\n\n  if (isGitIgnore) {\n    let gitIgnoreManifest = (await fs.promises.readFile(gitIgnorePath, 'utf8')).toString();\n    //add local .env files in .gitignore\n    gitIgnoreManifest += `\\n# ENV local files\\n.env.local\\n.env.develop.local`;\n    await fs.promises.writeFile(gitIgnorePath, gitIgnoreManifest, 'utf8');\n  }\n}\n\nexport function installDependencies(\n  projectPath: string,\n  packageManager: 'npm' | 'yarn' | 'pnpm' = 'npm',\n  silent = false\n): void {\n  if (packageManager === 'yarn' && !checkYarnExists()) {\n    packageManager = 'npm';\n  }\n  const command = `${packageManager} install`;\n\n  childProcess.execSync(command, {cwd: projectPath, stdio: silent ? 'ignore' : undefined});\n}\n\nfunction checkYarnExists(): boolean {\n  try {\n    childProcess.execSync('yarn --version');\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nexport async function prepareProjectScaffold(projectPath: string): Promise<void> {\n  // remove all existing abis & handler files\n  await prepareDirPath(path.join(projectPath, 'abis/'), false);\n  await prepareDirPath(path.join(projectPath, 'src/mappings/'), true);\n\n  const defaultTsPath = defaultTSManifestPath(projectPath);\n\n  try {\n    //  clean dataSources\n    if (fs.existsSync(defaultTsPath)) {\n      // ts check should be first\n      await prepareProjectScaffoldTS(defaultTsPath);\n    } else {\n      await prepareProjectScaffoldYAML(defaultYamlManifestPath(projectPath));\n    }\n  } catch (e) {\n    throw new Error('Failed to prepare project scaffold');\n  }\n\n  // remove handler file from index.ts\n  fs.truncateSync(path.join(projectPath, 'src/index.ts'), 0);\n}\n\nasync function prepareProjectScaffoldTS(defaultTsPath: string): Promise<void> {\n  const manifest = await fs.promises.readFile(defaultTsPath, 'utf8');\n  const updateManifest = replaceArrayValueInTsManifest(manifest, 'dataSources', '[]');\n  await fs.promises.writeFile(defaultTsPath, updateManifest, 'utf8');\n}\n\nasync function prepareProjectScaffoldYAML(defaultYamlPath: string): Promise<void> {\n  const manifest = parseDocument(await fs.promises.readFile(defaultYamlPath, 'utf8'));\n  manifest.set('dataSources', new YAMLSeq());\n  await fs.promises.writeFile(defaultYamlPath, manifest.toString(), 'utf8');\n}\n\nexport async function validateEthereumProjectManifest(projectPath: string): Promise<boolean> {\n  let manifest: any;\n  const isTs = fs.existsSync(path.join(projectPath, DEFAULT_TS_MANIFEST));\n  if (isTs) {\n    manifest = (await fs.promises.readFile(path.join(projectPath, DEFAULT_TS_MANIFEST), 'utf8')).toString();\n  } else {\n    manifest = loadFromJsonOrYaml(path.join(projectPath, DEFAULT_MANIFEST));\n  }\n  try {\n    return isTs\n      ? validateEthereumTsManifest(manifest)\n      : !!loadDependency(NETWORK_FAMILY.ethereum, projectPath).parseProjectManifest(manifest);\n  } catch (e) {\n    return false;\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/abis/migrate-abis.controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {uniqWith} from 'lodash';\nimport {DEFAULT_ABI_DIR} from '../../generate-controller';\nimport {SubgraphDataSource, SubgraphProject} from '../types';\n\nfunction extractAllAbiFiles(dataSources: SubgraphDataSource[]): string[] {\n  return uniqWith(dataSources.flatMap((dataSource) => dataSource.mapping.abis.map((abi) => abi.file).filter(Boolean)));\n}\n\nasync function copyAbiFilesToTargetPathAsync(abiFiles: string[], targetPath: string): Promise<void> {\n  try {\n    await Promise.all(\n      abiFiles.map(async (file) => {\n        const fileName = path.basename(file);\n        const targetFilePath = path.join(targetPath, fileName);\n        await fs.promises.copyFile(file, targetFilePath);\n      })\n    );\n    console.log(\n      `ABI files used in project manifest copied successfully, please copy other required ABI files to ${targetPath}`\n    );\n  } catch (error) {\n    console.error('Error copying ABI files:', error);\n  }\n}\n\nexport async function migrateAbis(\n  subgraphManifest: SubgraphProject,\n  subgraphDir: string,\n  subqlDir: string\n): Promise<void> {\n  const abiPaths = extractAllAbiFiles(subgraphManifest.dataSources);\n  const resolvedPaths = abiPaths.map((p) => path.join(subgraphDir, p));\n  const targetAbiDir = path.join(subqlDir, DEFAULT_ABI_DIR);\n  await copyAbiFilesToTargetPathAsync(resolvedPaths, targetAbiDir);\n}\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/constants.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NETWORK_FAMILY} from '@subql/common';\nimport {convertEthereumDs, convertEthereumTemplate} from './manifest/ethereum';\nimport {NetworkUtils} from './types';\n\nexport const networkConverters: Partial<Record<NETWORK_FAMILY, NetworkUtils>> = {\n  [NETWORK_FAMILY.ethereum]: {dsConverter: convertEthereumDs, templateConverter: convertEthereumTemplate},\n};\n\nexport const graphToSubqlNetworkFamily: Record<string, NETWORK_FAMILY> = {\n  'ethereum/contract': NETWORK_FAMILY.ethereum,\n  ethereum: NETWORK_FAMILY.ethereum,\n  // Add more mappings here as needed\n};\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './migrate-controller';\nexport * from './manifest/migrate-manifest.controller';\nexport * from './abis/migrate-abis.controller';\nexport * from './schema/migrate-schema.controller';\nexport * from './constants';\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/manifest/ethereum.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EthereumDatasourceKind} from '@subql/types-ethereum';\nimport {TestSubgraph} from '../migrate.fixtures';\nimport {convertEthereumDs, convertEthereumTemplate} from './ethereum';\n\ndescribe('migrate eth manifest', () => {\n  it(`convertEthereumDs`, () => {\n    const testSubgraph = TestSubgraph;\n    const subqlDs = testSubgraph.dataSources.map((ds) => convertEthereumDs(ds));\n    expect(subqlDs.length).toBe(1);\n    expect(subqlDs[0].kind).toBe(EthereumDatasourceKind.Runtime);\n    expect(subqlDs[0].migrateDatasourceType).toBe('EthereumDatasourceKind.Runtime');\n    expect(subqlDs[0].options).toStrictEqual({abi: 'Poap', address: '0x22C1f6050E56d2876009903609a2cC3fEf83B415'});\n    expect(subqlDs[0].mapping.handlers[0].migrateHandlerType).toStrictEqual('EthereumHandlerKind.Event');\n    expect(subqlDs[0].mapping.handlers[0].handler).toStrictEqual('handleEventToken');\n    expect(subqlDs[0].mapping.handlers[0].filter).toStrictEqual({topics: ['EventToken(uint256,uint256)']});\n    // converted handler should in same order\n    expect(subqlDs[0].mapping.handlers[1].handler).toStrictEqual('handleTransfer');\n  });\n\n  it(`convertEthereumTemplate`, () => {\n    const testTemplateDataSource = TestSubgraph.dataSources;\n\n    delete (testTemplateDataSource[0].source as any).address;\n    delete (testTemplateDataSource[0].source as any).startBlock;\n\n    const subqlTemplate = convertEthereumTemplate(testTemplateDataSource[0]);\n    expect(subqlTemplate.options?.address).toBeUndefined();\n    expect(subqlTemplate.options?.abi).toBe('Poap');\n    expect(subqlTemplate.assets?.get('Poap')).toBeTruthy();\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/manifest/ethereum.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {FileReference} from '@subql/types-core';\nimport type {\n  SubqlRuntimeDatasource as EthereumDs,\n  CustomDatasourceTemplate as EthereumCustomDsTemplate,\n  RuntimeDatasourceTemplate as EthereumDsTemplate,\n  EthereumDatasourceKind,\n  EthereumHandlerKind,\n  EthereumTransactionFilter,\n  EthereumLogFilter,\n} from '@subql/types-ethereum';\nimport {DEFAULT_HANDLER_BUILD_PATH} from '../../generate-controller';\nimport {MigrateDatasourceKind, SubgraphDataSource, SubgraphTemplate} from '../types';\n\ntype EthTemplate = EthereumDsTemplate | EthereumCustomDsTemplate;\n\nfunction baseDsConversion<D extends EthereumDs | EthTemplate>(\n  ds: SubgraphDataSource | SubgraphTemplate\n): MigrateDatasourceKind<D> {\n  const assets: Map<string, FileReference> = new Map();\n  for (const abi of ds.mapping.abis) {\n    assets.set(abi.name, {file: abi.file});\n  }\n\n  const subqlDs = {\n    kind: 'ethereum/Runtime' as EthereumDatasourceKind.Runtime,\n    migrateDatasourceType: 'EthereumDatasourceKind.Runtime',\n    assets: new Map(ds.mapping.abis.map((a) => [a.name, {file: a.file}])),\n    mapping: {\n      file: DEFAULT_HANDLER_BUILD_PATH,\n      handlers: [\n        ...(ds.mapping.blockHandlers ?? []).map((h) => {\n          return {\n            kind: 'ethereum/Runtime' as EthereumHandlerKind.Block,\n            migrateHandlerType: 'EthereumHandlerKind.Block',\n            handler: h.handler,\n            filter: undefined,\n          };\n        }),\n        ...(ds.mapping.eventHandlers ?? []).map((h) => {\n          return {\n            kind: 'ethereum/LogHandler' as EthereumHandlerKind.Event,\n            migrateHandlerType: 'EthereumHandlerKind.Event',\n            handler: h.handler,\n            filter: {\n              topics: [h.event],\n            } satisfies EthereumLogFilter,\n          };\n        }),\n        ...(ds.mapping.callHandlers ?? []).map((h) => {\n          return {\n            kind: 'ethereum/TransactionHandler' as EthereumHandlerKind.Call,\n            migrateHandlerType: 'EthereumHandlerKind.Call',\n            handler: h.handler,\n            filter: {\n              function: h.function,\n            } satisfies EthereumTransactionFilter,\n          };\n        }),\n      ],\n    },\n  } as unknown as MigrateDatasourceKind<D>;\n  return subqlDs;\n}\n\nexport function convertEthereumDs(ds: SubgraphDataSource): MigrateDatasourceKind<EthereumDs> {\n  const subqlDs = baseDsConversion<EthereumDs>(ds);\n  subqlDs.startBlock = ds.source.startBlock;\n  subqlDs.endBlock = ds.source.endBlock;\n  subqlDs.options = {abi: ds.source.abi, address: ds.source.address};\n  return subqlDs;\n}\n\nexport function convertEthereumTemplate(ds: SubgraphTemplate): MigrateDatasourceKind<EthTemplate> {\n  const subqlTemplate = baseDsConversion<EthTemplate>(ds);\n  subqlTemplate.options = {abi: ds.source.abi};\n  subqlTemplate.name = ds.name;\n  return subqlTemplate;\n}\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/manifest/migrate-manifest.controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport {NETWORK_FAMILY} from '@subql/common';\nimport {EthereumDatasourceKind} from '@subql/types-ethereum';\nimport {networkConverters} from '../constants';\nimport {SubgraphProject} from '../types';\nimport {\n  extractNetworkFromManifest,\n  readSubgraphManifest,\n  subgraphDsToSubqlDs,\n  subgraphTemplateToSubqlTemplate,\n} from './migrate-manifest.controller';\n\nconst testProjectPath = '../../../../test/migrate/testProject';\n\ndescribe('migrate manifest controller', () => {\n  let subgraph: SubgraphProject;\n\n  beforeEach(() => {\n    subgraph = readSubgraphManifest(path.join(__dirname, testProjectPath, 'subgraph.yaml'), 'mockSubgraphPath');\n  });\n\n  it(`readSubgraphManifest from a given subgraph.yaml`, () => {\n    expect(subgraph.schema).toStrictEqual({file: './schema.graphql'});\n  });\n\n  it(`subgraphDsToSubqlDs`, () => {\n    const networkConverter = networkConverters[NETWORK_FAMILY.ethereum]!;\n    expect(subgraphDsToSubqlDs(networkConverter.dsConverter, subgraph.dataSources)[0].startBlock).toBe(7844214);\n    expect(subgraphDsToSubqlDs(networkConverter.dsConverter, subgraph.dataSources)[0].kind).toBe(\n      EthereumDatasourceKind.Runtime\n    );\n    expect(subgraphDsToSubqlDs(networkConverter.dsConverter, subgraph.dataSources)[0].endBlock).toBeUndefined();\n  });\n\n  it(`subgraphTemplateToSubqlTemplate`, () => {\n    const networkConverter = networkConverters[NETWORK_FAMILY.ethereum]!;\n\n    const testTemplateDataSource = subgraph.dataSources;\n    delete (testTemplateDataSource[0].source as any).address;\n    delete (testTemplateDataSource[0].source as any).startBlock;\n    expect(subgraphTemplateToSubqlTemplate(networkConverter.templateConverter, testTemplateDataSource)[0].name).toBe(\n      'Poap'\n    );\n  });\n\n  it(`extractNetworkFromManifest, should extract network info, throw if network not same`, async () => {\n    const chainInfo = await extractNetworkFromManifest(subgraph);\n    expect(chainInfo).toStrictEqual({networkFamily: NETWORK_FAMILY.ethereum, chainId: '1'});\n\n    const mockPloygonDs = {...subgraph.dataSources[0]};\n    mockPloygonDs.network = 'polygon';\n    subgraph.dataSources.push(mockPloygonDs);\n    await expect(extractNetworkFromManifest(subgraph)).rejects.toThrow(\n      `All network values in subgraph Networks should be the same. Got mainnet,polygon`\n    );\n  });\n\n  it(`extractNetworkFromManifest, should throw if can not determine network family from ds`, async () => {\n    delete (subgraph.dataSources[0] as any).kind;\n    await expect(extractNetworkFromManifest(subgraph)).rejects.toThrow(\n      `Subgraph dataSource kind or network not been found`\n    );\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/manifest/migrate-manifest.controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {CommonSubqueryProject} from '@subql/types-core';\nimport {upperFirst} from 'lodash';\nimport YAML from 'yaml';\nimport {findRunnerByNetworkFamily, prepareDirPath, renderTemplate} from '../../../utils';\nimport {TemplateKind} from '../../codegen-controller';\nimport {graphToSubqlNetworkFamily, networkConverters} from '../constants';\nimport {getChainIdByNetworkName} from '../migrate-controller';\nimport {\n  MigrateDatasourceKind,\n  SubgraphDataSource,\n  SubgraphProject,\n  SubgraphTemplate,\n  ChainInfo,\n  DsConvertFunction,\n  TemplateConvertFunction,\n} from '../types';\n\nconst PROJECT_TEMPLATE_PATH = path.resolve(__dirname, '../../../template/project.ts.ejs');\n\nfunction unsupportedError(name: string) {\n  throw new Error(\n    `Unfortunately migration does not support option \"${name}\" from subgraph, please remove or find alternative solutions`\n  );\n}\n\n// validate supported subgraph features\nexport function subgraphValidation(subgraphProject: SubgraphProject): void {\n  if (subgraphProject.features) unsupportedError(`features`);\n  if (subgraphProject.graft) unsupportedError(`graft`);\n  if (subgraphProject.dataSources.find((ds) => ds.context)) {\n    unsupportedError(`features`);\n  }\n}\n\nexport function readSubgraphManifest(inputPath: string, subgraphPath: string): SubgraphProject {\n  try {\n    const subgraphManifest: SubgraphProject = YAML.parse(fs.readFileSync(inputPath, 'utf8'));\n    return subgraphManifest;\n  } catch (e) {\n    if ((e as any).code === 'ENOENT') {\n      throw new Error(`Unable to find subgraph manifest under: ${subgraphPath}`);\n    }\n    throw e;\n  }\n}\n\nexport async function extractNetworkFromManifest(subgraphProject: SubgraphProject): Promise<ChainInfo> {\n  const subgraphDsKinds = subgraphProject.dataSources.map((d) => d.kind).filter((k) => k !== undefined);\n  const subgraphDsNetworks = subgraphProject.dataSources.map((d) => d.network).filter((n) => n !== undefined);\n  if (!subgraphDsKinds.length || !subgraphDsNetworks.length) {\n    throw new Error(`Subgraph dataSource kind or network not been found`);\n  }\n  if (!subgraphDsNetworks.every((network) => network === subgraphDsNetworks[0])) {\n    throw new Error(`All network values in subgraph Networks should be the same. Got ${subgraphDsNetworks}`);\n  }\n  const firstDsKind = subgraphDsKinds[0];\n  const firstDsNetwork = subgraphDsNetworks[0];\n  const networkFamily = graphToSubqlNetworkFamily[firstDsKind];\n  if (!networkFamily) {\n    throw new Error(`Corresponding SubQuery network is not found with subgraph data source kind ${firstDsKind}`);\n  }\n  return {networkFamily, chainId: await getChainIdByNetworkName(networkFamily, firstDsNetwork)};\n}\n\n/**\n * Render subquery project to .ts file\n * @param projectPath\n * @param project\n */\nexport async function renderManifest(projectPath: string, project: CommonSubqueryProject): Promise<void> {\n  try {\n    await renderTemplate(PROJECT_TEMPLATE_PATH, projectPath, {\n      props: {\n        importTypes: {\n          network: 'ethereum',\n          projectClass: 'EthereumProject',\n          projectDatasourceKind: 'EthereumDatasourceKind',\n          projectHandlerKind: 'EthereumHandlerKind',\n        },\n        projectJson: project,\n      },\n      helper: {\n        upperFirst,\n      },\n    });\n  } catch (e) {\n    throw new Error(`Failed to create project manifest, ${e}`);\n  }\n}\n\n/**\n *  Migrate a subgraph project manifest to subquery manifest file\n * @param network network family\n * @param inputPath file path to subgraph.yaml\n * @param outputPath file path to project.ts\n */\nexport async function migrateManifest(\n  chainInfo: ChainInfo,\n  subgraphManifest: SubgraphProject,\n  outputPath: string\n): Promise<void> {\n  await prepareDirPath(outputPath, false);\n  await renderManifest(outputPath, graphManifestToSubqlManifest(chainInfo, subgraphManifest));\n}\n\n/**\n * Convert the graph project to subquery project\n * @param network\n * @param subgraphManifest\n */\nfunction graphManifestToSubqlManifest(chainInfo: ChainInfo, subgraphManifest: SubgraphProject): CommonSubqueryProject {\n  const networkConverter = networkConverters[chainInfo.networkFamily];\n\n  if (!networkConverter || !networkConverter.templateConverter || !networkConverter.dsConverter) {\n    throw new Error(`${chainInfo.networkFamily} is missing datasource/template convert methods for migration.`);\n  }\n\n  return {\n    network: {chainId: chainInfo.chainId, endpoint: ''},\n    name: subgraphManifest.name,\n    specVersion: '1.0.0',\n    runner: {\n      node: {version: '^', name: findRunnerByNetworkFamily(chainInfo.networkFamily)},\n      query: {version: '^', name: '@subql/query'},\n    },\n    version: subgraphManifest.specVersion,\n    dataSources: subgraphDsToSubqlDs(networkConverter.dsConverter, subgraphManifest.dataSources),\n    description: subgraphManifest.description,\n    schema: subgraphManifest.schema,\n    repository: '',\n    templates: subgraphManifest.templates\n      ? subgraphTemplateToSubqlTemplate(networkConverter.templateConverter, subgraphManifest.templates)\n      : undefined,\n  };\n}\n\nexport function subgraphTemplateToSubqlTemplate(\n  convertFunction: TemplateConvertFunction,\n  subgraphTemplates: SubgraphTemplate[]\n): TemplateKind[] {\n  return subgraphTemplates.map((t) => convertFunction(t));\n}\n\nexport function subgraphDsToSubqlDs(\n  convertFunction: DsConvertFunction,\n  subgraphDs: SubgraphDataSource[]\n): MigrateDatasourceKind[] {\n  return subgraphDs.map((ds) => convertFunction(ds));\n}\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/mapping/migrate-mapping.controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {copyFolderSync} from '../../../utils';\n\nexport async function migrateMapping(subgraphDir: string, subqlDir: string): Promise<void> {\n  const subqlSrcPath = path.join(subqlDir, '/src');\n  await fs.promises.rm(subqlSrcPath, {force: true, recursive: true});\n  // copy over src\n  copyFolderSync(path.join(subgraphDir, '/src'), subqlSrcPath);\n  console.log(\n    `* Mapping handlers have been copied over, they will need to be updated to work with SubQuery. See our documentation for more details https://academy.subquery.network/build/graph-migration.html#codegen`\n  );\n}\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/migrate-controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {makeTempDir, NETWORK_FAMILY} from '@subql/common';\nimport {extractGitInfo, getChainIdByNetworkName, improveProjectInfo, prepareProject} from './migrate-controller';\nimport {TestSubgraph} from './migrate.fixtures';\n\nconst testProjectPath = '../../../test/migrate/testProject';\n\ndescribe('Migrate controller', () => {\n  it('should able to extract git info from given link', () => {\n    // git ssh should be same link\n    expect(extractGitInfo('git@github.com:subquery/poap-benchmark.git')).toStrictEqual({\n      link: 'git@github.com:subquery/poap-benchmark.git',\n      branch: undefined,\n    });\n    // git link can extract git link, if branch is not provide should be undefined, so it can use default branch\n    expect(extractGitInfo('https://github.com/subquery/poap-benchmark')).toStrictEqual({\n      link: 'https://github.com/subquery/poap-benchmark',\n      branch: undefined,\n    });\n    // can extract git branch\n    expect(extractGitInfo('https://github.com/subquery/poap-benchmark/tree/test-branch')).toStrictEqual({\n      link: 'https://github.com/subquery/poap-benchmark',\n      branch: 'test-branch',\n    });\n\n    // bitbucket ssh\n    expect(extractGitInfo('git@bitbucket.org:subquery/poap-benchmark.git')).toStrictEqual({\n      link: 'git@bitbucket.org:subquery/poap-benchmark.git',\n      branch: undefined,\n    });\n    // bitbucket link\n    expect(extractGitInfo('https://bitbucket.org/subquery/poap-benchmark/')).toStrictEqual({\n      link: 'https://bitbucket.org/subquery/poap-benchmark',\n      branch: undefined,\n    });\n    // can extract bitbucket branch\n    expect(extractGitInfo('https://bitbucket.org/subquery/poap-benchmark/src/test-branch')).toStrictEqual({\n      link: 'https://bitbucket.org/subquery/poap-benchmark',\n      branch: 'test-branch',\n    });\n\n    // should return result if user provide is a git subdirectory\n    expect(extractGitInfo('https://github.com/gprotocol/g-tooling/tree/main/examples/ethereum-gravatar')).toStrictEqual(\n      {\n        link: 'https://github.com/gprotocol/g-tooling',\n        branch: 'main',\n      }\n    );\n\n    // IF not valid, should return undefined\n    expect(extractGitInfo('https://google.com')).toBe(undefined);\n  });\n\n  it('should get chain id, getChainIdByNetworkName', async () => {\n    await expect(getChainIdByNetworkName(NETWORK_FAMILY.ethereum, 'mainnet')).resolves.toBe('1');\n    await expect(getChainIdByNetworkName(NETWORK_FAMILY.ethereum, 'lens')).resolves.toBe('232');\n    await expect(getChainIdByNetworkName(NETWORK_FAMILY.ethereum, 'newnetwork')).rejects.toThrow();\n    // not support yet\n    await expect(getChainIdByNetworkName(NETWORK_FAMILY.algorand, 'algorand')).rejects.toThrow();\n  });\n\n  it('prepareProject', async () => {\n    const subqlDir = await makeTempDir();\n    await prepareProject({chainId: '1', networkFamily: NETWORK_FAMILY.ethereum}, subqlDir);\n    expect(fs.existsSync(path.join(subqlDir, 'project.ts'))).toBeTruthy();\n    fs.rmSync(subqlDir, {recursive: true, force: true});\n\n    const subqlDir2 = await makeTempDir();\n    await expect(prepareProject({chainId: '2', networkFamily: NETWORK_FAMILY.ethereum}, subqlDir2)).rejects.toThrow();\n    fs.rmSync(subqlDir2, {recursive: true, force: true});\n  }, 100000);\n\n  it('improveProjectInfo', () => {\n    const testSubgraph = TestSubgraph;\n    expect(TestSubgraph.name).toBeUndefined();\n    improveProjectInfo(path.join(__dirname, testProjectPath), testSubgraph);\n    expect(TestSubgraph.name).toBe('poap-mainnet-subquery');\n    expect(TestSubgraph.repository).toBe('');\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/migrate-controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {NETWORK_FAMILY} from '@subql/common';\nimport {cloneProjectTemplate, fetchExampleProjects} from '../init-controller';\nimport {ChainInfo, SubgraphProject} from './types';\n\n/**\n *\n * @param input is github link or ssh, or bitbucket link\n * return undefined if link not match any\n */\nconst githubLinkRegex = /^https:\\/\\/github\\.com\\/(?<domain>[^/]+)\\/(?<repository>[^/]+)(?:\\/tree\\/(?<branch>[^/]+))?/;\nconst bitbucketLinkRegex =\n  /^https:\\/\\/(?:[^/]+@)?bitbucket\\.org\\/(?<domain>[^/]+)\\/(?<repository>[^/]+)(?:\\/src\\/(?<branch>[^/]+))?/;\nconst sshRegex = /^git@(?:bitbucket\\.org|github\\.com):[^/]+\\/(?<repository>[^/]+)\\.git$/;\n\n/**\n * Determines if an input string is a valid git repository http or ssh url.\n * @param input a path or git url\n * @returns The link and branch if the input is a valid git repository url, otherwise undefined.\n */\nexport function extractGitInfo(input: string): {link: string; branch?: string} | undefined {\n  const gitLinkMatch = input.match(githubLinkRegex);\n  const bitBucketLinkMatch = input.match(bitbucketLinkRegex);\n  const sshMatch = input.match(sshRegex);\n  if (!gitLinkMatch && !sshMatch && !bitBucketLinkMatch) {\n    return undefined;\n  }\n  const {branch, domain, repository} = gitLinkMatch?.groups || bitBucketLinkMatch?.groups || {};\n  const link = sshMatch\n    ? input\n    : `https:${\n        gitLinkMatch ? `//github.com` : bitBucketLinkMatch ? `//bitbucket.org` : undefined\n      }/${domain}/${repository}`;\n  return {link, branch};\n}\n\n// improve project info from the graph package json\nexport function improveProjectInfo(subgraphDir: string, subgraphManifest: SubgraphProject): void {\n  const packageData = fs.readFileSync(`${subgraphDir}/package.json`);\n  const thegraphPackage = JSON.parse(packageData.toString());\n  subgraphManifest.name = thegraphPackage.name.replace('subgraph', 'subquery');\n  subgraphManifest.author = thegraphPackage.author;\n  subgraphManifest.description = subgraphManifest.description ?? thegraphPackage.description;\n  subgraphManifest.repository = '';\n}\n\n// Pull a network starter, as base project. Then mapping, manifest, schema can be overridden, copy over abi files\nexport async function prepareProject(chainInfo: ChainInfo, subqlDir: string): Promise<void> {\n  const exampleProjects = await fetchExampleProjects(\n    networkFamilyToTemplateNetwork(chainInfo.networkFamily),\n    chainInfo.chainId\n  );\n  const templateProject = exampleProjects.find((p) => p.name.includes('-starter'));\n  if (!templateProject) {\n    throw new Error(\n      `Could not find subquery template for network ${chainInfo.networkFamily} chain ${chainInfo.chainId}`\n    );\n  }\n  await cloneProjectTemplate(path.parse(subqlDir).dir, path.parse(subqlDir).name, templateProject);\n}\n\nexport async function getChainIdByNetworkName(networkFamily: NETWORK_FAMILY, chainName: string): Promise<string> {\n  const graphFamily = networkFamily.toLowerCase() === 'ethereum' ? 'eip155' : networkFamily.toLowerCase();\n  const url = `https://raw.githubusercontent.com/graphprotocol/networks-registry/refs/heads/main/registry/${graphFamily}/${chainName}.json`;\n\n  try {\n    const res = await fetch(url);\n\n    const data = (await res.json()) as {caip2Id: string};\n\n    const [prefix, chainId] = data.caip2Id.split(':');\n\n    if (!chainId) {\n      // Should be re-caught and thrown below\n      throw new Error('Invalid data');\n    }\n\n    return chainId;\n  } catch (e) {\n    throw new Error(`Could not find chainId for network ${networkFamily} chain ${chainName}`);\n  }\n}\n\nfunction networkFamilyToTemplateNetwork(networkFamily: NETWORK_FAMILY): string {\n  switch (networkFamily) {\n    case NETWORK_FAMILY.ethereum:\n      return 'evm';\n    default:\n      // like polkadot/algorand\n      return networkFamily.toLowerCase();\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/migrate.fixtures.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {SubgraphProject} from './types';\n\nexport const TestSubgraph: SubgraphProject = {\n  specVersion: '0.0.4',\n  description: 'POAP',\n  repository: 'https://github.com/poap-xyz/poap-mainnet-subgraph',\n  schema: {\n    file: './schema.graphql',\n  },\n  dataSources: [\n    {\n      kind: 'ethereum/contract',\n      name: 'Poap',\n      network: 'mainnet',\n      source: {\n        address: '0x22C1f6050E56d2876009903609a2cC3fEf83B415',\n        abi: 'Poap',\n        startBlock: 7844214,\n      },\n\n      mapping: {\n        kind: 'ethereum/events',\n        apiVersion: '0.0.6',\n        language: 'wasm/assemblyscript',\n        entities: ['EventToken', 'Transfer'],\n        abis: [{name: 'Poap', file: './abis/Poap.json'}],\n        eventHandlers: [\n          {event: 'EventToken(uint256,uint256)', handler: 'handleEventToken'},\n          {event: 'Transfer(indexed address,indexed address,indexed uint256)', handler: 'handleTransfer'},\n        ],\n        file: './src/mapping.ts',\n      },\n    },\n  ],\n};\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/schema/__snapshots__/migrate-schema.controller.spec.ts.snap",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`Subgraph Graphql Schema migration correctly migrates a schema 1`] = `\n\"\"\"\"The Example entity has an example of various fields\"\"\"\ntype ExampleEntity @entity @fullText(fields: [\"optionalString\", \"requiredString\", \"optionalStringList\"], language: \"english\") {\n  \"\"\"The id is required and a unique identifier of the entity\"\"\"\n  id: ID!\n  optionalBoolean: Boolean\n  requiredBoolean: Boolean!\n  optionalBooleanList: [Boolean!]\n  requiredBooleanList: [Boolean!]!\n  optionalString: String\n  requiredString: String!\n  optionalStringList: [String!]\n  requiredStringList: [String!]!\n  optionalBytes: String\n  requiredBytes: String!\n  optionalBytesList: [String!]\n  requiredBytesList: [String!]!\n  optionalInt: Int\n  requiredInt: Int!\n  optionalIntList: [Int!]\n  requiredIntList: [Int!]!\n  optionalInt8: Int\n  requiredInt8: Int!\n  optionalInt8List: [Int!]\n  requiredInt8List: [Int!]!\n  optionalBigInt: BigInt\n  requiredBigInt: BigInt!\n  optionalBigIntList: [BigInt!]\n  requiredBigIntList: [BigInt!]!\n  optionalBigDecimal: Float\n  requiredBigDecimal: Float!\n  optionalBigDecimalList: [Float!]\n  requiredBigDecimalList: [Float!]!\n  optionalTimestamp: Date\n  requiredTimestamp: Date!\n  optionalTimestampList: [Date!]\n  requiredTimestampList: [Date!]!\n  optionalReference: OtherEntity\n  requiredReference: OtherEntity!\n  optionalReferenceList: [OtherEntity!] @derivedFrom(field: \"<replace-me>\")\n  requiredReferenceList: [OtherEntity!]! @derivedFrom(field: \"<replace-me>\")\n  derivedEntity: [FooEntity!]! @derivedFrom(field: \"example\")\n  derivedEntity2: [FooEntity!]! @derivedFrom(field: \"example\")\n}\n\ntype OtherEntity @entity {\n  id: ID!\n}\n\ntype FooEntity @entity {\n  id: ID!\n  example: ExampleEntity!\n}\"\n`;\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/schema/migrate-schema.controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {migrateSchemaFromString} from './migrate-schema.controller';\n\ndescribe('Subgraph Graphql Schema migration', () => {\n  it('correctly migrates a schema', () => {\n    // This schema is a mix of schemas from https://github.com/graphprotocol/graph-tooling/tree/main/examples as well as the docs\n    const schema = `\n    type _Schema_\n    @fulltext(\n      name: \"exampleSearch\"\n      language: en\n      algorithm: rank\n      include: [{ entity: \"ExampleEntity\", fields: [{ name: \"optionalString\" }, { name: \"requiredString\" }, { name: \"optionalStringList\" }] }]\n    )\n\n    \"\"\"\n    The Example entity has an example of various fields\n    \"\"\"\n    type ExampleEntity @entity {\n      \"\"\"\n      The id is required and a unique identifier of the entity\n      \"\"\"\n      id: ID!\n\n      optionalBoolean: Boolean\n      requiredBoolean: Boolean!\n      optionalBooleanList: [Boolean!]\n      requiredBooleanList: [Boolean!]!\n\n      optionalString: String\n      requiredString: String!\n      optionalStringList: [String!]\n      requiredStringList: [String!]!\n\n      optionalBytes: Bytes\n      requiredBytes: Bytes!\n      optionalBytesList: [Bytes!]\n      requiredBytesList: [Bytes!]!\n\n      optionalInt: Int\n      requiredInt: Int!\n      optionalIntList: [Int!]\n      requiredIntList: [Int!]!\n\n      optionalInt8: Int8\n      requiredInt8: Int8!\n      optionalInt8List: [Int8!]\n      requiredInt8List: [Int8!]!\n\n      optionalBigInt: BigInt\n      requiredBigInt: BigInt!\n      optionalBigIntList: [BigInt!]\n      requiredBigIntList: [BigInt!]!\n\n      optionalBigDecimal: BigDecimal\n      requiredBigDecimal: BigDecimal!\n      optionalBigDecimalList: [BigDecimal!]\n      requiredBigDecimalList: [BigDecimal!]!\n\n      optionalTimestamp: Timestamp\n      requiredTimestamp: Timestamp!\n      optionalTimestampList: [Timestamp!]\n      requiredTimestampList: [Timestamp!]!\n\n      optionalReference: OtherEntity\n      requiredReference: OtherEntity!\n      optionalReferenceList: [OtherEntity!]\n      requiredReferenceList: [OtherEntity!]!\n\n      derivedEntity: [FooEntity!]! @derivedFrom(field: \"example\")\n      derivedEntity2: [FooEntity!]!\n    }\n\n    type OtherEntity @entity(immutable: true, timeseries: true) {\n      id: ID!\n    }\n\n    type FooEntity @entity {\n      id: Bytes!\n\n      example: ExampleEntity!\n    }\n\n    type Stats @aggregation(intervals: [\"hour\", \"day\"], source: \"Block\") {\n      # The id; it is the id of one of the data points that were aggregated into\n      # this bucket, but which one is undefined and should not be relied on\n      id: Int8!\n      # The timestamp of the bucket is always the timestamp of the beginning of\n      # the interval\n      timestamp: Timestamp!\n\n      # The aggregates\n\n      # A count of the number of data points that went into this bucket\n      count: Int! @aggregate(fn: \"count\")\n      # The max(number) of the data points for this bucket\n      max: BigDecimal! @aggregate(fn: \"max\", arg: \"number\")\n      min: BigDecimal! @aggregate(fn: \"min\", arg: \"number\")\n      # sum_{i=n}^m i = (m - n + 1) * (n + m) / 2\n      sum: BigInt! @aggregate(fn: \"sum\", arg: \"number\")\n      first: Int! @aggregate(fn: \"first\", arg: \"number\")\n      last: Int! @aggregate(fn: \"last\", arg: \"number\")\n      maxGas: BigInt! @aggregate(fn: \"max\", arg: \"gasUsed\")\n      maxDifficulty: BigInt! @aggregate(fn: \"max\", arg: \"difficulty\")\n    }\n    `;\n\n    const migratedSchema = migrateSchemaFromString(schema);\n\n    console.log('Migrated schema', migratedSchema);\n\n    expect(migratedSchema).toMatchSnapshot();\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/schema/migrate-schema.controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport {\n  Source,\n  parse,\n  print,\n  TypeNode,\n  NamedTypeNode,\n  Kind,\n  StringValueNode,\n  ValueNode,\n  ObjectValueNode,\n  ObjectTypeDefinitionNode,\n  DefinitionNode,\n  DirectiveNode,\n  ListValueNode,\n  FieldDefinitionNode,\n} from 'graphql';\n\n// Extra schema definitions used by the graph\n// const subgraphScalars = gql`\n//   scalar Int8\n//   scalar Timestamp\n// `;\n\n// const subgraphDirectives = gql`\n//   type FulltextInclude {\n//     name: String!\n//   }\n\n//   directive @fulltext(name: String!, language: String!, algorithm: String!, include: [FulltextInclude!]!) on OBJECT\n// `;\n\nexport async function migrateSchema(subgraphSchemaPath: string, subqlSchemaPath: string): Promise<void> {\n  await fs.promises.rm(subqlSchemaPath, {force: true});\n\n  const file = await fs.promises.readFile(subgraphSchemaPath);\n  const output = migrateSchemaFromString(file.toString('utf8'));\n  await fs.promises.writeFile(subqlSchemaPath, output);\n  console.log(\n    `* schema.graphql has been migrated. If there are any issues see our documentation for more details https://academy.subquery.network/build/graphql.html`\n  );\n}\n\n// This is the scalars available to Subquery projects.\nconst subqlScalars = new Set(['String', 'Int', 'Boolean', 'ID', 'Date', 'Bytes', 'Float', 'BigInt', 'BigDecimal']);\n\nexport function migrateSchemaFromString(input: string): string {\n  const src = new Source(input);\n  const doc = parse(src);\n\n  const updated = doc.definitions\n    .filter((definition) => {\n      if (isObjectType(definition)) {\n        const aggregationDirective = definition.directives?.find((d) => d.name.value === 'aggregation');\n        if (aggregationDirective) {\n          console.warn(`The Aggregation directive is not supported. type=\"${definition.name.value}\" has been removed`);\n          return false;\n        }\n      }\n\n      return true;\n    })\n    .map((definition) => {\n      if (isObjectType(definition)) {\n        // Convert fulltext search directives\n        if (definition.name.value === '_Schema_') {\n          definition.directives?.forEach((directive) => {\n            convertFulltextDirective(directive, doc.definitions);\n          });\n          // No mutations to the global schema\n          return definition;\n        }\n\n        // Map field types to known types\n        (definition as any).fields = definition.fields?.map((field) => {\n          modifyTypeNode(field.type, (type) => {\n            // SubQuery only supports ID type for id\n            if (field.name.value === 'id') {\n              (type.name as any).value = 'ID';\n            }\n            if (type.name.value === 'Int8') {\n              (type.name as any).value = 'Int';\n            }\n            if (type.name.value === 'Timestamp') {\n              (type.name as any).value = 'Date';\n            }\n            // Follow type difference in here https://academy.subquery.network/indexer/build/graph-migration.html#differences-in-the-graphql-schema\n            if (type.name.value === 'BigDecimal') {\n              (type.name as any).value = 'Float';\n            }\n            if (type.name.value === 'Bytes') {\n              (type.name as any).value = 'String';\n            }\n            convertRelations(doc.definitions, definition, field, type);\n\n            return type;\n          });\n\n          return field;\n        });\n\n        // Remove unsupported arguments from entity directive\n        const entityDirective = definition.directives?.find((d) => d.name.value === 'entity');\n        if (!entityDirective) throw new Error('Object is missing entity directive');\n\n        (entityDirective.arguments as any) = entityDirective.arguments?.filter((arg) => {\n          if (arg.name.value === 'immutable') {\n            console.warn(`Immutable option is not supported. Removing from entity=\"${definition.name.value}\"`);\n            return false;\n          }\n          if (arg.name.value === 'timeseries') {\n            console.warn(`Timeseries option is not supported. Removing from entity=\"${definition.name.value}\"`);\n            return false;\n          }\n          return true;\n        });\n      }\n\n      return definition;\n    })\n    // Remove the _Schema_ type\n    .filter((def) => !(isObjectType(def) && def.name.value === '_Schema_'));\n\n  return print({...doc, definitions: updated});\n}\n\nfunction convertFulltextDirective(directive: DirectiveNode, definitions: readonly DefinitionNode[]) {\n  if (directive.name.value !== 'fulltext') return;\n  // TODO should add runtime check for StringValueNode\n  const name = (directive.arguments?.find((arg) => arg.name.value === 'name')?.value as StringValueNode)?.value;\n\n  const includeOpt = directive.arguments?.find((arg) => arg.name.value === 'include');\n  if (!includeOpt) throw new Error(\"Expected fulltext directive to have an 'include' argument\");\n  if (includeOpt.value.kind !== Kind.LIST) throw new Error('Expected include argument to be a list');\n  if (includeOpt.value.values.length !== 1) {\n    throw new Error(`SubQuery only supports fulltext search on a single entity. name=${name}`);\n  }\n\n  const includeParams = includeOpt.value.values[0];\n\n  // Get the entity name\n  if (!isObjectValueNode(includeParams)) throw new Error(`Expected object value, received ${includeParams.kind}`);\n  const entityName = includeParams.fields.find((f) => f.name.value === 'entity')?.value;\n  if (!entityName || !isStringValueNode(entityName)) throw new Error('Entity name is invalid');\n\n  // Get the entity fields\n  const fields = includeParams.fields.find((f) => f.name.value === 'fields')?.value;\n  if (!fields) throw new Error('Unable to find fields for fulltext search');\n  if (!isListValueNode(fields)) throw new Error('Expected fields to be a list');\n  const fieldNames = fields.values.map((field) => {\n    if (!isObjectValueNode(field)) throw new Error('Field is invalid');\n\n    const nameField = field.fields.find((f) => f.name.value === 'name');\n    if (!nameField) throw new Error('Fields field is missing name');\n    return nameField.value;\n  });\n  if (!fieldNames.length) throw new Error('Fulltext search requires at least one field');\n\n  // Find the entity to add the directive\n  const entity = findEntity(definitions, entityName.value);\n  if (!entity) throw new Error(`Unable to find entity ${entityName.value} for fulltext search`);\n\n  // Add the fulltext directive to the entity\n  (entity.directives as any) ??= [];\n  (entity.directives as any).push(makeFulltextDirective(fieldNames.map((f) => (f as any).value)));\n}\n\n// Some relations are handled differently to the Graph, add the necessary directive here\nfunction convertRelations(\n  definitions: readonly DefinitionNode[],\n  definition: ObjectTypeDefinitionNode,\n  field: FieldDefinitionNode,\n  type: NamedTypeNode\n) {\n  // This scalars check is a best effort to find types that are relations\n  if (!subqlScalars.has(type.name.value)) {\n    if (!field.directives?.find((d) => d.name.value === 'derivedFrom') && isListType(field.type)) {\n      // Find the referenced entity\n      const entity = findEntity(definitions, type.name.value);\n      if (!entity) {\n        throw new Error(`Cannot find entity referenced by field ${field.name.value} on type ${definition.name.value}`);\n      }\n\n      // Only care if its an entity. i.e. not a JSON type\n      if (entity.directives?.find((d) => d.name.value === 'entity')) {\n        // Try to find a field with the same name as the type\n        let name = '';\n        const matches = entity.fields?.filter((field) => isFieldOfType(field.type, definition.name.value));\n\n        if (matches?.length === 1) {\n          name = matches?.[0]?.name.value;\n        } else {\n          if (!matches?.length) {\n            console.warn(\n              `Unable to find a lookup on ${entity.name.value} for \"${definition.name.value}.${field.name.value}\". You will need to manually set the \"field\" property`\n            );\n          } else {\n            console.warn(\n              `Found multiple matches of ${entity.name.value} for \"${definition.name.value}.${field.name.value}\". You will need to manually set the \"field\" property`\n            );\n          }\n          name = '<replace-me>';\n        }\n\n        // Add the necessary directive\n        (field.directives as any) ??= [];\n        (field.directives as any).push(makeDerivedFromDirective(name));\n      }\n    }\n  }\n}\n\n// Drills down to the inner type and runs the modFn on it, this runs in place\nfunction modifyTypeNode(type: TypeNode, modFn: (innerType: NamedTypeNode) => NamedTypeNode): TypeNode {\n  if (type.kind === Kind.NON_NULL_TYPE || type.kind === Kind.LIST_TYPE) {\n    return modifyTypeNode(type.type, modFn);\n  }\n  return modFn(type);\n}\n\nfunction isListType(type: TypeNode): boolean {\n  if (type.kind === Kind.LIST_TYPE) {\n    return true;\n  }\n\n  if (type.kind === Kind.NON_NULL_TYPE) {\n    return isListType(type.type);\n  }\n\n  return false;\n}\n\n// Finds the underlying type ignoring nullability\nfunction isFieldOfType(type: TypeNode, desired: string): boolean {\n  if (type.kind === Kind.NON_NULL_TYPE) {\n    return isFieldOfType(type.type, desired);\n  }\n  return type.kind !== Kind.LIST_TYPE && type.name.value === desired;\n}\n\nfunction findEntity(definitions: readonly DefinitionNode[], name: string): ObjectTypeDefinitionNode | undefined {\n  // Cast can be removed with newver version of typescript\n  return definitions.find((def) => isObjectType(def) && def.name.value === name) as\n    | ObjectTypeDefinitionNode\n    | undefined;\n}\n\nfunction makeFulltextDirective(fields: string[], language = 'english'): DirectiveNode {\n  return {\n    kind: Kind.DIRECTIVE,\n    name: {\n      kind: Kind.NAME,\n      value: 'fullText',\n    },\n    arguments: [\n      {\n        kind: Kind.ARGUMENT,\n        name: {\n          kind: Kind.NAME,\n          value: 'fields',\n        },\n        value: {\n          kind: Kind.LIST,\n          values: fields.map((field) => ({\n            kind: Kind.STRING,\n            value: field,\n          })),\n        },\n      },\n      {\n        kind: Kind.ARGUMENT,\n        name: {\n          kind: Kind.NAME,\n          value: 'language',\n        },\n        value: {\n          kind: Kind.STRING,\n          value: language,\n        },\n      },\n    ],\n  } satisfies DirectiveNode;\n}\n\nfunction makeDerivedFromDirective(field: string): DirectiveNode {\n  return {\n    kind: Kind.DIRECTIVE,\n    name: {\n      kind: Kind.NAME,\n      value: 'derivedFrom',\n    },\n    arguments: [\n      {\n        kind: Kind.ARGUMENT,\n        name: {\n          kind: Kind.NAME,\n          value: 'field',\n        },\n        value: {\n          kind: Kind.STRING,\n          value: field,\n        },\n      },\n    ],\n  } satisfies DirectiveNode;\n}\n\nfunction isObjectType(node: DefinitionNode): node is ObjectTypeDefinitionNode {\n  return node.kind === Kind.OBJECT_TYPE_DEFINITION;\n}\n\nfunction isObjectValueNode(node: ValueNode): node is ObjectValueNode {\n  return node.kind === Kind.OBJECT;\n}\n\nfunction isListValueNode(node: ValueNode): node is ListValueNode {\n  return node.kind === Kind.LIST;\n}\n\nfunction isStringValueNode(node: ValueNode): node is StringValueNode {\n  return node.kind === Kind.STRING;\n}\n"
  },
  {
    "path": "packages/cli/src/controller/migrate/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NETWORK_FAMILY} from '@subql/common';\nimport {DatasourceKind, TemplateKind} from '../codegen-controller';\nimport {ExampleProjectInterface} from '../init-controller';\n\nexport interface NetworkUtils {\n  dsConverter: DsConvertFunction;\n  templateConverter: TemplateConvertFunction;\n}\n\nexport interface NetworkExampleProject {\n  [key: string]: ExampleProjectInterface;\n}\n\nexport interface ChainInfo {\n  networkFamily: NETWORK_FAMILY;\n  chainId: string;\n}\n\nexport interface SubgraphTemplateSource {\n  abi: string;\n}\n\nexport interface SubgraphSource extends SubgraphTemplateSource {\n  address: string;\n  startBlock: number;\n  endBlock?: number;\n}\n\nexport interface SubgraphDataSourceBase {\n  kind: string;\n  name: string;\n  network: string;\n  mapping: SubgraphMapping;\n  context?: Record<string, {type: string; data: boolean | string}>;\n}\n\nexport interface SubgraphDataSource extends SubgraphDataSourceBase {\n  source: SubgraphSource;\n}\n\nexport interface SubgraphTemplate extends SubgraphDataSourceBase {\n  source: SubgraphTemplateSource;\n}\n\ninterface SubgraphMapping {\n  kind: string;\n  apiVersion: string;\n  language: string;\n  entities: string[];\n  abis: {name: string; file: string}[];\n  eventHandlers?: {event: string; handler: string}[];\n  callHandlers?: {function: string; handler: string}[];\n  blockHandlers?: {filter?: {kind: string}; handler: string}[]; //TODO, subql support this filter\n  file: string;\n}\n\nexport interface SubgraphProject {\n  features?: string[];\n  graft?: {base: string; block: number};\n  name?: string;\n  author?: string;\n  specVersion: string;\n  description: string;\n  repository: string;\n  schema: {\n    file: string;\n  };\n  dataSources: SubgraphDataSource[];\n  templates?: SubgraphTemplate[];\n}\n\ntype MigrateMappingType<T extends DatasourceKind | TemplateKind> = {\n  handlers: (T['mapping']['handlers'][number] & {migrateHandlerType: string})[];\n};\nexport type MigrateDatasourceKind<T extends DatasourceKind | TemplateKind = DatasourceKind> = T & {\n  migrateDatasourceType: string;\n  mapping: T['mapping'] & MigrateMappingType<T>;\n};\n\n// TODO, currently use DatasourceKind, which migrate network supported,should be a new type include all network dataSources\nexport type DsConvertFunction = (ds: SubgraphDataSource) => MigrateDatasourceKind;\nexport type TemplateConvertFunction = (ds: SubgraphTemplate) => MigrateDatasourceKind<TemplateKind>;\n"
  },
  {
    "path": "packages/cli/src/controller/network/__graphql__/base-types.ts",
    "content": "export type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends {[key: string]: unknown}> = {[K in keyof T]: T[K]};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {[SubKey in K]?: Maybe<T[SubKey]>};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {[SubKey in K]: Maybe<T[SubKey]>};\nexport type MakeEmpty<T extends {[key: string]: unknown}, K extends keyof T> = {[_ in K]?: never};\nexport type Incremental<T> = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never};\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n  ID: {input: string; output: string};\n  String: {input: string; output: string};\n  Boolean: {input: boolean; output: boolean};\n  Int: {input: number; output: number};\n  Float: {input: number; output: number};\n  BigFloat: {input: string; output: string};\n  BigInt: {input: string; output: string};\n  Cursor: {input: string; output: string};\n  Date: {input: Date; output: Date};\n  Datetime: {input: Date; output: Date};\n  JSON: {input: any; output: any};\n};\n\nexport type AcceptedOffer = Node & {\n  readonly __typename: 'AcceptedOffer';\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `AcceptedOffer`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `Offer` that is related to this `AcceptedOffer`. */\n  readonly offer: Maybe<Offer>;\n  readonly offerId: Scalars['String']['output'];\n  /** Reads a single `ServiceAgreement` that is related to this `AcceptedOffer`. */\n  readonly serviceAgreement: Maybe<ServiceAgreement>;\n  readonly serviceAgreementId: Scalars['String']['output'];\n};\n\nexport type AcceptedOfferAggregates = {\n  readonly __typename: 'AcceptedOfferAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<AcceptedOfferAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<AcceptedOfferDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<AcceptedOfferMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<AcceptedOfferMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<AcceptedOfferStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<AcceptedOfferStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<AcceptedOfferSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<AcceptedOfferVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<AcceptedOfferVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `AcceptedOffer` object types. */\nexport type AcceptedOfferAggregatesFilter = {\n  /** Mean average aggregate over matching `AcceptedOffer` objects. */\n  readonly average: InputMaybe<AcceptedOfferAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `AcceptedOffer` objects. */\n  readonly distinctCount: InputMaybe<AcceptedOfferDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `AcceptedOffer` object to be included within the aggregate. */\n  readonly filter: InputMaybe<AcceptedOfferFilter>;\n  /** Maximum aggregate over matching `AcceptedOffer` objects. */\n  readonly max: InputMaybe<AcceptedOfferMaxAggregateFilter>;\n  /** Minimum aggregate over matching `AcceptedOffer` objects. */\n  readonly min: InputMaybe<AcceptedOfferMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `AcceptedOffer` objects. */\n  readonly stddevPopulation: InputMaybe<AcceptedOfferStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `AcceptedOffer` objects. */\n  readonly stddevSample: InputMaybe<AcceptedOfferStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `AcceptedOffer` objects. */\n  readonly sum: InputMaybe<AcceptedOfferSumAggregateFilter>;\n  /** Population variance aggregate over matching `AcceptedOffer` objects. */\n  readonly variancePopulation: InputMaybe<AcceptedOfferVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `AcceptedOffer` objects. */\n  readonly varianceSample: InputMaybe<AcceptedOfferVarianceSampleAggregateFilter>;\n};\n\nexport type AcceptedOfferAverageAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type AcceptedOfferAverageAggregates = {\n  readonly __typename: 'AcceptedOfferAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AcceptedOfferDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n  readonly offerId: InputMaybe<BigIntFilter>;\n  readonly serviceAgreementId: InputMaybe<BigIntFilter>;\n};\n\nexport type AcceptedOfferDistinctCountAggregates = {\n  readonly __typename: 'AcceptedOfferDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of offerId across the matching connection */\n  readonly offerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of serviceAgreementId across the matching connection */\n  readonly serviceAgreementId: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `AcceptedOffer` object types. All fields are combined with a logical ‘and.’ */\nexport type AcceptedOfferFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<AcceptedOfferFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<AcceptedOfferFilter>;\n  /** Filter by the object’s `offer` relation. */\n  readonly offer: InputMaybe<OfferFilter>;\n  /** Filter by the object’s `offerId` field. */\n  readonly offerId: InputMaybe<StringFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<AcceptedOfferFilter>>;\n  /** Filter by the object’s `serviceAgreement` relation. */\n  readonly serviceAgreement: InputMaybe<ServiceAgreementFilter>;\n  /** Filter by the object’s `serviceAgreementId` field. */\n  readonly serviceAgreementId: InputMaybe<StringFilter>;\n};\n\nexport type AcceptedOfferMaxAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type AcceptedOfferMaxAggregates = {\n  readonly __typename: 'AcceptedOfferMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type AcceptedOfferMinAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type AcceptedOfferMinAggregates = {\n  readonly __typename: 'AcceptedOfferMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type AcceptedOfferStddevPopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type AcceptedOfferStddevPopulationAggregates = {\n  readonly __typename: 'AcceptedOfferStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AcceptedOfferStddevSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type AcceptedOfferStddevSampleAggregates = {\n  readonly __typename: 'AcceptedOfferStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AcceptedOfferSumAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n};\n\nexport type AcceptedOfferSumAggregates = {\n  readonly __typename: 'AcceptedOfferSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\nexport type AcceptedOfferVariancePopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type AcceptedOfferVariancePopulationAggregates = {\n  readonly __typename: 'AcceptedOfferVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AcceptedOfferVarianceSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type AcceptedOfferVarianceSampleAggregates = {\n  readonly __typename: 'AcceptedOfferVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `AcceptedOffer` values. */\nexport type AcceptedOffersConnection = {\n  readonly __typename: 'AcceptedOffersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<AcceptedOfferAggregates>;\n  /** A list of edges which contains the `AcceptedOffer` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<AcceptedOffersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<AcceptedOfferAggregates>>;\n  /** A list of `AcceptedOffer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<AcceptedOffer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `AcceptedOffer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `AcceptedOffer` values. */\nexport type AcceptedOffersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<AcceptedOffersGroupBy>;\n  having: InputMaybe<AcceptedOffersHavingInput>;\n};\n\n/** A `AcceptedOffer` edge in the connection. */\nexport type AcceptedOffersEdge = {\n  readonly __typename: 'AcceptedOffersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `AcceptedOffer` at the end of the edge. */\n  readonly node: Maybe<AcceptedOffer>;\n};\n\n/** Grouping methods for `AcceptedOffer` for usage during aggregation. */\nexport enum AcceptedOffersGroupBy {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  LAST_EVENT = 'LAST_EVENT',\n  OFFER_ID = 'OFFER_ID',\n  SERVICE_AGREEMENT_ID = 'SERVICE_AGREEMENT_ID',\n}\n\nexport type AcceptedOffersHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type AcceptedOffersHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `AcceptedOffer` aggregates. */\nexport type AcceptedOffersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<AcceptedOffersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<AcceptedOffersHavingInput>>;\n  readonly average: InputMaybe<AcceptedOffersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<AcceptedOffersHavingDistinctCountInput>;\n  readonly max: InputMaybe<AcceptedOffersHavingMaxInput>;\n  readonly min: InputMaybe<AcceptedOffersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<AcceptedOffersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<AcceptedOffersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<AcceptedOffersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<AcceptedOffersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<AcceptedOffersHavingVarianceSampleInput>;\n};\n\nexport type AcceptedOffersHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type AcceptedOffersHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type AcceptedOffersHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type AcceptedOffersHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type AcceptedOffersHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type AcceptedOffersHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type AcceptedOffersHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `AcceptedOffer`. */\nexport enum AcceptedOffersOrderBy {\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  OFFER_BY_OFFER_ID__ACCEPTED_ASC = 'OFFER_BY_OFFER_ID__ACCEPTED_ASC',\n  OFFER_BY_OFFER_ID__ACCEPTED_DESC = 'OFFER_BY_OFFER_ID__ACCEPTED_DESC',\n  OFFER_BY_OFFER_ID__CONSUMER_ASC = 'OFFER_BY_OFFER_ID__CONSUMER_ASC',\n  OFFER_BY_OFFER_ID__CONSUMER_DESC = 'OFFER_BY_OFFER_ID__CONSUMER_DESC',\n  OFFER_BY_OFFER_ID__CREATED_BLOCK_ASC = 'OFFER_BY_OFFER_ID__CREATED_BLOCK_ASC',\n  OFFER_BY_OFFER_ID__CREATED_BLOCK_DESC = 'OFFER_BY_OFFER_ID__CREATED_BLOCK_DESC',\n  OFFER_BY_OFFER_ID__DEPLOYMENT_ID_ASC = 'OFFER_BY_OFFER_ID__DEPLOYMENT_ID_ASC',\n  OFFER_BY_OFFER_ID__DEPLOYMENT_ID_DESC = 'OFFER_BY_OFFER_ID__DEPLOYMENT_ID_DESC',\n  OFFER_BY_OFFER_ID__DEPOSIT_ASC = 'OFFER_BY_OFFER_ID__DEPOSIT_ASC',\n  OFFER_BY_OFFER_ID__DEPOSIT_DESC = 'OFFER_BY_OFFER_ID__DEPOSIT_DESC',\n  OFFER_BY_OFFER_ID__EXPIRE_DATE_ASC = 'OFFER_BY_OFFER_ID__EXPIRE_DATE_ASC',\n  OFFER_BY_OFFER_ID__EXPIRE_DATE_DESC = 'OFFER_BY_OFFER_ID__EXPIRE_DATE_DESC',\n  OFFER_BY_OFFER_ID__ID_ASC = 'OFFER_BY_OFFER_ID__ID_ASC',\n  OFFER_BY_OFFER_ID__ID_DESC = 'OFFER_BY_OFFER_ID__ID_DESC',\n  OFFER_BY_OFFER_ID__LAST_EVENT_ASC = 'OFFER_BY_OFFER_ID__LAST_EVENT_ASC',\n  OFFER_BY_OFFER_ID__LAST_EVENT_DESC = 'OFFER_BY_OFFER_ID__LAST_EVENT_DESC',\n  OFFER_BY_OFFER_ID__LIMIT_ASC = 'OFFER_BY_OFFER_ID__LIMIT_ASC',\n  OFFER_BY_OFFER_ID__LIMIT_DESC = 'OFFER_BY_OFFER_ID__LIMIT_DESC',\n  OFFER_BY_OFFER_ID__MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFER_BY_OFFER_ID__MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFER_BY_OFFER_ID__MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFER_BY_OFFER_ID__MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFER_BY_OFFER_ID__MINIMUM_STAKING_AMOUNT_ASC = 'OFFER_BY_OFFER_ID__MINIMUM_STAKING_AMOUNT_ASC',\n  OFFER_BY_OFFER_ID__MINIMUM_STAKING_AMOUNT_DESC = 'OFFER_BY_OFFER_ID__MINIMUM_STAKING_AMOUNT_DESC',\n  OFFER_BY_OFFER_ID__PLAN_TEMPLATE_ID_ASC = 'OFFER_BY_OFFER_ID__PLAN_TEMPLATE_ID_ASC',\n  OFFER_BY_OFFER_ID__PLAN_TEMPLATE_ID_DESC = 'OFFER_BY_OFFER_ID__PLAN_TEMPLATE_ID_DESC',\n  OFFER_BY_OFFER_ID__REACH_LIMIT_ASC = 'OFFER_BY_OFFER_ID__REACH_LIMIT_ASC',\n  OFFER_BY_OFFER_ID__REACH_LIMIT_DESC = 'OFFER_BY_OFFER_ID__REACH_LIMIT_DESC',\n  OFFER_BY_OFFER_ID__WITHDRAWN_ASC = 'OFFER_BY_OFFER_ID__WITHDRAWN_ASC',\n  OFFER_BY_OFFER_ID__WITHDRAWN_DESC = 'OFFER_BY_OFFER_ID__WITHDRAWN_DESC',\n  OFFER_BY_OFFER_ID__WITHDRAW_PENALTY_ASC = 'OFFER_BY_OFFER_ID__WITHDRAW_PENALTY_ASC',\n  OFFER_BY_OFFER_ID__WITHDRAW_PENALTY_DESC = 'OFFER_BY_OFFER_ID__WITHDRAW_PENALTY_DESC',\n  OFFER_ID_ASC = 'OFFER_ID_ASC',\n  OFFER_ID_DESC = 'OFFER_ID_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__CREATED_BLOCK_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__CREATED_BLOCK_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__END_TIME_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__END_TIME_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__END_TIME_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__END_TIME_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__ID_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__ID_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__ID_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__ID_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__LAST_EVENT_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__LAST_EVENT_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__LAST_EVENT_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__LAST_EVENT_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__PERIOD_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__PERIOD_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__PERIOD_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__PERIOD_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__START_TIME_ASC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__START_TIME_ASC',\n  SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__START_TIME_DESC = 'SERVICE_AGREEMENT_BY_SERVICE_AGREEMENT_ID__START_TIME_DESC',\n  SERVICE_AGREEMENT_ID_ASC = 'SERVICE_AGREEMENT_ID_ASC',\n  SERVICE_AGREEMENT_ID_DESC = 'SERVICE_AGREEMENT_ID_DESC',\n}\n\nexport type Airdrop = Node & {\n  readonly __typename: 'Airdrop';\n  /** Reads and enables pagination through a set of `AirdropUser`. */\n  readonly airdropUsers: AirdropUsersConnection;\n  readonly createAt: Maybe<Scalars['String']['output']>;\n  readonly endTime: Scalars['Datetime']['output'];\n  readonly hasWithdrawn: Maybe<Scalars['Boolean']['output']>;\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly startTime: Scalars['Datetime']['output'];\n  readonly tokenAddress: Scalars['String']['output'];\n  readonly updateAt: Maybe<Scalars['String']['output']>;\n  readonly withdrawAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropAirdropUsersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Airdrop_Users_Distinct_Enum>>>;\n  filter: InputMaybe<AirdropUserFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AirdropUsersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type AirdropAggregates = {\n  readonly __typename: 'AirdropAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<AirdropAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<AirdropDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<AirdropMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<AirdropMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<AirdropStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<AirdropStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<AirdropSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<AirdropVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<AirdropVarianceSampleAggregates>;\n};\n\nexport type AirdropAmount = Node & {\n  readonly __typename: 'AirdropAmount';\n  readonly claimedAmount: Scalars['BigFloat']['output'];\n  readonly createAt: Maybe<Scalars['String']['output']>;\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly totalAirdropAmount: Scalars['BigFloat']['output'];\n  readonly updateAt: Maybe<Scalars['String']['output']>;\n};\n\nexport type AirdropAmountAggregates = {\n  readonly __typename: 'AirdropAmountAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<AirdropAmountAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<AirdropAmountDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<AirdropAmountMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<AirdropAmountMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<AirdropAmountStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<AirdropAmountStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<AirdropAmountSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<AirdropAmountVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<AirdropAmountVarianceSampleAggregates>;\n};\n\nexport type AirdropAmountAverageAggregates = {\n  readonly __typename: 'AirdropAmountAverageAggregates';\n  /** Mean average of claimedAmount across the matching connection */\n  readonly claimedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalAirdropAmount across the matching connection */\n  readonly totalAirdropAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropAmountDistinctCountAggregates = {\n  readonly __typename: 'AirdropAmountDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of claimedAmount across the matching connection */\n  readonly claimedAmount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalAirdropAmount across the matching connection */\n  readonly totalAirdropAmount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `AirdropAmount` object types. All fields are combined with a logical ‘and.’ */\nexport type AirdropAmountFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<AirdropAmountFilter>>;\n  /** Filter by the object’s `claimedAmount` field. */\n  readonly claimedAmount: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<AirdropAmountFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<AirdropAmountFilter>>;\n  /** Filter by the object’s `totalAirdropAmount` field. */\n  readonly totalAirdropAmount: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<StringFilter>;\n};\n\nexport type AirdropAmountMaxAggregates = {\n  readonly __typename: 'AirdropAmountMaxAggregates';\n  /** Maximum of claimedAmount across the matching connection */\n  readonly claimedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalAirdropAmount across the matching connection */\n  readonly totalAirdropAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropAmountMinAggregates = {\n  readonly __typename: 'AirdropAmountMinAggregates';\n  /** Minimum of claimedAmount across the matching connection */\n  readonly claimedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalAirdropAmount across the matching connection */\n  readonly totalAirdropAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropAmountStddevPopulationAggregates = {\n  readonly __typename: 'AirdropAmountStddevPopulationAggregates';\n  /** Population standard deviation of claimedAmount across the matching connection */\n  readonly claimedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalAirdropAmount across the matching connection */\n  readonly totalAirdropAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropAmountStddevSampleAggregates = {\n  readonly __typename: 'AirdropAmountStddevSampleAggregates';\n  /** Sample standard deviation of claimedAmount across the matching connection */\n  readonly claimedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalAirdropAmount across the matching connection */\n  readonly totalAirdropAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropAmountSumAggregates = {\n  readonly __typename: 'AirdropAmountSumAggregates';\n  /** Sum of claimedAmount across the matching connection */\n  readonly claimedAmount: Scalars['BigFloat']['output'];\n  /** Sum of totalAirdropAmount across the matching connection */\n  readonly totalAirdropAmount: Scalars['BigFloat']['output'];\n};\n\nexport type AirdropAmountVariancePopulationAggregates = {\n  readonly __typename: 'AirdropAmountVariancePopulationAggregates';\n  /** Population variance of claimedAmount across the matching connection */\n  readonly claimedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalAirdropAmount across the matching connection */\n  readonly totalAirdropAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropAmountVarianceSampleAggregates = {\n  readonly __typename: 'AirdropAmountVarianceSampleAggregates';\n  /** Sample variance of claimedAmount across the matching connection */\n  readonly claimedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalAirdropAmount across the matching connection */\n  readonly totalAirdropAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `AirdropAmount` values. */\nexport type AirdropAmountsConnection = {\n  readonly __typename: 'AirdropAmountsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<AirdropAmountAggregates>;\n  /** A list of edges which contains the `AirdropAmount` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<AirdropAmountsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<AirdropAmountAggregates>>;\n  /** A list of `AirdropAmount` objects. */\n  readonly nodes: ReadonlyArray<Maybe<AirdropAmount>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `AirdropAmount` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `AirdropAmount` values. */\nexport type AirdropAmountsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<AirdropAmountsGroupBy>;\n  having: InputMaybe<AirdropAmountsHavingInput>;\n};\n\n/** A `AirdropAmount` edge in the connection. */\nexport type AirdropAmountsEdge = {\n  readonly __typename: 'AirdropAmountsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `AirdropAmount` at the end of the edge. */\n  readonly node: Maybe<AirdropAmount>;\n};\n\n/** Grouping methods for `AirdropAmount` for usage during aggregation. */\nexport enum AirdropAmountsGroupBy {\n  CLAIMED_AMOUNT = 'CLAIMED_AMOUNT',\n  CREATE_AT = 'CREATE_AT',\n  ID = 'ID',\n  TOTAL_AIRDROP_AMOUNT = 'TOTAL_AIRDROP_AMOUNT',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport type AirdropAmountsHavingAverageInput = {\n  readonly claimedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAirdropAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropAmountsHavingDistinctCountInput = {\n  readonly claimedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAirdropAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `AirdropAmount` aggregates. */\nexport type AirdropAmountsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<AirdropAmountsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<AirdropAmountsHavingInput>>;\n  readonly average: InputMaybe<AirdropAmountsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<AirdropAmountsHavingDistinctCountInput>;\n  readonly max: InputMaybe<AirdropAmountsHavingMaxInput>;\n  readonly min: InputMaybe<AirdropAmountsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<AirdropAmountsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<AirdropAmountsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<AirdropAmountsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<AirdropAmountsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<AirdropAmountsHavingVarianceSampleInput>;\n};\n\nexport type AirdropAmountsHavingMaxInput = {\n  readonly claimedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAirdropAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropAmountsHavingMinInput = {\n  readonly claimedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAirdropAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropAmountsHavingStddevPopulationInput = {\n  readonly claimedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAirdropAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropAmountsHavingStddevSampleInput = {\n  readonly claimedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAirdropAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropAmountsHavingSumInput = {\n  readonly claimedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAirdropAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropAmountsHavingVariancePopulationInput = {\n  readonly claimedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAirdropAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropAmountsHavingVarianceSampleInput = {\n  readonly claimedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAirdropAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `AirdropAmount`. */\nexport enum AirdropAmountsOrderBy {\n  CLAIMED_AMOUNT_ASC = 'CLAIMED_AMOUNT_ASC',\n  CLAIMED_AMOUNT_DESC = 'CLAIMED_AMOUNT_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  TOTAL_AIRDROP_AMOUNT_ASC = 'TOTAL_AIRDROP_AMOUNT_ASC',\n  TOTAL_AIRDROP_AMOUNT_DESC = 'TOTAL_AIRDROP_AMOUNT_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type AirdropAverageAggregates = {\n  readonly __typename: 'AirdropAverageAggregates';\n  /** Mean average of withdrawAmount across the matching connection */\n  readonly withdrawAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport enum AirdropClaimStatus {\n  CLAIMED = 'CLAIMED',\n  UNCLAIMED = 'UNCLAIMED',\n}\n\n/** A filter to be used against AirdropClaimStatus fields. All fields are combined with a logical ‘and.’ */\nexport type AirdropClaimStatusFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<AirdropClaimStatus>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<AirdropClaimStatus>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<AirdropClaimStatus>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<AirdropClaimStatus>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<AirdropClaimStatus>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<AirdropClaimStatus>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<AirdropClaimStatus>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<AirdropClaimStatus>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<AirdropClaimStatus>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<AirdropClaimStatus>>;\n};\n\nexport type AirdropDistinctCountAggregates = {\n  readonly __typename: 'AirdropDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of endTime across the matching connection */\n  readonly endTime: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of hasWithdrawn across the matching connection */\n  readonly hasWithdrawn: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of startTime across the matching connection */\n  readonly startTime: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of tokenAddress across the matching connection */\n  readonly tokenAddress: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of withdrawAmount across the matching connection */\n  readonly withdrawAmount: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Airdrop` object types. All fields are combined with a logical ‘and.’ */\nexport type AirdropFilter = {\n  /** Filter by the object’s `airdropUsers` relation. */\n  readonly airdropUsers: InputMaybe<AirdropToManyAirdropUserFilter>;\n  /** Some related `airdropUsers` exist. */\n  readonly airdropUsersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<AirdropFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<StringFilter>;\n  /** Filter by the object’s `endTime` field. */\n  readonly endTime: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `hasWithdrawn` field. */\n  readonly hasWithdrawn: InputMaybe<BooleanFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<AirdropFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<AirdropFilter>>;\n  /** Filter by the object’s `startTime` field. */\n  readonly startTime: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `tokenAddress` field. */\n  readonly tokenAddress: InputMaybe<StringFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<StringFilter>;\n  /** Filter by the object’s `withdrawAmount` field. */\n  readonly withdrawAmount: InputMaybe<BigFloatFilter>;\n};\n\nexport type AirdropMaxAggregates = {\n  readonly __typename: 'AirdropMaxAggregates';\n  /** Maximum of withdrawAmount across the matching connection */\n  readonly withdrawAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropMinAggregates = {\n  readonly __typename: 'AirdropMinAggregates';\n  /** Minimum of withdrawAmount across the matching connection */\n  readonly withdrawAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropStddevPopulationAggregates = {\n  readonly __typename: 'AirdropStddevPopulationAggregates';\n  /** Population standard deviation of withdrawAmount across the matching connection */\n  readonly withdrawAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropStddevSampleAggregates = {\n  readonly __typename: 'AirdropStddevSampleAggregates';\n  /** Sample standard deviation of withdrawAmount across the matching connection */\n  readonly withdrawAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropSumAggregates = {\n  readonly __typename: 'AirdropSumAggregates';\n  /** Sum of withdrawAmount across the matching connection */\n  readonly withdrawAmount: Scalars['BigFloat']['output'];\n};\n\n/** A filter to be used against many `AirdropUser` object types. All fields are combined with a logical ‘and.’ */\nexport type AirdropToManyAirdropUserFilter = {\n  /** Aggregates across related `AirdropUser` match the filter criteria. */\n  readonly aggregates: InputMaybe<AirdropUserAggregatesFilter>;\n  /** Every related `AirdropUser` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<AirdropUserFilter>;\n  /** No related `AirdropUser` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<AirdropUserFilter>;\n  /** Some related `AirdropUser` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<AirdropUserFilter>;\n};\n\nexport type AirdropUser = Node & {\n  readonly __typename: 'AirdropUser';\n  /** Reads a single `Airdrop` that is related to this `AirdropUser`. */\n  readonly airdrop: Maybe<Airdrop>;\n  readonly airdropId: Scalars['String']['output'];\n  readonly amount: Scalars['BigFloat']['output'];\n  readonly createAt: Maybe<Scalars['String']['output']>;\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly status: AirdropClaimStatus;\n  readonly updateAt: Maybe<Scalars['String']['output']>;\n  readonly user: Scalars['String']['output'];\n};\n\nexport type AirdropUserAggregates = {\n  readonly __typename: 'AirdropUserAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<AirdropUserAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<AirdropUserDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<AirdropUserMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<AirdropUserMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<AirdropUserStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<AirdropUserStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<AirdropUserSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<AirdropUserVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<AirdropUserVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `AirdropUser` object types. */\nexport type AirdropUserAggregatesFilter = {\n  /** Mean average aggregate over matching `AirdropUser` objects. */\n  readonly average: InputMaybe<AirdropUserAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `AirdropUser` objects. */\n  readonly distinctCount: InputMaybe<AirdropUserDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `AirdropUser` object to be included within the aggregate. */\n  readonly filter: InputMaybe<AirdropUserFilter>;\n  /** Maximum aggregate over matching `AirdropUser` objects. */\n  readonly max: InputMaybe<AirdropUserMaxAggregateFilter>;\n  /** Minimum aggregate over matching `AirdropUser` objects. */\n  readonly min: InputMaybe<AirdropUserMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `AirdropUser` objects. */\n  readonly stddevPopulation: InputMaybe<AirdropUserStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `AirdropUser` objects. */\n  readonly stddevSample: InputMaybe<AirdropUserStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `AirdropUser` objects. */\n  readonly sum: InputMaybe<AirdropUserSumAggregateFilter>;\n  /** Population variance aggregate over matching `AirdropUser` objects. */\n  readonly variancePopulation: InputMaybe<AirdropUserVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `AirdropUser` objects. */\n  readonly varianceSample: InputMaybe<AirdropUserVarianceSampleAggregateFilter>;\n};\n\nexport type AirdropUserAverageAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n};\n\nexport type AirdropUserAverageAggregates = {\n  readonly __typename: 'AirdropUserAverageAggregates';\n  /** Mean average of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropUserDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly airdropId: InputMaybe<BigIntFilter>;\n  readonly amount: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly status: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n  readonly user: InputMaybe<BigIntFilter>;\n};\n\nexport type AirdropUserDistinctCountAggregates = {\n  readonly __typename: 'AirdropUserDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of airdropId across the matching connection */\n  readonly airdropId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of status across the matching connection */\n  readonly status: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of user across the matching connection */\n  readonly user: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `AirdropUser` object types. All fields are combined with a logical ‘and.’ */\nexport type AirdropUserFilter = {\n  /** Filter by the object’s `airdrop` relation. */\n  readonly airdrop: InputMaybe<AirdropFilter>;\n  /** Filter by the object’s `airdropId` field. */\n  readonly airdropId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<AirdropUserFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<AirdropUserFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<AirdropUserFilter>>;\n  /** Filter by the object’s `status` field. */\n  readonly status: InputMaybe<AirdropClaimStatusFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<StringFilter>;\n  /** Filter by the object’s `user` field. */\n  readonly user: InputMaybe<StringFilter>;\n};\n\nexport type AirdropUserMaxAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n};\n\nexport type AirdropUserMaxAggregates = {\n  readonly __typename: 'AirdropUserMaxAggregates';\n  /** Maximum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropUserMinAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n};\n\nexport type AirdropUserMinAggregates = {\n  readonly __typename: 'AirdropUserMinAggregates';\n  /** Minimum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropUserStddevPopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n};\n\nexport type AirdropUserStddevPopulationAggregates = {\n  readonly __typename: 'AirdropUserStddevPopulationAggregates';\n  /** Population standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropUserStddevSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n};\n\nexport type AirdropUserStddevSampleAggregates = {\n  readonly __typename: 'AirdropUserStddevSampleAggregates';\n  /** Sample standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropUserSumAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n};\n\nexport type AirdropUserSumAggregates = {\n  readonly __typename: 'AirdropUserSumAggregates';\n  /** Sum of amount across the matching connection */\n  readonly amount: Scalars['BigFloat']['output'];\n};\n\nexport type AirdropUserVariancePopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n};\n\nexport type AirdropUserVariancePopulationAggregates = {\n  readonly __typename: 'AirdropUserVariancePopulationAggregates';\n  /** Population variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropUserVarianceSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n};\n\nexport type AirdropUserVarianceSampleAggregates = {\n  readonly __typename: 'AirdropUserVarianceSampleAggregates';\n  /** Sample variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `AirdropUser` values. */\nexport type AirdropUsersConnection = {\n  readonly __typename: 'AirdropUsersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<AirdropUserAggregates>;\n  /** A list of edges which contains the `AirdropUser` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<AirdropUsersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<AirdropUserAggregates>>;\n  /** A list of `AirdropUser` objects. */\n  readonly nodes: ReadonlyArray<Maybe<AirdropUser>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `AirdropUser` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `AirdropUser` values. */\nexport type AirdropUsersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<AirdropUsersGroupBy>;\n  having: InputMaybe<AirdropUsersHavingInput>;\n};\n\n/** A `AirdropUser` edge in the connection. */\nexport type AirdropUsersEdge = {\n  readonly __typename: 'AirdropUsersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `AirdropUser` at the end of the edge. */\n  readonly node: Maybe<AirdropUser>;\n};\n\n/** Grouping methods for `AirdropUser` for usage during aggregation. */\nexport enum AirdropUsersGroupBy {\n  AIRDROP_ID = 'AIRDROP_ID',\n  AMOUNT = 'AMOUNT',\n  CREATE_AT = 'CREATE_AT',\n  ID = 'ID',\n  STATUS = 'STATUS',\n  UPDATE_AT = 'UPDATE_AT',\n  USER = 'USER',\n}\n\nexport type AirdropUsersHavingAverageInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropUsersHavingDistinctCountInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `AirdropUser` aggregates. */\nexport type AirdropUsersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<AirdropUsersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<AirdropUsersHavingInput>>;\n  readonly average: InputMaybe<AirdropUsersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<AirdropUsersHavingDistinctCountInput>;\n  readonly max: InputMaybe<AirdropUsersHavingMaxInput>;\n  readonly min: InputMaybe<AirdropUsersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<AirdropUsersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<AirdropUsersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<AirdropUsersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<AirdropUsersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<AirdropUsersHavingVarianceSampleInput>;\n};\n\nexport type AirdropUsersHavingMaxInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropUsersHavingMinInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropUsersHavingStddevPopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropUsersHavingStddevSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropUsersHavingSumInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropUsersHavingVariancePopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropUsersHavingVarianceSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `AirdropUser`. */\nexport enum AirdropUsersOrderBy {\n  AIRDROP_BY_AIRDROP_ID__CREATE_AT_ASC = 'AIRDROP_BY_AIRDROP_ID__CREATE_AT_ASC',\n  AIRDROP_BY_AIRDROP_ID__CREATE_AT_DESC = 'AIRDROP_BY_AIRDROP_ID__CREATE_AT_DESC',\n  AIRDROP_BY_AIRDROP_ID__END_TIME_ASC = 'AIRDROP_BY_AIRDROP_ID__END_TIME_ASC',\n  AIRDROP_BY_AIRDROP_ID__END_TIME_DESC = 'AIRDROP_BY_AIRDROP_ID__END_TIME_DESC',\n  AIRDROP_BY_AIRDROP_ID__HAS_WITHDRAWN_ASC = 'AIRDROP_BY_AIRDROP_ID__HAS_WITHDRAWN_ASC',\n  AIRDROP_BY_AIRDROP_ID__HAS_WITHDRAWN_DESC = 'AIRDROP_BY_AIRDROP_ID__HAS_WITHDRAWN_DESC',\n  AIRDROP_BY_AIRDROP_ID__ID_ASC = 'AIRDROP_BY_AIRDROP_ID__ID_ASC',\n  AIRDROP_BY_AIRDROP_ID__ID_DESC = 'AIRDROP_BY_AIRDROP_ID__ID_DESC',\n  AIRDROP_BY_AIRDROP_ID__START_TIME_ASC = 'AIRDROP_BY_AIRDROP_ID__START_TIME_ASC',\n  AIRDROP_BY_AIRDROP_ID__START_TIME_DESC = 'AIRDROP_BY_AIRDROP_ID__START_TIME_DESC',\n  AIRDROP_BY_AIRDROP_ID__TOKEN_ADDRESS_ASC = 'AIRDROP_BY_AIRDROP_ID__TOKEN_ADDRESS_ASC',\n  AIRDROP_BY_AIRDROP_ID__TOKEN_ADDRESS_DESC = 'AIRDROP_BY_AIRDROP_ID__TOKEN_ADDRESS_DESC',\n  AIRDROP_BY_AIRDROP_ID__UPDATE_AT_ASC = 'AIRDROP_BY_AIRDROP_ID__UPDATE_AT_ASC',\n  AIRDROP_BY_AIRDROP_ID__UPDATE_AT_DESC = 'AIRDROP_BY_AIRDROP_ID__UPDATE_AT_DESC',\n  AIRDROP_BY_AIRDROP_ID__WITHDRAW_AMOUNT_ASC = 'AIRDROP_BY_AIRDROP_ID__WITHDRAW_AMOUNT_ASC',\n  AIRDROP_BY_AIRDROP_ID__WITHDRAW_AMOUNT_DESC = 'AIRDROP_BY_AIRDROP_ID__WITHDRAW_AMOUNT_DESC',\n  AIRDROP_ID_ASC = 'AIRDROP_ID_ASC',\n  AIRDROP_ID_DESC = 'AIRDROP_ID_DESC',\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  STATUS_ASC = 'STATUS_ASC',\n  STATUS_DESC = 'STATUS_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n  USER_ASC = 'USER_ASC',\n  USER_DESC = 'USER_DESC',\n}\n\nexport type AirdropVariancePopulationAggregates = {\n  readonly __typename: 'AirdropVariancePopulationAggregates';\n  /** Population variance of withdrawAmount across the matching connection */\n  readonly withdrawAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type AirdropVarianceSampleAggregates = {\n  readonly __typename: 'AirdropVarianceSampleAggregates';\n  /** Sample variance of withdrawAmount across the matching connection */\n  readonly withdrawAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Airdrop` values. */\nexport type AirdropsConnection = {\n  readonly __typename: 'AirdropsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<AirdropAggregates>;\n  /** A list of edges which contains the `Airdrop` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<AirdropsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<AirdropAggregates>>;\n  /** A list of `Airdrop` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Airdrop>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Airdrop` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Airdrop` values. */\nexport type AirdropsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<AirdropsGroupBy>;\n  having: InputMaybe<AirdropsHavingInput>;\n};\n\n/** A `Airdrop` edge in the connection. */\nexport type AirdropsEdge = {\n  readonly __typename: 'AirdropsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Airdrop` at the end of the edge. */\n  readonly node: Maybe<Airdrop>;\n};\n\n/** Grouping methods for `Airdrop` for usage during aggregation. */\nexport enum AirdropsGroupBy {\n  CREATE_AT = 'CREATE_AT',\n  END_TIME = 'END_TIME',\n  END_TIME_TRUNCATED_TO_DAY = 'END_TIME_TRUNCATED_TO_DAY',\n  END_TIME_TRUNCATED_TO_HOUR = 'END_TIME_TRUNCATED_TO_HOUR',\n  HAS_WITHDRAWN = 'HAS_WITHDRAWN',\n  ID = 'ID',\n  START_TIME = 'START_TIME',\n  START_TIME_TRUNCATED_TO_DAY = 'START_TIME_TRUNCATED_TO_DAY',\n  START_TIME_TRUNCATED_TO_HOUR = 'START_TIME_TRUNCATED_TO_HOUR',\n  TOKEN_ADDRESS = 'TOKEN_ADDRESS',\n  UPDATE_AT = 'UPDATE_AT',\n  WITHDRAW_AMOUNT = 'WITHDRAW_AMOUNT',\n}\n\nexport type AirdropsHavingAverageInput = {\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly withdrawAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropsHavingDistinctCountInput = {\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly withdrawAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `Airdrop` aggregates. */\nexport type AirdropsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<AirdropsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<AirdropsHavingInput>>;\n  readonly average: InputMaybe<AirdropsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<AirdropsHavingDistinctCountInput>;\n  readonly max: InputMaybe<AirdropsHavingMaxInput>;\n  readonly min: InputMaybe<AirdropsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<AirdropsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<AirdropsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<AirdropsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<AirdropsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<AirdropsHavingVarianceSampleInput>;\n};\n\nexport type AirdropsHavingMaxInput = {\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly withdrawAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropsHavingMinInput = {\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly withdrawAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropsHavingStddevPopulationInput = {\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly withdrawAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropsHavingStddevSampleInput = {\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly withdrawAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropsHavingSumInput = {\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly withdrawAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropsHavingVariancePopulationInput = {\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly withdrawAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type AirdropsHavingVarianceSampleInput = {\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly withdrawAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `Airdrop`. */\nexport enum AirdropsOrderBy {\n  AIRDROP_USERS_AVERAGE_AIRDROP_ID_ASC = 'AIRDROP_USERS_AVERAGE_AIRDROP_ID_ASC',\n  AIRDROP_USERS_AVERAGE_AIRDROP_ID_DESC = 'AIRDROP_USERS_AVERAGE_AIRDROP_ID_DESC',\n  AIRDROP_USERS_AVERAGE_AMOUNT_ASC = 'AIRDROP_USERS_AVERAGE_AMOUNT_ASC',\n  AIRDROP_USERS_AVERAGE_AMOUNT_DESC = 'AIRDROP_USERS_AVERAGE_AMOUNT_DESC',\n  AIRDROP_USERS_AVERAGE_BLOCK_RANGE_ASC = 'AIRDROP_USERS_AVERAGE_BLOCK_RANGE_ASC',\n  AIRDROP_USERS_AVERAGE_BLOCK_RANGE_DESC = 'AIRDROP_USERS_AVERAGE_BLOCK_RANGE_DESC',\n  AIRDROP_USERS_AVERAGE_CREATE_AT_ASC = 'AIRDROP_USERS_AVERAGE_CREATE_AT_ASC',\n  AIRDROP_USERS_AVERAGE_CREATE_AT_DESC = 'AIRDROP_USERS_AVERAGE_CREATE_AT_DESC',\n  AIRDROP_USERS_AVERAGE_ID_ASC = 'AIRDROP_USERS_AVERAGE_ID_ASC',\n  AIRDROP_USERS_AVERAGE_ID_DESC = 'AIRDROP_USERS_AVERAGE_ID_DESC',\n  AIRDROP_USERS_AVERAGE_STATUS_ASC = 'AIRDROP_USERS_AVERAGE_STATUS_ASC',\n  AIRDROP_USERS_AVERAGE_STATUS_DESC = 'AIRDROP_USERS_AVERAGE_STATUS_DESC',\n  AIRDROP_USERS_AVERAGE_UPDATE_AT_ASC = 'AIRDROP_USERS_AVERAGE_UPDATE_AT_ASC',\n  AIRDROP_USERS_AVERAGE_UPDATE_AT_DESC = 'AIRDROP_USERS_AVERAGE_UPDATE_AT_DESC',\n  AIRDROP_USERS_AVERAGE_USER_ASC = 'AIRDROP_USERS_AVERAGE_USER_ASC',\n  AIRDROP_USERS_AVERAGE_USER_DESC = 'AIRDROP_USERS_AVERAGE_USER_DESC',\n  AIRDROP_USERS_BY_AIRDROP_ID__COUNT_ASC = 'AIRDROP_USERS_BY_AIRDROP_ID__COUNT_ASC',\n  AIRDROP_USERS_BY_AIRDROP_ID__COUNT_DESC = 'AIRDROP_USERS_BY_AIRDROP_ID__COUNT_DESC',\n  AIRDROP_USERS_COUNT_ASC = 'AIRDROP_USERS_COUNT_ASC',\n  AIRDROP_USERS_COUNT_DESC = 'AIRDROP_USERS_COUNT_DESC',\n  AIRDROP_USERS_DISTINCT_COUNT_AIRDROP_ID_ASC = 'AIRDROP_USERS_DISTINCT_COUNT_AIRDROP_ID_ASC',\n  AIRDROP_USERS_DISTINCT_COUNT_AIRDROP_ID_DESC = 'AIRDROP_USERS_DISTINCT_COUNT_AIRDROP_ID_DESC',\n  AIRDROP_USERS_DISTINCT_COUNT_AMOUNT_ASC = 'AIRDROP_USERS_DISTINCT_COUNT_AMOUNT_ASC',\n  AIRDROP_USERS_DISTINCT_COUNT_AMOUNT_DESC = 'AIRDROP_USERS_DISTINCT_COUNT_AMOUNT_DESC',\n  AIRDROP_USERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'AIRDROP_USERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  AIRDROP_USERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'AIRDROP_USERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  AIRDROP_USERS_DISTINCT_COUNT_CREATE_AT_ASC = 'AIRDROP_USERS_DISTINCT_COUNT_CREATE_AT_ASC',\n  AIRDROP_USERS_DISTINCT_COUNT_CREATE_AT_DESC = 'AIRDROP_USERS_DISTINCT_COUNT_CREATE_AT_DESC',\n  AIRDROP_USERS_DISTINCT_COUNT_ID_ASC = 'AIRDROP_USERS_DISTINCT_COUNT_ID_ASC',\n  AIRDROP_USERS_DISTINCT_COUNT_ID_DESC = 'AIRDROP_USERS_DISTINCT_COUNT_ID_DESC',\n  AIRDROP_USERS_DISTINCT_COUNT_STATUS_ASC = 'AIRDROP_USERS_DISTINCT_COUNT_STATUS_ASC',\n  AIRDROP_USERS_DISTINCT_COUNT_STATUS_DESC = 'AIRDROP_USERS_DISTINCT_COUNT_STATUS_DESC',\n  AIRDROP_USERS_DISTINCT_COUNT_UPDATE_AT_ASC = 'AIRDROP_USERS_DISTINCT_COUNT_UPDATE_AT_ASC',\n  AIRDROP_USERS_DISTINCT_COUNT_UPDATE_AT_DESC = 'AIRDROP_USERS_DISTINCT_COUNT_UPDATE_AT_DESC',\n  AIRDROP_USERS_DISTINCT_COUNT_USER_ASC = 'AIRDROP_USERS_DISTINCT_COUNT_USER_ASC',\n  AIRDROP_USERS_DISTINCT_COUNT_USER_DESC = 'AIRDROP_USERS_DISTINCT_COUNT_USER_DESC',\n  AIRDROP_USERS_MAX_AIRDROP_ID_ASC = 'AIRDROP_USERS_MAX_AIRDROP_ID_ASC',\n  AIRDROP_USERS_MAX_AIRDROP_ID_DESC = 'AIRDROP_USERS_MAX_AIRDROP_ID_DESC',\n  AIRDROP_USERS_MAX_AMOUNT_ASC = 'AIRDROP_USERS_MAX_AMOUNT_ASC',\n  AIRDROP_USERS_MAX_AMOUNT_DESC = 'AIRDROP_USERS_MAX_AMOUNT_DESC',\n  AIRDROP_USERS_MAX_BLOCK_RANGE_ASC = 'AIRDROP_USERS_MAX_BLOCK_RANGE_ASC',\n  AIRDROP_USERS_MAX_BLOCK_RANGE_DESC = 'AIRDROP_USERS_MAX_BLOCK_RANGE_DESC',\n  AIRDROP_USERS_MAX_CREATE_AT_ASC = 'AIRDROP_USERS_MAX_CREATE_AT_ASC',\n  AIRDROP_USERS_MAX_CREATE_AT_DESC = 'AIRDROP_USERS_MAX_CREATE_AT_DESC',\n  AIRDROP_USERS_MAX_ID_ASC = 'AIRDROP_USERS_MAX_ID_ASC',\n  AIRDROP_USERS_MAX_ID_DESC = 'AIRDROP_USERS_MAX_ID_DESC',\n  AIRDROP_USERS_MAX_STATUS_ASC = 'AIRDROP_USERS_MAX_STATUS_ASC',\n  AIRDROP_USERS_MAX_STATUS_DESC = 'AIRDROP_USERS_MAX_STATUS_DESC',\n  AIRDROP_USERS_MAX_UPDATE_AT_ASC = 'AIRDROP_USERS_MAX_UPDATE_AT_ASC',\n  AIRDROP_USERS_MAX_UPDATE_AT_DESC = 'AIRDROP_USERS_MAX_UPDATE_AT_DESC',\n  AIRDROP_USERS_MAX_USER_ASC = 'AIRDROP_USERS_MAX_USER_ASC',\n  AIRDROP_USERS_MAX_USER_DESC = 'AIRDROP_USERS_MAX_USER_DESC',\n  AIRDROP_USERS_MIN_AIRDROP_ID_ASC = 'AIRDROP_USERS_MIN_AIRDROP_ID_ASC',\n  AIRDROP_USERS_MIN_AIRDROP_ID_DESC = 'AIRDROP_USERS_MIN_AIRDROP_ID_DESC',\n  AIRDROP_USERS_MIN_AMOUNT_ASC = 'AIRDROP_USERS_MIN_AMOUNT_ASC',\n  AIRDROP_USERS_MIN_AMOUNT_DESC = 'AIRDROP_USERS_MIN_AMOUNT_DESC',\n  AIRDROP_USERS_MIN_BLOCK_RANGE_ASC = 'AIRDROP_USERS_MIN_BLOCK_RANGE_ASC',\n  AIRDROP_USERS_MIN_BLOCK_RANGE_DESC = 'AIRDROP_USERS_MIN_BLOCK_RANGE_DESC',\n  AIRDROP_USERS_MIN_CREATE_AT_ASC = 'AIRDROP_USERS_MIN_CREATE_AT_ASC',\n  AIRDROP_USERS_MIN_CREATE_AT_DESC = 'AIRDROP_USERS_MIN_CREATE_AT_DESC',\n  AIRDROP_USERS_MIN_ID_ASC = 'AIRDROP_USERS_MIN_ID_ASC',\n  AIRDROP_USERS_MIN_ID_DESC = 'AIRDROP_USERS_MIN_ID_DESC',\n  AIRDROP_USERS_MIN_STATUS_ASC = 'AIRDROP_USERS_MIN_STATUS_ASC',\n  AIRDROP_USERS_MIN_STATUS_DESC = 'AIRDROP_USERS_MIN_STATUS_DESC',\n  AIRDROP_USERS_MIN_UPDATE_AT_ASC = 'AIRDROP_USERS_MIN_UPDATE_AT_ASC',\n  AIRDROP_USERS_MIN_UPDATE_AT_DESC = 'AIRDROP_USERS_MIN_UPDATE_AT_DESC',\n  AIRDROP_USERS_MIN_USER_ASC = 'AIRDROP_USERS_MIN_USER_ASC',\n  AIRDROP_USERS_MIN_USER_DESC = 'AIRDROP_USERS_MIN_USER_DESC',\n  AIRDROP_USERS_STDDEV_POPULATION_AIRDROP_ID_ASC = 'AIRDROP_USERS_STDDEV_POPULATION_AIRDROP_ID_ASC',\n  AIRDROP_USERS_STDDEV_POPULATION_AIRDROP_ID_DESC = 'AIRDROP_USERS_STDDEV_POPULATION_AIRDROP_ID_DESC',\n  AIRDROP_USERS_STDDEV_POPULATION_AMOUNT_ASC = 'AIRDROP_USERS_STDDEV_POPULATION_AMOUNT_ASC',\n  AIRDROP_USERS_STDDEV_POPULATION_AMOUNT_DESC = 'AIRDROP_USERS_STDDEV_POPULATION_AMOUNT_DESC',\n  AIRDROP_USERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'AIRDROP_USERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  AIRDROP_USERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'AIRDROP_USERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  AIRDROP_USERS_STDDEV_POPULATION_CREATE_AT_ASC = 'AIRDROP_USERS_STDDEV_POPULATION_CREATE_AT_ASC',\n  AIRDROP_USERS_STDDEV_POPULATION_CREATE_AT_DESC = 'AIRDROP_USERS_STDDEV_POPULATION_CREATE_AT_DESC',\n  AIRDROP_USERS_STDDEV_POPULATION_ID_ASC = 'AIRDROP_USERS_STDDEV_POPULATION_ID_ASC',\n  AIRDROP_USERS_STDDEV_POPULATION_ID_DESC = 'AIRDROP_USERS_STDDEV_POPULATION_ID_DESC',\n  AIRDROP_USERS_STDDEV_POPULATION_STATUS_ASC = 'AIRDROP_USERS_STDDEV_POPULATION_STATUS_ASC',\n  AIRDROP_USERS_STDDEV_POPULATION_STATUS_DESC = 'AIRDROP_USERS_STDDEV_POPULATION_STATUS_DESC',\n  AIRDROP_USERS_STDDEV_POPULATION_UPDATE_AT_ASC = 'AIRDROP_USERS_STDDEV_POPULATION_UPDATE_AT_ASC',\n  AIRDROP_USERS_STDDEV_POPULATION_UPDATE_AT_DESC = 'AIRDROP_USERS_STDDEV_POPULATION_UPDATE_AT_DESC',\n  AIRDROP_USERS_STDDEV_POPULATION_USER_ASC = 'AIRDROP_USERS_STDDEV_POPULATION_USER_ASC',\n  AIRDROP_USERS_STDDEV_POPULATION_USER_DESC = 'AIRDROP_USERS_STDDEV_POPULATION_USER_DESC',\n  AIRDROP_USERS_STDDEV_SAMPLE_AIRDROP_ID_ASC = 'AIRDROP_USERS_STDDEV_SAMPLE_AIRDROP_ID_ASC',\n  AIRDROP_USERS_STDDEV_SAMPLE_AIRDROP_ID_DESC = 'AIRDROP_USERS_STDDEV_SAMPLE_AIRDROP_ID_DESC',\n  AIRDROP_USERS_STDDEV_SAMPLE_AMOUNT_ASC = 'AIRDROP_USERS_STDDEV_SAMPLE_AMOUNT_ASC',\n  AIRDROP_USERS_STDDEV_SAMPLE_AMOUNT_DESC = 'AIRDROP_USERS_STDDEV_SAMPLE_AMOUNT_DESC',\n  AIRDROP_USERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'AIRDROP_USERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  AIRDROP_USERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'AIRDROP_USERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  AIRDROP_USERS_STDDEV_SAMPLE_CREATE_AT_ASC = 'AIRDROP_USERS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  AIRDROP_USERS_STDDEV_SAMPLE_CREATE_AT_DESC = 'AIRDROP_USERS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  AIRDROP_USERS_STDDEV_SAMPLE_ID_ASC = 'AIRDROP_USERS_STDDEV_SAMPLE_ID_ASC',\n  AIRDROP_USERS_STDDEV_SAMPLE_ID_DESC = 'AIRDROP_USERS_STDDEV_SAMPLE_ID_DESC',\n  AIRDROP_USERS_STDDEV_SAMPLE_STATUS_ASC = 'AIRDROP_USERS_STDDEV_SAMPLE_STATUS_ASC',\n  AIRDROP_USERS_STDDEV_SAMPLE_STATUS_DESC = 'AIRDROP_USERS_STDDEV_SAMPLE_STATUS_DESC',\n  AIRDROP_USERS_STDDEV_SAMPLE_UPDATE_AT_ASC = 'AIRDROP_USERS_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  AIRDROP_USERS_STDDEV_SAMPLE_UPDATE_AT_DESC = 'AIRDROP_USERS_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  AIRDROP_USERS_STDDEV_SAMPLE_USER_ASC = 'AIRDROP_USERS_STDDEV_SAMPLE_USER_ASC',\n  AIRDROP_USERS_STDDEV_SAMPLE_USER_DESC = 'AIRDROP_USERS_STDDEV_SAMPLE_USER_DESC',\n  AIRDROP_USERS_SUM_AIRDROP_ID_ASC = 'AIRDROP_USERS_SUM_AIRDROP_ID_ASC',\n  AIRDROP_USERS_SUM_AIRDROP_ID_DESC = 'AIRDROP_USERS_SUM_AIRDROP_ID_DESC',\n  AIRDROP_USERS_SUM_AMOUNT_ASC = 'AIRDROP_USERS_SUM_AMOUNT_ASC',\n  AIRDROP_USERS_SUM_AMOUNT_DESC = 'AIRDROP_USERS_SUM_AMOUNT_DESC',\n  AIRDROP_USERS_SUM_BLOCK_RANGE_ASC = 'AIRDROP_USERS_SUM_BLOCK_RANGE_ASC',\n  AIRDROP_USERS_SUM_BLOCK_RANGE_DESC = 'AIRDROP_USERS_SUM_BLOCK_RANGE_DESC',\n  AIRDROP_USERS_SUM_CREATE_AT_ASC = 'AIRDROP_USERS_SUM_CREATE_AT_ASC',\n  AIRDROP_USERS_SUM_CREATE_AT_DESC = 'AIRDROP_USERS_SUM_CREATE_AT_DESC',\n  AIRDROP_USERS_SUM_ID_ASC = 'AIRDROP_USERS_SUM_ID_ASC',\n  AIRDROP_USERS_SUM_ID_DESC = 'AIRDROP_USERS_SUM_ID_DESC',\n  AIRDROP_USERS_SUM_STATUS_ASC = 'AIRDROP_USERS_SUM_STATUS_ASC',\n  AIRDROP_USERS_SUM_STATUS_DESC = 'AIRDROP_USERS_SUM_STATUS_DESC',\n  AIRDROP_USERS_SUM_UPDATE_AT_ASC = 'AIRDROP_USERS_SUM_UPDATE_AT_ASC',\n  AIRDROP_USERS_SUM_UPDATE_AT_DESC = 'AIRDROP_USERS_SUM_UPDATE_AT_DESC',\n  AIRDROP_USERS_SUM_USER_ASC = 'AIRDROP_USERS_SUM_USER_ASC',\n  AIRDROP_USERS_SUM_USER_DESC = 'AIRDROP_USERS_SUM_USER_DESC',\n  AIRDROP_USERS_VARIANCE_POPULATION_AIRDROP_ID_ASC = 'AIRDROP_USERS_VARIANCE_POPULATION_AIRDROP_ID_ASC',\n  AIRDROP_USERS_VARIANCE_POPULATION_AIRDROP_ID_DESC = 'AIRDROP_USERS_VARIANCE_POPULATION_AIRDROP_ID_DESC',\n  AIRDROP_USERS_VARIANCE_POPULATION_AMOUNT_ASC = 'AIRDROP_USERS_VARIANCE_POPULATION_AMOUNT_ASC',\n  AIRDROP_USERS_VARIANCE_POPULATION_AMOUNT_DESC = 'AIRDROP_USERS_VARIANCE_POPULATION_AMOUNT_DESC',\n  AIRDROP_USERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'AIRDROP_USERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  AIRDROP_USERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'AIRDROP_USERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  AIRDROP_USERS_VARIANCE_POPULATION_CREATE_AT_ASC = 'AIRDROP_USERS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  AIRDROP_USERS_VARIANCE_POPULATION_CREATE_AT_DESC = 'AIRDROP_USERS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  AIRDROP_USERS_VARIANCE_POPULATION_ID_ASC = 'AIRDROP_USERS_VARIANCE_POPULATION_ID_ASC',\n  AIRDROP_USERS_VARIANCE_POPULATION_ID_DESC = 'AIRDROP_USERS_VARIANCE_POPULATION_ID_DESC',\n  AIRDROP_USERS_VARIANCE_POPULATION_STATUS_ASC = 'AIRDROP_USERS_VARIANCE_POPULATION_STATUS_ASC',\n  AIRDROP_USERS_VARIANCE_POPULATION_STATUS_DESC = 'AIRDROP_USERS_VARIANCE_POPULATION_STATUS_DESC',\n  AIRDROP_USERS_VARIANCE_POPULATION_UPDATE_AT_ASC = 'AIRDROP_USERS_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  AIRDROP_USERS_VARIANCE_POPULATION_UPDATE_AT_DESC = 'AIRDROP_USERS_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  AIRDROP_USERS_VARIANCE_POPULATION_USER_ASC = 'AIRDROP_USERS_VARIANCE_POPULATION_USER_ASC',\n  AIRDROP_USERS_VARIANCE_POPULATION_USER_DESC = 'AIRDROP_USERS_VARIANCE_POPULATION_USER_DESC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_AIRDROP_ID_ASC = 'AIRDROP_USERS_VARIANCE_SAMPLE_AIRDROP_ID_ASC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_AIRDROP_ID_DESC = 'AIRDROP_USERS_VARIANCE_SAMPLE_AIRDROP_ID_DESC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_AMOUNT_ASC = 'AIRDROP_USERS_VARIANCE_SAMPLE_AMOUNT_ASC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_AMOUNT_DESC = 'AIRDROP_USERS_VARIANCE_SAMPLE_AMOUNT_DESC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'AIRDROP_USERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'AIRDROP_USERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'AIRDROP_USERS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'AIRDROP_USERS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_ID_ASC = 'AIRDROP_USERS_VARIANCE_SAMPLE_ID_ASC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_ID_DESC = 'AIRDROP_USERS_VARIANCE_SAMPLE_ID_DESC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_STATUS_ASC = 'AIRDROP_USERS_VARIANCE_SAMPLE_STATUS_ASC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_STATUS_DESC = 'AIRDROP_USERS_VARIANCE_SAMPLE_STATUS_DESC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'AIRDROP_USERS_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'AIRDROP_USERS_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_USER_ASC = 'AIRDROP_USERS_VARIANCE_SAMPLE_USER_ASC',\n  AIRDROP_USERS_VARIANCE_SAMPLE_USER_DESC = 'AIRDROP_USERS_VARIANCE_SAMPLE_USER_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  END_TIME_ASC = 'END_TIME_ASC',\n  END_TIME_DESC = 'END_TIME_DESC',\n  HAS_WITHDRAWN_ASC = 'HAS_WITHDRAWN_ASC',\n  HAS_WITHDRAWN_DESC = 'HAS_WITHDRAWN_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  START_TIME_ASC = 'START_TIME_ASC',\n  START_TIME_DESC = 'START_TIME_DESC',\n  TOKEN_ADDRESS_ASC = 'TOKEN_ADDRESS_ASC',\n  TOKEN_ADDRESS_DESC = 'TOKEN_ADDRESS_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n  WITHDRAW_AMOUNT_ASC = 'WITHDRAW_AMOUNT_ASC',\n  WITHDRAW_AMOUNT_DESC = 'WITHDRAW_AMOUNT_DESC',\n}\n\n/** A filter to be used against BigFloat fields. All fields are combined with a logical ‘and.’ */\nexport type BigFloatFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<Scalars['BigFloat']['input']>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<Scalars['BigFloat']['input']>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<Scalars['BigFloat']['input']>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['BigFloat']['input']>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<Scalars['BigFloat']['input']>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<Scalars['BigFloat']['input']>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['BigFloat']['input']>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<Scalars['BigFloat']['input']>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<Scalars['BigFloat']['input']>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<Scalars['BigFloat']['input']>>;\n};\n\n/** A filter to be used against BigInt fields. All fields are combined with a logical ‘and.’ */\nexport type BigIntFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<Scalars['BigInt']['input']>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<Scalars['BigInt']['input']>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<Scalars['BigInt']['input']>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['BigInt']['input']>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<Scalars['BigInt']['input']>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<Scalars['BigInt']['input']>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['BigInt']['input']>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<Scalars['BigInt']['input']>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<Scalars['BigInt']['input']>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<Scalars['BigInt']['input']>>;\n};\n\n/** A filter to be used against Boolean fields. All fields are combined with a logical ‘and.’ */\nexport type BooleanFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<Scalars['Boolean']['input']>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<Scalars['Boolean']['input']>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<Scalars['Boolean']['input']>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['Boolean']['input']>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<Scalars['Boolean']['input']>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['Boolean']['input']>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<Scalars['Boolean']['input']>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<Scalars['Boolean']['input']>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<Scalars['Boolean']['input']>>;\n};\n\nexport type Cach = Node & {\n  readonly __typename: 'Cach';\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly value: Scalars['String']['output'];\n};\n\nexport type CachAggregates = {\n  readonly __typename: 'CachAggregates';\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<CachDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n};\n\nexport type CachDistinctCountAggregates = {\n  readonly __typename: 'CachDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of value across the matching connection */\n  readonly value: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Cach` object types. All fields are combined with a logical ‘and.’ */\nexport type CachFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<CachFilter>>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<CachFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<CachFilter>>;\n  /** Filter by the object’s `value` field. */\n  readonly value: InputMaybe<StringFilter>;\n};\n\n/** A connection to a list of `Cach` values. */\nexport type CachesConnection = {\n  readonly __typename: 'CachesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<CachAggregates>;\n  /** A list of edges which contains the `Cach` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<CachesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<CachAggregates>>;\n  /** A list of `Cach` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Cach>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Cach` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Cach` values. */\nexport type CachesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<CachesGroupBy>;\n  having: InputMaybe<CachesHavingInput>;\n};\n\n/** A `Cach` edge in the connection. */\nexport type CachesEdge = {\n  readonly __typename: 'CachesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Cach` at the end of the edge. */\n  readonly node: Maybe<Cach>;\n};\n\n/** Grouping methods for `Cach` for usage during aggregation. */\nexport enum CachesGroupBy {\n  ID = 'ID',\n  VALUE = 'VALUE',\n}\n\n/** Conditions for `Cach` aggregates. */\nexport type CachesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<CachesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<CachesHavingInput>>;\n};\n\n/** Methods to use when ordering `Cach`. */\nexport enum CachesOrderBy {\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  VALUE_ASC = 'VALUE_ASC',\n  VALUE_DESC = 'VALUE_DESC',\n}\n\nexport enum ChannelStatus {\n  FINALIZED = 'FINALIZED',\n  OPEN = 'OPEN',\n  TERMINATING = 'TERMINATING',\n}\n\n/** A filter to be used against ChannelStatus fields. All fields are combined with a logical ‘and.’ */\nexport type ChannelStatusFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<ChannelStatus>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<ChannelStatus>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<ChannelStatus>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<ChannelStatus>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<ChannelStatus>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<ChannelStatus>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<ChannelStatus>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<ChannelStatus>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<ChannelStatus>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<ChannelStatus>>;\n};\n\nexport type ConsumerController = Node & {\n  readonly __typename: 'ConsumerController';\n  readonly consumer: Scalars['String']['output'];\n  readonly controller: Scalars['String']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly id: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type ConsumerControllerAggregates = {\n  readonly __typename: 'ConsumerControllerAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<ConsumerControllerAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<ConsumerControllerDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<ConsumerControllerMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<ConsumerControllerMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<ConsumerControllerStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<ConsumerControllerStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<ConsumerControllerSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<ConsumerControllerVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<ConsumerControllerVarianceSampleAggregates>;\n};\n\nexport type ConsumerControllerAverageAggregates = {\n  readonly __typename: 'ConsumerControllerAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerControllerDistinctCountAggregates = {\n  readonly __typename: 'ConsumerControllerDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of consumer across the matching connection */\n  readonly consumer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of controller across the matching connection */\n  readonly controller: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `ConsumerController` object types. All fields are combined with a logical ‘and.’ */\nexport type ConsumerControllerFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<ConsumerControllerFilter>>;\n  /** Filter by the object’s `consumer` field. */\n  readonly consumer: InputMaybe<StringFilter>;\n  /** Filter by the object’s `controller` field. */\n  readonly controller: InputMaybe<StringFilter>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<ConsumerControllerFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<ConsumerControllerFilter>>;\n};\n\nexport type ConsumerControllerMaxAggregates = {\n  readonly __typename: 'ConsumerControllerMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ConsumerControllerMinAggregates = {\n  readonly __typename: 'ConsumerControllerMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ConsumerControllerStddevPopulationAggregates = {\n  readonly __typename: 'ConsumerControllerStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerControllerStddevSampleAggregates = {\n  readonly __typename: 'ConsumerControllerStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerControllerSumAggregates = {\n  readonly __typename: 'ConsumerControllerSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\nexport type ConsumerControllerVariancePopulationAggregates = {\n  readonly __typename: 'ConsumerControllerVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerControllerVarianceSampleAggregates = {\n  readonly __typename: 'ConsumerControllerVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `ConsumerController` values. */\nexport type ConsumerControllersConnection = {\n  readonly __typename: 'ConsumerControllersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ConsumerControllerAggregates>;\n  /** A list of edges which contains the `ConsumerController` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ConsumerControllersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ConsumerControllerAggregates>>;\n  /** A list of `ConsumerController` objects. */\n  readonly nodes: ReadonlyArray<Maybe<ConsumerController>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `ConsumerController` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `ConsumerController` values. */\nexport type ConsumerControllersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ConsumerControllersGroupBy>;\n  having: InputMaybe<ConsumerControllersHavingInput>;\n};\n\n/** A `ConsumerController` edge in the connection. */\nexport type ConsumerControllersEdge = {\n  readonly __typename: 'ConsumerControllersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `ConsumerController` at the end of the edge. */\n  readonly node: Maybe<ConsumerController>;\n};\n\n/** Grouping methods for `ConsumerController` for usage during aggregation. */\nexport enum ConsumerControllersGroupBy {\n  CONSUMER = 'CONSUMER',\n  CONTROLLER = 'CONTROLLER',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport type ConsumerControllersHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ConsumerControllersHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `ConsumerController` aggregates. */\nexport type ConsumerControllersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<ConsumerControllersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<ConsumerControllersHavingInput>>;\n  readonly average: InputMaybe<ConsumerControllersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<ConsumerControllersHavingDistinctCountInput>;\n  readonly max: InputMaybe<ConsumerControllersHavingMaxInput>;\n  readonly min: InputMaybe<ConsumerControllersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<ConsumerControllersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<ConsumerControllersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<ConsumerControllersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<ConsumerControllersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<ConsumerControllersHavingVarianceSampleInput>;\n};\n\nexport type ConsumerControllersHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ConsumerControllersHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ConsumerControllersHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ConsumerControllersHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ConsumerControllersHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ConsumerControllersHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ConsumerControllersHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `ConsumerController`. */\nexport enum ConsumerControllersOrderBy {\n  CONSUMER_ASC = 'CONSUMER_ASC',\n  CONSUMER_DESC = 'CONSUMER_DESC',\n  CONTROLLER_ASC = 'CONTROLLER_ASC',\n  CONTROLLER_DESC = 'CONTROLLER_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type ConsumerQueryReward = Node & {\n  readonly __typename: 'ConsumerQueryReward';\n  readonly consumer: Scalars['String']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `ConsumerQueryReward`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly orderId: Scalars['String']['output'];\n  readonly orderType: OrderType;\n  /** Reads a single `Project` that is related to this `ConsumerQueryReward`. */\n  readonly project: Maybe<Project>;\n  readonly projectId: Scalars['String']['output'];\n  readonly refunded: Scalars['BigFloat']['output'];\n  readonly spent: Scalars['BigFloat']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type ConsumerQueryRewardAggregates = {\n  readonly __typename: 'ConsumerQueryRewardAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<ConsumerQueryRewardAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<ConsumerQueryRewardDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<ConsumerQueryRewardMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<ConsumerQueryRewardMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<ConsumerQueryRewardStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<ConsumerQueryRewardStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<ConsumerQueryRewardSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<ConsumerQueryRewardVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<ConsumerQueryRewardVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `ConsumerQueryReward` object types. */\nexport type ConsumerQueryRewardAggregatesFilter = {\n  /** Mean average aggregate over matching `ConsumerQueryReward` objects. */\n  readonly average: InputMaybe<ConsumerQueryRewardAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `ConsumerQueryReward` objects. */\n  readonly distinctCount: InputMaybe<ConsumerQueryRewardDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `ConsumerQueryReward` object to be included within the aggregate. */\n  readonly filter: InputMaybe<ConsumerQueryRewardFilter>;\n  /** Maximum aggregate over matching `ConsumerQueryReward` objects. */\n  readonly max: InputMaybe<ConsumerQueryRewardMaxAggregateFilter>;\n  /** Minimum aggregate over matching `ConsumerQueryReward` objects. */\n  readonly min: InputMaybe<ConsumerQueryRewardMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `ConsumerQueryReward` objects. */\n  readonly stddevPopulation: InputMaybe<ConsumerQueryRewardStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `ConsumerQueryReward` objects. */\n  readonly stddevSample: InputMaybe<ConsumerQueryRewardStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `ConsumerQueryReward` objects. */\n  readonly sum: InputMaybe<ConsumerQueryRewardSumAggregateFilter>;\n  /** Population variance aggregate over matching `ConsumerQueryReward` objects. */\n  readonly variancePopulation: InputMaybe<ConsumerQueryRewardVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `ConsumerQueryReward` objects. */\n  readonly varianceSample: InputMaybe<ConsumerQueryRewardVarianceSampleAggregateFilter>;\n};\n\nexport type ConsumerQueryRewardAverageAggregateFilter = {\n  readonly refunded: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardAverageAggregates = {\n  readonly __typename: 'ConsumerQueryRewardAverageAggregates';\n  /** Mean average of refunded across the matching connection */\n  readonly refunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly consumer: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly orderId: InputMaybe<BigIntFilter>;\n  readonly orderType: InputMaybe<BigIntFilter>;\n  readonly projectId: InputMaybe<BigIntFilter>;\n  readonly refunded: InputMaybe<BigIntFilter>;\n  readonly spent: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type ConsumerQueryRewardDistinctCountAggregates = {\n  readonly __typename: 'ConsumerQueryRewardDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of consumer across the matching connection */\n  readonly consumer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of orderId across the matching connection */\n  readonly orderId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of orderType across the matching connection */\n  readonly orderType: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of projectId across the matching connection */\n  readonly projectId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of refunded across the matching connection */\n  readonly refunded: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `ConsumerQueryReward` object types. All fields are combined with a logical ‘and.’ */\nexport type ConsumerQueryRewardFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<ConsumerQueryRewardFilter>>;\n  /** Filter by the object’s `consumer` field. */\n  readonly consumer: InputMaybe<StringFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<ConsumerQueryRewardFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<ConsumerQueryRewardFilter>>;\n  /** Filter by the object’s `orderId` field. */\n  readonly orderId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `orderType` field. */\n  readonly orderType: InputMaybe<OrderTypeFilter>;\n  /** Filter by the object’s `project` relation. */\n  readonly project: InputMaybe<ProjectFilter>;\n  /** Filter by the object’s `projectId` field. */\n  readonly projectId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `refunded` field. */\n  readonly refunded: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `spent` field. */\n  readonly spent: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardMaxAggregateFilter = {\n  readonly refunded: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardMaxAggregates = {\n  readonly __typename: 'ConsumerQueryRewardMaxAggregates';\n  /** Maximum of refunded across the matching connection */\n  readonly refunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardMinAggregateFilter = {\n  readonly refunded: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardMinAggregates = {\n  readonly __typename: 'ConsumerQueryRewardMinAggregates';\n  /** Minimum of refunded across the matching connection */\n  readonly refunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardStddevPopulationAggregateFilter = {\n  readonly refunded: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardStddevPopulationAggregates = {\n  readonly __typename: 'ConsumerQueryRewardStddevPopulationAggregates';\n  /** Population standard deviation of refunded across the matching connection */\n  readonly refunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardStddevSampleAggregateFilter = {\n  readonly refunded: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardStddevSampleAggregates = {\n  readonly __typename: 'ConsumerQueryRewardStddevSampleAggregates';\n  /** Sample standard deviation of refunded across the matching connection */\n  readonly refunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardSumAggregateFilter = {\n  readonly refunded: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardSumAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSumAggregates';\n  /** Sum of refunded across the matching connection */\n  readonly refunded: Scalars['BigFloat']['output'];\n  /** Sum of spent across the matching connection */\n  readonly spent: Scalars['BigFloat']['output'];\n};\n\n/** A connection to a list of `ConsumerQueryRewardSummary` values. */\nexport type ConsumerQueryRewardSummariesConnection = {\n  readonly __typename: 'ConsumerQueryRewardSummariesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ConsumerQueryRewardSummaryAggregates>;\n  /** A list of edges which contains the `ConsumerQueryRewardSummary` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ConsumerQueryRewardSummariesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ConsumerQueryRewardSummaryAggregates>>;\n  /** A list of `ConsumerQueryRewardSummary` objects. */\n  readonly nodes: ReadonlyArray<Maybe<ConsumerQueryRewardSummary>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `ConsumerQueryRewardSummary` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `ConsumerQueryRewardSummary` values. */\nexport type ConsumerQueryRewardSummariesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ConsumerQueryRewardSummariesGroupBy>;\n  having: InputMaybe<ConsumerQueryRewardSummariesHavingInput>;\n};\n\n/** A `ConsumerQueryRewardSummary` edge in the connection. */\nexport type ConsumerQueryRewardSummariesEdge = {\n  readonly __typename: 'ConsumerQueryRewardSummariesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `ConsumerQueryRewardSummary` at the end of the edge. */\n  readonly node: Maybe<ConsumerQueryRewardSummary>;\n};\n\n/** Grouping methods for `ConsumerQueryRewardSummary` for usage during aggregation. */\nexport enum ConsumerQueryRewardSummariesGroupBy {\n  CONSUMER = 'CONSUMER',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  ORDER_TYPE = 'ORDER_TYPE',\n  PROJECT_ID = 'PROJECT_ID',\n  TOTAL_REFUNDED = 'TOTAL_REFUNDED',\n  TOTAL_SPENT = 'TOTAL_SPENT',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type ConsumerQueryRewardSummariesHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalRefunded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSpent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardSummariesHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalRefunded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSpent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `ConsumerQueryRewardSummary` aggregates. */\nexport type ConsumerQueryRewardSummariesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<ConsumerQueryRewardSummariesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<ConsumerQueryRewardSummariesHavingInput>>;\n  readonly average: InputMaybe<ConsumerQueryRewardSummariesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<ConsumerQueryRewardSummariesHavingDistinctCountInput>;\n  readonly max: InputMaybe<ConsumerQueryRewardSummariesHavingMaxInput>;\n  readonly min: InputMaybe<ConsumerQueryRewardSummariesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<ConsumerQueryRewardSummariesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<ConsumerQueryRewardSummariesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<ConsumerQueryRewardSummariesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<ConsumerQueryRewardSummariesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<ConsumerQueryRewardSummariesHavingVarianceSampleInput>;\n};\n\nexport type ConsumerQueryRewardSummariesHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalRefunded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSpent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardSummariesHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalRefunded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSpent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardSummariesHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalRefunded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSpent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardSummariesHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalRefunded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSpent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardSummariesHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalRefunded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSpent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardSummariesHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalRefunded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSpent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardSummariesHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalRefunded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSpent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `ConsumerQueryRewardSummary`. */\nexport enum ConsumerQueryRewardSummariesOrderBy {\n  CONSUMER_ASC = 'CONSUMER_ASC',\n  CONSUMER_DESC = 'CONSUMER_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  ORDER_TYPE_ASC = 'ORDER_TYPE_ASC',\n  ORDER_TYPE_DESC = 'ORDER_TYPE_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__ID_ASC = 'PROJECT_BY_PROJECT_ID__ID_ASC',\n  PROJECT_BY_PROJECT_ID__ID_DESC = 'PROJECT_BY_PROJECT_ID__ID_DESC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC',\n  PROJECT_BY_PROJECT_ID__METADATA_ASC = 'PROJECT_BY_PROJECT_ID__METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__METADATA_DESC = 'PROJECT_BY_PROJECT_ID__METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__OWNER_ASC = 'PROJECT_BY_PROJECT_ID__OWNER_ASC',\n  PROJECT_BY_PROJECT_ID__OWNER_DESC = 'PROJECT_BY_PROJECT_ID__OWNER_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC',\n  PROJECT_BY_PROJECT_ID__TYPE_ASC = 'PROJECT_BY_PROJECT_ID__TYPE_ASC',\n  PROJECT_BY_PROJECT_ID__TYPE_DESC = 'PROJECT_BY_PROJECT_ID__TYPE_DESC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC',\n  PROJECT_ID_ASC = 'PROJECT_ID_ASC',\n  PROJECT_ID_DESC = 'PROJECT_ID_DESC',\n  TOTAL_REFUNDED_ASC = 'TOTAL_REFUNDED_ASC',\n  TOTAL_REFUNDED_DESC = 'TOTAL_REFUNDED_DESC',\n  TOTAL_SPENT_ASC = 'TOTAL_SPENT_ASC',\n  TOTAL_SPENT_DESC = 'TOTAL_SPENT_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type ConsumerQueryRewardSummary = Node & {\n  readonly __typename: 'ConsumerQueryRewardSummary';\n  readonly consumer: Scalars['String']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `ConsumerQueryRewardSummary`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly orderType: OrderType;\n  /** Reads a single `Project` that is related to this `ConsumerQueryRewardSummary`. */\n  readonly project: Maybe<Project>;\n  readonly projectId: Scalars['String']['output'];\n  readonly totalRefunded: Scalars['BigFloat']['output'];\n  readonly totalSpent: Scalars['BigFloat']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type ConsumerQueryRewardSummaryAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummaryAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<ConsumerQueryRewardSummaryAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<ConsumerQueryRewardSummaryDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<ConsumerQueryRewardSummaryMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<ConsumerQueryRewardSummaryMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<ConsumerQueryRewardSummaryStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<ConsumerQueryRewardSummaryStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<ConsumerQueryRewardSummarySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<ConsumerQueryRewardSummaryVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<ConsumerQueryRewardSummaryVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `ConsumerQueryRewardSummary` object types. */\nexport type ConsumerQueryRewardSummaryAggregatesFilter = {\n  /** Mean average aggregate over matching `ConsumerQueryRewardSummary` objects. */\n  readonly average: InputMaybe<ConsumerQueryRewardSummaryAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `ConsumerQueryRewardSummary` objects. */\n  readonly distinctCount: InputMaybe<ConsumerQueryRewardSummaryDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `ConsumerQueryRewardSummary` object to be included within the aggregate. */\n  readonly filter: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n  /** Maximum aggregate over matching `ConsumerQueryRewardSummary` objects. */\n  readonly max: InputMaybe<ConsumerQueryRewardSummaryMaxAggregateFilter>;\n  /** Minimum aggregate over matching `ConsumerQueryRewardSummary` objects. */\n  readonly min: InputMaybe<ConsumerQueryRewardSummaryMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `ConsumerQueryRewardSummary` objects. */\n  readonly stddevPopulation: InputMaybe<ConsumerQueryRewardSummaryStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `ConsumerQueryRewardSummary` objects. */\n  readonly stddevSample: InputMaybe<ConsumerQueryRewardSummaryStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `ConsumerQueryRewardSummary` objects. */\n  readonly sum: InputMaybe<ConsumerQueryRewardSummarySumAggregateFilter>;\n  /** Population variance aggregate over matching `ConsumerQueryRewardSummary` objects. */\n  readonly variancePopulation: InputMaybe<ConsumerQueryRewardSummaryVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `ConsumerQueryRewardSummary` objects. */\n  readonly varianceSample: InputMaybe<ConsumerQueryRewardSummaryVarianceSampleAggregateFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryAverageAggregateFilter = {\n  readonly totalRefunded: InputMaybe<BigFloatFilter>;\n  readonly totalSpent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryAverageAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummaryAverageAggregates';\n  /** Mean average of totalRefunded across the matching connection */\n  readonly totalRefunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalSpent across the matching connection */\n  readonly totalSpent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardSummaryDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly consumer: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly orderType: InputMaybe<BigIntFilter>;\n  readonly projectId: InputMaybe<BigIntFilter>;\n  readonly totalRefunded: InputMaybe<BigIntFilter>;\n  readonly totalSpent: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryDistinctCountAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummaryDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of consumer across the matching connection */\n  readonly consumer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of orderType across the matching connection */\n  readonly orderType: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of projectId across the matching connection */\n  readonly projectId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalRefunded across the matching connection */\n  readonly totalRefunded: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalSpent across the matching connection */\n  readonly totalSpent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `ConsumerQueryRewardSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type ConsumerQueryRewardSummaryFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<ConsumerQueryRewardSummaryFilter>>;\n  /** Filter by the object’s `consumer` field. */\n  readonly consumer: InputMaybe<StringFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<ConsumerQueryRewardSummaryFilter>>;\n  /** Filter by the object’s `orderType` field. */\n  readonly orderType: InputMaybe<OrderTypeFilter>;\n  /** Filter by the object’s `project` relation. */\n  readonly project: InputMaybe<ProjectFilter>;\n  /** Filter by the object’s `projectId` field. */\n  readonly projectId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `totalRefunded` field. */\n  readonly totalRefunded: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalSpent` field. */\n  readonly totalSpent: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryMaxAggregateFilter = {\n  readonly totalRefunded: InputMaybe<BigFloatFilter>;\n  readonly totalSpent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryMaxAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummaryMaxAggregates';\n  /** Maximum of totalRefunded across the matching connection */\n  readonly totalRefunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalSpent across the matching connection */\n  readonly totalSpent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardSummaryMinAggregateFilter = {\n  readonly totalRefunded: InputMaybe<BigFloatFilter>;\n  readonly totalSpent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryMinAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummaryMinAggregates';\n  /** Minimum of totalRefunded across the matching connection */\n  readonly totalRefunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalSpent across the matching connection */\n  readonly totalSpent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardSummaryStddevPopulationAggregateFilter = {\n  readonly totalRefunded: InputMaybe<BigFloatFilter>;\n  readonly totalSpent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryStddevPopulationAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummaryStddevPopulationAggregates';\n  /** Population standard deviation of totalRefunded across the matching connection */\n  readonly totalRefunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalSpent across the matching connection */\n  readonly totalSpent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardSummaryStddevSampleAggregateFilter = {\n  readonly totalRefunded: InputMaybe<BigFloatFilter>;\n  readonly totalSpent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryStddevSampleAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummaryStddevSampleAggregates';\n  /** Sample standard deviation of totalRefunded across the matching connection */\n  readonly totalRefunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalSpent across the matching connection */\n  readonly totalSpent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardSummarySumAggregateFilter = {\n  readonly totalRefunded: InputMaybe<BigFloatFilter>;\n  readonly totalSpent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardSummarySumAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummarySumAggregates';\n  /** Sum of totalRefunded across the matching connection */\n  readonly totalRefunded: Scalars['BigFloat']['output'];\n  /** Sum of totalSpent across the matching connection */\n  readonly totalSpent: Scalars['BigFloat']['output'];\n};\n\nexport type ConsumerQueryRewardSummaryVariancePopulationAggregateFilter = {\n  readonly totalRefunded: InputMaybe<BigFloatFilter>;\n  readonly totalSpent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryVariancePopulationAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummaryVariancePopulationAggregates';\n  /** Population variance of totalRefunded across the matching connection */\n  readonly totalRefunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalSpent across the matching connection */\n  readonly totalSpent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardSummaryVarianceSampleAggregateFilter = {\n  readonly totalRefunded: InputMaybe<BigFloatFilter>;\n  readonly totalSpent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardSummaryVarianceSampleAggregates = {\n  readonly __typename: 'ConsumerQueryRewardSummaryVarianceSampleAggregates';\n  /** Sample variance of totalRefunded across the matching connection */\n  readonly totalRefunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalSpent across the matching connection */\n  readonly totalSpent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardVariancePopulationAggregateFilter = {\n  readonly refunded: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardVariancePopulationAggregates = {\n  readonly __typename: 'ConsumerQueryRewardVariancePopulationAggregates';\n  /** Population variance of refunded across the matching connection */\n  readonly refunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ConsumerQueryRewardVarianceSampleAggregateFilter = {\n  readonly refunded: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n};\n\nexport type ConsumerQueryRewardVarianceSampleAggregates = {\n  readonly __typename: 'ConsumerQueryRewardVarianceSampleAggregates';\n  /** Sample variance of refunded across the matching connection */\n  readonly refunded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `ConsumerQueryReward` values. */\nexport type ConsumerQueryRewardsConnection = {\n  readonly __typename: 'ConsumerQueryRewardsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ConsumerQueryRewardAggregates>;\n  /** A list of edges which contains the `ConsumerQueryReward` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ConsumerQueryRewardsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ConsumerQueryRewardAggregates>>;\n  /** A list of `ConsumerQueryReward` objects. */\n  readonly nodes: ReadonlyArray<Maybe<ConsumerQueryReward>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `ConsumerQueryReward` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `ConsumerQueryReward` values. */\nexport type ConsumerQueryRewardsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ConsumerQueryRewardsGroupBy>;\n  having: InputMaybe<ConsumerQueryRewardsHavingInput>;\n};\n\n/** A `ConsumerQueryReward` edge in the connection. */\nexport type ConsumerQueryRewardsEdge = {\n  readonly __typename: 'ConsumerQueryRewardsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `ConsumerQueryReward` at the end of the edge. */\n  readonly node: Maybe<ConsumerQueryReward>;\n};\n\n/** Grouping methods for `ConsumerQueryReward` for usage during aggregation. */\nexport enum ConsumerQueryRewardsGroupBy {\n  CONSUMER = 'CONSUMER',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  ORDER_ID = 'ORDER_ID',\n  ORDER_TYPE = 'ORDER_TYPE',\n  PROJECT_ID = 'PROJECT_ID',\n  REFUNDED = 'REFUNDED',\n  SPENT = 'SPENT',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type ConsumerQueryRewardsHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly refunded: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardsHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly refunded: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `ConsumerQueryReward` aggregates. */\nexport type ConsumerQueryRewardsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<ConsumerQueryRewardsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<ConsumerQueryRewardsHavingInput>>;\n  readonly average: InputMaybe<ConsumerQueryRewardsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<ConsumerQueryRewardsHavingDistinctCountInput>;\n  readonly max: InputMaybe<ConsumerQueryRewardsHavingMaxInput>;\n  readonly min: InputMaybe<ConsumerQueryRewardsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<ConsumerQueryRewardsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<ConsumerQueryRewardsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<ConsumerQueryRewardsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<ConsumerQueryRewardsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<ConsumerQueryRewardsHavingVarianceSampleInput>;\n};\n\nexport type ConsumerQueryRewardsHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly refunded: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardsHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly refunded: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardsHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly refunded: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardsHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly refunded: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardsHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly refunded: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardsHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly refunded: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ConsumerQueryRewardsHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly refunded: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `ConsumerQueryReward`. */\nexport enum ConsumerQueryRewardsOrderBy {\n  CONSUMER_ASC = 'CONSUMER_ASC',\n  CONSUMER_DESC = 'CONSUMER_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  ORDER_ID_ASC = 'ORDER_ID_ASC',\n  ORDER_ID_DESC = 'ORDER_ID_DESC',\n  ORDER_TYPE_ASC = 'ORDER_TYPE_ASC',\n  ORDER_TYPE_DESC = 'ORDER_TYPE_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__ID_ASC = 'PROJECT_BY_PROJECT_ID__ID_ASC',\n  PROJECT_BY_PROJECT_ID__ID_DESC = 'PROJECT_BY_PROJECT_ID__ID_DESC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC',\n  PROJECT_BY_PROJECT_ID__METADATA_ASC = 'PROJECT_BY_PROJECT_ID__METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__METADATA_DESC = 'PROJECT_BY_PROJECT_ID__METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__OWNER_ASC = 'PROJECT_BY_PROJECT_ID__OWNER_ASC',\n  PROJECT_BY_PROJECT_ID__OWNER_DESC = 'PROJECT_BY_PROJECT_ID__OWNER_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC',\n  PROJECT_BY_PROJECT_ID__TYPE_ASC = 'PROJECT_BY_PROJECT_ID__TYPE_ASC',\n  PROJECT_BY_PROJECT_ID__TYPE_DESC = 'PROJECT_BY_PROJECT_ID__TYPE_DESC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC',\n  PROJECT_ID_ASC = 'PROJECT_ID_ASC',\n  PROJECT_ID_DESC = 'PROJECT_ID_DESC',\n  REFUNDED_ASC = 'REFUNDED_ASC',\n  REFUNDED_DESC = 'REFUNDED_DESC',\n  SPENT_ASC = 'SPENT_ASC',\n  SPENT_DESC = 'SPENT_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type Controller = Node & {\n  readonly __typename: 'Controller';\n  readonly controller: Scalars['String']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `Controller`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  readonly isActive: Scalars['Boolean']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type ControllerAggregates = {\n  readonly __typename: 'ControllerAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<ControllerAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<ControllerDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<ControllerMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<ControllerMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<ControllerStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<ControllerStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<ControllerSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<ControllerVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<ControllerVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `Controller` object types. */\nexport type ControllerAggregatesFilter = {\n  /** Mean average aggregate over matching `Controller` objects. */\n  readonly average: InputMaybe<ControllerAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `Controller` objects. */\n  readonly distinctCount: InputMaybe<ControllerDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `Controller` object to be included within the aggregate. */\n  readonly filter: InputMaybe<ControllerFilter>;\n  /** Maximum aggregate over matching `Controller` objects. */\n  readonly max: InputMaybe<ControllerMaxAggregateFilter>;\n  /** Minimum aggregate over matching `Controller` objects. */\n  readonly min: InputMaybe<ControllerMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `Controller` objects. */\n  readonly stddevPopulation: InputMaybe<ControllerStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `Controller` objects. */\n  readonly stddevSample: InputMaybe<ControllerStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `Controller` objects. */\n  readonly sum: InputMaybe<ControllerSumAggregateFilter>;\n  /** Population variance aggregate over matching `Controller` objects. */\n  readonly variancePopulation: InputMaybe<ControllerVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `Controller` objects. */\n  readonly varianceSample: InputMaybe<ControllerVarianceSampleAggregateFilter>;\n};\n\nexport type ControllerAverageAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type ControllerAverageAggregates = {\n  readonly __typename: 'ControllerAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ControllerDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly controller: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly isActive: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n};\n\nexport type ControllerDistinctCountAggregates = {\n  readonly __typename: 'ControllerDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of controller across the matching connection */\n  readonly controller: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of isActive across the matching connection */\n  readonly isActive: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Controller` object types. All fields are combined with a logical ‘and.’ */\nexport type ControllerFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<ControllerFilter>>;\n  /** Filter by the object’s `controller` field. */\n  readonly controller: InputMaybe<StringFilter>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `isActive` field. */\n  readonly isActive: InputMaybe<BooleanFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<ControllerFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<ControllerFilter>>;\n};\n\nexport type ControllerMaxAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type ControllerMaxAggregates = {\n  readonly __typename: 'ControllerMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ControllerMinAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type ControllerMinAggregates = {\n  readonly __typename: 'ControllerMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ControllerStddevPopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type ControllerStddevPopulationAggregates = {\n  readonly __typename: 'ControllerStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ControllerStddevSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type ControllerStddevSampleAggregates = {\n  readonly __typename: 'ControllerStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ControllerSumAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n};\n\nexport type ControllerSumAggregates = {\n  readonly __typename: 'ControllerSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\nexport type ControllerVariancePopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type ControllerVariancePopulationAggregates = {\n  readonly __typename: 'ControllerVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ControllerVarianceSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type ControllerVarianceSampleAggregates = {\n  readonly __typename: 'ControllerVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Controller` values. */\nexport type ControllersConnection = {\n  readonly __typename: 'ControllersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ControllerAggregates>;\n  /** A list of edges which contains the `Controller` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ControllersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ControllerAggregates>>;\n  /** A list of `Controller` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Controller>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Controller` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Controller` values. */\nexport type ControllersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ControllersGroupBy>;\n  having: InputMaybe<ControllersHavingInput>;\n};\n\n/** A `Controller` edge in the connection. */\nexport type ControllersEdge = {\n  readonly __typename: 'ControllersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Controller` at the end of the edge. */\n  readonly node: Maybe<Controller>;\n};\n\n/** Grouping methods for `Controller` for usage during aggregation. */\nexport enum ControllersGroupBy {\n  CONTROLLER = 'CONTROLLER',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  IS_ACTIVE = 'IS_ACTIVE',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport type ControllersHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ControllersHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `Controller` aggregates. */\nexport type ControllersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<ControllersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<ControllersHavingInput>>;\n  readonly average: InputMaybe<ControllersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<ControllersHavingDistinctCountInput>;\n  readonly max: InputMaybe<ControllersHavingMaxInput>;\n  readonly min: InputMaybe<ControllersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<ControllersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<ControllersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<ControllersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<ControllersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<ControllersHavingVarianceSampleInput>;\n};\n\nexport type ControllersHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ControllersHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ControllersHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ControllersHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ControllersHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ControllersHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type ControllersHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `Controller`. */\nexport enum ControllersOrderBy {\n  CONTROLLER_ASC = 'CONTROLLER_ASC',\n  CONTROLLER_DESC = 'CONTROLLER_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  IS_ACTIVE_ASC = 'IS_ACTIVE_ASC',\n  IS_ACTIVE_DESC = 'IS_ACTIVE_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\n/** A filter to be used against Datetime fields. All fields are combined with a logical ‘and.’ */\nexport type DatetimeFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<Scalars['Datetime']['input']>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<Scalars['Datetime']['input']>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<Scalars['Datetime']['input']>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['Datetime']['input']>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<Scalars['Datetime']['input']>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<Scalars['Datetime']['input']>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['Datetime']['input']>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<Scalars['Datetime']['input']>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<Scalars['Datetime']['input']>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<Scalars['Datetime']['input']>>;\n};\n\nexport type Delegation = Node & {\n  readonly __typename: 'Delegation';\n  readonly amount: Scalars['JSON']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Reads a single `Delegator` that is related to this `Delegation`. */\n  readonly delegator: Maybe<Delegator>;\n  readonly delegatorId: Scalars['String']['output'];\n  readonly exitEra: Maybe<Scalars['Int']['output']>;\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `Delegation`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type DelegationAggregates = {\n  readonly __typename: 'DelegationAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<DelegationAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<DelegationDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<DelegationMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<DelegationMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<DelegationStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<DelegationStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<DelegationSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<DelegationVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<DelegationVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `Delegation` object types. */\nexport type DelegationAggregatesFilter = {\n  /** Mean average aggregate over matching `Delegation` objects. */\n  readonly average: InputMaybe<DelegationAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `Delegation` objects. */\n  readonly distinctCount: InputMaybe<DelegationDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `Delegation` object to be included within the aggregate. */\n  readonly filter: InputMaybe<DelegationFilter>;\n  /** Maximum aggregate over matching `Delegation` objects. */\n  readonly max: InputMaybe<DelegationMaxAggregateFilter>;\n  /** Minimum aggregate over matching `Delegation` objects. */\n  readonly min: InputMaybe<DelegationMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `Delegation` objects. */\n  readonly stddevPopulation: InputMaybe<DelegationStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `Delegation` objects. */\n  readonly stddevSample: InputMaybe<DelegationStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `Delegation` objects. */\n  readonly sum: InputMaybe<DelegationSumAggregateFilter>;\n  /** Population variance aggregate over matching `Delegation` objects. */\n  readonly variancePopulation: InputMaybe<DelegationVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `Delegation` objects. */\n  readonly varianceSample: InputMaybe<DelegationVarianceSampleAggregateFilter>;\n};\n\nexport type DelegationAverageAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly exitEra: InputMaybe<BigFloatFilter>;\n};\n\nexport type DelegationAverageAggregates = {\n  readonly __typename: 'DelegationAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DelegationDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly amount: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly delegatorId: InputMaybe<BigIntFilter>;\n  readonly exitEra: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n};\n\nexport type DelegationDistinctCountAggregates = {\n  readonly __typename: 'DelegationDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorId across the matching connection */\n  readonly delegatorId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Delegation` object types. All fields are combined with a logical ‘and.’ */\nexport type DelegationFilter = {\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<JsonFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<DelegationFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `delegator` relation. */\n  readonly delegator: InputMaybe<DelegatorFilter>;\n  /** Filter by the object’s `delegatorId` field. */\n  readonly delegatorId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `exitEra` field. */\n  readonly exitEra: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<DelegationFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<DelegationFilter>>;\n};\n\nexport type DelegationMaxAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly exitEra: InputMaybe<IntFilter>;\n};\n\nexport type DelegationMaxAggregates = {\n  readonly __typename: 'DelegationMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DelegationMinAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly exitEra: InputMaybe<IntFilter>;\n};\n\nexport type DelegationMinAggregates = {\n  readonly __typename: 'DelegationMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DelegationStddevPopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly exitEra: InputMaybe<BigFloatFilter>;\n};\n\nexport type DelegationStddevPopulationAggregates = {\n  readonly __typename: 'DelegationStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DelegationStddevSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly exitEra: InputMaybe<BigFloatFilter>;\n};\n\nexport type DelegationStddevSampleAggregates = {\n  readonly __typename: 'DelegationStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DelegationSumAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly exitEra: InputMaybe<BigIntFilter>;\n};\n\nexport type DelegationSumAggregates = {\n  readonly __typename: 'DelegationSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of exitEra across the matching connection */\n  readonly exitEra: Scalars['BigInt']['output'];\n};\n\nexport type DelegationVariancePopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly exitEra: InputMaybe<BigFloatFilter>;\n};\n\nexport type DelegationVariancePopulationAggregates = {\n  readonly __typename: 'DelegationVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DelegationVarianceSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly exitEra: InputMaybe<BigFloatFilter>;\n};\n\nexport type DelegationVarianceSampleAggregates = {\n  readonly __typename: 'DelegationVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Delegation` values. */\nexport type DelegationsConnection = {\n  readonly __typename: 'DelegationsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DelegationAggregates>;\n  /** A list of edges which contains the `Delegation` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DelegationsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DelegationAggregates>>;\n  /** A list of `Delegation` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Delegation>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Delegation` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Delegation` values. */\nexport type DelegationsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DelegationsGroupBy>;\n  having: InputMaybe<DelegationsHavingInput>;\n};\n\n/** A `Delegation` edge in the connection. */\nexport type DelegationsEdge = {\n  readonly __typename: 'DelegationsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Delegation` at the end of the edge. */\n  readonly node: Maybe<Delegation>;\n};\n\n/** Grouping methods for `Delegation` for usage during aggregation. */\nexport enum DelegationsGroupBy {\n  AMOUNT = 'AMOUNT',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  EXIT_ERA = 'EXIT_ERA',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport type DelegationsHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegationsHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `Delegation` aggregates. */\nexport type DelegationsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<DelegationsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<DelegationsHavingInput>>;\n  readonly average: InputMaybe<DelegationsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<DelegationsHavingDistinctCountInput>;\n  readonly max: InputMaybe<DelegationsHavingMaxInput>;\n  readonly min: InputMaybe<DelegationsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<DelegationsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<DelegationsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<DelegationsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<DelegationsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<DelegationsHavingVarianceSampleInput>;\n};\n\nexport type DelegationsHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegationsHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegationsHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegationsHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegationsHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegationsHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegationsHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `Delegation`. */\nexport enum DelegationsOrderBy {\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_ASC = 'DELEGATOR_BY_DELEGATOR_ID__ID_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_DESC = 'DELEGATOR_BY_DELEGATOR_ID__ID_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC',\n  DELEGATOR_ID_ASC = 'DELEGATOR_ID_ASC',\n  DELEGATOR_ID_DESC = 'DELEGATOR_ID_DESC',\n  EXIT_ERA_ASC = 'EXIT_ERA_ASC',\n  EXIT_ERA_DESC = 'EXIT_ERA_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type Delegator = Node & {\n  readonly __typename: 'Delegator';\n  /** Reads and enables pagination through a set of `Reward`. */\n  readonly claimedRewards: RewardsConnection;\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Reads and enables pagination through a set of `Delegation`. */\n  readonly delegations: DelegationsConnection;\n  /** Reads and enables pagination through a set of `EraDelegatorApy`. */\n  readonly eraDelegatorApies: EraDelegatorApiesConnection;\n  /** Reads and enables pagination through a set of `EraDelegatorIndexerApy`. */\n  readonly eraDelegatorIndexerApies: EraDelegatorIndexerApiesConnection;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: EraRewardsConnection;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: EraStakesConnection;\n  /** Reads and enables pagination through a set of `Era`. */\n  readonly erasByEraRewardDelegatorIdAndEraId: DelegatorErasByEraRewardDelegatorIdAndEraIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Era`. */\n  readonly erasByEraStakeDelegatorIdAndEraId: DelegatorErasByEraStakeDelegatorIdAndEraIdManyToManyConnection;\n  readonly exitEra: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByDelegationDelegatorIdAndIndexerId: DelegatorIndexersByDelegationDelegatorIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByEraDelegatorIndexerApyDelegatorIdAndIndexerId: DelegatorIndexersByEraDelegatorIndexerApyDelegatorIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByEraRewardDelegatorIdAndIndexerId: DelegatorIndexersByEraRewardDelegatorIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByEraStakeDelegatorIdAndIndexerId: DelegatorIndexersByEraStakeDelegatorIdAndIndexerIdManyToManyConnection;\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly startEra: Scalars['Int']['output'];\n  readonly totalDelegations: Scalars['JSON']['output'];\n  /** Reads and enables pagination through a set of `UnclaimedReward`. */\n  readonly unclaimedRewards: UnclaimedRewardsConnection;\n};\n\nexport type DelegatorClaimedRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<RewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<RewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorDelegationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegations_Distinct_Enum>>>;\n  filter: InputMaybe<DelegationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorEraDelegatorApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraDelegatorApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraDelegatorApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorEraDelegatorIndexerApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Indexer_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraDelegatorIndexerApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraDelegatorIndexerApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorErasByEraRewardDelegatorIdAndEraIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Eras_Distinct_Enum>>>;\n  filter: InputMaybe<EraFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ErasOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorErasByEraStakeDelegatorIdAndEraIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Eras_Distinct_Enum>>>;\n  filter: InputMaybe<EraFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ErasOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorIndexersByDelegationDelegatorIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorIndexersByEraDelegatorIndexerApyDelegatorIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorIndexersByEraRewardDelegatorIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorIndexersByEraStakeDelegatorIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorUnclaimedRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Unclaimed_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<UnclaimedRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<UnclaimedRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorAggregates = {\n  readonly __typename: 'DelegatorAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<DelegatorAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<DelegatorDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<DelegatorMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<DelegatorMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<DelegatorStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<DelegatorStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<DelegatorSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<DelegatorVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<DelegatorVarianceSampleAggregates>;\n};\n\nexport type DelegatorAverageAggregates = {\n  readonly __typename: 'DelegatorAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of startEra across the matching connection */\n  readonly startEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DelegatorDistinctCountAggregates = {\n  readonly __typename: 'DelegatorDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of startEra across the matching connection */\n  readonly startEra: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalDelegations across the matching connection */\n  readonly totalDelegations: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A connection to a list of `Era` values, with data from `EraReward`. */\nexport type DelegatorErasByEraRewardDelegatorIdAndEraIdManyToManyConnection = {\n  readonly __typename: 'DelegatorErasByEraRewardDelegatorIdAndEraIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraAggregates>;\n  /** A list of edges which contains the `Era`, info from the `EraReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DelegatorErasByEraRewardDelegatorIdAndEraIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraAggregates>>;\n  /** A list of `Era` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Era>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Era` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Era` values, with data from `EraReward`. */\nexport type DelegatorErasByEraRewardDelegatorIdAndEraIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ErasGroupBy>;\n  having: InputMaybe<ErasHavingInput>;\n};\n\n/** A `Era` edge in the connection, with data from `EraReward`. */\nexport type DelegatorErasByEraRewardDelegatorIdAndEraIdManyToManyEdge = {\n  readonly __typename: 'DelegatorErasByEraRewardDelegatorIdAndEraIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: EraRewardsConnection;\n  /** The `Era` at the end of the edge. */\n  readonly node: Maybe<Era>;\n};\n\n/** A `Era` edge in the connection, with data from `EraReward`. */\nexport type DelegatorErasByEraRewardDelegatorIdAndEraIdManyToManyEdgeEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Era` values, with data from `EraStake`. */\nexport type DelegatorErasByEraStakeDelegatorIdAndEraIdManyToManyConnection = {\n  readonly __typename: 'DelegatorErasByEraStakeDelegatorIdAndEraIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraAggregates>;\n  /** A list of edges which contains the `Era`, info from the `EraStake`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DelegatorErasByEraStakeDelegatorIdAndEraIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraAggregates>>;\n  /** A list of `Era` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Era>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Era` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Era` values, with data from `EraStake`. */\nexport type DelegatorErasByEraStakeDelegatorIdAndEraIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ErasGroupBy>;\n  having: InputMaybe<ErasHavingInput>;\n};\n\n/** A `Era` edge in the connection, with data from `EraStake`. */\nexport type DelegatorErasByEraStakeDelegatorIdAndEraIdManyToManyEdge = {\n  readonly __typename: 'DelegatorErasByEraStakeDelegatorIdAndEraIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: EraStakesConnection;\n  /** The `Era` at the end of the edge. */\n  readonly node: Maybe<Era>;\n};\n\n/** A `Era` edge in the connection, with data from `EraStake`. */\nexport type DelegatorErasByEraStakeDelegatorIdAndEraIdManyToManyEdgeEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A filter to be used against `Delegator` object types. All fields are combined with a logical ‘and.’ */\nexport type DelegatorFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<DelegatorFilter>>;\n  /** Filter by the object’s `claimedRewards` relation. */\n  readonly claimedRewards: InputMaybe<DelegatorToManyRewardFilter>;\n  /** Some related `claimedRewards` exist. */\n  readonly claimedRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `delegations` relation. */\n  readonly delegations: InputMaybe<DelegatorToManyDelegationFilter>;\n  /** Some related `delegations` exist. */\n  readonly delegationsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraDelegatorApies` relation. */\n  readonly eraDelegatorApies: InputMaybe<DelegatorToManyEraDelegatorApyFilter>;\n  /** Some related `eraDelegatorApies` exist. */\n  readonly eraDelegatorApiesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraDelegatorIndexerApies` relation. */\n  readonly eraDelegatorIndexerApies: InputMaybe<DelegatorToManyEraDelegatorIndexerApyFilter>;\n  /** Some related `eraDelegatorIndexerApies` exist. */\n  readonly eraDelegatorIndexerApiesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraRewards` relation. */\n  readonly eraRewards: InputMaybe<DelegatorToManyEraRewardFilter>;\n  /** Some related `eraRewards` exist. */\n  readonly eraRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraStakes` relation. */\n  readonly eraStakes: InputMaybe<DelegatorToManyEraStakeFilter>;\n  /** Some related `eraStakes` exist. */\n  readonly eraStakesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `exitEra` field. */\n  readonly exitEra: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<DelegatorFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<DelegatorFilter>>;\n  /** Filter by the object’s `startEra` field. */\n  readonly startEra: InputMaybe<IntFilter>;\n  /** Filter by the object’s `totalDelegations` field. */\n  readonly totalDelegations: InputMaybe<JsonFilter>;\n  /** Filter by the object’s `unclaimedRewards` relation. */\n  readonly unclaimedRewards: InputMaybe<DelegatorToManyUnclaimedRewardFilter>;\n  /** Some related `unclaimedRewards` exist. */\n  readonly unclaimedRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `Delegation`. */\nexport type DelegatorIndexersByDelegationDelegatorIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DelegatorIndexersByDelegationDelegatorIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `Delegation`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DelegatorIndexersByDelegationDelegatorIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `Delegation`. */\nexport type DelegatorIndexersByDelegationDelegatorIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `Delegation`. */\nexport type DelegatorIndexersByDelegationDelegatorIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DelegatorIndexersByDelegationDelegatorIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `Delegation`. */\n  readonly delegations: DelegationsConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `Delegation`. */\nexport type DelegatorIndexersByDelegationDelegatorIdAndIndexerIdManyToManyEdgeDelegationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegations_Distinct_Enum>>>;\n  filter: InputMaybe<DelegationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraDelegatorIndexerApy`. */\nexport type DelegatorIndexersByEraDelegatorIndexerApyDelegatorIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DelegatorIndexersByEraDelegatorIndexerApyDelegatorIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `EraDelegatorIndexerApy`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DelegatorIndexersByEraDelegatorIndexerApyDelegatorIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraDelegatorIndexerApy`. */\nexport type DelegatorIndexersByEraDelegatorIndexerApyDelegatorIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<IndexersGroupBy>;\n    having: InputMaybe<IndexersHavingInput>;\n  };\n\n/** A `Indexer` edge in the connection, with data from `EraDelegatorIndexerApy`. */\nexport type DelegatorIndexersByEraDelegatorIndexerApyDelegatorIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DelegatorIndexersByEraDelegatorIndexerApyDelegatorIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraDelegatorIndexerApy`. */\n  readonly eraDelegatorIndexerApies: EraDelegatorIndexerApiesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraDelegatorIndexerApy`. */\nexport type DelegatorIndexersByEraDelegatorIndexerApyDelegatorIdAndIndexerIdManyToManyEdgeEraDelegatorIndexerApiesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Indexer_Apies_Distinct_Enum>>>;\n    filter: InputMaybe<EraDelegatorIndexerApyFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<EraDelegatorIndexerApiesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Indexer` values, with data from `EraReward`. */\nexport type DelegatorIndexersByEraRewardDelegatorIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DelegatorIndexersByEraRewardDelegatorIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `EraReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DelegatorIndexersByEraRewardDelegatorIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraReward`. */\nexport type DelegatorIndexersByEraRewardDelegatorIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraReward`. */\nexport type DelegatorIndexersByEraRewardDelegatorIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DelegatorIndexersByEraRewardDelegatorIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: EraRewardsConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraReward`. */\nexport type DelegatorIndexersByEraRewardDelegatorIdAndIndexerIdManyToManyEdgeEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraStake`. */\nexport type DelegatorIndexersByEraStakeDelegatorIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DelegatorIndexersByEraStakeDelegatorIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `EraStake`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DelegatorIndexersByEraStakeDelegatorIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraStake`. */\nexport type DelegatorIndexersByEraStakeDelegatorIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraStake`. */\nexport type DelegatorIndexersByEraStakeDelegatorIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DelegatorIndexersByEraStakeDelegatorIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: EraStakesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraStake`. */\nexport type DelegatorIndexersByEraStakeDelegatorIdAndIndexerIdManyToManyEdgeEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DelegatorMaxAggregates = {\n  readonly __typename: 'DelegatorMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['Int']['output']>;\n  /** Maximum of startEra across the matching connection */\n  readonly startEra: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DelegatorMinAggregates = {\n  readonly __typename: 'DelegatorMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['Int']['output']>;\n  /** Minimum of startEra across the matching connection */\n  readonly startEra: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DelegatorStddevPopulationAggregates = {\n  readonly __typename: 'DelegatorStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of startEra across the matching connection */\n  readonly startEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DelegatorStddevSampleAggregates = {\n  readonly __typename: 'DelegatorStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of startEra across the matching connection */\n  readonly startEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DelegatorSumAggregates = {\n  readonly __typename: 'DelegatorSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of exitEra across the matching connection */\n  readonly exitEra: Scalars['BigInt']['output'];\n  /** Sum of startEra across the matching connection */\n  readonly startEra: Scalars['BigInt']['output'];\n};\n\n/** A filter to be used against many `Delegation` object types. All fields are combined with a logical ‘and.’ */\nexport type DelegatorToManyDelegationFilter = {\n  /** Aggregates across related `Delegation` match the filter criteria. */\n  readonly aggregates: InputMaybe<DelegationAggregatesFilter>;\n  /** Every related `Delegation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<DelegationFilter>;\n  /** No related `Delegation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<DelegationFilter>;\n  /** Some related `Delegation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<DelegationFilter>;\n};\n\n/** A filter to be used against many `EraDelegatorApy` object types. All fields are combined with a logical ‘and.’ */\nexport type DelegatorToManyEraDelegatorApyFilter = {\n  /** Aggregates across related `EraDelegatorApy` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraDelegatorApyAggregatesFilter>;\n  /** Every related `EraDelegatorApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraDelegatorApyFilter>;\n  /** No related `EraDelegatorApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraDelegatorApyFilter>;\n  /** Some related `EraDelegatorApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraDelegatorApyFilter>;\n};\n\n/** A filter to be used against many `EraDelegatorIndexerApy` object types. All fields are combined with a logical ‘and.’ */\nexport type DelegatorToManyEraDelegatorIndexerApyFilter = {\n  /** Aggregates across related `EraDelegatorIndexerApy` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraDelegatorIndexerApyAggregatesFilter>;\n  /** Every related `EraDelegatorIndexerApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraDelegatorIndexerApyFilter>;\n  /** No related `EraDelegatorIndexerApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraDelegatorIndexerApyFilter>;\n  /** Some related `EraDelegatorIndexerApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraDelegatorIndexerApyFilter>;\n};\n\n/** A filter to be used against many `EraReward` object types. All fields are combined with a logical ‘and.’ */\nexport type DelegatorToManyEraRewardFilter = {\n  /** Aggregates across related `EraReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraRewardAggregatesFilter>;\n  /** Every related `EraReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraRewardFilter>;\n  /** No related `EraReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraRewardFilter>;\n  /** Some related `EraReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraRewardFilter>;\n};\n\n/** A filter to be used against many `EraStake` object types. All fields are combined with a logical ‘and.’ */\nexport type DelegatorToManyEraStakeFilter = {\n  /** Aggregates across related `EraStake` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraStakeAggregatesFilter>;\n  /** Every related `EraStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraStakeFilter>;\n  /** No related `EraStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraStakeFilter>;\n  /** Some related `EraStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraStakeFilter>;\n};\n\n/** A filter to be used against many `Reward` object types. All fields are combined with a logical ‘and.’ */\nexport type DelegatorToManyRewardFilter = {\n  /** Aggregates across related `Reward` match the filter criteria. */\n  readonly aggregates: InputMaybe<RewardAggregatesFilter>;\n  /** Every related `Reward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<RewardFilter>;\n  /** No related `Reward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<RewardFilter>;\n  /** Some related `Reward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<RewardFilter>;\n};\n\n/** A filter to be used against many `UnclaimedReward` object types. All fields are combined with a logical ‘and.’ */\nexport type DelegatorToManyUnclaimedRewardFilter = {\n  /** Aggregates across related `UnclaimedReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<UnclaimedRewardAggregatesFilter>;\n  /** Every related `UnclaimedReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<UnclaimedRewardFilter>;\n  /** No related `UnclaimedReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<UnclaimedRewardFilter>;\n  /** Some related `UnclaimedReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<UnclaimedRewardFilter>;\n};\n\nexport type DelegatorVariancePopulationAggregates = {\n  readonly __typename: 'DelegatorVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of startEra across the matching connection */\n  readonly startEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DelegatorVarianceSampleAggregates = {\n  readonly __typename: 'DelegatorVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of exitEra across the matching connection */\n  readonly exitEra: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of startEra across the matching connection */\n  readonly startEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Delegator` values. */\nexport type DelegatorsConnection = {\n  readonly __typename: 'DelegatorsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DelegatorAggregates>;\n  /** A list of edges which contains the `Delegator` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DelegatorsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DelegatorAggregates>>;\n  /** A list of `Delegator` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Delegator>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Delegator` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Delegator` values. */\nexport type DelegatorsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DelegatorsGroupBy>;\n  having: InputMaybe<DelegatorsHavingInput>;\n};\n\n/** A `Delegator` edge in the connection. */\nexport type DelegatorsEdge = {\n  readonly __typename: 'DelegatorsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Delegator` at the end of the edge. */\n  readonly node: Maybe<Delegator>;\n};\n\n/** Grouping methods for `Delegator` for usage during aggregation. */\nexport enum DelegatorsGroupBy {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  EXIT_ERA = 'EXIT_ERA',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  START_ERA = 'START_ERA',\n  TOTAL_DELEGATIONS = 'TOTAL_DELEGATIONS',\n}\n\nexport type DelegatorsHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n  readonly startEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegatorsHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n  readonly startEra: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `Delegator` aggregates. */\nexport type DelegatorsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<DelegatorsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<DelegatorsHavingInput>>;\n  readonly average: InputMaybe<DelegatorsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<DelegatorsHavingDistinctCountInput>;\n  readonly max: InputMaybe<DelegatorsHavingMaxInput>;\n  readonly min: InputMaybe<DelegatorsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<DelegatorsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<DelegatorsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<DelegatorsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<DelegatorsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<DelegatorsHavingVarianceSampleInput>;\n};\n\nexport type DelegatorsHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n  readonly startEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegatorsHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n  readonly startEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegatorsHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n  readonly startEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegatorsHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n  readonly startEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegatorsHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n  readonly startEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegatorsHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n  readonly startEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type DelegatorsHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly exitEra: InputMaybe<HavingIntFilter>;\n  readonly startEra: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `Delegator`. */\nexport enum DelegatorsOrderBy {\n  CLAIMED_REWARDS_AVERAGE_AMOUNT_ASC = 'CLAIMED_REWARDS_AVERAGE_AMOUNT_ASC',\n  CLAIMED_REWARDS_AVERAGE_AMOUNT_DESC = 'CLAIMED_REWARDS_AVERAGE_AMOUNT_DESC',\n  CLAIMED_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'CLAIMED_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  CLAIMED_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'CLAIMED_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  CLAIMED_REWARDS_AVERAGE_CLAIMED_TIME_ASC = 'CLAIMED_REWARDS_AVERAGE_CLAIMED_TIME_ASC',\n  CLAIMED_REWARDS_AVERAGE_CLAIMED_TIME_DESC = 'CLAIMED_REWARDS_AVERAGE_CLAIMED_TIME_DESC',\n  CLAIMED_REWARDS_AVERAGE_CREATED_BLOCK_ASC = 'CLAIMED_REWARDS_AVERAGE_CREATED_BLOCK_ASC',\n  CLAIMED_REWARDS_AVERAGE_CREATED_BLOCK_DESC = 'CLAIMED_REWARDS_AVERAGE_CREATED_BLOCK_DESC',\n  CLAIMED_REWARDS_AVERAGE_DELEGATOR_ADDRESS_ASC = 'CLAIMED_REWARDS_AVERAGE_DELEGATOR_ADDRESS_ASC',\n  CLAIMED_REWARDS_AVERAGE_DELEGATOR_ADDRESS_DESC = 'CLAIMED_REWARDS_AVERAGE_DELEGATOR_ADDRESS_DESC',\n  CLAIMED_REWARDS_AVERAGE_DELEGATOR_ID_ASC = 'CLAIMED_REWARDS_AVERAGE_DELEGATOR_ID_ASC',\n  CLAIMED_REWARDS_AVERAGE_DELEGATOR_ID_DESC = 'CLAIMED_REWARDS_AVERAGE_DELEGATOR_ID_DESC',\n  CLAIMED_REWARDS_AVERAGE_ID_ASC = 'CLAIMED_REWARDS_AVERAGE_ID_ASC',\n  CLAIMED_REWARDS_AVERAGE_ID_DESC = 'CLAIMED_REWARDS_AVERAGE_ID_DESC',\n  CLAIMED_REWARDS_AVERAGE_INDEXER_ADDRESS_ASC = 'CLAIMED_REWARDS_AVERAGE_INDEXER_ADDRESS_ASC',\n  CLAIMED_REWARDS_AVERAGE_INDEXER_ADDRESS_DESC = 'CLAIMED_REWARDS_AVERAGE_INDEXER_ADDRESS_DESC',\n  CLAIMED_REWARDS_AVERAGE_LAST_EVENT_ASC = 'CLAIMED_REWARDS_AVERAGE_LAST_EVENT_ASC',\n  CLAIMED_REWARDS_AVERAGE_LAST_EVENT_DESC = 'CLAIMED_REWARDS_AVERAGE_LAST_EVENT_DESC',\n  CLAIMED_REWARDS_COUNT_ASC = 'CLAIMED_REWARDS_COUNT_ASC',\n  CLAIMED_REWARDS_COUNT_DESC = 'CLAIMED_REWARDS_COUNT_DESC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_AMOUNT_ASC = 'CLAIMED_REWARDS_DISTINCT_COUNT_AMOUNT_ASC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_AMOUNT_DESC = 'CLAIMED_REWARDS_DISTINCT_COUNT_AMOUNT_DESC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'CLAIMED_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'CLAIMED_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_CLAIMED_TIME_ASC = 'CLAIMED_REWARDS_DISTINCT_COUNT_CLAIMED_TIME_ASC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_CLAIMED_TIME_DESC = 'CLAIMED_REWARDS_DISTINCT_COUNT_CLAIMED_TIME_DESC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'CLAIMED_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'CLAIMED_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ADDRESS_ASC = 'CLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ADDRESS_ASC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ADDRESS_DESC = 'CLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ADDRESS_DESC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'CLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'CLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_ID_ASC = 'CLAIMED_REWARDS_DISTINCT_COUNT_ID_ASC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_ID_DESC = 'CLAIMED_REWARDS_DISTINCT_COUNT_ID_DESC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_INDEXER_ADDRESS_ASC = 'CLAIMED_REWARDS_DISTINCT_COUNT_INDEXER_ADDRESS_ASC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_INDEXER_ADDRESS_DESC = 'CLAIMED_REWARDS_DISTINCT_COUNT_INDEXER_ADDRESS_DESC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_LAST_EVENT_ASC = 'CLAIMED_REWARDS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  CLAIMED_REWARDS_DISTINCT_COUNT_LAST_EVENT_DESC = 'CLAIMED_REWARDS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  CLAIMED_REWARDS_MAX_AMOUNT_ASC = 'CLAIMED_REWARDS_MAX_AMOUNT_ASC',\n  CLAIMED_REWARDS_MAX_AMOUNT_DESC = 'CLAIMED_REWARDS_MAX_AMOUNT_DESC',\n  CLAIMED_REWARDS_MAX_BLOCK_RANGE_ASC = 'CLAIMED_REWARDS_MAX_BLOCK_RANGE_ASC',\n  CLAIMED_REWARDS_MAX_BLOCK_RANGE_DESC = 'CLAIMED_REWARDS_MAX_BLOCK_RANGE_DESC',\n  CLAIMED_REWARDS_MAX_CLAIMED_TIME_ASC = 'CLAIMED_REWARDS_MAX_CLAIMED_TIME_ASC',\n  CLAIMED_REWARDS_MAX_CLAIMED_TIME_DESC = 'CLAIMED_REWARDS_MAX_CLAIMED_TIME_DESC',\n  CLAIMED_REWARDS_MAX_CREATED_BLOCK_ASC = 'CLAIMED_REWARDS_MAX_CREATED_BLOCK_ASC',\n  CLAIMED_REWARDS_MAX_CREATED_BLOCK_DESC = 'CLAIMED_REWARDS_MAX_CREATED_BLOCK_DESC',\n  CLAIMED_REWARDS_MAX_DELEGATOR_ADDRESS_ASC = 'CLAIMED_REWARDS_MAX_DELEGATOR_ADDRESS_ASC',\n  CLAIMED_REWARDS_MAX_DELEGATOR_ADDRESS_DESC = 'CLAIMED_REWARDS_MAX_DELEGATOR_ADDRESS_DESC',\n  CLAIMED_REWARDS_MAX_DELEGATOR_ID_ASC = 'CLAIMED_REWARDS_MAX_DELEGATOR_ID_ASC',\n  CLAIMED_REWARDS_MAX_DELEGATOR_ID_DESC = 'CLAIMED_REWARDS_MAX_DELEGATOR_ID_DESC',\n  CLAIMED_REWARDS_MAX_ID_ASC = 'CLAIMED_REWARDS_MAX_ID_ASC',\n  CLAIMED_REWARDS_MAX_ID_DESC = 'CLAIMED_REWARDS_MAX_ID_DESC',\n  CLAIMED_REWARDS_MAX_INDEXER_ADDRESS_ASC = 'CLAIMED_REWARDS_MAX_INDEXER_ADDRESS_ASC',\n  CLAIMED_REWARDS_MAX_INDEXER_ADDRESS_DESC = 'CLAIMED_REWARDS_MAX_INDEXER_ADDRESS_DESC',\n  CLAIMED_REWARDS_MAX_LAST_EVENT_ASC = 'CLAIMED_REWARDS_MAX_LAST_EVENT_ASC',\n  CLAIMED_REWARDS_MAX_LAST_EVENT_DESC = 'CLAIMED_REWARDS_MAX_LAST_EVENT_DESC',\n  CLAIMED_REWARDS_MIN_AMOUNT_ASC = 'CLAIMED_REWARDS_MIN_AMOUNT_ASC',\n  CLAIMED_REWARDS_MIN_AMOUNT_DESC = 'CLAIMED_REWARDS_MIN_AMOUNT_DESC',\n  CLAIMED_REWARDS_MIN_BLOCK_RANGE_ASC = 'CLAIMED_REWARDS_MIN_BLOCK_RANGE_ASC',\n  CLAIMED_REWARDS_MIN_BLOCK_RANGE_DESC = 'CLAIMED_REWARDS_MIN_BLOCK_RANGE_DESC',\n  CLAIMED_REWARDS_MIN_CLAIMED_TIME_ASC = 'CLAIMED_REWARDS_MIN_CLAIMED_TIME_ASC',\n  CLAIMED_REWARDS_MIN_CLAIMED_TIME_DESC = 'CLAIMED_REWARDS_MIN_CLAIMED_TIME_DESC',\n  CLAIMED_REWARDS_MIN_CREATED_BLOCK_ASC = 'CLAIMED_REWARDS_MIN_CREATED_BLOCK_ASC',\n  CLAIMED_REWARDS_MIN_CREATED_BLOCK_DESC = 'CLAIMED_REWARDS_MIN_CREATED_BLOCK_DESC',\n  CLAIMED_REWARDS_MIN_DELEGATOR_ADDRESS_ASC = 'CLAIMED_REWARDS_MIN_DELEGATOR_ADDRESS_ASC',\n  CLAIMED_REWARDS_MIN_DELEGATOR_ADDRESS_DESC = 'CLAIMED_REWARDS_MIN_DELEGATOR_ADDRESS_DESC',\n  CLAIMED_REWARDS_MIN_DELEGATOR_ID_ASC = 'CLAIMED_REWARDS_MIN_DELEGATOR_ID_ASC',\n  CLAIMED_REWARDS_MIN_DELEGATOR_ID_DESC = 'CLAIMED_REWARDS_MIN_DELEGATOR_ID_DESC',\n  CLAIMED_REWARDS_MIN_ID_ASC = 'CLAIMED_REWARDS_MIN_ID_ASC',\n  CLAIMED_REWARDS_MIN_ID_DESC = 'CLAIMED_REWARDS_MIN_ID_DESC',\n  CLAIMED_REWARDS_MIN_INDEXER_ADDRESS_ASC = 'CLAIMED_REWARDS_MIN_INDEXER_ADDRESS_ASC',\n  CLAIMED_REWARDS_MIN_INDEXER_ADDRESS_DESC = 'CLAIMED_REWARDS_MIN_INDEXER_ADDRESS_DESC',\n  CLAIMED_REWARDS_MIN_LAST_EVENT_ASC = 'CLAIMED_REWARDS_MIN_LAST_EVENT_ASC',\n  CLAIMED_REWARDS_MIN_LAST_EVENT_DESC = 'CLAIMED_REWARDS_MIN_LAST_EVENT_DESC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_AMOUNT_ASC = 'CLAIMED_REWARDS_STDDEV_POPULATION_AMOUNT_ASC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_AMOUNT_DESC = 'CLAIMED_REWARDS_STDDEV_POPULATION_AMOUNT_DESC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'CLAIMED_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'CLAIMED_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_CLAIMED_TIME_ASC = 'CLAIMED_REWARDS_STDDEV_POPULATION_CLAIMED_TIME_ASC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_CLAIMED_TIME_DESC = 'CLAIMED_REWARDS_STDDEV_POPULATION_CLAIMED_TIME_DESC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'CLAIMED_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'CLAIMED_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ADDRESS_ASC = 'CLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ADDRESS_ASC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ADDRESS_DESC = 'CLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ADDRESS_DESC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'CLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'CLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_ID_ASC = 'CLAIMED_REWARDS_STDDEV_POPULATION_ID_ASC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_ID_DESC = 'CLAIMED_REWARDS_STDDEV_POPULATION_ID_DESC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_INDEXER_ADDRESS_ASC = 'CLAIMED_REWARDS_STDDEV_POPULATION_INDEXER_ADDRESS_ASC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_INDEXER_ADDRESS_DESC = 'CLAIMED_REWARDS_STDDEV_POPULATION_INDEXER_ADDRESS_DESC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_LAST_EVENT_ASC = 'CLAIMED_REWARDS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  CLAIMED_REWARDS_STDDEV_POPULATION_LAST_EVENT_DESC = 'CLAIMED_REWARDS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_CLAIMED_TIME_ASC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_CLAIMED_TIME_ASC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_CLAIMED_TIME_DESC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_CLAIMED_TIME_DESC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ADDRESS_ASC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ADDRESS_ASC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ADDRESS_DESC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ADDRESS_DESC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_ID_ASC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_ID_DESC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_INDEXER_ADDRESS_ASC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_INDEXER_ADDRESS_ASC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_INDEXER_ADDRESS_DESC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_INDEXER_ADDRESS_DESC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  CLAIMED_REWARDS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'CLAIMED_REWARDS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  CLAIMED_REWARDS_SUM_AMOUNT_ASC = 'CLAIMED_REWARDS_SUM_AMOUNT_ASC',\n  CLAIMED_REWARDS_SUM_AMOUNT_DESC = 'CLAIMED_REWARDS_SUM_AMOUNT_DESC',\n  CLAIMED_REWARDS_SUM_BLOCK_RANGE_ASC = 'CLAIMED_REWARDS_SUM_BLOCK_RANGE_ASC',\n  CLAIMED_REWARDS_SUM_BLOCK_RANGE_DESC = 'CLAIMED_REWARDS_SUM_BLOCK_RANGE_DESC',\n  CLAIMED_REWARDS_SUM_CLAIMED_TIME_ASC = 'CLAIMED_REWARDS_SUM_CLAIMED_TIME_ASC',\n  CLAIMED_REWARDS_SUM_CLAIMED_TIME_DESC = 'CLAIMED_REWARDS_SUM_CLAIMED_TIME_DESC',\n  CLAIMED_REWARDS_SUM_CREATED_BLOCK_ASC = 'CLAIMED_REWARDS_SUM_CREATED_BLOCK_ASC',\n  CLAIMED_REWARDS_SUM_CREATED_BLOCK_DESC = 'CLAIMED_REWARDS_SUM_CREATED_BLOCK_DESC',\n  CLAIMED_REWARDS_SUM_DELEGATOR_ADDRESS_ASC = 'CLAIMED_REWARDS_SUM_DELEGATOR_ADDRESS_ASC',\n  CLAIMED_REWARDS_SUM_DELEGATOR_ADDRESS_DESC = 'CLAIMED_REWARDS_SUM_DELEGATOR_ADDRESS_DESC',\n  CLAIMED_REWARDS_SUM_DELEGATOR_ID_ASC = 'CLAIMED_REWARDS_SUM_DELEGATOR_ID_ASC',\n  CLAIMED_REWARDS_SUM_DELEGATOR_ID_DESC = 'CLAIMED_REWARDS_SUM_DELEGATOR_ID_DESC',\n  CLAIMED_REWARDS_SUM_ID_ASC = 'CLAIMED_REWARDS_SUM_ID_ASC',\n  CLAIMED_REWARDS_SUM_ID_DESC = 'CLAIMED_REWARDS_SUM_ID_DESC',\n  CLAIMED_REWARDS_SUM_INDEXER_ADDRESS_ASC = 'CLAIMED_REWARDS_SUM_INDEXER_ADDRESS_ASC',\n  CLAIMED_REWARDS_SUM_INDEXER_ADDRESS_DESC = 'CLAIMED_REWARDS_SUM_INDEXER_ADDRESS_DESC',\n  CLAIMED_REWARDS_SUM_LAST_EVENT_ASC = 'CLAIMED_REWARDS_SUM_LAST_EVENT_ASC',\n  CLAIMED_REWARDS_SUM_LAST_EVENT_DESC = 'CLAIMED_REWARDS_SUM_LAST_EVENT_DESC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_CLAIMED_TIME_ASC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_CLAIMED_TIME_ASC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_CLAIMED_TIME_DESC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_CLAIMED_TIME_DESC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ADDRESS_ASC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ADDRESS_ASC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ADDRESS_DESC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ADDRESS_DESC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_ID_ASC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_ID_DESC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_INDEXER_ADDRESS_ASC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_INDEXER_ADDRESS_ASC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_INDEXER_ADDRESS_DESC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_INDEXER_ADDRESS_DESC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  CLAIMED_REWARDS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'CLAIMED_REWARDS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_CLAIMED_TIME_ASC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_CLAIMED_TIME_ASC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_CLAIMED_TIME_DESC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_CLAIMED_TIME_DESC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ADDRESS_ASC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ADDRESS_ASC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ADDRESS_DESC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ADDRESS_DESC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_INDEXER_ADDRESS_ASC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_INDEXER_ADDRESS_ASC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_INDEXER_ADDRESS_DESC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_INDEXER_ADDRESS_DESC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  CLAIMED_REWARDS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'CLAIMED_REWARDS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DELEGATIONS_AVERAGE_AMOUNT_ASC = 'DELEGATIONS_AVERAGE_AMOUNT_ASC',\n  DELEGATIONS_AVERAGE_AMOUNT_DESC = 'DELEGATIONS_AVERAGE_AMOUNT_DESC',\n  DELEGATIONS_AVERAGE_BLOCK_RANGE_ASC = 'DELEGATIONS_AVERAGE_BLOCK_RANGE_ASC',\n  DELEGATIONS_AVERAGE_BLOCK_RANGE_DESC = 'DELEGATIONS_AVERAGE_BLOCK_RANGE_DESC',\n  DELEGATIONS_AVERAGE_CREATED_BLOCK_ASC = 'DELEGATIONS_AVERAGE_CREATED_BLOCK_ASC',\n  DELEGATIONS_AVERAGE_CREATED_BLOCK_DESC = 'DELEGATIONS_AVERAGE_CREATED_BLOCK_DESC',\n  DELEGATIONS_AVERAGE_DELEGATOR_ID_ASC = 'DELEGATIONS_AVERAGE_DELEGATOR_ID_ASC',\n  DELEGATIONS_AVERAGE_DELEGATOR_ID_DESC = 'DELEGATIONS_AVERAGE_DELEGATOR_ID_DESC',\n  DELEGATIONS_AVERAGE_EXIT_ERA_ASC = 'DELEGATIONS_AVERAGE_EXIT_ERA_ASC',\n  DELEGATIONS_AVERAGE_EXIT_ERA_DESC = 'DELEGATIONS_AVERAGE_EXIT_ERA_DESC',\n  DELEGATIONS_AVERAGE_ID_ASC = 'DELEGATIONS_AVERAGE_ID_ASC',\n  DELEGATIONS_AVERAGE_ID_DESC = 'DELEGATIONS_AVERAGE_ID_DESC',\n  DELEGATIONS_AVERAGE_INDEXER_ID_ASC = 'DELEGATIONS_AVERAGE_INDEXER_ID_ASC',\n  DELEGATIONS_AVERAGE_INDEXER_ID_DESC = 'DELEGATIONS_AVERAGE_INDEXER_ID_DESC',\n  DELEGATIONS_AVERAGE_LAST_EVENT_ASC = 'DELEGATIONS_AVERAGE_LAST_EVENT_ASC',\n  DELEGATIONS_AVERAGE_LAST_EVENT_DESC = 'DELEGATIONS_AVERAGE_LAST_EVENT_DESC',\n  DELEGATIONS_BY_DELEGATOR_ID__COUNT_ASC = 'DELEGATIONS_BY_DELEGATOR_ID__COUNT_ASC',\n  DELEGATIONS_BY_DELEGATOR_ID__COUNT_DESC = 'DELEGATIONS_BY_DELEGATOR_ID__COUNT_DESC',\n  DELEGATIONS_COUNT_ASC = 'DELEGATIONS_COUNT_ASC',\n  DELEGATIONS_COUNT_DESC = 'DELEGATIONS_COUNT_DESC',\n  DELEGATIONS_DISTINCT_COUNT_AMOUNT_ASC = 'DELEGATIONS_DISTINCT_COUNT_AMOUNT_ASC',\n  DELEGATIONS_DISTINCT_COUNT_AMOUNT_DESC = 'DELEGATIONS_DISTINCT_COUNT_AMOUNT_DESC',\n  DELEGATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'DELEGATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  DELEGATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'DELEGATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  DELEGATIONS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'DELEGATIONS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  DELEGATIONS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'DELEGATIONS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  DELEGATIONS_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'DELEGATIONS_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  DELEGATIONS_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'DELEGATIONS_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  DELEGATIONS_DISTINCT_COUNT_EXIT_ERA_ASC = 'DELEGATIONS_DISTINCT_COUNT_EXIT_ERA_ASC',\n  DELEGATIONS_DISTINCT_COUNT_EXIT_ERA_DESC = 'DELEGATIONS_DISTINCT_COUNT_EXIT_ERA_DESC',\n  DELEGATIONS_DISTINCT_COUNT_ID_ASC = 'DELEGATIONS_DISTINCT_COUNT_ID_ASC',\n  DELEGATIONS_DISTINCT_COUNT_ID_DESC = 'DELEGATIONS_DISTINCT_COUNT_ID_DESC',\n  DELEGATIONS_DISTINCT_COUNT_INDEXER_ID_ASC = 'DELEGATIONS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  DELEGATIONS_DISTINCT_COUNT_INDEXER_ID_DESC = 'DELEGATIONS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  DELEGATIONS_DISTINCT_COUNT_LAST_EVENT_ASC = 'DELEGATIONS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  DELEGATIONS_DISTINCT_COUNT_LAST_EVENT_DESC = 'DELEGATIONS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  DELEGATIONS_MAX_AMOUNT_ASC = 'DELEGATIONS_MAX_AMOUNT_ASC',\n  DELEGATIONS_MAX_AMOUNT_DESC = 'DELEGATIONS_MAX_AMOUNT_DESC',\n  DELEGATIONS_MAX_BLOCK_RANGE_ASC = 'DELEGATIONS_MAX_BLOCK_RANGE_ASC',\n  DELEGATIONS_MAX_BLOCK_RANGE_DESC = 'DELEGATIONS_MAX_BLOCK_RANGE_DESC',\n  DELEGATIONS_MAX_CREATED_BLOCK_ASC = 'DELEGATIONS_MAX_CREATED_BLOCK_ASC',\n  DELEGATIONS_MAX_CREATED_BLOCK_DESC = 'DELEGATIONS_MAX_CREATED_BLOCK_DESC',\n  DELEGATIONS_MAX_DELEGATOR_ID_ASC = 'DELEGATIONS_MAX_DELEGATOR_ID_ASC',\n  DELEGATIONS_MAX_DELEGATOR_ID_DESC = 'DELEGATIONS_MAX_DELEGATOR_ID_DESC',\n  DELEGATIONS_MAX_EXIT_ERA_ASC = 'DELEGATIONS_MAX_EXIT_ERA_ASC',\n  DELEGATIONS_MAX_EXIT_ERA_DESC = 'DELEGATIONS_MAX_EXIT_ERA_DESC',\n  DELEGATIONS_MAX_ID_ASC = 'DELEGATIONS_MAX_ID_ASC',\n  DELEGATIONS_MAX_ID_DESC = 'DELEGATIONS_MAX_ID_DESC',\n  DELEGATIONS_MAX_INDEXER_ID_ASC = 'DELEGATIONS_MAX_INDEXER_ID_ASC',\n  DELEGATIONS_MAX_INDEXER_ID_DESC = 'DELEGATIONS_MAX_INDEXER_ID_DESC',\n  DELEGATIONS_MAX_LAST_EVENT_ASC = 'DELEGATIONS_MAX_LAST_EVENT_ASC',\n  DELEGATIONS_MAX_LAST_EVENT_DESC = 'DELEGATIONS_MAX_LAST_EVENT_DESC',\n  DELEGATIONS_MIN_AMOUNT_ASC = 'DELEGATIONS_MIN_AMOUNT_ASC',\n  DELEGATIONS_MIN_AMOUNT_DESC = 'DELEGATIONS_MIN_AMOUNT_DESC',\n  DELEGATIONS_MIN_BLOCK_RANGE_ASC = 'DELEGATIONS_MIN_BLOCK_RANGE_ASC',\n  DELEGATIONS_MIN_BLOCK_RANGE_DESC = 'DELEGATIONS_MIN_BLOCK_RANGE_DESC',\n  DELEGATIONS_MIN_CREATED_BLOCK_ASC = 'DELEGATIONS_MIN_CREATED_BLOCK_ASC',\n  DELEGATIONS_MIN_CREATED_BLOCK_DESC = 'DELEGATIONS_MIN_CREATED_BLOCK_DESC',\n  DELEGATIONS_MIN_DELEGATOR_ID_ASC = 'DELEGATIONS_MIN_DELEGATOR_ID_ASC',\n  DELEGATIONS_MIN_DELEGATOR_ID_DESC = 'DELEGATIONS_MIN_DELEGATOR_ID_DESC',\n  DELEGATIONS_MIN_EXIT_ERA_ASC = 'DELEGATIONS_MIN_EXIT_ERA_ASC',\n  DELEGATIONS_MIN_EXIT_ERA_DESC = 'DELEGATIONS_MIN_EXIT_ERA_DESC',\n  DELEGATIONS_MIN_ID_ASC = 'DELEGATIONS_MIN_ID_ASC',\n  DELEGATIONS_MIN_ID_DESC = 'DELEGATIONS_MIN_ID_DESC',\n  DELEGATIONS_MIN_INDEXER_ID_ASC = 'DELEGATIONS_MIN_INDEXER_ID_ASC',\n  DELEGATIONS_MIN_INDEXER_ID_DESC = 'DELEGATIONS_MIN_INDEXER_ID_DESC',\n  DELEGATIONS_MIN_LAST_EVENT_ASC = 'DELEGATIONS_MIN_LAST_EVENT_ASC',\n  DELEGATIONS_MIN_LAST_EVENT_DESC = 'DELEGATIONS_MIN_LAST_EVENT_DESC',\n  DELEGATIONS_STDDEV_POPULATION_AMOUNT_ASC = 'DELEGATIONS_STDDEV_POPULATION_AMOUNT_ASC',\n  DELEGATIONS_STDDEV_POPULATION_AMOUNT_DESC = 'DELEGATIONS_STDDEV_POPULATION_AMOUNT_DESC',\n  DELEGATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'DELEGATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  DELEGATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'DELEGATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  DELEGATIONS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'DELEGATIONS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  DELEGATIONS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'DELEGATIONS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  DELEGATIONS_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'DELEGATIONS_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  DELEGATIONS_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'DELEGATIONS_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  DELEGATIONS_STDDEV_POPULATION_EXIT_ERA_ASC = 'DELEGATIONS_STDDEV_POPULATION_EXIT_ERA_ASC',\n  DELEGATIONS_STDDEV_POPULATION_EXIT_ERA_DESC = 'DELEGATIONS_STDDEV_POPULATION_EXIT_ERA_DESC',\n  DELEGATIONS_STDDEV_POPULATION_ID_ASC = 'DELEGATIONS_STDDEV_POPULATION_ID_ASC',\n  DELEGATIONS_STDDEV_POPULATION_ID_DESC = 'DELEGATIONS_STDDEV_POPULATION_ID_DESC',\n  DELEGATIONS_STDDEV_POPULATION_INDEXER_ID_ASC = 'DELEGATIONS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  DELEGATIONS_STDDEV_POPULATION_INDEXER_ID_DESC = 'DELEGATIONS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  DELEGATIONS_STDDEV_POPULATION_LAST_EVENT_ASC = 'DELEGATIONS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  DELEGATIONS_STDDEV_POPULATION_LAST_EVENT_DESC = 'DELEGATIONS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_AMOUNT_ASC = 'DELEGATIONS_STDDEV_SAMPLE_AMOUNT_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_AMOUNT_DESC = 'DELEGATIONS_STDDEV_SAMPLE_AMOUNT_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'DELEGATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'DELEGATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'DELEGATIONS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'DELEGATIONS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'DELEGATIONS_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'DELEGATIONS_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_EXIT_ERA_ASC = 'DELEGATIONS_STDDEV_SAMPLE_EXIT_ERA_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_EXIT_ERA_DESC = 'DELEGATIONS_STDDEV_SAMPLE_EXIT_ERA_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_ID_ASC = 'DELEGATIONS_STDDEV_SAMPLE_ID_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_ID_DESC = 'DELEGATIONS_STDDEV_SAMPLE_ID_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'DELEGATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'DELEGATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'DELEGATIONS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'DELEGATIONS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  DELEGATIONS_SUM_AMOUNT_ASC = 'DELEGATIONS_SUM_AMOUNT_ASC',\n  DELEGATIONS_SUM_AMOUNT_DESC = 'DELEGATIONS_SUM_AMOUNT_DESC',\n  DELEGATIONS_SUM_BLOCK_RANGE_ASC = 'DELEGATIONS_SUM_BLOCK_RANGE_ASC',\n  DELEGATIONS_SUM_BLOCK_RANGE_DESC = 'DELEGATIONS_SUM_BLOCK_RANGE_DESC',\n  DELEGATIONS_SUM_CREATED_BLOCK_ASC = 'DELEGATIONS_SUM_CREATED_BLOCK_ASC',\n  DELEGATIONS_SUM_CREATED_BLOCK_DESC = 'DELEGATIONS_SUM_CREATED_BLOCK_DESC',\n  DELEGATIONS_SUM_DELEGATOR_ID_ASC = 'DELEGATIONS_SUM_DELEGATOR_ID_ASC',\n  DELEGATIONS_SUM_DELEGATOR_ID_DESC = 'DELEGATIONS_SUM_DELEGATOR_ID_DESC',\n  DELEGATIONS_SUM_EXIT_ERA_ASC = 'DELEGATIONS_SUM_EXIT_ERA_ASC',\n  DELEGATIONS_SUM_EXIT_ERA_DESC = 'DELEGATIONS_SUM_EXIT_ERA_DESC',\n  DELEGATIONS_SUM_ID_ASC = 'DELEGATIONS_SUM_ID_ASC',\n  DELEGATIONS_SUM_ID_DESC = 'DELEGATIONS_SUM_ID_DESC',\n  DELEGATIONS_SUM_INDEXER_ID_ASC = 'DELEGATIONS_SUM_INDEXER_ID_ASC',\n  DELEGATIONS_SUM_INDEXER_ID_DESC = 'DELEGATIONS_SUM_INDEXER_ID_DESC',\n  DELEGATIONS_SUM_LAST_EVENT_ASC = 'DELEGATIONS_SUM_LAST_EVENT_ASC',\n  DELEGATIONS_SUM_LAST_EVENT_DESC = 'DELEGATIONS_SUM_LAST_EVENT_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_AMOUNT_ASC = 'DELEGATIONS_VARIANCE_POPULATION_AMOUNT_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_AMOUNT_DESC = 'DELEGATIONS_VARIANCE_POPULATION_AMOUNT_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'DELEGATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'DELEGATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'DELEGATIONS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'DELEGATIONS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'DELEGATIONS_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'DELEGATIONS_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_EXIT_ERA_ASC = 'DELEGATIONS_VARIANCE_POPULATION_EXIT_ERA_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_EXIT_ERA_DESC = 'DELEGATIONS_VARIANCE_POPULATION_EXIT_ERA_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_ID_ASC = 'DELEGATIONS_VARIANCE_POPULATION_ID_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_ID_DESC = 'DELEGATIONS_VARIANCE_POPULATION_ID_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'DELEGATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'DELEGATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'DELEGATIONS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'DELEGATIONS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_AMOUNT_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_AMOUNT_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_AMOUNT_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_AMOUNT_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_EXIT_ERA_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_EXIT_ERA_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_EXIT_ERA_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_EXIT_ERA_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_ID_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_ID_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_ID_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_ID_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  ERA_DELEGATOR_APIES_AVERAGE_APY_ASC = 'ERA_DELEGATOR_APIES_AVERAGE_APY_ASC',\n  ERA_DELEGATOR_APIES_AVERAGE_APY_DESC = 'ERA_DELEGATOR_APIES_AVERAGE_APY_DESC',\n  ERA_DELEGATOR_APIES_AVERAGE_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_APIES_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_APIES_AVERAGE_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_APIES_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_APIES_AVERAGE_CREATE_AT_ASC = 'ERA_DELEGATOR_APIES_AVERAGE_CREATE_AT_ASC',\n  ERA_DELEGATOR_APIES_AVERAGE_CREATE_AT_DESC = 'ERA_DELEGATOR_APIES_AVERAGE_CREATE_AT_DESC',\n  ERA_DELEGATOR_APIES_AVERAGE_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_APIES_AVERAGE_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_APIES_AVERAGE_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_APIES_AVERAGE_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_APIES_AVERAGE_ERA_IDX_ASC = 'ERA_DELEGATOR_APIES_AVERAGE_ERA_IDX_ASC',\n  ERA_DELEGATOR_APIES_AVERAGE_ERA_IDX_DESC = 'ERA_DELEGATOR_APIES_AVERAGE_ERA_IDX_DESC',\n  ERA_DELEGATOR_APIES_AVERAGE_ID_ASC = 'ERA_DELEGATOR_APIES_AVERAGE_ID_ASC',\n  ERA_DELEGATOR_APIES_AVERAGE_ID_DESC = 'ERA_DELEGATOR_APIES_AVERAGE_ID_DESC',\n  ERA_DELEGATOR_APIES_AVERAGE_REWARD_ASC = 'ERA_DELEGATOR_APIES_AVERAGE_REWARD_ASC',\n  ERA_DELEGATOR_APIES_AVERAGE_REWARD_DESC = 'ERA_DELEGATOR_APIES_AVERAGE_REWARD_DESC',\n  ERA_DELEGATOR_APIES_AVERAGE_UPDATE_AT_ASC = 'ERA_DELEGATOR_APIES_AVERAGE_UPDATE_AT_ASC',\n  ERA_DELEGATOR_APIES_AVERAGE_UPDATE_AT_DESC = 'ERA_DELEGATOR_APIES_AVERAGE_UPDATE_AT_DESC',\n  ERA_DELEGATOR_APIES_BY_DELEGATOR_ID__COUNT_ASC = 'ERA_DELEGATOR_APIES_BY_DELEGATOR_ID__COUNT_ASC',\n  ERA_DELEGATOR_APIES_BY_DELEGATOR_ID__COUNT_DESC = 'ERA_DELEGATOR_APIES_BY_DELEGATOR_ID__COUNT_DESC',\n  ERA_DELEGATOR_APIES_COUNT_ASC = 'ERA_DELEGATOR_APIES_COUNT_ASC',\n  ERA_DELEGATOR_APIES_COUNT_DESC = 'ERA_DELEGATOR_APIES_COUNT_DESC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_APY_ASC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_APY_ASC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_APY_DESC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_APY_DESC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_CREATE_AT_ASC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_CREATE_AT_DESC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_ID_ASC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_ID_ASC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_ID_DESC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_ID_DESC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_REWARD_ASC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_REWARD_ASC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_REWARD_DESC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_REWARD_DESC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  ERA_DELEGATOR_APIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'ERA_DELEGATOR_APIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  ERA_DELEGATOR_APIES_MAX_APY_ASC = 'ERA_DELEGATOR_APIES_MAX_APY_ASC',\n  ERA_DELEGATOR_APIES_MAX_APY_DESC = 'ERA_DELEGATOR_APIES_MAX_APY_DESC',\n  ERA_DELEGATOR_APIES_MAX_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_APIES_MAX_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_APIES_MAX_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_APIES_MAX_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_APIES_MAX_CREATE_AT_ASC = 'ERA_DELEGATOR_APIES_MAX_CREATE_AT_ASC',\n  ERA_DELEGATOR_APIES_MAX_CREATE_AT_DESC = 'ERA_DELEGATOR_APIES_MAX_CREATE_AT_DESC',\n  ERA_DELEGATOR_APIES_MAX_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_APIES_MAX_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_APIES_MAX_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_APIES_MAX_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_APIES_MAX_ERA_IDX_ASC = 'ERA_DELEGATOR_APIES_MAX_ERA_IDX_ASC',\n  ERA_DELEGATOR_APIES_MAX_ERA_IDX_DESC = 'ERA_DELEGATOR_APIES_MAX_ERA_IDX_DESC',\n  ERA_DELEGATOR_APIES_MAX_ID_ASC = 'ERA_DELEGATOR_APIES_MAX_ID_ASC',\n  ERA_DELEGATOR_APIES_MAX_ID_DESC = 'ERA_DELEGATOR_APIES_MAX_ID_DESC',\n  ERA_DELEGATOR_APIES_MAX_REWARD_ASC = 'ERA_DELEGATOR_APIES_MAX_REWARD_ASC',\n  ERA_DELEGATOR_APIES_MAX_REWARD_DESC = 'ERA_DELEGATOR_APIES_MAX_REWARD_DESC',\n  ERA_DELEGATOR_APIES_MAX_UPDATE_AT_ASC = 'ERA_DELEGATOR_APIES_MAX_UPDATE_AT_ASC',\n  ERA_DELEGATOR_APIES_MAX_UPDATE_AT_DESC = 'ERA_DELEGATOR_APIES_MAX_UPDATE_AT_DESC',\n  ERA_DELEGATOR_APIES_MIN_APY_ASC = 'ERA_DELEGATOR_APIES_MIN_APY_ASC',\n  ERA_DELEGATOR_APIES_MIN_APY_DESC = 'ERA_DELEGATOR_APIES_MIN_APY_DESC',\n  ERA_DELEGATOR_APIES_MIN_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_APIES_MIN_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_APIES_MIN_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_APIES_MIN_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_APIES_MIN_CREATE_AT_ASC = 'ERA_DELEGATOR_APIES_MIN_CREATE_AT_ASC',\n  ERA_DELEGATOR_APIES_MIN_CREATE_AT_DESC = 'ERA_DELEGATOR_APIES_MIN_CREATE_AT_DESC',\n  ERA_DELEGATOR_APIES_MIN_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_APIES_MIN_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_APIES_MIN_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_APIES_MIN_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_APIES_MIN_ERA_IDX_ASC = 'ERA_DELEGATOR_APIES_MIN_ERA_IDX_ASC',\n  ERA_DELEGATOR_APIES_MIN_ERA_IDX_DESC = 'ERA_DELEGATOR_APIES_MIN_ERA_IDX_DESC',\n  ERA_DELEGATOR_APIES_MIN_ID_ASC = 'ERA_DELEGATOR_APIES_MIN_ID_ASC',\n  ERA_DELEGATOR_APIES_MIN_ID_DESC = 'ERA_DELEGATOR_APIES_MIN_ID_DESC',\n  ERA_DELEGATOR_APIES_MIN_REWARD_ASC = 'ERA_DELEGATOR_APIES_MIN_REWARD_ASC',\n  ERA_DELEGATOR_APIES_MIN_REWARD_DESC = 'ERA_DELEGATOR_APIES_MIN_REWARD_DESC',\n  ERA_DELEGATOR_APIES_MIN_UPDATE_AT_ASC = 'ERA_DELEGATOR_APIES_MIN_UPDATE_AT_ASC',\n  ERA_DELEGATOR_APIES_MIN_UPDATE_AT_DESC = 'ERA_DELEGATOR_APIES_MIN_UPDATE_AT_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_APY_ASC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_APY_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_APY_DESC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_APY_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_CREATE_AT_ASC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_CREATE_AT_DESC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_ID_ASC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_ID_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_ID_DESC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_ID_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_REWARD_ASC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_REWARD_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_REWARD_DESC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_REWARD_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'ERA_DELEGATOR_APIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_APY_ASC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_APY_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_APY_DESC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_APY_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_ID_ASC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_ID_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_ID_DESC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_ID_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_REWARD_ASC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_REWARD_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_REWARD_DESC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_REWARD_DESC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  ERA_DELEGATOR_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'ERA_DELEGATOR_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  ERA_DELEGATOR_APIES_SUM_APY_ASC = 'ERA_DELEGATOR_APIES_SUM_APY_ASC',\n  ERA_DELEGATOR_APIES_SUM_APY_DESC = 'ERA_DELEGATOR_APIES_SUM_APY_DESC',\n  ERA_DELEGATOR_APIES_SUM_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_APIES_SUM_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_APIES_SUM_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_APIES_SUM_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_APIES_SUM_CREATE_AT_ASC = 'ERA_DELEGATOR_APIES_SUM_CREATE_AT_ASC',\n  ERA_DELEGATOR_APIES_SUM_CREATE_AT_DESC = 'ERA_DELEGATOR_APIES_SUM_CREATE_AT_DESC',\n  ERA_DELEGATOR_APIES_SUM_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_APIES_SUM_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_APIES_SUM_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_APIES_SUM_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_APIES_SUM_ERA_IDX_ASC = 'ERA_DELEGATOR_APIES_SUM_ERA_IDX_ASC',\n  ERA_DELEGATOR_APIES_SUM_ERA_IDX_DESC = 'ERA_DELEGATOR_APIES_SUM_ERA_IDX_DESC',\n  ERA_DELEGATOR_APIES_SUM_ID_ASC = 'ERA_DELEGATOR_APIES_SUM_ID_ASC',\n  ERA_DELEGATOR_APIES_SUM_ID_DESC = 'ERA_DELEGATOR_APIES_SUM_ID_DESC',\n  ERA_DELEGATOR_APIES_SUM_REWARD_ASC = 'ERA_DELEGATOR_APIES_SUM_REWARD_ASC',\n  ERA_DELEGATOR_APIES_SUM_REWARD_DESC = 'ERA_DELEGATOR_APIES_SUM_REWARD_DESC',\n  ERA_DELEGATOR_APIES_SUM_UPDATE_AT_ASC = 'ERA_DELEGATOR_APIES_SUM_UPDATE_AT_ASC',\n  ERA_DELEGATOR_APIES_SUM_UPDATE_AT_DESC = 'ERA_DELEGATOR_APIES_SUM_UPDATE_AT_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_APY_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_APY_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_APY_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_APY_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_ID_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_ID_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_ID_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_ID_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_REWARD_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_REWARD_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_REWARD_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_REWARD_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_APY_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_APY_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_APY_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_APY_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_ID_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_ID_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_ID_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_ID_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_REWARD_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_REWARD_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_REWARD_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_REWARD_DESC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'ERA_DELEGATOR_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_BY_DELEGATOR_ID__COUNT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_BY_DELEGATOR_ID__COUNT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_BY_DELEGATOR_ID__COUNT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_BY_DELEGATOR_ID__COUNT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_COUNT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_COUNT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_COUNT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_COUNT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  ERA_REWARDS_AVERAGE_AMOUNT_ASC = 'ERA_REWARDS_AVERAGE_AMOUNT_ASC',\n  ERA_REWARDS_AVERAGE_AMOUNT_DESC = 'ERA_REWARDS_AVERAGE_AMOUNT_DESC',\n  ERA_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'ERA_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'ERA_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_REWARDS_AVERAGE_CLAIMED_ASC = 'ERA_REWARDS_AVERAGE_CLAIMED_ASC',\n  ERA_REWARDS_AVERAGE_CLAIMED_DESC = 'ERA_REWARDS_AVERAGE_CLAIMED_DESC',\n  ERA_REWARDS_AVERAGE_CREATED_BLOCK_ASC = 'ERA_REWARDS_AVERAGE_CREATED_BLOCK_ASC',\n  ERA_REWARDS_AVERAGE_CREATED_BLOCK_DESC = 'ERA_REWARDS_AVERAGE_CREATED_BLOCK_DESC',\n  ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_AVERAGE_DELEGATOR_ID_ASC = 'ERA_REWARDS_AVERAGE_DELEGATOR_ID_ASC',\n  ERA_REWARDS_AVERAGE_DELEGATOR_ID_DESC = 'ERA_REWARDS_AVERAGE_DELEGATOR_ID_DESC',\n  ERA_REWARDS_AVERAGE_ERA_IDX_ASC = 'ERA_REWARDS_AVERAGE_ERA_IDX_ASC',\n  ERA_REWARDS_AVERAGE_ERA_IDX_DESC = 'ERA_REWARDS_AVERAGE_ERA_IDX_DESC',\n  ERA_REWARDS_AVERAGE_ERA_ID_ASC = 'ERA_REWARDS_AVERAGE_ERA_ID_ASC',\n  ERA_REWARDS_AVERAGE_ERA_ID_DESC = 'ERA_REWARDS_AVERAGE_ERA_ID_DESC',\n  ERA_REWARDS_AVERAGE_ID_ASC = 'ERA_REWARDS_AVERAGE_ID_ASC',\n  ERA_REWARDS_AVERAGE_ID_DESC = 'ERA_REWARDS_AVERAGE_ID_DESC',\n  ERA_REWARDS_AVERAGE_INDEXER_ID_ASC = 'ERA_REWARDS_AVERAGE_INDEXER_ID_ASC',\n  ERA_REWARDS_AVERAGE_INDEXER_ID_DESC = 'ERA_REWARDS_AVERAGE_INDEXER_ID_DESC',\n  ERA_REWARDS_AVERAGE_IS_COMMISSION_ASC = 'ERA_REWARDS_AVERAGE_IS_COMMISSION_ASC',\n  ERA_REWARDS_AVERAGE_IS_COMMISSION_DESC = 'ERA_REWARDS_AVERAGE_IS_COMMISSION_DESC',\n  ERA_REWARDS_AVERAGE_IS_INDEXER_ASC = 'ERA_REWARDS_AVERAGE_IS_INDEXER_ASC',\n  ERA_REWARDS_AVERAGE_IS_INDEXER_DESC = 'ERA_REWARDS_AVERAGE_IS_INDEXER_DESC',\n  ERA_REWARDS_BY_DELEGATOR_ID__COUNT_ASC = 'ERA_REWARDS_BY_DELEGATOR_ID__COUNT_ASC',\n  ERA_REWARDS_BY_DELEGATOR_ID__COUNT_DESC = 'ERA_REWARDS_BY_DELEGATOR_ID__COUNT_DESC',\n  ERA_REWARDS_COUNT_ASC = 'ERA_REWARDS_COUNT_ASC',\n  ERA_REWARDS_COUNT_DESC = 'ERA_REWARDS_COUNT_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_AMOUNT_ASC = 'ERA_REWARDS_DISTINCT_COUNT_AMOUNT_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_AMOUNT_DESC = 'ERA_REWARDS_DISTINCT_COUNT_AMOUNT_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_CLAIMED_ASC = 'ERA_REWARDS_DISTINCT_COUNT_CLAIMED_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_CLAIMED_DESC = 'ERA_REWARDS_DISTINCT_COUNT_CLAIMED_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_ASC = 'ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_DESC = 'ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_ASC = 'ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_DESC = 'ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_DESC',\n  ERA_REWARDS_MAX_AMOUNT_ASC = 'ERA_REWARDS_MAX_AMOUNT_ASC',\n  ERA_REWARDS_MAX_AMOUNT_DESC = 'ERA_REWARDS_MAX_AMOUNT_DESC',\n  ERA_REWARDS_MAX_BLOCK_RANGE_ASC = 'ERA_REWARDS_MAX_BLOCK_RANGE_ASC',\n  ERA_REWARDS_MAX_BLOCK_RANGE_DESC = 'ERA_REWARDS_MAX_BLOCK_RANGE_DESC',\n  ERA_REWARDS_MAX_CLAIMED_ASC = 'ERA_REWARDS_MAX_CLAIMED_ASC',\n  ERA_REWARDS_MAX_CLAIMED_DESC = 'ERA_REWARDS_MAX_CLAIMED_DESC',\n  ERA_REWARDS_MAX_CREATED_BLOCK_ASC = 'ERA_REWARDS_MAX_CREATED_BLOCK_ASC',\n  ERA_REWARDS_MAX_CREATED_BLOCK_DESC = 'ERA_REWARDS_MAX_CREATED_BLOCK_DESC',\n  ERA_REWARDS_MAX_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_MAX_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_MAX_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_MAX_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_MAX_DELEGATOR_ID_ASC = 'ERA_REWARDS_MAX_DELEGATOR_ID_ASC',\n  ERA_REWARDS_MAX_DELEGATOR_ID_DESC = 'ERA_REWARDS_MAX_DELEGATOR_ID_DESC',\n  ERA_REWARDS_MAX_ERA_IDX_ASC = 'ERA_REWARDS_MAX_ERA_IDX_ASC',\n  ERA_REWARDS_MAX_ERA_IDX_DESC = 'ERA_REWARDS_MAX_ERA_IDX_DESC',\n  ERA_REWARDS_MAX_ERA_ID_ASC = 'ERA_REWARDS_MAX_ERA_ID_ASC',\n  ERA_REWARDS_MAX_ERA_ID_DESC = 'ERA_REWARDS_MAX_ERA_ID_DESC',\n  ERA_REWARDS_MAX_ID_ASC = 'ERA_REWARDS_MAX_ID_ASC',\n  ERA_REWARDS_MAX_ID_DESC = 'ERA_REWARDS_MAX_ID_DESC',\n  ERA_REWARDS_MAX_INDEXER_ID_ASC = 'ERA_REWARDS_MAX_INDEXER_ID_ASC',\n  ERA_REWARDS_MAX_INDEXER_ID_DESC = 'ERA_REWARDS_MAX_INDEXER_ID_DESC',\n  ERA_REWARDS_MAX_IS_COMMISSION_ASC = 'ERA_REWARDS_MAX_IS_COMMISSION_ASC',\n  ERA_REWARDS_MAX_IS_COMMISSION_DESC = 'ERA_REWARDS_MAX_IS_COMMISSION_DESC',\n  ERA_REWARDS_MAX_IS_INDEXER_ASC = 'ERA_REWARDS_MAX_IS_INDEXER_ASC',\n  ERA_REWARDS_MAX_IS_INDEXER_DESC = 'ERA_REWARDS_MAX_IS_INDEXER_DESC',\n  ERA_REWARDS_MIN_AMOUNT_ASC = 'ERA_REWARDS_MIN_AMOUNT_ASC',\n  ERA_REWARDS_MIN_AMOUNT_DESC = 'ERA_REWARDS_MIN_AMOUNT_DESC',\n  ERA_REWARDS_MIN_BLOCK_RANGE_ASC = 'ERA_REWARDS_MIN_BLOCK_RANGE_ASC',\n  ERA_REWARDS_MIN_BLOCK_RANGE_DESC = 'ERA_REWARDS_MIN_BLOCK_RANGE_DESC',\n  ERA_REWARDS_MIN_CLAIMED_ASC = 'ERA_REWARDS_MIN_CLAIMED_ASC',\n  ERA_REWARDS_MIN_CLAIMED_DESC = 'ERA_REWARDS_MIN_CLAIMED_DESC',\n  ERA_REWARDS_MIN_CREATED_BLOCK_ASC = 'ERA_REWARDS_MIN_CREATED_BLOCK_ASC',\n  ERA_REWARDS_MIN_CREATED_BLOCK_DESC = 'ERA_REWARDS_MIN_CREATED_BLOCK_DESC',\n  ERA_REWARDS_MIN_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_MIN_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_MIN_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_MIN_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_MIN_DELEGATOR_ID_ASC = 'ERA_REWARDS_MIN_DELEGATOR_ID_ASC',\n  ERA_REWARDS_MIN_DELEGATOR_ID_DESC = 'ERA_REWARDS_MIN_DELEGATOR_ID_DESC',\n  ERA_REWARDS_MIN_ERA_IDX_ASC = 'ERA_REWARDS_MIN_ERA_IDX_ASC',\n  ERA_REWARDS_MIN_ERA_IDX_DESC = 'ERA_REWARDS_MIN_ERA_IDX_DESC',\n  ERA_REWARDS_MIN_ERA_ID_ASC = 'ERA_REWARDS_MIN_ERA_ID_ASC',\n  ERA_REWARDS_MIN_ERA_ID_DESC = 'ERA_REWARDS_MIN_ERA_ID_DESC',\n  ERA_REWARDS_MIN_ID_ASC = 'ERA_REWARDS_MIN_ID_ASC',\n  ERA_REWARDS_MIN_ID_DESC = 'ERA_REWARDS_MIN_ID_DESC',\n  ERA_REWARDS_MIN_INDEXER_ID_ASC = 'ERA_REWARDS_MIN_INDEXER_ID_ASC',\n  ERA_REWARDS_MIN_INDEXER_ID_DESC = 'ERA_REWARDS_MIN_INDEXER_ID_DESC',\n  ERA_REWARDS_MIN_IS_COMMISSION_ASC = 'ERA_REWARDS_MIN_IS_COMMISSION_ASC',\n  ERA_REWARDS_MIN_IS_COMMISSION_DESC = 'ERA_REWARDS_MIN_IS_COMMISSION_DESC',\n  ERA_REWARDS_MIN_IS_INDEXER_ASC = 'ERA_REWARDS_MIN_IS_INDEXER_ASC',\n  ERA_REWARDS_MIN_IS_INDEXER_DESC = 'ERA_REWARDS_MIN_IS_INDEXER_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_AMOUNT_ASC = 'ERA_REWARDS_STDDEV_POPULATION_AMOUNT_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_AMOUNT_DESC = 'ERA_REWARDS_STDDEV_POPULATION_AMOUNT_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_CLAIMED_ASC = 'ERA_REWARDS_STDDEV_POPULATION_CLAIMED_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_CLAIMED_DESC = 'ERA_REWARDS_STDDEV_POPULATION_CLAIMED_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_ASC = 'ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_DESC = 'ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_ASC = 'ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_DESC = 'ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_DESC',\n  ERA_REWARDS_SUM_AMOUNT_ASC = 'ERA_REWARDS_SUM_AMOUNT_ASC',\n  ERA_REWARDS_SUM_AMOUNT_DESC = 'ERA_REWARDS_SUM_AMOUNT_DESC',\n  ERA_REWARDS_SUM_BLOCK_RANGE_ASC = 'ERA_REWARDS_SUM_BLOCK_RANGE_ASC',\n  ERA_REWARDS_SUM_BLOCK_RANGE_DESC = 'ERA_REWARDS_SUM_BLOCK_RANGE_DESC',\n  ERA_REWARDS_SUM_CLAIMED_ASC = 'ERA_REWARDS_SUM_CLAIMED_ASC',\n  ERA_REWARDS_SUM_CLAIMED_DESC = 'ERA_REWARDS_SUM_CLAIMED_DESC',\n  ERA_REWARDS_SUM_CREATED_BLOCK_ASC = 'ERA_REWARDS_SUM_CREATED_BLOCK_ASC',\n  ERA_REWARDS_SUM_CREATED_BLOCK_DESC = 'ERA_REWARDS_SUM_CREATED_BLOCK_DESC',\n  ERA_REWARDS_SUM_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_SUM_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_SUM_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_SUM_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_SUM_DELEGATOR_ID_ASC = 'ERA_REWARDS_SUM_DELEGATOR_ID_ASC',\n  ERA_REWARDS_SUM_DELEGATOR_ID_DESC = 'ERA_REWARDS_SUM_DELEGATOR_ID_DESC',\n  ERA_REWARDS_SUM_ERA_IDX_ASC = 'ERA_REWARDS_SUM_ERA_IDX_ASC',\n  ERA_REWARDS_SUM_ERA_IDX_DESC = 'ERA_REWARDS_SUM_ERA_IDX_DESC',\n  ERA_REWARDS_SUM_ERA_ID_ASC = 'ERA_REWARDS_SUM_ERA_ID_ASC',\n  ERA_REWARDS_SUM_ERA_ID_DESC = 'ERA_REWARDS_SUM_ERA_ID_DESC',\n  ERA_REWARDS_SUM_ID_ASC = 'ERA_REWARDS_SUM_ID_ASC',\n  ERA_REWARDS_SUM_ID_DESC = 'ERA_REWARDS_SUM_ID_DESC',\n  ERA_REWARDS_SUM_INDEXER_ID_ASC = 'ERA_REWARDS_SUM_INDEXER_ID_ASC',\n  ERA_REWARDS_SUM_INDEXER_ID_DESC = 'ERA_REWARDS_SUM_INDEXER_ID_DESC',\n  ERA_REWARDS_SUM_IS_COMMISSION_ASC = 'ERA_REWARDS_SUM_IS_COMMISSION_ASC',\n  ERA_REWARDS_SUM_IS_COMMISSION_DESC = 'ERA_REWARDS_SUM_IS_COMMISSION_DESC',\n  ERA_REWARDS_SUM_IS_INDEXER_ASC = 'ERA_REWARDS_SUM_IS_INDEXER_ASC',\n  ERA_REWARDS_SUM_IS_INDEXER_DESC = 'ERA_REWARDS_SUM_IS_INDEXER_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_DESC',\n  ERA_STAKES_AVERAGE_BLOCK_RANGE_ASC = 'ERA_STAKES_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_STAKES_AVERAGE_BLOCK_RANGE_DESC = 'ERA_STAKES_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_STAKES_AVERAGE_DELEGATOR_ID_ASC = 'ERA_STAKES_AVERAGE_DELEGATOR_ID_ASC',\n  ERA_STAKES_AVERAGE_DELEGATOR_ID_DESC = 'ERA_STAKES_AVERAGE_DELEGATOR_ID_DESC',\n  ERA_STAKES_AVERAGE_ERA_IDX_ASC = 'ERA_STAKES_AVERAGE_ERA_IDX_ASC',\n  ERA_STAKES_AVERAGE_ERA_IDX_DESC = 'ERA_STAKES_AVERAGE_ERA_IDX_DESC',\n  ERA_STAKES_AVERAGE_ERA_ID_ASC = 'ERA_STAKES_AVERAGE_ERA_ID_ASC',\n  ERA_STAKES_AVERAGE_ERA_ID_DESC = 'ERA_STAKES_AVERAGE_ERA_ID_DESC',\n  ERA_STAKES_AVERAGE_ID_ASC = 'ERA_STAKES_AVERAGE_ID_ASC',\n  ERA_STAKES_AVERAGE_ID_DESC = 'ERA_STAKES_AVERAGE_ID_DESC',\n  ERA_STAKES_AVERAGE_INDEXER_ID_ASC = 'ERA_STAKES_AVERAGE_INDEXER_ID_ASC',\n  ERA_STAKES_AVERAGE_INDEXER_ID_DESC = 'ERA_STAKES_AVERAGE_INDEXER_ID_DESC',\n  ERA_STAKES_AVERAGE_STAKE_ASC = 'ERA_STAKES_AVERAGE_STAKE_ASC',\n  ERA_STAKES_AVERAGE_STAKE_DESC = 'ERA_STAKES_AVERAGE_STAKE_DESC',\n  ERA_STAKES_BY_DELEGATOR_ID__COUNT_ASC = 'ERA_STAKES_BY_DELEGATOR_ID__COUNT_ASC',\n  ERA_STAKES_BY_DELEGATOR_ID__COUNT_DESC = 'ERA_STAKES_BY_DELEGATOR_ID__COUNT_DESC',\n  ERA_STAKES_COUNT_ASC = 'ERA_STAKES_COUNT_ASC',\n  ERA_STAKES_COUNT_DESC = 'ERA_STAKES_COUNT_DESC',\n  ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_STAKES_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_STAKES_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_ERA_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_ERA_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_STAKE_ASC = 'ERA_STAKES_DISTINCT_COUNT_STAKE_ASC',\n  ERA_STAKES_DISTINCT_COUNT_STAKE_DESC = 'ERA_STAKES_DISTINCT_COUNT_STAKE_DESC',\n  ERA_STAKES_MAX_BLOCK_RANGE_ASC = 'ERA_STAKES_MAX_BLOCK_RANGE_ASC',\n  ERA_STAKES_MAX_BLOCK_RANGE_DESC = 'ERA_STAKES_MAX_BLOCK_RANGE_DESC',\n  ERA_STAKES_MAX_DELEGATOR_ID_ASC = 'ERA_STAKES_MAX_DELEGATOR_ID_ASC',\n  ERA_STAKES_MAX_DELEGATOR_ID_DESC = 'ERA_STAKES_MAX_DELEGATOR_ID_DESC',\n  ERA_STAKES_MAX_ERA_IDX_ASC = 'ERA_STAKES_MAX_ERA_IDX_ASC',\n  ERA_STAKES_MAX_ERA_IDX_DESC = 'ERA_STAKES_MAX_ERA_IDX_DESC',\n  ERA_STAKES_MAX_ERA_ID_ASC = 'ERA_STAKES_MAX_ERA_ID_ASC',\n  ERA_STAKES_MAX_ERA_ID_DESC = 'ERA_STAKES_MAX_ERA_ID_DESC',\n  ERA_STAKES_MAX_ID_ASC = 'ERA_STAKES_MAX_ID_ASC',\n  ERA_STAKES_MAX_ID_DESC = 'ERA_STAKES_MAX_ID_DESC',\n  ERA_STAKES_MAX_INDEXER_ID_ASC = 'ERA_STAKES_MAX_INDEXER_ID_ASC',\n  ERA_STAKES_MAX_INDEXER_ID_DESC = 'ERA_STAKES_MAX_INDEXER_ID_DESC',\n  ERA_STAKES_MAX_STAKE_ASC = 'ERA_STAKES_MAX_STAKE_ASC',\n  ERA_STAKES_MAX_STAKE_DESC = 'ERA_STAKES_MAX_STAKE_DESC',\n  ERA_STAKES_MIN_BLOCK_RANGE_ASC = 'ERA_STAKES_MIN_BLOCK_RANGE_ASC',\n  ERA_STAKES_MIN_BLOCK_RANGE_DESC = 'ERA_STAKES_MIN_BLOCK_RANGE_DESC',\n  ERA_STAKES_MIN_DELEGATOR_ID_ASC = 'ERA_STAKES_MIN_DELEGATOR_ID_ASC',\n  ERA_STAKES_MIN_DELEGATOR_ID_DESC = 'ERA_STAKES_MIN_DELEGATOR_ID_DESC',\n  ERA_STAKES_MIN_ERA_IDX_ASC = 'ERA_STAKES_MIN_ERA_IDX_ASC',\n  ERA_STAKES_MIN_ERA_IDX_DESC = 'ERA_STAKES_MIN_ERA_IDX_DESC',\n  ERA_STAKES_MIN_ERA_ID_ASC = 'ERA_STAKES_MIN_ERA_ID_ASC',\n  ERA_STAKES_MIN_ERA_ID_DESC = 'ERA_STAKES_MIN_ERA_ID_DESC',\n  ERA_STAKES_MIN_ID_ASC = 'ERA_STAKES_MIN_ID_ASC',\n  ERA_STAKES_MIN_ID_DESC = 'ERA_STAKES_MIN_ID_DESC',\n  ERA_STAKES_MIN_INDEXER_ID_ASC = 'ERA_STAKES_MIN_INDEXER_ID_ASC',\n  ERA_STAKES_MIN_INDEXER_ID_DESC = 'ERA_STAKES_MIN_INDEXER_ID_DESC',\n  ERA_STAKES_MIN_STAKE_ASC = 'ERA_STAKES_MIN_STAKE_ASC',\n  ERA_STAKES_MIN_STAKE_DESC = 'ERA_STAKES_MIN_STAKE_DESC',\n  ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_STAKES_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_STAKES_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_ERA_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_ERA_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_STAKE_ASC = 'ERA_STAKES_STDDEV_POPULATION_STAKE_ASC',\n  ERA_STAKES_STDDEV_POPULATION_STAKE_DESC = 'ERA_STAKES_STDDEV_POPULATION_STAKE_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_STAKE_ASC = 'ERA_STAKES_STDDEV_SAMPLE_STAKE_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_STAKE_DESC = 'ERA_STAKES_STDDEV_SAMPLE_STAKE_DESC',\n  ERA_STAKES_SUM_BLOCK_RANGE_ASC = 'ERA_STAKES_SUM_BLOCK_RANGE_ASC',\n  ERA_STAKES_SUM_BLOCK_RANGE_DESC = 'ERA_STAKES_SUM_BLOCK_RANGE_DESC',\n  ERA_STAKES_SUM_DELEGATOR_ID_ASC = 'ERA_STAKES_SUM_DELEGATOR_ID_ASC',\n  ERA_STAKES_SUM_DELEGATOR_ID_DESC = 'ERA_STAKES_SUM_DELEGATOR_ID_DESC',\n  ERA_STAKES_SUM_ERA_IDX_ASC = 'ERA_STAKES_SUM_ERA_IDX_ASC',\n  ERA_STAKES_SUM_ERA_IDX_DESC = 'ERA_STAKES_SUM_ERA_IDX_DESC',\n  ERA_STAKES_SUM_ERA_ID_ASC = 'ERA_STAKES_SUM_ERA_ID_ASC',\n  ERA_STAKES_SUM_ERA_ID_DESC = 'ERA_STAKES_SUM_ERA_ID_DESC',\n  ERA_STAKES_SUM_ID_ASC = 'ERA_STAKES_SUM_ID_ASC',\n  ERA_STAKES_SUM_ID_DESC = 'ERA_STAKES_SUM_ID_DESC',\n  ERA_STAKES_SUM_INDEXER_ID_ASC = 'ERA_STAKES_SUM_INDEXER_ID_ASC',\n  ERA_STAKES_SUM_INDEXER_ID_DESC = 'ERA_STAKES_SUM_INDEXER_ID_DESC',\n  ERA_STAKES_SUM_STAKE_ASC = 'ERA_STAKES_SUM_STAKE_ASC',\n  ERA_STAKES_SUM_STAKE_DESC = 'ERA_STAKES_SUM_STAKE_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_STAKE_ASC = 'ERA_STAKES_VARIANCE_POPULATION_STAKE_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_STAKE_DESC = 'ERA_STAKES_VARIANCE_POPULATION_STAKE_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_STAKE_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_STAKE_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_STAKE_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_STAKE_DESC',\n  EXIT_ERA_ASC = 'EXIT_ERA_ASC',\n  EXIT_ERA_DESC = 'EXIT_ERA_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  REWARDS_BY_DELEGATOR_ID__COUNT_ASC = 'REWARDS_BY_DELEGATOR_ID__COUNT_ASC',\n  REWARDS_BY_DELEGATOR_ID__COUNT_DESC = 'REWARDS_BY_DELEGATOR_ID__COUNT_DESC',\n  START_ERA_ASC = 'START_ERA_ASC',\n  START_ERA_DESC = 'START_ERA_DESC',\n  TOTAL_DELEGATIONS_ASC = 'TOTAL_DELEGATIONS_ASC',\n  TOTAL_DELEGATIONS_DESC = 'TOTAL_DELEGATIONS_DESC',\n  UNCLAIMED_REWARDS_AVERAGE_AMOUNT_ASC = 'UNCLAIMED_REWARDS_AVERAGE_AMOUNT_ASC',\n  UNCLAIMED_REWARDS_AVERAGE_AMOUNT_DESC = 'UNCLAIMED_REWARDS_AVERAGE_AMOUNT_DESC',\n  UNCLAIMED_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'UNCLAIMED_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  UNCLAIMED_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'UNCLAIMED_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  UNCLAIMED_REWARDS_AVERAGE_CREATED_BLOCK_ASC = 'UNCLAIMED_REWARDS_AVERAGE_CREATED_BLOCK_ASC',\n  UNCLAIMED_REWARDS_AVERAGE_CREATED_BLOCK_DESC = 'UNCLAIMED_REWARDS_AVERAGE_CREATED_BLOCK_DESC',\n  UNCLAIMED_REWARDS_AVERAGE_DELEGATOR_ADDRESS_ASC = 'UNCLAIMED_REWARDS_AVERAGE_DELEGATOR_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_AVERAGE_DELEGATOR_ADDRESS_DESC = 'UNCLAIMED_REWARDS_AVERAGE_DELEGATOR_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_AVERAGE_DELEGATOR_ID_ASC = 'UNCLAIMED_REWARDS_AVERAGE_DELEGATOR_ID_ASC',\n  UNCLAIMED_REWARDS_AVERAGE_DELEGATOR_ID_DESC = 'UNCLAIMED_REWARDS_AVERAGE_DELEGATOR_ID_DESC',\n  UNCLAIMED_REWARDS_AVERAGE_ID_ASC = 'UNCLAIMED_REWARDS_AVERAGE_ID_ASC',\n  UNCLAIMED_REWARDS_AVERAGE_ID_DESC = 'UNCLAIMED_REWARDS_AVERAGE_ID_DESC',\n  UNCLAIMED_REWARDS_AVERAGE_INDEXER_ADDRESS_ASC = 'UNCLAIMED_REWARDS_AVERAGE_INDEXER_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_AVERAGE_INDEXER_ADDRESS_DESC = 'UNCLAIMED_REWARDS_AVERAGE_INDEXER_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_AVERAGE_LAST_EVENT_ASC = 'UNCLAIMED_REWARDS_AVERAGE_LAST_EVENT_ASC',\n  UNCLAIMED_REWARDS_AVERAGE_LAST_EVENT_DESC = 'UNCLAIMED_REWARDS_AVERAGE_LAST_EVENT_DESC',\n  UNCLAIMED_REWARDS_BY_DELEGATOR_ID__COUNT_ASC = 'UNCLAIMED_REWARDS_BY_DELEGATOR_ID__COUNT_ASC',\n  UNCLAIMED_REWARDS_BY_DELEGATOR_ID__COUNT_DESC = 'UNCLAIMED_REWARDS_BY_DELEGATOR_ID__COUNT_DESC',\n  UNCLAIMED_REWARDS_COUNT_ASC = 'UNCLAIMED_REWARDS_COUNT_ASC',\n  UNCLAIMED_REWARDS_COUNT_DESC = 'UNCLAIMED_REWARDS_COUNT_DESC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_AMOUNT_ASC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_AMOUNT_ASC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_AMOUNT_DESC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_AMOUNT_DESC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ADDRESS_ASC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ADDRESS_DESC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_ID_ASC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_ID_ASC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_ID_DESC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_ID_DESC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_INDEXER_ADDRESS_ASC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_INDEXER_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_INDEXER_ADDRESS_DESC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_INDEXER_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_LAST_EVENT_ASC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  UNCLAIMED_REWARDS_DISTINCT_COUNT_LAST_EVENT_DESC = 'UNCLAIMED_REWARDS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  UNCLAIMED_REWARDS_MAX_AMOUNT_ASC = 'UNCLAIMED_REWARDS_MAX_AMOUNT_ASC',\n  UNCLAIMED_REWARDS_MAX_AMOUNT_DESC = 'UNCLAIMED_REWARDS_MAX_AMOUNT_DESC',\n  UNCLAIMED_REWARDS_MAX_BLOCK_RANGE_ASC = 'UNCLAIMED_REWARDS_MAX_BLOCK_RANGE_ASC',\n  UNCLAIMED_REWARDS_MAX_BLOCK_RANGE_DESC = 'UNCLAIMED_REWARDS_MAX_BLOCK_RANGE_DESC',\n  UNCLAIMED_REWARDS_MAX_CREATED_BLOCK_ASC = 'UNCLAIMED_REWARDS_MAX_CREATED_BLOCK_ASC',\n  UNCLAIMED_REWARDS_MAX_CREATED_BLOCK_DESC = 'UNCLAIMED_REWARDS_MAX_CREATED_BLOCK_DESC',\n  UNCLAIMED_REWARDS_MAX_DELEGATOR_ADDRESS_ASC = 'UNCLAIMED_REWARDS_MAX_DELEGATOR_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_MAX_DELEGATOR_ADDRESS_DESC = 'UNCLAIMED_REWARDS_MAX_DELEGATOR_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_MAX_DELEGATOR_ID_ASC = 'UNCLAIMED_REWARDS_MAX_DELEGATOR_ID_ASC',\n  UNCLAIMED_REWARDS_MAX_DELEGATOR_ID_DESC = 'UNCLAIMED_REWARDS_MAX_DELEGATOR_ID_DESC',\n  UNCLAIMED_REWARDS_MAX_ID_ASC = 'UNCLAIMED_REWARDS_MAX_ID_ASC',\n  UNCLAIMED_REWARDS_MAX_ID_DESC = 'UNCLAIMED_REWARDS_MAX_ID_DESC',\n  UNCLAIMED_REWARDS_MAX_INDEXER_ADDRESS_ASC = 'UNCLAIMED_REWARDS_MAX_INDEXER_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_MAX_INDEXER_ADDRESS_DESC = 'UNCLAIMED_REWARDS_MAX_INDEXER_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_MAX_LAST_EVENT_ASC = 'UNCLAIMED_REWARDS_MAX_LAST_EVENT_ASC',\n  UNCLAIMED_REWARDS_MAX_LAST_EVENT_DESC = 'UNCLAIMED_REWARDS_MAX_LAST_EVENT_DESC',\n  UNCLAIMED_REWARDS_MIN_AMOUNT_ASC = 'UNCLAIMED_REWARDS_MIN_AMOUNT_ASC',\n  UNCLAIMED_REWARDS_MIN_AMOUNT_DESC = 'UNCLAIMED_REWARDS_MIN_AMOUNT_DESC',\n  UNCLAIMED_REWARDS_MIN_BLOCK_RANGE_ASC = 'UNCLAIMED_REWARDS_MIN_BLOCK_RANGE_ASC',\n  UNCLAIMED_REWARDS_MIN_BLOCK_RANGE_DESC = 'UNCLAIMED_REWARDS_MIN_BLOCK_RANGE_DESC',\n  UNCLAIMED_REWARDS_MIN_CREATED_BLOCK_ASC = 'UNCLAIMED_REWARDS_MIN_CREATED_BLOCK_ASC',\n  UNCLAIMED_REWARDS_MIN_CREATED_BLOCK_DESC = 'UNCLAIMED_REWARDS_MIN_CREATED_BLOCK_DESC',\n  UNCLAIMED_REWARDS_MIN_DELEGATOR_ADDRESS_ASC = 'UNCLAIMED_REWARDS_MIN_DELEGATOR_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_MIN_DELEGATOR_ADDRESS_DESC = 'UNCLAIMED_REWARDS_MIN_DELEGATOR_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_MIN_DELEGATOR_ID_ASC = 'UNCLAIMED_REWARDS_MIN_DELEGATOR_ID_ASC',\n  UNCLAIMED_REWARDS_MIN_DELEGATOR_ID_DESC = 'UNCLAIMED_REWARDS_MIN_DELEGATOR_ID_DESC',\n  UNCLAIMED_REWARDS_MIN_ID_ASC = 'UNCLAIMED_REWARDS_MIN_ID_ASC',\n  UNCLAIMED_REWARDS_MIN_ID_DESC = 'UNCLAIMED_REWARDS_MIN_ID_DESC',\n  UNCLAIMED_REWARDS_MIN_INDEXER_ADDRESS_ASC = 'UNCLAIMED_REWARDS_MIN_INDEXER_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_MIN_INDEXER_ADDRESS_DESC = 'UNCLAIMED_REWARDS_MIN_INDEXER_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_MIN_LAST_EVENT_ASC = 'UNCLAIMED_REWARDS_MIN_LAST_EVENT_ASC',\n  UNCLAIMED_REWARDS_MIN_LAST_EVENT_DESC = 'UNCLAIMED_REWARDS_MIN_LAST_EVENT_DESC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_AMOUNT_ASC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_AMOUNT_ASC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_AMOUNT_DESC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_AMOUNT_DESC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ADDRESS_ASC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ADDRESS_DESC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_ID_ASC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_ID_ASC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_ID_DESC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_ID_DESC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_INDEXER_ADDRESS_ASC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_INDEXER_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_INDEXER_ADDRESS_DESC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_INDEXER_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_LAST_EVENT_ASC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  UNCLAIMED_REWARDS_STDDEV_POPULATION_LAST_EVENT_DESC = 'UNCLAIMED_REWARDS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ADDRESS_ASC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ADDRESS_DESC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_ID_ASC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_ID_DESC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_INDEXER_ADDRESS_ASC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_INDEXER_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_INDEXER_ADDRESS_DESC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_INDEXER_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  UNCLAIMED_REWARDS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'UNCLAIMED_REWARDS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  UNCLAIMED_REWARDS_SUM_AMOUNT_ASC = 'UNCLAIMED_REWARDS_SUM_AMOUNT_ASC',\n  UNCLAIMED_REWARDS_SUM_AMOUNT_DESC = 'UNCLAIMED_REWARDS_SUM_AMOUNT_DESC',\n  UNCLAIMED_REWARDS_SUM_BLOCK_RANGE_ASC = 'UNCLAIMED_REWARDS_SUM_BLOCK_RANGE_ASC',\n  UNCLAIMED_REWARDS_SUM_BLOCK_RANGE_DESC = 'UNCLAIMED_REWARDS_SUM_BLOCK_RANGE_DESC',\n  UNCLAIMED_REWARDS_SUM_CREATED_BLOCK_ASC = 'UNCLAIMED_REWARDS_SUM_CREATED_BLOCK_ASC',\n  UNCLAIMED_REWARDS_SUM_CREATED_BLOCK_DESC = 'UNCLAIMED_REWARDS_SUM_CREATED_BLOCK_DESC',\n  UNCLAIMED_REWARDS_SUM_DELEGATOR_ADDRESS_ASC = 'UNCLAIMED_REWARDS_SUM_DELEGATOR_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_SUM_DELEGATOR_ADDRESS_DESC = 'UNCLAIMED_REWARDS_SUM_DELEGATOR_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_SUM_DELEGATOR_ID_ASC = 'UNCLAIMED_REWARDS_SUM_DELEGATOR_ID_ASC',\n  UNCLAIMED_REWARDS_SUM_DELEGATOR_ID_DESC = 'UNCLAIMED_REWARDS_SUM_DELEGATOR_ID_DESC',\n  UNCLAIMED_REWARDS_SUM_ID_ASC = 'UNCLAIMED_REWARDS_SUM_ID_ASC',\n  UNCLAIMED_REWARDS_SUM_ID_DESC = 'UNCLAIMED_REWARDS_SUM_ID_DESC',\n  UNCLAIMED_REWARDS_SUM_INDEXER_ADDRESS_ASC = 'UNCLAIMED_REWARDS_SUM_INDEXER_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_SUM_INDEXER_ADDRESS_DESC = 'UNCLAIMED_REWARDS_SUM_INDEXER_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_SUM_LAST_EVENT_ASC = 'UNCLAIMED_REWARDS_SUM_LAST_EVENT_ASC',\n  UNCLAIMED_REWARDS_SUM_LAST_EVENT_DESC = 'UNCLAIMED_REWARDS_SUM_LAST_EVENT_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ADDRESS_ASC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ADDRESS_DESC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_ID_ASC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_ID_DESC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_INDEXER_ADDRESS_ASC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_INDEXER_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_INDEXER_ADDRESS_DESC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_INDEXER_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'UNCLAIMED_REWARDS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ADDRESS_ASC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ADDRESS_DESC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_INDEXER_ADDRESS_ASC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_INDEXER_ADDRESS_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_INDEXER_ADDRESS_DESC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_INDEXER_ADDRESS_DESC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  UNCLAIMED_REWARDS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'UNCLAIMED_REWARDS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n}\n\nexport type Deployment = Node & {\n  readonly __typename: 'Deployment';\n  /** Reads and enables pagination through a set of `ConsumerQueryRewardSummary`. */\n  readonly consumerQueryRewardSummaries: ConsumerQueryRewardSummariesConnection;\n  /** Reads and enables pagination through a set of `ConsumerQueryReward`. */\n  readonly consumerQueryRewards: ConsumerQueryRewardsConnection;\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly createdTimestamp: Scalars['Datetime']['output'];\n  /** Reads and enables pagination through a set of `DeploymentBoosterSummary`. */\n  readonly deploymentBoosterSummaries: DeploymentBoosterSummariesConnection;\n  /** Reads and enables pagination through a set of `DeploymentBooster`. */\n  readonly deploymentBoosters: DeploymentBoostersConnection;\n  /** Reads and enables pagination through a set of `EraIndexerDeploymentApy`. */\n  readonly eraIndexerDeploymentApies: EraIndexerDeploymentApiesConnection;\n  readonly id: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: IndexerAllocationRewardSummariesConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: IndexerAllocationRewardsConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: IndexerAllocationSummariesConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: IndexerAllocationsConnection;\n  /** Reads and enables pagination through a set of `IndexerMissedLabor`. */\n  readonly indexerMissedLabors: IndexerMissedLaborsConnection;\n  /** Reads and enables pagination through a set of `IndexerDeployment`. */\n  readonly indexers: IndexerDeploymentsConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByEraIndexerDeploymentApyDeploymentIdAndIndexerId: DeploymentIndexersByEraIndexerDeploymentApyDeploymentIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerAllocationDeploymentIdAndIndexerId: DeploymentIndexersByIndexerAllocationDeploymentIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerAllocationRewardDeploymentIdAndIndexerId: DeploymentIndexersByIndexerAllocationRewardDeploymentIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerId: DeploymentIndexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerAllocationSummaryDeploymentIdAndIndexerId: DeploymentIndexersByIndexerAllocationSummaryDeploymentIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerDeploymentDeploymentIdAndIndexerId: DeploymentIndexersByIndexerDeploymentDeploymentIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerMissedLaborDeploymentIdAndIndexerId: DeploymentIndexersByIndexerMissedLaborDeploymentIdAndIndexerIdManyToManyConnection;\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  readonly metadata: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads and enables pagination through a set of `Offer`. */\n  readonly offers: OffersConnection;\n  /** Reads and enables pagination through a set of `PlanTemplate`. */\n  readonly planTemplatesByOfferDeploymentIdAndPlanTemplateId: DeploymentPlanTemplatesByOfferDeploymentIdAndPlanTemplateIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `PlanTemplate`. */\n  readonly planTemplatesByPlanDeploymentIdAndPlanTemplateId: DeploymentPlanTemplatesByPlanDeploymentIdAndPlanTemplateIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `PlanTemplate`. */\n  readonly planTemplatesByServiceAgreementDeploymentIdAndPlanTemplateId: DeploymentPlanTemplatesByServiceAgreementDeploymentIdAndPlanTemplateIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Plan`. */\n  readonly plans: PlansConnection;\n  /** Reads a single `Project` that is related to this `Deployment`. */\n  readonly project: Maybe<Project>;\n  readonly projectId: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByConsumerQueryRewardDeploymentIdAndProjectId: DeploymentProjectsByConsumerQueryRewardDeploymentIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByConsumerQueryRewardSummaryDeploymentIdAndProjectId: DeploymentProjectsByConsumerQueryRewardSummaryDeploymentIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByDeploymentBoosterDeploymentIdAndProjectId: DeploymentProjectsByDeploymentBoosterDeploymentIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByDeploymentBoosterSummaryDeploymentIdAndProjectId: DeploymentProjectsByDeploymentBoosterSummaryDeploymentIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByIndexerAllocationDeploymentIdAndProjectId: DeploymentProjectsByIndexerAllocationDeploymentIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByIndexerAllocationRewardDeploymentIdAndProjectId: DeploymentProjectsByIndexerAllocationRewardDeploymentIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectId: DeploymentProjectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByIndexerAllocationSummaryDeploymentIdAndProjectId: DeploymentProjectsByIndexerAllocationSummaryDeploymentIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `ServiceAgreement`. */\n  readonly serviceAgreements: ServiceAgreementsConnection;\n  /** Reads and enables pagination through a set of `StateChannel`. */\n  readonly stateChannels: StateChannelsConnection;\n};\n\nexport type DeploymentConsumerQueryRewardSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Reward_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentConsumerQueryRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<ConsumerQueryRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentDeploymentBoosterSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Booster_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentBoosterSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentBoosterSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentDeploymentBoostersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Boosters_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentBoosterFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentBoostersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentEraIndexerDeploymentApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Deployment_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraIndexerDeploymentApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraIndexerDeploymentApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexerAllocationRewardSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexerAllocationRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexerAllocationSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexerMissedLaborsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Missed_Labors_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerMissedLaborFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerMissedLaborsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerDeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerDeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexersByEraIndexerDeploymentApyDeploymentIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexersByIndexerAllocationDeploymentIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexersByIndexerAllocationRewardDeploymentIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexersByIndexerAllocationSummaryDeploymentIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexersByIndexerDeploymentDeploymentIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentIndexersByIndexerMissedLaborDeploymentIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Offers_Distinct_Enum>>>;\n  filter: InputMaybe<OfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<OffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentPlanTemplatesByOfferDeploymentIdAndPlanTemplateIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plan_Templates_Distinct_Enum>>>;\n  filter: InputMaybe<PlanTemplateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PlanTemplatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentPlanTemplatesByPlanDeploymentIdAndPlanTemplateIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plan_Templates_Distinct_Enum>>>;\n  filter: InputMaybe<PlanTemplateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PlanTemplatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentPlanTemplatesByServiceAgreementDeploymentIdAndPlanTemplateIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plan_Templates_Distinct_Enum>>>;\n  filter: InputMaybe<PlanTemplateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PlanTemplatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentPlansArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plans_Distinct_Enum>>>;\n  filter: InputMaybe<PlanFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PlansOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentProjectsByConsumerQueryRewardDeploymentIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentProjectsByConsumerQueryRewardSummaryDeploymentIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentProjectsByDeploymentBoosterDeploymentIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentProjectsByDeploymentBoosterSummaryDeploymentIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentProjectsByIndexerAllocationDeploymentIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentProjectsByIndexerAllocationRewardDeploymentIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentProjectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentProjectsByIndexerAllocationSummaryDeploymentIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentServiceAgreementsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Service_Agreements_Distinct_Enum>>>;\n  filter: InputMaybe<ServiceAgreementFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ServiceAgreementsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentStateChannelsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<State_Channels_Distinct_Enum>>>;\n  filter: InputMaybe<StateChannelFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<StateChannelsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentAggregates = {\n  readonly __typename: 'DeploymentAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<DeploymentAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<DeploymentDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<DeploymentMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<DeploymentMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<DeploymentStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<DeploymentStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<DeploymentSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<DeploymentVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<DeploymentVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `Deployment` object types. */\nexport type DeploymentAggregatesFilter = {\n  /** Mean average aggregate over matching `Deployment` objects. */\n  readonly average: InputMaybe<DeploymentAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `Deployment` objects. */\n  readonly distinctCount: InputMaybe<DeploymentDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `Deployment` object to be included within the aggregate. */\n  readonly filter: InputMaybe<DeploymentFilter>;\n  /** Maximum aggregate over matching `Deployment` objects. */\n  readonly max: InputMaybe<DeploymentMaxAggregateFilter>;\n  /** Minimum aggregate over matching `Deployment` objects. */\n  readonly min: InputMaybe<DeploymentMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `Deployment` objects. */\n  readonly stddevPopulation: InputMaybe<DeploymentStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `Deployment` objects. */\n  readonly stddevSample: InputMaybe<DeploymentStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `Deployment` objects. */\n  readonly sum: InputMaybe<DeploymentSumAggregateFilter>;\n  /** Population variance aggregate over matching `Deployment` objects. */\n  readonly variancePopulation: InputMaybe<DeploymentVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `Deployment` objects. */\n  readonly varianceSample: InputMaybe<DeploymentVarianceSampleAggregateFilter>;\n};\n\nexport type DeploymentAverageAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentAverageAggregates = {\n  readonly __typename: 'DeploymentAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBooster = Node & {\n  readonly __typename: 'DeploymentBooster';\n  readonly amountAdded: Scalars['BigFloat']['output'];\n  readonly amountRemoved: Scalars['BigFloat']['output'];\n  readonly consumer: Scalars['String']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `DeploymentBooster`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `Project` that is related to this `DeploymentBooster`. */\n  readonly project: Maybe<Project>;\n  readonly projectId: Scalars['String']['output'];\n};\n\nexport type DeploymentBoosterAggregates = {\n  readonly __typename: 'DeploymentBoosterAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<DeploymentBoosterAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<DeploymentBoosterDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<DeploymentBoosterMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<DeploymentBoosterMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<DeploymentBoosterStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<DeploymentBoosterStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<DeploymentBoosterSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<DeploymentBoosterVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<DeploymentBoosterVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `DeploymentBooster` object types. */\nexport type DeploymentBoosterAggregatesFilter = {\n  /** Mean average aggregate over matching `DeploymentBooster` objects. */\n  readonly average: InputMaybe<DeploymentBoosterAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `DeploymentBooster` objects. */\n  readonly distinctCount: InputMaybe<DeploymentBoosterDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `DeploymentBooster` object to be included within the aggregate. */\n  readonly filter: InputMaybe<DeploymentBoosterFilter>;\n  /** Maximum aggregate over matching `DeploymentBooster` objects. */\n  readonly max: InputMaybe<DeploymentBoosterMaxAggregateFilter>;\n  /** Minimum aggregate over matching `DeploymentBooster` objects. */\n  readonly min: InputMaybe<DeploymentBoosterMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `DeploymentBooster` objects. */\n  readonly stddevPopulation: InputMaybe<DeploymentBoosterStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `DeploymentBooster` objects. */\n  readonly stddevSample: InputMaybe<DeploymentBoosterStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `DeploymentBooster` objects. */\n  readonly sum: InputMaybe<DeploymentBoosterSumAggregateFilter>;\n  /** Population variance aggregate over matching `DeploymentBooster` objects. */\n  readonly variancePopulation: InputMaybe<DeploymentBoosterVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `DeploymentBooster` objects. */\n  readonly varianceSample: InputMaybe<DeploymentBoosterVarianceSampleAggregateFilter>;\n};\n\nexport type DeploymentBoosterAverageAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterAverageAggregates = {\n  readonly __typename: 'DeploymentBoosterAverageAggregates';\n  /** Mean average of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly amountAdded: InputMaybe<BigIntFilter>;\n  readonly amountRemoved: InputMaybe<BigIntFilter>;\n  readonly consumer: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly projectId: InputMaybe<BigIntFilter>;\n};\n\nexport type DeploymentBoosterDistinctCountAggregates = {\n  readonly __typename: 'DeploymentBoosterDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of consumer across the matching connection */\n  readonly consumer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of projectId across the matching connection */\n  readonly projectId: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `DeploymentBooster` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentBoosterFilter = {\n  /** Filter by the object’s `amountAdded` field. */\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `amountRemoved` field. */\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<DeploymentBoosterFilter>>;\n  /** Filter by the object’s `consumer` field. */\n  readonly consumer: InputMaybe<StringFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<DeploymentBoosterFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<DeploymentBoosterFilter>>;\n  /** Filter by the object’s `project` relation. */\n  readonly project: InputMaybe<ProjectFilter>;\n  /** Filter by the object’s `projectId` field. */\n  readonly projectId: InputMaybe<StringFilter>;\n};\n\nexport type DeploymentBoosterMaxAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type DeploymentBoosterMaxAggregates = {\n  readonly __typename: 'DeploymentBoosterMaxAggregates';\n  /** Maximum of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DeploymentBoosterMinAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type DeploymentBoosterMinAggregates = {\n  readonly __typename: 'DeploymentBoosterMinAggregates';\n  /** Minimum of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DeploymentBoosterStddevPopulationAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterStddevPopulationAggregates = {\n  readonly __typename: 'DeploymentBoosterStddevPopulationAggregates';\n  /** Population standard deviation of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterStddevSampleAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterStddevSampleAggregates = {\n  readonly __typename: 'DeploymentBoosterStddevSampleAggregates';\n  /** Sample standard deviation of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterSumAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n};\n\nexport type DeploymentBoosterSumAggregates = {\n  readonly __typename: 'DeploymentBoosterSumAggregates';\n  /** Sum of amountAdded across the matching connection */\n  readonly amountAdded: Scalars['BigFloat']['output'];\n  /** Sum of amountRemoved across the matching connection */\n  readonly amountRemoved: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n};\n\n/** A connection to a list of `DeploymentBoosterSummary` values. */\nexport type DeploymentBoosterSummariesConnection = {\n  readonly __typename: 'DeploymentBoosterSummariesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentBoosterSummaryAggregates>;\n  /** A list of edges which contains the `DeploymentBoosterSummary` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentBoosterSummariesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentBoosterSummaryAggregates>>;\n  /** A list of `DeploymentBoosterSummary` objects. */\n  readonly nodes: ReadonlyArray<Maybe<DeploymentBoosterSummary>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `DeploymentBoosterSummary` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `DeploymentBoosterSummary` values. */\nexport type DeploymentBoosterSummariesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentBoosterSummariesGroupBy>;\n  having: InputMaybe<DeploymentBoosterSummariesHavingInput>;\n};\n\n/** A `DeploymentBoosterSummary` edge in the connection. */\nexport type DeploymentBoosterSummariesEdge = {\n  readonly __typename: 'DeploymentBoosterSummariesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `DeploymentBoosterSummary` at the end of the edge. */\n  readonly node: Maybe<DeploymentBoosterSummary>;\n};\n\n/** Grouping methods for `DeploymentBoosterSummary` for usage during aggregation. */\nexport enum DeploymentBoosterSummariesGroupBy {\n  CONSUMER = 'CONSUMER',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  PROJECT_ID = 'PROJECT_ID',\n  TOTAL_ADDED = 'TOTAL_ADDED',\n  TOTAL_AMOUNT = 'TOTAL_AMOUNT',\n  TOTAL_REMOVED = 'TOTAL_REMOVED',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type DeploymentBoosterSummariesHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentBoosterSummariesHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `DeploymentBoosterSummary` aggregates. */\nexport type DeploymentBoosterSummariesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<DeploymentBoosterSummariesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<DeploymentBoosterSummariesHavingInput>>;\n  readonly average: InputMaybe<DeploymentBoosterSummariesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<DeploymentBoosterSummariesHavingDistinctCountInput>;\n  readonly max: InputMaybe<DeploymentBoosterSummariesHavingMaxInput>;\n  readonly min: InputMaybe<DeploymentBoosterSummariesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<DeploymentBoosterSummariesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<DeploymentBoosterSummariesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<DeploymentBoosterSummariesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<DeploymentBoosterSummariesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<DeploymentBoosterSummariesHavingVarianceSampleInput>;\n};\n\nexport type DeploymentBoosterSummariesHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentBoosterSummariesHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentBoosterSummariesHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentBoosterSummariesHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentBoosterSummariesHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentBoosterSummariesHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentBoosterSummariesHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `DeploymentBoosterSummary`. */\nexport enum DeploymentBoosterSummariesOrderBy {\n  CONSUMER_ASC = 'CONSUMER_ASC',\n  CONSUMER_DESC = 'CONSUMER_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__ID_ASC = 'PROJECT_BY_PROJECT_ID__ID_ASC',\n  PROJECT_BY_PROJECT_ID__ID_DESC = 'PROJECT_BY_PROJECT_ID__ID_DESC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC',\n  PROJECT_BY_PROJECT_ID__METADATA_ASC = 'PROJECT_BY_PROJECT_ID__METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__METADATA_DESC = 'PROJECT_BY_PROJECT_ID__METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__OWNER_ASC = 'PROJECT_BY_PROJECT_ID__OWNER_ASC',\n  PROJECT_BY_PROJECT_ID__OWNER_DESC = 'PROJECT_BY_PROJECT_ID__OWNER_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC',\n  PROJECT_BY_PROJECT_ID__TYPE_ASC = 'PROJECT_BY_PROJECT_ID__TYPE_ASC',\n  PROJECT_BY_PROJECT_ID__TYPE_DESC = 'PROJECT_BY_PROJECT_ID__TYPE_DESC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC',\n  PROJECT_ID_ASC = 'PROJECT_ID_ASC',\n  PROJECT_ID_DESC = 'PROJECT_ID_DESC',\n  TOTAL_ADDED_ASC = 'TOTAL_ADDED_ASC',\n  TOTAL_ADDED_DESC = 'TOTAL_ADDED_DESC',\n  TOTAL_AMOUNT_ASC = 'TOTAL_AMOUNT_ASC',\n  TOTAL_AMOUNT_DESC = 'TOTAL_AMOUNT_DESC',\n  TOTAL_REMOVED_ASC = 'TOTAL_REMOVED_ASC',\n  TOTAL_REMOVED_DESC = 'TOTAL_REMOVED_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type DeploymentBoosterSummary = Node & {\n  readonly __typename: 'DeploymentBoosterSummary';\n  readonly consumer: Scalars['String']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `DeploymentBoosterSummary`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `Project` that is related to this `DeploymentBoosterSummary`. */\n  readonly project: Maybe<Project>;\n  readonly projectId: Scalars['String']['output'];\n  readonly totalAdded: Scalars['BigFloat']['output'];\n  readonly totalAmount: Scalars['BigFloat']['output'];\n  readonly totalRemoved: Scalars['BigFloat']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type DeploymentBoosterSummaryAggregates = {\n  readonly __typename: 'DeploymentBoosterSummaryAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<DeploymentBoosterSummaryAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<DeploymentBoosterSummaryDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<DeploymentBoosterSummaryMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<DeploymentBoosterSummaryMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<DeploymentBoosterSummaryStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<DeploymentBoosterSummaryStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<DeploymentBoosterSummarySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<DeploymentBoosterSummaryVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<DeploymentBoosterSummaryVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `DeploymentBoosterSummary` object types. */\nexport type DeploymentBoosterSummaryAggregatesFilter = {\n  /** Mean average aggregate over matching `DeploymentBoosterSummary` objects. */\n  readonly average: InputMaybe<DeploymentBoosterSummaryAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `DeploymentBoosterSummary` objects. */\n  readonly distinctCount: InputMaybe<DeploymentBoosterSummaryDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `DeploymentBoosterSummary` object to be included within the aggregate. */\n  readonly filter: InputMaybe<DeploymentBoosterSummaryFilter>;\n  /** Maximum aggregate over matching `DeploymentBoosterSummary` objects. */\n  readonly max: InputMaybe<DeploymentBoosterSummaryMaxAggregateFilter>;\n  /** Minimum aggregate over matching `DeploymentBoosterSummary` objects. */\n  readonly min: InputMaybe<DeploymentBoosterSummaryMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `DeploymentBoosterSummary` objects. */\n  readonly stddevPopulation: InputMaybe<DeploymentBoosterSummaryStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `DeploymentBoosterSummary` objects. */\n  readonly stddevSample: InputMaybe<DeploymentBoosterSummaryStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `DeploymentBoosterSummary` objects. */\n  readonly sum: InputMaybe<DeploymentBoosterSummarySumAggregateFilter>;\n  /** Population variance aggregate over matching `DeploymentBoosterSummary` objects. */\n  readonly variancePopulation: InputMaybe<DeploymentBoosterSummaryVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `DeploymentBoosterSummary` objects. */\n  readonly varianceSample: InputMaybe<DeploymentBoosterSummaryVarianceSampleAggregateFilter>;\n};\n\nexport type DeploymentBoosterSummaryAverageAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterSummaryAverageAggregates = {\n  readonly __typename: 'DeploymentBoosterSummaryAverageAggregates';\n  /** Mean average of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterSummaryDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly consumer: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly projectId: InputMaybe<BigIntFilter>;\n  readonly totalAdded: InputMaybe<BigIntFilter>;\n  readonly totalAmount: InputMaybe<BigIntFilter>;\n  readonly totalRemoved: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type DeploymentBoosterSummaryDistinctCountAggregates = {\n  readonly __typename: 'DeploymentBoosterSummaryDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of consumer across the matching connection */\n  readonly consumer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of projectId across the matching connection */\n  readonly projectId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `DeploymentBoosterSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentBoosterSummaryFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<DeploymentBoosterSummaryFilter>>;\n  /** Filter by the object’s `consumer` field. */\n  readonly consumer: InputMaybe<StringFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<DeploymentBoosterSummaryFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<DeploymentBoosterSummaryFilter>>;\n  /** Filter by the object’s `project` relation. */\n  readonly project: InputMaybe<ProjectFilter>;\n  /** Filter by the object’s `projectId` field. */\n  readonly projectId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `totalAdded` field. */\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalAmount` field. */\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalRemoved` field. */\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type DeploymentBoosterSummaryMaxAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterSummaryMaxAggregates = {\n  readonly __typename: 'DeploymentBoosterSummaryMaxAggregates';\n  /** Maximum of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterSummaryMinAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterSummaryMinAggregates = {\n  readonly __typename: 'DeploymentBoosterSummaryMinAggregates';\n  /** Minimum of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterSummaryStddevPopulationAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterSummaryStddevPopulationAggregates = {\n  readonly __typename: 'DeploymentBoosterSummaryStddevPopulationAggregates';\n  /** Population standard deviation of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterSummaryStddevSampleAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterSummaryStddevSampleAggregates = {\n  readonly __typename: 'DeploymentBoosterSummaryStddevSampleAggregates';\n  /** Sample standard deviation of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterSummarySumAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterSummarySumAggregates = {\n  readonly __typename: 'DeploymentBoosterSummarySumAggregates';\n  /** Sum of totalAdded across the matching connection */\n  readonly totalAdded: Scalars['BigFloat']['output'];\n  /** Sum of totalAmount across the matching connection */\n  readonly totalAmount: Scalars['BigFloat']['output'];\n  /** Sum of totalRemoved across the matching connection */\n  readonly totalRemoved: Scalars['BigFloat']['output'];\n};\n\nexport type DeploymentBoosterSummaryVariancePopulationAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterSummaryVariancePopulationAggregates = {\n  readonly __typename: 'DeploymentBoosterSummaryVariancePopulationAggregates';\n  /** Population variance of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterSummaryVarianceSampleAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterSummaryVarianceSampleAggregates = {\n  readonly __typename: 'DeploymentBoosterSummaryVarianceSampleAggregates';\n  /** Sample variance of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterVariancePopulationAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterVariancePopulationAggregates = {\n  readonly __typename: 'DeploymentBoosterVariancePopulationAggregates';\n  /** Population variance of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentBoosterVarianceSampleAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentBoosterVarianceSampleAggregates = {\n  readonly __typename: 'DeploymentBoosterVarianceSampleAggregates';\n  /** Sample variance of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `DeploymentBooster` values. */\nexport type DeploymentBoostersConnection = {\n  readonly __typename: 'DeploymentBoostersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentBoosterAggregates>;\n  /** A list of edges which contains the `DeploymentBooster` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentBoostersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentBoosterAggregates>>;\n  /** A list of `DeploymentBooster` objects. */\n  readonly nodes: ReadonlyArray<Maybe<DeploymentBooster>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `DeploymentBooster` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `DeploymentBooster` values. */\nexport type DeploymentBoostersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentBoostersGroupBy>;\n  having: InputMaybe<DeploymentBoostersHavingInput>;\n};\n\n/** A `DeploymentBooster` edge in the connection. */\nexport type DeploymentBoostersEdge = {\n  readonly __typename: 'DeploymentBoostersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `DeploymentBooster` at the end of the edge. */\n  readonly node: Maybe<DeploymentBooster>;\n};\n\n/** Grouping methods for `DeploymentBooster` for usage during aggregation. */\nexport enum DeploymentBoostersGroupBy {\n  AMOUNT_ADDED = 'AMOUNT_ADDED',\n  AMOUNT_REMOVED = 'AMOUNT_REMOVED',\n  CONSUMER = 'CONSUMER',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  PROJECT_ID = 'PROJECT_ID',\n}\n\nexport type DeploymentBoostersHavingAverageInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type DeploymentBoostersHavingDistinctCountInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `DeploymentBooster` aggregates. */\nexport type DeploymentBoostersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<DeploymentBoostersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<DeploymentBoostersHavingInput>>;\n  readonly average: InputMaybe<DeploymentBoostersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<DeploymentBoostersHavingDistinctCountInput>;\n  readonly max: InputMaybe<DeploymentBoostersHavingMaxInput>;\n  readonly min: InputMaybe<DeploymentBoostersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<DeploymentBoostersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<DeploymentBoostersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<DeploymentBoostersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<DeploymentBoostersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<DeploymentBoostersHavingVarianceSampleInput>;\n};\n\nexport type DeploymentBoostersHavingMaxInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type DeploymentBoostersHavingMinInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type DeploymentBoostersHavingStddevPopulationInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type DeploymentBoostersHavingStddevSampleInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type DeploymentBoostersHavingSumInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type DeploymentBoostersHavingVariancePopulationInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type DeploymentBoostersHavingVarianceSampleInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `DeploymentBooster`. */\nexport enum DeploymentBoostersOrderBy {\n  AMOUNT_ADDED_ASC = 'AMOUNT_ADDED_ASC',\n  AMOUNT_ADDED_DESC = 'AMOUNT_ADDED_DESC',\n  AMOUNT_REMOVED_ASC = 'AMOUNT_REMOVED_ASC',\n  AMOUNT_REMOVED_DESC = 'AMOUNT_REMOVED_DESC',\n  CONSUMER_ASC = 'CONSUMER_ASC',\n  CONSUMER_DESC = 'CONSUMER_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__ID_ASC = 'PROJECT_BY_PROJECT_ID__ID_ASC',\n  PROJECT_BY_PROJECT_ID__ID_DESC = 'PROJECT_BY_PROJECT_ID__ID_DESC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC',\n  PROJECT_BY_PROJECT_ID__METADATA_ASC = 'PROJECT_BY_PROJECT_ID__METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__METADATA_DESC = 'PROJECT_BY_PROJECT_ID__METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__OWNER_ASC = 'PROJECT_BY_PROJECT_ID__OWNER_ASC',\n  PROJECT_BY_PROJECT_ID__OWNER_DESC = 'PROJECT_BY_PROJECT_ID__OWNER_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC',\n  PROJECT_BY_PROJECT_ID__TYPE_ASC = 'PROJECT_BY_PROJECT_ID__TYPE_ASC',\n  PROJECT_BY_PROJECT_ID__TYPE_DESC = 'PROJECT_BY_PROJECT_ID__TYPE_DESC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC',\n  PROJECT_ID_ASC = 'PROJECT_ID_ASC',\n  PROJECT_ID_DESC = 'PROJECT_ID_DESC',\n}\n\nexport type DeploymentDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly createdTimestamp: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n  readonly metadata: InputMaybe<BigIntFilter>;\n  readonly projectId: InputMaybe<BigIntFilter>;\n};\n\nexport type DeploymentDistinctCountAggregates = {\n  readonly __typename: 'DeploymentDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdTimestamp across the matching connection */\n  readonly createdTimestamp: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of metadata across the matching connection */\n  readonly metadata: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of projectId across the matching connection */\n  readonly projectId: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Deployment` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<DeploymentFilter>>;\n  /** Filter by the object’s `consumerQueryRewardSummaries` relation. */\n  readonly consumerQueryRewardSummaries: InputMaybe<DeploymentToManyConsumerQueryRewardSummaryFilter>;\n  /** Some related `consumerQueryRewardSummaries` exist. */\n  readonly consumerQueryRewardSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `consumerQueryRewards` relation. */\n  readonly consumerQueryRewards: InputMaybe<DeploymentToManyConsumerQueryRewardFilter>;\n  /** Some related `consumerQueryRewards` exist. */\n  readonly consumerQueryRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `createdTimestamp` field. */\n  readonly createdTimestamp: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deploymentBoosterSummaries` relation. */\n  readonly deploymentBoosterSummaries: InputMaybe<DeploymentToManyDeploymentBoosterSummaryFilter>;\n  /** Some related `deploymentBoosterSummaries` exist. */\n  readonly deploymentBoosterSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `deploymentBoosters` relation. */\n  readonly deploymentBoosters: InputMaybe<DeploymentToManyDeploymentBoosterFilter>;\n  /** Some related `deploymentBoosters` exist. */\n  readonly deploymentBoostersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraIndexerDeploymentApies` relation. */\n  readonly eraIndexerDeploymentApies: InputMaybe<DeploymentToManyEraIndexerDeploymentApyFilter>;\n  /** Some related `eraIndexerDeploymentApies` exist. */\n  readonly eraIndexerDeploymentApiesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerAllocationRewardSummaries` relation. */\n  readonly indexerAllocationRewardSummaries: InputMaybe<DeploymentToManyIndexerAllocationRewardSummaryFilter>;\n  /** Some related `indexerAllocationRewardSummaries` exist. */\n  readonly indexerAllocationRewardSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocationRewards` relation. */\n  readonly indexerAllocationRewards: InputMaybe<DeploymentToManyIndexerAllocationRewardFilter>;\n  /** Some related `indexerAllocationRewards` exist. */\n  readonly indexerAllocationRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocationSummaries` relation. */\n  readonly indexerAllocationSummaries: InputMaybe<DeploymentToManyIndexerAllocationSummaryFilter>;\n  /** Some related `indexerAllocationSummaries` exist. */\n  readonly indexerAllocationSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocations` relation. */\n  readonly indexerAllocations: InputMaybe<DeploymentToManyIndexerAllocationFilter>;\n  /** Some related `indexerAllocations` exist. */\n  readonly indexerAllocationsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerMissedLabors` relation. */\n  readonly indexerMissedLabors: InputMaybe<DeploymentToManyIndexerMissedLaborFilter>;\n  /** Some related `indexerMissedLabors` exist. */\n  readonly indexerMissedLaborsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexers` relation. */\n  readonly indexers: InputMaybe<DeploymentToManyIndexerDeploymentFilter>;\n  /** Some related `indexers` exist. */\n  readonly indexersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Filter by the object’s `metadata` field. */\n  readonly metadata: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `offers` relation. */\n  readonly offers: InputMaybe<DeploymentToManyOfferFilter>;\n  /** Some related `offers` exist. */\n  readonly offersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<DeploymentFilter>>;\n  /** Filter by the object’s `plans` relation. */\n  readonly plans: InputMaybe<DeploymentToManyPlanFilter>;\n  /** Some related `plans` exist. */\n  readonly plansExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `project` relation. */\n  readonly project: InputMaybe<ProjectFilter>;\n  /** Filter by the object’s `projectId` field. */\n  readonly projectId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `serviceAgreements` relation. */\n  readonly serviceAgreements: InputMaybe<DeploymentToManyServiceAgreementFilter>;\n  /** Some related `serviceAgreements` exist. */\n  readonly serviceAgreementsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `stateChannels` relation. */\n  readonly stateChannels: InputMaybe<DeploymentToManyStateChannelFilter>;\n  /** Some related `stateChannels` exist. */\n  readonly stateChannelsExist: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraIndexerDeploymentApy`. */\nexport type DeploymentIndexersByEraIndexerDeploymentApyDeploymentIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DeploymentIndexersByEraIndexerDeploymentApyDeploymentIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `EraIndexerDeploymentApy`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentIndexersByEraIndexerDeploymentApyDeploymentIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraIndexerDeploymentApy`. */\nexport type DeploymentIndexersByEraIndexerDeploymentApyDeploymentIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<IndexersGroupBy>;\n    having: InputMaybe<IndexersHavingInput>;\n  };\n\n/** A `Indexer` edge in the connection, with data from `EraIndexerDeploymentApy`. */\nexport type DeploymentIndexersByEraIndexerDeploymentApyDeploymentIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DeploymentIndexersByEraIndexerDeploymentApyDeploymentIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraIndexerDeploymentApy`. */\n  readonly eraIndexerDeploymentApies: EraIndexerDeploymentApiesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraIndexerDeploymentApy`. */\nexport type DeploymentIndexersByEraIndexerDeploymentApyDeploymentIdAndIndexerIdManyToManyEdgeEraIndexerDeploymentApiesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Deployment_Apies_Distinct_Enum>>>;\n    filter: InputMaybe<EraIndexerDeploymentApyFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<EraIndexerDeploymentApiesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocation`. */\nexport type DeploymentIndexersByIndexerAllocationDeploymentIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DeploymentIndexersByIndexerAllocationDeploymentIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerAllocation`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentIndexersByIndexerAllocationDeploymentIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocation`. */\nexport type DeploymentIndexersByIndexerAllocationDeploymentIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocation`. */\nexport type DeploymentIndexersByIndexerAllocationDeploymentIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DeploymentIndexersByIndexerAllocationDeploymentIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: IndexerAllocationsConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocation`. */\nexport type DeploymentIndexersByIndexerAllocationDeploymentIdAndIndexerIdManyToManyEdgeIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationReward`. */\nexport type DeploymentIndexersByIndexerAllocationRewardDeploymentIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DeploymentIndexersByIndexerAllocationRewardDeploymentIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerAllocationReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentIndexersByIndexerAllocationRewardDeploymentIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationReward`. */\nexport type DeploymentIndexersByIndexerAllocationRewardDeploymentIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<IndexersGroupBy>;\n    having: InputMaybe<IndexersHavingInput>;\n  };\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type DeploymentIndexersByIndexerAllocationRewardDeploymentIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DeploymentIndexersByIndexerAllocationRewardDeploymentIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: IndexerAllocationRewardsConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type DeploymentIndexersByIndexerAllocationRewardDeploymentIdAndIndexerIdManyToManyEdgeIndexerAllocationRewardsArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationRewardSummary`. */\nexport type DeploymentIndexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DeploymentIndexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerAllocationRewardSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentIndexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationRewardSummary`. */\nexport type DeploymentIndexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<IndexersGroupBy>;\n    having: InputMaybe<IndexersHavingInput>;\n  };\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type DeploymentIndexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DeploymentIndexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: IndexerAllocationRewardSummariesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type DeploymentIndexersByIndexerAllocationRewardSummaryDeploymentIdAndIndexerIdManyToManyEdgeIndexerAllocationRewardSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationSummary`. */\nexport type DeploymentIndexersByIndexerAllocationSummaryDeploymentIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DeploymentIndexersByIndexerAllocationSummaryDeploymentIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerAllocationSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentIndexersByIndexerAllocationSummaryDeploymentIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationSummary`. */\nexport type DeploymentIndexersByIndexerAllocationSummaryDeploymentIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<IndexersGroupBy>;\n    having: InputMaybe<IndexersHavingInput>;\n  };\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type DeploymentIndexersByIndexerAllocationSummaryDeploymentIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DeploymentIndexersByIndexerAllocationSummaryDeploymentIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: IndexerAllocationSummariesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type DeploymentIndexersByIndexerAllocationSummaryDeploymentIdAndIndexerIdManyToManyEdgeIndexerAllocationSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Indexer` values, with data from `IndexerDeployment`. */\nexport type DeploymentIndexersByIndexerDeploymentDeploymentIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DeploymentIndexersByIndexerDeploymentDeploymentIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerDeployment`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentIndexersByIndexerDeploymentDeploymentIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerDeployment`. */\nexport type DeploymentIndexersByIndexerDeploymentDeploymentIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerDeployment`. */\nexport type DeploymentIndexersByIndexerDeploymentDeploymentIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DeploymentIndexersByIndexerDeploymentDeploymentIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n  /** Reads and enables pagination through a set of `IndexerDeployment`. */\n  readonly projects: IndexerDeploymentsConnection;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerDeployment`. */\nexport type DeploymentIndexersByIndexerDeploymentDeploymentIdAndIndexerIdManyToManyEdgeProjectsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerDeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerDeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerMissedLabor`. */\nexport type DeploymentIndexersByIndexerMissedLaborDeploymentIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'DeploymentIndexersByIndexerMissedLaborDeploymentIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerMissedLabor`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentIndexersByIndexerMissedLaborDeploymentIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerMissedLabor`. */\nexport type DeploymentIndexersByIndexerMissedLaborDeploymentIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerMissedLabor`. */\nexport type DeploymentIndexersByIndexerMissedLaborDeploymentIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'DeploymentIndexersByIndexerMissedLaborDeploymentIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerMissedLabor`. */\n  readonly indexerMissedLabors: IndexerMissedLaborsConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerMissedLabor`. */\nexport type DeploymentIndexersByIndexerMissedLaborDeploymentIdAndIndexerIdManyToManyEdgeIndexerMissedLaborsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Missed_Labors_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerMissedLaborFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerMissedLaborsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type DeploymentMaxAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type DeploymentMaxAggregates = {\n  readonly __typename: 'DeploymentMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DeploymentMinAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type DeploymentMinAggregates = {\n  readonly __typename: 'DeploymentMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\n/** A connection to a list of `PlanTemplate` values, with data from `Offer`. */\nexport type DeploymentPlanTemplatesByOfferDeploymentIdAndPlanTemplateIdManyToManyConnection = {\n  readonly __typename: 'DeploymentPlanTemplatesByOfferDeploymentIdAndPlanTemplateIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<PlanTemplateAggregates>;\n  /** A list of edges which contains the `PlanTemplate`, info from the `Offer`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentPlanTemplatesByOfferDeploymentIdAndPlanTemplateIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<PlanTemplateAggregates>>;\n  /** A list of `PlanTemplate` objects. */\n  readonly nodes: ReadonlyArray<Maybe<PlanTemplate>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `PlanTemplate` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `PlanTemplate` values, with data from `Offer`. */\nexport type DeploymentPlanTemplatesByOfferDeploymentIdAndPlanTemplateIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<PlanTemplatesGroupBy>;\n  having: InputMaybe<PlanTemplatesHavingInput>;\n};\n\n/** A `PlanTemplate` edge in the connection, with data from `Offer`. */\nexport type DeploymentPlanTemplatesByOfferDeploymentIdAndPlanTemplateIdManyToManyEdge = {\n  readonly __typename: 'DeploymentPlanTemplatesByOfferDeploymentIdAndPlanTemplateIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `PlanTemplate` at the end of the edge. */\n  readonly node: Maybe<PlanTemplate>;\n  /** Reads and enables pagination through a set of `Offer`. */\n  readonly offers: OffersConnection;\n};\n\n/** A `PlanTemplate` edge in the connection, with data from `Offer`. */\nexport type DeploymentPlanTemplatesByOfferDeploymentIdAndPlanTemplateIdManyToManyEdgeOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Offers_Distinct_Enum>>>;\n  filter: InputMaybe<OfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<OffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `PlanTemplate` values, with data from `Plan`. */\nexport type DeploymentPlanTemplatesByPlanDeploymentIdAndPlanTemplateIdManyToManyConnection = {\n  readonly __typename: 'DeploymentPlanTemplatesByPlanDeploymentIdAndPlanTemplateIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<PlanTemplateAggregates>;\n  /** A list of edges which contains the `PlanTemplate`, info from the `Plan`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentPlanTemplatesByPlanDeploymentIdAndPlanTemplateIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<PlanTemplateAggregates>>;\n  /** A list of `PlanTemplate` objects. */\n  readonly nodes: ReadonlyArray<Maybe<PlanTemplate>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `PlanTemplate` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `PlanTemplate` values, with data from `Plan`. */\nexport type DeploymentPlanTemplatesByPlanDeploymentIdAndPlanTemplateIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<PlanTemplatesGroupBy>;\n  having: InputMaybe<PlanTemplatesHavingInput>;\n};\n\n/** A `PlanTemplate` edge in the connection, with data from `Plan`. */\nexport type DeploymentPlanTemplatesByPlanDeploymentIdAndPlanTemplateIdManyToManyEdge = {\n  readonly __typename: 'DeploymentPlanTemplatesByPlanDeploymentIdAndPlanTemplateIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `PlanTemplate` at the end of the edge. */\n  readonly node: Maybe<PlanTemplate>;\n  /** Reads and enables pagination through a set of `Plan`. */\n  readonly plans: PlansConnection;\n};\n\n/** A `PlanTemplate` edge in the connection, with data from `Plan`. */\nexport type DeploymentPlanTemplatesByPlanDeploymentIdAndPlanTemplateIdManyToManyEdgePlansArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plans_Distinct_Enum>>>;\n  filter: InputMaybe<PlanFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PlansOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `PlanTemplate` values, with data from `ServiceAgreement`. */\nexport type DeploymentPlanTemplatesByServiceAgreementDeploymentIdAndPlanTemplateIdManyToManyConnection = {\n  readonly __typename: 'DeploymentPlanTemplatesByServiceAgreementDeploymentIdAndPlanTemplateIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<PlanTemplateAggregates>;\n  /** A list of edges which contains the `PlanTemplate`, info from the `ServiceAgreement`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentPlanTemplatesByServiceAgreementDeploymentIdAndPlanTemplateIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<PlanTemplateAggregates>>;\n  /** A list of `PlanTemplate` objects. */\n  readonly nodes: ReadonlyArray<Maybe<PlanTemplate>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `PlanTemplate` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `PlanTemplate` values, with data from `ServiceAgreement`. */\nexport type DeploymentPlanTemplatesByServiceAgreementDeploymentIdAndPlanTemplateIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<PlanTemplatesGroupBy>;\n    having: InputMaybe<PlanTemplatesHavingInput>;\n  };\n\n/** A `PlanTemplate` edge in the connection, with data from `ServiceAgreement`. */\nexport type DeploymentPlanTemplatesByServiceAgreementDeploymentIdAndPlanTemplateIdManyToManyEdge = {\n  readonly __typename: 'DeploymentPlanTemplatesByServiceAgreementDeploymentIdAndPlanTemplateIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `PlanTemplate` at the end of the edge. */\n  readonly node: Maybe<PlanTemplate>;\n  /** Reads and enables pagination through a set of `ServiceAgreement`. */\n  readonly serviceAgreements: ServiceAgreementsConnection;\n};\n\n/** A `PlanTemplate` edge in the connection, with data from `ServiceAgreement`. */\nexport type DeploymentPlanTemplatesByServiceAgreementDeploymentIdAndPlanTemplateIdManyToManyEdgeServiceAgreementsArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Service_Agreements_Distinct_Enum>>>;\n    filter: InputMaybe<ServiceAgreementFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<ServiceAgreementsOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Project` values, with data from `ConsumerQueryReward`. */\nexport type DeploymentProjectsByConsumerQueryRewardDeploymentIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'DeploymentProjectsByConsumerQueryRewardDeploymentIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `ConsumerQueryReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentProjectsByConsumerQueryRewardDeploymentIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `ConsumerQueryReward`. */\nexport type DeploymentProjectsByConsumerQueryRewardDeploymentIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ProjectsGroupBy>;\n  having: InputMaybe<ProjectsHavingInput>;\n};\n\n/** A `Project` edge in the connection, with data from `ConsumerQueryReward`. */\nexport type DeploymentProjectsByConsumerQueryRewardDeploymentIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'DeploymentProjectsByConsumerQueryRewardDeploymentIdAndProjectIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `ConsumerQueryReward`. */\n  readonly consumerQueryRewards: ConsumerQueryRewardsConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `ConsumerQueryReward`. */\nexport type DeploymentProjectsByConsumerQueryRewardDeploymentIdAndProjectIdManyToManyEdgeConsumerQueryRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<ConsumerQueryRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Project` values, with data from `ConsumerQueryRewardSummary`. */\nexport type DeploymentProjectsByConsumerQueryRewardSummaryDeploymentIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'DeploymentProjectsByConsumerQueryRewardSummaryDeploymentIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `ConsumerQueryRewardSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentProjectsByConsumerQueryRewardSummaryDeploymentIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `ConsumerQueryRewardSummary`. */\nexport type DeploymentProjectsByConsumerQueryRewardSummaryDeploymentIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<ProjectsGroupBy>;\n    having: InputMaybe<ProjectsHavingInput>;\n  };\n\n/** A `Project` edge in the connection, with data from `ConsumerQueryRewardSummary`. */\nexport type DeploymentProjectsByConsumerQueryRewardSummaryDeploymentIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'DeploymentProjectsByConsumerQueryRewardSummaryDeploymentIdAndProjectIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `ConsumerQueryRewardSummary`. */\n  readonly consumerQueryRewardSummaries: ConsumerQueryRewardSummariesConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `ConsumerQueryRewardSummary`. */\nexport type DeploymentProjectsByConsumerQueryRewardSummaryDeploymentIdAndProjectIdManyToManyEdgeConsumerQueryRewardSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Reward_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Project` values, with data from `DeploymentBooster`. */\nexport type DeploymentProjectsByDeploymentBoosterDeploymentIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'DeploymentProjectsByDeploymentBoosterDeploymentIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `DeploymentBooster`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentProjectsByDeploymentBoosterDeploymentIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `DeploymentBooster`. */\nexport type DeploymentProjectsByDeploymentBoosterDeploymentIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ProjectsGroupBy>;\n  having: InputMaybe<ProjectsHavingInput>;\n};\n\n/** A `Project` edge in the connection, with data from `DeploymentBooster`. */\nexport type DeploymentProjectsByDeploymentBoosterDeploymentIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'DeploymentProjectsByDeploymentBoosterDeploymentIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `DeploymentBooster`. */\n  readonly deploymentBoosters: DeploymentBoostersConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `DeploymentBooster`. */\nexport type DeploymentProjectsByDeploymentBoosterDeploymentIdAndProjectIdManyToManyEdgeDeploymentBoostersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Boosters_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentBoosterFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentBoostersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Project` values, with data from `DeploymentBoosterSummary`. */\nexport type DeploymentProjectsByDeploymentBoosterSummaryDeploymentIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'DeploymentProjectsByDeploymentBoosterSummaryDeploymentIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `DeploymentBoosterSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentProjectsByDeploymentBoosterSummaryDeploymentIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `DeploymentBoosterSummary`. */\nexport type DeploymentProjectsByDeploymentBoosterSummaryDeploymentIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<ProjectsGroupBy>;\n    having: InputMaybe<ProjectsHavingInput>;\n  };\n\n/** A `Project` edge in the connection, with data from `DeploymentBoosterSummary`. */\nexport type DeploymentProjectsByDeploymentBoosterSummaryDeploymentIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'DeploymentProjectsByDeploymentBoosterSummaryDeploymentIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `DeploymentBoosterSummary`. */\n  readonly deploymentBoosterSummaries: DeploymentBoosterSummariesConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `DeploymentBoosterSummary`. */\nexport type DeploymentProjectsByDeploymentBoosterSummaryDeploymentIdAndProjectIdManyToManyEdgeDeploymentBoosterSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Booster_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<DeploymentBoosterSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<DeploymentBoosterSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocation`. */\nexport type DeploymentProjectsByIndexerAllocationDeploymentIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'DeploymentProjectsByIndexerAllocationDeploymentIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `IndexerAllocation`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentProjectsByIndexerAllocationDeploymentIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocation`. */\nexport type DeploymentProjectsByIndexerAllocationDeploymentIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ProjectsGroupBy>;\n  having: InputMaybe<ProjectsHavingInput>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocation`. */\nexport type DeploymentProjectsByIndexerAllocationDeploymentIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'DeploymentProjectsByIndexerAllocationDeploymentIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: IndexerAllocationsConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocation`. */\nexport type DeploymentProjectsByIndexerAllocationDeploymentIdAndProjectIdManyToManyEdgeIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationReward`. */\nexport type DeploymentProjectsByIndexerAllocationRewardDeploymentIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'DeploymentProjectsByIndexerAllocationRewardDeploymentIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `IndexerAllocationReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentProjectsByIndexerAllocationRewardDeploymentIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationReward`. */\nexport type DeploymentProjectsByIndexerAllocationRewardDeploymentIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<ProjectsGroupBy>;\n    having: InputMaybe<ProjectsHavingInput>;\n  };\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type DeploymentProjectsByIndexerAllocationRewardDeploymentIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'DeploymentProjectsByIndexerAllocationRewardDeploymentIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: IndexerAllocationRewardsConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type DeploymentProjectsByIndexerAllocationRewardDeploymentIdAndProjectIdManyToManyEdgeIndexerAllocationRewardsArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationRewardSummary`. */\nexport type DeploymentProjectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'DeploymentProjectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `IndexerAllocationRewardSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentProjectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationRewardSummary`. */\nexport type DeploymentProjectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<ProjectsGroupBy>;\n    having: InputMaybe<ProjectsHavingInput>;\n  };\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type DeploymentProjectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'DeploymentProjectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: IndexerAllocationRewardSummariesConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type DeploymentProjectsByIndexerAllocationRewardSummaryDeploymentIdAndProjectIdManyToManyEdgeIndexerAllocationRewardSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationSummary`. */\nexport type DeploymentProjectsByIndexerAllocationSummaryDeploymentIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'DeploymentProjectsByIndexerAllocationSummaryDeploymentIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `IndexerAllocationSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentProjectsByIndexerAllocationSummaryDeploymentIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationSummary`. */\nexport type DeploymentProjectsByIndexerAllocationSummaryDeploymentIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<ProjectsGroupBy>;\n    having: InputMaybe<ProjectsHavingInput>;\n  };\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type DeploymentProjectsByIndexerAllocationSummaryDeploymentIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'DeploymentProjectsByIndexerAllocationSummaryDeploymentIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: IndexerAllocationSummariesConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type DeploymentProjectsByIndexerAllocationSummaryDeploymentIdAndProjectIdManyToManyEdgeIndexerAllocationSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\nexport type DeploymentStddevPopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentStddevPopulationAggregates = {\n  readonly __typename: 'DeploymentStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentStddevSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentStddevSampleAggregates = {\n  readonly __typename: 'DeploymentStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentSumAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n};\n\nexport type DeploymentSumAggregates = {\n  readonly __typename: 'DeploymentSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\n/** A filter to be used against many `ConsumerQueryReward` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyConsumerQueryRewardFilter = {\n  /** Aggregates across related `ConsumerQueryReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<ConsumerQueryRewardAggregatesFilter>;\n  /** Every related `ConsumerQueryReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<ConsumerQueryRewardFilter>;\n  /** No related `ConsumerQueryReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<ConsumerQueryRewardFilter>;\n  /** Some related `ConsumerQueryReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<ConsumerQueryRewardFilter>;\n};\n\n/** A filter to be used against many `ConsumerQueryRewardSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyConsumerQueryRewardSummaryFilter = {\n  /** Aggregates across related `ConsumerQueryRewardSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<ConsumerQueryRewardSummaryAggregatesFilter>;\n  /** Every related `ConsumerQueryRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n  /** No related `ConsumerQueryRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n  /** Some related `ConsumerQueryRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n};\n\n/** A filter to be used against many `DeploymentBooster` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyDeploymentBoosterFilter = {\n  /** Aggregates across related `DeploymentBooster` match the filter criteria. */\n  readonly aggregates: InputMaybe<DeploymentBoosterAggregatesFilter>;\n  /** Every related `DeploymentBooster` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<DeploymentBoosterFilter>;\n  /** No related `DeploymentBooster` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<DeploymentBoosterFilter>;\n  /** Some related `DeploymentBooster` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<DeploymentBoosterFilter>;\n};\n\n/** A filter to be used against many `DeploymentBoosterSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyDeploymentBoosterSummaryFilter = {\n  /** Aggregates across related `DeploymentBoosterSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<DeploymentBoosterSummaryAggregatesFilter>;\n  /** Every related `DeploymentBoosterSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<DeploymentBoosterSummaryFilter>;\n  /** No related `DeploymentBoosterSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<DeploymentBoosterSummaryFilter>;\n  /** Some related `DeploymentBoosterSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<DeploymentBoosterSummaryFilter>;\n};\n\n/** A filter to be used against many `EraIndexerDeploymentApy` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyEraIndexerDeploymentApyFilter = {\n  /** Aggregates across related `EraIndexerDeploymentApy` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraIndexerDeploymentApyAggregatesFilter>;\n  /** Every related `EraIndexerDeploymentApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraIndexerDeploymentApyFilter>;\n  /** No related `EraIndexerDeploymentApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraIndexerDeploymentApyFilter>;\n  /** Some related `EraIndexerDeploymentApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraIndexerDeploymentApyFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocation` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyIndexerAllocationFilter = {\n  /** Aggregates across related `IndexerAllocation` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationAggregatesFilter>;\n  /** Every related `IndexerAllocation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationFilter>;\n  /** No related `IndexerAllocation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationFilter>;\n  /** Some related `IndexerAllocation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationReward` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyIndexerAllocationRewardFilter = {\n  /** Aggregates across related `IndexerAllocationReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationRewardAggregatesFilter>;\n  /** Every related `IndexerAllocationReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationRewardFilter>;\n  /** No related `IndexerAllocationReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationRewardFilter>;\n  /** Some related `IndexerAllocationReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationRewardFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationRewardSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyIndexerAllocationRewardSummaryFilter = {\n  /** Aggregates across related `IndexerAllocationRewardSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationRewardSummaryAggregatesFilter>;\n  /** Every related `IndexerAllocationRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  /** No related `IndexerAllocationRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  /** Some related `IndexerAllocationRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyIndexerAllocationSummaryFilter = {\n  /** Aggregates across related `IndexerAllocationSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationSummaryAggregatesFilter>;\n  /** Every related `IndexerAllocationSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationSummaryFilter>;\n  /** No related `IndexerAllocationSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationSummaryFilter>;\n  /** Some related `IndexerAllocationSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationSummaryFilter>;\n};\n\n/** A filter to be used against many `IndexerDeployment` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyIndexerDeploymentFilter = {\n  /** Aggregates across related `IndexerDeployment` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerDeploymentAggregatesFilter>;\n  /** Every related `IndexerDeployment` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerDeploymentFilter>;\n  /** No related `IndexerDeployment` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerDeploymentFilter>;\n  /** Some related `IndexerDeployment` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerDeploymentFilter>;\n};\n\n/** A filter to be used against many `IndexerMissedLabor` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyIndexerMissedLaborFilter = {\n  /** Aggregates across related `IndexerMissedLabor` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerMissedLaborAggregatesFilter>;\n  /** Every related `IndexerMissedLabor` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerMissedLaborFilter>;\n  /** No related `IndexerMissedLabor` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerMissedLaborFilter>;\n  /** Some related `IndexerMissedLabor` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerMissedLaborFilter>;\n};\n\n/** A filter to be used against many `Offer` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyOfferFilter = {\n  /** Aggregates across related `Offer` match the filter criteria. */\n  readonly aggregates: InputMaybe<OfferAggregatesFilter>;\n  /** Every related `Offer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<OfferFilter>;\n  /** No related `Offer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<OfferFilter>;\n  /** Some related `Offer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<OfferFilter>;\n};\n\n/** A filter to be used against many `Plan` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyPlanFilter = {\n  /** Aggregates across related `Plan` match the filter criteria. */\n  readonly aggregates: InputMaybe<PlanAggregatesFilter>;\n  /** Every related `Plan` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<PlanFilter>;\n  /** No related `Plan` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<PlanFilter>;\n  /** Some related `Plan` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<PlanFilter>;\n};\n\n/** A filter to be used against many `ServiceAgreement` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyServiceAgreementFilter = {\n  /** Aggregates across related `ServiceAgreement` match the filter criteria. */\n  readonly aggregates: InputMaybe<ServiceAgreementAggregatesFilter>;\n  /** Every related `ServiceAgreement` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<ServiceAgreementFilter>;\n  /** No related `ServiceAgreement` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<ServiceAgreementFilter>;\n  /** Some related `ServiceAgreement` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<ServiceAgreementFilter>;\n};\n\n/** A filter to be used against many `StateChannel` object types. All fields are combined with a logical ‘and.’ */\nexport type DeploymentToManyStateChannelFilter = {\n  /** Aggregates across related `StateChannel` match the filter criteria. */\n  readonly aggregates: InputMaybe<StateChannelAggregatesFilter>;\n  /** Every related `StateChannel` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<StateChannelFilter>;\n  /** No related `StateChannel` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<StateChannelFilter>;\n  /** Some related `StateChannel` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<StateChannelFilter>;\n};\n\nexport type DeploymentVariancePopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentVariancePopulationAggregates = {\n  readonly __typename: 'DeploymentVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DeploymentVarianceSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type DeploymentVarianceSampleAggregates = {\n  readonly __typename: 'DeploymentVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Deployment` values. */\nexport type DeploymentsConnection = {\n  readonly __typename: 'DeploymentsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DeploymentsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values. */\nexport type DeploymentsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentsGroupBy>;\n  having: InputMaybe<DeploymentsHavingInput>;\n};\n\n/** A `Deployment` edge in the connection. */\nexport type DeploymentsEdge = {\n  readonly __typename: 'DeploymentsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** Grouping methods for `Deployment` for usage during aggregation. */\nexport enum DeploymentsGroupBy {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  CREATED_TIMESTAMP = 'CREATED_TIMESTAMP',\n  CREATED_TIMESTAMP_TRUNCATED_TO_DAY = 'CREATED_TIMESTAMP_TRUNCATED_TO_DAY',\n  CREATED_TIMESTAMP_TRUNCATED_TO_HOUR = 'CREATED_TIMESTAMP_TRUNCATED_TO_HOUR',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  METADATA = 'METADATA',\n  PROJECT_ID = 'PROJECT_ID',\n}\n\nexport type DeploymentsHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentsHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `Deployment` aggregates. */\nexport type DeploymentsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<DeploymentsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<DeploymentsHavingInput>>;\n  readonly average: InputMaybe<DeploymentsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<DeploymentsHavingDistinctCountInput>;\n  readonly max: InputMaybe<DeploymentsHavingMaxInput>;\n  readonly min: InputMaybe<DeploymentsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<DeploymentsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<DeploymentsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<DeploymentsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<DeploymentsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<DeploymentsHavingVarianceSampleInput>;\n};\n\nexport type DeploymentsHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentsHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentsHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentsHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentsHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentsHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type DeploymentsHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `Deployment`. */\nexport enum DeploymentsOrderBy {\n  CONSUMER_QUERY_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ID_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ID_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ID_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ID_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_BY_DEPLOYMENT_ID__COUNT_ASC = 'CONSUMER_QUERY_REWARDS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  CONSUMER_QUERY_REWARDS_BY_DEPLOYMENT_ID__COUNT_DESC = 'CONSUMER_QUERY_REWARDS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  CONSUMER_QUERY_REWARDS_COUNT_ASC = 'CONSUMER_QUERY_REWARDS_COUNT_ASC',\n  CONSUMER_QUERY_REWARDS_COUNT_DESC = 'CONSUMER_QUERY_REWARDS_COUNT_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ID_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ID_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_MAX_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_MAX_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_MAX_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_MAX_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_MAX_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_MAX_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_MAX_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_MAX_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_ID_ASC = 'CONSUMER_QUERY_REWARDS_MAX_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_ID_DESC = 'CONSUMER_QUERY_REWARDS_MAX_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_MAX_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_MAX_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_MAX_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_MAX_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_MAX_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_MAX_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_MAX_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_MAX_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_MAX_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_MAX_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_MAX_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_MAX_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_MIN_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_MIN_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_MIN_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_MIN_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_MIN_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_MIN_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_MIN_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_MIN_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_ID_ASC = 'CONSUMER_QUERY_REWARDS_MIN_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_ID_DESC = 'CONSUMER_QUERY_REWARDS_MIN_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_MIN_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_MIN_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_MIN_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_MIN_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_MIN_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_MIN_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_MIN_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_MIN_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_MIN_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_MIN_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_MIN_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_MIN_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_SUM_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_SUM_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_SUM_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_SUM_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_SUM_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_SUM_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_SUM_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_SUM_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_ID_ASC = 'CONSUMER_QUERY_REWARDS_SUM_ID_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_ID_DESC = 'CONSUMER_QUERY_REWARDS_SUM_ID_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_SUM_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_SUM_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_SUM_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_SUM_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_SUM_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_SUM_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_SUM_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_SUM_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_SUM_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_SUM_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_SUM_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_SUM_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_COUNT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_COUNT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_COUNT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_COUNT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  CREATED_TIMESTAMP_ASC = 'CREATED_TIMESTAMP_ASC',\n  CREATED_TIMESTAMP_DESC = 'CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_ID_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_ID_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_ID_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_ID_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_BY_DEPLOYMENT_ID__COUNT_ASC = 'DEPLOYMENT_BOOSTERS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  DEPLOYMENT_BOOSTERS_BY_DEPLOYMENT_ID__COUNT_DESC = 'DEPLOYMENT_BOOSTERS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  DEPLOYMENT_BOOSTERS_COUNT_ASC = 'DEPLOYMENT_BOOSTERS_COUNT_ASC',\n  DEPLOYMENT_BOOSTERS_COUNT_DESC = 'DEPLOYMENT_BOOSTERS_COUNT_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ID_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ID_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_MAX_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_MAX_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_MAX_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_MAX_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_MAX_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_MAX_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_MAX_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_MAX_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_MAX_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_MAX_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_MAX_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_MAX_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_MAX_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_MAX_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_ID_ASC = 'DEPLOYMENT_BOOSTERS_MAX_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_ID_DESC = 'DEPLOYMENT_BOOSTERS_MAX_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_MAX_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_MAX_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_MIN_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_MIN_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_MIN_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_MIN_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_MIN_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_MIN_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_MIN_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_MIN_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_MIN_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_MIN_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_MIN_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_MIN_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_MIN_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_MIN_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_ID_ASC = 'DEPLOYMENT_BOOSTERS_MIN_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_ID_DESC = 'DEPLOYMENT_BOOSTERS_MIN_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_MIN_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_MIN_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_SUM_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_SUM_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_SUM_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_SUM_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_SUM_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_SUM_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_SUM_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_SUM_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_SUM_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_SUM_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_SUM_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_SUM_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_SUM_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_SUM_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_ID_ASC = 'DEPLOYMENT_BOOSTERS_SUM_ID_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_ID_DESC = 'DEPLOYMENT_BOOSTERS_SUM_ID_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_SUM_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_SUM_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_COUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_COUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_COUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_COUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_BY_DEPLOYMENT_ID__COUNT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_BY_DEPLOYMENT_ID__COUNT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_BY_DEPLOYMENT_ID__COUNT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_BY_DEPLOYMENT_ID__COUNT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_COUNT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_COUNT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_COUNT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_COUNT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXERS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXERS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXERS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXERS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXERS_AVERAGE_CREATED_BLOCK_ASC = 'INDEXERS_AVERAGE_CREATED_BLOCK_ASC',\n  INDEXERS_AVERAGE_CREATED_BLOCK_DESC = 'INDEXERS_AVERAGE_CREATED_BLOCK_DESC',\n  INDEXERS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXERS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXERS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXERS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXERS_AVERAGE_ID_ASC = 'INDEXERS_AVERAGE_ID_ASC',\n  INDEXERS_AVERAGE_ID_DESC = 'INDEXERS_AVERAGE_ID_DESC',\n  INDEXERS_AVERAGE_INDEXER_ID_ASC = 'INDEXERS_AVERAGE_INDEXER_ID_ASC',\n  INDEXERS_AVERAGE_INDEXER_ID_DESC = 'INDEXERS_AVERAGE_INDEXER_ID_DESC',\n  INDEXERS_AVERAGE_LAST_EVENT_ASC = 'INDEXERS_AVERAGE_LAST_EVENT_ASC',\n  INDEXERS_AVERAGE_LAST_EVENT_DESC = 'INDEXERS_AVERAGE_LAST_EVENT_DESC',\n  INDEXERS_AVERAGE_STATUS_ASC = 'INDEXERS_AVERAGE_STATUS_ASC',\n  INDEXERS_AVERAGE_STATUS_DESC = 'INDEXERS_AVERAGE_STATUS_DESC',\n  INDEXERS_AVERAGE_TIMESTAMP_ASC = 'INDEXERS_AVERAGE_TIMESTAMP_ASC',\n  INDEXERS_AVERAGE_TIMESTAMP_DESC = 'INDEXERS_AVERAGE_TIMESTAMP_DESC',\n  INDEXERS_COUNT_ASC = 'INDEXERS_COUNT_ASC',\n  INDEXERS_COUNT_DESC = 'INDEXERS_COUNT_DESC',\n  INDEXERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXERS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'INDEXERS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  INDEXERS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'INDEXERS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  INDEXERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXERS_DISTINCT_COUNT_ID_ASC = 'INDEXERS_DISTINCT_COUNT_ID_ASC',\n  INDEXERS_DISTINCT_COUNT_ID_DESC = 'INDEXERS_DISTINCT_COUNT_ID_DESC',\n  INDEXERS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXERS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXERS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXERS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXERS_DISTINCT_COUNT_LAST_EVENT_ASC = 'INDEXERS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  INDEXERS_DISTINCT_COUNT_LAST_EVENT_DESC = 'INDEXERS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  INDEXERS_DISTINCT_COUNT_STATUS_ASC = 'INDEXERS_DISTINCT_COUNT_STATUS_ASC',\n  INDEXERS_DISTINCT_COUNT_STATUS_DESC = 'INDEXERS_DISTINCT_COUNT_STATUS_DESC',\n  INDEXERS_DISTINCT_COUNT_TIMESTAMP_ASC = 'INDEXERS_DISTINCT_COUNT_TIMESTAMP_ASC',\n  INDEXERS_DISTINCT_COUNT_TIMESTAMP_DESC = 'INDEXERS_DISTINCT_COUNT_TIMESTAMP_DESC',\n  INDEXERS_MAX_BLOCK_RANGE_ASC = 'INDEXERS_MAX_BLOCK_RANGE_ASC',\n  INDEXERS_MAX_BLOCK_RANGE_DESC = 'INDEXERS_MAX_BLOCK_RANGE_DESC',\n  INDEXERS_MAX_CREATED_BLOCK_ASC = 'INDEXERS_MAX_CREATED_BLOCK_ASC',\n  INDEXERS_MAX_CREATED_BLOCK_DESC = 'INDEXERS_MAX_CREATED_BLOCK_DESC',\n  INDEXERS_MAX_DEPLOYMENT_ID_ASC = 'INDEXERS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXERS_MAX_DEPLOYMENT_ID_DESC = 'INDEXERS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXERS_MAX_ID_ASC = 'INDEXERS_MAX_ID_ASC',\n  INDEXERS_MAX_ID_DESC = 'INDEXERS_MAX_ID_DESC',\n  INDEXERS_MAX_INDEXER_ID_ASC = 'INDEXERS_MAX_INDEXER_ID_ASC',\n  INDEXERS_MAX_INDEXER_ID_DESC = 'INDEXERS_MAX_INDEXER_ID_DESC',\n  INDEXERS_MAX_LAST_EVENT_ASC = 'INDEXERS_MAX_LAST_EVENT_ASC',\n  INDEXERS_MAX_LAST_EVENT_DESC = 'INDEXERS_MAX_LAST_EVENT_DESC',\n  INDEXERS_MAX_STATUS_ASC = 'INDEXERS_MAX_STATUS_ASC',\n  INDEXERS_MAX_STATUS_DESC = 'INDEXERS_MAX_STATUS_DESC',\n  INDEXERS_MAX_TIMESTAMP_ASC = 'INDEXERS_MAX_TIMESTAMP_ASC',\n  INDEXERS_MAX_TIMESTAMP_DESC = 'INDEXERS_MAX_TIMESTAMP_DESC',\n  INDEXERS_MIN_BLOCK_RANGE_ASC = 'INDEXERS_MIN_BLOCK_RANGE_ASC',\n  INDEXERS_MIN_BLOCK_RANGE_DESC = 'INDEXERS_MIN_BLOCK_RANGE_DESC',\n  INDEXERS_MIN_CREATED_BLOCK_ASC = 'INDEXERS_MIN_CREATED_BLOCK_ASC',\n  INDEXERS_MIN_CREATED_BLOCK_DESC = 'INDEXERS_MIN_CREATED_BLOCK_DESC',\n  INDEXERS_MIN_DEPLOYMENT_ID_ASC = 'INDEXERS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXERS_MIN_DEPLOYMENT_ID_DESC = 'INDEXERS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXERS_MIN_ID_ASC = 'INDEXERS_MIN_ID_ASC',\n  INDEXERS_MIN_ID_DESC = 'INDEXERS_MIN_ID_DESC',\n  INDEXERS_MIN_INDEXER_ID_ASC = 'INDEXERS_MIN_INDEXER_ID_ASC',\n  INDEXERS_MIN_INDEXER_ID_DESC = 'INDEXERS_MIN_INDEXER_ID_DESC',\n  INDEXERS_MIN_LAST_EVENT_ASC = 'INDEXERS_MIN_LAST_EVENT_ASC',\n  INDEXERS_MIN_LAST_EVENT_DESC = 'INDEXERS_MIN_LAST_EVENT_DESC',\n  INDEXERS_MIN_STATUS_ASC = 'INDEXERS_MIN_STATUS_ASC',\n  INDEXERS_MIN_STATUS_DESC = 'INDEXERS_MIN_STATUS_DESC',\n  INDEXERS_MIN_TIMESTAMP_ASC = 'INDEXERS_MIN_TIMESTAMP_ASC',\n  INDEXERS_MIN_TIMESTAMP_DESC = 'INDEXERS_MIN_TIMESTAMP_DESC',\n  INDEXERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXERS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'INDEXERS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  INDEXERS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'INDEXERS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  INDEXERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXERS_STDDEV_POPULATION_ID_ASC = 'INDEXERS_STDDEV_POPULATION_ID_ASC',\n  INDEXERS_STDDEV_POPULATION_ID_DESC = 'INDEXERS_STDDEV_POPULATION_ID_DESC',\n  INDEXERS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXERS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXERS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXERS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXERS_STDDEV_POPULATION_LAST_EVENT_ASC = 'INDEXERS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  INDEXERS_STDDEV_POPULATION_LAST_EVENT_DESC = 'INDEXERS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  INDEXERS_STDDEV_POPULATION_STATUS_ASC = 'INDEXERS_STDDEV_POPULATION_STATUS_ASC',\n  INDEXERS_STDDEV_POPULATION_STATUS_DESC = 'INDEXERS_STDDEV_POPULATION_STATUS_DESC',\n  INDEXERS_STDDEV_POPULATION_TIMESTAMP_ASC = 'INDEXERS_STDDEV_POPULATION_TIMESTAMP_ASC',\n  INDEXERS_STDDEV_POPULATION_TIMESTAMP_DESC = 'INDEXERS_STDDEV_POPULATION_TIMESTAMP_DESC',\n  INDEXERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'INDEXERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  INDEXERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'INDEXERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  INDEXERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXERS_STDDEV_SAMPLE_ID_ASC = 'INDEXERS_STDDEV_SAMPLE_ID_ASC',\n  INDEXERS_STDDEV_SAMPLE_ID_DESC = 'INDEXERS_STDDEV_SAMPLE_ID_DESC',\n  INDEXERS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXERS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXERS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXERS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXERS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'INDEXERS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  INDEXERS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'INDEXERS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  INDEXERS_STDDEV_SAMPLE_STATUS_ASC = 'INDEXERS_STDDEV_SAMPLE_STATUS_ASC',\n  INDEXERS_STDDEV_SAMPLE_STATUS_DESC = 'INDEXERS_STDDEV_SAMPLE_STATUS_DESC',\n  INDEXERS_STDDEV_SAMPLE_TIMESTAMP_ASC = 'INDEXERS_STDDEV_SAMPLE_TIMESTAMP_ASC',\n  INDEXERS_STDDEV_SAMPLE_TIMESTAMP_DESC = 'INDEXERS_STDDEV_SAMPLE_TIMESTAMP_DESC',\n  INDEXERS_SUM_BLOCK_RANGE_ASC = 'INDEXERS_SUM_BLOCK_RANGE_ASC',\n  INDEXERS_SUM_BLOCK_RANGE_DESC = 'INDEXERS_SUM_BLOCK_RANGE_DESC',\n  INDEXERS_SUM_CREATED_BLOCK_ASC = 'INDEXERS_SUM_CREATED_BLOCK_ASC',\n  INDEXERS_SUM_CREATED_BLOCK_DESC = 'INDEXERS_SUM_CREATED_BLOCK_DESC',\n  INDEXERS_SUM_DEPLOYMENT_ID_ASC = 'INDEXERS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXERS_SUM_DEPLOYMENT_ID_DESC = 'INDEXERS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXERS_SUM_ID_ASC = 'INDEXERS_SUM_ID_ASC',\n  INDEXERS_SUM_ID_DESC = 'INDEXERS_SUM_ID_DESC',\n  INDEXERS_SUM_INDEXER_ID_ASC = 'INDEXERS_SUM_INDEXER_ID_ASC',\n  INDEXERS_SUM_INDEXER_ID_DESC = 'INDEXERS_SUM_INDEXER_ID_DESC',\n  INDEXERS_SUM_LAST_EVENT_ASC = 'INDEXERS_SUM_LAST_EVENT_ASC',\n  INDEXERS_SUM_LAST_EVENT_DESC = 'INDEXERS_SUM_LAST_EVENT_DESC',\n  INDEXERS_SUM_STATUS_ASC = 'INDEXERS_SUM_STATUS_ASC',\n  INDEXERS_SUM_STATUS_DESC = 'INDEXERS_SUM_STATUS_DESC',\n  INDEXERS_SUM_TIMESTAMP_ASC = 'INDEXERS_SUM_TIMESTAMP_ASC',\n  INDEXERS_SUM_TIMESTAMP_DESC = 'INDEXERS_SUM_TIMESTAMP_DESC',\n  INDEXERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'INDEXERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  INDEXERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'INDEXERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  INDEXERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXERS_VARIANCE_POPULATION_ID_ASC = 'INDEXERS_VARIANCE_POPULATION_ID_ASC',\n  INDEXERS_VARIANCE_POPULATION_ID_DESC = 'INDEXERS_VARIANCE_POPULATION_ID_DESC',\n  INDEXERS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXERS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXERS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXERS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXERS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'INDEXERS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  INDEXERS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'INDEXERS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  INDEXERS_VARIANCE_POPULATION_STATUS_ASC = 'INDEXERS_VARIANCE_POPULATION_STATUS_ASC',\n  INDEXERS_VARIANCE_POPULATION_STATUS_DESC = 'INDEXERS_VARIANCE_POPULATION_STATUS_DESC',\n  INDEXERS_VARIANCE_POPULATION_TIMESTAMP_ASC = 'INDEXERS_VARIANCE_POPULATION_TIMESTAMP_ASC',\n  INDEXERS_VARIANCE_POPULATION_TIMESTAMP_DESC = 'INDEXERS_VARIANCE_POPULATION_TIMESTAMP_DESC',\n  INDEXERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'INDEXERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  INDEXERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'INDEXERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  INDEXERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXERS_VARIANCE_SAMPLE_ID_ASC = 'INDEXERS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXERS_VARIANCE_SAMPLE_ID_DESC = 'INDEXERS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXERS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXERS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXERS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXERS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXERS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'INDEXERS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  INDEXERS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'INDEXERS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  INDEXERS_VARIANCE_SAMPLE_STATUS_ASC = 'INDEXERS_VARIANCE_SAMPLE_STATUS_ASC',\n  INDEXERS_VARIANCE_SAMPLE_STATUS_DESC = 'INDEXERS_VARIANCE_SAMPLE_STATUS_DESC',\n  INDEXERS_VARIANCE_SAMPLE_TIMESTAMP_ASC = 'INDEXERS_VARIANCE_SAMPLE_TIMESTAMP_ASC',\n  INDEXERS_VARIANCE_SAMPLE_TIMESTAMP_DESC = 'INDEXERS_VARIANCE_SAMPLE_TIMESTAMP_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_BY_DEPLOYMENT_ID__COUNT_ASC = 'INDEXER_ALLOCATIONS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  INDEXER_ALLOCATIONS_BY_DEPLOYMENT_ID__COUNT_DESC = 'INDEXER_ALLOCATIONS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  INDEXER_ALLOCATIONS_COUNT_ASC = 'INDEXER_ALLOCATIONS_COUNT_ASC',\n  INDEXER_ALLOCATIONS_COUNT_DESC = 'INDEXER_ALLOCATIONS_COUNT_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_MAX_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_MAX_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_MAX_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_MAX_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_MIN_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_MIN_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_MIN_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_MIN_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_SUM_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_SUM_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_SUM_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_SUM_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_BY_DEPLOYMENT_ID__COUNT_ASC = 'INDEXER_ALLOCATION_REWARDS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_BY_DEPLOYMENT_ID__COUNT_DESC = 'INDEXER_ALLOCATION_REWARDS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_COUNT_ASC = 'INDEXER_ALLOCATION_REWARDS_COUNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_COUNT_DESC = 'INDEXER_ALLOCATION_REWARDS_COUNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_BY_DEPLOYMENT_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_COUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_COUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_COUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_COUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_DEPLOYMENTS_BY_DEPLOYMENT_ID__COUNT_ASC = 'INDEXER_DEPLOYMENTS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  INDEXER_DEPLOYMENTS_BY_DEPLOYMENT_ID__COUNT_DESC = 'INDEXER_DEPLOYMENTS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_ID_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_ID_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_ID_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_ID_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_BY_DEPLOYMENT_ID__COUNT_ASC = 'INDEXER_MISSED_LABORS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  INDEXER_MISSED_LABORS_BY_DEPLOYMENT_ID__COUNT_DESC = 'INDEXER_MISSED_LABORS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  INDEXER_MISSED_LABORS_COUNT_ASC = 'INDEXER_MISSED_LABORS_COUNT_ASC',\n  INDEXER_MISSED_LABORS_COUNT_DESC = 'INDEXER_MISSED_LABORS_COUNT_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_ID_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_ID_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_MAX_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_MAX_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_MAX_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_MAX_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_MAX_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_MAX_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_MAX_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_MAX_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_MAX_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_MAX_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_MAX_ID_ASC = 'INDEXER_MISSED_LABORS_MAX_ID_ASC',\n  INDEXER_MISSED_LABORS_MAX_ID_DESC = 'INDEXER_MISSED_LABORS_MAX_ID_DESC',\n  INDEXER_MISSED_LABORS_MAX_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_MAX_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_MAX_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_MAX_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_MAX_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_MAX_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_MAX_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_MAX_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_MIN_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_MIN_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_MIN_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_MIN_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_MIN_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_MIN_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_MIN_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_MIN_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_MIN_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_MIN_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_MIN_ID_ASC = 'INDEXER_MISSED_LABORS_MIN_ID_ASC',\n  INDEXER_MISSED_LABORS_MIN_ID_DESC = 'INDEXER_MISSED_LABORS_MIN_ID_DESC',\n  INDEXER_MISSED_LABORS_MIN_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_MIN_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_MIN_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_MIN_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_MIN_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_MIN_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_MIN_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_MIN_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_SUM_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_SUM_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_SUM_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_SUM_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_SUM_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_SUM_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_SUM_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_SUM_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_SUM_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_SUM_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_SUM_ID_ASC = 'INDEXER_MISSED_LABORS_SUM_ID_ASC',\n  INDEXER_MISSED_LABORS_SUM_ID_DESC = 'INDEXER_MISSED_LABORS_SUM_ID_DESC',\n  INDEXER_MISSED_LABORS_SUM_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_SUM_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_SUM_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_SUM_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_SUM_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_SUM_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_SUM_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_SUM_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_MISSED_LABOR_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  METADATA_ASC = 'METADATA_ASC',\n  METADATA_DESC = 'METADATA_DESC',\n  NATURAL = 'NATURAL',\n  OFFERS_AVERAGE_ACCEPTED_ASC = 'OFFERS_AVERAGE_ACCEPTED_ASC',\n  OFFERS_AVERAGE_ACCEPTED_DESC = 'OFFERS_AVERAGE_ACCEPTED_DESC',\n  OFFERS_AVERAGE_BLOCK_RANGE_ASC = 'OFFERS_AVERAGE_BLOCK_RANGE_ASC',\n  OFFERS_AVERAGE_BLOCK_RANGE_DESC = 'OFFERS_AVERAGE_BLOCK_RANGE_DESC',\n  OFFERS_AVERAGE_CONSUMER_ASC = 'OFFERS_AVERAGE_CONSUMER_ASC',\n  OFFERS_AVERAGE_CONSUMER_DESC = 'OFFERS_AVERAGE_CONSUMER_DESC',\n  OFFERS_AVERAGE_CREATED_BLOCK_ASC = 'OFFERS_AVERAGE_CREATED_BLOCK_ASC',\n  OFFERS_AVERAGE_CREATED_BLOCK_DESC = 'OFFERS_AVERAGE_CREATED_BLOCK_DESC',\n  OFFERS_AVERAGE_DEPLOYMENT_ID_ASC = 'OFFERS_AVERAGE_DEPLOYMENT_ID_ASC',\n  OFFERS_AVERAGE_DEPLOYMENT_ID_DESC = 'OFFERS_AVERAGE_DEPLOYMENT_ID_DESC',\n  OFFERS_AVERAGE_DEPOSIT_ASC = 'OFFERS_AVERAGE_DEPOSIT_ASC',\n  OFFERS_AVERAGE_DEPOSIT_DESC = 'OFFERS_AVERAGE_DEPOSIT_DESC',\n  OFFERS_AVERAGE_EXPIRE_DATE_ASC = 'OFFERS_AVERAGE_EXPIRE_DATE_ASC',\n  OFFERS_AVERAGE_EXPIRE_DATE_DESC = 'OFFERS_AVERAGE_EXPIRE_DATE_DESC',\n  OFFERS_AVERAGE_ID_ASC = 'OFFERS_AVERAGE_ID_ASC',\n  OFFERS_AVERAGE_ID_DESC = 'OFFERS_AVERAGE_ID_DESC',\n  OFFERS_AVERAGE_LAST_EVENT_ASC = 'OFFERS_AVERAGE_LAST_EVENT_ASC',\n  OFFERS_AVERAGE_LAST_EVENT_DESC = 'OFFERS_AVERAGE_LAST_EVENT_DESC',\n  OFFERS_AVERAGE_LIMIT_ASC = 'OFFERS_AVERAGE_LIMIT_ASC',\n  OFFERS_AVERAGE_LIMIT_DESC = 'OFFERS_AVERAGE_LIMIT_DESC',\n  OFFERS_AVERAGE_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_AVERAGE_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_AVERAGE_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_AVERAGE_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_AVERAGE_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_AVERAGE_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_AVERAGE_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_AVERAGE_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_AVERAGE_PLAN_TEMPLATE_ID_ASC = 'OFFERS_AVERAGE_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_AVERAGE_PLAN_TEMPLATE_ID_DESC = 'OFFERS_AVERAGE_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_AVERAGE_REACH_LIMIT_ASC = 'OFFERS_AVERAGE_REACH_LIMIT_ASC',\n  OFFERS_AVERAGE_REACH_LIMIT_DESC = 'OFFERS_AVERAGE_REACH_LIMIT_DESC',\n  OFFERS_AVERAGE_WITHDRAWN_ASC = 'OFFERS_AVERAGE_WITHDRAWN_ASC',\n  OFFERS_AVERAGE_WITHDRAWN_DESC = 'OFFERS_AVERAGE_WITHDRAWN_DESC',\n  OFFERS_AVERAGE_WITHDRAW_PENALTY_ASC = 'OFFERS_AVERAGE_WITHDRAW_PENALTY_ASC',\n  OFFERS_AVERAGE_WITHDRAW_PENALTY_DESC = 'OFFERS_AVERAGE_WITHDRAW_PENALTY_DESC',\n  OFFERS_BY_DEPLOYMENT_ID__COUNT_ASC = 'OFFERS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  OFFERS_BY_DEPLOYMENT_ID__COUNT_DESC = 'OFFERS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  OFFERS_COUNT_ASC = 'OFFERS_COUNT_ASC',\n  OFFERS_COUNT_DESC = 'OFFERS_COUNT_DESC',\n  OFFERS_DISTINCT_COUNT_ACCEPTED_ASC = 'OFFERS_DISTINCT_COUNT_ACCEPTED_ASC',\n  OFFERS_DISTINCT_COUNT_ACCEPTED_DESC = 'OFFERS_DISTINCT_COUNT_ACCEPTED_DESC',\n  OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  OFFERS_DISTINCT_COUNT_CONSUMER_ASC = 'OFFERS_DISTINCT_COUNT_CONSUMER_ASC',\n  OFFERS_DISTINCT_COUNT_CONSUMER_DESC = 'OFFERS_DISTINCT_COUNT_CONSUMER_DESC',\n  OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  OFFERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'OFFERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  OFFERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'OFFERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  OFFERS_DISTINCT_COUNT_DEPOSIT_ASC = 'OFFERS_DISTINCT_COUNT_DEPOSIT_ASC',\n  OFFERS_DISTINCT_COUNT_DEPOSIT_DESC = 'OFFERS_DISTINCT_COUNT_DEPOSIT_DESC',\n  OFFERS_DISTINCT_COUNT_EXPIRE_DATE_ASC = 'OFFERS_DISTINCT_COUNT_EXPIRE_DATE_ASC',\n  OFFERS_DISTINCT_COUNT_EXPIRE_DATE_DESC = 'OFFERS_DISTINCT_COUNT_EXPIRE_DATE_DESC',\n  OFFERS_DISTINCT_COUNT_ID_ASC = 'OFFERS_DISTINCT_COUNT_ID_ASC',\n  OFFERS_DISTINCT_COUNT_ID_DESC = 'OFFERS_DISTINCT_COUNT_ID_DESC',\n  OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC = 'OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC = 'OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  OFFERS_DISTINCT_COUNT_LIMIT_ASC = 'OFFERS_DISTINCT_COUNT_LIMIT_ASC',\n  OFFERS_DISTINCT_COUNT_LIMIT_DESC = 'OFFERS_DISTINCT_COUNT_LIMIT_DESC',\n  OFFERS_DISTINCT_COUNT_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_DISTINCT_COUNT_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_DISTINCT_COUNT_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_DISTINCT_COUNT_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_DISTINCT_COUNT_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_DISTINCT_COUNT_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_DISTINCT_COUNT_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_DISTINCT_COUNT_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC = 'OFFERS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC = 'OFFERS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_DISTINCT_COUNT_REACH_LIMIT_ASC = 'OFFERS_DISTINCT_COUNT_REACH_LIMIT_ASC',\n  OFFERS_DISTINCT_COUNT_REACH_LIMIT_DESC = 'OFFERS_DISTINCT_COUNT_REACH_LIMIT_DESC',\n  OFFERS_DISTINCT_COUNT_WITHDRAWN_ASC = 'OFFERS_DISTINCT_COUNT_WITHDRAWN_ASC',\n  OFFERS_DISTINCT_COUNT_WITHDRAWN_DESC = 'OFFERS_DISTINCT_COUNT_WITHDRAWN_DESC',\n  OFFERS_DISTINCT_COUNT_WITHDRAW_PENALTY_ASC = 'OFFERS_DISTINCT_COUNT_WITHDRAW_PENALTY_ASC',\n  OFFERS_DISTINCT_COUNT_WITHDRAW_PENALTY_DESC = 'OFFERS_DISTINCT_COUNT_WITHDRAW_PENALTY_DESC',\n  OFFERS_MAX_ACCEPTED_ASC = 'OFFERS_MAX_ACCEPTED_ASC',\n  OFFERS_MAX_ACCEPTED_DESC = 'OFFERS_MAX_ACCEPTED_DESC',\n  OFFERS_MAX_BLOCK_RANGE_ASC = 'OFFERS_MAX_BLOCK_RANGE_ASC',\n  OFFERS_MAX_BLOCK_RANGE_DESC = 'OFFERS_MAX_BLOCK_RANGE_DESC',\n  OFFERS_MAX_CONSUMER_ASC = 'OFFERS_MAX_CONSUMER_ASC',\n  OFFERS_MAX_CONSUMER_DESC = 'OFFERS_MAX_CONSUMER_DESC',\n  OFFERS_MAX_CREATED_BLOCK_ASC = 'OFFERS_MAX_CREATED_BLOCK_ASC',\n  OFFERS_MAX_CREATED_BLOCK_DESC = 'OFFERS_MAX_CREATED_BLOCK_DESC',\n  OFFERS_MAX_DEPLOYMENT_ID_ASC = 'OFFERS_MAX_DEPLOYMENT_ID_ASC',\n  OFFERS_MAX_DEPLOYMENT_ID_DESC = 'OFFERS_MAX_DEPLOYMENT_ID_DESC',\n  OFFERS_MAX_DEPOSIT_ASC = 'OFFERS_MAX_DEPOSIT_ASC',\n  OFFERS_MAX_DEPOSIT_DESC = 'OFFERS_MAX_DEPOSIT_DESC',\n  OFFERS_MAX_EXPIRE_DATE_ASC = 'OFFERS_MAX_EXPIRE_DATE_ASC',\n  OFFERS_MAX_EXPIRE_DATE_DESC = 'OFFERS_MAX_EXPIRE_DATE_DESC',\n  OFFERS_MAX_ID_ASC = 'OFFERS_MAX_ID_ASC',\n  OFFERS_MAX_ID_DESC = 'OFFERS_MAX_ID_DESC',\n  OFFERS_MAX_LAST_EVENT_ASC = 'OFFERS_MAX_LAST_EVENT_ASC',\n  OFFERS_MAX_LAST_EVENT_DESC = 'OFFERS_MAX_LAST_EVENT_DESC',\n  OFFERS_MAX_LIMIT_ASC = 'OFFERS_MAX_LIMIT_ASC',\n  OFFERS_MAX_LIMIT_DESC = 'OFFERS_MAX_LIMIT_DESC',\n  OFFERS_MAX_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_MAX_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_MAX_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_MAX_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_MAX_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_MAX_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_MAX_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_MAX_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_MAX_PLAN_TEMPLATE_ID_ASC = 'OFFERS_MAX_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_MAX_PLAN_TEMPLATE_ID_DESC = 'OFFERS_MAX_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_MAX_REACH_LIMIT_ASC = 'OFFERS_MAX_REACH_LIMIT_ASC',\n  OFFERS_MAX_REACH_LIMIT_DESC = 'OFFERS_MAX_REACH_LIMIT_DESC',\n  OFFERS_MAX_WITHDRAWN_ASC = 'OFFERS_MAX_WITHDRAWN_ASC',\n  OFFERS_MAX_WITHDRAWN_DESC = 'OFFERS_MAX_WITHDRAWN_DESC',\n  OFFERS_MAX_WITHDRAW_PENALTY_ASC = 'OFFERS_MAX_WITHDRAW_PENALTY_ASC',\n  OFFERS_MAX_WITHDRAW_PENALTY_DESC = 'OFFERS_MAX_WITHDRAW_PENALTY_DESC',\n  OFFERS_MIN_ACCEPTED_ASC = 'OFFERS_MIN_ACCEPTED_ASC',\n  OFFERS_MIN_ACCEPTED_DESC = 'OFFERS_MIN_ACCEPTED_DESC',\n  OFFERS_MIN_BLOCK_RANGE_ASC = 'OFFERS_MIN_BLOCK_RANGE_ASC',\n  OFFERS_MIN_BLOCK_RANGE_DESC = 'OFFERS_MIN_BLOCK_RANGE_DESC',\n  OFFERS_MIN_CONSUMER_ASC = 'OFFERS_MIN_CONSUMER_ASC',\n  OFFERS_MIN_CONSUMER_DESC = 'OFFERS_MIN_CONSUMER_DESC',\n  OFFERS_MIN_CREATED_BLOCK_ASC = 'OFFERS_MIN_CREATED_BLOCK_ASC',\n  OFFERS_MIN_CREATED_BLOCK_DESC = 'OFFERS_MIN_CREATED_BLOCK_DESC',\n  OFFERS_MIN_DEPLOYMENT_ID_ASC = 'OFFERS_MIN_DEPLOYMENT_ID_ASC',\n  OFFERS_MIN_DEPLOYMENT_ID_DESC = 'OFFERS_MIN_DEPLOYMENT_ID_DESC',\n  OFFERS_MIN_DEPOSIT_ASC = 'OFFERS_MIN_DEPOSIT_ASC',\n  OFFERS_MIN_DEPOSIT_DESC = 'OFFERS_MIN_DEPOSIT_DESC',\n  OFFERS_MIN_EXPIRE_DATE_ASC = 'OFFERS_MIN_EXPIRE_DATE_ASC',\n  OFFERS_MIN_EXPIRE_DATE_DESC = 'OFFERS_MIN_EXPIRE_DATE_DESC',\n  OFFERS_MIN_ID_ASC = 'OFFERS_MIN_ID_ASC',\n  OFFERS_MIN_ID_DESC = 'OFFERS_MIN_ID_DESC',\n  OFFERS_MIN_LAST_EVENT_ASC = 'OFFERS_MIN_LAST_EVENT_ASC',\n  OFFERS_MIN_LAST_EVENT_DESC = 'OFFERS_MIN_LAST_EVENT_DESC',\n  OFFERS_MIN_LIMIT_ASC = 'OFFERS_MIN_LIMIT_ASC',\n  OFFERS_MIN_LIMIT_DESC = 'OFFERS_MIN_LIMIT_DESC',\n  OFFERS_MIN_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_MIN_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_MIN_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_MIN_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_MIN_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_MIN_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_MIN_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_MIN_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_MIN_PLAN_TEMPLATE_ID_ASC = 'OFFERS_MIN_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_MIN_PLAN_TEMPLATE_ID_DESC = 'OFFERS_MIN_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_MIN_REACH_LIMIT_ASC = 'OFFERS_MIN_REACH_LIMIT_ASC',\n  OFFERS_MIN_REACH_LIMIT_DESC = 'OFFERS_MIN_REACH_LIMIT_DESC',\n  OFFERS_MIN_WITHDRAWN_ASC = 'OFFERS_MIN_WITHDRAWN_ASC',\n  OFFERS_MIN_WITHDRAWN_DESC = 'OFFERS_MIN_WITHDRAWN_DESC',\n  OFFERS_MIN_WITHDRAW_PENALTY_ASC = 'OFFERS_MIN_WITHDRAW_PENALTY_ASC',\n  OFFERS_MIN_WITHDRAW_PENALTY_DESC = 'OFFERS_MIN_WITHDRAW_PENALTY_DESC',\n  OFFERS_STDDEV_POPULATION_ACCEPTED_ASC = 'OFFERS_STDDEV_POPULATION_ACCEPTED_ASC',\n  OFFERS_STDDEV_POPULATION_ACCEPTED_DESC = 'OFFERS_STDDEV_POPULATION_ACCEPTED_DESC',\n  OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  OFFERS_STDDEV_POPULATION_CONSUMER_ASC = 'OFFERS_STDDEV_POPULATION_CONSUMER_ASC',\n  OFFERS_STDDEV_POPULATION_CONSUMER_DESC = 'OFFERS_STDDEV_POPULATION_CONSUMER_DESC',\n  OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  OFFERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'OFFERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  OFFERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'OFFERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  OFFERS_STDDEV_POPULATION_DEPOSIT_ASC = 'OFFERS_STDDEV_POPULATION_DEPOSIT_ASC',\n  OFFERS_STDDEV_POPULATION_DEPOSIT_DESC = 'OFFERS_STDDEV_POPULATION_DEPOSIT_DESC',\n  OFFERS_STDDEV_POPULATION_EXPIRE_DATE_ASC = 'OFFERS_STDDEV_POPULATION_EXPIRE_DATE_ASC',\n  OFFERS_STDDEV_POPULATION_EXPIRE_DATE_DESC = 'OFFERS_STDDEV_POPULATION_EXPIRE_DATE_DESC',\n  OFFERS_STDDEV_POPULATION_ID_ASC = 'OFFERS_STDDEV_POPULATION_ID_ASC',\n  OFFERS_STDDEV_POPULATION_ID_DESC = 'OFFERS_STDDEV_POPULATION_ID_DESC',\n  OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC = 'OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC = 'OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  OFFERS_STDDEV_POPULATION_LIMIT_ASC = 'OFFERS_STDDEV_POPULATION_LIMIT_ASC',\n  OFFERS_STDDEV_POPULATION_LIMIT_DESC = 'OFFERS_STDDEV_POPULATION_LIMIT_DESC',\n  OFFERS_STDDEV_POPULATION_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_STDDEV_POPULATION_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_STDDEV_POPULATION_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_STDDEV_POPULATION_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_STDDEV_POPULATION_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_STDDEV_POPULATION_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_STDDEV_POPULATION_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_STDDEV_POPULATION_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC = 'OFFERS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC = 'OFFERS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_STDDEV_POPULATION_REACH_LIMIT_ASC = 'OFFERS_STDDEV_POPULATION_REACH_LIMIT_ASC',\n  OFFERS_STDDEV_POPULATION_REACH_LIMIT_DESC = 'OFFERS_STDDEV_POPULATION_REACH_LIMIT_DESC',\n  OFFERS_STDDEV_POPULATION_WITHDRAWN_ASC = 'OFFERS_STDDEV_POPULATION_WITHDRAWN_ASC',\n  OFFERS_STDDEV_POPULATION_WITHDRAWN_DESC = 'OFFERS_STDDEV_POPULATION_WITHDRAWN_DESC',\n  OFFERS_STDDEV_POPULATION_WITHDRAW_PENALTY_ASC = 'OFFERS_STDDEV_POPULATION_WITHDRAW_PENALTY_ASC',\n  OFFERS_STDDEV_POPULATION_WITHDRAW_PENALTY_DESC = 'OFFERS_STDDEV_POPULATION_WITHDRAW_PENALTY_DESC',\n  OFFERS_STDDEV_SAMPLE_ACCEPTED_ASC = 'OFFERS_STDDEV_SAMPLE_ACCEPTED_ASC',\n  OFFERS_STDDEV_SAMPLE_ACCEPTED_DESC = 'OFFERS_STDDEV_SAMPLE_ACCEPTED_DESC',\n  OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  OFFERS_STDDEV_SAMPLE_CONSUMER_ASC = 'OFFERS_STDDEV_SAMPLE_CONSUMER_ASC',\n  OFFERS_STDDEV_SAMPLE_CONSUMER_DESC = 'OFFERS_STDDEV_SAMPLE_CONSUMER_DESC',\n  OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  OFFERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'OFFERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  OFFERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'OFFERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  OFFERS_STDDEV_SAMPLE_DEPOSIT_ASC = 'OFFERS_STDDEV_SAMPLE_DEPOSIT_ASC',\n  OFFERS_STDDEV_SAMPLE_DEPOSIT_DESC = 'OFFERS_STDDEV_SAMPLE_DEPOSIT_DESC',\n  OFFERS_STDDEV_SAMPLE_EXPIRE_DATE_ASC = 'OFFERS_STDDEV_SAMPLE_EXPIRE_DATE_ASC',\n  OFFERS_STDDEV_SAMPLE_EXPIRE_DATE_DESC = 'OFFERS_STDDEV_SAMPLE_EXPIRE_DATE_DESC',\n  OFFERS_STDDEV_SAMPLE_ID_ASC = 'OFFERS_STDDEV_SAMPLE_ID_ASC',\n  OFFERS_STDDEV_SAMPLE_ID_DESC = 'OFFERS_STDDEV_SAMPLE_ID_DESC',\n  OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  OFFERS_STDDEV_SAMPLE_LIMIT_ASC = 'OFFERS_STDDEV_SAMPLE_LIMIT_ASC',\n  OFFERS_STDDEV_SAMPLE_LIMIT_DESC = 'OFFERS_STDDEV_SAMPLE_LIMIT_DESC',\n  OFFERS_STDDEV_SAMPLE_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_STDDEV_SAMPLE_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_STDDEV_SAMPLE_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_STDDEV_SAMPLE_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_STDDEV_SAMPLE_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_STDDEV_SAMPLE_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_STDDEV_SAMPLE_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_STDDEV_SAMPLE_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'OFFERS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'OFFERS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_STDDEV_SAMPLE_REACH_LIMIT_ASC = 'OFFERS_STDDEV_SAMPLE_REACH_LIMIT_ASC',\n  OFFERS_STDDEV_SAMPLE_REACH_LIMIT_DESC = 'OFFERS_STDDEV_SAMPLE_REACH_LIMIT_DESC',\n  OFFERS_STDDEV_SAMPLE_WITHDRAWN_ASC = 'OFFERS_STDDEV_SAMPLE_WITHDRAWN_ASC',\n  OFFERS_STDDEV_SAMPLE_WITHDRAWN_DESC = 'OFFERS_STDDEV_SAMPLE_WITHDRAWN_DESC',\n  OFFERS_STDDEV_SAMPLE_WITHDRAW_PENALTY_ASC = 'OFFERS_STDDEV_SAMPLE_WITHDRAW_PENALTY_ASC',\n  OFFERS_STDDEV_SAMPLE_WITHDRAW_PENALTY_DESC = 'OFFERS_STDDEV_SAMPLE_WITHDRAW_PENALTY_DESC',\n  OFFERS_SUM_ACCEPTED_ASC = 'OFFERS_SUM_ACCEPTED_ASC',\n  OFFERS_SUM_ACCEPTED_DESC = 'OFFERS_SUM_ACCEPTED_DESC',\n  OFFERS_SUM_BLOCK_RANGE_ASC = 'OFFERS_SUM_BLOCK_RANGE_ASC',\n  OFFERS_SUM_BLOCK_RANGE_DESC = 'OFFERS_SUM_BLOCK_RANGE_DESC',\n  OFFERS_SUM_CONSUMER_ASC = 'OFFERS_SUM_CONSUMER_ASC',\n  OFFERS_SUM_CONSUMER_DESC = 'OFFERS_SUM_CONSUMER_DESC',\n  OFFERS_SUM_CREATED_BLOCK_ASC = 'OFFERS_SUM_CREATED_BLOCK_ASC',\n  OFFERS_SUM_CREATED_BLOCK_DESC = 'OFFERS_SUM_CREATED_BLOCK_DESC',\n  OFFERS_SUM_DEPLOYMENT_ID_ASC = 'OFFERS_SUM_DEPLOYMENT_ID_ASC',\n  OFFERS_SUM_DEPLOYMENT_ID_DESC = 'OFFERS_SUM_DEPLOYMENT_ID_DESC',\n  OFFERS_SUM_DEPOSIT_ASC = 'OFFERS_SUM_DEPOSIT_ASC',\n  OFFERS_SUM_DEPOSIT_DESC = 'OFFERS_SUM_DEPOSIT_DESC',\n  OFFERS_SUM_EXPIRE_DATE_ASC = 'OFFERS_SUM_EXPIRE_DATE_ASC',\n  OFFERS_SUM_EXPIRE_DATE_DESC = 'OFFERS_SUM_EXPIRE_DATE_DESC',\n  OFFERS_SUM_ID_ASC = 'OFFERS_SUM_ID_ASC',\n  OFFERS_SUM_ID_DESC = 'OFFERS_SUM_ID_DESC',\n  OFFERS_SUM_LAST_EVENT_ASC = 'OFFERS_SUM_LAST_EVENT_ASC',\n  OFFERS_SUM_LAST_EVENT_DESC = 'OFFERS_SUM_LAST_EVENT_DESC',\n  OFFERS_SUM_LIMIT_ASC = 'OFFERS_SUM_LIMIT_ASC',\n  OFFERS_SUM_LIMIT_DESC = 'OFFERS_SUM_LIMIT_DESC',\n  OFFERS_SUM_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_SUM_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_SUM_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_SUM_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_SUM_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_SUM_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_SUM_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_SUM_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_SUM_PLAN_TEMPLATE_ID_ASC = 'OFFERS_SUM_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_SUM_PLAN_TEMPLATE_ID_DESC = 'OFFERS_SUM_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_SUM_REACH_LIMIT_ASC = 'OFFERS_SUM_REACH_LIMIT_ASC',\n  OFFERS_SUM_REACH_LIMIT_DESC = 'OFFERS_SUM_REACH_LIMIT_DESC',\n  OFFERS_SUM_WITHDRAWN_ASC = 'OFFERS_SUM_WITHDRAWN_ASC',\n  OFFERS_SUM_WITHDRAWN_DESC = 'OFFERS_SUM_WITHDRAWN_DESC',\n  OFFERS_SUM_WITHDRAW_PENALTY_ASC = 'OFFERS_SUM_WITHDRAW_PENALTY_ASC',\n  OFFERS_SUM_WITHDRAW_PENALTY_DESC = 'OFFERS_SUM_WITHDRAW_PENALTY_DESC',\n  OFFERS_VARIANCE_POPULATION_ACCEPTED_ASC = 'OFFERS_VARIANCE_POPULATION_ACCEPTED_ASC',\n  OFFERS_VARIANCE_POPULATION_ACCEPTED_DESC = 'OFFERS_VARIANCE_POPULATION_ACCEPTED_DESC',\n  OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  OFFERS_VARIANCE_POPULATION_CONSUMER_ASC = 'OFFERS_VARIANCE_POPULATION_CONSUMER_ASC',\n  OFFERS_VARIANCE_POPULATION_CONSUMER_DESC = 'OFFERS_VARIANCE_POPULATION_CONSUMER_DESC',\n  OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  OFFERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'OFFERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  OFFERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'OFFERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  OFFERS_VARIANCE_POPULATION_DEPOSIT_ASC = 'OFFERS_VARIANCE_POPULATION_DEPOSIT_ASC',\n  OFFERS_VARIANCE_POPULATION_DEPOSIT_DESC = 'OFFERS_VARIANCE_POPULATION_DEPOSIT_DESC',\n  OFFERS_VARIANCE_POPULATION_EXPIRE_DATE_ASC = 'OFFERS_VARIANCE_POPULATION_EXPIRE_DATE_ASC',\n  OFFERS_VARIANCE_POPULATION_EXPIRE_DATE_DESC = 'OFFERS_VARIANCE_POPULATION_EXPIRE_DATE_DESC',\n  OFFERS_VARIANCE_POPULATION_ID_ASC = 'OFFERS_VARIANCE_POPULATION_ID_ASC',\n  OFFERS_VARIANCE_POPULATION_ID_DESC = 'OFFERS_VARIANCE_POPULATION_ID_DESC',\n  OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  OFFERS_VARIANCE_POPULATION_LIMIT_ASC = 'OFFERS_VARIANCE_POPULATION_LIMIT_ASC',\n  OFFERS_VARIANCE_POPULATION_LIMIT_DESC = 'OFFERS_VARIANCE_POPULATION_LIMIT_DESC',\n  OFFERS_VARIANCE_POPULATION_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_VARIANCE_POPULATION_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_VARIANCE_POPULATION_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_VARIANCE_POPULATION_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_VARIANCE_POPULATION_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_VARIANCE_POPULATION_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_VARIANCE_POPULATION_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_VARIANCE_POPULATION_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC = 'OFFERS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC = 'OFFERS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_VARIANCE_POPULATION_REACH_LIMIT_ASC = 'OFFERS_VARIANCE_POPULATION_REACH_LIMIT_ASC',\n  OFFERS_VARIANCE_POPULATION_REACH_LIMIT_DESC = 'OFFERS_VARIANCE_POPULATION_REACH_LIMIT_DESC',\n  OFFERS_VARIANCE_POPULATION_WITHDRAWN_ASC = 'OFFERS_VARIANCE_POPULATION_WITHDRAWN_ASC',\n  OFFERS_VARIANCE_POPULATION_WITHDRAWN_DESC = 'OFFERS_VARIANCE_POPULATION_WITHDRAWN_DESC',\n  OFFERS_VARIANCE_POPULATION_WITHDRAW_PENALTY_ASC = 'OFFERS_VARIANCE_POPULATION_WITHDRAW_PENALTY_ASC',\n  OFFERS_VARIANCE_POPULATION_WITHDRAW_PENALTY_DESC = 'OFFERS_VARIANCE_POPULATION_WITHDRAW_PENALTY_DESC',\n  OFFERS_VARIANCE_SAMPLE_ACCEPTED_ASC = 'OFFERS_VARIANCE_SAMPLE_ACCEPTED_ASC',\n  OFFERS_VARIANCE_SAMPLE_ACCEPTED_DESC = 'OFFERS_VARIANCE_SAMPLE_ACCEPTED_DESC',\n  OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  OFFERS_VARIANCE_SAMPLE_CONSUMER_ASC = 'OFFERS_VARIANCE_SAMPLE_CONSUMER_ASC',\n  OFFERS_VARIANCE_SAMPLE_CONSUMER_DESC = 'OFFERS_VARIANCE_SAMPLE_CONSUMER_DESC',\n  OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  OFFERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'OFFERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  OFFERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'OFFERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  OFFERS_VARIANCE_SAMPLE_DEPOSIT_ASC = 'OFFERS_VARIANCE_SAMPLE_DEPOSIT_ASC',\n  OFFERS_VARIANCE_SAMPLE_DEPOSIT_DESC = 'OFFERS_VARIANCE_SAMPLE_DEPOSIT_DESC',\n  OFFERS_VARIANCE_SAMPLE_EXPIRE_DATE_ASC = 'OFFERS_VARIANCE_SAMPLE_EXPIRE_DATE_ASC',\n  OFFERS_VARIANCE_SAMPLE_EXPIRE_DATE_DESC = 'OFFERS_VARIANCE_SAMPLE_EXPIRE_DATE_DESC',\n  OFFERS_VARIANCE_SAMPLE_ID_ASC = 'OFFERS_VARIANCE_SAMPLE_ID_ASC',\n  OFFERS_VARIANCE_SAMPLE_ID_DESC = 'OFFERS_VARIANCE_SAMPLE_ID_DESC',\n  OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  OFFERS_VARIANCE_SAMPLE_LIMIT_ASC = 'OFFERS_VARIANCE_SAMPLE_LIMIT_ASC',\n  OFFERS_VARIANCE_SAMPLE_LIMIT_DESC = 'OFFERS_VARIANCE_SAMPLE_LIMIT_DESC',\n  OFFERS_VARIANCE_SAMPLE_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_VARIANCE_SAMPLE_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_VARIANCE_SAMPLE_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_VARIANCE_SAMPLE_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_VARIANCE_SAMPLE_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_VARIANCE_SAMPLE_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_VARIANCE_SAMPLE_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_VARIANCE_SAMPLE_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'OFFERS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'OFFERS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_VARIANCE_SAMPLE_REACH_LIMIT_ASC = 'OFFERS_VARIANCE_SAMPLE_REACH_LIMIT_ASC',\n  OFFERS_VARIANCE_SAMPLE_REACH_LIMIT_DESC = 'OFFERS_VARIANCE_SAMPLE_REACH_LIMIT_DESC',\n  OFFERS_VARIANCE_SAMPLE_WITHDRAWN_ASC = 'OFFERS_VARIANCE_SAMPLE_WITHDRAWN_ASC',\n  OFFERS_VARIANCE_SAMPLE_WITHDRAWN_DESC = 'OFFERS_VARIANCE_SAMPLE_WITHDRAWN_DESC',\n  OFFERS_VARIANCE_SAMPLE_WITHDRAW_PENALTY_ASC = 'OFFERS_VARIANCE_SAMPLE_WITHDRAW_PENALTY_ASC',\n  OFFERS_VARIANCE_SAMPLE_WITHDRAW_PENALTY_DESC = 'OFFERS_VARIANCE_SAMPLE_WITHDRAW_PENALTY_DESC',\n  PLANS_AVERAGE_ACTIVE_ASC = 'PLANS_AVERAGE_ACTIVE_ASC',\n  PLANS_AVERAGE_ACTIVE_DESC = 'PLANS_AVERAGE_ACTIVE_DESC',\n  PLANS_AVERAGE_BLOCK_RANGE_ASC = 'PLANS_AVERAGE_BLOCK_RANGE_ASC',\n  PLANS_AVERAGE_BLOCK_RANGE_DESC = 'PLANS_AVERAGE_BLOCK_RANGE_DESC',\n  PLANS_AVERAGE_CREATED_BLOCK_ASC = 'PLANS_AVERAGE_CREATED_BLOCK_ASC',\n  PLANS_AVERAGE_CREATED_BLOCK_DESC = 'PLANS_AVERAGE_CREATED_BLOCK_DESC',\n  PLANS_AVERAGE_CREATOR_ASC = 'PLANS_AVERAGE_CREATOR_ASC',\n  PLANS_AVERAGE_CREATOR_DESC = 'PLANS_AVERAGE_CREATOR_DESC',\n  PLANS_AVERAGE_DEPLOYMENT_ID_ASC = 'PLANS_AVERAGE_DEPLOYMENT_ID_ASC',\n  PLANS_AVERAGE_DEPLOYMENT_ID_DESC = 'PLANS_AVERAGE_DEPLOYMENT_ID_DESC',\n  PLANS_AVERAGE_ID_ASC = 'PLANS_AVERAGE_ID_ASC',\n  PLANS_AVERAGE_ID_DESC = 'PLANS_AVERAGE_ID_DESC',\n  PLANS_AVERAGE_LAST_EVENT_ASC = 'PLANS_AVERAGE_LAST_EVENT_ASC',\n  PLANS_AVERAGE_LAST_EVENT_DESC = 'PLANS_AVERAGE_LAST_EVENT_DESC',\n  PLANS_AVERAGE_PLAN_TEMPLATE_ID_ASC = 'PLANS_AVERAGE_PLAN_TEMPLATE_ID_ASC',\n  PLANS_AVERAGE_PLAN_TEMPLATE_ID_DESC = 'PLANS_AVERAGE_PLAN_TEMPLATE_ID_DESC',\n  PLANS_AVERAGE_PRICE_ASC = 'PLANS_AVERAGE_PRICE_ASC',\n  PLANS_AVERAGE_PRICE_DESC = 'PLANS_AVERAGE_PRICE_DESC',\n  PLANS_BY_DEPLOYMENT_ID__COUNT_ASC = 'PLANS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  PLANS_BY_DEPLOYMENT_ID__COUNT_DESC = 'PLANS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  PLANS_COUNT_ASC = 'PLANS_COUNT_ASC',\n  PLANS_COUNT_DESC = 'PLANS_COUNT_DESC',\n  PLANS_DISTINCT_COUNT_ACTIVE_ASC = 'PLANS_DISTINCT_COUNT_ACTIVE_ASC',\n  PLANS_DISTINCT_COUNT_ACTIVE_DESC = 'PLANS_DISTINCT_COUNT_ACTIVE_DESC',\n  PLANS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'PLANS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  PLANS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'PLANS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  PLANS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'PLANS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  PLANS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'PLANS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  PLANS_DISTINCT_COUNT_CREATOR_ASC = 'PLANS_DISTINCT_COUNT_CREATOR_ASC',\n  PLANS_DISTINCT_COUNT_CREATOR_DESC = 'PLANS_DISTINCT_COUNT_CREATOR_DESC',\n  PLANS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'PLANS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  PLANS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'PLANS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  PLANS_DISTINCT_COUNT_ID_ASC = 'PLANS_DISTINCT_COUNT_ID_ASC',\n  PLANS_DISTINCT_COUNT_ID_DESC = 'PLANS_DISTINCT_COUNT_ID_DESC',\n  PLANS_DISTINCT_COUNT_LAST_EVENT_ASC = 'PLANS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  PLANS_DISTINCT_COUNT_LAST_EVENT_DESC = 'PLANS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  PLANS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC = 'PLANS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC',\n  PLANS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC = 'PLANS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC',\n  PLANS_DISTINCT_COUNT_PRICE_ASC = 'PLANS_DISTINCT_COUNT_PRICE_ASC',\n  PLANS_DISTINCT_COUNT_PRICE_DESC = 'PLANS_DISTINCT_COUNT_PRICE_DESC',\n  PLANS_MAX_ACTIVE_ASC = 'PLANS_MAX_ACTIVE_ASC',\n  PLANS_MAX_ACTIVE_DESC = 'PLANS_MAX_ACTIVE_DESC',\n  PLANS_MAX_BLOCK_RANGE_ASC = 'PLANS_MAX_BLOCK_RANGE_ASC',\n  PLANS_MAX_BLOCK_RANGE_DESC = 'PLANS_MAX_BLOCK_RANGE_DESC',\n  PLANS_MAX_CREATED_BLOCK_ASC = 'PLANS_MAX_CREATED_BLOCK_ASC',\n  PLANS_MAX_CREATED_BLOCK_DESC = 'PLANS_MAX_CREATED_BLOCK_DESC',\n  PLANS_MAX_CREATOR_ASC = 'PLANS_MAX_CREATOR_ASC',\n  PLANS_MAX_CREATOR_DESC = 'PLANS_MAX_CREATOR_DESC',\n  PLANS_MAX_DEPLOYMENT_ID_ASC = 'PLANS_MAX_DEPLOYMENT_ID_ASC',\n  PLANS_MAX_DEPLOYMENT_ID_DESC = 'PLANS_MAX_DEPLOYMENT_ID_DESC',\n  PLANS_MAX_ID_ASC = 'PLANS_MAX_ID_ASC',\n  PLANS_MAX_ID_DESC = 'PLANS_MAX_ID_DESC',\n  PLANS_MAX_LAST_EVENT_ASC = 'PLANS_MAX_LAST_EVENT_ASC',\n  PLANS_MAX_LAST_EVENT_DESC = 'PLANS_MAX_LAST_EVENT_DESC',\n  PLANS_MAX_PLAN_TEMPLATE_ID_ASC = 'PLANS_MAX_PLAN_TEMPLATE_ID_ASC',\n  PLANS_MAX_PLAN_TEMPLATE_ID_DESC = 'PLANS_MAX_PLAN_TEMPLATE_ID_DESC',\n  PLANS_MAX_PRICE_ASC = 'PLANS_MAX_PRICE_ASC',\n  PLANS_MAX_PRICE_DESC = 'PLANS_MAX_PRICE_DESC',\n  PLANS_MIN_ACTIVE_ASC = 'PLANS_MIN_ACTIVE_ASC',\n  PLANS_MIN_ACTIVE_DESC = 'PLANS_MIN_ACTIVE_DESC',\n  PLANS_MIN_BLOCK_RANGE_ASC = 'PLANS_MIN_BLOCK_RANGE_ASC',\n  PLANS_MIN_BLOCK_RANGE_DESC = 'PLANS_MIN_BLOCK_RANGE_DESC',\n  PLANS_MIN_CREATED_BLOCK_ASC = 'PLANS_MIN_CREATED_BLOCK_ASC',\n  PLANS_MIN_CREATED_BLOCK_DESC = 'PLANS_MIN_CREATED_BLOCK_DESC',\n  PLANS_MIN_CREATOR_ASC = 'PLANS_MIN_CREATOR_ASC',\n  PLANS_MIN_CREATOR_DESC = 'PLANS_MIN_CREATOR_DESC',\n  PLANS_MIN_DEPLOYMENT_ID_ASC = 'PLANS_MIN_DEPLOYMENT_ID_ASC',\n  PLANS_MIN_DEPLOYMENT_ID_DESC = 'PLANS_MIN_DEPLOYMENT_ID_DESC',\n  PLANS_MIN_ID_ASC = 'PLANS_MIN_ID_ASC',\n  PLANS_MIN_ID_DESC = 'PLANS_MIN_ID_DESC',\n  PLANS_MIN_LAST_EVENT_ASC = 'PLANS_MIN_LAST_EVENT_ASC',\n  PLANS_MIN_LAST_EVENT_DESC = 'PLANS_MIN_LAST_EVENT_DESC',\n  PLANS_MIN_PLAN_TEMPLATE_ID_ASC = 'PLANS_MIN_PLAN_TEMPLATE_ID_ASC',\n  PLANS_MIN_PLAN_TEMPLATE_ID_DESC = 'PLANS_MIN_PLAN_TEMPLATE_ID_DESC',\n  PLANS_MIN_PRICE_ASC = 'PLANS_MIN_PRICE_ASC',\n  PLANS_MIN_PRICE_DESC = 'PLANS_MIN_PRICE_DESC',\n  PLANS_STDDEV_POPULATION_ACTIVE_ASC = 'PLANS_STDDEV_POPULATION_ACTIVE_ASC',\n  PLANS_STDDEV_POPULATION_ACTIVE_DESC = 'PLANS_STDDEV_POPULATION_ACTIVE_DESC',\n  PLANS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'PLANS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  PLANS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'PLANS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  PLANS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'PLANS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  PLANS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'PLANS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  PLANS_STDDEV_POPULATION_CREATOR_ASC = 'PLANS_STDDEV_POPULATION_CREATOR_ASC',\n  PLANS_STDDEV_POPULATION_CREATOR_DESC = 'PLANS_STDDEV_POPULATION_CREATOR_DESC',\n  PLANS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'PLANS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  PLANS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'PLANS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  PLANS_STDDEV_POPULATION_ID_ASC = 'PLANS_STDDEV_POPULATION_ID_ASC',\n  PLANS_STDDEV_POPULATION_ID_DESC = 'PLANS_STDDEV_POPULATION_ID_DESC',\n  PLANS_STDDEV_POPULATION_LAST_EVENT_ASC = 'PLANS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  PLANS_STDDEV_POPULATION_LAST_EVENT_DESC = 'PLANS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  PLANS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC = 'PLANS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  PLANS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC = 'PLANS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  PLANS_STDDEV_POPULATION_PRICE_ASC = 'PLANS_STDDEV_POPULATION_PRICE_ASC',\n  PLANS_STDDEV_POPULATION_PRICE_DESC = 'PLANS_STDDEV_POPULATION_PRICE_DESC',\n  PLANS_STDDEV_SAMPLE_ACTIVE_ASC = 'PLANS_STDDEV_SAMPLE_ACTIVE_ASC',\n  PLANS_STDDEV_SAMPLE_ACTIVE_DESC = 'PLANS_STDDEV_SAMPLE_ACTIVE_DESC',\n  PLANS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'PLANS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  PLANS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'PLANS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  PLANS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'PLANS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  PLANS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'PLANS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  PLANS_STDDEV_SAMPLE_CREATOR_ASC = 'PLANS_STDDEV_SAMPLE_CREATOR_ASC',\n  PLANS_STDDEV_SAMPLE_CREATOR_DESC = 'PLANS_STDDEV_SAMPLE_CREATOR_DESC',\n  PLANS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'PLANS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  PLANS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'PLANS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  PLANS_STDDEV_SAMPLE_ID_ASC = 'PLANS_STDDEV_SAMPLE_ID_ASC',\n  PLANS_STDDEV_SAMPLE_ID_DESC = 'PLANS_STDDEV_SAMPLE_ID_DESC',\n  PLANS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'PLANS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  PLANS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'PLANS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  PLANS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'PLANS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  PLANS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'PLANS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  PLANS_STDDEV_SAMPLE_PRICE_ASC = 'PLANS_STDDEV_SAMPLE_PRICE_ASC',\n  PLANS_STDDEV_SAMPLE_PRICE_DESC = 'PLANS_STDDEV_SAMPLE_PRICE_DESC',\n  PLANS_SUM_ACTIVE_ASC = 'PLANS_SUM_ACTIVE_ASC',\n  PLANS_SUM_ACTIVE_DESC = 'PLANS_SUM_ACTIVE_DESC',\n  PLANS_SUM_BLOCK_RANGE_ASC = 'PLANS_SUM_BLOCK_RANGE_ASC',\n  PLANS_SUM_BLOCK_RANGE_DESC = 'PLANS_SUM_BLOCK_RANGE_DESC',\n  PLANS_SUM_CREATED_BLOCK_ASC = 'PLANS_SUM_CREATED_BLOCK_ASC',\n  PLANS_SUM_CREATED_BLOCK_DESC = 'PLANS_SUM_CREATED_BLOCK_DESC',\n  PLANS_SUM_CREATOR_ASC = 'PLANS_SUM_CREATOR_ASC',\n  PLANS_SUM_CREATOR_DESC = 'PLANS_SUM_CREATOR_DESC',\n  PLANS_SUM_DEPLOYMENT_ID_ASC = 'PLANS_SUM_DEPLOYMENT_ID_ASC',\n  PLANS_SUM_DEPLOYMENT_ID_DESC = 'PLANS_SUM_DEPLOYMENT_ID_DESC',\n  PLANS_SUM_ID_ASC = 'PLANS_SUM_ID_ASC',\n  PLANS_SUM_ID_DESC = 'PLANS_SUM_ID_DESC',\n  PLANS_SUM_LAST_EVENT_ASC = 'PLANS_SUM_LAST_EVENT_ASC',\n  PLANS_SUM_LAST_EVENT_DESC = 'PLANS_SUM_LAST_EVENT_DESC',\n  PLANS_SUM_PLAN_TEMPLATE_ID_ASC = 'PLANS_SUM_PLAN_TEMPLATE_ID_ASC',\n  PLANS_SUM_PLAN_TEMPLATE_ID_DESC = 'PLANS_SUM_PLAN_TEMPLATE_ID_DESC',\n  PLANS_SUM_PRICE_ASC = 'PLANS_SUM_PRICE_ASC',\n  PLANS_SUM_PRICE_DESC = 'PLANS_SUM_PRICE_DESC',\n  PLANS_VARIANCE_POPULATION_ACTIVE_ASC = 'PLANS_VARIANCE_POPULATION_ACTIVE_ASC',\n  PLANS_VARIANCE_POPULATION_ACTIVE_DESC = 'PLANS_VARIANCE_POPULATION_ACTIVE_DESC',\n  PLANS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'PLANS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  PLANS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'PLANS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  PLANS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'PLANS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  PLANS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'PLANS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  PLANS_VARIANCE_POPULATION_CREATOR_ASC = 'PLANS_VARIANCE_POPULATION_CREATOR_ASC',\n  PLANS_VARIANCE_POPULATION_CREATOR_DESC = 'PLANS_VARIANCE_POPULATION_CREATOR_DESC',\n  PLANS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'PLANS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  PLANS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'PLANS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  PLANS_VARIANCE_POPULATION_ID_ASC = 'PLANS_VARIANCE_POPULATION_ID_ASC',\n  PLANS_VARIANCE_POPULATION_ID_DESC = 'PLANS_VARIANCE_POPULATION_ID_DESC',\n  PLANS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'PLANS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  PLANS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'PLANS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  PLANS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC = 'PLANS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  PLANS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC = 'PLANS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  PLANS_VARIANCE_POPULATION_PRICE_ASC = 'PLANS_VARIANCE_POPULATION_PRICE_ASC',\n  PLANS_VARIANCE_POPULATION_PRICE_DESC = 'PLANS_VARIANCE_POPULATION_PRICE_DESC',\n  PLANS_VARIANCE_SAMPLE_ACTIVE_ASC = 'PLANS_VARIANCE_SAMPLE_ACTIVE_ASC',\n  PLANS_VARIANCE_SAMPLE_ACTIVE_DESC = 'PLANS_VARIANCE_SAMPLE_ACTIVE_DESC',\n  PLANS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'PLANS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  PLANS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'PLANS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  PLANS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'PLANS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  PLANS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'PLANS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  PLANS_VARIANCE_SAMPLE_CREATOR_ASC = 'PLANS_VARIANCE_SAMPLE_CREATOR_ASC',\n  PLANS_VARIANCE_SAMPLE_CREATOR_DESC = 'PLANS_VARIANCE_SAMPLE_CREATOR_DESC',\n  PLANS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'PLANS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  PLANS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'PLANS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  PLANS_VARIANCE_SAMPLE_ID_ASC = 'PLANS_VARIANCE_SAMPLE_ID_ASC',\n  PLANS_VARIANCE_SAMPLE_ID_DESC = 'PLANS_VARIANCE_SAMPLE_ID_DESC',\n  PLANS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'PLANS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  PLANS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'PLANS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  PLANS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'PLANS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  PLANS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'PLANS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  PLANS_VARIANCE_SAMPLE_PRICE_ASC = 'PLANS_VARIANCE_SAMPLE_PRICE_ASC',\n  PLANS_VARIANCE_SAMPLE_PRICE_DESC = 'PLANS_VARIANCE_SAMPLE_PRICE_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__ID_ASC = 'PROJECT_BY_PROJECT_ID__ID_ASC',\n  PROJECT_BY_PROJECT_ID__ID_DESC = 'PROJECT_BY_PROJECT_ID__ID_DESC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC',\n  PROJECT_BY_PROJECT_ID__METADATA_ASC = 'PROJECT_BY_PROJECT_ID__METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__METADATA_DESC = 'PROJECT_BY_PROJECT_ID__METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__OWNER_ASC = 'PROJECT_BY_PROJECT_ID__OWNER_ASC',\n  PROJECT_BY_PROJECT_ID__OWNER_DESC = 'PROJECT_BY_PROJECT_ID__OWNER_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC',\n  PROJECT_BY_PROJECT_ID__TYPE_ASC = 'PROJECT_BY_PROJECT_ID__TYPE_ASC',\n  PROJECT_BY_PROJECT_ID__TYPE_DESC = 'PROJECT_BY_PROJECT_ID__TYPE_DESC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC',\n  PROJECT_ID_ASC = 'PROJECT_ID_ASC',\n  PROJECT_ID_DESC = 'PROJECT_ID_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_AVERAGE_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_AVERAGE_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_AVERAGE_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_AVERAGE_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_AVERAGE_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_AVERAGE_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_AVERAGE_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_AVERAGE_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_END_TIME_ASC = 'SERVICE_AGREEMENTS_AVERAGE_END_TIME_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_END_TIME_DESC = 'SERVICE_AGREEMENTS_AVERAGE_END_TIME_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_ID_ASC = 'SERVICE_AGREEMENTS_AVERAGE_ID_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_ID_DESC = 'SERVICE_AGREEMENTS_AVERAGE_ID_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_AVERAGE_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_AVERAGE_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_AVERAGE_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_AVERAGE_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_AVERAGE_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_AVERAGE_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_PERIOD_ASC = 'SERVICE_AGREEMENTS_AVERAGE_PERIOD_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_PERIOD_DESC = 'SERVICE_AGREEMENTS_AVERAGE_PERIOD_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_AVERAGE_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_AVERAGE_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_START_TIME_ASC = 'SERVICE_AGREEMENTS_AVERAGE_START_TIME_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_START_TIME_DESC = 'SERVICE_AGREEMENTS_AVERAGE_START_TIME_DESC',\n  SERVICE_AGREEMENTS_BY_DEPLOYMENT_ID__COUNT_ASC = 'SERVICE_AGREEMENTS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  SERVICE_AGREEMENTS_BY_DEPLOYMENT_ID__COUNT_DESC = 'SERVICE_AGREEMENTS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  SERVICE_AGREEMENTS_COUNT_ASC = 'SERVICE_AGREEMENTS_COUNT_ASC',\n  SERVICE_AGREEMENTS_COUNT_DESC = 'SERVICE_AGREEMENTS_COUNT_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_END_TIME_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_END_TIME_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_END_TIME_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_END_TIME_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_ID_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_ID_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_ID_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_ID_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_PERIOD_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_PERIOD_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_PERIOD_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_PERIOD_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_START_TIME_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_START_TIME_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_START_TIME_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_START_TIME_DESC',\n  SERVICE_AGREEMENTS_MAX_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_MAX_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_MAX_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_MAX_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_MAX_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_MAX_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_MAX_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_MAX_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_MAX_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_MAX_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_MAX_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_MAX_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_MAX_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_MAX_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_MAX_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_MAX_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_MAX_END_TIME_ASC = 'SERVICE_AGREEMENTS_MAX_END_TIME_ASC',\n  SERVICE_AGREEMENTS_MAX_END_TIME_DESC = 'SERVICE_AGREEMENTS_MAX_END_TIME_DESC',\n  SERVICE_AGREEMENTS_MAX_ID_ASC = 'SERVICE_AGREEMENTS_MAX_ID_ASC',\n  SERVICE_AGREEMENTS_MAX_ID_DESC = 'SERVICE_AGREEMENTS_MAX_ID_DESC',\n  SERVICE_AGREEMENTS_MAX_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_MAX_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_MAX_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_MAX_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_MAX_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_MAX_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_MAX_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_MAX_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_MAX_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_MAX_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_MAX_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_MAX_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_MAX_PERIOD_ASC = 'SERVICE_AGREEMENTS_MAX_PERIOD_ASC',\n  SERVICE_AGREEMENTS_MAX_PERIOD_DESC = 'SERVICE_AGREEMENTS_MAX_PERIOD_DESC',\n  SERVICE_AGREEMENTS_MAX_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_MAX_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_MAX_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_MAX_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_MAX_START_TIME_ASC = 'SERVICE_AGREEMENTS_MAX_START_TIME_ASC',\n  SERVICE_AGREEMENTS_MAX_START_TIME_DESC = 'SERVICE_AGREEMENTS_MAX_START_TIME_DESC',\n  SERVICE_AGREEMENTS_MIN_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_MIN_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_MIN_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_MIN_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_MIN_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_MIN_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_MIN_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_MIN_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_MIN_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_MIN_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_MIN_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_MIN_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_MIN_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_MIN_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_MIN_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_MIN_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_MIN_END_TIME_ASC = 'SERVICE_AGREEMENTS_MIN_END_TIME_ASC',\n  SERVICE_AGREEMENTS_MIN_END_TIME_DESC = 'SERVICE_AGREEMENTS_MIN_END_TIME_DESC',\n  SERVICE_AGREEMENTS_MIN_ID_ASC = 'SERVICE_AGREEMENTS_MIN_ID_ASC',\n  SERVICE_AGREEMENTS_MIN_ID_DESC = 'SERVICE_AGREEMENTS_MIN_ID_DESC',\n  SERVICE_AGREEMENTS_MIN_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_MIN_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_MIN_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_MIN_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_MIN_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_MIN_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_MIN_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_MIN_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_MIN_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_MIN_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_MIN_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_MIN_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_MIN_PERIOD_ASC = 'SERVICE_AGREEMENTS_MIN_PERIOD_ASC',\n  SERVICE_AGREEMENTS_MIN_PERIOD_DESC = 'SERVICE_AGREEMENTS_MIN_PERIOD_DESC',\n  SERVICE_AGREEMENTS_MIN_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_MIN_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_MIN_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_MIN_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_MIN_START_TIME_ASC = 'SERVICE_AGREEMENTS_MIN_START_TIME_ASC',\n  SERVICE_AGREEMENTS_MIN_START_TIME_DESC = 'SERVICE_AGREEMENTS_MIN_START_TIME_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_END_TIME_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_END_TIME_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_END_TIME_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_END_TIME_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_PERIOD_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_PERIOD_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_PERIOD_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_PERIOD_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_START_TIME_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_START_TIME_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_START_TIME_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_START_TIME_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_END_TIME_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_END_TIME_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_END_TIME_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_END_TIME_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_PERIOD_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_PERIOD_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_PERIOD_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_PERIOD_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_START_TIME_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_START_TIME_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_START_TIME_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_START_TIME_DESC',\n  SERVICE_AGREEMENTS_SUM_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_SUM_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_SUM_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_SUM_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_SUM_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_SUM_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_SUM_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_SUM_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_SUM_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_SUM_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_SUM_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_SUM_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_SUM_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_SUM_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_SUM_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_SUM_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_SUM_END_TIME_ASC = 'SERVICE_AGREEMENTS_SUM_END_TIME_ASC',\n  SERVICE_AGREEMENTS_SUM_END_TIME_DESC = 'SERVICE_AGREEMENTS_SUM_END_TIME_DESC',\n  SERVICE_AGREEMENTS_SUM_ID_ASC = 'SERVICE_AGREEMENTS_SUM_ID_ASC',\n  SERVICE_AGREEMENTS_SUM_ID_DESC = 'SERVICE_AGREEMENTS_SUM_ID_DESC',\n  SERVICE_AGREEMENTS_SUM_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_SUM_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_SUM_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_SUM_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_SUM_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_SUM_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_SUM_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_SUM_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_SUM_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_SUM_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_SUM_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_SUM_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_SUM_PERIOD_ASC = 'SERVICE_AGREEMENTS_SUM_PERIOD_ASC',\n  SERVICE_AGREEMENTS_SUM_PERIOD_DESC = 'SERVICE_AGREEMENTS_SUM_PERIOD_DESC',\n  SERVICE_AGREEMENTS_SUM_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_SUM_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_SUM_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_SUM_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_SUM_START_TIME_ASC = 'SERVICE_AGREEMENTS_SUM_START_TIME_ASC',\n  SERVICE_AGREEMENTS_SUM_START_TIME_DESC = 'SERVICE_AGREEMENTS_SUM_START_TIME_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_END_TIME_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_END_TIME_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_END_TIME_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_END_TIME_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_PERIOD_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_PERIOD_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_PERIOD_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_PERIOD_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_START_TIME_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_START_TIME_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_START_TIME_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_START_TIME_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_END_TIME_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_END_TIME_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_END_TIME_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_END_TIME_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PERIOD_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PERIOD_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PERIOD_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PERIOD_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_START_TIME_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_START_TIME_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_START_TIME_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_START_TIME_DESC',\n  STATE_CHANNELS_AVERAGE_AGENT_ASC = 'STATE_CHANNELS_AVERAGE_AGENT_ASC',\n  STATE_CHANNELS_AVERAGE_AGENT_DESC = 'STATE_CHANNELS_AVERAGE_AGENT_DESC',\n  STATE_CHANNELS_AVERAGE_BLOCK_RANGE_ASC = 'STATE_CHANNELS_AVERAGE_BLOCK_RANGE_ASC',\n  STATE_CHANNELS_AVERAGE_BLOCK_RANGE_DESC = 'STATE_CHANNELS_AVERAGE_BLOCK_RANGE_DESC',\n  STATE_CHANNELS_AVERAGE_CONSUMER_ASC = 'STATE_CHANNELS_AVERAGE_CONSUMER_ASC',\n  STATE_CHANNELS_AVERAGE_CONSUMER_DESC = 'STATE_CHANNELS_AVERAGE_CONSUMER_DESC',\n  STATE_CHANNELS_AVERAGE_DEPLOYMENT_ID_ASC = 'STATE_CHANNELS_AVERAGE_DEPLOYMENT_ID_ASC',\n  STATE_CHANNELS_AVERAGE_DEPLOYMENT_ID_DESC = 'STATE_CHANNELS_AVERAGE_DEPLOYMENT_ID_DESC',\n  STATE_CHANNELS_AVERAGE_EXPIRED_AT_ASC = 'STATE_CHANNELS_AVERAGE_EXPIRED_AT_ASC',\n  STATE_CHANNELS_AVERAGE_EXPIRED_AT_DESC = 'STATE_CHANNELS_AVERAGE_EXPIRED_AT_DESC',\n  STATE_CHANNELS_AVERAGE_ID_ASC = 'STATE_CHANNELS_AVERAGE_ID_ASC',\n  STATE_CHANNELS_AVERAGE_ID_DESC = 'STATE_CHANNELS_AVERAGE_ID_DESC',\n  STATE_CHANNELS_AVERAGE_INDEXER_ASC = 'STATE_CHANNELS_AVERAGE_INDEXER_ASC',\n  STATE_CHANNELS_AVERAGE_INDEXER_DESC = 'STATE_CHANNELS_AVERAGE_INDEXER_DESC',\n  STATE_CHANNELS_AVERAGE_IS_FINAL_ASC = 'STATE_CHANNELS_AVERAGE_IS_FINAL_ASC',\n  STATE_CHANNELS_AVERAGE_IS_FINAL_DESC = 'STATE_CHANNELS_AVERAGE_IS_FINAL_DESC',\n  STATE_CHANNELS_AVERAGE_LAST_EVENT_ASC = 'STATE_CHANNELS_AVERAGE_LAST_EVENT_ASC',\n  STATE_CHANNELS_AVERAGE_LAST_EVENT_DESC = 'STATE_CHANNELS_AVERAGE_LAST_EVENT_DESC',\n  STATE_CHANNELS_AVERAGE_PRICE_ASC = 'STATE_CHANNELS_AVERAGE_PRICE_ASC',\n  STATE_CHANNELS_AVERAGE_PRICE_DESC = 'STATE_CHANNELS_AVERAGE_PRICE_DESC',\n  STATE_CHANNELS_AVERAGE_REAL_TOTAL_ASC = 'STATE_CHANNELS_AVERAGE_REAL_TOTAL_ASC',\n  STATE_CHANNELS_AVERAGE_REAL_TOTAL_DESC = 'STATE_CHANNELS_AVERAGE_REAL_TOTAL_DESC',\n  STATE_CHANNELS_AVERAGE_SPENT_ASC = 'STATE_CHANNELS_AVERAGE_SPENT_ASC',\n  STATE_CHANNELS_AVERAGE_SPENT_DESC = 'STATE_CHANNELS_AVERAGE_SPENT_DESC',\n  STATE_CHANNELS_AVERAGE_START_TIME_ASC = 'STATE_CHANNELS_AVERAGE_START_TIME_ASC',\n  STATE_CHANNELS_AVERAGE_START_TIME_DESC = 'STATE_CHANNELS_AVERAGE_START_TIME_DESC',\n  STATE_CHANNELS_AVERAGE_STATUS_ASC = 'STATE_CHANNELS_AVERAGE_STATUS_ASC',\n  STATE_CHANNELS_AVERAGE_STATUS_DESC = 'STATE_CHANNELS_AVERAGE_STATUS_DESC',\n  STATE_CHANNELS_AVERAGE_TERMINATED_AT_ASC = 'STATE_CHANNELS_AVERAGE_TERMINATED_AT_ASC',\n  STATE_CHANNELS_AVERAGE_TERMINATED_AT_DESC = 'STATE_CHANNELS_AVERAGE_TERMINATED_AT_DESC',\n  STATE_CHANNELS_AVERAGE_TERMINATE_BY_INDEXER_ASC = 'STATE_CHANNELS_AVERAGE_TERMINATE_BY_INDEXER_ASC',\n  STATE_CHANNELS_AVERAGE_TERMINATE_BY_INDEXER_DESC = 'STATE_CHANNELS_AVERAGE_TERMINATE_BY_INDEXER_DESC',\n  STATE_CHANNELS_AVERAGE_TOTAL_ASC = 'STATE_CHANNELS_AVERAGE_TOTAL_ASC',\n  STATE_CHANNELS_AVERAGE_TOTAL_DESC = 'STATE_CHANNELS_AVERAGE_TOTAL_DESC',\n  STATE_CHANNELS_BY_DEPLOYMENT_ID__COUNT_ASC = 'STATE_CHANNELS_BY_DEPLOYMENT_ID__COUNT_ASC',\n  STATE_CHANNELS_BY_DEPLOYMENT_ID__COUNT_DESC = 'STATE_CHANNELS_BY_DEPLOYMENT_ID__COUNT_DESC',\n  STATE_CHANNELS_COUNT_ASC = 'STATE_CHANNELS_COUNT_ASC',\n  STATE_CHANNELS_COUNT_DESC = 'STATE_CHANNELS_COUNT_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_AGENT_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_AGENT_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_AGENT_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_AGENT_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_CONSUMER_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_CONSUMER_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_CONSUMER_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_CONSUMER_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_EXPIRED_AT_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_EXPIRED_AT_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_EXPIRED_AT_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_EXPIRED_AT_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_ID_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_ID_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_ID_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_ID_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_INDEXER_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_INDEXER_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_INDEXER_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_INDEXER_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_IS_FINAL_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_IS_FINAL_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_IS_FINAL_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_IS_FINAL_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_LAST_EVENT_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_LAST_EVENT_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_PRICE_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_PRICE_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_PRICE_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_PRICE_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_REAL_TOTAL_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_REAL_TOTAL_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_REAL_TOTAL_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_REAL_TOTAL_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_SPENT_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_SPENT_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_SPENT_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_SPENT_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_START_TIME_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_START_TIME_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_START_TIME_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_START_TIME_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_STATUS_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_STATUS_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_STATUS_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_STATUS_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_TERMINATED_AT_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_TERMINATED_AT_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_TERMINATED_AT_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_TERMINATED_AT_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_TERMINATE_BY_INDEXER_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_TERMINATE_BY_INDEXER_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_TERMINATE_BY_INDEXER_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_TERMINATE_BY_INDEXER_DESC',\n  STATE_CHANNELS_DISTINCT_COUNT_TOTAL_ASC = 'STATE_CHANNELS_DISTINCT_COUNT_TOTAL_ASC',\n  STATE_CHANNELS_DISTINCT_COUNT_TOTAL_DESC = 'STATE_CHANNELS_DISTINCT_COUNT_TOTAL_DESC',\n  STATE_CHANNELS_MAX_AGENT_ASC = 'STATE_CHANNELS_MAX_AGENT_ASC',\n  STATE_CHANNELS_MAX_AGENT_DESC = 'STATE_CHANNELS_MAX_AGENT_DESC',\n  STATE_CHANNELS_MAX_BLOCK_RANGE_ASC = 'STATE_CHANNELS_MAX_BLOCK_RANGE_ASC',\n  STATE_CHANNELS_MAX_BLOCK_RANGE_DESC = 'STATE_CHANNELS_MAX_BLOCK_RANGE_DESC',\n  STATE_CHANNELS_MAX_CONSUMER_ASC = 'STATE_CHANNELS_MAX_CONSUMER_ASC',\n  STATE_CHANNELS_MAX_CONSUMER_DESC = 'STATE_CHANNELS_MAX_CONSUMER_DESC',\n  STATE_CHANNELS_MAX_DEPLOYMENT_ID_ASC = 'STATE_CHANNELS_MAX_DEPLOYMENT_ID_ASC',\n  STATE_CHANNELS_MAX_DEPLOYMENT_ID_DESC = 'STATE_CHANNELS_MAX_DEPLOYMENT_ID_DESC',\n  STATE_CHANNELS_MAX_EXPIRED_AT_ASC = 'STATE_CHANNELS_MAX_EXPIRED_AT_ASC',\n  STATE_CHANNELS_MAX_EXPIRED_AT_DESC = 'STATE_CHANNELS_MAX_EXPIRED_AT_DESC',\n  STATE_CHANNELS_MAX_ID_ASC = 'STATE_CHANNELS_MAX_ID_ASC',\n  STATE_CHANNELS_MAX_ID_DESC = 'STATE_CHANNELS_MAX_ID_DESC',\n  STATE_CHANNELS_MAX_INDEXER_ASC = 'STATE_CHANNELS_MAX_INDEXER_ASC',\n  STATE_CHANNELS_MAX_INDEXER_DESC = 'STATE_CHANNELS_MAX_INDEXER_DESC',\n  STATE_CHANNELS_MAX_IS_FINAL_ASC = 'STATE_CHANNELS_MAX_IS_FINAL_ASC',\n  STATE_CHANNELS_MAX_IS_FINAL_DESC = 'STATE_CHANNELS_MAX_IS_FINAL_DESC',\n  STATE_CHANNELS_MAX_LAST_EVENT_ASC = 'STATE_CHANNELS_MAX_LAST_EVENT_ASC',\n  STATE_CHANNELS_MAX_LAST_EVENT_DESC = 'STATE_CHANNELS_MAX_LAST_EVENT_DESC',\n  STATE_CHANNELS_MAX_PRICE_ASC = 'STATE_CHANNELS_MAX_PRICE_ASC',\n  STATE_CHANNELS_MAX_PRICE_DESC = 'STATE_CHANNELS_MAX_PRICE_DESC',\n  STATE_CHANNELS_MAX_REAL_TOTAL_ASC = 'STATE_CHANNELS_MAX_REAL_TOTAL_ASC',\n  STATE_CHANNELS_MAX_REAL_TOTAL_DESC = 'STATE_CHANNELS_MAX_REAL_TOTAL_DESC',\n  STATE_CHANNELS_MAX_SPENT_ASC = 'STATE_CHANNELS_MAX_SPENT_ASC',\n  STATE_CHANNELS_MAX_SPENT_DESC = 'STATE_CHANNELS_MAX_SPENT_DESC',\n  STATE_CHANNELS_MAX_START_TIME_ASC = 'STATE_CHANNELS_MAX_START_TIME_ASC',\n  STATE_CHANNELS_MAX_START_TIME_DESC = 'STATE_CHANNELS_MAX_START_TIME_DESC',\n  STATE_CHANNELS_MAX_STATUS_ASC = 'STATE_CHANNELS_MAX_STATUS_ASC',\n  STATE_CHANNELS_MAX_STATUS_DESC = 'STATE_CHANNELS_MAX_STATUS_DESC',\n  STATE_CHANNELS_MAX_TERMINATED_AT_ASC = 'STATE_CHANNELS_MAX_TERMINATED_AT_ASC',\n  STATE_CHANNELS_MAX_TERMINATED_AT_DESC = 'STATE_CHANNELS_MAX_TERMINATED_AT_DESC',\n  STATE_CHANNELS_MAX_TERMINATE_BY_INDEXER_ASC = 'STATE_CHANNELS_MAX_TERMINATE_BY_INDEXER_ASC',\n  STATE_CHANNELS_MAX_TERMINATE_BY_INDEXER_DESC = 'STATE_CHANNELS_MAX_TERMINATE_BY_INDEXER_DESC',\n  STATE_CHANNELS_MAX_TOTAL_ASC = 'STATE_CHANNELS_MAX_TOTAL_ASC',\n  STATE_CHANNELS_MAX_TOTAL_DESC = 'STATE_CHANNELS_MAX_TOTAL_DESC',\n  STATE_CHANNELS_MIN_AGENT_ASC = 'STATE_CHANNELS_MIN_AGENT_ASC',\n  STATE_CHANNELS_MIN_AGENT_DESC = 'STATE_CHANNELS_MIN_AGENT_DESC',\n  STATE_CHANNELS_MIN_BLOCK_RANGE_ASC = 'STATE_CHANNELS_MIN_BLOCK_RANGE_ASC',\n  STATE_CHANNELS_MIN_BLOCK_RANGE_DESC = 'STATE_CHANNELS_MIN_BLOCK_RANGE_DESC',\n  STATE_CHANNELS_MIN_CONSUMER_ASC = 'STATE_CHANNELS_MIN_CONSUMER_ASC',\n  STATE_CHANNELS_MIN_CONSUMER_DESC = 'STATE_CHANNELS_MIN_CONSUMER_DESC',\n  STATE_CHANNELS_MIN_DEPLOYMENT_ID_ASC = 'STATE_CHANNELS_MIN_DEPLOYMENT_ID_ASC',\n  STATE_CHANNELS_MIN_DEPLOYMENT_ID_DESC = 'STATE_CHANNELS_MIN_DEPLOYMENT_ID_DESC',\n  STATE_CHANNELS_MIN_EXPIRED_AT_ASC = 'STATE_CHANNELS_MIN_EXPIRED_AT_ASC',\n  STATE_CHANNELS_MIN_EXPIRED_AT_DESC = 'STATE_CHANNELS_MIN_EXPIRED_AT_DESC',\n  STATE_CHANNELS_MIN_ID_ASC = 'STATE_CHANNELS_MIN_ID_ASC',\n  STATE_CHANNELS_MIN_ID_DESC = 'STATE_CHANNELS_MIN_ID_DESC',\n  STATE_CHANNELS_MIN_INDEXER_ASC = 'STATE_CHANNELS_MIN_INDEXER_ASC',\n  STATE_CHANNELS_MIN_INDEXER_DESC = 'STATE_CHANNELS_MIN_INDEXER_DESC',\n  STATE_CHANNELS_MIN_IS_FINAL_ASC = 'STATE_CHANNELS_MIN_IS_FINAL_ASC',\n  STATE_CHANNELS_MIN_IS_FINAL_DESC = 'STATE_CHANNELS_MIN_IS_FINAL_DESC',\n  STATE_CHANNELS_MIN_LAST_EVENT_ASC = 'STATE_CHANNELS_MIN_LAST_EVENT_ASC',\n  STATE_CHANNELS_MIN_LAST_EVENT_DESC = 'STATE_CHANNELS_MIN_LAST_EVENT_DESC',\n  STATE_CHANNELS_MIN_PRICE_ASC = 'STATE_CHANNELS_MIN_PRICE_ASC',\n  STATE_CHANNELS_MIN_PRICE_DESC = 'STATE_CHANNELS_MIN_PRICE_DESC',\n  STATE_CHANNELS_MIN_REAL_TOTAL_ASC = 'STATE_CHANNELS_MIN_REAL_TOTAL_ASC',\n  STATE_CHANNELS_MIN_REAL_TOTAL_DESC = 'STATE_CHANNELS_MIN_REAL_TOTAL_DESC',\n  STATE_CHANNELS_MIN_SPENT_ASC = 'STATE_CHANNELS_MIN_SPENT_ASC',\n  STATE_CHANNELS_MIN_SPENT_DESC = 'STATE_CHANNELS_MIN_SPENT_DESC',\n  STATE_CHANNELS_MIN_START_TIME_ASC = 'STATE_CHANNELS_MIN_START_TIME_ASC',\n  STATE_CHANNELS_MIN_START_TIME_DESC = 'STATE_CHANNELS_MIN_START_TIME_DESC',\n  STATE_CHANNELS_MIN_STATUS_ASC = 'STATE_CHANNELS_MIN_STATUS_ASC',\n  STATE_CHANNELS_MIN_STATUS_DESC = 'STATE_CHANNELS_MIN_STATUS_DESC',\n  STATE_CHANNELS_MIN_TERMINATED_AT_ASC = 'STATE_CHANNELS_MIN_TERMINATED_AT_ASC',\n  STATE_CHANNELS_MIN_TERMINATED_AT_DESC = 'STATE_CHANNELS_MIN_TERMINATED_AT_DESC',\n  STATE_CHANNELS_MIN_TERMINATE_BY_INDEXER_ASC = 'STATE_CHANNELS_MIN_TERMINATE_BY_INDEXER_ASC',\n  STATE_CHANNELS_MIN_TERMINATE_BY_INDEXER_DESC = 'STATE_CHANNELS_MIN_TERMINATE_BY_INDEXER_DESC',\n  STATE_CHANNELS_MIN_TOTAL_ASC = 'STATE_CHANNELS_MIN_TOTAL_ASC',\n  STATE_CHANNELS_MIN_TOTAL_DESC = 'STATE_CHANNELS_MIN_TOTAL_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_AGENT_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_AGENT_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_AGENT_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_AGENT_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_CONSUMER_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_CONSUMER_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_CONSUMER_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_CONSUMER_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_EXPIRED_AT_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_EXPIRED_AT_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_EXPIRED_AT_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_EXPIRED_AT_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_ID_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_ID_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_ID_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_ID_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_INDEXER_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_INDEXER_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_INDEXER_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_INDEXER_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_IS_FINAL_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_IS_FINAL_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_IS_FINAL_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_IS_FINAL_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_LAST_EVENT_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_LAST_EVENT_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_PRICE_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_PRICE_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_PRICE_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_PRICE_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_REAL_TOTAL_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_REAL_TOTAL_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_REAL_TOTAL_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_REAL_TOTAL_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_SPENT_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_SPENT_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_SPENT_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_SPENT_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_START_TIME_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_START_TIME_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_START_TIME_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_START_TIME_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_STATUS_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_STATUS_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_STATUS_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_STATUS_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_TERMINATED_AT_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_TERMINATED_AT_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_TERMINATED_AT_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_TERMINATED_AT_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_TERMINATE_BY_INDEXER_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_TERMINATE_BY_INDEXER_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_TERMINATE_BY_INDEXER_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_TERMINATE_BY_INDEXER_DESC',\n  STATE_CHANNELS_STDDEV_POPULATION_TOTAL_ASC = 'STATE_CHANNELS_STDDEV_POPULATION_TOTAL_ASC',\n  STATE_CHANNELS_STDDEV_POPULATION_TOTAL_DESC = 'STATE_CHANNELS_STDDEV_POPULATION_TOTAL_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_AGENT_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_AGENT_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_AGENT_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_AGENT_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_CONSUMER_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_CONSUMER_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_CONSUMER_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_CONSUMER_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_EXPIRED_AT_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_EXPIRED_AT_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_EXPIRED_AT_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_EXPIRED_AT_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_ID_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_ID_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_ID_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_ID_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_INDEXER_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_INDEXER_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_INDEXER_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_INDEXER_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_IS_FINAL_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_IS_FINAL_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_IS_FINAL_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_IS_FINAL_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_PRICE_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_PRICE_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_PRICE_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_PRICE_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_REAL_TOTAL_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_REAL_TOTAL_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_REAL_TOTAL_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_REAL_TOTAL_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_SPENT_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_SPENT_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_SPENT_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_SPENT_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_START_TIME_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_START_TIME_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_START_TIME_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_START_TIME_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_STATUS_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_STATUS_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_STATUS_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_STATUS_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_TERMINATED_AT_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_TERMINATED_AT_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_TERMINATED_AT_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_TERMINATED_AT_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_TERMINATE_BY_INDEXER_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_TERMINATE_BY_INDEXER_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_TERMINATE_BY_INDEXER_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_TERMINATE_BY_INDEXER_DESC',\n  STATE_CHANNELS_STDDEV_SAMPLE_TOTAL_ASC = 'STATE_CHANNELS_STDDEV_SAMPLE_TOTAL_ASC',\n  STATE_CHANNELS_STDDEV_SAMPLE_TOTAL_DESC = 'STATE_CHANNELS_STDDEV_SAMPLE_TOTAL_DESC',\n  STATE_CHANNELS_SUM_AGENT_ASC = 'STATE_CHANNELS_SUM_AGENT_ASC',\n  STATE_CHANNELS_SUM_AGENT_DESC = 'STATE_CHANNELS_SUM_AGENT_DESC',\n  STATE_CHANNELS_SUM_BLOCK_RANGE_ASC = 'STATE_CHANNELS_SUM_BLOCK_RANGE_ASC',\n  STATE_CHANNELS_SUM_BLOCK_RANGE_DESC = 'STATE_CHANNELS_SUM_BLOCK_RANGE_DESC',\n  STATE_CHANNELS_SUM_CONSUMER_ASC = 'STATE_CHANNELS_SUM_CONSUMER_ASC',\n  STATE_CHANNELS_SUM_CONSUMER_DESC = 'STATE_CHANNELS_SUM_CONSUMER_DESC',\n  STATE_CHANNELS_SUM_DEPLOYMENT_ID_ASC = 'STATE_CHANNELS_SUM_DEPLOYMENT_ID_ASC',\n  STATE_CHANNELS_SUM_DEPLOYMENT_ID_DESC = 'STATE_CHANNELS_SUM_DEPLOYMENT_ID_DESC',\n  STATE_CHANNELS_SUM_EXPIRED_AT_ASC = 'STATE_CHANNELS_SUM_EXPIRED_AT_ASC',\n  STATE_CHANNELS_SUM_EXPIRED_AT_DESC = 'STATE_CHANNELS_SUM_EXPIRED_AT_DESC',\n  STATE_CHANNELS_SUM_ID_ASC = 'STATE_CHANNELS_SUM_ID_ASC',\n  STATE_CHANNELS_SUM_ID_DESC = 'STATE_CHANNELS_SUM_ID_DESC',\n  STATE_CHANNELS_SUM_INDEXER_ASC = 'STATE_CHANNELS_SUM_INDEXER_ASC',\n  STATE_CHANNELS_SUM_INDEXER_DESC = 'STATE_CHANNELS_SUM_INDEXER_DESC',\n  STATE_CHANNELS_SUM_IS_FINAL_ASC = 'STATE_CHANNELS_SUM_IS_FINAL_ASC',\n  STATE_CHANNELS_SUM_IS_FINAL_DESC = 'STATE_CHANNELS_SUM_IS_FINAL_DESC',\n  STATE_CHANNELS_SUM_LAST_EVENT_ASC = 'STATE_CHANNELS_SUM_LAST_EVENT_ASC',\n  STATE_CHANNELS_SUM_LAST_EVENT_DESC = 'STATE_CHANNELS_SUM_LAST_EVENT_DESC',\n  STATE_CHANNELS_SUM_PRICE_ASC = 'STATE_CHANNELS_SUM_PRICE_ASC',\n  STATE_CHANNELS_SUM_PRICE_DESC = 'STATE_CHANNELS_SUM_PRICE_DESC',\n  STATE_CHANNELS_SUM_REAL_TOTAL_ASC = 'STATE_CHANNELS_SUM_REAL_TOTAL_ASC',\n  STATE_CHANNELS_SUM_REAL_TOTAL_DESC = 'STATE_CHANNELS_SUM_REAL_TOTAL_DESC',\n  STATE_CHANNELS_SUM_SPENT_ASC = 'STATE_CHANNELS_SUM_SPENT_ASC',\n  STATE_CHANNELS_SUM_SPENT_DESC = 'STATE_CHANNELS_SUM_SPENT_DESC',\n  STATE_CHANNELS_SUM_START_TIME_ASC = 'STATE_CHANNELS_SUM_START_TIME_ASC',\n  STATE_CHANNELS_SUM_START_TIME_DESC = 'STATE_CHANNELS_SUM_START_TIME_DESC',\n  STATE_CHANNELS_SUM_STATUS_ASC = 'STATE_CHANNELS_SUM_STATUS_ASC',\n  STATE_CHANNELS_SUM_STATUS_DESC = 'STATE_CHANNELS_SUM_STATUS_DESC',\n  STATE_CHANNELS_SUM_TERMINATED_AT_ASC = 'STATE_CHANNELS_SUM_TERMINATED_AT_ASC',\n  STATE_CHANNELS_SUM_TERMINATED_AT_DESC = 'STATE_CHANNELS_SUM_TERMINATED_AT_DESC',\n  STATE_CHANNELS_SUM_TERMINATE_BY_INDEXER_ASC = 'STATE_CHANNELS_SUM_TERMINATE_BY_INDEXER_ASC',\n  STATE_CHANNELS_SUM_TERMINATE_BY_INDEXER_DESC = 'STATE_CHANNELS_SUM_TERMINATE_BY_INDEXER_DESC',\n  STATE_CHANNELS_SUM_TOTAL_ASC = 'STATE_CHANNELS_SUM_TOTAL_ASC',\n  STATE_CHANNELS_SUM_TOTAL_DESC = 'STATE_CHANNELS_SUM_TOTAL_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_AGENT_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_AGENT_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_AGENT_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_AGENT_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_CONSUMER_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_CONSUMER_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_CONSUMER_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_CONSUMER_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_EXPIRED_AT_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_EXPIRED_AT_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_EXPIRED_AT_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_EXPIRED_AT_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_ID_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_ID_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_ID_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_ID_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_INDEXER_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_INDEXER_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_INDEXER_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_INDEXER_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_IS_FINAL_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_IS_FINAL_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_IS_FINAL_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_IS_FINAL_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_PRICE_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_PRICE_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_PRICE_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_PRICE_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_REAL_TOTAL_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_REAL_TOTAL_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_REAL_TOTAL_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_REAL_TOTAL_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_SPENT_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_SPENT_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_SPENT_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_SPENT_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_START_TIME_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_START_TIME_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_START_TIME_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_START_TIME_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_STATUS_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_STATUS_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_STATUS_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_STATUS_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_TERMINATED_AT_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_TERMINATED_AT_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_TERMINATED_AT_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_TERMINATED_AT_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_TERMINATE_BY_INDEXER_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_TERMINATE_BY_INDEXER_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_TERMINATE_BY_INDEXER_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_TERMINATE_BY_INDEXER_DESC',\n  STATE_CHANNELS_VARIANCE_POPULATION_TOTAL_ASC = 'STATE_CHANNELS_VARIANCE_POPULATION_TOTAL_ASC',\n  STATE_CHANNELS_VARIANCE_POPULATION_TOTAL_DESC = 'STATE_CHANNELS_VARIANCE_POPULATION_TOTAL_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_AGENT_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_AGENT_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_AGENT_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_AGENT_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_CONSUMER_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_CONSUMER_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_CONSUMER_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_CONSUMER_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_EXPIRED_AT_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_EXPIRED_AT_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_EXPIRED_AT_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_EXPIRED_AT_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_ID_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_ID_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_ID_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_ID_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_INDEXER_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_INDEXER_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_INDEXER_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_INDEXER_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_IS_FINAL_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_IS_FINAL_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_IS_FINAL_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_IS_FINAL_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_PRICE_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_PRICE_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_PRICE_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_PRICE_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_REAL_TOTAL_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_REAL_TOTAL_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_REAL_TOTAL_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_REAL_TOTAL_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_SPENT_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_SPENT_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_SPENT_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_SPENT_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_START_TIME_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_START_TIME_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_START_TIME_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_START_TIME_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_STATUS_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_STATUS_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_STATUS_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_STATUS_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_TERMINATED_AT_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_TERMINATED_AT_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_TERMINATED_AT_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_TERMINATED_AT_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_TERMINATE_BY_INDEXER_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_TERMINATE_BY_INDEXER_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_TERMINATE_BY_INDEXER_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_TERMINATE_BY_INDEXER_DESC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_TOTAL_ASC = 'STATE_CHANNELS_VARIANCE_SAMPLE_TOTAL_ASC',\n  STATE_CHANNELS_VARIANCE_SAMPLE_TOTAL_DESC = 'STATE_CHANNELS_VARIANCE_SAMPLE_TOTAL_DESC',\n}\n\nexport type Dispute = Node & {\n  readonly __typename: 'Dispute';\n  readonly disputeType: DisputeType;\n  readonly fisherman: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  readonly isFinalized: Scalars['Boolean']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly returnAmount: Maybe<Scalars['BigFloat']['output']>;\n  readonly runner: Scalars['String']['output'];\n  readonly slashAmount: Maybe<Scalars['BigFloat']['output']>;\n  readonly state: DisputeState;\n};\n\nexport type DisputeAggregates = {\n  readonly __typename: 'DisputeAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<DisputeAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<DisputeDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<DisputeMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<DisputeMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<DisputeStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<DisputeStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<DisputeSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<DisputeVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<DisputeVarianceSampleAggregates>;\n};\n\nexport type DisputeAverageAggregates = {\n  readonly __typename: 'DisputeAverageAggregates';\n  /** Mean average of returnAmount across the matching connection */\n  readonly returnAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of slashAmount across the matching connection */\n  readonly slashAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DisputeDistinctCountAggregates = {\n  readonly __typename: 'DisputeDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of disputeType across the matching connection */\n  readonly disputeType: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of fisherman across the matching connection */\n  readonly fisherman: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of isFinalized across the matching connection */\n  readonly isFinalized: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of returnAmount across the matching connection */\n  readonly returnAmount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of runner across the matching connection */\n  readonly runner: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of slashAmount across the matching connection */\n  readonly slashAmount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of state across the matching connection */\n  readonly state: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Dispute` object types. All fields are combined with a logical ‘and.’ */\nexport type DisputeFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<DisputeFilter>>;\n  /** Filter by the object’s `disputeType` field. */\n  readonly disputeType: InputMaybe<DisputeTypeFilter>;\n  /** Filter by the object’s `fisherman` field. */\n  readonly fisherman: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `isFinalized` field. */\n  readonly isFinalized: InputMaybe<BooleanFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<DisputeFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<DisputeFilter>>;\n  /** Filter by the object’s `returnAmount` field. */\n  readonly returnAmount: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `runner` field. */\n  readonly runner: InputMaybe<StringFilter>;\n  /** Filter by the object’s `slashAmount` field. */\n  readonly slashAmount: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `state` field. */\n  readonly state: InputMaybe<DisputeStateFilter>;\n};\n\nexport type DisputeMaxAggregates = {\n  readonly __typename: 'DisputeMaxAggregates';\n  /** Maximum of returnAmount across the matching connection */\n  readonly returnAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of slashAmount across the matching connection */\n  readonly slashAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DisputeMinAggregates = {\n  readonly __typename: 'DisputeMinAggregates';\n  /** Minimum of returnAmount across the matching connection */\n  readonly returnAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of slashAmount across the matching connection */\n  readonly slashAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport enum DisputeState {\n  ACCEPTED = 'ACCEPTED',\n  CANCELLED = 'CANCELLED',\n  ONGOING = 'ONGOING',\n  REJECTED = 'REJECTED',\n}\n\n/** A filter to be used against DisputeState fields. All fields are combined with a logical ‘and.’ */\nexport type DisputeStateFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<DisputeState>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<DisputeState>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<DisputeState>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<DisputeState>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<DisputeState>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<DisputeState>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<DisputeState>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<DisputeState>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<DisputeState>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<DisputeState>>;\n};\n\nexport type DisputeStddevPopulationAggregates = {\n  readonly __typename: 'DisputeStddevPopulationAggregates';\n  /** Population standard deviation of returnAmount across the matching connection */\n  readonly returnAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of slashAmount across the matching connection */\n  readonly slashAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DisputeStddevSampleAggregates = {\n  readonly __typename: 'DisputeStddevSampleAggregates';\n  /** Sample standard deviation of returnAmount across the matching connection */\n  readonly returnAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of slashAmount across the matching connection */\n  readonly slashAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DisputeSumAggregates = {\n  readonly __typename: 'DisputeSumAggregates';\n  /** Sum of returnAmount across the matching connection */\n  readonly returnAmount: Scalars['BigFloat']['output'];\n  /** Sum of slashAmount across the matching connection */\n  readonly slashAmount: Scalars['BigFloat']['output'];\n};\n\nexport enum DisputeType {\n  POI = 'POI',\n  QUERY = 'QUERY',\n}\n\n/** A filter to be used against DisputeType fields. All fields are combined with a logical ‘and.’ */\nexport type DisputeTypeFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<DisputeType>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<DisputeType>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<DisputeType>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<DisputeType>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<DisputeType>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<DisputeType>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<DisputeType>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<DisputeType>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<DisputeType>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<DisputeType>>;\n};\n\nexport type DisputeVariancePopulationAggregates = {\n  readonly __typename: 'DisputeVariancePopulationAggregates';\n  /** Population variance of returnAmount across the matching connection */\n  readonly returnAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of slashAmount across the matching connection */\n  readonly slashAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type DisputeVarianceSampleAggregates = {\n  readonly __typename: 'DisputeVarianceSampleAggregates';\n  /** Sample variance of returnAmount across the matching connection */\n  readonly returnAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of slashAmount across the matching connection */\n  readonly slashAmount: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Dispute` values. */\nexport type DisputesConnection = {\n  readonly __typename: 'DisputesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DisputeAggregates>;\n  /** A list of edges which contains the `Dispute` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<DisputesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DisputeAggregates>>;\n  /** A list of `Dispute` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Dispute>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Dispute` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Dispute` values. */\nexport type DisputesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DisputesGroupBy>;\n  having: InputMaybe<DisputesHavingInput>;\n};\n\n/** A `Dispute` edge in the connection. */\nexport type DisputesEdge = {\n  readonly __typename: 'DisputesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Dispute` at the end of the edge. */\n  readonly node: Maybe<Dispute>;\n};\n\n/** Grouping methods for `Dispute` for usage during aggregation. */\nexport enum DisputesGroupBy {\n  DISPUTE_TYPE = 'DISPUTE_TYPE',\n  FISHERMAN = 'FISHERMAN',\n  ID = 'ID',\n  IS_FINALIZED = 'IS_FINALIZED',\n  RETURN_AMOUNT = 'RETURN_AMOUNT',\n  RUNNER = 'RUNNER',\n  SLASH_AMOUNT = 'SLASH_AMOUNT',\n  STATE = 'STATE',\n}\n\nexport type DisputesHavingAverageInput = {\n  readonly returnAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly slashAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type DisputesHavingDistinctCountInput = {\n  readonly returnAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly slashAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `Dispute` aggregates. */\nexport type DisputesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<DisputesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<DisputesHavingInput>>;\n  readonly average: InputMaybe<DisputesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<DisputesHavingDistinctCountInput>;\n  readonly max: InputMaybe<DisputesHavingMaxInput>;\n  readonly min: InputMaybe<DisputesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<DisputesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<DisputesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<DisputesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<DisputesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<DisputesHavingVarianceSampleInput>;\n};\n\nexport type DisputesHavingMaxInput = {\n  readonly returnAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly slashAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type DisputesHavingMinInput = {\n  readonly returnAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly slashAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type DisputesHavingStddevPopulationInput = {\n  readonly returnAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly slashAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type DisputesHavingStddevSampleInput = {\n  readonly returnAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly slashAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type DisputesHavingSumInput = {\n  readonly returnAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly slashAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type DisputesHavingVariancePopulationInput = {\n  readonly returnAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly slashAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type DisputesHavingVarianceSampleInput = {\n  readonly returnAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly slashAmount: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `Dispute`. */\nexport enum DisputesOrderBy {\n  DISPUTE_TYPE_ASC = 'DISPUTE_TYPE_ASC',\n  DISPUTE_TYPE_DESC = 'DISPUTE_TYPE_DESC',\n  FISHERMAN_ASC = 'FISHERMAN_ASC',\n  FISHERMAN_DESC = 'FISHERMAN_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  IS_FINALIZED_ASC = 'IS_FINALIZED_ASC',\n  IS_FINALIZED_DESC = 'IS_FINALIZED_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  RETURN_AMOUNT_ASC = 'RETURN_AMOUNT_ASC',\n  RETURN_AMOUNT_DESC = 'RETURN_AMOUNT_DESC',\n  RUNNER_ASC = 'RUNNER_ASC',\n  RUNNER_DESC = 'RUNNER_DESC',\n  SLASH_AMOUNT_ASC = 'SLASH_AMOUNT_ASC',\n  SLASH_AMOUNT_DESC = 'SLASH_AMOUNT_DESC',\n  STATE_ASC = 'STATE_ASC',\n  STATE_DESC = 'STATE_DESC',\n}\n\nexport type Era = Node & {\n  readonly __typename: 'Era';\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Reads and enables pagination through a set of `Delegator`. */\n  readonly delegatorsByEraRewardEraIdAndDelegatorId: EraDelegatorsByEraRewardEraIdAndDelegatorIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Delegator`. */\n  readonly delegatorsByEraStakeEraIdAndDelegatorId: EraDelegatorsByEraStakeEraIdAndDelegatorIdManyToManyConnection;\n  readonly endTime: Maybe<Scalars['Datetime']['output']>;\n  readonly eraPeriod: Maybe<Scalars['String']['output']>;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: EraRewardsConnection;\n  /** Reads and enables pagination through a set of `EraStakeUpdate`. */\n  readonly eraStakeUpdatesByLastUpdateEraId: EraStakeUpdatesConnection;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: EraStakesConnection;\n  readonly forceNext: Maybe<Scalars['Boolean']['output']>;\n  readonly id: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `IndexerCommissionRate`. */\n  readonly indexerCommissionRates: IndexerCommissionRatesConnection;\n  /** Reads and enables pagination through a set of `IndexerStakeSummary`. */\n  readonly indexerStakeSummaries: IndexerStakeSummariesConnection;\n  /** Reads and enables pagination through a set of `IndexerStake`. */\n  readonly indexerStakes: IndexerStakesConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByEraRewardEraIdAndIndexerId: EraIndexersByEraRewardEraIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByEraStakeEraIdAndIndexerId: EraIndexersByEraStakeEraIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerCommissionRateEraIdAndIndexerId: EraIndexersByIndexerCommissionRateEraIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerStakeEraIdAndIndexerId: EraIndexersByIndexerStakeEraIdAndIndexerIdManyToManyConnection;\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly startTime: Scalars['Datetime']['output'];\n};\n\nexport type EraDelegatorsByEraRewardEraIdAndDelegatorIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegators_Distinct_Enum>>>;\n  filter: InputMaybe<DelegatorFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegatorsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraDelegatorsByEraStakeEraIdAndDelegatorIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegators_Distinct_Enum>>>;\n  filter: InputMaybe<DelegatorFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegatorsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraEraStakeUpdatesByLastUpdateEraIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stake_Updates_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeUpdateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakeUpdatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraIndexerCommissionRatesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Commission_Rates_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerCommissionRateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerCommissionRatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraIndexerStakeSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stake_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerStakeSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerStakeSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraIndexerStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraIndexersByEraRewardEraIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraIndexersByEraStakeEraIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraIndexersByIndexerCommissionRateEraIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraIndexersByIndexerStakeEraIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraAggregates = {\n  readonly __typename: 'EraAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraVarianceSampleAggregates>;\n};\n\nexport type EraAverageAggregates = {\n  readonly __typename: 'EraAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `EraDelegatorApy` values. */\nexport type EraDelegatorApiesConnection = {\n  readonly __typename: 'EraDelegatorApiesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraDelegatorApyAggregates>;\n  /** A list of edges which contains the `EraDelegatorApy` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraDelegatorApiesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraDelegatorApyAggregates>>;\n  /** A list of `EraDelegatorApy` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraDelegatorApy>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraDelegatorApy` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraDelegatorApy` values. */\nexport type EraDelegatorApiesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraDelegatorApiesGroupBy>;\n  having: InputMaybe<EraDelegatorApiesHavingInput>;\n};\n\n/** A `EraDelegatorApy` edge in the connection. */\nexport type EraDelegatorApiesEdge = {\n  readonly __typename: 'EraDelegatorApiesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraDelegatorApy` at the end of the edge. */\n  readonly node: Maybe<EraDelegatorApy>;\n};\n\n/** Grouping methods for `EraDelegatorApy` for usage during aggregation. */\nexport enum EraDelegatorApiesGroupBy {\n  APY = 'APY',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  REWARD = 'REWARD',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type EraDelegatorApiesHavingAverageInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorApiesHavingDistinctCountInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `EraDelegatorApy` aggregates. */\nexport type EraDelegatorApiesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraDelegatorApiesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraDelegatorApiesHavingInput>>;\n  readonly average: InputMaybe<EraDelegatorApiesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraDelegatorApiesHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraDelegatorApiesHavingMaxInput>;\n  readonly min: InputMaybe<EraDelegatorApiesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraDelegatorApiesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraDelegatorApiesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraDelegatorApiesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraDelegatorApiesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraDelegatorApiesHavingVarianceSampleInput>;\n};\n\nexport type EraDelegatorApiesHavingMaxInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorApiesHavingMinInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorApiesHavingStddevPopulationInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorApiesHavingStddevSampleInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorApiesHavingSumInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorApiesHavingVariancePopulationInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorApiesHavingVarianceSampleInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `EraDelegatorApy`. */\nexport enum EraDelegatorApiesOrderBy {\n  APY_ASC = 'APY_ASC',\n  APY_DESC = 'APY_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_ASC = 'DELEGATOR_BY_DELEGATOR_ID__ID_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_DESC = 'DELEGATOR_BY_DELEGATOR_ID__ID_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC',\n  DELEGATOR_ID_ASC = 'DELEGATOR_ID_ASC',\n  DELEGATOR_ID_DESC = 'DELEGATOR_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  REWARD_ASC = 'REWARD_ASC',\n  REWARD_DESC = 'REWARD_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type EraDelegatorApy = Node & {\n  readonly __typename: 'EraDelegatorApy';\n  readonly apy: Scalars['BigFloat']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Delegator` that is related to this `EraDelegatorApy`. */\n  readonly delegator: Maybe<Delegator>;\n  readonly delegatorId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly reward: Scalars['BigFloat']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type EraDelegatorApyAggregates = {\n  readonly __typename: 'EraDelegatorApyAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraDelegatorApyAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraDelegatorApyDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraDelegatorApyMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraDelegatorApyMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraDelegatorApyStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraDelegatorApyStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraDelegatorApySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraDelegatorApyVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraDelegatorApyVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `EraDelegatorApy` object types. */\nexport type EraDelegatorApyAggregatesFilter = {\n  /** Mean average aggregate over matching `EraDelegatorApy` objects. */\n  readonly average: InputMaybe<EraDelegatorApyAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `EraDelegatorApy` objects. */\n  readonly distinctCount: InputMaybe<EraDelegatorApyDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `EraDelegatorApy` object to be included within the aggregate. */\n  readonly filter: InputMaybe<EraDelegatorApyFilter>;\n  /** Maximum aggregate over matching `EraDelegatorApy` objects. */\n  readonly max: InputMaybe<EraDelegatorApyMaxAggregateFilter>;\n  /** Minimum aggregate over matching `EraDelegatorApy` objects. */\n  readonly min: InputMaybe<EraDelegatorApyMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `EraDelegatorApy` objects. */\n  readonly stddevPopulation: InputMaybe<EraDelegatorApyStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `EraDelegatorApy` objects. */\n  readonly stddevSample: InputMaybe<EraDelegatorApyStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `EraDelegatorApy` objects. */\n  readonly sum: InputMaybe<EraDelegatorApySumAggregateFilter>;\n  /** Population variance aggregate over matching `EraDelegatorApy` objects. */\n  readonly variancePopulation: InputMaybe<EraDelegatorApyVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `EraDelegatorApy` objects. */\n  readonly varianceSample: InputMaybe<EraDelegatorApyVarianceSampleAggregateFilter>;\n};\n\nexport type EraDelegatorApyAverageAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorApyAverageAggregates = {\n  readonly __typename: 'EraDelegatorApyAverageAggregates';\n  /** Mean average of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorApyDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly apy: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly delegatorId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly reward: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type EraDelegatorApyDistinctCountAggregates = {\n  readonly __typename: 'EraDelegatorApyDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorId across the matching connection */\n  readonly delegatorId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraDelegatorApy` object types. All fields are combined with a logical ‘and.’ */\nexport type EraDelegatorApyFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraDelegatorApyFilter>>;\n  /** Filter by the object’s `apy` field. */\n  readonly apy: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `delegator` relation. */\n  readonly delegator: InputMaybe<DelegatorFilter>;\n  /** Filter by the object’s `delegatorId` field. */\n  readonly delegatorId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraDelegatorApyFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraDelegatorApyFilter>>;\n  /** Filter by the object’s `reward` field. */\n  readonly reward: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type EraDelegatorApyMaxAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorApyMaxAggregates = {\n  readonly __typename: 'EraDelegatorApyMaxAggregates';\n  /** Maximum of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorApyMinAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorApyMinAggregates = {\n  readonly __typename: 'EraDelegatorApyMinAggregates';\n  /** Minimum of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorApyStddevPopulationAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorApyStddevPopulationAggregates = {\n  readonly __typename: 'EraDelegatorApyStddevPopulationAggregates';\n  /** Population standard deviation of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorApyStddevSampleAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorApyStddevSampleAggregates = {\n  readonly __typename: 'EraDelegatorApyStddevSampleAggregates';\n  /** Sample standard deviation of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorApySumAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorApySumAggregates = {\n  readonly __typename: 'EraDelegatorApySumAggregates';\n  /** Sum of apy across the matching connection */\n  readonly apy: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of reward across the matching connection */\n  readonly reward: Scalars['BigFloat']['output'];\n};\n\nexport type EraDelegatorApyVariancePopulationAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorApyVariancePopulationAggregates = {\n  readonly __typename: 'EraDelegatorApyVariancePopulationAggregates';\n  /** Population variance of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorApyVarianceSampleAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorApyVarianceSampleAggregates = {\n  readonly __typename: 'EraDelegatorApyVarianceSampleAggregates';\n  /** Sample variance of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexer = Node & {\n  readonly __typename: 'EraDelegatorIndexer';\n  readonly delegator: Scalars['String']['output'];\n  readonly era: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  readonly indexers: Scalars['JSON']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly selfStake: Scalars['BigFloat']['output'];\n  readonly totalStake: Scalars['BigFloat']['output'];\n};\n\nexport type EraDelegatorIndexerIndexersArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n};\n\nexport type EraDelegatorIndexerAggregates = {\n  readonly __typename: 'EraDelegatorIndexerAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraDelegatorIndexerAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraDelegatorIndexerDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraDelegatorIndexerMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraDelegatorIndexerMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraDelegatorIndexerStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraDelegatorIndexerStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraDelegatorIndexerSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraDelegatorIndexerVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraDelegatorIndexerVarianceSampleAggregates>;\n};\n\n/** A connection to a list of `EraDelegatorIndexerApy` values. */\nexport type EraDelegatorIndexerApiesConnection = {\n  readonly __typename: 'EraDelegatorIndexerApiesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraDelegatorIndexerApyAggregates>;\n  /** A list of edges which contains the `EraDelegatorIndexerApy` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraDelegatorIndexerApiesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraDelegatorIndexerApyAggregates>>;\n  /** A list of `EraDelegatorIndexerApy` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraDelegatorIndexerApy>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraDelegatorIndexerApy` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraDelegatorIndexerApy` values. */\nexport type EraDelegatorIndexerApiesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraDelegatorIndexerApiesGroupBy>;\n  having: InputMaybe<EraDelegatorIndexerApiesHavingInput>;\n};\n\n/** A `EraDelegatorIndexerApy` edge in the connection. */\nexport type EraDelegatorIndexerApiesEdge = {\n  readonly __typename: 'EraDelegatorIndexerApiesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraDelegatorIndexerApy` at the end of the edge. */\n  readonly node: Maybe<EraDelegatorIndexerApy>;\n};\n\n/** Grouping methods for `EraDelegatorIndexerApy` for usage during aggregation. */\nexport enum EraDelegatorIndexerApiesGroupBy {\n  APY = 'APY',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  REWARD = 'REWARD',\n  STAKE = 'STAKE',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type EraDelegatorIndexerApiesHavingAverageInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorIndexerApiesHavingDistinctCountInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `EraDelegatorIndexerApy` aggregates. */\nexport type EraDelegatorIndexerApiesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraDelegatorIndexerApiesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraDelegatorIndexerApiesHavingInput>>;\n  readonly average: InputMaybe<EraDelegatorIndexerApiesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraDelegatorIndexerApiesHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraDelegatorIndexerApiesHavingMaxInput>;\n  readonly min: InputMaybe<EraDelegatorIndexerApiesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraDelegatorIndexerApiesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraDelegatorIndexerApiesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraDelegatorIndexerApiesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraDelegatorIndexerApiesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraDelegatorIndexerApiesHavingVarianceSampleInput>;\n};\n\nexport type EraDelegatorIndexerApiesHavingMaxInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorIndexerApiesHavingMinInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorIndexerApiesHavingStddevPopulationInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorIndexerApiesHavingStddevSampleInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorIndexerApiesHavingSumInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorIndexerApiesHavingVariancePopulationInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraDelegatorIndexerApiesHavingVarianceSampleInput = {\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `EraDelegatorIndexerApy`. */\nexport enum EraDelegatorIndexerApiesOrderBy {\n  APY_ASC = 'APY_ASC',\n  APY_DESC = 'APY_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_ASC = 'DELEGATOR_BY_DELEGATOR_ID__ID_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_DESC = 'DELEGATOR_BY_DELEGATOR_ID__ID_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC',\n  DELEGATOR_ID_ASC = 'DELEGATOR_ID_ASC',\n  DELEGATOR_ID_DESC = 'DELEGATOR_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  REWARD_ASC = 'REWARD_ASC',\n  REWARD_DESC = 'REWARD_DESC',\n  STAKE_ASC = 'STAKE_ASC',\n  STAKE_DESC = 'STAKE_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type EraDelegatorIndexerApy = Node & {\n  readonly __typename: 'EraDelegatorIndexerApy';\n  readonly apy: Scalars['BigFloat']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Delegator` that is related to this `EraDelegatorIndexerApy`. */\n  readonly delegator: Maybe<Delegator>;\n  readonly delegatorId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `EraDelegatorIndexerApy`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly reward: Scalars['BigFloat']['output'];\n  readonly stake: Scalars['BigFloat']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type EraDelegatorIndexerApyAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApyAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraDelegatorIndexerApyAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraDelegatorIndexerApyDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraDelegatorIndexerApyMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraDelegatorIndexerApyMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraDelegatorIndexerApyStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraDelegatorIndexerApyStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraDelegatorIndexerApySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraDelegatorIndexerApyVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraDelegatorIndexerApyVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `EraDelegatorIndexerApy` object types. */\nexport type EraDelegatorIndexerApyAggregatesFilter = {\n  /** Mean average aggregate over matching `EraDelegatorIndexerApy` objects. */\n  readonly average: InputMaybe<EraDelegatorIndexerApyAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `EraDelegatorIndexerApy` objects. */\n  readonly distinctCount: InputMaybe<EraDelegatorIndexerApyDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `EraDelegatorIndexerApy` object to be included within the aggregate. */\n  readonly filter: InputMaybe<EraDelegatorIndexerApyFilter>;\n  /** Maximum aggregate over matching `EraDelegatorIndexerApy` objects. */\n  readonly max: InputMaybe<EraDelegatorIndexerApyMaxAggregateFilter>;\n  /** Minimum aggregate over matching `EraDelegatorIndexerApy` objects. */\n  readonly min: InputMaybe<EraDelegatorIndexerApyMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `EraDelegatorIndexerApy` objects. */\n  readonly stddevPopulation: InputMaybe<EraDelegatorIndexerApyStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `EraDelegatorIndexerApy` objects. */\n  readonly stddevSample: InputMaybe<EraDelegatorIndexerApyStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `EraDelegatorIndexerApy` objects. */\n  readonly sum: InputMaybe<EraDelegatorIndexerApySumAggregateFilter>;\n  /** Population variance aggregate over matching `EraDelegatorIndexerApy` objects. */\n  readonly variancePopulation: InputMaybe<EraDelegatorIndexerApyVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `EraDelegatorIndexerApy` objects. */\n  readonly varianceSample: InputMaybe<EraDelegatorIndexerApyVarianceSampleAggregateFilter>;\n};\n\nexport type EraDelegatorIndexerApyAverageAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorIndexerApyAverageAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApyAverageAggregates';\n  /** Mean average of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerApyDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly apy: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly delegatorId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly reward: InputMaybe<BigIntFilter>;\n  readonly stake: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type EraDelegatorIndexerApyDistinctCountAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApyDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorId across the matching connection */\n  readonly delegatorId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraDelegatorIndexerApy` object types. All fields are combined with a logical ‘and.’ */\nexport type EraDelegatorIndexerApyFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraDelegatorIndexerApyFilter>>;\n  /** Filter by the object’s `apy` field. */\n  readonly apy: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `delegator` relation. */\n  readonly delegator: InputMaybe<DelegatorFilter>;\n  /** Filter by the object’s `delegatorId` field. */\n  readonly delegatorId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraDelegatorIndexerApyFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraDelegatorIndexerApyFilter>>;\n  /** Filter by the object’s `reward` field. */\n  readonly reward: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `stake` field. */\n  readonly stake: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type EraDelegatorIndexerApyMaxAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorIndexerApyMaxAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApyMaxAggregates';\n  /** Maximum of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerApyMinAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorIndexerApyMinAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApyMinAggregates';\n  /** Minimum of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerApyStddevPopulationAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorIndexerApyStddevPopulationAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApyStddevPopulationAggregates';\n  /** Population standard deviation of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerApyStddevSampleAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorIndexerApyStddevSampleAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApyStddevSampleAggregates';\n  /** Sample standard deviation of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerApySumAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorIndexerApySumAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApySumAggregates';\n  /** Sum of apy across the matching connection */\n  readonly apy: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of reward across the matching connection */\n  readonly reward: Scalars['BigFloat']['output'];\n  /** Sum of stake across the matching connection */\n  readonly stake: Scalars['BigFloat']['output'];\n};\n\nexport type EraDelegatorIndexerApyVariancePopulationAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorIndexerApyVariancePopulationAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApyVariancePopulationAggregates';\n  /** Population variance of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerApyVarianceSampleAggregateFilter = {\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorIndexerApyVarianceSampleAggregates = {\n  readonly __typename: 'EraDelegatorIndexerApyVarianceSampleAggregates';\n  /** Sample variance of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerAverageAggregates = {\n  readonly __typename: 'EraDelegatorIndexerAverageAggregates';\n  /** Mean average of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerDistinctCountAggregates = {\n  readonly __typename: 'EraDelegatorIndexerDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegator across the matching connection */\n  readonly delegator: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of era across the matching connection */\n  readonly era: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexers across the matching connection */\n  readonly indexers: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraDelegatorIndexer` object types. All fields are combined with a logical ‘and.’ */\nexport type EraDelegatorIndexerFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraDelegatorIndexerFilter>>;\n  /** Filter by the object’s `delegator` field. */\n  readonly delegator: InputMaybe<StringFilter>;\n  /** Filter by the object’s `era` field. */\n  readonly era: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexers` field. */\n  readonly indexers: InputMaybe<JsonFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraDelegatorIndexerFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraDelegatorIndexerFilter>>;\n  /** Filter by the object’s `selfStake` field. */\n  readonly selfStake: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalStake` field. */\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDelegatorIndexerMaxAggregates = {\n  readonly __typename: 'EraDelegatorIndexerMaxAggregates';\n  /** Maximum of era across the matching connection */\n  readonly era: Maybe<Scalars['Int']['output']>;\n  /** Maximum of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerMinAggregates = {\n  readonly __typename: 'EraDelegatorIndexerMinAggregates';\n  /** Minimum of era across the matching connection */\n  readonly era: Maybe<Scalars['Int']['output']>;\n  /** Minimum of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerStddevPopulationAggregates = {\n  readonly __typename: 'EraDelegatorIndexerStddevPopulationAggregates';\n  /** Population standard deviation of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerStddevSampleAggregates = {\n  readonly __typename: 'EraDelegatorIndexerStddevSampleAggregates';\n  /** Sample standard deviation of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerSumAggregates = {\n  readonly __typename: 'EraDelegatorIndexerSumAggregates';\n  /** Sum of era across the matching connection */\n  readonly era: Scalars['BigInt']['output'];\n  /** Sum of selfStake across the matching connection */\n  readonly selfStake: Scalars['BigFloat']['output'];\n  /** Sum of totalStake across the matching connection */\n  readonly totalStake: Scalars['BigFloat']['output'];\n};\n\nexport type EraDelegatorIndexerVariancePopulationAggregates = {\n  readonly __typename: 'EraDelegatorIndexerVariancePopulationAggregates';\n  /** Population variance of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDelegatorIndexerVarianceSampleAggregates = {\n  readonly __typename: 'EraDelegatorIndexerVarianceSampleAggregates';\n  /** Sample variance of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `EraDelegatorIndexer` values. */\nexport type EraDelegatorIndexersConnection = {\n  readonly __typename: 'EraDelegatorIndexersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraDelegatorIndexerAggregates>;\n  /** A list of edges which contains the `EraDelegatorIndexer` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraDelegatorIndexersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraDelegatorIndexerAggregates>>;\n  /** A list of `EraDelegatorIndexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraDelegatorIndexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraDelegatorIndexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraDelegatorIndexer` values. */\nexport type EraDelegatorIndexersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraDelegatorIndexersGroupBy>;\n  having: InputMaybe<EraDelegatorIndexersHavingInput>;\n};\n\n/** A `EraDelegatorIndexer` edge in the connection. */\nexport type EraDelegatorIndexersEdge = {\n  readonly __typename: 'EraDelegatorIndexersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraDelegatorIndexer` at the end of the edge. */\n  readonly node: Maybe<EraDelegatorIndexer>;\n};\n\n/** Grouping methods for `EraDelegatorIndexer` for usage during aggregation. */\nexport enum EraDelegatorIndexersGroupBy {\n  DELEGATOR = 'DELEGATOR',\n  ERA = 'ERA',\n  ID = 'ID',\n  INDEXERS = 'INDEXERS',\n  SELF_STAKE = 'SELF_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport type EraDelegatorIndexersHavingAverageInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDelegatorIndexersHavingDistinctCountInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `EraDelegatorIndexer` aggregates. */\nexport type EraDelegatorIndexersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraDelegatorIndexersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraDelegatorIndexersHavingInput>>;\n  readonly average: InputMaybe<EraDelegatorIndexersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraDelegatorIndexersHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraDelegatorIndexersHavingMaxInput>;\n  readonly min: InputMaybe<EraDelegatorIndexersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraDelegatorIndexersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraDelegatorIndexersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraDelegatorIndexersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraDelegatorIndexersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraDelegatorIndexersHavingVarianceSampleInput>;\n};\n\nexport type EraDelegatorIndexersHavingMaxInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDelegatorIndexersHavingMinInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDelegatorIndexersHavingStddevPopulationInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDelegatorIndexersHavingStddevSampleInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDelegatorIndexersHavingSumInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDelegatorIndexersHavingVariancePopulationInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDelegatorIndexersHavingVarianceSampleInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `EraDelegatorIndexer`. */\nexport enum EraDelegatorIndexersOrderBy {\n  DELEGATOR_ASC = 'DELEGATOR_ASC',\n  DELEGATOR_DESC = 'DELEGATOR_DESC',\n  ERA_ASC = 'ERA_ASC',\n  ERA_DESC = 'ERA_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXERS_ASC = 'INDEXERS_ASC',\n  INDEXERS_DESC = 'INDEXERS_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  SELF_STAKE_ASC = 'SELF_STAKE_ASC',\n  SELF_STAKE_DESC = 'SELF_STAKE_DESC',\n  TOTAL_STAKE_ASC = 'TOTAL_STAKE_ASC',\n  TOTAL_STAKE_DESC = 'TOTAL_STAKE_DESC',\n}\n\n/** A connection to a list of `Delegator` values, with data from `EraReward`. */\nexport type EraDelegatorsByEraRewardEraIdAndDelegatorIdManyToManyConnection = {\n  readonly __typename: 'EraDelegatorsByEraRewardEraIdAndDelegatorIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DelegatorAggregates>;\n  /** A list of edges which contains the `Delegator`, info from the `EraReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraDelegatorsByEraRewardEraIdAndDelegatorIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DelegatorAggregates>>;\n  /** A list of `Delegator` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Delegator>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Delegator` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Delegator` values, with data from `EraReward`. */\nexport type EraDelegatorsByEraRewardEraIdAndDelegatorIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DelegatorsGroupBy>;\n  having: InputMaybe<DelegatorsHavingInput>;\n};\n\n/** A `Delegator` edge in the connection, with data from `EraReward`. */\nexport type EraDelegatorsByEraRewardEraIdAndDelegatorIdManyToManyEdge = {\n  readonly __typename: 'EraDelegatorsByEraRewardEraIdAndDelegatorIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: EraRewardsConnection;\n  /** The `Delegator` at the end of the edge. */\n  readonly node: Maybe<Delegator>;\n};\n\n/** A `Delegator` edge in the connection, with data from `EraReward`. */\nexport type EraDelegatorsByEraRewardEraIdAndDelegatorIdManyToManyEdgeEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Delegator` values, with data from `EraStake`. */\nexport type EraDelegatorsByEraStakeEraIdAndDelegatorIdManyToManyConnection = {\n  readonly __typename: 'EraDelegatorsByEraStakeEraIdAndDelegatorIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DelegatorAggregates>;\n  /** A list of edges which contains the `Delegator`, info from the `EraStake`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraDelegatorsByEraStakeEraIdAndDelegatorIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DelegatorAggregates>>;\n  /** A list of `Delegator` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Delegator>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Delegator` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Delegator` values, with data from `EraStake`. */\nexport type EraDelegatorsByEraStakeEraIdAndDelegatorIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DelegatorsGroupBy>;\n  having: InputMaybe<DelegatorsHavingInput>;\n};\n\n/** A `Delegator` edge in the connection, with data from `EraStake`. */\nexport type EraDelegatorsByEraStakeEraIdAndDelegatorIdManyToManyEdge = {\n  readonly __typename: 'EraDelegatorsByEraStakeEraIdAndDelegatorIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: EraStakesConnection;\n  /** The `Delegator` at the end of the edge. */\n  readonly node: Maybe<Delegator>;\n};\n\n/** A `Delegator` edge in the connection, with data from `EraStake`. */\nexport type EraDelegatorsByEraStakeEraIdAndDelegatorIdManyToManyEdgeEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraDeploymentReward = Node & {\n  readonly __typename: 'EraDeploymentReward';\n  readonly agreementRewards: Scalars['BigFloat']['output'];\n  readonly allocationRewards: Scalars['BigFloat']['output'];\n  readonly changesHeight: Maybe<Scalars['String']['output']>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly queryRewards: Scalars['BigFloat']['output'];\n  readonly stateChannelRewards: Scalars['BigFloat']['output'];\n  readonly totalRewards: Scalars['BigFloat']['output'];\n};\n\nexport type EraDeploymentRewardAggregates = {\n  readonly __typename: 'EraDeploymentRewardAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraDeploymentRewardAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraDeploymentRewardDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraDeploymentRewardMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraDeploymentRewardMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraDeploymentRewardStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraDeploymentRewardStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraDeploymentRewardSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraDeploymentRewardVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraDeploymentRewardVarianceSampleAggregates>;\n};\n\nexport type EraDeploymentRewardAverageAggregates = {\n  readonly __typename: 'EraDeploymentRewardAverageAggregates';\n  /** Mean average of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDeploymentRewardDistinctCountAggregates = {\n  readonly __typename: 'EraDeploymentRewardDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of changesHeight across the matching connection */\n  readonly changesHeight: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraDeploymentReward` object types. All fields are combined with a logical ‘and.’ */\nexport type EraDeploymentRewardFilter = {\n  /** Filter by the object’s `agreementRewards` field. */\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `allocationRewards` field. */\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraDeploymentRewardFilter>>;\n  /** Filter by the object’s `changesHeight` field. */\n  readonly changesHeight: InputMaybe<StringFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraDeploymentRewardFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraDeploymentRewardFilter>>;\n  /** Filter by the object’s `queryRewards` field. */\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `stateChannelRewards` field. */\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalRewards` field. */\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraDeploymentRewardMaxAggregates = {\n  readonly __typename: 'EraDeploymentRewardMaxAggregates';\n  /** Maximum of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDeploymentRewardMinAggregates = {\n  readonly __typename: 'EraDeploymentRewardMinAggregates';\n  /** Minimum of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDeploymentRewardStddevPopulationAggregates = {\n  readonly __typename: 'EraDeploymentRewardStddevPopulationAggregates';\n  /** Population standard deviation of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDeploymentRewardStddevSampleAggregates = {\n  readonly __typename: 'EraDeploymentRewardStddevSampleAggregates';\n  /** Sample standard deviation of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDeploymentRewardSumAggregates = {\n  readonly __typename: 'EraDeploymentRewardSumAggregates';\n  /** Sum of agreementRewards across the matching connection */\n  readonly agreementRewards: Scalars['BigFloat']['output'];\n  /** Sum of allocationRewards across the matching connection */\n  readonly allocationRewards: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of queryRewards across the matching connection */\n  readonly queryRewards: Scalars['BigFloat']['output'];\n  /** Sum of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Scalars['BigFloat']['output'];\n  /** Sum of totalRewards across the matching connection */\n  readonly totalRewards: Scalars['BigFloat']['output'];\n};\n\nexport type EraDeploymentRewardVariancePopulationAggregates = {\n  readonly __typename: 'EraDeploymentRewardVariancePopulationAggregates';\n  /** Population variance of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraDeploymentRewardVarianceSampleAggregates = {\n  readonly __typename: 'EraDeploymentRewardVarianceSampleAggregates';\n  /** Sample variance of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `EraDeploymentReward` values. */\nexport type EraDeploymentRewardsConnection = {\n  readonly __typename: 'EraDeploymentRewardsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraDeploymentRewardAggregates>;\n  /** A list of edges which contains the `EraDeploymentReward` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraDeploymentRewardsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraDeploymentRewardAggregates>>;\n  /** A list of `EraDeploymentReward` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraDeploymentReward>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraDeploymentReward` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraDeploymentReward` values. */\nexport type EraDeploymentRewardsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraDeploymentRewardsGroupBy>;\n  having: InputMaybe<EraDeploymentRewardsHavingInput>;\n};\n\n/** A `EraDeploymentReward` edge in the connection. */\nexport type EraDeploymentRewardsEdge = {\n  readonly __typename: 'EraDeploymentRewardsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraDeploymentReward` at the end of the edge. */\n  readonly node: Maybe<EraDeploymentReward>;\n};\n\n/** Grouping methods for `EraDeploymentReward` for usage during aggregation. */\nexport enum EraDeploymentRewardsGroupBy {\n  AGREEMENT_REWARDS = 'AGREEMENT_REWARDS',\n  ALLOCATION_REWARDS = 'ALLOCATION_REWARDS',\n  CHANGES_HEIGHT = 'CHANGES_HEIGHT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  QUERY_REWARDS = 'QUERY_REWARDS',\n  STATE_CHANNEL_REWARDS = 'STATE_CHANNEL_REWARDS',\n  TOTAL_REWARDS = 'TOTAL_REWARDS',\n}\n\nexport type EraDeploymentRewardsHavingAverageInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDeploymentRewardsHavingDistinctCountInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `EraDeploymentReward` aggregates. */\nexport type EraDeploymentRewardsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraDeploymentRewardsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraDeploymentRewardsHavingInput>>;\n  readonly average: InputMaybe<EraDeploymentRewardsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraDeploymentRewardsHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraDeploymentRewardsHavingMaxInput>;\n  readonly min: InputMaybe<EraDeploymentRewardsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraDeploymentRewardsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraDeploymentRewardsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraDeploymentRewardsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraDeploymentRewardsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraDeploymentRewardsHavingVarianceSampleInput>;\n};\n\nexport type EraDeploymentRewardsHavingMaxInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDeploymentRewardsHavingMinInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDeploymentRewardsHavingStddevPopulationInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDeploymentRewardsHavingStddevSampleInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDeploymentRewardsHavingSumInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDeploymentRewardsHavingVariancePopulationInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraDeploymentRewardsHavingVarianceSampleInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `EraDeploymentReward`. */\nexport enum EraDeploymentRewardsOrderBy {\n  AGREEMENT_REWARDS_ASC = 'AGREEMENT_REWARDS_ASC',\n  AGREEMENT_REWARDS_DESC = 'AGREEMENT_REWARDS_DESC',\n  ALLOCATION_REWARDS_ASC = 'ALLOCATION_REWARDS_ASC',\n  ALLOCATION_REWARDS_DESC = 'ALLOCATION_REWARDS_DESC',\n  CHANGES_HEIGHT_ASC = 'CHANGES_HEIGHT_ASC',\n  CHANGES_HEIGHT_DESC = 'CHANGES_HEIGHT_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  QUERY_REWARDS_ASC = 'QUERY_REWARDS_ASC',\n  QUERY_REWARDS_DESC = 'QUERY_REWARDS_DESC',\n  STATE_CHANNEL_REWARDS_ASC = 'STATE_CHANNEL_REWARDS_ASC',\n  STATE_CHANNEL_REWARDS_DESC = 'STATE_CHANNEL_REWARDS_DESC',\n  TOTAL_REWARDS_ASC = 'TOTAL_REWARDS_ASC',\n  TOTAL_REWARDS_DESC = 'TOTAL_REWARDS_DESC',\n}\n\nexport type EraDistinctCountAggregates = {\n  readonly __typename: 'EraDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of endTime across the matching connection */\n  readonly endTime: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraPeriod across the matching connection */\n  readonly eraPeriod: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of forceNext across the matching connection */\n  readonly forceNext: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of startTime across the matching connection */\n  readonly startTime: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Era` object types. All fields are combined with a logical ‘and.’ */\nexport type EraFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `endTime` field. */\n  readonly endTime: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `eraPeriod` field. */\n  readonly eraPeriod: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraRewards` relation. */\n  readonly eraRewards: InputMaybe<EraToManyEraRewardFilter>;\n  /** Some related `eraRewards` exist. */\n  readonly eraRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraStakeUpdatesByLastUpdateEraId` relation. */\n  readonly eraStakeUpdatesByLastUpdateEraId: InputMaybe<EraToManyEraStakeUpdateFilter>;\n  /** Some related `eraStakeUpdatesByLastUpdateEraId` exist. */\n  readonly eraStakeUpdatesByLastUpdateEraIdExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraStakes` relation. */\n  readonly eraStakes: InputMaybe<EraToManyEraStakeFilter>;\n  /** Some related `eraStakes` exist. */\n  readonly eraStakesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `forceNext` field. */\n  readonly forceNext: InputMaybe<BooleanFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerCommissionRates` relation. */\n  readonly indexerCommissionRates: InputMaybe<EraToManyIndexerCommissionRateFilter>;\n  /** Some related `indexerCommissionRates` exist. */\n  readonly indexerCommissionRatesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerStakeSummaries` relation. */\n  readonly indexerStakeSummaries: InputMaybe<EraToManyIndexerStakeSummaryFilter>;\n  /** Some related `indexerStakeSummaries` exist. */\n  readonly indexerStakeSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerStakes` relation. */\n  readonly indexerStakes: InputMaybe<EraToManyIndexerStakeFilter>;\n  /** Some related `indexerStakes` exist. */\n  readonly indexerStakesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraFilter>>;\n  /** Filter by the object’s `startTime` field. */\n  readonly startTime: InputMaybe<DatetimeFilter>;\n};\n\n/** A connection to a list of `EraIndexerApy` values. */\nexport type EraIndexerApiesConnection = {\n  readonly __typename: 'EraIndexerApiesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraIndexerApyAggregates>;\n  /** A list of edges which contains the `EraIndexerApy` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraIndexerApiesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraIndexerApyAggregates>>;\n  /** A list of `EraIndexerApy` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraIndexerApy>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraIndexerApy` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraIndexerApy` values. */\nexport type EraIndexerApiesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraIndexerApiesGroupBy>;\n  having: InputMaybe<EraIndexerApiesHavingInput>;\n};\n\n/** A `EraIndexerApy` edge in the connection. */\nexport type EraIndexerApiesEdge = {\n  readonly __typename: 'EraIndexerApiesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraIndexerApy` at the end of the edge. */\n  readonly node: Maybe<EraIndexerApy>;\n};\n\n/** Grouping methods for `EraIndexerApy` for usage during aggregation. */\nexport enum EraIndexerApiesGroupBy {\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DELEGATOR_APY = 'DELEGATOR_APY',\n  DELEGATOR_REWARD = 'DELEGATOR_REWARD',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_APY = 'INDEXER_APY',\n  INDEXER_ID = 'INDEXER_ID',\n  INDEXER_REWARD = 'INDEXER_REWARD',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type EraIndexerApiesHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerApiesHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `EraIndexerApy` aggregates. */\nexport type EraIndexerApiesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraIndexerApiesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraIndexerApiesHavingInput>>;\n  readonly average: InputMaybe<EraIndexerApiesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraIndexerApiesHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraIndexerApiesHavingMaxInput>;\n  readonly min: InputMaybe<EraIndexerApiesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraIndexerApiesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraIndexerApiesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraIndexerApiesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraIndexerApiesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraIndexerApiesHavingVarianceSampleInput>;\n};\n\nexport type EraIndexerApiesHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerApiesHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerApiesHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerApiesHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerApiesHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerApiesHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerApiesHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `EraIndexerApy`. */\nexport enum EraIndexerApiesOrderBy {\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DELEGATOR_APY_ASC = 'DELEGATOR_APY_ASC',\n  DELEGATOR_APY_DESC = 'DELEGATOR_APY_DESC',\n  DELEGATOR_REWARD_ASC = 'DELEGATOR_REWARD_ASC',\n  DELEGATOR_REWARD_DESC = 'DELEGATOR_REWARD_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_APY_ASC = 'INDEXER_APY_ASC',\n  INDEXER_APY_DESC = 'INDEXER_APY_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  INDEXER_REWARD_ASC = 'INDEXER_REWARD_ASC',\n  INDEXER_REWARD_DESC = 'INDEXER_REWARD_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type EraIndexerApy = Node & {\n  readonly __typename: 'EraIndexerApy';\n  readonly createAt: Scalars['Datetime']['output'];\n  readonly delegatorApy: Scalars['BigFloat']['output'];\n  readonly delegatorReward: Scalars['BigFloat']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `EraIndexerApy`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerApy: Scalars['BigFloat']['output'];\n  readonly indexerId: Scalars['String']['output'];\n  readonly indexerReward: Scalars['BigFloat']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type EraIndexerApyAggregates = {\n  readonly __typename: 'EraIndexerApyAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraIndexerApyAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraIndexerApyDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraIndexerApyMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraIndexerApyMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraIndexerApyStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraIndexerApyStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraIndexerApySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraIndexerApyVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraIndexerApyVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `EraIndexerApy` object types. */\nexport type EraIndexerApyAggregatesFilter = {\n  /** Mean average aggregate over matching `EraIndexerApy` objects. */\n  readonly average: InputMaybe<EraIndexerApyAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `EraIndexerApy` objects. */\n  readonly distinctCount: InputMaybe<EraIndexerApyDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `EraIndexerApy` object to be included within the aggregate. */\n  readonly filter: InputMaybe<EraIndexerApyFilter>;\n  /** Maximum aggregate over matching `EraIndexerApy` objects. */\n  readonly max: InputMaybe<EraIndexerApyMaxAggregateFilter>;\n  /** Minimum aggregate over matching `EraIndexerApy` objects. */\n  readonly min: InputMaybe<EraIndexerApyMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `EraIndexerApy` objects. */\n  readonly stddevPopulation: InputMaybe<EraIndexerApyStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `EraIndexerApy` objects. */\n  readonly stddevSample: InputMaybe<EraIndexerApyStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `EraIndexerApy` objects. */\n  readonly sum: InputMaybe<EraIndexerApySumAggregateFilter>;\n  /** Population variance aggregate over matching `EraIndexerApy` objects. */\n  readonly variancePopulation: InputMaybe<EraIndexerApyVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `EraIndexerApy` objects. */\n  readonly varianceSample: InputMaybe<EraIndexerApyVarianceSampleAggregateFilter>;\n};\n\nexport type EraIndexerApyAverageAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerApyAverageAggregates = {\n  readonly __typename: 'EraIndexerApyAverageAggregates';\n  /** Mean average of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerApyDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly delegatorApy: InputMaybe<BigIntFilter>;\n  readonly delegatorReward: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerApy: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly indexerReward: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type EraIndexerApyDistinctCountAggregates = {\n  readonly __typename: 'EraIndexerApyDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraIndexerApy` object types. All fields are combined with a logical ‘and.’ */\nexport type EraIndexerApyFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraIndexerApyFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `delegatorApy` field. */\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `delegatorReward` field. */\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerApy` field. */\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerReward` field. */\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraIndexerApyFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraIndexerApyFilter>>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type EraIndexerApyMaxAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerApyMaxAggregates = {\n  readonly __typename: 'EraIndexerApyMaxAggregates';\n  /** Maximum of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerApyMinAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerApyMinAggregates = {\n  readonly __typename: 'EraIndexerApyMinAggregates';\n  /** Minimum of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerApyStddevPopulationAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerApyStddevPopulationAggregates = {\n  readonly __typename: 'EraIndexerApyStddevPopulationAggregates';\n  /** Population standard deviation of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerApyStddevSampleAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerApyStddevSampleAggregates = {\n  readonly __typename: 'EraIndexerApyStddevSampleAggregates';\n  /** Sample standard deviation of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerApySumAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerApySumAggregates = {\n  readonly __typename: 'EraIndexerApySumAggregates';\n  /** Sum of delegatorApy across the matching connection */\n  readonly delegatorApy: Scalars['BigFloat']['output'];\n  /** Sum of delegatorReward across the matching connection */\n  readonly delegatorReward: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of indexerApy across the matching connection */\n  readonly indexerApy: Scalars['BigFloat']['output'];\n  /** Sum of indexerReward across the matching connection */\n  readonly indexerReward: Scalars['BigFloat']['output'];\n};\n\nexport type EraIndexerApyVariancePopulationAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerApyVariancePopulationAggregates = {\n  readonly __typename: 'EraIndexerApyVariancePopulationAggregates';\n  /** Population variance of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerApyVarianceSampleAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerApyVarianceSampleAggregates = {\n  readonly __typename: 'EraIndexerApyVarianceSampleAggregates';\n  /** Sample variance of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDelegator = Node & {\n  readonly __typename: 'EraIndexerDelegator';\n  readonly delegators: Scalars['JSON']['output'];\n  readonly era: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  readonly indexer: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly selfStake: Scalars['BigFloat']['output'];\n  readonly totalStake: Scalars['BigFloat']['output'];\n};\n\nexport type EraIndexerDelegatorDelegatorsArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegators_Distinct_Enum>>>;\n};\n\nexport type EraIndexerDelegatorAggregates = {\n  readonly __typename: 'EraIndexerDelegatorAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraIndexerDelegatorAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraIndexerDelegatorDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraIndexerDelegatorMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraIndexerDelegatorMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraIndexerDelegatorStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraIndexerDelegatorStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraIndexerDelegatorSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraIndexerDelegatorVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraIndexerDelegatorVarianceSampleAggregates>;\n};\n\nexport type EraIndexerDelegatorAverageAggregates = {\n  readonly __typename: 'EraIndexerDelegatorAverageAggregates';\n  /** Mean average of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDelegatorDistinctCountAggregates = {\n  readonly __typename: 'EraIndexerDelegatorDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegators across the matching connection */\n  readonly delegators: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of era across the matching connection */\n  readonly era: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexer across the matching connection */\n  readonly indexer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraIndexerDelegator` object types. All fields are combined with a logical ‘and.’ */\nexport type EraIndexerDelegatorFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraIndexerDelegatorFilter>>;\n  /** Filter by the object’s `delegators` field. */\n  readonly delegators: InputMaybe<JsonFilter>;\n  /** Filter by the object’s `era` field. */\n  readonly era: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` field. */\n  readonly indexer: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraIndexerDelegatorFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraIndexerDelegatorFilter>>;\n  /** Filter by the object’s `selfStake` field. */\n  readonly selfStake: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalStake` field. */\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerDelegatorMaxAggregates = {\n  readonly __typename: 'EraIndexerDelegatorMaxAggregates';\n  /** Maximum of era across the matching connection */\n  readonly era: Maybe<Scalars['Int']['output']>;\n  /** Maximum of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDelegatorMinAggregates = {\n  readonly __typename: 'EraIndexerDelegatorMinAggregates';\n  /** Minimum of era across the matching connection */\n  readonly era: Maybe<Scalars['Int']['output']>;\n  /** Minimum of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDelegatorStddevPopulationAggregates = {\n  readonly __typename: 'EraIndexerDelegatorStddevPopulationAggregates';\n  /** Population standard deviation of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDelegatorStddevSampleAggregates = {\n  readonly __typename: 'EraIndexerDelegatorStddevSampleAggregates';\n  /** Sample standard deviation of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDelegatorSumAggregates = {\n  readonly __typename: 'EraIndexerDelegatorSumAggregates';\n  /** Sum of era across the matching connection */\n  readonly era: Scalars['BigInt']['output'];\n  /** Sum of selfStake across the matching connection */\n  readonly selfStake: Scalars['BigFloat']['output'];\n  /** Sum of totalStake across the matching connection */\n  readonly totalStake: Scalars['BigFloat']['output'];\n};\n\nexport type EraIndexerDelegatorVariancePopulationAggregates = {\n  readonly __typename: 'EraIndexerDelegatorVariancePopulationAggregates';\n  /** Population variance of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDelegatorVarianceSampleAggregates = {\n  readonly __typename: 'EraIndexerDelegatorVarianceSampleAggregates';\n  /** Sample variance of era across the matching connection */\n  readonly era: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `EraIndexerDelegator` values. */\nexport type EraIndexerDelegatorsConnection = {\n  readonly __typename: 'EraIndexerDelegatorsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraIndexerDelegatorAggregates>;\n  /** A list of edges which contains the `EraIndexerDelegator` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraIndexerDelegatorsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraIndexerDelegatorAggregates>>;\n  /** A list of `EraIndexerDelegator` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraIndexerDelegator>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraIndexerDelegator` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraIndexerDelegator` values. */\nexport type EraIndexerDelegatorsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraIndexerDelegatorsGroupBy>;\n  having: InputMaybe<EraIndexerDelegatorsHavingInput>;\n};\n\n/** A `EraIndexerDelegator` edge in the connection. */\nexport type EraIndexerDelegatorsEdge = {\n  readonly __typename: 'EraIndexerDelegatorsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraIndexerDelegator` at the end of the edge. */\n  readonly node: Maybe<EraIndexerDelegator>;\n};\n\n/** Grouping methods for `EraIndexerDelegator` for usage during aggregation. */\nexport enum EraIndexerDelegatorsGroupBy {\n  DELEGATORS = 'DELEGATORS',\n  ERA = 'ERA',\n  ID = 'ID',\n  INDEXER = 'INDEXER',\n  SELF_STAKE = 'SELF_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport type EraIndexerDelegatorsHavingAverageInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraIndexerDelegatorsHavingDistinctCountInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `EraIndexerDelegator` aggregates. */\nexport type EraIndexerDelegatorsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraIndexerDelegatorsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraIndexerDelegatorsHavingInput>>;\n  readonly average: InputMaybe<EraIndexerDelegatorsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraIndexerDelegatorsHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraIndexerDelegatorsHavingMaxInput>;\n  readonly min: InputMaybe<EraIndexerDelegatorsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraIndexerDelegatorsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraIndexerDelegatorsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraIndexerDelegatorsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraIndexerDelegatorsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraIndexerDelegatorsHavingVarianceSampleInput>;\n};\n\nexport type EraIndexerDelegatorsHavingMaxInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraIndexerDelegatorsHavingMinInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraIndexerDelegatorsHavingStddevPopulationInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraIndexerDelegatorsHavingStddevSampleInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraIndexerDelegatorsHavingSumInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraIndexerDelegatorsHavingVariancePopulationInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraIndexerDelegatorsHavingVarianceSampleInput = {\n  readonly era: InputMaybe<HavingIntFilter>;\n  readonly selfStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `EraIndexerDelegator`. */\nexport enum EraIndexerDelegatorsOrderBy {\n  DELEGATORS_ASC = 'DELEGATORS_ASC',\n  DELEGATORS_DESC = 'DELEGATORS_DESC',\n  ERA_ASC = 'ERA_ASC',\n  ERA_DESC = 'ERA_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_ASC = 'INDEXER_ASC',\n  INDEXER_DESC = 'INDEXER_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  SELF_STAKE_ASC = 'SELF_STAKE_ASC',\n  SELF_STAKE_DESC = 'SELF_STAKE_DESC',\n  TOTAL_STAKE_ASC = 'TOTAL_STAKE_ASC',\n  TOTAL_STAKE_DESC = 'TOTAL_STAKE_DESC',\n}\n\n/** A connection to a list of `EraIndexerDeploymentApy` values. */\nexport type EraIndexerDeploymentApiesConnection = {\n  readonly __typename: 'EraIndexerDeploymentApiesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraIndexerDeploymentApyAggregates>;\n  /** A list of edges which contains the `EraIndexerDeploymentApy` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraIndexerDeploymentApiesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraIndexerDeploymentApyAggregates>>;\n  /** A list of `EraIndexerDeploymentApy` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraIndexerDeploymentApy>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraIndexerDeploymentApy` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraIndexerDeploymentApy` values. */\nexport type EraIndexerDeploymentApiesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraIndexerDeploymentApiesGroupBy>;\n  having: InputMaybe<EraIndexerDeploymentApiesHavingInput>;\n};\n\n/** A `EraIndexerDeploymentApy` edge in the connection. */\nexport type EraIndexerDeploymentApiesEdge = {\n  readonly __typename: 'EraIndexerDeploymentApiesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraIndexerDeploymentApy` at the end of the edge. */\n  readonly node: Maybe<EraIndexerDeploymentApy>;\n};\n\n/** Grouping methods for `EraIndexerDeploymentApy` for usage during aggregation. */\nexport enum EraIndexerDeploymentApiesGroupBy {\n  AGREEMENT_REWARD = 'AGREEMENT_REWARD',\n  ALLOCATION_REWARD = 'ALLOCATION_REWARD',\n  APY = 'APY',\n  APY_CALC_ADDED = 'APY_CALC_ADDED',\n  APY_CALC_ALLOCATION = 'APY_CALC_ALLOCATION',\n  APY_CALC_ALLOCATION_RECORD_AT = 'APY_CALC_ALLOCATION_RECORD_AT',\n  APY_CALC_ALLOCATION_RECORD_AT_TRUNCATED_TO_DAY = 'APY_CALC_ALLOCATION_RECORD_AT_TRUNCATED_TO_DAY',\n  APY_CALC_ALLOCATION_RECORD_AT_TRUNCATED_TO_HOUR = 'APY_CALC_ALLOCATION_RECORD_AT_TRUNCATED_TO_HOUR',\n  APY_CALC_HISTORY = 'APY_CALC_HISTORY',\n  APY_CALC_REMOVAL = 'APY_CALC_REMOVAL',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  FLEX_PLAN_REWARD = 'FLEX_PLAN_REWARD',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type EraIndexerDeploymentApiesHavingAverageInput = {\n  readonly agreementReward: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationReward: InputMaybe<HavingBigfloatFilter>;\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<HavingDatetimeFilter>;\n  readonly apyCalcRemoval: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly flexPlanReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerDeploymentApiesHavingDistinctCountInput = {\n  readonly agreementReward: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationReward: InputMaybe<HavingBigfloatFilter>;\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<HavingDatetimeFilter>;\n  readonly apyCalcRemoval: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly flexPlanReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `EraIndexerDeploymentApy` aggregates. */\nexport type EraIndexerDeploymentApiesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraIndexerDeploymentApiesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraIndexerDeploymentApiesHavingInput>>;\n  readonly average: InputMaybe<EraIndexerDeploymentApiesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraIndexerDeploymentApiesHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraIndexerDeploymentApiesHavingMaxInput>;\n  readonly min: InputMaybe<EraIndexerDeploymentApiesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraIndexerDeploymentApiesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraIndexerDeploymentApiesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraIndexerDeploymentApiesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraIndexerDeploymentApiesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraIndexerDeploymentApiesHavingVarianceSampleInput>;\n};\n\nexport type EraIndexerDeploymentApiesHavingMaxInput = {\n  readonly agreementReward: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationReward: InputMaybe<HavingBigfloatFilter>;\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<HavingDatetimeFilter>;\n  readonly apyCalcRemoval: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly flexPlanReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerDeploymentApiesHavingMinInput = {\n  readonly agreementReward: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationReward: InputMaybe<HavingBigfloatFilter>;\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<HavingDatetimeFilter>;\n  readonly apyCalcRemoval: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly flexPlanReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerDeploymentApiesHavingStddevPopulationInput = {\n  readonly agreementReward: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationReward: InputMaybe<HavingBigfloatFilter>;\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<HavingDatetimeFilter>;\n  readonly apyCalcRemoval: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly flexPlanReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerDeploymentApiesHavingStddevSampleInput = {\n  readonly agreementReward: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationReward: InputMaybe<HavingBigfloatFilter>;\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<HavingDatetimeFilter>;\n  readonly apyCalcRemoval: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly flexPlanReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerDeploymentApiesHavingSumInput = {\n  readonly agreementReward: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationReward: InputMaybe<HavingBigfloatFilter>;\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<HavingDatetimeFilter>;\n  readonly apyCalcRemoval: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly flexPlanReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerDeploymentApiesHavingVariancePopulationInput = {\n  readonly agreementReward: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationReward: InputMaybe<HavingBigfloatFilter>;\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<HavingDatetimeFilter>;\n  readonly apyCalcRemoval: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly flexPlanReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type EraIndexerDeploymentApiesHavingVarianceSampleInput = {\n  readonly agreementReward: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationReward: InputMaybe<HavingBigfloatFilter>;\n  readonly apy: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<HavingDatetimeFilter>;\n  readonly apyCalcRemoval: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly flexPlanReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `EraIndexerDeploymentApy`. */\nexport enum EraIndexerDeploymentApiesOrderBy {\n  AGREEMENT_REWARD_ASC = 'AGREEMENT_REWARD_ASC',\n  AGREEMENT_REWARD_DESC = 'AGREEMENT_REWARD_DESC',\n  ALLOCATION_REWARD_ASC = 'ALLOCATION_REWARD_ASC',\n  ALLOCATION_REWARD_DESC = 'ALLOCATION_REWARD_DESC',\n  APY_ASC = 'APY_ASC',\n  APY_CALC_ADDED_ASC = 'APY_CALC_ADDED_ASC',\n  APY_CALC_ADDED_DESC = 'APY_CALC_ADDED_DESC',\n  APY_CALC_ALLOCATION_ASC = 'APY_CALC_ALLOCATION_ASC',\n  APY_CALC_ALLOCATION_DESC = 'APY_CALC_ALLOCATION_DESC',\n  APY_CALC_ALLOCATION_RECORD_AT_ASC = 'APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  APY_CALC_ALLOCATION_RECORD_AT_DESC = 'APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  APY_CALC_HISTORY_ASC = 'APY_CALC_HISTORY_ASC',\n  APY_CALC_HISTORY_DESC = 'APY_CALC_HISTORY_DESC',\n  APY_CALC_REMOVAL_ASC = 'APY_CALC_REMOVAL_ASC',\n  APY_CALC_REMOVAL_DESC = 'APY_CALC_REMOVAL_DESC',\n  APY_DESC = 'APY_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  FLEX_PLAN_REWARD_ASC = 'FLEX_PLAN_REWARD_ASC',\n  FLEX_PLAN_REWARD_DESC = 'FLEX_PLAN_REWARD_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type EraIndexerDeploymentApy = Node & {\n  readonly __typename: 'EraIndexerDeploymentApy';\n  readonly agreementReward: Scalars['BigFloat']['output'];\n  readonly allocationReward: Scalars['BigFloat']['output'];\n  readonly apy: Scalars['BigFloat']['output'];\n  readonly apyCalcAdded: Scalars['BigFloat']['output'];\n  readonly apyCalcAllocation: Scalars['BigFloat']['output'];\n  readonly apyCalcAllocationRecordAt: Scalars['Datetime']['output'];\n  readonly apyCalcHistory: Scalars['String']['output'];\n  readonly apyCalcRemoval: Scalars['BigFloat']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `EraIndexerDeploymentApy`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly flexPlanReward: Scalars['BigFloat']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `EraIndexerDeploymentApy`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type EraIndexerDeploymentApyAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApyAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraIndexerDeploymentApyAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraIndexerDeploymentApyDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraIndexerDeploymentApyMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraIndexerDeploymentApyMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraIndexerDeploymentApyStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraIndexerDeploymentApyStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraIndexerDeploymentApySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraIndexerDeploymentApyVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraIndexerDeploymentApyVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `EraIndexerDeploymentApy` object types. */\nexport type EraIndexerDeploymentApyAggregatesFilter = {\n  /** Mean average aggregate over matching `EraIndexerDeploymentApy` objects. */\n  readonly average: InputMaybe<EraIndexerDeploymentApyAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `EraIndexerDeploymentApy` objects. */\n  readonly distinctCount: InputMaybe<EraIndexerDeploymentApyDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `EraIndexerDeploymentApy` object to be included within the aggregate. */\n  readonly filter: InputMaybe<EraIndexerDeploymentApyFilter>;\n  /** Maximum aggregate over matching `EraIndexerDeploymentApy` objects. */\n  readonly max: InputMaybe<EraIndexerDeploymentApyMaxAggregateFilter>;\n  /** Minimum aggregate over matching `EraIndexerDeploymentApy` objects. */\n  readonly min: InputMaybe<EraIndexerDeploymentApyMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `EraIndexerDeploymentApy` objects. */\n  readonly stddevPopulation: InputMaybe<EraIndexerDeploymentApyStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `EraIndexerDeploymentApy` objects. */\n  readonly stddevSample: InputMaybe<EraIndexerDeploymentApyStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `EraIndexerDeploymentApy` objects. */\n  readonly sum: InputMaybe<EraIndexerDeploymentApySumAggregateFilter>;\n  /** Population variance aggregate over matching `EraIndexerDeploymentApy` objects. */\n  readonly variancePopulation: InputMaybe<EraIndexerDeploymentApyVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `EraIndexerDeploymentApy` objects. */\n  readonly varianceSample: InputMaybe<EraIndexerDeploymentApyVarianceSampleAggregateFilter>;\n};\n\nexport type EraIndexerDeploymentApyAverageAggregateFilter = {\n  readonly agreementReward: InputMaybe<BigFloatFilter>;\n  readonly allocationReward: InputMaybe<BigFloatFilter>;\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAdded: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<BigFloatFilter>;\n  readonly apyCalcRemoval: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly flexPlanReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerDeploymentApyAverageAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApyAverageAggregates';\n  /** Mean average of agreementReward across the matching connection */\n  readonly agreementReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of allocationReward across the matching connection */\n  readonly allocationReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of apyCalcAdded across the matching connection */\n  readonly apyCalcAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of apyCalcAllocation across the matching connection */\n  readonly apyCalcAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of apyCalcRemoval across the matching connection */\n  readonly apyCalcRemoval: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of flexPlanReward across the matching connection */\n  readonly flexPlanReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDeploymentApyDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly agreementReward: InputMaybe<BigIntFilter>;\n  readonly allocationReward: InputMaybe<BigIntFilter>;\n  readonly apy: InputMaybe<BigIntFilter>;\n  readonly apyCalcAdded: InputMaybe<BigIntFilter>;\n  readonly apyCalcAllocation: InputMaybe<BigIntFilter>;\n  readonly apyCalcAllocationRecordAt: InputMaybe<BigIntFilter>;\n  readonly apyCalcHistory: InputMaybe<BigIntFilter>;\n  readonly apyCalcRemoval: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly flexPlanReward: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type EraIndexerDeploymentApyDistinctCountAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApyDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of agreementReward across the matching connection */\n  readonly agreementReward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of allocationReward across the matching connection */\n  readonly allocationReward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of apyCalcAdded across the matching connection */\n  readonly apyCalcAdded: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of apyCalcAllocation across the matching connection */\n  readonly apyCalcAllocation: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of apyCalcAllocationRecordAt across the matching connection */\n  readonly apyCalcAllocationRecordAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of apyCalcHistory across the matching connection */\n  readonly apyCalcHistory: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of apyCalcRemoval across the matching connection */\n  readonly apyCalcRemoval: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of flexPlanReward across the matching connection */\n  readonly flexPlanReward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraIndexerDeploymentApy` object types. All fields are combined with a logical ‘and.’ */\nexport type EraIndexerDeploymentApyFilter = {\n  /** Filter by the object’s `agreementReward` field. */\n  readonly agreementReward: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `allocationReward` field. */\n  readonly allocationReward: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraIndexerDeploymentApyFilter>>;\n  /** Filter by the object’s `apy` field. */\n  readonly apy: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `apyCalcAdded` field. */\n  readonly apyCalcAdded: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `apyCalcAllocation` field. */\n  readonly apyCalcAllocation: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `apyCalcAllocationRecordAt` field. */\n  readonly apyCalcAllocationRecordAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `apyCalcHistory` field. */\n  readonly apyCalcHistory: InputMaybe<StringFilter>;\n  /** Filter by the object’s `apyCalcRemoval` field. */\n  readonly apyCalcRemoval: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `flexPlanReward` field. */\n  readonly flexPlanReward: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraIndexerDeploymentApyFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraIndexerDeploymentApyFilter>>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type EraIndexerDeploymentApyMaxAggregateFilter = {\n  readonly agreementReward: InputMaybe<BigFloatFilter>;\n  readonly allocationReward: InputMaybe<BigFloatFilter>;\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAdded: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<BigFloatFilter>;\n  readonly apyCalcRemoval: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly flexPlanReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerDeploymentApyMaxAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApyMaxAggregates';\n  /** Maximum of agreementReward across the matching connection */\n  readonly agreementReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of allocationReward across the matching connection */\n  readonly allocationReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of apyCalcAdded across the matching connection */\n  readonly apyCalcAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of apyCalcAllocation across the matching connection */\n  readonly apyCalcAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of apyCalcRemoval across the matching connection */\n  readonly apyCalcRemoval: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of flexPlanReward across the matching connection */\n  readonly flexPlanReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDeploymentApyMinAggregateFilter = {\n  readonly agreementReward: InputMaybe<BigFloatFilter>;\n  readonly allocationReward: InputMaybe<BigFloatFilter>;\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAdded: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<BigFloatFilter>;\n  readonly apyCalcRemoval: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly flexPlanReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerDeploymentApyMinAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApyMinAggregates';\n  /** Minimum of agreementReward across the matching connection */\n  readonly agreementReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of allocationReward across the matching connection */\n  readonly allocationReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of apyCalcAdded across the matching connection */\n  readonly apyCalcAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of apyCalcAllocation across the matching connection */\n  readonly apyCalcAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of apyCalcRemoval across the matching connection */\n  readonly apyCalcRemoval: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of flexPlanReward across the matching connection */\n  readonly flexPlanReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDeploymentApyStddevPopulationAggregateFilter = {\n  readonly agreementReward: InputMaybe<BigFloatFilter>;\n  readonly allocationReward: InputMaybe<BigFloatFilter>;\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAdded: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<BigFloatFilter>;\n  readonly apyCalcRemoval: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly flexPlanReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerDeploymentApyStddevPopulationAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApyStddevPopulationAggregates';\n  /** Population standard deviation of agreementReward across the matching connection */\n  readonly agreementReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of allocationReward across the matching connection */\n  readonly allocationReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of apyCalcAdded across the matching connection */\n  readonly apyCalcAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of apyCalcAllocation across the matching connection */\n  readonly apyCalcAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of apyCalcRemoval across the matching connection */\n  readonly apyCalcRemoval: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of flexPlanReward across the matching connection */\n  readonly flexPlanReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDeploymentApyStddevSampleAggregateFilter = {\n  readonly agreementReward: InputMaybe<BigFloatFilter>;\n  readonly allocationReward: InputMaybe<BigFloatFilter>;\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAdded: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<BigFloatFilter>;\n  readonly apyCalcRemoval: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly flexPlanReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerDeploymentApyStddevSampleAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApyStddevSampleAggregates';\n  /** Sample standard deviation of agreementReward across the matching connection */\n  readonly agreementReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of allocationReward across the matching connection */\n  readonly allocationReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of apyCalcAdded across the matching connection */\n  readonly apyCalcAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of apyCalcAllocation across the matching connection */\n  readonly apyCalcAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of apyCalcRemoval across the matching connection */\n  readonly apyCalcRemoval: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of flexPlanReward across the matching connection */\n  readonly flexPlanReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDeploymentApySumAggregateFilter = {\n  readonly agreementReward: InputMaybe<BigFloatFilter>;\n  readonly allocationReward: InputMaybe<BigFloatFilter>;\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAdded: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<BigFloatFilter>;\n  readonly apyCalcRemoval: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly flexPlanReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerDeploymentApySumAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApySumAggregates';\n  /** Sum of agreementReward across the matching connection */\n  readonly agreementReward: Scalars['BigFloat']['output'];\n  /** Sum of allocationReward across the matching connection */\n  readonly allocationReward: Scalars['BigFloat']['output'];\n  /** Sum of apy across the matching connection */\n  readonly apy: Scalars['BigFloat']['output'];\n  /** Sum of apyCalcAdded across the matching connection */\n  readonly apyCalcAdded: Scalars['BigFloat']['output'];\n  /** Sum of apyCalcAllocation across the matching connection */\n  readonly apyCalcAllocation: Scalars['BigFloat']['output'];\n  /** Sum of apyCalcRemoval across the matching connection */\n  readonly apyCalcRemoval: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of flexPlanReward across the matching connection */\n  readonly flexPlanReward: Scalars['BigFloat']['output'];\n};\n\nexport type EraIndexerDeploymentApyVariancePopulationAggregateFilter = {\n  readonly agreementReward: InputMaybe<BigFloatFilter>;\n  readonly allocationReward: InputMaybe<BigFloatFilter>;\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAdded: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<BigFloatFilter>;\n  readonly apyCalcRemoval: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly flexPlanReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerDeploymentApyVariancePopulationAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApyVariancePopulationAggregates';\n  /** Population variance of agreementReward across the matching connection */\n  readonly agreementReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of allocationReward across the matching connection */\n  readonly allocationReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of apyCalcAdded across the matching connection */\n  readonly apyCalcAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of apyCalcAllocation across the matching connection */\n  readonly apyCalcAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of apyCalcRemoval across the matching connection */\n  readonly apyCalcRemoval: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of flexPlanReward across the matching connection */\n  readonly flexPlanReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraIndexerDeploymentApyVarianceSampleAggregateFilter = {\n  readonly agreementReward: InputMaybe<BigFloatFilter>;\n  readonly allocationReward: InputMaybe<BigFloatFilter>;\n  readonly apy: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAdded: InputMaybe<BigFloatFilter>;\n  readonly apyCalcAllocation: InputMaybe<BigFloatFilter>;\n  readonly apyCalcRemoval: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly flexPlanReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraIndexerDeploymentApyVarianceSampleAggregates = {\n  readonly __typename: 'EraIndexerDeploymentApyVarianceSampleAggregates';\n  /** Sample variance of agreementReward across the matching connection */\n  readonly agreementReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of allocationReward across the matching connection */\n  readonly allocationReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of apy across the matching connection */\n  readonly apy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of apyCalcAdded across the matching connection */\n  readonly apyCalcAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of apyCalcAllocation across the matching connection */\n  readonly apyCalcAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of apyCalcRemoval across the matching connection */\n  readonly apyCalcRemoval: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of flexPlanReward across the matching connection */\n  readonly flexPlanReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraReward`. */\nexport type EraIndexersByEraRewardEraIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'EraIndexersByEraRewardEraIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `EraReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraIndexersByEraRewardEraIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraReward`. */\nexport type EraIndexersByEraRewardEraIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraReward`. */\nexport type EraIndexersByEraRewardEraIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'EraIndexersByEraRewardEraIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: EraRewardsConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraReward`. */\nexport type EraIndexersByEraRewardEraIdAndIndexerIdManyToManyEdgeEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraStake`. */\nexport type EraIndexersByEraStakeEraIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'EraIndexersByEraStakeEraIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `EraStake`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraIndexersByEraStakeEraIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `EraStake`. */\nexport type EraIndexersByEraStakeEraIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraStake`. */\nexport type EraIndexersByEraStakeEraIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'EraIndexersByEraStakeEraIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: EraStakesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `EraStake`. */\nexport type EraIndexersByEraStakeEraIdAndIndexerIdManyToManyEdgeEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerCommissionRate`. */\nexport type EraIndexersByIndexerCommissionRateEraIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'EraIndexersByIndexerCommissionRateEraIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerCommissionRate`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraIndexersByIndexerCommissionRateEraIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerCommissionRate`. */\nexport type EraIndexersByIndexerCommissionRateEraIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerCommissionRate`. */\nexport type EraIndexersByIndexerCommissionRateEraIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'EraIndexersByIndexerCommissionRateEraIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerCommissionRate`. */\n  readonly indexerCommissionRates: IndexerCommissionRatesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerCommissionRate`. */\nexport type EraIndexersByIndexerCommissionRateEraIdAndIndexerIdManyToManyEdgeIndexerCommissionRatesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Commission_Rates_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerCommissionRateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerCommissionRatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerStake`. */\nexport type EraIndexersByIndexerStakeEraIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'EraIndexersByIndexerStakeEraIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerStake`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraIndexersByIndexerStakeEraIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerStake`. */\nexport type EraIndexersByIndexerStakeEraIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerStake`. */\nexport type EraIndexersByIndexerStakeEraIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'EraIndexersByIndexerStakeEraIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerStake`. */\n  readonly indexerStakes: IndexerStakesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerStake`. */\nexport type EraIndexersByIndexerStakeEraIdAndIndexerIdManyToManyEdgeIndexerStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type EraMaxAggregates = {\n  readonly __typename: 'EraMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EraMinAggregates = {\n  readonly __typename: 'EraMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EraReward = Node & {\n  readonly __typename: 'EraReward';\n  readonly amount: Scalars['BigFloat']['output'];\n  readonly claimed: Scalars['Boolean']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly createdTimestamp: Scalars['Datetime']['output'];\n  /** Reads a single `Delegator` that is related to this `EraReward`. */\n  readonly delegator: Maybe<Delegator>;\n  readonly delegatorId: Scalars['String']['output'];\n  /** Reads a single `Era` that is related to this `EraReward`. */\n  readonly era: Maybe<Era>;\n  readonly eraId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `EraReward`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  readonly isCommission: Scalars['Boolean']['output'];\n  readonly isIndexer: Scalars['Boolean']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type EraRewardAggregates = {\n  readonly __typename: 'EraRewardAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraRewardAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraRewardDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraRewardMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraRewardMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraRewardStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraRewardStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraRewardSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraRewardVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraRewardVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `EraReward` object types. */\nexport type EraRewardAggregatesFilter = {\n  /** Mean average aggregate over matching `EraReward` objects. */\n  readonly average: InputMaybe<EraRewardAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `EraReward` objects. */\n  readonly distinctCount: InputMaybe<EraRewardDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `EraReward` object to be included within the aggregate. */\n  readonly filter: InputMaybe<EraRewardFilter>;\n  /** Maximum aggregate over matching `EraReward` objects. */\n  readonly max: InputMaybe<EraRewardMaxAggregateFilter>;\n  /** Minimum aggregate over matching `EraReward` objects. */\n  readonly min: InputMaybe<EraRewardMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `EraReward` objects. */\n  readonly stddevPopulation: InputMaybe<EraRewardStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `EraReward` objects. */\n  readonly stddevSample: InputMaybe<EraRewardStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `EraReward` objects. */\n  readonly sum: InputMaybe<EraRewardSumAggregateFilter>;\n  /** Population variance aggregate over matching `EraReward` objects. */\n  readonly variancePopulation: InputMaybe<EraRewardVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `EraReward` objects. */\n  readonly varianceSample: InputMaybe<EraRewardVarianceSampleAggregateFilter>;\n};\n\nexport type EraRewardAverageAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraRewardAverageAggregates = {\n  readonly __typename: 'EraRewardAverageAggregates';\n  /** Mean average of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraRewardClaimed = Node & {\n  readonly __typename: 'EraRewardClaimed';\n  readonly id: Scalars['String']['output'];\n  readonly lastClaimedEra: Scalars['Int']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type EraRewardClaimedAggregates = {\n  readonly __typename: 'EraRewardClaimedAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraRewardClaimedAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraRewardClaimedDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraRewardClaimedMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraRewardClaimedMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraRewardClaimedStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraRewardClaimedStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraRewardClaimedSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraRewardClaimedVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraRewardClaimedVarianceSampleAggregates>;\n};\n\nexport type EraRewardClaimedAverageAggregates = {\n  readonly __typename: 'EraRewardClaimedAverageAggregates';\n  /** Mean average of lastClaimedEra across the matching connection */\n  readonly lastClaimedEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraRewardClaimedDistinctCountAggregates = {\n  readonly __typename: 'EraRewardClaimedDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastClaimedEra across the matching connection */\n  readonly lastClaimedEra: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraRewardClaimed` object types. All fields are combined with a logical ‘and.’ */\nexport type EraRewardClaimedFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraRewardClaimedFilter>>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastClaimedEra` field. */\n  readonly lastClaimedEra: InputMaybe<IntFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraRewardClaimedFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraRewardClaimedFilter>>;\n};\n\nexport type EraRewardClaimedMaxAggregates = {\n  readonly __typename: 'EraRewardClaimedMaxAggregates';\n  /** Maximum of lastClaimedEra across the matching connection */\n  readonly lastClaimedEra: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EraRewardClaimedMinAggregates = {\n  readonly __typename: 'EraRewardClaimedMinAggregates';\n  /** Minimum of lastClaimedEra across the matching connection */\n  readonly lastClaimedEra: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EraRewardClaimedStddevPopulationAggregates = {\n  readonly __typename: 'EraRewardClaimedStddevPopulationAggregates';\n  /** Population standard deviation of lastClaimedEra across the matching connection */\n  readonly lastClaimedEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraRewardClaimedStddevSampleAggregates = {\n  readonly __typename: 'EraRewardClaimedStddevSampleAggregates';\n  /** Sample standard deviation of lastClaimedEra across the matching connection */\n  readonly lastClaimedEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraRewardClaimedSumAggregates = {\n  readonly __typename: 'EraRewardClaimedSumAggregates';\n  /** Sum of lastClaimedEra across the matching connection */\n  readonly lastClaimedEra: Scalars['BigInt']['output'];\n};\n\nexport type EraRewardClaimedVariancePopulationAggregates = {\n  readonly __typename: 'EraRewardClaimedVariancePopulationAggregates';\n  /** Population variance of lastClaimedEra across the matching connection */\n  readonly lastClaimedEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraRewardClaimedVarianceSampleAggregates = {\n  readonly __typename: 'EraRewardClaimedVarianceSampleAggregates';\n  /** Sample variance of lastClaimedEra across the matching connection */\n  readonly lastClaimedEra: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `EraRewardClaimed` values. */\nexport type EraRewardClaimedsConnection = {\n  readonly __typename: 'EraRewardClaimedsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraRewardClaimedAggregates>;\n  /** A list of edges which contains the `EraRewardClaimed` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraRewardClaimedsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraRewardClaimedAggregates>>;\n  /** A list of `EraRewardClaimed` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraRewardClaimed>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraRewardClaimed` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraRewardClaimed` values. */\nexport type EraRewardClaimedsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraRewardClaimedsGroupBy>;\n  having: InputMaybe<EraRewardClaimedsHavingInput>;\n};\n\n/** A `EraRewardClaimed` edge in the connection. */\nexport type EraRewardClaimedsEdge = {\n  readonly __typename: 'EraRewardClaimedsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraRewardClaimed` at the end of the edge. */\n  readonly node: Maybe<EraRewardClaimed>;\n};\n\n/** Grouping methods for `EraRewardClaimed` for usage during aggregation. */\nexport enum EraRewardClaimedsGroupBy {\n  ID = 'ID',\n  LAST_CLAIMED_ERA = 'LAST_CLAIMED_ERA',\n}\n\nexport type EraRewardClaimedsHavingAverageInput = {\n  readonly lastClaimedEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardClaimedsHavingDistinctCountInput = {\n  readonly lastClaimedEra: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `EraRewardClaimed` aggregates. */\nexport type EraRewardClaimedsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraRewardClaimedsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraRewardClaimedsHavingInput>>;\n  readonly average: InputMaybe<EraRewardClaimedsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraRewardClaimedsHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraRewardClaimedsHavingMaxInput>;\n  readonly min: InputMaybe<EraRewardClaimedsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraRewardClaimedsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraRewardClaimedsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraRewardClaimedsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraRewardClaimedsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraRewardClaimedsHavingVarianceSampleInput>;\n};\n\nexport type EraRewardClaimedsHavingMaxInput = {\n  readonly lastClaimedEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardClaimedsHavingMinInput = {\n  readonly lastClaimedEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardClaimedsHavingStddevPopulationInput = {\n  readonly lastClaimedEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardClaimedsHavingStddevSampleInput = {\n  readonly lastClaimedEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardClaimedsHavingSumInput = {\n  readonly lastClaimedEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardClaimedsHavingVariancePopulationInput = {\n  readonly lastClaimedEra: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardClaimedsHavingVarianceSampleInput = {\n  readonly lastClaimedEra: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `EraRewardClaimed`. */\nexport enum EraRewardClaimedsOrderBy {\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  LAST_CLAIMED_ERA_ASC = 'LAST_CLAIMED_ERA_ASC',\n  LAST_CLAIMED_ERA_DESC = 'LAST_CLAIMED_ERA_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type EraRewardDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly amount: InputMaybe<BigIntFilter>;\n  readonly claimed: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly createdTimestamp: InputMaybe<BigIntFilter>;\n  readonly delegatorId: InputMaybe<BigIntFilter>;\n  readonly eraId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly isCommission: InputMaybe<BigIntFilter>;\n  readonly isIndexer: InputMaybe<BigIntFilter>;\n};\n\nexport type EraRewardDistinctCountAggregates = {\n  readonly __typename: 'EraRewardDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of claimed across the matching connection */\n  readonly claimed: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdTimestamp across the matching connection */\n  readonly createdTimestamp: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorId across the matching connection */\n  readonly delegatorId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of isCommission across the matching connection */\n  readonly isCommission: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of isIndexer across the matching connection */\n  readonly isIndexer: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraReward` object types. All fields are combined with a logical ‘and.’ */\nexport type EraRewardFilter = {\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraRewardFilter>>;\n  /** Filter by the object’s `claimed` field. */\n  readonly claimed: InputMaybe<BooleanFilter>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `createdTimestamp` field. */\n  readonly createdTimestamp: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `delegator` relation. */\n  readonly delegator: InputMaybe<DelegatorFilter>;\n  /** Filter by the object’s `delegatorId` field. */\n  readonly delegatorId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `era` relation. */\n  readonly era: InputMaybe<EraFilter>;\n  /** Filter by the object’s `eraId` field. */\n  readonly eraId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `isCommission` field. */\n  readonly isCommission: InputMaybe<BooleanFilter>;\n  /** Filter by the object’s `isIndexer` field. */\n  readonly isIndexer: InputMaybe<BooleanFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraRewardFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraRewardFilter>>;\n};\n\nexport type EraRewardMaxAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type EraRewardMaxAggregates = {\n  readonly __typename: 'EraRewardMaxAggregates';\n  /** Maximum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EraRewardMinAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type EraRewardMinAggregates = {\n  readonly __typename: 'EraRewardMinAggregates';\n  /** Minimum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EraRewardStddevPopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraRewardStddevPopulationAggregates = {\n  readonly __typename: 'EraRewardStddevPopulationAggregates';\n  /** Population standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraRewardStddevSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraRewardStddevSampleAggregates = {\n  readonly __typename: 'EraRewardStddevSampleAggregates';\n  /** Sample standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraRewardSumAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n};\n\nexport type EraRewardSumAggregates = {\n  readonly __typename: 'EraRewardSumAggregates';\n  /** Sum of amount across the matching connection */\n  readonly amount: Scalars['BigFloat']['output'];\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n};\n\nexport type EraRewardVariancePopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraRewardVariancePopulationAggregates = {\n  readonly __typename: 'EraRewardVariancePopulationAggregates';\n  /** Population variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraRewardVarianceSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraRewardVarianceSampleAggregates = {\n  readonly __typename: 'EraRewardVarianceSampleAggregates';\n  /** Sample variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `EraReward` values. */\nexport type EraRewardsConnection = {\n  readonly __typename: 'EraRewardsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraRewardAggregates>;\n  /** A list of edges which contains the `EraReward` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraRewardsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraRewardAggregates>>;\n  /** A list of `EraReward` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraReward>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraReward` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraReward` values. */\nexport type EraRewardsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraRewardsGroupBy>;\n  having: InputMaybe<EraRewardsHavingInput>;\n};\n\n/** A `EraReward` edge in the connection. */\nexport type EraRewardsEdge = {\n  readonly __typename: 'EraRewardsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraReward` at the end of the edge. */\n  readonly node: Maybe<EraReward>;\n};\n\n/** Grouping methods for `EraReward` for usage during aggregation. */\nexport enum EraRewardsGroupBy {\n  AMOUNT = 'AMOUNT',\n  CLAIMED = 'CLAIMED',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  CREATED_TIMESTAMP = 'CREATED_TIMESTAMP',\n  CREATED_TIMESTAMP_TRUNCATED_TO_DAY = 'CREATED_TIMESTAMP_TRUNCATED_TO_DAY',\n  CREATED_TIMESTAMP_TRUNCATED_TO_HOUR = 'CREATED_TIMESTAMP_TRUNCATED_TO_HOUR',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  IS_COMMISSION = 'IS_COMMISSION',\n  IS_INDEXER = 'IS_INDEXER',\n}\n\nexport type EraRewardsHavingAverageInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardsHavingDistinctCountInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `EraReward` aggregates. */\nexport type EraRewardsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraRewardsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraRewardsHavingInput>>;\n  readonly average: InputMaybe<EraRewardsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraRewardsHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraRewardsHavingMaxInput>;\n  readonly min: InputMaybe<EraRewardsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraRewardsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraRewardsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraRewardsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraRewardsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraRewardsHavingVarianceSampleInput>;\n};\n\nexport type EraRewardsHavingMaxInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardsHavingMinInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardsHavingStddevPopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardsHavingStddevSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardsHavingSumInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardsHavingVariancePopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type EraRewardsHavingVarianceSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `EraReward`. */\nexport enum EraRewardsOrderBy {\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  CLAIMED_ASC = 'CLAIMED_ASC',\n  CLAIMED_DESC = 'CLAIMED_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  CREATED_TIMESTAMP_ASC = 'CREATED_TIMESTAMP_ASC',\n  CREATED_TIMESTAMP_DESC = 'CREATED_TIMESTAMP_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_ASC = 'DELEGATOR_BY_DELEGATOR_ID__ID_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_DESC = 'DELEGATOR_BY_DELEGATOR_ID__ID_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC',\n  DELEGATOR_ID_ASC = 'DELEGATOR_ID_ASC',\n  DELEGATOR_ID_DESC = 'DELEGATOR_ID_DESC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_ASC = 'ERA_BY_ERA_ID__CREATED_BLOCK_ASC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_DESC = 'ERA_BY_ERA_ID__CREATED_BLOCK_DESC',\n  ERA_BY_ERA_ID__END_TIME_ASC = 'ERA_BY_ERA_ID__END_TIME_ASC',\n  ERA_BY_ERA_ID__END_TIME_DESC = 'ERA_BY_ERA_ID__END_TIME_DESC',\n  ERA_BY_ERA_ID__ERA_PERIOD_ASC = 'ERA_BY_ERA_ID__ERA_PERIOD_ASC',\n  ERA_BY_ERA_ID__ERA_PERIOD_DESC = 'ERA_BY_ERA_ID__ERA_PERIOD_DESC',\n  ERA_BY_ERA_ID__FORCE_NEXT_ASC = 'ERA_BY_ERA_ID__FORCE_NEXT_ASC',\n  ERA_BY_ERA_ID__FORCE_NEXT_DESC = 'ERA_BY_ERA_ID__FORCE_NEXT_DESC',\n  ERA_BY_ERA_ID__ID_ASC = 'ERA_BY_ERA_ID__ID_ASC',\n  ERA_BY_ERA_ID__ID_DESC = 'ERA_BY_ERA_ID__ID_DESC',\n  ERA_BY_ERA_ID__LAST_EVENT_ASC = 'ERA_BY_ERA_ID__LAST_EVENT_ASC',\n  ERA_BY_ERA_ID__LAST_EVENT_DESC = 'ERA_BY_ERA_ID__LAST_EVENT_DESC',\n  ERA_BY_ERA_ID__START_TIME_ASC = 'ERA_BY_ERA_ID__START_TIME_ASC',\n  ERA_BY_ERA_ID__START_TIME_DESC = 'ERA_BY_ERA_ID__START_TIME_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ERA_ID_ASC = 'ERA_ID_ASC',\n  ERA_ID_DESC = 'ERA_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  IS_COMMISSION_ASC = 'IS_COMMISSION_ASC',\n  IS_COMMISSION_DESC = 'IS_COMMISSION_DESC',\n  IS_INDEXER_ASC = 'IS_INDEXER_ASC',\n  IS_INDEXER_DESC = 'IS_INDEXER_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type EraStake = Node & {\n  readonly __typename: 'EraStake';\n  /** Reads a single `Delegator` that is related to this `EraStake`. */\n  readonly delegator: Maybe<Delegator>;\n  readonly delegatorId: Scalars['String']['output'];\n  /** Reads a single `Era` that is related to this `EraStake`. */\n  readonly era: Maybe<Era>;\n  readonly eraId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `EraStake`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly stake: Scalars['BigFloat']['output'];\n};\n\nexport type EraStakeAggregates = {\n  readonly __typename: 'EraStakeAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<EraStakeAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraStakeDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<EraStakeMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<EraStakeMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<EraStakeStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<EraStakeStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<EraStakeSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<EraStakeVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<EraStakeVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `EraStake` object types. */\nexport type EraStakeAggregatesFilter = {\n  /** Mean average aggregate over matching `EraStake` objects. */\n  readonly average: InputMaybe<EraStakeAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `EraStake` objects. */\n  readonly distinctCount: InputMaybe<EraStakeDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `EraStake` object to be included within the aggregate. */\n  readonly filter: InputMaybe<EraStakeFilter>;\n  /** Maximum aggregate over matching `EraStake` objects. */\n  readonly max: InputMaybe<EraStakeMaxAggregateFilter>;\n  /** Minimum aggregate over matching `EraStake` objects. */\n  readonly min: InputMaybe<EraStakeMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `EraStake` objects. */\n  readonly stddevPopulation: InputMaybe<EraStakeStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `EraStake` objects. */\n  readonly stddevSample: InputMaybe<EraStakeStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `EraStake` objects. */\n  readonly sum: InputMaybe<EraStakeSumAggregateFilter>;\n  /** Population variance aggregate over matching `EraStake` objects. */\n  readonly variancePopulation: InputMaybe<EraStakeVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `EraStake` objects. */\n  readonly varianceSample: InputMaybe<EraStakeVarianceSampleAggregateFilter>;\n};\n\nexport type EraStakeAverageAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraStakeAverageAggregates = {\n  readonly __typename: 'EraStakeAverageAggregates';\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraStakeDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly delegatorId: InputMaybe<BigIntFilter>;\n  readonly eraId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly stake: InputMaybe<BigIntFilter>;\n};\n\nexport type EraStakeDistinctCountAggregates = {\n  readonly __typename: 'EraStakeDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorId across the matching connection */\n  readonly delegatorId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraStake` object types. All fields are combined with a logical ‘and.’ */\nexport type EraStakeFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraStakeFilter>>;\n  /** Filter by the object’s `delegator` relation. */\n  readonly delegator: InputMaybe<DelegatorFilter>;\n  /** Filter by the object’s `delegatorId` field. */\n  readonly delegatorId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `era` relation. */\n  readonly era: InputMaybe<EraFilter>;\n  /** Filter by the object’s `eraId` field. */\n  readonly eraId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraStakeFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraStakeFilter>>;\n  /** Filter by the object’s `stake` field. */\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraStakeMaxAggregateFilter = {\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraStakeMaxAggregates = {\n  readonly __typename: 'EraStakeMaxAggregates';\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraStakeMinAggregateFilter = {\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraStakeMinAggregates = {\n  readonly __typename: 'EraStakeMinAggregates';\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraStakeStddevPopulationAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraStakeStddevPopulationAggregates = {\n  readonly __typename: 'EraStakeStddevPopulationAggregates';\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraStakeStddevSampleAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraStakeStddevSampleAggregates = {\n  readonly __typename: 'EraStakeStddevSampleAggregates';\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraStakeSumAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraStakeSumAggregates = {\n  readonly __typename: 'EraStakeSumAggregates';\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of stake across the matching connection */\n  readonly stake: Scalars['BigFloat']['output'];\n};\n\nexport type EraStakeUpdate = Node & {\n  readonly __typename: 'EraStakeUpdate';\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Era` that is related to this `EraStakeUpdate`. */\n  readonly lastUpdateEra: Maybe<Era>;\n  readonly lastUpdateEraId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type EraStakeUpdateAggregates = {\n  readonly __typename: 'EraStakeUpdateAggregates';\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<EraStakeUpdateDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n};\n\n/** A filter to be used against aggregates of `EraStakeUpdate` object types. */\nexport type EraStakeUpdateAggregatesFilter = {\n  /** Distinct count aggregate over matching `EraStakeUpdate` objects. */\n  readonly distinctCount: InputMaybe<EraStakeUpdateDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `EraStakeUpdate` object to be included within the aggregate. */\n  readonly filter: InputMaybe<EraStakeUpdateFilter>;\n};\n\nexport type EraStakeUpdateDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly lastUpdateEraId: InputMaybe<BigIntFilter>;\n};\n\nexport type EraStakeUpdateDistinctCountAggregates = {\n  readonly __typename: 'EraStakeUpdateDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastUpdateEraId across the matching connection */\n  readonly lastUpdateEraId: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `EraStakeUpdate` object types. All fields are combined with a logical ‘and.’ */\nexport type EraStakeUpdateFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<EraStakeUpdateFilter>>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastUpdateEra` relation. */\n  readonly lastUpdateEra: InputMaybe<EraFilter>;\n  /** Filter by the object’s `lastUpdateEraId` field. */\n  readonly lastUpdateEraId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<EraStakeUpdateFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<EraStakeUpdateFilter>>;\n};\n\n/** A connection to a list of `EraStakeUpdate` values. */\nexport type EraStakeUpdatesConnection = {\n  readonly __typename: 'EraStakeUpdatesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraStakeUpdateAggregates>;\n  /** A list of edges which contains the `EraStakeUpdate` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraStakeUpdatesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraStakeUpdateAggregates>>;\n  /** A list of `EraStakeUpdate` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraStakeUpdate>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraStakeUpdate` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraStakeUpdate` values. */\nexport type EraStakeUpdatesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraStakeUpdatesGroupBy>;\n  having: InputMaybe<EraStakeUpdatesHavingInput>;\n};\n\n/** A `EraStakeUpdate` edge in the connection. */\nexport type EraStakeUpdatesEdge = {\n  readonly __typename: 'EraStakeUpdatesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraStakeUpdate` at the end of the edge. */\n  readonly node: Maybe<EraStakeUpdate>;\n};\n\n/** Grouping methods for `EraStakeUpdate` for usage during aggregation. */\nexport enum EraStakeUpdatesGroupBy {\n  ID = 'ID',\n  LAST_UPDATE_ERA_ID = 'LAST_UPDATE_ERA_ID',\n}\n\n/** Conditions for `EraStakeUpdate` aggregates. */\nexport type EraStakeUpdatesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraStakeUpdatesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraStakeUpdatesHavingInput>>;\n};\n\n/** Methods to use when ordering `EraStakeUpdate`. */\nexport enum EraStakeUpdatesOrderBy {\n  ERA_BY_LAST_UPDATE_ERA_ID__CREATED_BLOCK_ASC = 'ERA_BY_LAST_UPDATE_ERA_ID__CREATED_BLOCK_ASC',\n  ERA_BY_LAST_UPDATE_ERA_ID__CREATED_BLOCK_DESC = 'ERA_BY_LAST_UPDATE_ERA_ID__CREATED_BLOCK_DESC',\n  ERA_BY_LAST_UPDATE_ERA_ID__END_TIME_ASC = 'ERA_BY_LAST_UPDATE_ERA_ID__END_TIME_ASC',\n  ERA_BY_LAST_UPDATE_ERA_ID__END_TIME_DESC = 'ERA_BY_LAST_UPDATE_ERA_ID__END_TIME_DESC',\n  ERA_BY_LAST_UPDATE_ERA_ID__ERA_PERIOD_ASC = 'ERA_BY_LAST_UPDATE_ERA_ID__ERA_PERIOD_ASC',\n  ERA_BY_LAST_UPDATE_ERA_ID__ERA_PERIOD_DESC = 'ERA_BY_LAST_UPDATE_ERA_ID__ERA_PERIOD_DESC',\n  ERA_BY_LAST_UPDATE_ERA_ID__FORCE_NEXT_ASC = 'ERA_BY_LAST_UPDATE_ERA_ID__FORCE_NEXT_ASC',\n  ERA_BY_LAST_UPDATE_ERA_ID__FORCE_NEXT_DESC = 'ERA_BY_LAST_UPDATE_ERA_ID__FORCE_NEXT_DESC',\n  ERA_BY_LAST_UPDATE_ERA_ID__ID_ASC = 'ERA_BY_LAST_UPDATE_ERA_ID__ID_ASC',\n  ERA_BY_LAST_UPDATE_ERA_ID__ID_DESC = 'ERA_BY_LAST_UPDATE_ERA_ID__ID_DESC',\n  ERA_BY_LAST_UPDATE_ERA_ID__LAST_EVENT_ASC = 'ERA_BY_LAST_UPDATE_ERA_ID__LAST_EVENT_ASC',\n  ERA_BY_LAST_UPDATE_ERA_ID__LAST_EVENT_DESC = 'ERA_BY_LAST_UPDATE_ERA_ID__LAST_EVENT_DESC',\n  ERA_BY_LAST_UPDATE_ERA_ID__START_TIME_ASC = 'ERA_BY_LAST_UPDATE_ERA_ID__START_TIME_ASC',\n  ERA_BY_LAST_UPDATE_ERA_ID__START_TIME_DESC = 'ERA_BY_LAST_UPDATE_ERA_ID__START_TIME_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  LAST_UPDATE_ERA_ID_ASC = 'LAST_UPDATE_ERA_ID_ASC',\n  LAST_UPDATE_ERA_ID_DESC = 'LAST_UPDATE_ERA_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type EraStakeVariancePopulationAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraStakeVariancePopulationAggregates = {\n  readonly __typename: 'EraStakeVariancePopulationAggregates';\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraStakeVarianceSampleAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly stake: InputMaybe<BigFloatFilter>;\n};\n\nexport type EraStakeVarianceSampleAggregates = {\n  readonly __typename: 'EraStakeVarianceSampleAggregates';\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of stake across the matching connection */\n  readonly stake: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `EraStake` values. */\nexport type EraStakesConnection = {\n  readonly __typename: 'EraStakesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraStakeAggregates>;\n  /** A list of edges which contains the `EraStake` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<EraStakesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraStakeAggregates>>;\n  /** A list of `EraStake` objects. */\n  readonly nodes: ReadonlyArray<Maybe<EraStake>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `EraStake` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `EraStake` values. */\nexport type EraStakesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<EraStakesGroupBy>;\n  having: InputMaybe<EraStakesHavingInput>;\n};\n\n/** A `EraStake` edge in the connection. */\nexport type EraStakesEdge = {\n  readonly __typename: 'EraStakesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `EraStake` at the end of the edge. */\n  readonly node: Maybe<EraStake>;\n};\n\n/** Grouping methods for `EraStake` for usage during aggregation. */\nexport enum EraStakesGroupBy {\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  STAKE = 'STAKE',\n}\n\nexport type EraStakesHavingAverageInput = {\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraStakesHavingDistinctCountInput = {\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `EraStake` aggregates. */\nexport type EraStakesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<EraStakesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<EraStakesHavingInput>>;\n  readonly average: InputMaybe<EraStakesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<EraStakesHavingDistinctCountInput>;\n  readonly max: InputMaybe<EraStakesHavingMaxInput>;\n  readonly min: InputMaybe<EraStakesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<EraStakesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<EraStakesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<EraStakesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<EraStakesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<EraStakesHavingVarianceSampleInput>;\n};\n\nexport type EraStakesHavingMaxInput = {\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraStakesHavingMinInput = {\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraStakesHavingStddevPopulationInput = {\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraStakesHavingStddevSampleInput = {\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraStakesHavingSumInput = {\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraStakesHavingVariancePopulationInput = {\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type EraStakesHavingVarianceSampleInput = {\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly stake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `EraStake`. */\nexport enum EraStakesOrderBy {\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_ASC = 'DELEGATOR_BY_DELEGATOR_ID__ID_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_DESC = 'DELEGATOR_BY_DELEGATOR_ID__ID_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC',\n  DELEGATOR_ID_ASC = 'DELEGATOR_ID_ASC',\n  DELEGATOR_ID_DESC = 'DELEGATOR_ID_DESC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_ASC = 'ERA_BY_ERA_ID__CREATED_BLOCK_ASC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_DESC = 'ERA_BY_ERA_ID__CREATED_BLOCK_DESC',\n  ERA_BY_ERA_ID__END_TIME_ASC = 'ERA_BY_ERA_ID__END_TIME_ASC',\n  ERA_BY_ERA_ID__END_TIME_DESC = 'ERA_BY_ERA_ID__END_TIME_DESC',\n  ERA_BY_ERA_ID__ERA_PERIOD_ASC = 'ERA_BY_ERA_ID__ERA_PERIOD_ASC',\n  ERA_BY_ERA_ID__ERA_PERIOD_DESC = 'ERA_BY_ERA_ID__ERA_PERIOD_DESC',\n  ERA_BY_ERA_ID__FORCE_NEXT_ASC = 'ERA_BY_ERA_ID__FORCE_NEXT_ASC',\n  ERA_BY_ERA_ID__FORCE_NEXT_DESC = 'ERA_BY_ERA_ID__FORCE_NEXT_DESC',\n  ERA_BY_ERA_ID__ID_ASC = 'ERA_BY_ERA_ID__ID_ASC',\n  ERA_BY_ERA_ID__ID_DESC = 'ERA_BY_ERA_ID__ID_DESC',\n  ERA_BY_ERA_ID__LAST_EVENT_ASC = 'ERA_BY_ERA_ID__LAST_EVENT_ASC',\n  ERA_BY_ERA_ID__LAST_EVENT_DESC = 'ERA_BY_ERA_ID__LAST_EVENT_DESC',\n  ERA_BY_ERA_ID__START_TIME_ASC = 'ERA_BY_ERA_ID__START_TIME_ASC',\n  ERA_BY_ERA_ID__START_TIME_DESC = 'ERA_BY_ERA_ID__START_TIME_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ERA_ID_ASC = 'ERA_ID_ASC',\n  ERA_ID_DESC = 'ERA_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  STAKE_ASC = 'STAKE_ASC',\n  STAKE_DESC = 'STAKE_DESC',\n}\n\nexport type EraStddevPopulationAggregates = {\n  readonly __typename: 'EraStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraStddevSampleAggregates = {\n  readonly __typename: 'EraStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraSumAggregates = {\n  readonly __typename: 'EraSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\n/** A filter to be used against many `EraReward` object types. All fields are combined with a logical ‘and.’ */\nexport type EraToManyEraRewardFilter = {\n  /** Aggregates across related `EraReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraRewardAggregatesFilter>;\n  /** Every related `EraReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraRewardFilter>;\n  /** No related `EraReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraRewardFilter>;\n  /** Some related `EraReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraRewardFilter>;\n};\n\n/** A filter to be used against many `EraStake` object types. All fields are combined with a logical ‘and.’ */\nexport type EraToManyEraStakeFilter = {\n  /** Aggregates across related `EraStake` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraStakeAggregatesFilter>;\n  /** Every related `EraStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraStakeFilter>;\n  /** No related `EraStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraStakeFilter>;\n  /** Some related `EraStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraStakeFilter>;\n};\n\n/** A filter to be used against many `EraStakeUpdate` object types. All fields are combined with a logical ‘and.’ */\nexport type EraToManyEraStakeUpdateFilter = {\n  /** Aggregates across related `EraStakeUpdate` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraStakeUpdateAggregatesFilter>;\n  /** Every related `EraStakeUpdate` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraStakeUpdateFilter>;\n  /** No related `EraStakeUpdate` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraStakeUpdateFilter>;\n  /** Some related `EraStakeUpdate` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraStakeUpdateFilter>;\n};\n\n/** A filter to be used against many `IndexerCommissionRate` object types. All fields are combined with a logical ‘and.’ */\nexport type EraToManyIndexerCommissionRateFilter = {\n  /** Aggregates across related `IndexerCommissionRate` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerCommissionRateAggregatesFilter>;\n  /** Every related `IndexerCommissionRate` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerCommissionRateFilter>;\n  /** No related `IndexerCommissionRate` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerCommissionRateFilter>;\n  /** Some related `IndexerCommissionRate` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerCommissionRateFilter>;\n};\n\n/** A filter to be used against many `IndexerStake` object types. All fields are combined with a logical ‘and.’ */\nexport type EraToManyIndexerStakeFilter = {\n  /** Aggregates across related `IndexerStake` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerStakeAggregatesFilter>;\n  /** Every related `IndexerStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerStakeFilter>;\n  /** No related `IndexerStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerStakeFilter>;\n  /** Some related `IndexerStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerStakeFilter>;\n};\n\n/** A filter to be used against many `IndexerStakeSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type EraToManyIndexerStakeSummaryFilter = {\n  /** Aggregates across related `IndexerStakeSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerStakeSummaryAggregatesFilter>;\n  /** Every related `IndexerStakeSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerStakeSummaryFilter>;\n  /** No related `IndexerStakeSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerStakeSummaryFilter>;\n  /** Some related `IndexerStakeSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerStakeSummaryFilter>;\n};\n\nexport type EraVariancePopulationAggregates = {\n  readonly __typename: 'EraVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type EraVarianceSampleAggregates = {\n  readonly __typename: 'EraVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Era` values. */\nexport type ErasConnection = {\n  readonly __typename: 'ErasConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraAggregates>;\n  /** A list of edges which contains the `Era` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ErasEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraAggregates>>;\n  /** A list of `Era` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Era>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Era` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Era` values. */\nexport type ErasConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ErasGroupBy>;\n  having: InputMaybe<ErasHavingInput>;\n};\n\n/** A `Era` edge in the connection. */\nexport type ErasEdge = {\n  readonly __typename: 'ErasEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Era` at the end of the edge. */\n  readonly node: Maybe<Era>;\n};\n\n/** Grouping methods for `Era` for usage during aggregation. */\nexport enum ErasGroupBy {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  END_TIME = 'END_TIME',\n  END_TIME_TRUNCATED_TO_DAY = 'END_TIME_TRUNCATED_TO_DAY',\n  END_TIME_TRUNCATED_TO_HOUR = 'END_TIME_TRUNCATED_TO_HOUR',\n  ERA_PERIOD = 'ERA_PERIOD',\n  FORCE_NEXT = 'FORCE_NEXT',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  START_TIME = 'START_TIME',\n  START_TIME_TRUNCATED_TO_DAY = 'START_TIME_TRUNCATED_TO_DAY',\n  START_TIME_TRUNCATED_TO_HOUR = 'START_TIME_TRUNCATED_TO_HOUR',\n}\n\nexport type ErasHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ErasHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `Era` aggregates. */\nexport type ErasHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<ErasHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<ErasHavingInput>>;\n  readonly average: InputMaybe<ErasHavingAverageInput>;\n  readonly distinctCount: InputMaybe<ErasHavingDistinctCountInput>;\n  readonly max: InputMaybe<ErasHavingMaxInput>;\n  readonly min: InputMaybe<ErasHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<ErasHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<ErasHavingStddevSampleInput>;\n  readonly sum: InputMaybe<ErasHavingSumInput>;\n  readonly variancePopulation: InputMaybe<ErasHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<ErasHavingVarianceSampleInput>;\n};\n\nexport type ErasHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ErasHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ErasHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ErasHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ErasHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ErasHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ErasHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `Era`. */\nexport enum ErasOrderBy {\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  END_TIME_ASC = 'END_TIME_ASC',\n  END_TIME_DESC = 'END_TIME_DESC',\n  ERA_PERIOD_ASC = 'ERA_PERIOD_ASC',\n  ERA_PERIOD_DESC = 'ERA_PERIOD_DESC',\n  ERA_REWARDS_AVERAGE_AMOUNT_ASC = 'ERA_REWARDS_AVERAGE_AMOUNT_ASC',\n  ERA_REWARDS_AVERAGE_AMOUNT_DESC = 'ERA_REWARDS_AVERAGE_AMOUNT_DESC',\n  ERA_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'ERA_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'ERA_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_REWARDS_AVERAGE_CLAIMED_ASC = 'ERA_REWARDS_AVERAGE_CLAIMED_ASC',\n  ERA_REWARDS_AVERAGE_CLAIMED_DESC = 'ERA_REWARDS_AVERAGE_CLAIMED_DESC',\n  ERA_REWARDS_AVERAGE_CREATED_BLOCK_ASC = 'ERA_REWARDS_AVERAGE_CREATED_BLOCK_ASC',\n  ERA_REWARDS_AVERAGE_CREATED_BLOCK_DESC = 'ERA_REWARDS_AVERAGE_CREATED_BLOCK_DESC',\n  ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_AVERAGE_DELEGATOR_ID_ASC = 'ERA_REWARDS_AVERAGE_DELEGATOR_ID_ASC',\n  ERA_REWARDS_AVERAGE_DELEGATOR_ID_DESC = 'ERA_REWARDS_AVERAGE_DELEGATOR_ID_DESC',\n  ERA_REWARDS_AVERAGE_ERA_IDX_ASC = 'ERA_REWARDS_AVERAGE_ERA_IDX_ASC',\n  ERA_REWARDS_AVERAGE_ERA_IDX_DESC = 'ERA_REWARDS_AVERAGE_ERA_IDX_DESC',\n  ERA_REWARDS_AVERAGE_ERA_ID_ASC = 'ERA_REWARDS_AVERAGE_ERA_ID_ASC',\n  ERA_REWARDS_AVERAGE_ERA_ID_DESC = 'ERA_REWARDS_AVERAGE_ERA_ID_DESC',\n  ERA_REWARDS_AVERAGE_ID_ASC = 'ERA_REWARDS_AVERAGE_ID_ASC',\n  ERA_REWARDS_AVERAGE_ID_DESC = 'ERA_REWARDS_AVERAGE_ID_DESC',\n  ERA_REWARDS_AVERAGE_INDEXER_ID_ASC = 'ERA_REWARDS_AVERAGE_INDEXER_ID_ASC',\n  ERA_REWARDS_AVERAGE_INDEXER_ID_DESC = 'ERA_REWARDS_AVERAGE_INDEXER_ID_DESC',\n  ERA_REWARDS_AVERAGE_IS_COMMISSION_ASC = 'ERA_REWARDS_AVERAGE_IS_COMMISSION_ASC',\n  ERA_REWARDS_AVERAGE_IS_COMMISSION_DESC = 'ERA_REWARDS_AVERAGE_IS_COMMISSION_DESC',\n  ERA_REWARDS_AVERAGE_IS_INDEXER_ASC = 'ERA_REWARDS_AVERAGE_IS_INDEXER_ASC',\n  ERA_REWARDS_AVERAGE_IS_INDEXER_DESC = 'ERA_REWARDS_AVERAGE_IS_INDEXER_DESC',\n  ERA_REWARDS_BY_ERA_ID__COUNT_ASC = 'ERA_REWARDS_BY_ERA_ID__COUNT_ASC',\n  ERA_REWARDS_BY_ERA_ID__COUNT_DESC = 'ERA_REWARDS_BY_ERA_ID__COUNT_DESC',\n  ERA_REWARDS_COUNT_ASC = 'ERA_REWARDS_COUNT_ASC',\n  ERA_REWARDS_COUNT_DESC = 'ERA_REWARDS_COUNT_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_AMOUNT_ASC = 'ERA_REWARDS_DISTINCT_COUNT_AMOUNT_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_AMOUNT_DESC = 'ERA_REWARDS_DISTINCT_COUNT_AMOUNT_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_CLAIMED_ASC = 'ERA_REWARDS_DISTINCT_COUNT_CLAIMED_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_CLAIMED_DESC = 'ERA_REWARDS_DISTINCT_COUNT_CLAIMED_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_ASC = 'ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_DESC = 'ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_ASC = 'ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_DESC = 'ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_DESC',\n  ERA_REWARDS_MAX_AMOUNT_ASC = 'ERA_REWARDS_MAX_AMOUNT_ASC',\n  ERA_REWARDS_MAX_AMOUNT_DESC = 'ERA_REWARDS_MAX_AMOUNT_DESC',\n  ERA_REWARDS_MAX_BLOCK_RANGE_ASC = 'ERA_REWARDS_MAX_BLOCK_RANGE_ASC',\n  ERA_REWARDS_MAX_BLOCK_RANGE_DESC = 'ERA_REWARDS_MAX_BLOCK_RANGE_DESC',\n  ERA_REWARDS_MAX_CLAIMED_ASC = 'ERA_REWARDS_MAX_CLAIMED_ASC',\n  ERA_REWARDS_MAX_CLAIMED_DESC = 'ERA_REWARDS_MAX_CLAIMED_DESC',\n  ERA_REWARDS_MAX_CREATED_BLOCK_ASC = 'ERA_REWARDS_MAX_CREATED_BLOCK_ASC',\n  ERA_REWARDS_MAX_CREATED_BLOCK_DESC = 'ERA_REWARDS_MAX_CREATED_BLOCK_DESC',\n  ERA_REWARDS_MAX_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_MAX_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_MAX_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_MAX_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_MAX_DELEGATOR_ID_ASC = 'ERA_REWARDS_MAX_DELEGATOR_ID_ASC',\n  ERA_REWARDS_MAX_DELEGATOR_ID_DESC = 'ERA_REWARDS_MAX_DELEGATOR_ID_DESC',\n  ERA_REWARDS_MAX_ERA_IDX_ASC = 'ERA_REWARDS_MAX_ERA_IDX_ASC',\n  ERA_REWARDS_MAX_ERA_IDX_DESC = 'ERA_REWARDS_MAX_ERA_IDX_DESC',\n  ERA_REWARDS_MAX_ERA_ID_ASC = 'ERA_REWARDS_MAX_ERA_ID_ASC',\n  ERA_REWARDS_MAX_ERA_ID_DESC = 'ERA_REWARDS_MAX_ERA_ID_DESC',\n  ERA_REWARDS_MAX_ID_ASC = 'ERA_REWARDS_MAX_ID_ASC',\n  ERA_REWARDS_MAX_ID_DESC = 'ERA_REWARDS_MAX_ID_DESC',\n  ERA_REWARDS_MAX_INDEXER_ID_ASC = 'ERA_REWARDS_MAX_INDEXER_ID_ASC',\n  ERA_REWARDS_MAX_INDEXER_ID_DESC = 'ERA_REWARDS_MAX_INDEXER_ID_DESC',\n  ERA_REWARDS_MAX_IS_COMMISSION_ASC = 'ERA_REWARDS_MAX_IS_COMMISSION_ASC',\n  ERA_REWARDS_MAX_IS_COMMISSION_DESC = 'ERA_REWARDS_MAX_IS_COMMISSION_DESC',\n  ERA_REWARDS_MAX_IS_INDEXER_ASC = 'ERA_REWARDS_MAX_IS_INDEXER_ASC',\n  ERA_REWARDS_MAX_IS_INDEXER_DESC = 'ERA_REWARDS_MAX_IS_INDEXER_DESC',\n  ERA_REWARDS_MIN_AMOUNT_ASC = 'ERA_REWARDS_MIN_AMOUNT_ASC',\n  ERA_REWARDS_MIN_AMOUNT_DESC = 'ERA_REWARDS_MIN_AMOUNT_DESC',\n  ERA_REWARDS_MIN_BLOCK_RANGE_ASC = 'ERA_REWARDS_MIN_BLOCK_RANGE_ASC',\n  ERA_REWARDS_MIN_BLOCK_RANGE_DESC = 'ERA_REWARDS_MIN_BLOCK_RANGE_DESC',\n  ERA_REWARDS_MIN_CLAIMED_ASC = 'ERA_REWARDS_MIN_CLAIMED_ASC',\n  ERA_REWARDS_MIN_CLAIMED_DESC = 'ERA_REWARDS_MIN_CLAIMED_DESC',\n  ERA_REWARDS_MIN_CREATED_BLOCK_ASC = 'ERA_REWARDS_MIN_CREATED_BLOCK_ASC',\n  ERA_REWARDS_MIN_CREATED_BLOCK_DESC = 'ERA_REWARDS_MIN_CREATED_BLOCK_DESC',\n  ERA_REWARDS_MIN_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_MIN_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_MIN_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_MIN_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_MIN_DELEGATOR_ID_ASC = 'ERA_REWARDS_MIN_DELEGATOR_ID_ASC',\n  ERA_REWARDS_MIN_DELEGATOR_ID_DESC = 'ERA_REWARDS_MIN_DELEGATOR_ID_DESC',\n  ERA_REWARDS_MIN_ERA_IDX_ASC = 'ERA_REWARDS_MIN_ERA_IDX_ASC',\n  ERA_REWARDS_MIN_ERA_IDX_DESC = 'ERA_REWARDS_MIN_ERA_IDX_DESC',\n  ERA_REWARDS_MIN_ERA_ID_ASC = 'ERA_REWARDS_MIN_ERA_ID_ASC',\n  ERA_REWARDS_MIN_ERA_ID_DESC = 'ERA_REWARDS_MIN_ERA_ID_DESC',\n  ERA_REWARDS_MIN_ID_ASC = 'ERA_REWARDS_MIN_ID_ASC',\n  ERA_REWARDS_MIN_ID_DESC = 'ERA_REWARDS_MIN_ID_DESC',\n  ERA_REWARDS_MIN_INDEXER_ID_ASC = 'ERA_REWARDS_MIN_INDEXER_ID_ASC',\n  ERA_REWARDS_MIN_INDEXER_ID_DESC = 'ERA_REWARDS_MIN_INDEXER_ID_DESC',\n  ERA_REWARDS_MIN_IS_COMMISSION_ASC = 'ERA_REWARDS_MIN_IS_COMMISSION_ASC',\n  ERA_REWARDS_MIN_IS_COMMISSION_DESC = 'ERA_REWARDS_MIN_IS_COMMISSION_DESC',\n  ERA_REWARDS_MIN_IS_INDEXER_ASC = 'ERA_REWARDS_MIN_IS_INDEXER_ASC',\n  ERA_REWARDS_MIN_IS_INDEXER_DESC = 'ERA_REWARDS_MIN_IS_INDEXER_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_AMOUNT_ASC = 'ERA_REWARDS_STDDEV_POPULATION_AMOUNT_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_AMOUNT_DESC = 'ERA_REWARDS_STDDEV_POPULATION_AMOUNT_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_CLAIMED_ASC = 'ERA_REWARDS_STDDEV_POPULATION_CLAIMED_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_CLAIMED_DESC = 'ERA_REWARDS_STDDEV_POPULATION_CLAIMED_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_ASC = 'ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_DESC = 'ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_ASC = 'ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_DESC = 'ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_DESC',\n  ERA_REWARDS_SUM_AMOUNT_ASC = 'ERA_REWARDS_SUM_AMOUNT_ASC',\n  ERA_REWARDS_SUM_AMOUNT_DESC = 'ERA_REWARDS_SUM_AMOUNT_DESC',\n  ERA_REWARDS_SUM_BLOCK_RANGE_ASC = 'ERA_REWARDS_SUM_BLOCK_RANGE_ASC',\n  ERA_REWARDS_SUM_BLOCK_RANGE_DESC = 'ERA_REWARDS_SUM_BLOCK_RANGE_DESC',\n  ERA_REWARDS_SUM_CLAIMED_ASC = 'ERA_REWARDS_SUM_CLAIMED_ASC',\n  ERA_REWARDS_SUM_CLAIMED_DESC = 'ERA_REWARDS_SUM_CLAIMED_DESC',\n  ERA_REWARDS_SUM_CREATED_BLOCK_ASC = 'ERA_REWARDS_SUM_CREATED_BLOCK_ASC',\n  ERA_REWARDS_SUM_CREATED_BLOCK_DESC = 'ERA_REWARDS_SUM_CREATED_BLOCK_DESC',\n  ERA_REWARDS_SUM_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_SUM_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_SUM_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_SUM_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_SUM_DELEGATOR_ID_ASC = 'ERA_REWARDS_SUM_DELEGATOR_ID_ASC',\n  ERA_REWARDS_SUM_DELEGATOR_ID_DESC = 'ERA_REWARDS_SUM_DELEGATOR_ID_DESC',\n  ERA_REWARDS_SUM_ERA_IDX_ASC = 'ERA_REWARDS_SUM_ERA_IDX_ASC',\n  ERA_REWARDS_SUM_ERA_IDX_DESC = 'ERA_REWARDS_SUM_ERA_IDX_DESC',\n  ERA_REWARDS_SUM_ERA_ID_ASC = 'ERA_REWARDS_SUM_ERA_ID_ASC',\n  ERA_REWARDS_SUM_ERA_ID_DESC = 'ERA_REWARDS_SUM_ERA_ID_DESC',\n  ERA_REWARDS_SUM_ID_ASC = 'ERA_REWARDS_SUM_ID_ASC',\n  ERA_REWARDS_SUM_ID_DESC = 'ERA_REWARDS_SUM_ID_DESC',\n  ERA_REWARDS_SUM_INDEXER_ID_ASC = 'ERA_REWARDS_SUM_INDEXER_ID_ASC',\n  ERA_REWARDS_SUM_INDEXER_ID_DESC = 'ERA_REWARDS_SUM_INDEXER_ID_DESC',\n  ERA_REWARDS_SUM_IS_COMMISSION_ASC = 'ERA_REWARDS_SUM_IS_COMMISSION_ASC',\n  ERA_REWARDS_SUM_IS_COMMISSION_DESC = 'ERA_REWARDS_SUM_IS_COMMISSION_DESC',\n  ERA_REWARDS_SUM_IS_INDEXER_ASC = 'ERA_REWARDS_SUM_IS_INDEXER_ASC',\n  ERA_REWARDS_SUM_IS_INDEXER_DESC = 'ERA_REWARDS_SUM_IS_INDEXER_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_DESC',\n  ERA_STAKES_AVERAGE_BLOCK_RANGE_ASC = 'ERA_STAKES_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_STAKES_AVERAGE_BLOCK_RANGE_DESC = 'ERA_STAKES_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_STAKES_AVERAGE_DELEGATOR_ID_ASC = 'ERA_STAKES_AVERAGE_DELEGATOR_ID_ASC',\n  ERA_STAKES_AVERAGE_DELEGATOR_ID_DESC = 'ERA_STAKES_AVERAGE_DELEGATOR_ID_DESC',\n  ERA_STAKES_AVERAGE_ERA_IDX_ASC = 'ERA_STAKES_AVERAGE_ERA_IDX_ASC',\n  ERA_STAKES_AVERAGE_ERA_IDX_DESC = 'ERA_STAKES_AVERAGE_ERA_IDX_DESC',\n  ERA_STAKES_AVERAGE_ERA_ID_ASC = 'ERA_STAKES_AVERAGE_ERA_ID_ASC',\n  ERA_STAKES_AVERAGE_ERA_ID_DESC = 'ERA_STAKES_AVERAGE_ERA_ID_DESC',\n  ERA_STAKES_AVERAGE_ID_ASC = 'ERA_STAKES_AVERAGE_ID_ASC',\n  ERA_STAKES_AVERAGE_ID_DESC = 'ERA_STAKES_AVERAGE_ID_DESC',\n  ERA_STAKES_AVERAGE_INDEXER_ID_ASC = 'ERA_STAKES_AVERAGE_INDEXER_ID_ASC',\n  ERA_STAKES_AVERAGE_INDEXER_ID_DESC = 'ERA_STAKES_AVERAGE_INDEXER_ID_DESC',\n  ERA_STAKES_AVERAGE_STAKE_ASC = 'ERA_STAKES_AVERAGE_STAKE_ASC',\n  ERA_STAKES_AVERAGE_STAKE_DESC = 'ERA_STAKES_AVERAGE_STAKE_DESC',\n  ERA_STAKES_BY_ERA_ID__COUNT_ASC = 'ERA_STAKES_BY_ERA_ID__COUNT_ASC',\n  ERA_STAKES_BY_ERA_ID__COUNT_DESC = 'ERA_STAKES_BY_ERA_ID__COUNT_DESC',\n  ERA_STAKES_COUNT_ASC = 'ERA_STAKES_COUNT_ASC',\n  ERA_STAKES_COUNT_DESC = 'ERA_STAKES_COUNT_DESC',\n  ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_STAKES_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_STAKES_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_ERA_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_ERA_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_STAKE_ASC = 'ERA_STAKES_DISTINCT_COUNT_STAKE_ASC',\n  ERA_STAKES_DISTINCT_COUNT_STAKE_DESC = 'ERA_STAKES_DISTINCT_COUNT_STAKE_DESC',\n  ERA_STAKES_MAX_BLOCK_RANGE_ASC = 'ERA_STAKES_MAX_BLOCK_RANGE_ASC',\n  ERA_STAKES_MAX_BLOCK_RANGE_DESC = 'ERA_STAKES_MAX_BLOCK_RANGE_DESC',\n  ERA_STAKES_MAX_DELEGATOR_ID_ASC = 'ERA_STAKES_MAX_DELEGATOR_ID_ASC',\n  ERA_STAKES_MAX_DELEGATOR_ID_DESC = 'ERA_STAKES_MAX_DELEGATOR_ID_DESC',\n  ERA_STAKES_MAX_ERA_IDX_ASC = 'ERA_STAKES_MAX_ERA_IDX_ASC',\n  ERA_STAKES_MAX_ERA_IDX_DESC = 'ERA_STAKES_MAX_ERA_IDX_DESC',\n  ERA_STAKES_MAX_ERA_ID_ASC = 'ERA_STAKES_MAX_ERA_ID_ASC',\n  ERA_STAKES_MAX_ERA_ID_DESC = 'ERA_STAKES_MAX_ERA_ID_DESC',\n  ERA_STAKES_MAX_ID_ASC = 'ERA_STAKES_MAX_ID_ASC',\n  ERA_STAKES_MAX_ID_DESC = 'ERA_STAKES_MAX_ID_DESC',\n  ERA_STAKES_MAX_INDEXER_ID_ASC = 'ERA_STAKES_MAX_INDEXER_ID_ASC',\n  ERA_STAKES_MAX_INDEXER_ID_DESC = 'ERA_STAKES_MAX_INDEXER_ID_DESC',\n  ERA_STAKES_MAX_STAKE_ASC = 'ERA_STAKES_MAX_STAKE_ASC',\n  ERA_STAKES_MAX_STAKE_DESC = 'ERA_STAKES_MAX_STAKE_DESC',\n  ERA_STAKES_MIN_BLOCK_RANGE_ASC = 'ERA_STAKES_MIN_BLOCK_RANGE_ASC',\n  ERA_STAKES_MIN_BLOCK_RANGE_DESC = 'ERA_STAKES_MIN_BLOCK_RANGE_DESC',\n  ERA_STAKES_MIN_DELEGATOR_ID_ASC = 'ERA_STAKES_MIN_DELEGATOR_ID_ASC',\n  ERA_STAKES_MIN_DELEGATOR_ID_DESC = 'ERA_STAKES_MIN_DELEGATOR_ID_DESC',\n  ERA_STAKES_MIN_ERA_IDX_ASC = 'ERA_STAKES_MIN_ERA_IDX_ASC',\n  ERA_STAKES_MIN_ERA_IDX_DESC = 'ERA_STAKES_MIN_ERA_IDX_DESC',\n  ERA_STAKES_MIN_ERA_ID_ASC = 'ERA_STAKES_MIN_ERA_ID_ASC',\n  ERA_STAKES_MIN_ERA_ID_DESC = 'ERA_STAKES_MIN_ERA_ID_DESC',\n  ERA_STAKES_MIN_ID_ASC = 'ERA_STAKES_MIN_ID_ASC',\n  ERA_STAKES_MIN_ID_DESC = 'ERA_STAKES_MIN_ID_DESC',\n  ERA_STAKES_MIN_INDEXER_ID_ASC = 'ERA_STAKES_MIN_INDEXER_ID_ASC',\n  ERA_STAKES_MIN_INDEXER_ID_DESC = 'ERA_STAKES_MIN_INDEXER_ID_DESC',\n  ERA_STAKES_MIN_STAKE_ASC = 'ERA_STAKES_MIN_STAKE_ASC',\n  ERA_STAKES_MIN_STAKE_DESC = 'ERA_STAKES_MIN_STAKE_DESC',\n  ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_STAKES_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_STAKES_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_ERA_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_ERA_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_STAKE_ASC = 'ERA_STAKES_STDDEV_POPULATION_STAKE_ASC',\n  ERA_STAKES_STDDEV_POPULATION_STAKE_DESC = 'ERA_STAKES_STDDEV_POPULATION_STAKE_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_STAKE_ASC = 'ERA_STAKES_STDDEV_SAMPLE_STAKE_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_STAKE_DESC = 'ERA_STAKES_STDDEV_SAMPLE_STAKE_DESC',\n  ERA_STAKES_SUM_BLOCK_RANGE_ASC = 'ERA_STAKES_SUM_BLOCK_RANGE_ASC',\n  ERA_STAKES_SUM_BLOCK_RANGE_DESC = 'ERA_STAKES_SUM_BLOCK_RANGE_DESC',\n  ERA_STAKES_SUM_DELEGATOR_ID_ASC = 'ERA_STAKES_SUM_DELEGATOR_ID_ASC',\n  ERA_STAKES_SUM_DELEGATOR_ID_DESC = 'ERA_STAKES_SUM_DELEGATOR_ID_DESC',\n  ERA_STAKES_SUM_ERA_IDX_ASC = 'ERA_STAKES_SUM_ERA_IDX_ASC',\n  ERA_STAKES_SUM_ERA_IDX_DESC = 'ERA_STAKES_SUM_ERA_IDX_DESC',\n  ERA_STAKES_SUM_ERA_ID_ASC = 'ERA_STAKES_SUM_ERA_ID_ASC',\n  ERA_STAKES_SUM_ERA_ID_DESC = 'ERA_STAKES_SUM_ERA_ID_DESC',\n  ERA_STAKES_SUM_ID_ASC = 'ERA_STAKES_SUM_ID_ASC',\n  ERA_STAKES_SUM_ID_DESC = 'ERA_STAKES_SUM_ID_DESC',\n  ERA_STAKES_SUM_INDEXER_ID_ASC = 'ERA_STAKES_SUM_INDEXER_ID_ASC',\n  ERA_STAKES_SUM_INDEXER_ID_DESC = 'ERA_STAKES_SUM_INDEXER_ID_DESC',\n  ERA_STAKES_SUM_STAKE_ASC = 'ERA_STAKES_SUM_STAKE_ASC',\n  ERA_STAKES_SUM_STAKE_DESC = 'ERA_STAKES_SUM_STAKE_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_STAKE_ASC = 'ERA_STAKES_VARIANCE_POPULATION_STAKE_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_STAKE_DESC = 'ERA_STAKES_VARIANCE_POPULATION_STAKE_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_STAKE_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_STAKE_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_STAKE_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_STAKE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_BLOCK_RANGE_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_BLOCK_RANGE_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_LAST_UPDATE_ERA_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_LAST_UPDATE_ERA_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_LAST_UPDATE_ERA_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_AVERAGE_LAST_UPDATE_ERA_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_COUNT_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_COUNT_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_COUNT_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_COUNT_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_LAST_UPDATE_ERA_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_LAST_UPDATE_ERA_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_LAST_UPDATE_ERA_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_DISTINCT_COUNT_LAST_UPDATE_ERA_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_BLOCK_RANGE_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_BLOCK_RANGE_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_BLOCK_RANGE_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_BLOCK_RANGE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_LAST_UPDATE_ERA_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_LAST_UPDATE_ERA_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_LAST_UPDATE_ERA_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MAX_LAST_UPDATE_ERA_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_BLOCK_RANGE_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_BLOCK_RANGE_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_BLOCK_RANGE_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_BLOCK_RANGE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_LAST_UPDATE_ERA_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_LAST_UPDATE_ERA_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_LAST_UPDATE_ERA_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_MIN_LAST_UPDATE_ERA_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_LAST_UPDATE_ERA_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_LAST_UPDATE_ERA_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_LAST_UPDATE_ERA_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_POPULATION_LAST_UPDATE_ERA_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_LAST_UPDATE_ERA_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_LAST_UPDATE_ERA_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_LAST_UPDATE_ERA_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_STDDEV_SAMPLE_LAST_UPDATE_ERA_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_BLOCK_RANGE_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_BLOCK_RANGE_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_BLOCK_RANGE_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_BLOCK_RANGE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_LAST_UPDATE_ERA_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_LAST_UPDATE_ERA_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_LAST_UPDATE_ERA_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_SUM_LAST_UPDATE_ERA_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_LAST_UPDATE_ERA_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_LAST_UPDATE_ERA_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_LAST_UPDATE_ERA_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_POPULATION_LAST_UPDATE_ERA_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_LAST_UPDATE_ERA_ID_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_LAST_UPDATE_ERA_ID_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_LAST_UPDATE_ERA_ID_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID_VARIANCE_SAMPLE_LAST_UPDATE_ERA_ID_DESC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID__COUNT_ASC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID__COUNT_ASC',\n  ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID__COUNT_DESC = 'ERA_STAKE_UPDATES_BY_LAST_UPDATE_ERA_ID__COUNT_DESC',\n  FORCE_NEXT_ASC = 'FORCE_NEXT_ASC',\n  FORCE_NEXT_DESC = 'FORCE_NEXT_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ID_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_ID_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ID_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_ID_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_BY_ERA_ID__COUNT_ASC = 'INDEXER_COMMISSION_RATES_BY_ERA_ID__COUNT_ASC',\n  INDEXER_COMMISSION_RATES_BY_ERA_ID__COUNT_DESC = 'INDEXER_COMMISSION_RATES_BY_ERA_ID__COUNT_DESC',\n  INDEXER_COMMISSION_RATES_COUNT_ASC = 'INDEXER_COMMISSION_RATES_COUNT_ASC',\n  INDEXER_COMMISSION_RATES_COUNT_DESC = 'INDEXER_COMMISSION_RATES_COUNT_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ID_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ID_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_MAX_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_MAX_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_MAX_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_MAX_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_MAX_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_MAX_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_MAX_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_MAX_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_MAX_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_MAX_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_MAX_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_MAX_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_MAX_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_MAX_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_MAX_ID_ASC = 'INDEXER_COMMISSION_RATES_MAX_ID_ASC',\n  INDEXER_COMMISSION_RATES_MAX_ID_DESC = 'INDEXER_COMMISSION_RATES_MAX_ID_DESC',\n  INDEXER_COMMISSION_RATES_MAX_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_MAX_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_MAX_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_MAX_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_MIN_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_MIN_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_MIN_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_MIN_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_MIN_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_MIN_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_MIN_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_MIN_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_MIN_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_MIN_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_MIN_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_MIN_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_MIN_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_MIN_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_MIN_ID_ASC = 'INDEXER_COMMISSION_RATES_MIN_ID_ASC',\n  INDEXER_COMMISSION_RATES_MIN_ID_DESC = 'INDEXER_COMMISSION_RATES_MIN_ID_DESC',\n  INDEXER_COMMISSION_RATES_MIN_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_MIN_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_MIN_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_MIN_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_SUM_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_SUM_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_SUM_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_SUM_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_SUM_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_SUM_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_SUM_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_SUM_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_SUM_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_SUM_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_SUM_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_SUM_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_SUM_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_SUM_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_SUM_ID_ASC = 'INDEXER_COMMISSION_RATES_SUM_ID_ASC',\n  INDEXER_COMMISSION_RATES_SUM_ID_DESC = 'INDEXER_COMMISSION_RATES_SUM_ID_DESC',\n  INDEXER_COMMISSION_RATES_SUM_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_SUM_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_SUM_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_SUM_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_STAKES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_STAKES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_STAKES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_AVERAGE_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_AVERAGE_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_AVERAGE_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_AVERAGE_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_AVERAGE_ERA_IDX_ASC = 'INDEXER_STAKES_AVERAGE_ERA_IDX_ASC',\n  INDEXER_STAKES_AVERAGE_ERA_IDX_DESC = 'INDEXER_STAKES_AVERAGE_ERA_IDX_DESC',\n  INDEXER_STAKES_AVERAGE_ERA_ID_ASC = 'INDEXER_STAKES_AVERAGE_ERA_ID_ASC',\n  INDEXER_STAKES_AVERAGE_ERA_ID_DESC = 'INDEXER_STAKES_AVERAGE_ERA_ID_DESC',\n  INDEXER_STAKES_AVERAGE_ID_ASC = 'INDEXER_STAKES_AVERAGE_ID_ASC',\n  INDEXER_STAKES_AVERAGE_ID_DESC = 'INDEXER_STAKES_AVERAGE_ID_DESC',\n  INDEXER_STAKES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_STAKES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_STAKES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_STAKES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_STAKES_AVERAGE_INDEXER_STAKE_ASC = 'INDEXER_STAKES_AVERAGE_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_AVERAGE_INDEXER_STAKE_DESC = 'INDEXER_STAKES_AVERAGE_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_AVERAGE_TOTAL_STAKE_ASC = 'INDEXER_STAKES_AVERAGE_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_AVERAGE_TOTAL_STAKE_DESC = 'INDEXER_STAKES_AVERAGE_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_BY_ERA_ID__COUNT_ASC = 'INDEXER_STAKES_BY_ERA_ID__COUNT_ASC',\n  INDEXER_STAKES_BY_ERA_ID__COUNT_DESC = 'INDEXER_STAKES_BY_ERA_ID__COUNT_DESC',\n  INDEXER_STAKES_COUNT_ASC = 'INDEXER_STAKES_COUNT_ASC',\n  INDEXER_STAKES_COUNT_DESC = 'INDEXER_STAKES_COUNT_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_ERA_ID_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_ERA_ID_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_ERA_ID_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_ERA_ID_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_ID_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_ID_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_INDEXER_STAKE_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_INDEXER_STAKE_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_TOTAL_STAKE_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_TOTAL_STAKE_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_MAX_BLOCK_RANGE_ASC = 'INDEXER_STAKES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_MAX_BLOCK_RANGE_DESC = 'INDEXER_STAKES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_MAX_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_MAX_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_MAX_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_MAX_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_MAX_ERA_IDX_ASC = 'INDEXER_STAKES_MAX_ERA_IDX_ASC',\n  INDEXER_STAKES_MAX_ERA_IDX_DESC = 'INDEXER_STAKES_MAX_ERA_IDX_DESC',\n  INDEXER_STAKES_MAX_ERA_ID_ASC = 'INDEXER_STAKES_MAX_ERA_ID_ASC',\n  INDEXER_STAKES_MAX_ERA_ID_DESC = 'INDEXER_STAKES_MAX_ERA_ID_DESC',\n  INDEXER_STAKES_MAX_ID_ASC = 'INDEXER_STAKES_MAX_ID_ASC',\n  INDEXER_STAKES_MAX_ID_DESC = 'INDEXER_STAKES_MAX_ID_DESC',\n  INDEXER_STAKES_MAX_INDEXER_ID_ASC = 'INDEXER_STAKES_MAX_INDEXER_ID_ASC',\n  INDEXER_STAKES_MAX_INDEXER_ID_DESC = 'INDEXER_STAKES_MAX_INDEXER_ID_DESC',\n  INDEXER_STAKES_MAX_INDEXER_STAKE_ASC = 'INDEXER_STAKES_MAX_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_MAX_INDEXER_STAKE_DESC = 'INDEXER_STAKES_MAX_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_MAX_TOTAL_STAKE_ASC = 'INDEXER_STAKES_MAX_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_MAX_TOTAL_STAKE_DESC = 'INDEXER_STAKES_MAX_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_MIN_BLOCK_RANGE_ASC = 'INDEXER_STAKES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_MIN_BLOCK_RANGE_DESC = 'INDEXER_STAKES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_MIN_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_MIN_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_MIN_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_MIN_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_MIN_ERA_IDX_ASC = 'INDEXER_STAKES_MIN_ERA_IDX_ASC',\n  INDEXER_STAKES_MIN_ERA_IDX_DESC = 'INDEXER_STAKES_MIN_ERA_IDX_DESC',\n  INDEXER_STAKES_MIN_ERA_ID_ASC = 'INDEXER_STAKES_MIN_ERA_ID_ASC',\n  INDEXER_STAKES_MIN_ERA_ID_DESC = 'INDEXER_STAKES_MIN_ERA_ID_DESC',\n  INDEXER_STAKES_MIN_ID_ASC = 'INDEXER_STAKES_MIN_ID_ASC',\n  INDEXER_STAKES_MIN_ID_DESC = 'INDEXER_STAKES_MIN_ID_DESC',\n  INDEXER_STAKES_MIN_INDEXER_ID_ASC = 'INDEXER_STAKES_MIN_INDEXER_ID_ASC',\n  INDEXER_STAKES_MIN_INDEXER_ID_DESC = 'INDEXER_STAKES_MIN_INDEXER_ID_DESC',\n  INDEXER_STAKES_MIN_INDEXER_STAKE_ASC = 'INDEXER_STAKES_MIN_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_MIN_INDEXER_STAKE_DESC = 'INDEXER_STAKES_MIN_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_MIN_TOTAL_STAKE_ASC = 'INDEXER_STAKES_MIN_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_MIN_TOTAL_STAKE_DESC = 'INDEXER_STAKES_MIN_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_ERA_ID_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_ERA_ID_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_ERA_ID_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_ERA_ID_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_ID_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_ID_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_INDEXER_STAKE_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_INDEXER_STAKE_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_TOTAL_STAKE_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_TOTAL_STAKE_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ERA_ID_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_ERA_ID_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ERA_ID_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_ERA_ID_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_STAKE_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_STAKE_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_TOTAL_STAKE_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_TOTAL_STAKE_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_SUM_BLOCK_RANGE_ASC = 'INDEXER_STAKES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_SUM_BLOCK_RANGE_DESC = 'INDEXER_STAKES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_SUM_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_SUM_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_SUM_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_SUM_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_SUM_ERA_IDX_ASC = 'INDEXER_STAKES_SUM_ERA_IDX_ASC',\n  INDEXER_STAKES_SUM_ERA_IDX_DESC = 'INDEXER_STAKES_SUM_ERA_IDX_DESC',\n  INDEXER_STAKES_SUM_ERA_ID_ASC = 'INDEXER_STAKES_SUM_ERA_ID_ASC',\n  INDEXER_STAKES_SUM_ERA_ID_DESC = 'INDEXER_STAKES_SUM_ERA_ID_DESC',\n  INDEXER_STAKES_SUM_ID_ASC = 'INDEXER_STAKES_SUM_ID_ASC',\n  INDEXER_STAKES_SUM_ID_DESC = 'INDEXER_STAKES_SUM_ID_DESC',\n  INDEXER_STAKES_SUM_INDEXER_ID_ASC = 'INDEXER_STAKES_SUM_INDEXER_ID_ASC',\n  INDEXER_STAKES_SUM_INDEXER_ID_DESC = 'INDEXER_STAKES_SUM_INDEXER_ID_DESC',\n  INDEXER_STAKES_SUM_INDEXER_STAKE_ASC = 'INDEXER_STAKES_SUM_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_SUM_INDEXER_STAKE_DESC = 'INDEXER_STAKES_SUM_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_SUM_TOTAL_STAKE_ASC = 'INDEXER_STAKES_SUM_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_SUM_TOTAL_STAKE_DESC = 'INDEXER_STAKES_SUM_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ERA_ID_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_ERA_ID_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ERA_ID_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_ERA_ID_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_TOTAL_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_TOTAL_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_TOTAL_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_TOTAL_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_ERA_IDX_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_ERA_IDX_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_ERA_IDX_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_ERA_IDX_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_ERA_ID_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_ERA_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_ERA_ID_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_ERA_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_ID_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_ID_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_NEXT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_AVERAGE_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_AVERAGE_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_BY_ERA_ID__COUNT_ASC = 'INDEXER_STAKE_SUMMARIES_BY_ERA_ID__COUNT_ASC',\n  INDEXER_STAKE_SUMMARIES_BY_ERA_ID__COUNT_DESC = 'INDEXER_STAKE_SUMMARIES_BY_ERA_ID__COUNT_DESC',\n  INDEXER_STAKE_SUMMARIES_COUNT_ASC = 'INDEXER_STAKE_SUMMARIES_COUNT_ASC',\n  INDEXER_STAKE_SUMMARIES_COUNT_DESC = 'INDEXER_STAKE_SUMMARIES_COUNT_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ERA_ID_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ERA_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ERA_ID_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ERA_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_NEXT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_DISTINCT_COUNT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_ERA_IDX_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_ERA_IDX_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_ERA_IDX_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_ERA_IDX_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_ERA_ID_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_ERA_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_ERA_ID_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_ERA_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_ID_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_ID_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_NEXT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_NEXT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_NEXT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_NEXT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_NEXT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_NEXT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_NEXT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_NEXT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_NEXT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_NEXT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_NEXT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_NEXT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MAX_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MAX_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MAX_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MAX_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_ERA_IDX_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_ERA_IDX_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_ERA_IDX_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_ERA_IDX_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_ERA_ID_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_ERA_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_ERA_ID_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_ERA_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_ID_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_ID_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_NEXT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_NEXT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_NEXT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_NEXT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_NEXT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_NEXT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_NEXT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_NEXT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_NEXT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_NEXT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_NEXT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_NEXT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_MIN_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_MIN_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_MIN_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_MIN_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ERA_ID_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ERA_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ERA_ID_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ERA_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_NEXT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_POPULATION_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ERA_ID_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ERA_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ERA_ID_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ERA_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_NEXT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_STDDEV_SAMPLE_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_ERA_IDX_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_ERA_IDX_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_ERA_IDX_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_ERA_IDX_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_ERA_ID_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_ERA_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_ERA_ID_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_ERA_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_ID_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_ID_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_NEXT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_NEXT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_NEXT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_NEXT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_NEXT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_NEXT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_NEXT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_NEXT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_NEXT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_NEXT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_NEXT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_NEXT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_SUM_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_SUM_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_SUM_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_SUM_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ERA_ID_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ERA_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ERA_ID_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ERA_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_NEXT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_POPULATION_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ERA_ID_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ERA_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ERA_ID_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ERA_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_INDEXER_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_INDEXER_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_INDEXER_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_INDEXER_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_NEXT_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_TOTAL_STAKE_ASC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_TOTAL_STAKE_ASC',\n  INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_TOTAL_STAKE_DESC = 'INDEXER_STAKE_SUMMARIES_VARIANCE_SAMPLE_TOTAL_STAKE_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  START_TIME_ASC = 'START_TIME_ASC',\n  START_TIME_DESC = 'START_TIME_DESC',\n}\n\nexport type Exception = Node & {\n  readonly __typename: 'Exception';\n  readonly error: Scalars['String']['output'];\n  readonly handler: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type ExceptionAggregates = {\n  readonly __typename: 'ExceptionAggregates';\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<ExceptionDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n};\n\nexport type ExceptionDistinctCountAggregates = {\n  readonly __typename: 'ExceptionDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of error across the matching connection */\n  readonly error: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of handler across the matching connection */\n  readonly handler: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Exception` object types. All fields are combined with a logical ‘and.’ */\nexport type ExceptionFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<ExceptionFilter>>;\n  /** Filter by the object’s `error` field. */\n  readonly error: InputMaybe<StringFilter>;\n  /** Filter by the object’s `handler` field. */\n  readonly handler: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<ExceptionFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<ExceptionFilter>>;\n};\n\n/** A connection to a list of `Exception` values. */\nexport type ExceptionsConnection = {\n  readonly __typename: 'ExceptionsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ExceptionAggregates>;\n  /** A list of edges which contains the `Exception` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ExceptionsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ExceptionAggregates>>;\n  /** A list of `Exception` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Exception>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Exception` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Exception` values. */\nexport type ExceptionsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ExceptionsGroupBy>;\n  having: InputMaybe<ExceptionsHavingInput>;\n};\n\n/** A `Exception` edge in the connection. */\nexport type ExceptionsEdge = {\n  readonly __typename: 'ExceptionsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Exception` at the end of the edge. */\n  readonly node: Maybe<Exception>;\n};\n\n/** Grouping methods for `Exception` for usage during aggregation. */\nexport enum ExceptionsGroupBy {\n  ERROR = 'ERROR',\n  HANDLER = 'HANDLER',\n  ID = 'ID',\n}\n\n/** Conditions for `Exception` aggregates. */\nexport type ExceptionsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<ExceptionsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<ExceptionsHavingInput>>;\n};\n\n/** Methods to use when ordering `Exception`. */\nexport enum ExceptionsOrderBy {\n  ERROR_ASC = 'ERROR_ASC',\n  ERROR_DESC = 'ERROR_DESC',\n  HANDLER_ASC = 'HANDLER_ASC',\n  HANDLER_DESC = 'HANDLER_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type HavingBigfloatFilter = {\n  readonly equalTo: InputMaybe<Scalars['BigFloat']['input']>;\n  readonly greaterThan: InputMaybe<Scalars['BigFloat']['input']>;\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['BigFloat']['input']>;\n  readonly lessThan: InputMaybe<Scalars['BigFloat']['input']>;\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['BigFloat']['input']>;\n  readonly notEqualTo: InputMaybe<Scalars['BigFloat']['input']>;\n};\n\nexport type HavingDatetimeFilter = {\n  readonly equalTo: InputMaybe<Scalars['Datetime']['input']>;\n  readonly greaterThan: InputMaybe<Scalars['Datetime']['input']>;\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['Datetime']['input']>;\n  readonly lessThan: InputMaybe<Scalars['Datetime']['input']>;\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['Datetime']['input']>;\n  readonly notEqualTo: InputMaybe<Scalars['Datetime']['input']>;\n};\n\nexport type HavingIntFilter = {\n  readonly equalTo: InputMaybe<Scalars['Int']['input']>;\n  readonly greaterThan: InputMaybe<Scalars['Int']['input']>;\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['Int']['input']>;\n  readonly lessThan: InputMaybe<Scalars['Int']['input']>;\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['Int']['input']>;\n  readonly notEqualTo: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type Indexer = Node & {\n  readonly __typename: 'Indexer';\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: AcceptedOffersConnection;\n  readonly active: Scalars['Boolean']['output'];\n  readonly capacity: Scalars['JSON']['output'];\n  readonly commission: Scalars['JSON']['output'];\n  readonly controller: Maybe<Scalars['String']['output']>;\n  /** Reads and enables pagination through a set of `Controller`. */\n  readonly controllers: ControllersConnection;\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Reads and enables pagination through a set of `Delegation`. */\n  readonly delegations: DelegationsConnection;\n  /** Reads and enables pagination through a set of `Delegator`. */\n  readonly delegatorsByDelegationIndexerIdAndDelegatorId: IndexerDelegatorsByDelegationIndexerIdAndDelegatorIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Delegator`. */\n  readonly delegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorId: IndexerDelegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Delegator`. */\n  readonly delegatorsByEraRewardIndexerIdAndDelegatorId: IndexerDelegatorsByEraRewardIndexerIdAndDelegatorIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Delegator`. */\n  readonly delegatorsByEraStakeIndexerIdAndDelegatorId: IndexerDelegatorsByEraStakeIndexerIdAndDelegatorIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentId: IndexerDeploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerAllocationIndexerIdAndDeploymentId: IndexerDeploymentsByIndexerAllocationIndexerIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerAllocationRewardIndexerIdAndDeploymentId: IndexerDeploymentsByIndexerAllocationRewardIndexerIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentId: IndexerDeploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentId: IndexerDeploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerDeploymentIndexerIdAndDeploymentId: IndexerDeploymentsByIndexerDeploymentIndexerIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerMissedLaborIndexerIdAndDeploymentId: IndexerDeploymentsByIndexerMissedLaborIndexerIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `EraDelegatorIndexerApy`. */\n  readonly eraDelegatorIndexerApies: EraDelegatorIndexerApiesConnection;\n  /** Reads and enables pagination through a set of `EraIndexerApy`. */\n  readonly eraIndexerApies: EraIndexerApiesConnection;\n  /** Reads and enables pagination through a set of `EraIndexerDeploymentApy`. */\n  readonly eraIndexerDeploymentApies: EraIndexerDeploymentApiesConnection;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: EraRewardsConnection;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: EraStakesConnection;\n  /** Reads and enables pagination through a set of `Era`. */\n  readonly erasByEraRewardIndexerIdAndEraId: IndexerErasByEraRewardIndexerIdAndEraIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Era`. */\n  readonly erasByEraStakeIndexerIdAndEraId: IndexerErasByEraStakeIndexerIdAndEraIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Era`. */\n  readonly erasByIndexerCommissionRateIndexerIdAndEraId: IndexerErasByIndexerCommissionRateIndexerIdAndEraIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Era`. */\n  readonly erasByIndexerStakeIndexerIdAndEraId: IndexerErasByIndexerStakeIndexerIdAndEraIdManyToManyConnection;\n  readonly id: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `IndexerAllocationOverflow`. */\n  readonly indexerAllocationOverflows: IndexerAllocationOverflowsConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: IndexerAllocationRewardSummariesConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: IndexerAllocationRewardsConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: IndexerAllocationSummariesConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: IndexerAllocationsConnection;\n  /** Reads and enables pagination through a set of `IndexerApySummary`. */\n  readonly indexerApySummaries: IndexerApySummariesConnection;\n  /** Reads and enables pagination through a set of `IndexerCommissionRate`. */\n  readonly indexerCommissionRates: IndexerCommissionRatesConnection;\n  /** Reads and enables pagination through a set of `IndexerEraDeploymentReward`. */\n  readonly indexerEraDeploymentRewards: IndexerEraDeploymentRewardsConnection;\n  /** Reads and enables pagination through a set of `IndexerLaborHistory`. */\n  readonly indexerLaborHistories: IndexerLaborHistoriesConnection;\n  /** Reads and enables pagination through a set of `IndexerMissedLabor`. */\n  readonly indexerMissedLabors: IndexerMissedLaborsConnection;\n  /** Reads and enables pagination through a set of `IndexerStakeWeight`. */\n  readonly indexerStakeWeights: IndexerStakeWeightsConnection;\n  /** Reads and enables pagination through a set of `IndexerStake`. */\n  readonly indexerStakes: IndexerStakesConnection;\n  readonly lastClaimEra: Maybe<Scalars['String']['output']>;\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  readonly lastSettledEra: Maybe<Scalars['String']['output']>;\n  readonly maxUnstakeAmount: Scalars['JSON']['output'];\n  readonly metadata: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads and enables pagination through a set of `Offer`. */\n  readonly offersByAcceptedOfferIndexerIdAndOfferId: IndexerOffersByAcceptedOfferIndexerIdAndOfferIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `IndexerDeployment`. */\n  readonly projects: IndexerDeploymentsConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByIndexerAllocationIndexerIdAndProjectId: IndexerProjectsByIndexerAllocationIndexerIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByIndexerAllocationRewardIndexerIdAndProjectId: IndexerProjectsByIndexerAllocationRewardIndexerIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByIndexerAllocationRewardSummaryIndexerIdAndProjectId: IndexerProjectsByIndexerAllocationRewardSummaryIndexerIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projectsByIndexerAllocationSummaryIndexerIdAndProjectId: IndexerProjectsByIndexerAllocationSummaryIndexerIdAndProjectIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `IndexerReward`. */\n  readonly rewards: IndexerRewardsConnection;\n  readonly selfStake: Scalars['JSON']['output'];\n  /** Reads and enables pagination through a set of `ServiceAgreement`. */\n  readonly serviceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementId: IndexerServiceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementIdManyToManyConnection;\n  readonly totalStake: Scalars['JSON']['output'];\n};\n\nexport type IndexerAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerControllersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Controllers_Distinct_Enum>>>;\n  filter: InputMaybe<ControllerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ControllersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDelegationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegations_Distinct_Enum>>>;\n  filter: InputMaybe<DelegationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDelegatorsByDelegationIndexerIdAndDelegatorIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegators_Distinct_Enum>>>;\n  filter: InputMaybe<DelegatorFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegatorsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDelegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegators_Distinct_Enum>>>;\n  filter: InputMaybe<DelegatorFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegatorsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDelegatorsByEraRewardIndexerIdAndDelegatorIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegators_Distinct_Enum>>>;\n  filter: InputMaybe<DelegatorFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegatorsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDelegatorsByEraStakeIndexerIdAndDelegatorIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegators_Distinct_Enum>>>;\n  filter: InputMaybe<DelegatorFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegatorsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDeploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDeploymentsByIndexerAllocationIndexerIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDeploymentsByIndexerAllocationRewardIndexerIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDeploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDeploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDeploymentsByIndexerDeploymentIndexerIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDeploymentsByIndexerMissedLaborIndexerIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerEraDelegatorIndexerApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Indexer_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraDelegatorIndexerApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraDelegatorIndexerApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerEraIndexerApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraIndexerApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraIndexerApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerEraIndexerDeploymentApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Deployment_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraIndexerDeploymentApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraIndexerDeploymentApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerErasByEraRewardIndexerIdAndEraIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Eras_Distinct_Enum>>>;\n  filter: InputMaybe<EraFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ErasOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerErasByEraStakeIndexerIdAndEraIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Eras_Distinct_Enum>>>;\n  filter: InputMaybe<EraFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ErasOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerErasByIndexerCommissionRateIndexerIdAndEraIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Eras_Distinct_Enum>>>;\n  filter: InputMaybe<EraFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ErasOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerErasByIndexerStakeIndexerIdAndEraIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Eras_Distinct_Enum>>>;\n  filter: InputMaybe<EraFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ErasOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerAllocationOverflowsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Overflows_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationOverflowFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationOverflowsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerAllocationRewardSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerAllocationRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerAllocationSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerApySummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Apy_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerApySummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerApySummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerCommissionRatesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Commission_Rates_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerCommissionRateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerCommissionRatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerEraDeploymentRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Era_Deployment_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerEraDeploymentRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerEraDeploymentRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerLaborHistoriesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Labor_Histories_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerLaborHistoryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerLaborHistoriesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerMissedLaborsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Missed_Labors_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerMissedLaborFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerMissedLaborsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerStakeWeightsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stake_Weights_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerStakeWeightFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerStakeWeightsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerIndexerStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerOffersByAcceptedOfferIndexerIdAndOfferIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Offers_Distinct_Enum>>>;\n  filter: InputMaybe<OfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<OffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerProjectsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerDeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerDeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerProjectsByIndexerAllocationIndexerIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerProjectsByIndexerAllocationRewardIndexerIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerProjectsByIndexerAllocationRewardSummaryIndexerIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerProjectsByIndexerAllocationSummaryIndexerIdAndProjectIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerServiceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Service_Agreements_Distinct_Enum>>>;\n  filter: InputMaybe<ServiceAgreementFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ServiceAgreementsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerAggregates = {\n  readonly __typename: 'IndexerAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerVarianceSampleAggregates>;\n};\n\nexport type IndexerAllocation = Node & {\n  readonly __typename: 'IndexerAllocation';\n  readonly amountAdded: Scalars['BigFloat']['output'];\n  readonly amountRemoved: Scalars['BigFloat']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `IndexerAllocation`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerAllocation`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `Project` that is related to this `IndexerAllocation`. */\n  readonly project: Maybe<Project>;\n  readonly projectId: Scalars['String']['output'];\n};\n\nexport type IndexerAllocationAggregates = {\n  readonly __typename: 'IndexerAllocationAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerAllocationAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerAllocationDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerAllocationMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerAllocationMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerAllocationStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerAllocationStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerAllocationSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerAllocationVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerAllocationVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerAllocation` object types. */\nexport type IndexerAllocationAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerAllocation` objects. */\n  readonly average: InputMaybe<IndexerAllocationAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerAllocation` objects. */\n  readonly distinctCount: InputMaybe<IndexerAllocationDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerAllocation` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerAllocationFilter>;\n  /** Maximum aggregate over matching `IndexerAllocation` objects. */\n  readonly max: InputMaybe<IndexerAllocationMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerAllocation` objects. */\n  readonly min: InputMaybe<IndexerAllocationMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerAllocation` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerAllocationStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerAllocation` objects. */\n  readonly stddevSample: InputMaybe<IndexerAllocationStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerAllocation` objects. */\n  readonly sum: InputMaybe<IndexerAllocationSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerAllocation` objects. */\n  readonly variancePopulation: InputMaybe<IndexerAllocationVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerAllocation` objects. */\n  readonly varianceSample: InputMaybe<IndexerAllocationVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerAllocationAverageAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationAverageAggregates = {\n  readonly __typename: 'IndexerAllocationAverageAggregates';\n  /** Mean average of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly amountAdded: InputMaybe<BigIntFilter>;\n  readonly amountRemoved: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly projectId: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerAllocationDistinctCountAggregates = {\n  readonly __typename: 'IndexerAllocationDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of projectId across the matching connection */\n  readonly projectId: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerAllocation` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerAllocationFilter = {\n  /** Filter by the object’s `amountAdded` field. */\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `amountRemoved` field. */\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerAllocationFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerAllocationFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerAllocationFilter>>;\n  /** Filter by the object’s `project` relation. */\n  readonly project: InputMaybe<ProjectFilter>;\n  /** Filter by the object’s `projectId` field. */\n  readonly projectId: InputMaybe<StringFilter>;\n};\n\nexport type IndexerAllocationMaxAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type IndexerAllocationMaxAggregates = {\n  readonly __typename: 'IndexerAllocationMaxAggregates';\n  /** Maximum of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerAllocationMinAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type IndexerAllocationMinAggregates = {\n  readonly __typename: 'IndexerAllocationMinAggregates';\n  /** Minimum of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerAllocationOverflow = Node & {\n  readonly __typename: 'IndexerAllocationOverflow';\n  readonly createAt: Scalars['Datetime']['output'];\n  readonly eraIdxEnd: Scalars['Int']['output'];\n  readonly eraIdxStart: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerAllocationOverflow`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `IndexerLatestAllocationOverflow`. */\n  readonly indexerLatestAllocationOverflowsByOverflowIdId: IndexerLatestAllocationOverflowsConnection;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly overflowEnd: Scalars['Datetime']['output'];\n  readonly overflowStart: Scalars['Datetime']['output'];\n  readonly overflowTime: Scalars['BigFloat']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type IndexerAllocationOverflowIndexerLatestAllocationOverflowsByOverflowIdIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Latest_Allocation_Overflows_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerLatestAllocationOverflowFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerLatestAllocationOverflowsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerAllocationOverflowAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerAllocationOverflowAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerAllocationOverflowDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerAllocationOverflowMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerAllocationOverflowMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerAllocationOverflowStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerAllocationOverflowStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerAllocationOverflowSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerAllocationOverflowVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerAllocationOverflowVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerAllocationOverflow` object types. */\nexport type IndexerAllocationOverflowAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerAllocationOverflow` objects. */\n  readonly average: InputMaybe<IndexerAllocationOverflowAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerAllocationOverflow` objects. */\n  readonly distinctCount: InputMaybe<IndexerAllocationOverflowDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerAllocationOverflow` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerAllocationOverflowFilter>;\n  /** Maximum aggregate over matching `IndexerAllocationOverflow` objects. */\n  readonly max: InputMaybe<IndexerAllocationOverflowMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerAllocationOverflow` objects. */\n  readonly min: InputMaybe<IndexerAllocationOverflowMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerAllocationOverflow` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerAllocationOverflowStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerAllocationOverflow` objects. */\n  readonly stddevSample: InputMaybe<IndexerAllocationOverflowStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerAllocationOverflow` objects. */\n  readonly sum: InputMaybe<IndexerAllocationOverflowSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerAllocationOverflow` objects. */\n  readonly variancePopulation: InputMaybe<IndexerAllocationOverflowVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerAllocationOverflow` objects. */\n  readonly varianceSample: InputMaybe<IndexerAllocationOverflowVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerAllocationOverflowAverageAggregateFilter = {\n  readonly eraIdxEnd: InputMaybe<BigFloatFilter>;\n  readonly eraIdxStart: InputMaybe<BigFloatFilter>;\n  readonly overflowTime: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationOverflowAverageAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowAverageAggregates';\n  /** Mean average of eraIdxEnd across the matching connection */\n  readonly eraIdxEnd: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdxStart across the matching connection */\n  readonly eraIdxStart: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of overflowTime across the matching connection */\n  readonly overflowTime: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationOverflowDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly eraIdxEnd: InputMaybe<BigIntFilter>;\n  readonly eraIdxStart: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly overflowEnd: InputMaybe<BigIntFilter>;\n  readonly overflowStart: InputMaybe<BigIntFilter>;\n  readonly overflowTime: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerAllocationOverflowDistinctCountAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdxEnd across the matching connection */\n  readonly eraIdxEnd: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdxStart across the matching connection */\n  readonly eraIdxStart: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of overflowEnd across the matching connection */\n  readonly overflowEnd: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of overflowStart across the matching connection */\n  readonly overflowStart: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of overflowTime across the matching connection */\n  readonly overflowTime: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerAllocationOverflow` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerAllocationOverflowFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerAllocationOverflowFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `eraIdxEnd` field. */\n  readonly eraIdxEnd: InputMaybe<IntFilter>;\n  /** Filter by the object’s `eraIdxStart` field. */\n  readonly eraIdxStart: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerLatestAllocationOverflowsByOverflowIdId` relation. */\n  readonly indexerLatestAllocationOverflowsByOverflowIdId: InputMaybe<IndexerAllocationOverflowToManyIndexerLatestAllocationOverflowFilter>;\n  /** Some related `indexerLatestAllocationOverflowsByOverflowIdId` exist. */\n  readonly indexerLatestAllocationOverflowsByOverflowIdIdExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerAllocationOverflowFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerAllocationOverflowFilter>>;\n  /** Filter by the object’s `overflowEnd` field. */\n  readonly overflowEnd: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `overflowStart` field. */\n  readonly overflowStart: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `overflowTime` field. */\n  readonly overflowTime: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type IndexerAllocationOverflowMaxAggregateFilter = {\n  readonly eraIdxEnd: InputMaybe<IntFilter>;\n  readonly eraIdxStart: InputMaybe<IntFilter>;\n  readonly overflowTime: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationOverflowMaxAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowMaxAggregates';\n  /** Maximum of eraIdxEnd across the matching connection */\n  readonly eraIdxEnd: Maybe<Scalars['Int']['output']>;\n  /** Maximum of eraIdxStart across the matching connection */\n  readonly eraIdxStart: Maybe<Scalars['Int']['output']>;\n  /** Maximum of overflowTime across the matching connection */\n  readonly overflowTime: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationOverflowMinAggregateFilter = {\n  readonly eraIdxEnd: InputMaybe<IntFilter>;\n  readonly eraIdxStart: InputMaybe<IntFilter>;\n  readonly overflowTime: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationOverflowMinAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowMinAggregates';\n  /** Minimum of eraIdxEnd across the matching connection */\n  readonly eraIdxEnd: Maybe<Scalars['Int']['output']>;\n  /** Minimum of eraIdxStart across the matching connection */\n  readonly eraIdxStart: Maybe<Scalars['Int']['output']>;\n  /** Minimum of overflowTime across the matching connection */\n  readonly overflowTime: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationOverflowStddevPopulationAggregateFilter = {\n  readonly eraIdxEnd: InputMaybe<BigFloatFilter>;\n  readonly eraIdxStart: InputMaybe<BigFloatFilter>;\n  readonly overflowTime: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationOverflowStddevPopulationAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowStddevPopulationAggregates';\n  /** Population standard deviation of eraIdxEnd across the matching connection */\n  readonly eraIdxEnd: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdxStart across the matching connection */\n  readonly eraIdxStart: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of overflowTime across the matching connection */\n  readonly overflowTime: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationOverflowStddevSampleAggregateFilter = {\n  readonly eraIdxEnd: InputMaybe<BigFloatFilter>;\n  readonly eraIdxStart: InputMaybe<BigFloatFilter>;\n  readonly overflowTime: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationOverflowStddevSampleAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowStddevSampleAggregates';\n  /** Sample standard deviation of eraIdxEnd across the matching connection */\n  readonly eraIdxEnd: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdxStart across the matching connection */\n  readonly eraIdxStart: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of overflowTime across the matching connection */\n  readonly overflowTime: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationOverflowSumAggregateFilter = {\n  readonly eraIdxEnd: InputMaybe<BigIntFilter>;\n  readonly eraIdxStart: InputMaybe<BigIntFilter>;\n  readonly overflowTime: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationOverflowSumAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowSumAggregates';\n  /** Sum of eraIdxEnd across the matching connection */\n  readonly eraIdxEnd: Scalars['BigInt']['output'];\n  /** Sum of eraIdxStart across the matching connection */\n  readonly eraIdxStart: Scalars['BigInt']['output'];\n  /** Sum of overflowTime across the matching connection */\n  readonly overflowTime: Scalars['BigFloat']['output'];\n};\n\n/** A filter to be used against many `IndexerLatestAllocationOverflow` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerAllocationOverflowToManyIndexerLatestAllocationOverflowFilter = {\n  /** Aggregates across related `IndexerLatestAllocationOverflow` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerLatestAllocationOverflowAggregatesFilter>;\n  /** Every related `IndexerLatestAllocationOverflow` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerLatestAllocationOverflowFilter>;\n  /** No related `IndexerLatestAllocationOverflow` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerLatestAllocationOverflowFilter>;\n  /** Some related `IndexerLatestAllocationOverflow` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerLatestAllocationOverflowFilter>;\n};\n\nexport type IndexerAllocationOverflowVariancePopulationAggregateFilter = {\n  readonly eraIdxEnd: InputMaybe<BigFloatFilter>;\n  readonly eraIdxStart: InputMaybe<BigFloatFilter>;\n  readonly overflowTime: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationOverflowVariancePopulationAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowVariancePopulationAggregates';\n  /** Population variance of eraIdxEnd across the matching connection */\n  readonly eraIdxEnd: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdxStart across the matching connection */\n  readonly eraIdxStart: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of overflowTime across the matching connection */\n  readonly overflowTime: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationOverflowVarianceSampleAggregateFilter = {\n  readonly eraIdxEnd: InputMaybe<BigFloatFilter>;\n  readonly eraIdxStart: InputMaybe<BigFloatFilter>;\n  readonly overflowTime: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationOverflowVarianceSampleAggregates = {\n  readonly __typename: 'IndexerAllocationOverflowVarianceSampleAggregates';\n  /** Sample variance of eraIdxEnd across the matching connection */\n  readonly eraIdxEnd: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdxStart across the matching connection */\n  readonly eraIdxStart: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of overflowTime across the matching connection */\n  readonly overflowTime: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `IndexerAllocationOverflow` values. */\nexport type IndexerAllocationOverflowsConnection = {\n  readonly __typename: 'IndexerAllocationOverflowsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAllocationOverflowAggregates>;\n  /** A list of edges which contains the `IndexerAllocationOverflow` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerAllocationOverflowsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAllocationOverflowAggregates>>;\n  /** A list of `IndexerAllocationOverflow` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerAllocationOverflow>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerAllocationOverflow` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerAllocationOverflow` values. */\nexport type IndexerAllocationOverflowsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerAllocationOverflowsGroupBy>;\n  having: InputMaybe<IndexerAllocationOverflowsHavingInput>;\n};\n\n/** A `IndexerAllocationOverflow` edge in the connection. */\nexport type IndexerAllocationOverflowsEdge = {\n  readonly __typename: 'IndexerAllocationOverflowsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerAllocationOverflow` at the end of the edge. */\n  readonly node: Maybe<IndexerAllocationOverflow>;\n};\n\n/** Grouping methods for `IndexerAllocationOverflow` for usage during aggregation. */\nexport enum IndexerAllocationOverflowsGroupBy {\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  ERA_IDX_END = 'ERA_IDX_END',\n  ERA_IDX_START = 'ERA_IDX_START',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  OVERFLOW_END = 'OVERFLOW_END',\n  OVERFLOW_END_TRUNCATED_TO_DAY = 'OVERFLOW_END_TRUNCATED_TO_DAY',\n  OVERFLOW_END_TRUNCATED_TO_HOUR = 'OVERFLOW_END_TRUNCATED_TO_HOUR',\n  OVERFLOW_START = 'OVERFLOW_START',\n  OVERFLOW_START_TRUNCATED_TO_DAY = 'OVERFLOW_START_TRUNCATED_TO_DAY',\n  OVERFLOW_START_TRUNCATED_TO_HOUR = 'OVERFLOW_START_TRUNCATED_TO_HOUR',\n  OVERFLOW_TIME = 'OVERFLOW_TIME',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type IndexerAllocationOverflowsHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdxEnd: InputMaybe<HavingIntFilter>;\n  readonly eraIdxStart: InputMaybe<HavingIntFilter>;\n  readonly overflowEnd: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowStart: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowTime: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationOverflowsHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdxEnd: InputMaybe<HavingIntFilter>;\n  readonly eraIdxStart: InputMaybe<HavingIntFilter>;\n  readonly overflowEnd: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowStart: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowTime: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `IndexerAllocationOverflow` aggregates. */\nexport type IndexerAllocationOverflowsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerAllocationOverflowsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerAllocationOverflowsHavingInput>>;\n  readonly average: InputMaybe<IndexerAllocationOverflowsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerAllocationOverflowsHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerAllocationOverflowsHavingMaxInput>;\n  readonly min: InputMaybe<IndexerAllocationOverflowsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerAllocationOverflowsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerAllocationOverflowsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerAllocationOverflowsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerAllocationOverflowsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerAllocationOverflowsHavingVarianceSampleInput>;\n};\n\nexport type IndexerAllocationOverflowsHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdxEnd: InputMaybe<HavingIntFilter>;\n  readonly eraIdxStart: InputMaybe<HavingIntFilter>;\n  readonly overflowEnd: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowStart: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowTime: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationOverflowsHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdxEnd: InputMaybe<HavingIntFilter>;\n  readonly eraIdxStart: InputMaybe<HavingIntFilter>;\n  readonly overflowEnd: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowStart: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowTime: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationOverflowsHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdxEnd: InputMaybe<HavingIntFilter>;\n  readonly eraIdxStart: InputMaybe<HavingIntFilter>;\n  readonly overflowEnd: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowStart: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowTime: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationOverflowsHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdxEnd: InputMaybe<HavingIntFilter>;\n  readonly eraIdxStart: InputMaybe<HavingIntFilter>;\n  readonly overflowEnd: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowStart: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowTime: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationOverflowsHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdxEnd: InputMaybe<HavingIntFilter>;\n  readonly eraIdxStart: InputMaybe<HavingIntFilter>;\n  readonly overflowEnd: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowStart: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowTime: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationOverflowsHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdxEnd: InputMaybe<HavingIntFilter>;\n  readonly eraIdxStart: InputMaybe<HavingIntFilter>;\n  readonly overflowEnd: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowStart: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowTime: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationOverflowsHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdxEnd: InputMaybe<HavingIntFilter>;\n  readonly eraIdxStart: InputMaybe<HavingIntFilter>;\n  readonly overflowEnd: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowStart: InputMaybe<HavingDatetimeFilter>;\n  readonly overflowTime: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `IndexerAllocationOverflow`. */\nexport enum IndexerAllocationOverflowsOrderBy {\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  ERA_IDX_END_ASC = 'ERA_IDX_END_ASC',\n  ERA_IDX_END_DESC = 'ERA_IDX_END_DESC',\n  ERA_IDX_START_ASC = 'ERA_IDX_START_ASC',\n  ERA_IDX_START_DESC = 'ERA_IDX_START_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_CREATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_CREATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_CREATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_CREATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_OVERFLOW_ID_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_OVERFLOW_ID_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_OVERFLOW_ID_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_OVERFLOW_ID_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_UPDATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_UPDATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_COUNT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_COUNT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_COUNT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_COUNT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_OVERFLOW_ID_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_OVERFLOW_ID_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_OVERFLOW_ID_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_OVERFLOW_ID_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_BLOCK_RANGE_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_BLOCK_RANGE_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_BLOCK_RANGE_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_BLOCK_RANGE_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_CREATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_CREATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_CREATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_CREATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_OVERFLOW_ID_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_OVERFLOW_ID_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_OVERFLOW_ID_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_OVERFLOW_ID_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_UPDATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_UPDATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_UPDATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MAX_UPDATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_BLOCK_RANGE_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_BLOCK_RANGE_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_BLOCK_RANGE_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_BLOCK_RANGE_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_CREATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_CREATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_CREATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_CREATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_OVERFLOW_ID_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_OVERFLOW_ID_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_OVERFLOW_ID_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_OVERFLOW_ID_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_UPDATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_UPDATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_UPDATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_MIN_UPDATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_OVERFLOW_ID_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_OVERFLOW_ID_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_OVERFLOW_ID_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_OVERFLOW_ID_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_OVERFLOW_ID_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_OVERFLOW_ID_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_OVERFLOW_ID_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_OVERFLOW_ID_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_BLOCK_RANGE_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_BLOCK_RANGE_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_BLOCK_RANGE_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_BLOCK_RANGE_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_CREATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_CREATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_CREATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_CREATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_OVERFLOW_ID_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_OVERFLOW_ID_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_OVERFLOW_ID_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_OVERFLOW_ID_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_UPDATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_UPDATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_UPDATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_SUM_UPDATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_OVERFLOW_ID_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_OVERFLOW_ID_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_OVERFLOW_ID_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_OVERFLOW_ID_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_OVERFLOW_ID_ID_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_OVERFLOW_ID_ID_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_OVERFLOW_ID_ID_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_OVERFLOW_ID_ID_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID__COUNT_ASC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID__COUNT_ASC',\n  INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID__COUNT_DESC = 'INDEXER_LATEST_ALLOCATION_OVERFLOWS_BY_OVERFLOW_ID_ID__COUNT_DESC',\n  NATURAL = 'NATURAL',\n  OVERFLOW_END_ASC = 'OVERFLOW_END_ASC',\n  OVERFLOW_END_DESC = 'OVERFLOW_END_DESC',\n  OVERFLOW_START_ASC = 'OVERFLOW_START_ASC',\n  OVERFLOW_START_DESC = 'OVERFLOW_START_DESC',\n  OVERFLOW_TIME_ASC = 'OVERFLOW_TIME_ASC',\n  OVERFLOW_TIME_DESC = 'OVERFLOW_TIME_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type IndexerAllocationReward = Node & {\n  readonly __typename: 'IndexerAllocationReward';\n  readonly burnt: Scalars['BigFloat']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `IndexerAllocationReward`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerAllocationReward`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `Project` that is related to this `IndexerAllocationReward`. */\n  readonly project: Maybe<Project>;\n  readonly projectId: Scalars['String']['output'];\n  readonly reward: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerAllocationRewardAggregates = {\n  readonly __typename: 'IndexerAllocationRewardAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerAllocationRewardAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerAllocationRewardDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerAllocationRewardMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerAllocationRewardMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerAllocationRewardStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerAllocationRewardStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerAllocationRewardSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerAllocationRewardVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerAllocationRewardVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerAllocationReward` object types. */\nexport type IndexerAllocationRewardAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerAllocationReward` objects. */\n  readonly average: InputMaybe<IndexerAllocationRewardAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerAllocationReward` objects. */\n  readonly distinctCount: InputMaybe<IndexerAllocationRewardDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerAllocationReward` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerAllocationRewardFilter>;\n  /** Maximum aggregate over matching `IndexerAllocationReward` objects. */\n  readonly max: InputMaybe<IndexerAllocationRewardMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerAllocationReward` objects. */\n  readonly min: InputMaybe<IndexerAllocationRewardMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerAllocationReward` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerAllocationRewardStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerAllocationReward` objects. */\n  readonly stddevSample: InputMaybe<IndexerAllocationRewardStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerAllocationReward` objects. */\n  readonly sum: InputMaybe<IndexerAllocationRewardSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerAllocationReward` objects. */\n  readonly variancePopulation: InputMaybe<IndexerAllocationRewardVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerAllocationReward` objects. */\n  readonly varianceSample: InputMaybe<IndexerAllocationRewardVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerAllocationRewardAverageAggregateFilter = {\n  readonly burnt: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardAverageAggregates = {\n  readonly __typename: 'IndexerAllocationRewardAverageAggregates';\n  /** Mean average of burnt across the matching connection */\n  readonly burnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly burnt: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly projectId: InputMaybe<BigIntFilter>;\n  readonly reward: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerAllocationRewardDistinctCountAggregates = {\n  readonly __typename: 'IndexerAllocationRewardDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of burnt across the matching connection */\n  readonly burnt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of projectId across the matching connection */\n  readonly projectId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerAllocationReward` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerAllocationRewardFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerAllocationRewardFilter>>;\n  /** Filter by the object’s `burnt` field. */\n  readonly burnt: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerAllocationRewardFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerAllocationRewardFilter>>;\n  /** Filter by the object’s `project` relation. */\n  readonly project: InputMaybe<ProjectFilter>;\n  /** Filter by the object’s `projectId` field. */\n  readonly projectId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `reward` field. */\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardMaxAggregateFilter = {\n  readonly burnt: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardMaxAggregates = {\n  readonly __typename: 'IndexerAllocationRewardMaxAggregates';\n  /** Maximum of burnt across the matching connection */\n  readonly burnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardMinAggregateFilter = {\n  readonly burnt: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardMinAggregates = {\n  readonly __typename: 'IndexerAllocationRewardMinAggregates';\n  /** Minimum of burnt across the matching connection */\n  readonly burnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardStddevPopulationAggregateFilter = {\n  readonly burnt: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardStddevPopulationAggregates = {\n  readonly __typename: 'IndexerAllocationRewardStddevPopulationAggregates';\n  /** Population standard deviation of burnt across the matching connection */\n  readonly burnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardStddevSampleAggregateFilter = {\n  readonly burnt: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardStddevSampleAggregates = {\n  readonly __typename: 'IndexerAllocationRewardStddevSampleAggregates';\n  /** Sample standard deviation of burnt across the matching connection */\n  readonly burnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardSumAggregateFilter = {\n  readonly burnt: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardSumAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSumAggregates';\n  /** Sum of burnt across the matching connection */\n  readonly burnt: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of reward across the matching connection */\n  readonly reward: Scalars['BigFloat']['output'];\n};\n\n/** A connection to a list of `IndexerAllocationRewardSummary` values. */\nexport type IndexerAllocationRewardSummariesConnection = {\n  readonly __typename: 'IndexerAllocationRewardSummariesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAllocationRewardSummaryAggregates>;\n  /** A list of edges which contains the `IndexerAllocationRewardSummary` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerAllocationRewardSummariesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAllocationRewardSummaryAggregates>>;\n  /** A list of `IndexerAllocationRewardSummary` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerAllocationRewardSummary>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerAllocationRewardSummary` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerAllocationRewardSummary` values. */\nexport type IndexerAllocationRewardSummariesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerAllocationRewardSummariesGroupBy>;\n  having: InputMaybe<IndexerAllocationRewardSummariesHavingInput>;\n};\n\n/** A `IndexerAllocationRewardSummary` edge in the connection. */\nexport type IndexerAllocationRewardSummariesEdge = {\n  readonly __typename: 'IndexerAllocationRewardSummariesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerAllocationRewardSummary` at the end of the edge. */\n  readonly node: Maybe<IndexerAllocationRewardSummary>;\n};\n\n/** Grouping methods for `IndexerAllocationRewardSummary` for usage during aggregation. */\nexport enum IndexerAllocationRewardSummariesGroupBy {\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  PROJECT_ID = 'PROJECT_ID',\n  TOTAL_BURNT = 'TOTAL_BURNT',\n  TOTAL_REWARD = 'TOTAL_REWARD',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type IndexerAllocationRewardSummariesHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalBurnt: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationRewardSummariesHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalBurnt: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `IndexerAllocationRewardSummary` aggregates. */\nexport type IndexerAllocationRewardSummariesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesHavingInput>>;\n  readonly average: InputMaybe<IndexerAllocationRewardSummariesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerAllocationRewardSummariesHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerAllocationRewardSummariesHavingMaxInput>;\n  readonly min: InputMaybe<IndexerAllocationRewardSummariesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerAllocationRewardSummariesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerAllocationRewardSummariesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerAllocationRewardSummariesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerAllocationRewardSummariesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerAllocationRewardSummariesHavingVarianceSampleInput>;\n};\n\nexport type IndexerAllocationRewardSummariesHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalBurnt: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationRewardSummariesHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalBurnt: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationRewardSummariesHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalBurnt: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationRewardSummariesHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalBurnt: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationRewardSummariesHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalBurnt: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationRewardSummariesHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalBurnt: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationRewardSummariesHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalBurnt: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `IndexerAllocationRewardSummary`. */\nexport enum IndexerAllocationRewardSummariesOrderBy {\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__ID_ASC = 'PROJECT_BY_PROJECT_ID__ID_ASC',\n  PROJECT_BY_PROJECT_ID__ID_DESC = 'PROJECT_BY_PROJECT_ID__ID_DESC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC',\n  PROJECT_BY_PROJECT_ID__METADATA_ASC = 'PROJECT_BY_PROJECT_ID__METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__METADATA_DESC = 'PROJECT_BY_PROJECT_ID__METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__OWNER_ASC = 'PROJECT_BY_PROJECT_ID__OWNER_ASC',\n  PROJECT_BY_PROJECT_ID__OWNER_DESC = 'PROJECT_BY_PROJECT_ID__OWNER_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC',\n  PROJECT_BY_PROJECT_ID__TYPE_ASC = 'PROJECT_BY_PROJECT_ID__TYPE_ASC',\n  PROJECT_BY_PROJECT_ID__TYPE_DESC = 'PROJECT_BY_PROJECT_ID__TYPE_DESC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC',\n  PROJECT_ID_ASC = 'PROJECT_ID_ASC',\n  PROJECT_ID_DESC = 'PROJECT_ID_DESC',\n  TOTAL_BURNT_ASC = 'TOTAL_BURNT_ASC',\n  TOTAL_BURNT_DESC = 'TOTAL_BURNT_DESC',\n  TOTAL_REWARD_ASC = 'TOTAL_REWARD_ASC',\n  TOTAL_REWARD_DESC = 'TOTAL_REWARD_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type IndexerAllocationRewardSummary = Node & {\n  readonly __typename: 'IndexerAllocationRewardSummary';\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `IndexerAllocationRewardSummary`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerAllocationRewardSummary`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `Project` that is related to this `IndexerAllocationRewardSummary`. */\n  readonly project: Maybe<Project>;\n  readonly projectId: Scalars['String']['output'];\n  readonly totalBurnt: Scalars['BigFloat']['output'];\n  readonly totalReward: Scalars['BigFloat']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type IndexerAllocationRewardSummaryAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummaryAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerAllocationRewardSummaryAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerAllocationRewardSummaryDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerAllocationRewardSummaryMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerAllocationRewardSummaryMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerAllocationRewardSummaryStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerAllocationRewardSummaryStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerAllocationRewardSummarySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerAllocationRewardSummaryVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerAllocationRewardSummaryVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerAllocationRewardSummary` object types. */\nexport type IndexerAllocationRewardSummaryAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerAllocationRewardSummary` objects. */\n  readonly average: InputMaybe<IndexerAllocationRewardSummaryAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerAllocationRewardSummary` objects. */\n  readonly distinctCount: InputMaybe<IndexerAllocationRewardSummaryDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerAllocationRewardSummary` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  /** Maximum aggregate over matching `IndexerAllocationRewardSummary` objects. */\n  readonly max: InputMaybe<IndexerAllocationRewardSummaryMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerAllocationRewardSummary` objects. */\n  readonly min: InputMaybe<IndexerAllocationRewardSummaryMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerAllocationRewardSummary` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerAllocationRewardSummaryStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerAllocationRewardSummary` objects. */\n  readonly stddevSample: InputMaybe<IndexerAllocationRewardSummaryStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerAllocationRewardSummary` objects. */\n  readonly sum: InputMaybe<IndexerAllocationRewardSummarySumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerAllocationRewardSummary` objects. */\n  readonly variancePopulation: InputMaybe<IndexerAllocationRewardSummaryVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerAllocationRewardSummary` objects. */\n  readonly varianceSample: InputMaybe<IndexerAllocationRewardSummaryVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryAverageAggregateFilter = {\n  readonly totalBurnt: InputMaybe<BigFloatFilter>;\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryAverageAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummaryAverageAggregates';\n  /** Mean average of totalBurnt across the matching connection */\n  readonly totalBurnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardSummaryDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly projectId: InputMaybe<BigIntFilter>;\n  readonly totalBurnt: InputMaybe<BigIntFilter>;\n  readonly totalReward: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryDistinctCountAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummaryDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of projectId across the matching connection */\n  readonly projectId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalBurnt across the matching connection */\n  readonly totalBurnt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerAllocationRewardSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerAllocationRewardSummaryFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummaryFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummaryFilter>>;\n  /** Filter by the object’s `project` relation. */\n  readonly project: InputMaybe<ProjectFilter>;\n  /** Filter by the object’s `projectId` field. */\n  readonly projectId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `totalBurnt` field. */\n  readonly totalBurnt: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalReward` field. */\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryMaxAggregateFilter = {\n  readonly totalBurnt: InputMaybe<BigFloatFilter>;\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryMaxAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummaryMaxAggregates';\n  /** Maximum of totalBurnt across the matching connection */\n  readonly totalBurnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardSummaryMinAggregateFilter = {\n  readonly totalBurnt: InputMaybe<BigFloatFilter>;\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryMinAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummaryMinAggregates';\n  /** Minimum of totalBurnt across the matching connection */\n  readonly totalBurnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardSummaryStddevPopulationAggregateFilter = {\n  readonly totalBurnt: InputMaybe<BigFloatFilter>;\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryStddevPopulationAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummaryStddevPopulationAggregates';\n  /** Population standard deviation of totalBurnt across the matching connection */\n  readonly totalBurnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardSummaryStddevSampleAggregateFilter = {\n  readonly totalBurnt: InputMaybe<BigFloatFilter>;\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryStddevSampleAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummaryStddevSampleAggregates';\n  /** Sample standard deviation of totalBurnt across the matching connection */\n  readonly totalBurnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardSummarySumAggregateFilter = {\n  readonly totalBurnt: InputMaybe<BigFloatFilter>;\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardSummarySumAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummarySumAggregates';\n  /** Sum of totalBurnt across the matching connection */\n  readonly totalBurnt: Scalars['BigFloat']['output'];\n  /** Sum of totalReward across the matching connection */\n  readonly totalReward: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerAllocationRewardSummaryVariancePopulationAggregateFilter = {\n  readonly totalBurnt: InputMaybe<BigFloatFilter>;\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryVariancePopulationAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummaryVariancePopulationAggregates';\n  /** Population variance of totalBurnt across the matching connection */\n  readonly totalBurnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardSummaryVarianceSampleAggregateFilter = {\n  readonly totalBurnt: InputMaybe<BigFloatFilter>;\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardSummaryVarianceSampleAggregates = {\n  readonly __typename: 'IndexerAllocationRewardSummaryVarianceSampleAggregates';\n  /** Sample variance of totalBurnt across the matching connection */\n  readonly totalBurnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardVariancePopulationAggregateFilter = {\n  readonly burnt: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardVariancePopulationAggregates = {\n  readonly __typename: 'IndexerAllocationRewardVariancePopulationAggregates';\n  /** Population variance of burnt across the matching connection */\n  readonly burnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationRewardVarianceSampleAggregateFilter = {\n  readonly burnt: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly reward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationRewardVarianceSampleAggregates = {\n  readonly __typename: 'IndexerAllocationRewardVarianceSampleAggregates';\n  /** Sample variance of burnt across the matching connection */\n  readonly burnt: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of reward across the matching connection */\n  readonly reward: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `IndexerAllocationReward` values. */\nexport type IndexerAllocationRewardsConnection = {\n  readonly __typename: 'IndexerAllocationRewardsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAllocationRewardAggregates>;\n  /** A list of edges which contains the `IndexerAllocationReward` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerAllocationRewardsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAllocationRewardAggregates>>;\n  /** A list of `IndexerAllocationReward` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerAllocationReward>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerAllocationReward` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerAllocationReward` values. */\nexport type IndexerAllocationRewardsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerAllocationRewardsGroupBy>;\n  having: InputMaybe<IndexerAllocationRewardsHavingInput>;\n};\n\n/** A `IndexerAllocationReward` edge in the connection. */\nexport type IndexerAllocationRewardsEdge = {\n  readonly __typename: 'IndexerAllocationRewardsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerAllocationReward` at the end of the edge. */\n  readonly node: Maybe<IndexerAllocationReward>;\n};\n\n/** Grouping methods for `IndexerAllocationReward` for usage during aggregation. */\nexport enum IndexerAllocationRewardsGroupBy {\n  BURNT = 'BURNT',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  PROJECT_ID = 'PROJECT_ID',\n  REWARD = 'REWARD',\n}\n\nexport type IndexerAllocationRewardsHavingAverageInput = {\n  readonly burnt: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerAllocationRewardsHavingDistinctCountInput = {\n  readonly burnt: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `IndexerAllocationReward` aggregates. */\nexport type IndexerAllocationRewardsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerAllocationRewardsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerAllocationRewardsHavingInput>>;\n  readonly average: InputMaybe<IndexerAllocationRewardsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerAllocationRewardsHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerAllocationRewardsHavingMaxInput>;\n  readonly min: InputMaybe<IndexerAllocationRewardsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerAllocationRewardsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerAllocationRewardsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerAllocationRewardsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerAllocationRewardsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerAllocationRewardsHavingVarianceSampleInput>;\n};\n\nexport type IndexerAllocationRewardsHavingMaxInput = {\n  readonly burnt: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerAllocationRewardsHavingMinInput = {\n  readonly burnt: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerAllocationRewardsHavingStddevPopulationInput = {\n  readonly burnt: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerAllocationRewardsHavingStddevSampleInput = {\n  readonly burnt: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerAllocationRewardsHavingSumInput = {\n  readonly burnt: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerAllocationRewardsHavingVariancePopulationInput = {\n  readonly burnt: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerAllocationRewardsHavingVarianceSampleInput = {\n  readonly burnt: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly reward: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `IndexerAllocationReward`. */\nexport enum IndexerAllocationRewardsOrderBy {\n  BURNT_ASC = 'BURNT_ASC',\n  BURNT_DESC = 'BURNT_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__ID_ASC = 'PROJECT_BY_PROJECT_ID__ID_ASC',\n  PROJECT_BY_PROJECT_ID__ID_DESC = 'PROJECT_BY_PROJECT_ID__ID_DESC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC',\n  PROJECT_BY_PROJECT_ID__METADATA_ASC = 'PROJECT_BY_PROJECT_ID__METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__METADATA_DESC = 'PROJECT_BY_PROJECT_ID__METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__OWNER_ASC = 'PROJECT_BY_PROJECT_ID__OWNER_ASC',\n  PROJECT_BY_PROJECT_ID__OWNER_DESC = 'PROJECT_BY_PROJECT_ID__OWNER_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC',\n  PROJECT_BY_PROJECT_ID__TYPE_ASC = 'PROJECT_BY_PROJECT_ID__TYPE_ASC',\n  PROJECT_BY_PROJECT_ID__TYPE_DESC = 'PROJECT_BY_PROJECT_ID__TYPE_DESC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC',\n  PROJECT_ID_ASC = 'PROJECT_ID_ASC',\n  PROJECT_ID_DESC = 'PROJECT_ID_DESC',\n  REWARD_ASC = 'REWARD_ASC',\n  REWARD_DESC = 'REWARD_DESC',\n}\n\nexport type IndexerAllocationStddevPopulationAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationStddevPopulationAggregates = {\n  readonly __typename: 'IndexerAllocationStddevPopulationAggregates';\n  /** Population standard deviation of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationStddevSampleAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationStddevSampleAggregates = {\n  readonly __typename: 'IndexerAllocationStddevSampleAggregates';\n  /** Sample standard deviation of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationSumAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerAllocationSumAggregates = {\n  readonly __typename: 'IndexerAllocationSumAggregates';\n  /** Sum of amountAdded across the matching connection */\n  readonly amountAdded: Scalars['BigFloat']['output'];\n  /** Sum of amountRemoved across the matching connection */\n  readonly amountRemoved: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n};\n\n/** A connection to a list of `IndexerAllocationSummary` values. */\nexport type IndexerAllocationSummariesConnection = {\n  readonly __typename: 'IndexerAllocationSummariesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAllocationSummaryAggregates>;\n  /** A list of edges which contains the `IndexerAllocationSummary` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerAllocationSummariesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAllocationSummaryAggregates>>;\n  /** A list of `IndexerAllocationSummary` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerAllocationSummary>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerAllocationSummary` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerAllocationSummary` values. */\nexport type IndexerAllocationSummariesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerAllocationSummariesGroupBy>;\n  having: InputMaybe<IndexerAllocationSummariesHavingInput>;\n};\n\n/** A `IndexerAllocationSummary` edge in the connection. */\nexport type IndexerAllocationSummariesEdge = {\n  readonly __typename: 'IndexerAllocationSummariesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerAllocationSummary` at the end of the edge. */\n  readonly node: Maybe<IndexerAllocationSummary>;\n};\n\n/** Grouping methods for `IndexerAllocationSummary` for usage during aggregation. */\nexport enum IndexerAllocationSummariesGroupBy {\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  PROJECT_ID = 'PROJECT_ID',\n  TOTAL_ADDED = 'TOTAL_ADDED',\n  TOTAL_AMOUNT = 'TOTAL_AMOUNT',\n  TOTAL_REMOVED = 'TOTAL_REMOVED',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type IndexerAllocationSummariesHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationSummariesHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `IndexerAllocationSummary` aggregates. */\nexport type IndexerAllocationSummariesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerAllocationSummariesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerAllocationSummariesHavingInput>>;\n  readonly average: InputMaybe<IndexerAllocationSummariesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerAllocationSummariesHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerAllocationSummariesHavingMaxInput>;\n  readonly min: InputMaybe<IndexerAllocationSummariesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerAllocationSummariesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerAllocationSummariesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerAllocationSummariesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerAllocationSummariesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerAllocationSummariesHavingVarianceSampleInput>;\n};\n\nexport type IndexerAllocationSummariesHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationSummariesHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationSummariesHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationSummariesHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationSummariesHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationSummariesHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerAllocationSummariesHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly totalAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `IndexerAllocationSummary`. */\nexport enum IndexerAllocationSummariesOrderBy {\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__ID_ASC = 'PROJECT_BY_PROJECT_ID__ID_ASC',\n  PROJECT_BY_PROJECT_ID__ID_DESC = 'PROJECT_BY_PROJECT_ID__ID_DESC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC',\n  PROJECT_BY_PROJECT_ID__METADATA_ASC = 'PROJECT_BY_PROJECT_ID__METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__METADATA_DESC = 'PROJECT_BY_PROJECT_ID__METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__OWNER_ASC = 'PROJECT_BY_PROJECT_ID__OWNER_ASC',\n  PROJECT_BY_PROJECT_ID__OWNER_DESC = 'PROJECT_BY_PROJECT_ID__OWNER_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC',\n  PROJECT_BY_PROJECT_ID__TYPE_ASC = 'PROJECT_BY_PROJECT_ID__TYPE_ASC',\n  PROJECT_BY_PROJECT_ID__TYPE_DESC = 'PROJECT_BY_PROJECT_ID__TYPE_DESC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC',\n  PROJECT_ID_ASC = 'PROJECT_ID_ASC',\n  PROJECT_ID_DESC = 'PROJECT_ID_DESC',\n  TOTAL_ADDED_ASC = 'TOTAL_ADDED_ASC',\n  TOTAL_ADDED_DESC = 'TOTAL_ADDED_DESC',\n  TOTAL_AMOUNT_ASC = 'TOTAL_AMOUNT_ASC',\n  TOTAL_AMOUNT_DESC = 'TOTAL_AMOUNT_DESC',\n  TOTAL_REMOVED_ASC = 'TOTAL_REMOVED_ASC',\n  TOTAL_REMOVED_DESC = 'TOTAL_REMOVED_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type IndexerAllocationSummary = Node & {\n  readonly __typename: 'IndexerAllocationSummary';\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `IndexerAllocationSummary`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerAllocationSummary`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `Project` that is related to this `IndexerAllocationSummary`. */\n  readonly project: Maybe<Project>;\n  readonly projectId: Scalars['String']['output'];\n  readonly totalAdded: Scalars['BigFloat']['output'];\n  readonly totalAmount: Scalars['BigFloat']['output'];\n  readonly totalRemoved: Scalars['BigFloat']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type IndexerAllocationSummaryAggregates = {\n  readonly __typename: 'IndexerAllocationSummaryAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerAllocationSummaryAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerAllocationSummaryDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerAllocationSummaryMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerAllocationSummaryMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerAllocationSummaryStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerAllocationSummaryStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerAllocationSummarySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerAllocationSummaryVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerAllocationSummaryVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerAllocationSummary` object types. */\nexport type IndexerAllocationSummaryAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerAllocationSummary` objects. */\n  readonly average: InputMaybe<IndexerAllocationSummaryAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerAllocationSummary` objects. */\n  readonly distinctCount: InputMaybe<IndexerAllocationSummaryDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerAllocationSummary` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerAllocationSummaryFilter>;\n  /** Maximum aggregate over matching `IndexerAllocationSummary` objects. */\n  readonly max: InputMaybe<IndexerAllocationSummaryMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerAllocationSummary` objects. */\n  readonly min: InputMaybe<IndexerAllocationSummaryMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerAllocationSummary` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerAllocationSummaryStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerAllocationSummary` objects. */\n  readonly stddevSample: InputMaybe<IndexerAllocationSummaryStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerAllocationSummary` objects. */\n  readonly sum: InputMaybe<IndexerAllocationSummarySumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerAllocationSummary` objects. */\n  readonly variancePopulation: InputMaybe<IndexerAllocationSummaryVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerAllocationSummary` objects. */\n  readonly varianceSample: InputMaybe<IndexerAllocationSummaryVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerAllocationSummaryAverageAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationSummaryAverageAggregates = {\n  readonly __typename: 'IndexerAllocationSummaryAverageAggregates';\n  /** Mean average of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationSummaryDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly projectId: InputMaybe<BigIntFilter>;\n  readonly totalAdded: InputMaybe<BigIntFilter>;\n  readonly totalAmount: InputMaybe<BigIntFilter>;\n  readonly totalRemoved: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerAllocationSummaryDistinctCountAggregates = {\n  readonly __typename: 'IndexerAllocationSummaryDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of projectId across the matching connection */\n  readonly projectId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerAllocationSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerAllocationSummaryFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerAllocationSummaryFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerAllocationSummaryFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerAllocationSummaryFilter>>;\n  /** Filter by the object’s `project` relation. */\n  readonly project: InputMaybe<ProjectFilter>;\n  /** Filter by the object’s `projectId` field. */\n  readonly projectId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `totalAdded` field. */\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalAmount` field. */\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalRemoved` field. */\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type IndexerAllocationSummaryMaxAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationSummaryMaxAggregates = {\n  readonly __typename: 'IndexerAllocationSummaryMaxAggregates';\n  /** Maximum of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationSummaryMinAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationSummaryMinAggregates = {\n  readonly __typename: 'IndexerAllocationSummaryMinAggregates';\n  /** Minimum of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationSummaryStddevPopulationAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationSummaryStddevPopulationAggregates = {\n  readonly __typename: 'IndexerAllocationSummaryStddevPopulationAggregates';\n  /** Population standard deviation of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationSummaryStddevSampleAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationSummaryStddevSampleAggregates = {\n  readonly __typename: 'IndexerAllocationSummaryStddevSampleAggregates';\n  /** Sample standard deviation of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationSummarySumAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationSummarySumAggregates = {\n  readonly __typename: 'IndexerAllocationSummarySumAggregates';\n  /** Sum of totalAdded across the matching connection */\n  readonly totalAdded: Scalars['BigFloat']['output'];\n  /** Sum of totalAmount across the matching connection */\n  readonly totalAmount: Scalars['BigFloat']['output'];\n  /** Sum of totalRemoved across the matching connection */\n  readonly totalRemoved: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerAllocationSummaryVariancePopulationAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationSummaryVariancePopulationAggregates = {\n  readonly __typename: 'IndexerAllocationSummaryVariancePopulationAggregates';\n  /** Population variance of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationSummaryVarianceSampleAggregateFilter = {\n  readonly totalAdded: InputMaybe<BigFloatFilter>;\n  readonly totalAmount: InputMaybe<BigFloatFilter>;\n  readonly totalRemoved: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationSummaryVarianceSampleAggregates = {\n  readonly __typename: 'IndexerAllocationSummaryVarianceSampleAggregates';\n  /** Sample variance of totalAdded across the matching connection */\n  readonly totalAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalAmount across the matching connection */\n  readonly totalAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalRemoved across the matching connection */\n  readonly totalRemoved: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationVariancePopulationAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationVariancePopulationAggregates = {\n  readonly __typename: 'IndexerAllocationVariancePopulationAggregates';\n  /** Population variance of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAllocationVarianceSampleAggregateFilter = {\n  readonly amountAdded: InputMaybe<BigFloatFilter>;\n  readonly amountRemoved: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerAllocationVarianceSampleAggregates = {\n  readonly __typename: 'IndexerAllocationVarianceSampleAggregates';\n  /** Sample variance of amountAdded across the matching connection */\n  readonly amountAdded: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of amountRemoved across the matching connection */\n  readonly amountRemoved: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `IndexerAllocation` values. */\nexport type IndexerAllocationsConnection = {\n  readonly __typename: 'IndexerAllocationsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAllocationAggregates>;\n  /** A list of edges which contains the `IndexerAllocation` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerAllocationsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAllocationAggregates>>;\n  /** A list of `IndexerAllocation` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerAllocation>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerAllocation` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerAllocation` values. */\nexport type IndexerAllocationsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerAllocationsGroupBy>;\n  having: InputMaybe<IndexerAllocationsHavingInput>;\n};\n\n/** A `IndexerAllocation` edge in the connection. */\nexport type IndexerAllocationsEdge = {\n  readonly __typename: 'IndexerAllocationsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerAllocation` at the end of the edge. */\n  readonly node: Maybe<IndexerAllocation>;\n};\n\n/** Grouping methods for `IndexerAllocation` for usage during aggregation. */\nexport enum IndexerAllocationsGroupBy {\n  AMOUNT_ADDED = 'AMOUNT_ADDED',\n  AMOUNT_REMOVED = 'AMOUNT_REMOVED',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  PROJECT_ID = 'PROJECT_ID',\n}\n\nexport type IndexerAllocationsHavingAverageInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerAllocationsHavingDistinctCountInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `IndexerAllocation` aggregates. */\nexport type IndexerAllocationsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerAllocationsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerAllocationsHavingInput>>;\n  readonly average: InputMaybe<IndexerAllocationsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerAllocationsHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerAllocationsHavingMaxInput>;\n  readonly min: InputMaybe<IndexerAllocationsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerAllocationsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerAllocationsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerAllocationsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerAllocationsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerAllocationsHavingVarianceSampleInput>;\n};\n\nexport type IndexerAllocationsHavingMaxInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerAllocationsHavingMinInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerAllocationsHavingStddevPopulationInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerAllocationsHavingStddevSampleInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerAllocationsHavingSumInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerAllocationsHavingVariancePopulationInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerAllocationsHavingVarianceSampleInput = {\n  readonly amountAdded: InputMaybe<HavingBigfloatFilter>;\n  readonly amountRemoved: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `IndexerAllocation`. */\nexport enum IndexerAllocationsOrderBy {\n  AMOUNT_ADDED_ASC = 'AMOUNT_ADDED_ASC',\n  AMOUNT_ADDED_DESC = 'AMOUNT_ADDED_DESC',\n  AMOUNT_REMOVED_ASC = 'AMOUNT_REMOVED_ASC',\n  AMOUNT_REMOVED_DESC = 'AMOUNT_REMOVED_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_ASC',\n  PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC = 'PROJECT_BY_PROJECT_ID__BOOST_ALLOCATION_RATIO_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_BLOCK_DESC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__CREATED_TIMESTAMP_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_ID_DESC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC = 'PROJECT_BY_PROJECT_ID__DEPLOYMENT_METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__ID_ASC = 'PROJECT_BY_PROJECT_ID__ID_ASC',\n  PROJECT_BY_PROJECT_ID__ID_DESC = 'PROJECT_BY_PROJECT_ID__ID_DESC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_ASC',\n  PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC = 'PROJECT_BY_PROJECT_ID__LAST_EVENT_DESC',\n  PROJECT_BY_PROJECT_ID__METADATA_ASC = 'PROJECT_BY_PROJECT_ID__METADATA_ASC',\n  PROJECT_BY_PROJECT_ID__METADATA_DESC = 'PROJECT_BY_PROJECT_ID__METADATA_DESC',\n  PROJECT_BY_PROJECT_ID__OWNER_ASC = 'PROJECT_BY_PROJECT_ID__OWNER_ASC',\n  PROJECT_BY_PROJECT_ID__OWNER_DESC = 'PROJECT_BY_PROJECT_ID__OWNER_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_ALLOCATION_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_BOOST_DESC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_ASC',\n  PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC = 'PROJECT_BY_PROJECT_ID__TOTAL_REWARD_DESC',\n  PROJECT_BY_PROJECT_ID__TYPE_ASC = 'PROJECT_BY_PROJECT_ID__TYPE_ASC',\n  PROJECT_BY_PROJECT_ID__TYPE_DESC = 'PROJECT_BY_PROJECT_ID__TYPE_DESC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_ASC',\n  PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC = 'PROJECT_BY_PROJECT_ID__UPDATED_TIMESTAMP_DESC',\n  PROJECT_ID_ASC = 'PROJECT_ID_ASC',\n  PROJECT_ID_DESC = 'PROJECT_ID_DESC',\n}\n\n/** A connection to a list of `IndexerApySummary` values. */\nexport type IndexerApySummariesConnection = {\n  readonly __typename: 'IndexerApySummariesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerApySummaryAggregates>;\n  /** A list of edges which contains the `IndexerApySummary` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerApySummariesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerApySummaryAggregates>>;\n  /** A list of `IndexerApySummary` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerApySummary>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerApySummary` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerApySummary` values. */\nexport type IndexerApySummariesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerApySummariesGroupBy>;\n  having: InputMaybe<IndexerApySummariesHavingInput>;\n};\n\n/** A `IndexerApySummary` edge in the connection. */\nexport type IndexerApySummariesEdge = {\n  readonly __typename: 'IndexerApySummariesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerApySummary` at the end of the edge. */\n  readonly node: Maybe<IndexerApySummary>;\n};\n\n/** Grouping methods for `IndexerApySummary` for usage during aggregation. */\nexport enum IndexerApySummariesGroupBy {\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DELEGATOR_APY = 'DELEGATOR_APY',\n  DELEGATOR_REWARD = 'DELEGATOR_REWARD',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_APY = 'INDEXER_APY',\n  INDEXER_ID = 'INDEXER_ID',\n  INDEXER_REWARD = 'INDEXER_REWARD',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type IndexerApySummariesHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerApySummariesHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `IndexerApySummary` aggregates. */\nexport type IndexerApySummariesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerApySummariesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerApySummariesHavingInput>>;\n  readonly average: InputMaybe<IndexerApySummariesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerApySummariesHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerApySummariesHavingMaxInput>;\n  readonly min: InputMaybe<IndexerApySummariesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerApySummariesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerApySummariesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerApySummariesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerApySummariesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerApySummariesHavingVarianceSampleInput>;\n};\n\nexport type IndexerApySummariesHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerApySummariesHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerApySummariesHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerApySummariesHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerApySummariesHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerApySummariesHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerApySummariesHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly delegatorApy: InputMaybe<HavingBigfloatFilter>;\n  readonly delegatorReward: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerApy: InputMaybe<HavingBigfloatFilter>;\n  readonly indexerReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `IndexerApySummary`. */\nexport enum IndexerApySummariesOrderBy {\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DELEGATOR_APY_ASC = 'DELEGATOR_APY_ASC',\n  DELEGATOR_APY_DESC = 'DELEGATOR_APY_DESC',\n  DELEGATOR_REWARD_ASC = 'DELEGATOR_REWARD_ASC',\n  DELEGATOR_REWARD_DESC = 'DELEGATOR_REWARD_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_APY_ASC = 'INDEXER_APY_ASC',\n  INDEXER_APY_DESC = 'INDEXER_APY_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  INDEXER_REWARD_ASC = 'INDEXER_REWARD_ASC',\n  INDEXER_REWARD_DESC = 'INDEXER_REWARD_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type IndexerApySummary = Node & {\n  readonly __typename: 'IndexerApySummary';\n  readonly createAt: Scalars['Datetime']['output'];\n  readonly delegatorApy: Scalars['BigFloat']['output'];\n  readonly delegatorReward: Scalars['BigFloat']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerApySummary`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerApy: Scalars['BigFloat']['output'];\n  readonly indexerId: Scalars['String']['output'];\n  readonly indexerReward: Scalars['BigFloat']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type IndexerApySummaryAggregates = {\n  readonly __typename: 'IndexerApySummaryAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerApySummaryAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerApySummaryDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerApySummaryMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerApySummaryMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerApySummaryStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerApySummaryStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerApySummarySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerApySummaryVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerApySummaryVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerApySummary` object types. */\nexport type IndexerApySummaryAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerApySummary` objects. */\n  readonly average: InputMaybe<IndexerApySummaryAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerApySummary` objects. */\n  readonly distinctCount: InputMaybe<IndexerApySummaryDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerApySummary` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerApySummaryFilter>;\n  /** Maximum aggregate over matching `IndexerApySummary` objects. */\n  readonly max: InputMaybe<IndexerApySummaryMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerApySummary` objects. */\n  readonly min: InputMaybe<IndexerApySummaryMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerApySummary` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerApySummaryStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerApySummary` objects. */\n  readonly stddevSample: InputMaybe<IndexerApySummaryStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerApySummary` objects. */\n  readonly sum: InputMaybe<IndexerApySummarySumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerApySummary` objects. */\n  readonly variancePopulation: InputMaybe<IndexerApySummaryVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerApySummary` objects. */\n  readonly varianceSample: InputMaybe<IndexerApySummaryVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerApySummaryAverageAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerApySummaryAverageAggregates = {\n  readonly __typename: 'IndexerApySummaryAverageAggregates';\n  /** Mean average of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerApySummaryDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly delegatorApy: InputMaybe<BigIntFilter>;\n  readonly delegatorReward: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerApy: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly indexerReward: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerApySummaryDistinctCountAggregates = {\n  readonly __typename: 'IndexerApySummaryDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerApySummary` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerApySummaryFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerApySummaryFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `delegatorApy` field. */\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `delegatorReward` field. */\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerApy` field. */\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerReward` field. */\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerApySummaryFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerApySummaryFilter>>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type IndexerApySummaryMaxAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerApySummaryMaxAggregates = {\n  readonly __typename: 'IndexerApySummaryMaxAggregates';\n  /** Maximum of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerApySummaryMinAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerApySummaryMinAggregates = {\n  readonly __typename: 'IndexerApySummaryMinAggregates';\n  /** Minimum of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerApySummaryStddevPopulationAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerApySummaryStddevPopulationAggregates = {\n  readonly __typename: 'IndexerApySummaryStddevPopulationAggregates';\n  /** Population standard deviation of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerApySummaryStddevSampleAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerApySummaryStddevSampleAggregates = {\n  readonly __typename: 'IndexerApySummaryStddevSampleAggregates';\n  /** Sample standard deviation of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerApySummarySumAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerApySummarySumAggregates = {\n  readonly __typename: 'IndexerApySummarySumAggregates';\n  /** Sum of delegatorApy across the matching connection */\n  readonly delegatorApy: Scalars['BigFloat']['output'];\n  /** Sum of delegatorReward across the matching connection */\n  readonly delegatorReward: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of indexerApy across the matching connection */\n  readonly indexerApy: Scalars['BigFloat']['output'];\n  /** Sum of indexerReward across the matching connection */\n  readonly indexerReward: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerApySummaryVariancePopulationAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerApySummaryVariancePopulationAggregates = {\n  readonly __typename: 'IndexerApySummaryVariancePopulationAggregates';\n  /** Population variance of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerApySummaryVarianceSampleAggregateFilter = {\n  readonly delegatorApy: InputMaybe<BigFloatFilter>;\n  readonly delegatorReward: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerApy: InputMaybe<BigFloatFilter>;\n  readonly indexerReward: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerApySummaryVarianceSampleAggregates = {\n  readonly __typename: 'IndexerApySummaryVarianceSampleAggregates';\n  /** Sample variance of delegatorApy across the matching connection */\n  readonly delegatorApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of delegatorReward across the matching connection */\n  readonly delegatorReward: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of indexerApy across the matching connection */\n  readonly indexerApy: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of indexerReward across the matching connection */\n  readonly indexerReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerAverageAggregates = {\n  readonly __typename: 'IndexerAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerCommissionRate = Node & {\n  readonly __typename: 'IndexerCommissionRate';\n  readonly commissionRate: Scalars['Int']['output'];\n  /** Reads a single `Era` that is related to this `IndexerCommissionRate`. */\n  readonly era: Maybe<Era>;\n  readonly eraId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerCommissionRate`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type IndexerCommissionRateAggregates = {\n  readonly __typename: 'IndexerCommissionRateAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerCommissionRateAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerCommissionRateDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerCommissionRateMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerCommissionRateMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerCommissionRateStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerCommissionRateStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerCommissionRateSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerCommissionRateVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerCommissionRateVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerCommissionRate` object types. */\nexport type IndexerCommissionRateAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerCommissionRate` objects. */\n  readonly average: InputMaybe<IndexerCommissionRateAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerCommissionRate` objects. */\n  readonly distinctCount: InputMaybe<IndexerCommissionRateDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerCommissionRate` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerCommissionRateFilter>;\n  /** Maximum aggregate over matching `IndexerCommissionRate` objects. */\n  readonly max: InputMaybe<IndexerCommissionRateMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerCommissionRate` objects. */\n  readonly min: InputMaybe<IndexerCommissionRateMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerCommissionRate` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerCommissionRateStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerCommissionRate` objects. */\n  readonly stddevSample: InputMaybe<IndexerCommissionRateStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerCommissionRate` objects. */\n  readonly sum: InputMaybe<IndexerCommissionRateSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerCommissionRate` objects. */\n  readonly variancePopulation: InputMaybe<IndexerCommissionRateVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerCommissionRate` objects. */\n  readonly varianceSample: InputMaybe<IndexerCommissionRateVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerCommissionRateAverageAggregateFilter = {\n  readonly commissionRate: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerCommissionRateAverageAggregates = {\n  readonly __typename: 'IndexerCommissionRateAverageAggregates';\n  /** Mean average of commissionRate across the matching connection */\n  readonly commissionRate: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerCommissionRateDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly commissionRate: InputMaybe<BigIntFilter>;\n  readonly eraId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerCommissionRateDistinctCountAggregates = {\n  readonly __typename: 'IndexerCommissionRateDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of commissionRate across the matching connection */\n  readonly commissionRate: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerCommissionRate` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerCommissionRateFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerCommissionRateFilter>>;\n  /** Filter by the object’s `commissionRate` field. */\n  readonly commissionRate: InputMaybe<IntFilter>;\n  /** Filter by the object’s `era` relation. */\n  readonly era: InputMaybe<EraFilter>;\n  /** Filter by the object’s `eraId` field. */\n  readonly eraId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerCommissionRateFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerCommissionRateFilter>>;\n};\n\nexport type IndexerCommissionRateMaxAggregateFilter = {\n  readonly commissionRate: InputMaybe<IntFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type IndexerCommissionRateMaxAggregates = {\n  readonly __typename: 'IndexerCommissionRateMaxAggregates';\n  /** Maximum of commissionRate across the matching connection */\n  readonly commissionRate: Maybe<Scalars['Int']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerCommissionRateMinAggregateFilter = {\n  readonly commissionRate: InputMaybe<IntFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type IndexerCommissionRateMinAggregates = {\n  readonly __typename: 'IndexerCommissionRateMinAggregates';\n  /** Minimum of commissionRate across the matching connection */\n  readonly commissionRate: Maybe<Scalars['Int']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerCommissionRateStddevPopulationAggregateFilter = {\n  readonly commissionRate: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerCommissionRateStddevPopulationAggregates = {\n  readonly __typename: 'IndexerCommissionRateStddevPopulationAggregates';\n  /** Population standard deviation of commissionRate across the matching connection */\n  readonly commissionRate: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerCommissionRateStddevSampleAggregateFilter = {\n  readonly commissionRate: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerCommissionRateStddevSampleAggregates = {\n  readonly __typename: 'IndexerCommissionRateStddevSampleAggregates';\n  /** Sample standard deviation of commissionRate across the matching connection */\n  readonly commissionRate: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerCommissionRateSumAggregateFilter = {\n  readonly commissionRate: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerCommissionRateSumAggregates = {\n  readonly __typename: 'IndexerCommissionRateSumAggregates';\n  /** Sum of commissionRate across the matching connection */\n  readonly commissionRate: Scalars['BigInt']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n};\n\nexport type IndexerCommissionRateVariancePopulationAggregateFilter = {\n  readonly commissionRate: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerCommissionRateVariancePopulationAggregates = {\n  readonly __typename: 'IndexerCommissionRateVariancePopulationAggregates';\n  /** Population variance of commissionRate across the matching connection */\n  readonly commissionRate: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerCommissionRateVarianceSampleAggregateFilter = {\n  readonly commissionRate: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerCommissionRateVarianceSampleAggregates = {\n  readonly __typename: 'IndexerCommissionRateVarianceSampleAggregates';\n  /** Sample variance of commissionRate across the matching connection */\n  readonly commissionRate: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `IndexerCommissionRate` values. */\nexport type IndexerCommissionRatesConnection = {\n  readonly __typename: 'IndexerCommissionRatesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerCommissionRateAggregates>;\n  /** A list of edges which contains the `IndexerCommissionRate` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerCommissionRatesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerCommissionRateAggregates>>;\n  /** A list of `IndexerCommissionRate` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerCommissionRate>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerCommissionRate` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerCommissionRate` values. */\nexport type IndexerCommissionRatesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerCommissionRatesGroupBy>;\n  having: InputMaybe<IndexerCommissionRatesHavingInput>;\n};\n\n/** A `IndexerCommissionRate` edge in the connection. */\nexport type IndexerCommissionRatesEdge = {\n  readonly __typename: 'IndexerCommissionRatesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerCommissionRate` at the end of the edge. */\n  readonly node: Maybe<IndexerCommissionRate>;\n};\n\n/** Grouping methods for `IndexerCommissionRate` for usage during aggregation. */\nexport enum IndexerCommissionRatesGroupBy {\n  COMMISSION_RATE = 'COMMISSION_RATE',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n}\n\nexport type IndexerCommissionRatesHavingAverageInput = {\n  readonly commissionRate: InputMaybe<HavingIntFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerCommissionRatesHavingDistinctCountInput = {\n  readonly commissionRate: InputMaybe<HavingIntFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `IndexerCommissionRate` aggregates. */\nexport type IndexerCommissionRatesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerCommissionRatesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerCommissionRatesHavingInput>>;\n  readonly average: InputMaybe<IndexerCommissionRatesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerCommissionRatesHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerCommissionRatesHavingMaxInput>;\n  readonly min: InputMaybe<IndexerCommissionRatesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerCommissionRatesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerCommissionRatesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerCommissionRatesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerCommissionRatesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerCommissionRatesHavingVarianceSampleInput>;\n};\n\nexport type IndexerCommissionRatesHavingMaxInput = {\n  readonly commissionRate: InputMaybe<HavingIntFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerCommissionRatesHavingMinInput = {\n  readonly commissionRate: InputMaybe<HavingIntFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerCommissionRatesHavingStddevPopulationInput = {\n  readonly commissionRate: InputMaybe<HavingIntFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerCommissionRatesHavingStddevSampleInput = {\n  readonly commissionRate: InputMaybe<HavingIntFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerCommissionRatesHavingSumInput = {\n  readonly commissionRate: InputMaybe<HavingIntFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerCommissionRatesHavingVariancePopulationInput = {\n  readonly commissionRate: InputMaybe<HavingIntFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerCommissionRatesHavingVarianceSampleInput = {\n  readonly commissionRate: InputMaybe<HavingIntFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `IndexerCommissionRate`. */\nexport enum IndexerCommissionRatesOrderBy {\n  COMMISSION_RATE_ASC = 'COMMISSION_RATE_ASC',\n  COMMISSION_RATE_DESC = 'COMMISSION_RATE_DESC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_ASC = 'ERA_BY_ERA_ID__CREATED_BLOCK_ASC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_DESC = 'ERA_BY_ERA_ID__CREATED_BLOCK_DESC',\n  ERA_BY_ERA_ID__END_TIME_ASC = 'ERA_BY_ERA_ID__END_TIME_ASC',\n  ERA_BY_ERA_ID__END_TIME_DESC = 'ERA_BY_ERA_ID__END_TIME_DESC',\n  ERA_BY_ERA_ID__ERA_PERIOD_ASC = 'ERA_BY_ERA_ID__ERA_PERIOD_ASC',\n  ERA_BY_ERA_ID__ERA_PERIOD_DESC = 'ERA_BY_ERA_ID__ERA_PERIOD_DESC',\n  ERA_BY_ERA_ID__FORCE_NEXT_ASC = 'ERA_BY_ERA_ID__FORCE_NEXT_ASC',\n  ERA_BY_ERA_ID__FORCE_NEXT_DESC = 'ERA_BY_ERA_ID__FORCE_NEXT_DESC',\n  ERA_BY_ERA_ID__ID_ASC = 'ERA_BY_ERA_ID__ID_ASC',\n  ERA_BY_ERA_ID__ID_DESC = 'ERA_BY_ERA_ID__ID_DESC',\n  ERA_BY_ERA_ID__LAST_EVENT_ASC = 'ERA_BY_ERA_ID__LAST_EVENT_ASC',\n  ERA_BY_ERA_ID__LAST_EVENT_DESC = 'ERA_BY_ERA_ID__LAST_EVENT_DESC',\n  ERA_BY_ERA_ID__START_TIME_ASC = 'ERA_BY_ERA_ID__START_TIME_ASC',\n  ERA_BY_ERA_ID__START_TIME_DESC = 'ERA_BY_ERA_ID__START_TIME_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ERA_ID_ASC = 'ERA_ID_ASC',\n  ERA_ID_DESC = 'ERA_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\n/** A connection to a list of `Delegator` values, with data from `Delegation`. */\nexport type IndexerDelegatorsByDelegationIndexerIdAndDelegatorIdManyToManyConnection = {\n  readonly __typename: 'IndexerDelegatorsByDelegationIndexerIdAndDelegatorIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DelegatorAggregates>;\n  /** A list of edges which contains the `Delegator`, info from the `Delegation`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDelegatorsByDelegationIndexerIdAndDelegatorIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DelegatorAggregates>>;\n  /** A list of `Delegator` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Delegator>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Delegator` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Delegator` values, with data from `Delegation`. */\nexport type IndexerDelegatorsByDelegationIndexerIdAndDelegatorIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DelegatorsGroupBy>;\n  having: InputMaybe<DelegatorsHavingInput>;\n};\n\n/** A `Delegator` edge in the connection, with data from `Delegation`. */\nexport type IndexerDelegatorsByDelegationIndexerIdAndDelegatorIdManyToManyEdge = {\n  readonly __typename: 'IndexerDelegatorsByDelegationIndexerIdAndDelegatorIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `Delegation`. */\n  readonly delegations: DelegationsConnection;\n  /** The `Delegator` at the end of the edge. */\n  readonly node: Maybe<Delegator>;\n};\n\n/** A `Delegator` edge in the connection, with data from `Delegation`. */\nexport type IndexerDelegatorsByDelegationIndexerIdAndDelegatorIdManyToManyEdgeDelegationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegations_Distinct_Enum>>>;\n  filter: InputMaybe<DelegationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Delegator` values, with data from `EraDelegatorIndexerApy`. */\nexport type IndexerDelegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorIdManyToManyConnection = {\n  readonly __typename: 'IndexerDelegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DelegatorAggregates>;\n  /** A list of edges which contains the `Delegator`, info from the `EraDelegatorIndexerApy`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDelegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DelegatorAggregates>>;\n  /** A list of `Delegator` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Delegator>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Delegator` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Delegator` values, with data from `EraDelegatorIndexerApy`. */\nexport type IndexerDelegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DelegatorsGroupBy>;\n    having: InputMaybe<DelegatorsHavingInput>;\n  };\n\n/** A `Delegator` edge in the connection, with data from `EraDelegatorIndexerApy`. */\nexport type IndexerDelegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorIdManyToManyEdge = {\n  readonly __typename: 'IndexerDelegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraDelegatorIndexerApy`. */\n  readonly eraDelegatorIndexerApies: EraDelegatorIndexerApiesConnection;\n  /** The `Delegator` at the end of the edge. */\n  readonly node: Maybe<Delegator>;\n};\n\n/** A `Delegator` edge in the connection, with data from `EraDelegatorIndexerApy`. */\nexport type IndexerDelegatorsByEraDelegatorIndexerApyIndexerIdAndDelegatorIdManyToManyEdgeEraDelegatorIndexerApiesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Indexer_Apies_Distinct_Enum>>>;\n    filter: InputMaybe<EraDelegatorIndexerApyFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<EraDelegatorIndexerApiesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Delegator` values, with data from `EraReward`. */\nexport type IndexerDelegatorsByEraRewardIndexerIdAndDelegatorIdManyToManyConnection = {\n  readonly __typename: 'IndexerDelegatorsByEraRewardIndexerIdAndDelegatorIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DelegatorAggregates>;\n  /** A list of edges which contains the `Delegator`, info from the `EraReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDelegatorsByEraRewardIndexerIdAndDelegatorIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DelegatorAggregates>>;\n  /** A list of `Delegator` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Delegator>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Delegator` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Delegator` values, with data from `EraReward`. */\nexport type IndexerDelegatorsByEraRewardIndexerIdAndDelegatorIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DelegatorsGroupBy>;\n  having: InputMaybe<DelegatorsHavingInput>;\n};\n\n/** A `Delegator` edge in the connection, with data from `EraReward`. */\nexport type IndexerDelegatorsByEraRewardIndexerIdAndDelegatorIdManyToManyEdge = {\n  readonly __typename: 'IndexerDelegatorsByEraRewardIndexerIdAndDelegatorIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: EraRewardsConnection;\n  /** The `Delegator` at the end of the edge. */\n  readonly node: Maybe<Delegator>;\n};\n\n/** A `Delegator` edge in the connection, with data from `EraReward`. */\nexport type IndexerDelegatorsByEraRewardIndexerIdAndDelegatorIdManyToManyEdgeEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Delegator` values, with data from `EraStake`. */\nexport type IndexerDelegatorsByEraStakeIndexerIdAndDelegatorIdManyToManyConnection = {\n  readonly __typename: 'IndexerDelegatorsByEraStakeIndexerIdAndDelegatorIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DelegatorAggregates>;\n  /** A list of edges which contains the `Delegator`, info from the `EraStake`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDelegatorsByEraStakeIndexerIdAndDelegatorIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DelegatorAggregates>>;\n  /** A list of `Delegator` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Delegator>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Delegator` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Delegator` values, with data from `EraStake`. */\nexport type IndexerDelegatorsByEraStakeIndexerIdAndDelegatorIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DelegatorsGroupBy>;\n  having: InputMaybe<DelegatorsHavingInput>;\n};\n\n/** A `Delegator` edge in the connection, with data from `EraStake`. */\nexport type IndexerDelegatorsByEraStakeIndexerIdAndDelegatorIdManyToManyEdge = {\n  readonly __typename: 'IndexerDelegatorsByEraStakeIndexerIdAndDelegatorIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: EraStakesConnection;\n  /** The `Delegator` at the end of the edge. */\n  readonly node: Maybe<Delegator>;\n};\n\n/** A `Delegator` edge in the connection, with data from `EraStake`. */\nexport type IndexerDelegatorsByEraStakeIndexerIdAndDelegatorIdManyToManyEdgeEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerDeployment = Node & {\n  readonly __typename: 'IndexerDeployment';\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Reads a single `Deployment` that is related to this `IndexerDeployment`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerDeployment`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly status: ServiceStatus;\n  readonly timestamp: Maybe<Scalars['Datetime']['output']>;\n};\n\nexport type IndexerDeploymentAggregates = {\n  readonly __typename: 'IndexerDeploymentAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerDeploymentAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerDeploymentDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerDeploymentMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerDeploymentMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerDeploymentStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerDeploymentStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerDeploymentSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerDeploymentVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerDeploymentVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerDeployment` object types. */\nexport type IndexerDeploymentAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerDeployment` objects. */\n  readonly average: InputMaybe<IndexerDeploymentAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerDeployment` objects. */\n  readonly distinctCount: InputMaybe<IndexerDeploymentDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerDeployment` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerDeploymentFilter>;\n  /** Maximum aggregate over matching `IndexerDeployment` objects. */\n  readonly max: InputMaybe<IndexerDeploymentMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerDeployment` objects. */\n  readonly min: InputMaybe<IndexerDeploymentMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerDeployment` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerDeploymentStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerDeployment` objects. */\n  readonly stddevSample: InputMaybe<IndexerDeploymentStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerDeployment` objects. */\n  readonly sum: InputMaybe<IndexerDeploymentSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerDeployment` objects. */\n  readonly variancePopulation: InputMaybe<IndexerDeploymentVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerDeployment` objects. */\n  readonly varianceSample: InputMaybe<IndexerDeploymentVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerDeploymentAverageAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerDeploymentAverageAggregates = {\n  readonly __typename: 'IndexerDeploymentAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerDeploymentDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n  readonly status: InputMaybe<BigIntFilter>;\n  readonly timestamp: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerDeploymentDistinctCountAggregates = {\n  readonly __typename: 'IndexerDeploymentDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of status across the matching connection */\n  readonly status: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of timestamp across the matching connection */\n  readonly timestamp: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerDeployment` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerDeploymentFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerDeploymentFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerDeploymentFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerDeploymentFilter>>;\n  /** Filter by the object’s `status` field. */\n  readonly status: InputMaybe<ServiceStatusFilter>;\n  /** Filter by the object’s `timestamp` field. */\n  readonly timestamp: InputMaybe<DatetimeFilter>;\n};\n\nexport type IndexerDeploymentMaxAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type IndexerDeploymentMaxAggregates = {\n  readonly __typename: 'IndexerDeploymentMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerDeploymentMinAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type IndexerDeploymentMinAggregates = {\n  readonly __typename: 'IndexerDeploymentMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerDeploymentStddevPopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerDeploymentStddevPopulationAggregates = {\n  readonly __typename: 'IndexerDeploymentStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerDeploymentStddevSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerDeploymentStddevSampleAggregates = {\n  readonly __typename: 'IndexerDeploymentStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerDeploymentSumAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerDeploymentSumAggregates = {\n  readonly __typename: 'IndexerDeploymentSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\nexport type IndexerDeploymentVariancePopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerDeploymentVariancePopulationAggregates = {\n  readonly __typename: 'IndexerDeploymentVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerDeploymentVarianceSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerDeploymentVarianceSampleAggregates = {\n  readonly __typename: 'IndexerDeploymentVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `EraIndexerDeploymentApy`. */\nexport type IndexerDeploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'IndexerDeploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `EraIndexerDeploymentApy`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDeploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `EraIndexerDeploymentApy`. */\nexport type IndexerDeploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `EraIndexerDeploymentApy`. */\nexport type IndexerDeploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'IndexerDeploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraIndexerDeploymentApy`. */\n  readonly eraIndexerDeploymentApies: EraIndexerDeploymentApiesConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `EraIndexerDeploymentApy`. */\nexport type IndexerDeploymentsByEraIndexerDeploymentApyIndexerIdAndDeploymentIdManyToManyEdgeEraIndexerDeploymentApiesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Deployment_Apies_Distinct_Enum>>>;\n    filter: InputMaybe<EraIndexerDeploymentApyFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<EraIndexerDeploymentApiesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocation`. */\nexport type IndexerDeploymentsByIndexerAllocationIndexerIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'IndexerDeploymentsByIndexerAllocationIndexerIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerAllocation`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDeploymentsByIndexerAllocationIndexerIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocation`. */\nexport type IndexerDeploymentsByIndexerAllocationIndexerIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentsGroupBy>;\n  having: InputMaybe<DeploymentsHavingInput>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocation`. */\nexport type IndexerDeploymentsByIndexerAllocationIndexerIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'IndexerDeploymentsByIndexerAllocationIndexerIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: IndexerAllocationsConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocation`. */\nexport type IndexerDeploymentsByIndexerAllocationIndexerIdAndDeploymentIdManyToManyEdgeIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationReward`. */\nexport type IndexerDeploymentsByIndexerAllocationRewardIndexerIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'IndexerDeploymentsByIndexerAllocationRewardIndexerIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerAllocationReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDeploymentsByIndexerAllocationRewardIndexerIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationReward`. */\nexport type IndexerDeploymentsByIndexerAllocationRewardIndexerIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type IndexerDeploymentsByIndexerAllocationRewardIndexerIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'IndexerDeploymentsByIndexerAllocationRewardIndexerIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: IndexerAllocationRewardsConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type IndexerDeploymentsByIndexerAllocationRewardIndexerIdAndDeploymentIdManyToManyEdgeIndexerAllocationRewardsArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationRewardSummary`. */\nexport type IndexerDeploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'IndexerDeploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerAllocationRewardSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDeploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationRewardSummary`. */\nexport type IndexerDeploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type IndexerDeploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'IndexerDeploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: IndexerAllocationRewardSummariesConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type IndexerDeploymentsByIndexerAllocationRewardSummaryIndexerIdAndDeploymentIdManyToManyEdgeIndexerAllocationRewardSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationSummary`. */\nexport type IndexerDeploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'IndexerDeploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerAllocationSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDeploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationSummary`. */\nexport type IndexerDeploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type IndexerDeploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'IndexerDeploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: IndexerAllocationSummariesConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type IndexerDeploymentsByIndexerAllocationSummaryIndexerIdAndDeploymentIdManyToManyEdgeIndexerAllocationSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Deployment` values, with data from `IndexerDeployment`. */\nexport type IndexerDeploymentsByIndexerDeploymentIndexerIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'IndexerDeploymentsByIndexerDeploymentIndexerIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerDeployment`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDeploymentsByIndexerDeploymentIndexerIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerDeployment`. */\nexport type IndexerDeploymentsByIndexerDeploymentIndexerIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentsGroupBy>;\n  having: InputMaybe<DeploymentsHavingInput>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerDeployment`. */\nexport type IndexerDeploymentsByIndexerDeploymentIndexerIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'IndexerDeploymentsByIndexerDeploymentIndexerIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerDeployment`. */\n  readonly indexers: IndexerDeploymentsConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerDeployment`. */\nexport type IndexerDeploymentsByIndexerDeploymentIndexerIdAndDeploymentIdManyToManyEdgeIndexersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerDeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerDeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerMissedLabor`. */\nexport type IndexerDeploymentsByIndexerMissedLaborIndexerIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'IndexerDeploymentsByIndexerMissedLaborIndexerIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerMissedLabor`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDeploymentsByIndexerMissedLaborIndexerIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerMissedLabor`. */\nexport type IndexerDeploymentsByIndexerMissedLaborIndexerIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentsGroupBy>;\n  having: InputMaybe<DeploymentsHavingInput>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerMissedLabor`. */\nexport type IndexerDeploymentsByIndexerMissedLaborIndexerIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'IndexerDeploymentsByIndexerMissedLaborIndexerIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerMissedLabor`. */\n  readonly indexerMissedLabors: IndexerMissedLaborsConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerMissedLabor`. */\nexport type IndexerDeploymentsByIndexerMissedLaborIndexerIdAndDeploymentIdManyToManyEdgeIndexerMissedLaborsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Missed_Labors_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerMissedLaborFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerMissedLaborsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `IndexerDeployment` values. */\nexport type IndexerDeploymentsConnection = {\n  readonly __typename: 'IndexerDeploymentsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerDeploymentAggregates>;\n  /** A list of edges which contains the `IndexerDeployment` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerDeploymentsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerDeploymentAggregates>>;\n  /** A list of `IndexerDeployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerDeployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerDeployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerDeployment` values. */\nexport type IndexerDeploymentsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerDeploymentsGroupBy>;\n  having: InputMaybe<IndexerDeploymentsHavingInput>;\n};\n\n/** A `IndexerDeployment` edge in the connection. */\nexport type IndexerDeploymentsEdge = {\n  readonly __typename: 'IndexerDeploymentsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerDeployment` at the end of the edge. */\n  readonly node: Maybe<IndexerDeployment>;\n};\n\n/** Grouping methods for `IndexerDeployment` for usage during aggregation. */\nexport enum IndexerDeploymentsGroupBy {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  LAST_EVENT = 'LAST_EVENT',\n  STATUS = 'STATUS',\n  TIMESTAMP = 'TIMESTAMP',\n  TIMESTAMP_TRUNCATED_TO_DAY = 'TIMESTAMP_TRUNCATED_TO_DAY',\n  TIMESTAMP_TRUNCATED_TO_HOUR = 'TIMESTAMP_TRUNCATED_TO_HOUR',\n}\n\nexport type IndexerDeploymentsHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerDeploymentsHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `IndexerDeployment` aggregates. */\nexport type IndexerDeploymentsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerDeploymentsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerDeploymentsHavingInput>>;\n  readonly average: InputMaybe<IndexerDeploymentsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerDeploymentsHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerDeploymentsHavingMaxInput>;\n  readonly min: InputMaybe<IndexerDeploymentsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerDeploymentsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerDeploymentsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerDeploymentsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerDeploymentsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerDeploymentsHavingVarianceSampleInput>;\n};\n\nexport type IndexerDeploymentsHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerDeploymentsHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerDeploymentsHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerDeploymentsHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerDeploymentsHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerDeploymentsHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerDeploymentsHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `IndexerDeployment`. */\nexport enum IndexerDeploymentsOrderBy {\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  STATUS_ASC = 'STATUS_ASC',\n  STATUS_DESC = 'STATUS_DESC',\n  TIMESTAMP_ASC = 'TIMESTAMP_ASC',\n  TIMESTAMP_DESC = 'TIMESTAMP_DESC',\n}\n\nexport type IndexerDistinctCountAggregates = {\n  readonly __typename: 'IndexerDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of active across the matching connection */\n  readonly active: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of capacity across the matching connection */\n  readonly capacity: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of commission across the matching connection */\n  readonly commission: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of controller across the matching connection */\n  readonly controller: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastClaimEra across the matching connection */\n  readonly lastClaimEra: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastSettledEra across the matching connection */\n  readonly lastSettledEra: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of maxUnstakeAmount across the matching connection */\n  readonly maxUnstakeAmount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of metadata across the matching connection */\n  readonly metadata: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of selfStake across the matching connection */\n  readonly selfStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigInt']['output']>;\n};\n\nexport type IndexerEraDeploymentReward = Node & {\n  readonly __typename: 'IndexerEraDeploymentReward';\n  readonly agreementRewards: Scalars['BigFloat']['output'];\n  readonly allocationRewards: Scalars['BigFloat']['output'];\n  readonly changesHeight: Maybe<Scalars['String']['output']>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerEraDeploymentReward`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly queryRewards: Scalars['BigFloat']['output'];\n  readonly stateChannelRewards: Scalars['BigFloat']['output'];\n  readonly totalRewards: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerEraDeploymentRewardAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerEraDeploymentRewardAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerEraDeploymentRewardDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerEraDeploymentRewardMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerEraDeploymentRewardMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerEraDeploymentRewardStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerEraDeploymentRewardStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerEraDeploymentRewardSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerEraDeploymentRewardVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerEraDeploymentRewardVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerEraDeploymentReward` object types. */\nexport type IndexerEraDeploymentRewardAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerEraDeploymentReward` objects. */\n  readonly average: InputMaybe<IndexerEraDeploymentRewardAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerEraDeploymentReward` objects. */\n  readonly distinctCount: InputMaybe<IndexerEraDeploymentRewardDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerEraDeploymentReward` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerEraDeploymentRewardFilter>;\n  /** Maximum aggregate over matching `IndexerEraDeploymentReward` objects. */\n  readonly max: InputMaybe<IndexerEraDeploymentRewardMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerEraDeploymentReward` objects. */\n  readonly min: InputMaybe<IndexerEraDeploymentRewardMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerEraDeploymentReward` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerEraDeploymentRewardStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerEraDeploymentReward` objects. */\n  readonly stddevSample: InputMaybe<IndexerEraDeploymentRewardStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerEraDeploymentReward` objects. */\n  readonly sum: InputMaybe<IndexerEraDeploymentRewardSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerEraDeploymentReward` objects. */\n  readonly variancePopulation: InputMaybe<IndexerEraDeploymentRewardVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerEraDeploymentReward` objects. */\n  readonly varianceSample: InputMaybe<IndexerEraDeploymentRewardVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerEraDeploymentRewardAverageAggregateFilter = {\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardAverageAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardAverageAggregates';\n  /** Mean average of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerEraDeploymentRewardDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly agreementRewards: InputMaybe<BigIntFilter>;\n  readonly allocationRewards: InputMaybe<BigIntFilter>;\n  readonly changesHeight: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly queryRewards: InputMaybe<BigIntFilter>;\n  readonly stateChannelRewards: InputMaybe<BigIntFilter>;\n  readonly totalRewards: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerEraDeploymentRewardDistinctCountAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of changesHeight across the matching connection */\n  readonly changesHeight: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerEraDeploymentReward` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerEraDeploymentRewardFilter = {\n  /** Filter by the object’s `agreementRewards` field. */\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `allocationRewards` field. */\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerEraDeploymentRewardFilter>>;\n  /** Filter by the object’s `changesHeight` field. */\n  readonly changesHeight: InputMaybe<StringFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerEraDeploymentRewardFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerEraDeploymentRewardFilter>>;\n  /** Filter by the object’s `queryRewards` field. */\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `stateChannelRewards` field. */\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalRewards` field. */\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardMaxAggregateFilter = {\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardMaxAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardMaxAggregates';\n  /** Maximum of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerEraDeploymentRewardMinAggregateFilter = {\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardMinAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardMinAggregates';\n  /** Minimum of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerEraDeploymentRewardStddevPopulationAggregateFilter = {\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardStddevPopulationAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardStddevPopulationAggregates';\n  /** Population standard deviation of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerEraDeploymentRewardStddevSampleAggregateFilter = {\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardStddevSampleAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardStddevSampleAggregates';\n  /** Sample standard deviation of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerEraDeploymentRewardSumAggregateFilter = {\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardSumAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardSumAggregates';\n  /** Sum of agreementRewards across the matching connection */\n  readonly agreementRewards: Scalars['BigFloat']['output'];\n  /** Sum of allocationRewards across the matching connection */\n  readonly allocationRewards: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of queryRewards across the matching connection */\n  readonly queryRewards: Scalars['BigFloat']['output'];\n  /** Sum of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Scalars['BigFloat']['output'];\n  /** Sum of totalRewards across the matching connection */\n  readonly totalRewards: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerEraDeploymentRewardVariancePopulationAggregateFilter = {\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardVariancePopulationAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardVariancePopulationAggregates';\n  /** Population variance of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerEraDeploymentRewardVarianceSampleAggregateFilter = {\n  readonly agreementRewards: InputMaybe<BigFloatFilter>;\n  readonly allocationRewards: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly queryRewards: InputMaybe<BigFloatFilter>;\n  readonly stateChannelRewards: InputMaybe<BigFloatFilter>;\n  readonly totalRewards: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardVarianceSampleAggregates = {\n  readonly __typename: 'IndexerEraDeploymentRewardVarianceSampleAggregates';\n  /** Sample variance of agreementRewards across the matching connection */\n  readonly agreementRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of allocationRewards across the matching connection */\n  readonly allocationRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of queryRewards across the matching connection */\n  readonly queryRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of stateChannelRewards across the matching connection */\n  readonly stateChannelRewards: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalRewards across the matching connection */\n  readonly totalRewards: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `IndexerEraDeploymentReward` values. */\nexport type IndexerEraDeploymentRewardsConnection = {\n  readonly __typename: 'IndexerEraDeploymentRewardsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerEraDeploymentRewardAggregates>;\n  /** A list of edges which contains the `IndexerEraDeploymentReward` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerEraDeploymentRewardsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerEraDeploymentRewardAggregates>>;\n  /** A list of `IndexerEraDeploymentReward` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerEraDeploymentReward>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerEraDeploymentReward` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerEraDeploymentReward` values. */\nexport type IndexerEraDeploymentRewardsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerEraDeploymentRewardsGroupBy>;\n  having: InputMaybe<IndexerEraDeploymentRewardsHavingInput>;\n};\n\n/** A `IndexerEraDeploymentReward` edge in the connection. */\nexport type IndexerEraDeploymentRewardsEdge = {\n  readonly __typename: 'IndexerEraDeploymentRewardsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerEraDeploymentReward` at the end of the edge. */\n  readonly node: Maybe<IndexerEraDeploymentReward>;\n};\n\n/** Grouping methods for `IndexerEraDeploymentReward` for usage during aggregation. */\nexport enum IndexerEraDeploymentRewardsGroupBy {\n  AGREEMENT_REWARDS = 'AGREEMENT_REWARDS',\n  ALLOCATION_REWARDS = 'ALLOCATION_REWARDS',\n  CHANGES_HEIGHT = 'CHANGES_HEIGHT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  QUERY_REWARDS = 'QUERY_REWARDS',\n  STATE_CHANNEL_REWARDS = 'STATE_CHANNEL_REWARDS',\n  TOTAL_REWARDS = 'TOTAL_REWARDS',\n}\n\nexport type IndexerEraDeploymentRewardsHavingAverageInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardsHavingDistinctCountInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `IndexerEraDeploymentReward` aggregates. */\nexport type IndexerEraDeploymentRewardsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerEraDeploymentRewardsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerEraDeploymentRewardsHavingInput>>;\n  readonly average: InputMaybe<IndexerEraDeploymentRewardsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerEraDeploymentRewardsHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerEraDeploymentRewardsHavingMaxInput>;\n  readonly min: InputMaybe<IndexerEraDeploymentRewardsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerEraDeploymentRewardsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerEraDeploymentRewardsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerEraDeploymentRewardsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerEraDeploymentRewardsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerEraDeploymentRewardsHavingVarianceSampleInput>;\n};\n\nexport type IndexerEraDeploymentRewardsHavingMaxInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardsHavingMinInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardsHavingStddevPopulationInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardsHavingStddevSampleInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardsHavingSumInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardsHavingVariancePopulationInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerEraDeploymentRewardsHavingVarianceSampleInput = {\n  readonly agreementRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly allocationRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly queryRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly stateChannelRewards: InputMaybe<HavingBigfloatFilter>;\n  readonly totalRewards: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `IndexerEraDeploymentReward`. */\nexport enum IndexerEraDeploymentRewardsOrderBy {\n  AGREEMENT_REWARDS_ASC = 'AGREEMENT_REWARDS_ASC',\n  AGREEMENT_REWARDS_DESC = 'AGREEMENT_REWARDS_DESC',\n  ALLOCATION_REWARDS_ASC = 'ALLOCATION_REWARDS_ASC',\n  ALLOCATION_REWARDS_DESC = 'ALLOCATION_REWARDS_DESC',\n  CHANGES_HEIGHT_ASC = 'CHANGES_HEIGHT_ASC',\n  CHANGES_HEIGHT_DESC = 'CHANGES_HEIGHT_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  QUERY_REWARDS_ASC = 'QUERY_REWARDS_ASC',\n  QUERY_REWARDS_DESC = 'QUERY_REWARDS_DESC',\n  STATE_CHANNEL_REWARDS_ASC = 'STATE_CHANNEL_REWARDS_ASC',\n  STATE_CHANNEL_REWARDS_DESC = 'STATE_CHANNEL_REWARDS_DESC',\n  TOTAL_REWARDS_ASC = 'TOTAL_REWARDS_ASC',\n  TOTAL_REWARDS_DESC = 'TOTAL_REWARDS_DESC',\n}\n\n/** A connection to a list of `Era` values, with data from `EraReward`. */\nexport type IndexerErasByEraRewardIndexerIdAndEraIdManyToManyConnection = {\n  readonly __typename: 'IndexerErasByEraRewardIndexerIdAndEraIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraAggregates>;\n  /** A list of edges which contains the `Era`, info from the `EraReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerErasByEraRewardIndexerIdAndEraIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraAggregates>>;\n  /** A list of `Era` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Era>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Era` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Era` values, with data from `EraReward`. */\nexport type IndexerErasByEraRewardIndexerIdAndEraIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ErasGroupBy>;\n  having: InputMaybe<ErasHavingInput>;\n};\n\n/** A `Era` edge in the connection, with data from `EraReward`. */\nexport type IndexerErasByEraRewardIndexerIdAndEraIdManyToManyEdge = {\n  readonly __typename: 'IndexerErasByEraRewardIndexerIdAndEraIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: EraRewardsConnection;\n  /** The `Era` at the end of the edge. */\n  readonly node: Maybe<Era>;\n};\n\n/** A `Era` edge in the connection, with data from `EraReward`. */\nexport type IndexerErasByEraRewardIndexerIdAndEraIdManyToManyEdgeEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Era` values, with data from `EraStake`. */\nexport type IndexerErasByEraStakeIndexerIdAndEraIdManyToManyConnection = {\n  readonly __typename: 'IndexerErasByEraStakeIndexerIdAndEraIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraAggregates>;\n  /** A list of edges which contains the `Era`, info from the `EraStake`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerErasByEraStakeIndexerIdAndEraIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraAggregates>>;\n  /** A list of `Era` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Era>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Era` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Era` values, with data from `EraStake`. */\nexport type IndexerErasByEraStakeIndexerIdAndEraIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ErasGroupBy>;\n  having: InputMaybe<ErasHavingInput>;\n};\n\n/** A `Era` edge in the connection, with data from `EraStake`. */\nexport type IndexerErasByEraStakeIndexerIdAndEraIdManyToManyEdge = {\n  readonly __typename: 'IndexerErasByEraStakeIndexerIdAndEraIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: EraStakesConnection;\n  /** The `Era` at the end of the edge. */\n  readonly node: Maybe<Era>;\n};\n\n/** A `Era` edge in the connection, with data from `EraStake`. */\nexport type IndexerErasByEraStakeIndexerIdAndEraIdManyToManyEdgeEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Era` values, with data from `IndexerCommissionRate`. */\nexport type IndexerErasByIndexerCommissionRateIndexerIdAndEraIdManyToManyConnection = {\n  readonly __typename: 'IndexerErasByIndexerCommissionRateIndexerIdAndEraIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraAggregates>;\n  /** A list of edges which contains the `Era`, info from the `IndexerCommissionRate`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerErasByIndexerCommissionRateIndexerIdAndEraIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraAggregates>>;\n  /** A list of `Era` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Era>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Era` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Era` values, with data from `IndexerCommissionRate`. */\nexport type IndexerErasByIndexerCommissionRateIndexerIdAndEraIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ErasGroupBy>;\n  having: InputMaybe<ErasHavingInput>;\n};\n\n/** A `Era` edge in the connection, with data from `IndexerCommissionRate`. */\nexport type IndexerErasByIndexerCommissionRateIndexerIdAndEraIdManyToManyEdge = {\n  readonly __typename: 'IndexerErasByIndexerCommissionRateIndexerIdAndEraIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerCommissionRate`. */\n  readonly indexerCommissionRates: IndexerCommissionRatesConnection;\n  /** The `Era` at the end of the edge. */\n  readonly node: Maybe<Era>;\n};\n\n/** A `Era` edge in the connection, with data from `IndexerCommissionRate`. */\nexport type IndexerErasByIndexerCommissionRateIndexerIdAndEraIdManyToManyEdgeIndexerCommissionRatesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Commission_Rates_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerCommissionRateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerCommissionRatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Era` values, with data from `IndexerStake`. */\nexport type IndexerErasByIndexerStakeIndexerIdAndEraIdManyToManyConnection = {\n  readonly __typename: 'IndexerErasByIndexerStakeIndexerIdAndEraIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<EraAggregates>;\n  /** A list of edges which contains the `Era`, info from the `IndexerStake`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerErasByIndexerStakeIndexerIdAndEraIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<EraAggregates>>;\n  /** A list of `Era` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Era>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Era` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Era` values, with data from `IndexerStake`. */\nexport type IndexerErasByIndexerStakeIndexerIdAndEraIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ErasGroupBy>;\n  having: InputMaybe<ErasHavingInput>;\n};\n\n/** A `Era` edge in the connection, with data from `IndexerStake`. */\nexport type IndexerErasByIndexerStakeIndexerIdAndEraIdManyToManyEdge = {\n  readonly __typename: 'IndexerErasByIndexerStakeIndexerIdAndEraIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerStake`. */\n  readonly indexerStakes: IndexerStakesConnection;\n  /** The `Era` at the end of the edge. */\n  readonly node: Maybe<Era>;\n};\n\n/** A `Era` edge in the connection, with data from `IndexerStake`. */\nexport type IndexerErasByIndexerStakeIndexerIdAndEraIdManyToManyEdgeIndexerStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A filter to be used against `Indexer` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerFilter = {\n  /** Filter by the object’s `acceptedOffers` relation. */\n  readonly acceptedOffers: InputMaybe<IndexerToManyAcceptedOfferFilter>;\n  /** Some related `acceptedOffers` exist. */\n  readonly acceptedOffersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `active` field. */\n  readonly active: InputMaybe<BooleanFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerFilter>>;\n  /** Filter by the object’s `capacity` field. */\n  readonly capacity: InputMaybe<JsonFilter>;\n  /** Filter by the object’s `commission` field. */\n  readonly commission: InputMaybe<JsonFilter>;\n  /** Filter by the object’s `controller` field. */\n  readonly controller: InputMaybe<StringFilter>;\n  /** Filter by the object’s `controllers` relation. */\n  readonly controllers: InputMaybe<IndexerToManyControllerFilter>;\n  /** Some related `controllers` exist. */\n  readonly controllersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `delegations` relation. */\n  readonly delegations: InputMaybe<IndexerToManyDelegationFilter>;\n  /** Some related `delegations` exist. */\n  readonly delegationsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraDelegatorIndexerApies` relation. */\n  readonly eraDelegatorIndexerApies: InputMaybe<IndexerToManyEraDelegatorIndexerApyFilter>;\n  /** Some related `eraDelegatorIndexerApies` exist. */\n  readonly eraDelegatorIndexerApiesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraIndexerApies` relation. */\n  readonly eraIndexerApies: InputMaybe<IndexerToManyEraIndexerApyFilter>;\n  /** Some related `eraIndexerApies` exist. */\n  readonly eraIndexerApiesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraIndexerDeploymentApies` relation. */\n  readonly eraIndexerDeploymentApies: InputMaybe<IndexerToManyEraIndexerDeploymentApyFilter>;\n  /** Some related `eraIndexerDeploymentApies` exist. */\n  readonly eraIndexerDeploymentApiesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraRewards` relation. */\n  readonly eraRewards: InputMaybe<IndexerToManyEraRewardFilter>;\n  /** Some related `eraRewards` exist. */\n  readonly eraRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `eraStakes` relation. */\n  readonly eraStakes: InputMaybe<IndexerToManyEraStakeFilter>;\n  /** Some related `eraStakes` exist. */\n  readonly eraStakesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerAllocationOverflows` relation. */\n  readonly indexerAllocationOverflows: InputMaybe<IndexerToManyIndexerAllocationOverflowFilter>;\n  /** Some related `indexerAllocationOverflows` exist. */\n  readonly indexerAllocationOverflowsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocationRewardSummaries` relation. */\n  readonly indexerAllocationRewardSummaries: InputMaybe<IndexerToManyIndexerAllocationRewardSummaryFilter>;\n  /** Some related `indexerAllocationRewardSummaries` exist. */\n  readonly indexerAllocationRewardSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocationRewards` relation. */\n  readonly indexerAllocationRewards: InputMaybe<IndexerToManyIndexerAllocationRewardFilter>;\n  /** Some related `indexerAllocationRewards` exist. */\n  readonly indexerAllocationRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocationSummaries` relation. */\n  readonly indexerAllocationSummaries: InputMaybe<IndexerToManyIndexerAllocationSummaryFilter>;\n  /** Some related `indexerAllocationSummaries` exist. */\n  readonly indexerAllocationSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocations` relation. */\n  readonly indexerAllocations: InputMaybe<IndexerToManyIndexerAllocationFilter>;\n  /** Some related `indexerAllocations` exist. */\n  readonly indexerAllocationsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerApySummaries` relation. */\n  readonly indexerApySummaries: InputMaybe<IndexerToManyIndexerApySummaryFilter>;\n  /** Some related `indexerApySummaries` exist. */\n  readonly indexerApySummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerCommissionRates` relation. */\n  readonly indexerCommissionRates: InputMaybe<IndexerToManyIndexerCommissionRateFilter>;\n  /** Some related `indexerCommissionRates` exist. */\n  readonly indexerCommissionRatesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerEraDeploymentRewards` relation. */\n  readonly indexerEraDeploymentRewards: InputMaybe<IndexerToManyIndexerEraDeploymentRewardFilter>;\n  /** Some related `indexerEraDeploymentRewards` exist. */\n  readonly indexerEraDeploymentRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerLaborHistories` relation. */\n  readonly indexerLaborHistories: InputMaybe<IndexerToManyIndexerLaborHistoryFilter>;\n  /** Some related `indexerLaborHistories` exist. */\n  readonly indexerLaborHistoriesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerMissedLabors` relation. */\n  readonly indexerMissedLabors: InputMaybe<IndexerToManyIndexerMissedLaborFilter>;\n  /** Some related `indexerMissedLabors` exist. */\n  readonly indexerMissedLaborsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerStakeWeights` relation. */\n  readonly indexerStakeWeights: InputMaybe<IndexerToManyIndexerStakeWeightFilter>;\n  /** Some related `indexerStakeWeights` exist. */\n  readonly indexerStakeWeightsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerStakes` relation. */\n  readonly indexerStakes: InputMaybe<IndexerToManyIndexerStakeFilter>;\n  /** Some related `indexerStakes` exist. */\n  readonly indexerStakesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `lastClaimEra` field. */\n  readonly lastClaimEra: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastSettledEra` field. */\n  readonly lastSettledEra: InputMaybe<StringFilter>;\n  /** Filter by the object’s `maxUnstakeAmount` field. */\n  readonly maxUnstakeAmount: InputMaybe<JsonFilter>;\n  /** Filter by the object’s `metadata` field. */\n  readonly metadata: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerFilter>>;\n  /** Filter by the object’s `projects` relation. */\n  readonly projects: InputMaybe<IndexerToManyIndexerDeploymentFilter>;\n  /** Some related `projects` exist. */\n  readonly projectsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `rewards` relation. */\n  readonly rewards: InputMaybe<IndexerToManyIndexerRewardFilter>;\n  /** Some related `rewards` exist. */\n  readonly rewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `selfStake` field. */\n  readonly selfStake: InputMaybe<JsonFilter>;\n  /** Filter by the object’s `totalStake` field. */\n  readonly totalStake: InputMaybe<JsonFilter>;\n};\n\n/** A connection to a list of `IndexerLaborHistory` values. */\nexport type IndexerLaborHistoriesConnection = {\n  readonly __typename: 'IndexerLaborHistoriesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerLaborHistoryAggregates>;\n  /** A list of edges which contains the `IndexerLaborHistory` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerLaborHistoriesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerLaborHistoryAggregates>>;\n  /** A list of `IndexerLaborHistory` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerLaborHistory>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerLaborHistory` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerLaborHistory` values. */\nexport type IndexerLaborHistoriesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerLaborHistoriesGroupBy>;\n  having: InputMaybe<IndexerLaborHistoriesHavingInput>;\n};\n\n/** A `IndexerLaborHistory` edge in the connection. */\nexport type IndexerLaborHistoriesEdge = {\n  readonly __typename: 'IndexerLaborHistoriesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerLaborHistory` at the end of the edge. */\n  readonly node: Maybe<IndexerLaborHistory>;\n};\n\n/** Grouping methods for `IndexerLaborHistory` for usage during aggregation. */\nexport enum IndexerLaborHistoriesGroupBy {\n  AMOUNT = 'AMOUNT',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n}\n\nexport type IndexerLaborHistoriesHavingAverageInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerLaborHistoriesHavingDistinctCountInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `IndexerLaborHistory` aggregates. */\nexport type IndexerLaborHistoriesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerLaborHistoriesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerLaborHistoriesHavingInput>>;\n  readonly average: InputMaybe<IndexerLaborHistoriesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerLaborHistoriesHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerLaborHistoriesHavingMaxInput>;\n  readonly min: InputMaybe<IndexerLaborHistoriesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerLaborHistoriesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerLaborHistoriesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerLaborHistoriesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerLaborHistoriesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerLaborHistoriesHavingVarianceSampleInput>;\n};\n\nexport type IndexerLaborHistoriesHavingMaxInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerLaborHistoriesHavingMinInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerLaborHistoriesHavingStddevPopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerLaborHistoriesHavingStddevSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerLaborHistoriesHavingSumInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerLaborHistoriesHavingVariancePopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexerLaborHistoriesHavingVarianceSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `IndexerLaborHistory`. */\nexport enum IndexerLaborHistoriesOrderBy {\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type IndexerLaborHistory = Node & {\n  readonly __typename: 'IndexerLaborHistory';\n  readonly amount: Scalars['BigFloat']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  readonly deploymentId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerLaborHistory`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type IndexerLaborHistoryAggregates = {\n  readonly __typename: 'IndexerLaborHistoryAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerLaborHistoryAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerLaborHistoryDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerLaborHistoryMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerLaborHistoryMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerLaborHistoryStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerLaborHistoryStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerLaborHistorySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerLaborHistoryVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerLaborHistoryVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerLaborHistory` object types. */\nexport type IndexerLaborHistoryAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerLaborHistory` objects. */\n  readonly average: InputMaybe<IndexerLaborHistoryAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerLaborHistory` objects. */\n  readonly distinctCount: InputMaybe<IndexerLaborHistoryDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerLaborHistory` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerLaborHistoryFilter>;\n  /** Maximum aggregate over matching `IndexerLaborHistory` objects. */\n  readonly max: InputMaybe<IndexerLaborHistoryMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerLaborHistory` objects. */\n  readonly min: InputMaybe<IndexerLaborHistoryMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerLaborHistory` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerLaborHistoryStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerLaborHistory` objects. */\n  readonly stddevSample: InputMaybe<IndexerLaborHistoryStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerLaborHistory` objects. */\n  readonly sum: InputMaybe<IndexerLaborHistorySumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerLaborHistory` objects. */\n  readonly variancePopulation: InputMaybe<IndexerLaborHistoryVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerLaborHistory` objects. */\n  readonly varianceSample: InputMaybe<IndexerLaborHistoryVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerLaborHistoryAverageAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerLaborHistoryAverageAggregates = {\n  readonly __typename: 'IndexerLaborHistoryAverageAggregates';\n  /** Mean average of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerLaborHistoryDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly amount: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerLaborHistoryDistinctCountAggregates = {\n  readonly __typename: 'IndexerLaborHistoryDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerLaborHistory` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerLaborHistoryFilter = {\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerLaborHistoryFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerLaborHistoryFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerLaborHistoryFilter>>;\n};\n\nexport type IndexerLaborHistoryMaxAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type IndexerLaborHistoryMaxAggregates = {\n  readonly __typename: 'IndexerLaborHistoryMaxAggregates';\n  /** Maximum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerLaborHistoryMinAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n};\n\nexport type IndexerLaborHistoryMinAggregates = {\n  readonly __typename: 'IndexerLaborHistoryMinAggregates';\n  /** Minimum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerLaborHistoryStddevPopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerLaborHistoryStddevPopulationAggregates = {\n  readonly __typename: 'IndexerLaborHistoryStddevPopulationAggregates';\n  /** Population standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerLaborHistoryStddevSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerLaborHistoryStddevSampleAggregates = {\n  readonly __typename: 'IndexerLaborHistoryStddevSampleAggregates';\n  /** Sample standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerLaborHistorySumAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerLaborHistorySumAggregates = {\n  readonly __typename: 'IndexerLaborHistorySumAggregates';\n  /** Sum of amount across the matching connection */\n  readonly amount: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n};\n\nexport type IndexerLaborHistoryVariancePopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerLaborHistoryVariancePopulationAggregates = {\n  readonly __typename: 'IndexerLaborHistoryVariancePopulationAggregates';\n  /** Population variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerLaborHistoryVarianceSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerLaborHistoryVarianceSampleAggregates = {\n  readonly __typename: 'IndexerLaborHistoryVarianceSampleAggregates';\n  /** Sample variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerLatestAllocationOverflow = Node & {\n  readonly __typename: 'IndexerLatestAllocationOverflow';\n  readonly createAt: Scalars['Datetime']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `IndexerAllocationOverflow` that is related to this `IndexerLatestAllocationOverflow`. */\n  readonly overflowId: Maybe<IndexerAllocationOverflow>;\n  readonly overflowIdId: Scalars['String']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type IndexerLatestAllocationOverflowAggregates = {\n  readonly __typename: 'IndexerLatestAllocationOverflowAggregates';\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerLatestAllocationOverflowDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n};\n\n/** A filter to be used against aggregates of `IndexerLatestAllocationOverflow` object types. */\nexport type IndexerLatestAllocationOverflowAggregatesFilter = {\n  /** Distinct count aggregate over matching `IndexerLatestAllocationOverflow` objects. */\n  readonly distinctCount: InputMaybe<IndexerLatestAllocationOverflowDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerLatestAllocationOverflow` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerLatestAllocationOverflowFilter>;\n};\n\nexport type IndexerLatestAllocationOverflowDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly overflowIdId: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerLatestAllocationOverflowDistinctCountAggregates = {\n  readonly __typename: 'IndexerLatestAllocationOverflowDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of overflowIdId across the matching connection */\n  readonly overflowIdId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerLatestAllocationOverflow` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerLatestAllocationOverflowFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerLatestAllocationOverflowFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerLatestAllocationOverflowFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerLatestAllocationOverflowFilter>>;\n  /** Filter by the object’s `overflowId` relation. */\n  readonly overflowId: InputMaybe<IndexerAllocationOverflowFilter>;\n  /** Filter by the object’s `overflowIdId` field. */\n  readonly overflowIdId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\n/** A connection to a list of `IndexerLatestAllocationOverflow` values. */\nexport type IndexerLatestAllocationOverflowsConnection = {\n  readonly __typename: 'IndexerLatestAllocationOverflowsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerLatestAllocationOverflowAggregates>;\n  /** A list of edges which contains the `IndexerLatestAllocationOverflow` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerLatestAllocationOverflowsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerLatestAllocationOverflowAggregates>>;\n  /** A list of `IndexerLatestAllocationOverflow` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerLatestAllocationOverflow>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerLatestAllocationOverflow` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerLatestAllocationOverflow` values. */\nexport type IndexerLatestAllocationOverflowsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerLatestAllocationOverflowsGroupBy>;\n  having: InputMaybe<IndexerLatestAllocationOverflowsHavingInput>;\n};\n\n/** A `IndexerLatestAllocationOverflow` edge in the connection. */\nexport type IndexerLatestAllocationOverflowsEdge = {\n  readonly __typename: 'IndexerLatestAllocationOverflowsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerLatestAllocationOverflow` at the end of the edge. */\n  readonly node: Maybe<IndexerLatestAllocationOverflow>;\n};\n\n/** Grouping methods for `IndexerLatestAllocationOverflow` for usage during aggregation. */\nexport enum IndexerLatestAllocationOverflowsGroupBy {\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  ID = 'ID',\n  OVERFLOW_ID_ID = 'OVERFLOW_ID_ID',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type IndexerLatestAllocationOverflowsHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerLatestAllocationOverflowsHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `IndexerLatestAllocationOverflow` aggregates. */\nexport type IndexerLatestAllocationOverflowsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerLatestAllocationOverflowsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerLatestAllocationOverflowsHavingInput>>;\n  readonly average: InputMaybe<IndexerLatestAllocationOverflowsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerLatestAllocationOverflowsHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerLatestAllocationOverflowsHavingMaxInput>;\n  readonly min: InputMaybe<IndexerLatestAllocationOverflowsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerLatestAllocationOverflowsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerLatestAllocationOverflowsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerLatestAllocationOverflowsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerLatestAllocationOverflowsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerLatestAllocationOverflowsHavingVarianceSampleInput>;\n};\n\nexport type IndexerLatestAllocationOverflowsHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerLatestAllocationOverflowsHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerLatestAllocationOverflowsHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerLatestAllocationOverflowsHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerLatestAllocationOverflowsHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerLatestAllocationOverflowsHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type IndexerLatestAllocationOverflowsHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `IndexerLatestAllocationOverflow`. */\nexport enum IndexerLatestAllocationOverflowsOrderBy {\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ID_ASC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ID_DESC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOW_BY_OVERFLOW_ID_ID__UPDATE_AT_DESC',\n  NATURAL = 'NATURAL',\n  OVERFLOW_ID_ID_ASC = 'OVERFLOW_ID_ID_ASC',\n  OVERFLOW_ID_ID_DESC = 'OVERFLOW_ID_ID_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\nexport type IndexerMaxAggregates = {\n  readonly __typename: 'IndexerMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerMinAggregates = {\n  readonly __typename: 'IndexerMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type IndexerMissedLabor = Node & {\n  readonly __typename: 'IndexerMissedLabor';\n  readonly createAt: Scalars['Datetime']['output'];\n  /** Reads a single `Deployment` that is related to this `IndexerMissedLabor`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerMissedLabor`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  readonly missedLabor: Scalars['BigFloat']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type IndexerMissedLaborAggregates = {\n  readonly __typename: 'IndexerMissedLaborAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerMissedLaborAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerMissedLaborDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerMissedLaborMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerMissedLaborMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerMissedLaborStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerMissedLaborStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerMissedLaborSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerMissedLaborVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerMissedLaborVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerMissedLabor` object types. */\nexport type IndexerMissedLaborAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerMissedLabor` objects. */\n  readonly average: InputMaybe<IndexerMissedLaborAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerMissedLabor` objects. */\n  readonly distinctCount: InputMaybe<IndexerMissedLaborDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerMissedLabor` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerMissedLaborFilter>;\n  /** Maximum aggregate over matching `IndexerMissedLabor` objects. */\n  readonly max: InputMaybe<IndexerMissedLaborMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerMissedLabor` objects. */\n  readonly min: InputMaybe<IndexerMissedLaborMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerMissedLabor` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerMissedLaborStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerMissedLabor` objects. */\n  readonly stddevSample: InputMaybe<IndexerMissedLaborStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerMissedLabor` objects. */\n  readonly sum: InputMaybe<IndexerMissedLaborSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerMissedLabor` objects. */\n  readonly variancePopulation: InputMaybe<IndexerMissedLaborVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerMissedLabor` objects. */\n  readonly varianceSample: InputMaybe<IndexerMissedLaborVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerMissedLaborAverageAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly missedLabor: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerMissedLaborAverageAggregates = {\n  readonly __typename: 'IndexerMissedLaborAverageAggregates';\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of missedLabor across the matching connection */\n  readonly missedLabor: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerMissedLaborDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly missedLabor: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerMissedLaborDistinctCountAggregates = {\n  readonly __typename: 'IndexerMissedLaborDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of missedLabor across the matching connection */\n  readonly missedLabor: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerMissedLabor` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerMissedLaborFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerMissedLaborFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `missedLabor` field. */\n  readonly missedLabor: InputMaybe<BigFloatFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerMissedLaborFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerMissedLaborFilter>>;\n};\n\nexport type IndexerMissedLaborMaxAggregateFilter = {\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly missedLabor: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerMissedLaborMaxAggregates = {\n  readonly __typename: 'IndexerMissedLaborMaxAggregates';\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of missedLabor across the matching connection */\n  readonly missedLabor: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerMissedLaborMinAggregateFilter = {\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly missedLabor: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerMissedLaborMinAggregates = {\n  readonly __typename: 'IndexerMissedLaborMinAggregates';\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of missedLabor across the matching connection */\n  readonly missedLabor: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerMissedLaborStddevPopulationAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly missedLabor: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerMissedLaborStddevPopulationAggregates = {\n  readonly __typename: 'IndexerMissedLaborStddevPopulationAggregates';\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of missedLabor across the matching connection */\n  readonly missedLabor: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerMissedLaborStddevSampleAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly missedLabor: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerMissedLaborStddevSampleAggregates = {\n  readonly __typename: 'IndexerMissedLaborStddevSampleAggregates';\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of missedLabor across the matching connection */\n  readonly missedLabor: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerMissedLaborSumAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly missedLabor: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerMissedLaborSumAggregates = {\n  readonly __typename: 'IndexerMissedLaborSumAggregates';\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of missedLabor across the matching connection */\n  readonly missedLabor: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerMissedLaborVariancePopulationAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly missedLabor: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerMissedLaborVariancePopulationAggregates = {\n  readonly __typename: 'IndexerMissedLaborVariancePopulationAggregates';\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of missedLabor across the matching connection */\n  readonly missedLabor: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerMissedLaborVarianceSampleAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly missedLabor: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerMissedLaborVarianceSampleAggregates = {\n  readonly __typename: 'IndexerMissedLaborVarianceSampleAggregates';\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of missedLabor across the matching connection */\n  readonly missedLabor: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `IndexerMissedLabor` values. */\nexport type IndexerMissedLaborsConnection = {\n  readonly __typename: 'IndexerMissedLaborsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerMissedLaborAggregates>;\n  /** A list of edges which contains the `IndexerMissedLabor` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerMissedLaborsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerMissedLaborAggregates>>;\n  /** A list of `IndexerMissedLabor` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerMissedLabor>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerMissedLabor` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerMissedLabor` values. */\nexport type IndexerMissedLaborsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerMissedLaborsGroupBy>;\n  having: InputMaybe<IndexerMissedLaborsHavingInput>;\n};\n\n/** A `IndexerMissedLabor` edge in the connection. */\nexport type IndexerMissedLaborsEdge = {\n  readonly __typename: 'IndexerMissedLaborsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerMissedLabor` at the end of the edge. */\n  readonly node: Maybe<IndexerMissedLabor>;\n};\n\n/** Grouping methods for `IndexerMissedLabor` for usage during aggregation. */\nexport enum IndexerMissedLaborsGroupBy {\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  MISSED_LABOR = 'MISSED_LABOR',\n}\n\nexport type IndexerMissedLaborsHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly missedLabor: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerMissedLaborsHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly missedLabor: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `IndexerMissedLabor` aggregates. */\nexport type IndexerMissedLaborsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerMissedLaborsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerMissedLaborsHavingInput>>;\n  readonly average: InputMaybe<IndexerMissedLaborsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerMissedLaborsHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerMissedLaborsHavingMaxInput>;\n  readonly min: InputMaybe<IndexerMissedLaborsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerMissedLaborsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerMissedLaborsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerMissedLaborsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerMissedLaborsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerMissedLaborsHavingVarianceSampleInput>;\n};\n\nexport type IndexerMissedLaborsHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly missedLabor: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerMissedLaborsHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly missedLabor: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerMissedLaborsHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly missedLabor: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerMissedLaborsHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly missedLabor: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerMissedLaborsHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly missedLabor: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerMissedLaborsHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly missedLabor: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerMissedLaborsHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly missedLabor: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `IndexerMissedLabor`. */\nexport enum IndexerMissedLaborsOrderBy {\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  MISSED_LABOR_ASC = 'MISSED_LABOR_ASC',\n  MISSED_LABOR_DESC = 'MISSED_LABOR_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\n/** A connection to a list of `Offer` values, with data from `AcceptedOffer`. */\nexport type IndexerOffersByAcceptedOfferIndexerIdAndOfferIdManyToManyConnection = {\n  readonly __typename: 'IndexerOffersByAcceptedOfferIndexerIdAndOfferIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<OfferAggregates>;\n  /** A list of edges which contains the `Offer`, info from the `AcceptedOffer`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerOffersByAcceptedOfferIndexerIdAndOfferIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<OfferAggregates>>;\n  /** A list of `Offer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Offer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Offer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Offer` values, with data from `AcceptedOffer`. */\nexport type IndexerOffersByAcceptedOfferIndexerIdAndOfferIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<OffersGroupBy>;\n  having: InputMaybe<OffersHavingInput>;\n};\n\n/** A `Offer` edge in the connection, with data from `AcceptedOffer`. */\nexport type IndexerOffersByAcceptedOfferIndexerIdAndOfferIdManyToManyEdge = {\n  readonly __typename: 'IndexerOffersByAcceptedOfferIndexerIdAndOfferIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: AcceptedOffersConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Offer` at the end of the edge. */\n  readonly node: Maybe<Offer>;\n};\n\n/** A `Offer` edge in the connection, with data from `AcceptedOffer`. */\nexport type IndexerOffersByAcceptedOfferIndexerIdAndOfferIdManyToManyEdgeAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocation`. */\nexport type IndexerProjectsByIndexerAllocationIndexerIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'IndexerProjectsByIndexerAllocationIndexerIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `IndexerAllocation`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerProjectsByIndexerAllocationIndexerIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocation`. */\nexport type IndexerProjectsByIndexerAllocationIndexerIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ProjectsGroupBy>;\n  having: InputMaybe<ProjectsHavingInput>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocation`. */\nexport type IndexerProjectsByIndexerAllocationIndexerIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'IndexerProjectsByIndexerAllocationIndexerIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: IndexerAllocationsConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocation`. */\nexport type IndexerProjectsByIndexerAllocationIndexerIdAndProjectIdManyToManyEdgeIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationReward`. */\nexport type IndexerProjectsByIndexerAllocationRewardIndexerIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'IndexerProjectsByIndexerAllocationRewardIndexerIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `IndexerAllocationReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerProjectsByIndexerAllocationRewardIndexerIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationReward`. */\nexport type IndexerProjectsByIndexerAllocationRewardIndexerIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ProjectsGroupBy>;\n  having: InputMaybe<ProjectsHavingInput>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type IndexerProjectsByIndexerAllocationRewardIndexerIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'IndexerProjectsByIndexerAllocationRewardIndexerIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: IndexerAllocationRewardsConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type IndexerProjectsByIndexerAllocationRewardIndexerIdAndProjectIdManyToManyEdgeIndexerAllocationRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationRewardSummary`. */\nexport type IndexerProjectsByIndexerAllocationRewardSummaryIndexerIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'IndexerProjectsByIndexerAllocationRewardSummaryIndexerIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `IndexerAllocationRewardSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerProjectsByIndexerAllocationRewardSummaryIndexerIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationRewardSummary`. */\nexport type IndexerProjectsByIndexerAllocationRewardSummaryIndexerIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<ProjectsGroupBy>;\n    having: InputMaybe<ProjectsHavingInput>;\n  };\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type IndexerProjectsByIndexerAllocationRewardSummaryIndexerIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'IndexerProjectsByIndexerAllocationRewardSummaryIndexerIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: IndexerAllocationRewardSummariesConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type IndexerProjectsByIndexerAllocationRewardSummaryIndexerIdAndProjectIdManyToManyEdgeIndexerAllocationRewardSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationSummary`. */\nexport type IndexerProjectsByIndexerAllocationSummaryIndexerIdAndProjectIdManyToManyConnection = {\n  readonly __typename: 'IndexerProjectsByIndexerAllocationSummaryIndexerIdAndProjectIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project`, info from the `IndexerAllocationSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerProjectsByIndexerAllocationSummaryIndexerIdAndProjectIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values, with data from `IndexerAllocationSummary`. */\nexport type IndexerProjectsByIndexerAllocationSummaryIndexerIdAndProjectIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ProjectsGroupBy>;\n  having: InputMaybe<ProjectsHavingInput>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type IndexerProjectsByIndexerAllocationSummaryIndexerIdAndProjectIdManyToManyEdge = {\n  readonly __typename: 'IndexerProjectsByIndexerAllocationSummaryIndexerIdAndProjectIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: IndexerAllocationSummariesConnection;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** A `Project` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type IndexerProjectsByIndexerAllocationSummaryIndexerIdAndProjectIdManyToManyEdgeIndexerAllocationSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\nexport type IndexerReward = Node & {\n  readonly __typename: 'IndexerReward';\n  readonly amount: Scalars['BigFloat']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly eraId: Scalars['BigFloat']['output'];\n  readonly eraIdx: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerReward`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type IndexerRewardAggregates = {\n  readonly __typename: 'IndexerRewardAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerRewardAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerRewardDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerRewardMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerRewardMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerRewardStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerRewardStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerRewardSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerRewardVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerRewardVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerReward` object types. */\nexport type IndexerRewardAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerReward` objects. */\n  readonly average: InputMaybe<IndexerRewardAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerReward` objects. */\n  readonly distinctCount: InputMaybe<IndexerRewardDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerReward` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerRewardFilter>;\n  /** Maximum aggregate over matching `IndexerReward` objects. */\n  readonly max: InputMaybe<IndexerRewardMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerReward` objects. */\n  readonly min: InputMaybe<IndexerRewardMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerReward` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerRewardStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerReward` objects. */\n  readonly stddevSample: InputMaybe<IndexerRewardStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerReward` objects. */\n  readonly sum: InputMaybe<IndexerRewardSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerReward` objects. */\n  readonly variancePopulation: InputMaybe<IndexerRewardVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerReward` objects. */\n  readonly varianceSample: InputMaybe<IndexerRewardVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerRewardAverageAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraId: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerRewardAverageAggregates = {\n  readonly __typename: 'IndexerRewardAverageAggregates';\n  /** Mean average of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerRewardDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly amount: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly eraId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerRewardDistinctCountAggregates = {\n  readonly __typename: 'IndexerRewardDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerReward` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerRewardFilter = {\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerRewardFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `eraId` field. */\n  readonly eraId: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerRewardFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerRewardFilter>>;\n};\n\nexport type IndexerRewardMaxAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly eraId: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerRewardMaxAggregates = {\n  readonly __typename: 'IndexerRewardMaxAggregates';\n  /** Maximum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerRewardMinAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly eraId: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerRewardMinAggregates = {\n  readonly __typename: 'IndexerRewardMinAggregates';\n  /** Minimum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerRewardStddevPopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraId: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerRewardStddevPopulationAggregates = {\n  readonly __typename: 'IndexerRewardStddevPopulationAggregates';\n  /** Population standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerRewardStddevSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraId: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerRewardStddevSampleAggregates = {\n  readonly __typename: 'IndexerRewardStddevSampleAggregates';\n  /** Sample standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerRewardSumAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly eraId: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerRewardSumAggregates = {\n  readonly __typename: 'IndexerRewardSumAggregates';\n  /** Sum of amount across the matching connection */\n  readonly amount: Scalars['BigFloat']['output'];\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of eraId across the matching connection */\n  readonly eraId: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerRewardVariancePopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraId: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerRewardVariancePopulationAggregates = {\n  readonly __typename: 'IndexerRewardVariancePopulationAggregates';\n  /** Population variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerRewardVarianceSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly eraId: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerRewardVarianceSampleAggregates = {\n  readonly __typename: 'IndexerRewardVarianceSampleAggregates';\n  /** Sample variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `IndexerReward` values. */\nexport type IndexerRewardsConnection = {\n  readonly __typename: 'IndexerRewardsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerRewardAggregates>;\n  /** A list of edges which contains the `IndexerReward` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerRewardsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerRewardAggregates>>;\n  /** A list of `IndexerReward` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerReward>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerReward` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerReward` values. */\nexport type IndexerRewardsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerRewardsGroupBy>;\n  having: InputMaybe<IndexerRewardsHavingInput>;\n};\n\n/** A `IndexerReward` edge in the connection. */\nexport type IndexerRewardsEdge = {\n  readonly __typename: 'IndexerRewardsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerReward` at the end of the edge. */\n  readonly node: Maybe<IndexerReward>;\n};\n\n/** Grouping methods for `IndexerReward` for usage during aggregation. */\nexport enum IndexerRewardsGroupBy {\n  AMOUNT = 'AMOUNT',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport type IndexerRewardsHavingAverageInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly eraId: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerRewardsHavingDistinctCountInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly eraId: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `IndexerReward` aggregates. */\nexport type IndexerRewardsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerRewardsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerRewardsHavingInput>>;\n  readonly average: InputMaybe<IndexerRewardsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerRewardsHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerRewardsHavingMaxInput>;\n  readonly min: InputMaybe<IndexerRewardsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerRewardsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerRewardsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerRewardsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerRewardsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerRewardsHavingVarianceSampleInput>;\n};\n\nexport type IndexerRewardsHavingMaxInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly eraId: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerRewardsHavingMinInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly eraId: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerRewardsHavingStddevPopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly eraId: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerRewardsHavingStddevSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly eraId: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerRewardsHavingSumInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly eraId: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerRewardsHavingVariancePopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly eraId: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerRewardsHavingVarianceSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly eraId: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `IndexerReward`. */\nexport enum IndexerRewardsOrderBy {\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ERA_ID_ASC = 'ERA_ID_ASC',\n  ERA_ID_DESC = 'ERA_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\n/** A connection to a list of `ServiceAgreement` values, with data from `AcceptedOffer`. */\nexport type IndexerServiceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementIdManyToManyConnection = {\n  readonly __typename: 'IndexerServiceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ServiceAgreementAggregates>;\n  /** A list of edges which contains the `ServiceAgreement`, info from the `AcceptedOffer`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerServiceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ServiceAgreementAggregates>>;\n  /** A list of `ServiceAgreement` objects. */\n  readonly nodes: ReadonlyArray<Maybe<ServiceAgreement>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `ServiceAgreement` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `ServiceAgreement` values, with data from `AcceptedOffer`. */\nexport type IndexerServiceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<ServiceAgreementsGroupBy>;\n    having: InputMaybe<ServiceAgreementsHavingInput>;\n  };\n\n/** A `ServiceAgreement` edge in the connection, with data from `AcceptedOffer`. */\nexport type IndexerServiceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementIdManyToManyEdge = {\n  readonly __typename: 'IndexerServiceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: AcceptedOffersConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `ServiceAgreement` at the end of the edge. */\n  readonly node: Maybe<ServiceAgreement>;\n};\n\n/** A `ServiceAgreement` edge in the connection, with data from `AcceptedOffer`. */\nexport type IndexerServiceAgreementsByAcceptedOfferIndexerIdAndServiceAgreementIdManyToManyEdgeAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type IndexerStake = Node & {\n  readonly __typename: 'IndexerStake';\n  readonly delegatorStake: Scalars['BigFloat']['output'];\n  /** Reads a single `Era` that is related to this `IndexerStake`. */\n  readonly era: Maybe<Era>;\n  readonly eraId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerStake`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  readonly indexerStake: Scalars['BigFloat']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly totalStake: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerStakeAggregates = {\n  readonly __typename: 'IndexerStakeAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerStakeAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerStakeDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerStakeMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerStakeMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerStakeStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerStakeStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerStakeSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerStakeVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerStakeVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerStake` object types. */\nexport type IndexerStakeAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerStake` objects. */\n  readonly average: InputMaybe<IndexerStakeAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerStake` objects. */\n  readonly distinctCount: InputMaybe<IndexerStakeDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerStake` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerStakeFilter>;\n  /** Maximum aggregate over matching `IndexerStake` objects. */\n  readonly max: InputMaybe<IndexerStakeMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerStake` objects. */\n  readonly min: InputMaybe<IndexerStakeMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerStake` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerStakeStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerStake` objects. */\n  readonly stddevSample: InputMaybe<IndexerStakeStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerStake` objects. */\n  readonly sum: InputMaybe<IndexerStakeSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerStake` objects. */\n  readonly variancePopulation: InputMaybe<IndexerStakeVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerStake` objects. */\n  readonly varianceSample: InputMaybe<IndexerStakeVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerStakeAverageAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeAverageAggregates = {\n  readonly __typename: 'IndexerStakeAverageAggregates';\n  /** Mean average of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly delegatorStake: InputMaybe<BigIntFilter>;\n  readonly eraId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly indexerStake: InputMaybe<BigIntFilter>;\n  readonly totalStake: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerStakeDistinctCountAggregates = {\n  readonly __typename: 'IndexerStakeDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerStake` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerStakeFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerStakeFilter>>;\n  /** Filter by the object’s `delegatorStake` field. */\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `era` relation. */\n  readonly era: InputMaybe<EraFilter>;\n  /** Filter by the object’s `eraId` field. */\n  readonly eraId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerStake` field. */\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerStakeFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerStakeFilter>>;\n  /** Filter by the object’s `totalStake` field. */\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeMaxAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeMaxAggregates = {\n  readonly __typename: 'IndexerStakeMaxAggregates';\n  /** Maximum of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeMinAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeMinAggregates = {\n  readonly __typename: 'IndexerStakeMinAggregates';\n  /** Minimum of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeStddevPopulationAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeStddevPopulationAggregates = {\n  readonly __typename: 'IndexerStakeStddevPopulationAggregates';\n  /** Population standard deviation of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeStddevSampleAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeStddevSampleAggregates = {\n  readonly __typename: 'IndexerStakeStddevSampleAggregates';\n  /** Sample standard deviation of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeSumAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSumAggregates = {\n  readonly __typename: 'IndexerStakeSumAggregates';\n  /** Sum of delegatorStake across the matching connection */\n  readonly delegatorStake: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of indexerStake across the matching connection */\n  readonly indexerStake: Scalars['BigFloat']['output'];\n  /** Sum of totalStake across the matching connection */\n  readonly totalStake: Scalars['BigFloat']['output'];\n};\n\n/** A connection to a list of `IndexerStakeSummary` values. */\nexport type IndexerStakeSummariesConnection = {\n  readonly __typename: 'IndexerStakeSummariesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerStakeSummaryAggregates>;\n  /** A list of edges which contains the `IndexerStakeSummary` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerStakeSummariesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerStakeSummaryAggregates>>;\n  /** A list of `IndexerStakeSummary` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerStakeSummary>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerStakeSummary` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerStakeSummary` values. */\nexport type IndexerStakeSummariesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerStakeSummariesGroupBy>;\n  having: InputMaybe<IndexerStakeSummariesHavingInput>;\n};\n\n/** A `IndexerStakeSummary` edge in the connection. */\nexport type IndexerStakeSummariesEdge = {\n  readonly __typename: 'IndexerStakeSummariesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerStakeSummary` at the end of the edge. */\n  readonly node: Maybe<IndexerStakeSummary>;\n};\n\n/** Grouping methods for `IndexerStakeSummary` for usage during aggregation. */\nexport enum IndexerStakeSummariesGroupBy {\n  DELEGATOR_STAKE = 'DELEGATOR_STAKE',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_STAKE = 'INDEXER_STAKE',\n  NEXT_DELEGATOR_STAKE = 'NEXT_DELEGATOR_STAKE',\n  NEXT_INDEXER_STAKE = 'NEXT_INDEXER_STAKE',\n  NEXT_TOTAL_STAKE = 'NEXT_TOTAL_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport type IndexerStakeSummariesHavingAverageInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextIndexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextTotalStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeSummariesHavingDistinctCountInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextIndexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextTotalStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `IndexerStakeSummary` aggregates. */\nexport type IndexerStakeSummariesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerStakeSummariesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerStakeSummariesHavingInput>>;\n  readonly average: InputMaybe<IndexerStakeSummariesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerStakeSummariesHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerStakeSummariesHavingMaxInput>;\n  readonly min: InputMaybe<IndexerStakeSummariesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerStakeSummariesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerStakeSummariesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerStakeSummariesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerStakeSummariesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerStakeSummariesHavingVarianceSampleInput>;\n};\n\nexport type IndexerStakeSummariesHavingMaxInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextIndexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextTotalStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeSummariesHavingMinInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextIndexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextTotalStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeSummariesHavingStddevPopulationInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextIndexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextTotalStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeSummariesHavingStddevSampleInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextIndexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextTotalStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeSummariesHavingSumInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextIndexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextTotalStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeSummariesHavingVariancePopulationInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextIndexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextTotalStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeSummariesHavingVarianceSampleInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextIndexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly nextTotalStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `IndexerStakeSummary`. */\nexport enum IndexerStakeSummariesOrderBy {\n  DELEGATOR_STAKE_ASC = 'DELEGATOR_STAKE_ASC',\n  DELEGATOR_STAKE_DESC = 'DELEGATOR_STAKE_DESC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_ASC = 'ERA_BY_ERA_ID__CREATED_BLOCK_ASC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_DESC = 'ERA_BY_ERA_ID__CREATED_BLOCK_DESC',\n  ERA_BY_ERA_ID__END_TIME_ASC = 'ERA_BY_ERA_ID__END_TIME_ASC',\n  ERA_BY_ERA_ID__END_TIME_DESC = 'ERA_BY_ERA_ID__END_TIME_DESC',\n  ERA_BY_ERA_ID__ERA_PERIOD_ASC = 'ERA_BY_ERA_ID__ERA_PERIOD_ASC',\n  ERA_BY_ERA_ID__ERA_PERIOD_DESC = 'ERA_BY_ERA_ID__ERA_PERIOD_DESC',\n  ERA_BY_ERA_ID__FORCE_NEXT_ASC = 'ERA_BY_ERA_ID__FORCE_NEXT_ASC',\n  ERA_BY_ERA_ID__FORCE_NEXT_DESC = 'ERA_BY_ERA_ID__FORCE_NEXT_DESC',\n  ERA_BY_ERA_ID__ID_ASC = 'ERA_BY_ERA_ID__ID_ASC',\n  ERA_BY_ERA_ID__ID_DESC = 'ERA_BY_ERA_ID__ID_DESC',\n  ERA_BY_ERA_ID__LAST_EVENT_ASC = 'ERA_BY_ERA_ID__LAST_EVENT_ASC',\n  ERA_BY_ERA_ID__LAST_EVENT_DESC = 'ERA_BY_ERA_ID__LAST_EVENT_DESC',\n  ERA_BY_ERA_ID__START_TIME_ASC = 'ERA_BY_ERA_ID__START_TIME_ASC',\n  ERA_BY_ERA_ID__START_TIME_DESC = 'ERA_BY_ERA_ID__START_TIME_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ERA_ID_ASC = 'ERA_ID_ASC',\n  ERA_ID_DESC = 'ERA_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_STAKE_ASC = 'INDEXER_STAKE_ASC',\n  INDEXER_STAKE_DESC = 'INDEXER_STAKE_DESC',\n  NATURAL = 'NATURAL',\n  NEXT_DELEGATOR_STAKE_ASC = 'NEXT_DELEGATOR_STAKE_ASC',\n  NEXT_DELEGATOR_STAKE_DESC = 'NEXT_DELEGATOR_STAKE_DESC',\n  NEXT_INDEXER_STAKE_ASC = 'NEXT_INDEXER_STAKE_ASC',\n  NEXT_INDEXER_STAKE_DESC = 'NEXT_INDEXER_STAKE_DESC',\n  NEXT_TOTAL_STAKE_ASC = 'NEXT_TOTAL_STAKE_ASC',\n  NEXT_TOTAL_STAKE_DESC = 'NEXT_TOTAL_STAKE_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  TOTAL_STAKE_ASC = 'TOTAL_STAKE_ASC',\n  TOTAL_STAKE_DESC = 'TOTAL_STAKE_DESC',\n}\n\nexport type IndexerStakeSummary = Node & {\n  readonly __typename: 'IndexerStakeSummary';\n  readonly delegatorStake: Scalars['BigFloat']['output'];\n  /** Reads a single `Era` that is related to this `IndexerStakeSummary`. */\n  readonly era: Maybe<Era>;\n  readonly eraId: Scalars['String']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  readonly indexerStake: Scalars['BigFloat']['output'];\n  readonly nextDelegatorStake: Scalars['BigFloat']['output'];\n  readonly nextIndexerStake: Scalars['BigFloat']['output'];\n  readonly nextTotalStake: Scalars['BigFloat']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly totalStake: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerStakeSummaryAggregates = {\n  readonly __typename: 'IndexerStakeSummaryAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerStakeSummaryAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerStakeSummaryDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerStakeSummaryMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerStakeSummaryMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerStakeSummaryStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerStakeSummaryStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerStakeSummarySumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerStakeSummaryVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerStakeSummaryVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerStakeSummary` object types. */\nexport type IndexerStakeSummaryAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerStakeSummary` objects. */\n  readonly average: InputMaybe<IndexerStakeSummaryAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerStakeSummary` objects. */\n  readonly distinctCount: InputMaybe<IndexerStakeSummaryDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerStakeSummary` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerStakeSummaryFilter>;\n  /** Maximum aggregate over matching `IndexerStakeSummary` objects. */\n  readonly max: InputMaybe<IndexerStakeSummaryMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerStakeSummary` objects. */\n  readonly min: InputMaybe<IndexerStakeSummaryMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerStakeSummary` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerStakeSummaryStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerStakeSummary` objects. */\n  readonly stddevSample: InputMaybe<IndexerStakeSummaryStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerStakeSummary` objects. */\n  readonly sum: InputMaybe<IndexerStakeSummarySumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerStakeSummary` objects. */\n  readonly variancePopulation: InputMaybe<IndexerStakeSummaryVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerStakeSummary` objects. */\n  readonly varianceSample: InputMaybe<IndexerStakeSummaryVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerStakeSummaryAverageAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<BigFloatFilter>;\n  readonly nextIndexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextTotalStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSummaryAverageAggregates = {\n  readonly __typename: 'IndexerStakeSummaryAverageAggregates';\n  /** Mean average of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of nextDelegatorStake across the matching connection */\n  readonly nextDelegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of nextIndexerStake across the matching connection */\n  readonly nextIndexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of nextTotalStake across the matching connection */\n  readonly nextTotalStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeSummaryDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly delegatorStake: InputMaybe<BigIntFilter>;\n  readonly eraId: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerStake: InputMaybe<BigIntFilter>;\n  readonly nextDelegatorStake: InputMaybe<BigIntFilter>;\n  readonly nextIndexerStake: InputMaybe<BigIntFilter>;\n  readonly nextTotalStake: InputMaybe<BigIntFilter>;\n  readonly totalStake: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerStakeSummaryDistinctCountAggregates = {\n  readonly __typename: 'IndexerStakeSummaryDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraId across the matching connection */\n  readonly eraId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of nextDelegatorStake across the matching connection */\n  readonly nextDelegatorStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of nextIndexerStake across the matching connection */\n  readonly nextIndexerStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of nextTotalStake across the matching connection */\n  readonly nextTotalStake: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerStakeSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerStakeSummaryFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerStakeSummaryFilter>>;\n  /** Filter by the object’s `delegatorStake` field. */\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `era` relation. */\n  readonly era: InputMaybe<EraFilter>;\n  /** Filter by the object’s `eraId` field. */\n  readonly eraId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerStake` field. */\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `nextDelegatorStake` field. */\n  readonly nextDelegatorStake: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `nextIndexerStake` field. */\n  readonly nextIndexerStake: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `nextTotalStake` field. */\n  readonly nextTotalStake: InputMaybe<BigFloatFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerStakeSummaryFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerStakeSummaryFilter>>;\n  /** Filter by the object’s `totalStake` field. */\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSummaryMaxAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<BigFloatFilter>;\n  readonly nextIndexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextTotalStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSummaryMaxAggregates = {\n  readonly __typename: 'IndexerStakeSummaryMaxAggregates';\n  /** Maximum of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of nextDelegatorStake across the matching connection */\n  readonly nextDelegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of nextIndexerStake across the matching connection */\n  readonly nextIndexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of nextTotalStake across the matching connection */\n  readonly nextTotalStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeSummaryMinAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<BigFloatFilter>;\n  readonly nextIndexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextTotalStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSummaryMinAggregates = {\n  readonly __typename: 'IndexerStakeSummaryMinAggregates';\n  /** Minimum of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of nextDelegatorStake across the matching connection */\n  readonly nextDelegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of nextIndexerStake across the matching connection */\n  readonly nextIndexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of nextTotalStake across the matching connection */\n  readonly nextTotalStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeSummaryStddevPopulationAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<BigFloatFilter>;\n  readonly nextIndexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextTotalStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSummaryStddevPopulationAggregates = {\n  readonly __typename: 'IndexerStakeSummaryStddevPopulationAggregates';\n  /** Population standard deviation of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of nextDelegatorStake across the matching connection */\n  readonly nextDelegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of nextIndexerStake across the matching connection */\n  readonly nextIndexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of nextTotalStake across the matching connection */\n  readonly nextTotalStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeSummaryStddevSampleAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<BigFloatFilter>;\n  readonly nextIndexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextTotalStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSummaryStddevSampleAggregates = {\n  readonly __typename: 'IndexerStakeSummaryStddevSampleAggregates';\n  /** Sample standard deviation of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of nextDelegatorStake across the matching connection */\n  readonly nextDelegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of nextIndexerStake across the matching connection */\n  readonly nextIndexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of nextTotalStake across the matching connection */\n  readonly nextTotalStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeSummarySumAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<BigFloatFilter>;\n  readonly nextIndexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextTotalStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSummarySumAggregates = {\n  readonly __typename: 'IndexerStakeSummarySumAggregates';\n  /** Sum of delegatorStake across the matching connection */\n  readonly delegatorStake: Scalars['BigFloat']['output'];\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of indexerStake across the matching connection */\n  readonly indexerStake: Scalars['BigFloat']['output'];\n  /** Sum of nextDelegatorStake across the matching connection */\n  readonly nextDelegatorStake: Scalars['BigFloat']['output'];\n  /** Sum of nextIndexerStake across the matching connection */\n  readonly nextIndexerStake: Scalars['BigFloat']['output'];\n  /** Sum of nextTotalStake across the matching connection */\n  readonly nextTotalStake: Scalars['BigFloat']['output'];\n  /** Sum of totalStake across the matching connection */\n  readonly totalStake: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerStakeSummaryVariancePopulationAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<BigFloatFilter>;\n  readonly nextIndexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextTotalStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSummaryVariancePopulationAggregates = {\n  readonly __typename: 'IndexerStakeSummaryVariancePopulationAggregates';\n  /** Population variance of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of nextDelegatorStake across the matching connection */\n  readonly nextDelegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of nextIndexerStake across the matching connection */\n  readonly nextIndexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of nextTotalStake across the matching connection */\n  readonly nextTotalStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeSummaryVarianceSampleAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextDelegatorStake: InputMaybe<BigFloatFilter>;\n  readonly nextIndexerStake: InputMaybe<BigFloatFilter>;\n  readonly nextTotalStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeSummaryVarianceSampleAggregates = {\n  readonly __typename: 'IndexerStakeSummaryVarianceSampleAggregates';\n  /** Sample variance of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of nextDelegatorStake across the matching connection */\n  readonly nextDelegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of nextIndexerStake across the matching connection */\n  readonly nextIndexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of nextTotalStake across the matching connection */\n  readonly nextTotalStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeVariancePopulationAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeVariancePopulationAggregates = {\n  readonly __typename: 'IndexerStakeVariancePopulationAggregates';\n  /** Population variance of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeVarianceSampleAggregateFilter = {\n  readonly delegatorStake: InputMaybe<BigFloatFilter>;\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly indexerStake: InputMaybe<BigFloatFilter>;\n  readonly totalStake: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeVarianceSampleAggregates = {\n  readonly __typename: 'IndexerStakeVarianceSampleAggregates';\n  /** Sample variance of delegatorStake across the matching connection */\n  readonly delegatorStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of indexerStake across the matching connection */\n  readonly indexerStake: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeWeight = Node & {\n  readonly __typename: 'IndexerStakeWeight';\n  readonly createAt: Scalars['Datetime']['output'];\n  readonly eraIdx: Scalars['Int']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads a single `Indexer` that is related to this `IndexerStakeWeight`. */\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerId: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n  readonly weight: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerStakeWeightAggregates = {\n  readonly __typename: 'IndexerStakeWeightAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<IndexerStakeWeightAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<IndexerStakeWeightDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<IndexerStakeWeightMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<IndexerStakeWeightMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<IndexerStakeWeightStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<IndexerStakeWeightStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<IndexerStakeWeightSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<IndexerStakeWeightVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<IndexerStakeWeightVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `IndexerStakeWeight` object types. */\nexport type IndexerStakeWeightAggregatesFilter = {\n  /** Mean average aggregate over matching `IndexerStakeWeight` objects. */\n  readonly average: InputMaybe<IndexerStakeWeightAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `IndexerStakeWeight` objects. */\n  readonly distinctCount: InputMaybe<IndexerStakeWeightDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `IndexerStakeWeight` object to be included within the aggregate. */\n  readonly filter: InputMaybe<IndexerStakeWeightFilter>;\n  /** Maximum aggregate over matching `IndexerStakeWeight` objects. */\n  readonly max: InputMaybe<IndexerStakeWeightMaxAggregateFilter>;\n  /** Minimum aggregate over matching `IndexerStakeWeight` objects. */\n  readonly min: InputMaybe<IndexerStakeWeightMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `IndexerStakeWeight` objects. */\n  readonly stddevPopulation: InputMaybe<IndexerStakeWeightStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `IndexerStakeWeight` objects. */\n  readonly stddevSample: InputMaybe<IndexerStakeWeightStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `IndexerStakeWeight` objects. */\n  readonly sum: InputMaybe<IndexerStakeWeightSumAggregateFilter>;\n  /** Population variance aggregate over matching `IndexerStakeWeight` objects. */\n  readonly variancePopulation: InputMaybe<IndexerStakeWeightVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `IndexerStakeWeight` objects. */\n  readonly varianceSample: InputMaybe<IndexerStakeWeightVarianceSampleAggregateFilter>;\n};\n\nexport type IndexerStakeWeightAverageAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly weight: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeWeightAverageAggregates = {\n  readonly __typename: 'IndexerStakeWeightAverageAggregates';\n  /** Mean average of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of weight across the matching connection */\n  readonly weight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeWeightDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly createAt: InputMaybe<BigIntFilter>;\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerId: InputMaybe<BigIntFilter>;\n  readonly updateAt: InputMaybe<BigIntFilter>;\n  readonly weight: InputMaybe<BigIntFilter>;\n};\n\nexport type IndexerStakeWeightDistinctCountAggregates = {\n  readonly __typename: 'IndexerStakeWeightDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerId across the matching connection */\n  readonly indexerId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of weight across the matching connection */\n  readonly weight: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `IndexerStakeWeight` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerStakeWeightFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<IndexerStakeWeightFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `eraIdx` field. */\n  readonly eraIdx: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` relation. */\n  readonly indexer: InputMaybe<IndexerFilter>;\n  /** Filter by the object’s `indexerId` field. */\n  readonly indexerId: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<IndexerStakeWeightFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<IndexerStakeWeightFilter>>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `weight` field. */\n  readonly weight: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeWeightMaxAggregateFilter = {\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly weight: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeWeightMaxAggregates = {\n  readonly __typename: 'IndexerStakeWeightMaxAggregates';\n  /** Maximum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Maximum of weight across the matching connection */\n  readonly weight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeWeightMinAggregateFilter = {\n  readonly eraIdx: InputMaybe<IntFilter>;\n  readonly weight: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeWeightMinAggregates = {\n  readonly __typename: 'IndexerStakeWeightMinAggregates';\n  /** Minimum of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['Int']['output']>;\n  /** Minimum of weight across the matching connection */\n  readonly weight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeWeightStddevPopulationAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly weight: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeWeightStddevPopulationAggregates = {\n  readonly __typename: 'IndexerStakeWeightStddevPopulationAggregates';\n  /** Population standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of weight across the matching connection */\n  readonly weight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeWeightStddevSampleAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly weight: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeWeightStddevSampleAggregates = {\n  readonly __typename: 'IndexerStakeWeightStddevSampleAggregates';\n  /** Sample standard deviation of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of weight across the matching connection */\n  readonly weight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeWeightSumAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigIntFilter>;\n  readonly weight: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeWeightSumAggregates = {\n  readonly __typename: 'IndexerStakeWeightSumAggregates';\n  /** Sum of eraIdx across the matching connection */\n  readonly eraIdx: Scalars['BigInt']['output'];\n  /** Sum of weight across the matching connection */\n  readonly weight: Scalars['BigFloat']['output'];\n};\n\nexport type IndexerStakeWeightVariancePopulationAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly weight: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeWeightVariancePopulationAggregates = {\n  readonly __typename: 'IndexerStakeWeightVariancePopulationAggregates';\n  /** Population variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of weight across the matching connection */\n  readonly weight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStakeWeightVarianceSampleAggregateFilter = {\n  readonly eraIdx: InputMaybe<BigFloatFilter>;\n  readonly weight: InputMaybe<BigFloatFilter>;\n};\n\nexport type IndexerStakeWeightVarianceSampleAggregates = {\n  readonly __typename: 'IndexerStakeWeightVarianceSampleAggregates';\n  /** Sample variance of eraIdx across the matching connection */\n  readonly eraIdx: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of weight across the matching connection */\n  readonly weight: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `IndexerStakeWeight` values. */\nexport type IndexerStakeWeightsConnection = {\n  readonly __typename: 'IndexerStakeWeightsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerStakeWeightAggregates>;\n  /** A list of edges which contains the `IndexerStakeWeight` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerStakeWeightsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerStakeWeightAggregates>>;\n  /** A list of `IndexerStakeWeight` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerStakeWeight>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerStakeWeight` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerStakeWeight` values. */\nexport type IndexerStakeWeightsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerStakeWeightsGroupBy>;\n  having: InputMaybe<IndexerStakeWeightsHavingInput>;\n};\n\n/** A `IndexerStakeWeight` edge in the connection. */\nexport type IndexerStakeWeightsEdge = {\n  readonly __typename: 'IndexerStakeWeightsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerStakeWeight` at the end of the edge. */\n  readonly node: Maybe<IndexerStakeWeight>;\n};\n\n/** Grouping methods for `IndexerStakeWeight` for usage during aggregation. */\nexport enum IndexerStakeWeightsGroupBy {\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n  WEIGHT = 'WEIGHT',\n}\n\nexport type IndexerStakeWeightsHavingAverageInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n  readonly weight: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeWeightsHavingDistinctCountInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n  readonly weight: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `IndexerStakeWeight` aggregates. */\nexport type IndexerStakeWeightsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerStakeWeightsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerStakeWeightsHavingInput>>;\n  readonly average: InputMaybe<IndexerStakeWeightsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerStakeWeightsHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerStakeWeightsHavingMaxInput>;\n  readonly min: InputMaybe<IndexerStakeWeightsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerStakeWeightsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerStakeWeightsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerStakeWeightsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerStakeWeightsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerStakeWeightsHavingVarianceSampleInput>;\n};\n\nexport type IndexerStakeWeightsHavingMaxInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n  readonly weight: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeWeightsHavingMinInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n  readonly weight: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeWeightsHavingStddevPopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n  readonly weight: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeWeightsHavingStddevSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n  readonly weight: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeWeightsHavingSumInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n  readonly weight: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeWeightsHavingVariancePopulationInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n  readonly weight: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakeWeightsHavingVarianceSampleInput = {\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n  readonly weight: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `IndexerStakeWeight`. */\nexport enum IndexerStakeWeightsOrderBy {\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n  WEIGHT_ASC = 'WEIGHT_ASC',\n  WEIGHT_DESC = 'WEIGHT_DESC',\n}\n\n/** A connection to a list of `IndexerStake` values. */\nexport type IndexerStakesConnection = {\n  readonly __typename: 'IndexerStakesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerStakeAggregates>;\n  /** A list of edges which contains the `IndexerStake` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexerStakesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerStakeAggregates>>;\n  /** A list of `IndexerStake` objects. */\n  readonly nodes: ReadonlyArray<Maybe<IndexerStake>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `IndexerStake` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `IndexerStake` values. */\nexport type IndexerStakesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexerStakesGroupBy>;\n  having: InputMaybe<IndexerStakesHavingInput>;\n};\n\n/** A `IndexerStake` edge in the connection. */\nexport type IndexerStakesEdge = {\n  readonly __typename: 'IndexerStakesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `IndexerStake` at the end of the edge. */\n  readonly node: Maybe<IndexerStake>;\n};\n\n/** Grouping methods for `IndexerStake` for usage during aggregation. */\nexport enum IndexerStakesGroupBy {\n  DELEGATOR_STAKE = 'DELEGATOR_STAKE',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  INDEXER_STAKE = 'INDEXER_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport type IndexerStakesHavingAverageInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakesHavingDistinctCountInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `IndexerStake` aggregates. */\nexport type IndexerStakesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexerStakesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexerStakesHavingInput>>;\n  readonly average: InputMaybe<IndexerStakesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexerStakesHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexerStakesHavingMaxInput>;\n  readonly min: InputMaybe<IndexerStakesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexerStakesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexerStakesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexerStakesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexerStakesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexerStakesHavingVarianceSampleInput>;\n};\n\nexport type IndexerStakesHavingMaxInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakesHavingMinInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakesHavingStddevPopulationInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakesHavingStddevSampleInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakesHavingSumInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakesHavingVariancePopulationInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type IndexerStakesHavingVarianceSampleInput = {\n  readonly delegatorStake: InputMaybe<HavingBigfloatFilter>;\n  readonly eraIdx: InputMaybe<HavingIntFilter>;\n  readonly indexerStake: InputMaybe<HavingBigfloatFilter>;\n  readonly totalStake: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `IndexerStake`. */\nexport enum IndexerStakesOrderBy {\n  DELEGATOR_STAKE_ASC = 'DELEGATOR_STAKE_ASC',\n  DELEGATOR_STAKE_DESC = 'DELEGATOR_STAKE_DESC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_ASC = 'ERA_BY_ERA_ID__CREATED_BLOCK_ASC',\n  ERA_BY_ERA_ID__CREATED_BLOCK_DESC = 'ERA_BY_ERA_ID__CREATED_BLOCK_DESC',\n  ERA_BY_ERA_ID__END_TIME_ASC = 'ERA_BY_ERA_ID__END_TIME_ASC',\n  ERA_BY_ERA_ID__END_TIME_DESC = 'ERA_BY_ERA_ID__END_TIME_DESC',\n  ERA_BY_ERA_ID__ERA_PERIOD_ASC = 'ERA_BY_ERA_ID__ERA_PERIOD_ASC',\n  ERA_BY_ERA_ID__ERA_PERIOD_DESC = 'ERA_BY_ERA_ID__ERA_PERIOD_DESC',\n  ERA_BY_ERA_ID__FORCE_NEXT_ASC = 'ERA_BY_ERA_ID__FORCE_NEXT_ASC',\n  ERA_BY_ERA_ID__FORCE_NEXT_DESC = 'ERA_BY_ERA_ID__FORCE_NEXT_DESC',\n  ERA_BY_ERA_ID__ID_ASC = 'ERA_BY_ERA_ID__ID_ASC',\n  ERA_BY_ERA_ID__ID_DESC = 'ERA_BY_ERA_ID__ID_DESC',\n  ERA_BY_ERA_ID__LAST_EVENT_ASC = 'ERA_BY_ERA_ID__LAST_EVENT_ASC',\n  ERA_BY_ERA_ID__LAST_EVENT_DESC = 'ERA_BY_ERA_ID__LAST_EVENT_DESC',\n  ERA_BY_ERA_ID__START_TIME_ASC = 'ERA_BY_ERA_ID__START_TIME_ASC',\n  ERA_BY_ERA_ID__START_TIME_DESC = 'ERA_BY_ERA_ID__START_TIME_DESC',\n  ERA_IDX_ASC = 'ERA_IDX_ASC',\n  ERA_IDX_DESC = 'ERA_IDX_DESC',\n  ERA_ID_ASC = 'ERA_ID_ASC',\n  ERA_ID_DESC = 'ERA_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_ASC = 'INDEXER_BY_INDEXER_ID__ACTIVE_ASC',\n  INDEXER_BY_INDEXER_ID__ACTIVE_DESC = 'INDEXER_BY_INDEXER_ID__ACTIVE_DESC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_ASC = 'INDEXER_BY_INDEXER_ID__CAPACITY_ASC',\n  INDEXER_BY_INDEXER_ID__CAPACITY_DESC = 'INDEXER_BY_INDEXER_ID__CAPACITY_DESC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_ASC = 'INDEXER_BY_INDEXER_ID__COMMISSION_ASC',\n  INDEXER_BY_INDEXER_ID__COMMISSION_DESC = 'INDEXER_BY_INDEXER_ID__COMMISSION_DESC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_ASC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_ASC',\n  INDEXER_BY_INDEXER_ID__CONTROLLER_DESC = 'INDEXER_BY_INDEXER_ID__CONTROLLER_DESC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_ASC',\n  INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC = 'INDEXER_BY_INDEXER_ID__CREATED_BLOCK_DESC',\n  INDEXER_BY_INDEXER_ID__ID_ASC = 'INDEXER_BY_INDEXER_ID__ID_ASC',\n  INDEXER_BY_INDEXER_ID__ID_DESC = 'INDEXER_BY_INDEXER_ID__ID_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_CLAIM_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC = 'INDEXER_BY_INDEXER_ID__LAST_EVENT_DESC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_ASC',\n  INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC = 'INDEXER_BY_INDEXER_ID__LAST_SETTLED_ERA_DESC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_ASC',\n  INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC = 'INDEXER_BY_INDEXER_ID__MAX_UNSTAKE_AMOUNT_DESC',\n  INDEXER_BY_INDEXER_ID__METADATA_ASC = 'INDEXER_BY_INDEXER_ID__METADATA_ASC',\n  INDEXER_BY_INDEXER_ID__METADATA_DESC = 'INDEXER_BY_INDEXER_ID__METADATA_DESC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__SELF_STAKE_DESC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_ASC',\n  INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC = 'INDEXER_BY_INDEXER_ID__TOTAL_STAKE_DESC',\n  INDEXER_ID_ASC = 'INDEXER_ID_ASC',\n  INDEXER_ID_DESC = 'INDEXER_ID_DESC',\n  INDEXER_STAKE_ASC = 'INDEXER_STAKE_ASC',\n  INDEXER_STAKE_DESC = 'INDEXER_STAKE_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  TOTAL_STAKE_ASC = 'TOTAL_STAKE_ASC',\n  TOTAL_STAKE_DESC = 'TOTAL_STAKE_DESC',\n}\n\nexport type IndexerStddevPopulationAggregates = {\n  readonly __typename: 'IndexerStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerStddevSampleAggregates = {\n  readonly __typename: 'IndexerStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerSumAggregates = {\n  readonly __typename: 'IndexerSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\n/** A filter to be used against many `AcceptedOffer` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyAcceptedOfferFilter = {\n  /** Aggregates across related `AcceptedOffer` match the filter criteria. */\n  readonly aggregates: InputMaybe<AcceptedOfferAggregatesFilter>;\n  /** Every related `AcceptedOffer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<AcceptedOfferFilter>;\n  /** No related `AcceptedOffer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<AcceptedOfferFilter>;\n  /** Some related `AcceptedOffer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<AcceptedOfferFilter>;\n};\n\n/** A filter to be used against many `Controller` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyControllerFilter = {\n  /** Aggregates across related `Controller` match the filter criteria. */\n  readonly aggregates: InputMaybe<ControllerAggregatesFilter>;\n  /** Every related `Controller` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<ControllerFilter>;\n  /** No related `Controller` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<ControllerFilter>;\n  /** Some related `Controller` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<ControllerFilter>;\n};\n\n/** A filter to be used against many `Delegation` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyDelegationFilter = {\n  /** Aggregates across related `Delegation` match the filter criteria. */\n  readonly aggregates: InputMaybe<DelegationAggregatesFilter>;\n  /** Every related `Delegation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<DelegationFilter>;\n  /** No related `Delegation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<DelegationFilter>;\n  /** Some related `Delegation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<DelegationFilter>;\n};\n\n/** A filter to be used against many `EraDelegatorIndexerApy` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyEraDelegatorIndexerApyFilter = {\n  /** Aggregates across related `EraDelegatorIndexerApy` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraDelegatorIndexerApyAggregatesFilter>;\n  /** Every related `EraDelegatorIndexerApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraDelegatorIndexerApyFilter>;\n  /** No related `EraDelegatorIndexerApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraDelegatorIndexerApyFilter>;\n  /** Some related `EraDelegatorIndexerApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraDelegatorIndexerApyFilter>;\n};\n\n/** A filter to be used against many `EraIndexerApy` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyEraIndexerApyFilter = {\n  /** Aggregates across related `EraIndexerApy` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraIndexerApyAggregatesFilter>;\n  /** Every related `EraIndexerApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraIndexerApyFilter>;\n  /** No related `EraIndexerApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraIndexerApyFilter>;\n  /** Some related `EraIndexerApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraIndexerApyFilter>;\n};\n\n/** A filter to be used against many `EraIndexerDeploymentApy` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyEraIndexerDeploymentApyFilter = {\n  /** Aggregates across related `EraIndexerDeploymentApy` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraIndexerDeploymentApyAggregatesFilter>;\n  /** Every related `EraIndexerDeploymentApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraIndexerDeploymentApyFilter>;\n  /** No related `EraIndexerDeploymentApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraIndexerDeploymentApyFilter>;\n  /** Some related `EraIndexerDeploymentApy` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraIndexerDeploymentApyFilter>;\n};\n\n/** A filter to be used against many `EraReward` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyEraRewardFilter = {\n  /** Aggregates across related `EraReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraRewardAggregatesFilter>;\n  /** Every related `EraReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraRewardFilter>;\n  /** No related `EraReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraRewardFilter>;\n  /** Some related `EraReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraRewardFilter>;\n};\n\n/** A filter to be used against many `EraStake` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyEraStakeFilter = {\n  /** Aggregates across related `EraStake` match the filter criteria. */\n  readonly aggregates: InputMaybe<EraStakeAggregatesFilter>;\n  /** Every related `EraStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<EraStakeFilter>;\n  /** No related `EraStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<EraStakeFilter>;\n  /** Some related `EraStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<EraStakeFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocation` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerAllocationFilter = {\n  /** Aggregates across related `IndexerAllocation` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationAggregatesFilter>;\n  /** Every related `IndexerAllocation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationFilter>;\n  /** No related `IndexerAllocation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationFilter>;\n  /** Some related `IndexerAllocation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationOverflow` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerAllocationOverflowFilter = {\n  /** Aggregates across related `IndexerAllocationOverflow` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationOverflowAggregatesFilter>;\n  /** Every related `IndexerAllocationOverflow` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationOverflowFilter>;\n  /** No related `IndexerAllocationOverflow` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationOverflowFilter>;\n  /** Some related `IndexerAllocationOverflow` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationOverflowFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationReward` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerAllocationRewardFilter = {\n  /** Aggregates across related `IndexerAllocationReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationRewardAggregatesFilter>;\n  /** Every related `IndexerAllocationReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationRewardFilter>;\n  /** No related `IndexerAllocationReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationRewardFilter>;\n  /** Some related `IndexerAllocationReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationRewardFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationRewardSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerAllocationRewardSummaryFilter = {\n  /** Aggregates across related `IndexerAllocationRewardSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationRewardSummaryAggregatesFilter>;\n  /** Every related `IndexerAllocationRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  /** No related `IndexerAllocationRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  /** Some related `IndexerAllocationRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerAllocationSummaryFilter = {\n  /** Aggregates across related `IndexerAllocationSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationSummaryAggregatesFilter>;\n  /** Every related `IndexerAllocationSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationSummaryFilter>;\n  /** No related `IndexerAllocationSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationSummaryFilter>;\n  /** Some related `IndexerAllocationSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationSummaryFilter>;\n};\n\n/** A filter to be used against many `IndexerApySummary` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerApySummaryFilter = {\n  /** Aggregates across related `IndexerApySummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerApySummaryAggregatesFilter>;\n  /** Every related `IndexerApySummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerApySummaryFilter>;\n  /** No related `IndexerApySummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerApySummaryFilter>;\n  /** Some related `IndexerApySummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerApySummaryFilter>;\n};\n\n/** A filter to be used against many `IndexerCommissionRate` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerCommissionRateFilter = {\n  /** Aggregates across related `IndexerCommissionRate` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerCommissionRateAggregatesFilter>;\n  /** Every related `IndexerCommissionRate` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerCommissionRateFilter>;\n  /** No related `IndexerCommissionRate` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerCommissionRateFilter>;\n  /** Some related `IndexerCommissionRate` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerCommissionRateFilter>;\n};\n\n/** A filter to be used against many `IndexerDeployment` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerDeploymentFilter = {\n  /** Aggregates across related `IndexerDeployment` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerDeploymentAggregatesFilter>;\n  /** Every related `IndexerDeployment` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerDeploymentFilter>;\n  /** No related `IndexerDeployment` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerDeploymentFilter>;\n  /** Some related `IndexerDeployment` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerDeploymentFilter>;\n};\n\n/** A filter to be used against many `IndexerEraDeploymentReward` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerEraDeploymentRewardFilter = {\n  /** Aggregates across related `IndexerEraDeploymentReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerEraDeploymentRewardAggregatesFilter>;\n  /** Every related `IndexerEraDeploymentReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerEraDeploymentRewardFilter>;\n  /** No related `IndexerEraDeploymentReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerEraDeploymentRewardFilter>;\n  /** Some related `IndexerEraDeploymentReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerEraDeploymentRewardFilter>;\n};\n\n/** A filter to be used against many `IndexerLaborHistory` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerLaborHistoryFilter = {\n  /** Aggregates across related `IndexerLaborHistory` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerLaborHistoryAggregatesFilter>;\n  /** Every related `IndexerLaborHistory` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerLaborHistoryFilter>;\n  /** No related `IndexerLaborHistory` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerLaborHistoryFilter>;\n  /** Some related `IndexerLaborHistory` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerLaborHistoryFilter>;\n};\n\n/** A filter to be used against many `IndexerMissedLabor` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerMissedLaborFilter = {\n  /** Aggregates across related `IndexerMissedLabor` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerMissedLaborAggregatesFilter>;\n  /** Every related `IndexerMissedLabor` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerMissedLaborFilter>;\n  /** No related `IndexerMissedLabor` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerMissedLaborFilter>;\n  /** Some related `IndexerMissedLabor` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerMissedLaborFilter>;\n};\n\n/** A filter to be used against many `IndexerReward` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerRewardFilter = {\n  /** Aggregates across related `IndexerReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerRewardAggregatesFilter>;\n  /** Every related `IndexerReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerRewardFilter>;\n  /** No related `IndexerReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerRewardFilter>;\n  /** Some related `IndexerReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerRewardFilter>;\n};\n\n/** A filter to be used against many `IndexerStake` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerStakeFilter = {\n  /** Aggregates across related `IndexerStake` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerStakeAggregatesFilter>;\n  /** Every related `IndexerStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerStakeFilter>;\n  /** No related `IndexerStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerStakeFilter>;\n  /** Some related `IndexerStake` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerStakeFilter>;\n};\n\n/** A filter to be used against many `IndexerStakeWeight` object types. All fields are combined with a logical ‘and.’ */\nexport type IndexerToManyIndexerStakeWeightFilter = {\n  /** Aggregates across related `IndexerStakeWeight` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerStakeWeightAggregatesFilter>;\n  /** Every related `IndexerStakeWeight` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerStakeWeightFilter>;\n  /** No related `IndexerStakeWeight` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerStakeWeightFilter>;\n  /** Some related `IndexerStakeWeight` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerStakeWeightFilter>;\n};\n\nexport type IndexerVariancePopulationAggregates = {\n  readonly __typename: 'IndexerVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type IndexerVarianceSampleAggregates = {\n  readonly __typename: 'IndexerVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Indexer` values. */\nexport type IndexersConnection = {\n  readonly __typename: 'IndexersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<IndexersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values. */\nexport type IndexersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection. */\nexport type IndexersEdge = {\n  readonly __typename: 'IndexersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** Grouping methods for `Indexer` for usage during aggregation. */\nexport enum IndexersGroupBy {\n  ACTIVE = 'ACTIVE',\n  CAPACITY = 'CAPACITY',\n  COMMISSION = 'COMMISSION',\n  CONTROLLER = 'CONTROLLER',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  LAST_CLAIM_ERA = 'LAST_CLAIM_ERA',\n  LAST_EVENT = 'LAST_EVENT',\n  LAST_SETTLED_ERA = 'LAST_SETTLED_ERA',\n  MAX_UNSTAKE_AMOUNT = 'MAX_UNSTAKE_AMOUNT',\n  METADATA = 'METADATA',\n  SELF_STAKE = 'SELF_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport type IndexersHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexersHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `Indexer` aggregates. */\nexport type IndexersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<IndexersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<IndexersHavingInput>>;\n  readonly average: InputMaybe<IndexersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<IndexersHavingDistinctCountInput>;\n  readonly max: InputMaybe<IndexersHavingMaxInput>;\n  readonly min: InputMaybe<IndexersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<IndexersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<IndexersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<IndexersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<IndexersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<IndexersHavingVarianceSampleInput>;\n};\n\nexport type IndexersHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexersHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexersHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexersHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexersHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexersHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type IndexersHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `Indexer`. */\nexport enum IndexersOrderBy {\n  ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_AVERAGE_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_ID_DESC',\n  ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_AVERAGE_OFFER_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_OFFER_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_BY_INDEXER_ID__COUNT_ASC = 'ACCEPTED_OFFERS_BY_INDEXER_ID__COUNT_ASC',\n  ACCEPTED_OFFERS_BY_INDEXER_ID__COUNT_DESC = 'ACCEPTED_OFFERS_BY_INDEXER_ID__COUNT_DESC',\n  ACCEPTED_OFFERS_COUNT_ASC = 'ACCEPTED_OFFERS_COUNT_ASC',\n  ACCEPTED_OFFERS_COUNT_DESC = 'ACCEPTED_OFFERS_COUNT_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_ID_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_MAX_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_MAX_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_MAX_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_MAX_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_MAX_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_MAX_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_MAX_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_MAX_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_MAX_ID_ASC = 'ACCEPTED_OFFERS_MAX_ID_ASC',\n  ACCEPTED_OFFERS_MAX_ID_DESC = 'ACCEPTED_OFFERS_MAX_ID_DESC',\n  ACCEPTED_OFFERS_MAX_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_MAX_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_MAX_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_MAX_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_MAX_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_MAX_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_MAX_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_MAX_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_MAX_OFFER_ID_ASC = 'ACCEPTED_OFFERS_MAX_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_MAX_OFFER_ID_DESC = 'ACCEPTED_OFFERS_MAX_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_MIN_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_MIN_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_MIN_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_MIN_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_MIN_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_MIN_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_MIN_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_MIN_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_MIN_ID_ASC = 'ACCEPTED_OFFERS_MIN_ID_ASC',\n  ACCEPTED_OFFERS_MIN_ID_DESC = 'ACCEPTED_OFFERS_MIN_ID_DESC',\n  ACCEPTED_OFFERS_MIN_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_MIN_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_MIN_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_MIN_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_MIN_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_MIN_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_MIN_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_MIN_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_MIN_OFFER_ID_ASC = 'ACCEPTED_OFFERS_MIN_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_MIN_OFFER_ID_DESC = 'ACCEPTED_OFFERS_MIN_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_SUM_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_SUM_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_SUM_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_SUM_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_SUM_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_SUM_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_SUM_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_SUM_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_SUM_ID_ASC = 'ACCEPTED_OFFERS_SUM_ID_ASC',\n  ACCEPTED_OFFERS_SUM_ID_DESC = 'ACCEPTED_OFFERS_SUM_ID_DESC',\n  ACCEPTED_OFFERS_SUM_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_SUM_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_SUM_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_SUM_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_SUM_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_SUM_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_SUM_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_SUM_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_SUM_OFFER_ID_ASC = 'ACCEPTED_OFFERS_SUM_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_SUM_OFFER_ID_DESC = 'ACCEPTED_OFFERS_SUM_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_DESC',\n  ACTIVE_ASC = 'ACTIVE_ASC',\n  ACTIVE_DESC = 'ACTIVE_DESC',\n  CAPACITY_ASC = 'CAPACITY_ASC',\n  CAPACITY_DESC = 'CAPACITY_DESC',\n  COMMISSION_ASC = 'COMMISSION_ASC',\n  COMMISSION_DESC = 'COMMISSION_DESC',\n  CONTROLLERS_AVERAGE_BLOCK_RANGE_ASC = 'CONTROLLERS_AVERAGE_BLOCK_RANGE_ASC',\n  CONTROLLERS_AVERAGE_BLOCK_RANGE_DESC = 'CONTROLLERS_AVERAGE_BLOCK_RANGE_DESC',\n  CONTROLLERS_AVERAGE_CONTROLLER_ASC = 'CONTROLLERS_AVERAGE_CONTROLLER_ASC',\n  CONTROLLERS_AVERAGE_CONTROLLER_DESC = 'CONTROLLERS_AVERAGE_CONTROLLER_DESC',\n  CONTROLLERS_AVERAGE_CREATED_BLOCK_ASC = 'CONTROLLERS_AVERAGE_CREATED_BLOCK_ASC',\n  CONTROLLERS_AVERAGE_CREATED_BLOCK_DESC = 'CONTROLLERS_AVERAGE_CREATED_BLOCK_DESC',\n  CONTROLLERS_AVERAGE_ID_ASC = 'CONTROLLERS_AVERAGE_ID_ASC',\n  CONTROLLERS_AVERAGE_ID_DESC = 'CONTROLLERS_AVERAGE_ID_DESC',\n  CONTROLLERS_AVERAGE_INDEXER_ID_ASC = 'CONTROLLERS_AVERAGE_INDEXER_ID_ASC',\n  CONTROLLERS_AVERAGE_INDEXER_ID_DESC = 'CONTROLLERS_AVERAGE_INDEXER_ID_DESC',\n  CONTROLLERS_AVERAGE_IS_ACTIVE_ASC = 'CONTROLLERS_AVERAGE_IS_ACTIVE_ASC',\n  CONTROLLERS_AVERAGE_IS_ACTIVE_DESC = 'CONTROLLERS_AVERAGE_IS_ACTIVE_DESC',\n  CONTROLLERS_AVERAGE_LAST_EVENT_ASC = 'CONTROLLERS_AVERAGE_LAST_EVENT_ASC',\n  CONTROLLERS_AVERAGE_LAST_EVENT_DESC = 'CONTROLLERS_AVERAGE_LAST_EVENT_DESC',\n  CONTROLLERS_BY_INDEXER_ID__COUNT_ASC = 'CONTROLLERS_BY_INDEXER_ID__COUNT_ASC',\n  CONTROLLERS_BY_INDEXER_ID__COUNT_DESC = 'CONTROLLERS_BY_INDEXER_ID__COUNT_DESC',\n  CONTROLLERS_COUNT_ASC = 'CONTROLLERS_COUNT_ASC',\n  CONTROLLERS_COUNT_DESC = 'CONTROLLERS_COUNT_DESC',\n  CONTROLLERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'CONTROLLERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  CONTROLLERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'CONTROLLERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  CONTROLLERS_DISTINCT_COUNT_CONTROLLER_ASC = 'CONTROLLERS_DISTINCT_COUNT_CONTROLLER_ASC',\n  CONTROLLERS_DISTINCT_COUNT_CONTROLLER_DESC = 'CONTROLLERS_DISTINCT_COUNT_CONTROLLER_DESC',\n  CONTROLLERS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'CONTROLLERS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  CONTROLLERS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'CONTROLLERS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  CONTROLLERS_DISTINCT_COUNT_ID_ASC = 'CONTROLLERS_DISTINCT_COUNT_ID_ASC',\n  CONTROLLERS_DISTINCT_COUNT_ID_DESC = 'CONTROLLERS_DISTINCT_COUNT_ID_DESC',\n  CONTROLLERS_DISTINCT_COUNT_INDEXER_ID_ASC = 'CONTROLLERS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  CONTROLLERS_DISTINCT_COUNT_INDEXER_ID_DESC = 'CONTROLLERS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  CONTROLLERS_DISTINCT_COUNT_IS_ACTIVE_ASC = 'CONTROLLERS_DISTINCT_COUNT_IS_ACTIVE_ASC',\n  CONTROLLERS_DISTINCT_COUNT_IS_ACTIVE_DESC = 'CONTROLLERS_DISTINCT_COUNT_IS_ACTIVE_DESC',\n  CONTROLLERS_DISTINCT_COUNT_LAST_EVENT_ASC = 'CONTROLLERS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  CONTROLLERS_DISTINCT_COUNT_LAST_EVENT_DESC = 'CONTROLLERS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  CONTROLLERS_MAX_BLOCK_RANGE_ASC = 'CONTROLLERS_MAX_BLOCK_RANGE_ASC',\n  CONTROLLERS_MAX_BLOCK_RANGE_DESC = 'CONTROLLERS_MAX_BLOCK_RANGE_DESC',\n  CONTROLLERS_MAX_CONTROLLER_ASC = 'CONTROLLERS_MAX_CONTROLLER_ASC',\n  CONTROLLERS_MAX_CONTROLLER_DESC = 'CONTROLLERS_MAX_CONTROLLER_DESC',\n  CONTROLLERS_MAX_CREATED_BLOCK_ASC = 'CONTROLLERS_MAX_CREATED_BLOCK_ASC',\n  CONTROLLERS_MAX_CREATED_BLOCK_DESC = 'CONTROLLERS_MAX_CREATED_BLOCK_DESC',\n  CONTROLLERS_MAX_ID_ASC = 'CONTROLLERS_MAX_ID_ASC',\n  CONTROLLERS_MAX_ID_DESC = 'CONTROLLERS_MAX_ID_DESC',\n  CONTROLLERS_MAX_INDEXER_ID_ASC = 'CONTROLLERS_MAX_INDEXER_ID_ASC',\n  CONTROLLERS_MAX_INDEXER_ID_DESC = 'CONTROLLERS_MAX_INDEXER_ID_DESC',\n  CONTROLLERS_MAX_IS_ACTIVE_ASC = 'CONTROLLERS_MAX_IS_ACTIVE_ASC',\n  CONTROLLERS_MAX_IS_ACTIVE_DESC = 'CONTROLLERS_MAX_IS_ACTIVE_DESC',\n  CONTROLLERS_MAX_LAST_EVENT_ASC = 'CONTROLLERS_MAX_LAST_EVENT_ASC',\n  CONTROLLERS_MAX_LAST_EVENT_DESC = 'CONTROLLERS_MAX_LAST_EVENT_DESC',\n  CONTROLLERS_MIN_BLOCK_RANGE_ASC = 'CONTROLLERS_MIN_BLOCK_RANGE_ASC',\n  CONTROLLERS_MIN_BLOCK_RANGE_DESC = 'CONTROLLERS_MIN_BLOCK_RANGE_DESC',\n  CONTROLLERS_MIN_CONTROLLER_ASC = 'CONTROLLERS_MIN_CONTROLLER_ASC',\n  CONTROLLERS_MIN_CONTROLLER_DESC = 'CONTROLLERS_MIN_CONTROLLER_DESC',\n  CONTROLLERS_MIN_CREATED_BLOCK_ASC = 'CONTROLLERS_MIN_CREATED_BLOCK_ASC',\n  CONTROLLERS_MIN_CREATED_BLOCK_DESC = 'CONTROLLERS_MIN_CREATED_BLOCK_DESC',\n  CONTROLLERS_MIN_ID_ASC = 'CONTROLLERS_MIN_ID_ASC',\n  CONTROLLERS_MIN_ID_DESC = 'CONTROLLERS_MIN_ID_DESC',\n  CONTROLLERS_MIN_INDEXER_ID_ASC = 'CONTROLLERS_MIN_INDEXER_ID_ASC',\n  CONTROLLERS_MIN_INDEXER_ID_DESC = 'CONTROLLERS_MIN_INDEXER_ID_DESC',\n  CONTROLLERS_MIN_IS_ACTIVE_ASC = 'CONTROLLERS_MIN_IS_ACTIVE_ASC',\n  CONTROLLERS_MIN_IS_ACTIVE_DESC = 'CONTROLLERS_MIN_IS_ACTIVE_DESC',\n  CONTROLLERS_MIN_LAST_EVENT_ASC = 'CONTROLLERS_MIN_LAST_EVENT_ASC',\n  CONTROLLERS_MIN_LAST_EVENT_DESC = 'CONTROLLERS_MIN_LAST_EVENT_DESC',\n  CONTROLLERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'CONTROLLERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  CONTROLLERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'CONTROLLERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  CONTROLLERS_STDDEV_POPULATION_CONTROLLER_ASC = 'CONTROLLERS_STDDEV_POPULATION_CONTROLLER_ASC',\n  CONTROLLERS_STDDEV_POPULATION_CONTROLLER_DESC = 'CONTROLLERS_STDDEV_POPULATION_CONTROLLER_DESC',\n  CONTROLLERS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'CONTROLLERS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  CONTROLLERS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'CONTROLLERS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  CONTROLLERS_STDDEV_POPULATION_ID_ASC = 'CONTROLLERS_STDDEV_POPULATION_ID_ASC',\n  CONTROLLERS_STDDEV_POPULATION_ID_DESC = 'CONTROLLERS_STDDEV_POPULATION_ID_DESC',\n  CONTROLLERS_STDDEV_POPULATION_INDEXER_ID_ASC = 'CONTROLLERS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  CONTROLLERS_STDDEV_POPULATION_INDEXER_ID_DESC = 'CONTROLLERS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  CONTROLLERS_STDDEV_POPULATION_IS_ACTIVE_ASC = 'CONTROLLERS_STDDEV_POPULATION_IS_ACTIVE_ASC',\n  CONTROLLERS_STDDEV_POPULATION_IS_ACTIVE_DESC = 'CONTROLLERS_STDDEV_POPULATION_IS_ACTIVE_DESC',\n  CONTROLLERS_STDDEV_POPULATION_LAST_EVENT_ASC = 'CONTROLLERS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  CONTROLLERS_STDDEV_POPULATION_LAST_EVENT_DESC = 'CONTROLLERS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  CONTROLLERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'CONTROLLERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  CONTROLLERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'CONTROLLERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  CONTROLLERS_STDDEV_SAMPLE_CONTROLLER_ASC = 'CONTROLLERS_STDDEV_SAMPLE_CONTROLLER_ASC',\n  CONTROLLERS_STDDEV_SAMPLE_CONTROLLER_DESC = 'CONTROLLERS_STDDEV_SAMPLE_CONTROLLER_DESC',\n  CONTROLLERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'CONTROLLERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  CONTROLLERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'CONTROLLERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  CONTROLLERS_STDDEV_SAMPLE_ID_ASC = 'CONTROLLERS_STDDEV_SAMPLE_ID_ASC',\n  CONTROLLERS_STDDEV_SAMPLE_ID_DESC = 'CONTROLLERS_STDDEV_SAMPLE_ID_DESC',\n  CONTROLLERS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'CONTROLLERS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  CONTROLLERS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'CONTROLLERS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  CONTROLLERS_STDDEV_SAMPLE_IS_ACTIVE_ASC = 'CONTROLLERS_STDDEV_SAMPLE_IS_ACTIVE_ASC',\n  CONTROLLERS_STDDEV_SAMPLE_IS_ACTIVE_DESC = 'CONTROLLERS_STDDEV_SAMPLE_IS_ACTIVE_DESC',\n  CONTROLLERS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'CONTROLLERS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  CONTROLLERS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'CONTROLLERS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  CONTROLLERS_SUM_BLOCK_RANGE_ASC = 'CONTROLLERS_SUM_BLOCK_RANGE_ASC',\n  CONTROLLERS_SUM_BLOCK_RANGE_DESC = 'CONTROLLERS_SUM_BLOCK_RANGE_DESC',\n  CONTROLLERS_SUM_CONTROLLER_ASC = 'CONTROLLERS_SUM_CONTROLLER_ASC',\n  CONTROLLERS_SUM_CONTROLLER_DESC = 'CONTROLLERS_SUM_CONTROLLER_DESC',\n  CONTROLLERS_SUM_CREATED_BLOCK_ASC = 'CONTROLLERS_SUM_CREATED_BLOCK_ASC',\n  CONTROLLERS_SUM_CREATED_BLOCK_DESC = 'CONTROLLERS_SUM_CREATED_BLOCK_DESC',\n  CONTROLLERS_SUM_ID_ASC = 'CONTROLLERS_SUM_ID_ASC',\n  CONTROLLERS_SUM_ID_DESC = 'CONTROLLERS_SUM_ID_DESC',\n  CONTROLLERS_SUM_INDEXER_ID_ASC = 'CONTROLLERS_SUM_INDEXER_ID_ASC',\n  CONTROLLERS_SUM_INDEXER_ID_DESC = 'CONTROLLERS_SUM_INDEXER_ID_DESC',\n  CONTROLLERS_SUM_IS_ACTIVE_ASC = 'CONTROLLERS_SUM_IS_ACTIVE_ASC',\n  CONTROLLERS_SUM_IS_ACTIVE_DESC = 'CONTROLLERS_SUM_IS_ACTIVE_DESC',\n  CONTROLLERS_SUM_LAST_EVENT_ASC = 'CONTROLLERS_SUM_LAST_EVENT_ASC',\n  CONTROLLERS_SUM_LAST_EVENT_DESC = 'CONTROLLERS_SUM_LAST_EVENT_DESC',\n  CONTROLLERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'CONTROLLERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  CONTROLLERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'CONTROLLERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  CONTROLLERS_VARIANCE_POPULATION_CONTROLLER_ASC = 'CONTROLLERS_VARIANCE_POPULATION_CONTROLLER_ASC',\n  CONTROLLERS_VARIANCE_POPULATION_CONTROLLER_DESC = 'CONTROLLERS_VARIANCE_POPULATION_CONTROLLER_DESC',\n  CONTROLLERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'CONTROLLERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  CONTROLLERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'CONTROLLERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  CONTROLLERS_VARIANCE_POPULATION_ID_ASC = 'CONTROLLERS_VARIANCE_POPULATION_ID_ASC',\n  CONTROLLERS_VARIANCE_POPULATION_ID_DESC = 'CONTROLLERS_VARIANCE_POPULATION_ID_DESC',\n  CONTROLLERS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'CONTROLLERS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  CONTROLLERS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'CONTROLLERS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  CONTROLLERS_VARIANCE_POPULATION_IS_ACTIVE_ASC = 'CONTROLLERS_VARIANCE_POPULATION_IS_ACTIVE_ASC',\n  CONTROLLERS_VARIANCE_POPULATION_IS_ACTIVE_DESC = 'CONTROLLERS_VARIANCE_POPULATION_IS_ACTIVE_DESC',\n  CONTROLLERS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'CONTROLLERS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  CONTROLLERS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'CONTROLLERS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  CONTROLLERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'CONTROLLERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  CONTROLLERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'CONTROLLERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  CONTROLLERS_VARIANCE_SAMPLE_CONTROLLER_ASC = 'CONTROLLERS_VARIANCE_SAMPLE_CONTROLLER_ASC',\n  CONTROLLERS_VARIANCE_SAMPLE_CONTROLLER_DESC = 'CONTROLLERS_VARIANCE_SAMPLE_CONTROLLER_DESC',\n  CONTROLLERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'CONTROLLERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  CONTROLLERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'CONTROLLERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  CONTROLLERS_VARIANCE_SAMPLE_ID_ASC = 'CONTROLLERS_VARIANCE_SAMPLE_ID_ASC',\n  CONTROLLERS_VARIANCE_SAMPLE_ID_DESC = 'CONTROLLERS_VARIANCE_SAMPLE_ID_DESC',\n  CONTROLLERS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'CONTROLLERS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  CONTROLLERS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'CONTROLLERS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  CONTROLLERS_VARIANCE_SAMPLE_IS_ACTIVE_ASC = 'CONTROLLERS_VARIANCE_SAMPLE_IS_ACTIVE_ASC',\n  CONTROLLERS_VARIANCE_SAMPLE_IS_ACTIVE_DESC = 'CONTROLLERS_VARIANCE_SAMPLE_IS_ACTIVE_DESC',\n  CONTROLLERS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'CONTROLLERS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  CONTROLLERS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'CONTROLLERS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  CONTROLLER_ASC = 'CONTROLLER_ASC',\n  CONTROLLER_DESC = 'CONTROLLER_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DELEGATIONS_AVERAGE_AMOUNT_ASC = 'DELEGATIONS_AVERAGE_AMOUNT_ASC',\n  DELEGATIONS_AVERAGE_AMOUNT_DESC = 'DELEGATIONS_AVERAGE_AMOUNT_DESC',\n  DELEGATIONS_AVERAGE_BLOCK_RANGE_ASC = 'DELEGATIONS_AVERAGE_BLOCK_RANGE_ASC',\n  DELEGATIONS_AVERAGE_BLOCK_RANGE_DESC = 'DELEGATIONS_AVERAGE_BLOCK_RANGE_DESC',\n  DELEGATIONS_AVERAGE_CREATED_BLOCK_ASC = 'DELEGATIONS_AVERAGE_CREATED_BLOCK_ASC',\n  DELEGATIONS_AVERAGE_CREATED_BLOCK_DESC = 'DELEGATIONS_AVERAGE_CREATED_BLOCK_DESC',\n  DELEGATIONS_AVERAGE_DELEGATOR_ID_ASC = 'DELEGATIONS_AVERAGE_DELEGATOR_ID_ASC',\n  DELEGATIONS_AVERAGE_DELEGATOR_ID_DESC = 'DELEGATIONS_AVERAGE_DELEGATOR_ID_DESC',\n  DELEGATIONS_AVERAGE_EXIT_ERA_ASC = 'DELEGATIONS_AVERAGE_EXIT_ERA_ASC',\n  DELEGATIONS_AVERAGE_EXIT_ERA_DESC = 'DELEGATIONS_AVERAGE_EXIT_ERA_DESC',\n  DELEGATIONS_AVERAGE_ID_ASC = 'DELEGATIONS_AVERAGE_ID_ASC',\n  DELEGATIONS_AVERAGE_ID_DESC = 'DELEGATIONS_AVERAGE_ID_DESC',\n  DELEGATIONS_AVERAGE_INDEXER_ID_ASC = 'DELEGATIONS_AVERAGE_INDEXER_ID_ASC',\n  DELEGATIONS_AVERAGE_INDEXER_ID_DESC = 'DELEGATIONS_AVERAGE_INDEXER_ID_DESC',\n  DELEGATIONS_AVERAGE_LAST_EVENT_ASC = 'DELEGATIONS_AVERAGE_LAST_EVENT_ASC',\n  DELEGATIONS_AVERAGE_LAST_EVENT_DESC = 'DELEGATIONS_AVERAGE_LAST_EVENT_DESC',\n  DELEGATIONS_BY_INDEXER_ID__COUNT_ASC = 'DELEGATIONS_BY_INDEXER_ID__COUNT_ASC',\n  DELEGATIONS_BY_INDEXER_ID__COUNT_DESC = 'DELEGATIONS_BY_INDEXER_ID__COUNT_DESC',\n  DELEGATIONS_COUNT_ASC = 'DELEGATIONS_COUNT_ASC',\n  DELEGATIONS_COUNT_DESC = 'DELEGATIONS_COUNT_DESC',\n  DELEGATIONS_DISTINCT_COUNT_AMOUNT_ASC = 'DELEGATIONS_DISTINCT_COUNT_AMOUNT_ASC',\n  DELEGATIONS_DISTINCT_COUNT_AMOUNT_DESC = 'DELEGATIONS_DISTINCT_COUNT_AMOUNT_DESC',\n  DELEGATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'DELEGATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  DELEGATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'DELEGATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  DELEGATIONS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'DELEGATIONS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  DELEGATIONS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'DELEGATIONS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  DELEGATIONS_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'DELEGATIONS_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  DELEGATIONS_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'DELEGATIONS_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  DELEGATIONS_DISTINCT_COUNT_EXIT_ERA_ASC = 'DELEGATIONS_DISTINCT_COUNT_EXIT_ERA_ASC',\n  DELEGATIONS_DISTINCT_COUNT_EXIT_ERA_DESC = 'DELEGATIONS_DISTINCT_COUNT_EXIT_ERA_DESC',\n  DELEGATIONS_DISTINCT_COUNT_ID_ASC = 'DELEGATIONS_DISTINCT_COUNT_ID_ASC',\n  DELEGATIONS_DISTINCT_COUNT_ID_DESC = 'DELEGATIONS_DISTINCT_COUNT_ID_DESC',\n  DELEGATIONS_DISTINCT_COUNT_INDEXER_ID_ASC = 'DELEGATIONS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  DELEGATIONS_DISTINCT_COUNT_INDEXER_ID_DESC = 'DELEGATIONS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  DELEGATIONS_DISTINCT_COUNT_LAST_EVENT_ASC = 'DELEGATIONS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  DELEGATIONS_DISTINCT_COUNT_LAST_EVENT_DESC = 'DELEGATIONS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  DELEGATIONS_MAX_AMOUNT_ASC = 'DELEGATIONS_MAX_AMOUNT_ASC',\n  DELEGATIONS_MAX_AMOUNT_DESC = 'DELEGATIONS_MAX_AMOUNT_DESC',\n  DELEGATIONS_MAX_BLOCK_RANGE_ASC = 'DELEGATIONS_MAX_BLOCK_RANGE_ASC',\n  DELEGATIONS_MAX_BLOCK_RANGE_DESC = 'DELEGATIONS_MAX_BLOCK_RANGE_DESC',\n  DELEGATIONS_MAX_CREATED_BLOCK_ASC = 'DELEGATIONS_MAX_CREATED_BLOCK_ASC',\n  DELEGATIONS_MAX_CREATED_BLOCK_DESC = 'DELEGATIONS_MAX_CREATED_BLOCK_DESC',\n  DELEGATIONS_MAX_DELEGATOR_ID_ASC = 'DELEGATIONS_MAX_DELEGATOR_ID_ASC',\n  DELEGATIONS_MAX_DELEGATOR_ID_DESC = 'DELEGATIONS_MAX_DELEGATOR_ID_DESC',\n  DELEGATIONS_MAX_EXIT_ERA_ASC = 'DELEGATIONS_MAX_EXIT_ERA_ASC',\n  DELEGATIONS_MAX_EXIT_ERA_DESC = 'DELEGATIONS_MAX_EXIT_ERA_DESC',\n  DELEGATIONS_MAX_ID_ASC = 'DELEGATIONS_MAX_ID_ASC',\n  DELEGATIONS_MAX_ID_DESC = 'DELEGATIONS_MAX_ID_DESC',\n  DELEGATIONS_MAX_INDEXER_ID_ASC = 'DELEGATIONS_MAX_INDEXER_ID_ASC',\n  DELEGATIONS_MAX_INDEXER_ID_DESC = 'DELEGATIONS_MAX_INDEXER_ID_DESC',\n  DELEGATIONS_MAX_LAST_EVENT_ASC = 'DELEGATIONS_MAX_LAST_EVENT_ASC',\n  DELEGATIONS_MAX_LAST_EVENT_DESC = 'DELEGATIONS_MAX_LAST_EVENT_DESC',\n  DELEGATIONS_MIN_AMOUNT_ASC = 'DELEGATIONS_MIN_AMOUNT_ASC',\n  DELEGATIONS_MIN_AMOUNT_DESC = 'DELEGATIONS_MIN_AMOUNT_DESC',\n  DELEGATIONS_MIN_BLOCK_RANGE_ASC = 'DELEGATIONS_MIN_BLOCK_RANGE_ASC',\n  DELEGATIONS_MIN_BLOCK_RANGE_DESC = 'DELEGATIONS_MIN_BLOCK_RANGE_DESC',\n  DELEGATIONS_MIN_CREATED_BLOCK_ASC = 'DELEGATIONS_MIN_CREATED_BLOCK_ASC',\n  DELEGATIONS_MIN_CREATED_BLOCK_DESC = 'DELEGATIONS_MIN_CREATED_BLOCK_DESC',\n  DELEGATIONS_MIN_DELEGATOR_ID_ASC = 'DELEGATIONS_MIN_DELEGATOR_ID_ASC',\n  DELEGATIONS_MIN_DELEGATOR_ID_DESC = 'DELEGATIONS_MIN_DELEGATOR_ID_DESC',\n  DELEGATIONS_MIN_EXIT_ERA_ASC = 'DELEGATIONS_MIN_EXIT_ERA_ASC',\n  DELEGATIONS_MIN_EXIT_ERA_DESC = 'DELEGATIONS_MIN_EXIT_ERA_DESC',\n  DELEGATIONS_MIN_ID_ASC = 'DELEGATIONS_MIN_ID_ASC',\n  DELEGATIONS_MIN_ID_DESC = 'DELEGATIONS_MIN_ID_DESC',\n  DELEGATIONS_MIN_INDEXER_ID_ASC = 'DELEGATIONS_MIN_INDEXER_ID_ASC',\n  DELEGATIONS_MIN_INDEXER_ID_DESC = 'DELEGATIONS_MIN_INDEXER_ID_DESC',\n  DELEGATIONS_MIN_LAST_EVENT_ASC = 'DELEGATIONS_MIN_LAST_EVENT_ASC',\n  DELEGATIONS_MIN_LAST_EVENT_DESC = 'DELEGATIONS_MIN_LAST_EVENT_DESC',\n  DELEGATIONS_STDDEV_POPULATION_AMOUNT_ASC = 'DELEGATIONS_STDDEV_POPULATION_AMOUNT_ASC',\n  DELEGATIONS_STDDEV_POPULATION_AMOUNT_DESC = 'DELEGATIONS_STDDEV_POPULATION_AMOUNT_DESC',\n  DELEGATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'DELEGATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  DELEGATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'DELEGATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  DELEGATIONS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'DELEGATIONS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  DELEGATIONS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'DELEGATIONS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  DELEGATIONS_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'DELEGATIONS_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  DELEGATIONS_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'DELEGATIONS_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  DELEGATIONS_STDDEV_POPULATION_EXIT_ERA_ASC = 'DELEGATIONS_STDDEV_POPULATION_EXIT_ERA_ASC',\n  DELEGATIONS_STDDEV_POPULATION_EXIT_ERA_DESC = 'DELEGATIONS_STDDEV_POPULATION_EXIT_ERA_DESC',\n  DELEGATIONS_STDDEV_POPULATION_ID_ASC = 'DELEGATIONS_STDDEV_POPULATION_ID_ASC',\n  DELEGATIONS_STDDEV_POPULATION_ID_DESC = 'DELEGATIONS_STDDEV_POPULATION_ID_DESC',\n  DELEGATIONS_STDDEV_POPULATION_INDEXER_ID_ASC = 'DELEGATIONS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  DELEGATIONS_STDDEV_POPULATION_INDEXER_ID_DESC = 'DELEGATIONS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  DELEGATIONS_STDDEV_POPULATION_LAST_EVENT_ASC = 'DELEGATIONS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  DELEGATIONS_STDDEV_POPULATION_LAST_EVENT_DESC = 'DELEGATIONS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_AMOUNT_ASC = 'DELEGATIONS_STDDEV_SAMPLE_AMOUNT_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_AMOUNT_DESC = 'DELEGATIONS_STDDEV_SAMPLE_AMOUNT_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'DELEGATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'DELEGATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'DELEGATIONS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'DELEGATIONS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'DELEGATIONS_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'DELEGATIONS_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_EXIT_ERA_ASC = 'DELEGATIONS_STDDEV_SAMPLE_EXIT_ERA_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_EXIT_ERA_DESC = 'DELEGATIONS_STDDEV_SAMPLE_EXIT_ERA_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_ID_ASC = 'DELEGATIONS_STDDEV_SAMPLE_ID_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_ID_DESC = 'DELEGATIONS_STDDEV_SAMPLE_ID_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'DELEGATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'DELEGATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  DELEGATIONS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'DELEGATIONS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  DELEGATIONS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'DELEGATIONS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  DELEGATIONS_SUM_AMOUNT_ASC = 'DELEGATIONS_SUM_AMOUNT_ASC',\n  DELEGATIONS_SUM_AMOUNT_DESC = 'DELEGATIONS_SUM_AMOUNT_DESC',\n  DELEGATIONS_SUM_BLOCK_RANGE_ASC = 'DELEGATIONS_SUM_BLOCK_RANGE_ASC',\n  DELEGATIONS_SUM_BLOCK_RANGE_DESC = 'DELEGATIONS_SUM_BLOCK_RANGE_DESC',\n  DELEGATIONS_SUM_CREATED_BLOCK_ASC = 'DELEGATIONS_SUM_CREATED_BLOCK_ASC',\n  DELEGATIONS_SUM_CREATED_BLOCK_DESC = 'DELEGATIONS_SUM_CREATED_BLOCK_DESC',\n  DELEGATIONS_SUM_DELEGATOR_ID_ASC = 'DELEGATIONS_SUM_DELEGATOR_ID_ASC',\n  DELEGATIONS_SUM_DELEGATOR_ID_DESC = 'DELEGATIONS_SUM_DELEGATOR_ID_DESC',\n  DELEGATIONS_SUM_EXIT_ERA_ASC = 'DELEGATIONS_SUM_EXIT_ERA_ASC',\n  DELEGATIONS_SUM_EXIT_ERA_DESC = 'DELEGATIONS_SUM_EXIT_ERA_DESC',\n  DELEGATIONS_SUM_ID_ASC = 'DELEGATIONS_SUM_ID_ASC',\n  DELEGATIONS_SUM_ID_DESC = 'DELEGATIONS_SUM_ID_DESC',\n  DELEGATIONS_SUM_INDEXER_ID_ASC = 'DELEGATIONS_SUM_INDEXER_ID_ASC',\n  DELEGATIONS_SUM_INDEXER_ID_DESC = 'DELEGATIONS_SUM_INDEXER_ID_DESC',\n  DELEGATIONS_SUM_LAST_EVENT_ASC = 'DELEGATIONS_SUM_LAST_EVENT_ASC',\n  DELEGATIONS_SUM_LAST_EVENT_DESC = 'DELEGATIONS_SUM_LAST_EVENT_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_AMOUNT_ASC = 'DELEGATIONS_VARIANCE_POPULATION_AMOUNT_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_AMOUNT_DESC = 'DELEGATIONS_VARIANCE_POPULATION_AMOUNT_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'DELEGATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'DELEGATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'DELEGATIONS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'DELEGATIONS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'DELEGATIONS_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'DELEGATIONS_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_EXIT_ERA_ASC = 'DELEGATIONS_VARIANCE_POPULATION_EXIT_ERA_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_EXIT_ERA_DESC = 'DELEGATIONS_VARIANCE_POPULATION_EXIT_ERA_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_ID_ASC = 'DELEGATIONS_VARIANCE_POPULATION_ID_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_ID_DESC = 'DELEGATIONS_VARIANCE_POPULATION_ID_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'DELEGATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'DELEGATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  DELEGATIONS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'DELEGATIONS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  DELEGATIONS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'DELEGATIONS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_AMOUNT_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_AMOUNT_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_AMOUNT_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_AMOUNT_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_EXIT_ERA_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_EXIT_ERA_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_EXIT_ERA_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_EXIT_ERA_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_ID_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_ID_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_ID_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_ID_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  DELEGATIONS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'DELEGATIONS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  DELEGATIONS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'DELEGATIONS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_AVERAGE_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_AVERAGE_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_BY_INDEXER_ID__COUNT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_BY_INDEXER_ID__COUNT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_BY_INDEXER_ID__COUNT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_BY_INDEXER_ID__COUNT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_COUNT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_COUNT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_COUNT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_COUNT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MAX_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MAX_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_MIN_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_MIN_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_SUM_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_SUM_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_APY_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_APY_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_APY_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_APY_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_REWARD_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_REWARD_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_REWARD_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_REWARD_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_STAKE_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_STAKE_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_STAKE_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_STAKE_DESC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'ERA_DELEGATOR_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  ERA_INDEXER_APIES_AVERAGE_BLOCK_RANGE_ASC = 'ERA_INDEXER_APIES_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_INDEXER_APIES_AVERAGE_BLOCK_RANGE_DESC = 'ERA_INDEXER_APIES_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_INDEXER_APIES_AVERAGE_CREATE_AT_ASC = 'ERA_INDEXER_APIES_AVERAGE_CREATE_AT_ASC',\n  ERA_INDEXER_APIES_AVERAGE_CREATE_AT_DESC = 'ERA_INDEXER_APIES_AVERAGE_CREATE_AT_DESC',\n  ERA_INDEXER_APIES_AVERAGE_DELEGATOR_APY_ASC = 'ERA_INDEXER_APIES_AVERAGE_DELEGATOR_APY_ASC',\n  ERA_INDEXER_APIES_AVERAGE_DELEGATOR_APY_DESC = 'ERA_INDEXER_APIES_AVERAGE_DELEGATOR_APY_DESC',\n  ERA_INDEXER_APIES_AVERAGE_DELEGATOR_REWARD_ASC = 'ERA_INDEXER_APIES_AVERAGE_DELEGATOR_REWARD_ASC',\n  ERA_INDEXER_APIES_AVERAGE_DELEGATOR_REWARD_DESC = 'ERA_INDEXER_APIES_AVERAGE_DELEGATOR_REWARD_DESC',\n  ERA_INDEXER_APIES_AVERAGE_ERA_IDX_ASC = 'ERA_INDEXER_APIES_AVERAGE_ERA_IDX_ASC',\n  ERA_INDEXER_APIES_AVERAGE_ERA_IDX_DESC = 'ERA_INDEXER_APIES_AVERAGE_ERA_IDX_DESC',\n  ERA_INDEXER_APIES_AVERAGE_ID_ASC = 'ERA_INDEXER_APIES_AVERAGE_ID_ASC',\n  ERA_INDEXER_APIES_AVERAGE_ID_DESC = 'ERA_INDEXER_APIES_AVERAGE_ID_DESC',\n  ERA_INDEXER_APIES_AVERAGE_INDEXER_APY_ASC = 'ERA_INDEXER_APIES_AVERAGE_INDEXER_APY_ASC',\n  ERA_INDEXER_APIES_AVERAGE_INDEXER_APY_DESC = 'ERA_INDEXER_APIES_AVERAGE_INDEXER_APY_DESC',\n  ERA_INDEXER_APIES_AVERAGE_INDEXER_ID_ASC = 'ERA_INDEXER_APIES_AVERAGE_INDEXER_ID_ASC',\n  ERA_INDEXER_APIES_AVERAGE_INDEXER_ID_DESC = 'ERA_INDEXER_APIES_AVERAGE_INDEXER_ID_DESC',\n  ERA_INDEXER_APIES_AVERAGE_INDEXER_REWARD_ASC = 'ERA_INDEXER_APIES_AVERAGE_INDEXER_REWARD_ASC',\n  ERA_INDEXER_APIES_AVERAGE_INDEXER_REWARD_DESC = 'ERA_INDEXER_APIES_AVERAGE_INDEXER_REWARD_DESC',\n  ERA_INDEXER_APIES_AVERAGE_UPDATE_AT_ASC = 'ERA_INDEXER_APIES_AVERAGE_UPDATE_AT_ASC',\n  ERA_INDEXER_APIES_AVERAGE_UPDATE_AT_DESC = 'ERA_INDEXER_APIES_AVERAGE_UPDATE_AT_DESC',\n  ERA_INDEXER_APIES_BY_INDEXER_ID__COUNT_ASC = 'ERA_INDEXER_APIES_BY_INDEXER_ID__COUNT_ASC',\n  ERA_INDEXER_APIES_BY_INDEXER_ID__COUNT_DESC = 'ERA_INDEXER_APIES_BY_INDEXER_ID__COUNT_DESC',\n  ERA_INDEXER_APIES_COUNT_ASC = 'ERA_INDEXER_APIES_COUNT_ASC',\n  ERA_INDEXER_APIES_COUNT_DESC = 'ERA_INDEXER_APIES_COUNT_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_APY_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_APY_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_APY_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_APY_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_REWARD_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_REWARD_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_REWARD_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_DELEGATOR_REWARD_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_ID_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_ID_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_ID_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_ID_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_APY_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_APY_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_APY_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_APY_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_REWARD_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_REWARD_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_REWARD_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_INDEXER_REWARD_DESC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  ERA_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'ERA_INDEXER_APIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  ERA_INDEXER_APIES_MAX_BLOCK_RANGE_ASC = 'ERA_INDEXER_APIES_MAX_BLOCK_RANGE_ASC',\n  ERA_INDEXER_APIES_MAX_BLOCK_RANGE_DESC = 'ERA_INDEXER_APIES_MAX_BLOCK_RANGE_DESC',\n  ERA_INDEXER_APIES_MAX_CREATE_AT_ASC = 'ERA_INDEXER_APIES_MAX_CREATE_AT_ASC',\n  ERA_INDEXER_APIES_MAX_CREATE_AT_DESC = 'ERA_INDEXER_APIES_MAX_CREATE_AT_DESC',\n  ERA_INDEXER_APIES_MAX_DELEGATOR_APY_ASC = 'ERA_INDEXER_APIES_MAX_DELEGATOR_APY_ASC',\n  ERA_INDEXER_APIES_MAX_DELEGATOR_APY_DESC = 'ERA_INDEXER_APIES_MAX_DELEGATOR_APY_DESC',\n  ERA_INDEXER_APIES_MAX_DELEGATOR_REWARD_ASC = 'ERA_INDEXER_APIES_MAX_DELEGATOR_REWARD_ASC',\n  ERA_INDEXER_APIES_MAX_DELEGATOR_REWARD_DESC = 'ERA_INDEXER_APIES_MAX_DELEGATOR_REWARD_DESC',\n  ERA_INDEXER_APIES_MAX_ERA_IDX_ASC = 'ERA_INDEXER_APIES_MAX_ERA_IDX_ASC',\n  ERA_INDEXER_APIES_MAX_ERA_IDX_DESC = 'ERA_INDEXER_APIES_MAX_ERA_IDX_DESC',\n  ERA_INDEXER_APIES_MAX_ID_ASC = 'ERA_INDEXER_APIES_MAX_ID_ASC',\n  ERA_INDEXER_APIES_MAX_ID_DESC = 'ERA_INDEXER_APIES_MAX_ID_DESC',\n  ERA_INDEXER_APIES_MAX_INDEXER_APY_ASC = 'ERA_INDEXER_APIES_MAX_INDEXER_APY_ASC',\n  ERA_INDEXER_APIES_MAX_INDEXER_APY_DESC = 'ERA_INDEXER_APIES_MAX_INDEXER_APY_DESC',\n  ERA_INDEXER_APIES_MAX_INDEXER_ID_ASC = 'ERA_INDEXER_APIES_MAX_INDEXER_ID_ASC',\n  ERA_INDEXER_APIES_MAX_INDEXER_ID_DESC = 'ERA_INDEXER_APIES_MAX_INDEXER_ID_DESC',\n  ERA_INDEXER_APIES_MAX_INDEXER_REWARD_ASC = 'ERA_INDEXER_APIES_MAX_INDEXER_REWARD_ASC',\n  ERA_INDEXER_APIES_MAX_INDEXER_REWARD_DESC = 'ERA_INDEXER_APIES_MAX_INDEXER_REWARD_DESC',\n  ERA_INDEXER_APIES_MAX_UPDATE_AT_ASC = 'ERA_INDEXER_APIES_MAX_UPDATE_AT_ASC',\n  ERA_INDEXER_APIES_MAX_UPDATE_AT_DESC = 'ERA_INDEXER_APIES_MAX_UPDATE_AT_DESC',\n  ERA_INDEXER_APIES_MIN_BLOCK_RANGE_ASC = 'ERA_INDEXER_APIES_MIN_BLOCK_RANGE_ASC',\n  ERA_INDEXER_APIES_MIN_BLOCK_RANGE_DESC = 'ERA_INDEXER_APIES_MIN_BLOCK_RANGE_DESC',\n  ERA_INDEXER_APIES_MIN_CREATE_AT_ASC = 'ERA_INDEXER_APIES_MIN_CREATE_AT_ASC',\n  ERA_INDEXER_APIES_MIN_CREATE_AT_DESC = 'ERA_INDEXER_APIES_MIN_CREATE_AT_DESC',\n  ERA_INDEXER_APIES_MIN_DELEGATOR_APY_ASC = 'ERA_INDEXER_APIES_MIN_DELEGATOR_APY_ASC',\n  ERA_INDEXER_APIES_MIN_DELEGATOR_APY_DESC = 'ERA_INDEXER_APIES_MIN_DELEGATOR_APY_DESC',\n  ERA_INDEXER_APIES_MIN_DELEGATOR_REWARD_ASC = 'ERA_INDEXER_APIES_MIN_DELEGATOR_REWARD_ASC',\n  ERA_INDEXER_APIES_MIN_DELEGATOR_REWARD_DESC = 'ERA_INDEXER_APIES_MIN_DELEGATOR_REWARD_DESC',\n  ERA_INDEXER_APIES_MIN_ERA_IDX_ASC = 'ERA_INDEXER_APIES_MIN_ERA_IDX_ASC',\n  ERA_INDEXER_APIES_MIN_ERA_IDX_DESC = 'ERA_INDEXER_APIES_MIN_ERA_IDX_DESC',\n  ERA_INDEXER_APIES_MIN_ID_ASC = 'ERA_INDEXER_APIES_MIN_ID_ASC',\n  ERA_INDEXER_APIES_MIN_ID_DESC = 'ERA_INDEXER_APIES_MIN_ID_DESC',\n  ERA_INDEXER_APIES_MIN_INDEXER_APY_ASC = 'ERA_INDEXER_APIES_MIN_INDEXER_APY_ASC',\n  ERA_INDEXER_APIES_MIN_INDEXER_APY_DESC = 'ERA_INDEXER_APIES_MIN_INDEXER_APY_DESC',\n  ERA_INDEXER_APIES_MIN_INDEXER_ID_ASC = 'ERA_INDEXER_APIES_MIN_INDEXER_ID_ASC',\n  ERA_INDEXER_APIES_MIN_INDEXER_ID_DESC = 'ERA_INDEXER_APIES_MIN_INDEXER_ID_DESC',\n  ERA_INDEXER_APIES_MIN_INDEXER_REWARD_ASC = 'ERA_INDEXER_APIES_MIN_INDEXER_REWARD_ASC',\n  ERA_INDEXER_APIES_MIN_INDEXER_REWARD_DESC = 'ERA_INDEXER_APIES_MIN_INDEXER_REWARD_DESC',\n  ERA_INDEXER_APIES_MIN_UPDATE_AT_ASC = 'ERA_INDEXER_APIES_MIN_UPDATE_AT_ASC',\n  ERA_INDEXER_APIES_MIN_UPDATE_AT_DESC = 'ERA_INDEXER_APIES_MIN_UPDATE_AT_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_APY_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_APY_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_APY_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_APY_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_REWARD_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_REWARD_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_REWARD_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_DELEGATOR_REWARD_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_ID_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_ID_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_ID_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_ID_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_APY_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_APY_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_APY_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_APY_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_REWARD_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_REWARD_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_REWARD_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_INDEXER_REWARD_DESC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  ERA_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'ERA_INDEXER_APIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_APY_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_APY_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_APY_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_APY_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_REWARD_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_REWARD_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_REWARD_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_DELEGATOR_REWARD_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_ID_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_ID_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_ID_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_ID_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_APY_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_APY_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_APY_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_APY_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_REWARD_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_REWARD_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_REWARD_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_INDEXER_REWARD_DESC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  ERA_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'ERA_INDEXER_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  ERA_INDEXER_APIES_SUM_BLOCK_RANGE_ASC = 'ERA_INDEXER_APIES_SUM_BLOCK_RANGE_ASC',\n  ERA_INDEXER_APIES_SUM_BLOCK_RANGE_DESC = 'ERA_INDEXER_APIES_SUM_BLOCK_RANGE_DESC',\n  ERA_INDEXER_APIES_SUM_CREATE_AT_ASC = 'ERA_INDEXER_APIES_SUM_CREATE_AT_ASC',\n  ERA_INDEXER_APIES_SUM_CREATE_AT_DESC = 'ERA_INDEXER_APIES_SUM_CREATE_AT_DESC',\n  ERA_INDEXER_APIES_SUM_DELEGATOR_APY_ASC = 'ERA_INDEXER_APIES_SUM_DELEGATOR_APY_ASC',\n  ERA_INDEXER_APIES_SUM_DELEGATOR_APY_DESC = 'ERA_INDEXER_APIES_SUM_DELEGATOR_APY_DESC',\n  ERA_INDEXER_APIES_SUM_DELEGATOR_REWARD_ASC = 'ERA_INDEXER_APIES_SUM_DELEGATOR_REWARD_ASC',\n  ERA_INDEXER_APIES_SUM_DELEGATOR_REWARD_DESC = 'ERA_INDEXER_APIES_SUM_DELEGATOR_REWARD_DESC',\n  ERA_INDEXER_APIES_SUM_ERA_IDX_ASC = 'ERA_INDEXER_APIES_SUM_ERA_IDX_ASC',\n  ERA_INDEXER_APIES_SUM_ERA_IDX_DESC = 'ERA_INDEXER_APIES_SUM_ERA_IDX_DESC',\n  ERA_INDEXER_APIES_SUM_ID_ASC = 'ERA_INDEXER_APIES_SUM_ID_ASC',\n  ERA_INDEXER_APIES_SUM_ID_DESC = 'ERA_INDEXER_APIES_SUM_ID_DESC',\n  ERA_INDEXER_APIES_SUM_INDEXER_APY_ASC = 'ERA_INDEXER_APIES_SUM_INDEXER_APY_ASC',\n  ERA_INDEXER_APIES_SUM_INDEXER_APY_DESC = 'ERA_INDEXER_APIES_SUM_INDEXER_APY_DESC',\n  ERA_INDEXER_APIES_SUM_INDEXER_ID_ASC = 'ERA_INDEXER_APIES_SUM_INDEXER_ID_ASC',\n  ERA_INDEXER_APIES_SUM_INDEXER_ID_DESC = 'ERA_INDEXER_APIES_SUM_INDEXER_ID_DESC',\n  ERA_INDEXER_APIES_SUM_INDEXER_REWARD_ASC = 'ERA_INDEXER_APIES_SUM_INDEXER_REWARD_ASC',\n  ERA_INDEXER_APIES_SUM_INDEXER_REWARD_DESC = 'ERA_INDEXER_APIES_SUM_INDEXER_REWARD_DESC',\n  ERA_INDEXER_APIES_SUM_UPDATE_AT_ASC = 'ERA_INDEXER_APIES_SUM_UPDATE_AT_ASC',\n  ERA_INDEXER_APIES_SUM_UPDATE_AT_DESC = 'ERA_INDEXER_APIES_SUM_UPDATE_AT_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_APY_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_APY_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_APY_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_APY_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_REWARD_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_REWARD_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_REWARD_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_DELEGATOR_REWARD_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_ID_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_ID_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_ID_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_ID_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_APY_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_APY_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_APY_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_APY_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_REWARD_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_REWARD_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_REWARD_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_INDEXER_REWARD_DESC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  ERA_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'ERA_INDEXER_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_APY_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_APY_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_APY_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_APY_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_REWARD_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_REWARD_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_REWARD_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_DELEGATOR_REWARD_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_ID_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_ID_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_ID_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_ID_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_APY_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_APY_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_APY_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_APY_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_REWARD_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_REWARD_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_REWARD_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_INDEXER_REWARD_DESC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  ERA_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'ERA_INDEXER_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_AVERAGE_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_BY_INDEXER_ID__COUNT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_BY_INDEXER_ID__COUNT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_BY_INDEXER_ID__COUNT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_BY_INDEXER_ID__COUNT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_COUNT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_COUNT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_COUNT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_COUNT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MAX_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MAX_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_MIN_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_MIN_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_SUM_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_SUM_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_AGREEMENT_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_AGREEMENT_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_AGREEMENT_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_AGREEMENT_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ALLOCATION_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ALLOCATION_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ALLOCATION_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ALLOCATION_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ADDED_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ADDED_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ADDED_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ADDED_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_ALLOCATION_RECORD_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_HISTORY_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_HISTORY_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_HISTORY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_HISTORY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_REMOVAL_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_REMOVAL_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_REMOVAL_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_CALC_REMOVAL_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_APY_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_FLEX_PLAN_REWARD_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_FLEX_PLAN_REWARD_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_FLEX_PLAN_REWARD_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_FLEX_PLAN_REWARD_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'ERA_INDEXER_DEPLOYMENT_APIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  ERA_REWARDS_AVERAGE_AMOUNT_ASC = 'ERA_REWARDS_AVERAGE_AMOUNT_ASC',\n  ERA_REWARDS_AVERAGE_AMOUNT_DESC = 'ERA_REWARDS_AVERAGE_AMOUNT_DESC',\n  ERA_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'ERA_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'ERA_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_REWARDS_AVERAGE_CLAIMED_ASC = 'ERA_REWARDS_AVERAGE_CLAIMED_ASC',\n  ERA_REWARDS_AVERAGE_CLAIMED_DESC = 'ERA_REWARDS_AVERAGE_CLAIMED_DESC',\n  ERA_REWARDS_AVERAGE_CREATED_BLOCK_ASC = 'ERA_REWARDS_AVERAGE_CREATED_BLOCK_ASC',\n  ERA_REWARDS_AVERAGE_CREATED_BLOCK_DESC = 'ERA_REWARDS_AVERAGE_CREATED_BLOCK_DESC',\n  ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_AVERAGE_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_AVERAGE_DELEGATOR_ID_ASC = 'ERA_REWARDS_AVERAGE_DELEGATOR_ID_ASC',\n  ERA_REWARDS_AVERAGE_DELEGATOR_ID_DESC = 'ERA_REWARDS_AVERAGE_DELEGATOR_ID_DESC',\n  ERA_REWARDS_AVERAGE_ERA_IDX_ASC = 'ERA_REWARDS_AVERAGE_ERA_IDX_ASC',\n  ERA_REWARDS_AVERAGE_ERA_IDX_DESC = 'ERA_REWARDS_AVERAGE_ERA_IDX_DESC',\n  ERA_REWARDS_AVERAGE_ERA_ID_ASC = 'ERA_REWARDS_AVERAGE_ERA_ID_ASC',\n  ERA_REWARDS_AVERAGE_ERA_ID_DESC = 'ERA_REWARDS_AVERAGE_ERA_ID_DESC',\n  ERA_REWARDS_AVERAGE_ID_ASC = 'ERA_REWARDS_AVERAGE_ID_ASC',\n  ERA_REWARDS_AVERAGE_ID_DESC = 'ERA_REWARDS_AVERAGE_ID_DESC',\n  ERA_REWARDS_AVERAGE_INDEXER_ID_ASC = 'ERA_REWARDS_AVERAGE_INDEXER_ID_ASC',\n  ERA_REWARDS_AVERAGE_INDEXER_ID_DESC = 'ERA_REWARDS_AVERAGE_INDEXER_ID_DESC',\n  ERA_REWARDS_AVERAGE_IS_COMMISSION_ASC = 'ERA_REWARDS_AVERAGE_IS_COMMISSION_ASC',\n  ERA_REWARDS_AVERAGE_IS_COMMISSION_DESC = 'ERA_REWARDS_AVERAGE_IS_COMMISSION_DESC',\n  ERA_REWARDS_AVERAGE_IS_INDEXER_ASC = 'ERA_REWARDS_AVERAGE_IS_INDEXER_ASC',\n  ERA_REWARDS_AVERAGE_IS_INDEXER_DESC = 'ERA_REWARDS_AVERAGE_IS_INDEXER_DESC',\n  ERA_REWARDS_BY_INDEXER_ID__COUNT_ASC = 'ERA_REWARDS_BY_INDEXER_ID__COUNT_ASC',\n  ERA_REWARDS_BY_INDEXER_ID__COUNT_DESC = 'ERA_REWARDS_BY_INDEXER_ID__COUNT_DESC',\n  ERA_REWARDS_COUNT_ASC = 'ERA_REWARDS_COUNT_ASC',\n  ERA_REWARDS_COUNT_DESC = 'ERA_REWARDS_COUNT_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_AMOUNT_ASC = 'ERA_REWARDS_DISTINCT_COUNT_AMOUNT_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_AMOUNT_DESC = 'ERA_REWARDS_DISTINCT_COUNT_AMOUNT_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_CLAIMED_ASC = 'ERA_REWARDS_DISTINCT_COUNT_CLAIMED_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_CLAIMED_DESC = 'ERA_REWARDS_DISTINCT_COUNT_CLAIMED_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_DISTINCT_COUNT_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_ERA_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_ERA_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_ASC = 'ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_DESC = 'ERA_REWARDS_DISTINCT_COUNT_IS_COMMISSION_DESC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_ASC = 'ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_ASC',\n  ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_DESC = 'ERA_REWARDS_DISTINCT_COUNT_IS_INDEXER_DESC',\n  ERA_REWARDS_MAX_AMOUNT_ASC = 'ERA_REWARDS_MAX_AMOUNT_ASC',\n  ERA_REWARDS_MAX_AMOUNT_DESC = 'ERA_REWARDS_MAX_AMOUNT_DESC',\n  ERA_REWARDS_MAX_BLOCK_RANGE_ASC = 'ERA_REWARDS_MAX_BLOCK_RANGE_ASC',\n  ERA_REWARDS_MAX_BLOCK_RANGE_DESC = 'ERA_REWARDS_MAX_BLOCK_RANGE_DESC',\n  ERA_REWARDS_MAX_CLAIMED_ASC = 'ERA_REWARDS_MAX_CLAIMED_ASC',\n  ERA_REWARDS_MAX_CLAIMED_DESC = 'ERA_REWARDS_MAX_CLAIMED_DESC',\n  ERA_REWARDS_MAX_CREATED_BLOCK_ASC = 'ERA_REWARDS_MAX_CREATED_BLOCK_ASC',\n  ERA_REWARDS_MAX_CREATED_BLOCK_DESC = 'ERA_REWARDS_MAX_CREATED_BLOCK_DESC',\n  ERA_REWARDS_MAX_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_MAX_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_MAX_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_MAX_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_MAX_DELEGATOR_ID_ASC = 'ERA_REWARDS_MAX_DELEGATOR_ID_ASC',\n  ERA_REWARDS_MAX_DELEGATOR_ID_DESC = 'ERA_REWARDS_MAX_DELEGATOR_ID_DESC',\n  ERA_REWARDS_MAX_ERA_IDX_ASC = 'ERA_REWARDS_MAX_ERA_IDX_ASC',\n  ERA_REWARDS_MAX_ERA_IDX_DESC = 'ERA_REWARDS_MAX_ERA_IDX_DESC',\n  ERA_REWARDS_MAX_ERA_ID_ASC = 'ERA_REWARDS_MAX_ERA_ID_ASC',\n  ERA_REWARDS_MAX_ERA_ID_DESC = 'ERA_REWARDS_MAX_ERA_ID_DESC',\n  ERA_REWARDS_MAX_ID_ASC = 'ERA_REWARDS_MAX_ID_ASC',\n  ERA_REWARDS_MAX_ID_DESC = 'ERA_REWARDS_MAX_ID_DESC',\n  ERA_REWARDS_MAX_INDEXER_ID_ASC = 'ERA_REWARDS_MAX_INDEXER_ID_ASC',\n  ERA_REWARDS_MAX_INDEXER_ID_DESC = 'ERA_REWARDS_MAX_INDEXER_ID_DESC',\n  ERA_REWARDS_MAX_IS_COMMISSION_ASC = 'ERA_REWARDS_MAX_IS_COMMISSION_ASC',\n  ERA_REWARDS_MAX_IS_COMMISSION_DESC = 'ERA_REWARDS_MAX_IS_COMMISSION_DESC',\n  ERA_REWARDS_MAX_IS_INDEXER_ASC = 'ERA_REWARDS_MAX_IS_INDEXER_ASC',\n  ERA_REWARDS_MAX_IS_INDEXER_DESC = 'ERA_REWARDS_MAX_IS_INDEXER_DESC',\n  ERA_REWARDS_MIN_AMOUNT_ASC = 'ERA_REWARDS_MIN_AMOUNT_ASC',\n  ERA_REWARDS_MIN_AMOUNT_DESC = 'ERA_REWARDS_MIN_AMOUNT_DESC',\n  ERA_REWARDS_MIN_BLOCK_RANGE_ASC = 'ERA_REWARDS_MIN_BLOCK_RANGE_ASC',\n  ERA_REWARDS_MIN_BLOCK_RANGE_DESC = 'ERA_REWARDS_MIN_BLOCK_RANGE_DESC',\n  ERA_REWARDS_MIN_CLAIMED_ASC = 'ERA_REWARDS_MIN_CLAIMED_ASC',\n  ERA_REWARDS_MIN_CLAIMED_DESC = 'ERA_REWARDS_MIN_CLAIMED_DESC',\n  ERA_REWARDS_MIN_CREATED_BLOCK_ASC = 'ERA_REWARDS_MIN_CREATED_BLOCK_ASC',\n  ERA_REWARDS_MIN_CREATED_BLOCK_DESC = 'ERA_REWARDS_MIN_CREATED_BLOCK_DESC',\n  ERA_REWARDS_MIN_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_MIN_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_MIN_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_MIN_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_MIN_DELEGATOR_ID_ASC = 'ERA_REWARDS_MIN_DELEGATOR_ID_ASC',\n  ERA_REWARDS_MIN_DELEGATOR_ID_DESC = 'ERA_REWARDS_MIN_DELEGATOR_ID_DESC',\n  ERA_REWARDS_MIN_ERA_IDX_ASC = 'ERA_REWARDS_MIN_ERA_IDX_ASC',\n  ERA_REWARDS_MIN_ERA_IDX_DESC = 'ERA_REWARDS_MIN_ERA_IDX_DESC',\n  ERA_REWARDS_MIN_ERA_ID_ASC = 'ERA_REWARDS_MIN_ERA_ID_ASC',\n  ERA_REWARDS_MIN_ERA_ID_DESC = 'ERA_REWARDS_MIN_ERA_ID_DESC',\n  ERA_REWARDS_MIN_ID_ASC = 'ERA_REWARDS_MIN_ID_ASC',\n  ERA_REWARDS_MIN_ID_DESC = 'ERA_REWARDS_MIN_ID_DESC',\n  ERA_REWARDS_MIN_INDEXER_ID_ASC = 'ERA_REWARDS_MIN_INDEXER_ID_ASC',\n  ERA_REWARDS_MIN_INDEXER_ID_DESC = 'ERA_REWARDS_MIN_INDEXER_ID_DESC',\n  ERA_REWARDS_MIN_IS_COMMISSION_ASC = 'ERA_REWARDS_MIN_IS_COMMISSION_ASC',\n  ERA_REWARDS_MIN_IS_COMMISSION_DESC = 'ERA_REWARDS_MIN_IS_COMMISSION_DESC',\n  ERA_REWARDS_MIN_IS_INDEXER_ASC = 'ERA_REWARDS_MIN_IS_INDEXER_ASC',\n  ERA_REWARDS_MIN_IS_INDEXER_DESC = 'ERA_REWARDS_MIN_IS_INDEXER_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_AMOUNT_ASC = 'ERA_REWARDS_STDDEV_POPULATION_AMOUNT_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_AMOUNT_DESC = 'ERA_REWARDS_STDDEV_POPULATION_AMOUNT_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_CLAIMED_ASC = 'ERA_REWARDS_STDDEV_POPULATION_CLAIMED_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_CLAIMED_DESC = 'ERA_REWARDS_STDDEV_POPULATION_CLAIMED_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_STDDEV_POPULATION_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_ERA_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_ERA_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_ASC = 'ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_DESC = 'ERA_REWARDS_STDDEV_POPULATION_IS_COMMISSION_DESC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_ASC = 'ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_ASC',\n  ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_DESC = 'ERA_REWARDS_STDDEV_POPULATION_IS_INDEXER_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_AMOUNT_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_CLAIMED_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_ERA_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_COMMISSION_DESC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_ASC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_ASC',\n  ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_DESC = 'ERA_REWARDS_STDDEV_SAMPLE_IS_INDEXER_DESC',\n  ERA_REWARDS_SUM_AMOUNT_ASC = 'ERA_REWARDS_SUM_AMOUNT_ASC',\n  ERA_REWARDS_SUM_AMOUNT_DESC = 'ERA_REWARDS_SUM_AMOUNT_DESC',\n  ERA_REWARDS_SUM_BLOCK_RANGE_ASC = 'ERA_REWARDS_SUM_BLOCK_RANGE_ASC',\n  ERA_REWARDS_SUM_BLOCK_RANGE_DESC = 'ERA_REWARDS_SUM_BLOCK_RANGE_DESC',\n  ERA_REWARDS_SUM_CLAIMED_ASC = 'ERA_REWARDS_SUM_CLAIMED_ASC',\n  ERA_REWARDS_SUM_CLAIMED_DESC = 'ERA_REWARDS_SUM_CLAIMED_DESC',\n  ERA_REWARDS_SUM_CREATED_BLOCK_ASC = 'ERA_REWARDS_SUM_CREATED_BLOCK_ASC',\n  ERA_REWARDS_SUM_CREATED_BLOCK_DESC = 'ERA_REWARDS_SUM_CREATED_BLOCK_DESC',\n  ERA_REWARDS_SUM_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_SUM_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_SUM_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_SUM_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_SUM_DELEGATOR_ID_ASC = 'ERA_REWARDS_SUM_DELEGATOR_ID_ASC',\n  ERA_REWARDS_SUM_DELEGATOR_ID_DESC = 'ERA_REWARDS_SUM_DELEGATOR_ID_DESC',\n  ERA_REWARDS_SUM_ERA_IDX_ASC = 'ERA_REWARDS_SUM_ERA_IDX_ASC',\n  ERA_REWARDS_SUM_ERA_IDX_DESC = 'ERA_REWARDS_SUM_ERA_IDX_DESC',\n  ERA_REWARDS_SUM_ERA_ID_ASC = 'ERA_REWARDS_SUM_ERA_ID_ASC',\n  ERA_REWARDS_SUM_ERA_ID_DESC = 'ERA_REWARDS_SUM_ERA_ID_DESC',\n  ERA_REWARDS_SUM_ID_ASC = 'ERA_REWARDS_SUM_ID_ASC',\n  ERA_REWARDS_SUM_ID_DESC = 'ERA_REWARDS_SUM_ID_DESC',\n  ERA_REWARDS_SUM_INDEXER_ID_ASC = 'ERA_REWARDS_SUM_INDEXER_ID_ASC',\n  ERA_REWARDS_SUM_INDEXER_ID_DESC = 'ERA_REWARDS_SUM_INDEXER_ID_DESC',\n  ERA_REWARDS_SUM_IS_COMMISSION_ASC = 'ERA_REWARDS_SUM_IS_COMMISSION_ASC',\n  ERA_REWARDS_SUM_IS_COMMISSION_DESC = 'ERA_REWARDS_SUM_IS_COMMISSION_DESC',\n  ERA_REWARDS_SUM_IS_INDEXER_ASC = 'ERA_REWARDS_SUM_IS_INDEXER_ASC',\n  ERA_REWARDS_SUM_IS_INDEXER_DESC = 'ERA_REWARDS_SUM_IS_INDEXER_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_AMOUNT_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_CLAIMED_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_ERA_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_COMMISSION_DESC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_ASC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_ASC',\n  ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_DESC = 'ERA_REWARDS_VARIANCE_POPULATION_IS_INDEXER_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_CLAIMED_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_ERA_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_COMMISSION_DESC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_ASC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_ASC',\n  ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_DESC = 'ERA_REWARDS_VARIANCE_SAMPLE_IS_INDEXER_DESC',\n  ERA_STAKES_AVERAGE_BLOCK_RANGE_ASC = 'ERA_STAKES_AVERAGE_BLOCK_RANGE_ASC',\n  ERA_STAKES_AVERAGE_BLOCK_RANGE_DESC = 'ERA_STAKES_AVERAGE_BLOCK_RANGE_DESC',\n  ERA_STAKES_AVERAGE_DELEGATOR_ID_ASC = 'ERA_STAKES_AVERAGE_DELEGATOR_ID_ASC',\n  ERA_STAKES_AVERAGE_DELEGATOR_ID_DESC = 'ERA_STAKES_AVERAGE_DELEGATOR_ID_DESC',\n  ERA_STAKES_AVERAGE_ERA_IDX_ASC = 'ERA_STAKES_AVERAGE_ERA_IDX_ASC',\n  ERA_STAKES_AVERAGE_ERA_IDX_DESC = 'ERA_STAKES_AVERAGE_ERA_IDX_DESC',\n  ERA_STAKES_AVERAGE_ERA_ID_ASC = 'ERA_STAKES_AVERAGE_ERA_ID_ASC',\n  ERA_STAKES_AVERAGE_ERA_ID_DESC = 'ERA_STAKES_AVERAGE_ERA_ID_DESC',\n  ERA_STAKES_AVERAGE_ID_ASC = 'ERA_STAKES_AVERAGE_ID_ASC',\n  ERA_STAKES_AVERAGE_ID_DESC = 'ERA_STAKES_AVERAGE_ID_DESC',\n  ERA_STAKES_AVERAGE_INDEXER_ID_ASC = 'ERA_STAKES_AVERAGE_INDEXER_ID_ASC',\n  ERA_STAKES_AVERAGE_INDEXER_ID_DESC = 'ERA_STAKES_AVERAGE_INDEXER_ID_DESC',\n  ERA_STAKES_AVERAGE_STAKE_ASC = 'ERA_STAKES_AVERAGE_STAKE_ASC',\n  ERA_STAKES_AVERAGE_STAKE_DESC = 'ERA_STAKES_AVERAGE_STAKE_DESC',\n  ERA_STAKES_BY_INDEXER_ID__COUNT_ASC = 'ERA_STAKES_BY_INDEXER_ID__COUNT_ASC',\n  ERA_STAKES_BY_INDEXER_ID__COUNT_DESC = 'ERA_STAKES_BY_INDEXER_ID__COUNT_DESC',\n  ERA_STAKES_COUNT_ASC = 'ERA_STAKES_COUNT_ASC',\n  ERA_STAKES_COUNT_DESC = 'ERA_STAKES_COUNT_DESC',\n  ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ERA_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_DELEGATOR_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_IDX_ASC = 'ERA_STAKES_DISTINCT_COUNT_ERA_IDX_ASC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_IDX_DESC = 'ERA_STAKES_DISTINCT_COUNT_ERA_IDX_DESC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_ERA_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_ERA_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_ERA_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC = 'ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC = 'ERA_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ERA_STAKES_DISTINCT_COUNT_STAKE_ASC = 'ERA_STAKES_DISTINCT_COUNT_STAKE_ASC',\n  ERA_STAKES_DISTINCT_COUNT_STAKE_DESC = 'ERA_STAKES_DISTINCT_COUNT_STAKE_DESC',\n  ERA_STAKES_MAX_BLOCK_RANGE_ASC = 'ERA_STAKES_MAX_BLOCK_RANGE_ASC',\n  ERA_STAKES_MAX_BLOCK_RANGE_DESC = 'ERA_STAKES_MAX_BLOCK_RANGE_DESC',\n  ERA_STAKES_MAX_DELEGATOR_ID_ASC = 'ERA_STAKES_MAX_DELEGATOR_ID_ASC',\n  ERA_STAKES_MAX_DELEGATOR_ID_DESC = 'ERA_STAKES_MAX_DELEGATOR_ID_DESC',\n  ERA_STAKES_MAX_ERA_IDX_ASC = 'ERA_STAKES_MAX_ERA_IDX_ASC',\n  ERA_STAKES_MAX_ERA_IDX_DESC = 'ERA_STAKES_MAX_ERA_IDX_DESC',\n  ERA_STAKES_MAX_ERA_ID_ASC = 'ERA_STAKES_MAX_ERA_ID_ASC',\n  ERA_STAKES_MAX_ERA_ID_DESC = 'ERA_STAKES_MAX_ERA_ID_DESC',\n  ERA_STAKES_MAX_ID_ASC = 'ERA_STAKES_MAX_ID_ASC',\n  ERA_STAKES_MAX_ID_DESC = 'ERA_STAKES_MAX_ID_DESC',\n  ERA_STAKES_MAX_INDEXER_ID_ASC = 'ERA_STAKES_MAX_INDEXER_ID_ASC',\n  ERA_STAKES_MAX_INDEXER_ID_DESC = 'ERA_STAKES_MAX_INDEXER_ID_DESC',\n  ERA_STAKES_MAX_STAKE_ASC = 'ERA_STAKES_MAX_STAKE_ASC',\n  ERA_STAKES_MAX_STAKE_DESC = 'ERA_STAKES_MAX_STAKE_DESC',\n  ERA_STAKES_MIN_BLOCK_RANGE_ASC = 'ERA_STAKES_MIN_BLOCK_RANGE_ASC',\n  ERA_STAKES_MIN_BLOCK_RANGE_DESC = 'ERA_STAKES_MIN_BLOCK_RANGE_DESC',\n  ERA_STAKES_MIN_DELEGATOR_ID_ASC = 'ERA_STAKES_MIN_DELEGATOR_ID_ASC',\n  ERA_STAKES_MIN_DELEGATOR_ID_DESC = 'ERA_STAKES_MIN_DELEGATOR_ID_DESC',\n  ERA_STAKES_MIN_ERA_IDX_ASC = 'ERA_STAKES_MIN_ERA_IDX_ASC',\n  ERA_STAKES_MIN_ERA_IDX_DESC = 'ERA_STAKES_MIN_ERA_IDX_DESC',\n  ERA_STAKES_MIN_ERA_ID_ASC = 'ERA_STAKES_MIN_ERA_ID_ASC',\n  ERA_STAKES_MIN_ERA_ID_DESC = 'ERA_STAKES_MIN_ERA_ID_DESC',\n  ERA_STAKES_MIN_ID_ASC = 'ERA_STAKES_MIN_ID_ASC',\n  ERA_STAKES_MIN_ID_DESC = 'ERA_STAKES_MIN_ID_DESC',\n  ERA_STAKES_MIN_INDEXER_ID_ASC = 'ERA_STAKES_MIN_INDEXER_ID_ASC',\n  ERA_STAKES_MIN_INDEXER_ID_DESC = 'ERA_STAKES_MIN_INDEXER_ID_DESC',\n  ERA_STAKES_MIN_STAKE_ASC = 'ERA_STAKES_MIN_STAKE_ASC',\n  ERA_STAKES_MIN_STAKE_DESC = 'ERA_STAKES_MIN_STAKE_DESC',\n  ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ERA_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_DELEGATOR_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_IDX_ASC = 'ERA_STAKES_STDDEV_POPULATION_ERA_IDX_ASC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_IDX_DESC = 'ERA_STAKES_STDDEV_POPULATION_ERA_IDX_DESC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_ERA_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_ERA_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_ERA_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC = 'ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC = 'ERA_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ERA_STAKES_STDDEV_POPULATION_STAKE_ASC = 'ERA_STAKES_STDDEV_POPULATION_STAKE_ASC',\n  ERA_STAKES_STDDEV_POPULATION_STAKE_DESC = 'ERA_STAKES_STDDEV_POPULATION_STAKE_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ERA_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_ERA_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_ERA_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ERA_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ERA_STAKES_STDDEV_SAMPLE_STAKE_ASC = 'ERA_STAKES_STDDEV_SAMPLE_STAKE_ASC',\n  ERA_STAKES_STDDEV_SAMPLE_STAKE_DESC = 'ERA_STAKES_STDDEV_SAMPLE_STAKE_DESC',\n  ERA_STAKES_SUM_BLOCK_RANGE_ASC = 'ERA_STAKES_SUM_BLOCK_RANGE_ASC',\n  ERA_STAKES_SUM_BLOCK_RANGE_DESC = 'ERA_STAKES_SUM_BLOCK_RANGE_DESC',\n  ERA_STAKES_SUM_DELEGATOR_ID_ASC = 'ERA_STAKES_SUM_DELEGATOR_ID_ASC',\n  ERA_STAKES_SUM_DELEGATOR_ID_DESC = 'ERA_STAKES_SUM_DELEGATOR_ID_DESC',\n  ERA_STAKES_SUM_ERA_IDX_ASC = 'ERA_STAKES_SUM_ERA_IDX_ASC',\n  ERA_STAKES_SUM_ERA_IDX_DESC = 'ERA_STAKES_SUM_ERA_IDX_DESC',\n  ERA_STAKES_SUM_ERA_ID_ASC = 'ERA_STAKES_SUM_ERA_ID_ASC',\n  ERA_STAKES_SUM_ERA_ID_DESC = 'ERA_STAKES_SUM_ERA_ID_DESC',\n  ERA_STAKES_SUM_ID_ASC = 'ERA_STAKES_SUM_ID_ASC',\n  ERA_STAKES_SUM_ID_DESC = 'ERA_STAKES_SUM_ID_DESC',\n  ERA_STAKES_SUM_INDEXER_ID_ASC = 'ERA_STAKES_SUM_INDEXER_ID_ASC',\n  ERA_STAKES_SUM_INDEXER_ID_DESC = 'ERA_STAKES_SUM_INDEXER_ID_DESC',\n  ERA_STAKES_SUM_STAKE_ASC = 'ERA_STAKES_SUM_STAKE_ASC',\n  ERA_STAKES_SUM_STAKE_DESC = 'ERA_STAKES_SUM_STAKE_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ERA_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_DELEGATOR_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_ERA_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_ERA_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ERA_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ERA_STAKES_VARIANCE_POPULATION_STAKE_ASC = 'ERA_STAKES_VARIANCE_POPULATION_STAKE_ASC',\n  ERA_STAKES_VARIANCE_POPULATION_STAKE_DESC = 'ERA_STAKES_VARIANCE_POPULATION_STAKE_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_DELEGATOR_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ERA_STAKES_VARIANCE_SAMPLE_STAKE_ASC = 'ERA_STAKES_VARIANCE_SAMPLE_STAKE_ASC',\n  ERA_STAKES_VARIANCE_SAMPLE_STAKE_DESC = 'ERA_STAKES_VARIANCE_SAMPLE_STAKE_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_ALLOCATIONS_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_ALLOCATIONS_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_ALLOCATIONS_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_ALLOCATIONS_COUNT_ASC = 'INDEXER_ALLOCATIONS_COUNT_ASC',\n  INDEXER_ALLOCATIONS_COUNT_DESC = 'INDEXER_ALLOCATIONS_COUNT_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_MAX_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_MAX_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_MAX_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_MAX_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_MIN_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_MIN_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_MIN_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_MIN_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_SUM_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_SUM_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_SUM_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_SUM_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_COUNT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_COUNT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_COUNT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_COUNT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MAX_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MAX_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_MIN_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_MIN_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_SUM_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_SUM_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ERA_IDX_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ERA_IDX_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ERA_IDX_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ERA_IDX_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ERA_IDX_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ERA_IDX_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ERA_IDX_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ERA_IDX_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_END_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_END_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_END_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_END_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_START_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_START_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_START_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_START_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_TIME_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_TIME_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_TIME_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_OVERFLOW_TIME_DESC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_OVERFLOWS_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_ALLOCATION_REWARDS_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_ALLOCATION_REWARDS_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_COUNT_ASC = 'INDEXER_ALLOCATION_REWARDS_COUNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_COUNT_DESC = 'INDEXER_ALLOCATION_REWARDS_COUNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_COUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_COUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_COUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_COUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_DELEGATOR_APY_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_DELEGATOR_APY_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_DELEGATOR_APY_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_DELEGATOR_APY_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_DELEGATOR_REWARD_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_DELEGATOR_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_DELEGATOR_REWARD_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_DELEGATOR_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_ERA_IDX_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_ERA_IDX_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_ERA_IDX_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_ERA_IDX_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_ID_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_ID_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_ID_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_ID_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_APY_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_APY_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_APY_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_APY_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_REWARD_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_REWARD_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_INDEXER_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'INDEXER_APY_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'INDEXER_APY_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_APY_SUMMARIES_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_APY_SUMMARIES_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_APY_SUMMARIES_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_APY_SUMMARIES_COUNT_ASC = 'INDEXER_APY_SUMMARIES_COUNT_ASC',\n  INDEXER_APY_SUMMARIES_COUNT_DESC = 'INDEXER_APY_SUMMARIES_COUNT_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_DELEGATOR_APY_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_DELEGATOR_APY_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_DELEGATOR_APY_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_DELEGATOR_APY_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_DELEGATOR_REWARD_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_DELEGATOR_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_DELEGATOR_REWARD_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_DELEGATOR_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_APY_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_APY_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_APY_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_APY_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_REWARD_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_REWARD_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_INDEXER_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_APY_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'INDEXER_APY_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_APY_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'INDEXER_APY_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_APY_SUMMARIES_MAX_CREATE_AT_ASC = 'INDEXER_APY_SUMMARIES_MAX_CREATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_MAX_CREATE_AT_DESC = 'INDEXER_APY_SUMMARIES_MAX_CREATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_MAX_DELEGATOR_APY_ASC = 'INDEXER_APY_SUMMARIES_MAX_DELEGATOR_APY_ASC',\n  INDEXER_APY_SUMMARIES_MAX_DELEGATOR_APY_DESC = 'INDEXER_APY_SUMMARIES_MAX_DELEGATOR_APY_DESC',\n  INDEXER_APY_SUMMARIES_MAX_DELEGATOR_REWARD_ASC = 'INDEXER_APY_SUMMARIES_MAX_DELEGATOR_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_MAX_DELEGATOR_REWARD_DESC = 'INDEXER_APY_SUMMARIES_MAX_DELEGATOR_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_MAX_ERA_IDX_ASC = 'INDEXER_APY_SUMMARIES_MAX_ERA_IDX_ASC',\n  INDEXER_APY_SUMMARIES_MAX_ERA_IDX_DESC = 'INDEXER_APY_SUMMARIES_MAX_ERA_IDX_DESC',\n  INDEXER_APY_SUMMARIES_MAX_ID_ASC = 'INDEXER_APY_SUMMARIES_MAX_ID_ASC',\n  INDEXER_APY_SUMMARIES_MAX_ID_DESC = 'INDEXER_APY_SUMMARIES_MAX_ID_DESC',\n  INDEXER_APY_SUMMARIES_MAX_INDEXER_APY_ASC = 'INDEXER_APY_SUMMARIES_MAX_INDEXER_APY_ASC',\n  INDEXER_APY_SUMMARIES_MAX_INDEXER_APY_DESC = 'INDEXER_APY_SUMMARIES_MAX_INDEXER_APY_DESC',\n  INDEXER_APY_SUMMARIES_MAX_INDEXER_ID_ASC = 'INDEXER_APY_SUMMARIES_MAX_INDEXER_ID_ASC',\n  INDEXER_APY_SUMMARIES_MAX_INDEXER_ID_DESC = 'INDEXER_APY_SUMMARIES_MAX_INDEXER_ID_DESC',\n  INDEXER_APY_SUMMARIES_MAX_INDEXER_REWARD_ASC = 'INDEXER_APY_SUMMARIES_MAX_INDEXER_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_MAX_INDEXER_REWARD_DESC = 'INDEXER_APY_SUMMARIES_MAX_INDEXER_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_MAX_UPDATE_AT_ASC = 'INDEXER_APY_SUMMARIES_MAX_UPDATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_MAX_UPDATE_AT_DESC = 'INDEXER_APY_SUMMARIES_MAX_UPDATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'INDEXER_APY_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_APY_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'INDEXER_APY_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_APY_SUMMARIES_MIN_CREATE_AT_ASC = 'INDEXER_APY_SUMMARIES_MIN_CREATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_MIN_CREATE_AT_DESC = 'INDEXER_APY_SUMMARIES_MIN_CREATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_MIN_DELEGATOR_APY_ASC = 'INDEXER_APY_SUMMARIES_MIN_DELEGATOR_APY_ASC',\n  INDEXER_APY_SUMMARIES_MIN_DELEGATOR_APY_DESC = 'INDEXER_APY_SUMMARIES_MIN_DELEGATOR_APY_DESC',\n  INDEXER_APY_SUMMARIES_MIN_DELEGATOR_REWARD_ASC = 'INDEXER_APY_SUMMARIES_MIN_DELEGATOR_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_MIN_DELEGATOR_REWARD_DESC = 'INDEXER_APY_SUMMARIES_MIN_DELEGATOR_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_MIN_ERA_IDX_ASC = 'INDEXER_APY_SUMMARIES_MIN_ERA_IDX_ASC',\n  INDEXER_APY_SUMMARIES_MIN_ERA_IDX_DESC = 'INDEXER_APY_SUMMARIES_MIN_ERA_IDX_DESC',\n  INDEXER_APY_SUMMARIES_MIN_ID_ASC = 'INDEXER_APY_SUMMARIES_MIN_ID_ASC',\n  INDEXER_APY_SUMMARIES_MIN_ID_DESC = 'INDEXER_APY_SUMMARIES_MIN_ID_DESC',\n  INDEXER_APY_SUMMARIES_MIN_INDEXER_APY_ASC = 'INDEXER_APY_SUMMARIES_MIN_INDEXER_APY_ASC',\n  INDEXER_APY_SUMMARIES_MIN_INDEXER_APY_DESC = 'INDEXER_APY_SUMMARIES_MIN_INDEXER_APY_DESC',\n  INDEXER_APY_SUMMARIES_MIN_INDEXER_ID_ASC = 'INDEXER_APY_SUMMARIES_MIN_INDEXER_ID_ASC',\n  INDEXER_APY_SUMMARIES_MIN_INDEXER_ID_DESC = 'INDEXER_APY_SUMMARIES_MIN_INDEXER_ID_DESC',\n  INDEXER_APY_SUMMARIES_MIN_INDEXER_REWARD_ASC = 'INDEXER_APY_SUMMARIES_MIN_INDEXER_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_MIN_INDEXER_REWARD_DESC = 'INDEXER_APY_SUMMARIES_MIN_INDEXER_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_MIN_UPDATE_AT_ASC = 'INDEXER_APY_SUMMARIES_MIN_UPDATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_MIN_UPDATE_AT_DESC = 'INDEXER_APY_SUMMARIES_MIN_UPDATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_DELEGATOR_APY_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_DELEGATOR_APY_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_DELEGATOR_APY_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_DELEGATOR_APY_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_DELEGATOR_REWARD_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_DELEGATOR_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_DELEGATOR_REWARD_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_DELEGATOR_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_APY_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_APY_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_APY_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_APY_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_REWARD_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_REWARD_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_INDEXER_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_APY_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_APY_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_APY_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_APY_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_REWARD_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_REWARD_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_DELEGATOR_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_APY_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_APY_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_APY_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_APY_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_REWARD_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_REWARD_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_INDEXER_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_APY_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'INDEXER_APY_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_APY_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'INDEXER_APY_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_APY_SUMMARIES_SUM_CREATE_AT_ASC = 'INDEXER_APY_SUMMARIES_SUM_CREATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_SUM_CREATE_AT_DESC = 'INDEXER_APY_SUMMARIES_SUM_CREATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_SUM_DELEGATOR_APY_ASC = 'INDEXER_APY_SUMMARIES_SUM_DELEGATOR_APY_ASC',\n  INDEXER_APY_SUMMARIES_SUM_DELEGATOR_APY_DESC = 'INDEXER_APY_SUMMARIES_SUM_DELEGATOR_APY_DESC',\n  INDEXER_APY_SUMMARIES_SUM_DELEGATOR_REWARD_ASC = 'INDEXER_APY_SUMMARIES_SUM_DELEGATOR_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_SUM_DELEGATOR_REWARD_DESC = 'INDEXER_APY_SUMMARIES_SUM_DELEGATOR_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_SUM_ERA_IDX_ASC = 'INDEXER_APY_SUMMARIES_SUM_ERA_IDX_ASC',\n  INDEXER_APY_SUMMARIES_SUM_ERA_IDX_DESC = 'INDEXER_APY_SUMMARIES_SUM_ERA_IDX_DESC',\n  INDEXER_APY_SUMMARIES_SUM_ID_ASC = 'INDEXER_APY_SUMMARIES_SUM_ID_ASC',\n  INDEXER_APY_SUMMARIES_SUM_ID_DESC = 'INDEXER_APY_SUMMARIES_SUM_ID_DESC',\n  INDEXER_APY_SUMMARIES_SUM_INDEXER_APY_ASC = 'INDEXER_APY_SUMMARIES_SUM_INDEXER_APY_ASC',\n  INDEXER_APY_SUMMARIES_SUM_INDEXER_APY_DESC = 'INDEXER_APY_SUMMARIES_SUM_INDEXER_APY_DESC',\n  INDEXER_APY_SUMMARIES_SUM_INDEXER_ID_ASC = 'INDEXER_APY_SUMMARIES_SUM_INDEXER_ID_ASC',\n  INDEXER_APY_SUMMARIES_SUM_INDEXER_ID_DESC = 'INDEXER_APY_SUMMARIES_SUM_INDEXER_ID_DESC',\n  INDEXER_APY_SUMMARIES_SUM_INDEXER_REWARD_ASC = 'INDEXER_APY_SUMMARIES_SUM_INDEXER_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_SUM_INDEXER_REWARD_DESC = 'INDEXER_APY_SUMMARIES_SUM_INDEXER_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_SUM_UPDATE_AT_ASC = 'INDEXER_APY_SUMMARIES_SUM_UPDATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_SUM_UPDATE_AT_DESC = 'INDEXER_APY_SUMMARIES_SUM_UPDATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_APY_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_APY_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_APY_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_APY_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_REWARD_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_REWARD_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_DELEGATOR_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_APY_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_APY_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_APY_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_APY_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_REWARD_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_REWARD_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_INDEXER_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_APY_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_APY_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_APY_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_APY_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_REWARD_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_REWARD_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_DELEGATOR_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_APY_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_APY_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_APY_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_APY_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_REWARD_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_REWARD_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_REWARD_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_INDEXER_REWARD_DESC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_APY_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ID_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_ID_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_ID_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_ID_DESC',\n  INDEXER_COMMISSION_RATES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_COMMISSION_RATES_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_COMMISSION_RATES_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_COMMISSION_RATES_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_COMMISSION_RATES_COUNT_ASC = 'INDEXER_COMMISSION_RATES_COUNT_ASC',\n  INDEXER_COMMISSION_RATES_COUNT_DESC = 'INDEXER_COMMISSION_RATES_COUNT_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ID_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ID_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_MAX_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_MAX_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_MAX_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_MAX_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_MAX_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_MAX_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_MAX_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_MAX_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_MAX_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_MAX_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_MAX_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_MAX_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_MAX_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_MAX_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_MAX_ID_ASC = 'INDEXER_COMMISSION_RATES_MAX_ID_ASC',\n  INDEXER_COMMISSION_RATES_MAX_ID_DESC = 'INDEXER_COMMISSION_RATES_MAX_ID_DESC',\n  INDEXER_COMMISSION_RATES_MAX_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_MAX_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_MAX_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_MAX_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_MIN_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_MIN_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_MIN_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_MIN_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_MIN_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_MIN_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_MIN_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_MIN_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_MIN_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_MIN_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_MIN_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_MIN_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_MIN_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_MIN_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_MIN_ID_ASC = 'INDEXER_COMMISSION_RATES_MIN_ID_ASC',\n  INDEXER_COMMISSION_RATES_MIN_ID_DESC = 'INDEXER_COMMISSION_RATES_MIN_ID_DESC',\n  INDEXER_COMMISSION_RATES_MIN_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_MIN_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_MIN_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_MIN_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_SUM_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_SUM_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_SUM_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_SUM_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_SUM_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_SUM_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_SUM_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_SUM_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_SUM_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_SUM_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_SUM_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_SUM_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_SUM_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_SUM_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_SUM_ID_ASC = 'INDEXER_COMMISSION_RATES_SUM_ID_ASC',\n  INDEXER_COMMISSION_RATES_SUM_ID_DESC = 'INDEXER_COMMISSION_RATES_SUM_ID_DESC',\n  INDEXER_COMMISSION_RATES_SUM_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_SUM_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_SUM_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_SUM_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_COMMISSION_RATE_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_COMMISSION_RATE_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_COMMISSION_RATE_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_COMMISSION_RATE_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ERA_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_COMMISSION_RATES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_DEPLOYMENTS_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_DEPLOYMENTS_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_DEPLOYMENTS_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_DEPLOYMENTS_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_AGREEMENT_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_AGREEMENT_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_AGREEMENT_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_AGREEMENT_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ALLOCATION_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ALLOCATION_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ALLOCATION_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ALLOCATION_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_CHANGES_HEIGHT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_CHANGES_HEIGHT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_CHANGES_HEIGHT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_CHANGES_HEIGHT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ERA_IDX_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ERA_IDX_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_QUERY_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_QUERY_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_QUERY_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_QUERY_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_STATE_CHANNEL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_STATE_CHANNEL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_STATE_CHANNEL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_STATE_CHANNEL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_TOTAL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_TOTAL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_TOTAL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_AVERAGE_TOTAL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_COUNT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_COUNT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_COUNT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_COUNT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_AGREEMENT_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_AGREEMENT_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_AGREEMENT_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_AGREEMENT_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ALLOCATION_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ALLOCATION_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ALLOCATION_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ALLOCATION_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_CHANGES_HEIGHT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_CHANGES_HEIGHT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_CHANGES_HEIGHT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_CHANGES_HEIGHT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_QUERY_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_QUERY_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_QUERY_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_QUERY_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_STATE_CHANNEL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_STATE_CHANNEL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_STATE_CHANNEL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_STATE_CHANNEL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_TOTAL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_TOTAL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_TOTAL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_DISTINCT_COUNT_TOTAL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_AGREEMENT_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_AGREEMENT_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_AGREEMENT_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_AGREEMENT_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ALLOCATION_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ALLOCATION_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ALLOCATION_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ALLOCATION_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_BLOCK_RANGE_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_BLOCK_RANGE_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_CHANGES_HEIGHT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_CHANGES_HEIGHT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_CHANGES_HEIGHT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_CHANGES_HEIGHT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ERA_IDX_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ERA_IDX_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ERA_IDX_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ERA_IDX_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_INDEXER_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_INDEXER_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_INDEXER_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_INDEXER_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_QUERY_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_QUERY_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_QUERY_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_QUERY_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_STATE_CHANNEL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_STATE_CHANNEL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_STATE_CHANNEL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_STATE_CHANNEL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_TOTAL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_TOTAL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_TOTAL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MAX_TOTAL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_AGREEMENT_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_AGREEMENT_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_AGREEMENT_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_AGREEMENT_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ALLOCATION_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ALLOCATION_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ALLOCATION_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ALLOCATION_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_BLOCK_RANGE_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_BLOCK_RANGE_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_CHANGES_HEIGHT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_CHANGES_HEIGHT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_CHANGES_HEIGHT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_CHANGES_HEIGHT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ERA_IDX_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ERA_IDX_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ERA_IDX_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ERA_IDX_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_INDEXER_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_INDEXER_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_INDEXER_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_INDEXER_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_QUERY_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_QUERY_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_QUERY_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_QUERY_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_STATE_CHANNEL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_STATE_CHANNEL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_STATE_CHANNEL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_STATE_CHANNEL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_TOTAL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_TOTAL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_TOTAL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_MIN_TOTAL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_AGREEMENT_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_AGREEMENT_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_AGREEMENT_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_AGREEMENT_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ALLOCATION_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ALLOCATION_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ALLOCATION_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ALLOCATION_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_CHANGES_HEIGHT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_CHANGES_HEIGHT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_CHANGES_HEIGHT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_CHANGES_HEIGHT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_QUERY_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_QUERY_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_QUERY_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_QUERY_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_STATE_CHANNEL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_STATE_CHANNEL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_STATE_CHANNEL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_STATE_CHANNEL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_TOTAL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_TOTAL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_TOTAL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_POPULATION_TOTAL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_AGREEMENT_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_AGREEMENT_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_AGREEMENT_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_AGREEMENT_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ALLOCATION_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ALLOCATION_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ALLOCATION_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ALLOCATION_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_CHANGES_HEIGHT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_CHANGES_HEIGHT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_CHANGES_HEIGHT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_CHANGES_HEIGHT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_QUERY_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_QUERY_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_QUERY_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_QUERY_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_STATE_CHANNEL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_STATE_CHANNEL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_STATE_CHANNEL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_STATE_CHANNEL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_TOTAL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_TOTAL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_TOTAL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_STDDEV_SAMPLE_TOTAL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_AGREEMENT_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_AGREEMENT_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_AGREEMENT_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_AGREEMENT_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ALLOCATION_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ALLOCATION_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ALLOCATION_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ALLOCATION_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_BLOCK_RANGE_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_BLOCK_RANGE_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_CHANGES_HEIGHT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_CHANGES_HEIGHT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_CHANGES_HEIGHT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_CHANGES_HEIGHT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ERA_IDX_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ERA_IDX_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ERA_IDX_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ERA_IDX_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_INDEXER_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_INDEXER_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_INDEXER_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_INDEXER_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_QUERY_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_QUERY_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_QUERY_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_QUERY_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_STATE_CHANNEL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_STATE_CHANNEL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_STATE_CHANNEL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_STATE_CHANNEL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_TOTAL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_TOTAL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_TOTAL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_SUM_TOTAL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_AGREEMENT_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_AGREEMENT_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_AGREEMENT_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_AGREEMENT_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ALLOCATION_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ALLOCATION_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ALLOCATION_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ALLOCATION_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_CHANGES_HEIGHT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_CHANGES_HEIGHT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_CHANGES_HEIGHT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_CHANGES_HEIGHT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_QUERY_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_QUERY_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_QUERY_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_QUERY_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_STATE_CHANNEL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_STATE_CHANNEL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_STATE_CHANNEL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_STATE_CHANNEL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_TOTAL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_TOTAL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_TOTAL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_POPULATION_TOTAL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_AGREEMENT_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_AGREEMENT_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_AGREEMENT_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_AGREEMENT_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ALLOCATION_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ALLOCATION_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ALLOCATION_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ALLOCATION_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_CHANGES_HEIGHT_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_CHANGES_HEIGHT_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_CHANGES_HEIGHT_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_CHANGES_HEIGHT_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_QUERY_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_QUERY_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_QUERY_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_QUERY_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_STATE_CHANNEL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_STATE_CHANNEL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_STATE_CHANNEL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_STATE_CHANNEL_REWARDS_DESC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_TOTAL_REWARDS_ASC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_TOTAL_REWARDS_ASC',\n  INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_TOTAL_REWARDS_DESC = 'INDEXER_ERA_DEPLOYMENT_REWARDS_VARIANCE_SAMPLE_TOTAL_REWARDS_DESC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_AMOUNT_ASC = 'INDEXER_LABOR_HISTORIES_AVERAGE_AMOUNT_ASC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_AMOUNT_DESC = 'INDEXER_LABOR_HISTORIES_AVERAGE_AMOUNT_DESC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_LABOR_HISTORIES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_LABOR_HISTORIES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_CREATE_AT_ASC = 'INDEXER_LABOR_HISTORIES_AVERAGE_CREATE_AT_ASC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_CREATE_AT_DESC = 'INDEXER_LABOR_HISTORIES_AVERAGE_CREATE_AT_DESC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_LABOR_HISTORIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_LABOR_HISTORIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_ERA_IDX_ASC = 'INDEXER_LABOR_HISTORIES_AVERAGE_ERA_IDX_ASC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_ERA_IDX_DESC = 'INDEXER_LABOR_HISTORIES_AVERAGE_ERA_IDX_DESC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_ID_ASC = 'INDEXER_LABOR_HISTORIES_AVERAGE_ID_ASC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_ID_DESC = 'INDEXER_LABOR_HISTORIES_AVERAGE_ID_DESC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_LABOR_HISTORIES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_LABOR_HISTORIES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_LABOR_HISTORIES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_LABOR_HISTORIES_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_LABOR_HISTORIES_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_LABOR_HISTORIES_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_LABOR_HISTORIES_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_LABOR_HISTORIES_COUNT_ASC = 'INDEXER_LABOR_HISTORIES_COUNT_ASC',\n  INDEXER_LABOR_HISTORIES_COUNT_DESC = 'INDEXER_LABOR_HISTORIES_COUNT_DESC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_AMOUNT_ASC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_AMOUNT_ASC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_AMOUNT_DESC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_AMOUNT_DESC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_ID_ASC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_ID_DESC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_LABOR_HISTORIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_LABOR_HISTORIES_MAX_AMOUNT_ASC = 'INDEXER_LABOR_HISTORIES_MAX_AMOUNT_ASC',\n  INDEXER_LABOR_HISTORIES_MAX_AMOUNT_DESC = 'INDEXER_LABOR_HISTORIES_MAX_AMOUNT_DESC',\n  INDEXER_LABOR_HISTORIES_MAX_BLOCK_RANGE_ASC = 'INDEXER_LABOR_HISTORIES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_LABOR_HISTORIES_MAX_BLOCK_RANGE_DESC = 'INDEXER_LABOR_HISTORIES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_LABOR_HISTORIES_MAX_CREATE_AT_ASC = 'INDEXER_LABOR_HISTORIES_MAX_CREATE_AT_ASC',\n  INDEXER_LABOR_HISTORIES_MAX_CREATE_AT_DESC = 'INDEXER_LABOR_HISTORIES_MAX_CREATE_AT_DESC',\n  INDEXER_LABOR_HISTORIES_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_LABOR_HISTORIES_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_LABOR_HISTORIES_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_MAX_ERA_IDX_ASC = 'INDEXER_LABOR_HISTORIES_MAX_ERA_IDX_ASC',\n  INDEXER_LABOR_HISTORIES_MAX_ERA_IDX_DESC = 'INDEXER_LABOR_HISTORIES_MAX_ERA_IDX_DESC',\n  INDEXER_LABOR_HISTORIES_MAX_ID_ASC = 'INDEXER_LABOR_HISTORIES_MAX_ID_ASC',\n  INDEXER_LABOR_HISTORIES_MAX_ID_DESC = 'INDEXER_LABOR_HISTORIES_MAX_ID_DESC',\n  INDEXER_LABOR_HISTORIES_MAX_INDEXER_ID_ASC = 'INDEXER_LABOR_HISTORIES_MAX_INDEXER_ID_ASC',\n  INDEXER_LABOR_HISTORIES_MAX_INDEXER_ID_DESC = 'INDEXER_LABOR_HISTORIES_MAX_INDEXER_ID_DESC',\n  INDEXER_LABOR_HISTORIES_MIN_AMOUNT_ASC = 'INDEXER_LABOR_HISTORIES_MIN_AMOUNT_ASC',\n  INDEXER_LABOR_HISTORIES_MIN_AMOUNT_DESC = 'INDEXER_LABOR_HISTORIES_MIN_AMOUNT_DESC',\n  INDEXER_LABOR_HISTORIES_MIN_BLOCK_RANGE_ASC = 'INDEXER_LABOR_HISTORIES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_LABOR_HISTORIES_MIN_BLOCK_RANGE_DESC = 'INDEXER_LABOR_HISTORIES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_LABOR_HISTORIES_MIN_CREATE_AT_ASC = 'INDEXER_LABOR_HISTORIES_MIN_CREATE_AT_ASC',\n  INDEXER_LABOR_HISTORIES_MIN_CREATE_AT_DESC = 'INDEXER_LABOR_HISTORIES_MIN_CREATE_AT_DESC',\n  INDEXER_LABOR_HISTORIES_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_LABOR_HISTORIES_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_LABOR_HISTORIES_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_MIN_ERA_IDX_ASC = 'INDEXER_LABOR_HISTORIES_MIN_ERA_IDX_ASC',\n  INDEXER_LABOR_HISTORIES_MIN_ERA_IDX_DESC = 'INDEXER_LABOR_HISTORIES_MIN_ERA_IDX_DESC',\n  INDEXER_LABOR_HISTORIES_MIN_ID_ASC = 'INDEXER_LABOR_HISTORIES_MIN_ID_ASC',\n  INDEXER_LABOR_HISTORIES_MIN_ID_DESC = 'INDEXER_LABOR_HISTORIES_MIN_ID_DESC',\n  INDEXER_LABOR_HISTORIES_MIN_INDEXER_ID_ASC = 'INDEXER_LABOR_HISTORIES_MIN_INDEXER_ID_ASC',\n  INDEXER_LABOR_HISTORIES_MIN_INDEXER_ID_DESC = 'INDEXER_LABOR_HISTORIES_MIN_INDEXER_ID_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_AMOUNT_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_AMOUNT_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_AMOUNT_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_AMOUNT_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_ID_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_ID_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_AMOUNT_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_AMOUNT_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_AMOUNT_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_AMOUNT_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_LABOR_HISTORIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_LABOR_HISTORIES_SUM_AMOUNT_ASC = 'INDEXER_LABOR_HISTORIES_SUM_AMOUNT_ASC',\n  INDEXER_LABOR_HISTORIES_SUM_AMOUNT_DESC = 'INDEXER_LABOR_HISTORIES_SUM_AMOUNT_DESC',\n  INDEXER_LABOR_HISTORIES_SUM_BLOCK_RANGE_ASC = 'INDEXER_LABOR_HISTORIES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_LABOR_HISTORIES_SUM_BLOCK_RANGE_DESC = 'INDEXER_LABOR_HISTORIES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_LABOR_HISTORIES_SUM_CREATE_AT_ASC = 'INDEXER_LABOR_HISTORIES_SUM_CREATE_AT_ASC',\n  INDEXER_LABOR_HISTORIES_SUM_CREATE_AT_DESC = 'INDEXER_LABOR_HISTORIES_SUM_CREATE_AT_DESC',\n  INDEXER_LABOR_HISTORIES_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_LABOR_HISTORIES_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_LABOR_HISTORIES_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_SUM_ERA_IDX_ASC = 'INDEXER_LABOR_HISTORIES_SUM_ERA_IDX_ASC',\n  INDEXER_LABOR_HISTORIES_SUM_ERA_IDX_DESC = 'INDEXER_LABOR_HISTORIES_SUM_ERA_IDX_DESC',\n  INDEXER_LABOR_HISTORIES_SUM_ID_ASC = 'INDEXER_LABOR_HISTORIES_SUM_ID_ASC',\n  INDEXER_LABOR_HISTORIES_SUM_ID_DESC = 'INDEXER_LABOR_HISTORIES_SUM_ID_DESC',\n  INDEXER_LABOR_HISTORIES_SUM_INDEXER_ID_ASC = 'INDEXER_LABOR_HISTORIES_SUM_INDEXER_ID_ASC',\n  INDEXER_LABOR_HISTORIES_SUM_INDEXER_ID_DESC = 'INDEXER_LABOR_HISTORIES_SUM_INDEXER_ID_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_AMOUNT_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_AMOUNT_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_AMOUNT_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_AMOUNT_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_AMOUNT_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_AMOUNT_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_AMOUNT_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_AMOUNT_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_LABOR_HISTORIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_ID_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_ID_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_ID_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_ID_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_AVERAGE_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_AVERAGE_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_AVERAGE_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_AVERAGE_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_MISSED_LABORS_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_MISSED_LABORS_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_MISSED_LABORS_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_MISSED_LABORS_COUNT_ASC = 'INDEXER_MISSED_LABORS_COUNT_ASC',\n  INDEXER_MISSED_LABORS_COUNT_DESC = 'INDEXER_MISSED_LABORS_COUNT_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_ID_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_ID_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_DISTINCT_COUNT_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_DISTINCT_COUNT_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_MAX_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_MAX_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_MAX_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_MAX_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_MAX_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_MAX_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_MAX_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_MAX_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_MAX_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_MAX_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_MAX_ID_ASC = 'INDEXER_MISSED_LABORS_MAX_ID_ASC',\n  INDEXER_MISSED_LABORS_MAX_ID_DESC = 'INDEXER_MISSED_LABORS_MAX_ID_DESC',\n  INDEXER_MISSED_LABORS_MAX_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_MAX_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_MAX_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_MAX_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_MAX_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_MAX_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_MAX_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_MAX_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_MIN_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_MIN_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_MIN_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_MIN_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_MIN_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_MIN_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_MIN_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_MIN_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_MIN_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_MIN_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_MIN_ID_ASC = 'INDEXER_MISSED_LABORS_MIN_ID_ASC',\n  INDEXER_MISSED_LABORS_MIN_ID_DESC = 'INDEXER_MISSED_LABORS_MIN_ID_DESC',\n  INDEXER_MISSED_LABORS_MIN_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_MIN_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_MIN_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_MIN_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_MIN_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_MIN_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_MIN_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_MIN_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_POPULATION_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_STDDEV_POPULATION_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_STDDEV_SAMPLE_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_STDDEV_SAMPLE_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_SUM_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_SUM_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_SUM_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_SUM_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_SUM_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_SUM_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_SUM_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_SUM_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_SUM_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_SUM_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_SUM_ID_ASC = 'INDEXER_MISSED_LABORS_SUM_ID_ASC',\n  INDEXER_MISSED_LABORS_SUM_ID_DESC = 'INDEXER_MISSED_LABORS_SUM_ID_DESC',\n  INDEXER_MISSED_LABORS_SUM_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_SUM_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_SUM_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_SUM_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_SUM_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_SUM_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_SUM_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_SUM_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_POPULATION_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_POPULATION_MISSED_LABOR_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_MISSED_LABOR_ASC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_MISSED_LABOR_ASC',\n  INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_MISSED_LABOR_DESC = 'INDEXER_MISSED_LABORS_VARIANCE_SAMPLE_MISSED_LABOR_DESC',\n  INDEXER_REWARDS_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_REWARDS_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_REWARDS_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_REWARDS_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_STAKES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_STAKES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_STAKES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_AVERAGE_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_AVERAGE_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_AVERAGE_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_AVERAGE_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_AVERAGE_ERA_IDX_ASC = 'INDEXER_STAKES_AVERAGE_ERA_IDX_ASC',\n  INDEXER_STAKES_AVERAGE_ERA_IDX_DESC = 'INDEXER_STAKES_AVERAGE_ERA_IDX_DESC',\n  INDEXER_STAKES_AVERAGE_ERA_ID_ASC = 'INDEXER_STAKES_AVERAGE_ERA_ID_ASC',\n  INDEXER_STAKES_AVERAGE_ERA_ID_DESC = 'INDEXER_STAKES_AVERAGE_ERA_ID_DESC',\n  INDEXER_STAKES_AVERAGE_ID_ASC = 'INDEXER_STAKES_AVERAGE_ID_ASC',\n  INDEXER_STAKES_AVERAGE_ID_DESC = 'INDEXER_STAKES_AVERAGE_ID_DESC',\n  INDEXER_STAKES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_STAKES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_STAKES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_STAKES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_STAKES_AVERAGE_INDEXER_STAKE_ASC = 'INDEXER_STAKES_AVERAGE_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_AVERAGE_INDEXER_STAKE_DESC = 'INDEXER_STAKES_AVERAGE_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_AVERAGE_TOTAL_STAKE_ASC = 'INDEXER_STAKES_AVERAGE_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_AVERAGE_TOTAL_STAKE_DESC = 'INDEXER_STAKES_AVERAGE_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_STAKES_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_STAKES_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_STAKES_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_STAKES_COUNT_ASC = 'INDEXER_STAKES_COUNT_ASC',\n  INDEXER_STAKES_COUNT_DESC = 'INDEXER_STAKES_COUNT_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_ERA_ID_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_ERA_ID_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_ERA_ID_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_ERA_ID_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_ID_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_ID_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_INDEXER_STAKE_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_INDEXER_STAKE_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_DISTINCT_COUNT_TOTAL_STAKE_ASC = 'INDEXER_STAKES_DISTINCT_COUNT_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_DISTINCT_COUNT_TOTAL_STAKE_DESC = 'INDEXER_STAKES_DISTINCT_COUNT_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_MAX_BLOCK_RANGE_ASC = 'INDEXER_STAKES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_MAX_BLOCK_RANGE_DESC = 'INDEXER_STAKES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_MAX_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_MAX_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_MAX_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_MAX_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_MAX_ERA_IDX_ASC = 'INDEXER_STAKES_MAX_ERA_IDX_ASC',\n  INDEXER_STAKES_MAX_ERA_IDX_DESC = 'INDEXER_STAKES_MAX_ERA_IDX_DESC',\n  INDEXER_STAKES_MAX_ERA_ID_ASC = 'INDEXER_STAKES_MAX_ERA_ID_ASC',\n  INDEXER_STAKES_MAX_ERA_ID_DESC = 'INDEXER_STAKES_MAX_ERA_ID_DESC',\n  INDEXER_STAKES_MAX_ID_ASC = 'INDEXER_STAKES_MAX_ID_ASC',\n  INDEXER_STAKES_MAX_ID_DESC = 'INDEXER_STAKES_MAX_ID_DESC',\n  INDEXER_STAKES_MAX_INDEXER_ID_ASC = 'INDEXER_STAKES_MAX_INDEXER_ID_ASC',\n  INDEXER_STAKES_MAX_INDEXER_ID_DESC = 'INDEXER_STAKES_MAX_INDEXER_ID_DESC',\n  INDEXER_STAKES_MAX_INDEXER_STAKE_ASC = 'INDEXER_STAKES_MAX_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_MAX_INDEXER_STAKE_DESC = 'INDEXER_STAKES_MAX_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_MAX_TOTAL_STAKE_ASC = 'INDEXER_STAKES_MAX_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_MAX_TOTAL_STAKE_DESC = 'INDEXER_STAKES_MAX_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_MIN_BLOCK_RANGE_ASC = 'INDEXER_STAKES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_MIN_BLOCK_RANGE_DESC = 'INDEXER_STAKES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_MIN_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_MIN_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_MIN_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_MIN_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_MIN_ERA_IDX_ASC = 'INDEXER_STAKES_MIN_ERA_IDX_ASC',\n  INDEXER_STAKES_MIN_ERA_IDX_DESC = 'INDEXER_STAKES_MIN_ERA_IDX_DESC',\n  INDEXER_STAKES_MIN_ERA_ID_ASC = 'INDEXER_STAKES_MIN_ERA_ID_ASC',\n  INDEXER_STAKES_MIN_ERA_ID_DESC = 'INDEXER_STAKES_MIN_ERA_ID_DESC',\n  INDEXER_STAKES_MIN_ID_ASC = 'INDEXER_STAKES_MIN_ID_ASC',\n  INDEXER_STAKES_MIN_ID_DESC = 'INDEXER_STAKES_MIN_ID_DESC',\n  INDEXER_STAKES_MIN_INDEXER_ID_ASC = 'INDEXER_STAKES_MIN_INDEXER_ID_ASC',\n  INDEXER_STAKES_MIN_INDEXER_ID_DESC = 'INDEXER_STAKES_MIN_INDEXER_ID_DESC',\n  INDEXER_STAKES_MIN_INDEXER_STAKE_ASC = 'INDEXER_STAKES_MIN_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_MIN_INDEXER_STAKE_DESC = 'INDEXER_STAKES_MIN_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_MIN_TOTAL_STAKE_ASC = 'INDEXER_STAKES_MIN_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_MIN_TOTAL_STAKE_DESC = 'INDEXER_STAKES_MIN_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_ERA_ID_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_ERA_ID_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_ERA_ID_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_ERA_ID_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_ID_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_ID_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_INDEXER_STAKE_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_INDEXER_STAKE_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_POPULATION_TOTAL_STAKE_ASC = 'INDEXER_STAKES_STDDEV_POPULATION_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_POPULATION_TOTAL_STAKE_DESC = 'INDEXER_STAKES_STDDEV_POPULATION_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ERA_ID_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_ERA_ID_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ERA_ID_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_ERA_ID_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_STAKE_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_STAKE_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_STDDEV_SAMPLE_TOTAL_STAKE_ASC = 'INDEXER_STAKES_STDDEV_SAMPLE_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_STDDEV_SAMPLE_TOTAL_STAKE_DESC = 'INDEXER_STAKES_STDDEV_SAMPLE_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_SUM_BLOCK_RANGE_ASC = 'INDEXER_STAKES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_SUM_BLOCK_RANGE_DESC = 'INDEXER_STAKES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_SUM_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_SUM_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_SUM_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_SUM_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_SUM_ERA_IDX_ASC = 'INDEXER_STAKES_SUM_ERA_IDX_ASC',\n  INDEXER_STAKES_SUM_ERA_IDX_DESC = 'INDEXER_STAKES_SUM_ERA_IDX_DESC',\n  INDEXER_STAKES_SUM_ERA_ID_ASC = 'INDEXER_STAKES_SUM_ERA_ID_ASC',\n  INDEXER_STAKES_SUM_ERA_ID_DESC = 'INDEXER_STAKES_SUM_ERA_ID_DESC',\n  INDEXER_STAKES_SUM_ID_ASC = 'INDEXER_STAKES_SUM_ID_ASC',\n  INDEXER_STAKES_SUM_ID_DESC = 'INDEXER_STAKES_SUM_ID_DESC',\n  INDEXER_STAKES_SUM_INDEXER_ID_ASC = 'INDEXER_STAKES_SUM_INDEXER_ID_ASC',\n  INDEXER_STAKES_SUM_INDEXER_ID_DESC = 'INDEXER_STAKES_SUM_INDEXER_ID_DESC',\n  INDEXER_STAKES_SUM_INDEXER_STAKE_ASC = 'INDEXER_STAKES_SUM_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_SUM_INDEXER_STAKE_DESC = 'INDEXER_STAKES_SUM_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_SUM_TOTAL_STAKE_ASC = 'INDEXER_STAKES_SUM_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_SUM_TOTAL_STAKE_DESC = 'INDEXER_STAKES_SUM_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ERA_ID_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_ERA_ID_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ERA_ID_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_ERA_ID_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_POPULATION_TOTAL_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_POPULATION_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_POPULATION_TOTAL_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_POPULATION_TOTAL_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_DELEGATOR_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_DELEGATOR_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_DELEGATOR_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_DELEGATOR_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ERA_ID_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ERA_ID_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_INDEXER_STAKE_DESC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_TOTAL_STAKE_ASC = 'INDEXER_STAKES_VARIANCE_SAMPLE_TOTAL_STAKE_ASC',\n  INDEXER_STAKES_VARIANCE_SAMPLE_TOTAL_STAKE_DESC = 'INDEXER_STAKES_VARIANCE_SAMPLE_TOTAL_STAKE_DESC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_CREATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_CREATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_ERA_IDX_ASC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_ERA_IDX_DESC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_ID_ASC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_ID_DESC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_UPDATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_UPDATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_WEIGHT_ASC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_WEIGHT_ASC',\n  INDEXER_STAKE_WEIGHTS_AVERAGE_WEIGHT_DESC = 'INDEXER_STAKE_WEIGHTS_AVERAGE_WEIGHT_DESC',\n  INDEXER_STAKE_WEIGHTS_BY_INDEXER_ID__COUNT_ASC = 'INDEXER_STAKE_WEIGHTS_BY_INDEXER_ID__COUNT_ASC',\n  INDEXER_STAKE_WEIGHTS_BY_INDEXER_ID__COUNT_DESC = 'INDEXER_STAKE_WEIGHTS_BY_INDEXER_ID__COUNT_DESC',\n  INDEXER_STAKE_WEIGHTS_COUNT_ASC = 'INDEXER_STAKE_WEIGHTS_COUNT_ASC',\n  INDEXER_STAKE_WEIGHTS_COUNT_DESC = 'INDEXER_STAKE_WEIGHTS_COUNT_DESC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_ID_ASC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_ID_DESC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_WEIGHT_ASC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_WEIGHT_ASC',\n  INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_WEIGHT_DESC = 'INDEXER_STAKE_WEIGHTS_DISTINCT_COUNT_WEIGHT_DESC',\n  INDEXER_STAKE_WEIGHTS_MAX_BLOCK_RANGE_ASC = 'INDEXER_STAKE_WEIGHTS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_WEIGHTS_MAX_BLOCK_RANGE_DESC = 'INDEXER_STAKE_WEIGHTS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_WEIGHTS_MAX_CREATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_MAX_CREATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_MAX_CREATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_MAX_CREATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_MAX_ERA_IDX_ASC = 'INDEXER_STAKE_WEIGHTS_MAX_ERA_IDX_ASC',\n  INDEXER_STAKE_WEIGHTS_MAX_ERA_IDX_DESC = 'INDEXER_STAKE_WEIGHTS_MAX_ERA_IDX_DESC',\n  INDEXER_STAKE_WEIGHTS_MAX_ID_ASC = 'INDEXER_STAKE_WEIGHTS_MAX_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_MAX_ID_DESC = 'INDEXER_STAKE_WEIGHTS_MAX_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_MAX_INDEXER_ID_ASC = 'INDEXER_STAKE_WEIGHTS_MAX_INDEXER_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_MAX_INDEXER_ID_DESC = 'INDEXER_STAKE_WEIGHTS_MAX_INDEXER_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_MAX_UPDATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_MAX_UPDATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_MAX_UPDATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_MAX_UPDATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_MAX_WEIGHT_ASC = 'INDEXER_STAKE_WEIGHTS_MAX_WEIGHT_ASC',\n  INDEXER_STAKE_WEIGHTS_MAX_WEIGHT_DESC = 'INDEXER_STAKE_WEIGHTS_MAX_WEIGHT_DESC',\n  INDEXER_STAKE_WEIGHTS_MIN_BLOCK_RANGE_ASC = 'INDEXER_STAKE_WEIGHTS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_WEIGHTS_MIN_BLOCK_RANGE_DESC = 'INDEXER_STAKE_WEIGHTS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_WEIGHTS_MIN_CREATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_MIN_CREATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_MIN_CREATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_MIN_CREATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_MIN_ERA_IDX_ASC = 'INDEXER_STAKE_WEIGHTS_MIN_ERA_IDX_ASC',\n  INDEXER_STAKE_WEIGHTS_MIN_ERA_IDX_DESC = 'INDEXER_STAKE_WEIGHTS_MIN_ERA_IDX_DESC',\n  INDEXER_STAKE_WEIGHTS_MIN_ID_ASC = 'INDEXER_STAKE_WEIGHTS_MIN_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_MIN_ID_DESC = 'INDEXER_STAKE_WEIGHTS_MIN_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_MIN_INDEXER_ID_ASC = 'INDEXER_STAKE_WEIGHTS_MIN_INDEXER_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_MIN_INDEXER_ID_DESC = 'INDEXER_STAKE_WEIGHTS_MIN_INDEXER_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_MIN_UPDATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_MIN_UPDATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_MIN_UPDATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_MIN_UPDATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_MIN_WEIGHT_ASC = 'INDEXER_STAKE_WEIGHTS_MIN_WEIGHT_ASC',\n  INDEXER_STAKE_WEIGHTS_MIN_WEIGHT_DESC = 'INDEXER_STAKE_WEIGHTS_MIN_WEIGHT_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_ID_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_ID_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_WEIGHT_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_WEIGHT_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_WEIGHT_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_POPULATION_WEIGHT_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_WEIGHT_ASC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_WEIGHT_ASC',\n  INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_WEIGHT_DESC = 'INDEXER_STAKE_WEIGHTS_STDDEV_SAMPLE_WEIGHT_DESC',\n  INDEXER_STAKE_WEIGHTS_SUM_BLOCK_RANGE_ASC = 'INDEXER_STAKE_WEIGHTS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_WEIGHTS_SUM_BLOCK_RANGE_DESC = 'INDEXER_STAKE_WEIGHTS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_WEIGHTS_SUM_CREATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_SUM_CREATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_SUM_CREATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_SUM_CREATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_SUM_ERA_IDX_ASC = 'INDEXER_STAKE_WEIGHTS_SUM_ERA_IDX_ASC',\n  INDEXER_STAKE_WEIGHTS_SUM_ERA_IDX_DESC = 'INDEXER_STAKE_WEIGHTS_SUM_ERA_IDX_DESC',\n  INDEXER_STAKE_WEIGHTS_SUM_ID_ASC = 'INDEXER_STAKE_WEIGHTS_SUM_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_SUM_ID_DESC = 'INDEXER_STAKE_WEIGHTS_SUM_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_SUM_INDEXER_ID_ASC = 'INDEXER_STAKE_WEIGHTS_SUM_INDEXER_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_SUM_INDEXER_ID_DESC = 'INDEXER_STAKE_WEIGHTS_SUM_INDEXER_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_SUM_UPDATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_SUM_UPDATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_SUM_UPDATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_SUM_UPDATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_SUM_WEIGHT_ASC = 'INDEXER_STAKE_WEIGHTS_SUM_WEIGHT_ASC',\n  INDEXER_STAKE_WEIGHTS_SUM_WEIGHT_DESC = 'INDEXER_STAKE_WEIGHTS_SUM_WEIGHT_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_WEIGHT_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_WEIGHT_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_WEIGHT_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_POPULATION_WEIGHT_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_WEIGHT_ASC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_WEIGHT_ASC',\n  INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_WEIGHT_DESC = 'INDEXER_STAKE_WEIGHTS_VARIANCE_SAMPLE_WEIGHT_DESC',\n  LAST_CLAIM_ERA_ASC = 'LAST_CLAIM_ERA_ASC',\n  LAST_CLAIM_ERA_DESC = 'LAST_CLAIM_ERA_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  LAST_SETTLED_ERA_ASC = 'LAST_SETTLED_ERA_ASC',\n  LAST_SETTLED_ERA_DESC = 'LAST_SETTLED_ERA_DESC',\n  MAX_UNSTAKE_AMOUNT_ASC = 'MAX_UNSTAKE_AMOUNT_ASC',\n  MAX_UNSTAKE_AMOUNT_DESC = 'MAX_UNSTAKE_AMOUNT_DESC',\n  METADATA_ASC = 'METADATA_ASC',\n  METADATA_DESC = 'METADATA_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  PROJECTS_AVERAGE_BLOCK_RANGE_ASC = 'PROJECTS_AVERAGE_BLOCK_RANGE_ASC',\n  PROJECTS_AVERAGE_BLOCK_RANGE_DESC = 'PROJECTS_AVERAGE_BLOCK_RANGE_DESC',\n  PROJECTS_AVERAGE_CREATED_BLOCK_ASC = 'PROJECTS_AVERAGE_CREATED_BLOCK_ASC',\n  PROJECTS_AVERAGE_CREATED_BLOCK_DESC = 'PROJECTS_AVERAGE_CREATED_BLOCK_DESC',\n  PROJECTS_AVERAGE_DEPLOYMENT_ID_ASC = 'PROJECTS_AVERAGE_DEPLOYMENT_ID_ASC',\n  PROJECTS_AVERAGE_DEPLOYMENT_ID_DESC = 'PROJECTS_AVERAGE_DEPLOYMENT_ID_DESC',\n  PROJECTS_AVERAGE_ID_ASC = 'PROJECTS_AVERAGE_ID_ASC',\n  PROJECTS_AVERAGE_ID_DESC = 'PROJECTS_AVERAGE_ID_DESC',\n  PROJECTS_AVERAGE_INDEXER_ID_ASC = 'PROJECTS_AVERAGE_INDEXER_ID_ASC',\n  PROJECTS_AVERAGE_INDEXER_ID_DESC = 'PROJECTS_AVERAGE_INDEXER_ID_DESC',\n  PROJECTS_AVERAGE_LAST_EVENT_ASC = 'PROJECTS_AVERAGE_LAST_EVENT_ASC',\n  PROJECTS_AVERAGE_LAST_EVENT_DESC = 'PROJECTS_AVERAGE_LAST_EVENT_DESC',\n  PROJECTS_AVERAGE_STATUS_ASC = 'PROJECTS_AVERAGE_STATUS_ASC',\n  PROJECTS_AVERAGE_STATUS_DESC = 'PROJECTS_AVERAGE_STATUS_DESC',\n  PROJECTS_AVERAGE_TIMESTAMP_ASC = 'PROJECTS_AVERAGE_TIMESTAMP_ASC',\n  PROJECTS_AVERAGE_TIMESTAMP_DESC = 'PROJECTS_AVERAGE_TIMESTAMP_DESC',\n  PROJECTS_COUNT_ASC = 'PROJECTS_COUNT_ASC',\n  PROJECTS_COUNT_DESC = 'PROJECTS_COUNT_DESC',\n  PROJECTS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'PROJECTS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  PROJECTS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'PROJECTS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  PROJECTS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'PROJECTS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  PROJECTS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'PROJECTS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  PROJECTS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'PROJECTS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  PROJECTS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'PROJECTS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  PROJECTS_DISTINCT_COUNT_ID_ASC = 'PROJECTS_DISTINCT_COUNT_ID_ASC',\n  PROJECTS_DISTINCT_COUNT_ID_DESC = 'PROJECTS_DISTINCT_COUNT_ID_DESC',\n  PROJECTS_DISTINCT_COUNT_INDEXER_ID_ASC = 'PROJECTS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  PROJECTS_DISTINCT_COUNT_INDEXER_ID_DESC = 'PROJECTS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  PROJECTS_DISTINCT_COUNT_LAST_EVENT_ASC = 'PROJECTS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  PROJECTS_DISTINCT_COUNT_LAST_EVENT_DESC = 'PROJECTS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  PROJECTS_DISTINCT_COUNT_STATUS_ASC = 'PROJECTS_DISTINCT_COUNT_STATUS_ASC',\n  PROJECTS_DISTINCT_COUNT_STATUS_DESC = 'PROJECTS_DISTINCT_COUNT_STATUS_DESC',\n  PROJECTS_DISTINCT_COUNT_TIMESTAMP_ASC = 'PROJECTS_DISTINCT_COUNT_TIMESTAMP_ASC',\n  PROJECTS_DISTINCT_COUNT_TIMESTAMP_DESC = 'PROJECTS_DISTINCT_COUNT_TIMESTAMP_DESC',\n  PROJECTS_MAX_BLOCK_RANGE_ASC = 'PROJECTS_MAX_BLOCK_RANGE_ASC',\n  PROJECTS_MAX_BLOCK_RANGE_DESC = 'PROJECTS_MAX_BLOCK_RANGE_DESC',\n  PROJECTS_MAX_CREATED_BLOCK_ASC = 'PROJECTS_MAX_CREATED_BLOCK_ASC',\n  PROJECTS_MAX_CREATED_BLOCK_DESC = 'PROJECTS_MAX_CREATED_BLOCK_DESC',\n  PROJECTS_MAX_DEPLOYMENT_ID_ASC = 'PROJECTS_MAX_DEPLOYMENT_ID_ASC',\n  PROJECTS_MAX_DEPLOYMENT_ID_DESC = 'PROJECTS_MAX_DEPLOYMENT_ID_DESC',\n  PROJECTS_MAX_ID_ASC = 'PROJECTS_MAX_ID_ASC',\n  PROJECTS_MAX_ID_DESC = 'PROJECTS_MAX_ID_DESC',\n  PROJECTS_MAX_INDEXER_ID_ASC = 'PROJECTS_MAX_INDEXER_ID_ASC',\n  PROJECTS_MAX_INDEXER_ID_DESC = 'PROJECTS_MAX_INDEXER_ID_DESC',\n  PROJECTS_MAX_LAST_EVENT_ASC = 'PROJECTS_MAX_LAST_EVENT_ASC',\n  PROJECTS_MAX_LAST_EVENT_DESC = 'PROJECTS_MAX_LAST_EVENT_DESC',\n  PROJECTS_MAX_STATUS_ASC = 'PROJECTS_MAX_STATUS_ASC',\n  PROJECTS_MAX_STATUS_DESC = 'PROJECTS_MAX_STATUS_DESC',\n  PROJECTS_MAX_TIMESTAMP_ASC = 'PROJECTS_MAX_TIMESTAMP_ASC',\n  PROJECTS_MAX_TIMESTAMP_DESC = 'PROJECTS_MAX_TIMESTAMP_DESC',\n  PROJECTS_MIN_BLOCK_RANGE_ASC = 'PROJECTS_MIN_BLOCK_RANGE_ASC',\n  PROJECTS_MIN_BLOCK_RANGE_DESC = 'PROJECTS_MIN_BLOCK_RANGE_DESC',\n  PROJECTS_MIN_CREATED_BLOCK_ASC = 'PROJECTS_MIN_CREATED_BLOCK_ASC',\n  PROJECTS_MIN_CREATED_BLOCK_DESC = 'PROJECTS_MIN_CREATED_BLOCK_DESC',\n  PROJECTS_MIN_DEPLOYMENT_ID_ASC = 'PROJECTS_MIN_DEPLOYMENT_ID_ASC',\n  PROJECTS_MIN_DEPLOYMENT_ID_DESC = 'PROJECTS_MIN_DEPLOYMENT_ID_DESC',\n  PROJECTS_MIN_ID_ASC = 'PROJECTS_MIN_ID_ASC',\n  PROJECTS_MIN_ID_DESC = 'PROJECTS_MIN_ID_DESC',\n  PROJECTS_MIN_INDEXER_ID_ASC = 'PROJECTS_MIN_INDEXER_ID_ASC',\n  PROJECTS_MIN_INDEXER_ID_DESC = 'PROJECTS_MIN_INDEXER_ID_DESC',\n  PROJECTS_MIN_LAST_EVENT_ASC = 'PROJECTS_MIN_LAST_EVENT_ASC',\n  PROJECTS_MIN_LAST_EVENT_DESC = 'PROJECTS_MIN_LAST_EVENT_DESC',\n  PROJECTS_MIN_STATUS_ASC = 'PROJECTS_MIN_STATUS_ASC',\n  PROJECTS_MIN_STATUS_DESC = 'PROJECTS_MIN_STATUS_DESC',\n  PROJECTS_MIN_TIMESTAMP_ASC = 'PROJECTS_MIN_TIMESTAMP_ASC',\n  PROJECTS_MIN_TIMESTAMP_DESC = 'PROJECTS_MIN_TIMESTAMP_DESC',\n  PROJECTS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'PROJECTS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  PROJECTS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'PROJECTS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  PROJECTS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'PROJECTS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  PROJECTS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'PROJECTS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  PROJECTS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'PROJECTS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  PROJECTS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'PROJECTS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  PROJECTS_STDDEV_POPULATION_ID_ASC = 'PROJECTS_STDDEV_POPULATION_ID_ASC',\n  PROJECTS_STDDEV_POPULATION_ID_DESC = 'PROJECTS_STDDEV_POPULATION_ID_DESC',\n  PROJECTS_STDDEV_POPULATION_INDEXER_ID_ASC = 'PROJECTS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  PROJECTS_STDDEV_POPULATION_INDEXER_ID_DESC = 'PROJECTS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  PROJECTS_STDDEV_POPULATION_LAST_EVENT_ASC = 'PROJECTS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  PROJECTS_STDDEV_POPULATION_LAST_EVENT_DESC = 'PROJECTS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  PROJECTS_STDDEV_POPULATION_STATUS_ASC = 'PROJECTS_STDDEV_POPULATION_STATUS_ASC',\n  PROJECTS_STDDEV_POPULATION_STATUS_DESC = 'PROJECTS_STDDEV_POPULATION_STATUS_DESC',\n  PROJECTS_STDDEV_POPULATION_TIMESTAMP_ASC = 'PROJECTS_STDDEV_POPULATION_TIMESTAMP_ASC',\n  PROJECTS_STDDEV_POPULATION_TIMESTAMP_DESC = 'PROJECTS_STDDEV_POPULATION_TIMESTAMP_DESC',\n  PROJECTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'PROJECTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  PROJECTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'PROJECTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  PROJECTS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'PROJECTS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  PROJECTS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'PROJECTS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  PROJECTS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'PROJECTS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  PROJECTS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'PROJECTS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  PROJECTS_STDDEV_SAMPLE_ID_ASC = 'PROJECTS_STDDEV_SAMPLE_ID_ASC',\n  PROJECTS_STDDEV_SAMPLE_ID_DESC = 'PROJECTS_STDDEV_SAMPLE_ID_DESC',\n  PROJECTS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'PROJECTS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  PROJECTS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'PROJECTS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  PROJECTS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'PROJECTS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  PROJECTS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'PROJECTS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  PROJECTS_STDDEV_SAMPLE_STATUS_ASC = 'PROJECTS_STDDEV_SAMPLE_STATUS_ASC',\n  PROJECTS_STDDEV_SAMPLE_STATUS_DESC = 'PROJECTS_STDDEV_SAMPLE_STATUS_DESC',\n  PROJECTS_STDDEV_SAMPLE_TIMESTAMP_ASC = 'PROJECTS_STDDEV_SAMPLE_TIMESTAMP_ASC',\n  PROJECTS_STDDEV_SAMPLE_TIMESTAMP_DESC = 'PROJECTS_STDDEV_SAMPLE_TIMESTAMP_DESC',\n  PROJECTS_SUM_BLOCK_RANGE_ASC = 'PROJECTS_SUM_BLOCK_RANGE_ASC',\n  PROJECTS_SUM_BLOCK_RANGE_DESC = 'PROJECTS_SUM_BLOCK_RANGE_DESC',\n  PROJECTS_SUM_CREATED_BLOCK_ASC = 'PROJECTS_SUM_CREATED_BLOCK_ASC',\n  PROJECTS_SUM_CREATED_BLOCK_DESC = 'PROJECTS_SUM_CREATED_BLOCK_DESC',\n  PROJECTS_SUM_DEPLOYMENT_ID_ASC = 'PROJECTS_SUM_DEPLOYMENT_ID_ASC',\n  PROJECTS_SUM_DEPLOYMENT_ID_DESC = 'PROJECTS_SUM_DEPLOYMENT_ID_DESC',\n  PROJECTS_SUM_ID_ASC = 'PROJECTS_SUM_ID_ASC',\n  PROJECTS_SUM_ID_DESC = 'PROJECTS_SUM_ID_DESC',\n  PROJECTS_SUM_INDEXER_ID_ASC = 'PROJECTS_SUM_INDEXER_ID_ASC',\n  PROJECTS_SUM_INDEXER_ID_DESC = 'PROJECTS_SUM_INDEXER_ID_DESC',\n  PROJECTS_SUM_LAST_EVENT_ASC = 'PROJECTS_SUM_LAST_EVENT_ASC',\n  PROJECTS_SUM_LAST_EVENT_DESC = 'PROJECTS_SUM_LAST_EVENT_DESC',\n  PROJECTS_SUM_STATUS_ASC = 'PROJECTS_SUM_STATUS_ASC',\n  PROJECTS_SUM_STATUS_DESC = 'PROJECTS_SUM_STATUS_DESC',\n  PROJECTS_SUM_TIMESTAMP_ASC = 'PROJECTS_SUM_TIMESTAMP_ASC',\n  PROJECTS_SUM_TIMESTAMP_DESC = 'PROJECTS_SUM_TIMESTAMP_DESC',\n  PROJECTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'PROJECTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  PROJECTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'PROJECTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  PROJECTS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'PROJECTS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  PROJECTS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'PROJECTS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  PROJECTS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'PROJECTS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  PROJECTS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'PROJECTS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  PROJECTS_VARIANCE_POPULATION_ID_ASC = 'PROJECTS_VARIANCE_POPULATION_ID_ASC',\n  PROJECTS_VARIANCE_POPULATION_ID_DESC = 'PROJECTS_VARIANCE_POPULATION_ID_DESC',\n  PROJECTS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'PROJECTS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  PROJECTS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'PROJECTS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  PROJECTS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'PROJECTS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  PROJECTS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'PROJECTS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  PROJECTS_VARIANCE_POPULATION_STATUS_ASC = 'PROJECTS_VARIANCE_POPULATION_STATUS_ASC',\n  PROJECTS_VARIANCE_POPULATION_STATUS_DESC = 'PROJECTS_VARIANCE_POPULATION_STATUS_DESC',\n  PROJECTS_VARIANCE_POPULATION_TIMESTAMP_ASC = 'PROJECTS_VARIANCE_POPULATION_TIMESTAMP_ASC',\n  PROJECTS_VARIANCE_POPULATION_TIMESTAMP_DESC = 'PROJECTS_VARIANCE_POPULATION_TIMESTAMP_DESC',\n  PROJECTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'PROJECTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  PROJECTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'PROJECTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  PROJECTS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'PROJECTS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  PROJECTS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'PROJECTS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  PROJECTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'PROJECTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  PROJECTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'PROJECTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  PROJECTS_VARIANCE_SAMPLE_ID_ASC = 'PROJECTS_VARIANCE_SAMPLE_ID_ASC',\n  PROJECTS_VARIANCE_SAMPLE_ID_DESC = 'PROJECTS_VARIANCE_SAMPLE_ID_DESC',\n  PROJECTS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'PROJECTS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  PROJECTS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'PROJECTS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  PROJECTS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'PROJECTS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  PROJECTS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'PROJECTS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  PROJECTS_VARIANCE_SAMPLE_STATUS_ASC = 'PROJECTS_VARIANCE_SAMPLE_STATUS_ASC',\n  PROJECTS_VARIANCE_SAMPLE_STATUS_DESC = 'PROJECTS_VARIANCE_SAMPLE_STATUS_DESC',\n  PROJECTS_VARIANCE_SAMPLE_TIMESTAMP_ASC = 'PROJECTS_VARIANCE_SAMPLE_TIMESTAMP_ASC',\n  PROJECTS_VARIANCE_SAMPLE_TIMESTAMP_DESC = 'PROJECTS_VARIANCE_SAMPLE_TIMESTAMP_DESC',\n  REWARDS_AVERAGE_AMOUNT_ASC = 'REWARDS_AVERAGE_AMOUNT_ASC',\n  REWARDS_AVERAGE_AMOUNT_DESC = 'REWARDS_AVERAGE_AMOUNT_DESC',\n  REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  REWARDS_AVERAGE_CREATED_BLOCK_ASC = 'REWARDS_AVERAGE_CREATED_BLOCK_ASC',\n  REWARDS_AVERAGE_CREATED_BLOCK_DESC = 'REWARDS_AVERAGE_CREATED_BLOCK_DESC',\n  REWARDS_AVERAGE_ERA_IDX_ASC = 'REWARDS_AVERAGE_ERA_IDX_ASC',\n  REWARDS_AVERAGE_ERA_IDX_DESC = 'REWARDS_AVERAGE_ERA_IDX_DESC',\n  REWARDS_AVERAGE_ERA_ID_ASC = 'REWARDS_AVERAGE_ERA_ID_ASC',\n  REWARDS_AVERAGE_ERA_ID_DESC = 'REWARDS_AVERAGE_ERA_ID_DESC',\n  REWARDS_AVERAGE_ID_ASC = 'REWARDS_AVERAGE_ID_ASC',\n  REWARDS_AVERAGE_ID_DESC = 'REWARDS_AVERAGE_ID_DESC',\n  REWARDS_AVERAGE_INDEXER_ID_ASC = 'REWARDS_AVERAGE_INDEXER_ID_ASC',\n  REWARDS_AVERAGE_INDEXER_ID_DESC = 'REWARDS_AVERAGE_INDEXER_ID_DESC',\n  REWARDS_AVERAGE_LAST_EVENT_ASC = 'REWARDS_AVERAGE_LAST_EVENT_ASC',\n  REWARDS_AVERAGE_LAST_EVENT_DESC = 'REWARDS_AVERAGE_LAST_EVENT_DESC',\n  REWARDS_COUNT_ASC = 'REWARDS_COUNT_ASC',\n  REWARDS_COUNT_DESC = 'REWARDS_COUNT_DESC',\n  REWARDS_DISTINCT_COUNT_AMOUNT_ASC = 'REWARDS_DISTINCT_COUNT_AMOUNT_ASC',\n  REWARDS_DISTINCT_COUNT_AMOUNT_DESC = 'REWARDS_DISTINCT_COUNT_AMOUNT_DESC',\n  REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'REWARDS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'REWARDS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  REWARDS_DISTINCT_COUNT_ERA_IDX_ASC = 'REWARDS_DISTINCT_COUNT_ERA_IDX_ASC',\n  REWARDS_DISTINCT_COUNT_ERA_IDX_DESC = 'REWARDS_DISTINCT_COUNT_ERA_IDX_DESC',\n  REWARDS_DISTINCT_COUNT_ERA_ID_ASC = 'REWARDS_DISTINCT_COUNT_ERA_ID_ASC',\n  REWARDS_DISTINCT_COUNT_ERA_ID_DESC = 'REWARDS_DISTINCT_COUNT_ERA_ID_DESC',\n  REWARDS_DISTINCT_COUNT_ID_ASC = 'REWARDS_DISTINCT_COUNT_ID_ASC',\n  REWARDS_DISTINCT_COUNT_ID_DESC = 'REWARDS_DISTINCT_COUNT_ID_DESC',\n  REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC = 'REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC = 'REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  REWARDS_DISTINCT_COUNT_LAST_EVENT_ASC = 'REWARDS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  REWARDS_DISTINCT_COUNT_LAST_EVENT_DESC = 'REWARDS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  REWARDS_MAX_AMOUNT_ASC = 'REWARDS_MAX_AMOUNT_ASC',\n  REWARDS_MAX_AMOUNT_DESC = 'REWARDS_MAX_AMOUNT_DESC',\n  REWARDS_MAX_BLOCK_RANGE_ASC = 'REWARDS_MAX_BLOCK_RANGE_ASC',\n  REWARDS_MAX_BLOCK_RANGE_DESC = 'REWARDS_MAX_BLOCK_RANGE_DESC',\n  REWARDS_MAX_CREATED_BLOCK_ASC = 'REWARDS_MAX_CREATED_BLOCK_ASC',\n  REWARDS_MAX_CREATED_BLOCK_DESC = 'REWARDS_MAX_CREATED_BLOCK_DESC',\n  REWARDS_MAX_ERA_IDX_ASC = 'REWARDS_MAX_ERA_IDX_ASC',\n  REWARDS_MAX_ERA_IDX_DESC = 'REWARDS_MAX_ERA_IDX_DESC',\n  REWARDS_MAX_ERA_ID_ASC = 'REWARDS_MAX_ERA_ID_ASC',\n  REWARDS_MAX_ERA_ID_DESC = 'REWARDS_MAX_ERA_ID_DESC',\n  REWARDS_MAX_ID_ASC = 'REWARDS_MAX_ID_ASC',\n  REWARDS_MAX_ID_DESC = 'REWARDS_MAX_ID_DESC',\n  REWARDS_MAX_INDEXER_ID_ASC = 'REWARDS_MAX_INDEXER_ID_ASC',\n  REWARDS_MAX_INDEXER_ID_DESC = 'REWARDS_MAX_INDEXER_ID_DESC',\n  REWARDS_MAX_LAST_EVENT_ASC = 'REWARDS_MAX_LAST_EVENT_ASC',\n  REWARDS_MAX_LAST_EVENT_DESC = 'REWARDS_MAX_LAST_EVENT_DESC',\n  REWARDS_MIN_AMOUNT_ASC = 'REWARDS_MIN_AMOUNT_ASC',\n  REWARDS_MIN_AMOUNT_DESC = 'REWARDS_MIN_AMOUNT_DESC',\n  REWARDS_MIN_BLOCK_RANGE_ASC = 'REWARDS_MIN_BLOCK_RANGE_ASC',\n  REWARDS_MIN_BLOCK_RANGE_DESC = 'REWARDS_MIN_BLOCK_RANGE_DESC',\n  REWARDS_MIN_CREATED_BLOCK_ASC = 'REWARDS_MIN_CREATED_BLOCK_ASC',\n  REWARDS_MIN_CREATED_BLOCK_DESC = 'REWARDS_MIN_CREATED_BLOCK_DESC',\n  REWARDS_MIN_ERA_IDX_ASC = 'REWARDS_MIN_ERA_IDX_ASC',\n  REWARDS_MIN_ERA_IDX_DESC = 'REWARDS_MIN_ERA_IDX_DESC',\n  REWARDS_MIN_ERA_ID_ASC = 'REWARDS_MIN_ERA_ID_ASC',\n  REWARDS_MIN_ERA_ID_DESC = 'REWARDS_MIN_ERA_ID_DESC',\n  REWARDS_MIN_ID_ASC = 'REWARDS_MIN_ID_ASC',\n  REWARDS_MIN_ID_DESC = 'REWARDS_MIN_ID_DESC',\n  REWARDS_MIN_INDEXER_ID_ASC = 'REWARDS_MIN_INDEXER_ID_ASC',\n  REWARDS_MIN_INDEXER_ID_DESC = 'REWARDS_MIN_INDEXER_ID_DESC',\n  REWARDS_MIN_LAST_EVENT_ASC = 'REWARDS_MIN_LAST_EVENT_ASC',\n  REWARDS_MIN_LAST_EVENT_DESC = 'REWARDS_MIN_LAST_EVENT_DESC',\n  REWARDS_STDDEV_POPULATION_AMOUNT_ASC = 'REWARDS_STDDEV_POPULATION_AMOUNT_ASC',\n  REWARDS_STDDEV_POPULATION_AMOUNT_DESC = 'REWARDS_STDDEV_POPULATION_AMOUNT_DESC',\n  REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'REWARDS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'REWARDS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  REWARDS_STDDEV_POPULATION_ERA_IDX_ASC = 'REWARDS_STDDEV_POPULATION_ERA_IDX_ASC',\n  REWARDS_STDDEV_POPULATION_ERA_IDX_DESC = 'REWARDS_STDDEV_POPULATION_ERA_IDX_DESC',\n  REWARDS_STDDEV_POPULATION_ERA_ID_ASC = 'REWARDS_STDDEV_POPULATION_ERA_ID_ASC',\n  REWARDS_STDDEV_POPULATION_ERA_ID_DESC = 'REWARDS_STDDEV_POPULATION_ERA_ID_DESC',\n  REWARDS_STDDEV_POPULATION_ID_ASC = 'REWARDS_STDDEV_POPULATION_ID_ASC',\n  REWARDS_STDDEV_POPULATION_ID_DESC = 'REWARDS_STDDEV_POPULATION_ID_DESC',\n  REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC = 'REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC = 'REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  REWARDS_STDDEV_POPULATION_LAST_EVENT_ASC = 'REWARDS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  REWARDS_STDDEV_POPULATION_LAST_EVENT_DESC = 'REWARDS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  REWARDS_STDDEV_SAMPLE_AMOUNT_ASC = 'REWARDS_STDDEV_SAMPLE_AMOUNT_ASC',\n  REWARDS_STDDEV_SAMPLE_AMOUNT_DESC = 'REWARDS_STDDEV_SAMPLE_AMOUNT_DESC',\n  REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'REWARDS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC = 'REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC = 'REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  REWARDS_STDDEV_SAMPLE_ERA_ID_ASC = 'REWARDS_STDDEV_SAMPLE_ERA_ID_ASC',\n  REWARDS_STDDEV_SAMPLE_ERA_ID_DESC = 'REWARDS_STDDEV_SAMPLE_ERA_ID_DESC',\n  REWARDS_STDDEV_SAMPLE_ID_ASC = 'REWARDS_STDDEV_SAMPLE_ID_ASC',\n  REWARDS_STDDEV_SAMPLE_ID_DESC = 'REWARDS_STDDEV_SAMPLE_ID_DESC',\n  REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  REWARDS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'REWARDS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  REWARDS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'REWARDS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  REWARDS_SUM_AMOUNT_ASC = 'REWARDS_SUM_AMOUNT_ASC',\n  REWARDS_SUM_AMOUNT_DESC = 'REWARDS_SUM_AMOUNT_DESC',\n  REWARDS_SUM_BLOCK_RANGE_ASC = 'REWARDS_SUM_BLOCK_RANGE_ASC',\n  REWARDS_SUM_BLOCK_RANGE_DESC = 'REWARDS_SUM_BLOCK_RANGE_DESC',\n  REWARDS_SUM_CREATED_BLOCK_ASC = 'REWARDS_SUM_CREATED_BLOCK_ASC',\n  REWARDS_SUM_CREATED_BLOCK_DESC = 'REWARDS_SUM_CREATED_BLOCK_DESC',\n  REWARDS_SUM_ERA_IDX_ASC = 'REWARDS_SUM_ERA_IDX_ASC',\n  REWARDS_SUM_ERA_IDX_DESC = 'REWARDS_SUM_ERA_IDX_DESC',\n  REWARDS_SUM_ERA_ID_ASC = 'REWARDS_SUM_ERA_ID_ASC',\n  REWARDS_SUM_ERA_ID_DESC = 'REWARDS_SUM_ERA_ID_DESC',\n  REWARDS_SUM_ID_ASC = 'REWARDS_SUM_ID_ASC',\n  REWARDS_SUM_ID_DESC = 'REWARDS_SUM_ID_DESC',\n  REWARDS_SUM_INDEXER_ID_ASC = 'REWARDS_SUM_INDEXER_ID_ASC',\n  REWARDS_SUM_INDEXER_ID_DESC = 'REWARDS_SUM_INDEXER_ID_DESC',\n  REWARDS_SUM_LAST_EVENT_ASC = 'REWARDS_SUM_LAST_EVENT_ASC',\n  REWARDS_SUM_LAST_EVENT_DESC = 'REWARDS_SUM_LAST_EVENT_DESC',\n  REWARDS_VARIANCE_POPULATION_AMOUNT_ASC = 'REWARDS_VARIANCE_POPULATION_AMOUNT_ASC',\n  REWARDS_VARIANCE_POPULATION_AMOUNT_DESC = 'REWARDS_VARIANCE_POPULATION_AMOUNT_DESC',\n  REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'REWARDS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC = 'REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC = 'REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  REWARDS_VARIANCE_POPULATION_ERA_ID_ASC = 'REWARDS_VARIANCE_POPULATION_ERA_ID_ASC',\n  REWARDS_VARIANCE_POPULATION_ERA_ID_DESC = 'REWARDS_VARIANCE_POPULATION_ERA_ID_DESC',\n  REWARDS_VARIANCE_POPULATION_ID_ASC = 'REWARDS_VARIANCE_POPULATION_ID_ASC',\n  REWARDS_VARIANCE_POPULATION_ID_DESC = 'REWARDS_VARIANCE_POPULATION_ID_DESC',\n  REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  REWARDS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'REWARDS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  REWARDS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'REWARDS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC = 'REWARDS_VARIANCE_SAMPLE_AMOUNT_ASC',\n  REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC = 'REWARDS_VARIANCE_SAMPLE_AMOUNT_DESC',\n  REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'REWARDS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  REWARDS_VARIANCE_SAMPLE_ERA_ID_ASC = 'REWARDS_VARIANCE_SAMPLE_ERA_ID_ASC',\n  REWARDS_VARIANCE_SAMPLE_ERA_ID_DESC = 'REWARDS_VARIANCE_SAMPLE_ERA_ID_DESC',\n  REWARDS_VARIANCE_SAMPLE_ID_ASC = 'REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  REWARDS_VARIANCE_SAMPLE_ID_DESC = 'REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  REWARDS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'REWARDS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  REWARDS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'REWARDS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  SELF_STAKE_ASC = 'SELF_STAKE_ASC',\n  SELF_STAKE_DESC = 'SELF_STAKE_DESC',\n  TOTAL_STAKE_ASC = 'TOTAL_STAKE_ASC',\n  TOTAL_STAKE_DESC = 'TOTAL_STAKE_DESC',\n}\n\n/** A filter to be used against Int fields. All fields are combined with a logical ‘and.’ */\nexport type IntFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<Scalars['Int']['input']>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<Scalars['Int']['input']>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<Scalars['Int']['input']>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['Int']['input']>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<Scalars['Int']['input']>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<Scalars['Int']['input']>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['Int']['input']>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<Scalars['Int']['input']>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<Scalars['Int']['input']>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<Scalars['Int']['input']>>;\n};\n\n/** A filter to be used against JSON fields. All fields are combined with a logical ‘and.’ */\nexport type JsonFilter = {\n  /** Contained by the specified JSON. */\n  readonly containedBy: InputMaybe<Scalars['JSON']['input']>;\n  /** Contains the specified JSON. */\n  readonly contains: InputMaybe<Scalars['JSON']['input']>;\n  /** Contains all of the specified keys. */\n  readonly containsAllKeys: InputMaybe<ReadonlyArray<Scalars['String']['input']>>;\n  /** Contains any of the specified keys. */\n  readonly containsAnyKeys: InputMaybe<ReadonlyArray<Scalars['String']['input']>>;\n  /** Contains the specified key. */\n  readonly containsKey: InputMaybe<Scalars['String']['input']>;\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<Scalars['JSON']['input']>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<Scalars['JSON']['input']>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<Scalars['JSON']['input']>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['JSON']['input']>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<Scalars['JSON']['input']>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<Scalars['JSON']['input']>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['JSON']['input']>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<Scalars['JSON']['input']>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<Scalars['JSON']['input']>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<Scalars['JSON']['input']>>;\n};\n\n/** An object with a globally unique `ID`. */\nexport type Node = {\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\n/** Options for ordering null values in a specific direction. */\nexport enum NullOrder {\n  /** Order null values first. */\n  NULLS_FIRST = 'NULLS_FIRST',\n  /** Order null values last. */\n  NULLS_LAST = 'NULLS_LAST',\n}\n\nexport type Offer = Node & {\n  readonly __typename: 'Offer';\n  readonly accepted: Scalars['Int']['output'];\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: AcceptedOffersConnection;\n  readonly consumer: Scalars['String']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Reads a single `Deployment` that is related to this `Offer`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly deposit: Scalars['BigFloat']['output'];\n  readonly expireDate: Scalars['Datetime']['output'];\n  readonly id: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByAcceptedOfferOfferIdAndIndexerId: OfferIndexersByAcceptedOfferOfferIdAndIndexerIdManyToManyConnection;\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  readonly limit: Scalars['Int']['output'];\n  readonly minimumAcceptHeight: Scalars['BigFloat']['output'];\n  readonly minimumStakingAmount: Scalars['BigFloat']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `PlanTemplate` that is related to this `Offer`. */\n  readonly planTemplate: Maybe<PlanTemplate>;\n  readonly planTemplateId: Scalars['String']['output'];\n  readonly reachLimit: Scalars['Boolean']['output'];\n  /** Reads and enables pagination through a set of `ServiceAgreement`. */\n  readonly serviceAgreementsByAcceptedOfferOfferIdAndServiceAgreementId: OfferServiceAgreementsByAcceptedOfferOfferIdAndServiceAgreementIdManyToManyConnection;\n  readonly withdrawPenalty: Maybe<Scalars['BigFloat']['output']>;\n  readonly withdrawn: Scalars['Boolean']['output'];\n};\n\nexport type OfferAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type OfferIndexersByAcceptedOfferOfferIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type OfferServiceAgreementsByAcceptedOfferOfferIdAndServiceAgreementIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Service_Agreements_Distinct_Enum>>>;\n  filter: InputMaybe<ServiceAgreementFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ServiceAgreementsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type OfferAggregates = {\n  readonly __typename: 'OfferAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<OfferAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<OfferDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<OfferMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<OfferMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<OfferStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<OfferStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<OfferSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<OfferVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<OfferVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `Offer` object types. */\nexport type OfferAggregatesFilter = {\n  /** Mean average aggregate over matching `Offer` objects. */\n  readonly average: InputMaybe<OfferAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `Offer` objects. */\n  readonly distinctCount: InputMaybe<OfferDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `Offer` object to be included within the aggregate. */\n  readonly filter: InputMaybe<OfferFilter>;\n  /** Maximum aggregate over matching `Offer` objects. */\n  readonly max: InputMaybe<OfferMaxAggregateFilter>;\n  /** Minimum aggregate over matching `Offer` objects. */\n  readonly min: InputMaybe<OfferMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `Offer` objects. */\n  readonly stddevPopulation: InputMaybe<OfferStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `Offer` objects. */\n  readonly stddevSample: InputMaybe<OfferStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `Offer` objects. */\n  readonly sum: InputMaybe<OfferSumAggregateFilter>;\n  /** Population variance aggregate over matching `Offer` objects. */\n  readonly variancePopulation: InputMaybe<OfferVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `Offer` objects. */\n  readonly varianceSample: InputMaybe<OfferVarianceSampleAggregateFilter>;\n};\n\nexport type OfferAverageAggregateFilter = {\n  readonly accepted: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly deposit: InputMaybe<BigFloatFilter>;\n  readonly limit: InputMaybe<BigFloatFilter>;\n  readonly minimumAcceptHeight: InputMaybe<BigFloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<BigFloatFilter>;\n  readonly withdrawPenalty: InputMaybe<BigFloatFilter>;\n};\n\nexport type OfferAverageAggregates = {\n  readonly __typename: 'OfferAverageAggregates';\n  /** Mean average of accepted across the matching connection */\n  readonly accepted: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of deposit across the matching connection */\n  readonly deposit: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of limit across the matching connection */\n  readonly limit: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of minimumAcceptHeight across the matching connection */\n  readonly minimumAcceptHeight: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of minimumStakingAmount across the matching connection */\n  readonly minimumStakingAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of withdrawPenalty across the matching connection */\n  readonly withdrawPenalty: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OfferDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly accepted: InputMaybe<BigIntFilter>;\n  readonly consumer: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly deposit: InputMaybe<BigIntFilter>;\n  readonly expireDate: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n  readonly limit: InputMaybe<BigIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<BigIntFilter>;\n  readonly minimumStakingAmount: InputMaybe<BigIntFilter>;\n  readonly planTemplateId: InputMaybe<BigIntFilter>;\n  readonly reachLimit: InputMaybe<BigIntFilter>;\n  readonly withdrawPenalty: InputMaybe<BigIntFilter>;\n  readonly withdrawn: InputMaybe<BigIntFilter>;\n};\n\nexport type OfferDistinctCountAggregates = {\n  readonly __typename: 'OfferDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of accepted across the matching connection */\n  readonly accepted: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of consumer across the matching connection */\n  readonly consumer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deposit across the matching connection */\n  readonly deposit: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of expireDate across the matching connection */\n  readonly expireDate: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of limit across the matching connection */\n  readonly limit: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of minimumAcceptHeight across the matching connection */\n  readonly minimumAcceptHeight: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of minimumStakingAmount across the matching connection */\n  readonly minimumStakingAmount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of planTemplateId across the matching connection */\n  readonly planTemplateId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of reachLimit across the matching connection */\n  readonly reachLimit: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of withdrawPenalty across the matching connection */\n  readonly withdrawPenalty: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of withdrawn across the matching connection */\n  readonly withdrawn: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Offer` object types. All fields are combined with a logical ‘and.’ */\nexport type OfferFilter = {\n  /** Filter by the object’s `accepted` field. */\n  readonly accepted: InputMaybe<IntFilter>;\n  /** Filter by the object’s `acceptedOffers` relation. */\n  readonly acceptedOffers: InputMaybe<OfferToManyAcceptedOfferFilter>;\n  /** Some related `acceptedOffers` exist. */\n  readonly acceptedOffersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<OfferFilter>>;\n  /** Filter by the object’s `consumer` field. */\n  readonly consumer: InputMaybe<StringFilter>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `deposit` field. */\n  readonly deposit: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `expireDate` field. */\n  readonly expireDate: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Filter by the object’s `limit` field. */\n  readonly limit: InputMaybe<IntFilter>;\n  /** Filter by the object’s `minimumAcceptHeight` field. */\n  readonly minimumAcceptHeight: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `minimumStakingAmount` field. */\n  readonly minimumStakingAmount: InputMaybe<BigFloatFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<OfferFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<OfferFilter>>;\n  /** Filter by the object’s `planTemplate` relation. */\n  readonly planTemplate: InputMaybe<PlanTemplateFilter>;\n  /** Filter by the object’s `planTemplateId` field. */\n  readonly planTemplateId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `reachLimit` field. */\n  readonly reachLimit: InputMaybe<BooleanFilter>;\n  /** Filter by the object’s `withdrawPenalty` field. */\n  readonly withdrawPenalty: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `withdrawn` field. */\n  readonly withdrawn: InputMaybe<BooleanFilter>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `AcceptedOffer`. */\nexport type OfferIndexersByAcceptedOfferOfferIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'OfferIndexersByAcceptedOfferOfferIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `AcceptedOffer`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<OfferIndexersByAcceptedOfferOfferIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `AcceptedOffer`. */\nexport type OfferIndexersByAcceptedOfferOfferIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `AcceptedOffer`. */\nexport type OfferIndexersByAcceptedOfferOfferIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'OfferIndexersByAcceptedOfferOfferIdAndIndexerIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: AcceptedOffersConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `AcceptedOffer`. */\nexport type OfferIndexersByAcceptedOfferOfferIdAndIndexerIdManyToManyEdgeAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type OfferMaxAggregateFilter = {\n  readonly accepted: InputMaybe<IntFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly deposit: InputMaybe<BigFloatFilter>;\n  readonly limit: InputMaybe<IntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<BigFloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<BigFloatFilter>;\n  readonly withdrawPenalty: InputMaybe<BigFloatFilter>;\n};\n\nexport type OfferMaxAggregates = {\n  readonly __typename: 'OfferMaxAggregates';\n  /** Maximum of accepted across the matching connection */\n  readonly accepted: Maybe<Scalars['Int']['output']>;\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of deposit across the matching connection */\n  readonly deposit: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of limit across the matching connection */\n  readonly limit: Maybe<Scalars['Int']['output']>;\n  /** Maximum of minimumAcceptHeight across the matching connection */\n  readonly minimumAcceptHeight: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of minimumStakingAmount across the matching connection */\n  readonly minimumStakingAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of withdrawPenalty across the matching connection */\n  readonly withdrawPenalty: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OfferMinAggregateFilter = {\n  readonly accepted: InputMaybe<IntFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly deposit: InputMaybe<BigFloatFilter>;\n  readonly limit: InputMaybe<IntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<BigFloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<BigFloatFilter>;\n  readonly withdrawPenalty: InputMaybe<BigFloatFilter>;\n};\n\nexport type OfferMinAggregates = {\n  readonly __typename: 'OfferMinAggregates';\n  /** Minimum of accepted across the matching connection */\n  readonly accepted: Maybe<Scalars['Int']['output']>;\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of deposit across the matching connection */\n  readonly deposit: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of limit across the matching connection */\n  readonly limit: Maybe<Scalars['Int']['output']>;\n  /** Minimum of minimumAcceptHeight across the matching connection */\n  readonly minimumAcceptHeight: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of minimumStakingAmount across the matching connection */\n  readonly minimumStakingAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of withdrawPenalty across the matching connection */\n  readonly withdrawPenalty: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `ServiceAgreement` values, with data from `AcceptedOffer`. */\nexport type OfferServiceAgreementsByAcceptedOfferOfferIdAndServiceAgreementIdManyToManyConnection = {\n  readonly __typename: 'OfferServiceAgreementsByAcceptedOfferOfferIdAndServiceAgreementIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ServiceAgreementAggregates>;\n  /** A list of edges which contains the `ServiceAgreement`, info from the `AcceptedOffer`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<OfferServiceAgreementsByAcceptedOfferOfferIdAndServiceAgreementIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ServiceAgreementAggregates>>;\n  /** A list of `ServiceAgreement` objects. */\n  readonly nodes: ReadonlyArray<Maybe<ServiceAgreement>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `ServiceAgreement` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `ServiceAgreement` values, with data from `AcceptedOffer`. */\nexport type OfferServiceAgreementsByAcceptedOfferOfferIdAndServiceAgreementIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<ServiceAgreementsGroupBy>;\n    having: InputMaybe<ServiceAgreementsHavingInput>;\n  };\n\n/** A `ServiceAgreement` edge in the connection, with data from `AcceptedOffer`. */\nexport type OfferServiceAgreementsByAcceptedOfferOfferIdAndServiceAgreementIdManyToManyEdge = {\n  readonly __typename: 'OfferServiceAgreementsByAcceptedOfferOfferIdAndServiceAgreementIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: AcceptedOffersConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `ServiceAgreement` at the end of the edge. */\n  readonly node: Maybe<ServiceAgreement>;\n};\n\n/** A `ServiceAgreement` edge in the connection, with data from `AcceptedOffer`. */\nexport type OfferServiceAgreementsByAcceptedOfferOfferIdAndServiceAgreementIdManyToManyEdgeAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type OfferStddevPopulationAggregateFilter = {\n  readonly accepted: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly deposit: InputMaybe<BigFloatFilter>;\n  readonly limit: InputMaybe<BigFloatFilter>;\n  readonly minimumAcceptHeight: InputMaybe<BigFloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<BigFloatFilter>;\n  readonly withdrawPenalty: InputMaybe<BigFloatFilter>;\n};\n\nexport type OfferStddevPopulationAggregates = {\n  readonly __typename: 'OfferStddevPopulationAggregates';\n  /** Population standard deviation of accepted across the matching connection */\n  readonly accepted: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of deposit across the matching connection */\n  readonly deposit: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of limit across the matching connection */\n  readonly limit: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of minimumAcceptHeight across the matching connection */\n  readonly minimumAcceptHeight: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of minimumStakingAmount across the matching connection */\n  readonly minimumStakingAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of withdrawPenalty across the matching connection */\n  readonly withdrawPenalty: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OfferStddevSampleAggregateFilter = {\n  readonly accepted: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly deposit: InputMaybe<BigFloatFilter>;\n  readonly limit: InputMaybe<BigFloatFilter>;\n  readonly minimumAcceptHeight: InputMaybe<BigFloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<BigFloatFilter>;\n  readonly withdrawPenalty: InputMaybe<BigFloatFilter>;\n};\n\nexport type OfferStddevSampleAggregates = {\n  readonly __typename: 'OfferStddevSampleAggregates';\n  /** Sample standard deviation of accepted across the matching connection */\n  readonly accepted: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of deposit across the matching connection */\n  readonly deposit: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of limit across the matching connection */\n  readonly limit: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of minimumAcceptHeight across the matching connection */\n  readonly minimumAcceptHeight: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of minimumStakingAmount across the matching connection */\n  readonly minimumStakingAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of withdrawPenalty across the matching connection */\n  readonly withdrawPenalty: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OfferSumAggregateFilter = {\n  readonly accepted: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly deposit: InputMaybe<BigFloatFilter>;\n  readonly limit: InputMaybe<BigIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<BigFloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<BigFloatFilter>;\n  readonly withdrawPenalty: InputMaybe<BigFloatFilter>;\n};\n\nexport type OfferSumAggregates = {\n  readonly __typename: 'OfferSumAggregates';\n  /** Sum of accepted across the matching connection */\n  readonly accepted: Scalars['BigInt']['output'];\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of deposit across the matching connection */\n  readonly deposit: Scalars['BigFloat']['output'];\n  /** Sum of limit across the matching connection */\n  readonly limit: Scalars['BigInt']['output'];\n  /** Sum of minimumAcceptHeight across the matching connection */\n  readonly minimumAcceptHeight: Scalars['BigFloat']['output'];\n  /** Sum of minimumStakingAmount across the matching connection */\n  readonly minimumStakingAmount: Scalars['BigFloat']['output'];\n  /** Sum of withdrawPenalty across the matching connection */\n  readonly withdrawPenalty: Scalars['BigFloat']['output'];\n};\n\n/** A filter to be used against many `AcceptedOffer` object types. All fields are combined with a logical ‘and.’ */\nexport type OfferToManyAcceptedOfferFilter = {\n  /** Aggregates across related `AcceptedOffer` match the filter criteria. */\n  readonly aggregates: InputMaybe<AcceptedOfferAggregatesFilter>;\n  /** Every related `AcceptedOffer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<AcceptedOfferFilter>;\n  /** No related `AcceptedOffer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<AcceptedOfferFilter>;\n  /** Some related `AcceptedOffer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<AcceptedOfferFilter>;\n};\n\nexport type OfferVariancePopulationAggregateFilter = {\n  readonly accepted: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly deposit: InputMaybe<BigFloatFilter>;\n  readonly limit: InputMaybe<BigFloatFilter>;\n  readonly minimumAcceptHeight: InputMaybe<BigFloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<BigFloatFilter>;\n  readonly withdrawPenalty: InputMaybe<BigFloatFilter>;\n};\n\nexport type OfferVariancePopulationAggregates = {\n  readonly __typename: 'OfferVariancePopulationAggregates';\n  /** Population variance of accepted across the matching connection */\n  readonly accepted: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of deposit across the matching connection */\n  readonly deposit: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of limit across the matching connection */\n  readonly limit: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of minimumAcceptHeight across the matching connection */\n  readonly minimumAcceptHeight: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of minimumStakingAmount across the matching connection */\n  readonly minimumStakingAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of withdrawPenalty across the matching connection */\n  readonly withdrawPenalty: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OfferVarianceSampleAggregateFilter = {\n  readonly accepted: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly deposit: InputMaybe<BigFloatFilter>;\n  readonly limit: InputMaybe<BigFloatFilter>;\n  readonly minimumAcceptHeight: InputMaybe<BigFloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<BigFloatFilter>;\n  readonly withdrawPenalty: InputMaybe<BigFloatFilter>;\n};\n\nexport type OfferVarianceSampleAggregates = {\n  readonly __typename: 'OfferVarianceSampleAggregates';\n  /** Sample variance of accepted across the matching connection */\n  readonly accepted: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of deposit across the matching connection */\n  readonly deposit: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of limit across the matching connection */\n  readonly limit: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of minimumAcceptHeight across the matching connection */\n  readonly minimumAcceptHeight: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of minimumStakingAmount across the matching connection */\n  readonly minimumStakingAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of withdrawPenalty across the matching connection */\n  readonly withdrawPenalty: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Offer` values. */\nexport type OffersConnection = {\n  readonly __typename: 'OffersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<OfferAggregates>;\n  /** A list of edges which contains the `Offer` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<OffersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<OfferAggregates>>;\n  /** A list of `Offer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Offer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Offer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Offer` values. */\nexport type OffersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<OffersGroupBy>;\n  having: InputMaybe<OffersHavingInput>;\n};\n\n/** A `Offer` edge in the connection. */\nexport type OffersEdge = {\n  readonly __typename: 'OffersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Offer` at the end of the edge. */\n  readonly node: Maybe<Offer>;\n};\n\n/** Grouping methods for `Offer` for usage during aggregation. */\nexport enum OffersGroupBy {\n  ACCEPTED = 'ACCEPTED',\n  CONSUMER = 'CONSUMER',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  DEPOSIT = 'DEPOSIT',\n  EXPIRE_DATE = 'EXPIRE_DATE',\n  EXPIRE_DATE_TRUNCATED_TO_DAY = 'EXPIRE_DATE_TRUNCATED_TO_DAY',\n  EXPIRE_DATE_TRUNCATED_TO_HOUR = 'EXPIRE_DATE_TRUNCATED_TO_HOUR',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  LIMIT = 'LIMIT',\n  MINIMUM_ACCEPT_HEIGHT = 'MINIMUM_ACCEPT_HEIGHT',\n  MINIMUM_STAKING_AMOUNT = 'MINIMUM_STAKING_AMOUNT',\n  PLAN_TEMPLATE_ID = 'PLAN_TEMPLATE_ID',\n  REACH_LIMIT = 'REACH_LIMIT',\n  WITHDRAWN = 'WITHDRAWN',\n  WITHDRAW_PENALTY = 'WITHDRAW_PENALTY',\n}\n\nexport type OffersHavingAverageInput = {\n  readonly accepted: InputMaybe<HavingIntFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly deposit: InputMaybe<HavingBigfloatFilter>;\n  readonly expireDate: InputMaybe<HavingDatetimeFilter>;\n  readonly limit: InputMaybe<HavingIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<HavingBigfloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly withdrawPenalty: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type OffersHavingDistinctCountInput = {\n  readonly accepted: InputMaybe<HavingIntFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly deposit: InputMaybe<HavingBigfloatFilter>;\n  readonly expireDate: InputMaybe<HavingDatetimeFilter>;\n  readonly limit: InputMaybe<HavingIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<HavingBigfloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly withdrawPenalty: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `Offer` aggregates. */\nexport type OffersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<OffersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<OffersHavingInput>>;\n  readonly average: InputMaybe<OffersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<OffersHavingDistinctCountInput>;\n  readonly max: InputMaybe<OffersHavingMaxInput>;\n  readonly min: InputMaybe<OffersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<OffersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<OffersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<OffersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<OffersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<OffersHavingVarianceSampleInput>;\n};\n\nexport type OffersHavingMaxInput = {\n  readonly accepted: InputMaybe<HavingIntFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly deposit: InputMaybe<HavingBigfloatFilter>;\n  readonly expireDate: InputMaybe<HavingDatetimeFilter>;\n  readonly limit: InputMaybe<HavingIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<HavingBigfloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly withdrawPenalty: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type OffersHavingMinInput = {\n  readonly accepted: InputMaybe<HavingIntFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly deposit: InputMaybe<HavingBigfloatFilter>;\n  readonly expireDate: InputMaybe<HavingDatetimeFilter>;\n  readonly limit: InputMaybe<HavingIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<HavingBigfloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly withdrawPenalty: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type OffersHavingStddevPopulationInput = {\n  readonly accepted: InputMaybe<HavingIntFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly deposit: InputMaybe<HavingBigfloatFilter>;\n  readonly expireDate: InputMaybe<HavingDatetimeFilter>;\n  readonly limit: InputMaybe<HavingIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<HavingBigfloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly withdrawPenalty: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type OffersHavingStddevSampleInput = {\n  readonly accepted: InputMaybe<HavingIntFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly deposit: InputMaybe<HavingBigfloatFilter>;\n  readonly expireDate: InputMaybe<HavingDatetimeFilter>;\n  readonly limit: InputMaybe<HavingIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<HavingBigfloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly withdrawPenalty: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type OffersHavingSumInput = {\n  readonly accepted: InputMaybe<HavingIntFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly deposit: InputMaybe<HavingBigfloatFilter>;\n  readonly expireDate: InputMaybe<HavingDatetimeFilter>;\n  readonly limit: InputMaybe<HavingIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<HavingBigfloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly withdrawPenalty: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type OffersHavingVariancePopulationInput = {\n  readonly accepted: InputMaybe<HavingIntFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly deposit: InputMaybe<HavingBigfloatFilter>;\n  readonly expireDate: InputMaybe<HavingDatetimeFilter>;\n  readonly limit: InputMaybe<HavingIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<HavingBigfloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly withdrawPenalty: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type OffersHavingVarianceSampleInput = {\n  readonly accepted: InputMaybe<HavingIntFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly deposit: InputMaybe<HavingBigfloatFilter>;\n  readonly expireDate: InputMaybe<HavingDatetimeFilter>;\n  readonly limit: InputMaybe<HavingIntFilter>;\n  readonly minimumAcceptHeight: InputMaybe<HavingBigfloatFilter>;\n  readonly minimumStakingAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly withdrawPenalty: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `Offer`. */\nexport enum OffersOrderBy {\n  ACCEPTED_ASC = 'ACCEPTED_ASC',\n  ACCEPTED_DESC = 'ACCEPTED_DESC',\n  ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_AVERAGE_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_ID_DESC',\n  ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_AVERAGE_OFFER_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_OFFER_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_BY_OFFER_ID__COUNT_ASC = 'ACCEPTED_OFFERS_BY_OFFER_ID__COUNT_ASC',\n  ACCEPTED_OFFERS_BY_OFFER_ID__COUNT_DESC = 'ACCEPTED_OFFERS_BY_OFFER_ID__COUNT_DESC',\n  ACCEPTED_OFFERS_COUNT_ASC = 'ACCEPTED_OFFERS_COUNT_ASC',\n  ACCEPTED_OFFERS_COUNT_DESC = 'ACCEPTED_OFFERS_COUNT_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_ID_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_MAX_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_MAX_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_MAX_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_MAX_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_MAX_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_MAX_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_MAX_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_MAX_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_MAX_ID_ASC = 'ACCEPTED_OFFERS_MAX_ID_ASC',\n  ACCEPTED_OFFERS_MAX_ID_DESC = 'ACCEPTED_OFFERS_MAX_ID_DESC',\n  ACCEPTED_OFFERS_MAX_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_MAX_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_MAX_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_MAX_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_MAX_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_MAX_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_MAX_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_MAX_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_MAX_OFFER_ID_ASC = 'ACCEPTED_OFFERS_MAX_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_MAX_OFFER_ID_DESC = 'ACCEPTED_OFFERS_MAX_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_MIN_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_MIN_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_MIN_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_MIN_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_MIN_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_MIN_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_MIN_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_MIN_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_MIN_ID_ASC = 'ACCEPTED_OFFERS_MIN_ID_ASC',\n  ACCEPTED_OFFERS_MIN_ID_DESC = 'ACCEPTED_OFFERS_MIN_ID_DESC',\n  ACCEPTED_OFFERS_MIN_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_MIN_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_MIN_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_MIN_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_MIN_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_MIN_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_MIN_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_MIN_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_MIN_OFFER_ID_ASC = 'ACCEPTED_OFFERS_MIN_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_MIN_OFFER_ID_DESC = 'ACCEPTED_OFFERS_MIN_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_SUM_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_SUM_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_SUM_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_SUM_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_SUM_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_SUM_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_SUM_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_SUM_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_SUM_ID_ASC = 'ACCEPTED_OFFERS_SUM_ID_ASC',\n  ACCEPTED_OFFERS_SUM_ID_DESC = 'ACCEPTED_OFFERS_SUM_ID_DESC',\n  ACCEPTED_OFFERS_SUM_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_SUM_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_SUM_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_SUM_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_SUM_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_SUM_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_SUM_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_SUM_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_SUM_OFFER_ID_ASC = 'ACCEPTED_OFFERS_SUM_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_SUM_OFFER_ID_DESC = 'ACCEPTED_OFFERS_SUM_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_DESC',\n  CONSUMER_ASC = 'CONSUMER_ASC',\n  CONSUMER_DESC = 'CONSUMER_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  DEPOSIT_ASC = 'DEPOSIT_ASC',\n  DEPOSIT_DESC = 'DEPOSIT_DESC',\n  EXPIRE_DATE_ASC = 'EXPIRE_DATE_ASC',\n  EXPIRE_DATE_DESC = 'EXPIRE_DATE_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  LIMIT_ASC = 'LIMIT_ASC',\n  LIMIT_DESC = 'LIMIT_DESC',\n  MINIMUM_ACCEPT_HEIGHT_ASC = 'MINIMUM_ACCEPT_HEIGHT_ASC',\n  MINIMUM_ACCEPT_HEIGHT_DESC = 'MINIMUM_ACCEPT_HEIGHT_DESC',\n  MINIMUM_STAKING_AMOUNT_ASC = 'MINIMUM_STAKING_AMOUNT_ASC',\n  MINIMUM_STAKING_AMOUNT_DESC = 'MINIMUM_STAKING_AMOUNT_DESC',\n  NATURAL = 'NATURAL',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_DESC',\n  PLAN_TEMPLATE_ID_ASC = 'PLAN_TEMPLATE_ID_ASC',\n  PLAN_TEMPLATE_ID_DESC = 'PLAN_TEMPLATE_ID_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  REACH_LIMIT_ASC = 'REACH_LIMIT_ASC',\n  REACH_LIMIT_DESC = 'REACH_LIMIT_DESC',\n  WITHDRAWN_ASC = 'WITHDRAWN_ASC',\n  WITHDRAWN_DESC = 'WITHDRAWN_DESC',\n  WITHDRAW_PENALTY_ASC = 'WITHDRAW_PENALTY_ASC',\n  WITHDRAW_PENALTY_DESC = 'WITHDRAW_PENALTY_DESC',\n}\n\nexport type Order = Node & {\n  readonly __typename: 'Order';\n  readonly amountGet: Scalars['BigFloat']['output'];\n  readonly amountGive: Scalars['BigFloat']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly sender: Scalars['String']['output'];\n  readonly status: OrderStatus;\n  readonly tokenGet: Scalars['String']['output'];\n  readonly tokenGive: Scalars['String']['output'];\n  readonly tokenGiveBalance: Scalars['BigFloat']['output'];\n  readonly updateAt: Scalars['Datetime']['output'];\n};\n\nexport type OrderAggregates = {\n  readonly __typename: 'OrderAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<OrderAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<OrderDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<OrderMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<OrderMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<OrderStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<OrderStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<OrderSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<OrderVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<OrderVarianceSampleAggregates>;\n};\n\nexport type OrderAverageAggregates = {\n  readonly __typename: 'OrderAverageAggregates';\n  /** Mean average of amountGet across the matching connection */\n  readonly amountGet: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of amountGive across the matching connection */\n  readonly amountGive: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of tokenGiveBalance across the matching connection */\n  readonly tokenGiveBalance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OrderDistinctCountAggregates = {\n  readonly __typename: 'OrderDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amountGet across the matching connection */\n  readonly amountGet: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amountGive across the matching connection */\n  readonly amountGive: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of sender across the matching connection */\n  readonly sender: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of status across the matching connection */\n  readonly status: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of tokenGet across the matching connection */\n  readonly tokenGet: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of tokenGive across the matching connection */\n  readonly tokenGive: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of tokenGiveBalance across the matching connection */\n  readonly tokenGiveBalance: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updateAt across the matching connection */\n  readonly updateAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Order` object types. All fields are combined with a logical ‘and.’ */\nexport type OrderFilter = {\n  /** Filter by the object’s `amountGet` field. */\n  readonly amountGet: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `amountGive` field. */\n  readonly amountGive: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<OrderFilter>>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<OrderFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<OrderFilter>>;\n  /** Filter by the object’s `sender` field. */\n  readonly sender: InputMaybe<StringFilter>;\n  /** Filter by the object’s `status` field. */\n  readonly status: InputMaybe<OrderStatusFilter>;\n  /** Filter by the object’s `tokenGet` field. */\n  readonly tokenGet: InputMaybe<StringFilter>;\n  /** Filter by the object’s `tokenGive` field. */\n  readonly tokenGive: InputMaybe<StringFilter>;\n  /** Filter by the object’s `tokenGiveBalance` field. */\n  readonly tokenGiveBalance: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `updateAt` field. */\n  readonly updateAt: InputMaybe<DatetimeFilter>;\n};\n\nexport type OrderMaxAggregates = {\n  readonly __typename: 'OrderMaxAggregates';\n  /** Maximum of amountGet across the matching connection */\n  readonly amountGet: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of amountGive across the matching connection */\n  readonly amountGive: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of tokenGiveBalance across the matching connection */\n  readonly tokenGiveBalance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OrderMinAggregates = {\n  readonly __typename: 'OrderMinAggregates';\n  /** Minimum of amountGet across the matching connection */\n  readonly amountGet: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of amountGive across the matching connection */\n  readonly amountGive: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of tokenGiveBalance across the matching connection */\n  readonly tokenGiveBalance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport enum OrderStatus {\n  ACTIVE = 'ACTIVE',\n  INACTIVE = 'INACTIVE',\n}\n\n/** A filter to be used against OrderStatus fields. All fields are combined with a logical ‘and.’ */\nexport type OrderStatusFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<OrderStatus>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<OrderStatus>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<OrderStatus>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<OrderStatus>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<OrderStatus>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<OrderStatus>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<OrderStatus>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<OrderStatus>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<OrderStatus>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<OrderStatus>>;\n};\n\nexport type OrderStddevPopulationAggregates = {\n  readonly __typename: 'OrderStddevPopulationAggregates';\n  /** Population standard deviation of amountGet across the matching connection */\n  readonly amountGet: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of amountGive across the matching connection */\n  readonly amountGive: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of tokenGiveBalance across the matching connection */\n  readonly tokenGiveBalance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OrderStddevSampleAggregates = {\n  readonly __typename: 'OrderStddevSampleAggregates';\n  /** Sample standard deviation of amountGet across the matching connection */\n  readonly amountGet: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of amountGive across the matching connection */\n  readonly amountGive: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of tokenGiveBalance across the matching connection */\n  readonly tokenGiveBalance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OrderSumAggregates = {\n  readonly __typename: 'OrderSumAggregates';\n  /** Sum of amountGet across the matching connection */\n  readonly amountGet: Scalars['BigFloat']['output'];\n  /** Sum of amountGive across the matching connection */\n  readonly amountGive: Scalars['BigFloat']['output'];\n  /** Sum of tokenGiveBalance across the matching connection */\n  readonly tokenGiveBalance: Scalars['BigFloat']['output'];\n};\n\nexport enum OrderType {\n  SERVICE_AGREEMENT = 'SERVICE_AGREEMENT',\n  STATE_CHANNEL = 'STATE_CHANNEL',\n  UNKNOWN = 'UNKNOWN',\n}\n\n/** A filter to be used against OrderType fields. All fields are combined with a logical ‘and.’ */\nexport type OrderTypeFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<OrderType>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<OrderType>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<OrderType>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<OrderType>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<OrderType>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<OrderType>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<OrderType>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<OrderType>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<OrderType>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<OrderType>>;\n};\n\nexport type OrderVariancePopulationAggregates = {\n  readonly __typename: 'OrderVariancePopulationAggregates';\n  /** Population variance of amountGet across the matching connection */\n  readonly amountGet: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of amountGive across the matching connection */\n  readonly amountGive: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of tokenGiveBalance across the matching connection */\n  readonly tokenGiveBalance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type OrderVarianceSampleAggregates = {\n  readonly __typename: 'OrderVarianceSampleAggregates';\n  /** Sample variance of amountGet across the matching connection */\n  readonly amountGet: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of amountGive across the matching connection */\n  readonly amountGive: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of tokenGiveBalance across the matching connection */\n  readonly tokenGiveBalance: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Order` values. */\nexport type OrdersConnection = {\n  readonly __typename: 'OrdersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<OrderAggregates>;\n  /** A list of edges which contains the `Order` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<OrdersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<OrderAggregates>>;\n  /** A list of `Order` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Order>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Order` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Order` values. */\nexport type OrdersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<OrdersGroupBy>;\n  having: InputMaybe<OrdersHavingInput>;\n};\n\n/** A `Order` edge in the connection. */\nexport type OrdersEdge = {\n  readonly __typename: 'OrdersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Order` at the end of the edge. */\n  readonly node: Maybe<Order>;\n};\n\n/** Grouping methods for `Order` for usage during aggregation. */\nexport enum OrdersGroupBy {\n  AMOUNT_GET = 'AMOUNT_GET',\n  AMOUNT_GIVE = 'AMOUNT_GIVE',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  ID = 'ID',\n  SENDER = 'SENDER',\n  STATUS = 'STATUS',\n  TOKEN_GET = 'TOKEN_GET',\n  TOKEN_GIVE = 'TOKEN_GIVE',\n  TOKEN_GIVE_BALANCE = 'TOKEN_GIVE_BALANCE',\n  UPDATE_AT = 'UPDATE_AT',\n  UPDATE_AT_TRUNCATED_TO_DAY = 'UPDATE_AT_TRUNCATED_TO_DAY',\n  UPDATE_AT_TRUNCATED_TO_HOUR = 'UPDATE_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type OrdersHavingAverageInput = {\n  readonly amountGet: InputMaybe<HavingBigfloatFilter>;\n  readonly amountGive: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly tokenGiveBalance: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type OrdersHavingDistinctCountInput = {\n  readonly amountGet: InputMaybe<HavingBigfloatFilter>;\n  readonly amountGive: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly tokenGiveBalance: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `Order` aggregates. */\nexport type OrdersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<OrdersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<OrdersHavingInput>>;\n  readonly average: InputMaybe<OrdersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<OrdersHavingDistinctCountInput>;\n  readonly max: InputMaybe<OrdersHavingMaxInput>;\n  readonly min: InputMaybe<OrdersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<OrdersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<OrdersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<OrdersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<OrdersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<OrdersHavingVarianceSampleInput>;\n};\n\nexport type OrdersHavingMaxInput = {\n  readonly amountGet: InputMaybe<HavingBigfloatFilter>;\n  readonly amountGive: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly tokenGiveBalance: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type OrdersHavingMinInput = {\n  readonly amountGet: InputMaybe<HavingBigfloatFilter>;\n  readonly amountGive: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly tokenGiveBalance: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type OrdersHavingStddevPopulationInput = {\n  readonly amountGet: InputMaybe<HavingBigfloatFilter>;\n  readonly amountGive: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly tokenGiveBalance: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type OrdersHavingStddevSampleInput = {\n  readonly amountGet: InputMaybe<HavingBigfloatFilter>;\n  readonly amountGive: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly tokenGiveBalance: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type OrdersHavingSumInput = {\n  readonly amountGet: InputMaybe<HavingBigfloatFilter>;\n  readonly amountGive: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly tokenGiveBalance: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type OrdersHavingVariancePopulationInput = {\n  readonly amountGet: InputMaybe<HavingBigfloatFilter>;\n  readonly amountGive: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly tokenGiveBalance: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type OrdersHavingVarianceSampleInput = {\n  readonly amountGet: InputMaybe<HavingBigfloatFilter>;\n  readonly amountGive: InputMaybe<HavingBigfloatFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n  readonly tokenGiveBalance: InputMaybe<HavingBigfloatFilter>;\n  readonly updateAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `Order`. */\nexport enum OrdersOrderBy {\n  AMOUNT_GET_ASC = 'AMOUNT_GET_ASC',\n  AMOUNT_GET_DESC = 'AMOUNT_GET_DESC',\n  AMOUNT_GIVE_ASC = 'AMOUNT_GIVE_ASC',\n  AMOUNT_GIVE_DESC = 'AMOUNT_GIVE_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  SENDER_ASC = 'SENDER_ASC',\n  SENDER_DESC = 'SENDER_DESC',\n  STATUS_ASC = 'STATUS_ASC',\n  STATUS_DESC = 'STATUS_DESC',\n  TOKEN_GET_ASC = 'TOKEN_GET_ASC',\n  TOKEN_GET_DESC = 'TOKEN_GET_DESC',\n  TOKEN_GIVE_ASC = 'TOKEN_GIVE_ASC',\n  TOKEN_GIVE_BALANCE_ASC = 'TOKEN_GIVE_BALANCE_ASC',\n  TOKEN_GIVE_BALANCE_DESC = 'TOKEN_GIVE_BALANCE_DESC',\n  TOKEN_GIVE_DESC = 'TOKEN_GIVE_DESC',\n  UPDATE_AT_ASC = 'UPDATE_AT_ASC',\n  UPDATE_AT_DESC = 'UPDATE_AT_DESC',\n}\n\n/** Information about pagination in a connection. */\nexport type PageInfo = {\n  readonly __typename: 'PageInfo';\n  /** When paginating forwards, the cursor to continue. */\n  readonly endCursor: Maybe<Scalars['Cursor']['output']>;\n  /** When paginating forwards, are there more items? */\n  readonly hasNextPage: Scalars['Boolean']['output'];\n  /** When paginating backwards, are there more items? */\n  readonly hasPreviousPage: Scalars['Boolean']['output'];\n  /** When paginating backwards, the cursor to continue. */\n  readonly startCursor: Maybe<Scalars['Cursor']['output']>;\n};\n\nexport type Plan = Node & {\n  readonly __typename: 'Plan';\n  readonly active: Scalars['Boolean']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly creator: Scalars['String']['output'];\n  /** Reads a single `Deployment` that is related to this `Plan`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Maybe<Scalars['String']['output']>;\n  readonly id: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `PlanTemplate` that is related to this `Plan`. */\n  readonly planTemplate: Maybe<PlanTemplate>;\n  readonly planTemplateId: Scalars['String']['output'];\n  readonly price: Scalars['BigFloat']['output'];\n};\n\nexport type PlanAggregates = {\n  readonly __typename: 'PlanAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<PlanAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<PlanDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<PlanMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<PlanMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<PlanStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<PlanStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<PlanSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<PlanVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<PlanVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `Plan` object types. */\nexport type PlanAggregatesFilter = {\n  /** Mean average aggregate over matching `Plan` objects. */\n  readonly average: InputMaybe<PlanAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `Plan` objects. */\n  readonly distinctCount: InputMaybe<PlanDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `Plan` object to be included within the aggregate. */\n  readonly filter: InputMaybe<PlanFilter>;\n  /** Maximum aggregate over matching `Plan` objects. */\n  readonly max: InputMaybe<PlanMaxAggregateFilter>;\n  /** Minimum aggregate over matching `Plan` objects. */\n  readonly min: InputMaybe<PlanMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `Plan` objects. */\n  readonly stddevPopulation: InputMaybe<PlanStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `Plan` objects. */\n  readonly stddevSample: InputMaybe<PlanStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `Plan` objects. */\n  readonly sum: InputMaybe<PlanSumAggregateFilter>;\n  /** Population variance aggregate over matching `Plan` objects. */\n  readonly variancePopulation: InputMaybe<PlanVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `Plan` objects. */\n  readonly varianceSample: InputMaybe<PlanVarianceSampleAggregateFilter>;\n};\n\nexport type PlanAverageAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly price: InputMaybe<BigFloatFilter>;\n};\n\nexport type PlanAverageAggregates = {\n  readonly __typename: 'PlanAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly active: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly creator: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n  readonly planTemplateId: InputMaybe<BigIntFilter>;\n  readonly price: InputMaybe<BigIntFilter>;\n};\n\nexport type PlanDistinctCountAggregates = {\n  readonly __typename: 'PlanDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of active across the matching connection */\n  readonly active: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of creator across the matching connection */\n  readonly creator: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of planTemplateId across the matching connection */\n  readonly planTemplateId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of price across the matching connection */\n  readonly price: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Plan` object types. All fields are combined with a logical ‘and.’ */\nexport type PlanFilter = {\n  /** Filter by the object’s `active` field. */\n  readonly active: InputMaybe<BooleanFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<PlanFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `creator` field. */\n  readonly creator: InputMaybe<StringFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** A related `deployment` exists. */\n  readonly deploymentExists: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<PlanFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<PlanFilter>>;\n  /** Filter by the object’s `planTemplate` relation. */\n  readonly planTemplate: InputMaybe<PlanTemplateFilter>;\n  /** Filter by the object’s `planTemplateId` field. */\n  readonly planTemplateId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `price` field. */\n  readonly price: InputMaybe<BigFloatFilter>;\n};\n\nexport type PlanMaxAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly price: InputMaybe<BigFloatFilter>;\n};\n\nexport type PlanMaxAggregates = {\n  readonly __typename: 'PlanMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanMinAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly price: InputMaybe<BigFloatFilter>;\n};\n\nexport type PlanMinAggregates = {\n  readonly __typename: 'PlanMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanStddevPopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly price: InputMaybe<BigFloatFilter>;\n};\n\nexport type PlanStddevPopulationAggregates = {\n  readonly __typename: 'PlanStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanStddevSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly price: InputMaybe<BigFloatFilter>;\n};\n\nexport type PlanStddevSampleAggregates = {\n  readonly __typename: 'PlanStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanSumAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly price: InputMaybe<BigFloatFilter>;\n};\n\nexport type PlanSumAggregates = {\n  readonly __typename: 'PlanSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of price across the matching connection */\n  readonly price: Scalars['BigFloat']['output'];\n};\n\nexport type PlanTemplate = Node & {\n  readonly __typename: 'PlanTemplate';\n  readonly active: Scalars['Boolean']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly dailyReqCap: Scalars['BigFloat']['output'];\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByOfferPlanTemplateIdAndDeploymentId: PlanTemplateDeploymentsByOfferPlanTemplateIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByPlanPlanTemplateIdAndDeploymentId: PlanTemplateDeploymentsByPlanPlanTemplateIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByServiceAgreementPlanTemplateIdAndDeploymentId: PlanTemplateDeploymentsByServiceAgreementPlanTemplateIdAndDeploymentIdManyToManyConnection;\n  readonly id: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  readonly metadata: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads and enables pagination through a set of `Offer`. */\n  readonly offers: OffersConnection;\n  readonly period: Scalars['BigFloat']['output'];\n  /** Reads and enables pagination through a set of `Plan`. */\n  readonly plans: PlansConnection;\n  readonly priceToken: Scalars['String']['output'];\n  readonly rateLimit: Scalars['BigFloat']['output'];\n  /** Reads and enables pagination through a set of `ServiceAgreement`. */\n  readonly serviceAgreements: ServiceAgreementsConnection;\n};\n\nexport type PlanTemplateDeploymentsByOfferPlanTemplateIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type PlanTemplateDeploymentsByPlanPlanTemplateIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type PlanTemplateDeploymentsByServiceAgreementPlanTemplateIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type PlanTemplateOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Offers_Distinct_Enum>>>;\n  filter: InputMaybe<OfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<OffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type PlanTemplatePlansArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plans_Distinct_Enum>>>;\n  filter: InputMaybe<PlanFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PlansOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type PlanTemplateServiceAgreementsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Service_Agreements_Distinct_Enum>>>;\n  filter: InputMaybe<ServiceAgreementFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ServiceAgreementsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type PlanTemplateAggregates = {\n  readonly __typename: 'PlanTemplateAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<PlanTemplateAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<PlanTemplateDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<PlanTemplateMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<PlanTemplateMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<PlanTemplateStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<PlanTemplateStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<PlanTemplateSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<PlanTemplateVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<PlanTemplateVarianceSampleAggregates>;\n};\n\nexport type PlanTemplateAverageAggregates = {\n  readonly __typename: 'PlanTemplateAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of dailyReqCap across the matching connection */\n  readonly dailyReqCap: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of rateLimit across the matching connection */\n  readonly rateLimit: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `Offer`. */\nexport type PlanTemplateDeploymentsByOfferPlanTemplateIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'PlanTemplateDeploymentsByOfferPlanTemplateIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `Offer`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<PlanTemplateDeploymentsByOfferPlanTemplateIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `Offer`. */\nexport type PlanTemplateDeploymentsByOfferPlanTemplateIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentsGroupBy>;\n  having: InputMaybe<DeploymentsHavingInput>;\n};\n\n/** A `Deployment` edge in the connection, with data from `Offer`. */\nexport type PlanTemplateDeploymentsByOfferPlanTemplateIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'PlanTemplateDeploymentsByOfferPlanTemplateIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n  /** Reads and enables pagination through a set of `Offer`. */\n  readonly offers: OffersConnection;\n};\n\n/** A `Deployment` edge in the connection, with data from `Offer`. */\nexport type PlanTemplateDeploymentsByOfferPlanTemplateIdAndDeploymentIdManyToManyEdgeOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Offers_Distinct_Enum>>>;\n  filter: InputMaybe<OfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<OffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `Plan`. */\nexport type PlanTemplateDeploymentsByPlanPlanTemplateIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'PlanTemplateDeploymentsByPlanPlanTemplateIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `Plan`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<PlanTemplateDeploymentsByPlanPlanTemplateIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `Plan`. */\nexport type PlanTemplateDeploymentsByPlanPlanTemplateIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentsGroupBy>;\n  having: InputMaybe<DeploymentsHavingInput>;\n};\n\n/** A `Deployment` edge in the connection, with data from `Plan`. */\nexport type PlanTemplateDeploymentsByPlanPlanTemplateIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'PlanTemplateDeploymentsByPlanPlanTemplateIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n  /** Reads and enables pagination through a set of `Plan`. */\n  readonly plans: PlansConnection;\n};\n\n/** A `Deployment` edge in the connection, with data from `Plan`. */\nexport type PlanTemplateDeploymentsByPlanPlanTemplateIdAndDeploymentIdManyToManyEdgePlansArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plans_Distinct_Enum>>>;\n  filter: InputMaybe<PlanFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PlansOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `ServiceAgreement`. */\nexport type PlanTemplateDeploymentsByServiceAgreementPlanTemplateIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'PlanTemplateDeploymentsByServiceAgreementPlanTemplateIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `ServiceAgreement`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<PlanTemplateDeploymentsByServiceAgreementPlanTemplateIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `ServiceAgreement`. */\nexport type PlanTemplateDeploymentsByServiceAgreementPlanTemplateIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `ServiceAgreement`. */\nexport type PlanTemplateDeploymentsByServiceAgreementPlanTemplateIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'PlanTemplateDeploymentsByServiceAgreementPlanTemplateIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n  /** Reads and enables pagination through a set of `ServiceAgreement`. */\n  readonly serviceAgreements: ServiceAgreementsConnection;\n};\n\n/** A `Deployment` edge in the connection, with data from `ServiceAgreement`. */\nexport type PlanTemplateDeploymentsByServiceAgreementPlanTemplateIdAndDeploymentIdManyToManyEdgeServiceAgreementsArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Service_Agreements_Distinct_Enum>>>;\n    filter: InputMaybe<ServiceAgreementFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<ServiceAgreementsOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\nexport type PlanTemplateDistinctCountAggregates = {\n  readonly __typename: 'PlanTemplateDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of active across the matching connection */\n  readonly active: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of dailyReqCap across the matching connection */\n  readonly dailyReqCap: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of metadata across the matching connection */\n  readonly metadata: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of period across the matching connection */\n  readonly period: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of priceToken across the matching connection */\n  readonly priceToken: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of rateLimit across the matching connection */\n  readonly rateLimit: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `PlanTemplate` object types. All fields are combined with a logical ‘and.’ */\nexport type PlanTemplateFilter = {\n  /** Filter by the object’s `active` field. */\n  readonly active: InputMaybe<BooleanFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<PlanTemplateFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `dailyReqCap` field. */\n  readonly dailyReqCap: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Filter by the object’s `metadata` field. */\n  readonly metadata: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<PlanTemplateFilter>;\n  /** Filter by the object’s `offers` relation. */\n  readonly offers: InputMaybe<PlanTemplateToManyOfferFilter>;\n  /** Some related `offers` exist. */\n  readonly offersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<PlanTemplateFilter>>;\n  /** Filter by the object’s `period` field. */\n  readonly period: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `plans` relation. */\n  readonly plans: InputMaybe<PlanTemplateToManyPlanFilter>;\n  /** Some related `plans` exist. */\n  readonly plansExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `priceToken` field. */\n  readonly priceToken: InputMaybe<StringFilter>;\n  /** Filter by the object’s `rateLimit` field. */\n  readonly rateLimit: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `serviceAgreements` relation. */\n  readonly serviceAgreements: InputMaybe<PlanTemplateToManyServiceAgreementFilter>;\n  /** Some related `serviceAgreements` exist. */\n  readonly serviceAgreementsExist: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type PlanTemplateMaxAggregates = {\n  readonly __typename: 'PlanTemplateMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of dailyReqCap across the matching connection */\n  readonly dailyReqCap: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of rateLimit across the matching connection */\n  readonly rateLimit: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanTemplateMinAggregates = {\n  readonly __typename: 'PlanTemplateMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of dailyReqCap across the matching connection */\n  readonly dailyReqCap: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of rateLimit across the matching connection */\n  readonly rateLimit: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanTemplateStddevPopulationAggregates = {\n  readonly __typename: 'PlanTemplateStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of dailyReqCap across the matching connection */\n  readonly dailyReqCap: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of rateLimit across the matching connection */\n  readonly rateLimit: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanTemplateStddevSampleAggregates = {\n  readonly __typename: 'PlanTemplateStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of dailyReqCap across the matching connection */\n  readonly dailyReqCap: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of rateLimit across the matching connection */\n  readonly rateLimit: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanTemplateSumAggregates = {\n  readonly __typename: 'PlanTemplateSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of dailyReqCap across the matching connection */\n  readonly dailyReqCap: Scalars['BigFloat']['output'];\n  /** Sum of period across the matching connection */\n  readonly period: Scalars['BigFloat']['output'];\n  /** Sum of rateLimit across the matching connection */\n  readonly rateLimit: Scalars['BigFloat']['output'];\n};\n\n/** A filter to be used against many `Offer` object types. All fields are combined with a logical ‘and.’ */\nexport type PlanTemplateToManyOfferFilter = {\n  /** Aggregates across related `Offer` match the filter criteria. */\n  readonly aggregates: InputMaybe<OfferAggregatesFilter>;\n  /** Every related `Offer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<OfferFilter>;\n  /** No related `Offer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<OfferFilter>;\n  /** Some related `Offer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<OfferFilter>;\n};\n\n/** A filter to be used against many `Plan` object types. All fields are combined with a logical ‘and.’ */\nexport type PlanTemplateToManyPlanFilter = {\n  /** Aggregates across related `Plan` match the filter criteria. */\n  readonly aggregates: InputMaybe<PlanAggregatesFilter>;\n  /** Every related `Plan` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<PlanFilter>;\n  /** No related `Plan` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<PlanFilter>;\n  /** Some related `Plan` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<PlanFilter>;\n};\n\n/** A filter to be used against many `ServiceAgreement` object types. All fields are combined with a logical ‘and.’ */\nexport type PlanTemplateToManyServiceAgreementFilter = {\n  /** Aggregates across related `ServiceAgreement` match the filter criteria. */\n  readonly aggregates: InputMaybe<ServiceAgreementAggregatesFilter>;\n  /** Every related `ServiceAgreement` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<ServiceAgreementFilter>;\n  /** No related `ServiceAgreement` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<ServiceAgreementFilter>;\n  /** Some related `ServiceAgreement` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<ServiceAgreementFilter>;\n};\n\nexport type PlanTemplateVariancePopulationAggregates = {\n  readonly __typename: 'PlanTemplateVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of dailyReqCap across the matching connection */\n  readonly dailyReqCap: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of rateLimit across the matching connection */\n  readonly rateLimit: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanTemplateVarianceSampleAggregates = {\n  readonly __typename: 'PlanTemplateVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of dailyReqCap across the matching connection */\n  readonly dailyReqCap: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of rateLimit across the matching connection */\n  readonly rateLimit: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `PlanTemplate` values. */\nexport type PlanTemplatesConnection = {\n  readonly __typename: 'PlanTemplatesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<PlanTemplateAggregates>;\n  /** A list of edges which contains the `PlanTemplate` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<PlanTemplatesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<PlanTemplateAggregates>>;\n  /** A list of `PlanTemplate` objects. */\n  readonly nodes: ReadonlyArray<Maybe<PlanTemplate>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `PlanTemplate` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `PlanTemplate` values. */\nexport type PlanTemplatesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<PlanTemplatesGroupBy>;\n  having: InputMaybe<PlanTemplatesHavingInput>;\n};\n\n/** A `PlanTemplate` edge in the connection. */\nexport type PlanTemplatesEdge = {\n  readonly __typename: 'PlanTemplatesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `PlanTemplate` at the end of the edge. */\n  readonly node: Maybe<PlanTemplate>;\n};\n\n/** Grouping methods for `PlanTemplate` for usage during aggregation. */\nexport enum PlanTemplatesGroupBy {\n  ACTIVE = 'ACTIVE',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DAILY_REQ_CAP = 'DAILY_REQ_CAP',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  METADATA = 'METADATA',\n  PERIOD = 'PERIOD',\n  PRICE_TOKEN = 'PRICE_TOKEN',\n  RATE_LIMIT = 'RATE_LIMIT',\n}\n\nexport type PlanTemplatesHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly dailyReqCap: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly rateLimit: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlanTemplatesHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly dailyReqCap: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly rateLimit: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `PlanTemplate` aggregates. */\nexport type PlanTemplatesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<PlanTemplatesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<PlanTemplatesHavingInput>>;\n  readonly average: InputMaybe<PlanTemplatesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<PlanTemplatesHavingDistinctCountInput>;\n  readonly max: InputMaybe<PlanTemplatesHavingMaxInput>;\n  readonly min: InputMaybe<PlanTemplatesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<PlanTemplatesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<PlanTemplatesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<PlanTemplatesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<PlanTemplatesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<PlanTemplatesHavingVarianceSampleInput>;\n};\n\nexport type PlanTemplatesHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly dailyReqCap: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly rateLimit: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlanTemplatesHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly dailyReqCap: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly rateLimit: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlanTemplatesHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly dailyReqCap: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly rateLimit: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlanTemplatesHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly dailyReqCap: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly rateLimit: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlanTemplatesHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly dailyReqCap: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly rateLimit: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlanTemplatesHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly dailyReqCap: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly rateLimit: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlanTemplatesHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly dailyReqCap: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly rateLimit: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `PlanTemplate`. */\nexport enum PlanTemplatesOrderBy {\n  ACTIVE_ASC = 'ACTIVE_ASC',\n  ACTIVE_DESC = 'ACTIVE_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DAILY_REQ_CAP_ASC = 'DAILY_REQ_CAP_ASC',\n  DAILY_REQ_CAP_DESC = 'DAILY_REQ_CAP_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  METADATA_ASC = 'METADATA_ASC',\n  METADATA_DESC = 'METADATA_DESC',\n  NATURAL = 'NATURAL',\n  OFFERS_AVERAGE_ACCEPTED_ASC = 'OFFERS_AVERAGE_ACCEPTED_ASC',\n  OFFERS_AVERAGE_ACCEPTED_DESC = 'OFFERS_AVERAGE_ACCEPTED_DESC',\n  OFFERS_AVERAGE_BLOCK_RANGE_ASC = 'OFFERS_AVERAGE_BLOCK_RANGE_ASC',\n  OFFERS_AVERAGE_BLOCK_RANGE_DESC = 'OFFERS_AVERAGE_BLOCK_RANGE_DESC',\n  OFFERS_AVERAGE_CONSUMER_ASC = 'OFFERS_AVERAGE_CONSUMER_ASC',\n  OFFERS_AVERAGE_CONSUMER_DESC = 'OFFERS_AVERAGE_CONSUMER_DESC',\n  OFFERS_AVERAGE_CREATED_BLOCK_ASC = 'OFFERS_AVERAGE_CREATED_BLOCK_ASC',\n  OFFERS_AVERAGE_CREATED_BLOCK_DESC = 'OFFERS_AVERAGE_CREATED_BLOCK_DESC',\n  OFFERS_AVERAGE_DEPLOYMENT_ID_ASC = 'OFFERS_AVERAGE_DEPLOYMENT_ID_ASC',\n  OFFERS_AVERAGE_DEPLOYMENT_ID_DESC = 'OFFERS_AVERAGE_DEPLOYMENT_ID_DESC',\n  OFFERS_AVERAGE_DEPOSIT_ASC = 'OFFERS_AVERAGE_DEPOSIT_ASC',\n  OFFERS_AVERAGE_DEPOSIT_DESC = 'OFFERS_AVERAGE_DEPOSIT_DESC',\n  OFFERS_AVERAGE_EXPIRE_DATE_ASC = 'OFFERS_AVERAGE_EXPIRE_DATE_ASC',\n  OFFERS_AVERAGE_EXPIRE_DATE_DESC = 'OFFERS_AVERAGE_EXPIRE_DATE_DESC',\n  OFFERS_AVERAGE_ID_ASC = 'OFFERS_AVERAGE_ID_ASC',\n  OFFERS_AVERAGE_ID_DESC = 'OFFERS_AVERAGE_ID_DESC',\n  OFFERS_AVERAGE_LAST_EVENT_ASC = 'OFFERS_AVERAGE_LAST_EVENT_ASC',\n  OFFERS_AVERAGE_LAST_EVENT_DESC = 'OFFERS_AVERAGE_LAST_EVENT_DESC',\n  OFFERS_AVERAGE_LIMIT_ASC = 'OFFERS_AVERAGE_LIMIT_ASC',\n  OFFERS_AVERAGE_LIMIT_DESC = 'OFFERS_AVERAGE_LIMIT_DESC',\n  OFFERS_AVERAGE_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_AVERAGE_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_AVERAGE_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_AVERAGE_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_AVERAGE_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_AVERAGE_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_AVERAGE_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_AVERAGE_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_AVERAGE_PLAN_TEMPLATE_ID_ASC = 'OFFERS_AVERAGE_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_AVERAGE_PLAN_TEMPLATE_ID_DESC = 'OFFERS_AVERAGE_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_AVERAGE_REACH_LIMIT_ASC = 'OFFERS_AVERAGE_REACH_LIMIT_ASC',\n  OFFERS_AVERAGE_REACH_LIMIT_DESC = 'OFFERS_AVERAGE_REACH_LIMIT_DESC',\n  OFFERS_AVERAGE_WITHDRAWN_ASC = 'OFFERS_AVERAGE_WITHDRAWN_ASC',\n  OFFERS_AVERAGE_WITHDRAWN_DESC = 'OFFERS_AVERAGE_WITHDRAWN_DESC',\n  OFFERS_AVERAGE_WITHDRAW_PENALTY_ASC = 'OFFERS_AVERAGE_WITHDRAW_PENALTY_ASC',\n  OFFERS_AVERAGE_WITHDRAW_PENALTY_DESC = 'OFFERS_AVERAGE_WITHDRAW_PENALTY_DESC',\n  OFFERS_BY_PLAN_TEMPLATE_ID__COUNT_ASC = 'OFFERS_BY_PLAN_TEMPLATE_ID__COUNT_ASC',\n  OFFERS_BY_PLAN_TEMPLATE_ID__COUNT_DESC = 'OFFERS_BY_PLAN_TEMPLATE_ID__COUNT_DESC',\n  OFFERS_COUNT_ASC = 'OFFERS_COUNT_ASC',\n  OFFERS_COUNT_DESC = 'OFFERS_COUNT_DESC',\n  OFFERS_DISTINCT_COUNT_ACCEPTED_ASC = 'OFFERS_DISTINCT_COUNT_ACCEPTED_ASC',\n  OFFERS_DISTINCT_COUNT_ACCEPTED_DESC = 'OFFERS_DISTINCT_COUNT_ACCEPTED_DESC',\n  OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  OFFERS_DISTINCT_COUNT_CONSUMER_ASC = 'OFFERS_DISTINCT_COUNT_CONSUMER_ASC',\n  OFFERS_DISTINCT_COUNT_CONSUMER_DESC = 'OFFERS_DISTINCT_COUNT_CONSUMER_DESC',\n  OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  OFFERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'OFFERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  OFFERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'OFFERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  OFFERS_DISTINCT_COUNT_DEPOSIT_ASC = 'OFFERS_DISTINCT_COUNT_DEPOSIT_ASC',\n  OFFERS_DISTINCT_COUNT_DEPOSIT_DESC = 'OFFERS_DISTINCT_COUNT_DEPOSIT_DESC',\n  OFFERS_DISTINCT_COUNT_EXPIRE_DATE_ASC = 'OFFERS_DISTINCT_COUNT_EXPIRE_DATE_ASC',\n  OFFERS_DISTINCT_COUNT_EXPIRE_DATE_DESC = 'OFFERS_DISTINCT_COUNT_EXPIRE_DATE_DESC',\n  OFFERS_DISTINCT_COUNT_ID_ASC = 'OFFERS_DISTINCT_COUNT_ID_ASC',\n  OFFERS_DISTINCT_COUNT_ID_DESC = 'OFFERS_DISTINCT_COUNT_ID_DESC',\n  OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC = 'OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC = 'OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  OFFERS_DISTINCT_COUNT_LIMIT_ASC = 'OFFERS_DISTINCT_COUNT_LIMIT_ASC',\n  OFFERS_DISTINCT_COUNT_LIMIT_DESC = 'OFFERS_DISTINCT_COUNT_LIMIT_DESC',\n  OFFERS_DISTINCT_COUNT_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_DISTINCT_COUNT_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_DISTINCT_COUNT_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_DISTINCT_COUNT_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_DISTINCT_COUNT_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_DISTINCT_COUNT_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_DISTINCT_COUNT_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_DISTINCT_COUNT_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC = 'OFFERS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC = 'OFFERS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_DISTINCT_COUNT_REACH_LIMIT_ASC = 'OFFERS_DISTINCT_COUNT_REACH_LIMIT_ASC',\n  OFFERS_DISTINCT_COUNT_REACH_LIMIT_DESC = 'OFFERS_DISTINCT_COUNT_REACH_LIMIT_DESC',\n  OFFERS_DISTINCT_COUNT_WITHDRAWN_ASC = 'OFFERS_DISTINCT_COUNT_WITHDRAWN_ASC',\n  OFFERS_DISTINCT_COUNT_WITHDRAWN_DESC = 'OFFERS_DISTINCT_COUNT_WITHDRAWN_DESC',\n  OFFERS_DISTINCT_COUNT_WITHDRAW_PENALTY_ASC = 'OFFERS_DISTINCT_COUNT_WITHDRAW_PENALTY_ASC',\n  OFFERS_DISTINCT_COUNT_WITHDRAW_PENALTY_DESC = 'OFFERS_DISTINCT_COUNT_WITHDRAW_PENALTY_DESC',\n  OFFERS_MAX_ACCEPTED_ASC = 'OFFERS_MAX_ACCEPTED_ASC',\n  OFFERS_MAX_ACCEPTED_DESC = 'OFFERS_MAX_ACCEPTED_DESC',\n  OFFERS_MAX_BLOCK_RANGE_ASC = 'OFFERS_MAX_BLOCK_RANGE_ASC',\n  OFFERS_MAX_BLOCK_RANGE_DESC = 'OFFERS_MAX_BLOCK_RANGE_DESC',\n  OFFERS_MAX_CONSUMER_ASC = 'OFFERS_MAX_CONSUMER_ASC',\n  OFFERS_MAX_CONSUMER_DESC = 'OFFERS_MAX_CONSUMER_DESC',\n  OFFERS_MAX_CREATED_BLOCK_ASC = 'OFFERS_MAX_CREATED_BLOCK_ASC',\n  OFFERS_MAX_CREATED_BLOCK_DESC = 'OFFERS_MAX_CREATED_BLOCK_DESC',\n  OFFERS_MAX_DEPLOYMENT_ID_ASC = 'OFFERS_MAX_DEPLOYMENT_ID_ASC',\n  OFFERS_MAX_DEPLOYMENT_ID_DESC = 'OFFERS_MAX_DEPLOYMENT_ID_DESC',\n  OFFERS_MAX_DEPOSIT_ASC = 'OFFERS_MAX_DEPOSIT_ASC',\n  OFFERS_MAX_DEPOSIT_DESC = 'OFFERS_MAX_DEPOSIT_DESC',\n  OFFERS_MAX_EXPIRE_DATE_ASC = 'OFFERS_MAX_EXPIRE_DATE_ASC',\n  OFFERS_MAX_EXPIRE_DATE_DESC = 'OFFERS_MAX_EXPIRE_DATE_DESC',\n  OFFERS_MAX_ID_ASC = 'OFFERS_MAX_ID_ASC',\n  OFFERS_MAX_ID_DESC = 'OFFERS_MAX_ID_DESC',\n  OFFERS_MAX_LAST_EVENT_ASC = 'OFFERS_MAX_LAST_EVENT_ASC',\n  OFFERS_MAX_LAST_EVENT_DESC = 'OFFERS_MAX_LAST_EVENT_DESC',\n  OFFERS_MAX_LIMIT_ASC = 'OFFERS_MAX_LIMIT_ASC',\n  OFFERS_MAX_LIMIT_DESC = 'OFFERS_MAX_LIMIT_DESC',\n  OFFERS_MAX_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_MAX_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_MAX_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_MAX_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_MAX_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_MAX_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_MAX_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_MAX_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_MAX_PLAN_TEMPLATE_ID_ASC = 'OFFERS_MAX_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_MAX_PLAN_TEMPLATE_ID_DESC = 'OFFERS_MAX_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_MAX_REACH_LIMIT_ASC = 'OFFERS_MAX_REACH_LIMIT_ASC',\n  OFFERS_MAX_REACH_LIMIT_DESC = 'OFFERS_MAX_REACH_LIMIT_DESC',\n  OFFERS_MAX_WITHDRAWN_ASC = 'OFFERS_MAX_WITHDRAWN_ASC',\n  OFFERS_MAX_WITHDRAWN_DESC = 'OFFERS_MAX_WITHDRAWN_DESC',\n  OFFERS_MAX_WITHDRAW_PENALTY_ASC = 'OFFERS_MAX_WITHDRAW_PENALTY_ASC',\n  OFFERS_MAX_WITHDRAW_PENALTY_DESC = 'OFFERS_MAX_WITHDRAW_PENALTY_DESC',\n  OFFERS_MIN_ACCEPTED_ASC = 'OFFERS_MIN_ACCEPTED_ASC',\n  OFFERS_MIN_ACCEPTED_DESC = 'OFFERS_MIN_ACCEPTED_DESC',\n  OFFERS_MIN_BLOCK_RANGE_ASC = 'OFFERS_MIN_BLOCK_RANGE_ASC',\n  OFFERS_MIN_BLOCK_RANGE_DESC = 'OFFERS_MIN_BLOCK_RANGE_DESC',\n  OFFERS_MIN_CONSUMER_ASC = 'OFFERS_MIN_CONSUMER_ASC',\n  OFFERS_MIN_CONSUMER_DESC = 'OFFERS_MIN_CONSUMER_DESC',\n  OFFERS_MIN_CREATED_BLOCK_ASC = 'OFFERS_MIN_CREATED_BLOCK_ASC',\n  OFFERS_MIN_CREATED_BLOCK_DESC = 'OFFERS_MIN_CREATED_BLOCK_DESC',\n  OFFERS_MIN_DEPLOYMENT_ID_ASC = 'OFFERS_MIN_DEPLOYMENT_ID_ASC',\n  OFFERS_MIN_DEPLOYMENT_ID_DESC = 'OFFERS_MIN_DEPLOYMENT_ID_DESC',\n  OFFERS_MIN_DEPOSIT_ASC = 'OFFERS_MIN_DEPOSIT_ASC',\n  OFFERS_MIN_DEPOSIT_DESC = 'OFFERS_MIN_DEPOSIT_DESC',\n  OFFERS_MIN_EXPIRE_DATE_ASC = 'OFFERS_MIN_EXPIRE_DATE_ASC',\n  OFFERS_MIN_EXPIRE_DATE_DESC = 'OFFERS_MIN_EXPIRE_DATE_DESC',\n  OFFERS_MIN_ID_ASC = 'OFFERS_MIN_ID_ASC',\n  OFFERS_MIN_ID_DESC = 'OFFERS_MIN_ID_DESC',\n  OFFERS_MIN_LAST_EVENT_ASC = 'OFFERS_MIN_LAST_EVENT_ASC',\n  OFFERS_MIN_LAST_EVENT_DESC = 'OFFERS_MIN_LAST_EVENT_DESC',\n  OFFERS_MIN_LIMIT_ASC = 'OFFERS_MIN_LIMIT_ASC',\n  OFFERS_MIN_LIMIT_DESC = 'OFFERS_MIN_LIMIT_DESC',\n  OFFERS_MIN_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_MIN_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_MIN_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_MIN_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_MIN_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_MIN_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_MIN_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_MIN_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_MIN_PLAN_TEMPLATE_ID_ASC = 'OFFERS_MIN_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_MIN_PLAN_TEMPLATE_ID_DESC = 'OFFERS_MIN_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_MIN_REACH_LIMIT_ASC = 'OFFERS_MIN_REACH_LIMIT_ASC',\n  OFFERS_MIN_REACH_LIMIT_DESC = 'OFFERS_MIN_REACH_LIMIT_DESC',\n  OFFERS_MIN_WITHDRAWN_ASC = 'OFFERS_MIN_WITHDRAWN_ASC',\n  OFFERS_MIN_WITHDRAWN_DESC = 'OFFERS_MIN_WITHDRAWN_DESC',\n  OFFERS_MIN_WITHDRAW_PENALTY_ASC = 'OFFERS_MIN_WITHDRAW_PENALTY_ASC',\n  OFFERS_MIN_WITHDRAW_PENALTY_DESC = 'OFFERS_MIN_WITHDRAW_PENALTY_DESC',\n  OFFERS_STDDEV_POPULATION_ACCEPTED_ASC = 'OFFERS_STDDEV_POPULATION_ACCEPTED_ASC',\n  OFFERS_STDDEV_POPULATION_ACCEPTED_DESC = 'OFFERS_STDDEV_POPULATION_ACCEPTED_DESC',\n  OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  OFFERS_STDDEV_POPULATION_CONSUMER_ASC = 'OFFERS_STDDEV_POPULATION_CONSUMER_ASC',\n  OFFERS_STDDEV_POPULATION_CONSUMER_DESC = 'OFFERS_STDDEV_POPULATION_CONSUMER_DESC',\n  OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  OFFERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'OFFERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  OFFERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'OFFERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  OFFERS_STDDEV_POPULATION_DEPOSIT_ASC = 'OFFERS_STDDEV_POPULATION_DEPOSIT_ASC',\n  OFFERS_STDDEV_POPULATION_DEPOSIT_DESC = 'OFFERS_STDDEV_POPULATION_DEPOSIT_DESC',\n  OFFERS_STDDEV_POPULATION_EXPIRE_DATE_ASC = 'OFFERS_STDDEV_POPULATION_EXPIRE_DATE_ASC',\n  OFFERS_STDDEV_POPULATION_EXPIRE_DATE_DESC = 'OFFERS_STDDEV_POPULATION_EXPIRE_DATE_DESC',\n  OFFERS_STDDEV_POPULATION_ID_ASC = 'OFFERS_STDDEV_POPULATION_ID_ASC',\n  OFFERS_STDDEV_POPULATION_ID_DESC = 'OFFERS_STDDEV_POPULATION_ID_DESC',\n  OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC = 'OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC = 'OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  OFFERS_STDDEV_POPULATION_LIMIT_ASC = 'OFFERS_STDDEV_POPULATION_LIMIT_ASC',\n  OFFERS_STDDEV_POPULATION_LIMIT_DESC = 'OFFERS_STDDEV_POPULATION_LIMIT_DESC',\n  OFFERS_STDDEV_POPULATION_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_STDDEV_POPULATION_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_STDDEV_POPULATION_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_STDDEV_POPULATION_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_STDDEV_POPULATION_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_STDDEV_POPULATION_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_STDDEV_POPULATION_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_STDDEV_POPULATION_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC = 'OFFERS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC = 'OFFERS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_STDDEV_POPULATION_REACH_LIMIT_ASC = 'OFFERS_STDDEV_POPULATION_REACH_LIMIT_ASC',\n  OFFERS_STDDEV_POPULATION_REACH_LIMIT_DESC = 'OFFERS_STDDEV_POPULATION_REACH_LIMIT_DESC',\n  OFFERS_STDDEV_POPULATION_WITHDRAWN_ASC = 'OFFERS_STDDEV_POPULATION_WITHDRAWN_ASC',\n  OFFERS_STDDEV_POPULATION_WITHDRAWN_DESC = 'OFFERS_STDDEV_POPULATION_WITHDRAWN_DESC',\n  OFFERS_STDDEV_POPULATION_WITHDRAW_PENALTY_ASC = 'OFFERS_STDDEV_POPULATION_WITHDRAW_PENALTY_ASC',\n  OFFERS_STDDEV_POPULATION_WITHDRAW_PENALTY_DESC = 'OFFERS_STDDEV_POPULATION_WITHDRAW_PENALTY_DESC',\n  OFFERS_STDDEV_SAMPLE_ACCEPTED_ASC = 'OFFERS_STDDEV_SAMPLE_ACCEPTED_ASC',\n  OFFERS_STDDEV_SAMPLE_ACCEPTED_DESC = 'OFFERS_STDDEV_SAMPLE_ACCEPTED_DESC',\n  OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  OFFERS_STDDEV_SAMPLE_CONSUMER_ASC = 'OFFERS_STDDEV_SAMPLE_CONSUMER_ASC',\n  OFFERS_STDDEV_SAMPLE_CONSUMER_DESC = 'OFFERS_STDDEV_SAMPLE_CONSUMER_DESC',\n  OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  OFFERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'OFFERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  OFFERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'OFFERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  OFFERS_STDDEV_SAMPLE_DEPOSIT_ASC = 'OFFERS_STDDEV_SAMPLE_DEPOSIT_ASC',\n  OFFERS_STDDEV_SAMPLE_DEPOSIT_DESC = 'OFFERS_STDDEV_SAMPLE_DEPOSIT_DESC',\n  OFFERS_STDDEV_SAMPLE_EXPIRE_DATE_ASC = 'OFFERS_STDDEV_SAMPLE_EXPIRE_DATE_ASC',\n  OFFERS_STDDEV_SAMPLE_EXPIRE_DATE_DESC = 'OFFERS_STDDEV_SAMPLE_EXPIRE_DATE_DESC',\n  OFFERS_STDDEV_SAMPLE_ID_ASC = 'OFFERS_STDDEV_SAMPLE_ID_ASC',\n  OFFERS_STDDEV_SAMPLE_ID_DESC = 'OFFERS_STDDEV_SAMPLE_ID_DESC',\n  OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  OFFERS_STDDEV_SAMPLE_LIMIT_ASC = 'OFFERS_STDDEV_SAMPLE_LIMIT_ASC',\n  OFFERS_STDDEV_SAMPLE_LIMIT_DESC = 'OFFERS_STDDEV_SAMPLE_LIMIT_DESC',\n  OFFERS_STDDEV_SAMPLE_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_STDDEV_SAMPLE_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_STDDEV_SAMPLE_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_STDDEV_SAMPLE_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_STDDEV_SAMPLE_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_STDDEV_SAMPLE_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_STDDEV_SAMPLE_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_STDDEV_SAMPLE_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'OFFERS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'OFFERS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_STDDEV_SAMPLE_REACH_LIMIT_ASC = 'OFFERS_STDDEV_SAMPLE_REACH_LIMIT_ASC',\n  OFFERS_STDDEV_SAMPLE_REACH_LIMIT_DESC = 'OFFERS_STDDEV_SAMPLE_REACH_LIMIT_DESC',\n  OFFERS_STDDEV_SAMPLE_WITHDRAWN_ASC = 'OFFERS_STDDEV_SAMPLE_WITHDRAWN_ASC',\n  OFFERS_STDDEV_SAMPLE_WITHDRAWN_DESC = 'OFFERS_STDDEV_SAMPLE_WITHDRAWN_DESC',\n  OFFERS_STDDEV_SAMPLE_WITHDRAW_PENALTY_ASC = 'OFFERS_STDDEV_SAMPLE_WITHDRAW_PENALTY_ASC',\n  OFFERS_STDDEV_SAMPLE_WITHDRAW_PENALTY_DESC = 'OFFERS_STDDEV_SAMPLE_WITHDRAW_PENALTY_DESC',\n  OFFERS_SUM_ACCEPTED_ASC = 'OFFERS_SUM_ACCEPTED_ASC',\n  OFFERS_SUM_ACCEPTED_DESC = 'OFFERS_SUM_ACCEPTED_DESC',\n  OFFERS_SUM_BLOCK_RANGE_ASC = 'OFFERS_SUM_BLOCK_RANGE_ASC',\n  OFFERS_SUM_BLOCK_RANGE_DESC = 'OFFERS_SUM_BLOCK_RANGE_DESC',\n  OFFERS_SUM_CONSUMER_ASC = 'OFFERS_SUM_CONSUMER_ASC',\n  OFFERS_SUM_CONSUMER_DESC = 'OFFERS_SUM_CONSUMER_DESC',\n  OFFERS_SUM_CREATED_BLOCK_ASC = 'OFFERS_SUM_CREATED_BLOCK_ASC',\n  OFFERS_SUM_CREATED_BLOCK_DESC = 'OFFERS_SUM_CREATED_BLOCK_DESC',\n  OFFERS_SUM_DEPLOYMENT_ID_ASC = 'OFFERS_SUM_DEPLOYMENT_ID_ASC',\n  OFFERS_SUM_DEPLOYMENT_ID_DESC = 'OFFERS_SUM_DEPLOYMENT_ID_DESC',\n  OFFERS_SUM_DEPOSIT_ASC = 'OFFERS_SUM_DEPOSIT_ASC',\n  OFFERS_SUM_DEPOSIT_DESC = 'OFFERS_SUM_DEPOSIT_DESC',\n  OFFERS_SUM_EXPIRE_DATE_ASC = 'OFFERS_SUM_EXPIRE_DATE_ASC',\n  OFFERS_SUM_EXPIRE_DATE_DESC = 'OFFERS_SUM_EXPIRE_DATE_DESC',\n  OFFERS_SUM_ID_ASC = 'OFFERS_SUM_ID_ASC',\n  OFFERS_SUM_ID_DESC = 'OFFERS_SUM_ID_DESC',\n  OFFERS_SUM_LAST_EVENT_ASC = 'OFFERS_SUM_LAST_EVENT_ASC',\n  OFFERS_SUM_LAST_EVENT_DESC = 'OFFERS_SUM_LAST_EVENT_DESC',\n  OFFERS_SUM_LIMIT_ASC = 'OFFERS_SUM_LIMIT_ASC',\n  OFFERS_SUM_LIMIT_DESC = 'OFFERS_SUM_LIMIT_DESC',\n  OFFERS_SUM_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_SUM_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_SUM_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_SUM_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_SUM_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_SUM_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_SUM_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_SUM_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_SUM_PLAN_TEMPLATE_ID_ASC = 'OFFERS_SUM_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_SUM_PLAN_TEMPLATE_ID_DESC = 'OFFERS_SUM_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_SUM_REACH_LIMIT_ASC = 'OFFERS_SUM_REACH_LIMIT_ASC',\n  OFFERS_SUM_REACH_LIMIT_DESC = 'OFFERS_SUM_REACH_LIMIT_DESC',\n  OFFERS_SUM_WITHDRAWN_ASC = 'OFFERS_SUM_WITHDRAWN_ASC',\n  OFFERS_SUM_WITHDRAWN_DESC = 'OFFERS_SUM_WITHDRAWN_DESC',\n  OFFERS_SUM_WITHDRAW_PENALTY_ASC = 'OFFERS_SUM_WITHDRAW_PENALTY_ASC',\n  OFFERS_SUM_WITHDRAW_PENALTY_DESC = 'OFFERS_SUM_WITHDRAW_PENALTY_DESC',\n  OFFERS_VARIANCE_POPULATION_ACCEPTED_ASC = 'OFFERS_VARIANCE_POPULATION_ACCEPTED_ASC',\n  OFFERS_VARIANCE_POPULATION_ACCEPTED_DESC = 'OFFERS_VARIANCE_POPULATION_ACCEPTED_DESC',\n  OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  OFFERS_VARIANCE_POPULATION_CONSUMER_ASC = 'OFFERS_VARIANCE_POPULATION_CONSUMER_ASC',\n  OFFERS_VARIANCE_POPULATION_CONSUMER_DESC = 'OFFERS_VARIANCE_POPULATION_CONSUMER_DESC',\n  OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  OFFERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'OFFERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  OFFERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'OFFERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  OFFERS_VARIANCE_POPULATION_DEPOSIT_ASC = 'OFFERS_VARIANCE_POPULATION_DEPOSIT_ASC',\n  OFFERS_VARIANCE_POPULATION_DEPOSIT_DESC = 'OFFERS_VARIANCE_POPULATION_DEPOSIT_DESC',\n  OFFERS_VARIANCE_POPULATION_EXPIRE_DATE_ASC = 'OFFERS_VARIANCE_POPULATION_EXPIRE_DATE_ASC',\n  OFFERS_VARIANCE_POPULATION_EXPIRE_DATE_DESC = 'OFFERS_VARIANCE_POPULATION_EXPIRE_DATE_DESC',\n  OFFERS_VARIANCE_POPULATION_ID_ASC = 'OFFERS_VARIANCE_POPULATION_ID_ASC',\n  OFFERS_VARIANCE_POPULATION_ID_DESC = 'OFFERS_VARIANCE_POPULATION_ID_DESC',\n  OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  OFFERS_VARIANCE_POPULATION_LIMIT_ASC = 'OFFERS_VARIANCE_POPULATION_LIMIT_ASC',\n  OFFERS_VARIANCE_POPULATION_LIMIT_DESC = 'OFFERS_VARIANCE_POPULATION_LIMIT_DESC',\n  OFFERS_VARIANCE_POPULATION_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_VARIANCE_POPULATION_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_VARIANCE_POPULATION_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_VARIANCE_POPULATION_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_VARIANCE_POPULATION_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_VARIANCE_POPULATION_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_VARIANCE_POPULATION_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_VARIANCE_POPULATION_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC = 'OFFERS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC = 'OFFERS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_VARIANCE_POPULATION_REACH_LIMIT_ASC = 'OFFERS_VARIANCE_POPULATION_REACH_LIMIT_ASC',\n  OFFERS_VARIANCE_POPULATION_REACH_LIMIT_DESC = 'OFFERS_VARIANCE_POPULATION_REACH_LIMIT_DESC',\n  OFFERS_VARIANCE_POPULATION_WITHDRAWN_ASC = 'OFFERS_VARIANCE_POPULATION_WITHDRAWN_ASC',\n  OFFERS_VARIANCE_POPULATION_WITHDRAWN_DESC = 'OFFERS_VARIANCE_POPULATION_WITHDRAWN_DESC',\n  OFFERS_VARIANCE_POPULATION_WITHDRAW_PENALTY_ASC = 'OFFERS_VARIANCE_POPULATION_WITHDRAW_PENALTY_ASC',\n  OFFERS_VARIANCE_POPULATION_WITHDRAW_PENALTY_DESC = 'OFFERS_VARIANCE_POPULATION_WITHDRAW_PENALTY_DESC',\n  OFFERS_VARIANCE_SAMPLE_ACCEPTED_ASC = 'OFFERS_VARIANCE_SAMPLE_ACCEPTED_ASC',\n  OFFERS_VARIANCE_SAMPLE_ACCEPTED_DESC = 'OFFERS_VARIANCE_SAMPLE_ACCEPTED_DESC',\n  OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  OFFERS_VARIANCE_SAMPLE_CONSUMER_ASC = 'OFFERS_VARIANCE_SAMPLE_CONSUMER_ASC',\n  OFFERS_VARIANCE_SAMPLE_CONSUMER_DESC = 'OFFERS_VARIANCE_SAMPLE_CONSUMER_DESC',\n  OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  OFFERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'OFFERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  OFFERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'OFFERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  OFFERS_VARIANCE_SAMPLE_DEPOSIT_ASC = 'OFFERS_VARIANCE_SAMPLE_DEPOSIT_ASC',\n  OFFERS_VARIANCE_SAMPLE_DEPOSIT_DESC = 'OFFERS_VARIANCE_SAMPLE_DEPOSIT_DESC',\n  OFFERS_VARIANCE_SAMPLE_EXPIRE_DATE_ASC = 'OFFERS_VARIANCE_SAMPLE_EXPIRE_DATE_ASC',\n  OFFERS_VARIANCE_SAMPLE_EXPIRE_DATE_DESC = 'OFFERS_VARIANCE_SAMPLE_EXPIRE_DATE_DESC',\n  OFFERS_VARIANCE_SAMPLE_ID_ASC = 'OFFERS_VARIANCE_SAMPLE_ID_ASC',\n  OFFERS_VARIANCE_SAMPLE_ID_DESC = 'OFFERS_VARIANCE_SAMPLE_ID_DESC',\n  OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  OFFERS_VARIANCE_SAMPLE_LIMIT_ASC = 'OFFERS_VARIANCE_SAMPLE_LIMIT_ASC',\n  OFFERS_VARIANCE_SAMPLE_LIMIT_DESC = 'OFFERS_VARIANCE_SAMPLE_LIMIT_DESC',\n  OFFERS_VARIANCE_SAMPLE_MINIMUM_ACCEPT_HEIGHT_ASC = 'OFFERS_VARIANCE_SAMPLE_MINIMUM_ACCEPT_HEIGHT_ASC',\n  OFFERS_VARIANCE_SAMPLE_MINIMUM_ACCEPT_HEIGHT_DESC = 'OFFERS_VARIANCE_SAMPLE_MINIMUM_ACCEPT_HEIGHT_DESC',\n  OFFERS_VARIANCE_SAMPLE_MINIMUM_STAKING_AMOUNT_ASC = 'OFFERS_VARIANCE_SAMPLE_MINIMUM_STAKING_AMOUNT_ASC',\n  OFFERS_VARIANCE_SAMPLE_MINIMUM_STAKING_AMOUNT_DESC = 'OFFERS_VARIANCE_SAMPLE_MINIMUM_STAKING_AMOUNT_DESC',\n  OFFERS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'OFFERS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  OFFERS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'OFFERS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  OFFERS_VARIANCE_SAMPLE_REACH_LIMIT_ASC = 'OFFERS_VARIANCE_SAMPLE_REACH_LIMIT_ASC',\n  OFFERS_VARIANCE_SAMPLE_REACH_LIMIT_DESC = 'OFFERS_VARIANCE_SAMPLE_REACH_LIMIT_DESC',\n  OFFERS_VARIANCE_SAMPLE_WITHDRAWN_ASC = 'OFFERS_VARIANCE_SAMPLE_WITHDRAWN_ASC',\n  OFFERS_VARIANCE_SAMPLE_WITHDRAWN_DESC = 'OFFERS_VARIANCE_SAMPLE_WITHDRAWN_DESC',\n  OFFERS_VARIANCE_SAMPLE_WITHDRAW_PENALTY_ASC = 'OFFERS_VARIANCE_SAMPLE_WITHDRAW_PENALTY_ASC',\n  OFFERS_VARIANCE_SAMPLE_WITHDRAW_PENALTY_DESC = 'OFFERS_VARIANCE_SAMPLE_WITHDRAW_PENALTY_DESC',\n  PERIOD_ASC = 'PERIOD_ASC',\n  PERIOD_DESC = 'PERIOD_DESC',\n  PLANS_AVERAGE_ACTIVE_ASC = 'PLANS_AVERAGE_ACTIVE_ASC',\n  PLANS_AVERAGE_ACTIVE_DESC = 'PLANS_AVERAGE_ACTIVE_DESC',\n  PLANS_AVERAGE_BLOCK_RANGE_ASC = 'PLANS_AVERAGE_BLOCK_RANGE_ASC',\n  PLANS_AVERAGE_BLOCK_RANGE_DESC = 'PLANS_AVERAGE_BLOCK_RANGE_DESC',\n  PLANS_AVERAGE_CREATED_BLOCK_ASC = 'PLANS_AVERAGE_CREATED_BLOCK_ASC',\n  PLANS_AVERAGE_CREATED_BLOCK_DESC = 'PLANS_AVERAGE_CREATED_BLOCK_DESC',\n  PLANS_AVERAGE_CREATOR_ASC = 'PLANS_AVERAGE_CREATOR_ASC',\n  PLANS_AVERAGE_CREATOR_DESC = 'PLANS_AVERAGE_CREATOR_DESC',\n  PLANS_AVERAGE_DEPLOYMENT_ID_ASC = 'PLANS_AVERAGE_DEPLOYMENT_ID_ASC',\n  PLANS_AVERAGE_DEPLOYMENT_ID_DESC = 'PLANS_AVERAGE_DEPLOYMENT_ID_DESC',\n  PLANS_AVERAGE_ID_ASC = 'PLANS_AVERAGE_ID_ASC',\n  PLANS_AVERAGE_ID_DESC = 'PLANS_AVERAGE_ID_DESC',\n  PLANS_AVERAGE_LAST_EVENT_ASC = 'PLANS_AVERAGE_LAST_EVENT_ASC',\n  PLANS_AVERAGE_LAST_EVENT_DESC = 'PLANS_AVERAGE_LAST_EVENT_DESC',\n  PLANS_AVERAGE_PLAN_TEMPLATE_ID_ASC = 'PLANS_AVERAGE_PLAN_TEMPLATE_ID_ASC',\n  PLANS_AVERAGE_PLAN_TEMPLATE_ID_DESC = 'PLANS_AVERAGE_PLAN_TEMPLATE_ID_DESC',\n  PLANS_AVERAGE_PRICE_ASC = 'PLANS_AVERAGE_PRICE_ASC',\n  PLANS_AVERAGE_PRICE_DESC = 'PLANS_AVERAGE_PRICE_DESC',\n  PLANS_BY_PLAN_TEMPLATE_ID__COUNT_ASC = 'PLANS_BY_PLAN_TEMPLATE_ID__COUNT_ASC',\n  PLANS_BY_PLAN_TEMPLATE_ID__COUNT_DESC = 'PLANS_BY_PLAN_TEMPLATE_ID__COUNT_DESC',\n  PLANS_COUNT_ASC = 'PLANS_COUNT_ASC',\n  PLANS_COUNT_DESC = 'PLANS_COUNT_DESC',\n  PLANS_DISTINCT_COUNT_ACTIVE_ASC = 'PLANS_DISTINCT_COUNT_ACTIVE_ASC',\n  PLANS_DISTINCT_COUNT_ACTIVE_DESC = 'PLANS_DISTINCT_COUNT_ACTIVE_DESC',\n  PLANS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'PLANS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  PLANS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'PLANS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  PLANS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'PLANS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  PLANS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'PLANS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  PLANS_DISTINCT_COUNT_CREATOR_ASC = 'PLANS_DISTINCT_COUNT_CREATOR_ASC',\n  PLANS_DISTINCT_COUNT_CREATOR_DESC = 'PLANS_DISTINCT_COUNT_CREATOR_DESC',\n  PLANS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'PLANS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  PLANS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'PLANS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  PLANS_DISTINCT_COUNT_ID_ASC = 'PLANS_DISTINCT_COUNT_ID_ASC',\n  PLANS_DISTINCT_COUNT_ID_DESC = 'PLANS_DISTINCT_COUNT_ID_DESC',\n  PLANS_DISTINCT_COUNT_LAST_EVENT_ASC = 'PLANS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  PLANS_DISTINCT_COUNT_LAST_EVENT_DESC = 'PLANS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  PLANS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC = 'PLANS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC',\n  PLANS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC = 'PLANS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC',\n  PLANS_DISTINCT_COUNT_PRICE_ASC = 'PLANS_DISTINCT_COUNT_PRICE_ASC',\n  PLANS_DISTINCT_COUNT_PRICE_DESC = 'PLANS_DISTINCT_COUNT_PRICE_DESC',\n  PLANS_MAX_ACTIVE_ASC = 'PLANS_MAX_ACTIVE_ASC',\n  PLANS_MAX_ACTIVE_DESC = 'PLANS_MAX_ACTIVE_DESC',\n  PLANS_MAX_BLOCK_RANGE_ASC = 'PLANS_MAX_BLOCK_RANGE_ASC',\n  PLANS_MAX_BLOCK_RANGE_DESC = 'PLANS_MAX_BLOCK_RANGE_DESC',\n  PLANS_MAX_CREATED_BLOCK_ASC = 'PLANS_MAX_CREATED_BLOCK_ASC',\n  PLANS_MAX_CREATED_BLOCK_DESC = 'PLANS_MAX_CREATED_BLOCK_DESC',\n  PLANS_MAX_CREATOR_ASC = 'PLANS_MAX_CREATOR_ASC',\n  PLANS_MAX_CREATOR_DESC = 'PLANS_MAX_CREATOR_DESC',\n  PLANS_MAX_DEPLOYMENT_ID_ASC = 'PLANS_MAX_DEPLOYMENT_ID_ASC',\n  PLANS_MAX_DEPLOYMENT_ID_DESC = 'PLANS_MAX_DEPLOYMENT_ID_DESC',\n  PLANS_MAX_ID_ASC = 'PLANS_MAX_ID_ASC',\n  PLANS_MAX_ID_DESC = 'PLANS_MAX_ID_DESC',\n  PLANS_MAX_LAST_EVENT_ASC = 'PLANS_MAX_LAST_EVENT_ASC',\n  PLANS_MAX_LAST_EVENT_DESC = 'PLANS_MAX_LAST_EVENT_DESC',\n  PLANS_MAX_PLAN_TEMPLATE_ID_ASC = 'PLANS_MAX_PLAN_TEMPLATE_ID_ASC',\n  PLANS_MAX_PLAN_TEMPLATE_ID_DESC = 'PLANS_MAX_PLAN_TEMPLATE_ID_DESC',\n  PLANS_MAX_PRICE_ASC = 'PLANS_MAX_PRICE_ASC',\n  PLANS_MAX_PRICE_DESC = 'PLANS_MAX_PRICE_DESC',\n  PLANS_MIN_ACTIVE_ASC = 'PLANS_MIN_ACTIVE_ASC',\n  PLANS_MIN_ACTIVE_DESC = 'PLANS_MIN_ACTIVE_DESC',\n  PLANS_MIN_BLOCK_RANGE_ASC = 'PLANS_MIN_BLOCK_RANGE_ASC',\n  PLANS_MIN_BLOCK_RANGE_DESC = 'PLANS_MIN_BLOCK_RANGE_DESC',\n  PLANS_MIN_CREATED_BLOCK_ASC = 'PLANS_MIN_CREATED_BLOCK_ASC',\n  PLANS_MIN_CREATED_BLOCK_DESC = 'PLANS_MIN_CREATED_BLOCK_DESC',\n  PLANS_MIN_CREATOR_ASC = 'PLANS_MIN_CREATOR_ASC',\n  PLANS_MIN_CREATOR_DESC = 'PLANS_MIN_CREATOR_DESC',\n  PLANS_MIN_DEPLOYMENT_ID_ASC = 'PLANS_MIN_DEPLOYMENT_ID_ASC',\n  PLANS_MIN_DEPLOYMENT_ID_DESC = 'PLANS_MIN_DEPLOYMENT_ID_DESC',\n  PLANS_MIN_ID_ASC = 'PLANS_MIN_ID_ASC',\n  PLANS_MIN_ID_DESC = 'PLANS_MIN_ID_DESC',\n  PLANS_MIN_LAST_EVENT_ASC = 'PLANS_MIN_LAST_EVENT_ASC',\n  PLANS_MIN_LAST_EVENT_DESC = 'PLANS_MIN_LAST_EVENT_DESC',\n  PLANS_MIN_PLAN_TEMPLATE_ID_ASC = 'PLANS_MIN_PLAN_TEMPLATE_ID_ASC',\n  PLANS_MIN_PLAN_TEMPLATE_ID_DESC = 'PLANS_MIN_PLAN_TEMPLATE_ID_DESC',\n  PLANS_MIN_PRICE_ASC = 'PLANS_MIN_PRICE_ASC',\n  PLANS_MIN_PRICE_DESC = 'PLANS_MIN_PRICE_DESC',\n  PLANS_STDDEV_POPULATION_ACTIVE_ASC = 'PLANS_STDDEV_POPULATION_ACTIVE_ASC',\n  PLANS_STDDEV_POPULATION_ACTIVE_DESC = 'PLANS_STDDEV_POPULATION_ACTIVE_DESC',\n  PLANS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'PLANS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  PLANS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'PLANS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  PLANS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'PLANS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  PLANS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'PLANS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  PLANS_STDDEV_POPULATION_CREATOR_ASC = 'PLANS_STDDEV_POPULATION_CREATOR_ASC',\n  PLANS_STDDEV_POPULATION_CREATOR_DESC = 'PLANS_STDDEV_POPULATION_CREATOR_DESC',\n  PLANS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'PLANS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  PLANS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'PLANS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  PLANS_STDDEV_POPULATION_ID_ASC = 'PLANS_STDDEV_POPULATION_ID_ASC',\n  PLANS_STDDEV_POPULATION_ID_DESC = 'PLANS_STDDEV_POPULATION_ID_DESC',\n  PLANS_STDDEV_POPULATION_LAST_EVENT_ASC = 'PLANS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  PLANS_STDDEV_POPULATION_LAST_EVENT_DESC = 'PLANS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  PLANS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC = 'PLANS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  PLANS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC = 'PLANS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  PLANS_STDDEV_POPULATION_PRICE_ASC = 'PLANS_STDDEV_POPULATION_PRICE_ASC',\n  PLANS_STDDEV_POPULATION_PRICE_DESC = 'PLANS_STDDEV_POPULATION_PRICE_DESC',\n  PLANS_STDDEV_SAMPLE_ACTIVE_ASC = 'PLANS_STDDEV_SAMPLE_ACTIVE_ASC',\n  PLANS_STDDEV_SAMPLE_ACTIVE_DESC = 'PLANS_STDDEV_SAMPLE_ACTIVE_DESC',\n  PLANS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'PLANS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  PLANS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'PLANS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  PLANS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'PLANS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  PLANS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'PLANS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  PLANS_STDDEV_SAMPLE_CREATOR_ASC = 'PLANS_STDDEV_SAMPLE_CREATOR_ASC',\n  PLANS_STDDEV_SAMPLE_CREATOR_DESC = 'PLANS_STDDEV_SAMPLE_CREATOR_DESC',\n  PLANS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'PLANS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  PLANS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'PLANS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  PLANS_STDDEV_SAMPLE_ID_ASC = 'PLANS_STDDEV_SAMPLE_ID_ASC',\n  PLANS_STDDEV_SAMPLE_ID_DESC = 'PLANS_STDDEV_SAMPLE_ID_DESC',\n  PLANS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'PLANS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  PLANS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'PLANS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  PLANS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'PLANS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  PLANS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'PLANS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  PLANS_STDDEV_SAMPLE_PRICE_ASC = 'PLANS_STDDEV_SAMPLE_PRICE_ASC',\n  PLANS_STDDEV_SAMPLE_PRICE_DESC = 'PLANS_STDDEV_SAMPLE_PRICE_DESC',\n  PLANS_SUM_ACTIVE_ASC = 'PLANS_SUM_ACTIVE_ASC',\n  PLANS_SUM_ACTIVE_DESC = 'PLANS_SUM_ACTIVE_DESC',\n  PLANS_SUM_BLOCK_RANGE_ASC = 'PLANS_SUM_BLOCK_RANGE_ASC',\n  PLANS_SUM_BLOCK_RANGE_DESC = 'PLANS_SUM_BLOCK_RANGE_DESC',\n  PLANS_SUM_CREATED_BLOCK_ASC = 'PLANS_SUM_CREATED_BLOCK_ASC',\n  PLANS_SUM_CREATED_BLOCK_DESC = 'PLANS_SUM_CREATED_BLOCK_DESC',\n  PLANS_SUM_CREATOR_ASC = 'PLANS_SUM_CREATOR_ASC',\n  PLANS_SUM_CREATOR_DESC = 'PLANS_SUM_CREATOR_DESC',\n  PLANS_SUM_DEPLOYMENT_ID_ASC = 'PLANS_SUM_DEPLOYMENT_ID_ASC',\n  PLANS_SUM_DEPLOYMENT_ID_DESC = 'PLANS_SUM_DEPLOYMENT_ID_DESC',\n  PLANS_SUM_ID_ASC = 'PLANS_SUM_ID_ASC',\n  PLANS_SUM_ID_DESC = 'PLANS_SUM_ID_DESC',\n  PLANS_SUM_LAST_EVENT_ASC = 'PLANS_SUM_LAST_EVENT_ASC',\n  PLANS_SUM_LAST_EVENT_DESC = 'PLANS_SUM_LAST_EVENT_DESC',\n  PLANS_SUM_PLAN_TEMPLATE_ID_ASC = 'PLANS_SUM_PLAN_TEMPLATE_ID_ASC',\n  PLANS_SUM_PLAN_TEMPLATE_ID_DESC = 'PLANS_SUM_PLAN_TEMPLATE_ID_DESC',\n  PLANS_SUM_PRICE_ASC = 'PLANS_SUM_PRICE_ASC',\n  PLANS_SUM_PRICE_DESC = 'PLANS_SUM_PRICE_DESC',\n  PLANS_VARIANCE_POPULATION_ACTIVE_ASC = 'PLANS_VARIANCE_POPULATION_ACTIVE_ASC',\n  PLANS_VARIANCE_POPULATION_ACTIVE_DESC = 'PLANS_VARIANCE_POPULATION_ACTIVE_DESC',\n  PLANS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'PLANS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  PLANS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'PLANS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  PLANS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'PLANS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  PLANS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'PLANS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  PLANS_VARIANCE_POPULATION_CREATOR_ASC = 'PLANS_VARIANCE_POPULATION_CREATOR_ASC',\n  PLANS_VARIANCE_POPULATION_CREATOR_DESC = 'PLANS_VARIANCE_POPULATION_CREATOR_DESC',\n  PLANS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'PLANS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  PLANS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'PLANS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  PLANS_VARIANCE_POPULATION_ID_ASC = 'PLANS_VARIANCE_POPULATION_ID_ASC',\n  PLANS_VARIANCE_POPULATION_ID_DESC = 'PLANS_VARIANCE_POPULATION_ID_DESC',\n  PLANS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'PLANS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  PLANS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'PLANS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  PLANS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC = 'PLANS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  PLANS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC = 'PLANS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  PLANS_VARIANCE_POPULATION_PRICE_ASC = 'PLANS_VARIANCE_POPULATION_PRICE_ASC',\n  PLANS_VARIANCE_POPULATION_PRICE_DESC = 'PLANS_VARIANCE_POPULATION_PRICE_DESC',\n  PLANS_VARIANCE_SAMPLE_ACTIVE_ASC = 'PLANS_VARIANCE_SAMPLE_ACTIVE_ASC',\n  PLANS_VARIANCE_SAMPLE_ACTIVE_DESC = 'PLANS_VARIANCE_SAMPLE_ACTIVE_DESC',\n  PLANS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'PLANS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  PLANS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'PLANS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  PLANS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'PLANS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  PLANS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'PLANS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  PLANS_VARIANCE_SAMPLE_CREATOR_ASC = 'PLANS_VARIANCE_SAMPLE_CREATOR_ASC',\n  PLANS_VARIANCE_SAMPLE_CREATOR_DESC = 'PLANS_VARIANCE_SAMPLE_CREATOR_DESC',\n  PLANS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'PLANS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  PLANS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'PLANS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  PLANS_VARIANCE_SAMPLE_ID_ASC = 'PLANS_VARIANCE_SAMPLE_ID_ASC',\n  PLANS_VARIANCE_SAMPLE_ID_DESC = 'PLANS_VARIANCE_SAMPLE_ID_DESC',\n  PLANS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'PLANS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  PLANS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'PLANS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  PLANS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'PLANS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  PLANS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'PLANS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  PLANS_VARIANCE_SAMPLE_PRICE_ASC = 'PLANS_VARIANCE_SAMPLE_PRICE_ASC',\n  PLANS_VARIANCE_SAMPLE_PRICE_DESC = 'PLANS_VARIANCE_SAMPLE_PRICE_DESC',\n  PRICE_TOKEN_ASC = 'PRICE_TOKEN_ASC',\n  PRICE_TOKEN_DESC = 'PRICE_TOKEN_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  RATE_LIMIT_ASC = 'RATE_LIMIT_ASC',\n  RATE_LIMIT_DESC = 'RATE_LIMIT_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_AVERAGE_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_AVERAGE_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_AVERAGE_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_AVERAGE_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_AVERAGE_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_AVERAGE_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_AVERAGE_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_AVERAGE_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_END_TIME_ASC = 'SERVICE_AGREEMENTS_AVERAGE_END_TIME_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_END_TIME_DESC = 'SERVICE_AGREEMENTS_AVERAGE_END_TIME_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_ID_ASC = 'SERVICE_AGREEMENTS_AVERAGE_ID_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_ID_DESC = 'SERVICE_AGREEMENTS_AVERAGE_ID_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_AVERAGE_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_AVERAGE_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_AVERAGE_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_AVERAGE_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_AVERAGE_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_AVERAGE_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_PERIOD_ASC = 'SERVICE_AGREEMENTS_AVERAGE_PERIOD_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_PERIOD_DESC = 'SERVICE_AGREEMENTS_AVERAGE_PERIOD_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_AVERAGE_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_AVERAGE_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_AVERAGE_START_TIME_ASC = 'SERVICE_AGREEMENTS_AVERAGE_START_TIME_ASC',\n  SERVICE_AGREEMENTS_AVERAGE_START_TIME_DESC = 'SERVICE_AGREEMENTS_AVERAGE_START_TIME_DESC',\n  SERVICE_AGREEMENTS_BY_PLAN_TEMPLATE_ID__COUNT_ASC = 'SERVICE_AGREEMENTS_BY_PLAN_TEMPLATE_ID__COUNT_ASC',\n  SERVICE_AGREEMENTS_BY_PLAN_TEMPLATE_ID__COUNT_DESC = 'SERVICE_AGREEMENTS_BY_PLAN_TEMPLATE_ID__COUNT_DESC',\n  SERVICE_AGREEMENTS_COUNT_ASC = 'SERVICE_AGREEMENTS_COUNT_ASC',\n  SERVICE_AGREEMENTS_COUNT_DESC = 'SERVICE_AGREEMENTS_COUNT_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_END_TIME_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_END_TIME_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_END_TIME_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_END_TIME_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_ID_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_ID_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_ID_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_ID_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_PERIOD_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_PERIOD_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_PERIOD_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_PERIOD_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_START_TIME_ASC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_START_TIME_ASC',\n  SERVICE_AGREEMENTS_DISTINCT_COUNT_START_TIME_DESC = 'SERVICE_AGREEMENTS_DISTINCT_COUNT_START_TIME_DESC',\n  SERVICE_AGREEMENTS_MAX_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_MAX_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_MAX_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_MAX_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_MAX_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_MAX_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_MAX_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_MAX_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_MAX_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_MAX_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_MAX_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_MAX_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_MAX_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_MAX_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_MAX_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_MAX_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_MAX_END_TIME_ASC = 'SERVICE_AGREEMENTS_MAX_END_TIME_ASC',\n  SERVICE_AGREEMENTS_MAX_END_TIME_DESC = 'SERVICE_AGREEMENTS_MAX_END_TIME_DESC',\n  SERVICE_AGREEMENTS_MAX_ID_ASC = 'SERVICE_AGREEMENTS_MAX_ID_ASC',\n  SERVICE_AGREEMENTS_MAX_ID_DESC = 'SERVICE_AGREEMENTS_MAX_ID_DESC',\n  SERVICE_AGREEMENTS_MAX_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_MAX_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_MAX_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_MAX_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_MAX_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_MAX_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_MAX_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_MAX_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_MAX_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_MAX_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_MAX_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_MAX_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_MAX_PERIOD_ASC = 'SERVICE_AGREEMENTS_MAX_PERIOD_ASC',\n  SERVICE_AGREEMENTS_MAX_PERIOD_DESC = 'SERVICE_AGREEMENTS_MAX_PERIOD_DESC',\n  SERVICE_AGREEMENTS_MAX_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_MAX_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_MAX_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_MAX_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_MAX_START_TIME_ASC = 'SERVICE_AGREEMENTS_MAX_START_TIME_ASC',\n  SERVICE_AGREEMENTS_MAX_START_TIME_DESC = 'SERVICE_AGREEMENTS_MAX_START_TIME_DESC',\n  SERVICE_AGREEMENTS_MIN_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_MIN_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_MIN_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_MIN_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_MIN_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_MIN_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_MIN_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_MIN_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_MIN_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_MIN_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_MIN_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_MIN_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_MIN_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_MIN_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_MIN_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_MIN_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_MIN_END_TIME_ASC = 'SERVICE_AGREEMENTS_MIN_END_TIME_ASC',\n  SERVICE_AGREEMENTS_MIN_END_TIME_DESC = 'SERVICE_AGREEMENTS_MIN_END_TIME_DESC',\n  SERVICE_AGREEMENTS_MIN_ID_ASC = 'SERVICE_AGREEMENTS_MIN_ID_ASC',\n  SERVICE_AGREEMENTS_MIN_ID_DESC = 'SERVICE_AGREEMENTS_MIN_ID_DESC',\n  SERVICE_AGREEMENTS_MIN_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_MIN_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_MIN_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_MIN_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_MIN_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_MIN_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_MIN_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_MIN_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_MIN_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_MIN_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_MIN_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_MIN_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_MIN_PERIOD_ASC = 'SERVICE_AGREEMENTS_MIN_PERIOD_ASC',\n  SERVICE_AGREEMENTS_MIN_PERIOD_DESC = 'SERVICE_AGREEMENTS_MIN_PERIOD_DESC',\n  SERVICE_AGREEMENTS_MIN_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_MIN_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_MIN_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_MIN_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_MIN_START_TIME_ASC = 'SERVICE_AGREEMENTS_MIN_START_TIME_ASC',\n  SERVICE_AGREEMENTS_MIN_START_TIME_DESC = 'SERVICE_AGREEMENTS_MIN_START_TIME_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_END_TIME_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_END_TIME_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_END_TIME_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_END_TIME_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_PERIOD_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_PERIOD_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_PERIOD_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_PERIOD_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_START_TIME_ASC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_START_TIME_ASC',\n  SERVICE_AGREEMENTS_STDDEV_POPULATION_START_TIME_DESC = 'SERVICE_AGREEMENTS_STDDEV_POPULATION_START_TIME_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_END_TIME_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_END_TIME_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_END_TIME_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_END_TIME_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_PERIOD_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_PERIOD_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_PERIOD_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_PERIOD_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_START_TIME_ASC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_START_TIME_ASC',\n  SERVICE_AGREEMENTS_STDDEV_SAMPLE_START_TIME_DESC = 'SERVICE_AGREEMENTS_STDDEV_SAMPLE_START_TIME_DESC',\n  SERVICE_AGREEMENTS_SUM_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_SUM_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_SUM_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_SUM_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_SUM_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_SUM_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_SUM_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_SUM_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_SUM_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_SUM_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_SUM_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_SUM_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_SUM_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_SUM_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_SUM_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_SUM_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_SUM_END_TIME_ASC = 'SERVICE_AGREEMENTS_SUM_END_TIME_ASC',\n  SERVICE_AGREEMENTS_SUM_END_TIME_DESC = 'SERVICE_AGREEMENTS_SUM_END_TIME_DESC',\n  SERVICE_AGREEMENTS_SUM_ID_ASC = 'SERVICE_AGREEMENTS_SUM_ID_ASC',\n  SERVICE_AGREEMENTS_SUM_ID_DESC = 'SERVICE_AGREEMENTS_SUM_ID_DESC',\n  SERVICE_AGREEMENTS_SUM_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_SUM_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_SUM_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_SUM_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_SUM_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_SUM_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_SUM_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_SUM_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_SUM_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_SUM_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_SUM_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_SUM_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_SUM_PERIOD_ASC = 'SERVICE_AGREEMENTS_SUM_PERIOD_ASC',\n  SERVICE_AGREEMENTS_SUM_PERIOD_DESC = 'SERVICE_AGREEMENTS_SUM_PERIOD_DESC',\n  SERVICE_AGREEMENTS_SUM_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_SUM_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_SUM_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_SUM_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_SUM_START_TIME_ASC = 'SERVICE_AGREEMENTS_SUM_START_TIME_ASC',\n  SERVICE_AGREEMENTS_SUM_START_TIME_DESC = 'SERVICE_AGREEMENTS_SUM_START_TIME_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_END_TIME_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_END_TIME_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_END_TIME_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_END_TIME_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_PERIOD_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_PERIOD_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_PERIOD_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_PERIOD_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_START_TIME_ASC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_START_TIME_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_POPULATION_START_TIME_DESC = 'SERVICE_AGREEMENTS_VARIANCE_POPULATION_START_TIME_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CONSUMER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CONSUMER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CONSUMER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CONSUMER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_END_TIME_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_END_TIME_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_END_TIME_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_END_TIME_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_INDEXER_ADDRESS_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_INDEXER_ADDRESS_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_INDEXER_ADDRESS_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_INDEXER_ADDRESS_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LOCKED_AMOUNT_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LOCKED_AMOUNT_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LOCKED_AMOUNT_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_LOCKED_AMOUNT_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PERIOD_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PERIOD_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PERIOD_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PERIOD_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_PLAN_TEMPLATE_ID_DESC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_START_TIME_ASC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_START_TIME_ASC',\n  SERVICE_AGREEMENTS_VARIANCE_SAMPLE_START_TIME_DESC = 'SERVICE_AGREEMENTS_VARIANCE_SAMPLE_START_TIME_DESC',\n}\n\nexport type PlanVariancePopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly price: InputMaybe<BigFloatFilter>;\n};\n\nexport type PlanVariancePopulationAggregates = {\n  readonly __typename: 'PlanVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PlanVarianceSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly price: InputMaybe<BigFloatFilter>;\n};\n\nexport type PlanVarianceSampleAggregates = {\n  readonly __typename: 'PlanVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Plan` values. */\nexport type PlansConnection = {\n  readonly __typename: 'PlansConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<PlanAggregates>;\n  /** A list of edges which contains the `Plan` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<PlansEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<PlanAggregates>>;\n  /** A list of `Plan` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Plan>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Plan` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Plan` values. */\nexport type PlansConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<PlansGroupBy>;\n  having: InputMaybe<PlansHavingInput>;\n};\n\n/** A `Plan` edge in the connection. */\nexport type PlansEdge = {\n  readonly __typename: 'PlansEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Plan` at the end of the edge. */\n  readonly node: Maybe<Plan>;\n};\n\n/** Grouping methods for `Plan` for usage during aggregation. */\nexport enum PlansGroupBy {\n  ACTIVE = 'ACTIVE',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  CREATOR = 'CREATOR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  PLAN_TEMPLATE_ID = 'PLAN_TEMPLATE_ID',\n  PRICE = 'PRICE',\n}\n\nexport type PlansHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlansHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `Plan` aggregates. */\nexport type PlansHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<PlansHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<PlansHavingInput>>;\n  readonly average: InputMaybe<PlansHavingAverageInput>;\n  readonly distinctCount: InputMaybe<PlansHavingDistinctCountInput>;\n  readonly max: InputMaybe<PlansHavingMaxInput>;\n  readonly min: InputMaybe<PlansHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<PlansHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<PlansHavingStddevSampleInput>;\n  readonly sum: InputMaybe<PlansHavingSumInput>;\n  readonly variancePopulation: InputMaybe<PlansHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<PlansHavingVarianceSampleInput>;\n};\n\nexport type PlansHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlansHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlansHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlansHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlansHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlansHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type PlansHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `Plan`. */\nexport enum PlansOrderBy {\n  ACTIVE_ASC = 'ACTIVE_ASC',\n  ACTIVE_DESC = 'ACTIVE_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  CREATOR_ASC = 'CREATOR_ASC',\n  CREATOR_DESC = 'CREATOR_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_DESC',\n  PLAN_TEMPLATE_ID_ASC = 'PLAN_TEMPLATE_ID_ASC',\n  PLAN_TEMPLATE_ID_DESC = 'PLAN_TEMPLATE_ID_DESC',\n  PRICE_ASC = 'PRICE_ASC',\n  PRICE_DESC = 'PRICE_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type PriceOracle = Node & {\n  readonly __typename: 'PriceOracle';\n  readonly afterPrice: Scalars['BigFloat']['output'];\n  readonly beforePrice: Scalars['BigFloat']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly fromToken: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly toToken: Scalars['String']['output'];\n};\n\nexport type PriceOracleAggregates = {\n  readonly __typename: 'PriceOracleAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<PriceOracleAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<PriceOracleDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<PriceOracleMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<PriceOracleMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<PriceOracleStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<PriceOracleStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<PriceOracleSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<PriceOracleVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<PriceOracleVarianceSampleAggregates>;\n};\n\nexport type PriceOracleAverageAggregates = {\n  readonly __typename: 'PriceOracleAverageAggregates';\n  /** Mean average of afterPrice across the matching connection */\n  readonly afterPrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of beforePrice across the matching connection */\n  readonly beforePrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PriceOracleDistinctCountAggregates = {\n  readonly __typename: 'PriceOracleDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of afterPrice across the matching connection */\n  readonly afterPrice: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of beforePrice across the matching connection */\n  readonly beforePrice: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of fromToken across the matching connection */\n  readonly fromToken: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of toToken across the matching connection */\n  readonly toToken: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `PriceOracle` object types. All fields are combined with a logical ‘and.’ */\nexport type PriceOracleFilter = {\n  /** Filter by the object’s `afterPrice` field. */\n  readonly afterPrice: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<PriceOracleFilter>>;\n  /** Filter by the object’s `beforePrice` field. */\n  readonly beforePrice: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `fromToken` field. */\n  readonly fromToken: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<PriceOracleFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<PriceOracleFilter>>;\n  /** Filter by the object’s `toToken` field. */\n  readonly toToken: InputMaybe<StringFilter>;\n};\n\nexport type PriceOracleMaxAggregates = {\n  readonly __typename: 'PriceOracleMaxAggregates';\n  /** Maximum of afterPrice across the matching connection */\n  readonly afterPrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of beforePrice across the matching connection */\n  readonly beforePrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PriceOracleMinAggregates = {\n  readonly __typename: 'PriceOracleMinAggregates';\n  /** Minimum of afterPrice across the matching connection */\n  readonly afterPrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of beforePrice across the matching connection */\n  readonly beforePrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PriceOracleStddevPopulationAggregates = {\n  readonly __typename: 'PriceOracleStddevPopulationAggregates';\n  /** Population standard deviation of afterPrice across the matching connection */\n  readonly afterPrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of beforePrice across the matching connection */\n  readonly beforePrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PriceOracleStddevSampleAggregates = {\n  readonly __typename: 'PriceOracleStddevSampleAggregates';\n  /** Sample standard deviation of afterPrice across the matching connection */\n  readonly afterPrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of beforePrice across the matching connection */\n  readonly beforePrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PriceOracleSumAggregates = {\n  readonly __typename: 'PriceOracleSumAggregates';\n  /** Sum of afterPrice across the matching connection */\n  readonly afterPrice: Scalars['BigFloat']['output'];\n  /** Sum of beforePrice across the matching connection */\n  readonly beforePrice: Scalars['BigFloat']['output'];\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\nexport type PriceOracleVariancePopulationAggregates = {\n  readonly __typename: 'PriceOracleVariancePopulationAggregates';\n  /** Population variance of afterPrice across the matching connection */\n  readonly afterPrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of beforePrice across the matching connection */\n  readonly beforePrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type PriceOracleVarianceSampleAggregates = {\n  readonly __typename: 'PriceOracleVarianceSampleAggregates';\n  /** Sample variance of afterPrice across the matching connection */\n  readonly afterPrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of beforePrice across the matching connection */\n  readonly beforePrice: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `PriceOracle` values. */\nexport type PriceOraclesConnection = {\n  readonly __typename: 'PriceOraclesConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<PriceOracleAggregates>;\n  /** A list of edges which contains the `PriceOracle` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<PriceOraclesEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<PriceOracleAggregates>>;\n  /** A list of `PriceOracle` objects. */\n  readonly nodes: ReadonlyArray<Maybe<PriceOracle>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `PriceOracle` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `PriceOracle` values. */\nexport type PriceOraclesConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<PriceOraclesGroupBy>;\n  having: InputMaybe<PriceOraclesHavingInput>;\n};\n\n/** A `PriceOracle` edge in the connection. */\nexport type PriceOraclesEdge = {\n  readonly __typename: 'PriceOraclesEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `PriceOracle` at the end of the edge. */\n  readonly node: Maybe<PriceOracle>;\n};\n\n/** Grouping methods for `PriceOracle` for usage during aggregation. */\nexport enum PriceOraclesGroupBy {\n  AFTER_PRICE = 'AFTER_PRICE',\n  BEFORE_PRICE = 'BEFORE_PRICE',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  FROM_TOKEN = 'FROM_TOKEN',\n  ID = 'ID',\n  TO_TOKEN = 'TO_TOKEN',\n}\n\nexport type PriceOraclesHavingAverageInput = {\n  readonly afterPrice: InputMaybe<HavingBigfloatFilter>;\n  readonly beforePrice: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type PriceOraclesHavingDistinctCountInput = {\n  readonly afterPrice: InputMaybe<HavingBigfloatFilter>;\n  readonly beforePrice: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `PriceOracle` aggregates. */\nexport type PriceOraclesHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<PriceOraclesHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<PriceOraclesHavingInput>>;\n  readonly average: InputMaybe<PriceOraclesHavingAverageInput>;\n  readonly distinctCount: InputMaybe<PriceOraclesHavingDistinctCountInput>;\n  readonly max: InputMaybe<PriceOraclesHavingMaxInput>;\n  readonly min: InputMaybe<PriceOraclesHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<PriceOraclesHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<PriceOraclesHavingStddevSampleInput>;\n  readonly sum: InputMaybe<PriceOraclesHavingSumInput>;\n  readonly variancePopulation: InputMaybe<PriceOraclesHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<PriceOraclesHavingVarianceSampleInput>;\n};\n\nexport type PriceOraclesHavingMaxInput = {\n  readonly afterPrice: InputMaybe<HavingBigfloatFilter>;\n  readonly beforePrice: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type PriceOraclesHavingMinInput = {\n  readonly afterPrice: InputMaybe<HavingBigfloatFilter>;\n  readonly beforePrice: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type PriceOraclesHavingStddevPopulationInput = {\n  readonly afterPrice: InputMaybe<HavingBigfloatFilter>;\n  readonly beforePrice: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type PriceOraclesHavingStddevSampleInput = {\n  readonly afterPrice: InputMaybe<HavingBigfloatFilter>;\n  readonly beforePrice: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type PriceOraclesHavingSumInput = {\n  readonly afterPrice: InputMaybe<HavingBigfloatFilter>;\n  readonly beforePrice: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type PriceOraclesHavingVariancePopulationInput = {\n  readonly afterPrice: InputMaybe<HavingBigfloatFilter>;\n  readonly beforePrice: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type PriceOraclesHavingVarianceSampleInput = {\n  readonly afterPrice: InputMaybe<HavingBigfloatFilter>;\n  readonly beforePrice: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `PriceOracle`. */\nexport enum PriceOraclesOrderBy {\n  AFTER_PRICE_ASC = 'AFTER_PRICE_ASC',\n  AFTER_PRICE_DESC = 'AFTER_PRICE_DESC',\n  BEFORE_PRICE_ASC = 'BEFORE_PRICE_ASC',\n  BEFORE_PRICE_DESC = 'BEFORE_PRICE_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  FROM_TOKEN_ASC = 'FROM_TOKEN_ASC',\n  FROM_TOKEN_DESC = 'FROM_TOKEN_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  TO_TOKEN_ASC = 'TO_TOKEN_ASC',\n  TO_TOKEN_DESC = 'TO_TOKEN_DESC',\n}\n\nexport type Project = Node & {\n  readonly __typename: 'Project';\n  readonly boostAllocationRatio: Scalars['BigFloat']['output'];\n  /** Reads and enables pagination through a set of `ConsumerQueryRewardSummary`. */\n  readonly consumerQueryRewardSummaries: ConsumerQueryRewardSummariesConnection;\n  /** Reads and enables pagination through a set of `ConsumerQueryReward`. */\n  readonly consumerQueryRewards: ConsumerQueryRewardsConnection;\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly createdTimestamp: Scalars['Datetime']['output'];\n  /** Reads and enables pagination through a set of `DeploymentBoosterSummary`. */\n  readonly deploymentBoosterSummaries: DeploymentBoosterSummariesConnection;\n  /** Reads and enables pagination through a set of `DeploymentBooster`. */\n  readonly deploymentBoosters: DeploymentBoostersConnection;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly deploymentMetadata: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deployments: DeploymentsConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByConsumerQueryRewardProjectIdAndDeploymentId: ProjectDeploymentsByConsumerQueryRewardProjectIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentId: ProjectDeploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByDeploymentBoosterProjectIdAndDeploymentId: ProjectDeploymentsByDeploymentBoosterProjectIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentId: ProjectDeploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerAllocationProjectIdAndDeploymentId: ProjectDeploymentsByIndexerAllocationProjectIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerAllocationRewardProjectIdAndDeploymentId: ProjectDeploymentsByIndexerAllocationRewardProjectIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentId: ProjectDeploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deploymentsByIndexerAllocationSummaryProjectIdAndDeploymentId: ProjectDeploymentsByIndexerAllocationSummaryProjectIdAndDeploymentIdManyToManyConnection;\n  readonly id: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: IndexerAllocationRewardSummariesConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: IndexerAllocationRewardsConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: IndexerAllocationSummariesConnection;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: IndexerAllocationsConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerAllocationProjectIdAndIndexerId: ProjectIndexersByIndexerAllocationProjectIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerAllocationRewardProjectIdAndIndexerId: ProjectIndexersByIndexerAllocationRewardProjectIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerAllocationRewardSummaryProjectIdAndIndexerId: ProjectIndexersByIndexerAllocationRewardSummaryProjectIdAndIndexerIdManyToManyConnection;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByIndexerAllocationSummaryProjectIdAndIndexerId: ProjectIndexersByIndexerAllocationSummaryProjectIdAndIndexerIdManyToManyConnection;\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  readonly metadata: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly owner: Scalars['String']['output'];\n  readonly totalAllocation: Scalars['BigFloat']['output'];\n  readonly totalBoost: Scalars['BigFloat']['output'];\n  readonly totalReward: Scalars['BigFloat']['output'];\n  readonly type: ProjectType;\n  readonly updatedTimestamp: Scalars['Datetime']['output'];\n};\n\nexport type ProjectConsumerQueryRewardSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Reward_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectConsumerQueryRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<ConsumerQueryRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentBoosterSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Booster_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentBoosterSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentBoosterSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentBoostersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Boosters_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentBoosterFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentBoostersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentsByConsumerQueryRewardProjectIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentsByDeploymentBoosterProjectIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentsByIndexerAllocationProjectIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentsByIndexerAllocationRewardProjectIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectDeploymentsByIndexerAllocationSummaryProjectIdAndDeploymentIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectIndexerAllocationRewardSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectIndexerAllocationRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectIndexerAllocationSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectIndexersByIndexerAllocationProjectIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectIndexersByIndexerAllocationRewardProjectIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectIndexersByIndexerAllocationRewardSummaryProjectIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectIndexersByIndexerAllocationSummaryProjectIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ProjectAggregates = {\n  readonly __typename: 'ProjectAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<ProjectAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<ProjectDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<ProjectMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<ProjectMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<ProjectStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<ProjectStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<ProjectSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<ProjectVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<ProjectVarianceSampleAggregates>;\n};\n\nexport type ProjectAverageAggregates = {\n  readonly __typename: 'ProjectAverageAggregates';\n  /** Mean average of boostAllocationRatio across the matching connection */\n  readonly boostAllocationRatio: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalAllocation across the matching connection */\n  readonly totalAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalBoost across the matching connection */\n  readonly totalBoost: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `ConsumerQueryReward`. */\nexport type ProjectDeploymentsByConsumerQueryRewardProjectIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'ProjectDeploymentsByConsumerQueryRewardProjectIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `ConsumerQueryReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectDeploymentsByConsumerQueryRewardProjectIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `ConsumerQueryReward`. */\nexport type ProjectDeploymentsByConsumerQueryRewardProjectIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentsGroupBy>;\n  having: InputMaybe<DeploymentsHavingInput>;\n};\n\n/** A `Deployment` edge in the connection, with data from `ConsumerQueryReward`. */\nexport type ProjectDeploymentsByConsumerQueryRewardProjectIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'ProjectDeploymentsByConsumerQueryRewardProjectIdAndDeploymentIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `ConsumerQueryReward`. */\n  readonly consumerQueryRewards: ConsumerQueryRewardsConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `ConsumerQueryReward`. */\nexport type ProjectDeploymentsByConsumerQueryRewardProjectIdAndDeploymentIdManyToManyEdgeConsumerQueryRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<ConsumerQueryRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `ConsumerQueryRewardSummary`. */\nexport type ProjectDeploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'ProjectDeploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `ConsumerQueryRewardSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectDeploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `ConsumerQueryRewardSummary`. */\nexport type ProjectDeploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `ConsumerQueryRewardSummary`. */\nexport type ProjectDeploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'ProjectDeploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `ConsumerQueryRewardSummary`. */\n  readonly consumerQueryRewardSummaries: ConsumerQueryRewardSummariesConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `ConsumerQueryRewardSummary`. */\nexport type ProjectDeploymentsByConsumerQueryRewardSummaryProjectIdAndDeploymentIdManyToManyEdgeConsumerQueryRewardSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Reward_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Deployment` values, with data from `DeploymentBooster`. */\nexport type ProjectDeploymentsByDeploymentBoosterProjectIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'ProjectDeploymentsByDeploymentBoosterProjectIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `DeploymentBooster`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectDeploymentsByDeploymentBoosterProjectIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `DeploymentBooster`. */\nexport type ProjectDeploymentsByDeploymentBoosterProjectIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentsGroupBy>;\n  having: InputMaybe<DeploymentsHavingInput>;\n};\n\n/** A `Deployment` edge in the connection, with data from `DeploymentBooster`. */\nexport type ProjectDeploymentsByDeploymentBoosterProjectIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'ProjectDeploymentsByDeploymentBoosterProjectIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `DeploymentBooster`. */\n  readonly deploymentBoosters: DeploymentBoostersConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `DeploymentBooster`. */\nexport type ProjectDeploymentsByDeploymentBoosterProjectIdAndDeploymentIdManyToManyEdgeDeploymentBoostersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Boosters_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentBoosterFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentBoostersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `DeploymentBoosterSummary`. */\nexport type ProjectDeploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'ProjectDeploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `DeploymentBoosterSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectDeploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `DeploymentBoosterSummary`. */\nexport type ProjectDeploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `DeploymentBoosterSummary`. */\nexport type ProjectDeploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'ProjectDeploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `DeploymentBoosterSummary`. */\n  readonly deploymentBoosterSummaries: DeploymentBoosterSummariesConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `DeploymentBoosterSummary`. */\nexport type ProjectDeploymentsByDeploymentBoosterSummaryProjectIdAndDeploymentIdManyToManyEdgeDeploymentBoosterSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Booster_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<DeploymentBoosterSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<DeploymentBoosterSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocation`. */\nexport type ProjectDeploymentsByIndexerAllocationProjectIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'ProjectDeploymentsByIndexerAllocationProjectIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerAllocation`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectDeploymentsByIndexerAllocationProjectIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocation`. */\nexport type ProjectDeploymentsByIndexerAllocationProjectIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<DeploymentsGroupBy>;\n  having: InputMaybe<DeploymentsHavingInput>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocation`. */\nexport type ProjectDeploymentsByIndexerAllocationProjectIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'ProjectDeploymentsByIndexerAllocationProjectIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: IndexerAllocationsConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocation`. */\nexport type ProjectDeploymentsByIndexerAllocationProjectIdAndDeploymentIdManyToManyEdgeIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationReward`. */\nexport type ProjectDeploymentsByIndexerAllocationRewardProjectIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'ProjectDeploymentsByIndexerAllocationRewardProjectIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerAllocationReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectDeploymentsByIndexerAllocationRewardProjectIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationReward`. */\nexport type ProjectDeploymentsByIndexerAllocationRewardProjectIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type ProjectDeploymentsByIndexerAllocationRewardProjectIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'ProjectDeploymentsByIndexerAllocationRewardProjectIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: IndexerAllocationRewardsConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type ProjectDeploymentsByIndexerAllocationRewardProjectIdAndDeploymentIdManyToManyEdgeIndexerAllocationRewardsArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationRewardSummary`. */\nexport type ProjectDeploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'ProjectDeploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerAllocationRewardSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectDeploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationRewardSummary`. */\nexport type ProjectDeploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type ProjectDeploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'ProjectDeploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: IndexerAllocationRewardSummariesConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type ProjectDeploymentsByIndexerAllocationRewardSummaryProjectIdAndDeploymentIdManyToManyEdgeIndexerAllocationRewardSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationSummary`. */\nexport type ProjectDeploymentsByIndexerAllocationSummaryProjectIdAndDeploymentIdManyToManyConnection = {\n  readonly __typename: 'ProjectDeploymentsByIndexerAllocationSummaryProjectIdAndDeploymentIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<DeploymentAggregates>;\n  /** A list of edges which contains the `Deployment`, info from the `IndexerAllocationSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectDeploymentsByIndexerAllocationSummaryProjectIdAndDeploymentIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<DeploymentAggregates>>;\n  /** A list of `Deployment` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Deployment>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Deployment` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Deployment` values, with data from `IndexerAllocationSummary`. */\nexport type ProjectDeploymentsByIndexerAllocationSummaryProjectIdAndDeploymentIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<DeploymentsGroupBy>;\n    having: InputMaybe<DeploymentsHavingInput>;\n  };\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type ProjectDeploymentsByIndexerAllocationSummaryProjectIdAndDeploymentIdManyToManyEdge = {\n  readonly __typename: 'ProjectDeploymentsByIndexerAllocationSummaryProjectIdAndDeploymentIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: IndexerAllocationSummariesConnection;\n  /** The `Deployment` at the end of the edge. */\n  readonly node: Maybe<Deployment>;\n};\n\n/** A `Deployment` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type ProjectDeploymentsByIndexerAllocationSummaryProjectIdAndDeploymentIdManyToManyEdgeIndexerAllocationSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\nexport type ProjectDistinctCountAggregates = {\n  readonly __typename: 'ProjectDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of boostAllocationRatio across the matching connection */\n  readonly boostAllocationRatio: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdTimestamp across the matching connection */\n  readonly createdTimestamp: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentMetadata across the matching connection */\n  readonly deploymentMetadata: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of metadata across the matching connection */\n  readonly metadata: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of owner across the matching connection */\n  readonly owner: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalAllocation across the matching connection */\n  readonly totalAllocation: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalBoost across the matching connection */\n  readonly totalBoost: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of type across the matching connection */\n  readonly type: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updatedTimestamp across the matching connection */\n  readonly updatedTimestamp: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Project` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<ProjectFilter>>;\n  /** Filter by the object’s `boostAllocationRatio` field. */\n  readonly boostAllocationRatio: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `consumerQueryRewardSummaries` relation. */\n  readonly consumerQueryRewardSummaries: InputMaybe<ProjectToManyConsumerQueryRewardSummaryFilter>;\n  /** Some related `consumerQueryRewardSummaries` exist. */\n  readonly consumerQueryRewardSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `consumerQueryRewards` relation. */\n  readonly consumerQueryRewards: InputMaybe<ProjectToManyConsumerQueryRewardFilter>;\n  /** Some related `consumerQueryRewards` exist. */\n  readonly consumerQueryRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `createdTimestamp` field. */\n  readonly createdTimestamp: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `deploymentBoosterSummaries` relation. */\n  readonly deploymentBoosterSummaries: InputMaybe<ProjectToManyDeploymentBoosterSummaryFilter>;\n  /** Some related `deploymentBoosterSummaries` exist. */\n  readonly deploymentBoosterSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `deploymentBoosters` relation. */\n  readonly deploymentBoosters: InputMaybe<ProjectToManyDeploymentBoosterFilter>;\n  /** Some related `deploymentBoosters` exist. */\n  readonly deploymentBoostersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `deploymentMetadata` field. */\n  readonly deploymentMetadata: InputMaybe<StringFilter>;\n  /** Filter by the object’s `deployments` relation. */\n  readonly deployments: InputMaybe<ProjectToManyDeploymentFilter>;\n  /** Some related `deployments` exist. */\n  readonly deploymentsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerAllocationRewardSummaries` relation. */\n  readonly indexerAllocationRewardSummaries: InputMaybe<ProjectToManyIndexerAllocationRewardSummaryFilter>;\n  /** Some related `indexerAllocationRewardSummaries` exist. */\n  readonly indexerAllocationRewardSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocationRewards` relation. */\n  readonly indexerAllocationRewards: InputMaybe<ProjectToManyIndexerAllocationRewardFilter>;\n  /** Some related `indexerAllocationRewards` exist. */\n  readonly indexerAllocationRewardsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocationSummaries` relation. */\n  readonly indexerAllocationSummaries: InputMaybe<ProjectToManyIndexerAllocationSummaryFilter>;\n  /** Some related `indexerAllocationSummaries` exist. */\n  readonly indexerAllocationSummariesExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `indexerAllocations` relation. */\n  readonly indexerAllocations: InputMaybe<ProjectToManyIndexerAllocationFilter>;\n  /** Some related `indexerAllocations` exist. */\n  readonly indexerAllocationsExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Filter by the object’s `metadata` field. */\n  readonly metadata: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<ProjectFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<ProjectFilter>>;\n  /** Filter by the object’s `owner` field. */\n  readonly owner: InputMaybe<StringFilter>;\n  /** Filter by the object’s `totalAllocation` field. */\n  readonly totalAllocation: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalBoost` field. */\n  readonly totalBoost: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `totalReward` field. */\n  readonly totalReward: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `type` field. */\n  readonly type: InputMaybe<ProjectTypeFilter>;\n  /** Filter by the object’s `updatedTimestamp` field. */\n  readonly updatedTimestamp: InputMaybe<DatetimeFilter>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocation`. */\nexport type ProjectIndexersByIndexerAllocationProjectIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'ProjectIndexersByIndexerAllocationProjectIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerAllocation`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectIndexersByIndexerAllocationProjectIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocation`. */\nexport type ProjectIndexersByIndexerAllocationProjectIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocation`. */\nexport type ProjectIndexersByIndexerAllocationProjectIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'ProjectIndexersByIndexerAllocationProjectIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: IndexerAllocationsConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocation`. */\nexport type ProjectIndexersByIndexerAllocationProjectIdAndIndexerIdManyToManyEdgeIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationReward`. */\nexport type ProjectIndexersByIndexerAllocationRewardProjectIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'ProjectIndexersByIndexerAllocationRewardProjectIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerAllocationReward`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectIndexersByIndexerAllocationRewardProjectIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationReward`. */\nexport type ProjectIndexersByIndexerAllocationRewardProjectIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type ProjectIndexersByIndexerAllocationRewardProjectIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'ProjectIndexersByIndexerAllocationRewardProjectIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: IndexerAllocationRewardsConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationReward`. */\nexport type ProjectIndexersByIndexerAllocationRewardProjectIdAndIndexerIdManyToManyEdgeIndexerAllocationRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationRewardSummary`. */\nexport type ProjectIndexersByIndexerAllocationRewardSummaryProjectIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'ProjectIndexersByIndexerAllocationRewardSummaryProjectIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerAllocationRewardSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectIndexersByIndexerAllocationRewardSummaryProjectIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationRewardSummary`. */\nexport type ProjectIndexersByIndexerAllocationRewardSummaryProjectIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<IndexersGroupBy>;\n    having: InputMaybe<IndexersHavingInput>;\n  };\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type ProjectIndexersByIndexerAllocationRewardSummaryProjectIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'ProjectIndexersByIndexerAllocationRewardSummaryProjectIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: IndexerAllocationRewardSummariesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationRewardSummary`. */\nexport type ProjectIndexersByIndexerAllocationRewardSummaryProjectIdAndIndexerIdManyToManyEdgeIndexerAllocationRewardSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationSummary`. */\nexport type ProjectIndexersByIndexerAllocationSummaryProjectIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'ProjectIndexersByIndexerAllocationSummaryProjectIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `IndexerAllocationSummary`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectIndexersByIndexerAllocationSummaryProjectIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `IndexerAllocationSummary`. */\nexport type ProjectIndexersByIndexerAllocationSummaryProjectIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<IndexersGroupBy>;\n  having: InputMaybe<IndexersHavingInput>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type ProjectIndexersByIndexerAllocationSummaryProjectIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'ProjectIndexersByIndexerAllocationSummaryProjectIdAndIndexerIdManyToManyEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: IndexerAllocationSummariesConnection;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `IndexerAllocationSummary`. */\nexport type ProjectIndexersByIndexerAllocationSummaryProjectIdAndIndexerIdManyToManyEdgeIndexerAllocationSummariesArgs =\n  {\n    after: InputMaybe<Scalars['Cursor']['input']>;\n    before: InputMaybe<Scalars['Cursor']['input']>;\n    blockHeight?: InputMaybe<Scalars['String']['input']>;\n    distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n    filter: InputMaybe<IndexerAllocationSummaryFilter>;\n    first: InputMaybe<Scalars['Int']['input']>;\n    last: InputMaybe<Scalars['Int']['input']>;\n    offset: InputMaybe<Scalars['Int']['input']>;\n    orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n    orderByNull: InputMaybe<NullOrder>;\n  };\n\nexport type ProjectMaxAggregates = {\n  readonly __typename: 'ProjectMaxAggregates';\n  /** Maximum of boostAllocationRatio across the matching connection */\n  readonly boostAllocationRatio: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of totalAllocation across the matching connection */\n  readonly totalAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalBoost across the matching connection */\n  readonly totalBoost: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ProjectMinAggregates = {\n  readonly __typename: 'ProjectMinAggregates';\n  /** Minimum of boostAllocationRatio across the matching connection */\n  readonly boostAllocationRatio: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of totalAllocation across the matching connection */\n  readonly totalAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalBoost across the matching connection */\n  readonly totalBoost: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ProjectStddevPopulationAggregates = {\n  readonly __typename: 'ProjectStddevPopulationAggregates';\n  /** Population standard deviation of boostAllocationRatio across the matching connection */\n  readonly boostAllocationRatio: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalAllocation across the matching connection */\n  readonly totalAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalBoost across the matching connection */\n  readonly totalBoost: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ProjectStddevSampleAggregates = {\n  readonly __typename: 'ProjectStddevSampleAggregates';\n  /** Sample standard deviation of boostAllocationRatio across the matching connection */\n  readonly boostAllocationRatio: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalAllocation across the matching connection */\n  readonly totalAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalBoost across the matching connection */\n  readonly totalBoost: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ProjectSumAggregates = {\n  readonly __typename: 'ProjectSumAggregates';\n  /** Sum of boostAllocationRatio across the matching connection */\n  readonly boostAllocationRatio: Scalars['BigFloat']['output'];\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of totalAllocation across the matching connection */\n  readonly totalAllocation: Scalars['BigFloat']['output'];\n  /** Sum of totalBoost across the matching connection */\n  readonly totalBoost: Scalars['BigFloat']['output'];\n  /** Sum of totalReward across the matching connection */\n  readonly totalReward: Scalars['BigFloat']['output'];\n};\n\n/** A filter to be used against many `ConsumerQueryReward` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectToManyConsumerQueryRewardFilter = {\n  /** Aggregates across related `ConsumerQueryReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<ConsumerQueryRewardAggregatesFilter>;\n  /** Every related `ConsumerQueryReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<ConsumerQueryRewardFilter>;\n  /** No related `ConsumerQueryReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<ConsumerQueryRewardFilter>;\n  /** Some related `ConsumerQueryReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<ConsumerQueryRewardFilter>;\n};\n\n/** A filter to be used against many `ConsumerQueryRewardSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectToManyConsumerQueryRewardSummaryFilter = {\n  /** Aggregates across related `ConsumerQueryRewardSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<ConsumerQueryRewardSummaryAggregatesFilter>;\n  /** Every related `ConsumerQueryRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n  /** No related `ConsumerQueryRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n  /** Some related `ConsumerQueryRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n};\n\n/** A filter to be used against many `DeploymentBooster` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectToManyDeploymentBoosterFilter = {\n  /** Aggregates across related `DeploymentBooster` match the filter criteria. */\n  readonly aggregates: InputMaybe<DeploymentBoosterAggregatesFilter>;\n  /** Every related `DeploymentBooster` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<DeploymentBoosterFilter>;\n  /** No related `DeploymentBooster` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<DeploymentBoosterFilter>;\n  /** Some related `DeploymentBooster` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<DeploymentBoosterFilter>;\n};\n\n/** A filter to be used against many `DeploymentBoosterSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectToManyDeploymentBoosterSummaryFilter = {\n  /** Aggregates across related `DeploymentBoosterSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<DeploymentBoosterSummaryAggregatesFilter>;\n  /** Every related `DeploymentBoosterSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<DeploymentBoosterSummaryFilter>;\n  /** No related `DeploymentBoosterSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<DeploymentBoosterSummaryFilter>;\n  /** Some related `DeploymentBoosterSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<DeploymentBoosterSummaryFilter>;\n};\n\n/** A filter to be used against many `Deployment` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectToManyDeploymentFilter = {\n  /** Aggregates across related `Deployment` match the filter criteria. */\n  readonly aggregates: InputMaybe<DeploymentAggregatesFilter>;\n  /** Every related `Deployment` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<DeploymentFilter>;\n  /** No related `Deployment` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<DeploymentFilter>;\n  /** Some related `Deployment` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<DeploymentFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocation` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectToManyIndexerAllocationFilter = {\n  /** Aggregates across related `IndexerAllocation` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationAggregatesFilter>;\n  /** Every related `IndexerAllocation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationFilter>;\n  /** No related `IndexerAllocation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationFilter>;\n  /** Some related `IndexerAllocation` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationReward` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectToManyIndexerAllocationRewardFilter = {\n  /** Aggregates across related `IndexerAllocationReward` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationRewardAggregatesFilter>;\n  /** Every related `IndexerAllocationReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationRewardFilter>;\n  /** No related `IndexerAllocationReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationRewardFilter>;\n  /** Some related `IndexerAllocationReward` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationRewardFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationRewardSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectToManyIndexerAllocationRewardSummaryFilter = {\n  /** Aggregates across related `IndexerAllocationRewardSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationRewardSummaryAggregatesFilter>;\n  /** Every related `IndexerAllocationRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  /** No related `IndexerAllocationRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  /** Some related `IndexerAllocationRewardSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n};\n\n/** A filter to be used against many `IndexerAllocationSummary` object types. All fields are combined with a logical ‘and.’ */\nexport type ProjectToManyIndexerAllocationSummaryFilter = {\n  /** Aggregates across related `IndexerAllocationSummary` match the filter criteria. */\n  readonly aggregates: InputMaybe<IndexerAllocationSummaryAggregatesFilter>;\n  /** Every related `IndexerAllocationSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<IndexerAllocationSummaryFilter>;\n  /** No related `IndexerAllocationSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<IndexerAllocationSummaryFilter>;\n  /** Some related `IndexerAllocationSummary` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<IndexerAllocationSummaryFilter>;\n};\n\nexport enum ProjectType {\n  LLM = 'LLM',\n  RPC = 'RPC',\n  SQ_DICT = 'SQ_DICT',\n  SUBGRAPH = 'SUBGRAPH',\n  SUBQUERY = 'SUBQUERY',\n}\n\n/** A filter to be used against ProjectType fields. All fields are combined with a logical ‘and.’ */\nexport type ProjectTypeFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<ProjectType>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<ProjectType>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<ProjectType>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<ProjectType>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<ProjectType>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<ProjectType>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<ProjectType>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<ProjectType>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<ProjectType>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<ProjectType>>;\n};\n\nexport type ProjectVariancePopulationAggregates = {\n  readonly __typename: 'ProjectVariancePopulationAggregates';\n  /** Population variance of boostAllocationRatio across the matching connection */\n  readonly boostAllocationRatio: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalAllocation across the matching connection */\n  readonly totalAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalBoost across the matching connection */\n  readonly totalBoost: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ProjectVarianceSampleAggregates = {\n  readonly __typename: 'ProjectVarianceSampleAggregates';\n  /** Sample variance of boostAllocationRatio across the matching connection */\n  readonly boostAllocationRatio: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalAllocation across the matching connection */\n  readonly totalAllocation: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalBoost across the matching connection */\n  readonly totalBoost: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalReward across the matching connection */\n  readonly totalReward: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Project` values. */\nexport type ProjectsConnection = {\n  readonly __typename: 'ProjectsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ProjectAggregates>;\n  /** A list of edges which contains the `Project` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ProjectsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ProjectAggregates>>;\n  /** A list of `Project` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Project>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Project` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Project` values. */\nexport type ProjectsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ProjectsGroupBy>;\n  having: InputMaybe<ProjectsHavingInput>;\n};\n\n/** A `Project` edge in the connection. */\nexport type ProjectsEdge = {\n  readonly __typename: 'ProjectsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Project` at the end of the edge. */\n  readonly node: Maybe<Project>;\n};\n\n/** Grouping methods for `Project` for usage during aggregation. */\nexport enum ProjectsGroupBy {\n  BOOST_ALLOCATION_RATIO = 'BOOST_ALLOCATION_RATIO',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  CREATED_TIMESTAMP = 'CREATED_TIMESTAMP',\n  CREATED_TIMESTAMP_TRUNCATED_TO_DAY = 'CREATED_TIMESTAMP_TRUNCATED_TO_DAY',\n  CREATED_TIMESTAMP_TRUNCATED_TO_HOUR = 'CREATED_TIMESTAMP_TRUNCATED_TO_HOUR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  DEPLOYMENT_METADATA = 'DEPLOYMENT_METADATA',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  METADATA = 'METADATA',\n  OWNER = 'OWNER',\n  TOTAL_ALLOCATION = 'TOTAL_ALLOCATION',\n  TOTAL_BOOST = 'TOTAL_BOOST',\n  TOTAL_REWARD = 'TOTAL_REWARD',\n  TYPE = 'TYPE',\n  UPDATED_TIMESTAMP = 'UPDATED_TIMESTAMP',\n  UPDATED_TIMESTAMP_TRUNCATED_TO_DAY = 'UPDATED_TIMESTAMP_TRUNCATED_TO_DAY',\n  UPDATED_TIMESTAMP_TRUNCATED_TO_HOUR = 'UPDATED_TIMESTAMP_TRUNCATED_TO_HOUR',\n}\n\nexport type ProjectsHavingAverageInput = {\n  readonly boostAllocationRatio: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly totalBoost: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updatedTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ProjectsHavingDistinctCountInput = {\n  readonly boostAllocationRatio: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly totalBoost: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updatedTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `Project` aggregates. */\nexport type ProjectsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<ProjectsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<ProjectsHavingInput>>;\n  readonly average: InputMaybe<ProjectsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<ProjectsHavingDistinctCountInput>;\n  readonly max: InputMaybe<ProjectsHavingMaxInput>;\n  readonly min: InputMaybe<ProjectsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<ProjectsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<ProjectsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<ProjectsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<ProjectsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<ProjectsHavingVarianceSampleInput>;\n};\n\nexport type ProjectsHavingMaxInput = {\n  readonly boostAllocationRatio: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly totalBoost: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updatedTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ProjectsHavingMinInput = {\n  readonly boostAllocationRatio: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly totalBoost: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updatedTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ProjectsHavingStddevPopulationInput = {\n  readonly boostAllocationRatio: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly totalBoost: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updatedTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ProjectsHavingStddevSampleInput = {\n  readonly boostAllocationRatio: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly totalBoost: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updatedTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ProjectsHavingSumInput = {\n  readonly boostAllocationRatio: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly totalBoost: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updatedTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ProjectsHavingVariancePopulationInput = {\n  readonly boostAllocationRatio: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly totalBoost: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updatedTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ProjectsHavingVarianceSampleInput = {\n  readonly boostAllocationRatio: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly createdTimestamp: InputMaybe<HavingDatetimeFilter>;\n  readonly totalAllocation: InputMaybe<HavingBigfloatFilter>;\n  readonly totalBoost: InputMaybe<HavingBigfloatFilter>;\n  readonly totalReward: InputMaybe<HavingBigfloatFilter>;\n  readonly updatedTimestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `Project`. */\nexport enum ProjectsOrderBy {\n  BOOST_ALLOCATION_RATIO_ASC = 'BOOST_ALLOCATION_RATIO_ASC',\n  BOOST_ALLOCATION_RATIO_DESC = 'BOOST_ALLOCATION_RATIO_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ID_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ID_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ID_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ID_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_AVERAGE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_AVERAGE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_AVERAGE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_BY_PROJECT_ID__COUNT_ASC = 'CONSUMER_QUERY_REWARDS_BY_PROJECT_ID__COUNT_ASC',\n  CONSUMER_QUERY_REWARDS_BY_PROJECT_ID__COUNT_DESC = 'CONSUMER_QUERY_REWARDS_BY_PROJECT_ID__COUNT_DESC',\n  CONSUMER_QUERY_REWARDS_COUNT_ASC = 'CONSUMER_QUERY_REWARDS_COUNT_ASC',\n  CONSUMER_QUERY_REWARDS_COUNT_DESC = 'CONSUMER_QUERY_REWARDS_COUNT_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ID_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ID_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_DISTINCT_COUNT_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_MAX_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_MAX_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_MAX_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_MAX_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_MAX_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_MAX_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_MAX_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_MAX_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_ID_ASC = 'CONSUMER_QUERY_REWARDS_MAX_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_ID_DESC = 'CONSUMER_QUERY_REWARDS_MAX_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_MAX_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_MAX_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_MAX_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_MAX_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_MAX_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_MAX_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_MAX_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_MAX_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_MAX_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_MAX_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_MAX_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_MAX_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_MAX_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_MAX_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_MIN_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_MIN_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_MIN_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_MIN_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_MIN_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_MIN_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_MIN_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_MIN_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_ID_ASC = 'CONSUMER_QUERY_REWARDS_MIN_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_ID_DESC = 'CONSUMER_QUERY_REWARDS_MIN_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_MIN_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_MIN_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_MIN_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_MIN_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_MIN_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_MIN_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_MIN_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_MIN_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_MIN_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_MIN_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_MIN_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_MIN_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_MIN_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_MIN_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_POPULATION_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_SUM_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_SUM_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_SUM_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_SUM_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_SUM_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_SUM_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_SUM_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_SUM_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_ID_ASC = 'CONSUMER_QUERY_REWARDS_SUM_ID_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_ID_DESC = 'CONSUMER_QUERY_REWARDS_SUM_ID_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_SUM_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_SUM_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_SUM_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_SUM_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_SUM_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_SUM_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_SUM_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_SUM_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_SUM_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_SUM_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_SUM_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_SUM_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_SUM_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_SUM_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_REFUNDED_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_REFUNDED_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_SPENT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_SPENT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_SPENT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_SPENT_DESC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARDS_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_BY_PROJECT_ID__COUNT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_BY_PROJECT_ID__COUNT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_BY_PROJECT_ID__COUNT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_BY_PROJECT_ID__COUNT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_COUNT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_COUNT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_COUNT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_COUNT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ORDER_TYPE_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ORDER_TYPE_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ORDER_TYPE_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_ORDER_TYPE_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REFUNDED_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REFUNDED_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REFUNDED_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REFUNDED_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_SPENT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_SPENT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_SPENT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_SPENT_DESC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'CONSUMER_QUERY_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  CREATED_TIMESTAMP_ASC = 'CREATED_TIMESTAMP_ASC',\n  CREATED_TIMESTAMP_DESC = 'CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_AVERAGE_BLOCK_RANGE_ASC = 'DEPLOYMENTS_AVERAGE_BLOCK_RANGE_ASC',\n  DEPLOYMENTS_AVERAGE_BLOCK_RANGE_DESC = 'DEPLOYMENTS_AVERAGE_BLOCK_RANGE_DESC',\n  DEPLOYMENTS_AVERAGE_CREATED_BLOCK_ASC = 'DEPLOYMENTS_AVERAGE_CREATED_BLOCK_ASC',\n  DEPLOYMENTS_AVERAGE_CREATED_BLOCK_DESC = 'DEPLOYMENTS_AVERAGE_CREATED_BLOCK_DESC',\n  DEPLOYMENTS_AVERAGE_CREATED_TIMESTAMP_ASC = 'DEPLOYMENTS_AVERAGE_CREATED_TIMESTAMP_ASC',\n  DEPLOYMENTS_AVERAGE_CREATED_TIMESTAMP_DESC = 'DEPLOYMENTS_AVERAGE_CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_AVERAGE_ID_ASC = 'DEPLOYMENTS_AVERAGE_ID_ASC',\n  DEPLOYMENTS_AVERAGE_ID_DESC = 'DEPLOYMENTS_AVERAGE_ID_DESC',\n  DEPLOYMENTS_AVERAGE_LAST_EVENT_ASC = 'DEPLOYMENTS_AVERAGE_LAST_EVENT_ASC',\n  DEPLOYMENTS_AVERAGE_LAST_EVENT_DESC = 'DEPLOYMENTS_AVERAGE_LAST_EVENT_DESC',\n  DEPLOYMENTS_AVERAGE_METADATA_ASC = 'DEPLOYMENTS_AVERAGE_METADATA_ASC',\n  DEPLOYMENTS_AVERAGE_METADATA_DESC = 'DEPLOYMENTS_AVERAGE_METADATA_DESC',\n  DEPLOYMENTS_AVERAGE_PROJECT_ID_ASC = 'DEPLOYMENTS_AVERAGE_PROJECT_ID_ASC',\n  DEPLOYMENTS_AVERAGE_PROJECT_ID_DESC = 'DEPLOYMENTS_AVERAGE_PROJECT_ID_DESC',\n  DEPLOYMENTS_BY_PROJECT_ID__COUNT_ASC = 'DEPLOYMENTS_BY_PROJECT_ID__COUNT_ASC',\n  DEPLOYMENTS_BY_PROJECT_ID__COUNT_DESC = 'DEPLOYMENTS_BY_PROJECT_ID__COUNT_DESC',\n  DEPLOYMENTS_COUNT_ASC = 'DEPLOYMENTS_COUNT_ASC',\n  DEPLOYMENTS_COUNT_DESC = 'DEPLOYMENTS_COUNT_DESC',\n  DEPLOYMENTS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'DEPLOYMENTS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  DEPLOYMENTS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'DEPLOYMENTS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  DEPLOYMENTS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'DEPLOYMENTS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  DEPLOYMENTS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'DEPLOYMENTS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  DEPLOYMENTS_DISTINCT_COUNT_CREATED_TIMESTAMP_ASC = 'DEPLOYMENTS_DISTINCT_COUNT_CREATED_TIMESTAMP_ASC',\n  DEPLOYMENTS_DISTINCT_COUNT_CREATED_TIMESTAMP_DESC = 'DEPLOYMENTS_DISTINCT_COUNT_CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_DISTINCT_COUNT_ID_ASC = 'DEPLOYMENTS_DISTINCT_COUNT_ID_ASC',\n  DEPLOYMENTS_DISTINCT_COUNT_ID_DESC = 'DEPLOYMENTS_DISTINCT_COUNT_ID_DESC',\n  DEPLOYMENTS_DISTINCT_COUNT_LAST_EVENT_ASC = 'DEPLOYMENTS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  DEPLOYMENTS_DISTINCT_COUNT_LAST_EVENT_DESC = 'DEPLOYMENTS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  DEPLOYMENTS_DISTINCT_COUNT_METADATA_ASC = 'DEPLOYMENTS_DISTINCT_COUNT_METADATA_ASC',\n  DEPLOYMENTS_DISTINCT_COUNT_METADATA_DESC = 'DEPLOYMENTS_DISTINCT_COUNT_METADATA_DESC',\n  DEPLOYMENTS_DISTINCT_COUNT_PROJECT_ID_ASC = 'DEPLOYMENTS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  DEPLOYMENTS_DISTINCT_COUNT_PROJECT_ID_DESC = 'DEPLOYMENTS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  DEPLOYMENTS_MAX_BLOCK_RANGE_ASC = 'DEPLOYMENTS_MAX_BLOCK_RANGE_ASC',\n  DEPLOYMENTS_MAX_BLOCK_RANGE_DESC = 'DEPLOYMENTS_MAX_BLOCK_RANGE_DESC',\n  DEPLOYMENTS_MAX_CREATED_BLOCK_ASC = 'DEPLOYMENTS_MAX_CREATED_BLOCK_ASC',\n  DEPLOYMENTS_MAX_CREATED_BLOCK_DESC = 'DEPLOYMENTS_MAX_CREATED_BLOCK_DESC',\n  DEPLOYMENTS_MAX_CREATED_TIMESTAMP_ASC = 'DEPLOYMENTS_MAX_CREATED_TIMESTAMP_ASC',\n  DEPLOYMENTS_MAX_CREATED_TIMESTAMP_DESC = 'DEPLOYMENTS_MAX_CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_MAX_ID_ASC = 'DEPLOYMENTS_MAX_ID_ASC',\n  DEPLOYMENTS_MAX_ID_DESC = 'DEPLOYMENTS_MAX_ID_DESC',\n  DEPLOYMENTS_MAX_LAST_EVENT_ASC = 'DEPLOYMENTS_MAX_LAST_EVENT_ASC',\n  DEPLOYMENTS_MAX_LAST_EVENT_DESC = 'DEPLOYMENTS_MAX_LAST_EVENT_DESC',\n  DEPLOYMENTS_MAX_METADATA_ASC = 'DEPLOYMENTS_MAX_METADATA_ASC',\n  DEPLOYMENTS_MAX_METADATA_DESC = 'DEPLOYMENTS_MAX_METADATA_DESC',\n  DEPLOYMENTS_MAX_PROJECT_ID_ASC = 'DEPLOYMENTS_MAX_PROJECT_ID_ASC',\n  DEPLOYMENTS_MAX_PROJECT_ID_DESC = 'DEPLOYMENTS_MAX_PROJECT_ID_DESC',\n  DEPLOYMENTS_MIN_BLOCK_RANGE_ASC = 'DEPLOYMENTS_MIN_BLOCK_RANGE_ASC',\n  DEPLOYMENTS_MIN_BLOCK_RANGE_DESC = 'DEPLOYMENTS_MIN_BLOCK_RANGE_DESC',\n  DEPLOYMENTS_MIN_CREATED_BLOCK_ASC = 'DEPLOYMENTS_MIN_CREATED_BLOCK_ASC',\n  DEPLOYMENTS_MIN_CREATED_BLOCK_DESC = 'DEPLOYMENTS_MIN_CREATED_BLOCK_DESC',\n  DEPLOYMENTS_MIN_CREATED_TIMESTAMP_ASC = 'DEPLOYMENTS_MIN_CREATED_TIMESTAMP_ASC',\n  DEPLOYMENTS_MIN_CREATED_TIMESTAMP_DESC = 'DEPLOYMENTS_MIN_CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_MIN_ID_ASC = 'DEPLOYMENTS_MIN_ID_ASC',\n  DEPLOYMENTS_MIN_ID_DESC = 'DEPLOYMENTS_MIN_ID_DESC',\n  DEPLOYMENTS_MIN_LAST_EVENT_ASC = 'DEPLOYMENTS_MIN_LAST_EVENT_ASC',\n  DEPLOYMENTS_MIN_LAST_EVENT_DESC = 'DEPLOYMENTS_MIN_LAST_EVENT_DESC',\n  DEPLOYMENTS_MIN_METADATA_ASC = 'DEPLOYMENTS_MIN_METADATA_ASC',\n  DEPLOYMENTS_MIN_METADATA_DESC = 'DEPLOYMENTS_MIN_METADATA_DESC',\n  DEPLOYMENTS_MIN_PROJECT_ID_ASC = 'DEPLOYMENTS_MIN_PROJECT_ID_ASC',\n  DEPLOYMENTS_MIN_PROJECT_ID_DESC = 'DEPLOYMENTS_MIN_PROJECT_ID_DESC',\n  DEPLOYMENTS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENTS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENTS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENTS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENTS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'DEPLOYMENTS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  DEPLOYMENTS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'DEPLOYMENTS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  DEPLOYMENTS_STDDEV_POPULATION_CREATED_TIMESTAMP_ASC = 'DEPLOYMENTS_STDDEV_POPULATION_CREATED_TIMESTAMP_ASC',\n  DEPLOYMENTS_STDDEV_POPULATION_CREATED_TIMESTAMP_DESC = 'DEPLOYMENTS_STDDEV_POPULATION_CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_STDDEV_POPULATION_ID_ASC = 'DEPLOYMENTS_STDDEV_POPULATION_ID_ASC',\n  DEPLOYMENTS_STDDEV_POPULATION_ID_DESC = 'DEPLOYMENTS_STDDEV_POPULATION_ID_DESC',\n  DEPLOYMENTS_STDDEV_POPULATION_LAST_EVENT_ASC = 'DEPLOYMENTS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  DEPLOYMENTS_STDDEV_POPULATION_LAST_EVENT_DESC = 'DEPLOYMENTS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  DEPLOYMENTS_STDDEV_POPULATION_METADATA_ASC = 'DEPLOYMENTS_STDDEV_POPULATION_METADATA_ASC',\n  DEPLOYMENTS_STDDEV_POPULATION_METADATA_DESC = 'DEPLOYMENTS_STDDEV_POPULATION_METADATA_DESC',\n  DEPLOYMENTS_STDDEV_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENTS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENTS_STDDEV_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENTS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENTS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENTS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENTS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'DEPLOYMENTS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  DEPLOYMENTS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'DEPLOYMENTS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  DEPLOYMENTS_STDDEV_SAMPLE_CREATED_TIMESTAMP_ASC = 'DEPLOYMENTS_STDDEV_SAMPLE_CREATED_TIMESTAMP_ASC',\n  DEPLOYMENTS_STDDEV_SAMPLE_CREATED_TIMESTAMP_DESC = 'DEPLOYMENTS_STDDEV_SAMPLE_CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_STDDEV_SAMPLE_ID_ASC = 'DEPLOYMENTS_STDDEV_SAMPLE_ID_ASC',\n  DEPLOYMENTS_STDDEV_SAMPLE_ID_DESC = 'DEPLOYMENTS_STDDEV_SAMPLE_ID_DESC',\n  DEPLOYMENTS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'DEPLOYMENTS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  DEPLOYMENTS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'DEPLOYMENTS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  DEPLOYMENTS_STDDEV_SAMPLE_METADATA_ASC = 'DEPLOYMENTS_STDDEV_SAMPLE_METADATA_ASC',\n  DEPLOYMENTS_STDDEV_SAMPLE_METADATA_DESC = 'DEPLOYMENTS_STDDEV_SAMPLE_METADATA_DESC',\n  DEPLOYMENTS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENTS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENTS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENTS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENTS_SUM_BLOCK_RANGE_ASC = 'DEPLOYMENTS_SUM_BLOCK_RANGE_ASC',\n  DEPLOYMENTS_SUM_BLOCK_RANGE_DESC = 'DEPLOYMENTS_SUM_BLOCK_RANGE_DESC',\n  DEPLOYMENTS_SUM_CREATED_BLOCK_ASC = 'DEPLOYMENTS_SUM_CREATED_BLOCK_ASC',\n  DEPLOYMENTS_SUM_CREATED_BLOCK_DESC = 'DEPLOYMENTS_SUM_CREATED_BLOCK_DESC',\n  DEPLOYMENTS_SUM_CREATED_TIMESTAMP_ASC = 'DEPLOYMENTS_SUM_CREATED_TIMESTAMP_ASC',\n  DEPLOYMENTS_SUM_CREATED_TIMESTAMP_DESC = 'DEPLOYMENTS_SUM_CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_SUM_ID_ASC = 'DEPLOYMENTS_SUM_ID_ASC',\n  DEPLOYMENTS_SUM_ID_DESC = 'DEPLOYMENTS_SUM_ID_DESC',\n  DEPLOYMENTS_SUM_LAST_EVENT_ASC = 'DEPLOYMENTS_SUM_LAST_EVENT_ASC',\n  DEPLOYMENTS_SUM_LAST_EVENT_DESC = 'DEPLOYMENTS_SUM_LAST_EVENT_DESC',\n  DEPLOYMENTS_SUM_METADATA_ASC = 'DEPLOYMENTS_SUM_METADATA_ASC',\n  DEPLOYMENTS_SUM_METADATA_DESC = 'DEPLOYMENTS_SUM_METADATA_DESC',\n  DEPLOYMENTS_SUM_PROJECT_ID_ASC = 'DEPLOYMENTS_SUM_PROJECT_ID_ASC',\n  DEPLOYMENTS_SUM_PROJECT_ID_DESC = 'DEPLOYMENTS_SUM_PROJECT_ID_DESC',\n  DEPLOYMENTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENTS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENTS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENTS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'DEPLOYMENTS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  DEPLOYMENTS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'DEPLOYMENTS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  DEPLOYMENTS_VARIANCE_POPULATION_CREATED_TIMESTAMP_ASC = 'DEPLOYMENTS_VARIANCE_POPULATION_CREATED_TIMESTAMP_ASC',\n  DEPLOYMENTS_VARIANCE_POPULATION_CREATED_TIMESTAMP_DESC = 'DEPLOYMENTS_VARIANCE_POPULATION_CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_VARIANCE_POPULATION_ID_ASC = 'DEPLOYMENTS_VARIANCE_POPULATION_ID_ASC',\n  DEPLOYMENTS_VARIANCE_POPULATION_ID_DESC = 'DEPLOYMENTS_VARIANCE_POPULATION_ID_DESC',\n  DEPLOYMENTS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'DEPLOYMENTS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  DEPLOYMENTS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'DEPLOYMENTS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  DEPLOYMENTS_VARIANCE_POPULATION_METADATA_ASC = 'DEPLOYMENTS_VARIANCE_POPULATION_METADATA_ASC',\n  DEPLOYMENTS_VARIANCE_POPULATION_METADATA_DESC = 'DEPLOYMENTS_VARIANCE_POPULATION_METADATA_DESC',\n  DEPLOYMENTS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENTS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENTS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENTS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENTS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'DEPLOYMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'DEPLOYMENTS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_ASC = 'DEPLOYMENTS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_ASC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_DESC = 'DEPLOYMENTS_VARIANCE_SAMPLE_CREATED_TIMESTAMP_DESC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_ID_ASC = 'DEPLOYMENTS_VARIANCE_SAMPLE_ID_ASC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_ID_DESC = 'DEPLOYMENTS_VARIANCE_SAMPLE_ID_DESC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'DEPLOYMENTS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'DEPLOYMENTS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_METADATA_ASC = 'DEPLOYMENTS_VARIANCE_SAMPLE_METADATA_ASC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_METADATA_DESC = 'DEPLOYMENTS_VARIANCE_SAMPLE_METADATA_DESC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENTS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENTS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENTS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_ID_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_ID_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_ID_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_ID_DESC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_AVERAGE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_AVERAGE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_AVERAGE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_BY_PROJECT_ID__COUNT_ASC = 'DEPLOYMENT_BOOSTERS_BY_PROJECT_ID__COUNT_ASC',\n  DEPLOYMENT_BOOSTERS_BY_PROJECT_ID__COUNT_DESC = 'DEPLOYMENT_BOOSTERS_BY_PROJECT_ID__COUNT_DESC',\n  DEPLOYMENT_BOOSTERS_COUNT_ASC = 'DEPLOYMENT_BOOSTERS_COUNT_ASC',\n  DEPLOYMENT_BOOSTERS_COUNT_DESC = 'DEPLOYMENT_BOOSTERS_COUNT_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ID_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ID_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_MAX_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_MAX_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_MAX_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_MAX_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_MAX_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_MAX_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_MAX_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_MAX_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_MAX_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_MAX_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_MAX_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_MAX_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_MAX_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_MAX_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_ID_ASC = 'DEPLOYMENT_BOOSTERS_MAX_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_ID_DESC = 'DEPLOYMENT_BOOSTERS_MAX_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MAX_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_MAX_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MAX_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_MAX_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_MIN_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_MIN_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_MIN_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_MIN_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_MIN_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_MIN_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_MIN_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_MIN_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_MIN_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_MIN_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_MIN_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_MIN_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_MIN_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_MIN_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_ID_ASC = 'DEPLOYMENT_BOOSTERS_MIN_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_ID_DESC = 'DEPLOYMENT_BOOSTERS_MIN_ID_DESC',\n  DEPLOYMENT_BOOSTERS_MIN_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_MIN_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_MIN_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_MIN_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_ID_DESC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_SUM_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_SUM_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_SUM_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_SUM_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_SUM_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_SUM_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_SUM_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_SUM_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_SUM_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_SUM_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_SUM_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_SUM_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_SUM_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_SUM_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_ID_ASC = 'DEPLOYMENT_BOOSTERS_SUM_ID_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_ID_DESC = 'DEPLOYMENT_BOOSTERS_SUM_ID_DESC',\n  DEPLOYMENT_BOOSTERS_SUM_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_SUM_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_SUM_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_SUM_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_ID_DESC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTERS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_BY_PROJECT_ID__COUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_BY_PROJECT_ID__COUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_BY_PROJECT_ID__COUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_BY_PROJECT_ID__COUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_COUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_COUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_COUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_COUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MAX_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MAX_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_MIN_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_MIN_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_SUM_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_SUM_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CONSUMER_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'DEPLOYMENT_BOOSTER_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  DEPLOYMENT_METADATA_ASC = 'DEPLOYMENT_METADATA_ASC',\n  DEPLOYMENT_METADATA_DESC = 'DEPLOYMENT_METADATA_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_BY_PROJECT_ID__COUNT_ASC = 'INDEXER_ALLOCATIONS_BY_PROJECT_ID__COUNT_ASC',\n  INDEXER_ALLOCATIONS_BY_PROJECT_ID__COUNT_DESC = 'INDEXER_ALLOCATIONS_BY_PROJECT_ID__COUNT_DESC',\n  INDEXER_ALLOCATIONS_COUNT_ASC = 'INDEXER_ALLOCATIONS_COUNT_ASC',\n  INDEXER_ALLOCATIONS_COUNT_DESC = 'INDEXER_ALLOCATIONS_COUNT_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_MAX_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_MAX_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_MAX_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_MAX_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_MAX_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_MIN_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_MIN_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_MIN_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_MIN_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_MIN_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_SUM_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_SUM_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_SUM_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_SUM_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_SUM_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_ADDED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_AMOUNT_REMOVED_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATIONS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_AVERAGE_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_BY_PROJECT_ID__COUNT_ASC = 'INDEXER_ALLOCATION_REWARDS_BY_PROJECT_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_BY_PROJECT_ID__COUNT_DESC = 'INDEXER_ALLOCATION_REWARDS_BY_PROJECT_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_COUNT_ASC = 'INDEXER_ALLOCATION_REWARDS_COUNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_COUNT_DESC = 'INDEXER_ALLOCATION_REWARDS_COUNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_DISTINCT_COUNT_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MAX_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_MAX_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_MAX_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_MAX_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_MIN_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_MIN_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_MIN_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_MIN_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_POPULATION_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_STDDEV_SAMPLE_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_SUM_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_SUM_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_SUM_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_SUM_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_POPULATION_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ERA_IDX_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_ASC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_DESC = 'INDEXER_ALLOCATION_REWARDS_VARIANCE_SAMPLE_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_PROJECT_ID__COUNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_PROJECT_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_PROJECT_ID__COUNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_BY_PROJECT_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_COUNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MAX_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_MIN_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_SUM_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_BURNT_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REWARD_DESC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_REWARD_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_AVERAGE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_BY_PROJECT_ID__COUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_BY_PROJECT_ID__COUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_BY_PROJECT_ID__COUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_BY_PROJECT_ID__COUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_COUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_COUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_COUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_COUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_DISTINCT_COUNT_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MAX_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_MIN_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_STDDEV_SAMPLE_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_SUM_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_POPULATION_UPDATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_CREATE_AT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_DEPLOYMENT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_PROJECT_ID_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_ADDED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_AMOUNT_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_TOTAL_REMOVED_DESC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_ASC',\n  INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC = 'INDEXER_ALLOCATION_SUMMARIES_VARIANCE_SAMPLE_UPDATE_AT_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  METADATA_ASC = 'METADATA_ASC',\n  METADATA_DESC = 'METADATA_DESC',\n  NATURAL = 'NATURAL',\n  OWNER_ASC = 'OWNER_ASC',\n  OWNER_DESC = 'OWNER_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  TOTAL_ALLOCATION_ASC = 'TOTAL_ALLOCATION_ASC',\n  TOTAL_ALLOCATION_DESC = 'TOTAL_ALLOCATION_DESC',\n  TOTAL_BOOST_ASC = 'TOTAL_BOOST_ASC',\n  TOTAL_BOOST_DESC = 'TOTAL_BOOST_DESC',\n  TOTAL_REWARD_ASC = 'TOTAL_REWARD_ASC',\n  TOTAL_REWARD_DESC = 'TOTAL_REWARD_DESC',\n  TYPE_ASC = 'TYPE_ASC',\n  TYPE_DESC = 'TYPE_DESC',\n  UPDATED_TIMESTAMP_ASC = 'UPDATED_TIMESTAMP_ASC',\n  UPDATED_TIMESTAMP_DESC = 'UPDATED_TIMESTAMP_DESC',\n}\n\n/** The root query type which gives access points into the data universe. */\nexport type Query = Node & {\n  readonly __typename: 'Query';\n  readonly _metadata: Maybe<_Metadata>;\n  readonly _metadatas: Maybe<_Metadatas>;\n  readonly _poi: Maybe<_Poi>;\n  readonly _poiByChainBlockHash: Maybe<_Poi>;\n  readonly _poiByHash: Maybe<_Poi>;\n  /** Reads a single `_Poi` using its globally unique `ID`. */\n  readonly _poiByNodeId: Maybe<_Poi>;\n  readonly _poiByParentHash: Maybe<_Poi>;\n  /** Reads and enables pagination through a set of `_Poi`. */\n  readonly _pois: Maybe<_PoisConnection>;\n  readonly acceptedOffer: Maybe<AcceptedOffer>;\n  /** Reads a single `AcceptedOffer` using its globally unique `ID`. */\n  readonly acceptedOfferByNodeId: Maybe<AcceptedOffer>;\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: Maybe<AcceptedOffersConnection>;\n  readonly airdrop: Maybe<Airdrop>;\n  readonly airdropAmount: Maybe<AirdropAmount>;\n  /** Reads a single `AirdropAmount` using its globally unique `ID`. */\n  readonly airdropAmountByNodeId: Maybe<AirdropAmount>;\n  /** Reads and enables pagination through a set of `AirdropAmount`. */\n  readonly airdropAmounts: Maybe<AirdropAmountsConnection>;\n  /** Reads a single `Airdrop` using its globally unique `ID`. */\n  readonly airdropByNodeId: Maybe<Airdrop>;\n  readonly airdropUser: Maybe<AirdropUser>;\n  /** Reads a single `AirdropUser` using its globally unique `ID`. */\n  readonly airdropUserByNodeId: Maybe<AirdropUser>;\n  /** Reads and enables pagination through a set of `AirdropUser`. */\n  readonly airdropUsers: Maybe<AirdropUsersConnection>;\n  /** Reads and enables pagination through a set of `Airdrop`. */\n  readonly airdrops: Maybe<AirdropsConnection>;\n  readonly cach: Maybe<Cach>;\n  /** Reads a single `Cach` using its globally unique `ID`. */\n  readonly cachByNodeId: Maybe<Cach>;\n  /** Reads and enables pagination through a set of `Cach`. */\n  readonly caches: Maybe<CachesConnection>;\n  readonly consumerController: Maybe<ConsumerController>;\n  /** Reads a single `ConsumerController` using its globally unique `ID`. */\n  readonly consumerControllerByNodeId: Maybe<ConsumerController>;\n  /** Reads and enables pagination through a set of `ConsumerController`. */\n  readonly consumerControllers: Maybe<ConsumerControllersConnection>;\n  readonly consumerQueryReward: Maybe<ConsumerQueryReward>;\n  /** Reads a single `ConsumerQueryReward` using its globally unique `ID`. */\n  readonly consumerQueryRewardByNodeId: Maybe<ConsumerQueryReward>;\n  /** Reads and enables pagination through a set of `ConsumerQueryRewardSummary`. */\n  readonly consumerQueryRewardSummaries: Maybe<ConsumerQueryRewardSummariesConnection>;\n  readonly consumerQueryRewardSummary: Maybe<ConsumerQueryRewardSummary>;\n  /** Reads a single `ConsumerQueryRewardSummary` using its globally unique `ID`. */\n  readonly consumerQueryRewardSummaryByNodeId: Maybe<ConsumerQueryRewardSummary>;\n  /** Reads and enables pagination through a set of `ConsumerQueryReward`. */\n  readonly consumerQueryRewards: Maybe<ConsumerQueryRewardsConnection>;\n  readonly controller: Maybe<Controller>;\n  /** Reads a single `Controller` using its globally unique `ID`. */\n  readonly controllerByNodeId: Maybe<Controller>;\n  /** Reads and enables pagination through a set of `Controller`. */\n  readonly controllers: Maybe<ControllersConnection>;\n  readonly delegation: Maybe<Delegation>;\n  /** Reads a single `Delegation` using its globally unique `ID`. */\n  readonly delegationByNodeId: Maybe<Delegation>;\n  /** Reads and enables pagination through a set of `Delegation`. */\n  readonly delegations: Maybe<DelegationsConnection>;\n  readonly delegator: Maybe<Delegator>;\n  /** Reads a single `Delegator` using its globally unique `ID`. */\n  readonly delegatorByNodeId: Maybe<Delegator>;\n  /** Reads and enables pagination through a set of `Delegator`. */\n  readonly delegators: Maybe<DelegatorsConnection>;\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentBooster: Maybe<DeploymentBooster>;\n  /** Reads a single `DeploymentBooster` using its globally unique `ID`. */\n  readonly deploymentBoosterByNodeId: Maybe<DeploymentBooster>;\n  /** Reads and enables pagination through a set of `DeploymentBoosterSummary`. */\n  readonly deploymentBoosterSummaries: Maybe<DeploymentBoosterSummariesConnection>;\n  readonly deploymentBoosterSummary: Maybe<DeploymentBoosterSummary>;\n  /** Reads a single `DeploymentBoosterSummary` using its globally unique `ID`. */\n  readonly deploymentBoosterSummaryByNodeId: Maybe<DeploymentBoosterSummary>;\n  /** Reads and enables pagination through a set of `DeploymentBooster`. */\n  readonly deploymentBoosters: Maybe<DeploymentBoostersConnection>;\n  /** Reads a single `Deployment` using its globally unique `ID`. */\n  readonly deploymentByNodeId: Maybe<Deployment>;\n  /** Reads and enables pagination through a set of `Deployment`. */\n  readonly deployments: Maybe<DeploymentsConnection>;\n  readonly dispute: Maybe<Dispute>;\n  /** Reads a single `Dispute` using its globally unique `ID`. */\n  readonly disputeByNodeId: Maybe<Dispute>;\n  /** Reads and enables pagination through a set of `Dispute`. */\n  readonly disputes: Maybe<DisputesConnection>;\n  readonly era: Maybe<Era>;\n  /** Reads a single `Era` using its globally unique `ID`. */\n  readonly eraByNodeId: Maybe<Era>;\n  /** Reads and enables pagination through a set of `EraDelegatorApy`. */\n  readonly eraDelegatorApies: Maybe<EraDelegatorApiesConnection>;\n  readonly eraDelegatorApy: Maybe<EraDelegatorApy>;\n  /** Reads a single `EraDelegatorApy` using its globally unique `ID`. */\n  readonly eraDelegatorApyByNodeId: Maybe<EraDelegatorApy>;\n  readonly eraDelegatorIndexer: Maybe<EraDelegatorIndexer>;\n  /** Reads and enables pagination through a set of `EraDelegatorIndexerApy`. */\n  readonly eraDelegatorIndexerApies: Maybe<EraDelegatorIndexerApiesConnection>;\n  readonly eraDelegatorIndexerApy: Maybe<EraDelegatorIndexerApy>;\n  /** Reads a single `EraDelegatorIndexerApy` using its globally unique `ID`. */\n  readonly eraDelegatorIndexerApyByNodeId: Maybe<EraDelegatorIndexerApy>;\n  /** Reads a single `EraDelegatorIndexer` using its globally unique `ID`. */\n  readonly eraDelegatorIndexerByNodeId: Maybe<EraDelegatorIndexer>;\n  /** Reads and enables pagination through a set of `EraDelegatorIndexer`. */\n  readonly eraDelegatorIndexers: Maybe<EraDelegatorIndexersConnection>;\n  readonly eraDeploymentReward: Maybe<EraDeploymentReward>;\n  /** Reads a single `EraDeploymentReward` using its globally unique `ID`. */\n  readonly eraDeploymentRewardByNodeId: Maybe<EraDeploymentReward>;\n  /** Reads and enables pagination through a set of `EraDeploymentReward`. */\n  readonly eraDeploymentRewards: Maybe<EraDeploymentRewardsConnection>;\n  /** Reads and enables pagination through a set of `EraIndexerApy`. */\n  readonly eraIndexerApies: Maybe<EraIndexerApiesConnection>;\n  readonly eraIndexerApy: Maybe<EraIndexerApy>;\n  /** Reads a single `EraIndexerApy` using its globally unique `ID`. */\n  readonly eraIndexerApyByNodeId: Maybe<EraIndexerApy>;\n  readonly eraIndexerDelegator: Maybe<EraIndexerDelegator>;\n  /** Reads a single `EraIndexerDelegator` using its globally unique `ID`. */\n  readonly eraIndexerDelegatorByNodeId: Maybe<EraIndexerDelegator>;\n  /** Reads and enables pagination through a set of `EraIndexerDelegator`. */\n  readonly eraIndexerDelegators: Maybe<EraIndexerDelegatorsConnection>;\n  /** Reads and enables pagination through a set of `EraIndexerDeploymentApy`. */\n  readonly eraIndexerDeploymentApies: Maybe<EraIndexerDeploymentApiesConnection>;\n  readonly eraIndexerDeploymentApy: Maybe<EraIndexerDeploymentApy>;\n  /** Reads a single `EraIndexerDeploymentApy` using its globally unique `ID`. */\n  readonly eraIndexerDeploymentApyByNodeId: Maybe<EraIndexerDeploymentApy>;\n  readonly eraReward: Maybe<EraReward>;\n  /** Reads a single `EraReward` using its globally unique `ID`. */\n  readonly eraRewardByNodeId: Maybe<EraReward>;\n  readonly eraRewardClaimed: Maybe<EraRewardClaimed>;\n  /** Reads a single `EraRewardClaimed` using its globally unique `ID`. */\n  readonly eraRewardClaimedByNodeId: Maybe<EraRewardClaimed>;\n  /** Reads and enables pagination through a set of `EraRewardClaimed`. */\n  readonly eraRewardClaimeds: Maybe<EraRewardClaimedsConnection>;\n  /** Reads and enables pagination through a set of `EraReward`. */\n  readonly eraRewards: Maybe<EraRewardsConnection>;\n  readonly eraStake: Maybe<EraStake>;\n  /** Reads a single `EraStake` using its globally unique `ID`. */\n  readonly eraStakeByNodeId: Maybe<EraStake>;\n  readonly eraStakeUpdate: Maybe<EraStakeUpdate>;\n  /** Reads a single `EraStakeUpdate` using its globally unique `ID`. */\n  readonly eraStakeUpdateByNodeId: Maybe<EraStakeUpdate>;\n  /** Reads and enables pagination through a set of `EraStakeUpdate`. */\n  readonly eraStakeUpdates: Maybe<EraStakeUpdatesConnection>;\n  /** Reads and enables pagination through a set of `EraStake`. */\n  readonly eraStakes: Maybe<EraStakesConnection>;\n  /** Reads and enables pagination through a set of `Era`. */\n  readonly eras: Maybe<ErasConnection>;\n  readonly exception: Maybe<Exception>;\n  /** Reads a single `Exception` using its globally unique `ID`. */\n  readonly exceptionByNodeId: Maybe<Exception>;\n  /** Reads and enables pagination through a set of `Exception`. */\n  readonly exceptions: Maybe<ExceptionsConnection>;\n  readonly indexer: Maybe<Indexer>;\n  readonly indexerAllocation: Maybe<IndexerAllocation>;\n  /** Reads a single `IndexerAllocation` using its globally unique `ID`. */\n  readonly indexerAllocationByNodeId: Maybe<IndexerAllocation>;\n  readonly indexerAllocationOverflow: Maybe<IndexerAllocationOverflow>;\n  /** Reads a single `IndexerAllocationOverflow` using its globally unique `ID`. */\n  readonly indexerAllocationOverflowByNodeId: Maybe<IndexerAllocationOverflow>;\n  /** Reads and enables pagination through a set of `IndexerAllocationOverflow`. */\n  readonly indexerAllocationOverflows: Maybe<IndexerAllocationOverflowsConnection>;\n  readonly indexerAllocationReward: Maybe<IndexerAllocationReward>;\n  /** Reads a single `IndexerAllocationReward` using its globally unique `ID`. */\n  readonly indexerAllocationRewardByNodeId: Maybe<IndexerAllocationReward>;\n  /** Reads and enables pagination through a set of `IndexerAllocationRewardSummary`. */\n  readonly indexerAllocationRewardSummaries: Maybe<IndexerAllocationRewardSummariesConnection>;\n  readonly indexerAllocationRewardSummary: Maybe<IndexerAllocationRewardSummary>;\n  /** Reads a single `IndexerAllocationRewardSummary` using its globally unique `ID`. */\n  readonly indexerAllocationRewardSummaryByNodeId: Maybe<IndexerAllocationRewardSummary>;\n  /** Reads and enables pagination through a set of `IndexerAllocationReward`. */\n  readonly indexerAllocationRewards: Maybe<IndexerAllocationRewardsConnection>;\n  /** Reads and enables pagination through a set of `IndexerAllocationSummary`. */\n  readonly indexerAllocationSummaries: Maybe<IndexerAllocationSummariesConnection>;\n  readonly indexerAllocationSummary: Maybe<IndexerAllocationSummary>;\n  /** Reads a single `IndexerAllocationSummary` using its globally unique `ID`. */\n  readonly indexerAllocationSummaryByNodeId: Maybe<IndexerAllocationSummary>;\n  /** Reads and enables pagination through a set of `IndexerAllocation`. */\n  readonly indexerAllocations: Maybe<IndexerAllocationsConnection>;\n  /** Reads and enables pagination through a set of `IndexerApySummary`. */\n  readonly indexerApySummaries: Maybe<IndexerApySummariesConnection>;\n  readonly indexerApySummary: Maybe<IndexerApySummary>;\n  /** Reads a single `IndexerApySummary` using its globally unique `ID`. */\n  readonly indexerApySummaryByNodeId: Maybe<IndexerApySummary>;\n  /** Reads a single `Indexer` using its globally unique `ID`. */\n  readonly indexerByNodeId: Maybe<Indexer>;\n  readonly indexerCommissionRate: Maybe<IndexerCommissionRate>;\n  /** Reads a single `IndexerCommissionRate` using its globally unique `ID`. */\n  readonly indexerCommissionRateByNodeId: Maybe<IndexerCommissionRate>;\n  /** Reads and enables pagination through a set of `IndexerCommissionRate`. */\n  readonly indexerCommissionRates: Maybe<IndexerCommissionRatesConnection>;\n  readonly indexerDeployment: Maybe<IndexerDeployment>;\n  /** Reads a single `IndexerDeployment` using its globally unique `ID`. */\n  readonly indexerDeploymentByNodeId: Maybe<IndexerDeployment>;\n  /** Reads and enables pagination through a set of `IndexerDeployment`. */\n  readonly indexerDeployments: Maybe<IndexerDeploymentsConnection>;\n  readonly indexerEraDeploymentReward: Maybe<IndexerEraDeploymentReward>;\n  /** Reads a single `IndexerEraDeploymentReward` using its globally unique `ID`. */\n  readonly indexerEraDeploymentRewardByNodeId: Maybe<IndexerEraDeploymentReward>;\n  /** Reads and enables pagination through a set of `IndexerEraDeploymentReward`. */\n  readonly indexerEraDeploymentRewards: Maybe<IndexerEraDeploymentRewardsConnection>;\n  /** Reads and enables pagination through a set of `IndexerLaborHistory`. */\n  readonly indexerLaborHistories: Maybe<IndexerLaborHistoriesConnection>;\n  readonly indexerLaborHistory: Maybe<IndexerLaborHistory>;\n  /** Reads a single `IndexerLaborHistory` using its globally unique `ID`. */\n  readonly indexerLaborHistoryByNodeId: Maybe<IndexerLaborHistory>;\n  readonly indexerLatestAllocationOverflow: Maybe<IndexerLatestAllocationOverflow>;\n  /** Reads a single `IndexerLatestAllocationOverflow` using its globally unique `ID`. */\n  readonly indexerLatestAllocationOverflowByNodeId: Maybe<IndexerLatestAllocationOverflow>;\n  /** Reads and enables pagination through a set of `IndexerLatestAllocationOverflow`. */\n  readonly indexerLatestAllocationOverflows: Maybe<IndexerLatestAllocationOverflowsConnection>;\n  readonly indexerMissedLabor: Maybe<IndexerMissedLabor>;\n  /** Reads a single `IndexerMissedLabor` using its globally unique `ID`. */\n  readonly indexerMissedLaborByNodeId: Maybe<IndexerMissedLabor>;\n  /** Reads and enables pagination through a set of `IndexerMissedLabor`. */\n  readonly indexerMissedLabors: Maybe<IndexerMissedLaborsConnection>;\n  readonly indexerReward: Maybe<IndexerReward>;\n  /** Reads a single `IndexerReward` using its globally unique `ID`. */\n  readonly indexerRewardByNodeId: Maybe<IndexerReward>;\n  /** Reads and enables pagination through a set of `IndexerReward`. */\n  readonly indexerRewards: Maybe<IndexerRewardsConnection>;\n  readonly indexerStake: Maybe<IndexerStake>;\n  /** Reads a single `IndexerStake` using its globally unique `ID`. */\n  readonly indexerStakeByNodeId: Maybe<IndexerStake>;\n  /** Reads and enables pagination through a set of `IndexerStakeSummary`. */\n  readonly indexerStakeSummaries: Maybe<IndexerStakeSummariesConnection>;\n  readonly indexerStakeSummary: Maybe<IndexerStakeSummary>;\n  /** Reads a single `IndexerStakeSummary` using its globally unique `ID`. */\n  readonly indexerStakeSummaryByNodeId: Maybe<IndexerStakeSummary>;\n  readonly indexerStakeWeight: Maybe<IndexerStakeWeight>;\n  /** Reads a single `IndexerStakeWeight` using its globally unique `ID`. */\n  readonly indexerStakeWeightByNodeId: Maybe<IndexerStakeWeight>;\n  /** Reads and enables pagination through a set of `IndexerStakeWeight`. */\n  readonly indexerStakeWeights: Maybe<IndexerStakeWeightsConnection>;\n  /** Reads and enables pagination through a set of `IndexerStake`. */\n  readonly indexerStakes: Maybe<IndexerStakesConnection>;\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexers: Maybe<IndexersConnection>;\n  /** Fetches an object given its globally unique `ID`. */\n  readonly node: Maybe<Node>;\n  /** The root query type must be a `Node` to work well with Relay 1 mutations. This just resolves to `query`. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly offer: Maybe<Offer>;\n  /** Reads a single `Offer` using its globally unique `ID`. */\n  readonly offerByNodeId: Maybe<Offer>;\n  /** Reads and enables pagination through a set of `Offer`. */\n  readonly offers: Maybe<OffersConnection>;\n  readonly order: Maybe<Order>;\n  /** Reads a single `Order` using its globally unique `ID`. */\n  readonly orderByNodeId: Maybe<Order>;\n  /** Reads and enables pagination through a set of `Order`. */\n  readonly orders: Maybe<OrdersConnection>;\n  readonly plan: Maybe<Plan>;\n  /** Reads a single `Plan` using its globally unique `ID`. */\n  readonly planByNodeId: Maybe<Plan>;\n  readonly planTemplate: Maybe<PlanTemplate>;\n  /** Reads a single `PlanTemplate` using its globally unique `ID`. */\n  readonly planTemplateByNodeId: Maybe<PlanTemplate>;\n  /** Reads and enables pagination through a set of `PlanTemplate`. */\n  readonly planTemplates: Maybe<PlanTemplatesConnection>;\n  /** Reads and enables pagination through a set of `Plan`. */\n  readonly plans: Maybe<PlansConnection>;\n  readonly priceOracle: Maybe<PriceOracle>;\n  /** Reads a single `PriceOracle` using its globally unique `ID`. */\n  readonly priceOracleByNodeId: Maybe<PriceOracle>;\n  /** Reads and enables pagination through a set of `PriceOracle`. */\n  readonly priceOracles: Maybe<PriceOraclesConnection>;\n  readonly project: Maybe<Project>;\n  /** Reads a single `Project` using its globally unique `ID`. */\n  readonly projectByNodeId: Maybe<Project>;\n  /** Reads and enables pagination through a set of `Project`. */\n  readonly projects: Maybe<ProjectsConnection>;\n  /**\n   * Exposes the root query type nested one level down. This is helpful for Relay 1\n   * which can only query top level fields if they are in a particular form.\n   */\n  readonly query: Query;\n  readonly reward: Maybe<Reward>;\n  /** Reads a single `Reward` using its globally unique `ID`. */\n  readonly rewardByNodeId: Maybe<Reward>;\n  /** Reads and enables pagination through a set of `Reward`. */\n  readonly rewards: Maybe<RewardsConnection>;\n  readonly serviceAgreement: Maybe<ServiceAgreement>;\n  /** Reads a single `ServiceAgreement` using its globally unique `ID`. */\n  readonly serviceAgreementByNodeId: Maybe<ServiceAgreement>;\n  /** Reads and enables pagination through a set of `ServiceAgreement`. */\n  readonly serviceAgreements: Maybe<ServiceAgreementsConnection>;\n  readonly sqtoken: Maybe<Sqtoken>;\n  /** Reads a single `Sqtoken` using its globally unique `ID`. */\n  readonly sqtokenByNodeId: Maybe<Sqtoken>;\n  /** Reads and enables pagination through a set of `Sqtoken`. */\n  readonly sqtokens: Maybe<SqtokensConnection>;\n  readonly stateChannel: Maybe<StateChannel>;\n  /** Reads a single `StateChannel` using its globally unique `ID`. */\n  readonly stateChannelByNodeId: Maybe<StateChannel>;\n  /** Reads and enables pagination through a set of `StateChannel`. */\n  readonly stateChannels: Maybe<StateChannelsConnection>;\n  readonly tokenHolder: Maybe<TokenHolder>;\n  /** Reads a single `TokenHolder` using its globally unique `ID`. */\n  readonly tokenHolderByNodeId: Maybe<TokenHolder>;\n  /** Reads and enables pagination through a set of `TokenHolder`. */\n  readonly tokenHolders: Maybe<TokenHoldersConnection>;\n  readonly totalLock: Maybe<TotalLock>;\n  /** Reads a single `TotalLock` using its globally unique `ID`. */\n  readonly totalLockByNodeId: Maybe<TotalLock>;\n  /** Reads and enables pagination through a set of `TotalLock`. */\n  readonly totalLocks: Maybe<TotalLocksConnection>;\n  readonly transfer: Maybe<Transfer>;\n  /** Reads a single `Transfer` using its globally unique `ID`. */\n  readonly transferByNodeId: Maybe<Transfer>;\n  /** Reads and enables pagination through a set of `Transfer`. */\n  readonly transfers: Maybe<TransfersConnection>;\n  readonly unclaimedReward: Maybe<UnclaimedReward>;\n  /** Reads a single `UnclaimedReward` using its globally unique `ID`. */\n  readonly unclaimedRewardByNodeId: Maybe<UnclaimedReward>;\n  /** Reads and enables pagination through a set of `UnclaimedReward`. */\n  readonly unclaimedRewards: Maybe<UnclaimedRewardsConnection>;\n  readonly withdraw: Maybe<Withdraw>;\n  /** Reads a single `Withdraw` using its globally unique `ID`. */\n  readonly withdrawByNodeId: Maybe<Withdraw>;\n  readonly withdrawl: Maybe<Withdrawl>;\n  /** Reads a single `Withdrawl` using its globally unique `ID`. */\n  readonly withdrawlByNodeId: Maybe<Withdrawl>;\n  /** Reads and enables pagination through a set of `Withdrawl`. */\n  readonly withdrawls: Maybe<WithdrawlsConnection>;\n  /** Reads and enables pagination through a set of `Withdraw`. */\n  readonly withdraws: Maybe<WithdrawsConnection>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type Query_MetadataArgs = {\n  chainId: InputMaybe<Scalars['String']['input']>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type Query_MetadatasArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type Query_PoiArgs = {\n  id: Scalars['Int']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type Query_PoiByChainBlockHashArgs = {\n  chainBlockHash: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type Query_PoiByHashArgs = {\n  hash: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type Query_PoiByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<_Poi_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type Query_PoiByParentHashArgs = {\n  parentHash: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type Query_PoisArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<_Poi_Distinct_Enum>>>;\n  filter: InputMaybe<_PoiFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<_PoisOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAcceptedOfferArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAcceptedOfferByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAirdropArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAirdropAmountArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAirdropAmountByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Airdrop_Amounts_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAirdropAmountsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Airdrop_Amounts_Distinct_Enum>>>;\n  filter: InputMaybe<AirdropAmountFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AirdropAmountsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAirdropByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Airdrops_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAirdropUserArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAirdropUserByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Airdrop_Users_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAirdropUsersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Airdrop_Users_Distinct_Enum>>>;\n  filter: InputMaybe<AirdropUserFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AirdropUsersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryAirdropsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Airdrops_Distinct_Enum>>>;\n  filter: InputMaybe<AirdropFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AirdropsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryCachArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryCachByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Caches_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryCachesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Caches_Distinct_Enum>>>;\n  filter: InputMaybe<CachFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<CachesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryConsumerControllerArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryConsumerControllerByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Controllers_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryConsumerControllersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Controllers_Distinct_Enum>>>;\n  filter: InputMaybe<ConsumerControllerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ConsumerControllersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryConsumerQueryRewardArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryConsumerQueryRewardByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Rewards_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryConsumerQueryRewardSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Reward_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<ConsumerQueryRewardSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryConsumerQueryRewardSummaryArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryConsumerQueryRewardSummaryByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Reward_Summaries_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryConsumerQueryRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Consumer_Query_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<ConsumerQueryRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ConsumerQueryRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryControllerArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryControllerByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Controllers_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryControllersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Controllers_Distinct_Enum>>>;\n  filter: InputMaybe<ControllerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ControllersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDelegationArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDelegationByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegations_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDelegationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegations_Distinct_Enum>>>;\n  filter: InputMaybe<DelegationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDelegatorArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDelegatorByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegators_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDelegatorsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Delegators_Distinct_Enum>>>;\n  filter: InputMaybe<DelegatorFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DelegatorsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDeploymentArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDeploymentBoosterArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDeploymentBoosterByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Boosters_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDeploymentBoosterSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Booster_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentBoosterSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentBoosterSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDeploymentBoosterSummaryArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDeploymentBoosterSummaryByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Booster_Summaries_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDeploymentBoostersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployment_Boosters_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentBoosterFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentBoostersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDeploymentByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDeploymentsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<DeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDisputeArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDisputeByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Disputes_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryDisputesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Disputes_Distinct_Enum>>>;\n  filter: InputMaybe<DisputeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<DisputesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Eras_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDelegatorApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraDelegatorApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraDelegatorApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDelegatorApyArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDelegatorApyByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Apies_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDelegatorIndexerArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDelegatorIndexerApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Indexer_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraDelegatorIndexerApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraDelegatorIndexerApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDelegatorIndexerApyArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDelegatorIndexerApyByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Indexer_Apies_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDelegatorIndexerByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Indexers_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDelegatorIndexersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Delegator_Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<EraDelegatorIndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraDelegatorIndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDeploymentRewardArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDeploymentRewardByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Deployment_Rewards_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraDeploymentRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Deployment_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraDeploymentRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraDeploymentRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraIndexerApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraIndexerApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraIndexerApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraIndexerApyArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraIndexerApyByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Apies_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraIndexerDelegatorArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraIndexerDelegatorByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Delegators_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraIndexerDelegatorsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Delegators_Distinct_Enum>>>;\n  filter: InputMaybe<EraIndexerDelegatorFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraIndexerDelegatorsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraIndexerDeploymentApiesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Deployment_Apies_Distinct_Enum>>>;\n  filter: InputMaybe<EraIndexerDeploymentApyFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraIndexerDeploymentApiesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraIndexerDeploymentApyArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraIndexerDeploymentApyByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Indexer_Deployment_Apies_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraRewardArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraRewardByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraRewardClaimedArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraRewardClaimedByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Reward_Claimeds_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraRewardClaimedsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Reward_Claimeds_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardClaimedFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardClaimedsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<EraRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraStakeArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraStakeByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraStakeUpdateArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraStakeUpdateByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stake_Updates_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraStakeUpdatesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stake_Updates_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeUpdateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakeUpdatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryEraStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Era_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<EraStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<EraStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryErasArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Eras_Distinct_Enum>>>;\n  filter: InputMaybe<EraFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ErasOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryExceptionArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryExceptionByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Exceptions_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryExceptionsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Exceptions_Distinct_Enum>>>;\n  filter: InputMaybe<ExceptionFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ExceptionsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationOverflowArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationOverflowByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Overflows_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationOverflowsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Overflows_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationOverflowFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationOverflowsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationRewardArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationRewardByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationRewardSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationRewardSummaryArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationRewardSummaryByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Reward_Summaries_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationSummaryArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationSummaryByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocation_Summaries_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerAllocationsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Allocations_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerAllocationFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerAllocationsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerApySummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Apy_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerApySummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerApySummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerApySummaryArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerApySummaryByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Apy_Summaries_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerCommissionRateArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerCommissionRateByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Commission_Rates_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerCommissionRatesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Commission_Rates_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerCommissionRateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerCommissionRatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerDeploymentArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerDeploymentByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Deployments_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerDeploymentsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Deployments_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerDeploymentFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerDeploymentsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerEraDeploymentRewardArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerEraDeploymentRewardByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Era_Deployment_Rewards_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerEraDeploymentRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Era_Deployment_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerEraDeploymentRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerEraDeploymentRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerLaborHistoriesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Labor_Histories_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerLaborHistoryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerLaborHistoriesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerLaborHistoryArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerLaborHistoryByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Labor_Histories_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerLatestAllocationOverflowArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerLatestAllocationOverflowByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Latest_Allocation_Overflows_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerLatestAllocationOverflowsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Latest_Allocation_Overflows_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerLatestAllocationOverflowFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerLatestAllocationOverflowsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerMissedLaborArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerMissedLaborByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Missed_Labors_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerMissedLaborsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Missed_Labors_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerMissedLaborFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerMissedLaborsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerRewardArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerRewardByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Rewards_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerStakeArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerStakeByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stakes_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerStakeSummariesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stake_Summaries_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerStakeSummaryFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerStakeSummariesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerStakeSummaryArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerStakeSummaryByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stake_Summaries_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerStakeWeightArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerStakeWeightByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stake_Weights_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerStakeWeightsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stake_Weights_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerStakeWeightFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerStakeWeightsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexerStakesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexer_Stakes_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerStakeFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexerStakesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryIndexersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryNodeArgs = {\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryOfferArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryOfferByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Offers_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Offers_Distinct_Enum>>>;\n  filter: InputMaybe<OfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<OffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryOrderArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryOrderByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Orders_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryOrdersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Orders_Distinct_Enum>>>;\n  filter: InputMaybe<OrderFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<OrdersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryPlanArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryPlanByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plans_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryPlanTemplateArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryPlanTemplateByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plan_Templates_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryPlanTemplatesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plan_Templates_Distinct_Enum>>>;\n  filter: InputMaybe<PlanTemplateFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PlanTemplatesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryPlansArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Plans_Distinct_Enum>>>;\n  filter: InputMaybe<PlanFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PlansOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryPriceOracleArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryPriceOracleByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Price_Oracles_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryPriceOraclesArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Price_Oracles_Distinct_Enum>>>;\n  filter: InputMaybe<PriceOracleFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<PriceOraclesOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryProjectArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryProjectByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryProjectsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Projects_Distinct_Enum>>>;\n  filter: InputMaybe<ProjectFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ProjectsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryRewardArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryRewardByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Rewards_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<RewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<RewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryServiceAgreementArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryServiceAgreementByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Service_Agreements_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryServiceAgreementsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Service_Agreements_Distinct_Enum>>>;\n  filter: InputMaybe<ServiceAgreementFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<ServiceAgreementsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QuerySqtokenArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QuerySqtokenByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Sqtokens_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QuerySqtokensArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Sqtokens_Distinct_Enum>>>;\n  filter: InputMaybe<SqtokenFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<SqtokensOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryStateChannelArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryStateChannelByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<State_Channels_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryStateChannelsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<State_Channels_Distinct_Enum>>>;\n  filter: InputMaybe<StateChannelFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<StateChannelsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryTokenHolderArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryTokenHolderByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Token_Holders_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryTokenHoldersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Token_Holders_Distinct_Enum>>>;\n  filter: InputMaybe<TokenHolderFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<TokenHoldersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryTotalLockArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryTotalLockByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Total_Locks_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryTotalLocksArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Total_Locks_Distinct_Enum>>>;\n  filter: InputMaybe<TotalLockFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<TotalLocksOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryTransferArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryTransferByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Transfers_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryTransfersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Transfers_Distinct_Enum>>>;\n  filter: InputMaybe<TransferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<TransfersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryUnclaimedRewardArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryUnclaimedRewardByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Unclaimed_Rewards_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryUnclaimedRewardsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Unclaimed_Rewards_Distinct_Enum>>>;\n  filter: InputMaybe<UnclaimedRewardFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<UnclaimedRewardsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryWithdrawArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryWithdrawByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Withdraws_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryWithdrawlArgs = {\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  id: Scalars['String']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryWithdrawlByNodeIdArgs = {\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Withdrawls_Distinct_Enum>>>;\n  nodeId: Scalars['ID']['input'];\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryWithdrawlsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Withdrawls_Distinct_Enum>>>;\n  filter: InputMaybe<WithdrawlFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<WithdrawlsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\n/** The root query type which gives access points into the data universe. */\nexport type QueryWithdrawsArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Withdraws_Distinct_Enum>>>;\n  filter: InputMaybe<WithdrawFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<WithdrawsOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type Reward = Node & {\n  readonly __typename: 'Reward';\n  readonly amount: Scalars['BigFloat']['output'];\n  readonly claimedTime: Scalars['Datetime']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Reads a single `Delegator` that is related to this `Reward`. */\n  readonly delegator: Maybe<Delegator>;\n  readonly delegatorAddress: Scalars['String']['output'];\n  readonly delegatorId: Maybe<Scalars['String']['output']>;\n  readonly id: Scalars['String']['output'];\n  readonly indexerAddress: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type RewardAggregates = {\n  readonly __typename: 'RewardAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<RewardAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<RewardDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<RewardMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<RewardMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<RewardStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<RewardStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<RewardSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<RewardVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<RewardVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `Reward` object types. */\nexport type RewardAggregatesFilter = {\n  /** Mean average aggregate over matching `Reward` objects. */\n  readonly average: InputMaybe<RewardAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `Reward` objects. */\n  readonly distinctCount: InputMaybe<RewardDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `Reward` object to be included within the aggregate. */\n  readonly filter: InputMaybe<RewardFilter>;\n  /** Maximum aggregate over matching `Reward` objects. */\n  readonly max: InputMaybe<RewardMaxAggregateFilter>;\n  /** Minimum aggregate over matching `Reward` objects. */\n  readonly min: InputMaybe<RewardMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `Reward` objects. */\n  readonly stddevPopulation: InputMaybe<RewardStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `Reward` objects. */\n  readonly stddevSample: InputMaybe<RewardStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `Reward` objects. */\n  readonly sum: InputMaybe<RewardSumAggregateFilter>;\n  /** Population variance aggregate over matching `Reward` objects. */\n  readonly variancePopulation: InputMaybe<RewardVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `Reward` objects. */\n  readonly varianceSample: InputMaybe<RewardVarianceSampleAggregateFilter>;\n};\n\nexport type RewardAverageAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type RewardAverageAggregates = {\n  readonly __typename: 'RewardAverageAggregates';\n  /** Mean average of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type RewardDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly amount: InputMaybe<BigIntFilter>;\n  readonly claimedTime: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly delegatorAddress: InputMaybe<BigIntFilter>;\n  readonly delegatorId: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerAddress: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n};\n\nexport type RewardDistinctCountAggregates = {\n  readonly __typename: 'RewardDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of claimedTime across the matching connection */\n  readonly claimedTime: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorAddress across the matching connection */\n  readonly delegatorAddress: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorId across the matching connection */\n  readonly delegatorId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerAddress across the matching connection */\n  readonly indexerAddress: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Reward` object types. All fields are combined with a logical ‘and.’ */\nexport type RewardFilter = {\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<RewardFilter>>;\n  /** Filter by the object’s `claimedTime` field. */\n  readonly claimedTime: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `delegator` relation. */\n  readonly delegator: InputMaybe<DelegatorFilter>;\n  /** Filter by the object’s `delegatorAddress` field. */\n  readonly delegatorAddress: InputMaybe<StringFilter>;\n  /** A related `delegator` exists. */\n  readonly delegatorExists: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `delegatorId` field. */\n  readonly delegatorId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerAddress` field. */\n  readonly indexerAddress: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<RewardFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<RewardFilter>>;\n};\n\nexport type RewardMaxAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type RewardMaxAggregates = {\n  readonly __typename: 'RewardMaxAggregates';\n  /** Maximum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RewardMinAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type RewardMinAggregates = {\n  readonly __typename: 'RewardMinAggregates';\n  /** Minimum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RewardStddevPopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type RewardStddevPopulationAggregates = {\n  readonly __typename: 'RewardStddevPopulationAggregates';\n  /** Population standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type RewardStddevSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type RewardStddevSampleAggregates = {\n  readonly __typename: 'RewardStddevSampleAggregates';\n  /** Sample standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type RewardSumAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n};\n\nexport type RewardSumAggregates = {\n  readonly __typename: 'RewardSumAggregates';\n  /** Sum of amount across the matching connection */\n  readonly amount: Scalars['BigFloat']['output'];\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\nexport type RewardVariancePopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type RewardVariancePopulationAggregates = {\n  readonly __typename: 'RewardVariancePopulationAggregates';\n  /** Population variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type RewardVarianceSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type RewardVarianceSampleAggregates = {\n  readonly __typename: 'RewardVarianceSampleAggregates';\n  /** Sample variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Reward` values. */\nexport type RewardsConnection = {\n  readonly __typename: 'RewardsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<RewardAggregates>;\n  /** A list of edges which contains the `Reward` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<RewardsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<RewardAggregates>>;\n  /** A list of `Reward` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Reward>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Reward` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Reward` values. */\nexport type RewardsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<RewardsGroupBy>;\n  having: InputMaybe<RewardsHavingInput>;\n};\n\n/** A `Reward` edge in the connection. */\nexport type RewardsEdge = {\n  readonly __typename: 'RewardsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Reward` at the end of the edge. */\n  readonly node: Maybe<Reward>;\n};\n\n/** Grouping methods for `Reward` for usage during aggregation. */\nexport enum RewardsGroupBy {\n  AMOUNT = 'AMOUNT',\n  CLAIMED_TIME = 'CLAIMED_TIME',\n  CLAIMED_TIME_TRUNCATED_TO_DAY = 'CLAIMED_TIME_TRUNCATED_TO_DAY',\n  CLAIMED_TIME_TRUNCATED_TO_HOUR = 'CLAIMED_TIME_TRUNCATED_TO_HOUR',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DELEGATOR_ADDRESS = 'DELEGATOR_ADDRESS',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ID = 'ID',\n  INDEXER_ADDRESS = 'INDEXER_ADDRESS',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport type RewardsHavingAverageInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly claimedTime: InputMaybe<HavingDatetimeFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type RewardsHavingDistinctCountInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly claimedTime: InputMaybe<HavingDatetimeFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `Reward` aggregates. */\nexport type RewardsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<RewardsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<RewardsHavingInput>>;\n  readonly average: InputMaybe<RewardsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<RewardsHavingDistinctCountInput>;\n  readonly max: InputMaybe<RewardsHavingMaxInput>;\n  readonly min: InputMaybe<RewardsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<RewardsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<RewardsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<RewardsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<RewardsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<RewardsHavingVarianceSampleInput>;\n};\n\nexport type RewardsHavingMaxInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly claimedTime: InputMaybe<HavingDatetimeFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type RewardsHavingMinInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly claimedTime: InputMaybe<HavingDatetimeFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type RewardsHavingStddevPopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly claimedTime: InputMaybe<HavingDatetimeFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type RewardsHavingStddevSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly claimedTime: InputMaybe<HavingDatetimeFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type RewardsHavingSumInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly claimedTime: InputMaybe<HavingDatetimeFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type RewardsHavingVariancePopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly claimedTime: InputMaybe<HavingDatetimeFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type RewardsHavingVarianceSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly claimedTime: InputMaybe<HavingDatetimeFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `Reward`. */\nexport enum RewardsOrderBy {\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  CLAIMED_TIME_ASC = 'CLAIMED_TIME_ASC',\n  CLAIMED_TIME_DESC = 'CLAIMED_TIME_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DELEGATOR_ADDRESS_ASC = 'DELEGATOR_ADDRESS_ASC',\n  DELEGATOR_ADDRESS_DESC = 'DELEGATOR_ADDRESS_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_ASC = 'DELEGATOR_BY_DELEGATOR_ID__ID_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_DESC = 'DELEGATOR_BY_DELEGATOR_ID__ID_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC',\n  DELEGATOR_ID_ASC = 'DELEGATOR_ID_ASC',\n  DELEGATOR_ID_DESC = 'DELEGATOR_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_ADDRESS_ASC = 'INDEXER_ADDRESS_ASC',\n  INDEXER_ADDRESS_DESC = 'INDEXER_ADDRESS_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type ServiceAgreement = Node & {\n  readonly __typename: 'ServiceAgreement';\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: AcceptedOffersConnection;\n  readonly consumerAddress: Scalars['String']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Reads a single `Deployment` that is related to this `ServiceAgreement`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly endTime: Scalars['Datetime']['output'];\n  readonly id: Scalars['String']['output'];\n  readonly indexerAddress: Scalars['String']['output'];\n  /** Reads and enables pagination through a set of `Indexer`. */\n  readonly indexersByAcceptedOfferServiceAgreementIdAndIndexerId: ServiceAgreementIndexersByAcceptedOfferServiceAgreementIdAndIndexerIdManyToManyConnection;\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  readonly lockedAmount: Scalars['BigFloat']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads and enables pagination through a set of `Offer`. */\n  readonly offersByAcceptedOfferServiceAgreementIdAndOfferId: ServiceAgreementOffersByAcceptedOfferServiceAgreementIdAndOfferIdManyToManyConnection;\n  readonly period: Scalars['BigFloat']['output'];\n  /** Reads a single `PlanTemplate` that is related to this `ServiceAgreement`. */\n  readonly planTemplate: Maybe<PlanTemplate>;\n  readonly planTemplateId: Scalars['String']['output'];\n  readonly startTime: Scalars['Datetime']['output'];\n};\n\nexport type ServiceAgreementAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ServiceAgreementIndexersByAcceptedOfferServiceAgreementIdAndIndexerIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Indexers_Distinct_Enum>>>;\n  filter: InputMaybe<IndexerFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<IndexersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ServiceAgreementOffersByAcceptedOfferServiceAgreementIdAndOfferIdArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Offers_Distinct_Enum>>>;\n  filter: InputMaybe<OfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<OffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ServiceAgreementAggregates = {\n  readonly __typename: 'ServiceAgreementAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<ServiceAgreementAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<ServiceAgreementDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<ServiceAgreementMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<ServiceAgreementMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<ServiceAgreementStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<ServiceAgreementStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<ServiceAgreementSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<ServiceAgreementVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<ServiceAgreementVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `ServiceAgreement` object types. */\nexport type ServiceAgreementAggregatesFilter = {\n  /** Mean average aggregate over matching `ServiceAgreement` objects. */\n  readonly average: InputMaybe<ServiceAgreementAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `ServiceAgreement` objects. */\n  readonly distinctCount: InputMaybe<ServiceAgreementDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `ServiceAgreement` object to be included within the aggregate. */\n  readonly filter: InputMaybe<ServiceAgreementFilter>;\n  /** Maximum aggregate over matching `ServiceAgreement` objects. */\n  readonly max: InputMaybe<ServiceAgreementMaxAggregateFilter>;\n  /** Minimum aggregate over matching `ServiceAgreement` objects. */\n  readonly min: InputMaybe<ServiceAgreementMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `ServiceAgreement` objects. */\n  readonly stddevPopulation: InputMaybe<ServiceAgreementStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `ServiceAgreement` objects. */\n  readonly stddevSample: InputMaybe<ServiceAgreementStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `ServiceAgreement` objects. */\n  readonly sum: InputMaybe<ServiceAgreementSumAggregateFilter>;\n  /** Population variance aggregate over matching `ServiceAgreement` objects. */\n  readonly variancePopulation: InputMaybe<ServiceAgreementVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `ServiceAgreement` objects. */\n  readonly varianceSample: InputMaybe<ServiceAgreementVarianceSampleAggregateFilter>;\n};\n\nexport type ServiceAgreementAverageAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly lockedAmount: InputMaybe<BigFloatFilter>;\n  readonly period: InputMaybe<BigFloatFilter>;\n};\n\nexport type ServiceAgreementAverageAggregates = {\n  readonly __typename: 'ServiceAgreementAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of lockedAmount across the matching connection */\n  readonly lockedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ServiceAgreementDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly consumerAddress: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly endTime: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerAddress: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n  readonly lockedAmount: InputMaybe<BigIntFilter>;\n  readonly period: InputMaybe<BigIntFilter>;\n  readonly planTemplateId: InputMaybe<BigIntFilter>;\n  readonly startTime: InputMaybe<BigIntFilter>;\n};\n\nexport type ServiceAgreementDistinctCountAggregates = {\n  readonly __typename: 'ServiceAgreementDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of consumerAddress across the matching connection */\n  readonly consumerAddress: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of endTime across the matching connection */\n  readonly endTime: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerAddress across the matching connection */\n  readonly indexerAddress: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lockedAmount across the matching connection */\n  readonly lockedAmount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of period across the matching connection */\n  readonly period: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of planTemplateId across the matching connection */\n  readonly planTemplateId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of startTime across the matching connection */\n  readonly startTime: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `ServiceAgreement` object types. All fields are combined with a logical ‘and.’ */\nexport type ServiceAgreementFilter = {\n  /** Filter by the object’s `acceptedOffers` relation. */\n  readonly acceptedOffers: InputMaybe<ServiceAgreementToManyAcceptedOfferFilter>;\n  /** Some related `acceptedOffers` exist. */\n  readonly acceptedOffersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<ServiceAgreementFilter>>;\n  /** Filter by the object’s `consumerAddress` field. */\n  readonly consumerAddress: InputMaybe<StringFilter>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `endTime` field. */\n  readonly endTime: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerAddress` field. */\n  readonly indexerAddress: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lockedAmount` field. */\n  readonly lockedAmount: InputMaybe<BigFloatFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<ServiceAgreementFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<ServiceAgreementFilter>>;\n  /** Filter by the object’s `period` field. */\n  readonly period: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `planTemplate` relation. */\n  readonly planTemplate: InputMaybe<PlanTemplateFilter>;\n  /** Filter by the object’s `planTemplateId` field. */\n  readonly planTemplateId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `startTime` field. */\n  readonly startTime: InputMaybe<DatetimeFilter>;\n};\n\n/** A connection to a list of `Indexer` values, with data from `AcceptedOffer`. */\nexport type ServiceAgreementIndexersByAcceptedOfferServiceAgreementIdAndIndexerIdManyToManyConnection = {\n  readonly __typename: 'ServiceAgreementIndexersByAcceptedOfferServiceAgreementIdAndIndexerIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<IndexerAggregates>;\n  /** A list of edges which contains the `Indexer`, info from the `AcceptedOffer`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ServiceAgreementIndexersByAcceptedOfferServiceAgreementIdAndIndexerIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<IndexerAggregates>>;\n  /** A list of `Indexer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Indexer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Indexer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Indexer` values, with data from `AcceptedOffer`. */\nexport type ServiceAgreementIndexersByAcceptedOfferServiceAgreementIdAndIndexerIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<IndexersGroupBy>;\n    having: InputMaybe<IndexersHavingInput>;\n  };\n\n/** A `Indexer` edge in the connection, with data from `AcceptedOffer`. */\nexport type ServiceAgreementIndexersByAcceptedOfferServiceAgreementIdAndIndexerIdManyToManyEdge = {\n  readonly __typename: 'ServiceAgreementIndexersByAcceptedOfferServiceAgreementIdAndIndexerIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: AcceptedOffersConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Indexer` at the end of the edge. */\n  readonly node: Maybe<Indexer>;\n};\n\n/** A `Indexer` edge in the connection, with data from `AcceptedOffer`. */\nexport type ServiceAgreementIndexersByAcceptedOfferServiceAgreementIdAndIndexerIdManyToManyEdgeAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ServiceAgreementMaxAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly lockedAmount: InputMaybe<BigFloatFilter>;\n  readonly period: InputMaybe<BigFloatFilter>;\n};\n\nexport type ServiceAgreementMaxAggregates = {\n  readonly __typename: 'ServiceAgreementMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of lockedAmount across the matching connection */\n  readonly lockedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ServiceAgreementMinAggregateFilter = {\n  readonly createdBlock: InputMaybe<IntFilter>;\n  readonly lockedAmount: InputMaybe<BigFloatFilter>;\n  readonly period: InputMaybe<BigFloatFilter>;\n};\n\nexport type ServiceAgreementMinAggregates = {\n  readonly __typename: 'ServiceAgreementMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of lockedAmount across the matching connection */\n  readonly lockedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Offer` values, with data from `AcceptedOffer`. */\nexport type ServiceAgreementOffersByAcceptedOfferServiceAgreementIdAndOfferIdManyToManyConnection = {\n  readonly __typename: 'ServiceAgreementOffersByAcceptedOfferServiceAgreementIdAndOfferIdManyToManyConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<OfferAggregates>;\n  /** A list of edges which contains the `Offer`, info from the `AcceptedOffer`, and the cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ServiceAgreementOffersByAcceptedOfferServiceAgreementIdAndOfferIdManyToManyEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<OfferAggregates>>;\n  /** A list of `Offer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Offer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Offer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Offer` values, with data from `AcceptedOffer`. */\nexport type ServiceAgreementOffersByAcceptedOfferServiceAgreementIdAndOfferIdManyToManyConnectionGroupedAggregatesArgs =\n  {\n    groupBy: ReadonlyArray<OffersGroupBy>;\n    having: InputMaybe<OffersHavingInput>;\n  };\n\n/** A `Offer` edge in the connection, with data from `AcceptedOffer`. */\nexport type ServiceAgreementOffersByAcceptedOfferServiceAgreementIdAndOfferIdManyToManyEdge = {\n  readonly __typename: 'ServiceAgreementOffersByAcceptedOfferServiceAgreementIdAndOfferIdManyToManyEdge';\n  /** Reads and enables pagination through a set of `AcceptedOffer`. */\n  readonly acceptedOffers: AcceptedOffersConnection;\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Offer` at the end of the edge. */\n  readonly node: Maybe<Offer>;\n};\n\n/** A `Offer` edge in the connection, with data from `AcceptedOffer`. */\nexport type ServiceAgreementOffersByAcceptedOfferServiceAgreementIdAndOfferIdManyToManyEdgeAcceptedOffersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Accepted_Offers_Distinct_Enum>>>;\n  filter: InputMaybe<AcceptedOfferFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<AcceptedOffersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type ServiceAgreementStddevPopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly lockedAmount: InputMaybe<BigFloatFilter>;\n  readonly period: InputMaybe<BigFloatFilter>;\n};\n\nexport type ServiceAgreementStddevPopulationAggregates = {\n  readonly __typename: 'ServiceAgreementStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of lockedAmount across the matching connection */\n  readonly lockedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ServiceAgreementStddevSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly lockedAmount: InputMaybe<BigFloatFilter>;\n  readonly period: InputMaybe<BigFloatFilter>;\n};\n\nexport type ServiceAgreementStddevSampleAggregates = {\n  readonly __typename: 'ServiceAgreementStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of lockedAmount across the matching connection */\n  readonly lockedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ServiceAgreementSumAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly lockedAmount: InputMaybe<BigFloatFilter>;\n  readonly period: InputMaybe<BigFloatFilter>;\n};\n\nexport type ServiceAgreementSumAggregates = {\n  readonly __typename: 'ServiceAgreementSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of lockedAmount across the matching connection */\n  readonly lockedAmount: Scalars['BigFloat']['output'];\n  /** Sum of period across the matching connection */\n  readonly period: Scalars['BigFloat']['output'];\n};\n\n/** A filter to be used against many `AcceptedOffer` object types. All fields are combined with a logical ‘and.’ */\nexport type ServiceAgreementToManyAcceptedOfferFilter = {\n  /** Aggregates across related `AcceptedOffer` match the filter criteria. */\n  readonly aggregates: InputMaybe<AcceptedOfferAggregatesFilter>;\n  /** Every related `AcceptedOffer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<AcceptedOfferFilter>;\n  /** No related `AcceptedOffer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<AcceptedOfferFilter>;\n  /** Some related `AcceptedOffer` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<AcceptedOfferFilter>;\n};\n\nexport type ServiceAgreementVariancePopulationAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly lockedAmount: InputMaybe<BigFloatFilter>;\n  readonly period: InputMaybe<BigFloatFilter>;\n};\n\nexport type ServiceAgreementVariancePopulationAggregates = {\n  readonly __typename: 'ServiceAgreementVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of lockedAmount across the matching connection */\n  readonly lockedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type ServiceAgreementVarianceSampleAggregateFilter = {\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n  readonly lockedAmount: InputMaybe<BigFloatFilter>;\n  readonly period: InputMaybe<BigFloatFilter>;\n};\n\nexport type ServiceAgreementVarianceSampleAggregates = {\n  readonly __typename: 'ServiceAgreementVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of lockedAmount across the matching connection */\n  readonly lockedAmount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of period across the matching connection */\n  readonly period: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `ServiceAgreement` values. */\nexport type ServiceAgreementsConnection = {\n  readonly __typename: 'ServiceAgreementsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<ServiceAgreementAggregates>;\n  /** A list of edges which contains the `ServiceAgreement` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<ServiceAgreementsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<ServiceAgreementAggregates>>;\n  /** A list of `ServiceAgreement` objects. */\n  readonly nodes: ReadonlyArray<Maybe<ServiceAgreement>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `ServiceAgreement` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `ServiceAgreement` values. */\nexport type ServiceAgreementsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<ServiceAgreementsGroupBy>;\n  having: InputMaybe<ServiceAgreementsHavingInput>;\n};\n\n/** A `ServiceAgreement` edge in the connection. */\nexport type ServiceAgreementsEdge = {\n  readonly __typename: 'ServiceAgreementsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `ServiceAgreement` at the end of the edge. */\n  readonly node: Maybe<ServiceAgreement>;\n};\n\n/** Grouping methods for `ServiceAgreement` for usage during aggregation. */\nexport enum ServiceAgreementsGroupBy {\n  CONSUMER_ADDRESS = 'CONSUMER_ADDRESS',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  END_TIME = 'END_TIME',\n  END_TIME_TRUNCATED_TO_DAY = 'END_TIME_TRUNCATED_TO_DAY',\n  END_TIME_TRUNCATED_TO_HOUR = 'END_TIME_TRUNCATED_TO_HOUR',\n  ID = 'ID',\n  INDEXER_ADDRESS = 'INDEXER_ADDRESS',\n  LAST_EVENT = 'LAST_EVENT',\n  LOCKED_AMOUNT = 'LOCKED_AMOUNT',\n  PERIOD = 'PERIOD',\n  PLAN_TEMPLATE_ID = 'PLAN_TEMPLATE_ID',\n  START_TIME = 'START_TIME',\n  START_TIME_TRUNCATED_TO_DAY = 'START_TIME_TRUNCATED_TO_DAY',\n  START_TIME_TRUNCATED_TO_HOUR = 'START_TIME_TRUNCATED_TO_HOUR',\n}\n\nexport type ServiceAgreementsHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly lockedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ServiceAgreementsHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly lockedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `ServiceAgreement` aggregates. */\nexport type ServiceAgreementsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<ServiceAgreementsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<ServiceAgreementsHavingInput>>;\n  readonly average: InputMaybe<ServiceAgreementsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<ServiceAgreementsHavingDistinctCountInput>;\n  readonly max: InputMaybe<ServiceAgreementsHavingMaxInput>;\n  readonly min: InputMaybe<ServiceAgreementsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<ServiceAgreementsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<ServiceAgreementsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<ServiceAgreementsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<ServiceAgreementsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<ServiceAgreementsHavingVarianceSampleInput>;\n};\n\nexport type ServiceAgreementsHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly lockedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ServiceAgreementsHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly lockedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ServiceAgreementsHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly lockedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ServiceAgreementsHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly lockedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ServiceAgreementsHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly lockedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ServiceAgreementsHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly lockedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type ServiceAgreementsHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly endTime: InputMaybe<HavingDatetimeFilter>;\n  readonly lockedAmount: InputMaybe<HavingBigfloatFilter>;\n  readonly period: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `ServiceAgreement`. */\nexport enum ServiceAgreementsOrderBy {\n  ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_AVERAGE_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_AVERAGE_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_AVERAGE_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_ID_DESC',\n  ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_AVERAGE_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_AVERAGE_OFFER_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_OFFER_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_AVERAGE_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_BY_SERVICE_AGREEMENT_ID__COUNT_ASC = 'ACCEPTED_OFFERS_BY_SERVICE_AGREEMENT_ID__COUNT_ASC',\n  ACCEPTED_OFFERS_BY_SERVICE_AGREEMENT_ID__COUNT_DESC = 'ACCEPTED_OFFERS_BY_SERVICE_AGREEMENT_ID__COUNT_DESC',\n  ACCEPTED_OFFERS_COUNT_ASC = 'ACCEPTED_OFFERS_COUNT_ASC',\n  ACCEPTED_OFFERS_COUNT_DESC = 'ACCEPTED_OFFERS_COUNT_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_ID_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_DISTINCT_COUNT_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_MAX_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_MAX_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_MAX_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_MAX_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_MAX_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_MAX_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_MAX_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_MAX_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_MAX_ID_ASC = 'ACCEPTED_OFFERS_MAX_ID_ASC',\n  ACCEPTED_OFFERS_MAX_ID_DESC = 'ACCEPTED_OFFERS_MAX_ID_DESC',\n  ACCEPTED_OFFERS_MAX_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_MAX_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_MAX_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_MAX_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_MAX_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_MAX_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_MAX_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_MAX_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_MAX_OFFER_ID_ASC = 'ACCEPTED_OFFERS_MAX_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_MAX_OFFER_ID_DESC = 'ACCEPTED_OFFERS_MAX_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_MAX_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_MIN_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_MIN_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_MIN_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_MIN_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_MIN_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_MIN_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_MIN_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_MIN_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_MIN_ID_ASC = 'ACCEPTED_OFFERS_MIN_ID_ASC',\n  ACCEPTED_OFFERS_MIN_ID_DESC = 'ACCEPTED_OFFERS_MIN_ID_DESC',\n  ACCEPTED_OFFERS_MIN_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_MIN_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_MIN_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_MIN_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_MIN_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_MIN_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_MIN_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_MIN_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_MIN_OFFER_ID_ASC = 'ACCEPTED_OFFERS_MIN_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_MIN_OFFER_ID_DESC = 'ACCEPTED_OFFERS_MIN_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_MIN_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_POPULATION_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_STDDEV_SAMPLE_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_SUM_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_SUM_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_SUM_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_SUM_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_SUM_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_SUM_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_SUM_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_SUM_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_SUM_ID_ASC = 'ACCEPTED_OFFERS_SUM_ID_ASC',\n  ACCEPTED_OFFERS_SUM_ID_DESC = 'ACCEPTED_OFFERS_SUM_ID_DESC',\n  ACCEPTED_OFFERS_SUM_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_SUM_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_SUM_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_SUM_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_SUM_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_SUM_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_SUM_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_SUM_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_SUM_OFFER_ID_ASC = 'ACCEPTED_OFFERS_SUM_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_SUM_OFFER_ID_DESC = 'ACCEPTED_OFFERS_SUM_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_SUM_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_POPULATION_SERVICE_AGREEMENT_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_CREATED_BLOCK_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_INDEXER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_LAST_EVENT_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_OFFER_ID_DESC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_ASC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_ASC',\n  ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_DESC = 'ACCEPTED_OFFERS_VARIANCE_SAMPLE_SERVICE_AGREEMENT_ID_DESC',\n  CONSUMER_ADDRESS_ASC = 'CONSUMER_ADDRESS_ASC',\n  CONSUMER_ADDRESS_DESC = 'CONSUMER_ADDRESS_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  END_TIME_ASC = 'END_TIME_ASC',\n  END_TIME_DESC = 'END_TIME_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_ADDRESS_ASC = 'INDEXER_ADDRESS_ASC',\n  INDEXER_ADDRESS_DESC = 'INDEXER_ADDRESS_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  LOCKED_AMOUNT_ASC = 'LOCKED_AMOUNT_ASC',\n  LOCKED_AMOUNT_DESC = 'LOCKED_AMOUNT_DESC',\n  NATURAL = 'NATURAL',\n  PERIOD_ASC = 'PERIOD_ASC',\n  PERIOD_DESC = 'PERIOD_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ACTIVE_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__CREATED_BLOCK_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__DAILY_REQ_CAP_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__ID_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__LAST_EVENT_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__METADATA_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PERIOD_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__PRICE_TOKEN_DESC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_ASC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_ASC',\n  PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_DESC = 'PLAN_TEMPLATE_BY_PLAN_TEMPLATE_ID__RATE_LIMIT_DESC',\n  PLAN_TEMPLATE_ID_ASC = 'PLAN_TEMPLATE_ID_ASC',\n  PLAN_TEMPLATE_ID_DESC = 'PLAN_TEMPLATE_ID_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  START_TIME_ASC = 'START_TIME_ASC',\n  START_TIME_DESC = 'START_TIME_DESC',\n}\n\nexport enum ServiceStatus {\n  READY = 'READY',\n  TERMINATED = 'TERMINATED',\n}\n\n/** A filter to be used against ServiceStatus fields. All fields are combined with a logical ‘and.’ */\nexport type ServiceStatusFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<ServiceStatus>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<ServiceStatus>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<ServiceStatus>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<ServiceStatus>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<ServiceStatus>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<ServiceStatus>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<ServiceStatus>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<ServiceStatus>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<ServiceStatus>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<ServiceStatus>>;\n};\n\nexport type Sqtoken = Node & {\n  readonly __typename: 'Sqtoken';\n  readonly circulatingSupply: Scalars['BigFloat']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads and enables pagination through a set of `TokenHolder`. */\n  readonly tokenHolders: TokenHoldersConnection;\n  readonly totalSupply: Scalars['BigFloat']['output'];\n};\n\nexport type SqtokenTokenHoldersArgs = {\n  after: InputMaybe<Scalars['Cursor']['input']>;\n  before: InputMaybe<Scalars['Cursor']['input']>;\n  blockHeight?: InputMaybe<Scalars['String']['input']>;\n  distinct?: InputMaybe<ReadonlyArray<InputMaybe<Token_Holders_Distinct_Enum>>>;\n  filter: InputMaybe<TokenHolderFilter>;\n  first: InputMaybe<Scalars['Int']['input']>;\n  last: InputMaybe<Scalars['Int']['input']>;\n  offset: InputMaybe<Scalars['Int']['input']>;\n  orderBy: InputMaybe<ReadonlyArray<TokenHoldersOrderBy>>;\n  orderByNull: InputMaybe<NullOrder>;\n};\n\nexport type SqtokenAggregates = {\n  readonly __typename: 'SqtokenAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<SqtokenAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<SqtokenDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<SqtokenMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<SqtokenMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<SqtokenStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<SqtokenStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<SqtokenSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<SqtokenVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<SqtokenVarianceSampleAggregates>;\n};\n\nexport type SqtokenAverageAggregates = {\n  readonly __typename: 'SqtokenAverageAggregates';\n  /** Mean average of circulatingSupply across the matching connection */\n  readonly circulatingSupply: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of totalSupply across the matching connection */\n  readonly totalSupply: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type SqtokenDistinctCountAggregates = {\n  readonly __typename: 'SqtokenDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of circulatingSupply across the matching connection */\n  readonly circulatingSupply: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalSupply across the matching connection */\n  readonly totalSupply: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Sqtoken` object types. All fields are combined with a logical ‘and.’ */\nexport type SqtokenFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<SqtokenFilter>>;\n  /** Filter by the object’s `circulatingSupply` field. */\n  readonly circulatingSupply: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<SqtokenFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<SqtokenFilter>>;\n  /** Filter by the object’s `tokenHolders` relation. */\n  readonly tokenHolders: InputMaybe<SqtokenToManyTokenHolderFilter>;\n  /** Some related `tokenHolders` exist. */\n  readonly tokenHoldersExist: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `totalSupply` field. */\n  readonly totalSupply: InputMaybe<BigFloatFilter>;\n};\n\nexport type SqtokenMaxAggregates = {\n  readonly __typename: 'SqtokenMaxAggregates';\n  /** Maximum of circulatingSupply across the matching connection */\n  readonly circulatingSupply: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of totalSupply across the matching connection */\n  readonly totalSupply: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type SqtokenMinAggregates = {\n  readonly __typename: 'SqtokenMinAggregates';\n  /** Minimum of circulatingSupply across the matching connection */\n  readonly circulatingSupply: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of totalSupply across the matching connection */\n  readonly totalSupply: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type SqtokenStddevPopulationAggregates = {\n  readonly __typename: 'SqtokenStddevPopulationAggregates';\n  /** Population standard deviation of circulatingSupply across the matching connection */\n  readonly circulatingSupply: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of totalSupply across the matching connection */\n  readonly totalSupply: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type SqtokenStddevSampleAggregates = {\n  readonly __typename: 'SqtokenStddevSampleAggregates';\n  /** Sample standard deviation of circulatingSupply across the matching connection */\n  readonly circulatingSupply: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of totalSupply across the matching connection */\n  readonly totalSupply: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type SqtokenSumAggregates = {\n  readonly __typename: 'SqtokenSumAggregates';\n  /** Sum of circulatingSupply across the matching connection */\n  readonly circulatingSupply: Scalars['BigFloat']['output'];\n  /** Sum of totalSupply across the matching connection */\n  readonly totalSupply: Scalars['BigFloat']['output'];\n};\n\n/** A filter to be used against many `TokenHolder` object types. All fields are combined with a logical ‘and.’ */\nexport type SqtokenToManyTokenHolderFilter = {\n  /** Aggregates across related `TokenHolder` match the filter criteria. */\n  readonly aggregates: InputMaybe<TokenHolderAggregatesFilter>;\n  /** Every related `TokenHolder` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly every: InputMaybe<TokenHolderFilter>;\n  /** No related `TokenHolder` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly none: InputMaybe<TokenHolderFilter>;\n  /** Some related `TokenHolder` matches the filter criteria. All fields are combined with a logical ‘and.’ */\n  readonly some: InputMaybe<TokenHolderFilter>;\n};\n\nexport type SqtokenVariancePopulationAggregates = {\n  readonly __typename: 'SqtokenVariancePopulationAggregates';\n  /** Population variance of circulatingSupply across the matching connection */\n  readonly circulatingSupply: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of totalSupply across the matching connection */\n  readonly totalSupply: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type SqtokenVarianceSampleAggregates = {\n  readonly __typename: 'SqtokenVarianceSampleAggregates';\n  /** Sample variance of circulatingSupply across the matching connection */\n  readonly circulatingSupply: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of totalSupply across the matching connection */\n  readonly totalSupply: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Sqtoken` values. */\nexport type SqtokensConnection = {\n  readonly __typename: 'SqtokensConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<SqtokenAggregates>;\n  /** A list of edges which contains the `Sqtoken` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<SqtokensEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<SqtokenAggregates>>;\n  /** A list of `Sqtoken` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Sqtoken>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Sqtoken` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Sqtoken` values. */\nexport type SqtokensConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<SqtokensGroupBy>;\n  having: InputMaybe<SqtokensHavingInput>;\n};\n\n/** A `Sqtoken` edge in the connection. */\nexport type SqtokensEdge = {\n  readonly __typename: 'SqtokensEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Sqtoken` at the end of the edge. */\n  readonly node: Maybe<Sqtoken>;\n};\n\n/** Grouping methods for `Sqtoken` for usage during aggregation. */\nexport enum SqtokensGroupBy {\n  CIRCULATING_SUPPLY = 'CIRCULATING_SUPPLY',\n  ID = 'ID',\n  TOTAL_SUPPLY = 'TOTAL_SUPPLY',\n}\n\nexport type SqtokensHavingAverageInput = {\n  readonly circulatingSupply: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSupply: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type SqtokensHavingDistinctCountInput = {\n  readonly circulatingSupply: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSupply: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `Sqtoken` aggregates. */\nexport type SqtokensHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<SqtokensHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<SqtokensHavingInput>>;\n  readonly average: InputMaybe<SqtokensHavingAverageInput>;\n  readonly distinctCount: InputMaybe<SqtokensHavingDistinctCountInput>;\n  readonly max: InputMaybe<SqtokensHavingMaxInput>;\n  readonly min: InputMaybe<SqtokensHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<SqtokensHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<SqtokensHavingStddevSampleInput>;\n  readonly sum: InputMaybe<SqtokensHavingSumInput>;\n  readonly variancePopulation: InputMaybe<SqtokensHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<SqtokensHavingVarianceSampleInput>;\n};\n\nexport type SqtokensHavingMaxInput = {\n  readonly circulatingSupply: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSupply: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type SqtokensHavingMinInput = {\n  readonly circulatingSupply: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSupply: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type SqtokensHavingStddevPopulationInput = {\n  readonly circulatingSupply: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSupply: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type SqtokensHavingStddevSampleInput = {\n  readonly circulatingSupply: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSupply: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type SqtokensHavingSumInput = {\n  readonly circulatingSupply: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSupply: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type SqtokensHavingVariancePopulationInput = {\n  readonly circulatingSupply: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSupply: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type SqtokensHavingVarianceSampleInput = {\n  readonly circulatingSupply: InputMaybe<HavingBigfloatFilter>;\n  readonly totalSupply: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `Sqtoken`. */\nexport enum SqtokensOrderBy {\n  CIRCULATING_SUPPLY_ASC = 'CIRCULATING_SUPPLY_ASC',\n  CIRCULATING_SUPPLY_DESC = 'CIRCULATING_SUPPLY_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  TOKEN_HOLDERS_AVERAGE_BALANCE_ASC = 'TOKEN_HOLDERS_AVERAGE_BALANCE_ASC',\n  TOKEN_HOLDERS_AVERAGE_BALANCE_DESC = 'TOKEN_HOLDERS_AVERAGE_BALANCE_DESC',\n  TOKEN_HOLDERS_AVERAGE_BLOCK_RANGE_ASC = 'TOKEN_HOLDERS_AVERAGE_BLOCK_RANGE_ASC',\n  TOKEN_HOLDERS_AVERAGE_BLOCK_RANGE_DESC = 'TOKEN_HOLDERS_AVERAGE_BLOCK_RANGE_DESC',\n  TOKEN_HOLDERS_AVERAGE_ID_ASC = 'TOKEN_HOLDERS_AVERAGE_ID_ASC',\n  TOKEN_HOLDERS_AVERAGE_ID_DESC = 'TOKEN_HOLDERS_AVERAGE_ID_DESC',\n  TOKEN_HOLDERS_AVERAGE_TOKEN_ID_ASC = 'TOKEN_HOLDERS_AVERAGE_TOKEN_ID_ASC',\n  TOKEN_HOLDERS_AVERAGE_TOKEN_ID_DESC = 'TOKEN_HOLDERS_AVERAGE_TOKEN_ID_DESC',\n  TOKEN_HOLDERS_BY_TOKEN_ID__COUNT_ASC = 'TOKEN_HOLDERS_BY_TOKEN_ID__COUNT_ASC',\n  TOKEN_HOLDERS_BY_TOKEN_ID__COUNT_DESC = 'TOKEN_HOLDERS_BY_TOKEN_ID__COUNT_DESC',\n  TOKEN_HOLDERS_COUNT_ASC = 'TOKEN_HOLDERS_COUNT_ASC',\n  TOKEN_HOLDERS_COUNT_DESC = 'TOKEN_HOLDERS_COUNT_DESC',\n  TOKEN_HOLDERS_DISTINCT_COUNT_BALANCE_ASC = 'TOKEN_HOLDERS_DISTINCT_COUNT_BALANCE_ASC',\n  TOKEN_HOLDERS_DISTINCT_COUNT_BALANCE_DESC = 'TOKEN_HOLDERS_DISTINCT_COUNT_BALANCE_DESC',\n  TOKEN_HOLDERS_DISTINCT_COUNT_BLOCK_RANGE_ASC = 'TOKEN_HOLDERS_DISTINCT_COUNT_BLOCK_RANGE_ASC',\n  TOKEN_HOLDERS_DISTINCT_COUNT_BLOCK_RANGE_DESC = 'TOKEN_HOLDERS_DISTINCT_COUNT_BLOCK_RANGE_DESC',\n  TOKEN_HOLDERS_DISTINCT_COUNT_ID_ASC = 'TOKEN_HOLDERS_DISTINCT_COUNT_ID_ASC',\n  TOKEN_HOLDERS_DISTINCT_COUNT_ID_DESC = 'TOKEN_HOLDERS_DISTINCT_COUNT_ID_DESC',\n  TOKEN_HOLDERS_DISTINCT_COUNT_TOKEN_ID_ASC = 'TOKEN_HOLDERS_DISTINCT_COUNT_TOKEN_ID_ASC',\n  TOKEN_HOLDERS_DISTINCT_COUNT_TOKEN_ID_DESC = 'TOKEN_HOLDERS_DISTINCT_COUNT_TOKEN_ID_DESC',\n  TOKEN_HOLDERS_MAX_BALANCE_ASC = 'TOKEN_HOLDERS_MAX_BALANCE_ASC',\n  TOKEN_HOLDERS_MAX_BALANCE_DESC = 'TOKEN_HOLDERS_MAX_BALANCE_DESC',\n  TOKEN_HOLDERS_MAX_BLOCK_RANGE_ASC = 'TOKEN_HOLDERS_MAX_BLOCK_RANGE_ASC',\n  TOKEN_HOLDERS_MAX_BLOCK_RANGE_DESC = 'TOKEN_HOLDERS_MAX_BLOCK_RANGE_DESC',\n  TOKEN_HOLDERS_MAX_ID_ASC = 'TOKEN_HOLDERS_MAX_ID_ASC',\n  TOKEN_HOLDERS_MAX_ID_DESC = 'TOKEN_HOLDERS_MAX_ID_DESC',\n  TOKEN_HOLDERS_MAX_TOKEN_ID_ASC = 'TOKEN_HOLDERS_MAX_TOKEN_ID_ASC',\n  TOKEN_HOLDERS_MAX_TOKEN_ID_DESC = 'TOKEN_HOLDERS_MAX_TOKEN_ID_DESC',\n  TOKEN_HOLDERS_MIN_BALANCE_ASC = 'TOKEN_HOLDERS_MIN_BALANCE_ASC',\n  TOKEN_HOLDERS_MIN_BALANCE_DESC = 'TOKEN_HOLDERS_MIN_BALANCE_DESC',\n  TOKEN_HOLDERS_MIN_BLOCK_RANGE_ASC = 'TOKEN_HOLDERS_MIN_BLOCK_RANGE_ASC',\n  TOKEN_HOLDERS_MIN_BLOCK_RANGE_DESC = 'TOKEN_HOLDERS_MIN_BLOCK_RANGE_DESC',\n  TOKEN_HOLDERS_MIN_ID_ASC = 'TOKEN_HOLDERS_MIN_ID_ASC',\n  TOKEN_HOLDERS_MIN_ID_DESC = 'TOKEN_HOLDERS_MIN_ID_DESC',\n  TOKEN_HOLDERS_MIN_TOKEN_ID_ASC = 'TOKEN_HOLDERS_MIN_TOKEN_ID_ASC',\n  TOKEN_HOLDERS_MIN_TOKEN_ID_DESC = 'TOKEN_HOLDERS_MIN_TOKEN_ID_DESC',\n  TOKEN_HOLDERS_STDDEV_POPULATION_BALANCE_ASC = 'TOKEN_HOLDERS_STDDEV_POPULATION_BALANCE_ASC',\n  TOKEN_HOLDERS_STDDEV_POPULATION_BALANCE_DESC = 'TOKEN_HOLDERS_STDDEV_POPULATION_BALANCE_DESC',\n  TOKEN_HOLDERS_STDDEV_POPULATION_BLOCK_RANGE_ASC = 'TOKEN_HOLDERS_STDDEV_POPULATION_BLOCK_RANGE_ASC',\n  TOKEN_HOLDERS_STDDEV_POPULATION_BLOCK_RANGE_DESC = 'TOKEN_HOLDERS_STDDEV_POPULATION_BLOCK_RANGE_DESC',\n  TOKEN_HOLDERS_STDDEV_POPULATION_ID_ASC = 'TOKEN_HOLDERS_STDDEV_POPULATION_ID_ASC',\n  TOKEN_HOLDERS_STDDEV_POPULATION_ID_DESC = 'TOKEN_HOLDERS_STDDEV_POPULATION_ID_DESC',\n  TOKEN_HOLDERS_STDDEV_POPULATION_TOKEN_ID_ASC = 'TOKEN_HOLDERS_STDDEV_POPULATION_TOKEN_ID_ASC',\n  TOKEN_HOLDERS_STDDEV_POPULATION_TOKEN_ID_DESC = 'TOKEN_HOLDERS_STDDEV_POPULATION_TOKEN_ID_DESC',\n  TOKEN_HOLDERS_STDDEV_SAMPLE_BALANCE_ASC = 'TOKEN_HOLDERS_STDDEV_SAMPLE_BALANCE_ASC',\n  TOKEN_HOLDERS_STDDEV_SAMPLE_BALANCE_DESC = 'TOKEN_HOLDERS_STDDEV_SAMPLE_BALANCE_DESC',\n  TOKEN_HOLDERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC = 'TOKEN_HOLDERS_STDDEV_SAMPLE_BLOCK_RANGE_ASC',\n  TOKEN_HOLDERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC = 'TOKEN_HOLDERS_STDDEV_SAMPLE_BLOCK_RANGE_DESC',\n  TOKEN_HOLDERS_STDDEV_SAMPLE_ID_ASC = 'TOKEN_HOLDERS_STDDEV_SAMPLE_ID_ASC',\n  TOKEN_HOLDERS_STDDEV_SAMPLE_ID_DESC = 'TOKEN_HOLDERS_STDDEV_SAMPLE_ID_DESC',\n  TOKEN_HOLDERS_STDDEV_SAMPLE_TOKEN_ID_ASC = 'TOKEN_HOLDERS_STDDEV_SAMPLE_TOKEN_ID_ASC',\n  TOKEN_HOLDERS_STDDEV_SAMPLE_TOKEN_ID_DESC = 'TOKEN_HOLDERS_STDDEV_SAMPLE_TOKEN_ID_DESC',\n  TOKEN_HOLDERS_SUM_BALANCE_ASC = 'TOKEN_HOLDERS_SUM_BALANCE_ASC',\n  TOKEN_HOLDERS_SUM_BALANCE_DESC = 'TOKEN_HOLDERS_SUM_BALANCE_DESC',\n  TOKEN_HOLDERS_SUM_BLOCK_RANGE_ASC = 'TOKEN_HOLDERS_SUM_BLOCK_RANGE_ASC',\n  TOKEN_HOLDERS_SUM_BLOCK_RANGE_DESC = 'TOKEN_HOLDERS_SUM_BLOCK_RANGE_DESC',\n  TOKEN_HOLDERS_SUM_ID_ASC = 'TOKEN_HOLDERS_SUM_ID_ASC',\n  TOKEN_HOLDERS_SUM_ID_DESC = 'TOKEN_HOLDERS_SUM_ID_DESC',\n  TOKEN_HOLDERS_SUM_TOKEN_ID_ASC = 'TOKEN_HOLDERS_SUM_TOKEN_ID_ASC',\n  TOKEN_HOLDERS_SUM_TOKEN_ID_DESC = 'TOKEN_HOLDERS_SUM_TOKEN_ID_DESC',\n  TOKEN_HOLDERS_VARIANCE_POPULATION_BALANCE_ASC = 'TOKEN_HOLDERS_VARIANCE_POPULATION_BALANCE_ASC',\n  TOKEN_HOLDERS_VARIANCE_POPULATION_BALANCE_DESC = 'TOKEN_HOLDERS_VARIANCE_POPULATION_BALANCE_DESC',\n  TOKEN_HOLDERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC = 'TOKEN_HOLDERS_VARIANCE_POPULATION_BLOCK_RANGE_ASC',\n  TOKEN_HOLDERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC = 'TOKEN_HOLDERS_VARIANCE_POPULATION_BLOCK_RANGE_DESC',\n  TOKEN_HOLDERS_VARIANCE_POPULATION_ID_ASC = 'TOKEN_HOLDERS_VARIANCE_POPULATION_ID_ASC',\n  TOKEN_HOLDERS_VARIANCE_POPULATION_ID_DESC = 'TOKEN_HOLDERS_VARIANCE_POPULATION_ID_DESC',\n  TOKEN_HOLDERS_VARIANCE_POPULATION_TOKEN_ID_ASC = 'TOKEN_HOLDERS_VARIANCE_POPULATION_TOKEN_ID_ASC',\n  TOKEN_HOLDERS_VARIANCE_POPULATION_TOKEN_ID_DESC = 'TOKEN_HOLDERS_VARIANCE_POPULATION_TOKEN_ID_DESC',\n  TOKEN_HOLDERS_VARIANCE_SAMPLE_BALANCE_ASC = 'TOKEN_HOLDERS_VARIANCE_SAMPLE_BALANCE_ASC',\n  TOKEN_HOLDERS_VARIANCE_SAMPLE_BALANCE_DESC = 'TOKEN_HOLDERS_VARIANCE_SAMPLE_BALANCE_DESC',\n  TOKEN_HOLDERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC = 'TOKEN_HOLDERS_VARIANCE_SAMPLE_BLOCK_RANGE_ASC',\n  TOKEN_HOLDERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC = 'TOKEN_HOLDERS_VARIANCE_SAMPLE_BLOCK_RANGE_DESC',\n  TOKEN_HOLDERS_VARIANCE_SAMPLE_ID_ASC = 'TOKEN_HOLDERS_VARIANCE_SAMPLE_ID_ASC',\n  TOKEN_HOLDERS_VARIANCE_SAMPLE_ID_DESC = 'TOKEN_HOLDERS_VARIANCE_SAMPLE_ID_DESC',\n  TOKEN_HOLDERS_VARIANCE_SAMPLE_TOKEN_ID_ASC = 'TOKEN_HOLDERS_VARIANCE_SAMPLE_TOKEN_ID_ASC',\n  TOKEN_HOLDERS_VARIANCE_SAMPLE_TOKEN_ID_DESC = 'TOKEN_HOLDERS_VARIANCE_SAMPLE_TOKEN_ID_DESC',\n  TOTAL_SUPPLY_ASC = 'TOTAL_SUPPLY_ASC',\n  TOTAL_SUPPLY_DESC = 'TOTAL_SUPPLY_DESC',\n}\n\nexport type StateChannel = Node & {\n  readonly __typename: 'StateChannel';\n  readonly agent: Maybe<Scalars['String']['output']>;\n  readonly consumer: Scalars['String']['output'];\n  /** Reads a single `Deployment` that is related to this `StateChannel`. */\n  readonly deployment: Maybe<Deployment>;\n  readonly deploymentId: Scalars['String']['output'];\n  readonly expiredAt: Scalars['Datetime']['output'];\n  readonly id: Scalars['String']['output'];\n  readonly indexer: Scalars['String']['output'];\n  readonly isFinal: Scalars['Boolean']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly price: Scalars['BigFloat']['output'];\n  readonly realTotal: Scalars['BigFloat']['output'];\n  readonly spent: Scalars['BigFloat']['output'];\n  readonly startTime: Scalars['Datetime']['output'];\n  readonly status: ChannelStatus;\n  readonly terminateByIndexer: Scalars['Boolean']['output'];\n  readonly terminatedAt: Maybe<Scalars['Datetime']['output']>;\n  readonly total: Scalars['BigFloat']['output'];\n};\n\nexport type StateChannelAggregates = {\n  readonly __typename: 'StateChannelAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<StateChannelAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<StateChannelDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<StateChannelMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<StateChannelMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<StateChannelStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<StateChannelStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<StateChannelSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<StateChannelVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<StateChannelVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `StateChannel` object types. */\nexport type StateChannelAggregatesFilter = {\n  /** Mean average aggregate over matching `StateChannel` objects. */\n  readonly average: InputMaybe<StateChannelAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `StateChannel` objects. */\n  readonly distinctCount: InputMaybe<StateChannelDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `StateChannel` object to be included within the aggregate. */\n  readonly filter: InputMaybe<StateChannelFilter>;\n  /** Maximum aggregate over matching `StateChannel` objects. */\n  readonly max: InputMaybe<StateChannelMaxAggregateFilter>;\n  /** Minimum aggregate over matching `StateChannel` objects. */\n  readonly min: InputMaybe<StateChannelMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `StateChannel` objects. */\n  readonly stddevPopulation: InputMaybe<StateChannelStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `StateChannel` objects. */\n  readonly stddevSample: InputMaybe<StateChannelStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `StateChannel` objects. */\n  readonly sum: InputMaybe<StateChannelSumAggregateFilter>;\n  /** Population variance aggregate over matching `StateChannel` objects. */\n  readonly variancePopulation: InputMaybe<StateChannelVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `StateChannel` objects. */\n  readonly varianceSample: InputMaybe<StateChannelVarianceSampleAggregateFilter>;\n};\n\nexport type StateChannelAverageAggregateFilter = {\n  readonly price: InputMaybe<BigFloatFilter>;\n  readonly realTotal: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n  readonly total: InputMaybe<BigFloatFilter>;\n};\n\nexport type StateChannelAverageAggregates = {\n  readonly __typename: 'StateChannelAverageAggregates';\n  /** Mean average of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of realTotal across the matching connection */\n  readonly realTotal: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of total across the matching connection */\n  readonly total: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type StateChannelDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly agent: InputMaybe<BigIntFilter>;\n  readonly consumer: InputMaybe<BigIntFilter>;\n  readonly deploymentId: InputMaybe<BigIntFilter>;\n  readonly expiredAt: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexer: InputMaybe<BigIntFilter>;\n  readonly isFinal: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n  readonly price: InputMaybe<BigIntFilter>;\n  readonly realTotal: InputMaybe<BigIntFilter>;\n  readonly spent: InputMaybe<BigIntFilter>;\n  readonly startTime: InputMaybe<BigIntFilter>;\n  readonly status: InputMaybe<BigIntFilter>;\n  readonly terminateByIndexer: InputMaybe<BigIntFilter>;\n  readonly terminatedAt: InputMaybe<BigIntFilter>;\n  readonly total: InputMaybe<BigIntFilter>;\n};\n\nexport type StateChannelDistinctCountAggregates = {\n  readonly __typename: 'StateChannelDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of agent across the matching connection */\n  readonly agent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of consumer across the matching connection */\n  readonly consumer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of deploymentId across the matching connection */\n  readonly deploymentId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of expiredAt across the matching connection */\n  readonly expiredAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexer across the matching connection */\n  readonly indexer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of isFinal across the matching connection */\n  readonly isFinal: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of price across the matching connection */\n  readonly price: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of realTotal across the matching connection */\n  readonly realTotal: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of startTime across the matching connection */\n  readonly startTime: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of status across the matching connection */\n  readonly status: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of terminateByIndexer across the matching connection */\n  readonly terminateByIndexer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of terminatedAt across the matching connection */\n  readonly terminatedAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of total across the matching connection */\n  readonly total: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `StateChannel` object types. All fields are combined with a logical ‘and.’ */\nexport type StateChannelFilter = {\n  /** Filter by the object’s `agent` field. */\n  readonly agent: InputMaybe<StringFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<StateChannelFilter>>;\n  /** Filter by the object’s `consumer` field. */\n  readonly consumer: InputMaybe<StringFilter>;\n  /** Filter by the object’s `deployment` relation. */\n  readonly deployment: InputMaybe<DeploymentFilter>;\n  /** Filter by the object’s `deploymentId` field. */\n  readonly deploymentId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `expiredAt` field. */\n  readonly expiredAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexer` field. */\n  readonly indexer: InputMaybe<StringFilter>;\n  /** Filter by the object’s `isFinal` field. */\n  readonly isFinal: InputMaybe<BooleanFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<StateChannelFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<StateChannelFilter>>;\n  /** Filter by the object’s `price` field. */\n  readonly price: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `realTotal` field. */\n  readonly realTotal: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `spent` field. */\n  readonly spent: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `startTime` field. */\n  readonly startTime: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `status` field. */\n  readonly status: InputMaybe<ChannelStatusFilter>;\n  /** Filter by the object’s `terminateByIndexer` field. */\n  readonly terminateByIndexer: InputMaybe<BooleanFilter>;\n  /** Filter by the object’s `terminatedAt` field. */\n  readonly terminatedAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `total` field. */\n  readonly total: InputMaybe<BigFloatFilter>;\n};\n\nexport type StateChannelMaxAggregateFilter = {\n  readonly price: InputMaybe<BigFloatFilter>;\n  readonly realTotal: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n  readonly total: InputMaybe<BigFloatFilter>;\n};\n\nexport type StateChannelMaxAggregates = {\n  readonly __typename: 'StateChannelMaxAggregates';\n  /** Maximum of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of realTotal across the matching connection */\n  readonly realTotal: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of total across the matching connection */\n  readonly total: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type StateChannelMinAggregateFilter = {\n  readonly price: InputMaybe<BigFloatFilter>;\n  readonly realTotal: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n  readonly total: InputMaybe<BigFloatFilter>;\n};\n\nexport type StateChannelMinAggregates = {\n  readonly __typename: 'StateChannelMinAggregates';\n  /** Minimum of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of realTotal across the matching connection */\n  readonly realTotal: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of total across the matching connection */\n  readonly total: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type StateChannelStddevPopulationAggregateFilter = {\n  readonly price: InputMaybe<BigFloatFilter>;\n  readonly realTotal: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n  readonly total: InputMaybe<BigFloatFilter>;\n};\n\nexport type StateChannelStddevPopulationAggregates = {\n  readonly __typename: 'StateChannelStddevPopulationAggregates';\n  /** Population standard deviation of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of realTotal across the matching connection */\n  readonly realTotal: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of total across the matching connection */\n  readonly total: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type StateChannelStddevSampleAggregateFilter = {\n  readonly price: InputMaybe<BigFloatFilter>;\n  readonly realTotal: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n  readonly total: InputMaybe<BigFloatFilter>;\n};\n\nexport type StateChannelStddevSampleAggregates = {\n  readonly __typename: 'StateChannelStddevSampleAggregates';\n  /** Sample standard deviation of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of realTotal across the matching connection */\n  readonly realTotal: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of total across the matching connection */\n  readonly total: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type StateChannelSumAggregateFilter = {\n  readonly price: InputMaybe<BigFloatFilter>;\n  readonly realTotal: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n  readonly total: InputMaybe<BigFloatFilter>;\n};\n\nexport type StateChannelSumAggregates = {\n  readonly __typename: 'StateChannelSumAggregates';\n  /** Sum of price across the matching connection */\n  readonly price: Scalars['BigFloat']['output'];\n  /** Sum of realTotal across the matching connection */\n  readonly realTotal: Scalars['BigFloat']['output'];\n  /** Sum of spent across the matching connection */\n  readonly spent: Scalars['BigFloat']['output'];\n  /** Sum of total across the matching connection */\n  readonly total: Scalars['BigFloat']['output'];\n};\n\nexport type StateChannelVariancePopulationAggregateFilter = {\n  readonly price: InputMaybe<BigFloatFilter>;\n  readonly realTotal: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n  readonly total: InputMaybe<BigFloatFilter>;\n};\n\nexport type StateChannelVariancePopulationAggregates = {\n  readonly __typename: 'StateChannelVariancePopulationAggregates';\n  /** Population variance of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of realTotal across the matching connection */\n  readonly realTotal: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of total across the matching connection */\n  readonly total: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type StateChannelVarianceSampleAggregateFilter = {\n  readonly price: InputMaybe<BigFloatFilter>;\n  readonly realTotal: InputMaybe<BigFloatFilter>;\n  readonly spent: InputMaybe<BigFloatFilter>;\n  readonly total: InputMaybe<BigFloatFilter>;\n};\n\nexport type StateChannelVarianceSampleAggregates = {\n  readonly __typename: 'StateChannelVarianceSampleAggregates';\n  /** Sample variance of price across the matching connection */\n  readonly price: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of realTotal across the matching connection */\n  readonly realTotal: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of spent across the matching connection */\n  readonly spent: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of total across the matching connection */\n  readonly total: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `StateChannel` values. */\nexport type StateChannelsConnection = {\n  readonly __typename: 'StateChannelsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<StateChannelAggregates>;\n  /** A list of edges which contains the `StateChannel` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<StateChannelsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<StateChannelAggregates>>;\n  /** A list of `StateChannel` objects. */\n  readonly nodes: ReadonlyArray<Maybe<StateChannel>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `StateChannel` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `StateChannel` values. */\nexport type StateChannelsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<StateChannelsGroupBy>;\n  having: InputMaybe<StateChannelsHavingInput>;\n};\n\n/** A `StateChannel` edge in the connection. */\nexport type StateChannelsEdge = {\n  readonly __typename: 'StateChannelsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `StateChannel` at the end of the edge. */\n  readonly node: Maybe<StateChannel>;\n};\n\n/** Grouping methods for `StateChannel` for usage during aggregation. */\nexport enum StateChannelsGroupBy {\n  AGENT = 'AGENT',\n  CONSUMER = 'CONSUMER',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  EXPIRED_AT = 'EXPIRED_AT',\n  EXPIRED_AT_TRUNCATED_TO_DAY = 'EXPIRED_AT_TRUNCATED_TO_DAY',\n  EXPIRED_AT_TRUNCATED_TO_HOUR = 'EXPIRED_AT_TRUNCATED_TO_HOUR',\n  ID = 'ID',\n  INDEXER = 'INDEXER',\n  IS_FINAL = 'IS_FINAL',\n  LAST_EVENT = 'LAST_EVENT',\n  PRICE = 'PRICE',\n  REAL_TOTAL = 'REAL_TOTAL',\n  SPENT = 'SPENT',\n  START_TIME = 'START_TIME',\n  START_TIME_TRUNCATED_TO_DAY = 'START_TIME_TRUNCATED_TO_DAY',\n  START_TIME_TRUNCATED_TO_HOUR = 'START_TIME_TRUNCATED_TO_HOUR',\n  STATUS = 'STATUS',\n  TERMINATED_AT = 'TERMINATED_AT',\n  TERMINATED_AT_TRUNCATED_TO_DAY = 'TERMINATED_AT_TRUNCATED_TO_DAY',\n  TERMINATED_AT_TRUNCATED_TO_HOUR = 'TERMINATED_AT_TRUNCATED_TO_HOUR',\n  TERMINATE_BY_INDEXER = 'TERMINATE_BY_INDEXER',\n  TOTAL = 'TOTAL',\n}\n\nexport type StateChannelsHavingAverageInput = {\n  readonly expiredAt: InputMaybe<HavingDatetimeFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n  readonly realTotal: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly terminatedAt: InputMaybe<HavingDatetimeFilter>;\n  readonly total: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type StateChannelsHavingDistinctCountInput = {\n  readonly expiredAt: InputMaybe<HavingDatetimeFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n  readonly realTotal: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly terminatedAt: InputMaybe<HavingDatetimeFilter>;\n  readonly total: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `StateChannel` aggregates. */\nexport type StateChannelsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<StateChannelsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<StateChannelsHavingInput>>;\n  readonly average: InputMaybe<StateChannelsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<StateChannelsHavingDistinctCountInput>;\n  readonly max: InputMaybe<StateChannelsHavingMaxInput>;\n  readonly min: InputMaybe<StateChannelsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<StateChannelsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<StateChannelsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<StateChannelsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<StateChannelsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<StateChannelsHavingVarianceSampleInput>;\n};\n\nexport type StateChannelsHavingMaxInput = {\n  readonly expiredAt: InputMaybe<HavingDatetimeFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n  readonly realTotal: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly terminatedAt: InputMaybe<HavingDatetimeFilter>;\n  readonly total: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type StateChannelsHavingMinInput = {\n  readonly expiredAt: InputMaybe<HavingDatetimeFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n  readonly realTotal: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly terminatedAt: InputMaybe<HavingDatetimeFilter>;\n  readonly total: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type StateChannelsHavingStddevPopulationInput = {\n  readonly expiredAt: InputMaybe<HavingDatetimeFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n  readonly realTotal: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly terminatedAt: InputMaybe<HavingDatetimeFilter>;\n  readonly total: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type StateChannelsHavingStddevSampleInput = {\n  readonly expiredAt: InputMaybe<HavingDatetimeFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n  readonly realTotal: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly terminatedAt: InputMaybe<HavingDatetimeFilter>;\n  readonly total: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type StateChannelsHavingSumInput = {\n  readonly expiredAt: InputMaybe<HavingDatetimeFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n  readonly realTotal: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly terminatedAt: InputMaybe<HavingDatetimeFilter>;\n  readonly total: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type StateChannelsHavingVariancePopulationInput = {\n  readonly expiredAt: InputMaybe<HavingDatetimeFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n  readonly realTotal: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly terminatedAt: InputMaybe<HavingDatetimeFilter>;\n  readonly total: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type StateChannelsHavingVarianceSampleInput = {\n  readonly expiredAt: InputMaybe<HavingDatetimeFilter>;\n  readonly price: InputMaybe<HavingBigfloatFilter>;\n  readonly realTotal: InputMaybe<HavingBigfloatFilter>;\n  readonly spent: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n  readonly terminatedAt: InputMaybe<HavingDatetimeFilter>;\n  readonly total: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `StateChannel`. */\nexport enum StateChannelsOrderBy {\n  AGENT_ASC = 'AGENT_ASC',\n  AGENT_DESC = 'AGENT_DESC',\n  CONSUMER_ASC = 'CONSUMER_ASC',\n  CONSUMER_DESC = 'CONSUMER_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_BLOCK_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__CREATED_TIMESTAMP_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__ID_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__LAST_EVENT_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__METADATA_DESC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_ASC',\n  DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC = 'DEPLOYMENT_BY_DEPLOYMENT_ID__PROJECT_ID_DESC',\n  DEPLOYMENT_ID_ASC = 'DEPLOYMENT_ID_ASC',\n  DEPLOYMENT_ID_DESC = 'DEPLOYMENT_ID_DESC',\n  EXPIRED_AT_ASC = 'EXPIRED_AT_ASC',\n  EXPIRED_AT_DESC = 'EXPIRED_AT_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_ASC = 'INDEXER_ASC',\n  INDEXER_DESC = 'INDEXER_DESC',\n  IS_FINAL_ASC = 'IS_FINAL_ASC',\n  IS_FINAL_DESC = 'IS_FINAL_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRICE_ASC = 'PRICE_ASC',\n  PRICE_DESC = 'PRICE_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  REAL_TOTAL_ASC = 'REAL_TOTAL_ASC',\n  REAL_TOTAL_DESC = 'REAL_TOTAL_DESC',\n  SPENT_ASC = 'SPENT_ASC',\n  SPENT_DESC = 'SPENT_DESC',\n  START_TIME_ASC = 'START_TIME_ASC',\n  START_TIME_DESC = 'START_TIME_DESC',\n  STATUS_ASC = 'STATUS_ASC',\n  STATUS_DESC = 'STATUS_DESC',\n  TERMINATED_AT_ASC = 'TERMINATED_AT_ASC',\n  TERMINATED_AT_DESC = 'TERMINATED_AT_DESC',\n  TERMINATE_BY_INDEXER_ASC = 'TERMINATE_BY_INDEXER_ASC',\n  TERMINATE_BY_INDEXER_DESC = 'TERMINATE_BY_INDEXER_DESC',\n  TOTAL_ASC = 'TOTAL_ASC',\n  TOTAL_DESC = 'TOTAL_DESC',\n}\n\n/** A filter to be used against String fields. All fields are combined with a logical ‘and.’ */\nexport type StringFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<Scalars['String']['input']>;\n  /** Not equal to the specified value, treating null like an ordinary value (case-insensitive). */\n  readonly distinctFromInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Ends with the specified string (case-sensitive). */\n  readonly endsWith: InputMaybe<Scalars['String']['input']>;\n  /** Ends with the specified string (case-insensitive). */\n  readonly endsWithInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<Scalars['String']['input']>;\n  /** Equal to the specified value (case-insensitive). */\n  readonly equalToInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<Scalars['String']['input']>;\n  /** Greater than the specified value (case-insensitive). */\n  readonly greaterThanInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<Scalars['String']['input']>;\n  /** Greater than or equal to the specified value (case-insensitive). */\n  readonly greaterThanOrEqualToInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<Scalars['String']['input']>>;\n  /** Included in the specified list (case-insensitive). */\n  readonly inInsensitive: InputMaybe<ReadonlyArray<Scalars['String']['input']>>;\n  /** Contains the specified string (case-sensitive). */\n  readonly includes: InputMaybe<Scalars['String']['input']>;\n  /** Contains the specified string (case-insensitive). */\n  readonly includesInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<Scalars['String']['input']>;\n  /** Less than the specified value (case-insensitive). */\n  readonly lessThanInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<Scalars['String']['input']>;\n  /** Less than or equal to the specified value (case-insensitive). */\n  readonly lessThanOrEqualToInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Matches the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */\n  readonly like: InputMaybe<Scalars['String']['input']>;\n  /** Matches the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */\n  readonly likeInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<Scalars['String']['input']>;\n  /** Equal to the specified value, treating null like an ordinary value (case-insensitive). */\n  readonly notDistinctFromInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Does not end with the specified string (case-sensitive). */\n  readonly notEndsWith: InputMaybe<Scalars['String']['input']>;\n  /** Does not end with the specified string (case-insensitive). */\n  readonly notEndsWithInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<Scalars['String']['input']>;\n  /** Not equal to the specified value (case-insensitive). */\n  readonly notEqualToInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<Scalars['String']['input']>>;\n  /** Not included in the specified list (case-insensitive). */\n  readonly notInInsensitive: InputMaybe<ReadonlyArray<Scalars['String']['input']>>;\n  /** Does not contain the specified string (case-sensitive). */\n  readonly notIncludes: InputMaybe<Scalars['String']['input']>;\n  /** Does not contain the specified string (case-insensitive). */\n  readonly notIncludesInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Does not match the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */\n  readonly notLike: InputMaybe<Scalars['String']['input']>;\n  /** Does not match the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */\n  readonly notLikeInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Does not start with the specified string (case-sensitive). */\n  readonly notStartsWith: InputMaybe<Scalars['String']['input']>;\n  /** Does not start with the specified string (case-insensitive). */\n  readonly notStartsWithInsensitive: InputMaybe<Scalars['String']['input']>;\n  /** Starts with the specified string (case-sensitive). */\n  readonly startsWith: InputMaybe<Scalars['String']['input']>;\n  /** Starts with the specified string (case-insensitive). */\n  readonly startsWithInsensitive: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type TableEstimate = {\n  readonly __typename: 'TableEstimate';\n  readonly estimate: Maybe<Scalars['Int']['output']>;\n  readonly table: Maybe<Scalars['String']['output']>;\n};\n\nexport type TokenHolder = Node & {\n  readonly __typename: 'TokenHolder';\n  readonly balance: Scalars['BigFloat']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  /** Reads a single `Sqtoken` that is related to this `TokenHolder`. */\n  readonly token: Maybe<Sqtoken>;\n  readonly tokenId: Scalars['String']['output'];\n};\n\nexport type TokenHolderAggregates = {\n  readonly __typename: 'TokenHolderAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<TokenHolderAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<TokenHolderDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<TokenHolderMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<TokenHolderMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<TokenHolderStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<TokenHolderStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<TokenHolderSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<TokenHolderVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<TokenHolderVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `TokenHolder` object types. */\nexport type TokenHolderAggregatesFilter = {\n  /** Mean average aggregate over matching `TokenHolder` objects. */\n  readonly average: InputMaybe<TokenHolderAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `TokenHolder` objects. */\n  readonly distinctCount: InputMaybe<TokenHolderDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `TokenHolder` object to be included within the aggregate. */\n  readonly filter: InputMaybe<TokenHolderFilter>;\n  /** Maximum aggregate over matching `TokenHolder` objects. */\n  readonly max: InputMaybe<TokenHolderMaxAggregateFilter>;\n  /** Minimum aggregate over matching `TokenHolder` objects. */\n  readonly min: InputMaybe<TokenHolderMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `TokenHolder` objects. */\n  readonly stddevPopulation: InputMaybe<TokenHolderStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `TokenHolder` objects. */\n  readonly stddevSample: InputMaybe<TokenHolderStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `TokenHolder` objects. */\n  readonly sum: InputMaybe<TokenHolderSumAggregateFilter>;\n  /** Population variance aggregate over matching `TokenHolder` objects. */\n  readonly variancePopulation: InputMaybe<TokenHolderVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `TokenHolder` objects. */\n  readonly varianceSample: InputMaybe<TokenHolderVarianceSampleAggregateFilter>;\n};\n\nexport type TokenHolderAverageAggregateFilter = {\n  readonly balance: InputMaybe<BigFloatFilter>;\n};\n\nexport type TokenHolderAverageAggregates = {\n  readonly __typename: 'TokenHolderAverageAggregates';\n  /** Mean average of balance across the matching connection */\n  readonly balance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TokenHolderDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly balance: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly tokenId: InputMaybe<BigIntFilter>;\n};\n\nexport type TokenHolderDistinctCountAggregates = {\n  readonly __typename: 'TokenHolderDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of balance across the matching connection */\n  readonly balance: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of tokenId across the matching connection */\n  readonly tokenId: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `TokenHolder` object types. All fields are combined with a logical ‘and.’ */\nexport type TokenHolderFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<TokenHolderFilter>>;\n  /** Filter by the object’s `balance` field. */\n  readonly balance: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<TokenHolderFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<TokenHolderFilter>>;\n  /** Filter by the object’s `token` relation. */\n  readonly token: InputMaybe<SqtokenFilter>;\n  /** Filter by the object’s `tokenId` field. */\n  readonly tokenId: InputMaybe<StringFilter>;\n};\n\nexport type TokenHolderMaxAggregateFilter = {\n  readonly balance: InputMaybe<BigFloatFilter>;\n};\n\nexport type TokenHolderMaxAggregates = {\n  readonly __typename: 'TokenHolderMaxAggregates';\n  /** Maximum of balance across the matching connection */\n  readonly balance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TokenHolderMinAggregateFilter = {\n  readonly balance: InputMaybe<BigFloatFilter>;\n};\n\nexport type TokenHolderMinAggregates = {\n  readonly __typename: 'TokenHolderMinAggregates';\n  /** Minimum of balance across the matching connection */\n  readonly balance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TokenHolderStddevPopulationAggregateFilter = {\n  readonly balance: InputMaybe<BigFloatFilter>;\n};\n\nexport type TokenHolderStddevPopulationAggregates = {\n  readonly __typename: 'TokenHolderStddevPopulationAggregates';\n  /** Population standard deviation of balance across the matching connection */\n  readonly balance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TokenHolderStddevSampleAggregateFilter = {\n  readonly balance: InputMaybe<BigFloatFilter>;\n};\n\nexport type TokenHolderStddevSampleAggregates = {\n  readonly __typename: 'TokenHolderStddevSampleAggregates';\n  /** Sample standard deviation of balance across the matching connection */\n  readonly balance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TokenHolderSumAggregateFilter = {\n  readonly balance: InputMaybe<BigFloatFilter>;\n};\n\nexport type TokenHolderSumAggregates = {\n  readonly __typename: 'TokenHolderSumAggregates';\n  /** Sum of balance across the matching connection */\n  readonly balance: Scalars['BigFloat']['output'];\n};\n\nexport type TokenHolderVariancePopulationAggregateFilter = {\n  readonly balance: InputMaybe<BigFloatFilter>;\n};\n\nexport type TokenHolderVariancePopulationAggregates = {\n  readonly __typename: 'TokenHolderVariancePopulationAggregates';\n  /** Population variance of balance across the matching connection */\n  readonly balance: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TokenHolderVarianceSampleAggregateFilter = {\n  readonly balance: InputMaybe<BigFloatFilter>;\n};\n\nexport type TokenHolderVarianceSampleAggregates = {\n  readonly __typename: 'TokenHolderVarianceSampleAggregates';\n  /** Sample variance of balance across the matching connection */\n  readonly balance: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `TokenHolder` values. */\nexport type TokenHoldersConnection = {\n  readonly __typename: 'TokenHoldersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<TokenHolderAggregates>;\n  /** A list of edges which contains the `TokenHolder` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<TokenHoldersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<TokenHolderAggregates>>;\n  /** A list of `TokenHolder` objects. */\n  readonly nodes: ReadonlyArray<Maybe<TokenHolder>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `TokenHolder` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `TokenHolder` values. */\nexport type TokenHoldersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<TokenHoldersGroupBy>;\n  having: InputMaybe<TokenHoldersHavingInput>;\n};\n\n/** A `TokenHolder` edge in the connection. */\nexport type TokenHoldersEdge = {\n  readonly __typename: 'TokenHoldersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `TokenHolder` at the end of the edge. */\n  readonly node: Maybe<TokenHolder>;\n};\n\n/** Grouping methods for `TokenHolder` for usage during aggregation. */\nexport enum TokenHoldersGroupBy {\n  BALANCE = 'BALANCE',\n  ID = 'ID',\n  TOKEN_ID = 'TOKEN_ID',\n}\n\nexport type TokenHoldersHavingAverageInput = {\n  readonly balance: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type TokenHoldersHavingDistinctCountInput = {\n  readonly balance: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Conditions for `TokenHolder` aggregates. */\nexport type TokenHoldersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<TokenHoldersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<TokenHoldersHavingInput>>;\n  readonly average: InputMaybe<TokenHoldersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<TokenHoldersHavingDistinctCountInput>;\n  readonly max: InputMaybe<TokenHoldersHavingMaxInput>;\n  readonly min: InputMaybe<TokenHoldersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<TokenHoldersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<TokenHoldersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<TokenHoldersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<TokenHoldersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<TokenHoldersHavingVarianceSampleInput>;\n};\n\nexport type TokenHoldersHavingMaxInput = {\n  readonly balance: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type TokenHoldersHavingMinInput = {\n  readonly balance: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type TokenHoldersHavingStddevPopulationInput = {\n  readonly balance: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type TokenHoldersHavingStddevSampleInput = {\n  readonly balance: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type TokenHoldersHavingSumInput = {\n  readonly balance: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type TokenHoldersHavingVariancePopulationInput = {\n  readonly balance: InputMaybe<HavingBigfloatFilter>;\n};\n\nexport type TokenHoldersHavingVarianceSampleInput = {\n  readonly balance: InputMaybe<HavingBigfloatFilter>;\n};\n\n/** Methods to use when ordering `TokenHolder`. */\nexport enum TokenHoldersOrderBy {\n  BALANCE_ASC = 'BALANCE_ASC',\n  BALANCE_DESC = 'BALANCE_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  SQTOKEN_BY_TOKEN_ID__CIRCULATING_SUPPLY_ASC = 'SQTOKEN_BY_TOKEN_ID__CIRCULATING_SUPPLY_ASC',\n  SQTOKEN_BY_TOKEN_ID__CIRCULATING_SUPPLY_DESC = 'SQTOKEN_BY_TOKEN_ID__CIRCULATING_SUPPLY_DESC',\n  SQTOKEN_BY_TOKEN_ID__ID_ASC = 'SQTOKEN_BY_TOKEN_ID__ID_ASC',\n  SQTOKEN_BY_TOKEN_ID__ID_DESC = 'SQTOKEN_BY_TOKEN_ID__ID_DESC',\n  SQTOKEN_BY_TOKEN_ID__TOTAL_SUPPLY_ASC = 'SQTOKEN_BY_TOKEN_ID__TOTAL_SUPPLY_ASC',\n  SQTOKEN_BY_TOKEN_ID__TOTAL_SUPPLY_DESC = 'SQTOKEN_BY_TOKEN_ID__TOTAL_SUPPLY_DESC',\n  TOKEN_ID_ASC = 'TOKEN_ID_ASC',\n  TOKEN_ID_DESC = 'TOKEN_ID_DESC',\n}\n\nexport type TotalLock = Node & {\n  readonly __typename: 'TotalLock';\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly id: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly totalDelegation: Scalars['JSON']['output'];\n  readonly totalStake: Scalars['JSON']['output'];\n};\n\nexport type TotalLockAggregates = {\n  readonly __typename: 'TotalLockAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<TotalLockAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<TotalLockDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<TotalLockMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<TotalLockMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<TotalLockStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<TotalLockStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<TotalLockSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<TotalLockVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<TotalLockVarianceSampleAggregates>;\n};\n\nexport type TotalLockAverageAggregates = {\n  readonly __typename: 'TotalLockAverageAggregates';\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TotalLockDistinctCountAggregates = {\n  readonly __typename: 'TotalLockDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalDelegation across the matching connection */\n  readonly totalDelegation: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of totalStake across the matching connection */\n  readonly totalStake: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `TotalLock` object types. All fields are combined with a logical ‘and.’ */\nexport type TotalLockFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<TotalLockFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<TotalLockFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<TotalLockFilter>>;\n  /** Filter by the object’s `totalDelegation` field. */\n  readonly totalDelegation: InputMaybe<JsonFilter>;\n  /** Filter by the object’s `totalStake` field. */\n  readonly totalStake: InputMaybe<JsonFilter>;\n};\n\nexport type TotalLockMaxAggregates = {\n  readonly __typename: 'TotalLockMaxAggregates';\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type TotalLockMinAggregates = {\n  readonly __typename: 'TotalLockMinAggregates';\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type TotalLockStddevPopulationAggregates = {\n  readonly __typename: 'TotalLockStddevPopulationAggregates';\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TotalLockStddevSampleAggregates = {\n  readonly __typename: 'TotalLockStddevSampleAggregates';\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TotalLockSumAggregates = {\n  readonly __typename: 'TotalLockSumAggregates';\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\nexport type TotalLockVariancePopulationAggregates = {\n  readonly __typename: 'TotalLockVariancePopulationAggregates';\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TotalLockVarianceSampleAggregates = {\n  readonly __typename: 'TotalLockVarianceSampleAggregates';\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `TotalLock` values. */\nexport type TotalLocksConnection = {\n  readonly __typename: 'TotalLocksConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<TotalLockAggregates>;\n  /** A list of edges which contains the `TotalLock` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<TotalLocksEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<TotalLockAggregates>>;\n  /** A list of `TotalLock` objects. */\n  readonly nodes: ReadonlyArray<Maybe<TotalLock>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `TotalLock` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `TotalLock` values. */\nexport type TotalLocksConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<TotalLocksGroupBy>;\n  having: InputMaybe<TotalLocksHavingInput>;\n};\n\n/** A `TotalLock` edge in the connection. */\nexport type TotalLocksEdge = {\n  readonly __typename: 'TotalLocksEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `TotalLock` at the end of the edge. */\n  readonly node: Maybe<TotalLock>;\n};\n\n/** Grouping methods for `TotalLock` for usage during aggregation. */\nexport enum TotalLocksGroupBy {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  TOTAL_DELEGATION = 'TOTAL_DELEGATION',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport type TotalLocksHavingAverageInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type TotalLocksHavingDistinctCountInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `TotalLock` aggregates. */\nexport type TotalLocksHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<TotalLocksHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<TotalLocksHavingInput>>;\n  readonly average: InputMaybe<TotalLocksHavingAverageInput>;\n  readonly distinctCount: InputMaybe<TotalLocksHavingDistinctCountInput>;\n  readonly max: InputMaybe<TotalLocksHavingMaxInput>;\n  readonly min: InputMaybe<TotalLocksHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<TotalLocksHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<TotalLocksHavingStddevSampleInput>;\n  readonly sum: InputMaybe<TotalLocksHavingSumInput>;\n  readonly variancePopulation: InputMaybe<TotalLocksHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<TotalLocksHavingVarianceSampleInput>;\n};\n\nexport type TotalLocksHavingMaxInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type TotalLocksHavingMinInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type TotalLocksHavingStddevPopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type TotalLocksHavingStddevSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type TotalLocksHavingSumInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type TotalLocksHavingVariancePopulationInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type TotalLocksHavingVarianceSampleInput = {\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `TotalLock`. */\nexport enum TotalLocksOrderBy {\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  TOTAL_DELEGATION_ASC = 'TOTAL_DELEGATION_ASC',\n  TOTAL_DELEGATION_DESC = 'TOTAL_DELEGATION_DESC',\n  TOTAL_STAKE_ASC = 'TOTAL_STAKE_ASC',\n  TOTAL_STAKE_DESC = 'TOTAL_STAKE_DESC',\n}\n\nexport type Transfer = Node & {\n  readonly __typename: 'Transfer';\n  readonly amount: Scalars['BigFloat']['output'];\n  readonly blockheight: Scalars['BigFloat']['output'];\n  readonly from: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly timestamp: Scalars['Datetime']['output'];\n  readonly to: Scalars['String']['output'];\n  readonly txHash: Scalars['String']['output'];\n};\n\nexport type TransferAggregates = {\n  readonly __typename: 'TransferAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<TransferAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<TransferDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<TransferMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<TransferMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<TransferStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<TransferStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<TransferSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<TransferVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<TransferVarianceSampleAggregates>;\n};\n\nexport type TransferAverageAggregates = {\n  readonly __typename: 'TransferAverageAggregates';\n  /** Mean average of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TransferDistinctCountAggregates = {\n  readonly __typename: 'TransferDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of from across the matching connection */\n  readonly from: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of timestamp across the matching connection */\n  readonly timestamp: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of to across the matching connection */\n  readonly to: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of txHash across the matching connection */\n  readonly txHash: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Transfer` object types. All fields are combined with a logical ‘and.’ */\nexport type TransferFilter = {\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<TransferFilter>>;\n  /** Filter by the object’s `blockheight` field. */\n  readonly blockheight: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `from` field. */\n  readonly from: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<TransferFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<TransferFilter>>;\n  /** Filter by the object’s `timestamp` field. */\n  readonly timestamp: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `to` field. */\n  readonly to: InputMaybe<StringFilter>;\n  /** Filter by the object’s `txHash` field. */\n  readonly txHash: InputMaybe<StringFilter>;\n};\n\nexport type TransferMaxAggregates = {\n  readonly __typename: 'TransferMaxAggregates';\n  /** Maximum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TransferMinAggregates = {\n  readonly __typename: 'TransferMinAggregates';\n  /** Minimum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TransferStddevPopulationAggregates = {\n  readonly __typename: 'TransferStddevPopulationAggregates';\n  /** Population standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TransferStddevSampleAggregates = {\n  readonly __typename: 'TransferStddevSampleAggregates';\n  /** Sample standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TransferSumAggregates = {\n  readonly __typename: 'TransferSumAggregates';\n  /** Sum of amount across the matching connection */\n  readonly amount: Scalars['BigFloat']['output'];\n  /** Sum of blockheight across the matching connection */\n  readonly blockheight: Scalars['BigFloat']['output'];\n};\n\nexport type TransferVariancePopulationAggregates = {\n  readonly __typename: 'TransferVariancePopulationAggregates';\n  /** Population variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type TransferVarianceSampleAggregates = {\n  readonly __typename: 'TransferVarianceSampleAggregates';\n  /** Sample variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Transfer` values. */\nexport type TransfersConnection = {\n  readonly __typename: 'TransfersConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<TransferAggregates>;\n  /** A list of edges which contains the `Transfer` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<TransfersEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<TransferAggregates>>;\n  /** A list of `Transfer` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Transfer>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Transfer` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Transfer` values. */\nexport type TransfersConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<TransfersGroupBy>;\n  having: InputMaybe<TransfersHavingInput>;\n};\n\n/** A `Transfer` edge in the connection. */\nexport type TransfersEdge = {\n  readonly __typename: 'TransfersEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Transfer` at the end of the edge. */\n  readonly node: Maybe<Transfer>;\n};\n\n/** Grouping methods for `Transfer` for usage during aggregation. */\nexport enum TransfersGroupBy {\n  AMOUNT = 'AMOUNT',\n  BLOCKHEIGHT = 'BLOCKHEIGHT',\n  FROM = 'FROM',\n  ID = 'ID',\n  TIMESTAMP = 'TIMESTAMP',\n  TIMESTAMP_TRUNCATED_TO_DAY = 'TIMESTAMP_TRUNCATED_TO_DAY',\n  TIMESTAMP_TRUNCATED_TO_HOUR = 'TIMESTAMP_TRUNCATED_TO_HOUR',\n  TO = 'TO',\n  TX_HASH = 'TX_HASH',\n}\n\nexport type TransfersHavingAverageInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingBigfloatFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type TransfersHavingDistinctCountInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingBigfloatFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `Transfer` aggregates. */\nexport type TransfersHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<TransfersHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<TransfersHavingInput>>;\n  readonly average: InputMaybe<TransfersHavingAverageInput>;\n  readonly distinctCount: InputMaybe<TransfersHavingDistinctCountInput>;\n  readonly max: InputMaybe<TransfersHavingMaxInput>;\n  readonly min: InputMaybe<TransfersHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<TransfersHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<TransfersHavingStddevSampleInput>;\n  readonly sum: InputMaybe<TransfersHavingSumInput>;\n  readonly variancePopulation: InputMaybe<TransfersHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<TransfersHavingVarianceSampleInput>;\n};\n\nexport type TransfersHavingMaxInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingBigfloatFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type TransfersHavingMinInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingBigfloatFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type TransfersHavingStddevPopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingBigfloatFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type TransfersHavingStddevSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingBigfloatFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type TransfersHavingSumInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingBigfloatFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type TransfersHavingVariancePopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingBigfloatFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type TransfersHavingVarianceSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingBigfloatFilter>;\n  readonly timestamp: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `Transfer`. */\nexport enum TransfersOrderBy {\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  BLOCKHEIGHT_ASC = 'BLOCKHEIGHT_ASC',\n  BLOCKHEIGHT_DESC = 'BLOCKHEIGHT_DESC',\n  FROM_ASC = 'FROM_ASC',\n  FROM_DESC = 'FROM_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  TIMESTAMP_ASC = 'TIMESTAMP_ASC',\n  TIMESTAMP_DESC = 'TIMESTAMP_DESC',\n  TO_ASC = 'TO_ASC',\n  TO_DESC = 'TO_DESC',\n  TX_HASH_ASC = 'TX_HASH_ASC',\n  TX_HASH_DESC = 'TX_HASH_DESC',\n}\n\nexport type UnclaimedReward = Node & {\n  readonly __typename: 'UnclaimedReward';\n  readonly amount: Scalars['BigFloat']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Reads a single `Delegator` that is related to this `UnclaimedReward`. */\n  readonly delegator: Maybe<Delegator>;\n  readonly delegatorAddress: Scalars['String']['output'];\n  readonly delegatorId: Maybe<Scalars['String']['output']>;\n  readonly id: Scalars['String']['output'];\n  readonly indexerAddress: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n};\n\nexport type UnclaimedRewardAggregates = {\n  readonly __typename: 'UnclaimedRewardAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<UnclaimedRewardAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<UnclaimedRewardDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<UnclaimedRewardMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<UnclaimedRewardMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<UnclaimedRewardStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<UnclaimedRewardStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<UnclaimedRewardSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<UnclaimedRewardVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<UnclaimedRewardVarianceSampleAggregates>;\n};\n\n/** A filter to be used against aggregates of `UnclaimedReward` object types. */\nexport type UnclaimedRewardAggregatesFilter = {\n  /** Mean average aggregate over matching `UnclaimedReward` objects. */\n  readonly average: InputMaybe<UnclaimedRewardAverageAggregateFilter>;\n  /** Distinct count aggregate over matching `UnclaimedReward` objects. */\n  readonly distinctCount: InputMaybe<UnclaimedRewardDistinctCountAggregateFilter>;\n  /** A filter that must pass for the relevant `UnclaimedReward` object to be included within the aggregate. */\n  readonly filter: InputMaybe<UnclaimedRewardFilter>;\n  /** Maximum aggregate over matching `UnclaimedReward` objects. */\n  readonly max: InputMaybe<UnclaimedRewardMaxAggregateFilter>;\n  /** Minimum aggregate over matching `UnclaimedReward` objects. */\n  readonly min: InputMaybe<UnclaimedRewardMinAggregateFilter>;\n  /** Population standard deviation aggregate over matching `UnclaimedReward` objects. */\n  readonly stddevPopulation: InputMaybe<UnclaimedRewardStddevPopulationAggregateFilter>;\n  /** Sample standard deviation aggregate over matching `UnclaimedReward` objects. */\n  readonly stddevSample: InputMaybe<UnclaimedRewardStddevSampleAggregateFilter>;\n  /** Sum aggregate over matching `UnclaimedReward` objects. */\n  readonly sum: InputMaybe<UnclaimedRewardSumAggregateFilter>;\n  /** Population variance aggregate over matching `UnclaimedReward` objects. */\n  readonly variancePopulation: InputMaybe<UnclaimedRewardVariancePopulationAggregateFilter>;\n  /** Sample variance aggregate over matching `UnclaimedReward` objects. */\n  readonly varianceSample: InputMaybe<UnclaimedRewardVarianceSampleAggregateFilter>;\n};\n\nexport type UnclaimedRewardAverageAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type UnclaimedRewardAverageAggregates = {\n  readonly __typename: 'UnclaimedRewardAverageAggregates';\n  /** Mean average of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type UnclaimedRewardDistinctCountAggregateFilter = {\n  readonly _blockRange: InputMaybe<BigIntFilter>;\n  readonly _id: InputMaybe<BigIntFilter>;\n  readonly amount: InputMaybe<BigIntFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n  readonly delegatorAddress: InputMaybe<BigIntFilter>;\n  readonly delegatorId: InputMaybe<BigIntFilter>;\n  readonly id: InputMaybe<BigIntFilter>;\n  readonly indexerAddress: InputMaybe<BigIntFilter>;\n  readonly lastEvent: InputMaybe<BigIntFilter>;\n};\n\nexport type UnclaimedRewardDistinctCountAggregates = {\n  readonly __typename: 'UnclaimedRewardDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorAddress across the matching connection */\n  readonly delegatorAddress: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegatorId across the matching connection */\n  readonly delegatorId: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexerAddress across the matching connection */\n  readonly indexerAddress: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `UnclaimedReward` object types. All fields are combined with a logical ‘and.’ */\nexport type UnclaimedRewardFilter = {\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<UnclaimedRewardFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `delegator` relation. */\n  readonly delegator: InputMaybe<DelegatorFilter>;\n  /** Filter by the object’s `delegatorAddress` field. */\n  readonly delegatorAddress: InputMaybe<StringFilter>;\n  /** A related `delegator` exists. */\n  readonly delegatorExists: InputMaybe<Scalars['Boolean']['input']>;\n  /** Filter by the object’s `delegatorId` field. */\n  readonly delegatorId: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `indexerAddress` field. */\n  readonly indexerAddress: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<UnclaimedRewardFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<UnclaimedRewardFilter>>;\n};\n\nexport type UnclaimedRewardMaxAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type UnclaimedRewardMaxAggregates = {\n  readonly __typename: 'UnclaimedRewardMaxAggregates';\n  /** Maximum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type UnclaimedRewardMinAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<IntFilter>;\n};\n\nexport type UnclaimedRewardMinAggregates = {\n  readonly __typename: 'UnclaimedRewardMinAggregates';\n  /** Minimum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n};\n\nexport type UnclaimedRewardStddevPopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type UnclaimedRewardStddevPopulationAggregates = {\n  readonly __typename: 'UnclaimedRewardStddevPopulationAggregates';\n  /** Population standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type UnclaimedRewardStddevSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type UnclaimedRewardStddevSampleAggregates = {\n  readonly __typename: 'UnclaimedRewardStddevSampleAggregates';\n  /** Sample standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type UnclaimedRewardSumAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigIntFilter>;\n};\n\nexport type UnclaimedRewardSumAggregates = {\n  readonly __typename: 'UnclaimedRewardSumAggregates';\n  /** Sum of amount across the matching connection */\n  readonly amount: Scalars['BigFloat']['output'];\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n};\n\nexport type UnclaimedRewardVariancePopulationAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type UnclaimedRewardVariancePopulationAggregates = {\n  readonly __typename: 'UnclaimedRewardVariancePopulationAggregates';\n  /** Population variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type UnclaimedRewardVarianceSampleAggregateFilter = {\n  readonly amount: InputMaybe<BigFloatFilter>;\n  readonly createdBlock: InputMaybe<BigFloatFilter>;\n};\n\nexport type UnclaimedRewardVarianceSampleAggregates = {\n  readonly __typename: 'UnclaimedRewardVarianceSampleAggregates';\n  /** Sample variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `UnclaimedReward` values. */\nexport type UnclaimedRewardsConnection = {\n  readonly __typename: 'UnclaimedRewardsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<UnclaimedRewardAggregates>;\n  /** A list of edges which contains the `UnclaimedReward` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<UnclaimedRewardsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<UnclaimedRewardAggregates>>;\n  /** A list of `UnclaimedReward` objects. */\n  readonly nodes: ReadonlyArray<Maybe<UnclaimedReward>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `UnclaimedReward` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `UnclaimedReward` values. */\nexport type UnclaimedRewardsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<UnclaimedRewardsGroupBy>;\n  having: InputMaybe<UnclaimedRewardsHavingInput>;\n};\n\n/** A `UnclaimedReward` edge in the connection. */\nexport type UnclaimedRewardsEdge = {\n  readonly __typename: 'UnclaimedRewardsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `UnclaimedReward` at the end of the edge. */\n  readonly node: Maybe<UnclaimedReward>;\n};\n\n/** Grouping methods for `UnclaimedReward` for usage during aggregation. */\nexport enum UnclaimedRewardsGroupBy {\n  AMOUNT = 'AMOUNT',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DELEGATOR_ADDRESS = 'DELEGATOR_ADDRESS',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ID = 'ID',\n  INDEXER_ADDRESS = 'INDEXER_ADDRESS',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport type UnclaimedRewardsHavingAverageInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type UnclaimedRewardsHavingDistinctCountInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Conditions for `UnclaimedReward` aggregates. */\nexport type UnclaimedRewardsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<UnclaimedRewardsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<UnclaimedRewardsHavingInput>>;\n  readonly average: InputMaybe<UnclaimedRewardsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<UnclaimedRewardsHavingDistinctCountInput>;\n  readonly max: InputMaybe<UnclaimedRewardsHavingMaxInput>;\n  readonly min: InputMaybe<UnclaimedRewardsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<UnclaimedRewardsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<UnclaimedRewardsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<UnclaimedRewardsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<UnclaimedRewardsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<UnclaimedRewardsHavingVarianceSampleInput>;\n};\n\nexport type UnclaimedRewardsHavingMaxInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type UnclaimedRewardsHavingMinInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type UnclaimedRewardsHavingStddevPopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type UnclaimedRewardsHavingStddevSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type UnclaimedRewardsHavingSumInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type UnclaimedRewardsHavingVariancePopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\nexport type UnclaimedRewardsHavingVarianceSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n};\n\n/** Methods to use when ordering `UnclaimedReward`. */\nexport enum UnclaimedRewardsOrderBy {\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DELEGATOR_ADDRESS_ASC = 'DELEGATOR_ADDRESS_ASC',\n  DELEGATOR_ADDRESS_DESC = 'DELEGATOR_ADDRESS_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC = 'DELEGATOR_BY_DELEGATOR_ID__CREATED_BLOCK_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__EXIT_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_ASC = 'DELEGATOR_BY_DELEGATOR_ID__ID_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__ID_DESC = 'DELEGATOR_BY_DELEGATOR_ID__ID_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC = 'DELEGATOR_BY_DELEGATOR_ID__LAST_EVENT_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC = 'DELEGATOR_BY_DELEGATOR_ID__START_ERA_DESC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_ASC',\n  DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC = 'DELEGATOR_BY_DELEGATOR_ID__TOTAL_DELEGATIONS_DESC',\n  DELEGATOR_ID_ASC = 'DELEGATOR_ID_ASC',\n  DELEGATOR_ID_DESC = 'DELEGATOR_ID_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_ADDRESS_ASC = 'INDEXER_ADDRESS_ASC',\n  INDEXER_ADDRESS_DESC = 'INDEXER_ADDRESS_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n}\n\nexport type Withdraw = Node & {\n  readonly __typename: 'Withdraw';\n  readonly amount: Scalars['BigFloat']['output'];\n  readonly blockheight: Scalars['Int']['output'];\n  readonly createAt: Scalars['Datetime']['output'];\n  readonly id: Scalars['String']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly sender: Scalars['String']['output'];\n  readonly txHash: Scalars['String']['output'];\n};\n\nexport type WithdrawAggregates = {\n  readonly __typename: 'WithdrawAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<WithdrawAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<WithdrawDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<WithdrawMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<WithdrawMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<WithdrawStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<WithdrawStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<WithdrawSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<WithdrawVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<WithdrawVarianceSampleAggregates>;\n};\n\nexport type WithdrawAverageAggregates = {\n  readonly __typename: 'WithdrawAverageAggregates';\n  /** Mean average of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawDistinctCountAggregates = {\n  readonly __typename: 'WithdrawDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createAt across the matching connection */\n  readonly createAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of sender across the matching connection */\n  readonly sender: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of txHash across the matching connection */\n  readonly txHash: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Withdraw` object types. All fields are combined with a logical ‘and.’ */\nexport type WithdrawFilter = {\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<WithdrawFilter>>;\n  /** Filter by the object’s `blockheight` field. */\n  readonly blockheight: InputMaybe<IntFilter>;\n  /** Filter by the object’s `createAt` field. */\n  readonly createAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<WithdrawFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<WithdrawFilter>>;\n  /** Filter by the object’s `sender` field. */\n  readonly sender: InputMaybe<StringFilter>;\n  /** Filter by the object’s `txHash` field. */\n  readonly txHash: InputMaybe<StringFilter>;\n};\n\nexport type WithdrawMaxAggregates = {\n  readonly __typename: 'WithdrawMaxAggregates';\n  /** Maximum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['Int']['output']>;\n};\n\nexport type WithdrawMinAggregates = {\n  readonly __typename: 'WithdrawMinAggregates';\n  /** Minimum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['Int']['output']>;\n};\n\nexport type WithdrawStddevPopulationAggregates = {\n  readonly __typename: 'WithdrawStddevPopulationAggregates';\n  /** Population standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawStddevSampleAggregates = {\n  readonly __typename: 'WithdrawStddevSampleAggregates';\n  /** Sample standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawSumAggregates = {\n  readonly __typename: 'WithdrawSumAggregates';\n  /** Sum of amount across the matching connection */\n  readonly amount: Scalars['BigFloat']['output'];\n  /** Sum of blockheight across the matching connection */\n  readonly blockheight: Scalars['BigInt']['output'];\n};\n\nexport type WithdrawVariancePopulationAggregates = {\n  readonly __typename: 'WithdrawVariancePopulationAggregates';\n  /** Population variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawVarianceSampleAggregates = {\n  readonly __typename: 'WithdrawVarianceSampleAggregates';\n  /** Sample variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of blockheight across the matching connection */\n  readonly blockheight: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport enum WithdrawalStatus {\n  CANCELLED = 'CANCELLED',\n  CLAIMED = 'CLAIMED',\n  ONGOING = 'ONGOING',\n}\n\n/** A filter to be used against WithdrawalStatus fields. All fields are combined with a logical ‘and.’ */\nexport type WithdrawalStatusFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<WithdrawalStatus>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<WithdrawalStatus>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<WithdrawalStatus>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<WithdrawalStatus>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<WithdrawalStatus>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<WithdrawalStatus>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<WithdrawalStatus>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<WithdrawalStatus>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<WithdrawalStatus>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<WithdrawalStatus>>;\n};\n\nexport enum WithdrawalType {\n  COMMISSION = 'COMMISSION',\n  MERGE = 'MERGE',\n  UNDELEGATION = 'UNDELEGATION',\n  UNSTAKE = 'UNSTAKE',\n}\n\n/** A filter to be used against WithdrawalType fields. All fields are combined with a logical ‘and.’ */\nexport type WithdrawalTypeFilter = {\n  /** Not equal to the specified value, treating null like an ordinary value. */\n  readonly distinctFrom: InputMaybe<WithdrawalType>;\n  /** Equal to the specified value. */\n  readonly equalTo: InputMaybe<WithdrawalType>;\n  /** Greater than the specified value. */\n  readonly greaterThan: InputMaybe<WithdrawalType>;\n  /** Greater than or equal to the specified value. */\n  readonly greaterThanOrEqualTo: InputMaybe<WithdrawalType>;\n  /** Included in the specified list. */\n  readonly in: InputMaybe<ReadonlyArray<WithdrawalType>>;\n  /** Is null (if `true` is specified) or is not null (if `false` is specified). */\n  readonly isNull: InputMaybe<Scalars['Boolean']['input']>;\n  /** Less than the specified value. */\n  readonly lessThan: InputMaybe<WithdrawalType>;\n  /** Less than or equal to the specified value. */\n  readonly lessThanOrEqualTo: InputMaybe<WithdrawalType>;\n  /** Equal to the specified value, treating null like an ordinary value. */\n  readonly notDistinctFrom: InputMaybe<WithdrawalType>;\n  /** Not equal to the specified value. */\n  readonly notEqualTo: InputMaybe<WithdrawalType>;\n  /** Not included in the specified list. */\n  readonly notIn: InputMaybe<ReadonlyArray<WithdrawalType>>;\n};\n\nexport type Withdrawl = Node & {\n  readonly __typename: 'Withdrawl';\n  readonly amount: Scalars['BigFloat']['output'];\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  readonly delegator: Scalars['String']['output'];\n  readonly id: Scalars['String']['output'];\n  readonly index: Scalars['BigFloat']['output'];\n  readonly indexer: Scalars['String']['output'];\n  readonly lastEvent: Maybe<Scalars['String']['output']>;\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly startTime: Scalars['Datetime']['output'];\n  readonly status: WithdrawalStatus;\n  readonly type: WithdrawalType;\n};\n\nexport type WithdrawlAggregates = {\n  readonly __typename: 'WithdrawlAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<WithdrawlAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<WithdrawlDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<WithdrawlMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<WithdrawlMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<WithdrawlStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<WithdrawlStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<WithdrawlSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<WithdrawlVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<WithdrawlVarianceSampleAggregates>;\n};\n\nexport type WithdrawlAverageAggregates = {\n  readonly __typename: 'WithdrawlAverageAggregates';\n  /** Mean average of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Mean average of index across the matching connection */\n  readonly index: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawlDistinctCountAggregates = {\n  readonly __typename: 'WithdrawlDistinctCountAggregates';\n  /** Distinct count of _blockRange across the matching connection */\n  readonly _blockRange: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of _id across the matching connection */\n  readonly _id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of delegator across the matching connection */\n  readonly delegator: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of index across the matching connection */\n  readonly index: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of indexer across the matching connection */\n  readonly indexer: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of lastEvent across the matching connection */\n  readonly lastEvent: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of startTime across the matching connection */\n  readonly startTime: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of status across the matching connection */\n  readonly status: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of type across the matching connection */\n  readonly type: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `Withdrawl` object types. All fields are combined with a logical ‘and.’ */\nexport type WithdrawlFilter = {\n  /** Filter by the object’s `amount` field. */\n  readonly amount: InputMaybe<BigFloatFilter>;\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<WithdrawlFilter>>;\n  /** Filter by the object’s `createdBlock` field. */\n  readonly createdBlock: InputMaybe<IntFilter>;\n  /** Filter by the object’s `delegator` field. */\n  readonly delegator: InputMaybe<StringFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<StringFilter>;\n  /** Filter by the object’s `index` field. */\n  readonly index: InputMaybe<BigFloatFilter>;\n  /** Filter by the object’s `indexer` field. */\n  readonly indexer: InputMaybe<StringFilter>;\n  /** Filter by the object’s `lastEvent` field. */\n  readonly lastEvent: InputMaybe<StringFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<WithdrawlFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<WithdrawlFilter>>;\n  /** Filter by the object’s `startTime` field. */\n  readonly startTime: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `status` field. */\n  readonly status: InputMaybe<WithdrawalStatusFilter>;\n  /** Filter by the object’s `type` field. */\n  readonly type: InputMaybe<WithdrawalTypeFilter>;\n};\n\nexport type WithdrawlMaxAggregates = {\n  readonly __typename: 'WithdrawlMaxAggregates';\n  /** Maximum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Maximum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Maximum of index across the matching connection */\n  readonly index: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawlMinAggregates = {\n  readonly __typename: 'WithdrawlMinAggregates';\n  /** Minimum of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Minimum of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['Int']['output']>;\n  /** Minimum of index across the matching connection */\n  readonly index: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawlStddevPopulationAggregates = {\n  readonly __typename: 'WithdrawlStddevPopulationAggregates';\n  /** Population standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population standard deviation of index across the matching connection */\n  readonly index: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawlStddevSampleAggregates = {\n  readonly __typename: 'WithdrawlStddevSampleAggregates';\n  /** Sample standard deviation of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample standard deviation of index across the matching connection */\n  readonly index: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawlSumAggregates = {\n  readonly __typename: 'WithdrawlSumAggregates';\n  /** Sum of amount across the matching connection */\n  readonly amount: Scalars['BigFloat']['output'];\n  /** Sum of createdBlock across the matching connection */\n  readonly createdBlock: Scalars['BigInt']['output'];\n  /** Sum of index across the matching connection */\n  readonly index: Scalars['BigFloat']['output'];\n};\n\nexport type WithdrawlVariancePopulationAggregates = {\n  readonly __typename: 'WithdrawlVariancePopulationAggregates';\n  /** Population variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Population variance of index across the matching connection */\n  readonly index: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type WithdrawlVarianceSampleAggregates = {\n  readonly __typename: 'WithdrawlVarianceSampleAggregates';\n  /** Sample variance of amount across the matching connection */\n  readonly amount: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of createdBlock across the matching connection */\n  readonly createdBlock: Maybe<Scalars['BigFloat']['output']>;\n  /** Sample variance of index across the matching connection */\n  readonly index: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `Withdrawl` values. */\nexport type WithdrawlsConnection = {\n  readonly __typename: 'WithdrawlsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<WithdrawlAggregates>;\n  /** A list of edges which contains the `Withdrawl` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<WithdrawlsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<WithdrawlAggregates>>;\n  /** A list of `Withdrawl` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Withdrawl>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Withdrawl` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Withdrawl` values. */\nexport type WithdrawlsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<WithdrawlsGroupBy>;\n  having: InputMaybe<WithdrawlsHavingInput>;\n};\n\n/** A `Withdrawl` edge in the connection. */\nexport type WithdrawlsEdge = {\n  readonly __typename: 'WithdrawlsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Withdrawl` at the end of the edge. */\n  readonly node: Maybe<Withdrawl>;\n};\n\n/** Grouping methods for `Withdrawl` for usage during aggregation. */\nexport enum WithdrawlsGroupBy {\n  AMOUNT = 'AMOUNT',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DELEGATOR = 'DELEGATOR',\n  ID = 'ID',\n  INDEX = 'INDEX',\n  INDEXER = 'INDEXER',\n  LAST_EVENT = 'LAST_EVENT',\n  START_TIME = 'START_TIME',\n  START_TIME_TRUNCATED_TO_DAY = 'START_TIME_TRUNCATED_TO_DAY',\n  START_TIME_TRUNCATED_TO_HOUR = 'START_TIME_TRUNCATED_TO_HOUR',\n  STATUS = 'STATUS',\n  TYPE = 'TYPE',\n}\n\nexport type WithdrawlsHavingAverageInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly index: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawlsHavingDistinctCountInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly index: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `Withdrawl` aggregates. */\nexport type WithdrawlsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<WithdrawlsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<WithdrawlsHavingInput>>;\n  readonly average: InputMaybe<WithdrawlsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<WithdrawlsHavingDistinctCountInput>;\n  readonly max: InputMaybe<WithdrawlsHavingMaxInput>;\n  readonly min: InputMaybe<WithdrawlsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<WithdrawlsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<WithdrawlsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<WithdrawlsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<WithdrawlsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<WithdrawlsHavingVarianceSampleInput>;\n};\n\nexport type WithdrawlsHavingMaxInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly index: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawlsHavingMinInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly index: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawlsHavingStddevPopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly index: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawlsHavingStddevSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly index: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawlsHavingSumInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly index: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawlsHavingVariancePopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly index: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawlsHavingVarianceSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly createdBlock: InputMaybe<HavingIntFilter>;\n  readonly index: InputMaybe<HavingBigfloatFilter>;\n  readonly startTime: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `Withdrawl`. */\nexport enum WithdrawlsOrderBy {\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  CREATED_BLOCK_ASC = 'CREATED_BLOCK_ASC',\n  CREATED_BLOCK_DESC = 'CREATED_BLOCK_DESC',\n  DELEGATOR_ASC = 'DELEGATOR_ASC',\n  DELEGATOR_DESC = 'DELEGATOR_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  INDEXER_ASC = 'INDEXER_ASC',\n  INDEXER_DESC = 'INDEXER_DESC',\n  INDEX_ASC = 'INDEX_ASC',\n  INDEX_DESC = 'INDEX_DESC',\n  LAST_EVENT_ASC = 'LAST_EVENT_ASC',\n  LAST_EVENT_DESC = 'LAST_EVENT_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  START_TIME_ASC = 'START_TIME_ASC',\n  START_TIME_DESC = 'START_TIME_DESC',\n  STATUS_ASC = 'STATUS_ASC',\n  STATUS_DESC = 'STATUS_DESC',\n  TYPE_ASC = 'TYPE_ASC',\n  TYPE_DESC = 'TYPE_DESC',\n}\n\n/** A connection to a list of `Withdraw` values. */\nexport type WithdrawsConnection = {\n  readonly __typename: 'WithdrawsConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<WithdrawAggregates>;\n  /** A list of edges which contains the `Withdraw` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<WithdrawsEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<WithdrawAggregates>>;\n  /** A list of `Withdraw` objects. */\n  readonly nodes: ReadonlyArray<Maybe<Withdraw>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `Withdraw` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `Withdraw` values. */\nexport type WithdrawsConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<WithdrawsGroupBy>;\n  having: InputMaybe<WithdrawsHavingInput>;\n};\n\n/** A `Withdraw` edge in the connection. */\nexport type WithdrawsEdge = {\n  readonly __typename: 'WithdrawsEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `Withdraw` at the end of the edge. */\n  readonly node: Maybe<Withdraw>;\n};\n\n/** Grouping methods for `Withdraw` for usage during aggregation. */\nexport enum WithdrawsGroupBy {\n  AMOUNT = 'AMOUNT',\n  BLOCKHEIGHT = 'BLOCKHEIGHT',\n  CREATE_AT = 'CREATE_AT',\n  CREATE_AT_TRUNCATED_TO_DAY = 'CREATE_AT_TRUNCATED_TO_DAY',\n  CREATE_AT_TRUNCATED_TO_HOUR = 'CREATE_AT_TRUNCATED_TO_HOUR',\n  ID = 'ID',\n  SENDER = 'SENDER',\n  TX_HASH = 'TX_HASH',\n}\n\nexport type WithdrawsHavingAverageInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingIntFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawsHavingDistinctCountInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingIntFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `Withdraw` aggregates. */\nexport type WithdrawsHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<WithdrawsHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<WithdrawsHavingInput>>;\n  readonly average: InputMaybe<WithdrawsHavingAverageInput>;\n  readonly distinctCount: InputMaybe<WithdrawsHavingDistinctCountInput>;\n  readonly max: InputMaybe<WithdrawsHavingMaxInput>;\n  readonly min: InputMaybe<WithdrawsHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<WithdrawsHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<WithdrawsHavingStddevSampleInput>;\n  readonly sum: InputMaybe<WithdrawsHavingSumInput>;\n  readonly variancePopulation: InputMaybe<WithdrawsHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<WithdrawsHavingVarianceSampleInput>;\n};\n\nexport type WithdrawsHavingMaxInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingIntFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawsHavingMinInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingIntFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawsHavingStddevPopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingIntFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawsHavingStddevSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingIntFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawsHavingSumInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingIntFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawsHavingVariancePopulationInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingIntFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type WithdrawsHavingVarianceSampleInput = {\n  readonly amount: InputMaybe<HavingBigfloatFilter>;\n  readonly blockheight: InputMaybe<HavingIntFilter>;\n  readonly createAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Methods to use when ordering `Withdraw`. */\nexport enum WithdrawsOrderBy {\n  AMOUNT_ASC = 'AMOUNT_ASC',\n  AMOUNT_DESC = 'AMOUNT_DESC',\n  BLOCKHEIGHT_ASC = 'BLOCKHEIGHT_ASC',\n  BLOCKHEIGHT_DESC = 'BLOCKHEIGHT_DESC',\n  CREATE_AT_ASC = 'CREATE_AT_ASC',\n  CREATE_AT_DESC = 'CREATE_AT_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  SENDER_ASC = 'SENDER_ASC',\n  SENDER_DESC = 'SENDER_DESC',\n  TX_HASH_ASC = 'TX_HASH_ASC',\n  TX_HASH_DESC = 'TX_HASH_DESC',\n}\n\nexport type _Metadata = {\n  readonly __typename: '_Metadata';\n  readonly chain: Maybe<Scalars['String']['output']>;\n  readonly dbSize: Maybe<Scalars['BigInt']['output']>;\n  readonly deployments: Maybe<Scalars['JSON']['output']>;\n  readonly dynamicDatasources: Maybe<ReadonlyArray<Maybe<Scalars['JSON']['output']>>>;\n  readonly evmChainId: Maybe<Scalars['String']['output']>;\n  readonly genesisHash: Maybe<Scalars['String']['output']>;\n  readonly indexerHealthy: Maybe<Scalars['Boolean']['output']>;\n  readonly indexerNodeVersion: Maybe<Scalars['String']['output']>;\n  readonly lastCreatedPoiHeight: Maybe<Scalars['Int']['output']>;\n  readonly lastFinalizedVerifiedHeight: Maybe<Scalars['Int']['output']>;\n  readonly lastProcessedHeight: Maybe<Scalars['Int']['output']>;\n  readonly lastProcessedTimestamp: Maybe<Scalars['Date']['output']>;\n  readonly latestSyncedPoiHeight: Maybe<Scalars['Int']['output']>;\n  readonly queryNodeVersion: Maybe<Scalars['String']['output']>;\n  readonly rowCountEstimate: Maybe<ReadonlyArray<Maybe<TableEstimate>>>;\n  readonly specName: Maybe<Scalars['String']['output']>;\n  readonly startHeight: Maybe<Scalars['Int']['output']>;\n  readonly targetHeight: Maybe<Scalars['Int']['output']>;\n  readonly unfinalizedBlocks: Maybe<Scalars['String']['output']>;\n};\n\nexport type _Metadatas = {\n  readonly __typename: '_Metadatas';\n  readonly nodes: ReadonlyArray<Maybe<_Metadata>>;\n  readonly totalCount: Scalars['Int']['output'];\n};\n\nexport type _MetadatasEdge = {\n  readonly __typename: '_MetadatasEdge';\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  readonly node: Maybe<_Metadata>;\n};\n\nexport type _Poi = Node & {\n  readonly __typename: '_Poi';\n  readonly chainBlockHash: Maybe<Scalars['String']['output']>;\n  readonly createdAt: Scalars['Datetime']['output'];\n  readonly hash: Maybe<Scalars['String']['output']>;\n  readonly id: Scalars['Int']['output'];\n  /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */\n  readonly nodeId: Scalars['ID']['output'];\n  readonly operationHashRoot: Maybe<Scalars['String']['output']>;\n  readonly parentHash: Maybe<Scalars['String']['output']>;\n  readonly updatedAt: Scalars['Datetime']['output'];\n};\n\nexport type _PoiAggregates = {\n  readonly __typename: '_PoiAggregates';\n  /** Mean average aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly average: Maybe<_PoiAverageAggregates>;\n  /** Distinct count aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly distinctCount: Maybe<_PoiDistinctCountAggregates>;\n  readonly keys: Maybe<ReadonlyArray<Scalars['String']['output']>>;\n  /** Maximum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly max: Maybe<_PoiMaxAggregates>;\n  /** Minimum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly min: Maybe<_PoiMinAggregates>;\n  /** Population standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevPopulation: Maybe<_PoiStddevPopulationAggregates>;\n  /** Sample standard deviation aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly stddevSample: Maybe<_PoiStddevSampleAggregates>;\n  /** Sum aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly sum: Maybe<_PoiSumAggregates>;\n  /** Population variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly variancePopulation: Maybe<_PoiVariancePopulationAggregates>;\n  /** Sample variance aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly varianceSample: Maybe<_PoiVarianceSampleAggregates>;\n};\n\nexport type _PoiAverageAggregates = {\n  readonly __typename: '_PoiAverageAggregates';\n  /** Mean average of id across the matching connection */\n  readonly id: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type _PoiDistinctCountAggregates = {\n  readonly __typename: '_PoiDistinctCountAggregates';\n  /** Distinct count of chainBlockHash across the matching connection */\n  readonly chainBlockHash: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of createdAt across the matching connection */\n  readonly createdAt: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of hash across the matching connection */\n  readonly hash: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of id across the matching connection */\n  readonly id: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of operationHashRoot across the matching connection */\n  readonly operationHashRoot: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of parentHash across the matching connection */\n  readonly parentHash: Maybe<Scalars['BigInt']['output']>;\n  /** Distinct count of updatedAt across the matching connection */\n  readonly updatedAt: Maybe<Scalars['BigInt']['output']>;\n};\n\n/** A filter to be used against `_Poi` object types. All fields are combined with a logical ‘and.’ */\nexport type _PoiFilter = {\n  /** Checks for all expressions in this list. */\n  readonly and: InputMaybe<ReadonlyArray<_PoiFilter>>;\n  /** Filter by the object’s `createdAt` field. */\n  readonly createdAt: InputMaybe<DatetimeFilter>;\n  /** Filter by the object’s `id` field. */\n  readonly id: InputMaybe<IntFilter>;\n  /** Negates the expression. */\n  readonly not: InputMaybe<_PoiFilter>;\n  /** Checks for any expressions in this list. */\n  readonly or: InputMaybe<ReadonlyArray<_PoiFilter>>;\n  /** Filter by the object’s `updatedAt` field. */\n  readonly updatedAt: InputMaybe<DatetimeFilter>;\n};\n\n/** Grouping methods for `_Poi` for usage during aggregation. */\nexport enum _PoiGroupBy {\n  CREATED_AT = 'CREATED_AT',\n  CREATED_AT_TRUNCATED_TO_DAY = 'CREATED_AT_TRUNCATED_TO_DAY',\n  CREATED_AT_TRUNCATED_TO_HOUR = 'CREATED_AT_TRUNCATED_TO_HOUR',\n  OPERATION_HASH_ROOT = 'OPERATION_HASH_ROOT',\n  UPDATED_AT = 'UPDATED_AT',\n  UPDATED_AT_TRUNCATED_TO_DAY = 'UPDATED_AT_TRUNCATED_TO_DAY',\n  UPDATED_AT_TRUNCATED_TO_HOUR = 'UPDATED_AT_TRUNCATED_TO_HOUR',\n}\n\nexport type _PoiHavingAverageInput = {\n  readonly createdAt: InputMaybe<HavingDatetimeFilter>;\n  readonly id: InputMaybe<HavingIntFilter>;\n  readonly updatedAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type _PoiHavingDistinctCountInput = {\n  readonly createdAt: InputMaybe<HavingDatetimeFilter>;\n  readonly id: InputMaybe<HavingIntFilter>;\n  readonly updatedAt: InputMaybe<HavingDatetimeFilter>;\n};\n\n/** Conditions for `_Poi` aggregates. */\nexport type _PoiHavingInput = {\n  readonly AND: InputMaybe<ReadonlyArray<_PoiHavingInput>>;\n  readonly OR: InputMaybe<ReadonlyArray<_PoiHavingInput>>;\n  readonly average: InputMaybe<_PoiHavingAverageInput>;\n  readonly distinctCount: InputMaybe<_PoiHavingDistinctCountInput>;\n  readonly max: InputMaybe<_PoiHavingMaxInput>;\n  readonly min: InputMaybe<_PoiHavingMinInput>;\n  readonly stddevPopulation: InputMaybe<_PoiHavingStddevPopulationInput>;\n  readonly stddevSample: InputMaybe<_PoiHavingStddevSampleInput>;\n  readonly sum: InputMaybe<_PoiHavingSumInput>;\n  readonly variancePopulation: InputMaybe<_PoiHavingVariancePopulationInput>;\n  readonly varianceSample: InputMaybe<_PoiHavingVarianceSampleInput>;\n};\n\nexport type _PoiHavingMaxInput = {\n  readonly createdAt: InputMaybe<HavingDatetimeFilter>;\n  readonly id: InputMaybe<HavingIntFilter>;\n  readonly updatedAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type _PoiHavingMinInput = {\n  readonly createdAt: InputMaybe<HavingDatetimeFilter>;\n  readonly id: InputMaybe<HavingIntFilter>;\n  readonly updatedAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type _PoiHavingStddevPopulationInput = {\n  readonly createdAt: InputMaybe<HavingDatetimeFilter>;\n  readonly id: InputMaybe<HavingIntFilter>;\n  readonly updatedAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type _PoiHavingStddevSampleInput = {\n  readonly createdAt: InputMaybe<HavingDatetimeFilter>;\n  readonly id: InputMaybe<HavingIntFilter>;\n  readonly updatedAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type _PoiHavingSumInput = {\n  readonly createdAt: InputMaybe<HavingDatetimeFilter>;\n  readonly id: InputMaybe<HavingIntFilter>;\n  readonly updatedAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type _PoiHavingVariancePopulationInput = {\n  readonly createdAt: InputMaybe<HavingDatetimeFilter>;\n  readonly id: InputMaybe<HavingIntFilter>;\n  readonly updatedAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type _PoiHavingVarianceSampleInput = {\n  readonly createdAt: InputMaybe<HavingDatetimeFilter>;\n  readonly id: InputMaybe<HavingIntFilter>;\n  readonly updatedAt: InputMaybe<HavingDatetimeFilter>;\n};\n\nexport type _PoiMaxAggregates = {\n  readonly __typename: '_PoiMaxAggregates';\n  /** Maximum of id across the matching connection */\n  readonly id: Maybe<Scalars['Int']['output']>;\n};\n\nexport type _PoiMinAggregates = {\n  readonly __typename: '_PoiMinAggregates';\n  /** Minimum of id across the matching connection */\n  readonly id: Maybe<Scalars['Int']['output']>;\n};\n\nexport type _PoiStddevPopulationAggregates = {\n  readonly __typename: '_PoiStddevPopulationAggregates';\n  /** Population standard deviation of id across the matching connection */\n  readonly id: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type _PoiStddevSampleAggregates = {\n  readonly __typename: '_PoiStddevSampleAggregates';\n  /** Sample standard deviation of id across the matching connection */\n  readonly id: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type _PoiSumAggregates = {\n  readonly __typename: '_PoiSumAggregates';\n  /** Sum of id across the matching connection */\n  readonly id: Scalars['BigInt']['output'];\n};\n\nexport type _PoiVariancePopulationAggregates = {\n  readonly __typename: '_PoiVariancePopulationAggregates';\n  /** Population variance of id across the matching connection */\n  readonly id: Maybe<Scalars['BigFloat']['output']>;\n};\n\nexport type _PoiVarianceSampleAggregates = {\n  readonly __typename: '_PoiVarianceSampleAggregates';\n  /** Sample variance of id across the matching connection */\n  readonly id: Maybe<Scalars['BigFloat']['output']>;\n};\n\n/** A connection to a list of `_Poi` values. */\nexport type _PoisConnection = {\n  readonly __typename: '_PoisConnection';\n  /** Aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly aggregates: Maybe<_PoiAggregates>;\n  /** A list of edges which contains the `_Poi` and cursor to aid in pagination. */\n  readonly edges: ReadonlyArray<_PoisEdge>;\n  /** Grouped aggregates across the matching connection (ignoring before/after/first/last/offset) */\n  readonly groupedAggregates: Maybe<ReadonlyArray<_PoiAggregates>>;\n  /** A list of `_Poi` objects. */\n  readonly nodes: ReadonlyArray<Maybe<_Poi>>;\n  /** Information to aid in pagination. */\n  readonly pageInfo: PageInfo;\n  /** The count of *all* `_Poi` you could get from the connection. */\n  readonly totalCount: Scalars['Int']['output'];\n};\n\n/** A connection to a list of `_Poi` values. */\nexport type _PoisConnectionGroupedAggregatesArgs = {\n  groupBy: ReadonlyArray<_PoiGroupBy>;\n  having: InputMaybe<_PoiHavingInput>;\n};\n\n/** A `_Poi` edge in the connection. */\nexport type _PoisEdge = {\n  readonly __typename: '_PoisEdge';\n  /** A cursor for use in pagination. */\n  readonly cursor: Maybe<Scalars['Cursor']['output']>;\n  /** The `_Poi` at the end of the edge. */\n  readonly node: Maybe<_Poi>;\n};\n\n/** Methods to use when ordering `_Poi`. */\nexport enum _PoisOrderBy {\n  CHAIN_BLOCK_HASH_ASC = 'CHAIN_BLOCK_HASH_ASC',\n  CHAIN_BLOCK_HASH_DESC = 'CHAIN_BLOCK_HASH_DESC',\n  CREATED_AT_ASC = 'CREATED_AT_ASC',\n  CREATED_AT_DESC = 'CREATED_AT_DESC',\n  HASH_ASC = 'HASH_ASC',\n  HASH_DESC = 'HASH_DESC',\n  ID_ASC = 'ID_ASC',\n  ID_DESC = 'ID_DESC',\n  NATURAL = 'NATURAL',\n  OPERATION_HASH_ROOT_ASC = 'OPERATION_HASH_ROOT_ASC',\n  OPERATION_HASH_ROOT_DESC = 'OPERATION_HASH_ROOT_DESC',\n  PARENT_HASH_ASC = 'PARENT_HASH_ASC',\n  PARENT_HASH_DESC = 'PARENT_HASH_DESC',\n  PRIMARY_KEY_ASC = 'PRIMARY_KEY_ASC',\n  PRIMARY_KEY_DESC = 'PRIMARY_KEY_DESC',\n  UPDATED_AT_ASC = 'UPDATED_AT_ASC',\n  UPDATED_AT_DESC = 'UPDATED_AT_DESC',\n}\n\nexport enum _Poi_Distinct_Enum {\n  CHAINBLOCKHASH = 'CHAINBLOCKHASH',\n  CREATEDAT = 'CREATEDAT',\n  HASH = 'HASH',\n  ID = 'ID',\n  OPERATIONHASHROOT = 'OPERATIONHASHROOT',\n  PARENTHASH = 'PARENTHASH',\n  UPDATEDAT = 'UPDATEDAT',\n}\n\nexport enum Accepted_Offers_Distinct_Enum {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  LAST_EVENT = 'LAST_EVENT',\n  OFFER_ID = 'OFFER_ID',\n  SERVICE_AGREEMENT_ID = 'SERVICE_AGREEMENT_ID',\n}\n\nexport enum Airdrop_Amounts_Distinct_Enum {\n  CLAIMED_AMOUNT = 'CLAIMED_AMOUNT',\n  CREATE_AT = 'CREATE_AT',\n  ID = 'ID',\n  TOTAL_AIRDROP_AMOUNT = 'TOTAL_AIRDROP_AMOUNT',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Airdrop_Users_Distinct_Enum {\n  AIRDROP_ID = 'AIRDROP_ID',\n  AMOUNT = 'AMOUNT',\n  CREATE_AT = 'CREATE_AT',\n  ID = 'ID',\n  STATUS = 'STATUS',\n  UPDATE_AT = 'UPDATE_AT',\n  USER = 'USER',\n}\n\nexport enum Airdrops_Distinct_Enum {\n  CREATE_AT = 'CREATE_AT',\n  END_TIME = 'END_TIME',\n  HAS_WITHDRAWN = 'HAS_WITHDRAWN',\n  ID = 'ID',\n  START_TIME = 'START_TIME',\n  TOKEN_ADDRESS = 'TOKEN_ADDRESS',\n  UPDATE_AT = 'UPDATE_AT',\n  WITHDRAW_AMOUNT = 'WITHDRAW_AMOUNT',\n}\n\nexport enum Caches_Distinct_Enum {\n  ID = 'ID',\n  VALUE = 'VALUE',\n}\n\nexport enum Consumer_Controllers_Distinct_Enum {\n  CONSUMER = 'CONSUMER',\n  CONTROLLER = 'CONTROLLER',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport enum Consumer_Query_Reward_Summaries_Distinct_Enum {\n  CONSUMER = 'CONSUMER',\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  ORDER_TYPE = 'ORDER_TYPE',\n  PROJECT_ID = 'PROJECT_ID',\n  TOTAL_REFUNDED = 'TOTAL_REFUNDED',\n  TOTAL_SPENT = 'TOTAL_SPENT',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Consumer_Query_Rewards_Distinct_Enum {\n  CONSUMER = 'CONSUMER',\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  ORDER_ID = 'ORDER_ID',\n  ORDER_TYPE = 'ORDER_TYPE',\n  PROJECT_ID = 'PROJECT_ID',\n  REFUNDED = 'REFUNDED',\n  SPENT = 'SPENT',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Controllers_Distinct_Enum {\n  CONTROLLER = 'CONTROLLER',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  IS_ACTIVE = 'IS_ACTIVE',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport enum Delegations_Distinct_Enum {\n  AMOUNT = 'AMOUNT',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  EXIT_ERA = 'EXIT_ERA',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport enum Delegators_Distinct_Enum {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  EXIT_ERA = 'EXIT_ERA',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  START_ERA = 'START_ERA',\n  TOTAL_DELEGATIONS = 'TOTAL_DELEGATIONS',\n}\n\nexport enum Deployment_Booster_Summaries_Distinct_Enum {\n  CONSUMER = 'CONSUMER',\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  PROJECT_ID = 'PROJECT_ID',\n  TOTAL_ADDED = 'TOTAL_ADDED',\n  TOTAL_AMOUNT = 'TOTAL_AMOUNT',\n  TOTAL_REMOVED = 'TOTAL_REMOVED',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Deployment_Boosters_Distinct_Enum {\n  AMOUNT_ADDED = 'AMOUNT_ADDED',\n  AMOUNT_REMOVED = 'AMOUNT_REMOVED',\n  CONSUMER = 'CONSUMER',\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  PROJECT_ID = 'PROJECT_ID',\n}\n\nexport enum Deployments_Distinct_Enum {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  CREATED_TIMESTAMP = 'CREATED_TIMESTAMP',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  METADATA = 'METADATA',\n  PROJECT_ID = 'PROJECT_ID',\n}\n\nexport enum Disputes_Distinct_Enum {\n  DISPUTE_TYPE = 'DISPUTE_TYPE',\n  FISHERMAN = 'FISHERMAN',\n  ID = 'ID',\n  IS_FINALIZED = 'IS_FINALIZED',\n  RETURN_AMOUNT = 'RETURN_AMOUNT',\n  RUNNER = 'RUNNER',\n  SLASH_AMOUNT = 'SLASH_AMOUNT',\n  STATE = 'STATE',\n}\n\nexport enum Era_Delegator_Apies_Distinct_Enum {\n  APY = 'APY',\n  CREATE_AT = 'CREATE_AT',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  REWARD = 'REWARD',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Era_Delegator_Indexer_Apies_Distinct_Enum {\n  APY = 'APY',\n  CREATE_AT = 'CREATE_AT',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  REWARD = 'REWARD',\n  STAKE = 'STAKE',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Era_Delegator_Indexers_Distinct_Enum {\n  DELEGATOR = 'DELEGATOR',\n  ERA = 'ERA',\n  ID = 'ID',\n  INDEXERS = 'INDEXERS',\n  SELF_STAKE = 'SELF_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport enum Era_Deployment_Rewards_Distinct_Enum {\n  AGREEMENT_REWARDS = 'AGREEMENT_REWARDS',\n  ALLOCATION_REWARDS = 'ALLOCATION_REWARDS',\n  CHANGES_HEIGHT = 'CHANGES_HEIGHT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  QUERY_REWARDS = 'QUERY_REWARDS',\n  STATE_CHANNEL_REWARDS = 'STATE_CHANNEL_REWARDS',\n  TOTAL_REWARDS = 'TOTAL_REWARDS',\n}\n\nexport enum Era_Indexer_Apies_Distinct_Enum {\n  CREATE_AT = 'CREATE_AT',\n  DELEGATOR_APY = 'DELEGATOR_APY',\n  DELEGATOR_REWARD = 'DELEGATOR_REWARD',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_APY = 'INDEXER_APY',\n  INDEXER_ID = 'INDEXER_ID',\n  INDEXER_REWARD = 'INDEXER_REWARD',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Era_Indexer_Delegators_Distinct_Enum {\n  DELEGATORS = 'DELEGATORS',\n  ERA = 'ERA',\n  ID = 'ID',\n  INDEXER = 'INDEXER',\n  SELF_STAKE = 'SELF_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport enum Era_Indexer_Deployment_Apies_Distinct_Enum {\n  AGREEMENT_REWARD = 'AGREEMENT_REWARD',\n  ALLOCATION_REWARD = 'ALLOCATION_REWARD',\n  APY = 'APY',\n  APY_CALC_ADDED = 'APY_CALC_ADDED',\n  APY_CALC_ALLOCATION = 'APY_CALC_ALLOCATION',\n  APY_CALC_ALLOCATION_RECORD_AT = 'APY_CALC_ALLOCATION_RECORD_AT',\n  APY_CALC_HISTORY = 'APY_CALC_HISTORY',\n  APY_CALC_REMOVAL = 'APY_CALC_REMOVAL',\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  FLEX_PLAN_REWARD = 'FLEX_PLAN_REWARD',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Era_Reward_Claimeds_Distinct_Enum {\n  ID = 'ID',\n  LAST_CLAIMED_ERA = 'LAST_CLAIMED_ERA',\n}\n\nexport enum Era_Rewards_Distinct_Enum {\n  AMOUNT = 'AMOUNT',\n  CLAIMED = 'CLAIMED',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  CREATED_TIMESTAMP = 'CREATED_TIMESTAMP',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  IS_COMMISSION = 'IS_COMMISSION',\n  IS_INDEXER = 'IS_INDEXER',\n}\n\nexport enum Era_Stake_Updates_Distinct_Enum {\n  ID = 'ID',\n  LAST_UPDATE_ERA_ID = 'LAST_UPDATE_ERA_ID',\n}\n\nexport enum Era_Stakes_Distinct_Enum {\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  STAKE = 'STAKE',\n}\n\nexport enum Eras_Distinct_Enum {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  END_TIME = 'END_TIME',\n  ERA_PERIOD = 'ERA_PERIOD',\n  FORCE_NEXT = 'FORCE_NEXT',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  START_TIME = 'START_TIME',\n}\n\nexport enum Exceptions_Distinct_Enum {\n  ERROR = 'ERROR',\n  HANDLER = 'HANDLER',\n  ID = 'ID',\n}\n\nexport enum Indexer_Allocation_Overflows_Distinct_Enum {\n  CREATE_AT = 'CREATE_AT',\n  ERA_IDX_END = 'ERA_IDX_END',\n  ERA_IDX_START = 'ERA_IDX_START',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  OVERFLOW_END = 'OVERFLOW_END',\n  OVERFLOW_START = 'OVERFLOW_START',\n  OVERFLOW_TIME = 'OVERFLOW_TIME',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Indexer_Allocation_Reward_Summaries_Distinct_Enum {\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  PROJECT_ID = 'PROJECT_ID',\n  TOTAL_BURNT = 'TOTAL_BURNT',\n  TOTAL_REWARD = 'TOTAL_REWARD',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Indexer_Allocation_Rewards_Distinct_Enum {\n  BURNT = 'BURNT',\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  PROJECT_ID = 'PROJECT_ID',\n  REWARD = 'REWARD',\n}\n\nexport enum Indexer_Allocation_Summaries_Distinct_Enum {\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  PROJECT_ID = 'PROJECT_ID',\n  TOTAL_ADDED = 'TOTAL_ADDED',\n  TOTAL_AMOUNT = 'TOTAL_AMOUNT',\n  TOTAL_REMOVED = 'TOTAL_REMOVED',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Indexer_Allocations_Distinct_Enum {\n  AMOUNT_ADDED = 'AMOUNT_ADDED',\n  AMOUNT_REMOVED = 'AMOUNT_REMOVED',\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  PROJECT_ID = 'PROJECT_ID',\n}\n\nexport enum Indexer_Apy_Summaries_Distinct_Enum {\n  CREATE_AT = 'CREATE_AT',\n  DELEGATOR_APY = 'DELEGATOR_APY',\n  DELEGATOR_REWARD = 'DELEGATOR_REWARD',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_APY = 'INDEXER_APY',\n  INDEXER_ID = 'INDEXER_ID',\n  INDEXER_REWARD = 'INDEXER_REWARD',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Indexer_Commission_Rates_Distinct_Enum {\n  COMMISSION_RATE = 'COMMISSION_RATE',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n}\n\nexport enum Indexer_Deployments_Distinct_Enum {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  LAST_EVENT = 'LAST_EVENT',\n  STATUS = 'STATUS',\n  TIMESTAMP = 'TIMESTAMP',\n}\n\nexport enum Indexer_Era_Deployment_Rewards_Distinct_Enum {\n  AGREEMENT_REWARDS = 'AGREEMENT_REWARDS',\n  ALLOCATION_REWARDS = 'ALLOCATION_REWARDS',\n  CHANGES_HEIGHT = 'CHANGES_HEIGHT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  QUERY_REWARDS = 'QUERY_REWARDS',\n  STATE_CHANNEL_REWARDS = 'STATE_CHANNEL_REWARDS',\n  TOTAL_REWARDS = 'TOTAL_REWARDS',\n}\n\nexport enum Indexer_Labor_Histories_Distinct_Enum {\n  AMOUNT = 'AMOUNT',\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n}\n\nexport enum Indexer_Latest_Allocation_Overflows_Distinct_Enum {\n  CREATE_AT = 'CREATE_AT',\n  ID = 'ID',\n  OVERFLOW_ID_ID = 'OVERFLOW_ID_ID',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Indexer_Missed_Labors_Distinct_Enum {\n  CREATE_AT = 'CREATE_AT',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  MISSED_LABOR = 'MISSED_LABOR',\n}\n\nexport enum Indexer_Rewards_Distinct_Enum {\n  AMOUNT = 'AMOUNT',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport enum Indexer_Stake_Summaries_Distinct_Enum {\n  DELEGATOR_STAKE = 'DELEGATOR_STAKE',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_STAKE = 'INDEXER_STAKE',\n  NEXT_DELEGATOR_STAKE = 'NEXT_DELEGATOR_STAKE',\n  NEXT_INDEXER_STAKE = 'NEXT_INDEXER_STAKE',\n  NEXT_TOTAL_STAKE = 'NEXT_TOTAL_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport enum Indexer_Stake_Weights_Distinct_Enum {\n  CREATE_AT = 'CREATE_AT',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  UPDATE_AT = 'UPDATE_AT',\n  WEIGHT = 'WEIGHT',\n}\n\nexport enum Indexer_Stakes_Distinct_Enum {\n  DELEGATOR_STAKE = 'DELEGATOR_STAKE',\n  ERA_ID = 'ERA_ID',\n  ERA_IDX = 'ERA_IDX',\n  ID = 'ID',\n  INDEXER_ID = 'INDEXER_ID',\n  INDEXER_STAKE = 'INDEXER_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport enum Indexers_Distinct_Enum {\n  ACTIVE = 'ACTIVE',\n  CAPACITY = 'CAPACITY',\n  COMMISSION = 'COMMISSION',\n  CONTROLLER = 'CONTROLLER',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  LAST_CLAIM_ERA = 'LAST_CLAIM_ERA',\n  LAST_EVENT = 'LAST_EVENT',\n  LAST_SETTLED_ERA = 'LAST_SETTLED_ERA',\n  MAX_UNSTAKE_AMOUNT = 'MAX_UNSTAKE_AMOUNT',\n  METADATA = 'METADATA',\n  SELF_STAKE = 'SELF_STAKE',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport enum Offers_Distinct_Enum {\n  ACCEPTED = 'ACCEPTED',\n  CONSUMER = 'CONSUMER',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  DEPOSIT = 'DEPOSIT',\n  EXPIRE_DATE = 'EXPIRE_DATE',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  LIMIT = 'LIMIT',\n  MINIMUM_ACCEPT_HEIGHT = 'MINIMUM_ACCEPT_HEIGHT',\n  MINIMUM_STAKING_AMOUNT = 'MINIMUM_STAKING_AMOUNT',\n  PLAN_TEMPLATE_ID = 'PLAN_TEMPLATE_ID',\n  REACH_LIMIT = 'REACH_LIMIT',\n  WITHDRAWN = 'WITHDRAWN',\n  WITHDRAW_PENALTY = 'WITHDRAW_PENALTY',\n}\n\nexport enum Orders_Distinct_Enum {\n  AMOUNT_GET = 'AMOUNT_GET',\n  AMOUNT_GIVE = 'AMOUNT_GIVE',\n  CREATE_AT = 'CREATE_AT',\n  ID = 'ID',\n  SENDER = 'SENDER',\n  STATUS = 'STATUS',\n  TOKEN_GET = 'TOKEN_GET',\n  TOKEN_GIVE = 'TOKEN_GIVE',\n  TOKEN_GIVE_BALANCE = 'TOKEN_GIVE_BALANCE',\n  UPDATE_AT = 'UPDATE_AT',\n}\n\nexport enum Plan_Templates_Distinct_Enum {\n  ACTIVE = 'ACTIVE',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DAILY_REQ_CAP = 'DAILY_REQ_CAP',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  METADATA = 'METADATA',\n  PERIOD = 'PERIOD',\n  PRICE_TOKEN = 'PRICE_TOKEN',\n  RATE_LIMIT = 'RATE_LIMIT',\n}\n\nexport enum Plans_Distinct_Enum {\n  ACTIVE = 'ACTIVE',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  CREATOR = 'CREATOR',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  PLAN_TEMPLATE_ID = 'PLAN_TEMPLATE_ID',\n  PRICE = 'PRICE',\n}\n\nexport enum Price_Oracles_Distinct_Enum {\n  AFTER_PRICE = 'AFTER_PRICE',\n  BEFORE_PRICE = 'BEFORE_PRICE',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  FROM_TOKEN = 'FROM_TOKEN',\n  ID = 'ID',\n  TO_TOKEN = 'TO_TOKEN',\n}\n\nexport enum Projects_Distinct_Enum {\n  BOOST_ALLOCATION_RATIO = 'BOOST_ALLOCATION_RATIO',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  CREATED_TIMESTAMP = 'CREATED_TIMESTAMP',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  DEPLOYMENT_METADATA = 'DEPLOYMENT_METADATA',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  METADATA = 'METADATA',\n  OWNER = 'OWNER',\n  TOTAL_ALLOCATION = 'TOTAL_ALLOCATION',\n  TOTAL_BOOST = 'TOTAL_BOOST',\n  TOTAL_REWARD = 'TOTAL_REWARD',\n  TYPE = 'TYPE',\n  UPDATED_TIMESTAMP = 'UPDATED_TIMESTAMP',\n}\n\nexport enum Rewards_Distinct_Enum {\n  AMOUNT = 'AMOUNT',\n  CLAIMED_TIME = 'CLAIMED_TIME',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DELEGATOR_ADDRESS = 'DELEGATOR_ADDRESS',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ID = 'ID',\n  INDEXER_ADDRESS = 'INDEXER_ADDRESS',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport enum Service_Agreements_Distinct_Enum {\n  CONSUMER_ADDRESS = 'CONSUMER_ADDRESS',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  END_TIME = 'END_TIME',\n  ID = 'ID',\n  INDEXER_ADDRESS = 'INDEXER_ADDRESS',\n  LAST_EVENT = 'LAST_EVENT',\n  LOCKED_AMOUNT = 'LOCKED_AMOUNT',\n  PERIOD = 'PERIOD',\n  PLAN_TEMPLATE_ID = 'PLAN_TEMPLATE_ID',\n  START_TIME = 'START_TIME',\n}\n\nexport enum Sqtokens_Distinct_Enum {\n  CIRCULATING_SUPPLY = 'CIRCULATING_SUPPLY',\n  ID = 'ID',\n  TOTAL_SUPPLY = 'TOTAL_SUPPLY',\n}\n\nexport enum State_Channels_Distinct_Enum {\n  AGENT = 'AGENT',\n  CONSUMER = 'CONSUMER',\n  DEPLOYMENT_ID = 'DEPLOYMENT_ID',\n  EXPIRED_AT = 'EXPIRED_AT',\n  ID = 'ID',\n  INDEXER = 'INDEXER',\n  IS_FINAL = 'IS_FINAL',\n  LAST_EVENT = 'LAST_EVENT',\n  PRICE = 'PRICE',\n  REAL_TOTAL = 'REAL_TOTAL',\n  SPENT = 'SPENT',\n  START_TIME = 'START_TIME',\n  STATUS = 'STATUS',\n  TERMINATED_AT = 'TERMINATED_AT',\n  TERMINATE_BY_INDEXER = 'TERMINATE_BY_INDEXER',\n  TOTAL = 'TOTAL',\n}\n\nexport enum Token_Holders_Distinct_Enum {\n  BALANCE = 'BALANCE',\n  ID = 'ID',\n  TOKEN_ID = 'TOKEN_ID',\n}\n\nexport enum Total_Locks_Distinct_Enum {\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  ID = 'ID',\n  LAST_EVENT = 'LAST_EVENT',\n  TOTAL_DELEGATION = 'TOTAL_DELEGATION',\n  TOTAL_STAKE = 'TOTAL_STAKE',\n}\n\nexport enum Transfers_Distinct_Enum {\n  AMOUNT = 'AMOUNT',\n  BLOCKHEIGHT = 'BLOCKHEIGHT',\n  FROM = 'FROM',\n  ID = 'ID',\n  TIMESTAMP = 'TIMESTAMP',\n  TO = 'TO',\n  TX_HASH = 'TX_HASH',\n}\n\nexport enum Unclaimed_Rewards_Distinct_Enum {\n  AMOUNT = 'AMOUNT',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DELEGATOR_ADDRESS = 'DELEGATOR_ADDRESS',\n  DELEGATOR_ID = 'DELEGATOR_ID',\n  ID = 'ID',\n  INDEXER_ADDRESS = 'INDEXER_ADDRESS',\n  LAST_EVENT = 'LAST_EVENT',\n}\n\nexport enum Withdrawls_Distinct_Enum {\n  AMOUNT = 'AMOUNT',\n  CREATED_BLOCK = 'CREATED_BLOCK',\n  DELEGATOR = 'DELEGATOR',\n  ID = 'ID',\n  INDEX = 'INDEX',\n  INDEXER = 'INDEXER',\n  LAST_EVENT = 'LAST_EVENT',\n  START_TIME = 'START_TIME',\n  STATUS = 'STATUS',\n  TYPE = 'TYPE',\n}\n\nexport enum Withdraws_Distinct_Enum {\n  AMOUNT = 'AMOUNT',\n  BLOCKHEIGHT = 'BLOCKHEIGHT',\n  CREATE_AT = 'CREATE_AT',\n  ID = 'ID',\n  SENDER = 'SENDER',\n  TX_HASH = 'TX_HASH',\n}\n\nexport type GetProjectDeploymentsQueryVariables = Exact<{\n  projectId: Scalars['String']['input'];\n}>;\n\nexport type GetProjectDeploymentsQuery = {\n  readonly project: {\n    readonly __typename: 'Project';\n    readonly deploymentId: string;\n    readonly deployments: {\n      readonly __typename: 'DeploymentsConnection';\n      readonly nodes: ReadonlyArray<{\n        readonly __typename: 'Deployment';\n        readonly id: string;\n        readonly metadata: string;\n        readonly createdTimestamp: Date;\n        readonly createdBlock: number | null;\n      } | null>;\n    };\n  } | null;\n};\n\nexport type GetDeploymentIndexersQueryVariables = Exact<{\n  deploymentId: Scalars['String']['input'];\n}>;\n\nexport type GetDeploymentIndexersQuery = {\n  readonly deployment: {\n    readonly __typename: 'Deployment';\n    readonly id: string;\n    readonly indexers: {\n      readonly __typename: 'IndexerDeploymentsConnection';\n      readonly nodes: ReadonlyArray<{\n        readonly __typename: 'IndexerDeployment';\n        readonly indexerId: string;\n        readonly status: ServiceStatus;\n        readonly indexer: {readonly __typename: 'Indexer'; readonly metadata: string} | null;\n      } | null>;\n    };\n  } | null;\n};\n\nexport type GetDeploymentBoostQueryVariables = Exact<{\n  deploymentId: Scalars['String']['input'];\n}>;\n\nexport type GetDeploymentBoostQuery = {\n  readonly deploymentBoosterSummaries: {\n    readonly __typename: 'DeploymentBoosterSummariesConnection';\n    readonly aggregates: {\n      readonly __typename: 'DeploymentBoosterSummaryAggregates';\n      readonly sum: {readonly __typename: 'DeploymentBoosterSummarySumAggregates'; readonly totalAmount: string} | null;\n    } | null;\n    readonly nodes: ReadonlyArray<{\n      readonly __typename: 'DeploymentBoosterSummary';\n      readonly consumer: string;\n      readonly totalAmount: string;\n    } | null>;\n  } | null;\n};\n\nexport type GetAccountBoostQueryVariables = Exact<{\n  address: Scalars['String']['input'];\n}>;\n\nexport type GetAccountBoostQuery = {\n  readonly deploymentBoosterSummaries: {\n    readonly __typename: 'DeploymentBoosterSummariesConnection';\n    readonly aggregates: {\n      readonly __typename: 'DeploymentBoosterSummaryAggregates';\n      readonly sum: {readonly __typename: 'DeploymentBoosterSummarySumAggregates'; readonly totalAmount: string} | null;\n    } | null;\n    readonly nodes: ReadonlyArray<{\n      readonly __typename: 'DeploymentBoosterSummary';\n      readonly totalAmount: string;\n      readonly deploymentId: string;\n      readonly deployment: {readonly __typename: 'Deployment'; readonly metadata: string} | null;\n      readonly project: {readonly __typename: 'Project'; readonly id: string; readonly metadata: string} | null;\n    } | null>;\n  } | null;\n};\n\nexport type GetProjectsQueryVariables = Exact<{\n  address: Scalars['String']['input'];\n}>;\n\nexport type GetProjectsQuery = {\n  readonly projects: {\n    readonly __typename: 'ProjectsConnection';\n    readonly nodes: ReadonlyArray<{\n      readonly __typename: 'Project';\n      readonly id: string;\n      readonly owner: string;\n      readonly metadata: string;\n      readonly totalAllocation: string;\n      readonly totalBoost: string;\n      readonly totalReward: string;\n      readonly type: ProjectType;\n      readonly deploymentId: string;\n    } | null>;\n  } | null;\n};\n"
  },
  {
    "path": "packages/cli/src/controller/network/__graphql__/network/deployments.generated.ts",
    "content": "import * as Types from '../base-types';\n\nimport gql from 'graphql-tag';\n\nexport const GetProjectDeployments = gql`\n  query GetProjectDeployments($projectId: String!) {\n    project(id: $projectId) {\n      deploymentId\n      deployments(orderBy: CREATED_TIMESTAMP_DESC) {\n        nodes {\n          id\n          metadata\n          createdTimestamp\n          createdBlock\n        }\n      }\n    }\n  }\n`;\nexport const GetDeploymentIndexers = gql`\n  query GetDeploymentIndexers($deploymentId: String!) {\n    deployment(id: $deploymentId) {\n      id\n      indexers(orderBy: ID_ASC, filter: {status: {notEqualTo: TERMINATED}}) {\n        nodes {\n          indexerId\n          status\n          indexer {\n            metadata\n          }\n        }\n      }\n    }\n  }\n`;\n"
  },
  {
    "path": "packages/cli/src/controller/network/__graphql__/network/deploymentsBooster.generated.ts",
    "content": "import * as Types from '../base-types';\n\nimport gql from 'graphql-tag';\n\nexport const GetDeploymentBoost = gql`\n  query GetDeploymentBoost($deploymentId: String!) {\n    deploymentBoosterSummaries(\n      filter: {and: {deploymentId: {equalTo: $deploymentId}, totalAmount: {greaterThan: \"0\"}}}\n    ) {\n      aggregates {\n        sum {\n          totalAmount\n        }\n      }\n      nodes {\n        consumer\n        totalAmount\n      }\n    }\n  }\n`;\nexport const GetAccountBoost = gql`\n  query GetAccountBoost($address: String!) {\n    deploymentBoosterSummaries(\n      filter: {and: {consumer: {equalTo: $address}, totalAmount: {greaterThan: \"0\"}}}\n      orderBy: PROJECT_ID_ASC\n    ) {\n      aggregates {\n        sum {\n          totalAmount\n        }\n      }\n      nodes {\n        totalAmount\n        deploymentId\n        deployment {\n          metadata\n        }\n        project {\n          id\n          metadata\n        }\n      }\n    }\n  }\n`;\n"
  },
  {
    "path": "packages/cli/src/controller/network/__graphql__/network/flexPlan.generated.ts",
    "content": "import * as Types from '../base-types';\n\nimport gql from 'graphql-tag';\n\nexport const GetFlexPlans = gql`\n  query GetFlexPlans($address: String!) {\n    plans(filter: {and: {active: {equalTo: true}, creator: {equalTo: $address}}}, orderBy: ID_ASC) {\n      totalCount\n      nodes {\n        id\n        price\n        deploymentId\n        deployment {\n          metadata\n          project {\n            id\n            metadata\n          }\n        }\n        planTemplate {\n          period\n          dailyReqCap\n          rateLimit\n          priceToken\n          metadata\n        }\n      }\n    }\n  }\n`;\n"
  },
  {
    "path": "packages/cli/src/controller/network/__graphql__/network/projects.generated.ts",
    "content": "import * as Types from '../base-types';\n\nimport gql from 'graphql-tag';\n\nexport const GetProjects = gql`\n  query GetProjects($address: String!) {\n    projects(filter: {owner: {equalTo: $address}}, orderBy: ID_ASC) {\n      nodes {\n        id\n        owner\n        metadata\n        totalAllocation\n        totalBoost\n        totalReward\n        type\n        deploymentId\n      }\n    }\n  }\n`;\n"
  },
  {
    "path": "packages/cli/src/controller/network/constants.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {JsonRpcProvider, Provider} from '@ethersproject/providers';\nimport {formatUnits} from '@ethersproject/units';\nimport {Wallet} from '@ethersproject/wallet';\nimport {ProjectType, ContractSDK, networks} from '@subql/contract-sdk';\nimport {GraphqlQueryClient} from '@subql/network-clients/dist/clients/queryClient';\nimport {NETWORK_CONFIGS, SQNetworks, SQT_DECIMAL} from '@subql/network-config';\nimport {base58Decode} from '@subql/utils';\nimport {BigNumberish, ContractReceipt, ContractTransaction, Signer} from 'ethers';\nimport {z} from 'zod';\nimport {Logger} from '../../adapters/utils';\nimport {ProjectType as ProjectTypeGql} from './__graphql__/base-types';\nimport {NO_EXISTING_CONN_ERROR, walletConnectSigner} from './walletconnect-signer';\n\nexport const WALLET_DOMAIN = 'app.subquery.network';\n\nexport function getQueryClient(network: SQNetworks) {\n  return new GraphqlQueryClient(NETWORK_CONFIGS[network]).networkClient;\n}\n\nexport const networkNames = Object.keys(networks) as [SQNetworks, ...SQNetworks[]];\nexport const networkNameSchema = z\n  .enum<SQNetworks, typeof networkNames>(networkNames, {description: 'The network to check.'})\n  .default(networkNames[0]);\n\ntype ProjectTypeString = keyof typeof ProjectType;\nexport const projectTypes = Object.keys(ProjectType) as [ProjectTypeString, ...ProjectTypeString[]];\nexport const projectTypeSchema = z.enum<ProjectTypeString, [ProjectTypeString, ...ProjectTypeString[]]>(projectTypes);\n\nexport function gqlProjectTypeToProjectType(projectType: ProjectTypeGql): ProjectType {\n  switch (projectType) {\n    case ProjectTypeGql.SUBQUERY:\n      return ProjectType.SUBQUERY;\n    case ProjectTypeGql.SQ_DICT:\n      return ProjectType.SQ_DICT;\n    case ProjectTypeGql.SUBGRAPH:\n      return ProjectType.SUBGRAPH;\n    case ProjectTypeGql.RPC:\n      return ProjectType.RPC;\n    default:\n      // TODO graphql has a LLM type but network SDK does not\n      throw new Error(`Unsupported project type: ${projectType}`);\n  }\n}\n\nexport async function getRpcProvider(network: SQNetworks, rpcUrl?: string): Promise<JsonRpcProvider> {\n  const config = NETWORK_CONFIGS[network];\n  const endpoint = rpcUrl ?? config.defaultEndpoint;\n\n  if (!endpoint) {\n    throw new Error(`No predefined RPC URL for network ${network}. Please provide a custom RPC URL.`);\n  }\n  const provider = new JsonRpcProvider(endpoint);\n\n  await provider.ready;\n\n  return provider;\n}\n\nexport async function getSignerOrProvider(\n  network: SQNetworks,\n  logger: Logger,\n  rpcUrl?: string,\n  allowNewWalletConnect = false\n): Promise<Signer | Provider> {\n  const provider = await getRpcProvider(network, rpcUrl);\n  const privateKey = process.env.SUBQL_PRIVATE_KEY;\n  if (privateKey) {\n    return new Wallet(privateKey, provider);\n  }\n\n  const signer = walletConnectSigner.getInstance(provider, logger, allowNewWalletConnect);\n\n  // Will return wallet connect if there is an existing connection, otherwise the provider\n  try {\n    await signer.getAddress();\n    return signer;\n  } catch (e: any) {\n    if (e === NO_EXISTING_CONN_ERROR) {\n      return provider;\n    }\n    throw e;\n  }\n}\n\nexport function isSigner(signerOrProvider: Signer | Provider): signerOrProvider is Signer {\n  return typeof (signerOrProvider as Signer).getAddress === 'function';\n}\n\nexport function getContractSDK(signerOrProvider: Signer | Provider, network: SQNetworks): ContractSDK {\n  return new ContractSDK(signerOrProvider, {network});\n}\n\nexport function requireSigner(signerOrProvider: Signer | Provider): asserts signerOrProvider is Signer {\n  if (!isSigner(signerOrProvider)) {\n    throw new Error(\n      'A wallet is required for this. Please provide a private key via environment variables or enable Wallet Connect.'\n    );\n  }\n}\n\nexport async function resolveAddress(\n  network: SQNetworks,\n  logger: Logger,\n  rpcUrl?: string,\n  address?: string,\n  allowNewWalletConnect = false\n): Promise<string> {\n  if (address) return address;\n\n  const signerOrProvider = await getSignerOrProvider(network, logger, rpcUrl, allowNewWalletConnect);\n  requireSigner(signerOrProvider);\n\n  return signerOrProvider.getAddress();\n}\n\nexport function cidToBytes32(cid: string): string {\n  let bytes: Uint8Array;\n  try {\n    bytes = base58Decode(cid);\n  } catch (e) {\n    throw new Error('Invalid CID: failed to decode base58 string', {cause: e});\n  }\n  return `0x${Buffer.from(bytes).subarray(2).toString('hex')}`;\n}\n\nexport const projectMetadataSchema = z\n  .object({\n    name: z.string(),\n    image: z.string().optional(),\n    description: z.string().default('').optional(),\n    websiteUrl: z.string().optional(), // URL\n    codeUrl: z.string().optional(), // URL\n    versionDescription: z.string().default('').optional(),\n    version: z.string().optional(),\n    categories: z.array(z.string()).max(2),\n  })\n  .catchall(z.string());\nexport type ProjectMetadata = z.infer<typeof projectMetadataSchema>;\n\nexport const deploymentMetadataSchema = z\n  .object({\n    version: z.string(), // TODO lock to semver\n    description: z.string({description: 'Description of this deployment.'}),\n    // These fields never seem to be set: https://github.com/subquery/network-app/blob/main/src/hooks/useCreateProject.tsx#L28-L31\n    // websiteUrl: z.string({description: 'Url to the project website'}),\n    // codeUrl: z.string({description: 'Url to where the source code for this deployment is'}),\n  })\n  .catchall(z.string());\nexport type DeploymentMetadata = z.infer<typeof deploymentMetadataSchema>;\n\nexport async function checkTransactionSuccess(transaction: ContractTransaction): Promise<ContractReceipt> {\n  const receipt = await transaction.wait();\n  if (receipt.status) {\n    return receipt;\n  }\n  throw new Error(`Transaction failed. Hash=\"${transaction.hash}\"`);\n}\n\nexport function formatSQT(amount: BigNumberish, places = SQT_DECIMAL, symbol = 'SQT'): string {\n  return `${formatUnits(amount, places).slice(0, 10)} ${symbol}`;\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/consumer-host/client.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {SQNetworks} from '@subql/network-config';\nimport {IKeyValueStorage} from '@walletconnect/keyvaluestorage';\nimport {Signer, utils} from 'ethers';\nimport {SiweMessage, generateNonce} from 'siwe';\nimport {Logger} from '../../../adapters/utils';\nimport {CONSUMER_HOST_STORE_PATH} from '../../../constants';\nimport {WALLET_DOMAIN} from '../constants';\nimport {JSONFileStorage} from '../json-file-store';\nimport {NetworkConsumerHostServiceApi, RequestParams} from './consumer-host-service-api';\nimport {\n  ApiKey,\n  convertApiKey,\n  convertHostingPlan,\n  convertHostingPlanExtra,\n  HostingPlan,\n  HostingPlanExtra,\n} from './schemas';\n\nconst endpoints = {\n  [SQNetworks.MAINNET]: 'https://chs.subquery.network',\n  [SQNetworks.TESTNET]: 'https://chs.thechaindata.com',\n  [SQNetworks.LOCAL]: 'http://localhost:8010', // Assuming local development\n};\n\nexport class ConsumerHostClient {\n  #network: SQNetworks;\n  #api: NetworkConsumerHostServiceApi<unknown>;\n  #tokenStore: IKeyValueStorage;\n  #authToken?: string;\n\n  /**\n   * Creates and authenticates a new ConsumerHostClient instance.\n   */\n  static async create(\n    network: SQNetworks,\n    signer: Signer,\n    logger: Logger,\n    tokenStore = new JSONFileStorage(CONSUMER_HOST_STORE_PATH)\n  ): Promise<ConsumerHostClient> {\n    const endpoint = endpoints[network];\n    if (!endpoints) {\n      throw new Error(`Unsupported network: ${network}. Supported networks are: ${Object.keys(endpoints).join(', ')}`);\n    }\n    const client = new ConsumerHostClient(network, endpoint, tokenStore);\n\n    await client.requestLoginToken(signer, logger);\n\n    return client;\n  }\n\n  constructor(network: SQNetworks, endpoint: string, tokenStore: IKeyValueStorage) {\n    this.#network = network;\n    this.#api = new NetworkConsumerHostServiceApi({\n      baseUrl: endpoint,\n    });\n    this.#tokenStore = tokenStore;\n  }\n\n  async requestLoginToken(signer: Signer, logger?: Logger): Promise<void> {\n    if (this.#authToken) return;\n    const address = await signer.getAddress();\n    const storeKey = `${this.#network}:${address}`;\n    const existingToken = await this.#tokenStore.getItem(storeKey);\n    if (existingToken) {\n      // This needs to be set in order for the API calls to work\n      this.#authToken = existingToken;\n      const workingKey = await this.getAPIKeys().then(\n        () => true,\n        () => false\n      );\n      if (workingKey) {\n        return;\n      }\n      // Existing token doesn't work, request a new one\n      await this.#tokenStore.removeItem(storeKey);\n      this.#authToken = undefined;\n    }\n\n    const chainId = await signer.getChainId();\n    const newMsg = new SiweMessage({\n      domain: WALLET_DOMAIN, //'subquery.network', // Hard coded domains on the service, this gives an alert in metamask as the domain is not the same as in Wallet Connect\n      address: utils.getAddress(address),\n      statement: `Login to SubQuery Network`, // TODO can this be changed?\n      uri: 'https://subquery.network',\n      version: '1',\n      chainId,\n      nonce: generateNonce(),\n    });\n\n    const msg = newMsg.prepareMessage();\n\n    logger?.info(`Please sign a message in your wallet to continue.`);\n    const signature = await signer.signMessage(msg);\n\n    const res = await this.#api.login.authControllerUserToken(\n      {\n        message: msg,\n        signature,\n      },\n      {format: 'json'}\n    );\n\n    if (!res.ok) {\n      console.error(`Login failed: ${res.statusText}, ${res.text}`);\n      throw new Error(`Failed to login: ${res.error}`);\n    }\n\n    this.#isError(res.data);\n\n    const {token} = res.data;\n\n    if (!token) {\n      throw new Error('Unable to get token');\n    }\n\n    this.#authToken = token;\n    await this.#tokenStore.setItem(storeKey, token);\n  }\n\n  async createPlan(deploymentId: string, price: bigint): Promise<HostingPlan> {\n    const res = await this.#api.users.hostingPlanControllerCreate(\n      {\n        deploymentId: deploymentId,\n        price: price.toString(),\n        // expiration: 3600 * 24 * 14, // 14 days in seconds, this has been picked from a default value in the front end\n        // maximum: 2, // Unused according to the front end\n      },\n      this.#getRequestParams()\n    );\n\n    this.#isError(res.data);\n\n    return convertHostingPlan(res.data);\n  }\n\n  async updatePlan(planId: number, price: string, expiration: number): Promise<HostingPlan> {\n    const res = await this.#api.users.hostingPlanControllerEdit(planId, {price, expiration}, this.#getRequestParams());\n\n    this.#isError(res.data);\n\n    return convertHostingPlan(res.data);\n  }\n\n  async listPlans(): Promise<HostingPlanExtra[]> {\n    const res = await this.#api.users.hostingPlanControllerIndex(this.#getRequestParams());\n\n    this.#isError(res.data);\n\n    return res.data.map((p) => convertHostingPlanExtra(p));\n  }\n\n  async getAPIKeys(): Promise<ApiKey[]> {\n    const res = await this.#api.users.userControllerApikeyIndex(this.#getRequestParams());\n    this.#isError(res.data);\n\n    return res.data.map((key) => convertApiKey(key));\n  }\n\n  async newAPIKey(name: string): Promise<ApiKey> {\n    const res = await this.#api.users.userControllerApikeyCreate({name}, this.#getRequestParams());\n\n    this.#isError(res.data);\n\n    return convertApiKey(res.data);\n  }\n\n  async deleteAPIKey(id: number): Promise<void> {\n    const res = await this.#api.users.userControllerApikeyRemove(id, this.#getRequestParams());\n\n    this.#isError(res.data);\n  }\n\n  #getRequestParams(): RequestParams {\n    if (!this.#authToken) {\n      throw new Error('Authentication token is not set. Please call requestLoginToken first.');\n    }\n    return {\n      format: 'json',\n      headers: {\n        Authorization: `Bearer ${this.#authToken}`,\n      },\n    };\n  }\n\n  // The RPC behaves very strangely, it always returns 200 but the body can be an error.\n  #isError<T>(data: any): asserts data is T {\n    if (data.code && data.error) {\n      const error = new Error(data.error);\n      (error as any).code = data.code;\n      throw error;\n    }\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/consumer-host/consumer-host-service-api.ts",
    "content": "/* eslint-disable */\n/* tslint:disable */\n// @ts-nocheck\n/*\n * ---------------------------------------------------------------\n * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API        ##\n * ##                                                           ##\n * ## AUTHOR: acacode                                           ##\n * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##\n * ---------------------------------------------------------------\n */\n\nexport interface Payload {\n  /** The message that has a signature for it */\n  message?: string;\n  /** User signature */\n  signature?: string;\n}\n\nexport interface QueryToken {\n  /** User token */\n  token?: string;\n}\n\nexport interface QueryState {\n  /** @format U256 */\n  channel_id?: number;\n  /** Indexer address */\n  indexer?: string;\n  /** Consumer address */\n  consumer?: string;\n  /** @format U256 */\n  spent?: number;\n  /** @format U256 */\n  remote?: number;\n  is_final?: boolean;\n  indexer_sign?: string;\n  consumer_sign?: string;\n}\n\nexport interface Project {\n  /** @format i32 */\n  id: number;\n  /** Owner address */\n  owner: string;\n  /** Project metadata */\n  metadata: string;\n  is_actived: boolean;\n  /** create timestamp */\n  created_at: string;\n  /** update timestamp */\n  updated_at: string;\n  ptype: number;\n}\n\nexport interface Deployment {\n  /** @format i32 */\n  id: number;\n  /** @format i32 */\n  project_id: number;\n  /** deployment hash */\n  deployment: string;\n  /** metadata hash */\n  metadata: string;\n  is_actived: boolean;\n  is_latest: boolean;\n  /** create timestamp */\n  created_at: string;\n  /** update timestamp */\n  updated_at: string;\n}\n\nexport interface DeploymentIndexer {\n  /** @format i32 */\n  id?: number;\n  /** @format i32 */\n  deployment_id?: number;\n  /** @format i32 */\n  indexer_id?: number;\n  indexer?: string;\n  price?: string;\n  /** @format i32 */\n  max_time?: number;\n  block_height?: string;\n  /** @format i16 */\n  status?: number;\n  /** status update timestamp */\n  status_at?: string;\n  /** @format i32 */\n  score?: number;\n  /** @format i32 */\n  reality?: number;\n  is_actived?: boolean;\n  /** create timestamp */\n  created_at?: string;\n  /** update timestamp */\n  updated_at?: string;\n}\n\nexport interface ProjectDetail {\n  project?: Project;\n  deployment?: Deployment;\n  indexers?: DeploymentIndexer[];\n}\n\nexport interface OpenChannel {\n  /**\n   * deployment indexer id\n   * @format i32\n   */\n  deployment_indexer?: number;\n  /** u256 string */\n  amount?: string;\n  /**\n   * seconds\n   * @format i32\n   */\n  expiration?: number;\n  /** signature string, if approved, set empty */\n  signature?: string;\n}\n\nexport interface StateChannel {\n  /** @format i32 */\n  id?: number;\n  /** @format i32 */\n  user_id?: number;\n  /** @format i32 */\n  indexer_id?: number;\n  /** @format i16 */\n  status?: number;\n  channel?: string;\n  total?: string;\n  spent?: string;\n  onchain?: string;\n  price?: string;\n  is_final?: boolean;\n  indexer_sign?: string;\n  consumer_sign?: string;\n  /** expired timestamp */\n  expired_at?: string;\n  /** terminated timestamp */\n  terminated_at?: string;\n  terminate_by_indexer?: boolean;\n  deployment?: string;\n  is_actived?: boolean;\n  /** create timestamp */\n  created_at?: string;\n  /** update timestamp */\n  updated_at?: string;\n}\n\nexport interface Fund {\n  amount?: string;\n  callback?: string;\n}\n\n/** transaction hash */\nexport type TX = string;\n\nexport interface NewApiKey {\n  /** Apikey name */\n  name: string;\n}\n\nexport interface Apikey {\n  /** @format i32 */\n  id: number;\n  /** @format i32 */\n  user_id: number;\n  name: string;\n  value: string;\n  /** @format i32 */\n  times: number;\n  /** create timestamp */\n  created_at: string;\n  /** update timestamp */\n  updated_at: string;\n}\n\nexport interface HostingPlan {\n  /** @format i32 */\n  id: number;\n  /** @format i32 */\n  user_id: number;\n  /** @format i32 */\n  deployment_id: number;\n  channels: string;\n  closed: string;\n  /** @format i32 */\n  maximum: number;\n  price: string;\n  spent: string;\n  expired_at: string;\n  is_actived: boolean;\n  created_at: string;\n  updated_at: string;\n}\n\nexport interface HostingPlanList {\n  /** @format i32 */\n  id: number;\n  /** @format i32 */\n  user_id: number;\n  /** @format i32 */\n  deployment_id: number;\n  channels: string;\n  closed: string;\n  /** @format i32 */\n  maximum: number;\n  price: string;\n  spent: string;\n  expired_at: string;\n  is_actived: boolean;\n  created_at: string;\n  updated_at: string;\n  deployment: Deployment;\n  project: Project;\n}\n\nexport interface CreateHostingPlan {\n  /** @format i32 */\n  deployment?: number;\n  deploymentId?: string;\n  price: string;\n}\n\nexport interface UpdateHostingPlan {\n  price: string;\n  /** @format i32 */\n  expiration: number;\n}\n\nexport type QueryParamsType = Record<string | number, any>;\nexport type ResponseFormat = keyof Omit<Body, 'body' | 'bodyUsed'>;\n\nexport interface FullRequestParams extends Omit<RequestInit, 'body'> {\n  /** set parameter to `true` for call `securityWorker` for this request */\n  secure?: boolean;\n  /** request path */\n  path: string;\n  /** content type of request body */\n  type?: ContentType;\n  /** query params */\n  query?: QueryParamsType;\n  /** format of response (i.e. response.json() -> format: \"json\") */\n  format?: ResponseFormat;\n  /** request body */\n  body?: unknown;\n  /** base url */\n  baseUrl?: string;\n  /** request cancellation token */\n  cancelToken?: CancelToken;\n}\n\nexport type RequestParams = Omit<FullRequestParams, 'body' | 'method' | 'query' | 'path'>;\n\nexport interface ApiConfig<SecurityDataType = unknown> {\n  baseUrl?: string;\n  baseApiParams?: Omit<RequestParams, 'baseUrl' | 'cancelToken' | 'signal'>;\n  securityWorker?: (securityData: SecurityDataType | null) => Promise<RequestParams | void> | RequestParams | void;\n  customFetch?: typeof fetch;\n}\n\nexport interface HttpResponse<D extends unknown, E extends unknown = unknown> extends Response {\n  data: D;\n  error: E;\n}\n\ntype CancelToken = Symbol | string | number;\n\nexport enum ContentType {\n  Json = 'application/json',\n  JsonApi = 'application/vnd.api+json',\n  FormData = 'multipart/form-data',\n  UrlEncoded = 'application/x-www-form-urlencoded',\n  Text = 'text/plain',\n}\n\nexport class HttpClient<SecurityDataType = unknown> {\n  public baseUrl: string = 'https://localhost:8000';\n  private securityData: SecurityDataType | null = null;\n  private securityWorker?: ApiConfig<SecurityDataType>['securityWorker'];\n  private abortControllers = new Map<CancelToken, AbortController>();\n  private customFetch = (...fetchParams: Parameters<typeof fetch>) => fetch(...fetchParams);\n\n  private baseApiParams: RequestParams = {\n    credentials: 'same-origin',\n    headers: {},\n    redirect: 'follow',\n    referrerPolicy: 'no-referrer',\n  };\n\n  constructor(apiConfig: ApiConfig<SecurityDataType> = {}) {\n    Object.assign(this, apiConfig);\n  }\n\n  public setSecurityData = (data: SecurityDataType | null) => {\n    this.securityData = data;\n  };\n\n  protected encodeQueryParam(key: string, value: any) {\n    const encodedKey = encodeURIComponent(key);\n    return `${encodedKey}=${encodeURIComponent(typeof value === 'number' ? value : `${value}`)}`;\n  }\n\n  protected addQueryParam(query: QueryParamsType, key: string) {\n    return this.encodeQueryParam(key, query[key]);\n  }\n\n  protected addArrayQueryParam(query: QueryParamsType, key: string) {\n    const value = query[key];\n    return value.map((v: any) => this.encodeQueryParam(key, v)).join('&');\n  }\n\n  protected toQueryString(rawQuery?: QueryParamsType): string {\n    const query = rawQuery || {};\n    const keys = Object.keys(query).filter((key) => 'undefined' !== typeof query[key]);\n    return keys\n      .map((key) => (Array.isArray(query[key]) ? this.addArrayQueryParam(query, key) : this.addQueryParam(query, key)))\n      .join('&');\n  }\n\n  protected addQueryParams(rawQuery?: QueryParamsType): string {\n    const queryString = this.toQueryString(rawQuery);\n    return queryString ? `?${queryString}` : '';\n  }\n\n  private contentFormatters: Record<ContentType, (input: any) => any> = {\n    [ContentType.Json]: (input: any) =>\n      input !== null && (typeof input === 'object' || typeof input === 'string') ? JSON.stringify(input) : input,\n    [ContentType.JsonApi]: (input: any) =>\n      input !== null && (typeof input === 'object' || typeof input === 'string') ? JSON.stringify(input) : input,\n    [ContentType.Text]: (input: any) => (input !== null && typeof input !== 'string' ? JSON.stringify(input) : input),\n    [ContentType.FormData]: (input: any) => {\n      if (input instanceof FormData) {\n        return input;\n      }\n\n      return Object.keys(input || {}).reduce((formData, key) => {\n        const property = input[key];\n        formData.append(\n          key,\n          property instanceof Blob\n            ? property\n            : typeof property === 'object' && property !== null\n              ? JSON.stringify(property)\n              : `${property}`\n        );\n        return formData;\n      }, new FormData());\n    },\n    [ContentType.UrlEncoded]: (input: any) => this.toQueryString(input),\n  };\n\n  protected mergeRequestParams(params1: RequestParams, params2?: RequestParams): RequestParams {\n    return {\n      ...this.baseApiParams,\n      ...params1,\n      ...(params2 || {}),\n      headers: {\n        ...(this.baseApiParams.headers || {}),\n        ...(params1.headers || {}),\n        ...((params2 && params2.headers) || {}),\n      },\n    };\n  }\n\n  protected createAbortSignal = (cancelToken: CancelToken): AbortSignal | undefined => {\n    if (this.abortControllers.has(cancelToken)) {\n      const abortController = this.abortControllers.get(cancelToken);\n      if (abortController) {\n        return abortController.signal;\n      }\n      return void 0;\n    }\n\n    const abortController = new AbortController();\n    this.abortControllers.set(cancelToken, abortController);\n    return abortController.signal;\n  };\n\n  public abortRequest = (cancelToken: CancelToken) => {\n    const abortController = this.abortControllers.get(cancelToken);\n\n    if (abortController) {\n      abortController.abort();\n      this.abortControllers.delete(cancelToken);\n    }\n  };\n\n  public request = async <T = any, E = any>({\n    body,\n    secure,\n    path,\n    type,\n    query,\n    format,\n    baseUrl,\n    cancelToken,\n    ...params\n  }: FullRequestParams): Promise<HttpResponse<T, E>> => {\n    const secureParams =\n      ((typeof secure === 'boolean' ? secure : this.baseApiParams.secure) &&\n        this.securityWorker &&\n        (await this.securityWorker(this.securityData))) ||\n      {};\n    const requestParams = this.mergeRequestParams(params, secureParams);\n    const queryString = query && this.toQueryString(query);\n    const payloadFormatter = this.contentFormatters[type || ContentType.Json];\n    const responseFormat = format || requestParams.format;\n\n    return this.customFetch(`${baseUrl || this.baseUrl || ''}${path}${queryString ? `?${queryString}` : ''}`, {\n      ...requestParams,\n      headers: {\n        ...(requestParams.headers || {}),\n        ...(type && type !== ContentType.FormData ? {'Content-Type': type} : {}),\n      },\n      signal: (cancelToken ? this.createAbortSignal(cancelToken) : requestParams.signal) || null,\n      body: typeof body === 'undefined' || body === null ? null : payloadFormatter(body),\n    }).then(async (response) => {\n      const r = response.clone() as HttpResponse<T, E>;\n      r.data = null as unknown as T;\n      r.error = null as unknown as E;\n\n      const data = !responseFormat\n        ? r\n        : await response[responseFormat]()\n            .then((data) => {\n              if (r.ok) {\n                r.data = data;\n              } else {\n                r.error = data;\n              }\n              return r;\n            })\n            .catch((e) => {\n              r.error = e;\n              return r;\n            });\n\n      if (cancelToken) {\n        this.abortControllers.delete(cancelToken);\n      }\n\n      if (!response.ok) throw data;\n      return data;\n    });\n  };\n}\n\n/**\n * @title Subquery Consumer Host Service\n * @version 1.0.0\n * @license Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html)\n * @baseUrl https://localhost:8000\n *\n * API Docs for Subquery Consumer Host Service\n */\nexport class NetworkConsumerHostServiceApi<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {\n  login = {\n    /**\n     * No description\n     *\n     * @tags general\n     * @name AuthControllerUserToken\n     * @summary User login to get token\n     * @request POST:/login\n     */\n    authControllerUserToken: (body: Payload, params: RequestParams = {}) =>\n      this.request<QueryToken, any>({\n        path: `/login`,\n        method: 'POST',\n        body: body,\n        type: ContentType.Json,\n        ...params,\n      }),\n  };\n  query = {\n    /**\n     * @description Returns the result of the query\n     *\n     * @tags general\n     * @name QueryControllerQuery\n     * @summary Consumer send query\n     * @request POST:/query/{project}\n     */\n    queryControllerQuery: (\n      project: number,\n      body: {\n        /** apikey for query */\n        apikey: string;\n      },\n      params: RequestParams = {}\n    ) =>\n      this.request<any, void>({\n        path: `/query/${project}`,\n        method: 'POST',\n        body: body,\n        type: ContentType.FormData,\n        ...params,\n      }),\n  };\n  sign = {\n    /**\n     * @description Returns the state channel info\n     *\n     * @tags general\n     * @name QueryControllerSign\n     * @summary Consumer sign to open state channel\n     * @request POST:/sign/{project}\n     */\n    queryControllerSign: (\n      project: number,\n      data: {\n        /** apikey for query */\n        apikey: string;\n      },\n      params: RequestParams = {}\n    ) =>\n      this.request<QueryState, void>({\n        path: `/sign/${project}`,\n        method: 'POST',\n        body: data,\n        type: ContentType.FormData,\n        ...params,\n      }),\n  };\n  projects = {\n    /**\n     * No description\n     *\n     * @tags general\n     * @name ProjectControllerIndex\n     * @summary Get all projects\n     * @request GET:/projects\n     */\n    projectControllerIndex: (params: RequestParams = {}) =>\n      this.request<Project[], any>({\n        path: `/projects`,\n        method: 'GET',\n        ...params,\n      }),\n\n    /**\n     * No description\n     *\n     * @tags general\n     * @name ProjectControllerShow\n     * @summary Get the project by id\n     * @request GET:/projects/{id}\n     */\n    projectControllerShow: (id: number, params: RequestParams = {}) =>\n      this.request<ProjectDetail, any>({\n        path: `/projects/${id}`,\n        method: 'GET',\n        ...params,\n      }),\n  };\n  users = {\n    /**\n     * No description\n     *\n     * @tags user\n     * @name UserControllerApikeyIndex\n     * @summary Get all apikeys of a user\n     * @request GET:/users/apikeys\n     * @secure\n     */\n    userControllerApikeyIndex: (params: RequestParams = {}) =>\n      this.request<Apikey[], any>({\n        path: `/users/apikeys`,\n        method: 'GET',\n        secure: true,\n        ...params,\n      }),\n\n    /**\n     * No description\n     *\n     * @tags user\n     * @name UserControllerApikeyCreate\n     * @summary Generate an Apikey for user\n     * @request POST:/users/apikeys/new\n     * @secure\n     */\n    userControllerApikeyCreate: (body: NewApiKey, params: RequestParams = {}) =>\n      this.request<Apikey, any>({\n        path: `/users/apikeys/new`,\n        method: 'POST',\n        body: body,\n        secure: true,\n        type: ContentType.Json,\n        ...params,\n      }),\n\n    /**\n     * No description\n     *\n     * @tags user\n     * @name UserControllerApikeyRemove\n     * @summary Delete an Apikey for user\n     * @request POST:/users/apikeys/{id}/delete\n     * @secure\n     */\n    userControllerApikeyRemove: (id: number, params: RequestParams = {}) =>\n      this.request<Apikey, void>({\n        path: `/users/apikeys/${id}/delete`,\n        method: 'POST',\n        secure: true,\n        ...params,\n      }),\n\n    /**\n     * No description\n     *\n     * @tags user\n     * @name HostingPlanControllerIndex\n     * @summary Get all hosting plans of a user\n     * @request GET:/users/hosting-plans\n     * @secure\n     */\n    hostingPlanControllerIndex: (params: RequestParams = {}) =>\n      this.request<HostingPlanList[], any>({\n        path: `/users/hosting-plans`,\n        method: 'GET',\n        secure: true,\n        ...params,\n      }),\n\n    /**\n     * No description\n     *\n     * @tags user\n     * @name HostingPlanControllerCreate\n     * @summary Create a new hosting plan for user\n     * @request POST:/users/hosting-plans\n     * @secure\n     */\n    hostingPlanControllerCreate: (body: CreateHostingPlan, params: RequestParams = {}) =>\n      this.request<HostingPlan, any>({\n        path: `/users/hosting-plans`,\n        method: 'POST',\n        body: body,\n        secure: true,\n        type: ContentType.Json,\n        ...params,\n      }),\n\n    /**\n     * No description\n     *\n     * @tags user\n     * @name HostingPlanControllerEdit\n     * @summary Update a hosting plan for user\n     * @request POST:/users/hosting-plans/{id}\n     * @secure\n     */\n    hostingPlanControllerEdit: (id: number, body: UpdateHostingPlan, params: RequestParams = {}) =>\n      this.request<HostingPlan, any>({\n        path: `/users/hosting-plans/${id}`,\n        method: 'POST',\n        body: body,\n        secure: true,\n        type: ContentType.Json,\n        ...params,\n      }),\n  };\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/consumer-host/schemas.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {convertApiKey} from './schemas';\n\ndescribe('Parsing raw responses', () => {\n  it('can parse an api key', () => {\n    expect(() =>\n      convertApiKey({\n        id: 229,\n        user_id: 700,\n        name: 'test',\n        value: 'N6HXY5OOX2OB06A8NCSOMNNL',\n        times: 0,\n        created_at: '2025-08-19T22:39:09.093246',\n        updated_at: '2025-08-19T22:39:09.093',\n      })\n    ).not.toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/network/consumer-host/schemas.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {z} from 'zod';\nimport {\n  Apikey,\n  HostingPlan as ApiHostingPlan,\n  HostingPlanList as ApiHostingPlanList,\n  Project as ApiProject,\n  Deployment as ApiDeployment,\n} from './consumer-host-service-api';\n\nexport const apiKeySchema = z.object({\n  id: z.number({description: 'The unique identifier of the api key'}),\n  name: z.string({description: 'The name given to the api key'}),\n  apiKey: z.string({description: 'The key to use'}),\n  times: z.number({description: 'The number of times the api key has been used'}),\n  createdAt: z.string({description: 'ISO Date when the api key was created'}).datetime(),\n});\nexport type ApiKey = z.infer<typeof apiKeySchema>;\n\nexport function convertApiKey(apiKey: Apikey): ApiKey {\n  return apiKeySchema.parse({\n    id: apiKey.id,\n    name: apiKey.name,\n    apiKey: apiKey.value,\n    times: apiKey.times,\n    createdAt: `${apiKey.created_at}Z`, // The server returns a local timestamp, and seems to use UTC\n  });\n}\n\nexport const projectSchema = z.object({\n  id: z.number({description: 'The unique identifier of the project'}),\n  owner: z.string({description: 'The address that owns the project'}),\n  metadata: z.string({description: 'The IPFS CID of the project metadata'}),\n  ptype: z.number({description: 'An enum representing the project type'}), // TODO change to enum\n  createdAt: z.string({description: 'ISO Date when the project was created'}).datetime(),\n  updatedAt: z.string({description: 'ISO Date when the project was updated'}).datetime(),\n});\nexport type Project = z.infer<typeof projectSchema>;\n\nexport function convertProject(project: ApiProject): Project {\n  return projectSchema.parse({\n    id: project.id,\n    owner: project.owner,\n    metadata: project.metadata,\n    ptype: project.ptype,\n    createdAt: `${project.created_at}Z`,\n    updatedAt: `${project.updated_at}Z`,\n  });\n}\n\nexport const deploymentSchema = z.object({\n  id: z.number({description: 'The unique identifier of the deployment'}),\n  projectId: z.number({description: 'The unique identifier of the project this deployment belongs to'}),\n  deployment: z.string({description: 'The IPFS CID of the deployment'}),\n  isActivated: z.boolean({}),\n  isLatest: z.boolean({description: 'Whether this deployment is the latest for the project'}),\n  metadata: z.string({description: 'The IPFS CID of the deployment metadata'}),\n  createdAt: z.string({description: 'ISO Date when the deployment was created'}).datetime(),\n  updatedAt: z.string({description: 'ISO Date when the deployment was updated'}).datetime(),\n});\nexport type Deployment = z.infer<typeof deploymentSchema>;\n\nexport function convertDeployment(deployment: ApiDeployment): Deployment {\n  return deploymentSchema.parse({\n    id: deployment.id,\n    projectId: deployment.project_id,\n    deployment: deployment.deployment,\n    isActivated: deployment.is_actived,\n    isLatest: deployment.is_latest,\n    metadata: deployment.metadata,\n    createdAt: `${deployment.created_at}Z`,\n    updatedAt: `${deployment.updated_at}Z`,\n  });\n}\n\nexport const hostingPlanSchema = z.object({\n  id: z.number({description: 'The unique identifier of the hosting plan'}),\n  consumer: z.number({description: 'The wallet address that consumes the plan'}),\n  channels: z.string(),\n  deploymentId: z.number({description: 'The deployment id that is hosted'}),\n  maximum: z.number(),\n  spent: z.string({description: 'The amount spent in SQT'}),\n  price: z.string({description: 'The price per 1000 requests in SQT'}),\n  isActivated: z.boolean({description: 'Whether the plan is still active'}),\n  expiredAt: z.string({description: 'ISO Date when the hosting plan expires'}).datetime(),\n  createdAt: z.string({description: 'ISO Date when the hosting plan was created'}).datetime(),\n  updatedAt: z.string({description: 'ISO Date when the hosting plan was updated'}).datetime(),\n});\n\nexport type HostingPlan = z.infer<typeof hostingPlanSchema>;\n\nexport const hostingPlanExtraSchema = hostingPlanSchema.extend({\n  project: projectSchema,\n  deployment: deploymentSchema,\n});\nexport type HostingPlanExtra = z.infer<typeof hostingPlanExtraSchema>;\n\nexport function convertHostingPlan(plan: ApiHostingPlan): HostingPlan {\n  return hostingPlanSchema.parse({\n    id: plan.id,\n    consumer: plan.user_id,\n    channels: plan.channels,\n    deploymentId: plan.deployment_id,\n    maximum: plan.maximum,\n    price: plan.price,\n    spent: plan.spent,\n    isActivated: plan.is_actived,\n    expiredAt: `${plan.expired_at}Z`,\n    createdAt: `${plan.created_at}Z`,\n    updatedAt: `${plan.updated_at}Z`,\n  });\n}\n\nexport function convertHostingPlanExtra(plan: ApiHostingPlanList): HostingPlanExtra {\n  return hostingPlanExtraSchema.parse({\n    ...convertHostingPlan(plan),\n    project: convertProject(plan.project),\n    deployment: convertDeployment(plan.deployment),\n  });\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/contract-errors.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport contractErrorCodes from '@subql/contract-sdk/publish/revertcode.json';\n\nexport type ContractErrorCode = keyof typeof contractErrorCodes;\n\nfunction mapContractError(rawErrorMsg: any): {revertCode?: ContractErrorCode; message?: string} {\n  const revertCode = Object.keys(contractErrorCodes).find(\n    (key) => rawErrorMsg.toString().match(`reverted: ${key}`) || (rawErrorMsg as any).reason === key\n  ) as ContractErrorCode;\n  return {\n    revertCode,\n    message: revertCode ? contractErrorCodes[revertCode] : undefined,\n  };\n}\n\n/**\n * Parse a raw error from a contract call and throw a more descriptive error message if available.\n * You can provide an optional mapping of ContractErrorCode to custom error messages.\n */\nexport function parseContractError(\n  overwriteError: Partial<Record<ContractErrorCode, () => Promise<string> | string>>\n): (rawError: any) => Promise<never> {\n  return async (rawError: any) => {\n    const cErr = mapContractError(rawError);\n    const getOverwriteMessage = overwriteError[cErr.revertCode as ContractErrorCode];\n    if (getOverwriteMessage) {\n      let message = cErr.message;\n      try {\n        message = await getOverwriteMessage();\n      } catch (e) {\n        // Do nothing\n      }\n\n      throw new Error(message, {cause: rawError});\n    }\n    if (cErr.message) {\n      throw new Error(cErr.message, {cause: rawError});\n    }\n    throw rawError;\n  };\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/json-file-store.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'node:fs';\nimport {IKeyValueStorage} from '@walletconnect/keyvaluestorage';\n\nexport class JSONFileStorage implements IKeyValueStorage {\n  private writeQueue = Promise.resolve();\n\n  constructor(private readonly sessionPath: string) {}\n\n  async #readData(): Promise<Record<string, any> | null> {\n    if (!fs.existsSync(this.sessionPath)) return null;\n    const raw = await fs.promises.readFile(this.sessionPath, 'utf-8');\n    try {\n      return JSON.parse(raw);\n    } catch (e) {\n      return null;\n    }\n  }\n\n  async #writeData(data: Record<string, any>): Promise<void> {\n    await fs.promises.writeFile(this.sessionPath, JSON.stringify(data, null, 2));\n  }\n\n  async getKeys(): Promise<string[]> {\n    const data = await this.#readData();\n    return data ? Object.keys(data) : [];\n  }\n\n  async getEntries<T = any>(): Promise<[string, T][]> {\n    const data = await this.#readData();\n    return data ? (Object.entries(data) as [string, T][]) : [];\n  }\n\n  async getItem<T = any>(key: string): Promise<T | undefined> {\n    const data = await this.#readData();\n    return data?.[key];\n  }\n\n  async setItem<T = any>(key: string, value: T): Promise<void> {\n    this.writeQueue = this.writeQueue.then(async () => {\n      const data = (await this.#readData()) ?? {};\n      data[key] = value;\n      await this.#writeData(data);\n    });\n    return this.writeQueue;\n  }\n\n  async removeItem(key: string): Promise<void> {\n    this.writeQueue = this.writeQueue.then(async () => {\n      const data = await this.#readData();\n      if (!data) return;\n      delete data[key];\n      await this.#writeData(data);\n    });\n    return this.writeQueue;\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/list-account-boosts.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IPFSHTTPClientLite, IPFS_NODE_ENDPOINT} from '@subql/common';\nimport {SQNetworks} from '@subql/network-config';\nimport {utils} from 'ethers';\nimport {z} from 'zod';\nimport {resultToJson} from '../../utils';\nimport {GetAccountBoostQuery, GetAccountBoostQueryVariables} from './__graphql__/base-types';\nimport {GetAccountBoost} from './__graphql__/network/deploymentsBooster.generated';\nimport {deploymentMetadataSchema, getQueryClient, projectMetadataSchema} from './constants';\n\nexport const boostsSchema = z.object({\n  totalAmount: z.string({description: 'The amount of SQT boosted'}), // bigint\n  deploymentId: z.string({description: 'DeploymentId that is being boosted'}),\n  projectId: z.string({description: 'The id of the deployments project'}),\n  projectMeta: projectMetadataSchema.optional(),\n  deploymentMeta: deploymentMetadataSchema.optional(),\n});\nexport type Boosts = z.infer<typeof boostsSchema>;\n\nexport const responseSchema = z.object({\n  boosts: z.array(boostsSchema),\n  totalBoost: z.string(), //bigint\n});\nexport type Response = z.infer<typeof responseSchema>;\n\nexport async function listAccountBoosts(\n  network: SQNetworks,\n  address: string,\n  ipfsEndpoint = IPFS_NODE_ENDPOINT\n): Promise<Response> {\n  const res = await getQueryClient(network).query<GetAccountBoostQuery, GetAccountBoostQueryVariables>({\n    query: GetAccountBoost,\n    variables: {address: utils.getAddress(address)},\n  });\n\n  if (res.errors) {\n    throw new Error(`Failed to fetch boosts for account ${address}`);\n  }\n\n  if (!res.data?.deploymentBoosterSummaries) {\n    throw new Error(`Booster summaries for account ${address} not found`);\n  }\n\n  const ipfs = new IPFSHTTPClientLite({url: ipfsEndpoint});\n\n  const boosts = await Promise.all(\n    res.data.deploymentBoosterSummaries.nodes.map(async (boost) => {\n      if (!boost) return null;\n      const {__typename, deployment, project, ...rest} = boost;\n\n      return {\n        projectId: project?.id ?? 'Unknown',\n        ...rest,\n        deploymentMeta: deployment ? await resultToJson(ipfs.cat(deployment.metadata), true) : undefined,\n        projectMeta: project ? await resultToJson(ipfs.cat(project.metadata), true) : undefined,\n      } satisfies Boosts;\n    })\n  );\n\n  const totalBoost = res.data.deploymentBoosterSummaries.aggregates?.sum?.totalAmount ?? '0';\n\n  return {\n    boosts: boosts.filter((b) => b !== null),\n    totalBoost,\n  };\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/list-deployment-boosts.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {SQNetworks} from '@subql/network-config';\nimport {z} from 'zod';\nimport {GetDeploymentBoostQuery, GetDeploymentBoostQueryVariables} from './__graphql__/base-types';\nimport {GetDeploymentBoost} from './__graphql__/network/deploymentsBooster.generated';\nimport {cidToBytes32, getContractSDK, getQueryClient, getRpcProvider} from './constants';\n\nexport const boostsSchema = z.object({\n  totalAmount: z.string({description: 'The amount of SQT boosted'}), // bigint\n  consumer: z.string({description: 'The account that made the boost'}),\n  rewards: z.string({description: 'The amount of rewards'}), // bigint\n});\nexport type Boosts = z.infer<typeof boostsSchema>;\n\nexport const responseSchema = z.object({\n  boosts: z.array(boostsSchema),\n  totalBoost: z.string({description: 'The total SQT boosted on this deployment'}), //bigint\n});\nexport type Response = z.infer<typeof responseSchema>;\n\nexport async function listDeploymentBoosts(network: SQNetworks, deploymentId: string): Promise<Response> {\n  const contracts = getContractSDK(await getRpcProvider(network), network);\n  const res = await getQueryClient(network).query<GetDeploymentBoostQuery, GetDeploymentBoostQueryVariables>({\n    query: GetDeploymentBoost,\n    variables: {deploymentId},\n  });\n\n  if (res.errors) {\n    throw new Error(`Failed to fetch boosts for deployment ${deploymentId}`);\n  }\n\n  if (!res.data?.deploymentBoosterSummaries) {\n    throw new Error(`Booster summaries for deployment ${deploymentId} not found`);\n  }\n\n  const deploymentIdBytes32 = cidToBytes32(deploymentId);\n\n  const boosts = await Promise.all(\n    res.data.deploymentBoosterSummaries.nodes.map(async (boost) => {\n      if (!boost) return null;\n      const {__typename, ...rest} = boost;\n\n      return {\n        ...rest,\n        rewards: await contracts.rewardsBooster\n          .getAccQueryRewardsByType(deploymentIdBytes32, rest.consumer)\n          .then((r) => r.toString()),\n      };\n    })\n  );\n\n  const totalBoost = res.data.deploymentBoosterSummaries.aggregates?.sum?.totalAmount ?? '0';\n\n  return {\n    boosts: boosts.filter((b) => b !== null),\n    totalBoost,\n  };\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/list-deployment-indexers.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IPFS_NODE_ENDPOINT, IPFSHTTPClientLite} from '@subql/common';\nimport {SQNetworks} from '@subql/network-config';\nimport {z} from 'zod';\nimport {resultToJson} from '../../utils';\nimport {GetDeploymentIndexersQuery, GetDeploymentIndexersQueryVariables} from './__graphql__/base-types';\nimport {GetDeploymentIndexers} from './__graphql__/network/deployments.generated';\nimport {getQueryClient} from './constants';\n\nconst indexerDeploymentMetadata = z.object({\n  chainId: z.string(),\n  controller: z.string(),\n  dbSize: z.number(),\n  deploymentId: z.string(),\n  genesis: z.string(),\n  indexer: z.string(),\n  lastHeight: z.number(),\n  lastTime: z.number(),\n  rateLimit: z.number(),\n  signature: z.string(),\n  startHeight: z.number().optional(),\n  subqueryHealthy: z.boolean(),\n  subqueryNode: z.string({description: 'The subquery node version'}),\n  subqueryQuery: z.string({description: 'The query service version'}),\n  targetHeight: z.number(),\n  timestamp: z.number(),\n});\nexport type IndexerDeploymentMetadata = z.infer<typeof indexerDeploymentMetadata>;\n\nexport const deploymentIndexer = z.object({\n  indexerId: z.string(),\n  indexerMetadata: z.string(),\n  indexerMeta: z\n    .object({\n      name: z.string(),\n      url: z.string(),\n      description: z.string().optional(),\n    })\n    .optional(),\n  status: z.string(),\n  indexerDeploymentMeta: indexerDeploymentMetadata.optional(),\n});\nexport type DeploymentIndexer = z.infer<typeof deploymentIndexer>;\n\nasync function getIndexerDeploymentMetadata(url: string, deploymentId: string): Promise<IndexerDeploymentMetadata> {\n  const res = await fetch(`${url}/metadata/${deploymentId}`);\n\n  if (!res.ok) {\n    throw new Error(`Failed to fetch indexer metadata: ${res.statusText}`);\n  }\n  return res.json();\n}\n\nexport async function listDeploymentIndexers(\n  network: SQNetworks,\n  deploymentId: string,\n  ipfsEndpoint = IPFS_NODE_ENDPOINT\n): Promise<DeploymentIndexer[]> {\n  const res = await getQueryClient(network).query<GetDeploymentIndexersQuery, GetDeploymentIndexersQueryVariables>({\n    query: GetDeploymentIndexers,\n    variables: {deploymentId},\n  });\n\n  if (res.errors) {\n    throw new Error(`Failed to fetch indexers for deployment ${deploymentId}`);\n  }\n\n  if (!res.data?.deployment) {\n    throw new Error(`Project with ID ${deploymentId} not found`);\n  }\n\n  const ipfs = new IPFSHTTPClientLite({url: ipfsEndpoint});\n\n  const raw = res.data?.deployment?.indexers?.nodes ?? [];\n  const indexers = await Promise.all(\n    raw.map(async (d) => {\n      if (!d) return null;\n      const {__typename, indexer, ...rest} = d;\n\n      // Should never happen\n      if (!indexer) {\n        return null;\n      }\n\n      const indexerMeta = await resultToJson<DeploymentIndexer['indexerMeta'], true>(ipfs.cat(indexer.metadata), true);\n\n      const indexerDeploymentMeta = indexerMeta\n        ? await getIndexerDeploymentMetadata(indexerMeta.url, deploymentId).catch((e) => undefined)\n        : undefined;\n\n      return <DeploymentIndexer>{\n        ...rest,\n        indexerMetadata: indexer.metadata,\n        indexerMeta,\n        indexerDeploymentMeta,\n      };\n    })\n  );\n\n  return indexers.filter((d): d is DeploymentIndexer => d !== null);\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/list-deployments.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IPFS_NODE_ENDPOINT, IPFSHTTPClientLite} from '@subql/common';\nimport {SQNetworks} from '@subql/network-config';\nimport {z} from 'zod';\nimport {resultToJson} from '../../utils';\nimport {GetProjectDeploymentsQuery, GetProjectDeploymentsQueryVariables} from './__graphql__/base-types';\nimport {GetProjectDeployments} from './__graphql__/network/deployments.generated';\nimport {DeploymentMetadata, deploymentMetadataSchema, getQueryClient} from './constants';\n\nexport const deploymentSchema = z.object({\n  deploymentId: z.string(),\n  metadata: z.string(),\n  meta: deploymentMetadataSchema.optional(),\n  createdTimestamp: z.string().datetime(),\n  createdBlock: z.union([z.number(), z.null()]), // TODO not sure why this is optional\n  current: z.boolean(),\n});\n\nexport type Deployment = z.infer<typeof deploymentSchema>;\n\nexport async function listDeployments(\n  network: SQNetworks,\n  projectId: string,\n  ipfsEndpoint = IPFS_NODE_ENDPOINT\n): Promise<Deployment[]> {\n  const res = await getQueryClient(network).query<GetProjectDeploymentsQuery, GetProjectDeploymentsQueryVariables>({\n    query: GetProjectDeployments,\n    variables: {projectId},\n  });\n\n  if (res.errors) {\n    throw new Error(`Failed to fetch deployments for project ${projectId}`);\n  }\n\n  if (!res.data?.project) {\n    throw new Error(`Project with ID ${projectId} not found`);\n  }\n\n  const ipfs = new IPFSHTTPClientLite({url: ipfsEndpoint});\n\n  const raw = res.data?.project?.deployments?.nodes ?? [];\n  const deployments = await Promise.all(\n    raw.map(async (d) => {\n      if (!d) return null;\n      const {__typename, id, ...rest} = d;\n\n      return (<Deployment>{\n        deploymentId: id,\n        ...rest,\n        createdTimestamp: new Date(d.createdTimestamp).toISOString(),\n        current: res.data?.project?.deploymentId === id,\n        meta: await resultToJson<DeploymentMetadata, true>(ipfs.cat(d.metadata), true),\n      }) satisfies Deployment;\n    })\n  );\n\n  return deployments.filter((d): d is Deployment => d !== null);\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/list-flex-plans.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IPFSHTTPClientLite, IPFS_NODE_ENDPOINT} from '@subql/common';\nimport {z} from 'zod';\nimport {resultToJson} from '../../utils';\nimport {DeploymentMetadata, deploymentMetadataSchema, ProjectMetadata, projectMetadataSchema} from './constants';\nimport {ConsumerHostClient} from './consumer-host/client';\nimport {hostingPlanExtraSchema} from './consumer-host/schemas';\n\nexport const metaHostingPlanSchema = hostingPlanExtraSchema.extend({\n  deploymentMeta: deploymentMetadataSchema.optional(),\n  projectMetadata: projectMetadataSchema.optional(),\n});\n\nexport type MetaHostingPlan = z.infer<typeof metaHostingPlanSchema>;\n\nexport async function listFlexPlans(\n  chs: ConsumerHostClient,\n  ipfsEndpoint = IPFS_NODE_ENDPOINT\n): Promise<MetaHostingPlan[]> {\n  const plans = await chs.listPlans();\n\n  const ipfs = new IPFSHTTPClientLite({url: ipfsEndpoint});\n\n  const metaPlans = await Promise.all(\n    plans.map(async (plan) => {\n      const deploymentMeta = await resultToJson<DeploymentMetadata, true>(ipfs.cat(plan.deployment.metadata), true);\n      const projectMetadata = await resultToJson<ProjectMetadata, true>(ipfs.cat(plan.project.metadata), true);\n\n      return {\n        ...plan,\n        deploymentMeta,\n        projectMetadata,\n      } satisfies MetaHostingPlan;\n    })\n  );\n\n  return metaPlans;\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/list-projects.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IPFS_NODE_ENDPOINT, IPFSHTTPClientLite} from '@subql/common';\nimport {ProjectType} from '@subql/contract-sdk';\nimport {SQNetworks} from '@subql/network-config';\nimport {utils} from 'ethers';\nimport {z} from 'zod';\nimport {resultToJson} from '../../utils';\nimport {GetProjectsQuery, GetProjectsQueryVariables} from './__graphql__/base-types';\nimport {GetProjects} from './__graphql__/network/projects.generated';\nimport {getQueryClient, projectTypeSchema, gqlProjectTypeToProjectType, projectMetadataSchema} from './constants';\n\nexport const projectSchema = z.object({\n  id: z.string(),\n  owner: z.string(),\n  metadata: z.string(),\n  totalAllocation: z.string(), //bigint\n  totalBoost: z.string(), //bigint\n  totalReward: z.string(), //bigint\n  type: projectTypeSchema,\n  deploymentId: z.string(),\n  meta: projectMetadataSchema.optional(),\n});\nexport type Project = z.infer<typeof projectSchema>;\n\nexport async function listProjects(\n  network: SQNetworks,\n  address: string,\n  ipfsEndpoint = IPFS_NODE_ENDPOINT\n): Promise<Project[]> {\n  const res = await getQueryClient(network).query<GetProjectsQuery, GetProjectsQueryVariables>({\n    query: GetProjects,\n    variables: {address: utils.getAddress(address)},\n  });\n\n  if (res.errors) {\n    throw new Error(`Failed to fetch projects for address ${address}`);\n  }\n\n  const ipfs = new IPFSHTTPClientLite({url: ipfsEndpoint});\n\n  const raw = res.data?.projects?.nodes ?? [];\n  const projects = await Promise.all(\n    raw.map(async (p) => {\n      if (!p) return null;\n      const {__typename, type, ...rest} = p;\n\n      return <Project>{\n        ...rest,\n        type: ProjectType[gqlProjectTypeToProjectType(type)],\n        meta: await resultToJson(ipfs.cat(p.metadata), true),\n      };\n    })\n  );\n\n  return projects.filter((p): p is Project => p !== null);\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/queries/deployments.graphql",
    "content": "query GetProjectDeployments($projectId: String!) {\n  project(id: $projectId) {\n    deploymentId\n    deployments(orderBy: CREATED_TIMESTAMP_DESC) {\n      nodes {\n        id\n        metadata\n        createdTimestamp\n        createdBlock\n      }\n    }\n  }\n}\n\nquery GetDeploymentIndexers($deploymentId: String!) {\n  deployment(id: $deploymentId) {\n    id\n    indexers(orderBy: ID_ASC, filter: {status: {notEqualTo: TERMINATED}}) {\n      nodes {\n        indexerId\n        status\n        indexer {\n          metadata\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/queries/deploymentsBooster.graphql",
    "content": "query GetDeploymentBoost($deploymentId: String!) {\n  deploymentBoosterSummaries(filter: {and: {deploymentId: {equalTo: $deploymentId}, totalAmount: {greaterThan: \"0\"}}}) {\n    aggregates {\n      sum {\n        totalAmount\n      }\n    }\n    nodes {\n      consumer\n      totalAmount\n    }\n  }\n}\n\nquery GetAccountBoost($address: String!) {\n  deploymentBoosterSummaries(\n    filter: {and: {consumer: {equalTo: $address}, totalAmount: {greaterThan: \"0\"}}}\n    orderBy: PROJECT_ID_ASC\n  ) {\n    aggregates {\n      sum {\n        totalAmount\n      }\n    }\n    nodes {\n      totalAmount\n      deploymentId\n      deployment {\n        metadata\n      }\n      project {\n        id\n        metadata\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/queries/projects.graphql",
    "content": "query GetProjects($address: String!) {\n  projects(filter: {owner: {equalTo: $address}}, orderBy: ID_ASC) {\n    nodes {\n      id\n      owner\n      metadata\n      totalAllocation\n      totalBoost\n      totalReward\n      type\n      deploymentId\n    }\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {formatEther} from '@ethersproject/units';\nimport {ContractSDK} from '@subql/contract-sdk';\nimport {BigNumber, Signer} from 'ethers';\nimport {Logger, Prompt} from '../../adapters/utils';\nimport {checkTransactionSuccess} from './constants';\n\nexport async function checkAndIncreaseAllowance(\n  signer: Signer,\n  sdk: ContractSDK,\n  amount: BigNumber,\n  spender: string,\n  logger: Logger,\n  operationName: string,\n  prompt?: Prompt\n): Promise<void> {\n  const userAddress = await signer.getAddress();\n\n  // Check current allowance\n  const allowance = await sdk.sqToken.allowance(userAddress, spender);\n  logger.info(`Current allowance: ${formatEther(allowance)} SQT`);\n  logger.info(`Amount needed: ${formatEther(amount)} SQT`);\n\n  if (allowance.lt(amount)) {\n    const needed = amount.sub(allowance);\n    logger.warn(`Insufficient allowance. Need to approve ${formatEther(needed)} SQT additional allowance.`);\n\n    if (prompt) {\n      const confirm = await prompt({\n        type: 'boolean',\n        message: `Approve additional ${formatEther(needed)} SQT allowance to ${operationName}?`,\n      });\n      if (!confirm) {\n        throw new Error(`Allowance approval was cancelled. Cannot proceed with ${operationName}.`);\n      }\n    } else {\n      logger.info('Auto-approving allowance in non-interactive mode');\n    }\n\n    logger.info(`Increasing allowance of SQT to ${operationName}...`);\n    try {\n      const allowanceTx = await sdk.sqToken.increaseAllowance(spender, needed);\n      logger.info(`Allowance tx hash: ${allowanceTx.hash}`);\n      await checkTransactionSuccess(allowanceTx);\n    } catch (e) {\n      console.error('Error increasing allowance', e);\n      throw e;\n    }\n    logger.info(`✅ Successfully increased allowance of SQT to ${operationName}`);\n  } else {\n    logger.info('✅ Sufficient allowance already exists');\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/network/walletconnect-signer.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Signer} from '@ethersproject/abstract-signer';\nimport {BigNumber} from '@ethersproject/bignumber';\nimport {hexlify} from '@ethersproject/bytes';\nimport {Deferrable, resolveProperties} from '@ethersproject/properties';\nimport {JsonRpcProvider, TransactionRequest, TransactionResponse} from '@ethersproject/providers';\nimport {NETWORKS_CONFIG_INFO} from '@subql/network-config';\nimport SignClient from '@walletconnect/sign-client';\nimport {SessionTypes} from '@walletconnect/types';\nimport {getSdkError} from '@walletconnect/utils';\nimport * as qrcode from 'qrcode-terminal';\nimport {Logger} from '../../adapters/utils';\nimport {WALLET_CONNECT_STORE_PATH} from '../../constants';\nimport {WALLET_DOMAIN} from './constants';\nimport {JSONFileStorage} from './json-file-store';\n\nexport const NO_EXISTING_CONN_ERROR = new Error(\n  'No existing WalletConnect session found. Please connect your wallet first.'\n);\n\nconst chainIds = Object.values(NETWORKS_CONFIG_INFO).reduce((acc, config) => {\n  if (config.chainId) {\n    acc.push(`eip155:${config.chainId}`);\n  }\n  return acc;\n}, [] as Array<`eip155:${string}`>);\n\nexport class WalletConnectSigner extends Signer {\n  private signClient: SignClient | null = null;\n  private session: SessionTypes.Struct | null = null;\n  private account: string | null = null;\n\n  constructor(\n    readonly provider: JsonRpcProvider,\n    readonly logger: Logger,\n    private readonly allowNewConnect = false\n  ) {\n    super();\n  }\n\n  connect(provider: JsonRpcProvider): WalletConnectSigner {\n    return this;\n  }\n\n  async closeConnection(): Promise<void> {\n    if (this.signClient) {\n      await this.signClient.core.relayer.transportClose();\n    }\n  }\n\n  async getAddress(): Promise<string> {\n    return this.initializeWalletConnect();\n  }\n\n  private async initializeWalletConnect(): Promise<string> {\n    if (this.signClient && this.session && this.account) {\n      return this.account;\n    }\n\n    // Initialize the Sign Client\n    this.signClient = await SignClient.init({\n      projectId: process.env.WALLETCONNECT_PROJECT_ID || 'c7ea561f79adc119587d163a68860570', // SubQuery public project ID\n      metadata: {\n        name: 'SubQuery CLI',\n        description: 'SubQuery Command Line Interface',\n        url: `https://${WALLET_DOMAIN}`,\n        icons: ['https://subquery.network/favicon.ico'],\n      },\n      logger: 'silent', // Disable all logging\n      storage: new JSONFileStorage(WALLET_CONNECT_STORE_PATH),\n    });\n\n    const chainId = `eip155:${this.provider.network.chainId}`;\n\n    try {\n      // Check for existing sessions\n      const existingSessions = this.signClient.session.getAll();\n      const compatibleSession = existingSessions.find((session) =>\n        session.namespaces.eip155?.chains?.includes(chainId)\n      );\n\n      if (compatibleSession) {\n        this.logger.debug('Using existing WalletConnect session');\n        this.session = compatibleSession;\n        this.account = compatibleSession.namespaces.eip155.accounts[0].split(':')[2];\n        return this.account;\n      }\n\n      if (!this.allowNewConnect) {\n        await this.signClient.core.relayer.transportClose();\n        throw NO_EXISTING_CONN_ERROR;\n      }\n\n      // Create new session\n      this.logger.debug('Creating new WalletConnect session...');\n      const {approval, uri} = await this.signClient.connect({\n        optionalNamespaces: {\n          eip155: {\n            methods: [\n              'eth_sendTransaction',\n              'eth_signTransaction' /*'eth_sign', 'personal_sign', 'eth_signTypedData'*/,\n            ],\n            chains: chainIds,\n            events: ['chainChanged', 'accountsChanged'],\n          },\n        },\n      });\n\n      if (uri) {\n        // Display QR code in terminal\n        qrcode.generate(uri, {small: true}, (qrString) => {\n          this.logger.info(`Scan this QR code with your wallet app:\n${qrString}\nOr copy and paste this URI into your wallet:\n${uri}\n\n`);\n        });\n      }\n\n      // Wait for session approval\n      this.logger.debug('Waiting for wallet connection...');\n      this.session = await approval();\n      this.logger.info('✅ Wallet connected successfully!');\n\n      // Extract account address\n      this.account = this.session.namespaces.eip155.accounts[0].split(':')[2];\n      return this.account;\n    } catch (error: any) {\n      if (error.message?.includes('User rejected') || error.message?.includes('User disapproved')) {\n        throw new Error('WalletConnect connection was rejected by user');\n      }\n      if (error === NO_EXISTING_CONN_ERROR) {\n        throw error;\n      }\n      throw new Error(`WalletConnect initialization failed: ${error.message}`);\n    }\n  }\n\n  async signMessage(message: string): Promise<string> {\n    return this.runRequest<string>('personal_sign', [hexlify(Buffer.from(message, 'utf8')), this.account]);\n  }\n\n  async signTransaction(transaction: Deferrable<TransactionRequest>): Promise<string> {\n    // Resolve all deferrable properties\n    const resolved = await resolveProperties(transaction);\n\n    // Fill in missing transaction fields\n    const populatedTransaction = {\n      from: this.account,\n      to: resolved.to,\n      value: resolved.value ? BigNumber.from(resolved.value).toHexString() : '0x0',\n      data: resolved.data || '0x',\n      gas: resolved.gasLimit ? BigNumber.from(resolved.gasLimit).toHexString() : undefined,\n      gasPrice: resolved.gasPrice ? BigNumber.from(resolved.gasPrice).toHexString() : undefined,\n      nonce: resolved.nonce ? BigNumber.from(resolved.nonce).toHexString() : undefined,\n    };\n\n    // Remove undefined fields\n    const txParams = Object.fromEntries(\n      Object.entries(populatedTransaction).filter(([_, value]) => value !== undefined)\n    );\n\n    const signedTx = await this.runRequest<string>('eth_signTransaction', [txParams]);\n    return signedTx;\n  }\n\n  async sendTransaction(transaction: Deferrable<TransactionRequest>): Promise<TransactionResponse> {\n    // Resolve all deferrable properties\n    const resolved = await resolveProperties(transaction);\n\n    // Fill in missing transaction fields\n    const populatedTransaction = {\n      from: this.account,\n      to: resolved.to,\n      value: resolved.value ? BigNumber.from(resolved.value).toHexString() : '0x0',\n      data: resolved.data || '0x',\n      gas: resolved.gasLimit ? BigNumber.from(resolved.gasLimit).toHexString() : undefined,\n      gasPrice: resolved.gasPrice ? BigNumber.from(resolved.gasPrice).toHexString() : undefined,\n      nonce: resolved.nonce ? BigNumber.from(resolved.nonce).toHexString() : undefined,\n    };\n\n    // Remove undefined fields\n    const txParams = Object.fromEntries(\n      Object.entries(populatedTransaction).filter(([_, value]) => value !== undefined)\n    );\n\n    // Estimate the gas, this is used to check if the tx will fail before being sent to the wallet\n    await this.provider.estimateGas(txParams);\n\n    const txHash = await this.runRequest<string>('eth_sendTransaction', [txParams]);\n\n    // WARNING this is a workaround for WalletConnect and is not actually the full transaction.\n    // The transaction is wrapped to provide the `.wait` method so we can wait for confirmation and get the receipt.\n    return this.provider._wrapTransaction(\n      {\n        ...resolved,\n        hash: txHash,\n      } as any,\n      txHash\n    );\n  }\n\n  private async runRequest<T>(method: string, params: any[]): Promise<T> {\n    await this.initializeWalletConnect();\n\n    if (!this.signClient || !this.session || !this.account) {\n      throw new Error('WalletConnect not initialized');\n    }\n\n    try {\n      const result = await this.signClient.request<T>({\n        topic: this.session.topic,\n        chainId: `eip155:${this.provider.network.chainId}`,\n        request: {\n          method,\n          params,\n        },\n      });\n\n      return result;\n    } catch (error: any) {\n      if (error.code === getSdkError('USER_REJECTED').code || error.message?.includes('User rejected')) {\n        throw new Error('Operation was rejected by user');\n      }\n      throw new Error(`Failed to send request: ${error.message}`);\n    }\n  }\n\n  async disconnect(): Promise<void> {\n    if (this.signClient && this.session) {\n      try {\n        await this.signClient.disconnect({\n          topic: this.session.topic,\n          reason: getSdkError('USER_DISCONNECTED'),\n        });\n        this.logger.info('✅ WalletConnect session disconnected');\n      } catch (error) {\n        this.logger.warn(`Failed to disconnect WalletConnect session: ${error}`);\n      }\n    }\n\n    this.signClient = null;\n    this.session = null;\n    this.account = null;\n  }\n}\n\n// Global instance for session persistence\nexport const walletConnectSigner = {\n  instance: null as WalletConnectSigner | null,\n\n  getInstance(provider: JsonRpcProvider, logger: Logger, allowNewConnect = false): WalletConnectSigner {\n    return (this.instance ??= new WalletConnectSigner(provider, logger, allowNewConnect));\n  },\n\n  async disconnect(): Promise<void> {\n    if (this.instance) {\n      await this.instance.disconnect();\n      this.instance = null;\n    }\n  },\n};\n"
  },
  {
    "path": "packages/cli/src/controller/project-controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ROOT_API_URL_PROD} from '../constants';\nimport {delay} from '../utils';\nimport {createProject, deleteProject} from './project-controller';\n\nconst projectSpec = {\n  org: process.env.SUBQL_ORG_TEST,\n  projectName: 'mocked_Project',\n  ipfs: 'QmaVh8DGzuRCJZ5zYEDxXQsXYqP9HihjjeuxNNteSDq8xX',\n  subtitle: '',\n  description: '',\n  logoUrl: '',\n};\n\n// Replace/Update your access token when test locally\nconst testAuth = process.env.SUBQL_ACCESS_TOKEN_TEST;\nconst testIf = (condition: boolean, ...args: Parameters<typeof it>) =>\n  // eslint-disable-next-line jest/valid-title, jest/no-disabled-tests\n  condition ? it(...args) : it.skip(...args);\n\njest.setTimeout(120000);\ndescribe('CLI create project and delete project', () => {\n  testIf(!!testAuth, 'Create project and delete', async () => {\n    const {description, logoUrl, org, projectName, subtitle} = projectSpec;\n    const create_project = await createProject(ROOT_API_URL_PROD, testAuth!, {\n      key: `${org}/${projectName}`,\n      subtitle,\n      logoUrl,\n      type: 1,\n      name: projectName,\n      description,\n      apiVersion: 'v2',\n      tag: [],\n    });\n    await delay(10);\n    const delete_project = await deleteProject(testAuth!, org!, projectName, ROOT_API_URL_PROD);\n    // eslint-disable-next-line jest/no-standalone-expect\n    expect(create_project.key).toMatch(`${process.env.SUBQL_ORG_TEST}/mocked_project`);\n    // eslint-disable-next-line jest/no-standalone-expect\n    expect(delete_project).toMatch(`${process.env.SUBQL_ORG_TEST}/mocked_project`);\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/project-controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport axios from 'axios';\nimport {CreateProject, ProjectDataType} from '../types';\nimport {errorHandle} from '../utils';\n\ninterface CreateProjectResponse {\n  key: string;\n}\nexport const suffixFormat = (value: string): string => {\n  return value\n    .replace(/(^\\s*)|(\\s*$)/g, '')\n    .replace(/\\s+/g, '-')\n    .toLowerCase();\n};\n\nexport async function getProject(url: string, authToken: string, key: string): Promise<ProjectDataType | undefined> {\n  try {\n    const res = await axios<ProjectDataType>({\n      headers: {\n        Authorization: `Bearer ${authToken}`,\n      },\n      method: 'get',\n      url: `/subqueries/${key}`,\n      baseURL: url,\n    });\n    return res.data as unknown as ProjectDataType;\n  } catch (e) {\n    if (axios.isAxiosError(e) && e.response?.status === 404) {\n      return undefined;\n    }\n\n    console.log('ERRROR', e);\n    throw errorHandle(e, 'Failed to get project:');\n  }\n}\n\nexport async function createProject(\n  url: string,\n  authToken: string,\n  body: CreateProject\n): Promise<CreateProjectResponse> {\n  try {\n    const res = await axios<CreateProjectResponse>({\n      headers: {\n        Authorization: `Bearer ${authToken}`,\n      },\n      method: 'post',\n      url: 'subqueries',\n      baseURL: url,\n      data: {\n        gitRepository: '', // Deprecated\n        ...body,\n      },\n    });\n    return res.data as unknown as CreateProjectResponse;\n  } catch (e) {\n    throw errorHandle(e, 'Failed to create project:');\n  }\n}\n\nexport async function deleteProject(\n  authToken: string,\n  organization: string,\n  project_name: string,\n  url: string\n): Promise<string> {\n  const key = `${organization}/${project_name.toLowerCase()}`;\n  try {\n    await axios({\n      headers: {\n        Authorization: `Bearer ${authToken}`,\n      },\n      method: 'delete',\n      url: `subqueries/${key}`,\n      baseURL: url,\n    });\n    return `${key}`;\n  } catch (e) {\n    throw errorHandle(e, 'Failed to delete project:');\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/controller/publish-controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {mapToObject, ReaderFactory, toJsonObject} from '@subql/common';\nimport {parseProjectManifest} from '@subql/common-substrate';\nimport {rimraf} from 'rimraf';\nimport {createMultiChainTestProject, createTestProject} from '../createProject.fixtures';\nimport {getDirectoryCid, uploadToIpfs} from './publish-controller';\n\n// Replace/Update your access token when test locally\nconst testAuth = process.env.SUBQL_ACCESS_TOKEN_TEST!;\n\njest.setTimeout(300_000); // 300s\ndescribe('Cli publish', () => {\n  let projectDir: string;\n  let multiChainProjectDir: string;\n  let fullPaths: string[];\n  beforeAll(async () => {\n    const res = await Promise.all([createTestProject(), createMultiChainTestProject()]);\n    projectDir = res[0];\n    multiChainProjectDir = res[1].multichainManifestPath;\n    fullPaths = res[1].fullPaths;\n  });\n\n  afterAll(async () => {\n    try {\n      if (!projectDir) return;\n      await rimraf(projectDir);\n    } catch (e) {\n      console.warn('Failed to clean up tmp dir after test', e);\n    }\n  });\n\n  it('should upload appropriate project to IPFS', async () => {\n    const cid = await uploadToIpfs([projectDir], testAuth);\n    expect(cid).toBeDefined();\n  });\n\n  it('convert to deployment and removed descriptive field', async () => {\n    const reader = await ReaderFactory.create(projectDir);\n    const manifest = parseProjectManifest(await reader.getProjectSchema());\n    const deployment = manifest.toDeployment();\n    expect(deployment).not.toContain('author');\n    expect(deployment).not.toContain('endpoint');\n    expect(deployment).not.toContain('dictionary');\n    expect(deployment).not.toContain('description');\n    expect(deployment).not.toContain('repository');\n\n    expect(deployment).toContain('chainId');\n    expect(deployment).toContain('specVersion');\n    expect(deployment).toContain('dataSources');\n  });\n\n  it('convert js object to JSON object', () => {\n    const mockMap = new Map<number | string, string>([\n      [1, 'aaa'],\n      ['2', 'bbb'],\n    ]);\n    expect(toJsonObject({map: mockMap, obj: {abc: 111}})).toStrictEqual({\n      map: {'1': 'aaa', '2': 'bbb'},\n      obj: {abc: 111},\n    });\n    expect(mapToObject(mockMap)).toStrictEqual({'1': 'aaa', '2': 'bbb'});\n  });\n\n  it('Get directory CID from multi-chain project', async () => {\n    const cidMap = await uploadToIpfs(fullPaths, testAuth, multiChainProjectDir);\n    const directoryCid = getDirectoryCid(cidMap);\n    expect(directoryCid).toBeDefined();\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/controller/publish-controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport fs from 'fs';\nimport path from 'path';\nimport {\n  ReaderFactory,\n  IPFS_WRITE_ENDPOINT,\n  isFileReference,\n  validateCommonProjectManifest,\n  mapToObject,\n  getProjectNetwork,\n  IPFSHTTPClientLite,\n} from '@subql/common';\nimport {Reader} from '@subql/types-core';\nimport {loadDependency} from '../modulars';\n\nconst PIN_SERVICE = 'onfinality';\n\nexport async function createIPFSFile(root: string, manifest: string, cid: string): Promise<void> {\n  const {name} = path.parse(manifest);\n  const MANIFEST_FILE = path.join(root, `.${name}-cid`);\n  try {\n    await fs.promises.writeFile(MANIFEST_FILE, cid, 'utf8');\n  } catch (e) {\n    throw new Error(`Failed to create CID file: ${e}`);\n  }\n}\n\nexport async function uploadToIpfs(\n  projectPaths: string[],\n  authToken?: string,\n  multichainProjectPath?: string,\n  ipfsEndpoint?: string,\n  directory?: string\n): Promise<Map<string, string>> {\n  const projectToReader: Record<string, Reader> = {};\n\n  await Promise.all(\n    projectPaths.map(async (projectPath) => {\n      const reader = await ReaderFactory.create(projectPath);\n      projectToReader[projectPath] = reader;\n    })\n  );\n\n  const contents: {path: string; content: string}[] = [];\n\n  let ipfs: IPFSHTTPClientLite | undefined;\n  if (ipfsEndpoint) {\n    ipfs = new IPFSHTTPClientLite({url: ipfsEndpoint});\n  }\n\n  for (const project in projectToReader) {\n    const reader = projectToReader[project];\n    const schema = await reader.getProjectSchema();\n\n    validateCommonProjectManifest(schema);\n\n    const networkFamily = getProjectNetwork(schema);\n    const module = loadDependency(networkFamily, project);\n    assert(module, `Failed to load module for network ${networkFamily}`);\n\n    let manifest;\n\n    try {\n      manifest = module.parseProjectManifest(schema).asImpl;\n    } catch (e) {\n      throw new Error(`Failed to parse project manifest for network ${networkFamily}`, {cause: e});\n    }\n\n    if (manifest === null) {\n      throw new Error('Unable to parse project manifest');\n    }\n\n    assert(reader.root, 'Reader root is not set');\n    // the JSON object conversion must occur on manifest.deployment\n    const deployment = await replaceFileReferences(reader.root, manifest.deployment, authToken, ipfs);\n\n    // Use JSON.* to convert Map to Object\n    contents.push({\n      path: path.join(directory ?? '', path.basename(project)),\n      content: deployment.toYaml(),\n    });\n  }\n\n  if (multichainProjectPath) {\n    const content = fs.readFileSync(multichainProjectPath);\n    contents.push({\n      path: path.join(directory ?? '', path.basename(multichainProjectPath)),\n      content: content.toString(),\n    });\n  }\n\n  // Upload schema\n  return uploadFiles(contents, authToken, multichainProjectPath !== undefined, ipfs);\n}\n\n/* Recursively finds all FileReferences in an object and replaces the files with IPFS references */\nasync function replaceFileReferences<T extends Record<string, any>>(\n  projectDir: string,\n  input: T,\n  authToken?: string,\n  ipfs?: IPFSHTTPClientLite\n): Promise<T> {\n  if (Array.isArray(input)) {\n    return (await Promise.all(\n      input.map((val) => replaceFileReferences(projectDir, val, authToken, ipfs))\n    )) as unknown as T;\n  } else if (typeof input === 'object' && input !== null) {\n    if (input instanceof Map) {\n      input = mapToObject(input) as T;\n    }\n    if (isFileReference(input)) {\n      const filePath = path.resolve(projectDir, input.file);\n      const content = fs.readFileSync(path.resolve(projectDir, input.file));\n      input.file = await uploadFile({content: content.toString(), path: filePath}, authToken, ipfs).then(\n        (cid) => `ipfs://${cid}`\n      );\n    }\n    const keys = Object.keys(input).filter((key) => key !== '_deployment') as unknown as (keyof T)[];\n    await Promise.all(\n      keys.map(async (key) => {\n        // this is the loop\n        input[key] = await replaceFileReferences(projectDir, input[key], authToken, ipfs);\n      })\n    );\n  }\n\n  return input;\n}\n\nconst fileMap = new Map<string | fs.ReadStream, Promise<string>>();\n\nexport async function uploadFiles(\n  contents: {path: string; content: string}[],\n  authToken?: string,\n  isMultichain?: boolean,\n  ipfs?: IPFSHTTPClientLite\n): Promise<Map<string, string>> {\n  const fileCidMap: Map<string, string> = new Map();\n\n  if (ipfs) {\n    try {\n      const results = await ipfs.addAll(contents, {wrapWithDirectory: isMultichain});\n\n      for (const result of results) {\n        fileCidMap.set(result.path, result.cid.toString());\n      }\n    } catch (e) {\n      throw new Error(`Publish project to provided IPFS gateway failed`, {cause: e});\n    }\n  }\n\n  const ipfsWrite = new IPFSHTTPClientLite({\n    url: IPFS_WRITE_ENDPOINT,\n    headers: authToken ? {Authorization: `Bearer ${authToken}`} : undefined,\n  });\n\n  try {\n    const results = await ipfsWrite.addAll(contents, {pin: true, cidVersion: 0, wrapWithDirectory: isMultichain});\n    for (const result of results) {\n      fileCidMap.set(result.path, result.cid);\n\n      await ipfsWrite.pinRemoteAdd(result.cid, {service: PIN_SERVICE}).catch((e) => {\n        console.warn(\n          `Failed to pin file ${result.path}. There might be problems with this file being accessible later. ${e}`\n        );\n      });\n    }\n  } catch (e) {\n    throw new Error(`Publish project files to IPFS failed`, {cause: e});\n  }\n\n  return fileCidMap;\n}\n\nexport async function uploadFile(\n  contents: {path: string; content: string},\n  authToken?: string,\n  ipfs?: IPFSHTTPClientLite\n): Promise<string> {\n  const pathPromise = fileMap.get(contents.path);\n  if (pathPromise !== undefined) {\n    return pathPromise;\n  }\n\n  let pendingClientCid: Promise<string> = Promise.resolve('');\n  if (ipfs) {\n    pendingClientCid = ipfs\n      .add(contents.content, {pin: true, cidVersion: 0})\n      .then((result) => result.cid.toString())\n      .catch((e) => {\n        throw new Error(`Publish file to provided IPFS failed`, {cause: e});\n      });\n  }\n\n  const ipfsWrite = new IPFSHTTPClientLite({\n    url: IPFS_WRITE_ENDPOINT,\n    headers: authToken ? {Authorization: `Bearer ${authToken}`} : undefined,\n  });\n\n  const pendingCid = ipfsWrite\n    .add(contents.content, {pin: true, cidVersion: 0})\n    .then((result) => result.cid)\n    .then(async (cid) => {\n      try {\n        await ipfsWrite.pinRemoteAdd(cid, {service: PIN_SERVICE});\n        return cid.toString();\n      } catch (e) {\n        console.warn(\n          `Failed to pin file ${contents.path}. There might be problems with this file being accessible later. ${e}`\n        );\n        return cid.toString();\n      }\n    })\n    .catch((e) => {\n      throw new Error(`Publish project to default IPFS failed`, {cause: e});\n    });\n\n  fileMap.set(contents.path, pendingCid);\n\n  const [cid, clientCid] = await Promise.all([pendingCid, pendingClientCid]);\n\n  if (clientCid && clientCid !== cid) {\n    throw new Error(`Published and received IPFS cid not identical \\n,\n    Client IPFS: ${clientCid}, IPFS: ${cid}`);\n  }\n\n  return cid;\n}\n\nexport function getDirectoryCid(fileToCidMap: Map<string, string>): string | undefined {\n  const directoryCid = fileToCidMap.get('');\n  return directoryCid;\n}\n"
  },
  {
    "path": "packages/cli/src/controller/validate.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NETWORK_FAMILY} from '@subql/common';\nimport {isValidEnum} from '../utils';\n\ndescribe('Tests for validate, CLI', () => {\n  it('ensure EnumValidator', () => {\n    expect(isValidEnum(NETWORK_FAMILY, 'Cosmos')).toBe(true);\n    expect(isValidEnum(NETWORK_FAMILY, 'bad')).toBe(false);\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/createProject.fixtures.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport childProcess from 'child_process';\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {getMultichainManifestPath, getProjectRootAndManifest} from '@subql/common';\nimport fetch from 'cross-fetch';\nimport Build from './commands/build';\nimport Codegen from './commands/codegen';\nimport {cloneProjectTemplate, ExampleProjectInterface, prepare} from './controller/init-controller';\nimport {ProjectSpecV1_0_0} from './types';\n\nconst projectSpecV1_0_0: ProjectSpecV1_0_0 = {\n  name: 'mocked_starter',\n  chainId: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n  endpoint: 'wss://rpc.polkadot.io/public-ws',\n  author: 'jay',\n  description: 'this is test for init controller',\n  runner: {\n    node: {\n      name: '@subql/node',\n      version: '>=1.0.0',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n};\n\nconst multiProjectSpecV1_0_0: ProjectSpecV1_0_0 = {\n  name: 'multi_mocked_starter',\n  chainId: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n  endpoint: 'https://arbitrum.llamarpc.com',\n  author: 'jay',\n  description: 'this is test for init controller',\n  runner: {\n    node: {\n      name: '@subql/node-ethereum',\n      version: '>=3.0.0',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n};\n\nasync function getExampleProject(networkFamily: string, network: string): Promise<ExampleProjectInterface> {\n  const res = await fetch('https://raw.githubusercontent.com/subquery/templates/main/dist/output.json');\n\n  if (!res.ok) {\n    throw new Error('Failed to get template');\n  }\n\n  const templates = (await res.json()) as {\n    code: string;\n    networks: {code: string; examples: ExampleProjectInterface[]}[];\n  }[];\n  const template = templates\n    .find((t) => t.code === networkFamily)\n    ?.networks.find((n) => n.code === network)\n    ?.examples.find((e) => e.remote === 'https://github.com/subquery/subql-starter');\n  assert(template, 'Failed to get template');\n  return template;\n}\n\nasync function installAndBuild(projectDir: string): Promise<void> {\n  // Install dependencies\n  childProcess.execSync(`npm i`, {cwd: projectDir});\n\n  // NODE_ENV should be \"test\" we need to create an env file for it\n  const envFile = path.join(projectDir, '.env');\n  if (fs.existsSync(envFile)) {\n    await fs.promises.copyFile(envFile, path.join(projectDir, `.env.${process.env.NODE_ENV}`));\n  }\n\n  await Codegen.run([projectDir]);\n  await Build.run([projectDir]);\n}\n\nexport async function createTestProject(): Promise<string> {\n  const tmpdir = await fs.promises.mkdtemp(`${os.tmpdir()}${path.sep}`);\n  const projectDir = path.join(tmpdir, projectSpecV1_0_0.name);\n\n  const exampleProject = await getExampleProject('polkadot', 'polkadot');\n\n  const projectPath = await cloneProjectTemplate(tmpdir, projectSpecV1_0_0.name, exampleProject);\n  await prepare(projectPath, projectSpecV1_0_0);\n\n  await installAndBuild(projectDir);\n\n  return projectDir;\n}\n\nexport async function createMultiChainTestProject(): Promise<{multichainManifestPath: string; fullPaths: string[]}> {\n  const tmpdir = await fs.promises.mkdtemp(`${os.tmpdir()}${path.sep}`);\n  const projectDir = path.join(tmpdir, multiProjectSpecV1_0_0.name);\n\n  const exampleProject = await getExampleProject('multi', 'multi');\n\n  await cloneProjectTemplate(tmpdir, multiProjectSpecV1_0_0.name, exampleProject);\n\n  await installAndBuild(projectDir);\n\n  const project = getProjectRootAndManifest(projectDir);\n  const fullPaths = project.manifests.map((manifest) => path.join(project.root, manifest));\n  let multichainManifestPath = getMultichainManifestPath(projectDir);\n  if (!multichainManifestPath) {\n    throw new Error(\n      'Selected project is not multi-chain. Please set correct file.\\n\\n https://academy.subquery.network/build/multi-chain.html'\n    );\n  }\n\n  multichainManifestPath = path.join(project.root, multichainManifestPath);\n  return {multichainManifestPath, fullPaths};\n}\n"
  },
  {
    "path": "packages/cli/src/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport {run} from '@oclif/core';\n"
  },
  {
    "path": "packages/cli/src/jsonrpc/client/http.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport axios, {AxiosInstance} from 'axios';\nimport {Response, ResponseError, ResponseSuccess, ResponseSuccessType} from './types';\n\nconst TIMEOUT = 5000;\n\nlet id = 0;\nexport class HttpJsonRpcClient {\n  protected axios: AxiosInstance;\n  constructor(url: string) {\n    this.axios = axios.create({\n      baseURL: url,\n      timeout: TIMEOUT,\n    });\n  }\n\n  async send<T extends ResponseSuccessType>(method: string, params?: any[]): Promise<T> {\n    const res = await this.axios.post<Response<T>>('', {\n      jsonrpc: '2.0',\n      id: id++,\n      method,\n      params,\n    });\n    if ((res.data as ResponseError).error) {\n      // eslint-disable-next-line @typescript-eslint/only-throw-error\n      throw (res.data as ResponseError).error;\n    }\n    return (res.data as ResponseSuccess<T>).result;\n  }\n}\n"
  },
  {
    "path": "packages/cli/src/jsonrpc/client/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './http';\nexport * from './ws';\n"
  },
  {
    "path": "packages/cli/src/jsonrpc/client/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport interface Message<T> {\n  jsonrpc: '2.0';\n  method: string;\n  params?: T;\n}\n\nexport interface Request<T = any> extends Message<T> {\n  id: string | number;\n}\n\nexport type Notification<T = any> = Message<T>;\n\nexport interface ResponseSuccess<T extends ResponseSuccessType> {\n  id: string | number | null;\n  result: T;\n}\n\nexport type ResponseSuccessType = string | number | boolean | object | null;\n\nexport interface ResponseError {\n  id: string | number | null;\n  error: {\n    code: number;\n    message: string;\n    data?: any;\n  };\n}\n\nexport type Response<T extends ResponseSuccessType> = ResponseSuccess<T> | ResponseError;\n"
  },
  {
    "path": "packages/cli/src/jsonrpc/client/ws.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport WebSocket from 'ws';\nimport {Request, ResponseSuccessType} from './types';\n\nlet id = 0;\nexport class WsJsonRpcClient {\n  static async with<T>(url: string, callback: (client: WsJsonRpcClient) => Promise<T>): Promise<T> {\n    const client = new WsJsonRpcClient(url);\n    await client.isReady;\n    const ret = await callback(client);\n    client.destroy();\n    return ret;\n  }\n\n  isReady!: Promise<WsJsonRpcClient>;\n  protected _ws!: WebSocket;\n  protected isDestroyed = false;\n\n  protected handlers: {[id: string]: any};\n\n  constructor(protected address: string) {\n    this.handlers = {};\n    this.connect();\n  }\n\n  connect(): void {\n    try {\n      this._ws = new WebSocket(this.address);\n\n      this.isReady = new Promise((resolve) => {\n        this._ws.on('open', () => resolve(this));\n      });\n\n      this._ws.on('close', this.onSocketClose);\n      this._ws.on('message', this.onSocketMessage);\n    } catch (error) {\n      console.error(error);\n    }\n  }\n\n  async send<T extends ResponseSuccessType>(method: string, params?: any[]): Promise<T> {\n    await this.isReady;\n    const req: Request = {jsonrpc: '2.0', id: id++, method, params};\n    this._ws.send(JSON.stringify(req));\n    return new Promise<T>((resolve, reject) => {\n      this.handlers[req.id] = [resolve, reject];\n    });\n  }\n\n  destroy(): void {\n    this.isDestroyed = true;\n    this._ws.close();\n  }\n\n  private onSocketClose = (code: number, reason: Buffer): void => {\n    if (this.isDestroyed) return;\n\n    console.error(`disconnected from ${this.address} code: '${code}' reason: '${reason.toString()}'`);\n    setTimeout((): void => {\n      this.connect();\n    }, 1000);\n  };\n\n  private onSocketMessage = (dataStr: WebSocket.Data) => {\n    try {\n      const data = JSON.parse(dataStr.toString());\n      if (data.id !== undefined && data.id !== null && this.handlers[data.id]) {\n        const [resolve, reject] = this.handlers[data.id];\n        delete this.handlers[data.id];\n        if (data.error) {\n          reject(data.error);\n        } else {\n          resolve(data.result);\n        }\n      }\n    } catch (e) {\n      console.error(e);\n    }\n  };\n}\n"
  },
  {
    "path": "packages/cli/src/jsonrpc/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {HttpJsonRpcClient, WsJsonRpcClient} from './client';\n\nexport async function getGenesisHash(endpoint: string): Promise<string> {\n  const client = endpoint.startsWith('ws') ? new WsJsonRpcClient(endpoint) : new HttpJsonRpcClient(endpoint);\n  const genesisBlock = await client.send<string>('chain_getBlockHash', [0]);\n  (client as WsJsonRpcClient).destroy?.();\n  return genesisBlock;\n}\n"
  },
  {
    "path": "packages/cli/src/jsonrpc/jsonrpc.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {getGenesisHash} from './index';\n\nconst WS_ENDPOINT = 'wss://polkadot.api.onfinality.io/public-ws';\nconst HTTP_ENDPOINT = 'https://polkadot.api.onfinality.io/public';\n\nconst GENESIS_HASH = '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3';\n\ndescribe('test jsonrpc client', () => {\n  it(\"Query polkadot's genesisHash via ws endpoint\", async () => {\n    const genesisHash = await getGenesisHash(WS_ENDPOINT);\n    expect(genesisHash).toEqual(GENESIS_HASH);\n  }, 10000);\n\n  it(\"Query polkadot's genesisHash via http endpoint\", async () => {\n    const genesisHash = await getGenesisHash(HTTP_ENDPOINT);\n    expect(genesisHash).toEqual(GENESIS_HASH);\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/modulars/config.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NETWORK_FAMILY, runnerMapping} from '@subql/common';\n\nexport const networkPackages = Object.entries(runnerMapping).reduce(\n  (acc, [runner, family]) => {\n    // Special case because substrate has 2 runners\n    if (runner === '@subql/node' && family === NETWORK_FAMILY.substrate) {\n      acc[family] = '@subql/common-substrate';\n      return acc;\n    }\n    acc[family] = runner.replace('@subql/node-', '@subql/common-');\n    return acc;\n  },\n  {} as Record<NETWORK_FAMILY, string>\n);\n"
  },
  {
    "path": "packages/cli/src/modulars/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './types';\nexport * from './config';\nexport * from './moduleLoader';\n"
  },
  {
    "path": "packages/cli/src/modulars/moduleLoader.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync} from 'fs';\nimport path from 'path';\nimport {NETWORK_FAMILY} from '@subql/common';\nimport resolveFrom from 'resolve-from';\nimport {networkPackages} from './config';\nimport {ModuleCache} from './types';\n\nconst moduleCache: Partial<ModuleCache> = {};\n\nexport function loadDependency<N extends NETWORK_FAMILY>(network: N, projectDir: string): ModuleCache[N] {\n  const packageName = networkPackages[network];\n  if (!packageName) {\n    throw new Error(`Unknown network: ${network}`);\n  }\n  if (!moduleCache[network]) {\n    try {\n      // Resolve the package from the project directory, otherwise look relative to the current package\n      // We don't do this in tests because it will resolve mixed versions because dev dependenceies\n      const projectDep =\n        process.env.NODE_ENV === 'test' ? undefined : resolveFrom.silent(projectDir ?? process.cwd(), packageName);\n      moduleCache[network] = require(projectDep ?? packageName) as ModuleCache[N];\n    } catch (error) {\n      console.warn(`! Failed to load ${packageName} locally: ${error}. \\n ! Attempting to load globally`);\n      try {\n        const globalNodePath = process.env.NODE_PATH;\n        if (!globalNodePath) {\n          throw new Error(\n            `If you have installed ${packageName} globally please set the NODE_PATH environment variable. Follow this document for more details: https://nodejs.org/api/modules.html#loading-from-the-global-folders`\n          );\n        }\n        const globalModulePath = path.join(globalNodePath, packageName);\n        if (existsSync(globalModulePath)) {\n          moduleCache[network] = require(globalModulePath) as ModuleCache[N];\n        } else {\n          throw new Error(`Global module ${packageName} not found, please run \"npm i -g ${packageName}\" and retry`);\n        }\n      } catch (globalError) {\n        throw new Error(`! Failed to load dependency globally: ${packageName}`, {cause: globalError});\n      }\n    }\n  }\n  // Check dependencies actually satisfy INetworkCommonModule\n  const loadedModule = moduleCache[network];\n  if (\n    loadedModule?.parseProjectManifest === undefined ||\n    loadedModule?.isCustomDs === undefined ||\n    loadedModule?.isRuntimeDs === undefined\n  ) {\n    throw new Error(`${packageName} is not compatible, please make sure package update to latest version`);\n  }\n  return loadedModule;\n}\n"
  },
  {
    "path": "packages/cli/src/modulars/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NETWORK_FAMILY} from '@subql/common';\nimport type {INetworkCommonModule} from '@subql/types-core';\nimport type {CosmosNetworkModule} from '@subql/types-cosmos';\nimport type {EthereumNetworkModule} from '@subql/types-ethereum';\nimport type {SolanaNetworkModule} from '@subql/types-solana';\n\nexport type ModuleCache = {\n  [K in Exclude<\n    NETWORK_FAMILY,\n    NETWORK_FAMILY.cosmos | NETWORK_FAMILY.ethereum | NETWORK_FAMILY.solana\n  >]: INetworkCommonModule;\n} & {\n  [NETWORK_FAMILY.cosmos]: CosmosNetworkModule;\n  [NETWORK_FAMILY.ethereum]: EthereumNetworkModule;\n  [NETWORK_FAMILY.solana]: SolanaNetworkModule;\n};\n"
  },
  {
    "path": "packages/cli/src/template/datasource-templates.ts.ejs",
    "content": "// SPDX-License-Identifier: Apache-2.0\n\n// Auto-generated , DO NOT EDIT\n<% props.forEach(function(e){ %>\nexport function create<%= e.name %>Datasource(<% if (e.args) { %>args: <%- e.args %><% } %>): Promise<void> {\n  return createDynamicDatasource('<%= e.name %>'<% if (e.args) { %>, args<% } %>);\n}\n<% }); %>\n"
  },
  {
    "path": "packages/cli/src/template/enum.ts.ejs",
    "content": "// SPDX-License-Identifier: Apache-2.0\n\n// Auto-generated , DO NOT EDIT\n<% props.enums.forEach(function(e){ %>\nexport enum <%= e.name %> {\n<% e.values.forEach(function(value){ %>\n    <%= value %> = \"<%= value %>\",\n<% }); %>\n}\n\n<% }); %>\n"
  },
  {
    "path": "packages/cli/src/template/interface.ts.ejs",
    "content": "// SPDX-License-Identifier: Apache-2.0\n\n// Auto-generated , DO NOT EDIT\n<% props.jsonInterfaces.forEach(function(interface){ %>\nexport interface <%= helper.upperFirst(interface.interfaceName) %> {\n<% interface.fields.forEach(function(field){ %>\n    <%= field.name %><%= field.required ? \"\" : \"?\" %>: <%= field.type %><%= field.isArray ? \"[]\" : \"\" %>;\n<% }); %>\n}\n\n<% }); %>\n"
  },
  {
    "path": "packages/cli/src/template/model.ts.ejs",
    "content": "// Auto-generated , DO NOT EDIT\nimport {Entity, FunctionPropertyNames, FieldsExpression, GetOptions } from \"@subql/types-core\";\nimport assert from 'assert';\n<%if (props.importJsonInterfaces.length !== 0) { %>\nimport { <% props.importJsonInterfaces.forEach(function(interface){ %>\n    <%= interface %>,\n<% }); %>} from '../interfaces';\n<% } %>\n<%if (props.importEnums.length !== 0) { %>\nimport {<% props.importEnums.forEach(function(e){ %>\n    <%= e %>,\n<% }); %>} from '../enums';<% } %>\n\nexport type <%= props.className %>Props = Omit<<%=props.className %>, NonNullable<FunctionPropertyNames<<%=props.className %>>> | '_name'>;\n\n/*\n * Compat types allows for support of alternative `id` types without refactoring the node\n */\ntype Compat<%= props.className %>Props = Omit<<%= props.className %>Props, 'id'> & { id: string; };\ntype CompatEntity = Omit<Entity, 'id'> & { id: <%=props.idType %>; };\n\nexport class <%= props.className %> implements CompatEntity {\n\n    constructor(\n        <% props.fields.forEach(function(field) { if (field.required) { %>\n        <%= field.name %>: <%= field.type %><%= field.isArray ? \"[]\" : \"\" %>,<% } %><% }) %>\n    ) {\n        <% props.fields.filter(function(field) {return field.required === true;}).forEach(function(requiredField) { %>this.<%= requiredField.name %> = <%= requiredField.name %>;\n        <% }) %>\n    }\n\n    <% props.fields.forEach(function(field){ %>public <%= field.name %><%= field.required ? \"\" : \"?\" %>: <%= field.type %><%= field.isArray ? \"[]\" : \"\" %>;\n    <% }); %>\n\n    get _name(): string {\n        return '<%=props.entityName %>';\n    }\n\n    async save(): Promise<void> {\n        const id = this.id;\n        assert(id !== null, \"Cannot save <%=props.className %> entity without an ID\");\n        await store.set('<%=props.entityName %>', id.toString(), this as unknown as Compat<%=props.className %>Props);\n    }\n\n    static async remove(id: <%=props.idType %>): Promise<void> {\n        assert(id !== null, \"Cannot remove <%=props.className %> entity without an ID\");\n        await store.remove('<%=props.entityName %>', id.toString());\n    }\n\n    static async get(id: <%=props.idType %>): Promise<<%=props.className %> | undefined> {\n        assert((id !== null && id !== undefined), \"Cannot get <%=props.className %> entity without an ID\");\n        const record = await store.get('<%=props.entityName %>', id.toString());\n        if (record) {\n            return this.create(record as unknown as <%= props.className %>Props);\n        } else {\n            return;\n        }\n    }\n<% props.indexedFields.forEach(function(field){ %>\n    <% if (field.unique) {%>\n\n    static async getBy<%=helper.upperFirst(field.name) %>(<%=field.name %>: <%=field.type %>): Promise<<%=props.className %> | undefined> {\n        const record = await store.getOneByField('<%=props.entityName %>', '<%=field.name %>', <%=field.name %>);\n        if (record) {\n            return this.create(record as unknown as <%= props.className %>Props);\n        } else {\n            return;\n        }\n    }\n    <% } else { %>static async getBy<%=helper.upperFirst(field.name) %>(<%=field.name %>: <%=field.type %>, options: GetOptions<Compat<%=props.className %>Props>): Promise<<%=props.className %>[]> {\n        // Inputs must be cast as the store interface has not been updated to support alternative ID types\n        const records = await store.getByField<Compat<%=props.className %>Props>('<%=props.entityName %>', '<%=field.name %>', <%=field.name %>, options);\n        return records.map(record => this.create(record as unknown as <%= props.className %>Props));\n    }\n    <% }%>\n<% }); %>\n\n    /**\n     * Gets entities matching the specified filters and options.\n     *\n     * ⚠️ This function will first search cache data followed by DB data. Please consider this when using order and offset options.⚠️\n     * */\n    static async getByFields(filter: FieldsExpression<<%= props.className %>Props>[], options: GetOptions<<%= props.className %>Props>): Promise<<%=props.className %>[]> {\n        const records = await store.getByFields<Compat<%=props.className %>Props>('<%=props.entityName %>', filter  as unknown as FieldsExpression<Compat<%=props.className %>Props>[], options as unknown as GetOptions<Compat<%=props.className %>Props>);\n        return records.map(record => this.create(record as unknown as <%= props.className %>Props));\n    }\n\n    static create(record: <%= props.className %>Props): <%=props.className %> {\n        assert(record.id !== undefined && record.id !== null, \"id must be provided\");\n        const entity = new this(\n        <% props.fields.filter(function(field) {return field.required === true;}).forEach(function(requiredField) { %>    record.<%= requiredField.name %>,\n        <% }) %>);\n        Object.assign(entity,record);\n        return entity;\n    }\n}\n"
  },
  {
    "path": "packages/cli/src/template/models-index.ts.ejs",
    "content": "// SPDX-License-Identifier: Apache-2.0\n\n// Auto-generated , DO NOT EDIT\n<% props.classNames.forEach(function(className){ %>\nexport {<%= helper.upperFirst(className) %>} from \"./<%= className %>\"\n<% }); %>\n"
  },
  {
    "path": "packages/cli/src/template/project.ts.ejs",
    "content": "// Auto-generated , please modify to ensure correctness\n<% const {network, projectClass, projectDatasourceKind, projectHandlerKind} = props.importTypes; %>\nimport {\n    <%= projectClass %>,\n    <%= projectDatasourceKind %>,\n    <%= projectHandlerKind %>,\n} from \"@subql/types-<%= network %>\";\n\n// Can expand the Datasource processor types via the generic param\nconst project: <%= projectClass %>= {\n    specVersion: \"1.0.0\",\n    version: \"<%= props.projectJson.version %>\",\n    name: \"<%= props.projectJson.name %>\",\n    description: \"<%= props.projectJson.description%>\",\n    runner: {\n        node: {\n            name: \"<%= props.projectJson.runner.node.name%>\",\n            version: \"<%= props.projectJson.runner.node.version%>\",\n        },\n        query: {\n            name: \"@subql/query\",\n            version: \"*\",\n        },\n    },\n    schema: {\n        file: \"./schema.graphql\",\n    },\n    network: {\n        chainId: \"<%= props.projectJson.network.chainId%>\",\n        /**\n        * These endpoint(s) should be public non-pruned archive node\n        * We recommend providing more than one endpoint for improved reliability, performance, and uptime\n        * Public nodes may be rate limited, which can affect indexing speed\n        * When developing your project we suggest getting a private API key\n        * If you use a rate limited endpoint, adjust the --batch-size and --workers parameters\n        * These settings can be found in your docker-compose.yaml, they will slow indexing but prevent your project being rate limited\n        */\n        endpoint: [\"https://example-rpc/public\"],\n    },\n    dataSources: [<% props.projectJson.dataSources.forEach(function(dataSource){ %>\n        {\n            kind: <%= dataSource.migrateDatasourceType %>,<%if (dataSource.startBlock!==undefined) { %>\n            startBlock: <%= dataSource.startBlock %>,<% } %><%if (dataSource.options) { %>\n            options: {\n                abi : \"<%= dataSource.options.abi %>\",\n                address : \"<%= dataSource.options.address %>\"\n            },<% } %>\n            assets: new Map(<%- JSON.stringify(Array.from(dataSource.assets)) %>),\n            mapping:{\n                file: \"./dist/index.js\",\n                handlers:[<% dataSource.mapping.handlers.forEach(function(handler){ %>\n                    {\n                        kind: <%= handler.migrateHandlerType %>,\n                        handler: \"<%= handler.handler %>\",<%if (handler.filter) { %>\n                        filter: <%- JSON.stringify(handler.filter) %>,<% } %>\n                    },<% }); %>\n                ]\n            }\n        },<% }); %>\n    ],<%if (props.projectJson.templates && props.projectJson.templates.length!==0) { %>\n    templates: [<% props.projectJson.templates.forEach(function(template){ %>\n        {\n            kind: <%= template.migrateDatasourceType %>,<%if (template.options) { %>\n            options: {\n            abi : \"<%= template.options.abi %>\",\n            },\n            <% } %>\n            assets: new Map(<%- JSON.stringify(Array.from(template.assets)) %>),\n            mapping:{\n                file: \"./dist/index.js\",\n                handlers:[<% template.mapping.handlers.forEach(function(handler){ %>\n                    {\n                    kind: <%= handler.migrateHandlerType %>,\n                    handler: \"<%= handler.handler %>\",<%if (handler.filter) { %>\n                        filter: <%- JSON.stringify(handler.filter) %>,<% } %>\n                    },<% }); %>\n                ]\n            }\n        },<% }); %>\n    ],<% } %>\n    repository: \"<%= props.projectJson.repository%>\",\n};\n\n// Must set default to the project instance\nexport default project;\n"
  },
  {
    "path": "packages/cli/src/template/scaffold-handlers.ts.ejs",
    "content": "// SPDX-License-Identifier: Apache-2.0\n\n// Auto-generated\n<% props.abis.forEach(function (abi) { %>\nimport {<% abi.handlers.forEach(function (handler) { %><%= handler.argType %>,<% })%>} from \"../types/abi-interfaces/<%= abi.name %>\";\n<% })%>\n<% props.abis.forEach(function (abi) { %><% abi.handlers.forEach(function (handler) { %>\nexport async function <%=handler.name %>(<%=handler.argName%>: <%=handler.argType %> ): Promise<void> {\n// Place your code logic here\n}\n<% })%><% })%>"
  },
  {
    "path": "packages/cli/src/template/types-index.ts.ejs",
    "content": "// SPDX-License-Identifier: Apache-2.0\n\n// Auto-generated , DO NOT EDIT\n<%if (props.exportTypes.models){%>export * from \"./models\"; <% } %>\n<%if (props.exportTypes.interfaces){%>export * from \"./interfaces\";<% } %>\n<%if (props.exportTypes.enums){%>export * from \"./enums\";<% } %>\n<%if (props.exportTypes.datasources){%>export * from \"./datasources\";<% } %>\n"
  },
  {
    "path": "packages/cli/src/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ProjectNetworkConfig, RunnerSpecs} from '@subql/types-core';\nimport {z} from 'zod';\nimport {DEFAULT_DEPLOYMENT_TYPE} from './constants';\n\nexport interface ProjectSpecBase {\n  name: string;\n  author: string;\n  description?: string;\n  endpoint: ProjectNetworkConfig['endpoint'];\n}\n\nexport interface QueryAdvancedOpts {\n  unsafe?: boolean;\n  subscription?: boolean;\n  queryTimeout?: number;\n  maxConnection?: number;\n  queryLimit?: number;\n  aggregate?: boolean;\n}\n\nexport const IndexerAdvancedOptsSchema = z.object({\n  unsafe: z.boolean().optional(),\n  batchSize: z.number().optional(),\n  subscription: z.boolean().optional(),\n  historicalData: z.boolean().optional(),\n  unfinalizedBlocks: z.boolean().optional(),\n  proofOfIndex: z.boolean().optional(),\n  storeCacheThreshold: z.number().optional(),\n  disableStoreCacheAsync: z.boolean().optional(),\n});\nexport type IndexerAdvancedOpts = z.infer<typeof IndexerAdvancedOptsSchema>;\n\nexport type ProjectSpecV0_0_1 = ProjectSpecBase;\n\nexport interface ProjectSpecV1_0_0 extends ProjectSpecBase {\n  chainId: string;\n  runner: RunnerSpecs;\n}\n\nexport interface ProjectSpecV0_2_0 extends ProjectSpecBase {\n  genesisHash: string;\n}\n\nexport function isProjectSpecV0_2_0(projectSpec: ProjectSpecBase): projectSpec is ProjectSpecV0_2_0 {\n  return !!(projectSpec as ProjectSpecV0_2_0).genesisHash;\n}\n\nexport function isProjectSpecV1_0_0(projectSpec: ProjectSpecBase): projectSpec is ProjectSpecV1_0_0 {\n  return !!(projectSpec as ProjectSpecV1_0_0).chainId;\n}\n\nexport interface ValidateDataType {\n  valid: boolean;\n  manifestFile: string | null;\n  chainId: string | null;\n  runner?: RunnerSpecs | null;\n  manifestRunner?: RunnerSpecs | null;\n  errorMessage?: string;\n}\n\nexport interface CreateProject {\n  key: string;\n  name: string;\n  subtitle?: string;\n  description?: string;\n  logoUrl?: string;\n  apiVersion: 'v2' | 'v3';\n  type: 1 | 2 | 3; // MS | NETWORK | SUBGRAPH\n  tag: string[];\n  hide?: boolean;\n  dedicateDBKey?: string;\n}\n\nexport const DeploymentDataTypeSchema = z.object({\n  projectKey: z.string(),\n  version: z.string(),\n  status: z.string(),\n  indexerImage: z.string(),\n  queryImage: z.string(),\n  endpoint: z.string(),\n  dictEndpoint: z.string(),\n  type: z.string(),\n  createdAt: z.string(),\n  updatedAt: z.string(),\n  id: z.number(),\n  subFolder: z.string(),\n  queryUrl: z.string(),\n  configuration: z.object({\n    config: z.object({\n      query: z.record(z.string(), z.unknown()),\n      indexer: IndexerAdvancedOptsSchema,\n      role: z.string(),\n      chainId: z.string(),\n    }),\n  }),\n});\nexport type DeploymentDataType = z.infer<typeof DeploymentDataTypeSchema>;\n\nexport interface ProjectDataType {\n  createdAt: string;\n  updatedAt: string;\n  id: number;\n  projectKey: string;\n  version: string;\n  status: string;\n  cluster: string;\n  indexerImage: string;\n  queryImage: string;\n  subFolder: string;\n  endpoint: string;\n  dictEndpoint: string;\n  type: string;\n  queryUrl: string;\n  configuration: {\n    config: {\n      query: unknown;\n      indexer: unknown;\n    };\n  };\n  role: string;\n  chainId: string;\n  apiVersion: string;\n}\n\nexport interface V3DeploymentInput {\n  cid: string;\n  type: DeploymentType;\n  queryImageVersion: string;\n  queryAdvancedSettings: {\n    query: QueryAdvancedOpts;\n  };\n  chains: V3DeploymentIndexerType[];\n}\n\nexport interface V3DeploymentIndexerType {\n  cid: string;\n  dictEndpoint?: string;\n  endpoint: string | string[];\n  indexerImageVersion: string;\n  indexerAdvancedSettings: {\n    indexer: IndexerAdvancedOpts;\n  };\n  extraParams?: {\n    workers?: {\n      num?: number;\n    };\n  };\n}\n\nexport interface MultichainDataFieldType {\n  [key: string]: string;\n}\n\nexport interface ProjectDeploymentInterface {\n  chains: V3DeploymentIndexerType[];\n  projectInfo?: ProjectDataType;\n  flags: DeploymentFlagsInterface;\n  ipfsCID: string;\n  authToken: string;\n}\n\nexport const DeploymentTypeSchema = z.enum(['primary', 'stage']);\nexport type DeploymentType = z.infer<typeof DeploymentTypeSchema>;\n\nexport const DeploymentOptions = z.object({\n  org: z.string({description: 'The Github organization name'}),\n  projectName: z.string({description: 'Project name'}),\n  type: DeploymentTypeSchema.default(DEFAULT_DEPLOYMENT_TYPE),\n  indexerVersion: z.string({description: 'Indexer image version'}).optional(),\n  queryVersion: z.string({description: 'Query image version'}).optional(),\n  dict: z.string({description: 'A dictionary endpoint for this projects network'}).optional(),\n  endpoint: z.string({description: 'The RPC endpoint to be used by the project'}).optional(),\n\n  // Indexer flags\n  indexerUnsafe: z\n    .boolean({description: 'Run the indexer in unsafe mode, this will disable some checks'})\n    .optional()\n    .default(false),\n  indexerBatchSize: z.number({description: 'The batch size for the indexer'}).optional().default(30),\n  indexerSubscription: z.boolean({description: 'Enable subscription for the indexer'}).optional().default(false),\n  disableHistorical: z.boolean({description: 'Disable historical data indexing'}).optional().default(false),\n  indexerUnfinalized: z.boolean({description: 'Enable unfinalized blocks indexing'}).optional().default(false),\n  indexerStoreCacheThreshold: z\n    .number({description: 'The number of items kept in the cache before flushing'})\n    .optional(),\n  disableIndexerStoreCacheAsync: z.boolean({description: 'Disable async store cache'}).optional().default(false),\n  indexerWorkers: z.number({description: 'The number of workers for the indexer'}).optional(),\n\n  // Query flags\n  queryUnsafe: z\n    .boolean({description: 'Run the query in unsafe mode, this will disable some checks'})\n    .optional()\n    .default(false),\n  querySubscription: z.boolean({description: 'Enable subscription queries'}).optional().default(false),\n  queryTimeout: z.number({description: 'The timeout for the query'}).optional(),\n  queryMaxConnection: z.number({description: 'The maximum number of connections for the query'}).optional(),\n  queryAggregate: z.boolean({description: 'Enable aggregate queries'}).optional().default(false),\n  queryLimit: z.number({description: 'The maximum number of results for the query'}).optional(),\n\n  useDefaults: z\n    .boolean({description: 'Use default values for indexerVersion, queryVersion, dictionary, endpoint'})\n    .optional()\n    .default(true),\n});\nexport type DeploymentFlagsInterface = z.infer<typeof DeploymentOptions>;\n\nexport interface GenerateDeploymentChainInterface {\n  cid: string;\n  dictEndpoint?: string;\n  endpoint: string[];\n  indexerImageVersion: string;\n  flags: DeploymentFlagsInterface;\n}\n"
  },
  {
    "path": "packages/cli/src/utils/__snapshots__/etherscan.spec.ts.snap",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`etherscan api ABI fetching can fetch the ABI 1`] = `\n[\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"tokenAddress\",\n        \"type\": \"address\",\n      },\n      {\n        \"internalType\": \"address\",\n        \"name\": \"prizePoolAddress\",\n        \"type\": \"address\",\n      },\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"poolFeePerc_\",\n        \"type\": \"uint256\",\n      },\n      {\n        \"internalType\": \"address\",\n        \"name\": \"shieldAddress\",\n        \"type\": \"address\",\n      },\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"shieldFeePerc_\",\n        \"type\": \"uint256\",\n      },\n    ],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"constructor\",\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"internalType\": \"address\",\n        \"name\": \"user\",\n        \"type\": \"address\",\n      },\n      {\n        \"indexed\": false,\n        \"internalType\": \"bytes32\",\n        \"name\": \"hashedPrompt\",\n        \"type\": \"bytes32\",\n      },\n      {\n        \"indexed\": false,\n        \"internalType\": \"uint256\",\n        \"name\": \"amount\",\n        \"type\": \"uint256\",\n      },\n    ],\n    \"name\": \"BuyIn\",\n    \"type\": \"event\",\n  },\n  {\n    \"stateMutability\": \"payable\",\n    \"type\": \"fallback\",\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"bytes32\",\n        \"name\": \"hashedPrompt\",\n        \"type\": \"bytes32\",\n      },\n    ],\n    \"name\": \"buyIn\",\n    \"outputs\": [],\n    \"stateMutability\": \"payable\",\n    \"type\": \"function\",\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"operator\",\n    \"outputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"\",\n        \"type\": \"address\",\n      },\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\",\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"poolFeePerc\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\",\n      },\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\",\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"prizePool\",\n    \"outputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"\",\n        \"type\": \"address\",\n      },\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\",\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"prizePoolAddress\",\n        \"type\": \"address\",\n      },\n      {\n        \"internalType\": \"address\",\n        \"name\": \"shieldAddress\",\n        \"type\": \"address\",\n      },\n    ],\n    \"name\": \"setAddress\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\",\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"poolFeePerc_\",\n        \"type\": \"uint256\",\n      },\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"shieldFeePerc_\",\n        \"type\": \"uint256\",\n      },\n    ],\n    \"name\": \"setFees\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\",\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"operator_\",\n        \"type\": \"address\",\n      },\n    ],\n    \"name\": \"setOperator\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\",\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"shield\",\n    \"outputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"\",\n        \"type\": \"address\",\n      },\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\",\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"shieldFeePerc\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\",\n      },\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\",\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"token\",\n    \"outputs\": [\n      {\n        \"internalType\": \"contract Token\",\n        \"name\": \"\",\n        \"type\": \"address\",\n      },\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\",\n  },\n  {\n    \"stateMutability\": \"payable\",\n    \"type\": \"receive\",\n  },\n]\n`;\n"
  },
  {
    "path": "packages/cli/src/utils/build.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync, readFileSync, writeFileSync} from 'fs';\nimport path from 'path';\nimport {MultichainProjectManifest} from '@subql/types-core';\nimport * as yaml from 'js-yaml';\nimport {rimraf} from 'rimraf';\nimport {buildManifestFromLocation} from './build';\n\ndescribe('Manifest generation', () => {\n  afterEach(() => {\n    const projectPath = path.join(__dirname, '../../test/tsManifestTest');\n    rimraf.sync(path.join(projectPath, 'project1.yaml'));\n    rimraf.sync(path.join(projectPath, 'subquery-multichain2.yaml'));\n    rimraf.sync(path.join(projectPath, 'project2.yaml'));\n    rimraf.sync(path.join(projectPath, 'subquery-multichain.yaml'));\n    rimraf.sync(path.join(projectPath, 'subquery-multichain3.yaml'));\n  });\n\n  it('should build ts manifest from multichain file', async () => {\n    const projectPath = path.join(__dirname, '../../test/tsManifestTest/subquery-multichain.ts');\n    await expect(buildManifestFromLocation(projectPath, console.log.bind(console))).resolves.toBeDefined();\n    expect(existsSync(path.join(projectPath, '../project1.yaml'))).toBe(true);\n    expect(existsSync(path.join(projectPath, '../project2.yaml'))).toBe(true);\n    expect(existsSync(path.join(projectPath, '../subquery-multichain.yaml'))).toBe(true);\n\n    //ts files are replaced with yaml files\n    const multichainContent = yaml.load(\n      readFileSync(path.join(projectPath, '../subquery-multichain.yaml'), 'utf8')\n    ) as MultichainProjectManifest;\n    multichainContent.projects.forEach((project) => project.endsWith('.yaml'));\n  }, 50000);\n\n  it('throws error on unknown file in multichain manifest', async () => {\n    const projectPath = path.join(__dirname, '../../test/tsManifestTest/subquery-multichain2.ts');\n    await expect(buildManifestFromLocation(projectPath, console.log.bind(console))).rejects.toThrow();\n  }, 50000);\n\n  it('allows both ts and yaml file in multichain manifest', async () => {\n    const projectPath = path.join(__dirname, '../../test/tsManifestTest/subquery-multichain3.ts');\n    await expect(buildManifestFromLocation(projectPath, console.log.bind(console))).resolves.toBeDefined();\n    expect(existsSync(path.join(projectPath, '../project1.yaml'))).toBe(true);\n    expect(existsSync(path.join(projectPath, '../project3.yaml'))).toBe(true);\n    expect(existsSync(path.join(projectPath, '../subquery-multichain3.yaml'))).toBe(true);\n\n    //ts files are replaced with yaml files\n    const multichainContent = yaml.load(\n      readFileSync(path.join(projectPath, '../subquery-multichain3.yaml'), 'utf8')\n    ) as MultichainProjectManifest;\n    multichainContent.projects.forEach((project) => project.endsWith('.yaml'));\n  }, 50000);\n\n  it('should build ts manifest from yaml multichain file', async () => {\n    const projectPath = path.join(__dirname, '../../test/tsManifestTest/subquery-multichain4.yaml');\n    await expect(buildManifestFromLocation(projectPath, console.log.bind(console))).resolves.toBeDefined();\n    expect(existsSync(path.join(projectPath, '../project1.yaml'))).toBe(true);\n    expect(existsSync(path.join(projectPath, '../project2.yaml'))).toBe(true);\n\n    //ts files are replaced with yaml files\n    const multichainContent = yaml.load(\n      readFileSync(path.join(projectPath, '../subquery-multichain4.yaml'), 'utf8')\n    ) as MultichainProjectManifest;\n    multichainContent.projects.forEach((project) => expect(project.endsWith('.yaml')).toBe(true));\n\n    //revert yaml to ts\n    multichainContent.projects = multichainContent.projects.map((project) => project.replace('.yaml', '.ts'));\n\n    writeFileSync(path.join(projectPath, '../subquery-multichain4.yaml'), yaml.dump(multichainContent));\n  }, 50000);\n});\n"
  },
  {
    "path": "packages/cli/src/utils/build.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {existsSync, lstatSync, readFileSync, writeFileSync} from 'fs';\nimport path from 'path';\nimport {\n  DEFAULT_MULTICHAIN_MANIFEST,\n  DEFAULT_MULTICHAIN_TS_MANIFEST,\n  DEFAULT_TS_MANIFEST,\n  tsProjectYamlPath,\n} from '@subql/common';\nimport {MultichainProjectManifest} from '@subql/types-core';\nimport * as yaml from 'js-yaml';\nimport * as tsNode from 'ts-node';\nimport {loadEnvConfig} from './env';\nimport {isMultichain} from './utils';\n\nconst requireScriptWrapper = (scriptPath: string, outputPath: string): string =>\n  `import {toJsonObject} from '@subql/common';` +\n  `const {writeFileSync} = require('fs');` +\n  `const yaml = require('js-yaml');` +\n  `const project = toJsonObject((require('${scriptPath}')).default);` +\n  `const yamlOutput = yaml.dump(project);` +\n  `writeFileSync('${outputPath}', '# // Auto-generated , DO NOT EDIT\\\\n' + yamlOutput);`;\n\n// Replaces \\ in path on windows that don't work with require\nfunction formatPath(p: string): string {\n  return p.replace(/\\\\/g, '/');\n}\n\nexport async function buildManifestFromLocation(location: string, log: (...args: any[]) => void): Promise<string> {\n  let directory: string;\n  let projectManifestEntry: string;\n  // lstatSync will throw if location not exist\n  if (lstatSync(location).isDirectory()) {\n    directory = location;\n    projectManifestEntry = path.join(directory, DEFAULT_TS_MANIFEST);\n  } else if (lstatSync(location).isFile()) {\n    directory = path.dirname(location);\n    projectManifestEntry = location;\n  } else {\n    throw new Error('Argument `location` is not a valid directory or file');\n  }\n\n  // We compile from TypeScript every time, even if the current YAML file exists, to ensure that the YAML file remains up-to-date with the latest changes\n  try {\n    //we could have a multichain yaml with ts projects inside it\n    const projectYamlPath = projectManifestEntry.endsWith('.ts')\n      ? await generateManifestFromTs(projectManifestEntry)\n      : projectManifestEntry;\n\n    if (isMultichain(projectYamlPath)) {\n      const tsManifests = getTsManifestsFromMultichain(projectYamlPath);\n      await Promise.all(tsManifests.map((manifest) => generateManifestFromTs(manifest)));\n      replaceTsReferencesInMultichain(projectYamlPath);\n    }\n  } catch (e: any) {\n    console.log(e);\n    throw new Error(`Failed to generate manifest from typescript ${projectManifestEntry}, ${e.message}`);\n  }\n  return directory;\n}\n\nexport async function buildTsManifest(location: string, log: (...args: any[]) => void): Promise<void> {\n  const tsManifest = getTsManifest(location);\n  if (!tsManifest) {\n    return;\n  }\n\n  await buildManifestFromLocation(tsManifest, log);\n}\n\n// eslint-disable-next-line @typescript-eslint/require-await\nexport async function generateManifestFromTs(projectManifestEntry: string): Promise<string> {\n  assert(existsSync(projectManifestEntry), `${projectManifestEntry} does not exist`);\n  const projectYamlPath = tsProjectYamlPath(projectManifestEntry);\n  const projectDir = path.dirname(projectManifestEntry);\n\n  try {\n    // Load environment variables and add them to process.env for TS compilation\n    const envConfig = loadEnvConfig(projectDir);\n    Object.keys(envConfig).forEach((key) => {\n      if (envConfig[key] !== undefined) {\n        process.env[key] = envConfig[key];\n      }\n    });\n\n    // Allows requiring TS, this allows requirng the projectManifestEntry ts file\n    const tsNodeService = tsNode.register({transpileOnly: true, cwd: projectDir});\n\n    // Compile the above script\n    const script = tsNodeService.compile(\n      requireScriptWrapper(formatPath(projectManifestEntry), formatPath(projectYamlPath)),\n      'inline.ts'\n    );\n\n    // Run compiled code\n    eval(script);\n\n    // log(`Project manifest generated to ${projectYamlPath}`);\n\n    return projectYamlPath;\n  } catch (error) {\n    throw new Error(`Failed to build ${projectManifestEntry}: ${error}`);\n  }\n}\n\n//Returns either the single chain ts manifest or the multichain ts/yaml manifest\nexport function getTsManifest(location: string): string | null {\n  let manifest: string;\n\n  if (lstatSync(location).isDirectory()) {\n    //default ts manifest\n    manifest = path.join(location, DEFAULT_TS_MANIFEST);\n    if (existsSync(manifest)) {\n      return manifest;\n    } else {\n      //default multichain ts manifest\n      manifest = path.join(location, DEFAULT_MULTICHAIN_TS_MANIFEST);\n      if (existsSync(manifest)) {\n        return manifest;\n      } else {\n        //default yaml multichain manifest\n        manifest = path.join(location, DEFAULT_MULTICHAIN_MANIFEST);\n        if (existsSync(manifest)) {\n          return manifest;\n        }\n      }\n    }\n  } else if (lstatSync(location).isFile()) {\n    if (location.endsWith('.ts') || isMultichain(location)) {\n      return location;\n    }\n  }\n\n  return null;\n}\n\nfunction getTsManifestsFromMultichain(location: string): string[] {\n  const multichainContent = yaml.load(readFileSync(location, 'utf8')) as MultichainProjectManifest;\n\n  if (!multichainContent || !multichainContent.projects) {\n    return [];\n  }\n\n  return multichainContent.projects\n    .filter((project) => project.endsWith('.ts'))\n    .map((project) => path.resolve(path.dirname(location), project));\n}\n\nfunction replaceTsReferencesInMultichain(location: string): void {\n  const multichainContent = yaml.load(readFileSync(location, 'utf8')) as MultichainProjectManifest;\n  multichainContent.projects = multichainContent.projects.map((project) => tsProjectYamlPath(project));\n  const yamlOutput = yaml.dump(multichainContent);\n  writeFileSync(location, yamlOutput);\n}\n"
  },
  {
    "path": "packages/cli/src/utils/env.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync, writeFileSync, unlinkSync, mkdirSync, rmSync} from 'fs';\nimport {tmpdir} from 'os';\nimport {join} from 'path';\nimport {loadEnvConfig, getWebpackEnvDefinitions} from './env';\n\ndescribe('Environment Configuration Utils', () => {\n  let testDir: string;\n  let envPath: string;\n\n  beforeEach(() => {\n    // Create a temporary directory for testing\n    testDir = join(tmpdir(), `subql-env-test-${Date.now()}`);\n    mkdirSync(testDir, {recursive: true});\n    envPath = join(testDir, '.env');\n  });\n\n  afterEach(() => {\n    // Clean up test directory\n    if (existsSync(testDir)) {\n      rmSync(testDir, {recursive: true, force: true});\n    }\n  });\n\n  describe('loadEnvConfig', () => {\n    it('should return empty object when no .env file exists', () => {\n      const config = loadEnvConfig(testDir);\n      expect(config).toEqual({});\n    });\n\n    it('should load environment variables from .env file', () => {\n      const envContent = [\n        'DATABASE_URL=postgresql://localhost:5432/subql',\n        'API_KEY=test-api-key',\n        'DEBUG=true',\n        'PORT=3000',\n        '# This is a comment',\n        'EMPTY_VALUE=',\n        'QUOTED_VALUE=\"quoted string\"',\n      ].join('\\n');\n\n      writeFileSync(envPath, envContent);\n\n      const config = loadEnvConfig(testDir);\n      expect(config).toEqual({\n        DATABASE_URL: 'postgresql://localhost:5432/subql',\n        API_KEY: 'test-api-key',\n        DEBUG: 'true',\n        PORT: '3000',\n        EMPTY_VALUE: '',\n        QUOTED_VALUE: 'quoted string',\n      });\n    });\n\n    it('should handle malformed .env file gracefully', () => {\n      const consoleSpy = jest.spyOn(console, 'warn').mockImplementation();\n      // Create file with invalid syntax that will cause dotenv to throw\n      writeFileSync(envPath, 'INVALID LINE WITHOUT EQUALS');\n\n      const config = loadEnvConfig(testDir);\n\n      // Should return empty config on error\n      expect(config).toEqual({});\n\n      consoleSpy.mockRestore();\n    });\n\n    it('should support variables with special characters', () => {\n      const envContent = [\n        'SPECIAL_CHARS=value_with-dash.and_underscore',\n        'URL_WITH_PARAMS=https://api.example.com?param=value&other=123',\n        'PATH_VALUE=/path/to/file',\n      ].join('\\n');\n\n      writeFileSync(envPath, envContent);\n\n      const config = loadEnvConfig(testDir);\n      expect(config.SPECIAL_CHARS).toBe('value_with-dash.and_underscore');\n      expect(config.URL_WITH_PARAMS).toBe('https://api.example.com?param=value&other=123');\n      expect(config.PATH_VALUE).toBe('/path/to/file');\n    });\n  });\n\n  describe('getWebpackEnvDefinitions', () => {\n    it('should convert env config to webpack DefinePlugin definitions', () => {\n      const envConfig = {\n        DATABASE_URL: 'postgresql://localhost:5432/subql',\n        API_KEY: 'test-api-key',\n        DEBUG: 'true',\n        PORT: '3000',\n      };\n\n      const definitions = getWebpackEnvDefinitions(envConfig);\n\n      expect(definitions).toEqual({\n        'process.env.DATABASE_URL': '\"postgresql://localhost:5432/subql\"',\n        'process.env.API_KEY': '\"test-api-key\"',\n        'process.env.DEBUG': '\"true\"',\n        'process.env.PORT': '\"3000\"',\n      });\n    });\n\n    it('should skip undefined values', () => {\n      const envConfig = {\n        DEFINED_VAR: 'value',\n        UNDEFINED_VAR: undefined,\n      };\n\n      const definitions = getWebpackEnvDefinitions(envConfig);\n\n      expect(definitions).toEqual({\n        'process.env.DEFINED_VAR': '\"value\"',\n      });\n      expect(definitions['process.env.UNDEFINED_VAR']).toBeUndefined();\n    });\n\n    it('should handle empty values', () => {\n      const envConfig = {\n        EMPTY_STRING: '',\n        ZERO_VALUE: '0',\n      };\n\n      const definitions = getWebpackEnvDefinitions(envConfig);\n\n      expect(definitions).toEqual({\n        'process.env.EMPTY_STRING': '\"\"',\n        'process.env.ZERO_VALUE': '\"0\"',\n      });\n    });\n\n    it('should properly escape special characters for JSON', () => {\n      const envConfig = {\n        QUOTES: 'value with \"quotes\"',\n        BACKSLASHES: 'path\\\\to\\\\file',\n        NEWLINES: 'line1\\nline2',\n      };\n\n      const definitions = getWebpackEnvDefinitions(envConfig);\n\n      expect(definitions['process.env.QUOTES']).toBe('\"value with \\\\\"quotes\\\\\"\"');\n      expect(definitions['process.env.BACKSLASHES']).toBe('\"path\\\\\\\\to\\\\\\\\file\"');\n      expect(definitions['process.env.NEWLINES']).toBe('\"line1\\\\nline2\"');\n    });\n  });\n\n  describe('Integration tests', () => {\n    it('should work end-to-end from file to webpack definitions', () => {\n      const envContent = [\n        'DATABASE_URL=postgresql://localhost:5432/subql',\n        'API_KEY=secret-key-123',\n        'DEBUG=true',\n      ].join('\\n');\n\n      writeFileSync(envPath, envContent);\n\n      const config = loadEnvConfig(testDir);\n      const definitions = getWebpackEnvDefinitions(config);\n\n      expect(definitions).toEqual({\n        'process.env.DATABASE_URL': '\"postgresql://localhost:5432/subql\"',\n        'process.env.API_KEY': '\"secret-key-123\"',\n        'process.env.DEBUG': '\"true\"',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/utils/env.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync} from 'fs';\nimport path from 'path';\nimport {config as dotenvConfig} from 'dotenv';\n\nexport interface EnvConfig {\n  [key: string]: string | undefined;\n}\n\n/**\n * Load environment variables from .env file in the project directory\n * @param projectDir - The project directory path\n * @returns Object containing environment variables\n */\nexport function loadEnvConfig(projectDir: string): EnvConfig {\n  const envPath = path.join(projectDir, '.env');\n\n  if (!existsSync(envPath)) {\n    return {};\n  }\n\n  try {\n    const envConfig = dotenvConfig({path: envPath});\n    return envConfig.parsed || {};\n  } catch (error) {\n    console.warn(`Warning: Failed to load .env file at ${envPath}:`, error);\n    return {};\n  }\n}\n\n/**\n * Get webpack DefinePlugin definitions for environment variables\n * @param envConfig - Environment configuration object\n * @returns Object with process.env.* definitions for webpack\n */\nexport function getWebpackEnvDefinitions(envConfig: EnvConfig): Record<string, string> {\n  const definitions: Record<string, string> = {};\n\n  Object.keys(envConfig).forEach((key) => {\n    if (envConfig[key] !== undefined) {\n      definitions[`process.env.${key}`] = JSON.stringify(envConfig[key]);\n    }\n  });\n\n  return definitions;\n}\n"
  },
  {
    "path": "packages/cli/src/utils/etherscan.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {fetchContractDeployHeight, tryFetchAbiFromExplorer} from './etherscan';\nimport {delay} from './utils';\n\n// Delays are added to avoid hitting rate limits on the free tier of Etherscan APIs\n\ndescribe('etherscan api', () => {\n  describe('ABI fetching', () => {\n    it('can fetch the ABI', async () => {\n      const abi = await tryFetchAbiFromExplorer('0x53A270147832Fc4eb962584911F5D55e86b1BA3F', '8453' /* Base */);\n      expect(abi).toMatchSnapshot();\n      await delay(0.5);\n    });\n\n    it('returns undefined if an ABI has not been uploaded', async () => {\n      const abi = await tryFetchAbiFromExplorer('0x4eE879f39Cce3C4CA80E2ee90F9Df5aFEEaeb220', '1' /* Ethereum */);\n      expect(abi).toBeUndefined();\n      await delay(0.5);\n    });\n\n    it('throws if a contract is non-existant', async () => {\n      const abi = await tryFetchAbiFromExplorer('0x53A270147832Fc4eb962584911F5D55e86b1BA3F', '1' /* Ethereum */);\n      expect(abi).toBeUndefined();\n      await delay(0.5);\n    });\n\n    it('throws for a network that is not supported', async () => {\n      await expect(\n        tryFetchAbiFromExplorer('0x53A270147832Fc4eb962584911F5D55e86b1BA3F', '21000000' /* Moonbeam */)\n      ).rejects.toThrow(\n        'Etherscan API error: Missing or unsupported chainid parameter (required for v2 api), please see https://api.etherscan.io/v2/chainlist for the list of supported chainids'\n      );\n      await delay(0.5);\n    });\n  });\n\n  describe('Deployment information', () => {\n    it('can get the deploy height of a contract', async () => {\n      const height = await fetchContractDeployHeight('0x53A270147832Fc4eb962584911F5D55e86b1BA3F', '8453' /* Base */);\n\n      expect(height).toBe(22771721);\n      await delay(0.5);\n    });\n\n    it('returns undefined when getting the deploy height for a non-existant contract', async () => {\n      const height = await fetchContractDeployHeight('0x53A270147832Fc4eb962584911F5D55e86b1BA3F', '1' /* Ethereum */);\n      expect(height).toBeUndefined();\n      await delay(0.5);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/utils/etherscan.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nasync function runRequest<T>(chainId: string | number, params: Record<string, string>): Promise<T | undefined> {\n  const url = `https://api.etherscan.io/v2/api?${new URLSearchParams({\n    ...params,\n    chainid: String(chainId),\n    apiKey: process.env.ETHERSCAN_API_KEY || '',\n  }).toString()}`;\n\n  const res = await fetch(url);\n\n  if (!res.ok) {\n    throw new Error(`Failed to fetch from Etherscan API: ${res.statusText}`);\n  }\n\n  const data = (await res.json()) as {status: '0' | '1'; message: string; result: T};\n\n  if (data.status === '0') {\n    if (data.result === 'Missing/Invalid API Key') {\n      throw new Error('Missing or invalid Etherscan API key. Please set ETHERSCAN_API_KEY environment variable.');\n    }\n    if (data.message === 'No data found') {\n      return undefined;\n    }\n    throw new Error(`Etherscan API error: ${data.result}`);\n  }\n\n  return data.result;\n}\n\n/**\n * Fetches the ABI from Etherscan.\n * @param address - The contract address to fetch the ABI for.\n * @param chainId - The chain ID of the Ethereum network.\n * @returns The ABI as a JSON object or undefined if the fetch fails.\n */\nexport async function tryFetchAbiFromExplorer(address: string, chainId: number | string): Promise<unknown> {\n  try {\n    const result = await runRequest<string>(chainId, {\n      module: 'contract',\n      action: 'getabi',\n      address,\n    });\n\n    if (!result) {\n      return undefined;\n    }\n\n    return JSON.parse(result);\n  } catch (e) {\n    if (e instanceof Error && e.message.includes('Contract source code not verified')) {\n      return undefined;\n    }\n    throw e;\n  }\n}\n\n/**\n * Fetches the deployment height of a contract from Etherscan.\n * @param address - The contract address to fetch the deployment height for.\n * @param chainId - The chain ID of the Ethereum network.\n * @returns The block number where the contract was deployed, or undefined if not found.\n */\nexport async function fetchContractDeployHeight(\n  address: string,\n  chainId: number | string\n): Promise<number | undefined> {\n  const result = await runRequest<{blockNumber: string}[]>(chainId, {\n    module: 'contract',\n    action: 'getcontractcreation',\n    contractaddresses: address,\n  });\n\n  if (!result) {\n    return undefined;\n  }\n\n  return parseInt(result[0].blockNumber, 10);\n}\n"
  },
  {
    "path": "packages/cli/src/utils/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './build';\nexport * from './utils';\nexport * from './networkFamily';\nexport * from './jsonToTable';\n"
  },
  {
    "path": "packages/cli/src/utils/jsonToTable.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {jsonToTable} from './jsonToTable';\n\ndescribe('jsonToTable', () => {\n  it('should return empty string for empty array', () => {\n    expect(jsonToTable([])).toBe('');\n  });\n\n  it('should format a simple array of objects into a table', () => {\n    const input = [\n      {name: 'Alice', age: 30},\n      {name: 'Bob', age: 25},\n    ];\n\n    const expected = 'name  | age\\n' + '------|----\\n' + 'Alice | 30 \\n' + 'Bob   | 25 ';\n\n    expect(jsonToTable(input)).toBe(expected);\n  });\n\n  it('should handle objects with different keys', () => {\n    const input = [\n      {name: 'Alice', age: 30},\n      {name: 'Bob', role: 'Developer'},\n      {id: 123, name: 'Charlie'},\n    ];\n\n    const expected =\n      'name    | age | role      | id \\n' +\n      '--------|-----|-----------|----\\n' +\n      'Alice   | 30  |           |    \\n' +\n      'Bob     |     | Developer |    \\n' +\n      'Charlie |     |           | 123';\n\n    expect(jsonToTable(input)).toBe(expected);\n  });\n\n  it('should handle various data types', () => {\n    const input = [\n      {id: 1, enabled: true, data: {nested: 'value'}},\n      {id: 2, enabled: false, data: null},\n    ];\n\n    const expected =\n      'id | enabled | data              \\n' +\n      '---|---------|-------------------\\n' +\n      '1  | true    | {\"nested\":\"value\"}\\n' +\n      '2  | false   |                   ';\n\n    expect(jsonToTable(input)).toBe(expected);\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/utils/jsonToTable.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport function jsonToTable<T extends Record<string, any>>(input: T[]): string {\n  if (!input || input.length === 0) {\n    return '';\n  }\n\n  // Extract all unique keys from all objects\n  const keys = Array.from(new Set(input.flatMap((item) => Object.keys(item))));\n\n  const toString = (value: any): string => {\n    if (value instanceof Date) {\n      return value.toLocaleString();\n    }\n    if (typeof value === 'object') {\n      return JSON.stringify(value);\n    }\n    return String(value);\n  };\n\n  if (keys.length === 0) {\n    return '';\n  }\n\n  // Get the maximum width needed for each column\n  const columnWidths: Record<string, number> = {};\n  keys.forEach((key) => {\n    // Initialize with header length\n    columnWidths[key] = key.length;\n\n    // Check each value's string length and update if longer\n    input.forEach((item) => {\n      if (item[key] !== undefined && item[key] !== null) {\n        const valueLength = toString(item[key]).length;\n        if (valueLength > columnWidths[key]) {\n          columnWidths[key] = valueLength;\n        }\n      }\n    });\n  });\n\n  // Create header row\n  const header = keys.map((key) => key.padEnd(columnWidths[key])).join(' | ');\n\n  // Create separator row\n  const separator = keys.map((key) => '-'.repeat(columnWidths[key])).join('-|-');\n\n  // Create data rows\n  const rows = input.map((item) => {\n    return keys\n      .map((key) => {\n        const value = item[key] === undefined || item[key] === null ? '' : toString(item[key]);\n        return value.padEnd(columnWidths[key]);\n      })\n      .join(' | ');\n  });\n\n  // Combine all rows into the final table\n  return [header, separator, ...rows].join('\\n');\n}\n"
  },
  {
    "path": "packages/cli/src/utils/networkFamily.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NETWORK_FAMILY} from '@subql/common';\nimport {getNetworkFamily} from './networkFamily';\n\ndescribe('Get network family', () => {\n  it('convert input to right network family', () => {\n    expect(getNetworkFamily('ethereum')).toBe(NETWORK_FAMILY.ethereum);\n    expect(getNetworkFamily('Ethereum')).toBe(NETWORK_FAMILY.ethereum);\n    expect(() => getNetworkFamily('fakeNetwork')).toThrow(`Network not found or unsupported network fakeNetwork`);\n  });\n});\n"
  },
  {
    "path": "packages/cli/src/utils/networkFamily.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NETWORK_FAMILY, runnerMapping} from '@subql/common';\n\nconst lowerCaseFirst = (str: string) => str.charAt(0).toLowerCase() + str.slice(1);\n\nfunction isNetwork(network: string): network is NETWORK_FAMILY {\n  return !!network && lowerCaseFirst(network) in NETWORK_FAMILY;\n}\n\n// can be either lowerCased or UpperCased\nexport function getNetworkFamily(network: string): NETWORK_FAMILY {\n  if (!isNetwork(network)) {\n    throw new Error(`Network not found or unsupported network ${network}`);\n  }\n  return NETWORK_FAMILY[lowerCaseFirst(network) as unknown as keyof typeof NETWORK_FAMILY];\n}\n\nexport function findRunnerByNetworkFamily(networkFamily: NETWORK_FAMILY): string {\n  for (const [key, value] of Object.entries(runnerMapping)) {\n    if (value === networkFamily) {\n      return key;\n    }\n  }\n  throw new Error(`Runner not found for network family ${networkFamily}`);\n}\n"
  },
  {
    "path": "packages/cli/src/utils/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport fs, {existsSync, readFileSync} from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {input} from '@inquirer/prompts';\nimport {\n  DEFAULT_ENV,\n  DEFAULT_ENV_DEVELOP,\n  DEFAULT_ENV_DEVELOP_LOCAL,\n  DEFAULT_ENV_LOCAL,\n  DEFAULT_GIT_IGNORE,\n  DEFAULT_MANIFEST,\n  DEFAULT_MULTICHAIN_MANIFEST,\n  DEFAULT_TS_MANIFEST,\n} from '@subql/common';\nimport {MultichainProjectManifest} from '@subql/types-core';\nimport axios from 'axios';\nimport ejs from 'ejs';\nimport * as yaml from 'js-yaml';\nimport JSON5 from 'json5';\nimport {rimraf} from 'rimraf';\nimport {ACCESS_TOKEN_PATH} from '../constants';\n\nexport async function delay(sec: number): Promise<void> {\n  return new Promise((resolve) => {\n    setTimeout(resolve, sec * 1000);\n  });\n}\n\nexport async function valueOrPrompt(\n  value: string | undefined,\n  msg: string,\n  error: string\n): Promise<NonNullable<string>> {\n  if (value) return value;\n  try {\n    return await input({\n      message: msg,\n      required: true,\n    });\n  } catch (e) {\n    throw new Error(error);\n  }\n}\n\nexport function addV<T extends string | undefined>(str: T): T {\n  // replaced includes to first byte.\n  if (str && str[0] !== 'v') {\n    return `v${str}` as T;\n  }\n  return str;\n}\n\nexport async function checkToken(token_path: string = ACCESS_TOKEN_PATH): Promise<string> {\n  const reqInput = () => input({message: 'Token cannot be found, Enter token', required: true});\n\n  const envToken = process.env.SUBQL_ACCESS_TOKEN;\n  if (envToken) return envToken;\n  if (existsSync(token_path)) {\n    try {\n      const authToken = readFileSync(token_path, 'utf8');\n      if (!authToken) {\n        return await reqInput();\n      }\n      return authToken.trim();\n    } catch (e) {\n      return reqInput();\n    }\n  } else {\n    return reqInput();\n  }\n}\n\nexport function getOptionalToken(token_path: string = ACCESS_TOKEN_PATH): string | undefined {\n  const envToken = process.env.SUBQL_ACCESS_TOKEN;\n  if (envToken) return envToken;\n  if (existsSync(token_path)) {\n    try {\n      const authToken = readFileSync(token_path, 'utf8');\n      if (!authToken) {\n        return undefined;\n      }\n      return authToken.trim();\n    } catch (e) {\n      return undefined;\n    }\n  }\n  return undefined;\n}\n\nexport function errorHandle(e: any, msg: string): Error {\n  if (axios.isAxiosError(e) && e?.response?.data) {\n    return new Error(`${msg} ${e.response.data.message ?? e.response.data}`);\n  }\n\n  return new Error(`${msg} ${e.message}`);\n}\n\nexport function buildProjectKey(org: string, projectName: string): string {\n  return encodeURIComponent(`${org}/${projectName.toLowerCase()}`);\n}\n\nexport async function renderTemplate(templatePath: string, outputPath: string, templateData: ejs.Data): Promise<void> {\n  const data = await ejs.renderFile(templatePath, templateData);\n  // Ensure the output directory exists\n  const outputDir = path.dirname(outputPath);\n  if (!fs.existsSync(outputDir)) {\n    await fs.promises.mkdir(outputDir, {recursive: true});\n  }\n  await fs.promises.writeFile(outputPath, data);\n}\n\nexport async function prepareDirPath(path: string, recreate: boolean): Promise<void> {\n  try {\n    await rimraf(path);\n    if (recreate) {\n      await fs.promises.mkdir(path, {recursive: true});\n    }\n  } catch (e: any) {\n    throw new Error(`Failed to prepare ${path}: ${e.message}`);\n  }\n}\n\n// oclif's default path resolver only applies when parsed as `--flag path`\n// else it would not resolve, hence we need to resolve it manually.\nexport function resolveToAbsolutePath(inputPath: string): string {\n  const regex = new RegExp(`^~(?=$|[/\\\\\\\\])`);\n  return path.resolve(inputPath.replace(regex, os.homedir()));\n}\n\nexport function isValidEnum<T extends Record<string, string>>(enumType: T, input: string): input is T[keyof T] {\n  return Object.values(enumType).includes(input);\n}\n\nexport function findReplace(manifest: string, replacer: RegExp, value: string): string {\n  return manifest.replace(replacer, value);\n}\n\nexport function findMatchingIndices(\n  content: string,\n  startChar: string,\n  endChar: string,\n  startFrom = 0\n): [number, number][] {\n  //  JavaScript's regex engine does not support recursive patterns like (?1).\n  //  This regex would work in engines that support recursion, such as PCRE (Perl-Compatible Regular Expressions).\n\n  let openCount = 0;\n  let startIndex: number | undefined;\n  const pairs: [number, number][] = [];\n\n  for (let i = startFrom; i < content.length; i++) {\n    if (content[i] === startChar) {\n      if (openCount === 0) startIndex = i;\n      openCount++;\n    } else if (content[i] === endChar) {\n      openCount--;\n      if (openCount === 0) {\n        assert(startIndex !== undefined, 'startIndex should be defined');\n        pairs.push([startIndex, i]);\n        break;\n      }\n    }\n  }\n  if (openCount !== 0) throw new Error(`Unbalanced ${startChar} and ${endChar}`);\n\n  return pairs;\n}\nexport function findArrayIndicesTsManifest(content: string, key: string): [number, number] {\n  const start = content.indexOf(`${key}:`);\n  if (start === -1) throw new Error(`${key} not found`);\n  const pairs = findMatchingIndices(content, '[', ']', start);\n\n  if (pairs.length === 0) throw new Error(`${key} contains unbalanced brackets`);\n\n  return pairs[0];\n}\nexport function replaceArrayValueInTsManifest(content: string, key: string, newValue: string): string {\n  const [startIndex, endIndex] = findArrayIndicesTsManifest(content, key);\n  return content.slice(0, startIndex) + newValue + content.slice(endIndex + 1);\n}\nexport function extractArrayValueFromTsManifest(content: string, key: string): string | null {\n  const [startIndex, endIndex] = findArrayIndicesTsManifest(content, key);\n  return content.slice(startIndex, endIndex + 1);\n}\n\nexport function extractFromTs(\n  manifest: string,\n  patterns: {[key: string]: RegExp | undefined}\n): {[key: string]: string | string[] | null} {\n  const result: {[key: string]: string | string[] | null} = {};\n  // TODO should extract then validate value type ?\n  // check what the following char is after key\n  const arrKeys = ['endpoint', 'topics'];\n  const nestArr = ['dataSources', 'handlers'];\n  for (const key in patterns) {\n    if (!nestArr.includes(key)) {\n      const regExp = patterns[key];\n      assert(regExp, `Pattern for ${key} is not defined`);\n      const match = manifest.match(regExp);\n\n      if (arrKeys.includes(key) && match) {\n        const inputStr = match[1].replace(/`/g, '\"');\n        const jsonOutput = JSON5.parse(inputStr);\n        result[key] = Array.isArray(jsonOutput) ? jsonOutput : [jsonOutput];\n      } else {\n        result[key] = match ? match[1] : null;\n      }\n    } else {\n      result[key] = extractArrayValueFromTsManifest(manifest, key);\n    }\n  }\n\n  return result;\n}\n\nexport function splitArrayString(arrayStr: string): string[] {\n  // Remove the starting and ending square brackets\n  const content = arrayStr.trim().slice(1, -1).trim();\n  const pairs: [number, number][] = [];\n  let lastEndIndex = 0;\n\n  while (lastEndIndex < content.length) {\n    const newPairs = findMatchingIndices(content, '{', '}', lastEndIndex);\n    if (newPairs.length === 0) break;\n    pairs.push(newPairs[0]);\n    lastEndIndex = newPairs[0][1] + 1;\n  }\n\n  return pairs.map(([start, end]) => {\n    // Extract the string and further process to remove excess whitespace\n    const extracted = content.slice(start, end + 1).trim();\n    return extracted.replace(/\\s+/g, ' ');\n  });\n}\n\n// Cold validate on ts manifest, for generate scaffold command\nexport function validateEthereumTsManifest(manifest: string): boolean {\n  const typePattern = /@subql\\/types-ethereum/;\n  const nodePattern = /@subql\\/node-ethereum/;\n  return !!typePattern.test(manifest) && !!nodePattern.test(manifest);\n}\n\nexport function defaultYamlManifestPath(projectPath: string): string {\n  return path.join(projectPath, DEFAULT_MANIFEST);\n}\n\nexport function defaultTSManifestPath(projectPath: string): string {\n  return path.join(projectPath, DEFAULT_TS_MANIFEST);\n}\n\nexport function defaultEnvPath(projectPath: string): string {\n  return path.join(projectPath, DEFAULT_ENV);\n}\n\nexport function defaultEnvDevelopPath(projectPath: string): string {\n  return path.join(projectPath, DEFAULT_ENV_DEVELOP);\n}\n\nexport function defaultEnvLocalPath(projectPath: string): string {\n  return path.join(projectPath, DEFAULT_ENV_LOCAL);\n}\n\nexport function defaultEnvDevelopLocalPath(projectPath: string): string {\n  return path.join(projectPath, DEFAULT_ENV_DEVELOP_LOCAL);\n}\n\nexport function defaultGitIgnorePath(projectPath: string): string {\n  return path.join(projectPath, DEFAULT_GIT_IGNORE);\n}\n\nexport function copyFolderSync(source: string, target: string): void {\n  if (!fs.existsSync(target)) {\n    fs.mkdirSync(target, {recursive: true});\n  }\n\n  fs.readdirSync(source).forEach((item) => {\n    const sourcePath = path.join(source, item);\n    const targetPath = path.join(target, item);\n\n    if (fs.lstatSync(sourcePath).isDirectory()) {\n      copyFolderSync(sourcePath, targetPath);\n    } else {\n      fs.copyFileSync(sourcePath, targetPath);\n    }\n  });\n}\n\nexport function defaultMultiChainYamlManifestPath(projectPath: string): string {\n  return path.join(projectPath, DEFAULT_MULTICHAIN_MANIFEST);\n}\n\nexport function isMultichain(location: string): boolean {\n  const multichainContent = yaml.load(readFileSync(location, 'utf8')) as MultichainProjectManifest;\n  return !!multichainContent && !!multichainContent.projects;\n}\n\nexport async function resultToBuffer(req: AsyncIterable<Uint8Array>): Promise<string> {\n  const scriptBufferArray: Uint8Array[] = [];\n  for await (const res of req) {\n    scriptBufferArray.push(res);\n  }\n  return Buffer.concat(scriptBufferArray.map((u8a) => Buffer.from(u8a))).toString('utf8');\n}\n\n/**\n *\n * @param req The ipfs response\n * @param maybe if true any errors will result in undefined being returned\n * @returns\n */\nexport async function resultToJson<T, B extends boolean>(\n  req: AsyncIterable<Uint8Array>,\n  maybe: B\n): Promise<B extends true ? T | undefined : T> {\n  try {\n    const str = await resultToBuffer(req);\n\n    return JSON.parse(str);\n  } catch (e) {\n    if (maybe) return undefined as B extends true ? T | undefined : T;\n    throw e;\n  }\n}\n"
  },
  {
    "path": "packages/cli/test/abiTest1/abis/abis.json",
    "content": "[\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"internalType\": \"uint256\",\n        \"name\": \"era\",\n        \"type\": \"uint256\"\n      },\n      {\n        \"indexed\": false,\n        \"internalType\": \"uint256\",\n        \"name\": \"eraPeriod\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"EraPeriodUpdate\",\n    \"type\": \"event\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"internalType\": \"uint256\",\n        \"name\": \"era\",\n        \"type\": \"uint256\"\n      },\n      {\n        \"indexed\": false,\n        \"internalType\": \"address\",\n        \"name\": \"caller\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"NewEraStart\",\n    \"type\": \"event\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"internalType\": \"address\",\n        \"name\": \"previousOwner\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"internalType\": \"address\",\n        \"name\": \"newOwner\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"OwnershipTransferred\",\n    \"type\": \"event\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"disableMaintenance\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"enableMaintenance\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"eraNumber\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"eraPeriod\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"eraStartTime\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"contract ISettings\",\n        \"name\": \"_settings\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"_eraPeriod\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"initialize\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"maintenance\",\n    \"outputs\": [\n      {\n        \"internalType\": \"bool\",\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"owner\",\n    \"outputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"\",\n        \"type\": \"address\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"renounceOwnership\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"safeUpdateAndGetEra\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"settings\",\n    \"outputs\": [\n      {\n        \"internalType\": \"contract ISettings\",\n        \"name\": \"\",\n        \"type\": \"address\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"startNewEra\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"timestamp\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"timestampToEraNumber\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"newOwner\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"transferOwnership\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"newEraPeriod\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"updateEraPeriod\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  }\n]\n"
  },
  {
    "path": "packages/cli/test/abiTest1/abis/artifact.json",
    "content": "{\n  \"_format\": \"hh-sol-artifact-1\",\n  \"contractName\": \"EraManager\",\n  \"sourceName\": \"contracts/EraManager.sol\",\n  \"abi\": [\n    {\n      \"anonymous\": false,\n      \"inputs\": [\n        {\n          \"indexed\": true,\n          \"internalType\": \"uint256\",\n          \"name\": \"era\",\n          \"type\": \"uint256\"\n        },\n        {\n          \"indexed\": false,\n          \"internalType\": \"uint256\",\n          \"name\": \"eraPeriod\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"EraPeriodUpdate\",\n      \"type\": \"event\"\n    },\n    {\n      \"anonymous\": false,\n      \"inputs\": [\n        {\n          \"indexed\": true,\n          \"internalType\": \"uint256\",\n          \"name\": \"era\",\n          \"type\": \"uint256\"\n        },\n        {\n          \"indexed\": false,\n          \"internalType\": \"address\",\n          \"name\": \"caller\",\n          \"type\": \"address\"\n        }\n      ],\n      \"name\": \"NewEraStart\",\n      \"type\": \"event\"\n    },\n    {\n      \"anonymous\": false,\n      \"inputs\": [\n        {\n          \"indexed\": true,\n          \"internalType\": \"address\",\n          \"name\": \"previousOwner\",\n          \"type\": \"address\"\n        },\n        {\n          \"indexed\": true,\n          \"internalType\": \"address\",\n          \"name\": \"newOwner\",\n          \"type\": \"address\"\n        }\n      ],\n      \"name\": \"OwnershipTransferred\",\n      \"type\": \"event\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"disableMaintenance\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"enableMaintenance\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"eraNumber\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"eraPeriod\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"eraStartTime\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [\n        {\n          \"internalType\": \"contract ISettings\",\n          \"name\": \"_settings\",\n          \"type\": \"address\"\n        },\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"_eraPeriod\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"initialize\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"maintenance\",\n      \"outputs\": [\n        {\n          \"internalType\": \"bool\",\n          \"name\": \"\",\n          \"type\": \"bool\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"owner\",\n      \"outputs\": [\n        {\n          \"internalType\": \"address\",\n          \"name\": \"\",\n          \"type\": \"address\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"renounceOwnership\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"safeUpdateAndGetEra\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"settings\",\n      \"outputs\": [\n        {\n          \"internalType\": \"contract ISettings\",\n          \"name\": \"\",\n          \"type\": \"address\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"startNewEra\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"timestamp\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"timestampToEraNumber\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [\n        {\n          \"internalType\": \"address\",\n          \"name\": \"newOwner\",\n          \"type\": \"address\"\n        }\n      ],\n      \"name\": \"transferOwnership\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"newEraPeriod\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"updateEraPeriod\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    }\n  ],\n  \"bytecode\": \"0x608060405234801561001057600080fd5b506115e7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b811419011610097578063cd6dc68711610066578063cd6dc68714610206578063e06174e414610222578063f2fde38b14610240578063f40241bb1461025c576100f5565b8063b8114190146101a4578063ba08553a146101d4578063bdc0ba8e146101f2578063cc0e13e2146101fc576100f5565b80636f853a5d116100d35780636f853a5d14610140578063715018a61461015e5780637d884c74146101685780638da5cb5b14610186576100f5565b80631e70953e146100fa57806323401763146101045780636c376cc514610122575b600080fd5b610102610278565b005b61010c6104e2565b6040516101199190610d8d565b60405180910390f35b61012a6104e8565b6040516101379190610dc3565b60405180910390f35b6101486104fb565b6040516101559190610d8d565b60405180910390f35b610166610575565b005b6101706105fd565b60405161017d9190610d8d565b60405180910390f35b61018e610603565b60405161019b9190610e1f565b60405180910390f35b6101be60048036038101906101b99190610e6b565b61062d565b6040516101cb9190610d8d565b60405180910390f35b6101dc6106a3565b6040516101e99190610d8d565b60405180910390f35b6101fa6106a9565b005b610204610742565b005b610220600480360381019061021b9190610ed6565b6107db565b005b61022a610996565b6040516102379190610f75565b60405180910390f35b61025a60048036038101906102559190610fbc565b6109bc565b005b61027660048036038101906102719190610e6b565b610ab3565b005b606960009054906101000a900460ff16156102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf90611046565b60405180910390fd5b426066546068546102d99190611095565b10610319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031090611137565b60405180910390fd5b6067600081548092919061032c90611157565b9190505550426068819055506000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376dcf98e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb91906111b4565b905060008173ffffffffffffffffffffffffffffffffffffffff166331f9e35b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e91906111f6565b11156104a5578073ffffffffffffffffffffffffffffffffffffffff1663d2024fa66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050505b6067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516104d79190610e1f565b60405180910390a250565b60685481565b606960009054906101000a900460ff1681565b6000606960009054906101000a900460ff161561054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054490611046565b60405180910390fd5b4260665460685461055e9190611095565b101561056d5761056c610278565b5b606754905090565b61057d610bb8565b73ffffffffffffffffffffffffffffffffffffffff1661059b610603565b73ffffffffffffffffffffffffffffffffffffffff16146105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e89061126f565b60405180910390fd5b6105fb6000610bc0565b565b60675481565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000606854821015610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b906112db565b60405180910390fd5b6066546068548361068591906112fb565b61068f919061135e565b60675461069c9190611095565b9050919050565b60665481565b6106b1610bb8565b73ffffffffffffffffffffffffffffffffffffffff166106cf610603565b73ffffffffffffffffffffffffffffffffffffffff1614610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c9061126f565b60405180910390fd5b6000606960006101000a81548160ff021916908315150217905550565b61074a610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610768610603565b73ffffffffffffffffffffffffffffffffffffffff16146107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b59061126f565b60405180910390fd5b6001606960006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff166108035760008054906101000a900460ff161561080c565b61080b610c86565b5b61084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611401565b60405180910390fd5b60008060019054906101000a900460ff16159050801561089b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6108a3610c97565b600082116108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd9061146d565b60405180910390fd5b82606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160668190555060016067819055506067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516109689190610e1f565b60405180910390a280156109915760008060016101000a81548160ff0219169083151502179055505b505050565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c4610bb8565b73ffffffffffffffffffffffffffffffffffffffff166109e2610603565b73ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f9061126f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e906114ff565b60405180910390fd5b610ab081610bc0565b50565b610abb610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610ad9610603565b73ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b269061126f565b60405180910390fd5b60008111610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b699061146d565b60405180910390fd5b806066819055506067547f561a1e0e9bcf8e14fe06886c6c8d275bda3d294425400f65e4b3cf93db7e43db606654604051610bad9190610d8d565b60405180910390a250565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610c9130610cf0565b15905090565b600060019054906101000a900460ff16610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd90611591565b60405180910390fd5b610cee610d13565b565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990611591565b60405180910390fd5b610d72610d6d610bb8565b610bc0565b565b6000819050919050565b610d8781610d74565b82525050565b6000602082019050610da26000830184610d7e565b92915050565b60008115159050919050565b610dbd81610da8565b82525050565b6000602082019050610dd86000830184610db4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e0982610dde565b9050919050565b610e1981610dfe565b82525050565b6000602082019050610e346000830184610e10565b92915050565b600080fd5b610e4881610d74565b8114610e5357600080fd5b50565b600081359050610e6581610e3f565b92915050565b600060208284031215610e8157610e80610e3a565b5b6000610e8f84828501610e56565b91505092915050565b6000610ea382610dfe565b9050919050565b610eb381610e98565b8114610ebe57600080fd5b50565b600081359050610ed081610eaa565b92915050565b60008060408385031215610eed57610eec610e3a565b5b6000610efb85828601610ec1565b9250506020610f0c85828601610e56565b9150509250929050565b6000819050919050565b6000610f3b610f36610f3184610dde565b610f16565b610dde565b9050919050565b6000610f4d82610f20565b9050919050565b6000610f5f82610f42565b9050919050565b610f6f81610f54565b82525050565b6000602082019050610f8a6000830184610f66565b92915050565b610f9981610dfe565b8114610fa457600080fd5b50565b600081359050610fb681610f90565b92915050565b600060208284031215610fd257610fd1610e3a565b5b6000610fe084828501610fa7565b91505092915050565b600082825260208201905092915050565b7f4730313900000000000000000000000000000000000000000000000000000000600082015250565b6000611030600483610fe9565b915061103b82610ffa565b602082019050919050565b6000602082019050818103600083015261105f81611023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110a082610d74565b91506110ab83610d74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110e0576110df611066565b5b828201905092915050565b7f4530303200000000000000000000000000000000000000000000000000000000600082015250565b6000611121600483610fe9565b915061112c826110eb565b602082019050919050565b6000602082019050818103600083015261115081611114565b9050919050565b600061116282610d74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361119457611193611066565b5b600182019050919050565b6000815190506111ae81610f90565b92915050565b6000602082840312156111ca576111c9610e3a565b5b60006111d88482850161119f565b91505092915050565b6000815190506111f081610e3f565b92915050565b60006020828403121561120c5761120b610e3a565b5b600061121a848285016111e1565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611259602083610fe9565b915061126482611223565b602082019050919050565b600060208201905081810360008301526112888161124c565b9050919050565b7f4530303300000000000000000000000000000000000000000000000000000000600082015250565b60006112c5600483610fe9565b91506112d08261128f565b602082019050919050565b600060208201905081810360008301526112f4816112b8565b9050919050565b600061130682610d74565b915061131183610d74565b92508282101561132457611323611066565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061136982610d74565b915061137483610d74565b9250826113845761138361132f565b5b828204905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006113eb602e83610fe9565b91506113f68261138f565b604082019050919050565b6000602082019050818103600083015261141a816113de565b9050919050565b7f4530303100000000000000000000000000000000000000000000000000000000600082015250565b6000611457600483610fe9565b915061146282611421565b602082019050919050565b600060208201905081810360008301526114868161144a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006114e9602683610fe9565b91506114f48261148d565b604082019050919050565b60006020820190508181036000830152611518816114dc565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b600061157b602b83610fe9565b91506115868261151f565b604082019050919050565b600060208201905081810360008301526115aa8161156e565b905091905056fea2646970667358221220b24a8bd216826df429da6657ae815937fb806eeb685c2e951de677783156d62464736f6c634300080f0033\",\n  \"deployedBytecode\": \"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b811419011610097578063cd6dc68711610066578063cd6dc68714610206578063e06174e414610222578063f2fde38b14610240578063f40241bb1461025c576100f5565b8063b8114190146101a4578063ba08553a146101d4578063bdc0ba8e146101f2578063cc0e13e2146101fc576100f5565b80636f853a5d116100d35780636f853a5d14610140578063715018a61461015e5780637d884c74146101685780638da5cb5b14610186576100f5565b80631e70953e146100fa57806323401763146101045780636c376cc514610122575b600080fd5b610102610278565b005b61010c6104e2565b6040516101199190610d8d565b60405180910390f35b61012a6104e8565b6040516101379190610dc3565b60405180910390f35b6101486104fb565b6040516101559190610d8d565b60405180910390f35b610166610575565b005b6101706105fd565b60405161017d9190610d8d565b60405180910390f35b61018e610603565b60405161019b9190610e1f565b60405180910390f35b6101be60048036038101906101b99190610e6b565b61062d565b6040516101cb9190610d8d565b60405180910390f35b6101dc6106a3565b6040516101e99190610d8d565b60405180910390f35b6101fa6106a9565b005b610204610742565b005b610220600480360381019061021b9190610ed6565b6107db565b005b61022a610996565b6040516102379190610f75565b60405180910390f35b61025a60048036038101906102559190610fbc565b6109bc565b005b61027660048036038101906102719190610e6b565b610ab3565b005b606960009054906101000a900460ff16156102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf90611046565b60405180910390fd5b426066546068546102d99190611095565b10610319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031090611137565b60405180910390fd5b6067600081548092919061032c90611157565b9190505550426068819055506000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376dcf98e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb91906111b4565b905060008173ffffffffffffffffffffffffffffffffffffffff166331f9e35b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e91906111f6565b11156104a5578073ffffffffffffffffffffffffffffffffffffffff1663d2024fa66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050505b6067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516104d79190610e1f565b60405180910390a250565b60685481565b606960009054906101000a900460ff1681565b6000606960009054906101000a900460ff161561054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054490611046565b60405180910390fd5b4260665460685461055e9190611095565b101561056d5761056c610278565b5b606754905090565b61057d610bb8565b73ffffffffffffffffffffffffffffffffffffffff1661059b610603565b73ffffffffffffffffffffffffffffffffffffffff16146105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e89061126f565b60405180910390fd5b6105fb6000610bc0565b565b60675481565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000606854821015610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b906112db565b60405180910390fd5b6066546068548361068591906112fb565b61068f919061135e565b60675461069c9190611095565b9050919050565b60665481565b6106b1610bb8565b73ffffffffffffffffffffffffffffffffffffffff166106cf610603565b73ffffffffffffffffffffffffffffffffffffffff1614610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c9061126f565b60405180910390fd5b6000606960006101000a81548160ff021916908315150217905550565b61074a610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610768610603565b73ffffffffffffffffffffffffffffffffffffffff16146107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b59061126f565b60405180910390fd5b6001606960006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff166108035760008054906101000a900460ff161561080c565b61080b610c86565b5b61084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611401565b60405180910390fd5b60008060019054906101000a900460ff16159050801561089b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6108a3610c97565b600082116108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd9061146d565b60405180910390fd5b82606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160668190555060016067819055506067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516109689190610e1f565b60405180910390a280156109915760008060016101000a81548160ff0219169083151502179055505b505050565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c4610bb8565b73ffffffffffffffffffffffffffffffffffffffff166109e2610603565b73ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f9061126f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e906114ff565b60405180910390fd5b610ab081610bc0565b50565b610abb610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610ad9610603565b73ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b269061126f565b60405180910390fd5b60008111610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b699061146d565b60405180910390fd5b806066819055506067547f561a1e0e9bcf8e14fe06886c6c8d275bda3d294425400f65e4b3cf93db7e43db606654604051610bad9190610d8d565b60405180910390a250565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610c9130610cf0565b15905090565b600060019054906101000a900460ff16610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd90611591565b60405180910390fd5b610cee610d13565b565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990611591565b60405180910390fd5b610d72610d6d610bb8565b610bc0565b565b6000819050919050565b610d8781610d74565b82525050565b6000602082019050610da26000830184610d7e565b92915050565b60008115159050919050565b610dbd81610da8565b82525050565b6000602082019050610dd86000830184610db4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e0982610dde565b9050919050565b610e1981610dfe565b82525050565b6000602082019050610e346000830184610e10565b92915050565b600080fd5b610e4881610d74565b8114610e5357600080fd5b50565b600081359050610e6581610e3f565b92915050565b600060208284031215610e8157610e80610e3a565b5b6000610e8f84828501610e56565b91505092915050565b6000610ea382610dfe565b9050919050565b610eb381610e98565b8114610ebe57600080fd5b50565b600081359050610ed081610eaa565b92915050565b60008060408385031215610eed57610eec610e3a565b5b6000610efb85828601610ec1565b9250506020610f0c85828601610e56565b9150509250929050565b6000819050919050565b6000610f3b610f36610f3184610dde565b610f16565b610dde565b9050919050565b6000610f4d82610f20565b9050919050565b6000610f5f82610f42565b9050919050565b610f6f81610f54565b82525050565b6000602082019050610f8a6000830184610f66565b92915050565b610f9981610dfe565b8114610fa457600080fd5b50565b600081359050610fb681610f90565b92915050565b600060208284031215610fd257610fd1610e3a565b5b6000610fe084828501610fa7565b91505092915050565b600082825260208201905092915050565b7f4730313900000000000000000000000000000000000000000000000000000000600082015250565b6000611030600483610fe9565b915061103b82610ffa565b602082019050919050565b6000602082019050818103600083015261105f81611023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110a082610d74565b91506110ab83610d74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110e0576110df611066565b5b828201905092915050565b7f4530303200000000000000000000000000000000000000000000000000000000600082015250565b6000611121600483610fe9565b915061112c826110eb565b602082019050919050565b6000602082019050818103600083015261115081611114565b9050919050565b600061116282610d74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361119457611193611066565b5b600182019050919050565b6000815190506111ae81610f90565b92915050565b6000602082840312156111ca576111c9610e3a565b5b60006111d88482850161119f565b91505092915050565b6000815190506111f081610e3f565b92915050565b60006020828403121561120c5761120b610e3a565b5b600061121a848285016111e1565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611259602083610fe9565b915061126482611223565b602082019050919050565b600060208201905081810360008301526112888161124c565b9050919050565b7f4530303300000000000000000000000000000000000000000000000000000000600082015250565b60006112c5600483610fe9565b91506112d08261128f565b602082019050919050565b600060208201905081810360008301526112f4816112b8565b9050919050565b600061130682610d74565b915061131183610d74565b92508282101561132457611323611066565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061136982610d74565b915061137483610d74565b9250826113845761138361132f565b5b828204905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006113eb602e83610fe9565b91506113f68261138f565b604082019050919050565b6000602082019050818103600083015261141a816113de565b9050919050565b7f4530303100000000000000000000000000000000000000000000000000000000600082015250565b6000611457600483610fe9565b915061146282611421565b602082019050919050565b600060208201905081810360008301526114868161144a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006114e9602683610fe9565b91506114f48261148d565b604082019050919050565b60006020820190508181036000830152611518816114dc565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b600061157b602b83610fe9565b91506115868261151f565b604082019050919050565b600060208201905081810360008301526115aa8161156e565b905091905056fea2646970667358221220b24a8bd216826df429da6657ae815937fb806eeb685c2e951de677783156d62464736f6c634300080f0033\",\n  \"linkReferences\": {},\n  \"deployedLinkReferences\": {}\n}\n"
  },
  {
    "path": "packages/cli/test/abiTest1/abis/artifact.sol/artifact.json",
    "content": "{\n  \"_format\": \"hh-sol-artifact-1\",\n  \"contractName\": \"EraManager\",\n  \"sourceName\": \"contracts/EraManager.sol\",\n  \"abi\": [\n    {\n      \"anonymous\": false,\n      \"inputs\": [\n        {\n          \"indexed\": true,\n          \"internalType\": \"uint256\",\n          \"name\": \"era\",\n          \"type\": \"uint256\"\n        },\n        {\n          \"indexed\": false,\n          \"internalType\": \"uint256\",\n          \"name\": \"eraPeriod\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"EraPeriodUpdate\",\n      \"type\": \"event\"\n    },\n    {\n      \"anonymous\": false,\n      \"inputs\": [\n        {\n          \"indexed\": true,\n          \"internalType\": \"uint256\",\n          \"name\": \"era\",\n          \"type\": \"uint256\"\n        },\n        {\n          \"indexed\": false,\n          \"internalType\": \"address\",\n          \"name\": \"caller\",\n          \"type\": \"address\"\n        }\n      ],\n      \"name\": \"NewEraStart\",\n      \"type\": \"event\"\n    },\n    {\n      \"anonymous\": false,\n      \"inputs\": [\n        {\n          \"indexed\": true,\n          \"internalType\": \"address\",\n          \"name\": \"previousOwner\",\n          \"type\": \"address\"\n        },\n        {\n          \"indexed\": true,\n          \"internalType\": \"address\",\n          \"name\": \"newOwner\",\n          \"type\": \"address\"\n        }\n      ],\n      \"name\": \"OwnershipTransferred\",\n      \"type\": \"event\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"disableMaintenance\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"enableMaintenance\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"eraNumber\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"eraPeriod\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"eraStartTime\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [\n        {\n          \"internalType\": \"contract ISettings\",\n          \"name\": \"_settings\",\n          \"type\": \"address\"\n        },\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"_eraPeriod\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"initialize\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"maintenance\",\n      \"outputs\": [\n        {\n          \"internalType\": \"bool\",\n          \"name\": \"\",\n          \"type\": \"bool\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"owner\",\n      \"outputs\": [\n        {\n          \"internalType\": \"address\",\n          \"name\": \"\",\n          \"type\": \"address\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"renounceOwnership\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"safeUpdateAndGetEra\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"settings\",\n      \"outputs\": [\n        {\n          \"internalType\": \"contract ISettings\",\n          \"name\": \"\",\n          \"type\": \"address\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [],\n      \"name\": \"startNewEra\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"timestamp\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"timestampToEraNumber\",\n      \"outputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"stateMutability\": \"view\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [\n        {\n          \"internalType\": \"address\",\n          \"name\": \"newOwner\",\n          \"type\": \"address\"\n        }\n      ],\n      \"name\": \"transferOwnership\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    },\n    {\n      \"inputs\": [\n        {\n          \"internalType\": \"uint256\",\n          \"name\": \"newEraPeriod\",\n          \"type\": \"uint256\"\n        }\n      ],\n      \"name\": \"updateEraPeriod\",\n      \"outputs\": [],\n      \"stateMutability\": \"nonpayable\",\n      \"type\": \"function\"\n    }\n  ],\n  \"bytecode\": \"0x608060405234801561001057600080fd5b506115e7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b811419011610097578063cd6dc68711610066578063cd6dc68714610206578063e06174e414610222578063f2fde38b14610240578063f40241bb1461025c576100f5565b8063b8114190146101a4578063ba08553a146101d4578063bdc0ba8e146101f2578063cc0e13e2146101fc576100f5565b80636f853a5d116100d35780636f853a5d14610140578063715018a61461015e5780637d884c74146101685780638da5cb5b14610186576100f5565b80631e70953e146100fa57806323401763146101045780636c376cc514610122575b600080fd5b610102610278565b005b61010c6104e2565b6040516101199190610d8d565b60405180910390f35b61012a6104e8565b6040516101379190610dc3565b60405180910390f35b6101486104fb565b6040516101559190610d8d565b60405180910390f35b610166610575565b005b6101706105fd565b60405161017d9190610d8d565b60405180910390f35b61018e610603565b60405161019b9190610e1f565b60405180910390f35b6101be60048036038101906101b99190610e6b565b61062d565b6040516101cb9190610d8d565b60405180910390f35b6101dc6106a3565b6040516101e99190610d8d565b60405180910390f35b6101fa6106a9565b005b610204610742565b005b610220600480360381019061021b9190610ed6565b6107db565b005b61022a610996565b6040516102379190610f75565b60405180910390f35b61025a60048036038101906102559190610fbc565b6109bc565b005b61027660048036038101906102719190610e6b565b610ab3565b005b606960009054906101000a900460ff16156102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf90611046565b60405180910390fd5b426066546068546102d99190611095565b10610319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031090611137565b60405180910390fd5b6067600081548092919061032c90611157565b9190505550426068819055506000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376dcf98e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb91906111b4565b905060008173ffffffffffffffffffffffffffffffffffffffff166331f9e35b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e91906111f6565b11156104a5578073ffffffffffffffffffffffffffffffffffffffff1663d2024fa66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050505b6067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516104d79190610e1f565b60405180910390a250565b60685481565b606960009054906101000a900460ff1681565b6000606960009054906101000a900460ff161561054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054490611046565b60405180910390fd5b4260665460685461055e9190611095565b101561056d5761056c610278565b5b606754905090565b61057d610bb8565b73ffffffffffffffffffffffffffffffffffffffff1661059b610603565b73ffffffffffffffffffffffffffffffffffffffff16146105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e89061126f565b60405180910390fd5b6105fb6000610bc0565b565b60675481565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000606854821015610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b906112db565b60405180910390fd5b6066546068548361068591906112fb565b61068f919061135e565b60675461069c9190611095565b9050919050565b60665481565b6106b1610bb8565b73ffffffffffffffffffffffffffffffffffffffff166106cf610603565b73ffffffffffffffffffffffffffffffffffffffff1614610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c9061126f565b60405180910390fd5b6000606960006101000a81548160ff021916908315150217905550565b61074a610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610768610603565b73ffffffffffffffffffffffffffffffffffffffff16146107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b59061126f565b60405180910390fd5b6001606960006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff166108035760008054906101000a900460ff161561080c565b61080b610c86565b5b61084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611401565b60405180910390fd5b60008060019054906101000a900460ff16159050801561089b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6108a3610c97565b600082116108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd9061146d565b60405180910390fd5b82606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160668190555060016067819055506067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516109689190610e1f565b60405180910390a280156109915760008060016101000a81548160ff0219169083151502179055505b505050565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c4610bb8565b73ffffffffffffffffffffffffffffffffffffffff166109e2610603565b73ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f9061126f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e906114ff565b60405180910390fd5b610ab081610bc0565b50565b610abb610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610ad9610603565b73ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b269061126f565b60405180910390fd5b60008111610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b699061146d565b60405180910390fd5b806066819055506067547f561a1e0e9bcf8e14fe06886c6c8d275bda3d294425400f65e4b3cf93db7e43db606654604051610bad9190610d8d565b60405180910390a250565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610c9130610cf0565b15905090565b600060019054906101000a900460ff16610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd90611591565b60405180910390fd5b610cee610d13565b565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990611591565b60405180910390fd5b610d72610d6d610bb8565b610bc0565b565b6000819050919050565b610d8781610d74565b82525050565b6000602082019050610da26000830184610d7e565b92915050565b60008115159050919050565b610dbd81610da8565b82525050565b6000602082019050610dd86000830184610db4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e0982610dde565b9050919050565b610e1981610dfe565b82525050565b6000602082019050610e346000830184610e10565b92915050565b600080fd5b610e4881610d74565b8114610e5357600080fd5b50565b600081359050610e6581610e3f565b92915050565b600060208284031215610e8157610e80610e3a565b5b6000610e8f84828501610e56565b91505092915050565b6000610ea382610dfe565b9050919050565b610eb381610e98565b8114610ebe57600080fd5b50565b600081359050610ed081610eaa565b92915050565b60008060408385031215610eed57610eec610e3a565b5b6000610efb85828601610ec1565b9250506020610f0c85828601610e56565b9150509250929050565b6000819050919050565b6000610f3b610f36610f3184610dde565b610f16565b610dde565b9050919050565b6000610f4d82610f20565b9050919050565b6000610f5f82610f42565b9050919050565b610f6f81610f54565b82525050565b6000602082019050610f8a6000830184610f66565b92915050565b610f9981610dfe565b8114610fa457600080fd5b50565b600081359050610fb681610f90565b92915050565b600060208284031215610fd257610fd1610e3a565b5b6000610fe084828501610fa7565b91505092915050565b600082825260208201905092915050565b7f4730313900000000000000000000000000000000000000000000000000000000600082015250565b6000611030600483610fe9565b915061103b82610ffa565b602082019050919050565b6000602082019050818103600083015261105f81611023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110a082610d74565b91506110ab83610d74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110e0576110df611066565b5b828201905092915050565b7f4530303200000000000000000000000000000000000000000000000000000000600082015250565b6000611121600483610fe9565b915061112c826110eb565b602082019050919050565b6000602082019050818103600083015261115081611114565b9050919050565b600061116282610d74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361119457611193611066565b5b600182019050919050565b6000815190506111ae81610f90565b92915050565b6000602082840312156111ca576111c9610e3a565b5b60006111d88482850161119f565b91505092915050565b6000815190506111f081610e3f565b92915050565b60006020828403121561120c5761120b610e3a565b5b600061121a848285016111e1565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611259602083610fe9565b915061126482611223565b602082019050919050565b600060208201905081810360008301526112888161124c565b9050919050565b7f4530303300000000000000000000000000000000000000000000000000000000600082015250565b60006112c5600483610fe9565b91506112d08261128f565b602082019050919050565b600060208201905081810360008301526112f4816112b8565b9050919050565b600061130682610d74565b915061131183610d74565b92508282101561132457611323611066565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061136982610d74565b915061137483610d74565b9250826113845761138361132f565b5b828204905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006113eb602e83610fe9565b91506113f68261138f565b604082019050919050565b6000602082019050818103600083015261141a816113de565b9050919050565b7f4530303100000000000000000000000000000000000000000000000000000000600082015250565b6000611457600483610fe9565b915061146282611421565b602082019050919050565b600060208201905081810360008301526114868161144a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006114e9602683610fe9565b91506114f48261148d565b604082019050919050565b60006020820190508181036000830152611518816114dc565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b600061157b602b83610fe9565b91506115868261151f565b604082019050919050565b600060208201905081810360008301526115aa8161156e565b905091905056fea2646970667358221220b24a8bd216826df429da6657ae815937fb806eeb685c2e951de677783156d62464736f6c634300080f0033\",\n  \"deployedBytecode\": \"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b811419011610097578063cd6dc68711610066578063cd6dc68714610206578063e06174e414610222578063f2fde38b14610240578063f40241bb1461025c576100f5565b8063b8114190146101a4578063ba08553a146101d4578063bdc0ba8e146101f2578063cc0e13e2146101fc576100f5565b80636f853a5d116100d35780636f853a5d14610140578063715018a61461015e5780637d884c74146101685780638da5cb5b14610186576100f5565b80631e70953e146100fa57806323401763146101045780636c376cc514610122575b600080fd5b610102610278565b005b61010c6104e2565b6040516101199190610d8d565b60405180910390f35b61012a6104e8565b6040516101379190610dc3565b60405180910390f35b6101486104fb565b6040516101559190610d8d565b60405180910390f35b610166610575565b005b6101706105fd565b60405161017d9190610d8d565b60405180910390f35b61018e610603565b60405161019b9190610e1f565b60405180910390f35b6101be60048036038101906101b99190610e6b565b61062d565b6040516101cb9190610d8d565b60405180910390f35b6101dc6106a3565b6040516101e99190610d8d565b60405180910390f35b6101fa6106a9565b005b610204610742565b005b610220600480360381019061021b9190610ed6565b6107db565b005b61022a610996565b6040516102379190610f75565b60405180910390f35b61025a60048036038101906102559190610fbc565b6109bc565b005b61027660048036038101906102719190610e6b565b610ab3565b005b606960009054906101000a900460ff16156102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf90611046565b60405180910390fd5b426066546068546102d99190611095565b10610319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031090611137565b60405180910390fd5b6067600081548092919061032c90611157565b9190505550426068819055506000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376dcf98e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb91906111b4565b905060008173ffffffffffffffffffffffffffffffffffffffff166331f9e35b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e91906111f6565b11156104a5578073ffffffffffffffffffffffffffffffffffffffff1663d2024fa66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050505b6067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516104d79190610e1f565b60405180910390a250565b60685481565b606960009054906101000a900460ff1681565b6000606960009054906101000a900460ff161561054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054490611046565b60405180910390fd5b4260665460685461055e9190611095565b101561056d5761056c610278565b5b606754905090565b61057d610bb8565b73ffffffffffffffffffffffffffffffffffffffff1661059b610603565b73ffffffffffffffffffffffffffffffffffffffff16146105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e89061126f565b60405180910390fd5b6105fb6000610bc0565b565b60675481565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000606854821015610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b906112db565b60405180910390fd5b6066546068548361068591906112fb565b61068f919061135e565b60675461069c9190611095565b9050919050565b60665481565b6106b1610bb8565b73ffffffffffffffffffffffffffffffffffffffff166106cf610603565b73ffffffffffffffffffffffffffffffffffffffff1614610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c9061126f565b60405180910390fd5b6000606960006101000a81548160ff021916908315150217905550565b61074a610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610768610603565b73ffffffffffffffffffffffffffffffffffffffff16146107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b59061126f565b60405180910390fd5b6001606960006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff166108035760008054906101000a900460ff161561080c565b61080b610c86565b5b61084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611401565b60405180910390fd5b60008060019054906101000a900460ff16159050801561089b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6108a3610c97565b600082116108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd9061146d565b60405180910390fd5b82606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160668190555060016067819055506067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516109689190610e1f565b60405180910390a280156109915760008060016101000a81548160ff0219169083151502179055505b505050565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c4610bb8565b73ffffffffffffffffffffffffffffffffffffffff166109e2610603565b73ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f9061126f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e906114ff565b60405180910390fd5b610ab081610bc0565b50565b610abb610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610ad9610603565b73ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b269061126f565b60405180910390fd5b60008111610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b699061146d565b60405180910390fd5b806066819055506067547f561a1e0e9bcf8e14fe06886c6c8d275bda3d294425400f65e4b3cf93db7e43db606654604051610bad9190610d8d565b60405180910390a250565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610c9130610cf0565b15905090565b600060019054906101000a900460ff16610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd90611591565b60405180910390fd5b610cee610d13565b565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990611591565b60405180910390fd5b610d72610d6d610bb8565b610bc0565b565b6000819050919050565b610d8781610d74565b82525050565b6000602082019050610da26000830184610d7e565b92915050565b60008115159050919050565b610dbd81610da8565b82525050565b6000602082019050610dd86000830184610db4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e0982610dde565b9050919050565b610e1981610dfe565b82525050565b6000602082019050610e346000830184610e10565b92915050565b600080fd5b610e4881610d74565b8114610e5357600080fd5b50565b600081359050610e6581610e3f565b92915050565b600060208284031215610e8157610e80610e3a565b5b6000610e8f84828501610e56565b91505092915050565b6000610ea382610dfe565b9050919050565b610eb381610e98565b8114610ebe57600080fd5b50565b600081359050610ed081610eaa565b92915050565b60008060408385031215610eed57610eec610e3a565b5b6000610efb85828601610ec1565b9250506020610f0c85828601610e56565b9150509250929050565b6000819050919050565b6000610f3b610f36610f3184610dde565b610f16565b610dde565b9050919050565b6000610f4d82610f20565b9050919050565b6000610f5f82610f42565b9050919050565b610f6f81610f54565b82525050565b6000602082019050610f8a6000830184610f66565b92915050565b610f9981610dfe565b8114610fa457600080fd5b50565b600081359050610fb681610f90565b92915050565b600060208284031215610fd257610fd1610e3a565b5b6000610fe084828501610fa7565b91505092915050565b600082825260208201905092915050565b7f4730313900000000000000000000000000000000000000000000000000000000600082015250565b6000611030600483610fe9565b915061103b82610ffa565b602082019050919050565b6000602082019050818103600083015261105f81611023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110a082610d74565b91506110ab83610d74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110e0576110df611066565b5b828201905092915050565b7f4530303200000000000000000000000000000000000000000000000000000000600082015250565b6000611121600483610fe9565b915061112c826110eb565b602082019050919050565b6000602082019050818103600083015261115081611114565b9050919050565b600061116282610d74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361119457611193611066565b5b600182019050919050565b6000815190506111ae81610f90565b92915050565b6000602082840312156111ca576111c9610e3a565b5b60006111d88482850161119f565b91505092915050565b6000815190506111f081610e3f565b92915050565b60006020828403121561120c5761120b610e3a565b5b600061121a848285016111e1565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611259602083610fe9565b915061126482611223565b602082019050919050565b600060208201905081810360008301526112888161124c565b9050919050565b7f4530303300000000000000000000000000000000000000000000000000000000600082015250565b60006112c5600483610fe9565b91506112d08261128f565b602082019050919050565b600060208201905081810360008301526112f4816112b8565b9050919050565b600061130682610d74565b915061131183610d74565b92508282101561132457611323611066565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061136982610d74565b915061137483610d74565b9250826113845761138361132f565b5b828204905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006113eb602e83610fe9565b91506113f68261138f565b604082019050919050565b6000602082019050818103600083015261141a816113de565b9050919050565b7f4530303100000000000000000000000000000000000000000000000000000000600082015250565b6000611457600483610fe9565b915061146282611421565b602082019050919050565b600060208201905081810360008301526114868161144a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006114e9602683610fe9565b91506114f48261148d565b604082019050919050565b60006020820190508181036000830152611518816114dc565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b600061157b602b83610fe9565b91506115868261151f565b604082019050919050565b600060208201905081810360008301526115aa8161156e565b905091905056fea2646970667358221220b24a8bd216826df429da6657ae815937fb806eeb685c2e951de677783156d62464736f6c634300080f0033\",\n  \"linkReferences\": {},\n  \"deployedLinkReferences\": {}\n}\n"
  },
  {
    "path": "packages/cli/test/abiTest1/project.yaml",
    "content": "specVersion: '1.0.0'\nname: 'example'\n\nversion: '0.0.1'\nrunner:\n  node:\n    name: '@subql/node-ethereum'\n    version: '*'\n  query:\n    name: '@subql/query'\n    version: '*'\ndescription: ''\nrepository: ''\nschema:\n  file: './schema.graphql'\nnetwork:\n  chainId: '1'\n  endpoint: 'aaa'\n  dictionary: ''\n\ncustomDs:\n  assets:\n    abis:\n      file: ./abis.json\n    artifact:\n      file: ./abis/artifact.sol/artifact.json\ndataSources:\n  - kind: ethereum/Runtime\n    startBlock: 1\n    mapping:\n      file: ''\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/abiTest2/abis/artifact.json",
    "content": "{\n  \"_format\": \"hh-sol-artifact-1\",\n  \"contractName\": \"EraManager\",\n  \"sourceName\": \"contracts/EraManager.sol\",\n  \"notAbi\": [],\n  \"bytecode\": \"0x608060405234801561001057600080fd5b506115e7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b811419011610097578063cd6dc68711610066578063cd6dc68714610206578063e06174e414610222578063f2fde38b14610240578063f40241bb1461025c576100f5565b8063b8114190146101a4578063ba08553a146101d4578063bdc0ba8e146101f2578063cc0e13e2146101fc576100f5565b80636f853a5d116100d35780636f853a5d14610140578063715018a61461015e5780637d884c74146101685780638da5cb5b14610186576100f5565b80631e70953e146100fa57806323401763146101045780636c376cc514610122575b600080fd5b610102610278565b005b61010c6104e2565b6040516101199190610d8d565b60405180910390f35b61012a6104e8565b6040516101379190610dc3565b60405180910390f35b6101486104fb565b6040516101559190610d8d565b60405180910390f35b610166610575565b005b6101706105fd565b60405161017d9190610d8d565b60405180910390f35b61018e610603565b60405161019b9190610e1f565b60405180910390f35b6101be60048036038101906101b99190610e6b565b61062d565b6040516101cb9190610d8d565b60405180910390f35b6101dc6106a3565b6040516101e99190610d8d565b60405180910390f35b6101fa6106a9565b005b610204610742565b005b610220600480360381019061021b9190610ed6565b6107db565b005b61022a610996565b6040516102379190610f75565b60405180910390f35b61025a60048036038101906102559190610fbc565b6109bc565b005b61027660048036038101906102719190610e6b565b610ab3565b005b606960009054906101000a900460ff16156102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf90611046565b60405180910390fd5b426066546068546102d99190611095565b10610319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031090611137565b60405180910390fd5b6067600081548092919061032c90611157565b9190505550426068819055506000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376dcf98e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb91906111b4565b905060008173ffffffffffffffffffffffffffffffffffffffff166331f9e35b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e91906111f6565b11156104a5578073ffffffffffffffffffffffffffffffffffffffff1663d2024fa66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050505b6067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516104d79190610e1f565b60405180910390a250565b60685481565b606960009054906101000a900460ff1681565b6000606960009054906101000a900460ff161561054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054490611046565b60405180910390fd5b4260665460685461055e9190611095565b101561056d5761056c610278565b5b606754905090565b61057d610bb8565b73ffffffffffffffffffffffffffffffffffffffff1661059b610603565b73ffffffffffffffffffffffffffffffffffffffff16146105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e89061126f565b60405180910390fd5b6105fb6000610bc0565b565b60675481565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000606854821015610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b906112db565b60405180910390fd5b6066546068548361068591906112fb565b61068f919061135e565b60675461069c9190611095565b9050919050565b60665481565b6106b1610bb8565b73ffffffffffffffffffffffffffffffffffffffff166106cf610603565b73ffffffffffffffffffffffffffffffffffffffff1614610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c9061126f565b60405180910390fd5b6000606960006101000a81548160ff021916908315150217905550565b61074a610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610768610603565b73ffffffffffffffffffffffffffffffffffffffff16146107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b59061126f565b60405180910390fd5b6001606960006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff166108035760008054906101000a900460ff161561080c565b61080b610c86565b5b61084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611401565b60405180910390fd5b60008060019054906101000a900460ff16159050801561089b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6108a3610c97565b600082116108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd9061146d565b60405180910390fd5b82606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160668190555060016067819055506067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516109689190610e1f565b60405180910390a280156109915760008060016101000a81548160ff0219169083151502179055505b505050565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c4610bb8565b73ffffffffffffffffffffffffffffffffffffffff166109e2610603565b73ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f9061126f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e906114ff565b60405180910390fd5b610ab081610bc0565b50565b610abb610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610ad9610603565b73ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b269061126f565b60405180910390fd5b60008111610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b699061146d565b60405180910390fd5b806066819055506067547f561a1e0e9bcf8e14fe06886c6c8d275bda3d294425400f65e4b3cf93db7e43db606654604051610bad9190610d8d565b60405180910390a250565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610c9130610cf0565b15905090565b600060019054906101000a900460ff16610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd90611591565b60405180910390fd5b610cee610d13565b565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990611591565b60405180910390fd5b610d72610d6d610bb8565b610bc0565b565b6000819050919050565b610d8781610d74565b82525050565b6000602082019050610da26000830184610d7e565b92915050565b60008115159050919050565b610dbd81610da8565b82525050565b6000602082019050610dd86000830184610db4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e0982610dde565b9050919050565b610e1981610dfe565b82525050565b6000602082019050610e346000830184610e10565b92915050565b600080fd5b610e4881610d74565b8114610e5357600080fd5b50565b600081359050610e6581610e3f565b92915050565b600060208284031215610e8157610e80610e3a565b5b6000610e8f84828501610e56565b91505092915050565b6000610ea382610dfe565b9050919050565b610eb381610e98565b8114610ebe57600080fd5b50565b600081359050610ed081610eaa565b92915050565b60008060408385031215610eed57610eec610e3a565b5b6000610efb85828601610ec1565b9250506020610f0c85828601610e56565b9150509250929050565b6000819050919050565b6000610f3b610f36610f3184610dde565b610f16565b610dde565b9050919050565b6000610f4d82610f20565b9050919050565b6000610f5f82610f42565b9050919050565b610f6f81610f54565b82525050565b6000602082019050610f8a6000830184610f66565b92915050565b610f9981610dfe565b8114610fa457600080fd5b50565b600081359050610fb681610f90565b92915050565b600060208284031215610fd257610fd1610e3a565b5b6000610fe084828501610fa7565b91505092915050565b600082825260208201905092915050565b7f4730313900000000000000000000000000000000000000000000000000000000600082015250565b6000611030600483610fe9565b915061103b82610ffa565b602082019050919050565b6000602082019050818103600083015261105f81611023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110a082610d74565b91506110ab83610d74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110e0576110df611066565b5b828201905092915050565b7f4530303200000000000000000000000000000000000000000000000000000000600082015250565b6000611121600483610fe9565b915061112c826110eb565b602082019050919050565b6000602082019050818103600083015261115081611114565b9050919050565b600061116282610d74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361119457611193611066565b5b600182019050919050565b6000815190506111ae81610f90565b92915050565b6000602082840312156111ca576111c9610e3a565b5b60006111d88482850161119f565b91505092915050565b6000815190506111f081610e3f565b92915050565b60006020828403121561120c5761120b610e3a565b5b600061121a848285016111e1565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611259602083610fe9565b915061126482611223565b602082019050919050565b600060208201905081810360008301526112888161124c565b9050919050565b7f4530303300000000000000000000000000000000000000000000000000000000600082015250565b60006112c5600483610fe9565b91506112d08261128f565b602082019050919050565b600060208201905081810360008301526112f4816112b8565b9050919050565b600061130682610d74565b915061131183610d74565b92508282101561132457611323611066565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061136982610d74565b915061137483610d74565b9250826113845761138361132f565b5b828204905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006113eb602e83610fe9565b91506113f68261138f565b604082019050919050565b6000602082019050818103600083015261141a816113de565b9050919050565b7f4530303100000000000000000000000000000000000000000000000000000000600082015250565b6000611457600483610fe9565b915061146282611421565b602082019050919050565b600060208201905081810360008301526114868161144a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006114e9602683610fe9565b91506114f48261148d565b604082019050919050565b60006020820190508181036000830152611518816114dc565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b600061157b602b83610fe9565b91506115868261151f565b604082019050919050565b600060208201905081810360008301526115aa8161156e565b905091905056fea2646970667358221220b24a8bd216826df429da6657ae815937fb806eeb685c2e951de677783156d62464736f6c634300080f0033\",\n  \"deployedBytecode\": \"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063b811419011610097578063cd6dc68711610066578063cd6dc68714610206578063e06174e414610222578063f2fde38b14610240578063f40241bb1461025c576100f5565b8063b8114190146101a4578063ba08553a146101d4578063bdc0ba8e146101f2578063cc0e13e2146101fc576100f5565b80636f853a5d116100d35780636f853a5d14610140578063715018a61461015e5780637d884c74146101685780638da5cb5b14610186576100f5565b80631e70953e146100fa57806323401763146101045780636c376cc514610122575b600080fd5b610102610278565b005b61010c6104e2565b6040516101199190610d8d565b60405180910390f35b61012a6104e8565b6040516101379190610dc3565b60405180910390f35b6101486104fb565b6040516101559190610d8d565b60405180910390f35b610166610575565b005b6101706105fd565b60405161017d9190610d8d565b60405180910390f35b61018e610603565b60405161019b9190610e1f565b60405180910390f35b6101be60048036038101906101b99190610e6b565b61062d565b6040516101cb9190610d8d565b60405180910390f35b6101dc6106a3565b6040516101e99190610d8d565b60405180910390f35b6101fa6106a9565b005b610204610742565b005b610220600480360381019061021b9190610ed6565b6107db565b005b61022a610996565b6040516102379190610f75565b60405180910390f35b61025a60048036038101906102559190610fbc565b6109bc565b005b61027660048036038101906102719190610e6b565b610ab3565b005b606960009054906101000a900460ff16156102c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102bf90611046565b60405180910390fd5b426066546068546102d99190611095565b10610319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031090611137565b60405180910390fd5b6067600081548092919061032c90611157565b9190505550426068819055506000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376dcf98e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb91906111b4565b905060008173ffffffffffffffffffffffffffffffffffffffff166331f9e35b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e91906111f6565b11156104a5578073ffffffffffffffffffffffffffffffffffffffff1663d2024fa66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561048c57600080fd5b505af11580156104a0573d6000803e3d6000fd5b505050505b6067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516104d79190610e1f565b60405180910390a250565b60685481565b606960009054906101000a900460ff1681565b6000606960009054906101000a900460ff161561054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054490611046565b60405180910390fd5b4260665460685461055e9190611095565b101561056d5761056c610278565b5b606754905090565b61057d610bb8565b73ffffffffffffffffffffffffffffffffffffffff1661059b610603565b73ffffffffffffffffffffffffffffffffffffffff16146105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e89061126f565b60405180910390fd5b6105fb6000610bc0565b565b60675481565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000606854821015610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b906112db565b60405180910390fd5b6066546068548361068591906112fb565b61068f919061135e565b60675461069c9190611095565b9050919050565b60665481565b6106b1610bb8565b73ffffffffffffffffffffffffffffffffffffffff166106cf610603565b73ffffffffffffffffffffffffffffffffffffffff1614610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c9061126f565b60405180910390fd5b6000606960006101000a81548160ff021916908315150217905550565b61074a610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610768610603565b73ffffffffffffffffffffffffffffffffffffffff16146107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b59061126f565b60405180910390fd5b6001606960006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff166108035760008054906101000a900460ff161561080c565b61080b610c86565b5b61084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611401565b60405180910390fd5b60008060019054906101000a900460ff16159050801561089b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6108a3610c97565b600082116108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd9061146d565b60405180910390fd5b82606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160668190555060016067819055506067547f7835cd24e2804ab5cb4f4a613f38e83f9c79ca4b42b58beef4faf77de9e50c35336040516109689190610e1f565b60405180910390a280156109915760008060016101000a81548160ff0219169083151502179055505b505050565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c4610bb8565b73ffffffffffffffffffffffffffffffffffffffff166109e2610603565b73ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f9061126f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e906114ff565b60405180910390fd5b610ab081610bc0565b50565b610abb610bb8565b73ffffffffffffffffffffffffffffffffffffffff16610ad9610603565b73ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b269061126f565b60405180910390fd5b60008111610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b699061146d565b60405180910390fd5b806066819055506067547f561a1e0e9bcf8e14fe06886c6c8d275bda3d294425400f65e4b3cf93db7e43db606654604051610bad9190610d8d565b60405180910390a250565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000610c9130610cf0565b15905090565b600060019054906101000a900460ff16610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd90611591565b60405180910390fd5b610cee610d13565b565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990611591565b60405180910390fd5b610d72610d6d610bb8565b610bc0565b565b6000819050919050565b610d8781610d74565b82525050565b6000602082019050610da26000830184610d7e565b92915050565b60008115159050919050565b610dbd81610da8565b82525050565b6000602082019050610dd86000830184610db4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e0982610dde565b9050919050565b610e1981610dfe565b82525050565b6000602082019050610e346000830184610e10565b92915050565b600080fd5b610e4881610d74565b8114610e5357600080fd5b50565b600081359050610e6581610e3f565b92915050565b600060208284031215610e8157610e80610e3a565b5b6000610e8f84828501610e56565b91505092915050565b6000610ea382610dfe565b9050919050565b610eb381610e98565b8114610ebe57600080fd5b50565b600081359050610ed081610eaa565b92915050565b60008060408385031215610eed57610eec610e3a565b5b6000610efb85828601610ec1565b9250506020610f0c85828601610e56565b9150509250929050565b6000819050919050565b6000610f3b610f36610f3184610dde565b610f16565b610dde565b9050919050565b6000610f4d82610f20565b9050919050565b6000610f5f82610f42565b9050919050565b610f6f81610f54565b82525050565b6000602082019050610f8a6000830184610f66565b92915050565b610f9981610dfe565b8114610fa457600080fd5b50565b600081359050610fb681610f90565b92915050565b600060208284031215610fd257610fd1610e3a565b5b6000610fe084828501610fa7565b91505092915050565b600082825260208201905092915050565b7f4730313900000000000000000000000000000000000000000000000000000000600082015250565b6000611030600483610fe9565b915061103b82610ffa565b602082019050919050565b6000602082019050818103600083015261105f81611023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110a082610d74565b91506110ab83610d74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110e0576110df611066565b5b828201905092915050565b7f4530303200000000000000000000000000000000000000000000000000000000600082015250565b6000611121600483610fe9565b915061112c826110eb565b602082019050919050565b6000602082019050818103600083015261115081611114565b9050919050565b600061116282610d74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361119457611193611066565b5b600182019050919050565b6000815190506111ae81610f90565b92915050565b6000602082840312156111ca576111c9610e3a565b5b60006111d88482850161119f565b91505092915050565b6000815190506111f081610e3f565b92915050565b60006020828403121561120c5761120b610e3a565b5b600061121a848285016111e1565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611259602083610fe9565b915061126482611223565b602082019050919050565b600060208201905081810360008301526112888161124c565b9050919050565b7f4530303300000000000000000000000000000000000000000000000000000000600082015250565b60006112c5600483610fe9565b91506112d08261128f565b602082019050919050565b600060208201905081810360008301526112f4816112b8565b9050919050565b600061130682610d74565b915061131183610d74565b92508282101561132457611323611066565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061136982610d74565b915061137483610d74565b9250826113845761138361132f565b5b828204905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006113eb602e83610fe9565b91506113f68261138f565b604082019050919050565b6000602082019050818103600083015261141a816113de565b9050919050565b7f4530303100000000000000000000000000000000000000000000000000000000600082015250565b6000611457600483610fe9565b915061146282611421565b602082019050919050565b600060208201905081810360008301526114868161144a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006114e9602683610fe9565b91506114f48261148d565b604082019050919050565b60006020820190508181036000830152611518816114dc565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b600061157b602b83610fe9565b91506115868261151f565b604082019050919050565b600060208201905081810360008301526115aa8161156e565b905091905056fea2646970667358221220b24a8bd216826df429da6657ae815937fb806eeb685c2e951de677783156d62464736f6c634300080f0033\",\n  \"linkReferences\": {},\n  \"deployedLinkReferences\": {}\n}\n"
  },
  {
    "path": "packages/cli/test/abiTest2/project.yaml",
    "content": "specVersion: '1.0.0'\nname: 'example'\n\nschema:\n  file: './schema.graphql'\n\ncustomDs:\n  assets:\n    artifact:\n      file: ./artifact.json\ndataSources:\n  - kind: ethereum/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/build/package.json",
    "content": "{\n  \"name\": \"polkadot-starter\",\n  \"version\": \"1.0.0\",\n  \"description\": \"This project can be used as a starting point for developing your SubQuery project\",\n  \"main\": \"dist/index.js\",\n  \"scripts\": {\n    \"build\": \"subql build\",\n    \"codegen\": \"subql codegen\",\n    \"start:docker\": \"docker compose pull && docker compose up --remove-orphans\",\n    \"dev\": \"subql codegen && subql build && docker compose pull && docker compose up --remove-orphans\",\n    \"prepack\": \"rm -rf dist && npm run build\",\n    \"test\": \"subql build && subql-node test\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql-starter\",\n  \"repository\": \"github:subquery/subql-starter\",\n  \"files\": [\n    \"dist\",\n    \"schema.graphql\",\n    \"project.yaml\"\n  ],\n  \"author\": \"SubQuery Team\",\n  \"license\": \"MIT\",\n  \"devDependencies\": {\n    \"@polkadot/api\": \"^16\",\n    \"@subql/cli\": \"latest\",\n    \"@subql/testing\": \"latest\",\n    \"@subql/types\": \"latest\",\n    \"typescript\": \"^5.2.2\",\n    \"@subql/common-substrate\": \"^4.0.1\"\n  },\n  \"resolutions\": {\n    \"ipfs-unixfs\": \"6.0.6\"\n  },\n  \"exports\": {\n    \"chaintypes\": \"src/chainTypes.ts\"\n  }\n}\n"
  },
  {
    "path": "packages/cli/test/build/src/chainTypes.ts",
    "content": ""
  },
  {
    "path": "packages/cli/test/build/src/index.ts",
    "content": "//Exports all handler functions\n// export * from \"./mappings/mappingHandlers\";\nimport '@polkadot/api-augment';\n"
  },
  {
    "path": "packages/cli/test/build/src/test/mappingHandler.test.ts",
    "content": "import {subqlTest} from '@subql/testing';\n\n// See https://academy.subquery.network/build/testing.html\n\nsubqlTest(\n  'handleTransfer test', // Test name\n  191, // Block height to test at\n  [], // Dependent entities\n  [], // Expected entities\n  'handleEvent' // handler name\n);\n"
  },
  {
    "path": "packages/cli/test/build/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"emitDecoratorMetadata\": true,\n    \"experimentalDecorators\": true,\n    \"esModuleInterop\": true,\n    \"declaration\": true,\n    \"importHelpers\": true,\n    \"resolveJsonModule\": true,\n    \"module\": \"commonjs\",\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"target\": \"es2017\",\n    \"strict\": true\n  },\n  \"include\": [\n    \"src/**/*\",\n    \"node_modules/@subql/types-core/dist/global.d.ts\",\n    \"node_modules/@subql/types/dist/global.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "packages/cli/test/jsoncConfig/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"emitDecoratorMetadata\": true,\n    \"experimentalDecorators\": true,\n    \"esModuleInterop\": true,\n    \"declaration\": true,\n    \"importHelpers\": true,\n    \"resolveJsonModule\": true,\n    \"module\": \"commonjs\",\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"target\": \"es2017\",\n    \"strict\": true\n  },\n  \"include\": [\n    \"src/**/*\"\n    // \"node_modules/@subql/types-core/dist/global.d.ts\",\n    // \"node_modules/@subql/types/dist/global.d.ts\",\n  ]\n}\n"
  },
  {
    "path": "packages/cli/test/migrate/testProject/package.json",
    "content": "{\n  \"name\": \"poap-mainnet-subgraph\",\n  \"license\": \"UNLICENSED\",\n  \"scripts\": {\n    \"codegen\": \"graph codegen\",\n    \"build\": \"graph build\",\n    \"prepare:mainnet\": \"mustache config/mainnet.json subgraph.template.yaml > subgraph.yaml\",\n    \"prepare:xdai\": \"mustache config/xdai.json subgraph.template.yaml > subgraph.yaml\",\n    \"prepare:chiado\": \"mustache config/chiado.json subgraph.template.yaml > subgraph.yaml\",\n    \"prepare:goerli\": \"mustache config/goerli.json subgraph.template.yaml > subgraph.yaml\",\n    \"deploy:mainnet\": \"graph deploy --node https://api.thegraph.com/deploy/ --ipfs https://api.thegraph.com/ipfs/ poap-xyz/poap\",\n    \"deploy:xdai\": \"graph deploy --node https://api.thegraph.com/deploy/ --ipfs https://api.thegraph.com/ipfs/ poap-xyz/poap-xdai\",\n    \"deploy:chiado\": \"goldsky subgraph deploy poap-xyz/poap-chiado\",\n    \"deploy:goerli\": \"graph deploy --node https://api.thegraph.com/deploy/ --ipfs https://api.thegraph.com/ipfs/ poap-xyz/poap-goerli\",\n    \"create-local\": \"graph create --node http://localhost:8020/ poap-xyz/poap\",\n    \"remove-local\": \"graph remove --node http://localhost:8020/ poap-xyz/poap\",\n    \"deploy-local\": \"graph deploy --node http://localhost:8020/ --ipfs http://localhost:5001 poap-xyz/poap\"\n  },\n  \"dependencies\": {\n    \"@graphprotocol/graph-cli\": \"^0.67.2\",\n    \"@graphprotocol/graph-ts\": \"^0.31.0\"\n  },\n  \"devDependencies\": {\n    \"mustache\": \"^4.0.1\"\n  }\n}\n"
  },
  {
    "path": "packages/cli/test/migrate/testProject/subgraph.yaml",
    "content": "specVersion: 0.0.4\ndescription: POAPaaaa\nrepository: https://github.com/poap-xyz/poap-mainnet-subgraph\nschema:\n  file: ./schema.graphql\ndataSources:\n  - kind: ethereum/contract\n    name: Poap\n    network: mainnet\n    source:\n      address: '0x22C1f6050E56d2876009903609a2cC3fEf83B415'\n      abi: Poap\n      startBlock: 7844214\n    mapping:\n      kind: ethereum/events\n      apiVersion: 0.0.6\n      language: wasm/assemblyscript\n      entities:\n        - EventToken\n        - Transfer\n      abis:\n        - name: Poap\n          file: ./abis/Poap.json\n      eventHandlers:\n        - event: EventToken(uint256,uint256)\n          handler: handleEventToken\n        - event: Transfer(indexed address,indexed address,indexed uint256)\n          handler: handleTransfer\n      file: ./src/mapping.ts\n"
  },
  {
    "path": "packages/cli/test/protoTest1/project.yaml",
    "content": "specVersion: 1.0.0\nname: test\nversion: 0.0.1\nrunner:\n  node:\n    name: '@subql/node-cosmos'\n    version: '*'\n  query:\n    name: '@subql/query'\n    version: '*'\ndescription: ''\nrepository: ''\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: osmosis-1\n  endpoint:\n    - https://osmosis.api.onfinality.io/public\n  dictionary: 'https://api.subquery.network/sq/subquery/cosmos-osmosis-dictionary'\n  chaintypes:\n    osmosis.gamm.v1beta1:\n      file: './proto/osmosis/gamm/v1beta1/tx.proto'\n      messages:\n        - MsgSwapExactAmountIn\n    osmosis.poolmanager.v1beta1:\n      # needed by MsgSwapExactAmountIn\n      file: './proto/osmosis/poolmanager/v1beta1/swap_route.proto'\n      messages:\n        - SwapAmountInRoute\n    cosmos.base.v1beta1:\n      # needed by MsgSwapExactAmountIn\n      file: './proto/cosmos/base/v1beta1/coin.proto'\n      messages:\n        - 'Coin'\n\ndataSources:\n  - kind: cosmos/Runtime\n    startBlock: 9798050\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleMessage\n          kind: cosmos/MessageHandler\n          filter:\n            type: /osmosis.gamm.v1beta1.MsgSwapExactAmountIn\n"
  },
  {
    "path": "packages/cli/test/protoTest1/proto/cosmos/base/v1beta1/coin.proto",
    "content": "syntax = \"proto3\";\npackage cosmos.base.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\nimport \"cosmos_proto/cosmos.proto\";\n\noption go_package                       = \"github.com/cosmos/cosmos-sdk/types\";\noption (gogoproto.goproto_stringer_all) = false;\noption (gogoproto.stringer_all)         = false;\n\n// Coin defines a token with a denomination and an amount.\n//\n// NOTE: The amount field is an Int which implements the custom method\n// signatures required by gogoproto.\nmessage Coin {\n  option (gogoproto.equal) = true;\n\n  string denom  = 1;\n  string amount = 2\n      [(cosmos_proto.scalar) = \"cosmos.Int\", (gogoproto.customtype) = \"Int\", (gogoproto.nullable) = false];\n}\n\n// DecCoin defines a token with a denomination and a decimal amount.\n//\n// NOTE: The amount field is an Dec which implements the custom method\n// signatures required by gogoproto.\nmessage DecCoin {\n  option (gogoproto.equal) = true;\n\n  string denom  = 1;\n  string amount = 2\n      [(cosmos_proto.scalar) = \"cosmos.Dec\", (gogoproto.customtype) = \"Dec\", (gogoproto.nullable) = false];\n}\n\n// IntProto defines a Protobuf wrapper around an Int object.\nmessage IntProto {\n  string int = 1 [(cosmos_proto.scalar) = \"cosmos.Int\", (gogoproto.customtype) = \"Int\", (gogoproto.nullable) = false];\n}\n\n// DecProto defines a Protobuf wrapper around a Dec object.\nmessage DecProto {\n  string dec = 1 [(cosmos_proto.scalar) = \"cosmos.Dec\", (gogoproto.customtype) = \"Dec\", (gogoproto.nullable) = false];\n}\n"
  },
  {
    "path": "packages/cli/test/protoTest1/proto/osmosis/gamm/v1beta1/tx.proto",
    "content": "syntax = \"proto3\";\npackage osmosis.gamm.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\nimport \"amino/amino.proto\";\nimport \"cosmos/base/v1beta1/coin.proto\";\n\noption go_package = \"github.com/osmosis-labs/osmosis/v13/x/gamm/types\";\n\nservice Msg {\n  rpc JoinPool(MsgJoinPool) returns (MsgJoinPoolResponse);\n  rpc ExitPool(MsgExitPool) returns (MsgExitPoolResponse);\n  rpc SwapExactAmountIn(MsgSwapExactAmountIn)\n      returns (MsgSwapExactAmountInResponse);\n  rpc SwapExactAmountOut(MsgSwapExactAmountOut)\n      returns (MsgSwapExactAmountOutResponse);\n  rpc JoinSwapExternAmountIn(MsgJoinSwapExternAmountIn)\n      returns (MsgJoinSwapExternAmountInResponse);\n  rpc JoinSwapShareAmountOut(MsgJoinSwapShareAmountOut)\n      returns (MsgJoinSwapShareAmountOutResponse);\n  rpc ExitSwapExternAmountOut(MsgExitSwapExternAmountOut)\n      returns (MsgExitSwapExternAmountOutResponse);\n  rpc ExitSwapShareAmountIn(MsgExitSwapShareAmountIn)\n      returns (MsgExitSwapShareAmountInResponse);\n}\n\n// ===================== MsgJoinPool\n// This is really MsgJoinPoolNoSwap\nmessage MsgJoinPool {\n  option (amino.name) = \"osmosis/gamm/join-pool\";\n\n  string sender = 1 [ (gogoproto.moretags) = \"yaml:\\\"sender\\\"\" ];\n  uint64 pool_id = 2 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  string share_out_amount = 3 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"pool_amount_out\\\"\",\n    (gogoproto.nullable) = false\n  ];\n  repeated cosmos.base.v1beta1.Coin token_in_maxs = 4 [\n    (gogoproto.moretags) = \"yaml:\\\"token_in_max_amounts\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\nmessage MsgJoinPoolResponse {\n  string share_out_amount = 1 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"share_out_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n  repeated cosmos.base.v1beta1.Coin token_in = 2 [\n    (gogoproto.moretags) = \"yaml:\\\"token_in\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\n// ===================== MsgExitPool\nmessage MsgExitPool {\n  option (amino.name) = \"osmosis/gamm/exit-pool\";\n\n  string sender = 1 [ (gogoproto.moretags) = \"yaml:\\\"sender\\\"\" ];\n  uint64 pool_id = 2 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  string share_in_amount = 3 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"share_in_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n\n  repeated cosmos.base.v1beta1.Coin token_out_mins = 4 [\n    (gogoproto.moretags) = \"yaml:\\\"token_out_min_amounts\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\nmessage MsgExitPoolResponse {\n  repeated cosmos.base.v1beta1.Coin token_out = 1 [\n    (gogoproto.moretags) = \"yaml:\\\"token_out\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\n// ===================== MsgSwapExactAmountIn\nmessage SwapAmountInRoute {\n  uint64 pool_id = 1 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  string token_out_denom = 2\n      [ (gogoproto.moretags) = \"yaml:\\\"token_out_denom\\\"\" ];\n}\n\nmessage MsgSwapExactAmountIn {\n  option (amino.name) = \"osmosis/gamm/swap-exact-amount-in\";\n\n  string sender = 1 [ (gogoproto.moretags) = \"yaml:\\\"sender\\\"\" ];\n  repeated SwapAmountInRoute routes = 2 [ (gogoproto.nullable) = false ];\n  cosmos.base.v1beta1.Coin token_in = 3 [\n    (gogoproto.moretags) = \"yaml:\\\"token_in\\\"\",\n    (gogoproto.nullable) = false\n  ];\n  string token_out_min_amount = 4 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_out_min_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\nmessage MsgSwapExactAmountInResponse {\n  string token_out_amount = 1 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_out_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\n// ===================== MsgSwapExactAmountOut\nmessage SwapAmountOutRoute {\n  uint64 pool_id = 1 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  string token_in_denom = 2\n      [ (gogoproto.moretags) = \"yaml:\\\"token_out_denom\\\"\" ];\n}\n\nmessage MsgSwapExactAmountOut {\n  option (amino.name) = \"osmosis/gamm/swap-exact-amount-out\";\n\n  string sender = 1 [ (gogoproto.moretags) = \"yaml:\\\"sender\\\"\" ];\n  repeated SwapAmountOutRoute routes = 2 [ (gogoproto.nullable) = false ];\n  string token_in_max_amount = 3 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_in_max_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n  cosmos.base.v1beta1.Coin token_out = 4 [\n    (gogoproto.moretags) = \"yaml:\\\"token_out\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\nmessage MsgSwapExactAmountOutResponse {\n  string token_in_amount = 1 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_in_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\n// ===================== MsgJoinSwapExternAmountIn\n// TODO: Rename to MsgJoinSwapExactAmountIn\nmessage MsgJoinSwapExternAmountIn {\n  option (amino.name) = \"osmosis/gamm/join-swap-extern-amount-in\";\n\n  string sender = 1 [ (gogoproto.moretags) = \"yaml:\\\"sender\\\"\" ];\n  uint64 pool_id = 2 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  cosmos.base.v1beta1.Coin token_in = 3 [\n    (gogoproto.moretags) = \"yaml:\\\"token_in\\\"\",\n    (gogoproto.nullable) = false\n  ];\n  string share_out_min_amount = 4 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"share_out_min_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n  // repeated cosmos.base.v1beta1.Coin tokensIn = 5 [\n  //   (gogoproto.moretags) = \"yaml:\\\"tokens_in\\\"\",\n  //   (gogoproto.nullable) = false\n  // ];\n}\n\nmessage MsgJoinSwapExternAmountInResponse {\n  string share_out_amount = 1 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"share_out_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\n// ===================== MsgJoinSwapShareAmountOut\nmessage MsgJoinSwapShareAmountOut {\n  option (amino.name) = \"osmosis/gamm/join-swap-share-amount-out\";\n\n  string sender = 1 [ (gogoproto.moretags) = \"yaml:\\\"sender\\\"\" ];\n  uint64 pool_id = 2 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  string token_in_denom = 3\n      [ (gogoproto.moretags) = \"yaml:\\\"token_in_denom\\\"\" ];\n  string share_out_amount = 4 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"share_out_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n  string token_in_max_amount = 5 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_in_max_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\nmessage MsgJoinSwapShareAmountOutResponse {\n  string token_in_amount = 1 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_in_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\n// ===================== MsgExitSwapShareAmountIn\nmessage MsgExitSwapShareAmountIn {\n  option (amino.name) = \"osmosis/gamm/exit-swap-share-amount-in\";\n\n  string sender = 1 [ (gogoproto.moretags) = \"yaml:\\\"sender\\\"\" ];\n  uint64 pool_id = 2 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  string token_out_denom = 3\n      [ (gogoproto.moretags) = \"yaml:\\\"token_out_denom\\\"\" ];\n  string share_in_amount = 4 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"share_in_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n  string token_out_min_amount = 5 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_out_min_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\nmessage MsgExitSwapShareAmountInResponse {\n  string token_out_amount = 1 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_out_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\n// ===================== MsgExitSwapExternAmountOut\nmessage MsgExitSwapExternAmountOut {\n  option (amino.name) = \"osmosis/gamm/exit-swap-extern-amount-out\";\n\n  string sender = 1 [ (gogoproto.moretags) = \"yaml:\\\"sender\\\"\" ];\n  uint64 pool_id = 2 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  cosmos.base.v1beta1.Coin token_out = 3 [\n    (gogoproto.moretags) = \"yaml:\\\"token_out\\\"\",\n    (gogoproto.nullable) = false\n  ];\n  string share_in_max_amount = 4 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"share_in_max_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\nmessage MsgExitSwapExternAmountOutResponse {\n  string share_in_amount = 1 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"share_in_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n"
  },
  {
    "path": "packages/cli/test/protoTest1/proto/osmosis/poolmanager/v1beta1/swap_route.proto",
    "content": "syntax = \"proto3\";\npackage osmosis.poolmanager.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\n\noption go_package = \"github.com/osmosis-labs/osmosis/v15/x/poolmanager/types\";\n\nmessage SwapAmountInRoute {\n  uint64 pool_id = 1 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  string token_out_denom = 2\n      [ (gogoproto.moretags) = \"yaml:\\\"token_out_denom\\\"\" ];\n}\n\nmessage SwapAmountOutRoute {\n  uint64 pool_id = 1 [ (gogoproto.moretags) = \"yaml:\\\"pool_id\\\"\" ];\n  string token_in_denom = 2\n      [ (gogoproto.moretags) = \"yaml:\\\"token_in_denom\\\"\" ];\n}\n\nmessage SwapAmountInSplitRoute {\n  repeated SwapAmountInRoute pools = 1\n      [ (gogoproto.moretags) = \"yaml:\\\"pools\\\"\", (gogoproto.nullable) = false ];\n  string token_in_amount = 2 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_in_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}\n\nmessage SwapAmountOutSplitRoute {\n  repeated SwapAmountOutRoute pools = 1\n      [ (gogoproto.moretags) = \"yaml:\\\"pools\\\"\", (gogoproto.nullable) = false ];\n  string token_out_amount = 2 [\n    (gogoproto.customtype) = \"github.com/cosmos/cosmos-sdk/types.Int\",\n    (gogoproto.moretags) = \"yaml:\\\"token_out_amount\\\"\",\n    (gogoproto.nullable) = false\n  ];\n}"
  },
  {
    "path": "packages/cli/test/schemaTest/abis/erc721.json",
    "content": "[\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"string\",\n        \"name\": \"name\",\n        \"type\": \"string\"\n      },\n      {\n        \"internalType\": \"string\",\n        \"name\": \"symbol\",\n        \"type\": \"string\"\n      },\n      {\n        \"internalType\": \"string\",\n        \"name\": \"baseURI\",\n        \"type\": \"string\"\n      }\n    ],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"constructor\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"internalType\": \"address\",\n        \"name\": \"owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"internalType\": \"address\",\n        \"name\": \"approved\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"internalType\": \"uint256\",\n        \"name\": \"tokenId\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Approval\",\n    \"type\": \"event\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"internalType\": \"address\",\n        \"name\": \"owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"internalType\": \"address\",\n        \"name\": \"operator\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": false,\n        \"internalType\": \"bool\",\n        \"name\": \"approved\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"name\": \"ApprovalForAll\",\n    \"type\": \"event\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"internalType\": \"address\",\n        \"name\": \"from\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"internalType\": \"address\",\n        \"name\": \"to\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"internalType\": \"uint256\",\n        \"name\": \"tokenId\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Transfer\",\n    \"type\": \"event\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"to\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"tokenId\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"approve\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"owner\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"balanceOf\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"baseURI\",\n    \"outputs\": [\n      {\n        \"internalType\": \"string\",\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"tokenId\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"getApproved\",\n    \"outputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"\",\n        \"type\": \"address\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"address\",\n        \"name\": \"operator\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"isApprovedForAll\",\n    \"outputs\": [\n      {\n        \"internalType\": \"bool\",\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"name\",\n    \"outputs\": [\n      {\n        \"internalType\": \"string\",\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"tokenId\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"ownerOf\",\n    \"outputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"\",\n        \"type\": \"address\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"from\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"address\",\n        \"name\": \"to\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"tokenId\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"safeTransferFrom\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"from\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"address\",\n        \"name\": \"to\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"tokenId\",\n        \"type\": \"uint256\"\n      },\n      {\n        \"internalType\": \"bytes\",\n        \"name\": \"_data\",\n        \"type\": \"bytes\"\n      }\n    ],\n    \"name\": \"safeTransferFrom\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"operator\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"bool\",\n        \"name\": \"approved\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"name\": \"setApprovalForAll\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"bytes4\",\n        \"name\": \"interfaceId\",\n        \"type\": \"bytes4\"\n      }\n    ],\n    \"name\": \"supportsInterface\",\n    \"outputs\": [\n      {\n        \"internalType\": \"bool\",\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"symbol\",\n    \"outputs\": [\n      {\n        \"internalType\": \"string\",\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"index\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"tokenByIndex\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"index\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"tokenOfOwnerByIndex\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"tokenId\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"tokenURI\",\n    \"outputs\": [\n      {\n        \"internalType\": \"string\",\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [],\n    \"name\": \"totalSupply\",\n    \"outputs\": [\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"inputs\": [\n      {\n        \"internalType\": \"address\",\n        \"name\": \"from\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"address\",\n        \"name\": \"to\",\n        \"type\": \"address\"\n      },\n      {\n        \"internalType\": \"uint256\",\n        \"name\": \"tokenId\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"transferFrom\",\n    \"outputs\": [],\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  }\n]\n"
  },
  {
    "path": "packages/cli/test/schemaTest/badEntity.graphql",
    "content": "type exampleEntity @entity {\n  id: ID!\n  filter: exampleEntityFilter\n  filters: exampleEntityFilters\n}\n\ntype exampleEntityFilter @entity {\n  id: ID!\n  minSore: Int\n}\n\ntype exampleEntityFilters @entity {\n  id: ID!\n  maxSore: Int\n}\n"
  },
  {
    "path": "packages/cli/test/schemaTest/badschema.graphql",
    "content": "type badEntity @entity {\n  id: ID!\n  value: BigDecimal\n}\n"
  },
  {
    "path": "packages/cli/test/schemaTest/camelcaseEntityName.graphql",
    "content": "type exampleField @entity {\n  id: ID!\n}\n"
  },
  {
    "path": "packages/cli/test/schemaTest/dbTypeSchema.graphql",
    "content": "type BlockMeta @entity {\n  id: ID! @dbType(type: \"BigInt\")\n\n  height: Int!\n}\n\ntype Block @entity {\n  id: ID!\n\n  meta: BlockMeta!\n}\n"
  },
  {
    "path": "packages/cli/test/schemaTest/duplicateEnum.graphql",
    "content": "enum Bar {\n  FOO\n  BAR\n}\n\ntype Foo @entity {\n  id: ID!\n  a: Bar!\n  b: Bar!\n}\n"
  },
  {
    "path": "packages/cli/test/schemaTest/generate-project-2.yaml",
    "content": "specVersion: 1.0.0\nname: generate-test\nversion: 0.0.1\nrunner:\n  node:\n    name: \"@subql/node-ethereum\"\n    version: \"*\"\n  query:\n    name: \"@subql/query\"\n    version: \"*\"\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: \"1\"\n  endpoint:\n    - https://eth.api.onfinality.io/public\n  dictionary: https://gx.api.subquery.network/sq/subquery/eth-dictionary\ndataSources:\n  #datasource comment\n  - kind: ethereum/Runtime\n    startBlock: 4719568\n    options:\n      abi: erc721\n      address: \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\"\n    assets:\n      erc721:\n        file: ./erc721.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/TransactionHandler\n          filter:\n            function: approve(address,uint256)\n        - handler: handleLog\n          kind: ethereum/LogHandler\n          filter:\n            topics:\n              - Transfer(address,address,uint256)\n        #handler comment\n"
  },
  {
    "path": "packages/cli/test/schemaTest/generate-project.yaml",
    "content": "specVersion: 1.0.0\nname: generate-test\nversion: 0.0.1\nrunner:\n  node:\n    name: \"@subql/node-ethereum\"\n    version: \"*\"\n  query:\n    name: \"@subql/query\"\n    version: \"*\"\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: \"1\"\n  endpoint:\n    - https://eth.api.onfinality.io/public\n  dictionary: https://gx.api.subquery.network/sq/subquery/eth-dictionary\ndataSources:\n  - kind: ethereum/Runtime\n    startBlock: 4719568\n    options:\n      abi: erc721\n      address: \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\"\n    assets:\n      erc721:\n        file: ./erc721.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/TransactionHandler\n          filter:\n            function: approve(address spender, uint256 rawAmount)\n        - handler: handleLog\n          kind: ethereum/LogHandler\n          filter:\n            topics:\n              - Transfer(address indexed from, address indexed to, uint256\n                amount)\n"
  },
  {
    "path": "packages/cli/test/schemaTest/non-evm-project.yaml",
    "content": "specVersion: '1.0.0'\nname: 'example'\n\nschema:\n  file: './schema.graphql'\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\ncustomDs:\n  kind: substrate/Wasm\n  assets:\n    erc721:\n      file: ./abis/erc721.json\n"
  },
  {
    "path": "packages/cli/test/schemaTest/package.json",
    "content": "{\n  \"name\": \"test-1\",\n  \"version\": \"0.0.1\",\n  \"description\": \"tester project\",\n  \"main\": \"dist/index.js\",\n  \"scripts\": {\n    \"build\": \"subql build\",\n    \"codegen\": \"subql codegen\",\n    \"start:docker\": \"docker compose pull && docker compose up --remove-orphans\",\n    \"dev\": \"subql codegen && subql build && docker compose pull && docker compose up --remove-orphans\",\n    \"prepack\": \"rm -rf dist && npm run build\",\n    \"test\": \"subql build && subql-node-ethereum test\"\n  },\n  \"homepage\": \"https://github.com/subquery/ethereum-subql-starter\",\n  \"repository\": \"github:subquery/ethereum-subql-starter\",\n  \"files\": [\n    \"dist\",\n    \"schema.graphql\",\n    \"project.yaml\"\n  ],\n  \"author\": \"bz888\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@subql/common\": \"latest\",\n    \"@subql/types-ethereum\": \"latest\",\n    \"assert\": \"^2.0.0\"\n  },\n  \"devDependencies\": {\n    \"@subql/cli\": \"latest\",\n    \"@subql/types\": \"latest\",\n    \"@subql/testing\": \"latest\",\n    \"@subql/node-ethereum\": \"latest\",\n    \"ethers\": \"^5.7.2\",\n    \"typescript\": \"4.5.5\"\n  }\n}\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project-bad-entity.yaml",
    "content": "specVersion: '1.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\nschema:\n  file: './badEntity.graphql'\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\nnetwork:\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n\ndataSources:\n  - name: main\n    kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project-bad-schema.yaml",
    "content": "specVersion: '1.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\nschema:\n  file: './badschema.graphql'\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\nnetwork:\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n\ndataSources:\n  - name: main\n    kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project-case-sensitive-import-entity.yaml",
    "content": "specVersion: '1.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\nschema:\n  file: './camelcaseEntityName.graphql'\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\nnetwork:\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n\ndataSources:\n  - name: main\n    kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project-cosmos.yaml",
    "content": "specVersion: 1.0.0\nname: axelar-subql-starter\nversion: 0.0.1\nrunner:\n  node:\n    name: '@subql/node-cosmos'\n    version: '*'\n  query:\n    name: '@subql/query'\n    version: '*'\ndescription: >-\n  This project can be use as a starting point for developing your Cosmos (Axelar) based SubQuery project\nrepository: 'https://github.com/subquery/cosmos-subql-starter'\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: axelar-dojo-1\n  endpoint: ['https://axelar-archrpc.chainode.tech/']\n  chaintypes: {}\ndataSources:\n  - kind: cosmos/Runtime\n    startBlock: 5262 # The first deposit event occurs on this block\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleEvent\n          kind: cosmos/EventHandler\n          filter:\n            type: 'depositConfirmation'\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project-duplicate-enum.yaml",
    "content": "specVersion: '1.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\nschema:\n  file: './duplicateEnum.graphql'\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\nnetwork:\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n\ndataSources:\n  - name: main\n    kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project-id-type.yaml",
    "content": "specVersion: '1.0.0'\nname: 'example'\n\nschema:\n  file: './dbTypeSchema.graphql'\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\ncustomDs:\n  kind: substrate/FrontierEvm\n  assets:\n    erc721:\n      file: ./abis/erc721.json\ndataSources:\n  - kind: ethereum/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project-no-abi.yaml",
    "content": "specVersion: '1.0.0'\nname: 'example'\n\nschema:\n  file: './schema.graphql'\nrunner:\n  node:\n    name: '@subql/node-ethereum'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\ndataSources:\n  - kind: ethereum/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project-no-assets.yaml",
    "content": "specVersion: '1.0.0'\nname: 'example'\nrunner:\n  node:\n    name: '@subql/node-ethereum'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\nschema:\n  file: './schema.graphql'\n\ngoodDs:\n\ndataSources:\n  - kind: ethereum/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/BlockHandler\ntemplates:\n  - name: ERC721\n    kind: ethereum/Runtime\n    mapping:\n      handlers:\n        - handler: handleERC721\n          kind: ethereum/LogHandler\n          filter:\n            topics:\n              - Transfer(address, address, uint256)\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project-templates-abi.yaml",
    "content": "specVersion: '1.0.0'\nname: 'example'\n\nschema:\n  file: './schema.graphql'\nrunner:\n  node:\n    name: '@subql/node-ethereum'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\ndataSources:\n  - kind: ethereum/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/BlockHandler\ntemplates:\n  - name: ERC721\n    kind: ethereum/Runtime\n    options:\n      abi: erc721\n    assets:\n      erc721:\n        file: './abis/erc721.json'\n    mapping:\n      handlers:\n        - handler: handleERC721\n          kind: ethereum/LogHandler\n          filter:\n            topics:\n              - Transfer(address, address, uint256)\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project.ts",
    "content": "import {\n  SubstrateDatasourceKind,\n  SubstrateHandlerKind,\n  SubstrateProject,\n  // @ts-ignore\n} from '@subql/types';\n\n// Can expand the Datasource processor types via the generic param\nconst project: SubstrateProject = {\n  specVersion: '1.0.0',\n  version: '0.0.1',\n  name: 'acala-starter',\n  description:\n    'This project can be used as a starting point for developing your SubQuery project. It indexes all transfers on Acala network',\n  runner: {\n    node: {\n      name: '@subql/node',\n      version: '>=3.0.1',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n  schema: {\n    file: './schema.graphql',\n  },\n  network: {\n    chainId: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n    endpoint: [`wss://acala-polkadot.api.onfinality.io/public-ws`, 'wss://acala-rpc-0.aca-api.network'],\n    dictionary: 'https://api.subquery.network/sq/subquery/acala-dictionary',\n    chaintypes: {\n      file: './dist/chaintypes.js',\n    },\n  },\n  dataSources: [\n    {\n      kind: SubstrateDatasourceKind.Runtime,\n      startBlock: 1,\n      mapping: {\n        file: './dist/index.js',\n        handlers: [\n          {\n            kind: SubstrateHandlerKind.Event,\n            handler: 'handleEvent',\n            filter: {\n              module: 'balances',\n              method: 'Transfer',\n            },\n          },\n        ],\n      },\n    },\n  ],\n};\n\nexport default project;\n"
  },
  {
    "path": "packages/cli/test/schemaTest/project.yaml",
    "content": "specVersion: '1.0.0'\nname: 'example'\n\nschema:\n  file: './schema.graphql'\nrunner:\n  node:\n    name: '@subql/node-ethereum'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\ncustomDs:\n  kind: substrate/FrontierEvm\n  assets:\n    erc721:\n      file: ./abis/erc721.json\ndataSources:\n  - kind: ethereum/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/schemaTest/schema.graphql",
    "content": "enum Test {\n  FOO\n  BAR\n}\ntype goodEntity @entity {\n  id: ID! #id is a required field\n  field1: Int!\n\n  field2: String #filed2 is an optional field\n  field3: BigInt\n\n  field4: Date\n\n  field5: Test\n\n  field6: Float\n}\n"
  },
  {
    "path": "packages/cli/test/schemaTest/typechain-test.yaml",
    "content": "specVersion: '1.0.0'\nname: 'example'\n\nschema:\n  file: './schema.graphql'\n\nrunner:\n  node:\n    name: '@subql/node-ethereum'\n    version: '>=3.0.1'\n  query:\n    name: '@subql/query'\n    version: '*'\n\ndataSources:\n  - kind: ethereum/Runtime\n    startBlock: 1\n    assets:\n      erc721:\n        file: ./abis/erc721.json\n    mapping:\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/BlockHandler\n  - kind: ethereum/Runtime\n    startBlock: 2\n    assets:\n      artifact:\n        file: ../abiTest1/abis/artifact.sol/artifact.json\n    mapping:\n      handlers:\n        - handler: handleTransaction\n          kind: ethereum/BlockHandler\n"
  },
  {
    "path": "packages/cli/test/ts-manifest/erc20.json",
    "content": "[\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"name\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_spender\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"approve\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"totalSupply\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_from\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_to\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"transferFrom\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"decimals\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint8\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [\n      {\n        \"name\": \"_owner\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"balanceOf\",\n    \"outputs\": [\n      {\n        \"name\": \"balance\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"symbol\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_to\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"transfer\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [\n      {\n        \"name\": \"_owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_spender\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"allowance\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"payable\": true,\n    \"stateMutability\": \"payable\",\n    \"type\": \"fallback\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"name\": \"owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"name\": \"spender\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": false,\n        \"name\": \"value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Approval\",\n    \"type\": \"event\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"name\": \"from\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"name\": \"to\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": false,\n        \"name\": \"value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Transfer\",\n    \"type\": \"event\"\n  }\n]\n"
  },
  {
    "path": "packages/cli/test/ts-manifest/project.ts",
    "content": "// @ts-nocheck\nimport {EthereumProject, EthereumDatasourceKind, EthereumHandlerKind} from '@subql/types-ethereum';\n\n// Can expand the Datasource processor types via the generic param\nconst project: EthereumProject = {\n  specVersion: '1.0.0',\n  version: '0.0.1',\n  name: 'ethereum-subql-starter',\n  description: 'This project can be use as a starting point for developing your new Ethereum SubQuery project',\n  runner: {\n    node: {\n      name: '@subql/node-ethereum',\n      version: '>=3.0.0',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n  schema: {\n    file: './schema.graphql',\n  },\n  network: {\n    /**\n     * chainId is the EVM Chain ID, for Ethereum this is 1\n     * https://chainlist.org/chain/1\n     */\n    chainId: '1',\n    /**\n     * This endpoint must be a public non-pruned archive node\n     * Public nodes may be rate limited, which can affect indexing speed\n     * When developing your project we suggest getting a private API key\n     * You can get them from OnFinality for free https://app.onfinality.io\n     * https://documentation.onfinality.io/support/the-enhanced-api-service\n     */\n    endpoint: ['https://eth.api.onfinality.io/public'],\n    dictionary: 'https://gx.api.subquery.network/sq/subquery/eth-dictionary',\n  },\n  dataSources: [\n    {\n      kind: EthereumDatasourceKind.Runtime,\n      startBlock: 4719568,\n\n      options: {\n        // Must be a key of assets\n        abi: 'erc20',\n        // # this is the contract address for wrapped ether https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\n        address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n      },\n      assets: new Map([['erc20', {file: './abis/erc20.abi.json'}]]),\n      mapping: {\n        file: './dist/index.js',\n        handlers: [\n          {\n            kind: EthereumHandlerKind.Call,\n            handler: 'handleTransaction',\n            filter: {\n              /**\n               * The function can either be the function fragment or signature\n               * function: '0x095ea7b3'\n               * function: '0x7ff36ab500000000000000000000000000000000000000000000000000000000'\n               */\n              function: 'approve(address spender, uint256 rawAmount)',\n            },\n          },\n          {\n            kind: EthereumHandlerKind.Event,\n            handler: 'handleLog',\n            filter: {\n              /**\n               * Follows standard log filters https://docs.ethers.io/v5/concepts/events/\n               * address: \"0x60781C2586D68229fde47564546784ab3fACA982\"\n               */\n              topics: ['Transfer(address indexed from, address indexed to, uint256 amount)'],\n            },\n          },\n        ],\n      },\n    },\n  ],\n  repository: 'https://github.com/subquery/ethereum-subql-starter',\n};\n\nexport default project;\n"
  },
  {
    "path": "packages/cli/test/tsManifestTest/project1.ts",
    "content": "import {SubstrateDatasourceKind, SubstrateHandlerKind, SubstrateProject} from '@subql/types';\n\nconst project: SubstrateProject = {\n  specVersion: '1.0.0',\n  name: 'multichain-transfers-polkadot',\n  version: '0.0.1',\n  runner: {\n    node: {\n      name: '@subql/node',\n      version: '>=1.0.0',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n  description:\n    'This project is an example of a multichain project that indexes multiple networks into the same database. Read more about it at https://academy.subquery.network/build/multi-chain.html',\n  repository: 'https://github.com/subquery/multi-networks-transfers.git',\n  schema: {\n    file: './schema.graphql',\n  },\n  network: {\n    chainId: '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n    endpoint: ['wss://kusama.api.onfinality.io/public-ws', 'wss://kusama-rpc.polkadot.io'],\n    dictionary: 'https://api.subquery.network/sq/subquery/kusama-dictionary',\n  },\n  dataSources: [\n    {\n      kind: SubstrateDatasourceKind.Runtime,\n      startBlock: 1,\n      mapping: {\n        file: './dist/index.js',\n        handlers: [\n          {\n            handler: 'handleKusamaEvent',\n            kind: SubstrateHandlerKind.Event,\n            filter: {\n              module: 'balances',\n              method: 'Transfer',\n            },\n          },\n        ],\n      },\n    },\n  ],\n};\n\nexport default project;\n"
  },
  {
    "path": "packages/cli/test/tsManifestTest/project2.ts",
    "content": "import {SubstrateDatasourceKind, SubstrateHandlerKind, SubstrateProject} from '@subql/types';\n\nconst project: SubstrateProject = {\n  specVersion: '1.0.0',\n  name: 'multichain-transfers-polkadot',\n  version: '0.0.1',\n  runner: {\n    node: {\n      name: '@subql/node',\n      version: '>=1.0.0',\n    },\n    query: {\n      name: '@subql/query',\n      version: '*',\n    },\n  },\n  description:\n    'This project is an example of a multichain project that indexes multiple networks into the same database. Read more about it at https://academy.subquery.network/build/multi-chain.html',\n  repository: 'https://github.com/subquery/multi-networks-transfers.git',\n  schema: {\n    file: './schema.graphql',\n  },\n  network: {\n    chainId: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n    endpoint: ['wss://polkadot.api.onfinality.io/public-ws', 'wss://rpc.polkadot.io'],\n    dictionary: 'https://api.subquery.network/sq/subquery/polkadot-dictionary',\n  },\n  dataSources: [\n    {\n      kind: SubstrateDatasourceKind.Runtime,\n      startBlock: 1,\n      mapping: {\n        file: './dist/index.js',\n        handlers: [\n          {\n            handler: 'handlePolkadotEvent',\n            kind: SubstrateHandlerKind.Event,\n            filter: {\n              module: 'balances',\n              method: 'Transfer',\n            },\n          },\n        ],\n      },\n    },\n  ],\n};\n\nexport default project;\n"
  },
  {
    "path": "packages/cli/test/tsManifestTest/project3.yaml",
    "content": "# // Auto-generated , DO NOT EDIT\nspecVersion: 1.0.0\nname: multichain-transfers-polkadot\nversion: 0.0.1\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=1.0.0'\n  query:\n    name: '@subql/query'\n    version: '*'\ndescription: >-\n  This project is an example of a multichain project that indexes multiple\n  networks into the same database. Read more about it at\n  https://academy.subquery.network/build/multi-chain.html\nrepository: https://github.com/subquery/multi-networks-transfers.git\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe'\n  endpoint:\n    - wss://kusama.api.onfinality.io/public-ws\n    - wss://kusama-rpc.polkadot.io\n  dictionary: https://api.subquery.network/sq/subquery/kusama-dictionary\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleKusamaEvent\n          kind: substrate/EventHandler\n          filter:\n            module: balances\n            method: Transfer\n"
  },
  {
    "path": "packages/cli/test/tsManifestTest/subquery-multichain.ts",
    "content": "import {MultichainProjectManifest} from '@subql/types-core';\n\nconst project: MultichainProjectManifest = {\n  specVersion: '1.0.0',\n  query: {\n    name: '@subql/query',\n    version: '*',\n  },\n  projects: ['project1.ts', 'project2.ts'],\n};\n\nexport default project;\n"
  },
  {
    "path": "packages/cli/test/tsManifestTest/subquery-multichain2.ts",
    "content": "import {MultichainProjectManifest} from '@subql/types-core';\n\nconst project: MultichainProjectManifest = {\n  specVersion: '1.0.0',\n  query: {\n    name: '@subql/query',\n    version: '*',\n  },\n  projects: ['project1.ts', 'project3.ts'],\n};\n\nexport default project;\n"
  },
  {
    "path": "packages/cli/test/tsManifestTest/subquery-multichain3.ts",
    "content": "import {MultichainProjectManifest} from '@subql/types-core';\n\nconst project: MultichainProjectManifest = {\n  specVersion: '1.0.0',\n  query: {\n    name: '@subql/query',\n    version: '*',\n  },\n  projects: ['project1.ts', 'project3.yaml'],\n};\n\nexport default project;\n"
  },
  {
    "path": "packages/cli/test/tsManifestTest/subquery-multichain4.yaml",
    "content": "specVersion: 1.0.0\nquery:\n  name: '@subql/query'\n  version: '*'\nprojects:\n  - project1.ts\n  - project2.ts\n"
  },
  {
    "path": "packages/cli/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"emitDecoratorMetadata\": true,\n    \"experimentalDecorators\": true,\n    \"esModuleInterop\": true,\n    \"importHelpers\": true,\n    \"rootDir\": \"src\",\n    \"tsBuildInfoFile\": \"lib/.tsbuildinfo\",\n    \"outDir\": \"lib\",\n    \"noImplicitAny\": true,\n    \"resolveJsonModule\": true\n  },\n  \"references\": [{\"path\": \"../common\"}, {\"path\": \"../common-substrate\"}, {\"path\": \"../utils\"}],\n  \"include\": [\"src/**/*\"],\n  \"exclude\": [\"test/schemaTest/project.ts\"],\n  \"plugins\": [\n    {\n      \"name\": \"@0no-co/graphqlsp\",\n      \"schema\": \"./graphql.schema.json\"\n    }\n  ]\n}\n"
  },
  {
    "path": "packages/common/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [5.8.2] - 2025-11-20\n### Changed\n- Update js-yaml (#2960)\n\n## [5.8.1] - 2025-11-05\n### Changed\n- Update axios (#2952)\n\n## [5.8.0] - 2025-10-15\n### Changed\n- Minor improvements and fixes from upgrading to eslint 9 with stricter settings (#2929)\n\n## [5.7.6] - 2025-09-16\n### Changed\n- Improved error message relating to IPFS (#2876)\n\n## [5.7.5] - 2025-08-29\n### Changed\n- Fixed typos (#2895)\n\n## [5.7.4] - 2025-08-25\n### Changed\n- Bump axios to 1.11.0 (#2881)\n\n## [5.7.3] - 2025-07-24\n### Changed\n- Bump form-data dependency (#2858)\n\n## [5.7.2] - 2025-07-17\n### Changed\n- Workspace dependencies now match to patch versions rather than exact (#2855)\n\n## [5.7.1] - 2025-07-14\n### Fixed\n- Lock down class-validator dependency that had a breaking change in a patch release (#2844)\n\n## [5.7.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n## [5.6.1] - 2025-06-25\n### Changed\n- Update reflect-metadata dependency (#2826)\n\n## [5.6.0] - 2025-04-30\n### Changed\n- Update axios dependency\n\n## [5.5.0] - 2025-04-17\n### Added\n- Support for Solana (#2745)\n\n## [5.4.0] - 2025-02-19\n### Changed\n- Update polkadot api to 15 (#2680)\n\n## [5.3.1] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n\n## [5.3.0] - 2025-01-28\n### Added\n- Add starknet to network family constants\n\n## [5.2.2] - 2024-12-11\n### Fixed\n- Missing form-data dependency (#2622)\n\n## [5.2.1] - 2024-11-25\n### Changed\n- Update polkadot/api library to 14 version\n\n## [5.2.0] - 2024-11-22\n### Fixed\n- Removed imports of `@polkadot/util` without it being a dependency (#2592)\n\n### Removed\n- Support for cockroach DB (#2584)\n\n## [5.1.4] - 2024-10-23\n### Fixed\n- Bump version `@subql/types-core`\n\n## [5.1.3] - 2024-09-25\n### Added\n- `Runner.query` support `@subql/query-subgraph` option\n\n## [5.1.2] - 2024-09-09\n### Changed\n- Expose CID on IPFS Reader (#2551)\n\n## [5.1.1] - 2024-08-14\n### Added\n- Update polkadot/api library\n\n## [5.1.0] - 2024-08-05\n### Removed\n- `findAvailablePort` function, it now lives in `@subql/utils` (#2518)\n\n### Changed\n- Update dependencies (#2518)\n\n## [5.0.0] - 2024-08-01\n### Added\n- New type for endpoint to allow specifying endpoint options (#2511)\n\n## [4.1.1] - 2024-07-25\n### Changed\n- Bump version with `@subql/utils`\n\n## [4.1.0] - 2024-07-11\n### Added\n- Add `IPFSHTTPClientLite` to replace original `IPFSHTTPClient` in order to reduce dependencies (#2480)\n\n## [4.0.1] - 2024-07-09\n### Changed\n- Changes to ts build settings (#2475)\n\n## [4.0.0] - 2024-07-01\n### Changed\n- Breaking Change: Bump version with `@subql/types-core`, apply parseFunction type missing asImpl and its deployment (#2466)\n\n## [3.9.0] - 2024-06-21\n### Added\n- Enable ts strict model (#2448)\n- Reader interface method not returning undefined (#2448)\n\n## [3.8.0] - 2024-06-18\n### Changed\n- Deprecated flare SDK (#2428)\n\n## [3.7.0] - 2024-06-05\n### Changed\n- Add default value in model class to follow ES2022 rule\n\n## [3.6.0] - 2024-05-22\n### Changed\n- Improve error message when project manifest is invalid (#2408)\n\n## [3.5.1] - 2024-04-24\n### Added\n- Default .env file names (#2345)\n\n## [3.5.0] - 2024-03-28\n### Changed\n- Dictionary model changed (#2257)\n\n## [3.4.1] - 2024-02-23\n### Changed\n- Bump axios from 0.27.0 to 0.28.0 (#2262)\n\n## [3.4.0] - 2024-02-07\n### Added\n- Update `ParentProject` to use `untilBlock` as and alias for `block` (#2235)\n\n## [3.3.1] - 2023-12-14\n### Fixed\n- Rollback version of axios to support commonsjs\n\n## [3.3.0] - 2023-10-31\n### Added\n- New `endBlock` option on datasources (#2064)\n- Add Concordium to network family (#2078)\n\n## [3.2.0] - 2023-10-25\n### Added\n- Multichain support for TypeScript manifests (#2097)\n\n## [3.1.3] - 2023-10-18\n### Fixed\n- IPFS Reader error handling (#2106)\n\n## [3.1.2] - 2023-10-05\n### Changed\n- Remove `forbidNonWhitelisted` option from common manifest validation (#2070)\n\n## [3.1.1] - 2023-10-03\n### Changed\n- Version bump with `types-core` 0.1.1\n\n## [3.1.0] - 2023-10-02\n### Changed\n- Version bump with `types-core` 0.1.0\n\n## [3.0.1] - 2023-09-28\n### Changed\n- Re-release of 2.7.0 which was a breaking change\n\n## [2.7.0] - 2023-09-01\n### Added\n- Added fileReference validator (#1984)\n- Add spec for project upgrades (#1797)\n- `skipTransactions` node runner option (#1968)\n\n### Changed\n- move block filters to common (#1969)\n\n## [2.6.0] - 2023-08-25\n### Changed\n- Update ipfs-http-api (#1967)\n\n## [2.5.0] - 2023-08-10\n### Added\n- Add stellar to network family (#1919)\n- Support for update availability logs (#1930)\n\n## [2.4.0] - 2023-07-31\n### Fixed\n- Update license (#1891)\n- Fix ipfs repeat cat same cid (#1899\n\n### Added\n- Added `forbidNonWhitelisted` to common (#1901)\n\n## [2.3.0] - 2023-06-26\n### Removed\n- Support for Terra and Avalanche SDKs (#1841)\n\n## [2.2.2] - 2023-06-19\n### Fixed\n- Fixed test (#1806)\n\n### Added\n- Simply multi-chain running (#1746)\n\n## [2.2.1] - 2023-06-09\n### Changed\n- Use @subql/x-sequelize in order to support cockroach (#1791)\n\n## [2.2.0] - 2023-05-31\n### Changed\n- Improve incorrect runner message (#1775)\n\n## [2.1.2] - 2023-05-26\n### Added\n- Add `DEFAULT_PORT` constant (#1752)\n\n## [2.1.1] - 2023-05-11\n### Changed\n- Move validate function to common (#1683)\n\n## [2.1.0] - 2023-05-10\n### Added\n- `BaseCustomDataSource` type (#1658)\n- Moved `FileType` from `@subql/common-substrate` (#1659)\n\n## [2.0.0] - 2023-04-20\n### Changed\n- Major release for 2.0.0, align with other package versions\n\n## [1.8.1] - 2023-03-30\n### Added\n- Add types to support Multiple endpoints (#1551)\n\n### Fixed\n- Fix previous release 1.8.0 failed\n\n## [1.8.0] - 2023-03-29\n### Changed\n- update polkadot api to 10.1.4 (#1580\n\n## [1.7.0] - 2023-02-21\n### Added\n- Support for database SSL connection (#1513)\n- Support for cockroach database (#1521)\n\n## [1.6.0] - 2023-01-31\n### Added\n- Support for Near (#1498)\n\n## [1.5.0] - 2022-12-06\n### Fixed\n- Fixed `subql codegen` flags. (#1446)\n\n### Added\n- Support for `bypassBlocks`. (#1435)\n\n## [1.4.4] - 2022-11-23\n### Added\n- Add `flare` to network family constants. (#1416)\n\n## [1.4.3] - 2022-10-07\n### Added\n- Add `ethereum` to network family constants. (#1378)\n\n## [1.4.2] - 2022-10-06\n### Changed\n- Update IPFS endpoints. (#1337)\n\n## [1.4.1] - 2022-09-30\n### Fixed\n- Improve `getSchemaPath` error log. (#1324)\n\n## [1.4.0] - 2022-08-17\n### Changed\n- Support new templates mono-repo structure. (#1236)\n\n## [1.3.0] - 2022-08-11\n### Added\n- Add Algorand to constants (#1228)\n\n## [1.2.2] - 2022-07-27\n### Fixed\n- `latest`, `dev` and `~` are no longer supported runner versions.\n\n## [1.2.1] - 2022-07-05\n### Fixed\n- Tidy up dependency, move `ipfs-http-client` to common packages (#1160)\n\n## [1.2.0] - 2022-06-22\n### Added\n- Add method to distinguish network family from project with spec above 1.0.0 (#1115)\n\n## [1.1.0] - 2022-05-31\n### Fixed\n- Fix runner error check with pre-release (#1027)\n\n### Added\n- Add constants for Mmr query api (#968)\n\n## [1.0.0] - 2022-05-11\n### Changed\n- Major release\n\n## [0.23.0] - 2022-05-11\n### Fixed\n- Fix toDeployment with ds processor assets (#1000)\n\n### Added\n- Add method to get path for manifest and schema, in order improve cli codegen (#1001)\n\n## [0.22.0] - 2022-05-02\n### Added\n- Add utils package (#928)\n\n## [0.21.2] - 2021-04-27\n### Fixed\n- Fix deps (#919)\n\n## [0.21.1] - 2021-04-26\n### Fixed\n- Fix Terra dictionary queries type (#893)\n\n## [0.21.0] - 2021-04-06\n### Added\n- Add types for manifest 1.0.0 (#845)\n\n## [0.20.0] - 2021-04-04\n### Changed\n- Update to use `vm2` v3.9.9 (#870)\n\n## [0.19.0] - 2021-03-01\n### Changed\n- Moved substrate components to `@subql/common-substrate`\n\n## [0.18.0] - 2021-02-24\n### Fixed\n- Fix function call from calling itself (#808)\n\n### Changed\n- Update readers to support reader project from its manifest file (#800)\n\n## [0.17.0] - 2021-02-09\n### Added\n- Add manifest v0.2.1 to support dynamic data source\n\n### Changed\n- Move readers from validator to common and use them for loading projects in the node (#511)\n\n### Fixed\n- Add missing interfaces to common classes (#782)\n\n## [0.16.0] - 2021-01-13\n### Added\n- Add rowCountEstimate to Metadata (#736)\n- Add method `findAvailablePort` (#739)\n\n## [0.15.0] - 2021-12-16\n### Added\n- Support provide `filePath` and `rotate` option with logger. (#667)\n- Add support for loading chaintypes from js (#698)\n\n### Fixed\n- Fixed load js file in sandbox (#717)\n\n## [0.14.1] - 2021-11-30\n### Fixed\n- Remove auto generated enum types for codegen (#680)\n- Remove auto generated enum types in entities and relations (#682)\n\n## [0.14.0] - 2021-11-19\n### Added\n- Add TypeClass, supported types mapping , support float type(#532)\n- Refactor dictionary gql queries (#613)\n- Process enum in entities (#551)\n\n### Changed\n- Moved isCustomDs and isRuntimeDs to here (#610)\n- Remove descriptive field in deployment (#637)\n\n## [0.13.0] - 2021-11-03\n### Added\n- Add `abi` to to project CustomDataSourceBase (#547)\n- Add `address` and rule to project CustomDataSourceBase, improve Moonbeam EVM (#593);\n- Move `abi` and `address` under `processor.options` (#598)\n\n### Changed\n- Bump dependencies (#584)\n\n### Fixed\n- Allow dictionary in ProjectManifest v0.2.0 (#578)\n\n## [0.12.0] - 2021-10-26\n### Changed\n- Move project manifest types to @subql/types because it is now also required by subquery project. (#512)\n\n## [0.11.0] - 2021-10-12\n### Added\n- Support for new project manifest spec v0.2.0. Which has many improvements including, no longer requiring the package.json file, multiple code entry points, referencing files via other protocols such as IPFS (#495)\n\n## [0.10.1] - 2021-08-27\n### Fixed\n- Deprecated warnings and remove unused dependency (#448)\n\n## [0.10.0] - 2021-08-20\n### Added\n- Add Bytes type (#432)\n\n## [0.9.2] - 2021-07-29\n### Fixed\n- Fix types in entities, also add validation for schema input types. (#406)\n\n## [0.9.1] - 2021-07-26\n### Fixed\n- Fixed bug that prevented indexes from being added automatically on foreign keys (#371)\n\n## [0.9.0] - 2021-06-25\n### Added\n- Add metadata type for query and additional rule of dictionary for project validation(#342)\n\n### Changed\n- Update dependencies (#358)\n\n## [0.8.3] - 2021-05-04\n### Added\n- Indexing is automatically added into JSON field types in database to speed up query performance. Users should not add the `@index` annotation to any `@jsonField` as it will be automatically managed during the codegen process. We implement GIN indexes for JSON fields in our database (#291)\n\n## [0.8.2] - 2021-04-21\n### Added\n- Enforce index on foreign key field (#285)\n\n## [0.8.0] - 2021-04-20\n### Fixed\n- We now support injecting a custom logger into your project that can accept different logging levels (#248)\n  - Read more about it in our [updated documentation](https://doc.subquery.network/create/introduction.html#logging)\n\n### Added\n- Support network filter for dataSources (#247)\n- Support @index in schema.graphql (#271)\n- Support json type in schema.graphql (#275)\n\n## [0.7.0] - 2021-03-11\n### Added\n- support type Boolean in graphql schema (#216)\n- refactor to build relationship of entities from grahql schema (#212)\n- refactor logger to @subql/common (#220)\n\n## [0.6.1] - 2021-02-15\n### Changed\n- bump dependencies (#148)\n\n## [0.6.0] - 2021-01-27\n### Fixed\n- pin class-transfermer to 0.3.1 (#116)\n\n## [0.5.0] - 2021-01-25\n### Added\n- support specVersion filter and success filter (#106)\n- support other custom types option that @polkadot/api has (#107)\n\n## [0.4.0] - 2021-01-12\n### Changed\n- \\[BREAKING] project manifest spec updated to support custom types (#65)\n\n## [0.3.0] - 2021-01-06\n### Added\n- support callHandler and eventHandler (#47)\n\n## [0.2.0] - 2020-12-22\n### Added\n- init commit\n\n[Unreleased]: https://github.com/subquery/subql/compare/common/5.8.2...HEAD\n[5.8.2]: https://github.com/subquery/subql/compare/common/5.8.1...common/5.8.2\n[5.8.1]: https://github.com/subquery/subql/compare/common/5.8.0...common/5.8.1\n[5.8.0]: https://github.com/subquery/subql/compare/common/5.7.6...common/5.8.0\n[5.7.6]: https://github.com/subquery/subql/compare/common/5.7.5...common/5.7.6\n[5.7.5]: https://github.com/subquery/subql/compare/common/5.7.4...common/5.7.5\n[5.7.4]: https://github.com/subquery/subql/compare/common/5.7.3...common/5.7.4\n[5.7.3]: https://github.com/subquery/subql/compare/common/5.7.2...common/5.7.3\n[5.7.2]: https://github.com/subquery/subql/compare/common/5.7.1...common/5.7.2\n[5.7.1]: https://github.com/subquery/subql/compare/common/5.7.0...common/5.7.1\n[5.7.0]: https://github.com/subquery/subql/compare/common/5.6.1...common/5.7.0\n[5.6.1]: https://github.com/subquery/subql/compare/common/5.6.0...common/5.6.1\n[5.6.0]: https://github.com/subquery/subql/compare/common/5.5.0...common/5.6.0\n[5.5.0]: https://github.com/subquery/subql/compare/common/5.4.0...common/5.5.0\n[5.4.0]: https://github.com/subquery/subql/compare/common/5.3.1...common/5.4.0\n[5.3.1]: https://github.com/subquery/subql/compare/common/5.3.0...common/5.3.1\n[5.3.0]: https://github.com/subquery/subql/compare/common/5.2.2...common/5.3.0\n[5.2.2]: https://github.com/subquery/subql/compare/common/5.2.1...common/5.2.2\n[5.2.1]: https://github.com/subquery/subql/compare/common/5.2.0...common/5.2.1\n[5.2.0]: https://github.com/subquery/subql/compare/common/5.1.4...common/5.2.0\n[5.1.4]: https://github.com/subquery/subql/compare/common/5.1.3...common/5.1.4\n[5.1.3]: https://github.com/subquery/subql/compare/common/5.1.2...common/5.1.3\n[5.1.2]: https://github.com/subquery/subql/compare/common/5.1.1...common/5.1.2\n[5.1.1]: https://github.com/subquery/subql/compare/common/5.1.0...common/5.1.1\n[5.1.0]: https://github.com/subquery/subql/compare/common/5.0.0...common/5.1.0\n[5.0.0]: https://github.com/subquery/subql/compare/common/4.1.1...common/5.0.0\n[4.1.1]: https://github.com/subquery/subql/compare/common/4.1.0...common/4.1.1\n[4.1.0]: https://github.com/subquery/subql/compare/common/4.0.1...common/4.1.0\n[4.0.1]: https://github.com/subquery/subql/compare/common/4.0.0...common/4.0.1\n[4.0.0]: https://github.com/subquery/subql/compare/common/3.9.0...common/4.0.0\n[3.9.0]: https://github.com/subquery/subql/compare/common/3.8.0...common/3.9.0\n[3.8.0]: https://github.com/subquery/subql/compare/common/3.7.0...common/3.8.0\n[3.7.0]: https://github.com/subquery/subql/compare/common/3.6.0...common/3.7.0\n[3.6.0]: https://github.com/subquery/subql/compare/common/3.5.1...common/3.6.0\n[3.5.1]: https://github.com/subquery/subql/compare/common/3.5.0...common/3.5.1\n[3.5.0]: https://github.com/subquery/subql/compare/common/3.4.1...common/3.5.0\n[3.4.1]: https://github.com/subquery/subql/compare/common/3.4.0...common/3.4.1\n[3.4.0]: https://github.com/subquery/subql/compare/common/3.3.1...common/3.4.0\n[3.3.1]: https://github.com/subquery/subql/compare/common/3.3.0...common/3.3.1\n[3.3.0]: https://github.com/subquery/subql/compare/common/3.2.0...common/3.3.0\n[3.2.0]: https://github.com/subquery/subql/compare/common/3.1.3...common/3.2.0\n[3.1.3]: https://github.com/subquery/subql/compare/common/3.1.2...common/3.1.3\n[3.1.2]: https://github.com/subquery/subql/compare/common/3.1.1...common/3.1.2\n[3.1.1]: https://github.com/subquery/subql/compare/common/3.1.0...common/3.1.1\n[3.1.0]: https://github.com/subquery/subql/compare/common/3.0.1...common/3.1.0\n[3.0.1]: https://github.com/subquery/subql/compare/common/2.7.0...common/3.0.1\n[2.7.0]: https://github.com/subquery/subql/compare/common/2.6.0...common/2.7.0\n[2.6.0]: https://github.com/subquery/subql/compare/common/2.5.0...common/2.6.0\n[2.5.0]: https://github.com/subquery/subql/compare/common/2.4.0...common/2.5.0\n[2.4.0]: https://github.com/subquery/subql/compare/common/2.3.0...common/2.4.0\n[2.3.0]: https://github.com/subquery/subql/compare/common/2.2.2...common/2.3.0\n[2.2.2]: https://github.com/subquery/subql/compare/common/v2.2.1...common/v2.2.2\n[2.2.1]: https://github.com/subquery/subql/compare/common/v2.2.0...common/v2.2.1\n[2.2.0]: https://github.com/subquery/subql/compare/common2.1.2...common/2.2.0\n[2.1.2]: https://github.com/subquery/subql/compare/common/2.1.1...common/2.1.2\n[2.1.1]: https://github.com/subquery/subql/compare/common/2.1.0...common/2.1.1\n[2.1.0]: https://github.com/subquery/subql/compare/common/2.0.0...common/2.1.0\n[2.0.0]: https://github.com/subquery/subql/compare/common/1.8.1...common/2.0.0\n[1.8.1]: https://github.com/subquery/subql/compare/common/1.8.0...common/1.8.1\n[1.8.0]: https://github.com/subquery/subql/compare/common/1.7.0...common/1.8.0\n[1.7.0]: https://github.com/subquery/subql/compare/common/1.6.0...common/1.7.0\n[1.6.0]: https://github.com/subquery/subql/compare/common/1.5.0...common/1.6.0\n[1.5.0]: https://github.com/subquery/subql/compare/common/1.4.4...common/1.5.0\n[1.4.4]: https://github.com/subquery/subql/compare/common/1.4.4...common/1.4.4\n[1.4.3]: https://github.com/subquery/subql/compare/common/1.4.2...common/1.4.3\n[1.4.2]: https://github.com/subquery/subql/compare/common/1.4.1...common/1.4.2\n[1.4.1]: https://github.com/subquery/subql/compare/common/1.4.0...common/1.4.1\n[1.4.0]: https://github.com/subquery/subql/compare/common/1.3.0...common/1.4.0\n[1.3.0]: https://github.com/subquery/subql/compare/common/1.2.2...common/1.3.0\n[1.2.2]: https://github.com/subquery/subql/compare/common/1.2.1...common/1.2.2\n[1.2.1]: https://github.com/subquery/subql/compare/common/1.2.0...common/1.2.1\n[1.2.0]: https://github.com/subquery/subql/compare/common/1.1.0...common/1.2.0\n[1.1.0]: https://github.com/subquery/subql/compare/common/1.0.0...common/1.1.0\n[1.0.0]: https://github.com/subquery/subql/compare/common/0.23.0...common/1.0.0\n[0.23.0]: https://github.com/subquery/subql/compare/common/0.22.0...common/0.23.0\n[0.22.0]: https://github.com/subquery/subql/compare/common/0.21.2...common/0.22.0\n[0.21.2]: https://github.com/subquery/subql/compare/common/0.21.1...common/0.21.2\n[0.21.1]: https://github.com/subquery/subql/compare/common/0.21.0...common/0.21.1\n[0.21.0]: https://github.com/subquery/subql/compare/common/0.20.0...common/0.21.0\n[0.20.0]: https://github.com/subquery/subql/compare/common/0.19.0...common/0.20.0\n[0.19.0]: https://github.com/subquery/subql/compare/common/0.18.0...common/0.19.0\n[0.18.0]: https://github.com/subquery/subql/compare/common/0.17.0...common/0.18.0\n[0.17.0]: https://github.com/subquery/subql/compare/common/0.16.0...common/0.17.0\n[0.16.0]: https://github.com/subquery/subql/compare/common/0.15.0...common/0.16.0\n[0.15.0]: https://github.com/subquery/subql/compare/common/0.14.1...common/0.15.0\n[0.14.1]: https://github.com/subquery/subql/compare/common/0.14.0...common/0.14.1\n[0.14.0]: https://github.com/subquery/subql/compare/common/0.13.0...common/0.14.0\n[0.13.0]: https://github.com/subquery/subql/compare/common/0.12.0...common/0.13.0\n[0.12.0]: https://github.com/subquery/subql/compare/v0.11.0...v0.12.0\n[0.11.0]: https://github.com/subquery/subql/compare/v0.10.1...v0.11.0\n[0.10.1]: https://github.com/subquery/subql/compare/v0.10.0...v0.10.1\n[0.10.0]: https://github.com/subquery/subql/compare/v0.9.2...v0.10.0\n[0.9.2]: https://github.com/subquery/subql/compare/v0.9.1...v0.9.2\n[0.9.1]: https://github.com/subquery/subql/compare/v0.9.0...v0.9.1\n[0.9.0]: https://github.com/subquery/subql/compare/v0.8.3...v0.9.0\n[0.8.3]: https://github.com/subquery/subql/compare/v0.8.2...v0.8.3\n[0.8.2]: https://github.com/subquery/subql/compare/v0.8.0...v0.8.2\n[0.8.0]: https://github.com/subquery/subql/compare/v0.7.0...v0.8.0\n[0.7.0]: https://github.com/subquery/subql/compare/v0.6.1...v0.7.0\n[0.6.1]: https://github.com/OnFinality-io/subql/compare/v0.6.0...v0.6.1\n[0.6.0]: https://github.com/OnFinality-io/subql/compare/v0.5.0...v0.6.0\n[0.5.0]: https://github.com/OnFinality-io/subql/compare/v0.4.0...v0.5.0\n[0.4.0]: https://github.com/OnFinality-io/subql/compare/v0.3.0...v0.4.0\n[0.3.0]: https://github.com/OnFinality-io/subql/compare/v0.2.0...v0.3.0\n[0.2.0]: https://github.com/OnFinality-io/subql/tags/v0.2.0\n"
  },
  {
    "path": "packages/common/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/common/fixtures/package.json",
    "content": "{\n  \"name\": \"subquery-starter\",\n  \"version\": \"0.0.3\",\n  \"description\": \"This project can be use as a starting point for developing your SubQuery project\",\n  \"main\": \"dist/index.js\",\n  \"scripts\": {\n    \"build\": \"tsc -b\",\n    \"prepack\": \"rm -rf dist && npm build\",\n    \"test\": \"jest\",\n    \"codegen\": \"./node_modules/.bin/subql codegen\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql-starter\",\n  \"repository\": \"github:subquery/subql-starter\",\n  \"files\": [\n    \"dist\",\n    \"schema.graphql\",\n    \"project.yaml\"\n  ],\n  \"author\": \"Ian He & Jay Ji\",\n  \"license\": \"Apache-2.0\",\n  \"devDependencies\": {\n    \"@polkadot/api\": \"^16\",\n    \"@subql/types\": \"latest\",\n    \"typescript\": \"^4.9.5\",\n    \"@subql/cli\": \"latest\"\n  }\n}\n"
  },
  {
    "path": "packages/common/fixtures/project.yaml",
    "content": "specVersion: \"0.0.1\"\ndescription: \"\"\nrepository: \"https://github.com/subquery/subql-starter\"\n\nschema: \"./schema.graphql\"\n\nnetwork:\n  endpoint: \"wss://polkadot.api.onfinality.io/public-ws\"\n\ndataSources:\n  - name: main\n    kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/common/package.json",
    "content": "{\n  \"name\": \"@subql/common\",\n  \"version\": \"5.8.2\",\n  \"description\": \"\",\n  \"scripts\": {\n    \"build\": \"rm -rf dist && tsc -b\",\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n    \"format\": \"prettier --write \\\"src/**/*.ts\\\"\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"common/\\\"\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql\",\n  \"repository\": \"github:subquery/subql\",\n  \"author\": \"Ian He\",\n  \"main\": \"dist/index.js\",\n  \"license\": \"GPL-3.0\",\n  \"dependencies\": {\n    \"@subql/types-core\": \"workspace:~\",\n    \"axios\": \"^1.13.1\",\n    \"class-transformer\": \"^0.5.1\",\n    \"class-validator\": \"0.14.1\",\n    \"form-data\": \"^4.0.4\",\n    \"js-yaml\": \"^4.1.1\",\n    \"reflect-metadata\": \"^0.2.2\",\n    \"semver\": \"^7.6.3\",\n    \"update-notifier\": \"^5.1.0\"\n  },\n  \"devDependencies\": {\n    \"@types/js-yaml\": \"^4.0.9\",\n    \"@types/semver\": \"^7.5.8\",\n    \"@types/update-notifier\": \"^6\"\n  },\n  \"files\": [\n    \"/dist\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\",\n    \"package.json\",\n    \"README.md\",\n    \"CHANGELOG.md\",\n    \"LICENSE\"\n  ]\n}\n"
  },
  {
    "path": "packages/common/src/constants.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// APP API PORT\nexport const DEFAULT_PORT = 3000;\n\n//IPFS\nexport const IPFS_READ = 'https://unauthipfs.subquery.network';\nexport const IPFS_WRITE = 'https://authipfs.subquery.network';\nexport const IPFS_NODE_ENDPOINT = `${IPFS_READ}/ipfs/api/v0`;\nexport const IPFS_WRITE_ENDPOINT = `${IPFS_WRITE}/ipfs/api/v0`;\nexport const IPFS_REGEX = /^ipfs:\\/\\//i;\n\n// MANIFEST\nexport const RUNNER_REGEX = /(\\^?)(\\d|x|\\*)+\\.(\\d|x|\\*)+\\.(\\d|x|\\*)+/;\n\n// POI\nexport const POI_AWAIT_TIME = 2; // seconds\n\n// NETWORK\nexport enum NETWORK_FAMILY {\n  substrate = 'Substrate',\n  cosmos = 'Cosmos',\n  algorand = 'Algorand',\n  ethereum = 'Ethereum',\n  near = 'Near',\n  stellar = 'Stellar',\n  concordium = 'Concordium',\n  starknet = 'Starknet',\n  solana = 'Solana',\n}\n\nexport const runnerMapping = {\n  '@subql/node': NETWORK_FAMILY.substrate,\n  '@subql/node-substrate': NETWORK_FAMILY.substrate,\n  '@subql/node-cosmos': NETWORK_FAMILY.cosmos,\n  '@subql/node-algorand': NETWORK_FAMILY.algorand,\n  '@subql/node-ethereum': NETWORK_FAMILY.ethereum,\n  '@subql/node-near': NETWORK_FAMILY.near,\n  '@subql/node-stellar': NETWORK_FAMILY.stellar,\n  '@subql/node-concordium': NETWORK_FAMILY.concordium,\n  '@subql/node-starknet': NETWORK_FAMILY.starknet,\n  '@subql/node-solana': NETWORK_FAMILY.solana,\n};\n\n// DATABASE ERROR REGEX\nexport const CONNECTION_SSL_ERROR_REGEX = 'not support SSL';\n\n// BLOCK BATCH SYNC between POI MMR <-> Filebased/Postgres MMR\nexport const RESET_MMR_BLOCK_BATCH = 1000;\n\n// Default Model fetch range\nexport const DEFAULT_FETCH_RANGE = 100;\n\n// RUNNER ERROR REGEX\nexport const RUNNER_ERROR_REGEX = 'property runner.node.name has failed the following constraints: equals';\n"
  },
  {
    "path": "packages/common/src/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport 'reflect-metadata';\n\nexport * from './project';\nexport * from './constants';\nexport * from './multichain';\n"
  },
  {
    "path": "packages/common/src/multichain/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './models';\n"
  },
  {
    "path": "packages/common/src/multichain/models.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {MultichainProjectManifest, QuerySpec} from '@subql/types-core';\nimport {Type} from 'class-transformer';\nimport {Equals, IsObject, IsString} from 'class-validator';\nimport {RunnerQueryBaseModel} from '../project';\n\nexport class MultichainProjectManifestModel implements MultichainProjectManifest {\n  @Equals('1.0.0')\n  specVersion!: string;\n  @IsString({each: true})\n  projects!: string[];\n  @IsObject()\n  @Type(() => RunnerQueryBaseModel)\n  query!: QuerySpec;\n}\n"
  },
  {
    "path": "packages/common/src/project/IpfsHttpClientLite/IPFSHTTPClientLite.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport axios from 'axios';\nimport FormData from 'form-data';\nimport {streamCat} from './utils';\n\ntype ContentData = string | Uint8Array;\n\ntype Content =\n  | {\n      content: ContentData;\n      path: string;\n    }\n  | ContentData;\n\ntype AddOptions = {\n  pin?: boolean;\n  cidVersion?: number;\n  wrapWithDirectory?: boolean;\n};\n\ntype AddResult = {\n  path: string;\n  cid: string;\n  size: number;\n};\n\nexport class IPFSHTTPClientLite {\n  constructor(private option: {url: string; headers?: Record<string, string>}) {\n    if (option.url === undefined) {\n      throw new Error('url is required');\n    }\n    this.option = option;\n  }\n\n  get url(): string {\n    return this.option.url.toString();\n  }\n\n  /**\n   * Returns content of the file addressed by a valid IPFS Path or CID\n   */\n  cat(ipfsCID: string): AsyncIterable<Uint8Array> {\n    return streamCat(this.option.url, ipfsCID);\n  }\n\n  /**\n   * Import a file or data into IPFS\n   */\n  async add(content: Content, options?: AddOptions): Promise<AddResult> {\n    const results = await this.addAll([content], options);\n\n    return results[0];\n  }\n\n  /**\n   * Pin a content with a given CID to a remote pinning service.\n   */\n  async pinRemoteAdd(cid: string, options: {service: string}): Promise<{Cid: string; Name: string; Status: string}> {\n    const url = new URL(`${this.url}/pin/remote/add`);\n    url.searchParams.append('arg', cid);\n    url.searchParams.append('service', options.service);\n    try {\n      const response = await axios.post(\n        url.toString(),\n        {},\n        {\n          headers: {\n            ...this.option.headers,\n          },\n        }\n      );\n      return response.data;\n    } catch (e) {\n      throw new Error(`Failed to pin CID ${cid} to remote service`, {cause: e});\n    }\n  }\n\n  /**\n   * Import multiple files and data into IPFS\n   */\n  async addAll(source: Content[], options?: AddOptions): Promise<AddResult[]> {\n    const formData = this.makeFormData(source);\n\n    const url = new URL(`${this.url}/add`);\n    if (options) {\n      url.searchParams.append('pin', options.pin?.toString() ?? 'true');\n      url.searchParams.append('cid-version', options.cidVersion?.toString() ?? '0');\n      url.searchParams.append('wrap-with-directory', options.wrapWithDirectory?.toString() ?? 'false');\n    }\n\n    try {\n      const response = await axios.post(url.toString(), formData, {\n        headers: {\n          ...this.option.headers,\n          ...formData.getHeaders(),\n        },\n        maxBodyLength: Infinity,\n        maxContentLength: Infinity,\n      });\n\n      const mapResponse = (raw: any): AddResult => ({\n        path: raw.Name,\n        cid: raw.Hash,\n        size: parseInt(raw.Size, 10),\n      });\n\n      // If only one file is uploaded then the response is an object.\n      if (typeof response.data === 'object') {\n        return [mapResponse(response.data)];\n      }\n\n      const jsonLines = (response.data.split('\\n') as string[]).filter((l) => l !== '');\n\n      return jsonLines.map((line) => JSON.parse(line)).map(mapResponse);\n    } catch (error) {\n      throw new Error(`Failed to upload files to IPFS`, {cause: error});\n    }\n  }\n\n  private makeFormData(contents: Content[]): FormData {\n    const formData = new FormData();\n    for (const content of contents) {\n      if (content instanceof Uint8Array) {\n        formData.append('data', Buffer.from(content));\n      } else if (typeof content === 'string') {\n        formData.append('data', content);\n      } else {\n        formData.append('data', content.content, {filename: content.path});\n      }\n    }\n\n    return formData;\n  }\n}\n"
  },
  {
    "path": "packages/common/src/project/IpfsHttpClientLite/IpfsHttpClientLite.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IPFS_NODE_ENDPOINT, IPFS_WRITE_ENDPOINT} from '../../constants';\nimport {IPFSHTTPClientLite} from './IPFSHTTPClientLite';\n\nconst testAuth = process.env.SUBQL_ACCESS_TOKEN_TEST!;\n\ndescribe('IPFSClient Lite', () => {\n  let readClient: IPFSHTTPClientLite;\n  let writeClient: IPFSHTTPClientLite;\n\n  beforeAll(() => {\n    readClient = new IPFSHTTPClientLite({url: IPFS_NODE_ENDPOINT});\n    writeClient = new IPFSHTTPClientLite({url: IPFS_WRITE_ENDPOINT, headers: {Authorization: `Bearer ${testAuth}`}});\n  });\n\n  it('should upload files and yield results', async () => {\n    const source = [\n      {path: 'mockPath1', content: 'mockContent1'},\n      {path: 'mockPath2', content: 'mockContent2'},\n    ];\n\n    const results = await writeClient.addAll(source, {pin: true, cidVersion: 0, wrapWithDirectory: false});\n    const output: Map<string, string> = new Map();\n    for (const result of results) {\n      output.set(result.path, result.cid.toString());\n    }\n    expect(output).toEqual(\n      new Map([\n        ['mockPath1', 'QmRNDWGxk4N61RGizxNzRbJB5Xkx412JSzRntvFyKVkzHL'],\n        ['mockPath2', 'QmNPT2h85L1NsfJiaQoqwkNN132hSdWzdrDUigSh7831Jh'],\n      ])\n    );\n  });\n\n  it('should return file content from IPFS for given CID', async () => {\n    const testCID = 'QmQKeYj2UZJoTN5yXSvzJy4A3CjUuSmEWAKeZV4herh5bS';\n    const req = readClient.cat(testCID);\n\n    const scriptBufferArray: Uint8Array[] = [];\n    for await (const res of req) {\n      scriptBufferArray.push(res);\n    }\n    const output = Buffer.concat(scriptBufferArray.map((u8a) => Buffer.from(u8a))).toString('utf8');\n\n    expect(output).toBe(`test string to upload`);\n  });\n\n  it('should add a file to IPFS and return AddResult', async () => {\n    const testContentBuffer = new Uint8Array([1, 2, 3, 4, 5]);\n    const testContentStr = `test string to upload`;\n\n    const resultStr = await writeClient.add(testContentStr, {pin: true, cidVersion: 0});\n    expect(resultStr.cid.toString()).toBe(`QmQKeYj2UZJoTN5yXSvzJy4A3CjUuSmEWAKeZV4herh5bS`);\n\n    const resultBuffer = await writeClient.add(testContentBuffer, {pin: true, cidVersion: 0});\n    expect(resultBuffer.cid.toString()).toBe(`QmUatvHNjq696qkB8SBz5VBytcEeTrM1VwFyy4Rt4Z43mX`);\n  });\n  //\n  it('should pin a content with given CID to a remote pinning service', async () => {\n    const testCID = 'QmQKeYj2UZJoTN5yXSvzJy4A3CjUuSmEWAKeZV4herh5bS';\n    const result = await writeClient.pinRemoteAdd(testCID, {service: 'onfinality'});\n    expect(result.Cid).toBe(testCID);\n  });\n\n  it('can cat large file', async () => {\n    const testCID = 'Qmab25SoVT4U7YJLFSzt4UXNQpyG9Du2Q7VGDu2b4w2eGr';\n    const req = readClient.cat(testCID);\n    const scriptBufferArray: Uint8Array[] = [];\n    for await (const res of req) {\n      scriptBufferArray.push(res);\n    }\n    const output = Buffer.concat(scriptBufferArray.map((u8a) => Buffer.from(u8a))).toString('utf8');\n    expect(output).toBeDefined();\n    expect(output.length).toBeGreaterThan(1);\n  }, 500000);\n});\n"
  },
  {
    "path": "packages/common/src/project/IpfsHttpClientLite/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './IPFSHTTPClientLite';\n"
  },
  {
    "path": "packages/common/src/project/IpfsHttpClientLite/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport axios from 'axios';\n\nexport async function* streamCat(baseUrl: string, ipfsCID: string): AsyncIterable<Uint8Array> {\n  const url = new URL(`${baseUrl}/cat?progress=true`);\n  url.searchParams.append('arg', ipfsCID);\n\n  try {\n    const res = await axios.post(\n      url.toString(),\n      {},\n      {\n        responseType: 'stream',\n      }\n    );\n    // Iterate over the stream and yield data\n    for await (const chunk of res.data) {\n      yield chunk;\n    }\n  } catch (error) {\n    throw new Error(`Failed to fetch data from IPFS for CID ${ipfsCID}`, {cause: error});\n  }\n}\n"
  },
  {
    "path": "packages/common/src/project/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './load';\nexport * from './versioned';\nexport * from './readers';\nexport * from './utils';\nexport * from './IpfsHttpClientLite';\n"
  },
  {
    "path": "packages/common/src/project/load.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {ProjectManifestV1_0_0} from '@subql/types-core';\nimport {plainToClass} from 'class-transformer';\nimport {validateSync} from 'class-validator';\nimport yaml from 'js-yaml';\nimport {gte} from 'semver';\nimport {CommonProjectManifestV1_0_0Impl} from '../';\nimport {NETWORK_FAMILY, runnerMapping} from '../constants';\nimport {DEFAULT_MANIFEST, DEFAULT_TS_MANIFEST, extensionIsYamlOrJSON} from './utils';\nexport function loadFromJsonOrYaml(file: string): unknown {\n  const {ext} = path.parse(file);\n  if (!extensionIsYamlOrJSON(ext)) {\n    throw new Error(`Extension ${ext} not supported`);\n  }\n  const rawContent = fs.readFileSync(file, 'utf-8');\n  return yaml.load(rawContent);\n}\n\nexport function getManifestPath(manifestDir: string, fileName?: string): string {\n  let manifestPath = manifestDir;\n  if (fs.existsSync(manifestDir) && fs.lstatSync(manifestDir).isDirectory()) {\n    const tsFilePath = path.join(manifestDir, fileName ?? DEFAULT_TS_MANIFEST);\n    const yamlFilePath = path.join(manifestDir, fileName ?? DEFAULT_MANIFEST);\n    const jsonFilePath = path.join(manifestDir, fileName ?? 'project.json');\n    if (fs.existsSync(tsFilePath)) {\n      manifestPath = tsFilePath;\n    } else if (fs.existsSync(yamlFilePath)) {\n      manifestPath = yamlFilePath;\n    } else if (fs.existsSync(jsonFilePath)) {\n      manifestPath = jsonFilePath;\n    } else {\n      throw new Error(`Could not find project manifest under dir ${manifestDir}`);\n    }\n  }\n  return manifestPath;\n}\n\nexport function getSchemaPath(manifestDir: string, fileName?: string): string {\n  const rawProject = loadFromJsonOrYaml(getManifestPath(manifestDir, fileName));\n  if ((rawProject as any).specVersion === '0.0.1') {\n    return path.join(manifestDir, (rawProject as any).schema);\n  }\n  const project = rawProject as ProjectManifestV1_0_0;\n  if (!project.schema) {\n    throw new Error(`Can't get schema in yaml file`);\n  }\n  if (!project.schema.file) {\n    throw new Error(`schemaPath expect to be schema.file`);\n  }\n  return path.join(manifestDir, project.schema.file);\n}\n\n// Only work for manifest specVersion >= 1.0.0\nexport function getProjectNetwork(rawManifest: unknown): NETWORK_FAMILY {\n  if (gte((rawManifest as any).specVersion, '1.0.0')) {\n    const network = runnerMapping[(rawManifest as any).runner.node.name as keyof typeof runnerMapping];\n    if (network === undefined) {\n      throw new Error(`Can not identify project network with runner node ${(rawManifest as any).runner.node.name}`);\n    }\n    return network;\n  } else {\n    throw new Error('Can not identify project network under spec version 1.0.0');\n  }\n}\n\n/**\n * @param path path to the file\n * @param identifier name to be used for logging purpose\n * @returns file content\n */\nexport function getFileContent(path: string, identifier: string): string {\n  if (!fs.existsSync(path)) {\n    const err_msg = `${identifier} file ${path} is does not exist`;\n    throw new Error(err_msg);\n  }\n\n  try {\n    return fs.readFileSync(path).toString();\n  } catch (error) {\n    const err_msg = `Failed to load ${identifier} file, ${error}`;\n    throw new Error(err_msg);\n  }\n}\n\n//  Validate generic/common section for project manifest\nexport function validateCommonProjectManifest(raw: unknown): void {\n  const projectManifest = plainToClass<CommonProjectManifestV1_0_0Impl, unknown>(CommonProjectManifestV1_0_0Impl, raw);\n  const errors = validateSync(projectManifest, {whitelist: true});\n  if (errors?.length) {\n    // TODO: print error details\n    const errorMsgs = errors.map((e) => e.toString()).join('\\n');\n    throw new Error(`project validation failed.\\n${errorMsgs}`);\n  }\n}\n"
  },
  {
    "path": "packages/common/src/project/readers/github-reader.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Reader} from '@subql/types-core';\nimport {GithubReader} from './github-reader';\n\ndescribe('GithubReader', () => {\n  let reader: Reader;\n\n  beforeAll(() => {\n    const key = 'subquery/tutorials-block-timestamp';\n    reader = new GithubReader(key);\n  });\n\n  it('should return the package json object', async () => {\n    const data = await reader.getPkg();\n    expect(data?.name).toBe('block-timestamp');\n  });\n\n  it('should return the project schema object', async () => {\n    const data: any = await reader.getProjectSchema();\n    expect(data.repository).toBe('https://github.com/subquery/subql-examples');\n  });\n});\n"
  },
  {
    "path": "packages/common/src/project/readers/github-reader.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {assert} from 'console';\nimport path from 'path';\nimport {Reader} from '@subql/types-core';\nimport axios, {AxiosInstance, AxiosResponse} from 'axios';\nimport yaml from 'js-yaml';\nimport type {IPackageJson} from 'package-json-type';\nimport {DEFAULT_MANIFEST} from '../utils';\n\nexport class GithubReader implements Reader {\n  private readonly api: AxiosInstance;\n  private defaultBranch?: string;\n\n  constructor(private readonly key: string) {\n    this.api = axios.create({\n      baseURL: `https://raw.githubusercontent.com/${key}`,\n    });\n  }\n\n  get root(): undefined {\n    return undefined;\n  }\n\n  async getPkg(): Promise<IPackageJson> {\n    return this.getFile('package.json') as Promise<unknown> as Promise<IPackageJson>;\n  }\n\n  async getProjectSchema(): Promise<unknown> {\n    // Github reader not support ts manifest.\n    const projectYaml = await this.getFile(DEFAULT_MANIFEST);\n    return yaml.load(projectYaml);\n  }\n\n  async getFile(fileName: string): Promise<string> {\n    try {\n      const branch = await this.getDefaultBranch();\n      const {data} = await this.api.get(path.join(branch, fileName));\n      return data;\n    } catch (err) {\n      throw new Error('Failed to fetch file from github', {cause: err});\n    }\n  }\n\n  private async getDefaultBranch(): Promise<string> {\n    if (this.defaultBranch) {\n      return this.defaultBranch;\n    }\n    const {data} = await axios.get<any, AxiosResponse<{default_branch: string}, any>, any>(\n      `https://api.github.com/repos/${this.key}`\n    );\n    assert(data.default_branch, 'Failed to fetch default branch from github');\n\n    this.defaultBranch = data.default_branch;\n    return this.defaultBranch;\n  }\n}\n"
  },
  {
    "path": "packages/common/src/project/readers/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './reader';\nexport * from './github-reader';\nexport * from './ipfs-reader';\nexport * from './local-reader';\n"
  },
  {
    "path": "packages/common/src/project/readers/ipfs-reader.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Reader} from '@subql/types-core';\nimport {IPFSReader} from './ipfs-reader';\n\nconst IPFSGateway = 'https://unauthipfs.subquery.network/ipfs/api/v0';\n\ndescribe('IPFSReader', () => {\n  let reader: Reader;\n\n  it('should return a project deployment', async () => {\n    reader = new IPFSReader('QmNbkA1fJpV2gCAWCBjgUQ8xBTwkLZHuzx4EkUoKx7VYaD', IPFSGateway);\n\n    const data: any = await reader.getProjectSchema();\n\n    expect(data.network.chainId).toBe('43114');\n  });\n\n  it('ipfs should only fetch once when cache found', async () => {\n    reader = new IPFSReader('QmNbkA1fJpV2gCAWCBjgUQ8xBTwkLZHuzx4EkUoKx7VYaD', IPFSGateway);\n    const spyIpfsCat = jest.spyOn((reader as any).ipfs, 'cat');\n    await Promise.all([reader.getProjectSchema(), reader.getProjectSchema(), reader.getProjectSchema()]);\n    expect(spyIpfsCat).toHaveBeenCalledTimes(1);\n  });\n});\n"
  },
  {
    "path": "packages/common/src/project/readers/ipfs-reader.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Reader} from '@subql/types-core';\nimport yaml from 'js-yaml';\nimport type {IPackageJson} from 'package-json-type';\nimport {IPFS_NODE_ENDPOINT} from '../../constants';\nimport {IPFSHTTPClientLite} from '../IpfsHttpClientLite';\n\nconst CIDv0 = new RegExp(/Qm[1-9A-Za-z]{44}[^OIl]/i);\nconst CIDv1 = new RegExp(\n  /Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,}/i\n);\n\nexport class IPFSReader implements Reader {\n  private ipfs: IPFSHTTPClientLite;\n  private cache: Record<string, Promise<string>> = {};\n\n  constructor(\n    readonly cid: string,\n    gateway?: string\n  ) {\n    if (!CIDv0.test(cid) && !CIDv1.test(cid)) {\n      throw new Error('IPFS project path CID is not valid');\n    }\n    this.ipfs = new IPFSHTTPClientLite({url: gateway ?? IPFS_NODE_ENDPOINT});\n  }\n\n  get root(): undefined {\n    return undefined;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getPkg(): Promise<IPackageJson> {\n    throw new Error(\"IPFS Reader doesn't support reading package.json\");\n  }\n\n  async getProjectSchema(): Promise<unknown> {\n    const projectYaml = await this.getFile(this.cid);\n    return yaml.load(projectYaml);\n  }\n\n  async getFile(fileName: string): Promise<string> {\n    try {\n      if (this.cache[fileName] === undefined) {\n        const resolvedFileName = fileName.replace('ipfs://', '');\n        this.cache[fileName] = this.resultToBuffer(this.ipfs.cat(resolvedFileName));\n      }\n      return await this.cache[fileName];\n    } catch (e) {\n      console.error(`Failed to fetch file from IPFS: ${fileName}`, e);\n      throw new Error(`Failed to fetch file from IPFS: ${fileName}`, {cause: e});\n    }\n  }\n\n  private async resultToBuffer(req: AsyncIterable<Uint8Array>): Promise<string> {\n    const scriptBufferArray: Uint8Array[] = [];\n    for await (const res of req) {\n      scriptBufferArray.push(res);\n    }\n    return Buffer.concat(scriptBufferArray.map((u8a) => Buffer.from(u8a))).toString('utf8');\n  }\n}\n"
  },
  {
    "path": "packages/common/src/project/readers/local-reader.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport * as path from 'path';\nimport {Reader} from '@subql/types-core';\nimport {LocalReader} from './local-reader';\n\ndescribe('LocalReader', () => {\n  let reader: Reader;\n\n  beforeAll(() => {\n    const loc = path.join(__dirname, '../../../fixtures');\n    reader = new LocalReader(loc, path.resolve(loc, './project.yaml'));\n  });\n\n  it('should return the package json object', async () => {\n    const data = await reader.getPkg();\n    expect(data?.name).toBe('subquery-starter');\n  });\n\n  it('should return the project schema object', async () => {\n    const data: any = await reader.getProjectSchema();\n    expect(data.repository).toBe('https://github.com/subquery/subql-starter');\n  });\n});\n"
  },
  {
    "path": "packages/common/src/project/readers/local-reader.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport {Reader} from '@subql/types-core';\nimport yaml from 'js-yaml';\nimport type {IPackageJson} from 'package-json-type';\nimport {extensionIsYamlOrJSON} from '../../project';\n\nexport class LocalReader implements Reader {\n  constructor(\n    private readonly projectPath: string,\n    private readonly manifestPath: string\n  ) {}\n\n  get root(): string {\n    return path.resolve(this.projectPath);\n  }\n\n  async getPkg(): Promise<IPackageJson> {\n    const pkg = await this.getFile('package.json');\n    return yaml.load(pkg) as IPackageJson;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getProjectSchema(): Promise<unknown> {\n    assert(fs.existsSync(this.manifestPath), `Manifest file not found: ${this.manifestPath}`);\n    const {ext} = path.parse(this.manifestPath);\n    assert(extensionIsYamlOrJSON(ext), `Manifest file must be a yaml or json file: ${this.manifestPath}`);\n\n    return yaml.load(fs.readFileSync(this.manifestPath, 'utf-8'));\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getFile(fileName: string): Promise<string> {\n    const file = path.resolve(this.projectPath, fileName);\n    assert(fs.existsSync(file), `projectPath not found: ${file}`);\n\n    return fs.readFileSync(file, 'utf-8');\n  }\n}\n"
  },
  {
    "path": "packages/common/src/project/readers/reader.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {GithubReader} from './github-reader';\nimport {IPFSReader} from './ipfs-reader';\nimport {LocalReader} from './local-reader';\nimport {ReaderFactory} from './reader';\n\nconst tarPath = path.join(__dirname, '/../../../test/mockedSubqueryProject.tgz');\n\ndescribe('ReaderFactory', () => {\n  it('should return the Github Reader', async () => {\n    const url = 'https://github.com/subquery/subql-starter';\n    const reader = await ReaderFactory.create(url);\n    expect(reader instanceof GithubReader).toBeTruthy();\n  });\n\n  it('should return the Local Reader', async () => {\n    const loc = path.join(__dirname, '../../../fixtures');\n    const reader = await ReaderFactory.create(loc);\n    expect(reader instanceof LocalReader).toBeTruthy();\n  });\n\n  it('should return the IPFS Reader for a CID v0', async () => {\n    const loc = 'ipfs://QmYyCCSaHLpPvZmex5ExHGdW7mavKYeiixVEyvNGwD1LLw';\n    const reader = await ReaderFactory.create(loc, {});\n\n    expect(reader instanceof IPFSReader).toBeTruthy();\n  });\n\n  it('should return the IPFS Reader for a CID v1', async () => {\n    const loc = 'ipfs://bafybeie56fq7db5adfyt3afqwhje6pq2m77gn5ik6pg75bioger6kzjn6a';\n    const reader = await ReaderFactory.create(loc, {});\n    expect(reader instanceof IPFSReader).toBeTruthy();\n  });\n\n  it.skip('should support archive files', async () => {\n    const reader = await ReaderFactory.create(tarPath);\n    const finalPath = reader.root;\n    if (!finalPath) {\n      throw new Error('finalPath error');\n    }\n    expect(fs.existsSync(finalPath)).toBeTruthy();\n  });\n\n  it('throw error if getProjectRootAndManifest path not exist', async () => {\n    await expect(() => ReaderFactory.create('path/not/exist')).rejects.toThrow(/unknown location/);\n  });\n\n  it('throw error if ipfs path is not valid', async () => {\n    await expect(() => ReaderFactory.create('ipfs://notValid', {})).rejects.toThrow(\n      /IPFS project path CID is not valid/\n    );\n  });\n});\n"
  },
  {
    "path": "packages/common/src/project/readers/reader.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {Reader, ReaderOptions} from '@subql/types-core';\nimport {IPFS_REGEX} from '../../constants';\nimport {getProjectRootAndManifest} from '../../project';\nimport {GithubReader} from './github-reader';\nimport {IPFSReader} from './ipfs-reader';\nimport {LocalReader} from './local-reader';\n\nexport class ReaderFactory {\n  // eslint-disable-next-line @typescript-eslint/require-await\n  static async create(location: string, options?: ReaderOptions): Promise<Reader> {\n    // eslint-disable-next-line @typescript-eslint/prefer-regexp-exec\n    const githubMatch = location.match(/https:\\/\\/github.com\\/([\\w-_]+\\/[\\w-_]+)/i);\n    if (githubMatch) {\n      return new GithubReader(githubMatch[1]);\n    }\n\n    const ipfsMatch = location.match(IPFS_REGEX);\n    if (ipfsMatch) {\n      return new IPFSReader(location.replace('ipfs://', ''), options?.ipfs);\n    }\n\n    //local mode\n    if (fs.existsSync(location)) {\n      const project = getProjectRootAndManifest(location);\n      if (project.manifests.length > 1) {\n        throw new Error(`Multiple manifests found, expected only one`);\n      }\n      return new LocalReader(project.root, path.join(project.root, project.manifests[0]));\n    }\n\n    throw new Error(`unknown location: ${location}`);\n  }\n}\n"
  },
  {
    "path": "packages/common/src/project/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {\n  BaseDataSource,\n  FileReference,\n  IEndpointConfig,\n  MultichainProjectManifest,\n  ProjectRootAndManifest,\n} from '@subql/types-core';\nimport {ClassConstructor, plainToInstance} from 'class-transformer';\nimport {\n  registerDecorator,\n  validateSync,\n  ValidationArguments,\n  ValidationOptions,\n  ValidatorConstraint,\n  ValidatorConstraintInterface,\n} from 'class-validator';\nimport * as yaml from 'js-yaml';\nimport Pino from 'pino';\nimport {lt, prerelease, satisfies, valid, validRange} from 'semver';\nimport updateNotifier, {Package} from 'update-notifier';\nimport {RUNNER_ERROR_REGEX} from '../constants';\nimport {CommonEndpointConfig} from './versioned';\n\nexport const DEFAULT_MULTICHAIN_MANIFEST = 'subquery-multichain.yaml';\nexport const DEFAULT_MULTICHAIN_TS_MANIFEST = 'subquery-multichain.ts';\nexport const DEFAULT_MANIFEST = 'project.yaml';\nexport const DEFAULT_TS_MANIFEST = 'project.ts';\nexport const DEFAULT_ENV = '.env';\nexport const DEFAULT_ENV_DEVELOP = '.env.develop';\nexport const DEFAULT_ENV_LOCAL = '.env.local';\nexport const DEFAULT_ENV_DEVELOP_LOCAL = '.env.develop.local';\nexport const DEFAULT_GIT_IGNORE = '.gitignore';\n\nexport function isFileReference(value: any): value is FileReference {\n  return value?.file && typeof value.file === 'string';\n}\n\n// Input manifest here, we might need to handler other error later on\nexport function handleCreateSubqueryProjectError(err: Error, pjson: any, rawManifest: any, logger: Pino.Logger): void {\n  if (JSON.stringify(err.message).includes(RUNNER_ERROR_REGEX)) {\n    logger.error(`Failed to init project, required runner is ${rawManifest.runner.node.name}, got ${pjson.name}`);\n  } else {\n    logger.error(err, 'Create Subquery project from given path failed!');\n  }\n}\n\nexport async function makeTempDir(): Promise<string> {\n  const sep = path.sep;\n  const tmpDir = os.tmpdir();\n  const tempPath = await fs.promises.mkdtemp(`${tmpDir}${sep}`);\n  return tempPath;\n}\n\nexport function getProjectRootAndManifest(subquery: string): ProjectRootAndManifest {\n  const project: ProjectRootAndManifest = {\n    root: '',\n    manifests: [],\n  };\n\n  const stats = fs.statSync(subquery);\n\n  if (stats.isDirectory()) {\n    project.root = subquery;\n\n    if (fs.existsSync(path.resolve(subquery, DEFAULT_MANIFEST))) {\n      project.manifests.push(path.resolve(subquery, DEFAULT_MANIFEST));\n    }\n    // Then check for a 'multichain manifest'\n    else if (fs.existsSync(path.resolve(subquery, DEFAULT_MULTICHAIN_MANIFEST))) {\n      const multichainManifestContent: MultichainProjectManifest = yaml.load(\n        fs.readFileSync(path.resolve(subquery, DEFAULT_MULTICHAIN_MANIFEST), 'utf8')\n      ) as MultichainProjectManifest;\n\n      if (!multichainManifestContent.projects || !Array.isArray(multichainManifestContent.projects)) {\n        throw new Error('Multichain manifest does not contain a valid \"projects\" field');\n      }\n\n      addMultichainManifestProjects(subquery, multichainManifestContent, project);\n    } else {\n      throw new Error(`Unable to resolve manifest file from given directory: ${subquery}`);\n    }\n  } else if (stats.isFile()) {\n    const {dir, ext} = path.parse(subquery);\n    if (!extensionIsTs(ext) && !extensionIsYamlOrJSON(ext)) {\n      throw new Error(`Extension ${ext} not supported for project ${subquery}`);\n    }\n    project.root = dir;\n    let projectYamlPath = subquery;\n\n    if (extensionIsTs(ext)) {\n      projectYamlPath = tsProjectYamlPath(subquery);\n      if (!fs.existsSync(projectYamlPath)) {\n        throw new Error(\n          `Could not find manifest ${projectYamlPath}, if pointing to a typescript manifest, please ensure build successfully`\n        );\n      }\n    }\n\n    const multichainManifestContent = yaml.load(fs.readFileSync(projectYamlPath, 'utf8')) as MultichainProjectManifest;\n    // The project manifest could be empty\n    if (multichainManifestContent === null) {\n      throw new Error(`Read manifest content is null, ${projectYamlPath}`);\n    } else if (multichainManifestContent.projects && Array.isArray(multichainManifestContent.projects)) {\n      addMultichainManifestProjects(dir, multichainManifestContent, project);\n    } else {\n      project.manifests.push(projectYamlPath);\n    }\n  }\n\n  project.root = path.resolve(project.root);\n\n  // Convert manifest paths to be relative to the project root\n  project.manifests = project.manifests.map((manifestPath) => {\n    return path.relative(project.root, manifestPath);\n  });\n\n  return project;\n}\n\nfunction addMultichainManifestProjects(\n  parentDir: string,\n  multichainManifestContent: any,\n  project: ProjectRootAndManifest\n) {\n  for (const projectPath of multichainManifestContent.projects) {\n    const {ext} = path.parse(projectPath);\n    if (!extensionIsYamlOrJSON(ext)) {\n      throw new Error(`Extension ${ext} not supported for project ${projectPath}`);\n    }\n\n    if (fs.existsSync(path.resolve(parentDir, projectPath))) {\n      project.manifests.push(path.resolve(parentDir, projectPath));\n    } else {\n      throw new Error(`Project ${projectPath} not found`);\n    }\n  }\n\n  if (project.manifests.length === 0) {\n    throw new Error('None of the project files specified in the multichain manifest could be found');\n  }\n}\n\nexport function getMultichainManifestPath(subquery: string): string | undefined {\n  const stats = fs.statSync(subquery);\n  let multichainManifestPath: string | undefined;\n  let projectRoot: string | undefined;\n\n  if (stats.isDirectory()) {\n    projectRoot = subquery;\n    const multichainManifestCandidate = path.resolve(subquery, DEFAULT_MULTICHAIN_MANIFEST);\n    if (fs.existsSync(multichainManifestCandidate)) {\n      multichainManifestPath = multichainManifestCandidate;\n    }\n  } else if (stats.isFile()) {\n    const {dir, ext} = path.parse(subquery);\n    projectRoot = dir;\n    if (extensionIsYamlOrJSON(ext)) {\n      const multichainManifestContent = yaml.load(fs.readFileSync(subquery, 'utf8')) as MultichainProjectManifest;\n      if (multichainManifestContent.projects && Array.isArray(multichainManifestContent.projects)) {\n        multichainManifestPath = path.resolve(dir, subquery);\n      }\n    }\n  }\n\n  if (multichainManifestPath && projectRoot) {\n    return path.relative(projectRoot, multichainManifestPath);\n  }\n\n  return undefined;\n}\n\nexport function validateSemver(current: string, required: string): boolean {\n  return satisfies(current, required, {includePrerelease: true});\n}\n\n@ValidatorConstraint({name: 'semver', async: false})\nexport class SemverVersionValidator implements ValidatorConstraintInterface {\n  validate(value: string | null | undefined): boolean {\n    if (valid(value) === null) {\n      return validRange(value, {includePrerelease: false}) !== null;\n    } else {\n      return prerelease(value || '') === null;\n    }\n  }\n  defaultMessage(args: ValidationArguments): string {\n    return `'${args.value}' is not a valid version. Please provide a valid semver`;\n  }\n}\n\nexport async function delay(sec: number): Promise<void> {\n  return new Promise((resolve) => {\n    setTimeout(resolve, sec * 1000);\n  });\n}\n\nexport function validateObject(object: any, errorMessage = 'failed to validate object.'): void {\n  const errors = validateSync(object, {whitelist: true, forbidNonWhitelisted: true});\n  if (errors?.length) {\n    const errorMsgs = errors.map((e) => e.toString()).join('\\n');\n    throw new Error(`${errorMessage}\\n${errorMsgs}`);\n  }\n}\n\nexport function extensionIsTs(ext: string): boolean {\n  return ext === '.ts';\n}\n\nexport function extensionIsYamlOrJSON(ext: string): boolean {\n  return ext === '.yaml' || ext === '.yml' || ext === '.json';\n}\n\nexport function forbidNonWhitelisted(keys: any, validationOptions?: ValidationOptions) {\n  return function (object: object, propertyName: string): void {\n    registerDecorator({\n      name: 'forbidNonWhitelisted',\n      target: object.constructor,\n      propertyName: propertyName,\n      constraints: [],\n      options: validationOptions,\n      validator: {\n        validate(value: any, args: ValidationArguments) {\n          const isValid = !Object.keys(value).some((key) => !(key in keys));\n          if (!isValid) {\n            throw new Error(\n              `Invalid keys present in value: ${JSON.stringify(value)}. Whitelisted keys: ${JSON.stringify(\n                Object.keys(keys)\n              )}`\n            );\n          }\n          return isValid;\n        },\n      },\n    });\n  };\n}\n\nexport function IsNetworkEndpoint<T extends object>(cls: ClassConstructor<T>, validationOptions?: ValidationOptions) {\n  return function (object: object, propertyName: string): void {\n    registerDecorator({\n      name: 'IsNetworkEndpoint',\n      target: object.constructor,\n      propertyName: propertyName,\n      constraints: [],\n      options: {message: 'Invalid network endpoint'},\n      validator: {\n        validate(value: string | string[] | Record<string, CommonEndpointConfig>, args: ValidationArguments) {\n          if (typeof value === 'string') {\n            return true;\n          }\n          if (Array.isArray(value)) {\n            return value.every((v) => typeof v === 'string');\n          }\n          if (typeof value === 'object') {\n            return (\n              Object.keys(value).every((v) => typeof v === 'string') &&\n              Object.values(value).every((v) => {\n                const instance = plainToInstance(cls, v);\n                const errors = validateSync(instance);\n                return errors === undefined || !errors.length;\n              })\n            );\n          }\n          return false;\n        },\n      },\n    });\n  };\n}\n\n/* eslint-disable no-redeclare */\n// Overload the function so that if input is undefineable then output is undefineable\nexport function normalizeNetworkEndpoints<T extends IEndpointConfig = IEndpointConfig>(\n  input: string | string[] | Record<string, T>,\n  defaultConfig?: T\n): Record<string, T>;\nexport function normalizeNetworkEndpoints<T extends IEndpointConfig = IEndpointConfig>(\n  input: string | string[] | Record<string, T> | undefined,\n  defaultConfig: T\n): Record<string, T> | undefined {\n  if (typeof input === 'string') {\n    return {[input]: defaultConfig ?? {}};\n  } else if (Array.isArray(input)) {\n    return input.reduce(\n      (acc, endpoint) => {\n        acc[endpoint] = defaultConfig ?? {};\n        return acc;\n      },\n      {} as Record<string, T>\n    );\n  }\n\n  for (const key in input) {\n    // Yaml can make this null so we ensure it exists\n    input[key] = input[key] ?? {};\n  }\n  return input;\n}\n/* eslint-enable no-redeclare */\n\nexport function notifyUpdates(pjson: Package, logger: Pino.Logger): void {\n  const notifier = updateNotifier({pkg: pjson, updateCheckInterval: 0});\n\n  const latestVersion = notifier.update ? notifier.update.latest : pjson.version;\n\n  if (notifier.update && lt(pjson.version, latestVersion)) {\n    logger.info(`Update available: ${pjson.version} → ${latestVersion}`);\n  } else {\n    logger.info(`Current ${pjson.name} version is ${pjson.version}`);\n  }\n}\n\nexport function toJsonObject(object: unknown): unknown {\n  // When using plainToInstance or plainToClass, Map types will need to be converted to a JSON object\n  // https://github.com/typestack/class-transformer/issues/1256#issuecomment-1175153352\n  return JSON.parse(\n    JSON.stringify(object, (_, value: unknown) => {\n      if (value instanceof Map) {\n        return mapToObject(value);\n      }\n      return value;\n    })\n  );\n}\n\nexport function mapToObject(map: Map<string | number, unknown>): Record<string | number, unknown> {\n  // XXX can use Object.entries with newer versions of node.js\n  const assetsObj: Record<string, unknown> = {};\n  for (const key of map.keys()) {\n    assetsObj[key] = map.get(key);\n  }\n  return assetsObj;\n}\n\n@ValidatorConstraint({name: 'isFileReference', async: false})\nexport class FileReferenceImp<T> implements ValidatorConstraintInterface {\n  validate(value: Map<string, T>): boolean {\n    if (!value) {\n      return false;\n    }\n    return !!Object.values(value).find((fileReference: T) => this.isValidFileReference(fileReference));\n  }\n  defaultMessage(args: ValidationArguments): string {\n    return `${JSON.stringify(args.value)} is not a valid assets format`;\n  }\n\n  private isValidFileReference(fileReference: T): boolean {\n    return (\n      fileReference &&\n      typeof fileReference === 'object' &&\n      'file' in fileReference &&\n      typeof fileReference.file === 'string'\n    );\n  }\n}\n\nexport const tsProjectYamlPath = (tsManifestEntry: string) => tsManifestEntry.replace('.ts', '.yaml');\n\n@ValidatorConstraint({async: false})\nexport class IsEndBlockGreater implements ValidatorConstraintInterface {\n  validate(endBlock: number, args: ValidationArguments) {\n    const object = args.object as BaseDataSource;\n    return object.startBlock !== undefined && object.endBlock !== undefined\n      ? object.endBlock >= object.startBlock\n      : true;\n  }\n\n  defaultMessage(args: ValidationArguments) {\n    return 'End block must be greater than or equal to start block';\n  }\n}\n"
  },
  {
    "path": "packages/common/src/project/versioned/base.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n  BaseDeploymentV1_0_0Interface,\n  FileReference,\n  ParentProject,\n  Processor,\n  ProjectManifestBaseImplInterface,\n} from '@subql/types-core';\nimport {plainToInstance, Type} from 'class-transformer';\nimport {\n  Allow,\n  Equals,\n  IsInt,\n  IsObject,\n  IsOptional,\n  IsString,\n  Validate,\n  ValidateNested,\n  validateSync,\n} from 'class-validator';\nimport yaml from 'js-yaml';\nimport {IsEndBlockGreater, toJsonObject} from '../utils';\nimport {ParentProjectModel} from './v1_0_0/models';\n\nexport abstract class ProjectManifestBaseImpl<D extends BaseDeploymentV1_0_0>\n  implements ProjectManifestBaseImplInterface<D>\n{\n  @Allow()\n  definitions!: object;\n  @IsOptional()\n  @IsString()\n  description?: string;\n  @IsOptional()\n  @IsString()\n  repository?: string;\n  @IsString()\n  specVersion!: string;\n\n  protected _deployment!: D;\n\n  protected constructor(private readonly _deploymentClass: new () => D) {}\n\n  get deployment(): D {\n    if (!this._deployment) {\n      this._deployment = plainToInstance(this._deploymentClass, toJsonObject(this));\n      validateSync(this._deployment, {whitelist: true});\n    }\n    return this._deployment;\n  }\n\n  validate(): void {\n    const errors = validateSync(this.deployment, {whitelist: true, forbidNonWhitelisted: true});\n    if (errors?.length) {\n      const errorMsgs = errors.map((e) => e.toString()).join('\\n');\n      throw new Error(`Failed to parse project. Please see below for more information.\\n${errorMsgs}`);\n    }\n  }\n\n  toDeployment(): string {\n    return this.deployment.toYaml();\n  }\n}\n\nexport class FileType implements FileReference {\n  @IsString()\n  file!: string;\n}\n\nexport class ProcessorImpl<O = any> extends FileType implements Processor<O> {\n  @IsOptional()\n  @IsObject()\n  options?: O;\n}\n\nexport class BaseDeploymentV1_0_0 implements BaseDeploymentV1_0_0Interface {\n  @Equals('1.0.0')\n  @IsString()\n  specVersion!: string;\n  @ValidateNested()\n  @Type(() => FileType)\n  schema!: FileType;\n  @IsOptional()\n  @IsObject()\n  @Type(() => ParentProjectModel)\n  parent?: ParentProject;\n\n  toYaml(): string {\n    // plainToClass was used but ran into issues\n    // We convert it to a plain object to get Maps converted to Records/Objects\n    return yaml.dump(toJsonObject(this), {\n      sortKeys: true,\n      condenseFlow: true,\n    });\n  }\n}\n\nexport class BaseDataSource {\n  @IsOptional()\n  @IsInt()\n  startBlock?: number;\n  @Validate(IsEndBlockGreater)\n  @IsOptional()\n  @IsInt()\n  endBlock?: number;\n}\n"
  },
  {
    "path": "packages/common/src/project/versioned/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './base';\nexport * from './v1_0_0';\n"
  },
  {
    "path": "packages/common/src/project/versioned/v1_0_0/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './models';\n"
  },
  {
    "path": "packages/common/src/project/versioned/v1_0_0/model.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IProjectNetworkConfig} from '@subql/types-core';\nimport {plainToClass} from 'class-transformer';\nimport {validateSync} from 'class-validator';\nimport {CommonProjectNetworkV1_0_0, CommonRunnerSpecsImpl} from './models';\n\ndescribe('Validating base v1_0_0 model', () => {\n  it('correctly validates the various endpoint structures in a network config', () => {\n    const config1: IProjectNetworkConfig = {\n      chainId: '1',\n      endpoint: 'https://example.com',\n    };\n\n    const config2: IProjectNetworkConfig = {\n      chainId: '1',\n      endpoint: ['https://example.com', 'https://foo.bar'],\n    };\n\n    const config3: IProjectNetworkConfig = {\n      chainId: '1',\n      endpoint: {\n        'https://example.com': {\n          headers: {'api-key': '1234'},\n        },\n      },\n    };\n\n    const bad1 = {\n      chainId: '1',\n      endpoint: 1,\n    };\n\n    const bad2 = {\n      chainId: '1',\n      endpoint: [1],\n    };\n\n    const bad3 = {\n      chainId: '1',\n      endpoint: [\n        {\n          2: {},\n        },\n      ],\n    };\n\n    const bad4 = {\n      chainId: '1',\n      endpoint: [\n        {\n          'https://example.com': undefined,\n        },\n      ],\n    };\n\n    function validate(raw: unknown) {\n      const projectManifest = plainToClass<CommonProjectNetworkV1_0_0, unknown>(CommonProjectNetworkV1_0_0, raw);\n      const errors = validateSync(projectManifest, {whitelist: true});\n\n      if (errors.length) {\n        throw new Error(errors.map((e) => e.value).join('\\n'));\n      }\n    }\n\n    expect(() => validate(config1)).not.toThrow();\n    expect(() => validate(config2)).not.toThrow();\n    expect(() => validate(config3)).not.toThrow();\n    expect(() => validate(bad1)).toThrow();\n    expect(() => validate(bad2)).toThrow();\n    expect(() => validate(bad3)).toThrow();\n    expect(() => validate(bad4)).toThrow();\n  });\n\n  it('validates manifest Runner', () => {\n    function validate(raw: unknown) {\n      const projectManifest = plainToClass<CommonRunnerSpecsImpl, unknown>(CommonRunnerSpecsImpl, raw);\n      const errors = validateSync(projectManifest, {whitelist: true});\n\n      if (errors.length) {\n        throw new Error(errors.map((e) => e.value).join('\\n'));\n      }\n    }\n\n    const normalRunner: unknown = {\n      node: {\n        name: '@subql/node',\n        version: '>=3.0.1',\n      },\n      query: {\n        name: '@subql/query',\n        version: '*',\n      },\n    };\n\n    const notExistQueryRunner: unknown = {\n      node: {\n        name: '@subql/node',\n        version: '>=3.0.1',\n      },\n      query: {\n        name: '@subql/not-exist',\n        version: '*',\n      },\n    };\n    const subgraphQueryRunner: unknown = {\n      node: {\n        name: '@subql/node',\n        version: '>=3.0.1',\n      },\n      query: {\n        name: '@subql/query-subgraph',\n        version: '*',\n      },\n    };\n\n    expect(() => validate(normalRunner)).not.toThrow();\n    expect(() => validate(notExistQueryRunner)).toThrow();\n    expect(() => validate(subgraphQueryRunner)).not.toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/common/src/project/versioned/v1_0_0/models.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n  BlockFilter,\n  CommonSubqueryProject,\n  IEndpointConfig,\n  IProjectNetworkConfig,\n  NodeOptions,\n  NodeSpec,\n  ParentProject,\n  QuerySpec,\n  RunnerSpecs,\n} from '@subql/types-core';\nimport {Transform, TransformFnParams, Type} from 'class-transformer';\nimport {\n  Equals,\n  IsBoolean,\n  IsNumber,\n  IsObject,\n  IsOptional,\n  IsString,\n  IsInt,\n  Validate,\n  ValidateNested,\n  IsArray,\n  IsNotEmpty,\n  Allow,\n  ValidateIf,\n  IsPositive,\n  IsIn,\n} from 'class-validator';\nimport {IsNetworkEndpoint, SemverVersionValidator} from '../../utils';\nimport {FileType} from '../base';\n\nexport class RunnerQueryBaseModel implements QuerySpec {\n  @IsIn(['@subql/query', '@subql/query-subgraph'])\n  name!: string;\n  @IsString()\n  @Validate(SemverVersionValidator)\n  // @Matches(RUNNER_REGEX)\n  version!: string;\n}\n\nexport class RunnerNodeImpl implements NodeSpec {\n  @IsString()\n  name!: string;\n  @IsString()\n  @Validate(SemverVersionValidator)\n  // @Matches(RUNNER_REGEX,{message: 'runner version is not correct'})\n  version!: string;\n  @IsOptional()\n  @IsObject()\n  @ValidateNested()\n  @Type(() => RunnerNodeOptionsModel)\n  options?: NodeOptions;\n}\n\nexport class RunnerNodeOptionsModel implements NodeOptions {\n  @IsOptional()\n  @IsBoolean()\n  historical?: boolean;\n  @IsOptional()\n  @IsBoolean()\n  unsafe?: boolean;\n  @IsOptional()\n  @IsBoolean()\n  unfinalizedBlocks?: boolean;\n  @IsOptional()\n  @IsBoolean()\n  skipTransactions?: boolean;\n}\n\nexport class BlockFilterImpl implements BlockFilter {\n  @IsOptional()\n  @IsInt()\n  modulo?: number;\n  @IsOptional()\n  @IsString()\n  timestamp?: string;\n}\n\nexport class ParentProjectModel implements ParentProject {\n  @IsNumber()\n  @ValidateIf((obj, value) => value !== null || obj.unitlBlock === null || obj.untilBlock === undefined)\n  block!: number;\n  @IsNumber()\n  @ValidateIf((obj, value) => value !== null || obj.block === null || obj.block === undefined)\n  untilBlock!: number;\n  @IsString()\n  reference!: string;\n}\n\n// Use for generic project validation only\nexport class CommonProjectManifestV1_0_0Impl<D extends object = any> implements CommonSubqueryProject {\n  @Allow()\n  definitions!: object;\n  @IsString()\n  @IsOptional()\n  description?: string;\n  @IsOptional()\n  @IsString()\n  repository?: string;\n  @Equals('1.0.0')\n  specVersion!: string;\n  // To be validated in specific manifest type\n  @IsArray()\n  dataSources!: any[];\n  @ValidateNested()\n  @Type(() => CommonProjectNetworkV1_0_0)\n  network!: IProjectNetworkConfig;\n  @IsString()\n  @IsOptional()\n  name?: string;\n  @IsString()\n  version!: string;\n  @ValidateNested()\n  @Type(() => FileType)\n  schema!: FileType;\n  @IsOptional()\n  @IsArray()\n  templates?: any[];\n  @IsObject()\n  @ValidateNested()\n  @Type(() => CommonRunnerSpecsImpl)\n  runner!: RunnerSpecs;\n  @IsOptional()\n  @IsObject()\n  @Type(() => ParentProjectModel)\n  parent?: ParentProject;\n  readonly deployment!: D;\n}\n\nexport class CommonRunnerSpecsImpl implements RunnerSpecs {\n  @IsObject()\n  @ValidateNested()\n  @Type(() => RunnerNodeImpl)\n  node!: NodeSpec;\n  @IsObject()\n  @ValidateNested()\n  @Type(() => RunnerQueryBaseModel)\n  query!: QuerySpec;\n}\n\nexport class CommonEndpointConfig implements IEndpointConfig {\n  @IsOptional()\n  // Class validator doesn't have any way of validating records\n  headers?: Record<string, string>;\n}\n\nexport class CommonProjectNetworkV1_0_0<C = any> implements IProjectNetworkConfig {\n  @IsOptional()\n  @IsNetworkEndpoint(CommonEndpointConfig)\n  endpoint!: string | string[] | Record<string, CommonEndpointConfig>;\n  @IsString({each: true})\n  @IsOptional()\n  dictionary!: string | string[];\n  @IsNotEmpty()\n  @Transform(({value}: TransformFnParams) => value.trim())\n  @IsString()\n  chainId!: string;\n  @IsOptional()\n  chaintypes?: C; // ensure lowercase to keep consistency\n  @IsOptional()\n  @IsArray()\n  bypassBlocks?: (number | `${number}-${number}`)[];\n}\n"
  },
  {
    "path": "packages/common/test/project.yaml",
    "content": "specVersion: '0.0.1'\ndescription: ''\nrepository: 'https://github.com/OnFinality-io/subql-examples'\n\nschema: './schema.graphql'\n\nnetwork:\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  types: {\n    \"TestType\": \"u32\"\n  }\n  typesAlias: {\n    Alias: { TestType2: 'test' },\n  }\n  typesBundle: {\n    spec: {\n      '2312': {\n        types: [ { minmax: [ 232, 122 ], types: { TestType3: 'test3' } } ],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [ { minmax: [ 232, 122 ], types: { TestType4: 'test4' } } ],\n      },\n    },\n  }\n  typesChain: { chain2: { TestType5: 'test' } }\n  typesSpec: { spec3: { TestType6: 'test' } }\n\ndataSources:\n  - name: main\n    kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n          filter:\n            specVersion: [23, 24]\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n          filter:\n            specVersion: [100]\n        - handler: handleEvent\n          kind: substrate/CallHandler\n          filter:\n            module: balance\n            method: xxx\n            success: true\n            specVersion: [null, 23]\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter:\n            module: balance\n            method: xxx\n#  - name: contract\n#    kind: substrate/Ink!\n#  - name: contract2\n#    kind: substrate/EVM\n"
  },
  {
    "path": "packages/common/test/project_0.2.0.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\nname: Test\nversion: '0.0.0'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  dictionary: 'https://api.subquery.network/sq/subquery/dictionary-polkadot'\n  chaintypes:\n    file: ./types.json\n\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/common/test/project_0.2.0_custom_ds.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\nname: Test\nversion: '0.0.0'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  chaintypes:\n    file: ./types.json\n\ndataSources:\n  - kind: substrate/Jsonfy\n    startBlock: 1\n    processor:\n      file: '@subql/contract-processors/jsonfy.js'\n    assets:\n      test:\n        file: './abi.json'\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleEvent\n          kind: substrate/JsonfyEvent\n"
  },
  {
    "path": "packages/common/test/project_0.2.0_invalid_custom_ds.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\nname: Test\nversion: '0.0.0'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  chaintypes:\n    file: ./types.json\n\ndataSources:\n  - kind: substrate/Jsonfy\n    startBlock: 1\n    # processor:\n    #   file: '@subql/contract-processors/jsonfy.js'\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleEvent\n          kind: substrate/JsonfyEvent\n"
  },
  {
    "path": "packages/common/test/project_falsy.yaml",
    "content": "specVersion: '0.0.1'\ndescription: ''\nrepository: 'https://github.com/OnFinality-io/subql-examples'\n\nschema: './schema.graphql'\n\n#network:\n#  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n\ndataSources:\n  - name: main\n    kind: substrate/SmartContract\n    mapping:\n      handlers:\n        - handler: handleBlock\n          kind: substrate/XXXHandler\n          filter:\n            module: xxx\n        - name: handleEvent\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/common/test/project_falsy_array.yaml",
    "content": "- specVersion: '0.0.1'\n  description: ''\n  repository: 'https://github.com/OnFinality-io/subql-examples'\n\n  schema: './schema.graphql'\n\n  #network:\n  #  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  dataSources:\n    - name: main\n      kind: substrate/Runtime\n      startBlock: 1\n      mapping:\n        handlers:\n          - handler: handleBlock\n            kind: substrate/BlockHandler\n            filter:\n              specVersion: [23, 24]\n\n\n- specVersion: '0.0.2'\n  description: ''\n  repository: 'https://github.com/OnFinality-io/subql-examples'\n\n  schema: './schema.graphql'\n\n  #network:\n  #  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  dataSources:\n    - name: main\n      kind: substrate/Runtime\n      startBlock: 1\n      mapping:\n        handlers:\n          - handler: handleBlock\n            kind: substrate/BlockHandler\n            filter:\n              specVersion: [23, 24]\n"
  },
  {
    "path": "packages/common/test/project_invalid_version.yaml",
    "content": "# project.yaml\nspecVersion: \"0.0.0\"\ndescription: \"\"\nrepository: \"https://github.com/subquery/subql-starter\"\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  chaintypes:\n    file: ./types.json\n\ndataSources:\n  - name: main\n    kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n\n\n"
  },
  {
    "path": "packages/common/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"rootDir\": \"src\",\n    \"tsBuildInfoFile\": \"dist/.tsbuildinfo\",\n    \"outDir\": \"dist\",\n    \"noImplicitAny\": true\n  },\n  \"references\": [{\"path\": \"../types\"}],\n  \"include\": [\"src/**/*\"]\n}\n"
  },
  {
    "path": "packages/common-substrate/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [4.5.5] - 2025-11-20\n### Changed\n- Update `@subql/common`\n\n## [4.5.3] - 2025-10-22\n### Changed\n- Update `@subql/common`\n\n## [4.5.2] - 2025-07-30\n### Changed\n- Lock down class-transformer and class-validator versions (#2871)\n\n## [4.5.1] - 2025-07-17\n### Changed\n- Workspace dependencies now match to patch versions rather than exact (#2855)\n\n## [4.5.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n## [4.4.0] - 2025-04-17\n### Changed\n- Update `@subql/common`\n\n## [4.3.7] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n\n## [4.3.6] - 2025-01-28\n### Changed\n- Update `@subql/common`\n\n## [4.3.5] - 2024-12-11\n### Changed\n- Update `@subql/common`\n\n## [4.3.4] - 2024-11-25\n### Changed\n- Bump version with `@subql/common`\n\n## [4.3.3] - 2024-11-22\n### Changed\n- Update common (#2584)\n\n## [4.3.2] - 2024-10-23\n### Changed\n- Bump version with `@subql/common`\n\n## [4.3.1] - 2024-09-25\n### Changed\n- Bump common, Added manifest support for query-subgraph.\n\n## [4.3.0] - 2024-08-05\n### Changed\n- Update dependencies (#2518)\n\n## [4.2.0] - 2024-08-01\n### Added\n- Updated `@subql\\common` with support for endpoint specific configs (#2511)\n\n## [4.1.1] - 2024-07-25\n### Changed\n- Bump version with `@subql/common`\n- input type updated in `isRuntimeDs` (#2496)\n\n## [4.1.0] - 2024-07-11\n### Removed\n- Unused functions (#2484)\n\n### Changed\n- Bump with `subql/common`\n\n## [4.0.1] - 2024-07-09\n### Changed\n- Changes to ts build settings (#2475)\n\n## [4.0.0] - 2024-07-01\n### Added\n- Enable ts strict setting\n- Breaking Change: Add alias `parseProjectManifest`, also follow type of `INetworkCommonModule` (#2462)\n\n## [3.8.1] - 2024-06-21\n### Fixed\n- Fix `EventFilter` incorrectly extend `BlockFilter`, lead dictionary error (#2463)\n\n## [3.8.0] - 2024-06-05\n### Changed\n- Bump with common\n\n## [3.7.0] - 2024-05-22\n### Changed\n- Bump with common\n\n## [3.6.0] - 2024-05-08\n### Changed\n- Bump with types, update dependencies\n\n## [3.5.0] - 2024-04-24\n### Changed\n- Update dependencies\n\n## [3.4.0] - 2024-03-28\n### Changed\n- version bump with `@subql/common` 3.5.0\n\n## [3.3.2] - 2024-02-23\n### Changed\n- version bump with `@subql/common`\n\n## [3.3.1] - 2024-02-07\n### Changed\n- Update `@subql/common`\n\n## [3.2.1] - 2023-12-14\n### Changed\n- Update @subql/common\n\n## [3.2.0] - 2023-10-31\n### Changed\n- Update `@subql/common` with support for endBlock feature\n\n## [3.1.2] - 2023-10-18\n### Changed\n- Version bump with `common` 3.1.3\n\n## [3.1.1] - 2023-10-03\n### Changed\n- Version bump with `types-core` 0.1.1\n\n## [3.1.0] - 2023-10-02\n### Changed\n- Update with `types-core` 0.1.0 (#2056)\n\n## [3.0.1] - 2023-09-28\n### Changed\n- move block filters to common (#1969)\n\n### Added\n- Parent option to manifest (#1797)\n\n## [2.4.0] - 2023-08-16\n### Added\n- `isSigned` filter to call handler (#1940)\n\n## [2.3.0] - 2023-08-10\n### Changed\n- Bump version with `common`;\n\n## [2.2.1] - 2023-07-31\n### Fixed\n- Update license (#1891)\n\n## [2.2.0] - 2023-06-26\n### Changed\n- Update common dependency\n\n## [2.1.1] - 2023-05-11\n### Changed\n- Move validate function to common (#1683)\n\n## [2.1.0] - 2023-05-10\n### Added\n- Ability to specify node runner options (#1652)\n\n### Changed\n- Remove support for manifest versions < 1.0.0 (#1659)\n\n## [2.0.0] - 2023-04-20\n### Changed\n- Major release 2.0.0, align with other package versions\n\n## [1.5.0] - 2023-03-30\n### Changed\n- Changed in models to support Multiple endpoints (#1551)\n\n## [1.4.0] - 2022-12-06\n### Added\n- Support for `bypassBlocks` (#1435)\n\n## [1.3.0] - 2022-10-27\n### Added\n- Timestamp filter to block handlers (#1310)\n\n## [1.2.1] - 2022-10-06\n### Changed\n- Update IPFS endpoints. (#1337)\n\n## [1.2.0] - 2022-07-27\n### Changed\n- Apply latest runner version validation rule, now `dev` and `latest` are not supported.\n\n## [1.1.1] - 2022-07-05\n### Changed\n- Bump with `@subql/common`\n\n## [1.1.0] - 2022-05-31\n### Changed\n- Remove `contract-processors` and types improvements (#1012)\n\n## [1.0.0] - 2022-05-11\n### Changed\n- Major release\n\n## [0.5.0] - 2022-05-11\n### Added\n- Add test for project with ds processor assets (#1000)\n- Add method to check templates is Substrate ds (#1001)\n\n## [0.4.0] - 2022-05-02\n### Added\n- Add utils package (#928)\n\n## [0.3.1] - 2022-04-27\n### Changed\n- Add missing vm2 dependency (#919)\n\n## [0.3.0] - 2022-04-06\n### Added\n- Add manifest 1.0.0 (#845)\n\n### Fixed\n- Fix validation for genesisHash or chainId with empty string (#883)\n\n## [0.2.0] - 2022-04-04\n### Changed\n- Update to use `vm2`(#869)\n\n## [0.1.0] - 2022-03-01\n### Added\n- init commit\n\n[Unreleased]: https://github.com/subquery/subql/compare/common-substrate/4.5.4...HEAD\n[4.5.4]: https://github.com/subquery/subql/compare/common-substrate/4.5.3...common-substrate/4.5.4\n[4.5.3]: https://github.com/subquery/subql/compare/common-substrate/4.5.2...common-substrate/4.5.3\n[4.5.2]: https://github.com/subquery/subql/compare/common-substrate/4.5.1...common-substrate/4.5.2\n[4.5.1]: https://github.com/subquery/subql/compare/common-substrate/4.5.0...common-substrate/4.5.1\n[4.5.0]: https://github.com/subquery/subql/compare/common-substrate/4.4.0...common-substrate/4.5.0\n[4.4.0]: https://github.com/subquery/subql/compare/common-substrate/4.3.7...common-substrate/4.4.0\n[4.3.7]: https://github.com/subquery/subql/compare/common-substrate/4.3.6...common-substrate/4.3.7\n[4.3.6]: https://github.com/subquery/subql/compare/common-substrate/4.3.5...common-substrate/4.3.6\n[4.3.5]: https://github.com/subquery/subql/compare/common-substrate/4.3.4...common-substrate/4.3.5\n[4.3.4]: https://github.com/subquery/subql/compare/common-substrate/4.3.3...common-substrate/4.3.4\n[4.3.3]: https://github.com/subquery/subql/compare/common-substrate/4.3.2...common-substrate/4.3.3\n[4.3.2]: https://github.com/subquery/subql/compare/common-substrate/4.3.1...common-substrate/4.3.2\n[4.3.1]: https://github.com/subquery/subql/compare/common-substrate/4.3.0...common-substrate/4.3.1\n[4.3.0]: https://github.com/subquery/subql/compare/common-substrate/4.2.0...common-substrate/4.3.0\n[4.2.0]: https://github.com/subquery/subql/compare/common-substrate/4.1.1...common-substrate/4.2.0\n[4.1.1]: https://github.com/subquery/subql/compare/common-substrate/4.1.0...common-substrate/4.1.1\n[4.1.0]: https://github.com/subquery/subql/compare/common-substrate/4.0.1...common-substrate/4.1.0\n[4.0.1]: https://github.com/subquery/subql/compare/common-substrate/4.0.0...common-substrate/4.0.1\n[4.0.0]: https://github.com/subquery/subql/compare/common-substrate/3.8.1...common-substrate/4.0.0\n[3.8.1]: https://github.com/subquery/subql/compare/common-substrate/3.8.0...common-substrate/3.8.1\n[3.8.0]: https://github.com/subquery/subql/compare/common-substrate/3.7.0...common-substrate/3.8.0\n[3.7.0]: https://github.com/subquery/subql/compare/common-substrate/3.6.0...common-substrate/3.7.0\n[3.6.0]: https://github.com/subquery/subql/compare/common-substrate/3.5.0...common-substrate/3.6.0\n[3.5.0]: https://github.com/subquery/subql/compare/common-substrate/3.4.0...common-substrate/3.5.0\n[3.4.0]: https://github.com/subquery/subql/compare/common-substrate/3.3.2...common-substrate/3.4.0\n[3.3.2]: https://github.com/subquery/subql/compare/common-substrate/3.3.1...common-substrate/3.3.2\n[3.3.1]: https://github.com/subquery/subql/compare/common-substrate/3.2.1...common-substrate/3.3.1\n[3.2.1]: https://github.com/subquery/subql/compare/common-substrate/3.2.0...common-substrate/3.2.1\n[3.2.0]: https://github.com/subquery/subql/compare/common-substrate/3.1.2...common-substrate/3.2.0\n[3.1.2]: https://github.com/subquery/subql/compare/common-substrate/3.1.1...common-substrate/3.1.2\n[3.1.1]: https://github.com/subquery/subql/compare/common-substrate/3.1.0...common-substrate/3.1.1\n[3.1.0]: https://github.com/subquery/subql/compare/common-substrate/3.0.1...common-substrate/3.1.0\n[3.0.1]: https://github.com/subquery/subql/compare/common-substrate/2.4.0...common-substrate/3.0.1\n[2.4.0]: https://github.com/subquery/subql/compare/common-substrate/2.3.0...common-substrate/2.4.0\n[2.3.0]: https://github.com/subquery/subql/compare/common-substrate/2.2.1...common-substrate/2.3.0\n[2.2.1]: https://github.com/subquery/subql/compare/common-substrate/2.2.0...common-substrate/2.2.1\n[2.2.0]: https://github.com/subquery/subql/compare/common-substrate/2.1.1...common-substrate/2.2.0\n[2.1.1]: https://github.com/subquery/subql/compare/common-substrate/2.1.0...common-substrate/2.1.1\n[2.1.0]: https://github.com/subquery/subql/compare/common-substrate/2.0.0...common-substrate/2.1.0\n[2.0.0]: https://github.com/subquery/subql/compare/common-substrate/1.5.0...common-substrate/2.0.0\n[1.5.0]: https://github.com/subquery/subql/compare/common-substrate/1.4.0...common-substrate/1.5.0\n[1.4.0]: https://github.com/subquery/subql/compare/common-substrate/1.3.0...common-substrate/1.4.0\n[1.3.0]: https://github.com/subquery/subql/compare/common-substrate/1.2.1...common-substrate/1.3.0\n[1.2.1]: https://github.com/subquery/subql/compare/common-substrate/1.2.0...common-substrate/1.2.1\n[1.2.0]: https://github.com/subquery/subql/compare/common-substrate/1.1.1...common-substrate/1.2.0\n[1.1.1]: https://github.com/subquery/subql/compare/common-substrate/1.1.0...common-substrate/1.1.1\n[1.1.0]: https://github.com/subquery/subql/compare/common-substrate/1.0.0...common-substrate/1.1.0\n[1.0.0]: https://github.com/subquery/subql/compare/common-substrate/0.5.0...common-substrate/1.0.0\n[0.5.0]: https://github.com/subquery/subql/compare/common-substrate/0.4.0...common-substrate/0.5.0\n[0.4.0]: https://github.com/subquery/subql/compare/common-substrate/0.3.1...common-substrate/0.4.0\n[0.3.1]: https://github.com/subquery/subql/compare/common-substrate/0.3.0...common-substrate/0.3.1\n[0.3.0]: https://github.com/subquery/subql/compare/common-substrate/0.2.0...common-substrate/0.3.0\n[0.2.0]: https://github.com/subquery/subql/compare/common-substrate/0.1.0...common-substrate/0.2.0\n[0.1.0]: https://github.com/subquery/subql/tags/common-substrate/0.1.0\n"
  },
  {
    "path": "packages/common-substrate/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/common-substrate/package.json",
    "content": "{\n  \"name\": \"@subql/common-substrate\",\n  \"version\": \"4.5.5\",\n  \"description\": \"\",\n  \"scripts\": {\n    \"build\": \"rm -rf dist && tsc -b\",\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n    \"format\": \"prettier --write \\\"src/**/*.ts\\\"\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"common-substrate/\\\"\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql\",\n  \"repository\": \"github:subquery/subql\",\n  \"author\": \"Ian He\",\n  \"main\": \"dist/index.js\",\n  \"license\": \"GPL-3.0\",\n  \"dependencies\": {\n    \"@subql/common\": \"workspace:~\",\n    \"@subql/types\": \"workspace:~\"\n  },\n  \"peerDependencies\": {\n    \"class-transformer\": \"^0.5.1\",\n    \"class-validator\": \"0.14.1\"\n  },\n  \"files\": [\n    \"/dist\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\",\n    \"package.json\",\n    \"README.md\",\n    \"CHANGELOG.md\",\n    \"LICENSE\"\n  ]\n}\n"
  },
  {
    "path": "packages/common-substrate/src/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './project';\n\nimport {SubstrateCustomDatasource, SubstrateDatasource, SubstrateRuntimeDatasource} from '@subql/types';\nimport {INetworkCommonModule} from '@subql/types-core';\nimport * as p from './project';\n\n// This provides a compiled time check to ensure that the correct exports are provided\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst _ = {\n  ...p,\n} satisfies INetworkCommonModule<SubstrateDatasource, SubstrateRuntimeDatasource, SubstrateCustomDatasource>;\n"
  },
  {
    "path": "packages/common-substrate/src/project/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './load';\nexport * from './models';\nexport * from './types';\nexport * from './utils';\nexport * from './versioned';\n\nimport {parseSubstrateProjectManifest} from './load';\nexport {parseSubstrateProjectManifest as parseProjectManifest};\n"
  },
  {
    "path": "packages/common-substrate/src/project/load.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {parseChainTypes} from './load';\n\nconst jsChainTypesScript = `(()=>{\"use strict\";var e={3412:function(e,n){var t=this&&this.__rest||function(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var o=0;for(a=Object.getOwnPropertySymbols(e);o<a.length;o++)n.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(t[a[o]]=e[a[o]])}return t};Object.defineProperty(n,\"__esModule\",{value:!0}),n.typesBundleDeprecated=n.typesBundlePre900=n.moonbeamDefinitionsDeprecated=n.moonbeamDefinitions=n.rpcDefinitions=n.moduleDefinitions=void 0,n.moduleDefinitions={assetManager:{Balance:\"TAssetBalance\"},xTokens:{Balance:\"TAssetBalance\"}},n.rpcDefinitions={txpool:{content:{aliasSection:\"txpool\",description:\"The detailed information regarding Ethereum transactions that are currently in the Substrate transaction pool.\",params:[],type:\"TxPoolResultContent\"},inspect:{aliasSection:\"txpool\",description:\"Summarized information of the Ethereum transactions that are currently in the Substrate transaction pool.\",params:[],type:\"TxPoolResultInspect\"},status:{aliasSection:\"txpool\",description:\"The number of Ethereum transaction that are currently in the Substrate transaction pool.\",params:[],type:\"TxPoolResultStatus\"}},trace:{filter:{aliasSection:\"trace\",description:\"Trace Filter\",params:[{name:\"filter\",type:\"FilterRequest\"}],type:\"Result<Vec<TransactionTrace>>\"}},debug:{traceTransaction:{aliasSection:\"debug\",description:\"Debug trace tx\",params:[{name:\"transaction_hash\",type:\"H256\"}],type:\"Result<Vec<TransactionTrace>>\"}}};const a={AccountId:\"EthereumAccountId\",Address:\"AccountId\",Balance:\"u128\",RefCount:\"u8\",LookupSource:\"AccountId\",Account:{nonce:\"U256\",balance:\"u128\"}},{RefCount:o}=a,c=t(a,[\"RefCount\"]),i=Object.assign(Object.assign({},c),{ExtrinsicSignature:\"EthereumSignature\",RoundIndex:\"u32\",Candidate:{id:\"AccountId\",fee:\"Perbill\",bond:\"Balance\",nominators:\"Vec<Bond>\",total:\"Balance\",state:\"ValidatorStatus\"},Nominator:{nominations:\"Vec<Bond>\",total:\"Balance\"},Bond:{owner:\"AccountId\",amount:\"Balance\"},ValidatorStatus:{_enum:{Active:\"Null\",Idle:\"Null\",Leaving:\"RoundIndex\"}},TxPoolResultContent:{pending:\"HashMap<H160, HashMap<U256, PoolTransaction>>\",queued:\"HashMap<H160, HashMap<U256, PoolTransaction>>\"},TxPoolResultInspect:{pending:\"HashMap<H160, HashMap<U256, Summary>>\",queued:\"HashMap<H160, HashMap<U256, Summary>>\"},TxPoolResultStatus:{pending:\"U256\",queued:\"U256\"},Summary:\"Bytes\",PoolTransaction:{hash:\"H256\",nonce:\"U256\",blockHash:\"Option<H256>\",blockNumber:\"Option<U256>\",from:\"H160\",to:\"Option<H160>\",value:\"U256\",gasPrice:\"U256\",gas:\"U256\",input:\"Bytes\"}}),{ValidatorStatus:s}=i,r=t(i,[\"ValidatorStatus\"]),l=Object.assign(Object.assign({},r),{AccountInfo:\"AccountInfoWithTripleRefCount\",Candidate:{id:\"AccountId\",fee:\"Perbill\",bond:\"Balance\",nominators:\"Vec<Bond>\",total:\"Balance\",state:\"CollatorStatus\"},CollatorStatus:{_enum:{Active:\"Null\",Idle:\"Null\",Leaving:\"RoundIndex\"}},Range:\"RangeBalance\",RangeBalance:{min:\"Balance\",ideal:\"Balance\",max:\"Balance\"},RangePerbill:{min:\"Perbill\",ideal:\"Perbill\",max:\"Perbill\"},InflationInfo:{expect:\"RangeBalance\",annual:\"RangePerbill\",round:\"RangePerbill\"},OrderedSet:\"Vec<Bond>\",Collator:{id:\"AccountId\",bond:\"Balance\",nominators:\"Vec<Bond>\",total:\"Balance\",state:\"CollatorStatus\"},CollatorSnapshot:{bond:\"Balance\",nominators:\"Vec<Bond>\",total:\"Balance\"},SystemInherentData:{validationData:\"PersistedValidationData\",relayChain_state:\"StorageProof\",downwardMessages:\"Vec<InboundDownwardMessage>\",horizontalMessages:\"BTreeMap<ParaId, Vec<InboundHrmpMessage>>\"},RoundInfo:{current:\"RoundIndex\",first:\"BlockNumber\",length:\"u32\"}}),u=Object.assign(Object.assign({},l),{AuthorId:\"AccountId\"}),d=Object.assign(Object.assign({},u),{AccountId32:\"H256\",AuthorId:\"AccountId32\",ProxyType:{_enum:[\"Any\",\"NonTransfer\",\"Governance\",\"Staking\",\"CancelProxy\",\"Balances\",\"AuthorMapping\"]},RelayChainAccountId:\"AccountId32\",RewardInfo:{totalReward:\"Balance\",claimedReward:\"Balance\"}}),m=Object.assign(Object.assign({},d),{Collator2:{id:\"AccountId\",bond:\"Balance\",nominators:\"Vec<AccountId>\",topNominators:\"Vec<Bond>\",bottomNominators:\"Vec<Bond>\",totalCounted:\"Balance\",totalBacking:\"Balance\",state:\"CollatorStatus\"},NominatorAdded:{_enum:{AddedToBottom:\"Null\",AddedToTop:\"Balance\"}},RegistrationInfo:{account:\"AccountId\",deposit:\"Balance\"},ParachainBondConfig:{account:\"AccountId\",percent:\"Percent\"}}),p=Object.assign(Object.assign({},m),{EthereumSignature:{r:\"H256\",s:\"H256\",v:\"U8\"},NominatorAdded:{_enum:{AddedToTop:\"Balance\",AddedToBottom:\"Null\"}}}),b=Object.assign(Object.assign({},p),{NominatorStatus:{_enum:{Active:\"Null\",Leaving:\"RoundIndex\"}},Nominator2:{nominations:\"Vec<Bond>\",revocations:\"Vec<AccountId>\",total:\"Balance\",scheduledRevocationsCount:\"u32\",scheduledRevocationsTotal:\"Balance\",status:\"NominatorStatus\"},ExitQ:{candidates:\"Vec<AccountId>\",nominatorsLeaving:\"Vec<AccountId>\",candidateSchedule:\"Vec<(AccountId, RoundIndex)>\",nominatorSchedule:\"Vec<(AccountId, Option<AccountId>, RoundIndex)>\"}}),y=Object.assign(Object.assign({},b),{RewardInfo:{totalReward:\"Balance\",claimedReward:\"Balance\",contributedRelayAddresses:\"Vec<RelayChainAccountId>\"}}),I=Object.assign(Object.assign({},y),{AssetType:{_enum:{Xcm:\"MultiLocation\"}},AssetId:\"u128\",TAssetBalance:\"u128\",ENUM_AccountId32:{network:\"NetworkId\",id:\"[u8; 32]\"},ENUM_AccountKey20:{network:\"NetworkId\",key:\"[u8; 20]\"},ENUM_AccountIndex64:{network:\"NetworkId\",index:\"Compact<u64>\"},ENUM_Plurality:{id:\"BodyId\",part:\"BodyPart\"},JunctionV0:{_enum:{Parent:\"Null\",Parachain:\"Compact<u32>\",AccountId32:\"ENUM_AccountId32\",AccountIndex64:\"ENUM_AccountIndex64\",AccountKey20:\"ENUM_AccountKey20\",PalletInstance:\"u8\",GeneralIndex:\"Compact<u128>\",GeneralKey:\"Vec<u8>\",OnlyChild:\"Null\",Plurality:\"ENUM_Plurality\"}},CurrencyId:{_enum:{SelfReserve:\"Null\",OtherReserve:\"u128\"}},AssetRegistrarMetadata:{name:\"Vec<u8>\",symbol:\"Vec<u8>\",decimals:\"u8\",isFrozen:\"bool\"},VestingBlockNumber:\"u32\",MultiLocation:\"MultiLocationV0\"}),A=Object.assign(Object.assign({},I),{JunctionV1:{_enum:{Parachain:\"Compact<u32>\",AccountId32:\"ENUM_AccountId32\",AccountIndex64:\"ENUM_AccountIndex64\",AccountKey20:\"ENUM_AccountKey20\",PalletInstance:\"u8\",GeneralIndex:\"Compact<u128>\",GeneralKey:\"Vec<u8>\",OnlyChild:\"Null\",Plurality:\"ENUM_Plurality\"}},MultiLocation:\"MultiLocationV1\"}),g=Object.assign(Object.assign({},A),{MoonbaseRuntimeAssetRegistrarMetadata:{name:\"Vec<u8>\",symbol:\"Vec<u8>\",decimals:\"u8\",is_frozen:\"bool\"},PalletCrowdloanRewardsRewardInfo:{total_reward:\"Balance\",claimed_reward:\"Balance\",contributed_relay_addresses:\"Vec<RelayChainAccountId>\"},ParachainStakingNominator2:{nominations:\"Vec<Bond>\",revocations:\"Vec<AccountId>\",total:\"Balance\",scheduled_revocations_count:\"u32\",scheduled_revocations_total:\"Balance\",status:\"NominatorStatus\"},ParachainStakingExitQ:{candidates:\"Vec<AccountId>\",nominators_leaving:\"Vec<AccountId>\",candidate_schedule:\"Vec<(AccountId, RoundIndex)>\",nominator_schedule:\"Vec<(AccountId, Option<AccountId>, RoundIndex)>\"},ParachainStakingCollator2:{id:\"AccountId\",bond:\"Balance\",nominators:\"Vec<AccountId>\",top_nominators:\"Vec<Bond>\",bottom_nominators:\"Vec<Bond>\",total_counted:\"Balance\",total_backing:\"Balance\",state:\"CollatorStatus\"}});n.moonbeamDefinitions={alias:n.moduleDefinitions,rpc:n.rpcDefinitions,instances:{council:[\"councilCollective\"],technicalCommittee:[\"techCommitteeCollective\"]},types:[{minmax:[0,4],types:a},{minmax:[5,5],types:c},{minmax:[6,19],types:i},{minmax:[19,35],types:l},{minmax:[36,36],types:u},{minmax:[37,42],types:d},{minmax:[43,154],types:m},{minmax:[155,199],types:p},{minmax:[200,399],types:b},{minmax:[400,599],types:y},{minmax:[600,799],types:I},{minmax:[800,899],types:A},{minmax:[900,void 0],types:{ProxyType:{_enum:[\"Any\",\"NonTransfer\",\"Governance\",\"Staking\",\"CancelProxy\",\"Balances\",\"AuthorMapping\"]}}}]},n.moonbeamDefinitionsDeprecated=Object.assign(Object.assign({},n.moonbeamDefinitions),{types:[...n.moonbeamDefinitions.types,{minmax:[900,void 0],types:g}]}),n.typesBundlePre900={spec:{moonbeam:n.moonbeamDefinitions,moonbeamDefinitions:n.moonbeamDefinitions,moonbase:n.moonbeamDefinitions,moonriver:n.moonbeamDefinitions}},n.typesBundleDeprecated={spec:{moonbeam:n.moonbeamDefinitionsDeprecated,moonbeamDefinitions:n.moonbeamDefinitionsDeprecated,moonbase:n.moonbeamDefinitionsDeprecated,moonriver:n.moonbeamDefinitionsDeprecated}}}},n={};function t(a){var o=n[a];if(void 0!==o)return o.exports;var c=n[a]={exports:{}};return e[a].call(c.exports,c,c.exports,t),c.exports}var a={};(()=>{var e=a;Object.defineProperty(e,\"__esModule\",{value:!0});const n=t(3412);e.default={typesBundle:n.typesBundleDeprecated}})();var o=exports;for(var c in a)o[c]=a[c];a.__esModule&&Object.defineProperty(o,\"__esModule\",{value:!0})})();`;\n\ndescribe('load', () => {\n  it('throw error on incorrect format chain types', () => {\n    expect(() => parseChainTypes(jsChainTypesScript)).toThrow();\n  });\n\n  it.skip('can load yaml and json format chain types', () => {\n    expect(parseChainTypes(jsChainTypesScript)).not.toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/common-substrate/src/project/load.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {plainToClass} from 'class-transformer';\nimport {validateSync} from 'class-validator';\nimport {ChainTypes} from './models';\nimport {SubstrateProjectManifestVersioned, VersionedProjectManifest} from './versioned';\n\nexport function parseSubstrateProjectManifest(raw: unknown): SubstrateProjectManifestVersioned {\n  const projectManifest = new SubstrateProjectManifestVersioned(raw as VersionedProjectManifest);\n  projectManifest.validate();\n  return projectManifest;\n}\n\nexport function parseChainTypes(raw: unknown): ChainTypes {\n  const chainTypes = plainToClass(ChainTypes, raw);\n  if (\n    !!chainTypes.types ||\n    !!chainTypes.typesChain ||\n    !!chainTypes.typesBundle ||\n    !!chainTypes.typesAlias ||\n    !!chainTypes.typesSpec\n  ) {\n    const errors = validateSync(chainTypes, {whitelist: true, forbidNonWhitelisted: true});\n    if (errors?.length) {\n      // TODO: print error details\n      const errorMsgs = errors.map((e) => e.toString()).join('\\n');\n      throw new Error(`failed to parse chain types.\\n${errorMsgs}`);\n    }\n    return chainTypes;\n  } else {\n    throw new Error(`chainTypes is not valid`);\n  }\n}\n"
  },
  {
    "path": "packages/common-substrate/src/project/models.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {RegisteredTypes, RegistryTypes, OverrideModuleType, OverrideBundleType} from '@polkadot/types/types';\nimport {BaseDataSource, BlockFilterImpl, ProcessorImpl} from '@subql/common';\nimport {\n  SubstrateBlockFilter,\n  SubstrateBlockHandler,\n  SubstrateCallFilter,\n  SubstrateCallHandler,\n  SubstrateCustomHandler,\n  SubstrateDatasourceKind,\n  SubstrateEventFilter,\n  SubstrateEventHandler,\n  SubstrateHandlerKind,\n  SubstrateRuntimeDatasource,\n  SubstrateRuntimeHandler,\n  SubstrateCustomDatasource,\n} from '@subql/types';\nimport {BaseMapping, FileReference, Processor} from '@subql/types-core';\nimport {plainToClass, Transform, Type} from 'class-transformer';\nimport {\n  ArrayMaxSize,\n  IsArray,\n  IsBoolean,\n  IsEnum,\n  IsOptional,\n  IsString,\n  IsObject,\n  ValidateNested,\n} from 'class-validator';\n\nexport class BlockFilter extends BlockFilterImpl implements SubstrateBlockFilter {\n  @IsOptional()\n  @IsArray()\n  @ArrayMaxSize(2)\n  specVersion?: [number, number];\n}\n\nexport class EventFilter implements SubstrateEventFilter {\n  @IsOptional()\n  @IsString()\n  module?: string;\n  @IsOptional()\n  @IsString()\n  method?: string;\n}\n\nexport class ChainTypes implements RegisteredTypes {\n  @IsObject()\n  @IsOptional()\n  types?: RegistryTypes;\n  @IsObject()\n  @IsOptional()\n  typesAlias?: Record<string, OverrideModuleType>;\n  @IsObject()\n  @IsOptional()\n  typesBundle?: OverrideBundleType;\n  @IsObject()\n  @IsOptional()\n  typesChain?: Record<string, RegistryTypes>;\n  @IsObject()\n  @IsOptional()\n  typesSpec?: Record<string, RegistryTypes>;\n}\n\nexport class CallFilter extends EventFilter implements SubstrateCallFilter {\n  @IsOptional()\n  @IsBoolean()\n  success?: boolean;\n  @IsOptional()\n  @IsBoolean()\n  isSigned?: boolean;\n}\n\nexport class BlockHandler implements SubstrateBlockHandler {\n  @IsOptional()\n  @ValidateNested()\n  @Type(() => BlockFilter)\n  filter?: SubstrateBlockFilter;\n  @IsEnum(SubstrateHandlerKind, {groups: [SubstrateHandlerKind.Block]})\n  kind!: SubstrateHandlerKind.Block;\n  @IsString()\n  handler!: string;\n}\n\nexport class CallHandler implements SubstrateCallHandler {\n  @IsOptional()\n  @ValidateNested()\n  @Type(() => CallFilter)\n  filter?: SubstrateCallFilter;\n  @IsEnum(SubstrateHandlerKind, {groups: [SubstrateHandlerKind.Call]})\n  kind!: SubstrateHandlerKind.Call;\n  @IsString()\n  handler!: string;\n}\n\nexport class EventHandler implements SubstrateEventHandler {\n  @IsOptional()\n  @ValidateNested()\n  @Type(() => EventFilter)\n  filter?: SubstrateEventFilter;\n  @IsEnum(SubstrateHandlerKind, {groups: [SubstrateHandlerKind.Event]})\n  kind!: SubstrateHandlerKind.Event;\n  @IsString()\n  handler!: string;\n}\n\nexport class CustomHandler implements SubstrateCustomHandler {\n  @IsString()\n  kind!: string;\n  @IsString()\n  handler!: string;\n  @IsObject()\n  @IsOptional()\n  filter?: Record<string, unknown>;\n}\n\nexport class RuntimeMapping implements BaseMapping<SubstrateRuntimeHandler> {\n  @Transform((params) => {\n    const handlers: SubstrateRuntimeHandler[] = params.value;\n    return handlers.map((handler) => {\n      switch (handler.kind) {\n        case SubstrateHandlerKind.Event:\n          return plainToClass(EventHandler, handler);\n        case SubstrateHandlerKind.Call:\n          return plainToClass(CallHandler, handler);\n        case SubstrateHandlerKind.Block:\n          return plainToClass(BlockHandler, handler);\n        default:\n          throw new Error(`handler ${(handler as any).kind} not supported`);\n      }\n    });\n  })\n  @IsArray()\n  @ValidateNested()\n  handlers!: SubstrateRuntimeHandler[];\n  @IsString()\n  file!: string;\n}\n\nexport class CustomMapping implements BaseMapping<SubstrateCustomHandler> {\n  @IsArray()\n  @Type(() => CustomHandler)\n  @ValidateNested()\n  handlers!: CustomHandler[];\n  @IsString()\n  file!: string;\n}\n\nexport class RuntimeDataSourceBase extends BaseDataSource implements SubstrateRuntimeDatasource {\n  @IsEnum(SubstrateDatasourceKind, {groups: [SubstrateDatasourceKind.Runtime]})\n  kind!: SubstrateDatasourceKind.Runtime;\n  @Type(() => RuntimeMapping)\n  @ValidateNested()\n  mapping!: RuntimeMapping;\n}\n\nexport class FileReferenceImpl implements FileReference {\n  @IsString()\n  file!: string;\n}\n\nexport class CustomDataSourceBase<K extends string, M extends CustomMapping, O = any>\n  extends BaseDataSource\n  implements SubstrateCustomDatasource<K, M, O>\n{\n  @IsString()\n  kind!: K;\n  @Type(() => CustomMapping)\n  @ValidateNested()\n  mapping!: M;\n  @Type(() => FileReferenceImpl)\n  @ValidateNested({each: true})\n  assets!: Map<string, FileReference>;\n  @Type(() => ProcessorImpl)\n  @IsObject()\n  @ValidateNested()\n  processor!: Processor<O>;\n}\n"
  },
  {
    "path": "packages/common-substrate/src/project/project.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport {\n  getManifestPath,\n  loadFromJsonOrYaml,\n  RunnerQueryBaseModel,\n  SemverVersionValidator,\n  toJsonObject,\n} from '@subql/common';\nimport {validateSync} from 'class-validator';\nimport {DeploymentV1_0_0, SubstrateRunnerNodeImpl, SubstrateRunnerSpecsImpl} from '../project/versioned/v1_0_0';\nimport {SubstrateProjectManifestVersioned, VersionedProjectManifest} from './versioned';\n\nconst projectsDir = path.join(__dirname, '../../test');\n\nfunction loadSubstrateProjectManifest(file: string): SubstrateProjectManifestVersioned {\n  const doc = loadFromJsonOrYaml(getManifestPath(file));\n  const projectManifest = new SubstrateProjectManifestVersioned(doc as VersionedProjectManifest);\n  projectManifest.validate();\n  return projectManifest;\n}\n\ndescribe('project.yaml', () => {\n  it('can validate project.yaml', () => {\n    expect(() => loadSubstrateProjectManifest(path.join(projectsDir, 'project_falsy.yaml'))).toThrow();\n    expect(() => loadSubstrateProjectManifest(path.join(projectsDir, 'project_falsy_array.yaml'))).toThrow();\n  });\n\n  it('can fail validation if version not supported', () => {\n    expect(() => loadSubstrateProjectManifest(path.join(projectsDir, 'project_invalid_version.yaml'))).toThrow();\n  });\n  it('can validate a v1.0.0 project.yaml with a custom data source', () => {\n    expect(() => loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0_custom_ds.yaml'))).not.toThrow();\n  });\n  it('can validate a v1.0.0 project.yaml with templates', () => {\n    expect(() => loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml'))).not.toThrow();\n  });\n\n  it('can convert genesis hash in v1.0.0 to chainId in deployment', () => {\n    const deployment = loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml')).asV1_0_0.deployment;\n    expect(deployment.network.chainId).not.toBeNull();\n  });\n\n  it('can get chainId for deployment', () => {\n    const deployment = loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0_chainId.yaml')).asV1_0_0\n      .deployment;\n    expect(deployment.network.chainId).toBe('moonbeamChainId');\n  });\n\n  it('can get runner options for deployment', () => {\n    const deployment = loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0_node_options.yaml')).asV1_0_0\n      .deployment;\n    expect(deployment.runner.node.options?.unsafe).toBeTruthy();\n  });\n\n  it('can validate deployment runner versions', () => {\n    const deployment = new DeploymentV1_0_0();\n    const nodeImp = new SubstrateRunnerNodeImpl();\n    const queryImp = new RunnerQueryBaseModel();\n    deployment.specVersion = '1.0.0';\n    deployment.runner = new SubstrateRunnerSpecsImpl();\n\n    nodeImp.name = '@subql/node';\n    nodeImp.version = '0.29.1';\n    deployment.runner.node = nodeImp;\n\n    queryImp.name = '@subql/query';\n    queryImp.version = '0.213.1';\n\n    deployment.runner.query = queryImp;\n\n    validateSync(deployment.runner, {whitelist: true, forbidNonWhitelisted: true});\n  });\n\n  it('can validate bypass blocks', () => {\n    const deployment = loadSubstrateProjectManifest(path.join(projectsDir, 'project_bypass.yaml')).asV1_0_0.deployment;\n    const range_deployment = loadSubstrateProjectManifest(path.join(projectsDir, 'project_bypass_range.yaml')).asV1_0_0\n      .deployment;\n\n    expect(deployment.network.bypassBlocks).not.toBeNull();\n    expect(range_deployment.network.bypassBlocks).not.toBeNull();\n\n    expect(() => loadSubstrateProjectManifest(path.join(projectsDir, 'project_bypass.yaml'))).not.toThrow();\n    expect(() => loadSubstrateProjectManifest(path.join(projectsDir, 'project_bypass_range.yaml'))).not.toThrow();\n  });\n\n  it('can validate a v1.0.0 project.yaml with unsupported runner node', () => {\n    expect(() => loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0_bad_runner.yaml'))).toThrow();\n  });\n\n  it('can throw error with unsupported runner version', () => {\n    expect(() =>\n      loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0_bad_runner_version.yaml'))\n    ).toThrow();\n  });\n\n  it('can validate a v1.0.0 project.yaml runner and datasource mismatches', () => {\n    expect(() =>\n      loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0_runner_ds_mismatch.yaml'))\n    ).toThrow();\n  });\n\n  it('can fail validation if custom ds missing processor', () => {\n    expect(() =>\n      loadSubstrateProjectManifest(path.join(projectsDir, 'project_0.2.0_invalid_custom_ds.yaml'))\n    ).toThrow();\n  });\n\n  it('can convert project with assets to deployment', () => {\n    const manifest = loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml'));\n    expect(manifest.isV1_0_0).toBeTruthy();\n    expect(() => manifest.toDeployment()).not.toThrow();\n  });\n\n  it('validate versions', () => {\n    const checkVersion = new SemverVersionValidator();\n    // Versions\n    expect(checkVersion.validate('*')).toBeTruthy();\n    expect(checkVersion.validate('0.0.0')).toBeTruthy();\n    expect(checkVersion.validate('0.1.0')).toBeTruthy();\n    expect(checkVersion.validate('1.2.0')).toBeTruthy();\n    expect(checkVersion.validate('^0.0.0')).toBeTruthy();\n    expect(checkVersion.validate('>=0.1.0')).toBeTruthy();\n    expect(checkVersion.validate('<0.1.1-1')).toBeTruthy();\n    expect(checkVersion.validate('>=1.2.0')).toBeTruthy();\n    expect(checkVersion.validate('~1.2.0-1')).toBeTruthy();\n    expect(checkVersion.validate('>=1.2.0-abc')).toBeTruthy();\n\n    expect(checkVersion.validate('0.1.1-1')).toBeFalsy();\n    expect(checkVersion.validate('1.2.0-1')).toBeFalsy();\n    expect(checkVersion.validate('1.2.0-abc')).toBeFalsy();\n    expect(checkVersion.validate('~')).toBeFalsy();\n    expect(checkVersion.validate('latest')).toBeFalsy();\n    expect(checkVersion.validate('dev')).toBeFalsy();\n  });\n\n  it('Preserve Map content on deployment', () => {\n    const manifest = loadSubstrateProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml'));\n\n    expect((toJsonObject(manifest.asImpl.deployment.dataSources[0]) as any).assets).toEqual({\n      settings: {\n        file: './src/settings.abi.json',\n      },\n    });\n  });\n});\n"
  },
  {
    "path": "packages/common-substrate/src/project/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {SubstrateDatasource} from '@subql/types';\nimport {IProjectManifest} from '@subql/types-core';\n\n// All of these used to be redefined in this file, re-exporting for simplicity\nexport {\n  SubstrateRuntimeHandler,\n  SubstrateCustomHandler,\n  SubstrateHandler,\n  SubstrateHandlerKind,\n  SubstrateDatasource as SubstrateDataSource,\n  SubstrateCustomDatasource as SubstrateCustomDataSource,\n  SubstrateBlockFilter,\n  SubstrateCallFilter,\n  SubstrateEventFilter,\n  SubstrateDatasourceProcessor,\n  SubstrateRuntimeHandlerFilter,\n  SubstrateDatasourceKind,\n  RuntimeHandlerInputMap as SubstrateRuntimeHandlerInputMap,\n} from '@subql/types';\n\n//make exception for runtime datasource 0.0.1\nexport type ISubstrateProjectManifest = IProjectManifest<SubstrateDatasource>;\n"
  },
  {
    "path": "packages/common-substrate/src/project/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n  SecondLayerHandlerProcessor,\n  SubstrateCustomDatasource,\n  SubstrateDatasource,\n  SubstrateDatasourceKind,\n  SubstrateHandlerKind,\n  SubstrateRuntimeDatasource,\n  SubstrateMapping,\n  SubstrateCustomHandler,\n  SecondLayerHandlerProcessorArray,\n} from '@subql/types';\nimport {BaseTemplateDataSource} from '@subql/types-core';\n\nexport function isBlockHandlerProcessor<F extends Record<string, unknown>, E>(\n  hp: SecondLayerHandlerProcessorArray<SubstrateHandlerKind, F, unknown>\n): hp is SecondLayerHandlerProcessor<SubstrateHandlerKind.Block, F, E> {\n  return hp.baseHandlerKind === SubstrateHandlerKind.Block;\n}\n\nexport function isEventHandlerProcessor<F extends Record<string, unknown>, E>(\n  hp: SecondLayerHandlerProcessorArray<SubstrateHandlerKind, F, unknown>\n): hp is SecondLayerHandlerProcessor<SubstrateHandlerKind.Event, F, E> {\n  return hp.baseHandlerKind === SubstrateHandlerKind.Event;\n}\n\nexport function isCallHandlerProcessor<F extends Record<string, unknown>, E>(\n  hp: SecondLayerHandlerProcessorArray<SubstrateHandlerKind, F, unknown>\n): hp is SecondLayerHandlerProcessor<SubstrateHandlerKind.Call, F, E> {\n  return hp.baseHandlerKind === SubstrateHandlerKind.Call;\n}\n\nexport function isCustomDs<F extends SubstrateMapping<SubstrateCustomHandler>>(\n  ds: SubstrateDatasource | BaseTemplateDataSource<SubstrateDatasource>\n): ds is SubstrateCustomDatasource<string, F> {\n  return ds.kind !== SubstrateDatasourceKind.Runtime && !!(ds as SubstrateCustomDatasource<string, F>).processor;\n}\n\nexport function isRuntimeDs(\n  ds: SubstrateDatasource | BaseTemplateDataSource<SubstrateDatasource>\n): ds is SubstrateRuntimeDatasource {\n  return ds.kind === SubstrateDatasourceKind.Runtime;\n}\n"
  },
  {
    "path": "packages/common-substrate/src/project/versioned/ProjectManifestVersioned.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {SubstrateDatasource} from '@subql/types';\nimport {plainToClass} from 'class-transformer';\nimport {ISubstrateProjectManifest} from '../types';\nimport {ProjectManifestV1_0_0Impl} from './v1_0_0';\nexport type VersionedProjectManifest = {specVersion: string};\n\n/* Retain support for all versions here to continue support for migrations */\nconst SUBSTRATE_SUPPORTED_VERSIONS = {\n  '1.0.0': ProjectManifestV1_0_0Impl,\n};\n\ntype Versions = keyof typeof SUBSTRATE_SUPPORTED_VERSIONS;\n\nexport type ProjectManifestImpls = InstanceType<(typeof SUBSTRATE_SUPPORTED_VERSIONS)[Versions]>;\n\nexport function manifestIsV1_0_0(manifest: ISubstrateProjectManifest): manifest is ProjectManifestV1_0_0Impl {\n  return manifest.specVersion === '1.0.0';\n}\n\nexport class SubstrateProjectManifestVersioned implements ISubstrateProjectManifest {\n  private _impl: ProjectManifestImpls;\n\n  constructor(projectManifest: VersionedProjectManifest) {\n    const klass = SUBSTRATE_SUPPORTED_VERSIONS[projectManifest.specVersion as Versions];\n    if (!klass) {\n      throw new Error('specVersion not supported for project manifest file');\n    }\n    this._impl = plainToClass<ProjectManifestImpls, VersionedProjectManifest>(klass, projectManifest);\n  }\n\n  get asImpl(): ProjectManifestImpls {\n    return this._impl;\n  }\n\n  get isV1_0_0(): boolean {\n    return this.specVersion === '1.0.0';\n  }\n\n  get asV1_0_0(): ProjectManifestV1_0_0Impl {\n    return this._impl as ProjectManifestV1_0_0Impl;\n  }\n\n  toDeployment(): string {\n    return this._impl.deployment.toYaml();\n  }\n\n  validate(): void {\n    return this._impl.validate();\n  }\n\n  get dataSources(): SubstrateDatasource[] {\n    return this._impl.dataSources;\n  }\n\n  get schema(): string {\n    return this._impl.schema.file;\n  }\n\n  get specVersion(): string {\n    return this._impl.specVersion;\n  }\n\n  get description(): string | undefined {\n    return this._impl.description;\n  }\n\n  get repository(): string | undefined {\n    return this._impl.repository;\n  }\n}\n"
  },
  {
    "path": "packages/common-substrate/src/project/versioned/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './ProjectManifestVersioned';\nexport * from './v1_0_0';\n"
  },
  {
    "path": "packages/common-substrate/src/project/versioned/v1_0_0/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './model';\n"
  },
  {
    "path": "packages/common-substrate/src/project/versioned/v1_0_0/model.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n  BaseDeploymentV1_0_0,\n  FileType,\n  ParentProjectModel,\n  ProjectManifestBaseImpl,\n  RunnerNodeImpl,\n  RunnerQueryBaseModel,\n  validateObject,\n  CommonProjectNetworkV1_0_0,\n} from '@subql/common';\nimport {\n  SubstrateCustomDatasource,\n  SubstrateRuntimeDatasource,\n  CustomDatasourceTemplate,\n  RuntimeDatasourceTemplate,\n  SubstrateProjectManifestV1_0_0,\n} from '@subql/types';\nimport {BaseMapping, NodeSpec, ParentProject, QuerySpec, RunnerSpecs} from '@subql/types-core';\nimport {plainToInstance, Transform, TransformFnParams, Type} from 'class-transformer';\nimport {Equals, IsArray, IsNotEmpty, IsObject, IsOptional, IsString, ValidateNested} from 'class-validator';\nimport {CustomDataSourceBase, RuntimeDataSourceBase} from '../../models';\n\nconst SUBSTRATE_NODE_NAME = `@subql/node`;\n\nexport class SubstrateRunnerNodeImpl extends RunnerNodeImpl {\n  @Equals(SUBSTRATE_NODE_NAME, {message: `Runner Substrate node name incorrect, suppose be '${SUBSTRATE_NODE_NAME}'`})\n  name: string = SUBSTRATE_NODE_NAME;\n}\n\nexport class SubstrateRuntimeDataSourceImpl extends RuntimeDataSourceBase implements SubstrateRuntimeDatasource {\n  validate(): void {\n    return validateObject(this, 'failed to validate runtime datasource.');\n  }\n}\n\nexport class SubstrateCustomDataSourceImpl<K extends string = string, M extends BaseMapping<any> = BaseMapping<any>>\n  extends CustomDataSourceBase<K, M>\n  implements SubstrateCustomDatasource<K, M>\n{\n  validate(): void {\n    return validateObject(this, 'failed to validate custom datasource.');\n  }\n}\n\nexport class RuntimeDatasourceTemplateImpl extends SubstrateRuntimeDataSourceImpl implements RuntimeDatasourceTemplate {\n  @IsString()\n  name!: string;\n}\n\nexport class CustomDatasourceTemplateImpl extends SubstrateCustomDataSourceImpl implements CustomDatasourceTemplate {\n  @IsString()\n  name!: string;\n}\n\nexport class SubstrateRunnerSpecsImpl implements RunnerSpecs {\n  @IsObject()\n  @ValidateNested()\n  @Type(() => SubstrateRunnerNodeImpl)\n  node!: NodeSpec;\n  @IsObject()\n  @ValidateNested()\n  @Type(() => RunnerQueryBaseModel)\n  query!: QuerySpec;\n}\n\n// ChainTypes is different with other network\nexport class ProjectNetworkDeploymentV1_0_0 {\n  @IsNotEmpty()\n  @Transform(({value}: TransformFnParams) => value.trim())\n  @IsString()\n  chainId!: string;\n  @ValidateNested()\n  @Type(() => FileType)\n  @IsOptional()\n  chaintypes?: FileType = undefined;\n  @IsOptional()\n  @IsArray()\n  bypassBlocks?: (number | string)[];\n}\n\nexport class ProjectNetworkV1_0_0 extends CommonProjectNetworkV1_0_0<FileType> {\n  @Type(() => FileType)\n  @IsOptional()\n  chaintypes?: FileType = undefined;\n}\n\nexport class DeploymentV1_0_0 extends BaseDeploymentV1_0_0 {\n  @Transform((params) => {\n    if (params.value.genesisHash && !params.value.chainId) {\n      params.value.chainId = params.value.genesisHash;\n    }\n    return plainToInstance(ProjectNetworkDeploymentV1_0_0, params.value);\n  })\n  @ValidateNested()\n  @Type(() => ProjectNetworkDeploymentV1_0_0)\n  network!: ProjectNetworkDeploymentV1_0_0;\n  @IsObject()\n  @ValidateNested()\n  @Type(() => SubstrateRunnerSpecsImpl)\n  runner!: RunnerSpecs;\n  @IsArray()\n  @ValidateNested()\n  @Type(() => SubstrateCustomDataSourceImpl, {\n    discriminator: {\n      property: 'kind',\n      subTypes: [{value: SubstrateRuntimeDataSourceImpl, name: 'substrate/Runtime'}],\n    },\n    keepDiscriminatorProperty: true,\n  })\n  dataSources!: (SubstrateRuntimeDatasource | SubstrateCustomDatasource)[];\n  @IsOptional()\n  @IsArray()\n  @ValidateNested()\n  @Type(() => CustomDatasourceTemplateImpl, {\n    discriminator: {\n      property: 'kind',\n      subTypes: [{value: RuntimeDatasourceTemplateImpl, name: 'substrate/Runtime'}],\n    },\n    keepDiscriminatorProperty: true,\n  })\n  templates?: (RuntimeDatasourceTemplate | CustomDatasourceTemplate)[];\n}\n\nexport class ProjectManifestV1_0_0Impl\n  extends ProjectManifestBaseImpl<DeploymentV1_0_0>\n  implements SubstrateProjectManifestV1_0_0\n{\n  constructor() {\n    super(DeploymentV1_0_0);\n  }\n\n  @Equals('1.0.0')\n  specVersion = '1.0.0';\n  @Type(() => SubstrateCustomDataSourceImpl, {\n    discriminator: {\n      property: 'kind',\n      subTypes: [{value: SubstrateRuntimeDataSourceImpl, name: 'substrate/Runtime'}],\n    },\n    keepDiscriminatorProperty: true,\n  })\n  dataSources!: (SubstrateRuntimeDatasource | SubstrateCustomDatasource)[];\n  @Type(() => ProjectNetworkV1_0_0)\n  network!: ProjectNetworkV1_0_0;\n  @IsOptional()\n  @IsString()\n  name?: string;\n  @IsString()\n  version!: string;\n  @ValidateNested()\n  @Type(() => FileType)\n  schema!: FileType;\n  @IsOptional()\n  @IsArray()\n  @ValidateNested()\n  @Type(() => CustomDatasourceTemplateImpl, {\n    discriminator: {\n      property: 'kind',\n      subTypes: [{value: RuntimeDatasourceTemplateImpl, name: 'substrate/Runtime'}],\n    },\n    keepDiscriminatorProperty: true,\n  })\n  templates?: (RuntimeDatasourceTemplate | CustomDatasourceTemplate)[];\n  @IsObject()\n  @ValidateNested()\n  @Type(() => SubstrateRunnerSpecsImpl)\n  runner!: RunnerSpecs;\n\n  @IsOptional()\n  @IsObject()\n  @Type(() => ParentProjectModel)\n  parent?: ParentProject;\n}\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: '0.28.0'\n  query:\n    name: '@subql/query'\n    version: '^0.12.0'\nschema:\n  file: ./schema.graphql\nnetwork:\n  # genesisHash: '0x956876d5b80e47e523a6629b3c3ac3e42f2850ad12e236d87a0aaac87c9f6bc9' # Moonriver\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - kind: substrate/Moonbeam\n    startBlock: 1358833\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: settings\n        address: '0xde030fC2b42AE2438B32506ECf63B2f3c1665579'\n    assets:\n      settings:\n        file: ./src/settings.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleUpdateSettings\n          kind: substrate/MoonbeamCall\n          filter:\n            function: setAllAddresses(address _sqToken,address _staking,address _indexerRegistry,address _queryRegistry) # add \",address _serviceAgreementRegistry\" in later versions\n\ntemplates:\n  - name: QueryRegistry\n    kind: substrate/Moonbeam\n    startBlock: 1358829\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: queryRegistry\n        # address: '0xB0b3f6bc7a8E0bCb2aa1Cd2Ae2dE56fbdA3c0651'\n    assets:\n      queryRegistry:\n        file: ./src/queryRegistry.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleNewQuery\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - CreateQuery(uint256 queryId, address creator, bytes32 metadata, bytes32 deploymentId, bytes32 version)\n        - handler: handleUpdateQueryMetadata\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryMetadata(address owner, uint256 queryId, bytes32 metadata)\n        - handler: handleUpdateQueryDeployment\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryDeployment(address owner, uint256 queryId, bytes32 deploymentId, bytes32 version)\n        - handler: handleStartIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StartIndexing(address indexer, bytes32 deploymentId)\n        - handler: handleIndexingUpdate\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateDeploymentStatus(address indexer, bytes32 deploymentId, uint256 blockheight, bytes32 mmrRoot, uint256 timestamp)\n        - handler: handleIndexingReady\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateIndexingStatusToReady(address indexer, bytes32 deploymentId, uint256 _timestamp)\n        - handler: handleStopIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StopIndexing(address indexer, bytes32 deploymentId)\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0_bad_processor.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: '0.28.0'\n  query:\n    name: '@subql/query'\n    version: '^0.12.0'\nschema:\n  file: ./schema.graphql\nnetwork:\n  # genesisHash: '0x956876d5b80e47e523a6629b3c3ac3e42f2850ad12e236d87a0aaac87c9f6bc9' # Moonriver\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - kind: substrate/Moonbeam\n    startBlock: 1358833\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      something:\n        unexpected: 'should throw'\n      options:\n        abi: settings\n        address: '0xde030fC2b42AE2438B32506ECf63B2f3c1665579'\n    assets:\n      settings:\n        file: ./src/settings.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleUpdateSettings\n          kind: substrate/MoonbeamCall\n          filter:\n            function: setAllAddresses(address _sqToken,address _staking,address _indexerRegistry,address _queryRegistry) # add \",address _serviceAgreementRegistry\" in later versions\n\ntemplates:\n  - name: QueryRegistry\n    kind: substrate/Moonbeam\n    startBlock: 1358829\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: queryRegistry\n        # address: '0xB0b3f6bc7a8E0bCb2aa1Cd2Ae2dE56fbdA3c0651'\n    assets:\n      queryRegistry:\n        file: ./src/queryRegistry.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleNewQuery\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - CreateQuery(uint256 queryId, address creator, bytes32 metadata, bytes32 deploymentId, bytes32 version)\n        - handler: handleUpdateQueryMetadata\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryMetadata(address owner, uint256 queryId, bytes32 metadata)\n        - handler: handleUpdateQueryDeployment\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryDeployment(address owner, uint256 queryId, bytes32 deploymentId, bytes32 version)\n        - handler: handleStartIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StartIndexing(address indexer, bytes32 deploymentId)\n        - handler: handleIndexingUpdate\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateDeploymentStatus(address indexer, bytes32 deploymentId, uint256 blockheight, bytes32 mmrRoot, uint256 timestamp)\n        - handler: handleIndexingReady\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateIndexingStatusToReady(address indexer, bytes32 deploymentId, uint256 _timestamp)\n        - handler: handleStopIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StopIndexing(address indexer, bytes32 deploymentId)\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0_bad_runner.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/terra-node'\n    version: ^0.30.0\n  query:\n    name: '@subql/query'\n    version: ^0.12.0\nschema:\n  file: ./schema.graphql\nnetwork:\n  # genesisHash: '0x956876d5b80e47e523a6629b3c3ac3e42f2850ad12e236d87a0aaac87c9f6bc9' # Moonriver\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - kind: substrate/Moonbeam\n    startBlock: 1358833\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: settings\n        address: '0xde030fC2b42AE2438B32506ECf63B2f3c1665579'\n    assets:\n      settings:\n        file: ./src/settings.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleUpdateSettings\n          kind: substrate/MoonbeamCall\n          filter:\n            function: setAllAddresses(address _sqToken,address _staking,address _indexerRegistry,address _queryRegistry) # add \",address _serviceAgreementRegistry\" in later versions\n\ntemplates:\n  - name: QueryRegistry\n    kind: substrate/Moonbeam\n    startBlock: 1358829\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: queryRegistry\n        # address: '0xB0b3f6bc7a8E0bCb2aa1Cd2Ae2dE56fbdA3c0651'\n    assets:\n      queryRegistry:\n        file: ./src/queryRegistry.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleNewQuery\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - CreateQuery(uint256 queryId, address creator, bytes32 metadata, bytes32 deploymentId, bytes32 version)\n        - handler: handleUpdateQueryMetadata\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryMetadata(address owner, uint256 queryId, bytes32 metadata)\n        - handler: handleUpdateQueryDeployment\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryDeployment(address owner, uint256 queryId, bytes32 deploymentId, bytes32 version)\n        - handler: handleStartIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StartIndexing(address indexer, bytes32 deploymentId)\n        - handler: handleIndexingUpdate\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateDeploymentStatus(address indexer, bytes32 deploymentId, uint256 blockheight, bytes32 mmrRoot, uint256 timestamp)\n        - handler: handleIndexingReady\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateIndexingStatusToReady(address indexer, bytes32 deploymentId, uint256 _timestamp)\n        - handler: handleStopIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StopIndexing(address indexer, bytes32 deploymentId)\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0_bad_runner_version.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: 'dev' #should not support\n  query:\n    name: '@subql/query'\n    version: 'latest' #should not support\nschema:\n  file: ./schema.graphql\nnetwork:\n  # genesisHash: '0x956876d5b80e47e523a6629b3c3ac3e42f2850ad12e236d87a0aaac87c9f6bc9' # Moonriver\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - kind: substrate/Moonbeam\n    startBlock: 1358833\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: settings\n        address: '0xde030fC2b42AE2438B32506ECf63B2f3c1665579'\n    assets:\n      settings:\n        file: ./src/settings.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleUpdateSettings\n          kind: substrate/MoonbeamCall\n          filter:\n            function: setAllAddresses(address _sqToken,address _staking,address _indexerRegistry,address _queryRegistry) # add \",address _serviceAgreementRegistry\" in later versions\n\ntemplates:\n  - name: QueryRegistry\n    kind: substrate/Moonbeam\n    startBlock: 1358829\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: queryRegistry\n        # address: '0xB0b3f6bc7a8E0bCb2aa1Cd2Ae2dE56fbdA3c0651'\n    assets:\n      queryRegistry:\n        file: ./src/queryRegistry.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleNewQuery\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - CreateQuery(uint256 queryId, address creator, bytes32 metadata, bytes32 deploymentId, bytes32 version)\n        - handler: handleUpdateQueryMetadata\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryMetadata(address owner, uint256 queryId, bytes32 metadata)\n        - handler: handleUpdateQueryDeployment\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryDeployment(address owner, uint256 queryId, bytes32 deploymentId, bytes32 version)\n        - handler: handleStartIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StartIndexing(address indexer, bytes32 deploymentId)\n        - handler: handleIndexingUpdate\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateDeploymentStatus(address indexer, bytes32 deploymentId, uint256 blockheight, bytes32 mmrRoot, uint256 timestamp)\n        - handler: handleIndexingReady\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateIndexingStatusToReady(address indexer, bytes32 deploymentId, uint256 _timestamp)\n        - handler: handleStopIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StopIndexing(address indexer, bytes32 deploymentId)\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0_chainId.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: 0.28.0\n  query:\n    name: '@subql/query'\n    version: ^0.12.0\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: 'moonbeamChainId'\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - kind: substrate/Moonbeam\n    startBlock: 1358833\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: settings\n        address: '0xde030fC2b42AE2438B32506ECf63B2f3c1665579'\n    assets:\n      settings:\n        file: ./src/settings.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleUpdateSettings\n          kind: substrate/MoonbeamCall\n          filter:\n            function: setAllAddresses(address _sqToken,address _staking,address _indexerRegistry,address _queryRegistry) # add \",address _serviceAgreementRegistry\" in later versions\n\ntemplates:\n  - name: QueryRegistry\n    kind: substrate/Moonbeam\n    startBlock: 1358829\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: queryRegistry\n        # address: '0xB0b3f6bc7a8E0bCb2aa1Cd2Ae2dE56fbdA3c0651'\n    assets:\n      queryRegistry:\n        file: ./src/queryRegistry.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleNewQuery\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - CreateQuery(uint256 queryId, address creator, bytes32 metadata, bytes32 deploymentId, bytes32 version)\n        - handler: handleUpdateQueryMetadata\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryMetadata(address owner, uint256 queryId, bytes32 metadata)\n        - handler: handleUpdateQueryDeployment\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryDeployment(address owner, uint256 queryId, bytes32 deploymentId, bytes32 version)\n        - handler: handleStartIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StartIndexing(address indexer, bytes32 deploymentId)\n        - handler: handleIndexingUpdate\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateDeploymentStatus(address indexer, bytes32 deploymentId, uint256 blockheight, bytes32 mmrRoot, uint256 timestamp)\n        - handler: handleIndexingReady\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateIndexingStatusToReady(address indexer, bytes32 deploymentId, uint256 _timestamp)\n        - handler: handleStopIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StopIndexing(address indexer, bytes32 deploymentId)\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0_custom_ds.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: '0.28.0'\n  query:\n    name: '@subql/query'\n    version: '^0.12.0'\nschema:\n  file: ./schema.graphql\nnetwork:\n  # genesisHash: '0x956876d5b80e47e523a6629b3c3ac3e42f2850ad12e236d87a0aaac87c9f6bc9' # Moonriver\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - kind: substrate/FrontierEvm\n    startBlock: 171658\n    processor:\n      file: './node_modules/@subql/frontier-evm-processor/dist/index.js'\n    mapping:\n      file: './dist/index.js'\n      handlers:\n        - handler: handleTransaction\n          kind: substrate/FrontierEvmCall\n          filter:\n            function: '0x60806040'\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0_falsy.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: '0.28.0'\n  query:\n    name: '@subql/query'\n    version: '^0.12.0'\nschema:\n  file: ./schema.graphql\nnetwork:\n  # genesisHash: '0x956876d5b80e47e523a6629b3c3ac3e42f2850ad12e236d87a0aaac87c9f6bc9' # Moonriver\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - name: main\n    kind: substrate/SmartContract\n    mapping:\n      handlers:\n        - handler: handleBlock\n          kind: substrate/XXXHandler\n          filter:\n            module: xxx\n        - name: handleEvent\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0_falsy_array.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: '0.28.0'\n  query:\n    name: '@subql/query'\n    version: '^0.12.0'\nschema:\n  file: ./schema.graphql\nnetwork:\n  # genesisHash: '0x956876d5b80e47e523a6629b3c3ac3e42f2850ad12e236d87a0aaac87c9f6bc9' # Moonriver\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - name: main\n    kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n          filter:\n            specVersion: [23, 24]\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0_node_options.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: 0.28.0\n    options:\n      historical: true\n      unsafe: true\n  query:\n    name: '@subql/query'\n    version: ^0.12.0\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: 'moonbeamChainId'\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - kind: substrate/Moonbeam\n    startBlock: 1358833\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: settings\n        address: '0xde030fC2b42AE2438B32506ECf63B2f3c1665579'\n    assets:\n      settings:\n        file: ./src/settings.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleUpdateSettings\n          kind: substrate/MoonbeamCall\n          filter:\n            function: setAllAddresses(address _sqToken,address _staking,address _indexerRegistry,address _queryRegistry) # add \",address _serviceAgreementRegistry\" in later versions\n\ntemplates:\n  - name: QueryRegistry\n    kind: substrate/Moonbeam\n    startBlock: 1358829\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: queryRegistry\n        # address: '0xB0b3f6bc7a8E0bCb2aa1Cd2Ae2dE56fbdA3c0651'\n    assets:\n      queryRegistry:\n        file: ./src/queryRegistry.abi.json\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleNewQuery\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - CreateQuery(uint256 queryId, address creator, bytes32 metadata, bytes32 deploymentId, bytes32 version)\n        - handler: handleUpdateQueryMetadata\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryMetadata(address owner, uint256 queryId, bytes32 metadata)\n        - handler: handleUpdateQueryDeployment\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryDeployment(address owner, uint256 queryId, bytes32 deploymentId, bytes32 version)\n        - handler: handleStartIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StartIndexing(address indexer, bytes32 deploymentId)\n        - handler: handleIndexingUpdate\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateDeploymentStatus(address indexer, bytes32 deploymentId, uint256 blockheight, bytes32 mmrRoot, uint256 timestamp)\n        - handler: handleIndexingReady\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateIndexingStatusToReady(address indexer, bytes32 deploymentId, uint256 _timestamp)\n        - handler: handleStopIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StopIndexing(address indexer, bytes32 deploymentId)\n"
  },
  {
    "path": "packages/common-substrate/test/project_1.0.0_runner_ds_mismatch.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: ^0.30.0\n  query:\n    name: '@subql/query'\n    version: ^0.12.0\nschema:\n  file: ./schema.graphql\nnetwork:\n  # genesisHash: '0x956876d5b80e47e523a6629b3c3ac3e42f2850ad12e236d87a0aaac87c9f6bc9' # Moonriver\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - kind: terra/Runtime\n    startBlock: 6694554\n    mapping:\n      file: './dist/index.js'\n      handlers:\n        - handler: handleBlock\n          kind: terra/BlockHandler\n        - handler: handleEvent\n          kind: terra/EventHandler\n          filter:\n            type: transfer\n"
  },
  {
    "path": "packages/common-substrate/test/project_bypass.yaml",
    "content": "specVersion: 1.0.0\nname: polkadot-starter\nversion: 0.0.1\nrunner:\n  node:\n    name: '@subql/node'\n    version: '*'\n  query:\n    name: '@subql/query'\n    version: '*'\ndescription: >-\n  This project can be used as a starting point for developing your SubQuery\n  project\nrepository: 'https://github.com/subquery/subql-starter'\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  dictionary: 'https://api.subquery.network/sq/subquery/polkadot-dictionary'\n  bypassBlocks: [1, 2, 4, 5]\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter:\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/common-substrate/test/project_bypass_range.yaml",
    "content": "specVersion: 1.0.0\nname: polkadot-starter\nversion: 0.0.1\nrunner:\n  node:\n    name: '@subql/node'\n    version: '*'\n  query:\n    name: '@subql/query'\n    version: '*'\ndescription: >-\n  This project can be used as a starting point for developing your SubQuery\n  project\nrepository: 'https://github.com/subquery/subql-starter'\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  dictionary: 'https://api.subquery.network/sq/subquery/polkadot-dictionary'\n  bypassBlocks: [1, 2, 4, 5, '10 - 40']\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: ./dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter:\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/common-substrate/test/project_invalid_version.yaml",
    "content": "# project.yaml\nspecVersion: '0.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  chaintypes:\n    file: ./types.json\n\ndataSources:\n  - name: main\n    kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/common-substrate/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"rootDir\": \"src\",\n    \"tsBuildInfoFile\": \"dist/.tsbuildinfo\",\n    \"outDir\": \"dist\",\n    \"noImplicitAny\": true\n  },\n  \"references\": [{\"path\": \"../types\"}, {\"path\": \"../common\"}],\n  \"include\": [\"src/**/*\"]\n}\n"
  },
  {
    "path": "packages/node/.gitignore",
    "content": "# compiled output\n/dist\n/node_modules\n\n# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\nlerna-debug.log*\n\n# OS\n.DS_Store\n\n# Tests\n/coverage\n/.nyc_output\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json"
  },
  {
    "path": "packages/node/.prettierrc",
    "content": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "packages/node/.trigger",
    "content": "0.8.1\n"
  },
  {
    "path": "packages/node/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [6.4.6] - 2025-11-26\n### Fixed\n- skipTransactions combined with workers throwing an error getting the block timestamp (#2978)\n\n## [6.4.5] - 2025-11-25\n### Fixed\n- Updating models updateOnDuplicate field being calculated incorrectly (#2976)\n\n## [6.4.4] - 2025-11-20\n### Fixed\n- POI issues with array fields (#2972)\n\n## [6.4.3] - 2025-11-05\n### Fixed\n- Lock down VM2 version to avoid a breaking change (#2959)\n\n## [6.4.2] - 2025-10-22\n### Changed\n- Update `@subql/common-substrate`\n\n## [6.4.0] - 2025-10-15\n### Changed\n- Minor improvements and fixes from upgrading to eslint 9 with stricter settings (#2929)\n\n## [6.3.5] - 2025-09-16\n### Changed\n- Locked down graphql related dependencies (#2876)\n- Update polkadot dependenices (#2915)\n\n## [6.3.4] - 2025-09-09\n### Fixed\n- Dictionary v2 being used with empty filter conditions (#2909)\n\n## [6.3.3] - 2025-07-30\n### Fixed\n- Indexes not being checked correctly (#2871)\n\n## [6.3.2] - 2025-07-24\n### Changed\n- Improved docker image size (#2866)\n\n## [6.3.1] - 2025-07-17\n### Changed\n- Workspace dependencies now match to patch versions rather than exact (#2855)\n\n## [6.3.0] - 2025-07-14\n### Changed\n- Update to `@polkadot/api@^16`. Note there are breaking changes to metadata, please see the polkadot changelog for more information. (#2845)\n\n## [6.2.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n## [6.1.1] - 2025-06-25\n### Changed\n- Update reflect-metadata dependency (#2826)\n\n## [6.1.0] - 2025-05-21\n### Added\n- Support for adding new enum values in migrations\n\n## [6.0.5] - 2025-05-20\n### Fixed\n- Missing dependency for testing subcommand (#2795)\n\n## [6.0.4] - 2025-05-08\n### Changed\n- Update `@subql/node-core`\n\n## [6.0.3] - 2025-04-30\n### Fixed\n- Regression with workers leading to bad performance (#2771)\n\n## [6.0.2] - 2025-04-24\n### Changed\n- Don't inject MultichainRewindService in workers (#2758)\n\n## [6.0.1] - 2025-04-24\n### Changed\n- Enable unfinalized blocks by default when historical indexing is enabled (#2755)\n- Update polkadot dependencies\n\n## [6.0.0] - 2025-04-16\n### Added\n- Support multi chain project reindex\n\n## [5.11.2] - 2025-04-08\n### Changed\n- Bump `@subql/node-core`\n\n## [5.11.1] - 2025-03-24\n### Fixed\n- Max queue size error with workers (#2725)\n\n## [5.11.0] - 2025-03-20\n### Fixed\n- Testing not updating test results correctly if fetching block fails (#2716)\n\n## [5.10.0] - 2025-03-05\n### Changed\n- Update `@subql/node-core` with new cache flush behaviour when fully synced (#2707)\n\n## [5.9.1] - 2025-02-26\n### Changed\n- Use blockDispatcherFactory from node-core (#2701)\n\n## [5.9.0] - 2025-02-25\n### Changed\n- Bump `@subql/node-core`\n\n## [5.8.0] - 2025-02-19\n### Changed\n- Update nestjs dependencies (#2667)\n- Update polkadot api to 15 (#2680)\n\n## [5.7.2] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n- Implement BlockchainService and various other changes to match new node-core architecture (#2517)\n\n### Fixed\n- Various typos\n\n## [5.7.1] - 2025-01-30\n### Fixed\n- Crash with iterating extrinsics when skipTransactions is enabled (#2656)\n\n## [5.7.0] - 2025-01-28\n### Changed\n- Update node core to expose PG Pool options (#2646)\n- Remove unused SchedulerRegistry dependency with node-core changes\n\n### Added\n- Bump `@subql/node-core` dependency (#2644)\n\n## [5.6.0] - 2024-12-11\n### Changed\n- Update `@subql/node-core` with bug fixes and support for alternative ID types\n\n## [5.5.0] - 2024-12-04\n### Changed\n- Add block size function to match breaking node-core change (#2611)\n\n### Fixed\n- When the `primary-network-endpoint` flag exists, it will report an \"Invalid endpoint\" error.(#2612)\n\n## [5.4.2] - 2024-11-26\n### Fixed\n- Not using grouped events (#2607)\n\n## [5.4.1] - 2024-11-26\n### Fixed\n- Fix import path (#2605)\n\n## [5.4.0] - 2024-11-25\n### Changed\n- Improve event iteration, this improves performance with large blocks (#2601)\n- Update polkadot/api library to 14 version\n\n### Fixed\n- Fix part of the module.ts file that is missing the logic for injecting `IStoreModelProvider`.\n\n## [5.3.0] - 2024-11-22\n### Added\n- Support for historical indexing by timestamp as well as block height (#2584)\n\n### Added\n- Add an `--enable-cache` flag, allowing you to choose between DB or cache for IO operations.\n\n## [5.2.9] - 2024-10-30\n### Changed\n- Bump `@subql/node-core` dependency\n\n## [5.2.8] - 2024-10-23\n### Changed\n- Bump `@subql/common-substrate` dependency\n\n## [5.2.7] - 2024-10-21\n### Fixed\n- Issues with setting a large block range for bypass blocks (#2566)\n\n## [5.2.6] - 2024-09-25\n### Changed\n- Bump common, Added manifest support for query-subgraph.\n\n## [5.2.5] - 2024-09-09\n### Changed\n- Update Dependency `node-core`\n\n## [5.2.3] - 2024-08-23\n### Fixed\n- Revert rimraf version\n\n## [5.2.2] - 2024-08-14\n### Added\n- Update polkadot/api library\n\n## [5.2.1] - 2024-08-12\n### Fixed\n- Subcommands not working because of yargs dependency\n\n## [5.2.0] - 2024-08-05\n### Changed\n- Update dependencies (#2518)\n\n## [5.1.0] - 2024-08-01\n### Added\n- Support endpoint configs and specifying headers for network endpoints (#2511)\n\n### Fixed\n- Fixed timestamp can be undefined in some network blocks, it should return undefined (#2513)\n\n## [5.0.2] - 2024-07-31\n### Fixed\n- Fixed api not reloading new deployment chainTypes when project upgrades (#2505)\n\n## [5.0.1] - 2024-07-29\n### Fixed\n- Fixed default Timezone to UTC in dockerfile and package.json (#2505)\n- Bump with `node-core`, fixed various data consistency issue with db and cache (#2504)\n\n## [5.0.0] - 2024-07-25\n### Changed\n- Breaking change: Update with `@subql/node-core`, require indexing environment timezone set to UTC (#2495)\n- Update SubqueryProject to use code from node-core (#2496)\n\n### Fixed\n- Bump with `@subql/node-core`, fixed various issues causing poi inconsistency (#2497)\n\n## [4.9.0] - 2024-07-22\n### Changed\n- Tidy up modules to match changes with node-core (#2491)\n\n## [4.8.2] - 2024-07-16\n### Fixed\n- Fix dockerfile missing set timezone to UTC (#2489)\n\n## [4.8.1] - 2024-07-11\n### Removed\n- Unused type (#2484)\n\n### Changed\n- Make change with `node-core` fetch service, change `getFinalizedHeight` to `getFinalizedHeader` (#2487)\n\n## [4.8.0] - 2024-07-10\n### Changed\n- Bump with `@subql/node-core`, fix admin api `dbSize` issue\n\n## [4.7.1] - 2024-07-09\n### Added\n- Enable ts strict model\n\n### Fixed\n- \"currentRuntimeVersion is undefined\" error (#2475)\n\n## [4.7.0] - 2024-07-01\n### Changed\n- Update with `@subql/node-core`, `@subql/common-substrate`\n\n## [4.6.6] - 2024-06-21\n### Fixed\n- Update with common-substrate, fix `EventFilter` incorrectly extend `BlockFilter`, lead dictionary error (#2463)\n- Fix dictionary query entries included undefined fields (#2463)\n\n## [4.6.5] - 2024-06-18\n### Fixed\n- Add missing chainType validation for local mode\n\n## [4.6.4] - 2024-06-12\n### Changed\n- Update `@subql/utils`\n\n## [4.6.3] - 2024-06-12\n### Changed\n- Update polkadot dependencies to 11.2.1 (#2440)\n\n## [4.6.2] - 2024-06-06\n### Fixed\n- Fix import monitor service from node-core\n\n## [4.6.1] - 2024-06-06\n### Fixed\n- Fix import admin from node-core, update dockerfile to fix monitor default directory permission issue\n\n## [4.6.0] - 2024-06-05\n### Added\n- Add monitor service to record block indexing actions in order to improve POI accuracy, and provide debug info for Admin api\n\n## [4.5.1] - 2024-05-27\n### Fixed\n- Error processing chain types\n\n## [4.5.0] - 2024-05-22\n### Added\n- Add support to chainTypes, allow user use hasher name string in chainTypes\n\n### Fixed\n- Bump version with node-core, fix CacheModel.clear behaviour if height was 0\n\n## [4.4.2] - 2024-05-20\n### Fixed\n- Fix load chain types missing some builtins modules\n\n## [4.4.1] - 2024-05-08\n### Fixed\n- Temp disable console warn for `Unable to map [u8; 32] to a lookup index` ,until [this issue](https://github.com/polkadot-js/api/issues/5871) fixed\n\n## [4.4.0] - 2024-05-08\n### Changed\n- Update polkadot dependencies to v11\n- Bump with node-core, fix various issue with project upgrade\n\n## [4.3.2] - 2024-05-03\n### Fixed\n- Bump dependency with node-core, fix block timestamp filter could be undefined\n\n## [4.3.1] - 2024-05-02\n### Fixed\n- Bump dependency with node-core, fix failed to start issue due to missing `pg`\n\n## [4.3.0] - 2024-05-02\n### Removed\n- Unused deps (#2375)\n\n## [4.2.1] - 2024-04-29\n### Fixed\n- Startup error with DS processors (`this.isCustomDs is not a function`) (#2369)\n\n## [4.2.0] - 2024-04-24\n### Changed\n- Use code that has been moved to node core, tidy up dependencies (#2357)\n\n## [4.1.0] - 2024-04-12\n### Removed\n- Unused `@subql/testing` dependency (#2346)\n- `WorkerUnfinalizedBlocksService` and use version from node-core (#2346)\n\n### Changed\n- Update ApiService to match changes with `@subql/node-core` (#2350)\n- Simplify specVersions code (#2353)\n\n## [4.0.1] - 2024-04-05\n### Fixed\n- Fix modulo block didn't apply correctly with multiple dataSources (#2331)\n- Now when `workers` set to 0, it will use block dispatcher instead of throw and exit\n\n## [4.0.0] - 2024-03-28\n### Changed\n- Updated with node-core to support both versions of dictionaries. Now also support multiple dictionary endpoints, indexer will fetch and switch dictionaries base on available blocks (#2257)\n- Update Polkadot/api to 10.12.4\n\n### Removed\n- Special case for dictionary resolver (#2305)\n\n## [3.10.0] - 2024-03-20\n### Changed\n- Update `@subql/node-core` with fixes and optimisations\n\n## [3.9.3] - 2024-03-15\n### Changed\n- Update `@subql/node-core` to 4.7.3 with retry changes\n\n## [3.9.2] - 2024-03-14\n### Fixed\n- Escaping graphql comments (#2299)\n\n## [3.9.1] - 2024-03-08\n### Changed\n- Remove usage of deprecated type\n- Update `@subql/node-core` with bug fixes\n\n## [3.9.0] - 2024-03-05\n### Changed\n- Update `@subql/node-core` to 7.4.0\n\n## [3.6.1] - 2024-02-29\n### Fixed\n- Update `@subql/node-core` to fix Poi generation issue with negative integer, also drop subscription triggers and notifiy_functions\n\n## [3.6.0] - 2024-02-23\n### Changed\n- Update `@subql/node-core` to 7.3.0\n\n## [3.5.3] - 2024-02-07\n### Fixed\n- Critical bug introduced in 3.5.0 which broke historical indexing\n\n## [3.5.1] - 2024-01-30\n### Changed\n- Update `@subql/node-core` with updates to `@subql/apollo-links`\n\n## [3.5.0] - 2024-01-25\n### Changed\n- Update `@subql/node-core` with support for CSV exports and schema migrations\n\n## [3.4.11] - 2024-01-10\n### Fixed\n- Update with node-core , improve project initialization query from x-sequelize (#2212)\n\n## [3.4.10] - 2024-01-04\n### Fixed\n- Update with node-core, fix x-sequelize same table name issue. (#2209)\n- Sync postgres version to 16 in docker-compose file. (#2209)\n\n## [3.4.9] - 2023-12-20\n### Fixed\n- Metadata lastProcessedHeight undefined issue via `@subql/node-core`\n\n## [3.4.8] - 2023-12-14\n### Changed\n- Update @subql/common\n\n## [3.4.7] - 2023-12-05\n### Fixed\n- Fix init dynamic ds failed with workers, due to incorrect injection in fetch module.\n\n## [3.4.6] - 2023-12-04\n### Fixed\n- Update `@subql/node-core` with fixes\n\n## [3.4.5] - 2023-11-30\n### Changed\n- Update `@subql/node-core` with fixes (#2187, #2189)\n\n## [3.4.4] - 2023-11-28\n### Fixed\n- Fix ipfs deployment templates path failed to resolved, issue was introduced node-core 7.0.0\n- Update with node-core to fix network dictionary timeout but not fallback to config dictionary issue\n\n## [3.4.3] - 2023-11-27\n### Changed\n- Remove unused PoiService from block dispatchers (#2176)\n- Update `@subql/node-core` with bug fixes\n\n## [3.4.2] - 2023-11-16\n### Fixed\n- Sync with node-core 6.4.2 (#2167, #2169)\n\n## [3.4.1] - 2023-11-13\n### Fixed\n- Sync with node-core 6.4.1, store not having access to blockHeight and causing workers to fail on startup\n\n## [3.4.0] - 2023-11-10\n### Changed\n- Update Polkadot/api to 10.10.1 (#2150)\n- Use yargs config from node-core (#2144)\n\n## [3.3.0] - 2023-11-06\n### Added\n- With `dictionary-query-size` now dictionary can config the query block range(#2139)\n\n### Fixed\n- Sync with node-core 6.3.0 with various fixes\n\n## [3.2.0] - 2023-10-31\n### Fixed\n- Sync with node-core, fixed modulo block ahead of finalized block issue (#2132)\n- Missing dependencies for testing command\n\n### Changed\n- Use WorkerInMemoryCacheService from node core (#2125)\n- Update `@subql/node-core` with latest features and fixes\n\n### Added\n- Logger now supports negative filters. To use this prefix the logger name with a `-`. E.g `--debug=\"*,-SQL\"` (#2133)\n\n## [3.1.1] - 2023-10-25\n### Fixed\n- Update node-core with fix for crash when creating a dynamic datasource\n\n## [3.1.0] - 2023-10-20\n### Added\n- Inject in-memory cache to sandbox (#2110)\n\n### Fixed\n- Bump with `@subq/node-core` 3.1.0 , fixed poi migration init check, and improve logging\n\n## [3.0.8] - 2023-10-18\n### Fixed\n- Update node-core, fix store bulk methods failing with workers\n\n## [3.0.7] - 2023-10-17\n### Changed\n- Update with node-core 6.0.3\n\n## [3.0.6] - 2023-10-12\n### Changed\n- Update node-core\n\n## [3.0.5] - 2023-10-11\n### Changed\n- debug has changed from a boolean to a string to allow scoping debug log level (#2077)\n\n### Fixed\n- Sync with node-core.\n  - Fixed Poi migration performance issue.\n  - Fixed AutoQueue timeout issue. (#2081)\n  - Fixed Poi sync could block DB IO and drop connection issue.(#2086)\n\n## [3.0.4] - 2023-10-03\n### Changed\n- Version bump with `types-core` 0.1.1\n\n## [3.0.3] - 2023-10-03\n### Fixed\n- Empty string causing main command to not run, this happened with the default docker compose in starters\n\n## [3.0.2] - 2023-10-02\n### Fixed\n- Use specific dictionary metadata validation for substrate (#2057)\n\n## [3.0.1] - 2023-09-28\n### Fixed\n- Fix crashes when initialization fails for one of the endpoint (#1970)\n- Remove `@willsoto/nestjs-prometheus` from dependency as it is already added in node-core (#2012)\n- Project node runner options being overwritten by yargs defaults (#1967)\n- Sync with node-core, fix dictionary resolver failed to get token issue\n\n### Changed\n- Move code to node-core (#1797)\n\n### Added\n- Project upgrades feature which allows upgrading projects at specific heights (#1797)\n- Support for `skipTransactions` and LightBlock (#1968)\n\n## [2.12.2] - 2023-08-17\n### Fixed\n- Testing framework not starting because of missing dependency (#1955)\n- Bump with node-core 4.2.3, delay getPoiBlocksByRange when fully synced, fixes the high CPU usage issue\n\n## [2.12.1] - 2023-08-17\n### Fixed\n- Incorrect dictionary query for methods/calls filter (#1950)\n\n## [2.12.0] - 2023-08-16\n### Added\n- Support for `isSigned` filter (#1940)\n\n### Fixed\n- Dictionary query only working if `module` AND `method` filters are provided for call or event handlers (#1940)\n\n## [2.11.1] - 2023-08-11\n### Fixed\n- injected `unsafeApi` in global, revert previous change in #1932. (#1935)\n\n## [2.11.0] - 2023-08-10\n### Fixed\n- fix injected unsafe api name in sandbox (#1932)\n\n### Added\n- add `--primary-network-endpoint` cli option (#1927)\n- Support for update availability logs (#1930)\n\n## [2.10.1] - 2023-08-04\n### Changed\n- Sync with node-core 4.1.0:\n  - moved `indexBlock` to base `TestingService` (#1913)\n  - Simplify connection pool logic (#1915)\n  - Fix poi operationHash and miss poi blocks (#1917)\n\n## [2.10.0] - 2023-07-31\n### Fixed\n- Update license (#1891)\n- Performance scoring fix (#1895)\n\n## [2.9.3] - 2023-07-17\n### Changed\n- Inti DB schema manually during test run (#1870)\n\n### Fixed\n- Fixed missing mmrQueryService in indexer module (#1885)\n- Sync\n  - for `@subql/apollo-links` update (#1886)\n  - fix retry logic for workers in connection pool (#1829)\n\n## [2.9.2] - 2023-07-11\n### Fixed\n- Use `ConnectionPoolStateManager` from host when workers are turned on (#1829)\n- Handle RPC error for oversized block responses (#1876)\n- Modidy `TestingService` to use `TestRunner` from node-core (#1870)\n- Sync with @node/core, various improvements for POI feature (#1869)\n\n## [2.9.1] - 2023-07-06\n### Fixed\n- Sync with @subql/node-core, fixed Poi table missing mmr issue (#1871)\n\n## [2.9.0] - 2023-07-04\n### Added\n- `store-cache-upper-limit` flag to control limiting the max size of the store cache (#1859)\n\n## [2.8.0] - 2023-06-26\n### Added\n- import `PgMmrCacheService` into indexer module (#1828)\n\n### Changed\n- Move code into node-core (#1823)\n\n### Fixed\n- Fix apiConnect issues in ApiPromiseConnection\n\n## [2.7.0] - 2023-06-19\n### Changed\n- Sync with @subql/node-core, upgrade @subql/apollo-links, enable dictionary-resolver by default (#1801)\n\n## [2.6.1] - 2023-06-16\n### Fixed\n- sync with node-core 2.5.1, fixed meta service missing construct (#1804)\n\n## [2.6.0] - 2023-06-15\n### Added\n- Integrated multiple endpoint improvements from node-core (#1657)\n- Improved error handling within ApiPromiseConnection class (#1657)\n\n## [2.5.5] - 2023-06-09\n### Changed\n- Use @subql/x-sequelize in order to support cockroach (#1791)\n\n## [2.5.4] - 2023-06-07\n### Fixed\n- Sync with node-core 2.4.4, fixed various issue for mmr (#1787)\n\n## [2.5.3] - 2023-06-02\n### Fixed\n- Sync with node-core 2.4.3, fixed mmr missing node due to cache lock (#1784)\n\n## [2.5.2] - 2023-06-01\n### Fixed\n- Testing db schema (#1766)\n\n## [2.5.1] - 2023-05-31\n### Changed\n- Improve incorrect runner message (#1775)\n- Update node-core to fix MMR db issues (#1777)\n\n## [2.5.0] - 2023-05-30\n### Fixed\n- Workers creating their own temp dir for IPFS based projects (#1771)\n- Workers failing to start (#1769)\n\n### Added\n- Cache rpc requests for `state_getRuntimeVersion` and `chain_getHeader` (#1760)\n\n## [2.4.1] - 2023-05-26\n### Fixed\n- Improve mmr error and status, set `mmr-store-type` default to postgres db (#1752)\n- Fix subcommand could escape issue, setup profiler at application init (#1755)\n\n## [2.4.0] - 2023-05-24\n### Changed\n- Tidy up commands and their args (#1741)\n- Update node-core\n\n## [2.3.0] - 2023-05-19\n### Changed\n- Update polkadot api to 10.7.1 (#1736)\n- Update Node to 18 (#1719)\n\n## [2.2.1] - 2023-05-17\n### Changed\n- Update node-core with fixes\n\n## [2.2.0] - 2023-05-16\n### Fixed\n- `--dictionray-resolver` flag also requiring dictionary flag (#1714)\n\n### Changed\n- Changes relating to node-core and updating node-core\n\n## [2.1.3] - 2023-05-12\n### Changed\n- Sync fix with\n  - Fix app could fail to start, due to flush before metadata repo been set (#1688)\n\n## [2.1.2] - 2023-05-12\n### Changed\n- Sync change with\n  - Fix metadata check, allow base indexer manager to parse abis with ethereum (#1682)\n  - Move validate function to common (#1683)\n  - Inject the chain id into sandboxes (#1684)\n\n## [2.1.1] - 2023-05-11\n### Fixed\n- Fix missing scheduler subcommands (#1677)\n\n## [2.1.0] - 2023-05-10\n### Added\n- `bulkRemove` method on the store. (#1666)\n- Ability to regenerate MMR (#1664)\n- Ability to migrade MMR from file based db to postgres db and vice versa (#1618)\n\n### Changed\n- Move more chain agnostic to node-core. (#1658) (#1659)\n- Move any polkadot imports to utils package. (#1653)\n- Update node-core\n\n## [2.0.2] - 2023-04-27\n### Fixed\n- Fix api not being defined, fix not using filter on dataSources (#1647)\n\n### Changed\n- Deprecate `localMode` (#1648)\n\n## [2.0.1] - 2023-04-27\n### Fixed\n- Fix ApiService abstract class, improve getting all DS (#1638)\n- Fix tests (#1640)\n- Force flush cache with reindex command (#1645)\n- Sync with\n  - Fixed `StoreService` not been init due to assertion issue (#1641)\n\n## [2.0.0] - 2023-04-20\n### Added\n- Added Database cache feature, this significantly improve indexing performance\n  - Data flush to database when number of records reaches `--store-cache-threshold` value (default is 1000), this reduces number of transactions to database in order to save time.\n  - Direct get data from the cache rather than wait to retrieve it from database, with flag `--store-get-cache-size` user could decide how many records for **each** entity they want to keep in the cache (default is 500)\n  - If enabled `--store-cache-async` writing data to the store is asynchronous with regard to block processing (default is enabled)\n- Testing Framework, allow users to test their projects filters and handler functions without having to index the project (#1584)\n  - Create test files with the naming convention `*.test.ts` and place them in the `src/tests` or `src/test` folder. Each test file should contain test cases for specific mapping handlers.\n  - Run the testing service using the command: `subql-node test`.\n\n## [1.21.2] - 2023-04-17\n### Fixed\n- Fix workers fetching blocks out of order (#1616)\n\n## [1.21.1] - 2023-03-30\n### Added\n- Support multiple endpoints (#1551)\n\n### Fixed\n- Fix previous release 1.21.0 failed\n\n## [1.21.0] - 2023-03-29\n### Changed\n- Increase wsProvider timeout (#1550)\n- Rename `--sponsored-dictionary` to `--dictionary-resolver` (#1559)\n\n### Added\n- Add SmartBatchService and BlockSizeBuffer (#1506)\n- Improve api error handling (#1576)\n- Update polkadot api to 10.1.4 (#1580)\n\n### Fixed\n- Fix POI block offset been reset to 1 (#1571)\n- Remove blocking in process queueing (#1572)\n\n## [1.20.0] - 2023-03-06\n### Changed\n- Move enum under schema (#1527)\n\n### Fixed\n- update for Deprecate `excludeConstraint` in node-core\n\n## [1.19.0] - 2023-02-21\n### Added\n- Support Cockroach database (#1521)\n- Add SSL connection option (#1513)\n\n### Changed\n- Worker use runtime service (#1491)\n\n### Fixed\n- When create new dynamic datasource, check queue for lower blocks before processing fetched blocks (#1509)\n- Fix error with tempDsRecords being undefined with workers (#1516)\n\n## [1.18.0] - 2023-01-23\n### Added\n- Add validation of dictionary with start height (#1473)\n- Add block hash validation after fetch (#1494)\n\n### Changed\n- Update Polkadot api to 9.11.1 (#1469)\n\n### Fixed\n- Fix workers stuck due to missing set last buffered height from empty dictionary (#1492)\n\n## [1.17.1] - 2022-12-22\n### Changed\n- error message for `genesisHash` (#1471)\n\n### Fixed\n- `triggerName`/ `channelName` too long, preventing indexer to start (#1469)\n\n## [1.17.0] - 2022-12-19\n### Fixed\n- Remove unused RuntimeService from indexer module, it had missing dependencies (#1453)\n- Fix subcommands bug (#1451)\n- Fix SequelizeDatabaseError - tuple concurrently updated (#1458)\n- Fix handle when Poi offset is 0 (#1459)\n- Fix missing blocks when using workers (#1464)\n\n### Added\n- Add start height to project metadata (#1456)\n\n## [1.16.0] - 2022-12-06\n### Added\n- Support for `bypassBlocks`feature. User can now state blocks to skip, this can be implemented by stating an array of blocks in the `project.yaml`. See docs [link](https://github.com/subquery/documentation/blob/master/docs/build/manifest/polkadot.md#bypass-blocks) (#1435)\n\n## [1.15.1] - 2022-11-30\n### Fixed\n- Patch release with @subql/node-core fix\n\n## [1.15.0] - 2022-11-23\n### Added\n- Dictionary auth link integration (#1411)\n- Support multi chain indexing (#1375)\n\n### Changed\n- Move runtime logic to its own service, fix missing speChanged logic with getRuntime (#1421)\n\n### Fixed\n- Fix force-clean missing remove relate enums (#1427)\n\n## [1.14.1] - 2022-11-16\n### Changed\n- Patch release with @subql/node-core fix (#1404)\n\n## [1.14.0] - 2022-11-15\n### Added\n- Support hot schema reload (#1401)\n\n## [1.13.3] - 2022-11-09\n### Fixed\n- Fix issue with reindex missing bind (#1391)\n\n## [1.13.2] - 2022-11-08\n### Changed\n- Patch release with @subql/node-core fix\n\n## [1.13.1] - 2022-11-08\n### Changed\n- Patch release with @subql/node-core fix\n\n## [1.13.0] - 2022-11-07\n### Changed\n- Update polkadot to 9.7.1 (#1384)\n\n### Fixed\n- Fix logic with reindex and unfinalized height, also reset dynamic ds (#1382)\n- Improve dictionary query (#1371)\n\n## [1.12.0] - 2022-10-28\n### Added\n- Support for unfinalized blocks. This can be enabled with `--unfinalized-blocks` and requires historical indexing to be enabled. (#1308)\n\n### Fixed\n- Incomplete dynamic datasources in the same block. (#1370)\n\n## [1.11.0] - 2022-10-27\n### Fixed\n- Issues with Dynamic Datasources being created in the same block. (#1363)\n- Fixed log format flag not being applied. (#1351)\n\n### Changed\n- Optimise modulo filter when only using block filters. (#1358)\n- Update to `@polkadot/api@9.4.2`/ (#1356)\n\n### Added\n- Timestamp block filter. (#1310)\n- Log the node version on startup. (#1348)\n\n## [1.10.2] - 2022-10-10\n### Removed\n- `Subqueries` database table. This is an internal change that should not affect users. (#1340)\n\n## [1.10.1] - 2022-10-06\n### Changed\n- Update IPFS endpoints. (#1337)\n\n### Fixed\n- Benchmark info not being logged. (#1138)\n\n## [1.10.0] - 2022-09-29\n### Changed\n- Enable historical feature by default. (#1327)\n\n### Added\n- Subcommands for `force-clean` and `reindex`. (#1281)\n- `yargs` file has been moved back into `node` from `node-core`. (#1281)\n- Update @polkadot/api to `9.4.2`. (#1325)\n\n## [1.9.2] - 2022-09-19\n### Changed\n- In order to fix go-dictionary integration we changed dictionary query to use case-insensitive search for events/extrinsics name. (#1301)\n\n## [1.9.1] - 2022-08-29\n### Fixed\n- Fixed `@subql/node-core` import path issues (#1272)\n\n## [1.9.0] - 2022-08-26\n### Changed\n- Use `@subql/node-core` package. (#1222)\n- Updated store.getByField to have limit and offset options. `getByField(entity: string, field: string, value: any, options?: {offset?: number; limit?: number}): Promise<Entity[]>;`. (#1259)\n\n### Fixed\n- Indexing stop processing blocks. (#1261)\n\n## [1.8.0] - 2022-08-17\n### Fixed\n- Not parsing BigInt array entity fields correctly. (#1252)\n- Cache lookup error with worker threads due to schema migration changes. (#1250)\n\n### Added\n- Improved performance logging. (#1244)\n- `bulkUpdate` and `bulkGet` to the injected store. This can be used to optimise handlers and speed up indexing. (#1246)\n\n## [1.7.0] - 2022-08-11\n### Changed\n- Update Polkadot/api to v9 (#1234)\n- schema migration, allow user add/remove entity field after indexing started (#1226)\n\n### Fixed\n- Utilise dictionary if all block filters have `modulo` set (#1232)\n- Bring back profiling fetchBlocksBatches, remove unnecessary await (#1235)\n- Fix running custom ds processors in parallel on different data (#1243)\n\n## [1.6.1] - 2022-08-02\n### Fixed\n- Fix one off events being missed on startup (#1224)\n\n## [1.6.0] - 2022-07-27\n### Changed\n- Make handler data types generic (#1194)\n\n### Added\n- \\[Experimental Feature] Support for worker threads. This will move block fetching and processing into a worker. It can increase performance by up to 4 times. By default, this feature is disabled. You can enable it with the `--workers=<number>` flag. The number of workers will be capped to the number of CPU cores. (#1103)\n- \\[Experimental Feature] Add reindexing feature. You can use `--reindex=<blockNumber>` to remove indexed data and reindex from specified block height. Please note that the way of using this feature will be updated soon. (#1208)\n- Add block modulo filter on substrate blockHandler, E.g. if modulo: 50, the block handler will run on every 50 blocks. (#1196)\n\n## [1.5.1] - 2022-07-15\n### Fixed\n- Unable to create ds processor from template when project hosted on IPFS (#1190)\n\n## [1.5.0] - 2022-07-12\n### Added\n- add option `dictionary-timeout`, allow indexer decide timeout for query dictionary result (#1177)\n\n### Changed\n- Improve error log (#1174)\n- Update Polkadot to 8.12.2 (#1179)\n- Use `node-core` package\n\n## [1.4.1] - 2022-07-07\n### Fixed\n- Fix oversize subscription notification trigger name (#1171)\n\n## [1.4.0] - 2022-07-05\n### Fixed\n- Fix DI issue with EventEmitter not being resolved (#1154)\n- Validate dictionary before use its specVersion (#1152)\n\n### Changed\n- use Http keepAlive and maxSockets, use http2 (#1150)\n\n## [1.3.0] - 2022-06-29\n### Changed\n- Update tests with Manifest v1.0.0 (#1114)\n- Update redecorate api, allow apiAt object to query data earlier than current indexing block (#1111)\n- Using chain block time as interval to fetch latest finalized and best block height (#1134)\n\n### Fixed\n- Fix set block offset twice issue (#1133)\n- Fix warning for fetch specVersion when dictionary undefined, and tidy up logs (#1127)\n- Fix pending data being used when it should be reset with new DS (#1140)\n\n## [1.2.1] - 2022-06-22\n### Fixed\n- Handle when templates are undefined\n\n## [1.2.0] - 2022-06-22\n### Added\n- Use dictionary SpecVersion map (#1046)\n- Support dictionary for dynamic ds (#1110)\n\n### Changed\n- Split setup code from indexer manager to another service (#1092)\n\n### Fixed\n- Handle when specVersion query response is undefined (#1097)\n- Fix templates not being processed for manifest v1.0.0 (#1116)\n\n## [1.1.2] - 2022-06-02\n### Fixed\n- Fixed btree_gist extension, also provide docker postgres with extension (#1090)\n- Fixed handle multi datasources with different start block height (#1091)\n\n## [1.1.1] - 2022-06-01\n### Fixed\n- Fix disabling historical (#1085)\n- Fix benchmark logging (#1083)\n\n## [1.1.0] - 2022-05-31\n### Fixed\n- Move POI logic under option check (#1064)\n\n### Added\n- Add api to query file based mmr (#968)\n- Experimental feature: Support query by block number (#992)\n\n## [1.0.0] - 2022-05-11\n### Changed\n- Major release\n\n## [0.35.2] - 2022-05-10\n### Fixed\n- Priority: High. Fixes events being handled multiple times, issue was introduced in 0.34.0 (#994)\n\n## [0.35.1] - 2022-05-06\n### Changed\n- Bump with `@subql/utils`\n\n## [0.35.0] - 2022-05-02\n### Added\n- Add utils package (#928)\n\n### Fixed\n- Handle undefined filters (#929)\n\n### Changed\n- Update polkadot 8.2.1 (#910)\n\n## [0.34.0] - 2022-04-26\n### Changed\n- Remove notify trigger if subscription disabled (#882)\n- Drop support for manifest v0.0.1 (#900)\n- Process block content in time secquence rather than ds/handler order (#853)\n\n### Fixed\n- Fixed the mmr inconsistent value issue, remove redundant code,  and set `blockOffset` value to the first store operation blockHeight -1 (#894)\n\n## [0.33.0] - 2022-04-06\n### Added\n- Add support for handle manifest 1.0.0 (#845)\n\n## [0.32.0] - 2022-04-04\n### Changed\n- Update to use `vm2`(#869)\n- Update Polkadot/api to 7.14.3 (#866)\n- move subscription to dedicate flag (#867)\n\n## [0.31.1] - 2022-03-23\n### Fixed\n- Fix subscription notification trigger name invalid issue(#862)\n\n## [0.31.0] - 2022-03-22\n### Changed\n- Update Polkadot/api to 7.12.1 (#849)\n\n### Added\n- Add Notification Trigger in order to support GraphQL subscription (#846)\n\n## [0.30.2] - 2022-03-15\n### Fixed\n- Fix unable able fetch with small batch size issue (#847)\n\n## [0.30.1] - 2022-03-10\n### Fixed\n- Fix enum sort order (#844)\n\n## [0.30.0] - 2022-03-01\n### Changed\n- Update imports, as substrate related components now will be imported from `subql/common-substrate`. (#781)\n\n## [0.29.1] - 2022-02-23\n### Fixed\n- Fix get default subquery name (#820)\n\n## [0.29.0] - 2022-02-23\n### Changed\n- Update Polkadot/api to 7.9.1 (#815)\n- Support node indexing from a manifest file (#800)\n\n## [0.28.2] - 2022-02-16\n### Changed\n- Update Polkadot/api to 7.8.1 ,in order to resolve previous release issue (#806)\n\n## [0.28.1] - 2022-02-15\n### Fixed\n- Fixed issue that node stop fetch block when set batch size to 1. (#802)\n\n## [0.28.0] - 2022-02-09\n### Added\n- Support running the indexer from locations other than the filesystem, and refactor `SubqueryProject` class (#511)\n- Add support for index dynamic datasources (#773)\n- Add support for historical RPC methods that use BlockNumber (#788)\n\n### Changed\n- Update Polkadot/api to 7.7.1 (#787)\n\n### Fixed\n- Fixed mmr initialization start height issue (#600)\n\n## [0.27.2] - 2022-01-23\n### Changed\n- Update Polkadot/api to 7.4.1 (#757)\n\n### Fixed\n- Fix genesis hash validation for manifest v0.0.1 (#762)\n\n## [0.27.1] - 2022-01-18\n### Changed\n- Ready endpoint return code (#750)\n\n## [0.27.0] - 2022-01-13\n### Changed\n- Deprecate local mode (#725)\n- Update Polkadot/api to 7.3.1 (#745)\n\n### Added\n- Add ready status of indexer to endpoint (#728)\n- Add `--port` option, auto find available port when the default one is occupied. (#739)ss\n\n### Fixed\n- Fix handle chainTypes error (#732)\n- Try catch on init api with chainTypes (#738)\n- Verify project store genesis hash with network genesis hash, instead of check specName only (#735)\n- Remove update metadata last processed block by interval (#740)\n- Use Promise.all for set metadata (#743)\n\n## [0.26.0] - 2021-12-16\n### Added\n- Support dictionary for custom datasource (#686)\n- Automatic adjust fetched block batch size based on memory usage, enable by passing `--scale-batch-size` (#668)\n- Depreciate subqueries table (#683)\n- Add `bulkCreate()` to `store`  (#699)\n- Add support for loading chaintypes from js (#698)\n\n### Fixed\n- Fix name escaping with db queries (#702)\n- Fix `lastProcessedHeight` value representation (#711)\n\n## [0.25.3] - 2021-12-02\n### Fixed\n- Skip insert poi when db transaction is null (#687)\n- Replace enum index with unique hash value, in order resolve schema type name conflict issue.(#688)\n\n## [0.25.2] - 2021-11-30\n### Fixed\n- Upgrade dependency common, in order to remove auto generated enum types from entities relations (#682)\n\n## [0.25.1] - 2021-11-27\n### Fixed\n- Fix variable replacement in dictionary's gql, remove the quote wrapping (#673)\n\n### Changed\n- set default false for `--timestamp-field` (#661)\n\n## [0.25.0] - 2021-11-19\n### Fixed\n- Fix publish failing with custom ds and assets (#610)\n- Support for enum, add into store and store operations (#551)\n\n### Added\n- Allow running node from a different port through flag `—port`(#618)\n- Add flag `force-clean`, force clean the database, dropping project schemas and tables (#619)\n- Add `unsafe` flag for subql/node (#629)\n\n### Changed\n- Merge metadata from query and node (#555)\n- Refactor dictionary gql queries (#613)\n- Use types mapping in storeOperation (#532)\n- Replace patch api with `api.at()` (#638)\n- Update polkadot api to 6.9.2 (#648)\n\n## [0.24.0] - 2021-11-03\n### Added\n- \\[custom ds] Read and feed assets to custom ds's `validate()` (#547)\n- Improve error msg when fetch block fails (#602)\n\n### Changed\n- Bump dependencies (#584)\n- Moonbeam EVM,  filter before transforming with custom datasource (#593)\n- Update Polkadot/api to 6.6.1 (#599)\n\n### Fixed\n- Moonbeam networks shows negative bps and fail Healthy checks (#589)\n\n## [0.23.1] - 2021-10-27\n### Fixed\n- Disable the profiler on health check and remove logs (#569)\n\n## [0.23.0] - 2021-10-26\n### Added\n- Add MMR service allow to acquire Proof of index information and generate Merkle mountain range root, create and store root value in a file-based database, simultaneously it updates in the corresponding MMR value in the `_poi` table.\n  This feature will be running along with the Proof of index service, also allow the user to specify a local path for .mmr by using flag `--mmr-path`. (#488)\n- Introduce custom datasource (beta), enable subql to support a vary kind of smart contract solutions that embedded in parachains (#512)\n\n### Changed\n- Update Polkadot/api to 6.5.2 (#564)\n\n### Fixed\n- Performance improvement (#565)\n\n## [0.22.0] - 2021-10-12\n### Changed\n- Update Polkadot/api to 6.3.1 to support metadata v14 (#505)\n- Fetch service improve logs to include block height，it threw error at the time (#492)\n\n### Fixed\n- Throw errors when connection dropped by http, and exit (#519)\n- Addition fix for Poi service with if condition (#508)\n\n### Added\n- Support project manifest 0.2.0 (#495)\n\n## [0.21.1] - 2021-09-18\n### Fixed\n- Fixed apollo/client dependency issue (#482)\n\n## [0.21.0] - 2021-09-16\n### Changed\n- Update Polkadot/api to 5.9.1 (#476)\n\n### Added\n- Api service support http(s) endpoint (#474)\n- Add Proof-of-index service allow generate and record the hash of indexed work. User can enable this feature through the `--proof-of-work` command. Please note that this feature is currently in an experimental stage. (#443)\n\n## [0.20.3] - 2021-09-01\n### Changed\n- Update Polkadot/api to 5.7.1 (#460)\n\n## [0.20.2] - 2021-08-28\n### Fixed\n- Solve the missing block height of the event/extrinsic in the batch returned by the dictionary service  (#452)\n\n## [0.20.1] - 2021-08-27\n### Fixed\n- Deprecated warnings (#448)\n\n## [0.20.0] - 2021-08-20\n### Changed\n- Update Polkadot/api to 5.5.2 (#439)\n\n### Added\n- support interpret Bytea type (#432)\n\n## [0.19.2] - 2021-08-16\n### Fixed\n- Improve data sources filtering handling and error messages (#417)\n\n### Changed\n- Adjust health check time to be the same as indexer timeout, or a minimum of 900 seconds. Also, log error when it is not healthy (#420)\n- Update Polkadot/api to 5.5.1 (#433)\n\n## [0.19.1] - 2021-07-29\n### Fixed\n- When the schema object type is an array convert to Jsonb type (#406)\n\n## [0.19.0] - 2021-07-27\n### Changed\n- Bump `polkadot/api` to 5.2.1 (#402)\n\n### Fixed\n- Disable `api.at()` in patched API (#402)\n- Fix to improve snake case handling for foreign keys and unique index constraint (#382)\n- Fix `subql-node --help` so that it displays full options (#396)\n\n### Added\n- Expose best block height in meta (#392)\n\n## [0.18.0] - 2021-07-06\n### Fixed\n- Fix metric listener handle skip dictionary (#380)\n\n## [0.17.4] - 2021-07-06\n### Fixed\n- Fix problem when filling the block number buffer missing the last number which has caused some block records are missing. (#378)\n\n## [0.17.3] - 2021-07-06\n### Fixed\n- Fixed bug that prevented indexes from being added automatically on foreign keys (#371)\n\n### Added\n- add profiler to monitoring indexer performance (#369)\n- add metrics to listen status of using dictionary and number of times it been skipped. (#369)\n\n## [0.17.2] - 2021-07-01\n### Fixed\n- fix get runtimeVersion failed when fetch service initialization (#367)\n- set useDictionary to false when one of the event/extrinsic filters are not provided (#367)\n\n## [0.17.1] - 2021-06-29\n### Fixed\n- Fix an edge case for dictionary query, add blocknumber max range to speed up dictionary (#365)\n\n## [0.17.0] - 2021-06-25\n### Added\n- Add an external dictionary feature to massively improve indexing speed.\n  - Enable by `--network-dictionary=<dictionary_HTTP_url>` or in `project.yaml` - [read more](https://doc.subquery.network/run/run.html#using-a-dictionary) (#342)\n  - Add dictionary service to fetch dictionary from external GraphQL API (#342)\n  - Add additional block number buffer in fetch service to handle incoming dictionary data (#342)\n\n### Changed\n- replace vm2 with @subql/x-vm2 (#358)\n- Update other dependencies (#358)\n\n## [0.16.2] - 2021-06-28\n### Changed\n- Bump polkadot/api to 4.16.2 (#363)\n\n## [0.16.1] - 2021-06-22\n### Added\n- Add arg for enable/disable timestamp created_at and updated_at though `--timestamp-field` (#352)\n\n## [0.16.0] - 2021-06-22\n### Changed\n- metadata expose last processed block (#327)\n- Remove created_at and updated_at from table (#343)\n- Bump polkadot/api to 4.15.1 (#350)\n\n## [0.15.1] - 2021-05-27\n### Changed\n- Bump polkadot/api to 4.11.2\n\n## [0.15.0] - 2021-05-24\n### Changed\n- Bump polkadot/api to 4.11.1\n\n### Fixed\n- Skip fetch finalized block until API is ready.\n- Fix indexes detection\n\n## [0.14.0] - 2021-05-19\n### Fixed\n- Use pull instead of subscribe to get new block height. This solves issues where the subscription stalls and SubQuery reports an incorrect block height.\n\n### Changed\n- Not all `api.rpc` are banned now, historical RPC methods can be called. See the docs [link](https://doc.subquery.network/create/mapping.html#rpc-calls) (#304)\n- Bump polkadot/api dependency (#310)\n- Replace vm2 with fork to support lib like `@polkadot/*` that uses esm as default (#311)\n\n## [0.13.0] - 2021-05-06\n### Added\n- Bump release version due to recent major updates, also need publish new release to npm.\n\n## [0.12.3] - 2021-05-04\n### Added\n- Automatically verifies that a model's indexed fields are supported by extracting indexed fields from the database (#289)\n- \\[Experimental Feature] We're removed the restrictions on using third party CommonJS libraries in your SubQuery project sandbox - please read more about this in our [updated documentation](https://doc.subquery.network/create/mapping.html##modules-and-libraries) (#292)\n- Support for more NodeJS modules (`buffer`, `crypto`, `util`, `events`, and `path`) (#294)\n\n## [0.12.2] - 2021-04-21\n### Added\n- Enforce index on foreign key field (#285)\n\n### Fixed\n- Improve logs for db sync, catch error and exit (#283)\n\n## [0.12.0] - 2021-04-20\n### Fixed\n- Bump dependencies for logger\n- Fix query for double map storage (#269)\n\n### Added\n- Support network filter for dataSources (#247)\n- Expose events in SubstrateBlock (#256)\n- api.findCall and api.findError will use current block's metadata (#251)\n- Inject global variable logger in sandbox and depricated console.log in subquery project, use logger instead. (#259)\n- Create indexes on the fields with @index and allow querying by indexed field (#271)\n- Create jsonb column for fields marked as jsonField in schema.graphql (#275)\n- Bump @polkadot/api version to v4.6.2\n\n## [0.11.0] - 2021-03-25\n### Fixed\n- Fix benchmark output format issues (#235)\n- Only warning when user set start block to number smaller than 1. (#239)\n\n### Added\n- Support entity relations (#132)\n- Refactor api.query...multi(),  api.queryMulti() to use rpc.queryStorageAt() (#244)\n\n## [0.10.2] - 2021-03-11\n### Added\n- refactor logger to @subql/common (#220)\n- Bump polkadot/js version to v4.0.3 which shall fix a chain data decoding issue (#222)\n\n## [0.10.1] - 2021-03-03\n### Fixed\n- use parent's specVersion to decide if metadata need to be injected (#211)\n\n## [0.10.0] - 2021-03-03\n### Added\n- performance improvement: reduce injectMetadata call (#206)\n- performance improvement: reduce specVersion query for each batch (#207)\n\n## [0.9.2] - 2021-03-03\n### Added\n- more comprehensive timeout error stack (#198)\n- use logger.info() instead of log() for sandbox logging (#197)\n- estimate time remaining consider block increases (#199)\n- add configurable timeout (#202)\n- bump @polkadot/api to 3.11.1 (#203)\n\n## [0.9.1] - 2021-03-03\n### Fixed\n- revert metrics name changes (#193)\n\n### Added\n- Update subquery starter repo path to new organization (#196)\n\n## [0.9.0] - 2021-02-23\n### Added\n- Ian improve error logging (#181): support --log-level flag, error stack will be correctly organized\n- Add benchmark outputs (#183): will print benchmark stats every 15s\n- add meta api and store network info in subqueries table (#191)\n\n### Fixed\n- fix memory overflow and timeouts while indexing a large number of events\n\n## [0.8.3] - 2021-02-17\n### Fixed\n- keep retrying failed block not skipping it (#175)\n\n## [0.8.2] - 2021-02-16\n### Fixed\n- fix query.system.lastRuntimeUpgrade return null before the first runtime upgrade, use rpc.state.getRuntimeVersion instead (#169)\n- after connection reconnected, indexing will now resume (#168)\n\n## [0.8.1] - 2021-02-15\n### Fixed\n- fix dependencies (#164)\n\n## [0.8.0] - 2021-02-15\n### Changed\n- bump dependencies\n- don't freeze table name (#161)\n\n### Added\n- cache metadata if specVersion bumped (#156)\n- improve logging, support --output-fmt=json (#158)\n- support override network endpoint from --network-endpoint flag (#157)\n- add prometheus metrics (#159)\n\n## [0.7.0] - 2021-01-27\n### Fixed\n- fix crash for events not own by extrinsic (#120)\n\n### Added\n- batch fetch blocks (#124)\n- wrap all handler executions of same block in a db transaction (#125)\n- node add startscript (#128)\n\n## [0.6.0] - 2021-01-25\n### Changed\n- bump @polkadot/api (#90)\n- clean up console output unless start with --debug (#95)\n- bump @polkadot/api to v3.6.3 (#109)\n\n### Added\n- patch and inject api in sandbox context (#103)\n- support specVersion filter and success filter (#106)\n- support other custom types option that @polkadot/api has (#107)\n\n## [0.5.0] - 2021-01-15\n### Fixed\n- Fix BigInt transformation (#79)\n\n### Changed\n- escalate sandbox out of IndexerManager (#83)\n\n## [0.4.0] - 2021-01-12\n### Added\n- allow user to define start block in project (#54)\n- add local flag to support create all tables in the default db schema (#59)\n- retry when can not establish connection with postgres (#61)\n- add priority to find subquery project entry point from package json file (#60)\n- support load project from tarball file (#55)\n\n### Fixed\n- read db connection strings from env (#63)\n\n### Changed\n- \\[BREAKING] project manifest spec updated to support custom types (#65)\n\n## [0.3.0] - 2021-01-06\n### Added\n- support callHandler and eventHandler (#47)\n\n## [0.2.0] - 2020-12-22\n### Added\n- support block handler\n- put subquery tables in their own db schema\n- use BigInt instead of BN (#27)\n\n### Changed\n- bump @polkadot/api to 3.1.1\n\n[Unreleased]: https://github.com/subquery/subql/compare/node/6.4.6...HEAD\n[6.4.6]: https://github.com/subquery/subql/compare/node/6.4.5...node/6.4.6\n[6.4.5]: https://github.com/subquery/subql/compare/node/6.4.4...node/6.4.5\n[6.4.4]: https://github.com/subquery/subql/compare/node/6.4.3...node/6.4.4\n[6.4.3]: https://github.com/subquery/subql/compare/node/6.4.2...node/6.4.3\n[6.4.2]: https://github.com/subquery/subql/compare/node/6.4.0...node/6.4.2\n[6.4.0]: https://github.com/subquery/subql/compare/node/6.3.5...node/6.4.0\n[6.3.5]: https://github.com/subquery/subql/compare/node/6.3.4...node/6.3.5\n[6.3.4]: https://github.com/subquery/subql/compare/node/6.3.3...node/6.3.4\n[6.3.3]: https://github.com/subquery/subql/compare/node/6.3.2...node/6.3.3\n[6.3.2]: https://github.com/subquery/subql/compare/node/6.3.1...node/6.3.2\n[6.3.1]: https://github.com/subquery/subql/compare/node/6.3.0...node/6.3.1\n[6.3.0]: https://github.com/subquery/subql/compare/node/6.2.0...node/6.3.0\n[6.2.0]: https://github.com/subquery/subql/compare/node/6.1.1...node/6.2.0\n[6.1.1]: https://github.com/subquery/subql/compare/node/6.1.0...node/6.1.1\n[6.1.0]: https://github.com/subquery/subql/compare/node/6.0.5...node/6.1.0\n[6.0.5]: https://github.com/subquery/subql/compare/node/6.0.4...node/6.0.5\n[6.0.4]: https://github.com/subquery/subql/compare/node/6.0.3...node/6.0.4\n[6.0.3]: https://github.com/subquery/subql/compare/node/6.0.2...node/6.0.3\n[6.0.2]: https://github.com/subquery/subql/compare/node/6.0.1...node/6.0.2\n[6.0.1]: https://github.com/subquery/subql/compare/node/6.0.0...node/6.0.1\n[6.0.0]: https://github.com/subquery/subql/compare/node/5.11.2...node/6.0.0\n[5.11.2]: https://github.com/subquery/subql/compare/node/5.11.1...node/5.11.2\n[5.11.1]: https://github.com/subquery/subql/compare/node/5.11.0...node/5.11.1\n[5.11.0]: https://github.com/subquery/subql/compare/node/5.10.0...node/5.11.0\n[5.10.0]: https://github.com/subquery/subql/compare/node/5.9.1...node/5.10.0\n[5.9.1]: https://github.com/subquery/subql/compare/node/5.9.0...node/5.9.1\n[5.9.0]: https://github.com/subquery/subql/compare/node/5.8.0...node/5.9.0\n[5.8.0]: https://github.com/subquery/subql/compare/node/5.7.2...node/5.8.0\n[5.7.2]: https://github.com/subquery/subql/compare/node/5.7.1...node/5.7.2\n[5.7.1]: https://github.com/subquery/subql/compare/node/5.7.0...node/5.7.1\n[5.7.0]: https://github.com/subquery/subql/compare/node/5.6.0...node/5.7.0\n[5.6.0]: https://github.com/subquery/subql/compare/node/5.5.0...node/5.6.0\n[5.5.0]: https://github.com/subquery/subql/compare/node/5.4.2...node/5.5.0\n[5.4.2]: https://github.com/subquery/subql/compare/node/5.4.1...node/5.4.2\n[5.4.1]: https://github.com/subquery/subql/compare/node/5.4.0...node/5.4.1\n[5.4.0]: https://github.com/subquery/subql/compare/node/5.3.0...node/5.4.0\n[5.3.0]: https://github.com/subquery/subql/compare/node/5.2.9...node/5.3.0\n[5.2.9]: https://github.com/subquery/subql/compare/node/5.2.8...node/5.2.9\n[5.2.8]: https://github.com/subquery/subql/compare/node/5.2.7...node/5.2.8\n[5.2.7]: https://github.com/subquery/subql/compare/node/5.2.6...node/5.2.7\n[5.2.6]: https://github.com/subquery/subql/compare/node/5.2.5...node/5.2.6\n[5.2.5]: https://github.com/subquery/subql/compare/node/5.2.3...node/5.2.5\n[5.2.3]: https://github.com/subquery/subql/compare/node/5.2.2...node/5.2.3\n[5.2.2]: https://github.com/subquery/subql/compare/node/5.2.1...node/5.2.2\n[5.2.1]: https://github.com/subquery/subql/compare/node/5.2.0...node/5.2.1\n[5.2.0]: https://github.com/subquery/subql/compare/node/5.1.0...node/5.2.0\n[5.1.0]: https://github.com/subquery/subql/compare/node/5.0.2...node/5.1.0\n[5.0.2]: https://github.com/subquery/subql/compare/node/5.0.1...node/5.0.2\n[5.0.1]: https://github.com/subquery/subql/compare/node/5.0.0...node/5.0.1\n[5.0.0]: https://github.com/subquery/subql/compare/node/4.9.0...node/5.0.0\n[4.9.0]: https://github.com/subquery/subql/compare/node/4.8.2...node/4.9.0\n[4.8.2]: https://github.com/subquery/subql/compare/node/4.8.1...node/4.8.2\n[4.8.1]: https://github.com/subquery/subql/compare/node/4.8.0...node/4.8.1\n[4.8.0]: https://github.com/subquery/subql/compare/node/4.7.1...node/4.8.0\n[4.7.1]: https://github.com/subquery/subql/compare/node/4.7.0...node/4.7.1\n[4.7.0]: https://github.com/subquery/subql/compare/node/4.6.6...node/4.7.0\n[4.6.6]: https://github.com/subquery/subql/compare/node/4.6.5...node/4.6.6\n[4.6.5]: https://github.com/subquery/subql/compare/node/4.6.4...node/4.6.5\n[4.6.4]: https://github.com/subquery/subql/compare/node/4.6.3...node/4.6.4\n[4.6.3]: https://github.com/subquery/subql/compare/node/4.6.2...node/4.6.3\n[4.6.2]: https://github.com/subquery/subql/compare/node/4.6.1...node/4.6.2\n[4.6.1]: https://github.com/subquery/subql/compare/node/4.6.0...node/4.6.1\n[4.6.0]: https://github.com/subquery/subql/compare/node/4.5.1...node/4.6.0\n[4.5.1]: https://github.com/subquery/subql/compare/node/4.5.0...node/4.5.1\n[4.5.0]: https://github.com/subquery/subql/compare/node/4.4.2...node/4.5.0\n[4.4.2]: https://github.com/subquery/subql/compare/node/4.4.1...node/4.4.2\n[4.4.1]: https://github.com/subquery/subql/compare/node/4.4.0...node/4.4.1\n[4.4.0]: https://github.com/subquery/subql/compare/node/4.3.2...node/4.4.0\n[4.3.2]: https://github.com/subquery/subql/compare/node/4.3.1...node/4.3.2\n[4.3.1]: https://github.com/subquery/subql/compare/node/4.3.0...node/4.3.1\n[4.3.0]: https://github.com/subquery/subql/compare/node/4.2.1...node/4.3.0\n[4.2.1]: https://github.com/subquery/subql/compare/node/4.2.0...node/4.2.1\n[4.2.0]: https://github.com/subquery/subql/compare/node/4.1.0...node/4.2.0\n[4.1.0]: https://github.com/subquery/subql/compare/node/4.0.1...node/4.1.0\n[4.0.1]: https://github.com/subquery/subql/compare/node/4.0.0...node/4.0.1\n[4.0.0]: https://github.com/subquery/subql/compare/node/3.10.0...node/4.0.0\n[3.10.0]: https://github.com/subquery/subql/compare/node/3.9.3...node/3.10.0\n[3.9.3]: https://github.com/subquery/subql/compare/node/3.9.2...node/3.9.3\n[3.9.2]: https://github.com/subquery/subql/compare/node/3.9.1...node/3.9.2\n[3.9.1]: https://github.com/subquery/subql/compare/node/3.9.0...node/3.9.1\n[3.9.0]: https://github.com/subquery/subql/compare/node/3.6.1...node/3.9.0\n[3.6.1]: https://github.com/subquery/subql/compare/node/3.6.0...node/3.6.1\n[3.6.0]: https://github.com/subquery/subql/compare/node/3.5.3...node/3.6.0\n[3.5.3]: https://github.com/subquery/subql/compare/node/3.5.1...node/3.5.3\n[3.5.1]: https://github.com/subquery/subql/compare/node/3.5.0...node/3.5.1\n[3.5.0]: https://github.com/subquery/subql/compare/node/3.4.11...node/3.5.0\n[3.4.11]: https://github.com/subquery/subql/compare/node/3.4.10...node/3.4.11\n[3.4.10]: https://github.com/subquery/subql/compare/node/3.4.9...node/3.4.10\n[3.4.9]: https://github.com/subquery/subql/compare/node/3.4.8...node/3.4.9\n[3.4.8]: https://github.com/subquery/subql/compare/node/3.4.7...node/3.4.8\n[3.4.7]: https://github.com/subquery/subql/compare/node/3.4.6...node/3.4.7\n[3.4.6]: https://github.com/subquery/subql/compare/node/3.4.5...node/3.4.6\n[3.4.5]: https://github.com/subquery/subql/compare/node/3.4.4...node/3.4.5\n[3.4.4]: https://github.com/subquery/subql/compare/node/3.4.3...node/3.4.4\n[3.4.3]: https://github.com/subquery/subql/compare/node/3.4.2...node/3.4.3\n[3.4.2]: https://github.com/subquery/subql/compare/node/3.4.1...node/3.4.2\n[3.4.1]: https://github.com/subquery/subql/compare/node/3.4.0...node/3.4.1\n[3.4.0]: https://github.com/subquery/subql/compare/node/3.3.0...node/3.4.0\n[3.3.0]: https://github.com/subquery/subql/compare/node/3.2.0...node/3.3.0\n[3.2.0]: https://github.com/subquery/subql/compare/node/3.1.1...node/3.2.0\n[3.1.1]: https://github.com/subquery/subql/compare/node/3.1.0...node/3.1.1\n[3.1.0]: https://github.com/subquery/subql/compare/v3.0.8...v3.1.0\n[3.0.8]: https://github.com/subquery/subql/compare/node/3.0.7...node/3.0.8\n[3.0.7]: https://github.com/subquery/subql/compare/node/3.0.6...node/3.0.7\n[3.0.6]: https://github.com/subquery/subql/compare/node/3.0.5...node/3.0.6\n[3.0.5]: https://github.com/subquery/subql/compare/node/3.0.4...node/3.0.5\n[3.0.4]: https://github.com/subquery/subql/compare/node/3.0.3...node/3.0.4\n[3.0.3]: https://github.com/subquery/subql/compare/node/3.0.2...node/3.0.3\n[3.0.2]: https://github.com/subquery/subql/compare/node/3.0.1...node/3.0.2\n[3.0.1]: https://github.com/subquery/subql/compare/node/2.12.2...node/3.0.1\n[2.12.2]: https://github.com/subquery/subql/compare/node/2.12.1...node/2.12.2\n[2.12.1]: https://github.com/subquery/subql/compare/node/2.12.0...node/2.12.1\n[2.12.0]: https://github.com/subquery/subql/compare/node/2.11.1...node/2.12.0\n[2.11.1]: https://github.com/subquery/subql/compare/node/2.11.0...node/2.11.1\n[2.11.0]: https://github.com/subquery/subql/compare/node/2.10.1...node/2.11.0\n[2.10.1]: https://github.com/subquery/subql/compare/node/2.10.0...node/2.10.1\n[2.10.0]: https://github.com/subquery/subql/compare/node/2.9.3...node/2.10.0\n[2.9.3]: https://github.com/subquery/subql/compare/node/2.9.2...node/2.9.3\n[2.9.2]: https://github.com/subquery/subql/compare/node/2.9.1...node/2.9.2\n[2.9.1]: https://github.com/subquery/subql/compare/node/2.9.0...node/v2.9.1\n[2.9.0]: https://github.com/subquery/subql/compare/node/2.8.0...node/2.9.0\n[2.8.0]: https://github.com/subquery/subql/compare/node/2.7.0...node/2.8.0\n[2.7.0]: https://github.com/subquery/subql/compare/node/2.6.1...node/2.7.0\n[2.6.1]: https://github.com/subquery/subql/compare/node/2.6.0...node/2.6.1\n[2.6.0]: https://github.com/subquery/subql/compare/node/2.5.5...node/2.6.0\n[2.5.5]: https://github.com/subquery/subql/compare/node/2.5.4...node/2.5.5\n[2.5.4]: https://github.com/subquery/subql/compare/node/2.5.3...node/2.5.4\n[2.5.3]: https://github.com/subquery/subql/compare/node/2.5.2...node/2.5.3\n[2.5.2]: https://github.com/subquery/subql/compare/node/2.5.1...node/2.5.2\n[2.5.1]: https://github.com/subquery/subql/compare/node/2.5.0...node/2.5.1\n[2.5.0]: https://github.com/subquery/subql/compare/node/2.4.1...node/2.5.0\n[2.4.1]: https://github.com/subquery/subql/compare/node/2.4.0...node/2.4.1\n[2.4.0]: https://github.com/subquery/subql/compare/node/2.3.0...node/2.4.0\n[2.3.0]: https://github.com/subquery/subql/compare/node/2.2.1...node/2.3.0\n[2.2.1]: https://github.com/subquery/subql/compare/node/2.2.0...node/2.2.1\n[2.2.0]: https://github.com/subquery/subql/compare/node/2.1.3...node/2.2.0\n[2.1.3]: https://github.com/subquery/subql/compare/node/2.1.2...node/2.1.3\n[2.1.2]: https://github.com/subquery/subql/compare/node/2.1.1...node/2.1.2\n[2.1.1]: https://github.com/subquery/subql/compare/node/2.1.0...node/2.1.1\n[2.1.0]: https://github.com/subquery/subql/compare/node/2.0.2...node/2.1.0\n[2.0.2]: https://github.com/subquery/subql/compare/node/2.0.1...node/2.0.2\n[2.0.1]: https://github.com/subquery/subql/compare/node/2.0.0...node/2.0.1\n[2.0.0]: https://github.com/subquery/subql/compare/node/1.21.2...node2.0.0/\n[1.21.2]: https://github.com/subquery/subql/compare/node/1.21.1...node1.21.2/\n[1.21.1]: https://github.com/subquery/subql/compare/node/1.21.0...node/1.21.1\n[1.21.0]: https://github.com/subquery/subql/compare/node/1.20.0...node/1.21.0\n[1.20.0]: https://github.com/subquery/subql/compare/node/1.19.0...node/1.20.0\n[1.19.0]: https://github.com/subquery/subql/compare/node/1.18.0...node/1.19.0\n[1.18.0]: https://github.com/subquery/subql/compare/node/1.17.1...node/1.18.0\n[1.17.1]: https://github.com/subquery/subql/compare/node/1.17.0...node/1.17.1\n[1.17.0]: https://github.com/subquery/subql/compare/node/1.16.0...node/1.17.0\n[1.16.0]: https://github.com/subquery/subql/compare/node/1.15.1...node/1.16.0\n[1.15.1]: https://github.com/subquery/subql/compare/node/1.15.0...node/1.15.1\n[1.15.0]: https://github.com/subquery/subql/compare/node/1.14.1...node/1.15.0\n[1.14.1]: https://github.com/subquery/subql/compare/node/1.14.0...node/1.14.1\n[1.14.0]: https://github.com/subquery/subql/compare/node/1.13.3...node/1.14.0\n[1.13.3]: https://github.com/subquery/subql/compare/node/1.13.2...node/1.13.3\n[1.13.2]: https://github.com/subquery/subql/compare/node/1.13.1...node/1.13.2\n[1.13.1]: https://github.com/subquery/subql/compare/node/1.13.0...node/1.13.1\n[1.13.0]: https://github.com/subquery/subql/compare/node/1.12.0...node/1.13.0\n[1.12.0]: https://github.com/subquery/subql/compare/node/1.11.0...node/1.12.0\n[1.11.0]: https://github.com/subquery/subql/compare/node/1.10.2...node/1.11.0\n[1.10.2]: https://github.com/subquery/subql/compare/node/1.10.1...node/1.10.2\n[1.10.1]: https://github.com/subquery/subql/compare/node/1.10.0...node/1.10.1\n[1.10.0]: https://github.com/subquery/subql/compare/node/1.9.2...node/1.10.0\n[1.9.2]: https://github.com/subquery/subql/compare/node/1.9.1...node/1.9.2\n[1.9.1]: https://github.com/subquery/subql/compare/node/1.9.0...node/1.9.1\n[1.9.0]: https://github.com/subquery/subql/compare/node/1.8.0...node/1.9.0\n[1.8.0]: https://github.com/subquery/subql/compare/node/1.7.0...node/1.8.0\n[1.7.0]: https://github.com/subquery/subql/compare/node/1.6.1...node/1.7.0\n[1.6.1]: https://github.com/subquery/subql/compare/node/1.6.0...node/1.6.1\n[1.6.0]: https://github.com/subquery/subql/compare/node/1.5.1...node/1.6.0\n[1.5.1]: https://github.com/subquery/subql/compare/node/1.5.0...node/1.5.1\n[1.5.0]: https://github.com/subquery/subql/compare/node/1.4.1...node/1.5.0\n[1.4.1]: https://github.com/subquery/subql/compare/node/1.4.0...node/1.4.1\n[1.4.0]: https://github.com/subquery/subql/compare/node/1.3.0...node/1.4.0\n[1.3.0]: https://github.com/subquery/subql/compare/node/1.2.1...node/1.3.0\n[1.2.1]: https://github.com/subquery/subql/compare/node/1.2.0...node/1.2.1\n[1.2.0]: https://github.com/subquery/subql/compare/node/1.1.2...node/1.2.0\n[1.1.2]: https://github.com/subquery/subql/compare/node/1.1.1...node/1.1.2\n[1.1.1]: https://github.com/subquery/subql/compare/node/1.1.0...node/1.1.1\n[1.1.0]: https://github.com/subquery/subql/compare/node/1.0.0...node/1.1.0\n[1.0.0]: https://github.com/subquery/subql/compare/node/0.35.2...node1.0.0/\n[0.35.2]: https://github.com/subquery/subql/compare/node/0.35.1...node0.35.2/\n[0.35.1]: https://github.com/subquery/subql/compare/node/0.35.0...node/0.35.1\n[0.35.0]: https://github.com/subquery/subql/compare/node/0.34.0...node/0.35.0\n[0.34.0]: https://github.com/subquery/subql/compare/node/0.33.0...node/0.34.0\n[0.33.0]: https://github.com/subquery/subql/compare/node/0.32.0...node/0.33.0\n[0.32.0]: https://github.com/subquery/subql/compare/node/0.31.1...node/0.32.0\n[0.31.1]: https://github.com/subquery/subql/compare/node/0.31.0...node/0.31.1\n[0.31.0]: https://github.com/subquery/subql/compare/node/0.30.2...node/0.31.0\n[0.30.2]: https://github.com/subquery/subql/compare/node/0.30.1...node/0.30.2\n[0.30.1]: https://github.com/subquery/subql/compare/node/0.30.0...node/0.30.1\n[0.30.0]: https://github.com/subquery/subql/compare/node/0.29.1...node/0.30.0\n[0.29.1]: https://github.com/subquery/subql/compare/node/0.29.0...node/0.29.1\n[0.29.0]: https://github.com/subquery/subql/compare/node/0.28.2...node/0.29.1\n[0.28.2]: https://github.com/subquery/subql/compare/node/0.28.1...node/0.28.2\n[0.28.1]: https://github.com/subquery/subql/compare/node/0.28.0...node/0.28.1\n[0.28.0]: https://github.com/subquery/subql/compare/node/0.27.2...node/0.28.0\n[0.27.2]: https://github.com/subquery/subql/compare/node/0.27.1...node/0.27.2\n[0.27.1]: https://github.com/subquery/subql/compare/node/0.27.0...node/0.27.1\n[0.27.0]: https://github.com/subquery/subql/compare/node/0.26.0...node/0.27.0\n[0.26.0]: https://github.com/subquery/subql/compare/node/0.25.3...node/0.26.0\n[0.25.3]: https://github.com/subquery/subql/compare/node/0.25.2...node/0.25.3\n[0.25.2]: https://github.com/subquery/subql/compare/node/0.25.1...node/0.25.2\n[0.25.1]: https://github.com/subquery/subql/compare/node/0.25.0...node/0.25.1\n[0.25.0]: https://github.com/subquery/subql/compare/node/0.24.0...node/0.25.0\n[0.24.0]: https://github.com/subquery/subql/compare/node/0.23.1...node/0.24.0\n[0.23.1]: https://github.com/subquery/subql/compare/node/0.23.0...node/0.23.1\n[0.23.0]: https://github.com/subquery/subql/compare/v0.16.0...v0.16.1\n[0.22.0]: https://github.com/subquery/subql/compare/v0.16.0...v0.16.1\n[0.21.1]: https://github.com/subquery/subql/compare/v0.16.0...v0.16.1\n[0.21.0]: https://github.com/subquery/subql/compare/v0.16.0...v0.16.1\n[0.20.3]: https://github.com/subquery/subql/compare/v0.16.0...v0.16.1\n[0.20.2]: https://github.com/subquery/subql/compare/v0.20.1...v0.20.2\n[0.20.1]: https://github.com/subquery/subql/compare/v0.20.0...v0.20.1\n[0.20.0]: https://github.com/subquery/subql/compare/v0.19.2...v0.20.0\n[0.19.2]: https://github.com/subquery/subql/compare/v0.19.1...v0.19.2\n[0.19.1]: https://github.com/subquery/subql/compare/v0.19.0...v0.19.1\n[0.19.0]: https://github.com/subquery/subql/compare/v0.18.0...v0.19.0\n[0.18.0]: https://github.com/subquery/subql/compare/v0.17.4...v0.18.0\n[0.17.4]: https://github.com/subquery/subql/compare/v0.17.3...v0.17.4\n[0.17.3]: https://github.com/subquery/subql/compare/v0.17.2...v0.17.3\n[0.17.2]: https://github.com/subquery/subql/compare/v0.17.1...v0.17.2\n[0.17.1]: https://github.com/subquery/subql/compare/v0.17.0...v0.17.1\n[0.17.0]: https://github.com/subquery/subql/compare/v0.17.0...v0.17.0\n[0.16.2]: https://github.com/subquery/subql/compare/v0.16.1...v0.16.2\n[0.16.1]: https://github.com/subquery/subql/compare/v0.16.0...v0.16.1\n[0.16.0]: https://github.com/subquery/subql/compare/v0.15.1...v0.16.0\n[0.15.1]: https://github.com/subquery/subql/compare/v0.15.0...v0.15.1\n[0.15.0]: https://github.com/subquery/subql/compare/v0.14.0...v0.15.0\n[0.14.0]: https://github.com/subquery/subql/compare/v0.13.0...v0.14.0\n[0.13.0]: https://github.com/subquery/subql/compare/v0.12.3...v0.13.0\n[0.12.3]: https://github.com/subquery/subql/compare/v0.12.2...v0.12.3\n[0.12.2]: https://github.com/subquery/subql/compare/v0.12.0...v0.12.2\n[0.12.0]: https://github.com/subquery/subql/compare/v0.11.0...v0.12.0\n[0.11.0]: https://github.com/subquery/subql/compare/v0.10.2...v0.11.0\n[0.10.2]: https://github.com/subquery/subql/compare/v0.10.1...v0.10.2\n[0.10.1]: https://github.com/subquery/subql/compare/v0.10.0...v0.10.1\n[0.10.0]: https://github.com/subquery/subql/compare/v0.9.2...v0.10.0\n[0.9.2]: https://github.com/subquery/subql/compare/v0.9.1...v0.9.2\n[0.9.1]: https://github.com/subquery/subql/compare/v0.9.0...v0.9.1\n[0.9.0]: https://github.com/OnFinality-io/subql/compare/v0.8.3...v0.9.0\n[0.8.3]: https://github.com/OnFinality-io/subql/compare/v0.8.2...v0.8.3\n[0.8.2]: https://github.com/OnFinality-io/subql/compare/v0.8.1...v0.8.2\n[0.8.1]: https://github.com/OnFinality-io/subql/compare/v0.8.0...v0.8.1\n[0.8.0]: https://github.com/OnFinality-io/subql/compare/v0.7.0...v0.8.0\n[0.7.0]: https://github.com/OnFinality-io/subql/compare/v0.6.0...v0.7.0\n[0.6.0]: https://github.com/OnFinality-io/subql/compare/v0.5.0...v0.6.0\n[0.5.0]: https://github.com/OnFinality-io/subql/compare/v0.4.0...v0.5.0\n[0.4.0]: https://github.com/OnFinality-io/subql/compare/v0.3.0...v0.4.0\n[0.3.0]: https://github.com/OnFinality-io/subql/compare/v0.2.0...v0.3.0\n[0.2.0]: https://github.com/OnFinality-io/subql/tags/v0.2.0\n"
  },
  {
    "path": "packages/node/Dockerfile",
    "content": "# Build stage\nFROM node:lts-alpine as builder\n# Set working directory\nWORKDIR /app\n\n# Copy all packages\nCOPY ./packages ./packages\n\n# Copy tsconfig.json\nCOPY ./tsconfig.json ./tsconfig.json\n\n# Copy build script\nCOPY ./scripts/build.sh ./scripts/build.sh\n\n# Install dependencies and build\nRUN ./scripts/build.sh packages/node\n\n# Production stage\nFROM node:lts-alpine\n\n# Copy .tgz file from builder\nCOPY --from=builder /app/packages/node/app.tgz /app.tgz\n\n# Install production dependencies\nRUN apk add --no-cache tini curl git && \\\n  tar -xzvf /app.tgz --strip 1 && \\\n  rm /app.tgz && \\\n  yarn install --production && \\\n  yarn cache clean && \\\n  rm -rf /root/.npm /root/.cache\n\n# Create ./.monitor directory and set permissions\nRUN mkdir -p .monitor && \\\n  chown 1000:1000 .monitor\n\n# Make the user not ROOT\nUSER 1000\n# Fix timezone to UTC\nENV TZ=utc\n\n# Set Entry point and command\nENTRYPOINT [\"/sbin/tini\", \"--\", \"/bin/run\"]\nCMD [\"-f\",\"/app\"]\n"
  },
  {
    "path": "packages/node/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/node/README.md",
    "content": "# @subql-node\n\n## Description\n\nIndexer service in our @subql toolkit, can load user's subquery then fetch, process and persist to db accordingly.\n\n## Installation\n\n```bash\n$ npm i -g @subql/node\n```\n\n## Running the app\n\n```\n$> subql-node\n\nCommands:\n  run force-clean  Force cleans the database, dropping project schemas and\n                   tables (Once the command is executed, the application would\n                   exit upon completion)\n\n  run reindex      Reindex to specified block height (Once the command is\n                   executed, the application would exit upon completion).\n\nOptions:\n      --help                Show help                                  [boolean]\n      --version             Show version number                        [boolean]\n  -f, --subquery            Local path or IPFS cid of the subquery project\n       [string] [required] [default: process.cwd()]\n      --subquery-name       Name of the subquery project   [deprecated] [string]\n  -c, --config              Specify configuration file                  [string]\n      --local               Use local mode                [deprecated] [boolean]                              [boolean]\n      --db-schema           Db schema name of the project               [string]\n      --unsafe              Allows usage of any built-in module within the\n                            sandbox                                    [boolean]\n      --subscription        Enable subscription by create notification triggers\n                                                      [boolean] [default: false]\n      --batch-size          Batch size of blocks to fetch in one round  [number]\n      --scale-batch-size    scale batch size based on memory usage\n                                                      [boolean] [default: false]\n      --timeout             Timeout for indexer sandbox to execute the mapping\n                            functions                                   [number]\n      --debug               Show debug information to console output. will\n                            forcefully set log level to debug\n                                                      [boolean] [default: false]\n      --profiler            Show profiler information to console output\n                                                      [boolean] [default: false]\n      --network-endpoint    Blockchain network endpoint to connect      [string]\n      --output-fmt          Print log as json or plain text\n                                           [string] [choices: \"json\", \"colored\"]\n      --log-level           Specify log level to print. Ignored when --debug is\n                            used\n          [string] [choices: \"fatal\", \"error\", \"warn\", \"info\", \"debug\", \"trace\",\n                                                                       \"silent\"]\n      --timestamp-field     Enable/disable created_at and updated_at in schema\n                                                      [boolean] [default: false]\n  -d, --network-dictionary  Specify the dictionary api for this network [string]\n      --dictionary-timeout  Max timeout for dictionary query            [number]\n      --sponsored-dictionary  Use subquery network sponsored dictionary [string]\n      --proof-of-index      Enable/disable proof of index\n                                                      [boolean] [default: false]\n      --ipfs                IPFS gateway endpoint                       [string]\n  -p, --port                The port the service will bind to           [number]\n      --disable-historical  Disable storing historical state entities\n                                                       [boolean] [default: true]\n  -w, --workers             Number of worker threads to use for fetching and\n                            processing blocks. Disabled by default.     [number]\n      --multi-chain         Enables indexing multiple subquery projects into the\n                            same database schema      [boolean] [default: false]\n```\n\n## License\n\nApache-2.0\n"
  },
  {
    "path": "packages/node/bin/run",
    "content": "#!/usr/bin/env node\n\nrequire('../dist/main.js')\n\n"
  },
  {
    "path": "packages/node/bin/run.cmd",
    "content": "@echo off\n\nnode \"%~dp0\\run\" %*\n"
  },
  {
    "path": "packages/node/docker/cockroach-db/docker-compose.yml",
    "content": "version: '3.5'\n\nservices:\n  crdb:\n    image: cockroachdb/cockroach:latest-v22.1\n    ports:\n      - '26257:26257'\n      - '8080:8080'\n    command: start-single-node --insecure\n    volumes:\n      - '${PWD}/cockroach-data/crdb:/cockroach/cockroach-data'\n"
  },
  {
    "path": "packages/node/docker/docker-compose.yml",
    "content": "version: '3'\n\nservices:\n  postgres:\n    build:\n      context: .\n      dockerfile: pg-Dockerfile\n    ports:\n      - 5432:5432\n    volumes:\n      - .data/postgres:/var/lib/postgresql/data\n    environment:\n      POSTGRES_PASSWORD: postgres\n"
  },
  {
    "path": "packages/node/docker/load-extensions.sh",
    "content": "#!/bin/sh\n\npsql -v ON_ERROR_STOP=1 --username \"$POSTGRES_USER\" <<EOF\nCREATE EXTENSION IF NOT EXISTS btree_gist;\nEOF\n"
  },
  {
    "path": "packages/node/docker/pg-Dockerfile",
    "content": "FROM postgres:16-alpine\n\n# Variables needed at runtime to configure postgres and run the initdb scripts\nENV POSTGRES_DB 'postgres'\nENV POSTGRES_USER 'postgres'\nENV POSTGRES_PASSWORD 'postgres'\n\n# Copy in the load-extensions script\nCOPY load-extensions.sh /docker-entrypoint-initdb.d/\n\n# Convert line endings to LF\nRUN sed -i 's/\\r$//' /docker-entrypoint-initdb.d/load-extensions.sh && chmod +x /docker-entrypoint-initdb.d/load-extensions.sh"
  },
  {
    "path": "packages/node/nest-cli.json",
    "content": "{\n  \"collection\": \"@nestjs/schematics\",\n  \"sourceRoot\": \"src\"\n}\n"
  },
  {
    "path": "packages/node/nodemon.json",
    "content": "{\n  \"watch\": [\"src\"],\n  \"ext\": \"ts\",\n  \"ignore\": [\"src/**/*.spec.ts\"],\n  \"exec\": \"node --trace-exit --trace-sigint --trace-warnings --trace-uncaught --trace-deprecation -r dotenv/config -r tsconfig-paths/register -r ts-node/register src/main.ts\"\n}\n"
  },
  {
    "path": "packages/node/package.json",
    "content": "{\n  \"name\": \"@subql/node\",\n  \"version\": \"6.4.6\",\n  \"description\": \"\",\n  \"author\": \"Ian He\",\n  \"license\": \"GPL-3.0\",\n  \"scripts\": {\n    \"prebuild\": \"rimraf dist\",\n    \"build\": \"rm -rf dist && tsc -b\",\n    \"format\": \"prettier --write \\\"src/**/*.ts\\\" \\\"test/**/*.ts\\\"\",\n    \"start\": \"TZ=utc nest start\",\n    \"start:dev\": \"TZ=utc nodemon\",\n    \"start:prod\": \"TZ=utc node dist/main\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"node/\\\"\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql\",\n  \"repository\": \"github:subquery/subql\",\n  \"bin\": {\n    \"subql-node\": \"./bin/run\"\n  },\n  \"dependencies\": {\n    \"@apollo/client\": \"^3.14.0\",\n    \"@nestjs/common\": \"^11.0.16\",\n    \"@nestjs/core\": \"^11.0.7\",\n    \"@nestjs/event-emitter\": \"^3.0.0\",\n    \"@nestjs/platform-express\": \"^11.0.7\",\n    \"@nestjs/schedule\": \"^5.0.1\",\n    \"@polkadot/api\": \"^16.4.7\",\n    \"@subql/common-substrate\": \"workspace:~\",\n    \"@subql/node-core\": \"workspace:~\",\n    \"@subql/types\": \"workspace:~\",\n    \"@subql/utils\": \"workspace:~\",\n    \"fetch-h2\": \"3.0.2\",\n    \"lodash\": \"^4.17.21\",\n    \"reflect-metadata\": \"^0.2.2\"\n  },\n  \"devDependencies\": {\n    \"@nestjs/schematics\": \"^11.0.0\",\n    \"@nestjs/testing\": \"^11.0.7\",\n    \"@types/express\": \"^4.17.21\",\n    \"@types/jest\": \"^27.5.2\",\n    \"@types/lodash\": \"^4.17.20\",\n    \"dotenv\": \"^16.4.5\",\n    \"graphql\": \"^15.8.0\",\n    \"nodemon\": \"^3.1.4\",\n    \"rimraf\": \"^5.0.10\"\n  },\n  \"files\": [\n    \"/dist\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\",\n    \"/bin\",\n    \"package.json\",\n    \"LICENSE\",\n    \"README.md\",\n    \"CHANGELOG.md\"\n  ]\n}\n"
  },
  {
    "path": "packages/node/src/app.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitterModule } from '@nestjs/event-emitter';\nimport { ScheduleModule } from '@nestjs/schedule';\nimport { CoreModule, DbModule, MetaModule } from '@subql/node-core';\nimport { ConfigureModule } from './configure/configure.module';\nimport { FetchModule } from './indexer/fetch.module';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { version: polkadotSdkVersion } = require('@polkadot/api/package.json');\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { version: packageVersion } = require('../package.json');\n\n@Module({\n  imports: [\n    DbModule.forRoot(),\n    EventEmitterModule.forRoot(),\n    ConfigureModule.register(),\n    ScheduleModule.forRoot(),\n    CoreModule,\n    FetchModule,\n    MetaModule.forRoot({\n      version: packageVersion,\n      sdkVersion: { name: '@polkadot/api', version: polkadotSdkVersion },\n    }),\n  ],\n  controllers: [],\n})\nexport class AppModule {}\n"
  },
  {
    "path": "packages/node/src/blockchain.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n  ConnectionPoolService,\n  ConnectionPoolStateManager,\n  NodeConfig,\n} from '@subql/node-core';\nimport { BlockchainService } from './blockchain.service';\nimport { ApiService } from './indexer/api.service';\n\nconst POLKADOT_ENDPOINT = 'https://rpc.polkadot.io';\n\ndescribe('BlockchainService', () => {\n  let blockchainService: BlockchainService;\n  let apiService: ApiService;\n\n  beforeAll(async () => {\n    const nodeConfig = new NodeConfig({} as any);\n\n    apiService = await ApiService.init(\n      {\n        network: {\n          endpoint: { [POLKADOT_ENDPOINT]: {} },\n          chainId:\n            '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n        },\n        dataSources: [],\n        templates: [],\n      } as any,\n      new ConnectionPoolService(nodeConfig, new ConnectionPoolStateManager()),\n      new EventEmitter2(),\n      nodeConfig,\n    );\n\n    blockchainService = new BlockchainService(apiService, null as any) as any;\n  }, 10000);\n\n  afterAll(async () => {\n    await apiService?.onApplicationShutdown();\n  });\n\n  it('can get the finalized height', async () => {\n    const header = await blockchainService.getFinalizedHeader();\n    expect(header.blockHeight).toBeGreaterThan(0);\n  });\n\n  it('can get the best height', async () => {\n    const height = await blockchainService.getBestHeight();\n    expect(height).toBeGreaterThan(0);\n  });\n\n  it('can get the chain interval', async () => {\n    const interval = await blockchainService.getChainInterval();\n    expect(interval).toEqual(5000);\n  });\n\n  it('can get the chain create time', async () => {\n    const requiredHeader = await blockchainService.getHeaderForHeight(24723095);\n    expect(requiredHeader.timestamp.getTime()).toEqual(1739501268001);\n  }, 10000);\n});\n"
  },
  {
    "path": "packages/node/src/blockchain.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport { isCustomDs, isRuntimeDs } from '@subql/common-substrate';\nimport {\n  DatasourceParams,\n  Header,\n  IBlock,\n  IBlockchainService,\n  mainThreadOnly,\n} from '@subql/node-core';\nimport {\n  SubstrateCustomDatasource,\n  SubstrateCustomHandler,\n  SubstrateDatasource,\n  SubstrateHandlerKind,\n  SubstrateMapping,\n} from '@subql/types';\nimport {\n  SubqueryProject,\n  SubstrateProjectDs,\n} from './configure/SubqueryProject';\nimport { ApiService } from './indexer/api.service';\nimport { RuntimeService } from './indexer/runtime/runtimeService';\nimport {\n  ApiAt,\n  BlockContent,\n  getBlockSize,\n  isFullBlock,\n  LightBlockContent,\n} from './indexer/types';\nimport { IIndexerWorker } from './indexer/worker/worker';\nimport {\n  calcInterval,\n  getBlockByHeight,\n  getTimestamp,\n  getHeaderForHash,\n} from './utils/substrate';\n\nconst BLOCK_TIME_VARIANCE = 5000; //ms\nconst INTERVAL_PERCENT = 0.9;\n\nconst { version: packageVersion } = require('../package.json');\n\n@Injectable()\nexport class BlockchainService\n  implements\n    IBlockchainService<\n      SubstrateDatasource,\n      SubstrateCustomDatasource<\n        string,\n        SubstrateMapping<SubstrateCustomHandler>\n      >,\n      SubqueryProject,\n      ApiAt,\n      LightBlockContent,\n      BlockContent,\n      IIndexerWorker\n    >\n{\n  constructor(\n    @Inject('APIService') private apiService: ApiService,\n    @Inject('RuntimeService') private runtimeService: RuntimeService,\n  ) {}\n\n  isCustomDs = isCustomDs;\n  isRuntimeDs = isRuntimeDs;\n  blockHandlerKind = SubstrateHandlerKind.Block;\n  packageVersion = packageVersion;\n\n  @mainThreadOnly()\n  async fetchBlocks(\n    blockNums: number[],\n  ): Promise<IBlock<BlockContent>[] | IBlock<LightBlockContent>[]> {\n    const specChanged = await this.runtimeService.specChanged(\n      blockNums[blockNums.length - 1],\n    );\n\n    // If specVersion not changed, a known overallSpecVer will be pass in\n    // Otherwise use api to fetch runtimes\n    return this.apiService.fetchBlocks(\n      blockNums,\n      specChanged ? undefined : this.runtimeService.parentSpecVersion,\n    );\n  }\n\n  async fetchBlockWorker(\n    worker: IIndexerWorker,\n    height: number,\n    context: { workers: IIndexerWorker[] },\n  ): Promise<Header> {\n    // get SpecVersion from main runtime service\n    const { blockSpecVersion, syncedDictionary } =\n      await this.runtimeService.getSpecVersion(height);\n\n    // if main runtime specVersion has been updated, then sync with all workers specVersion map, and lastFinalizedBlock\n    if (syncedDictionary) {\n      context.workers.map((w) =>\n        w.syncRuntimeService(\n          this.runtimeService.specVersionMap,\n          this.runtimeService.latestFinalizedHeight,\n        ),\n      );\n    }\n\n    return worker.fetchBlock(height, blockSpecVersion);\n  }\n\n  async onProjectChange(project: SubqueryProject): Promise<void> {\n    // Only network with chainTypes require to reload\n    await this.apiService.updateChainTypes();\n    this.apiService.updateBlockFetching();\n  }\n\n  async getBlockTimestamp(height: number): Promise<Date> {\n    const block = await getBlockByHeight(this.apiService.api, height);\n\n    let timestamp = getTimestamp(block);\n    if (!timestamp) {\n      // Not all networks have a block timestamp, e.g. Shiden\n      const blockTimestamp = await (\n        await this.apiService.unsafeApi.at(block.hash)\n      ).query.timestamp.now();\n\n      timestamp = new Date(blockTimestamp.toNumber());\n    }\n\n    return timestamp;\n  }\n\n  getBlockSize(block: IBlock): number {\n    return getBlockSize(block);\n  }\n\n  async getFinalizedHeader(): Promise<Header> {\n    const finalizedHash =\n      await this.apiService.unsafeApi.rpc.chain.getFinalizedHead();\n\n    return this.getHeaderForHash(finalizedHash.toHex());\n  }\n\n  async getBestHeight(): Promise<number> {\n    const bestHeader = await this.apiService.unsafeApi.rpc.chain.getHeader();\n    return bestHeader.number.toNumber();\n  }\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getChainInterval(): Promise<number> {\n    const chainInterval = calcInterval(this.apiService.unsafeApi)\n      .muln(INTERVAL_PERCENT)\n      .toNumber();\n\n    return Math.min(BLOCK_TIME_VARIANCE, chainInterval);\n  }\n\n  // TODO can this decorator be in unfinalizedBlocks Service?\n  @mainThreadOnly()\n  async getHeaderForHash(hash: string): Promise<Header> {\n    return getHeaderForHash(this.apiService.unsafeApi, hash);\n  }\n\n  // TODO can this decorator be in unfinalizedBlocks Service?\n  @mainThreadOnly()\n  async getHeaderForHeight(height: number): Promise<Header> {\n    const hash = await this.apiService.unsafeApi.rpc.chain.getBlockHash(height);\n    return this.getHeaderForHash(hash.toHex());\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async updateDynamicDs(\n    params: DatasourceParams,\n    dsObj: SubstrateProjectDs,\n  ): Promise<void> {\n    if (isCustomDs(dsObj)) {\n      dsObj.processor.options = {\n        ...dsObj.processor.options,\n        ...params.args,\n      };\n      // TODO needs dsProcessorService\n      // await this.dsProcessorService.validateCustomDs([dsObj]);\n    } else if (isRuntimeDs(dsObj)) {\n      // XXX add any modifications to the ds here\n    }\n  }\n\n  async getSafeApi(block: LightBlockContent | BlockContent): Promise<ApiAt> {\n    const runtimeVersion = !isFullBlock(block)\n      ? undefined\n      : await this.runtimeService.getRuntimeVersion(block.block);\n\n    return this.apiService.getPatchedApi(\n      block.block.block.header,\n      runtimeVersion,\n    );\n  }\n}\n"
  },
  {
    "path": "packages/node/src/configure/NodeConfig.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { IConfig, NodeConfig } from '@subql/node-core';\n\nexport interface ISubstrateConfig extends IConfig {\n  skipTransactions: boolean;\n}\n\nexport class SubstrateNodeConfig extends NodeConfig<ISubstrateConfig> {\n  /**\n   * This is a wrapper around the core NodeConfig to get additional properties that are provided through args or node runner options\n   * NOTE: This isn't injected anywhere so you need to wrap the injected node config\n   *\n   * @example\n   * constructor(\n   *   nodeConfig: NodeConfig,\n   * ) {\n   *   this.nodeConfig = new SubstrateNodeConfig(nodeConfig);\n   * }\n   * */\n  constructor(config: NodeConfig) {\n    // Rebuild with internal config\n    super((config as any)._config, (config as any)._isTest);\n  }\n\n  get skipTransactions(): boolean {\n    return !!this._config.skipTransactions;\n  }\n}\n"
  },
  {
    "path": "packages/node/src/configure/SchemaMigration.service.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { INestApplication } from '@nestjs/common';\nimport { DbOption, StoreCacheService, ProjectService } from '@subql/node-core';\nimport { QueryTypes, Sequelize } from '@subql/x-sequelize';\nimport { rimraf } from 'rimraf';\nimport { prepareApp } from '../utils/test.utils';\n\nconst option: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\njest.setTimeout(900000);\ndescribe('SchemaMigration integration tests', () => {\n  let app: INestApplication;\n  let projectService: ProjectService;\n  let sequelize: Sequelize;\n  let tempDir: string;\n  let schemaName: string;\n\n  beforeAll(async () => {\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option,\n    );\n    await sequelize.authenticate();\n  });\n\n  afterEach(async () => {\n    await sequelize.dropSchema(schemaName, { logging: false });\n    await app?.close();\n  });\n\n  afterAll(async () => {\n    if (tempDir) {\n      await rimraf(tempDir);\n    }\n    await sequelize?.close();\n  });\n\n  it('Should initialize correct schema based on startHeight', async () => {\n    // parent: QmQuww78v2XeGVVPVj6rWLhqvw78xrcR2SZJ5QLe7aaxu3\n    // child : QmZcEv4UWrCkkiHUmtz7q5AAXdu82aAdkxH8X8BQK3TjCy\n    const cid = 'QmZcEv4UWrCkkiHUmtz7q5AAXdu82aAdkxH8X8BQK3TjCy';\n    schemaName = 'test-migrations-6';\n\n    app = await prepareApp(schemaName, cid);\n    projectService = app.get('IProjectService');\n    await projectService.init(1);\n\n    const dbResults = await sequelize.query<string[]>(\n      `SELECT table_name FROM information_schema.tables WHERE table_schema= :schema;`,\n      { type: QueryTypes.SELECT, replacements: { schema: schemaName } },\n    );\n    const tableNames: string[] = dbResults.map((row) => {\n      return row[0];\n    });\n\n    expect(tableNames).toContain('_metadata');\n    expect(tableNames).toContain('accounts');\n    expect(tableNames).toContain('test_index_ones');\n    expect(tableNames).toContain('transfers');\n  });\n\n  it('On entity drop isRewindable should be false', async () => {\n    const cid = 'QmZcEv4UWrCkkiHUmtz7q5AAXdu82aAdkxH8X8BQK3TjCy';\n    schemaName = 'test-migrations-7';\n    app = await prepareApp(schemaName, cid);\n\n    projectService = app.get('IProjectService');\n    await projectService.init(1);\n\n    tempDir = (projectService as any).project.root;\n    const isRewindable = (projectService as any).projectUpgradeService\n      .isRewindable;\n\n    expect(isRewindable).toBe(false);\n  });\n\n  it('Should update sequelize Models in cachedModels', async () => {\n    const cid = 'QmWKRpKXgmPArnAGRNaK2wTiWNuosUtxBcB581mcth8B82';\n    schemaName = 'test-migrations-8';\n    app = await prepareApp(schemaName, cid);\n\n    projectService = app.get('IProjectService');\n    const projectUpgradeService = app.get('IProjectUpgradeService');\n    const storeCache = app.get('IStoreModelProvider');\n    const cacheSpy = jest.spyOn(storeCache, 'updateModels');\n    await projectService.init(1);\n    tempDir = (projectService as any).project.root;\n\n    await projectUpgradeService.setCurrentHeight(1000);\n\n    const cachedModels = (storeCache as any).cachedModels;\n\n    expect(Object.keys(cachedModels)).toStrictEqual([\n      '_metadata',\n      'Transfer',\n      'Account',\n      'AddedEntity',\n    ]);\n    expect(\n      Object.keys((cachedModels.Account.model as any).rawAttributes).includes(\n        'addedField',\n      ),\n    ).toBe(true);\n    expect(\n      Object.keys((cachedModels.Account.model as any).rawAttributes).includes(\n        'dropField',\n      ),\n    ).toBe(false);\n\n    expect(cacheSpy).toHaveBeenCalledTimes(2);\n  });\n\n  it('Ensure no duplication in cacheModels', async () => {\n    const cid = 'QmSmQvbssnCCH2fdi2VyqCQsjKti7tKsJMtxMUmZKUjhq7';\n    schemaName = 'test-migrations-9';\n    app = await prepareApp(schemaName, cid);\n\n    projectService = app.get('IProjectService');\n    const projectUpgradeService = app.get('IProjectUpgradeService');\n    const storeCache = app.get<StoreCacheService>('IStoreModelProvider');\n    await projectService.init(1);\n    tempDir = (projectService as any).project.root;\n\n    await projectUpgradeService.setCurrentHeight(1000);\n\n    const cachedModels = (storeCache as any).cachedModels;\n\n    expect(Object.keys(cachedModels)).toStrictEqual([\n      '_metadata',\n      'Transfer',\n      'Account',\n    ]);\n  });\n});\n"
  },
  {
    "path": "packages/node/src/configure/SubqueryProject.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\n\nimport {\n  GithubReader,\n  IPFSReader,\n  IPFS_NODE_ENDPOINT,\n  LocalReader,\n  makeTempDir,\n  ReaderFactory,\n} from '@subql/common';\nimport {\n  SubstrateCustomDataSourceImpl,\n  isCustomDs,\n} from '@subql/common-substrate';\nimport { updateDataSourcesV1_0_0 } from '@subql/node-core';\nimport {\n  SubstrateCustomDatasource,\n  SubstrateRuntimeDatasource,\n} from '@subql/types';\nimport { Reader } from '@subql/types-core';\nimport { createSubQueryProject } from './SubqueryProject';\n\n// eslint-disable-next-line jest/no-export\nexport async function getProjectRoot(reader: Reader): Promise<string> {\n  if (reader instanceof LocalReader) return reader.root;\n  if (reader instanceof IPFSReader || reader instanceof GithubReader) {\n    return makeTempDir();\n  }\n  throw new Error('Un-known reader type');\n}\n\n// Inspect asset path and content\nfunction inspectAsset(inspectAssetPath: string) {\n  const { dir, ext } = path.parse(inspectAssetPath);\n  // should have no extension\n  expect(ext).toBe('');\n  const assetContent = fs.readFileSync(inspectAssetPath, 'utf8');\n  // And when we load it, it should resolve correct abi\n  expect(assetContent).toContain('transferFrom');\n}\n\ndescribe('SubqueryProject', () => {\n  describe('convert manifest to project object', () => {\n    let projectDirV1_0_0: string;\n    let templateProject: string;\n\n    beforeEach(() => {\n      projectDirV1_0_0 = path.resolve(\n        __dirname,\n        '../../test/projectFixture/v1.0.0',\n      );\n      templateProject = path.resolve(\n        __dirname,\n        '../../test/projectFixture/template-v1.0.0',\n      );\n    });\n\n    it('convert 1.0.0 ipfs deployment to project object', async () => {\n      const reader = await ReaderFactory.create(projectDirV1_0_0);\n      const expectedRunner = {\n        node: {\n          name: '@subql/node',\n          version: '>=1.0.0',\n        },\n        query: {\n          name: '@subql/query',\n          version: '*',\n        },\n      };\n      const rawManifest = await reader.getProjectSchema();\n      const project = await createSubQueryProject(\n        projectDirV1_0_0,\n        rawManifest,\n        reader,\n        await getProjectRoot(reader),\n        {\n          endpoint: ['wss://rpc.polkadot.io/public-ws'],\n        },\n      );\n\n      expect(project.runner).toMatchObject(expectedRunner);\n    }, 500000);\n\n    it('check processChainId', async () => {\n      const reader = await ReaderFactory.create(projectDirV1_0_0);\n      const rawManifest = await reader.getProjectSchema();\n      const project = await createSubQueryProject(\n        projectDirV1_0_0,\n        rawManifest,\n        reader,\n        await getProjectRoot(reader),\n        {\n          endpoint: ['wss://rpc.polkadot.io/public-ws'],\n        },\n      );\n      expect(project.network.chainId).toMatch(\n        '0x401a1f9dca3da46f5c4091016c8a2f26dcea05865116b286f60f668207d1474b',\n      );\n    }, 5000000);\n\n    it('check loadProjectTemplates', async () => {\n      const reader0 = await ReaderFactory.create(templateProject);\n      const templateRawManifest = await reader0.getProjectSchema();\n      const project = await createSubQueryProject(\n        templateProject,\n        templateRawManifest,\n        reader0,\n        await getProjectRoot(reader0),\n        {\n          endpoint: ['wss://moonbeam-alpha.api.onfinality.io/public-ws'],\n        },\n      );\n      const reader1 = await ReaderFactory.create(projectDirV1_0_0);\n      const rawManifest = await reader1.getProjectSchema();\n      const project_v1 = await createSubQueryProject(\n        projectDirV1_0_0,\n        rawManifest,\n        reader1,\n        await getProjectRoot(reader1),\n        {\n          endpoint: ['wss://rpc.polkadot.io/public-ws'],\n        },\n      );\n      expect(project_v1).not.toContain('template');\n      expect(project.templates.length).toBe(1);\n    });\n  });\n\n  it('loads chainTypes from deployment', async () => {\n    const reader = await ReaderFactory.create(\n      'ipfs://QmZYR6tpRYvmnKoUtugpwYfH9CpP7a8fYYcLVX3d7dph2j',\n      { ipfs: IPFS_NODE_ENDPOINT },\n    );\n\n    const project = await createSubQueryProject(\n      'ipfs://QmZYR6tpRYvmnKoUtugpwYfH9CpP7a8fYYcLVX3d7dph2j',\n      await reader.getProjectSchema(),\n      reader,\n      await getProjectRoot(reader),\n      {\n        endpoint: ['wss://astar.api.onfinality.io/public-ws'],\n      },\n    );\n\n    expect(project.chainTypes).toBeDefined();\n  }, 50000);\n\n  it('loads asset file correctly from deployment', async () => {\n    const reader = await ReaderFactory.create(\n      'ipfs://QmRoosV27325uAeepKqaTEPFKjC3nk4rrKmZJSd7QXYKZQ',\n      { ipfs: IPFS_NODE_ENDPOINT },\n    );\n\n    const project = await createSubQueryProject(\n      'ipfs://QmRoosV27325uAeepKqaTEPFKjC3nk4rrKmZJSd7QXYKZQ',\n      await reader.getProjectSchema(),\n      reader,\n      await getProjectRoot(reader),\n      {\n        endpoint: ['wss://moonriver.api.onfinality.io/public-ws'],\n      },\n    );\n    expect(project.templates[0].name).toBeDefined();\n    // Expect asset to be fetched\n    const inspectAssetPath = (project.templates[0] as any).assets.get(\n      'erc20',\n    ).file;\n    inspectAsset(inspectAssetPath);\n  }, 50000);\n});\n\ndescribe('load asset with updateDataSourcesV1_0_0', () => {\n  const customDsImpl: SubstrateCustomDataSourceImpl[] = [\n    {\n      kind: 'substrate/FrontierEvm',\n      assets: new Map([\n        [\n          'erc20',\n          {\n            file: 'ipfs://QmYoHL3BvEW6nH1zYZqnziUHjajadu5ErJHavHS2zXkZhv',\n          },\n        ],\n      ]),\n      mapping: {\n        file: 'ipfs://QmP4Hrfydh4zswkZYeTnnZQFhTGo3LkCfHz4jdkbP8ZA8P',\n        handlers: [\n          {\n            filter: {\n              topics: [\n                'Transfer(address indexed from,address indexed to,uint256 value)',\n              ],\n            },\n            handler: 'handleEvmEvent',\n            kind: 'substrate/FrontierEvmEvent',\n          },\n          {\n            filter: {\n              function: 'approve(address to,uint256 value)',\n            },\n            handler: 'handleEvmCall',\n            kind: 'substrate/FrontierEvmCall',\n          },\n        ],\n      },\n      processor: {\n        file: 'ipfs://QmeHHtqRFSJQwv8pr6oUDsAkNPNAPSXXPoKiab8NKJHkiH',\n        options: {\n          abi: 'erc20',\n          address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b',\n        },\n      },\n      startBlock: 752073,\n      validate: jest.fn(),\n    },\n  ];\n  let root: string;\n  let reader: Reader;\n  beforeEach(async () => {\n    reader = await ReaderFactory.create(\n      'ipfs://QmRoosV27325uAeepKqaTEPFKjC3nk4rrKmZJSd7QXYKZQ',\n      { ipfs: IPFS_NODE_ENDPOINT },\n    );\n    root = await makeTempDir();\n  });\n  afterEach(() => {\n    fs.rmSync(root, { recursive: true, force: true });\n  });\n\n  it('After fix, it could load asset correctly', async () => {\n    const ds = await updateDataSourcesV1_0_0<\n      SubstrateRuntimeDatasource,\n      SubstrateCustomDatasource<any, any>\n    >(customDsImpl, reader, root, isCustomDs);\n    const inspectAssetPath = (ds[0] as any).assets.get('erc20').file;\n    inspectAsset(inspectAssetPath);\n  }, 50000);\n});\n"
  },
  {
    "path": "packages/node/src/configure/SubqueryProject.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { RegisteredTypes } from '@polkadot/types/types';\nimport {\n  parseSubstrateProjectManifest,\n  SubstrateBlockFilter,\n  isRuntimeDs,\n  SubstrateHandlerKind,\n  isCustomDs,\n} from '@subql/common-substrate';\nimport { CronFilter, BaseSubqueryProject } from '@subql/node-core';\nimport {\n  SubstrateDatasource,\n  RuntimeDatasourceTemplate,\n  CustomDatasourceTemplate,\n  SubstrateNetworkConfig,\n} from '@subql/types';\nimport { Reader } from '@subql/types-core';\nimport { getChainTypes } from '../utils/project';\n\nconst { version: packageVersion } = require('../../package.json');\n\nexport type SubstrateProjectDs = SubstrateDatasource;\nexport type SubqlProjectDsTemplate =\n  | RuntimeDatasourceTemplate\n  | CustomDatasourceTemplate;\n\nexport type SubqlProjectBlockFilter = SubstrateBlockFilter & CronFilter;\n\nexport type SubqueryProject = BaseSubqueryProject<\n  SubstrateProjectDs,\n  SubqlProjectDsTemplate,\n  SubstrateNetworkConfig\n> & { chainTypes?: RegisteredTypes };\n\nexport async function createSubQueryProject(\n  path: string,\n  rawManifest: unknown,\n  reader: Reader,\n  root: string, // If project local then directory otherwise temp directory\n  networkOverrides?: Partial<SubstrateNetworkConfig>,\n): Promise<SubqueryProject> {\n  const project = await BaseSubqueryProject.create<SubqueryProject>({\n    parseManifest: (raw) => parseSubstrateProjectManifest(raw).asV1_0_0,\n    path,\n    rawManifest,\n    reader,\n    root,\n    nodeSemver: packageVersion,\n    blockHandlerKind: SubstrateHandlerKind.Block,\n    networkOverrides,\n    isRuntimeDs,\n    isCustomDs,\n  });\n\n  project.chainTypes = project.network.chaintypes\n    ? await getChainTypes(reader, root, project.network.chaintypes.file)\n    : undefined;\n\n  return project;\n}\n"
  },
  {
    "path": "packages/node/src/configure/configure.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { DynamicModule, Global, Module } from '@nestjs/common';\nimport { NodeConfig, registerApp } from '@subql/node-core';\nimport { yargsOptions } from '../yargs';\nimport { createSubQueryProject, SubqueryProject } from './SubqueryProject';\n\nconst pjson = require('../../package.json');\n\n@Global()\n@Module({})\nexport class ConfigureModule {\n  static async getInstance(): Promise<{\n    nodeConfig: NodeConfig;\n    project: SubqueryProject;\n  }> {\n    const { argv } = yargsOptions;\n    return registerApp<SubqueryProject>(\n      argv,\n      createSubQueryProject,\n      yargsOptions.showHelp.bind(yargsOptions),\n      pjson,\n    );\n  }\n  static async register(): Promise<DynamicModule> {\n    const { nodeConfig, project } = await ConfigureModule.getInstance();\n\n    return this.registerManual(nodeConfig, project);\n  }\n  // Used for testing where args/yargs cannot be used\n  static registerManual(\n    nodeConfig: NodeConfig,\n    project: SubqueryProject,\n  ): DynamicModule {\n    return {\n      module: ConfigureModule,\n      providers: [\n        {\n          provide: NodeConfig,\n          useValue: nodeConfig,\n        },\n        {\n          provide: 'ISubqueryProject',\n          useValue: project,\n        },\n        {\n          provide: 'IProjectUpgradeService',\n          useValue: project,\n        },\n        {\n          provide: 'Null',\n          useValue: null,\n        },\n      ],\n      exports: [\n        NodeConfig,\n        'ISubqueryProject',\n        'IProjectUpgradeService',\n        'Null',\n      ],\n    };\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/api.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport { ApiPromise, WsProvider } from '@polkadot/api';\nimport {\n  ConnectionPoolService,\n  ConnectionPoolStateManager,\n  NodeConfig,\n} from '@subql/node-core';\nimport { GraphQLSchema } from 'graphql';\nimport { omit } from 'lodash';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { ApiService } from './api.service';\nimport { ApiPromiseConnection } from './apiPromise.connection';\n\njest.mock('@polkadot/api', () => {\n  const ApiPromise = jest.fn();\n  (ApiPromise as any).create = jest.fn(() => ({\n    on: jest.fn(),\n    runtimeChain: jest.fn(),\n    runtimeVersion: { specName: jest.fn() },\n    genesisHash:\n      '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n    consts: jest.fn(),\n    disconnect: jest.fn(),\n  }));\n  return { ApiPromise, WsProvider: jest.fn(() => ({ send: jest.fn() })) };\n});\n\nconst testNetwork = {\n  endpoint: ['ws://kusama.api.onfinality.io/public-ws'],\n  types: {\n    TestType: 'u32',\n  },\n  typesAlias: {\n    Alias: { TestType2: 'test' },\n  },\n  typesBundle: {\n    spec: {\n      '2312': {\n        types: [{ minmax: [232, 122], types: { TestType3: 'test3' } }],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [{ minmax: [232, 122], types: { TestType4: 'test4' } }],\n      },\n    },\n  },\n  typesChain: { chain2: { TestType5: 'test' } },\n  typesSpec: { spec3: { TestType6: 'test' } },\n};\n\nconst nodeConfig = new NodeConfig({\n  subquery: 'asdf',\n  subqueryName: 'asdf',\n  networkEndpoint: { 'https://polkadot.api.onfinality.io/public': {} },\n  dictionaryTimeout: 10,\n});\n\nfunction testSubqueryProject(): SubqueryProject {\n  return {\n    id: 'test',\n    root: './',\n    network: {\n      endpoint: testNetwork.endpoint,\n      // genesisHash:\n      //   '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n      chainId:\n        '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n    },\n    dataSources: [],\n    schema: new GraphQLSchema({}),\n    templates: [],\n    chainTypes: {\n      types: testNetwork.types,\n      typesAlias: testNetwork.typesAlias,\n      typesBundle: testNetwork.typesBundle,\n      typesChain: testNetwork.typesChain,\n      typesSpec: testNetwork.typesSpec,\n    },\n  } as unknown as SubqueryProject;\n}\n\ndescribe('ApiService', () => {\n  let project: SubqueryProject;\n  let apiService: ApiService;\n\n  beforeEach(() => {\n    project = testSubqueryProject();\n  });\n\n  afterEach(async () => {\n    // Disconnect apis\n    await apiService?.onApplicationShutdown();\n  });\n\n  it('read custom types from project manifest', async () => {\n    const createSpy = jest.spyOn(ApiPromise, 'create');\n    apiService = await ApiService.init(\n      project,\n      new ConnectionPoolService<ApiPromiseConnection>(\n        nodeConfig,\n        new ConnectionPoolStateManager(),\n      ),\n      new EventEmitter2(),\n      nodeConfig,\n    );\n    const { version } = require('../../package.json');\n    expect(WsProvider).toHaveBeenCalledWith(testNetwork.endpoint[0], 2500, {\n      'User-Agent': `SubQuery-Node ${version}`,\n    });\n    expect(createSpy).toHaveBeenCalledWith({\n      provider: expect.anything(),\n      throwOnConnect: expect.anything(),\n      noInitWarn: true,\n      ...omit(testNetwork, ['endpoint']),\n    });\n  });\n\n  it('throws if expected genesis hash doesnt match', async () => {\n    // Now after manifest 1.0.0, will use chainId instead of genesisHash\n    (project.network as any).chainId = '0x';\n\n    const nodeConfig: NodeConfig = new NodeConfig({\n      batchSize: 1,\n      subquery: 'example',\n    });\n\n    await expect(\n      ApiService.init(\n        project,\n        new ConnectionPoolService<ApiPromiseConnection>(\n          nodeConfig,\n          new ConnectionPoolStateManager(),\n        ),\n        new EventEmitter2(),\n        nodeConfig,\n      ),\n    ).rejects.toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/node/src/indexer/api.service.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { INestApplication } from '@nestjs/common';\nimport { EventEmitter2, EventEmitterModule } from '@nestjs/event-emitter';\nimport { Test } from '@nestjs/testing';\nimport { BlockHash, RuntimeVersion } from '@polkadot/types/interfaces';\nimport {\n  ConnectionPoolService,\n  ConnectionPoolStateManager,\n  delay,\n  NodeConfig,\n} from '@subql/node-core';\nimport { SubstrateBlock } from '@subql/types';\nimport { IEndpointConfig } from '@subql/types-core';\nimport { GraphQLSchema } from 'graphql';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { wrapBlock } from '../utils/substrate';\nimport { ApiService } from './api.service';\n\nconst WS_ENDPOINT = 'wss://kusama-rpc.polkadot.io';\nconst HTTP_ENDPOINT = 'https://kusama.api.onfinality.io/public';\n\nconst TEST_BLOCKHASH =\n  '0x70070f6c1ad5b9ce3d0a09e94086e22b8d4f08a18491183de96614706bf59600'; // kusama #6721189\n\nfunction testSubqueryProject(\n  endpoint: Record<string, IEndpointConfig>,\n  chainId: string,\n): SubqueryProject {\n  return {\n    id: 'test',\n    root: './',\n    network: {\n      endpoint,\n      dictionary: `https://api.subquery.network/sq/subquery/dictionary-polkadot`,\n      chainId: chainId,\n    },\n    dataSources: [],\n    schema: new GraphQLSchema({}),\n    templates: [],\n    chainTypes: {\n      types: {\n        TestType: 'u32',\n      },\n    },\n  } as unknown as SubqueryProject;\n}\n\njest.setTimeout(90000);\ndescribe('ApiService', () => {\n  let app: INestApplication;\n\n  afterEach(async () => {\n    return app?.close();\n  });\n\n  const prepareApiService = async (\n    endpoint: string = WS_ENDPOINT,\n    chainId = '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n  ): Promise<ApiService> => {\n    const module = await Test.createTestingModule({\n      providers: [\n        ConnectionPoolStateManager,\n        ConnectionPoolService,\n        {\n          provide: 'ISubqueryProject',\n          useFactory: () => testSubqueryProject({ [endpoint]: {} }, chainId),\n        },\n        {\n          provide: NodeConfig,\n          useFactory: () => ({}),\n        },\n        EventEmitter2,\n        {\n          provide: ApiService,\n          useFactory: ApiService.init,\n          inject: [\n            'ISubqueryProject',\n            ConnectionPoolService,\n            EventEmitter2,\n            NodeConfig,\n          ],\n        },\n      ],\n      imports: [EventEmitterModule.forRoot()],\n    }).compile();\n\n    app = module.createNestApplication();\n    await app.init();\n    return app.get(ApiService);\n  };\n\n  it('can instantiate api', async () => {\n    const apiService = await prepareApiService();\n    const api = apiService.api;\n\n    const apiAt = await api.at(TEST_BLOCKHASH);\n    expect(api.registry.getDefinition('TestType')).toEqual('u32');\n    // workaround for ending the test immediately (before return of subscribeRuntimeVersion)\n    // will cause an unhandled promise rejection and affect the result of next test.\n    await delay(0.5);\n  });\n\n  it('api query is locked at specified block', async () => {\n    const apiService = await prepareApiService();\n    const api = apiService.api;\n    const blockhash = await api.rpc.chain.getBlockHash(2);\n    const validators = await api.query.session.validators.at(blockhash);\n    const block = await api.rpc.chain.getBlock(blockhash);\n    const mockBlock = wrapBlock(block, [], 1) as unknown as SubstrateBlock;\n    const runtimeVersion = { specVersion: 1 } as unknown as RuntimeVersion;\n    const patchedApi = await apiService.getPatchedApi(\n      mockBlock.block.header,\n      runtimeVersion,\n    );\n    const [patchedValidators, currentValidators] = await Promise.all([\n      patchedApi.query.session.validators(),\n      api.query.session.validators(),\n    ]);\n    expect(validators.toJSON()).toMatchObject(\n      patchedValidators.toJSON() as any,\n    );\n    expect(patchedValidators).not.toMatchObject(currentValidators);\n  });\n\n  it('api query input is double map', async () => {\n    const apiService = await prepareApiService();\n    const api = apiService.api;\n    const blockhash = await api.rpc.chain.getBlockHash(6721189);\n    const block = await api.rpc.chain.getBlock(blockhash);\n    const mockBlock = wrapBlock(block, [], 13) as unknown as SubstrateBlock;\n    const runtimeVersion = { specVersion: 13 } as unknown as RuntimeVersion;\n    const patchedApi = await apiService.getPatchedApi(\n      mockBlock.block.header,\n      runtimeVersion,\n    );\n    const apiResults = await api.query.staking.erasStakers.at(\n      blockhash,\n      2038,\n      `DMkKL7AZw9TkNw2NaBdocmFRGUG8r8T4kdGGcB13fv2LARy`,\n    );\n    const patchedResult = await patchedApi.query.staking.erasStakers(\n      2038,\n      `DMkKL7AZw9TkNw2NaBdocmFRGUG8r8T4kdGGcB13fv2LARy`,\n    );\n    expect(apiResults).toEqual(patchedResult);\n    await delay(0.5);\n  });\n\n  it('apiAt could fetch previous block info', async () => {\n    const apiService = await prepareApiService(\n      'wss://rpc.polkadot.io',\n      '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n    );\n    const api = apiService.api;\n    const blockhash = await api.rpc.chain.getBlockHash(6721195);\n    const block = await api.rpc.chain.getBlock(blockhash);\n    const mockBlock = wrapBlock(block, [], 9090) as unknown as SubstrateBlock;\n    const runtimeVersion = { specVersion: 9090 } as unknown as RuntimeVersion;\n    // step 1, get early block, original polkadot api query result\n    const earlyBlockhash = await api.rpc.chain.getBlockHash(5661443);\n    const apiResults = await api.rpc.state.getRuntimeVersion(earlyBlockhash);\n    // step 2, api get patched result with block height\n    const patchedApi = await apiService.getPatchedApi(\n      mockBlock.block.header,\n      runtimeVersion,\n    );\n    const patchedResult =\n      await patchedApi.rpc.state.getRuntimeVersion(earlyBlockhash);\n    expect(apiResults).toEqual(patchedResult);\n    // patchedApi without input blockHash, will return runtimeVersion at 6721195\n    const patchedResult2 = await patchedApi.rpc.state.getRuntimeVersion();\n    expect(apiResults).not.toEqual(patchedResult2);\n    // To be same as runtimeVersion at 6721195\n    expect(patchedResult2.specVersion.toNumber()).toEqual(9090);\n    await delay(0.5);\n  });\n\n  it('apiAt will throw when fetch future block info', async () => {\n    const apiService = await prepareApiService(\n      'wss://rpc.polkadot.io',\n      '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n    );\n    const api = apiService.api;\n    const blockhash = await api.rpc.chain.getBlockHash(5661443);\n    const block = await api.rpc.chain.getBlock(blockhash);\n    const mockBlock = wrapBlock(block, [], 9050) as unknown as SubstrateBlock;\n    const runtimeVersion = { specVersion: 9050 } as unknown as RuntimeVersion;\n    // step 1, get future block, original polkadot api query result\n    const futureBlockhash = await api.rpc.chain.getBlockHash(6721195);\n    // step 2, api get patched result with block height\n    const patchedApi = await apiService.getPatchedApi(\n      mockBlock.block.header,\n      runtimeVersion,\n    );\n    await expect(\n      patchedApi.rpc.state.getRuntimeVersion(futureBlockhash),\n    ).rejects.toThrow(\n      'input block hash 0x509f1b7627970a326a840e3c32be75bb568cf64b92b007611b4216069fe0d9a7 ahead of current block 5661443 is not supported',\n    );\n  });\n\n  // const change in new metadata, need to find another test example\n  it.skip('api consts is swapped to the specified block', async () => {\n    const apiService = await prepareApiService();\n    const api = apiService.api;\n    // upgrade at 4401242 that maxNominatorRewardedPerValidator changed from 256 to 128\n    let blockhash: BlockHash;\n    const currentMaxNRPV = Number(\n      api.consts.staking.maxNominatorRewardedPerValidator,\n    );\n    if (currentMaxNRPV === 128) {\n      blockhash = await api.rpc.chain.getBlockHash(4401242);\n    } else {\n      blockhash = await api.rpc.chain.getBlockHash(4401243);\n    }\n\n    const block = await api.rpc.chain.getBlock(blockhash);\n    const mockBlock = wrapBlock(block, [], 28) as unknown as SubstrateBlock;\n    const runtimeVersion = { specVersion: 28 } as unknown as RuntimeVersion;\n    const patchedApi = await apiService.getPatchedApi(\n      mockBlock.block.header,\n      runtimeVersion,\n    );\n    expect(\n      Number(patchedApi.consts.staking.maxNominatorRewardedPerValidator),\n    ).not.toEqual(currentMaxNRPV);\n  });\n\n  // it('.tx.*.*, .derive.*.* are removed', async () => {\n  //   const apiService = await prepareApiService();\n  //   const api = apiService.api;\n  //   const multiResults = await Promise.all([\n  //     await api.query.system.account.at(TEST_BLOCKHASH, account1),\n  //     await api.query.system.account.at(TEST_BLOCKHASH, account2),\n  //   ]);\n  //   const patchedApi = await apiService.getPatchedApi(\n  //     TEST_BLOCKHASH,\n  //     TEST_BLOCKNUMBER,\n  //   );\n  //   // eslint-disable-next-line @typescript-eslint/promise-function-async\n  //   const [patchedMultiResults, currentMulti] = await Promise.all([\n  //     patchedApi.query.system.account.multi([account1, account2]),\n  //     api.query.system.account.multi([account1, account2]),\n  //   ]);\n  //   expect(patchedMultiResults.map((r) => r.toJSON())).toEqual(\n  //     multiResults.map((r) => r.toJSON()),\n  //   );\n  //   expect(patchedMultiResults.map((r) => r.toJSON())).not.toEqual(\n  //     currentMulti.map((r) => r.toJSON()),\n  //   );\n  // });\n  //\n  // it.skip('xxx.xxx.multi with input parameter is a double map', async () => {\n  //   const apiService = await prepareApiService();\n  //   const api = apiService.api;\n  //   const patchedApi = await apiService.getPatchedApi(\n  //     TEST_BLOCKHASH,\n  //     TEST_BLOCKNUMBER,\n  //   );\n  //   const multiResults = await Promise.all([\n  //     await api.query.staking.erasStakers.at(\n  //       TEST_BLOCKHASH,\n  //       2038,\n  //       `DMkKL7AZw9TkNw2NaBdocmFRGUG8r8T4kdGGcB13fv2LARy`,\n  //     ),\n  //     await api.query.staking.erasStakers.at(\n  //       TEST_BLOCKHASH,\n  //       2038,\n  //       `HAGcVQikZmEEgBBaChwjTVdwdA53Qopg2AYUtqw738C5kUq`,\n  //     ),\n  //   ]);\n  //   const patchedResult = await patchedApi.query.staking.erasStakers.multi([\n  //     [2038, `DMkKL7AZw9TkNw2NaBdocmFRGUG8r8T4kdGGcB13fv2LARy`],\n  //     [2038, `HAGcVQikZmEEgBBaChwjTVdwdA53Qopg2AYUtqw738C5kUq`],\n  //   ]);\n  //   expect(multiResults).toEqual(patchedResult);\n  // });\n  //\n  // it('api.queryMulti', async () => {\n  //   const account = 'E7ncQKp4xayUoUdpraxBjT7NzLoayLJA4TuPcKKboBkJ5GH';\n  //   const apiService = await prepareApiService();\n  //   const api = apiService.api;\n  //   const patchedApi = await apiService.getPatchedApi(\n  //     TEST_BLOCKHASH,\n  //     TEST_BLOCKNUMBER,\n  //   );\n  //\n  //   const multiResults = await Promise.all([\n  //     api.query.timestamp.now.at(TEST_BLOCKHASH),\n  //     await api.query.session.validators.at(TEST_BLOCKHASH),\n  //     await api.query.system.account.at(TEST_BLOCKHASH, account),\n  //     await api.query.staking.erasStakers.at(\n  //       TEST_BLOCKHASH,\n  //       2038,\n  //       `HAGcVQikZmEEgBBaChwjTVdwdA53Qopg2AYUtqw738C5kUq`,\n  //     ),\n  //   ]);\n  //\n  //   const patchedApiResults = await patchedApi.queryMulti([\n  //     patchedApi.query.timestamp.now, // not in array\n  //     [patchedApi.query.session.validators], // zero arg\n  //     [patchedApi.query.system.account, account], //one arg\n  //     [\n  //       patchedApi.query.staking.erasStakers,\n  //       [2038, `HAGcVQikZmEEgBBaChwjTVdwdA53Qopg2AYUtqw738C5kUq`],\n  //     ], // arg in array\n  //   ]);\n  //\n  //   expect(multiResults.map((r) => r.toJSON())).toEqual(\n  //     patchedApiResults.map((r) => r.toJSON()),\n  //   );\n  // });\n  //\n  // it.skip('api.rx.queryMulti is not supported', async () => {\n  //   const apiService = await prepareApiService();\n  //   const api = apiService.api;\n  //   const patchedApi = await apiService.getPatchedApi(\n  //     TEST_BLOCKHASH,\n  //     TEST_BLOCKNUMBER,\n  //   );\n  //   expect(() =>\n  //     (patchedApi.rx as any).queryMulti(\n  //       [api.query.timestamp.now],\n  //       [api.query.session.validators],\n  //     ),\n  //   ).toThrow(/is not supported/);\n  // });\n  //\n  // it('support .entries', async () => {\n  //   const apiService = await prepareApiService();\n  //   const api = apiService.api;\n  //   const patchedApi = await apiService.getPatchedApi(\n  //     TEST_BLOCKHASH,\n  //     TEST_BLOCKNUMBER,\n  //   );\n  //   const patchedResult = await patchedApi.query.staking.erasStakers.entries(\n  //     2038,\n  //   );\n  //   const apiAt = await api.at(TEST_BLOCKHASH);\n  //   const result = await apiAt.query.staking.erasStakers.entries(2038);\n  //   expect(patchedResult).toEqual(result);\n  // });\n  //\n  // it('support historic api rpc', async () => {\n  //   const apiService = await prepareApiService();\n  //   const api = apiService.api;\n  //\n  //   const blockhash = await api.rpc.chain.getBlockHash(4401242);\n  //   const patchedApi = await apiService.getPatchedApi(blockhash, 4401242);\n  //\n  //   const b1 = await patchedApi.rpc.chain.getBlock();\n  //   const apiBlock = await api.rpc.chain.getBlock(blockhash);\n  //   const b2 = await patchedApi.rpc.chain.getBlock('0x12312314');\n  //\n  //   expect(b1.block.hash.toString()).toEqual(blockhash.toString());\n  //   expect(apiBlock.block.hash.toString()).toEqual(blockhash.toString());\n  //   expect(b2.block.hash.toString()).toEqual(blockhash.toString());\n  //   expect(() => patchedApi.rpc.author.rotateKeys()).toThrow(\n  //     /is not supported/,\n  //   );\n  // });\n  //\n  // it('successful set block hash when continuous call api.xxx.xxx.at ', async () => {\n  //   const apiService = await prepareApiService();\n  //   const api = apiService.api;\n  //\n  //   const blockhash1 = await api.rpc.chain.getBlockHash(1378036);\n  //   let patchedApi = await apiService.getPatchedApi(blockhash1, 1378036);\n  //   const validators1 = await patchedApi.query.session.validators();\n  //\n  //   const blockhash2 = await api.rpc.chain.getBlockHash(1385137);\n  //   patchedApi = await apiService.getPatchedApi(blockhash2, 1385137);\n  //   const validators2 = await patchedApi.query.session.validators();\n  //   // prettier-ignore\n  //   const expectedValidators1=  ['FiHWU9AjN7z2no8zyiVEXtiTE46izxDgEcF1KM4r2r1GK59', 'EQBwtmKWCyRrQ8yGWg7LkB8p7hpEKXZz4qUg9WR8hZmieCM', 'EviBmmkq5o5ak2jUo71SPuDEdwGTr8Yz8U5tXBgF6fy8kKV', 'EfK27sX89DpagD3TCF4hF4rGZ1CnCGtYZvo94HZLU3GQuMj', 'Feu9bCUFaYSbkeqSY485kJjUoizp9CG4z3iSnGMwTqWSLeH', 'GTzRQPzkcuynHgkEHhsPBFpKdh4sAacVRsnd8vYfPpTMeEY', 'DaCSCEQBRmMaBLRQQ5y7swdtfRzjcsewVgCCmngeigwLiax', 'GRzsaGxLApkBfsUSCHKLnxhe4QECX4E2kQ5LuV4qqcijN2B', 'GCiTn1UJQT9TE5iamqoKweVoWGRZr9DF8uKXL4cG98fXczf', 'D948vxMSA6u7G5gqPGQdAUDMJbiR7wgqZ1La8XeBiXr9FTF', 'FLpAi7Zi4AB1JqJHWMrub4Umj4X73mZ5dAWE7Q6uS5e82pE', 'FUfXiFsaoWbUeaWiWBDizP7VbTSLxMirbJEpLAk1g6YueJp', 'Few2tfYD3wfyQXPCVkiqK8UGfuj5FK6ecadwfAmJQHBtASX', 'EGZEgucx8vTCSak5uBwwkPkZ7FiYCWYmhpMjWFupdMAq2BN', 'FD3A8DXs16wGvcoi9stjpwz2pmxXFymTkVyVM4Tq5z6LWCK', 'EdEQVcrr4pvzDLdb5xFkncKYhCE6uyuE1eKRTqg4PDvBgMa', 'DKUQiUWNPGvGYrgaxWqduJVRqWUYXUeKprX9EJENhxYvVyS', 'Dg5QS2TKCMQbbZau7acRXHPN4xQxqqase8awmzLXXgmXb7w', 'FtqCc5yLcLc1FkLyftyNuCtYFCudo3unwwPQLzCbnWppjoc', 'FXezGfeLvze1DWUwwEc8MczpLSMnZrSDrcA7Ghyc84NaXGt', 'FAtJupteW5urNYVQvUcLaw2X9xtdwjumK2gvJpuBnAwFHvq', 'FDDy3cQa7JXiChYU2xq1B2WUUJBpZpZ51qn2tiN1DqDMEpS', 'DrQHiQu5VkaRuv1H3iELXVqsvD3SV3E8xNjJqXUgECSg23R', 'Fsspzse4QY1KqagdyrVqDt7cmVBr3HSVsfJ38WKgxsLVaXo', 'Ed6JFR7JmeGtmrubAbXtJRjq9FPWhGRWMdmYnLRcsqaabT8', 'Gc6YgfbTJ6pYXcwib6mk3KoiwncLm4dfdcN3nwFjvfi4Agd', 'Fgqjkry96qFLpRqPZstNzgaqKXiVyrpzTqD55neMdW8PK6g', 'Gth5jQA6v9EFbpqSPgXcsvpGSrbTdWwmBADnqa36ptjs5m5', 'EuJcihtEgC121KMSa2TscWHmTF3ecJzzgHeNnQwLp4tBReG', 'JJ2VvJMZxxW2pst7z6zxrD4VVPhH6YtemYsLeKWeQ9MKX3n', 'GqGHrVZ3h2LznE2snJZ6emccobBKpgx5pmumTApDNcPFuPr', 'ESNZ8Eg46ByUYoAhr8MPbGpGF82pgmmjE3uVVepPCnJC61r', 'EaWWcRin5KwuXYFZA7ANuMCydQHjM5MofStJGusASGeXrrs', 'EMa2d6yYb3CPxyArDCzsMfngnDKUbRL6QdogfYAPKZmmN1E', 'J4hAvZoHCviZSoPHoSwLida8cEkZR1NXJcGrcfx9saHTk7D', 'Dojkd9b69TqwZ9W7BJuUomD6N59WBZ39G4sts69QDYJxKjW', 'Dksma151w4n2LRADiR2aYbdhKff47QQ6cTmBo9PpfJUb7cd', 'HWFQjF7phgRTPPjFFD2bHG9aUsEbM1p4Zwj5MjpL6iu66wH', 'Gt6HqWBhdu4Sy1u8ASTbS1qf2Ac5gwdegwr8tWN8saMxPt5', 'FAp5gVpwhwdmnJ1Ycet9z6Uva5tnfyCfA3AaY7WGi7u3DU4', 'Etij9aH36W1NjjWbR7wB5j41CmfpqAx8D4V4HCJhUydSH9Y', 'Cwr82cUKvfgnQSnLeN84CmtNaUGjYBD2qaBjsTxG43ZNh2M', 'FJaSzBUAJ1Nwa1u5TbKAFZG5MBtcUouTixdP7hAkmce2SDS', 'F8PTaGuZQo5fgRBFuhNnhd5euFiR3KLQNMVhYD5BduPKpHr', 'H9R6HgnZKtrcfBJP2M6WCvLJvp72Q96eURbCxmj6KCFVWjh', 'JKjFSGnsXeqhhPgvBmKb6vUnrTZHu17eydEDnpcorCnZXLG', 'EY35xeDhXibMDS5GmdHM2UzpvT4VoV9fGXDy3Muq6cyLPja', 'G7Ur4BnMSfP2qE7ruSob5gwGQ5nzkGWu7Yqh14FcMqnDtgB', 'EJGDDXSMXhwnJMrDs2KjMaznMtms9iFrYNhRL3shkMi9xLt', 'DXrJrPLLBHuapmYJ6tfuUStKubhykWmpgLckJpgFgjp2JvV', 'GCNHHRBtpDcgADCaRPMNNk52JiitGrcv3DMQxwE6owXAfbt', 'DiCVHECatzBxCKZeCmQhvqbAo9KK6CHubAWtQF85N3YbKFW', 'JECeyN45Ycx5t1M1hj2pBbsEZpdeGzDsYA1Wrt2Tdte2wV7', 'D8xUmqpe2aJd2QEPpG4pN3xZvboeQ21wwPhbNRCixrLq8Sj', 'HqZG9NMeeHLuHq4v3JmwVkHvGoEGAnrnNfYSvd2VYADNi7Z', 'FSpw3yUXP6NUHpkCcYhoeihK7ni5XugwDLSRpPaypyLGTGr', 'Cdaq3iUobZLYD2d8oqRQf1VKuRo6H64KsMBgJyxap4ZnARX', 'EtgM5E6pecndYpKCLkfYeRfKSmVxT1mVvaxceJFnhuKqTpG', 'Ff9DYio1TgYTyDU9z8Howt9pXCnuUPmsCY1ijfLBxSsJahj', 'H6bJZpE7PTFZgkLWGbeP3D1PqPGsFGqYAArFYa3ksCskmbt', 'DzmvnHyHyPN2kBHYQpXmrrUvV8KNzDgTPE2Ri2cjDuXhhLt', 'J6RoE9MSpnZhX7hniJAJjBCcTqpr49SNhLvaVeJgFd69TJZ', 'J6xn7Mr8pfed6gvvRPZ8HEEb89RCwheTBtxymg9Xw36hUUS', 'EdUs96fjEhyaTVxZsFo3fxEABLSpdopBFuhE7FFexCUyDv6', 'HvdGhdYcsJcSVBYnUEtHGpzV5A4XunjYWi8HAK8bGLvXdAb', 'FSfBJoCU9sRhCYWwQ55iBNGU5L8eu56iGnYGK9zizHxu8dY', 'GPdebankLfiSGaEPQWJBVULEmX2VpNdnyqsa1uiFJGDhTdT', 'Fk3yTFztZdZa4a7yBpisz9ceMyjgYLtZ9CKSCfFNVhoW2ZC', 'DokiayXWoMvotzchNdLSH4P4Fe7EvMESZvZL4Fn3NekoFtf', 'GfYXsuFn8MVensbKc6gKjPpxXMNh1LzcrBn4BfhNMgK1zKH', 'DuRV4MSm54UoX3MpFe3P7rxjBFLfnKRThxG66s4n3yF8qbJ', 'HhTownCNpkSbjLmtG6KdMhh7FJ2SLXxZcGXhHHeqpbchqcK', 'HyTJYoYwA8GGgDH2XVnUhsPgMq7nnnE4Qq2BdwmpdHNzSdo', 'GFwtzkxkTCFmXhVARYifwBK5D1JgCUmKynWhnv1CZgm9JNS', 'H9bhxgaMbND1u7TXxmMpcQCTiLfQtGmdmwAyKkRnKsndSXa', 'Fk6p456PTU6Sju2b83Cy8rU3NGFsXmWk9BrcqaMqhWW1jWf', 'DKinge6g7FNNj3hJZJUze6GByxkLR7ipCqrnuSQKGRMg37G', 'EUwcW86EFGDoDfUP2UJYuBwhCWC7cW9SdFH9cPh6UPBvBHj', 'FcjmeNzPk3vgdENm1rHeiMCxFK96beUoi2kb59FmCoZtkGF', 'F2GF2vuTCCmx8PnUNpWHTd5hTzjdbufa2uxdq2uT7PC5s9k', 'J1aHBD7YQ3xnSwgFJNokjsEo7NjLTf36ZEHD2LTpeo7KAq8', 'HJ1dGPxVr13KHGiCTGQfZjZMKGc8J52CsHEjcEXNMDyeGxf', 'FagAVsTYT8QghxypUtLcfnmnnhPhPpf854UNuptpQKuNndK', 'CmfwTdJ1F7Qd2HLAQ6A8FdNtz9hKvTMr2FkWtBQR1vECYjo', 'GbpLB9AZwVBBfecbMoTv3HCVb6irwN6y5YeA7uDNoUuRFrL', 'D3JqthKZjAEge84RQ3dheuQmaX2nVhk9A3sHY1rGNbStiFg', 'DEFQigjrErCANqTMiTRuy7BB5L46q9C36Bxqe41GV1yR6vA', 'F7BeW4g5ViG8xGJQAzguGPxiX9QNdoPNc3YqF1bV8d9XkVV', 'DGC4rANssfdpry7FQFznHo2b3QbDHyQZM58esJU6RskB41y', 'HvjQwyG8NDFSD3ZP7VTbfBXHw4mZZd7LRMTcaj9TdfLynzu', 'Faa8iXWy2wxo7ryLEhGCNeb55d8rnVy9SN25NiCmmqP6QMV', 'FwPTgWjafLgtxoRHK7pkUc2NJ9YzD7wHeCny2fMk41T9jKW', 'ErVvRnhXrJS7W9rTtnDECpZTFyLACtDcXEPtzEyYw4b8zcg', 'GSWsxFWwvfpppd4q5iBa3fiBp3twEGvtYZFWNRVF17And24', 'HHARzd4icVZULpMVEGZRiLhjfb3iDDohg1bdHRBusrMUvfd', 'G9vLBYmeiQcD8t53djad6sH2MALaeJy9zaEUyknEVma9sa6', 'HZvvFHgPdhDr6DHN43xT1sP5fDyzLDFv5t5xwmXBrm6dusm', 'ESaTdKYYtRYhJbYjMzgKauNyZHbaNzx2vknC9eioqKusWSt', 'FSETB7JeTuTsJBYzUcKBtHXBYtBft3pZ87FUxP2GaY4acFh', 'GqomGHs3CpaoG7kemv9hb6LCaBSazXMPaaCyDrP6CxRrgcF', 'DDkGq46ftxusKM4n4jfEr7MBW1DPGuVQDeExMFQbRtnsenD', 'F8DXBsUQrvVvL9AvkEqxykmy1AWcBcn2CqjG3nyzYRFVJeS', 'G7eJUS1A7CdcRb2Y3zEDvfAJrM1QtacgG6mPD1RsPTJXxPQ', 'Db2P54HPMkR8kqbP5RfWuXRFKhZ8NLQ77aT7VBZYfpKqTGP', 'EdWNepHg6UUyqK433qDpBjJ4ZUmyvnoQPLDFs69dExG1Dii', 'FzBBpxixSuZkeXxXeiUbvFYxcd3JAP5BEAcgDuhRudJTwmZ', 'Eg2z2dcScFf4foDN4Gxn6JoJ7JeDN1U7m49jNssUZMLtNrD', 'HeCK315sYXruJvZKB5uXtEBnpWwYHFaKfNNZ54G76Qr7Nkn', 'HshTdrZiSJntTRh5oNytD2QuT38VDJHoGQmfcrtrZbViSGL', 'Foc4anJqDfTMY3CvpCZzK9kUSudwc2oUTJ19K1E3JYFKy9j', 'FyRaMYvPqpNGq6PFGCcUWcJJWKgEz29ZFbdsnoNAczC2wJZ', 'CoqysGbay3t3Q7hXgEmGJJquhYYpo8PqLwvW1WsUwR7KvXm', 'GcgPeEtLketwNDVVdV2jEnaTU5RMdGQdpYqVshssBWy1txZ', 'H72hS8xLmSiSBqbBXHND2KbN8PAoevi52B685cbGki6T9nt', 'H4V7fZJPLiGtBvQfsadb7oGfV1StiXJTuca76Daa449rz27', 'J2HVhQBYpx5PkyxHYLsp555pvWzc2zvGfNUnTwgzvRqVGqm', 'GiBnzCGFofhmAvsUv9FUShUb8YJYYwWex3ThQNkbDDNprS6', 'HnnFkvtzrSrNpSUdG47E9ioBmDoDBnRUL6Lmy7GeqGcFc5c', 'GeYJhboY5bEc5WZFbrdxhEF9m6Y4NnbKzfCu1rBHxGWgviK', 'DGiLC1uvohfgHiirDtsr5HJRYXUFy9NdXj6YC6azcaRpvJZ', 'HP8qJ8P4u4W2QgsJ8jzVuSsjfFTT6orQomFD6eTRSGEbiTK', 'EoeAhrhJv2p6Sg5T67mxkLwrPnjKbH7iZSh8q1JTyvELvrR', 'FXCgfz7AzQA1fNaUqubSgXxGh77sjWVVkypgueWLmAcwv79', 'EXkCSUQ6Z1hKvGWMNkUDKrTMVHRduQHWc8G6vgo4NccUmhU', 'HAGcVQikZmEEgBBaChwjTVdwdA53Qopg2AYUtqw738C5kUq', 'GCsSfxv6h9mQ27s93ggBwzfguT6V61kmh8iadKSXAgQgKs5', 'E2ZKmzMzajqW838jXVSM5DyoUJUdEQddXNknEjoTwj2zBLj', 'GhyKZDoTghgvYqh1ensnGU1Vc1EY3Nwvhw5XdjTR8yfnEpV', 'GxujeV9rVRqsQHMbTiAiHATuZyrcHC68ZUJHtqS4LufuWLk', 'E7aXaaVBzDbhF8HevpcwDnWEu9mBRE6ai69JToi4fyz8c5P', 'DatW7XKJaJbfHLoVzVCHwAcwMySW9CRb6gFs9TpNNcCz9Mv', 'D8BfryaM5xN62UuKUpLK5zbZEUSBtA76yP9YddQTKXi9pkB', 'EtJ4HxHYEDvYWRJAdmV4hYpTbGMJCmEgnLC8zAf6u5ZyT7C', 'FtcERzFaCxB2ZR17PVeNxjAntfQ8a9KwS5i1bTYGWq15Yab', 'Gk6v5CXUy2cPMtVxXtN7ZUn7K5y7UFEm78xp98Uatjt2yuV', 'HqHeKZnc38rX2BJrmJiXfkqHUEUn56B9Nck6WgdiGeKUYBE', 'FwUst6h6JfHAK2tyhM9zCrKb1zSCgSe5kaoXZeqnVpbGGgt', 'CihSipv2H9mYBkRznedBZFxCNUrqvdmSH1Ptx5kSNRr3DEx', 'JKsMAG8Kpm9szen7Crx2FUrhzdwK9hAocA4X1mmQYYvRsrE', 'CpYNXnYC1mPPRSXMHvm9EUuhEqHjvj6kCN4kshqMdEpPYSF', 'CaSNtNAiKEsQiTcEU9DamgFeji9Hh63QFo91XrmftCTNBva', 'EKBtVYjZ6MMzRf334L1Zztf29kim8LrV5myftD3ABrmTHZd', 'DB2mp5nNhbFN86J9hxoAog8JALMhDXgwvWMxrRMLNUFMEY4', 'Dab4bfYTZRUDMWjYAUQuFbDreQ9mt7nULWu3Dw7jodbzVe9', 'EqWK9adqE7ZFBXAhTw5KXh6ZkMRKdxA555yHgj5tWQyPJYH', 'D5Xo7N2jginhYchuMNud2dYtby899koFcaRo2YWNmUquo5H', 'CsHw8cfzbnKdkCuUq24yuaPyJ1E5a55sNPqejJZ4h7CRtEs', 'JKcDN2BUrteeUZa5fxuTsPjpUZpNGE9NHVY1NUboHEQbmhN', 'CuCgiLpBEcfLEjwS8CBsEN4EWSvTF7vHeN6damkrv934kfZ', 'HEmqZS2Lw5nhGuddLjTm2KCcmsUddQXJM5bGVeA5GBWam6w', 'GS9UR4YmAib1NKWiQmxVpNytcriChSBPDZQyGJhYnunXPQ9', 'HPWceq92prqJVYnYfoZGzEwRGC5jCwGjArZcZzYAC7hXR9e', 'GKingZDLzrPimpMMCxWYT7ck8jXra2vvNkCUztUwyDT2Qet', 'Gh2cm56nMokKQ4frPx7r7UsXtimH6ckaXyKKogGn5dQ3yrD', 'Go5ov2WmFx2H9LfvaS3ec24TropY6Fgjcv56wBchyUv18a7', 'Fd9kKxogYUZLCoMz3uvjFTCkSGXRvgrKh7GEdbSK2yHd4oq', 'Cdhjt72TSezVDkUzdgyoSwXByfwQJjuXSYcDs5L8snyB8Yx', 'EzR9J3Afvash2tYCk8ZZwPYyq3zy92adVUXKcYjbYN46JWL', 'ELhnYFneiAP819s1t7Zmn4rs1tBbcrWVnkeGw4JYKdVp6jL', 'EicrAEbyauqktQpp4CdvsF2CQy3Ju7tGGMohj3h5sAPnKHL'];\n  //   // prettier-ignore\n  //   const expectedValidators2 = ['J2HVhQBYpx5PkyxHYLsp555pvWzc2zvGfNUnTwgzvRqVGqm', 'F8PTaGuZQo5fgRBFuhNnhd5euFiR3KLQNMVhYD5BduPKpHr', 'F7ia6uitDknF5HhGQnTPuBdqFM3nTqpMP8oeWgjU4gWiaVm', 'EafgFRX24PTgJAjGoaDuQLXQiLX4daSFQQttzGVticSD18o', 'F7BeW4g5ViG8xGJQAzguGPxiX9QNdoPNc3YqF1bV8d9XkVV', 'EqyCQvYn1cHBdzFVQHQeL1nHDcxHhjWR8V48KbDyHyuyCGV', 'HAGcVQikZmEEgBBaChwjTVdwdA53Qopg2AYUtqw738C5kUq', 'FAYyBS6arn3X4fvtdybaBUdw5zqVsv3PPwRXXXYRTzTGFDv', 'EZ7uBY7ZLohavWAugjTSUVVSABLfad77S6RQf4pDe3cV9q4', 'Faaf2qgwtaFum78U8TdEPnUd4u7HPk65cdaFj7KbEA6wi2Y', 'HA5jB52fFL1v4EoEHV4WgEiFZr7wGLiuBDZtSmnwKypvat7', 'EicrAEbyauqktQpp4CdvsF2CQy3Ju7tGGMohj3h5sAPnKHL', 'HWAGAxX2PAzNVg7w3ZyTprH5yvwbVwQ8rbWwuZxtQKbQupW', 'EXkCSUQ6Z1hKvGWMNkUDKrTMVHRduQHWc8G6vgo4NccUmhU', 'EdEQVcrr4pvzDLdb5xFkncKYhCE6uyuE1eKRTqg4PDvBgMa', 'DfiSM1qqP11ECaekbA64L2ENcsWEpGk8df8wf1LAfV2sBd4', 'E457XaKbj2yTB2URy8N4UuzmyuFRkcdxYs67UvSgVr7HyFb', 'FiBHHbxDiVysvn5YBV78YFVUUykZRfQYhjxymu8VXnTqNMr', 'DDkGq46ftxusKM4n4jfEr7MBW1DPGuVQDeExMFQbRtnsenD', 'H4V7fZJPLiGtBvQfsadb7oGfV1StiXJTuca76Daa449rz27', 'Hadx1N8xZq6tRtXWkm6s5madXTXqVhauDNmesZnpMYTufcv', 'Ed6JFR7JmeGtmrubAbXtJRjq9FPWhGRWMdmYnLRcsqaabT8', 'FpVmbKAqwoQaTBGwrTGsSu4nN1PCGY8XrQa4AaJVuzyVhh2', 'DimyMqRfrnqudRLVf5TxAM3T7X23PKvFDp85DDGabFKMQ2a', 'GhoRyTGK583sJec8aSiyyJCsP2PQXJ2RK7iPGUjLtuX8XCn', 'HeKaZXya7rPQq7h7KgKnb3jG7n7VBFPr7PFTFYd6ZQbZRiU', 'FXCgfz7AzQA1fNaUqubSgXxGh77sjWVVkypgueWLmAcwv79', 'DEFQigjrErCANqTMiTRuy7BB5L46q9C36Bxqe41GV1yR6vA', 'CoooBnE4hYaaQSKUDyCmZNdn8uE94rWa5ez3jrpFDE88vVA', 'GffdZaTf5oBcHVfx4VjnA6AMpHEBa3PiaBzTBUPkt24fUxp', 'HqGhgHg6YvnhaXSnaAUvyTDiR4FirB6Ssh2XNDedTzwCDv2', 'CinNnPhc4aGFQb7FWhUpnfwCNwXN3brcnCR1MkazkstcDJa', 'Fsspzse4QY1KqagdyrVqDt7cmVBr3HSVsfJ38WKgxsLVaXo', 'EoeAhrhJv2p6Sg5T67mxkLwrPnjKbH7iZSh8q1JTyvELvrR', 'GfXJERNZeUXh75pdFwksC9y42sftVti9K2AWntarJeM3gM4', 'Dg5QS2TKCMQbbZau7acRXHPN4xQxqqase8awmzLXXgmXb7w', 'Hqa9LGT3qF96agPYYbdfmUzh5P94MX9sqfF1WN4JnfRRVir', 'Gt6HqWBhdu4Sy1u8ASTbS1qf2Ac5gwdegwr8tWN8saMxPt5', 'Eyvj7oeaHyoqJbNPKPi3zjBks2bNoju3X29xJhsxD8d6GeQ', 'DGiLC1uvohfgHiirDtsr5HJRYXUFy9NdXj6YC6azcaRpvJZ', 'JLKcPk652UTtQfyrk7keyU6vqAEj5JXzDAvQdPxB1DJTnZ3', 'EPehck28w8fjRZCqZ3VZA7XpwGeipuVU4ETSwv7GkF5BdcG', 'CmfwTdJ1F7Qd2HLAQ6A8FdNtz9hKvTMr2FkWtBQR1vECYjo', 'F7Wa1su7NRSr6LWuhPWdXcQALDyzm8Vmev7WtV5jVPtJELs', 'HRMhY2CtVMp2yVSieKvq8Y8FHAhRKrGGMd6MoQe3iN6uJ2D', 'GiBnzCGFofhmAvsUv9FUShUb8YJYYwWex3ThQNkbDDNprS6', 'GC8hwHbQ4TdbYJJPDS96G7Uj9bivnW5z56UEkqujjwhQPp5', 'FmQHyUXoRkGTRySqVUy7NBAVhkKFvTtRtkzVTjZgBzbDzum', 'HgWWnAXFGikrPVD2FrZ6CRk7KnYdVDn7zVyye8hqFPMc5g1', 'FUfXiFsaoWbUeaWiWBDizP7VbTSLxMirbJEpLAk1g6YueJp', 'G7Ur4BnMSfP2qE7ruSob5gwGQ5nzkGWu7Yqh14FcMqnDtgB', 'FrL6qzw8bAFS6MTpbwLzEuAU9SCnALD5qMj9ZYFyt6zk5o4', 'DaCSCEQBRmMaBLRQQ5y7swdtfRzjcsewVgCCmngeigwLiax', 'J1aHBD7YQ3xnSwgFJNokjsEo7NjLTf36ZEHD2LTpeo7KAq8', 'HvjQwyG8NDFSD3ZP7VTbfBXHw4mZZd7LRMTcaj9TdfLynzu', 'D5NGokAYvFZmvFynjApN2DG4r1H1cQ9pyum7KC3KmtDYLkn', 'DFaiE6wT1caQ9u7eLkuphVQqbywWKzYjm5vRsMgk43GSb84', 'DwZBcfHnJtRmR7P23VgHQEzaeGPXQvH8jDvuob2qiyTHJMM', 'EibDgpnEGwqvWDcPUq7EThEB6kPEnqKuZog48E5jga8uWe8', 'GcqKn3HHodwcFc3Pg3Evcbc43m7qJNMiMv744e5WMSS7TGn', 'DSpbbk6HKKyS78c4KDLSxCetqbwnsemv2iocVXwNe2FAvWC', 'HJ1dGPxVr13KHGiCTGQfZjZMKGc8J52CsHEjcEXNMDyeGxf', 'DB2mp5nNhbFN86J9hxoAog8JALMhDXgwvWMxrRMLNUFMEY4', 'HWpid7FWbuA7GxN1yykrYqSe6cY3ybUaX3qErCoiiFDSqSh', 'JHTXKwYBhRZKWPW3nbtwtfE8dfRDYCS65cJXueMhg11k4cs', 'FtqCc5yLcLc1FkLyftyNuCtYFCudo3unwwPQLzCbnWppjoc', 'EzR9J3Afvash2tYCk8ZZwPYyq3zy92adVUXKcYjbYN46JWL', 'DGC4rANssfdpry7FQFznHo2b3QbDHyQZM58esJU6RskB41y', 'DbuPiksDXhFFEWgjsEghUypTJjQKyULiNESYji3Gaose2NV', 'HP8qJ8P4u4W2QgsJ8jzVuSsjfFTT6orQomFD6eTRSGEbiTK', 'ESaTdKYYtRYhJbYjMzgKauNyZHbaNzx2vknC9eioqKusWSt', 'DriCrAgdVV57NeQm5bWn5KQpVndVnXnm55BjRpe6qzZ5ktJ', 'HTrpbES27bqMvCioQGHpmJbBzwji6V5DeuXUfB1gsZ5Vkh1', 'EUwcW86EFGDoDfUP2UJYuBwhCWC7cW9SdFH9cPh6UPBvBHj', 'GeYJhboY5bEc5WZFbrdxhEF9m6Y4NnbKzfCu1rBHxGWgviK', 'JDA8ByXeJcn2BfNabC6WbBJKEBwM4k7oBVenVgJdzL32RJc', 'FLpAi7Zi4AB1JqJHWMrub4Umj4X73mZ5dAWE7Q6uS5e82pE', 'CmD9vaMYoiKe7HiFnfkftwvhKbxN9bhyjcDrfFRGbifJEG8', 'EUoo6xidm7okewmbh89tUW3sqaDLYKAvTCCNYc8zh4nPU4s', 'F4xrhkWsW2PSqZBuBMVJGE3LQy7R2ZWo3J8d6KEsDznrDF8', 'F4LocUbsPrcC8xVap4wiTgDakzn3xFyXneuYDHRaHxnb6dH', 'H9bhxgaMbND1u7TXxmMpcQCTiLfQtGmdmwAyKkRnKsndSXa', 'ErVvRnhXrJS7W9rTtnDECpZTFyLACtDcXEPtzEyYw4b8zcg', 'J6RoE9MSpnZhX7hniJAJjBCcTqpr49SNhLvaVeJgFd69TJZ', 'Few2tfYD3wfyQXPCVkiqK8UGfuj5FK6ecadwfAmJQHBtASX', 'Etij9aH36W1NjjWbR7wB5j41CmfpqAx8D4V4HCJhUydSH9Y', 'Gc6YgfbTJ6pYXcwib6mk3KoiwncLm4dfdcN3nwFjvfi4Agd', 'DAT4gSgyMskggCmTQKfEM6hQgRy1NWdhtfMTAuPLsUAGUPy', 'HqFz5RBczgtKrHQGav7DFZwSwrDXxKjLWc95mMDidVdfpwC', 'GLiebiQp5f6G5vNcc7BgRE9T3hrZSYDwP6evERn3hEczdaM', 'G7mWyu1Pom5XreLHUzDEcvFp6WaMuLuo4QKxtDB9yJZnH69', 'FXezGfeLvze1DWUwwEc8MczpLSMnZrSDrcA7Ghyc84NaXGt', 'HnnFkvtzrSrNpSUdG47E9ioBmDoDBnRUL6Lmy7GeqGcFc5c', 'Gth5jQA6v9EFbpqSPgXcsvpGSrbTdWwmBADnqa36ptjs5m5', 'E2ZKmzMzajqW838jXVSM5DyoUJUdEQddXNknEjoTwj2zBLj', 'Eodfj4xjkw8ZFLLSS5RfP6vCMw8aM6qfM7BfeQMf6ivFWHy', 'GXaUd6gyCaEoBVzXnkLVGneCF3idnLNtNZs5RHTugb9dCpY', 'D948vxMSA6u7G5gqPGQdAUDMJbiR7wgqZ1La8XeBiXr9FTF', 'Fgqjkry96qFLpRqPZstNzgaqKXiVyrpzTqD55neMdW8PK6g', 'EfK27sX89DpagD3TCF4hF4rGZ1CnCGtYZvo94HZLU3GQuMj', 'DTLcUu92NoQw4gg6VmNgXeYQiNywDhfYMQBPYg2Y1W6AkJF', 'CrzGYAYYnguxoR5pGx4UbwLs2DkoxoLiLJd8kjZMQzDuq8r', 'E58yuhUAwWzhn2V4thF3VciAJU75eePPipMhxWZe9JKVVfq', 'JKjFSGnsXeqhhPgvBmKb6vUnrTZHu17eydEDnpcorCnZXLG', 'H6bJZpE7PTFZgkLWGbeP3D1PqPGsFGqYAArFYa3ksCskmbt', 'Fy2rsYCoowQBtuFXqLE65ehAY9T6KWcGiNCQAyPDCkfpm4s', 'FKJNhxaXraoh85DRvChSzoDKHMAk9cZYxoq5LQW7uqeAQMD', 'FBichC4g5HBmdWCu3ebdADWQbvjbN7KdodNKWBYpLFgxCcd', 'G7eJUS1A7CdcRb2Y3zEDvfAJrM1QtacgG6mPD1RsPTJXxPQ', 'G866nkBvVKUqTFwAukeLM7n6QH9JyJDUJ2EvGFzKdymzqc3', 'FAGzHVggwv1QRmkGjom1Foc24jzZS1CJGcWUzrGdW8FyXEm', 'FwPTgWjafLgtxoRHK7pkUc2NJ9YzD7wHeCny2fMk41T9jKW', 'GAfhRsNqB9hwEmRFPhMZCvicFJ1kVtRF3UChYyKHq612ZV9', 'FAp5gVpwhwdmnJ1Ycet9z6Uva5tnfyCfA3AaY7WGi7u3DU4', 'GU7kw1ZYDKchyzhrAQ3imiY7s4fsoeFCvgeaU5XkTi9ABuB', 'EGZEgucx8vTCSak5uBwwkPkZ7FiYCWYmhpMjWFupdMAq2BN', 'E8QEnkMMyWWrHPTbA7jo547SpkoGcE6yoTXHmrQeXY2sGnT', 'FAtJupteW5urNYVQvUcLaw2X9xtdwjumK2gvJpuBnAwFHvq', 'GTzRQPzkcuynHgkEHhsPBFpKdh4sAacVRsnd8vYfPpTMeEY', 'FX7rJbfiTFCqBuCWHLgR8SosDyZh842nv79mdQF4vxnZrhS', 'DrkY92Yq67zJ7T8XWN7SAXbnNDJhzkADutwhhhPyW3tQKTw', 'GfYXsuFn8MVensbKc6gKjPpxXMNh1LzcrBn4BfhNMgK1zKH', 'Fk6p456PTU6Sju2b83Cy8rU3NGFsXmWk9BrcqaMqhWW1jWf', 'FagAVsTYT8QghxypUtLcfnmnnhPhPpf854UNuptpQKuNndK', 'DokiayXWoMvotzchNdLSH4P4Fe7EvMESZvZL4Fn3NekoFtf', 'DTMCVLVqNj5L3kpuftg49bY9xozwhRyF52sEHdBySbpbPkt', 'FD3A8DXs16wGvcoi9stjpwz2pmxXFymTkVyVM4Tq5z6LWCK', 'EFjHdypk8xLf3ocDEFPaKFWVcfamH8mpvfUeXHvRWpSBk2M', 'Eo9RxTKq2WppUvRRycUmLFHJvHtBVoxURhDe78ZKmjoJfWN', 'Faa8iXWy2wxo7ryLEhGCNeb55d8rnVy9SN25NiCmmqP6QMV', 'CdEm1ErGKML3waXabLvn3NyqdAGXBQJVngLaM86YM5Yb9dr', 'Et5ne6GRrWZ178npoYdnG8RRU92gzqBiSRf4hTaU3Yonsf2', 'GbpLB9AZwVBBfecbMoTv3HCVb6irwN6y5YeA7uDNoUuRFrL', 'EyibGsAttxpNBkgjMxNTArskxkdEFFbwghYuuaZyvu9rmo2', 'H9R6HgnZKtrcfBJP2M6WCvLJvp72Q96eURbCxmj6KCFVWjh', 'HyTJYoYwA8GGgDH2XVnUhsPgMq7nnnE4Qq2BdwmpdHNzSdo', 'FSETB7JeTuTsJBYzUcKBtHXBYtBft3pZ87FUxP2GaY4acFh', 'Eo4boG437k7gFy75VqPrWP5gHSGi9Sm6CZzLFFsCGYaSPzM', 'HeeJfizAEvorbkinL4GfRUYpxUiFST3dpnUHrh9ga2Z8Cpm', 'D3JqthKZjAEge84RQ3dheuQmaX2nVhk9A3sHY1rGNbStiFg', 'FChhpqk6Er57sXMC71F2aQ7EsNBQZTe3wUGXfKEvLH7W8zE', 'F7Nnn8nQL3Bjxap8Ax1HDZcXdqXZxtqBgn5VXqx8bLhZh8N', 'EonK7NScfhd7ZRfgnLhm4cKRFJWK1z59zPximUZRg8VjHQj', 'FPRN9EfcCTswkRXfrkwoouep8uhVJRvMy1hnhB4Hb73biwK', 'FFdDXFK1VKG5QgjvqwxdVjo8hGrBveaBFfHnWyz1MAmLL82', 'FiHWU9AjN7z2no8zyiVEXtiTE46izxDgEcF1KM4r2r1GK59', 'F8DXBsUQrvVvL9AvkEqxykmy1AWcBcn2CqjG3nyzYRFVJeS', 'DrQHiQu5VkaRuv1H3iELXVqsvD3SV3E8xNjJqXUgECSg23R', 'GptHKfncW4Xwif6ohcZx6apt4B7jU7Pugvw1usQygP8WWQ7', 'FhmaBgRFjZYFUWJp91ZHUbuW2Dm32VH4BVhnRQJqfpMmEok', 'DiCVHECatzBxCKZeCmQhvqbAo9KK6CHubAWtQF85N3YbKFW', 'DKinge6g7FNNj3hJZJUze6GByxkLR7ipCqrnuSQKGRMg37G', 'GCiTn1UJQT9TE5iamqoKweVoWGRZr9DF8uKXL4cG98fXczf', 'EviBmmkq5o5ak2jUo71SPuDEdwGTr8Yz8U5tXBgF6fy8kKV', 'Cwr82cUKvfgnQSnLeN84CmtNaUGjYBD2qaBjsTxG43ZNh2M', 'GZ5xCKCC8JRpJSMgAoDJAFAuQV8gD9Xz2cJca4mR7oRhzL9', 'DbAdiLJQDFzLyaLsoFCzrpBLuaBXXqQKdpewUSxqiWJadmp', 'DKUQiUWNPGvGYrgaxWqduJVRqWUYXUeKprX9EJENhxYvVyS', 'F2GF2vuTCCmx8PnUNpWHTd5hTzjdbufa2uxdq2uT7PC5s9k', 'Cs1jHXYHxZyWKsGPvYY1BknhLdpNa1iXGja4Kn8hQZs7BsH'];\n  //   const vs1 = validators1.map((v) => v.toString());\n  //   const vs2 = validators2.map((v) => v.toString());\n  //\n  //   expect(expectedValidators1).toEqual(vs1);\n  //   expect(expectedValidators2).toEqual(vs2);\n  // });\n  //\n\n  //need healthier endpoint\n  it.skip('support http provider', async () => {\n    const apiService = await prepareApiService(HTTP_ENDPOINT);\n    const api = apiService.api;\n    const blockhash = await api.rpc.chain.getBlockHash(1);\n    const block = await api.rpc.chain.getBlock(blockhash);\n    const mockBlock = wrapBlock(block, [], 1) as unknown as SubstrateBlock;\n    const runtimeVersion = { specVersion: 1 } as unknown as RuntimeVersion;\n\n    const patchedApi = await apiService.getPatchedApi(\n      mockBlock.block.header,\n      runtimeVersion,\n    );\n    await expect(patchedApi.query.system.events()).resolves.toHaveLength(2);\n  });\n\n  /* This test can be reenabled once https://github.com/polkadot-js/api/pull/4540 has been released and the api is updated */\n  it('can correctly call rpc methods that use block number', async () => {\n    const apiService = await prepareApiService(\n      'wss://moonbeam-alpha.api.onfinality.io/public-ws',\n      '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527',\n    );\n    const api = apiService.api;\n\n    const blockNumber = 1545235;\n    const blockhash = await api.rpc.chain.getBlockHash(blockNumber);\n    const block = await api.rpc.chain.getBlock(blockhash);\n    const mockBlock = wrapBlock(block, [], 1103) as unknown as SubstrateBlock;\n    const runtimeVersion = { specVersion: 1103 } as unknown as RuntimeVersion;\n\n    const patchedApi = await apiService.getPatchedApi(\n      mockBlock.block.header,\n      runtimeVersion,\n    );\n    /* If Block number not provided should be ignored and `blockNumber` above used */\n    const balance = await patchedApi.rpc.eth.getBalance(\n      '0x59ce189fd40611162017deb88d826C3485f41e0D',\n    );\n    expect(balance.toString()).toEqual('878428609000000000');\n\n    /* If Block number provided, but less than `blockNumber`, should use new Block number */\n    const balance2 = await patchedApi.rpc.eth.getBalance(\n      '0x59ce189fd40611162017deb88d826C3485f41e0D',\n      1345235,\n    );\n    expect(balance2.toString()).toEqual('4935166494000000000');\n\n    /* If Block number provided, but beyond than `blockNumber`, should throw error */\n    await expect(\n      patchedApi.rpc.eth.getBalance(\n        '0x59ce189fd40611162017deb88d826C3485f41e0D',\n        1645235,\n      ),\n    ).rejects.toThrow(\n      'input block 1645235 ahead of current block 1545235 is not supported',\n    );\n  });\n});\n\ndescribe('Load chain type hasher', () => {\n  let app: INestApplication;\n\n  afterEach(async () => {\n    return app?.close();\n  });\n\n  const prepareApiService = async (\n    endpoint = { 'wss://hyperbridge-paseo-rpc.blockops.network': {} },\n    chainId = '0x5388faf792c5232566d21493929b32c1f20a9c2b03e95615eefec2aa26d64b73',\n  ): Promise<ApiService> => {\n    const module = await Test.createTestingModule({\n      providers: [\n        ConnectionPoolStateManager,\n        ConnectionPoolService,\n        {\n          provide: 'ISubqueryProject',\n          useFactory: () => ({\n            id: 'test',\n            root: './',\n            network: {\n              endpoint,\n              chainId: chainId,\n            },\n            dataSources: [],\n            schema: new GraphQLSchema({}),\n            templates: [],\n            chainTypes: {\n              typesBundle: {\n                spec: {\n                  gargantua: {\n                    // @ts-ignore, we allow it to be string here\n                    hasher: 'keccakAsU8a',\n                    types: [{ minmax: [0, undefined], types: {} }],\n                  },\n                },\n              },\n            },\n          }),\n        },\n        {\n          provide: NodeConfig,\n          useFactory: () => ({}),\n        },\n        EventEmitter2,\n        {\n          provide: ApiService,\n          useFactory: ApiService.init,\n          inject: [\n            'ISubqueryProject',\n            ConnectionPoolService,\n            EventEmitter2,\n            NodeConfig,\n          ],\n        },\n      ],\n      imports: [EventEmitterModule.forRoot()],\n    }).compile();\n\n    app = module.createNestApplication();\n    await app.init();\n    return app.get(ApiService);\n  };\n\n  it('should use new hasher function, types hasher string should be replaced with function', async () => {\n    const apiService = await prepareApiService();\n    const api = apiService.api;\n    expect(typeof (api as any)._options.typesBundle.spec.gargantua.hasher).toBe(\n      'function',\n    );\n  });\n});\n"
  },
  {
    "path": "packages/node/src/indexer/api.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport { ApiPromise } from '@polkadot/api';\nimport {\n  ApiTypes,\n  DecoratedRpcSection,\n  RpcMethodResult,\n} from '@polkadot/api/types';\nimport { RuntimeVersion, Header } from '@polkadot/types/interfaces';\nimport {\n  AnyFunction,\n  DefinitionRpcExt,\n  RegisteredTypes,\n} from '@polkadot/types/types';\nimport { OverrideBundleDefinition } from '@polkadot/types/types/registry';\nimport {\n  IndexerEvent,\n  getLogger,\n  NodeConfig,\n  profilerWrap,\n  ConnectionPoolService,\n  ApiService as BaseApiService,\n  IBlock,\n  MetadataMismatchError,\n  exitWithError,\n} from '@subql/node-core';\nimport { SubstrateNetworkConfig } from '@subql/types';\nimport { IEndpointConfig } from '@subql/types-core';\nimport { SubstrateNodeConfig } from '../configure/NodeConfig';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { isOnlyEventHandlers } from '../utils/project';\nimport * as SubstrateUtil from '../utils/substrate';\nimport {\n  ApiPromiseConnection,\n  FetchFunc,\n  GetFetchFunc,\n} from './apiPromise.connection';\nimport { ApiAt, BlockContent, LightBlockContent } from './types';\n\nconst NOT_SUPPORT = (name: string) => () => {\n  throw new Error(`${name}() is not supported`);\n};\n\n// https://github.com/polkadot-js/api/blob/12750bc83d8d7f01957896a80a7ba948ba3690b7/packages/rpc-provider/src/ws/index.ts#L43\nconst MAX_RECONNECT_ATTEMPTS = 5;\n\nconst logger = getLogger('api');\n\n// This is a temp fix for https://github.com/polkadot-js/api/issues/5871\nfunction overrideConsoleWarn(): void {\n  // Ensure its only run once\n  if ((console as any).oldWarn) {\n    return;\n  }\n  (console as any).oldWarn = console.warn;\n  console.warn = function () {\n    // eslint-disable-next-line prefer-rest-params\n    const args = Array.from(arguments);\n\n    if (\n      args.length > 0 &&\n      args[0].includes('Unable to map [u8; 32] to a lookup index')\n    ) {\n      return;\n    }\n    (console as any).oldWarn.apply(console, args);\n  };\n}\n\nasync function dynamicImportHasher(\n  methodName: string,\n): Promise<(data: Uint8Array) => Uint8Array> {\n  const module = await import('@polkadot/util-crypto');\n  const method = module[methodName as keyof typeof module];\n  if (method) {\n    return method as (data: Uint8Array) => Uint8Array;\n  } else {\n    throw new Error(\n      `Hasher Method ${methodName} not found in @polkadot/util-crypto`,\n    );\n  }\n}\n\nasync function updateChainTypesHasher(\n  chainTypes: any,\n): Promise<RegisteredTypes | undefined> {\n  if (!chainTypes) {\n    return undefined;\n  }\n  if (chainTypes.hasher && typeof chainTypes.hasher === 'string') {\n    logger.info(`Set overall spec hasher to ${chainTypes.hasher}`);\n    chainTypes.hasher = await dynamicImportHasher(chainTypes.hasher);\n  }\n  const typesBundleSpecs: Record<string, OverrideBundleDefinition> | undefined =\n    chainTypes.typesBundle?.spec;\n  if (typesBundleSpecs) {\n    for (const [key, spec] of Object.entries(typesBundleSpecs)) {\n      if (spec.hasher && typeof spec.hasher === 'string') {\n        logger.info(`Set spec ${key} hasher to ${spec.hasher}`);\n        spec.hasher = await dynamicImportHasher(spec.hasher);\n      }\n    }\n  }\n  return chainTypes;\n}\n\n@Injectable()\nexport class ApiService\n  extends BaseApiService<\n    ApiPromise,\n    ApiAt,\n    IBlock<BlockContent>[] | IBlock<LightBlockContent>[],\n    ApiPromiseConnection,\n    IEndpointConfig\n  >\n  implements OnApplicationShutdown {\n  private _fetchBlocksFunction?: FetchFunc;\n  private fetchBlocksBatches: GetFetchFunc = () => this.fetchBlocksFunction;\n  private _currentBlockHash?: string;\n  private _currentBlockNumber?: number;\n\n  private nodeConfig: SubstrateNodeConfig;\n\n  private constructor(\n    @Inject('ISubqueryProject') private project: SubqueryProject,\n    connectionPoolService: ConnectionPoolService<ApiPromiseConnection>,\n    eventEmitter: EventEmitter2,\n    nodeConfig: NodeConfig,\n  ) {\n    super(connectionPoolService, eventEmitter);\n    this.nodeConfig = new SubstrateNodeConfig(nodeConfig);\n\n    this.updateBlockFetching();\n  }\n\n  private get fetchBlocksFunction(): FetchFunc {\n    assert(this._fetchBlocksFunction, 'fetchBlocksFunction not initialized');\n    return this._fetchBlocksFunction;\n  }\n\n  private get currentBlockHash(): string {\n    assert(this._currentBlockHash, 'currentBlockHash not initialized');\n    return this._currentBlockHash;\n  }\n\n  private set currentBlockHash(value: string) {\n    this._currentBlockHash = value;\n  }\n\n  private get currentBlockNumber(): number {\n    assert(this._currentBlockNumber, 'currentBlockNumber not initialized');\n    return this._currentBlockNumber;\n  }\n\n  private set currentBlockNumber(value: number) {\n    this._currentBlockNumber = value;\n  }\n\n  async onApplicationShutdown(): Promise<void> {\n    await this.connectionPoolService.onApplicationShutdown();\n  }\n\n  static async init(\n    project: SubqueryProject,\n    connectionPoolService: ConnectionPoolService<ApiPromiseConnection>,\n    eventEmitter: EventEmitter2,\n    nodeConfig: NodeConfig,\n  ): Promise<ApiService> {\n    const apiService = new ApiService(\n      project,\n      connectionPoolService,\n      eventEmitter,\n      nodeConfig,\n    );\n\n    overrideConsoleWarn();\n    let chainTypes: RegisteredTypes | undefined;\n    let network: SubstrateNetworkConfig;\n    try {\n      chainTypes = await updateChainTypesHasher(project.chainTypes);\n      network = project.network;\n\n      if (apiService.nodeConfig.primaryNetworkEndpoint) {\n        const [endpoint, config] = apiService.nodeConfig.primaryNetworkEndpoint;\n        (network.endpoint as Record<string, IEndpointConfig>)[endpoint] =\n          config;\n      }\n    } catch (e) {\n      exitWithError(new Error(`Failed to init api`, { cause: e }), logger);\n    }\n\n    if (chainTypes) {\n      logger.info('Using provided chain types');\n    }\n\n    await apiService.createConnections(\n      network,\n      //createConnection\n      (endpoint, config) =>\n        ApiPromiseConnection.create(\n          endpoint,\n          apiService.fetchBlocksBatches,\n          {\n            chainTypes,\n          },\n          config,\n        ),\n      //postConnectedHook\n      (connection: ApiPromiseConnection, endpoint: string, index: number) => {\n        const api = connection.unsafeApi;\n        api.on('connected', () => {\n          eventEmitter.emit(IndexerEvent.ApiConnected, {\n            value: 1,\n            apiIndex: index,\n            endpoint: endpoint,\n          });\n        });\n        api.on('disconnected', () => {\n          eventEmitter.emit(IndexerEvent.ApiConnected, {\n            value: 0,\n            apiIndex: index,\n            endpoint: endpoint,\n          });\n        });\n      },\n    );\n    return apiService;\n  }\n\n  async updateChainTypes(): Promise<void> {\n    const chainTypes = await updateChainTypesHasher(this.project.chainTypes);\n    await this.connectionPoolService.updateChainTypes(chainTypes);\n  }\n\n  updateBlockFetching(): void {\n    const onlyEventHandlers = isOnlyEventHandlers(this.project);\n    const skipTransactions =\n      this.nodeConfig.skipTransactions && onlyEventHandlers;\n\n    if (this.nodeConfig.skipTransactions) {\n      if (onlyEventHandlers) {\n        logger.info(\n          'skipTransactions is enabled, only events and block headers will be fetched.',\n        );\n      } else {\n        logger.info(\n          `skipTransactions is disabled, the project contains handlers that aren't event handlers.`,\n        );\n      }\n    } else {\n      if (onlyEventHandlers) {\n        logger.warn(\n          'skipTransactions is disabled, the project contains only event handlers, it could be enabled to improve indexing performance.',\n        );\n      } else {\n        logger.info(`skipTransactions is disabled.`);\n      }\n    }\n\n    const fetchFunc = skipTransactions\n      ? SubstrateUtil.fetchBlocksBatchesLight\n      : SubstrateUtil.fetchBlocksBatches;\n\n    if (this.nodeConfig?.profiler) {\n      this._fetchBlocksFunction = profilerWrap(\n        fetchFunc,\n        'SubstrateUtil',\n        'fetchBlocksBatches',\n      );\n    } else {\n      this._fetchBlocksFunction = fetchFunc;\n    }\n  }\n\n  get api(): ApiPromise {\n    return this.unsafeApi;\n  }\n\n  async getPatchedApi(\n    header: Header,\n    runtimeVersion?: RuntimeVersion,\n  ): Promise<ApiAt> {\n    this._currentBlockHash = header.hash.toString();\n    this._currentBlockNumber = header.number.toNumber();\n\n    const api = this.api;\n    const apiAt = (await api.at(\n      this.currentBlockHash,\n      runtimeVersion,\n    )) as ApiAt;\n    this.patchApiRpc(api, apiAt);\n    return apiAt;\n  }\n\n  private redecorateRpcFunction<T extends ApiTypes>(\n    original: RpcMethodResult<T, AnyFunction>,\n  ): RpcMethodResult<T, AnyFunction> {\n    const methodName = this.getRPCFunctionName(original);\n    if (original.meta.params) {\n      const hashIndex = original.meta.params.findIndex(\n        ({ isHistoric }) => isHistoric,\n      );\n      if (hashIndex > -1) {\n        const isBlockNumber =\n          original.meta.params[hashIndex].type === 'BlockNumber';\n\n        const ret = (async (...args: any[]) => {\n          const argsClone = [...args];\n\n          if (isBlockNumber) {\n            if (argsClone[hashIndex] === undefined) {\n              argsClone[hashIndex] = this.currentBlockNumber;\n            } else if (argsClone[hashIndex] > this.currentBlockNumber) {\n              throw new Error(\n                `input block ${argsClone[hashIndex]} ahead of current block ${this.currentBlockNumber} is not supported`,\n              );\n            }\n          }\n          // is block hash\n          else {\n            if (argsClone[hashIndex] === undefined) {\n              argsClone[hashIndex] = this.currentBlockHash;\n            } else {\n              const atBlock = await this.api.rpc.chain.getBlock(\n                argsClone[hashIndex],\n              );\n              const atBlockNumber = atBlock.block.header.number.toNumber();\n              if (atBlockNumber > this.currentBlockNumber) {\n                throw new Error(\n                  `input block hash ${argsClone[hashIndex]} ahead of current block ${this.currentBlockNumber} is not supported`,\n                );\n              }\n            }\n          }\n\n          return original(...argsClone);\n        }) as RpcMethodResult<T, AnyFunction>;\n        ret.raw = NOT_SUPPORT(`${methodName}.raw`);\n        ret.meta = original.meta;\n        return ret;\n      }\n    }\n\n    const ret = NOT_SUPPORT(methodName) as unknown as RpcMethodResult<\n      T,\n      AnyFunction\n    >;\n    ret.raw = NOT_SUPPORT(`${methodName}.raw`);\n    ret.meta = original.meta;\n    return ret;\n  }\n\n  private patchApiRpc<T extends ApiTypes = 'promise'>(\n    api: ApiPromise,\n    apiAt: ApiAt,\n  ): void {\n    apiAt.rpc = Object.entries(api.rpc).reduce(\n      (acc, [module, rpcMethods]) => {\n        acc[module as keyof ApiPromise['rpc']] = Object.entries(\n          rpcMethods,\n        ).reduce(\n          (accInner, [name, rpcPromiseResult]) => {\n            accInner[name] = this.redecorateRpcFunction<T>(\n              rpcPromiseResult as RpcMethodResult<T, AnyFunction>,\n            );\n            return accInner;\n          },\n          {} as DecoratedRpcSection<T, any>,\n        ) as any;\n        return acc;\n      },\n      {} as ApiPromise['rpc'],\n    );\n  }\n\n  private getRPCFunctionName<T extends 'promise' | 'rxjs'>(\n    original: RpcMethodResult<T, AnyFunction>,\n  ): string {\n    const ext = original.meta as unknown as DefinitionRpcExt;\n\n    return `api.rpc.${ext?.section ?? '*'}.${ext?.method ?? '*'}`;\n  }\n\n  // Overrides the super function because of the specVer\n  async fetchBlocks(\n    heights: number[],\n    overallSpecVer?: number,\n    numAttempts = MAX_RECONNECT_ATTEMPTS,\n  ): Promise<IBlock<LightBlockContent>[] | IBlock<BlockContent>[]> {\n    return this.retryFetch(async () => {\n      // Get the latest fetch function from the provider\n      const apiInstance = this.connectionPoolService.api;\n      return apiInstance.fetchBlocks(heights, overallSpecVer);\n    }, numAttempts);\n  }\n\n  // Polkadot uses genesis hash instead of chainId\n  protected assertChainId(\n    network: { chainId: string },\n    connection: ApiPromiseConnection,\n  ): void {\n    if (network.chainId !== connection.networkMeta.genesisHash) {\n      throw new MetadataMismatchError(\n        'ChainId',\n        network.chainId,\n        connection.networkMeta.genesisHash,\n      );\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/apiPromise.connection.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { ApiPromise, WsProvider } from '@polkadot/api';\nimport { ApiOptions } from '@polkadot/api/types';\nimport { ProviderInterface } from '@polkadot/rpc-provider/types';\nimport { RegisteredTypes } from '@polkadot/types/types';\nimport {\n  ApiConnectionError,\n  ApiErrorType,\n  DisconnectionError,\n  LargeResponseError,\n  NetworkMetadataPayload,\n  RateLimitError,\n  TimeoutError,\n  IApiConnectionSpecific,\n  IBlock,\n} from '@subql/node-core';\nimport { IEndpointConfig } from '@subql/types-core';\nimport * as SubstrateUtil from '../utils/substrate';\nimport { ApiAt, BlockContent, LightBlockContent } from './types';\nimport { createCachedProvider } from './x-provider/cachedProvider';\nimport { HttpProvider } from './x-provider/http';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { version: packageVersion } = require('../../package.json');\n\nconst RETRY_DELAY = 2_500;\n\nexport type FetchFunc =\n  | typeof SubstrateUtil.fetchBlocksBatches\n  | typeof SubstrateUtil.fetchBlocksBatchesLight;\n\n// We use a function to get the fetch function because it can change depending on the skipTransactions feature\nexport type GetFetchFunc = () => FetchFunc;\n\nexport class ApiPromiseConnection\n  implements\n    IApiConnectionSpecific<\n      ApiPromise,\n      ApiAt,\n      IBlock<BlockContent>[] | IBlock<LightBlockContent>[]\n    >\n{\n  readonly networkMeta: NetworkMetadataPayload;\n\n  private constructor(\n    public unsafeApi: ApiPromise,\n    private fetchBlocksBatches: GetFetchFunc,\n  ) {\n    this.networkMeta = {\n      chain: unsafeApi.runtimeChain.toString(),\n      specName: unsafeApi.runtimeVersion.specName.toString(),\n      genesisHash: unsafeApi.genesisHash.toString(),\n    };\n  }\n\n  static async create(\n    endpoint: string,\n    fetchBlocksBatches: GetFetchFunc,\n    args: { chainTypes?: RegisteredTypes },\n    config: IEndpointConfig,\n  ): Promise<ApiPromiseConnection> {\n    let provider: ProviderInterface;\n    let throwOnConnect = false;\n\n    const headers = {\n      'User-Agent': `SubQuery-Node ${packageVersion}`,\n      ...config.headers,\n    };\n\n    if (endpoint.startsWith('ws')) {\n      provider = createCachedProvider(\n        new WsProvider(endpoint, RETRY_DELAY, headers),\n      );\n    } else if (endpoint.startsWith('http')) {\n      provider = createCachedProvider(new HttpProvider(endpoint, headers));\n      throwOnConnect = true;\n    } else {\n      throw new Error(`Invalid endpoint: ${endpoint}`);\n    }\n\n    const apiOption = {\n      provider,\n      throwOnConnect,\n      noInitWarn: true,\n      ...args.chainTypes,\n    };\n    const api = await ApiPromise.create(apiOption);\n    return new ApiPromiseConnection(api, fetchBlocksBatches);\n  }\n\n  safeApi(height: number): ApiAt {\n    throw new Error(`Not Implemented`);\n  }\n\n  async fetchBlocks(\n    heights: number[],\n    overallSpecVer?: number,\n  ): Promise<IBlock<BlockContent>[] | IBlock<LightBlockContent>[]> {\n    const blocks = await this.fetchBlocksBatches()(\n      this.unsafeApi,\n      heights,\n      overallSpecVer,\n    );\n    return blocks;\n  }\n\n  async apiConnect(): Promise<void> {\n    return new Promise<void>((resolve) => {\n      if (this.unsafeApi.isConnected) {\n        resolve();\n      }\n\n      this.unsafeApi.on('connected', () => {\n        resolve();\n      });\n\n      if (!this.unsafeApi.isConnected) {\n        this.unsafeApi.connect();\n      }\n    });\n  }\n\n  async apiDisconnect(): Promise<void> {\n    await this.unsafeApi.disconnect();\n  }\n\n  async updateChainTypes(chainTypes: RegisteredTypes): Promise<void> {\n    // Typeof Decorate<'promise' | 'rxjs'>, but we need to access this private method\n    const currentApiOptions = (this.unsafeApi as any)._options as ApiOptions;\n    const apiOption = {\n      ...currentApiOptions,\n      ...chainTypes,\n    };\n    this.unsafeApi = await ApiPromise.create(apiOption);\n  }\n\n  handleError = ApiPromiseConnection.handleError;\n\n  static handleError(e: Error): ApiConnectionError {\n    let formatted_error: ApiConnectionError;\n    if (e.message.startsWith(`No response received from RPC endpoint in`)) {\n      formatted_error = new TimeoutError(e);\n    } else if (e.message.startsWith(`disconnected from `)) {\n      formatted_error = new DisconnectionError(e);\n    } else if (e.message.startsWith(`-32029: Too Many Requests`)) {\n      formatted_error = new RateLimitError(e);\n    } else if (e.message.includes(`Exceeded max limit of`)) {\n      formatted_error = new LargeResponseError(e);\n    } else {\n      formatted_error = new ApiConnectionError(\n        e.name,\n        e.message,\n        ApiErrorType.Default,\n      );\n    }\n    return formatted_error;\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './types';\nexport * from './substrateDictionary.service';\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/substrateDictionary.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport { isCustomDs } from '@subql/common-substrate';\n\nimport {\n  NodeConfig,\n  DsProcessorService,\n  IBlockchainService,\n} from '@subql/node-core';\nimport axios from 'axios';\nimport { GraphQLSchema } from 'graphql';\nimport { SubqueryProject } from '../../configure/SubqueryProject';\nimport { SubstrateDictionaryService } from './substrateDictionary.service';\nimport { SubstrateDictionaryV1 } from './v1';\nimport { SubstrateDictionaryV2 } from './v2';\n\nfunction testSubqueryProject(\n  endpoint: string[],\n  chainId: string,\n): SubqueryProject {\n  return {\n    id: 'test',\n    root: './',\n    network: {\n      endpoint,\n      dictionary: ['http://mock-dictionary-v2'],\n      chainId: chainId,\n    },\n    dataSources: [],\n    schema: new GraphQLSchema({}),\n    templates: [],\n  } as unknown as SubqueryProject;\n}\n\n// Mock jest and set the type\njest.mock('axios');\nconst mockedAxios = axios as jest.Mocked<typeof axios>;\n\ndescribe('Substrate Dictionary service', function () {\n  let dictionaryService: SubstrateDictionaryService;\n\n  beforeEach(() => {\n    const nodeConfig = new NodeConfig({\n      subquery: 'dictionaryService',\n      subqueryName: 'asdf',\n      networkEndpoint: { 'wss://polkadot.api.onfinality.io/public-ws': {} },\n      dictionaryTimeout: 10,\n      networkDictionary: ['http://mock-dictionary-v2'],\n      dictionaryRegistry: 'false',\n    });\n    const project = testSubqueryProject(\n      ['wss://polkadot.api.onfinality.io/public-ws'],\n      '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n    );\n    const dsProcessor = new DsProcessorService(\n      project,\n      { isCustomDs } as IBlockchainService,\n      nodeConfig,\n    );\n\n    dictionaryService = new SubstrateDictionaryService(\n      project,\n      nodeConfig,\n      new EventEmitter2(),\n      dsProcessor,\n    );\n  });\n\n  afterEach(() => {\n    jest.clearAllMocks();\n  });\n\n  it('should use v1 if v2 init failed, can determine dictionary version by init dictionary', async () => {\n    const spyDictionaryV1Create = jest.spyOn(SubstrateDictionaryV1, 'create');\n    const spyDictionaryV2Create = jest.spyOn(SubstrateDictionaryV2, 'create');\n\n    await dictionaryService.initDictionaries();\n    expect(spyDictionaryV2Create).toHaveBeenCalledTimes(1);\n    expect(spyDictionaryV1Create).toHaveBeenCalledTimes(1);\n    expect(\n      (dictionaryService as any)._dictionaries.every(\n        (d: any) => d instanceof SubstrateDictionaryV1,\n      ),\n    ).toBeTruthy();\n  });\n\n  it('should use v2 if init passed', async () => {\n    const spyDictionaryV1Create = jest.spyOn(SubstrateDictionaryV1, 'create');\n    const mockedResponseData = {\n      result: {\n        availableBlocks: [{ startHeight: 1, endHeight: 10 }],\n        genesisHash: 'mockedGenesisHash',\n        filters: ['block', 'event'],\n        supportedResponses: ['complete'],\n      },\n    };\n    // @ts-ignore\n    mockedAxios.create.mockImplementation(() => {\n      return {\n        post: () => {\n          return {\n            status: 200,\n            data: mockedResponseData,\n          };\n        },\n      };\n    });\n\n    await dictionaryService.initDictionaries();\n    expect(spyDictionaryV1Create).toHaveBeenCalledTimes(0);\n    expect(\n      (dictionaryService as any)._dictionaries[0] instanceof\n        SubstrateDictionaryV2,\n    ).toBeTruthy();\n  });\n});\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/substrateDictionary.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport { NETWORK_FAMILY } from '@subql/common';\nimport {\n  NodeConfig,\n  DictionaryService,\n  getLogger,\n  DsProcessorService,\n} from '@subql/node-core';\nimport { SubstrateBlock, SubstrateDatasource } from '@subql/types';\nimport { SubqueryProject } from '../../configure/SubqueryProject';\nimport { SpecVersion } from './types';\nimport { SubstrateDictionaryV1 } from './v1';\nimport { SubstrateDictionaryV2 } from './v2';\n\nconst logger = getLogger('SubstrateDictionary');\n\n@Injectable()\nexport class SubstrateDictionaryService extends DictionaryService<\n  SubstrateDatasource,\n  SubstrateBlock\n> {\n  async initDictionaries(): Promise<void> {\n    const dictionariesV1: SubstrateDictionaryV1[] = [];\n    const dictionariesV2: SubstrateDictionaryV2[] = [];\n\n    if (!this.project) {\n      throw new Error(`Project in Dictionary service not initialized `);\n    }\n    const registryDictionaries = await this.resolveDictionary(\n      NETWORK_FAMILY.substrate,\n      this.project.network.chainId,\n      this.nodeConfig.dictionaryRegistry,\n    );\n\n    logger.debug(`Dictionary registry endpoints: ${registryDictionaries}`);\n\n    const dictionaryEndpoints: string[] = (\n      !Array.isArray(this.project.network.dictionary)\n        ? !this.project.network.dictionary\n          ? []\n          : [this.project.network.dictionary]\n        : this.project.network.dictionary\n    ).concat(registryDictionaries);\n\n    for (const endpoint of dictionaryEndpoints) {\n      try {\n        const dictionaryV2 = await SubstrateDictionaryV2.create(\n          endpoint,\n          this.nodeConfig,\n          this.project,\n          this.project.network.chainId,\n        );\n        dictionariesV2.push(dictionaryV2);\n      } catch (e) {\n        try {\n          const dictionaryV1 = await SubstrateDictionaryV1.create(\n            this.project,\n            this.nodeConfig,\n            this.dsProcessorService.getDsProcessor.bind(\n              this.dsProcessorService,\n            ),\n            endpoint,\n          );\n          dictionariesV1.push(dictionaryV1);\n        } catch (e) {\n          logger.warn(\n            `Dictionary endpoint \"${endpoint}\" is not a valid dictionary`,\n          );\n        }\n      }\n    }\n\n    // v2 should be prioritised\n    this.init([...dictionariesV2, ...dictionariesV1]);\n  }\n\n  constructor(\n    @Inject('ISubqueryProject') protected project: SubqueryProject,\n    nodeConfig: NodeConfig,\n    eventEmitter: EventEmitter2,\n    protected dsProcessorService: DsProcessorService,\n  ) {\n    super(project.network.chainId, nodeConfig, eventEmitter);\n  }\n\n  private getV1Dictionary(): SubstrateDictionaryV1 | undefined {\n    // TODO this needs to be removed once Substrate supports V2 dictionaries\n    if (this._currentDictionaryIndex === undefined) return undefined;\n    const dict = this._dictionaries[this._currentDictionaryIndex];\n    if (!dict) return undefined;\n    assert(\n      dict instanceof SubstrateDictionaryV1,\n      `Getting v1 dict returned a dictinoary that wasn't v1`,\n    );\n    return dict;\n  }\n\n  async getSpecVersions(): Promise<SpecVersion[] | undefined> {\n    const dict = this.getV1Dictionary();\n    if (!dict) return undefined;\n    return dict.getSpecVersions();\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { MetaData } from '@subql/utils';\n\nexport type SpecVersion = {\n  id: string;\n  start: number; //start with this block\n  end: number | null;\n};\n\nexport type SpecVersionDictionary = {\n  _metadata: MetaData;\n  specVersions: SpecVersion[];\n};\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/v1/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './substrateDictionaryV1';\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/v1/substrateDictionaryV1.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport { isCustomDs } from '@subql/common-substrate';\nimport {\n  NodeConfig,\n  DsProcessorService,\n  IBlockchainService,\n} from '@subql/node-core';\nimport {\n  SubstrateBlockHandler,\n  SubstrateCallHandler,\n  SubstrateDatasourceKind,\n  SubstrateEventHandler,\n  SubstrateHandlerKind,\n  SubstrateRuntimeHandler,\n} from '@subql/types';\nimport { GraphQLSchema } from 'graphql';\nimport { SubqueryProject } from '../../../configure/SubqueryProject';\nimport { SubstrateDictionaryService } from '../substrateDictionary.service';\nimport { buildDictionaryV1QueryEntries } from './substrateDictionaryV1';\n\nfunction testSubqueryProject(): SubqueryProject {\n  return {\n    id: 'test',\n    root: './',\n    network: {\n      endpoint: '',\n      chainId:\n        '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n    },\n    dataSources: [],\n    schema: new GraphQLSchema({}),\n    templates: [],\n  } as unknown as SubqueryProject;\n}\nconst nodeConfig = new NodeConfig({\n  subquery: 'asdf',\n  subqueryName: 'asdf',\n  dictionaryTimeout: 10,\n});\n\ndescribe('Substrate DictionaryService', () => {\n  it('should return all specVersion', async () => {\n    const project = testSubqueryProject();\n    const dictionaryService = new SubstrateDictionaryService(\n      project,\n      nodeConfig,\n      new EventEmitter2(),\n      new DsProcessorService(\n        project,\n        { isCustomDs } as IBlockchainService,\n        nodeConfig,\n      ),\n    );\n\n    // prepare dictionary service\n    await dictionaryService.initDictionaries();\n    // mock set dictionary (without ds)\n    (dictionaryService as any)._currentDictionaryIndex = 0;\n\n    const specVersions = await dictionaryService.getSpecVersions();\n\n    expect(specVersions?.length).toBeGreaterThan(0);\n    dictionaryService.onApplicationShutdown();\n  }, 50000);\n});\n\nconst makeDs = (handlers: SubstrateRuntimeHandler[]) => {\n  return {\n    name: '',\n    kind: SubstrateDatasourceKind.Runtime,\n    mapping: {\n      file: '',\n      handlers,\n    },\n  };\n};\nconst blockHandler: SubstrateBlockHandler = {\n  kind: SubstrateHandlerKind.Block,\n  handler: 'handleBlock',\n};\nconst callHandler: SubstrateCallHandler = {\n  kind: SubstrateHandlerKind.Call,\n  handler: 'handleCall',\n  filter: { method: 'call', module: 'module' },\n};\nconst eventHandler: SubstrateEventHandler = {\n  kind: SubstrateHandlerKind.Event,\n  handler: 'handleEvent',\n  filter: { method: 'event', module: 'module' },\n};\n\nconst eventHandlerWithUndefined: SubstrateEventHandler = {\n  kind: SubstrateHandlerKind.Event,\n  handler: 'handleEvent',\n  filter: { method: 'balance', module: undefined },\n};\n\nconst callHandlerWithUndefined: SubstrateCallHandler = {\n  kind: SubstrateHandlerKind.Call,\n  handler: 'handleCall',\n  filter: { isSigned: true, module: undefined, method: undefined },\n};\n\ndescribe('Building dictionary query entries', () => {\n  it('supports block handlers', () => {\n    /* If there are any blockhandlers without a modulo or timestamp filter we expect no query entries */\n    const result1 = buildDictionaryV1QueryEntries(\n      [makeDs([blockHandler])],\n      () => undefined as any,\n    );\n    expect(result1).toEqual([]);\n\n    const result2 = buildDictionaryV1QueryEntries(\n      [makeDs([blockHandler, callHandler, eventHandler])],\n      () => undefined as any,\n    );\n    expect(result2).toEqual([]);\n\n    const result3 = buildDictionaryV1QueryEntries(\n      [makeDs([blockHandler]), makeDs([callHandler]), makeDs([eventHandler])],\n      () => undefined as any,\n    );\n    expect(result3).toEqual([]);\n  });\n\n  it('supports block handlers with modulo filter', () => {\n    const result1 = buildDictionaryV1QueryEntries(\n      [\n        makeDs([\n          { ...blockHandler, filter: { modulo: 5 } },\n          callHandler,\n          eventHandler,\n        ]),\n      ],\n      () => undefined as any,\n    );\n    expect(result1).toEqual([\n      {\n        entity: 'extrinsics',\n        conditions: [\n          { field: 'call', value: 'call' },\n          { field: 'module', value: 'module' },\n        ],\n      },\n      {\n        entity: 'events',\n        conditions: [\n          { field: 'event', value: 'event' },\n          { field: 'module', value: 'module' },\n        ],\n      },\n    ]);\n  });\n\n  it('supports any handler with no filters', () => {\n    const result1 = buildDictionaryV1QueryEntries(\n      [makeDs([{ kind: SubstrateHandlerKind.Call, handler: 'handleCall' }])],\n      () => undefined as any,\n    );\n    expect(result1).toEqual([]);\n\n    const result2 = buildDictionaryV1QueryEntries(\n      [makeDs([{ kind: SubstrateHandlerKind.Event, handler: 'handleEvent' }])],\n      () => undefined as any,\n    );\n    expect(result2).toEqual([]);\n  });\n\n  it('supports custom ds processors', () => {\n    // mock custom ds processor dictionary return\n    const processors: Record<string, any> = {\n      'substrate/JsonfyCall': {\n        baseHandlerKind: {},\n        dictionaryQuery: () => {\n          return {\n            conditions: [\n              {\n                field: 'filter1',\n                value: 'foo',\n              },\n              {\n                field: 'filter2',\n                value: 'bar',\n              },\n            ],\n            entity: 'json',\n          };\n        },\n      },\n    };\n    // Processor WITH custom dictionary query\n    const result1 = buildDictionaryV1QueryEntries(\n      [\n        {\n          kind: 'substrate/Jsonfy',\n          processor: { file: '' },\n          assets: new Map(),\n          mapping: {\n            file: '',\n            handlers: [\n              {\n                kind: 'substrate/JsonfyCall',\n                handler: 'handleCall',\n                filter: {\n                  filter1: 'foo',\n                  filter2: 'bar',\n                },\n              },\n            ],\n          },\n        },\n      ],\n      (ds) => {\n        return {\n          kind: 'substrate/Jsonfy',\n          validate: () => true,\n          dsFilterProcessor: (ds) => true,\n          handlerProcessors: processors,\n        };\n      },\n    );\n\n    expect(result1).toEqual([\n      {\n        entity: 'json',\n        conditions: [\n          { field: 'filter1', value: 'foo' },\n          { field: 'filter2', value: 'bar' },\n        ],\n      },\n    ]);\n  });\n\n  it('create dictionary call filter condition and remove undefined fields', () => {\n    const result1 = buildDictionaryV1QueryEntries(\n      [makeDs([callHandlerWithUndefined])],\n      () => undefined as any,\n    );\n    expect(result1).toEqual([\n      {\n        conditions: [\n          {\n            field: 'isSigned',\n            value: true,\n          },\n        ],\n        entity: 'extrinsics',\n      },\n    ]);\n  });\n\n  it('create dictionary event filter condition and remove undefined fields', () => {\n    const result1 = buildDictionaryV1QueryEntries(\n      [makeDs([eventHandlerWithUndefined])],\n      () => undefined as any,\n    );\n    expect(result1).toEqual([\n      {\n        conditions: [\n          {\n            field: 'event',\n            value: 'balance',\n          },\n        ],\n        entity: 'events',\n      },\n    ]);\n  });\n});\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/v1/substrateDictionaryV1.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport { gql } from '@apollo/client/core';\nimport {\n  isCustomDs,\n  isRuntimeDs,\n  SubstrateCallFilter,\n  SubstrateCustomHandler,\n  SubstrateDataSource,\n  SubstrateEventFilter,\n  SubstrateHandler,\n  SubstrateHandlerKind,\n  SubstrateRuntimeHandlerFilter,\n} from '@subql/common-substrate';\nimport {\n  NodeConfig,\n  DictionaryV1,\n  timeout,\n  getLogger,\n  DsProcessorService,\n} from '@subql/node-core';\nimport { SubstrateBlockFilter, SubstrateDatasource } from '@subql/types';\nimport {\n  DictionaryQueryCondition,\n  DictionaryQueryEntry as DictionaryV1QueryEntry,\n} from '@subql/types-core';\nimport { buildQuery, GqlNode, GqlQuery } from '@subql/utils';\nimport { sortBy, uniqBy } from 'lodash';\nimport { SubqueryProject } from '../../../configure/SubqueryProject';\nimport { isBaseHandler, isCustomHandler } from '../../../utils/project';\nimport { SpecVersion, SpecVersionDictionary } from '../types';\n\ntype GetDsProcessor = DsProcessorService['getDsProcessor'];\n\nfunction eventFilterToQueryEntry(\n  filter: SubstrateEventFilter,\n): DictionaryV1QueryEntry {\n  const conditions: DictionaryQueryCondition[] = [];\n  if (filter.method) {\n    conditions.push({ field: 'event', value: filter.method });\n  }\n  if (filter.module) {\n    conditions.push({ field: 'module', value: filter.module });\n  }\n  return {\n    entity: 'events',\n    conditions,\n  };\n}\n\nfunction callFilterToQueryEntry(\n  filter: SubstrateCallFilter,\n): DictionaryV1QueryEntry {\n  return {\n    entity: 'extrinsics',\n    conditions: Object.keys(filter)\n      .map(\n        (key) =>\n          ({\n            field: key === 'method' ? 'call' : key,\n            value: filter[key as keyof SubstrateCallFilter],\n          }) as DictionaryQueryCondition,\n      )\n      .filter((c) => c.value !== undefined),\n  };\n}\n\nfunction getBaseHandlerKind(\n  ds: SubstrateDataSource,\n  handler: SubstrateHandler,\n  getDsProcessor: GetDsProcessor,\n): SubstrateHandlerKind | undefined {\n  if (isRuntimeDs(ds) && isBaseHandler(handler)) {\n    return handler.kind;\n  } else if (isCustomDs(ds) && isCustomHandler(handler)) {\n    const plugin = getDsProcessor(ds);\n    const baseHandler = plugin.handlerProcessors[handler.kind]?.baseHandlerKind;\n    if (!baseHandler) {\n      throw new Error(\n        `handler type ${handler.kind} not found in processor for ${ds.kind}`,\n      );\n    }\n    return baseHandler;\n  }\n}\n\nfunction getBaseHandlerFilters<T extends SubstrateRuntimeHandlerFilter>(\n  ds: SubstrateDataSource,\n  handlerKind: string,\n  getDsProcessor: GetDsProcessor,\n): T[] {\n  if (isCustomDs(ds)) {\n    const plugin = getDsProcessor(ds);\n    const processor = plugin.handlerProcessors[handlerKind];\n    return processor.baseFilter instanceof Array\n      ? (processor.baseFilter as T[])\n      : ([processor.baseFilter] as T[]);\n  } else {\n    throw new Error(`Expected a custom datasource here`);\n  }\n}\n\n// eslint-disable-next-line complexity\nexport function buildDictionaryV1QueryEntries(\n  dataSources: SubstrateDatasource[],\n  getDsProcessor: GetDsProcessor,\n): DictionaryV1QueryEntry[] {\n  const queryEntries: DictionaryV1QueryEntry[] = [];\n\n  for (const ds of dataSources) {\n    const plugin = isCustomDs(ds) ? getDsProcessor(ds) : undefined;\n    for (const handler of ds.mapping.handlers) {\n      const baseHandlerKind = getBaseHandlerKind(ds, handler, getDsProcessor);\n      let filterList: SubstrateRuntimeHandlerFilter[] = [];\n      if (isCustomDs(ds)) {\n        assert(plugin, 'plugin should be defined');\n        const processor = plugin.handlerProcessors[handler.kind];\n        const filter = (handler as SubstrateCustomHandler).filter;\n        if (processor.dictionaryQuery && filter) {\n          const queryEntry = processor.dictionaryQuery(filter, ds);\n          if (queryEntry) {\n            queryEntries.push(queryEntry);\n            continue;\n          }\n        }\n        filterList = getBaseHandlerFilters<SubstrateRuntimeHandlerFilter>(\n          ds,\n          handler.kind,\n          getDsProcessor,\n        );\n      } else if (handler.filter) {\n        filterList = [handler.filter];\n      }\n      // Filter out any undefined\n      filterList = filterList.filter(Boolean);\n      if (!filterList.length) return [];\n      switch (baseHandlerKind) {\n        case SubstrateHandlerKind.Block:\n          for (const filter of filterList as SubstrateBlockFilter[]) {\n            if (filter.modulo === undefined) {\n              return [];\n            }\n          }\n          break;\n        case SubstrateHandlerKind.Call: {\n          for (const filter of filterList as SubstrateCallFilter[]) {\n            if (\n              filter.module !== undefined ||\n              filter.method !== undefined ||\n              filter.isSigned !== undefined ||\n              filter.success !== undefined\n            ) {\n              queryEntries.push(callFilterToQueryEntry(filter));\n            } else {\n              return [];\n            }\n          }\n          break;\n        }\n        case SubstrateHandlerKind.Event: {\n          for (const filter of filterList as SubstrateEventFilter[]) {\n            if (filter.module !== undefined || filter.method !== undefined) {\n              queryEntries.push(eventFilterToQueryEntry(filter));\n            } else {\n              return [];\n            }\n          }\n          break;\n        }\n        default: {\n          throw new Error(`Unsupported handler kind: ${baseHandlerKind}`);\n        }\n      }\n    }\n  }\n\n  return uniqBy(\n    queryEntries,\n    (item) =>\n      `${item.entity}|${JSON.stringify(sortBy(item.conditions, (c) => c.field))}`,\n  );\n}\n\nconst logger = getLogger('substrate-dictionary-V1');\n\nexport class SubstrateDictionaryV1 extends DictionaryV1<SubstrateDataSource> {\n  constructor(\n    project: SubqueryProject,\n    nodeConfig: NodeConfig,\n    protected getDsProcessor: GetDsProcessor,\n    dictionaryUrl: string,\n    chainId?: string,\n  ) {\n    super(dictionaryUrl, chainId ?? project.network.chainId, nodeConfig);\n  }\n\n  static async create(\n    project: SubqueryProject,\n    nodeConfig: NodeConfig,\n    getDsProcessor: GetDsProcessor,\n    dictionaryUrl: string,\n    chainId?: string,\n  ): Promise<SubstrateDictionaryV1> {\n    const dictionary = new SubstrateDictionaryV1(\n      project,\n      nodeConfig,\n      getDsProcessor,\n      dictionaryUrl,\n      chainId,\n    );\n    await dictionary.init();\n    return dictionary;\n  }\n\n  buildDictionaryQueryEntries(\n    dataSources: SubstrateDataSource[],\n  ): DictionaryV1QueryEntry[] {\n    return buildDictionaryV1QueryEntries(dataSources, this.getDsProcessor);\n  }\n\n  parseSpecVersions(raw?: SpecVersionDictionary): SpecVersion[] {\n    if (raw === undefined) {\n      return [];\n    }\n    const specVersionBlockHeightSet = new Set<SpecVersion>();\n    const specVersions = (raw.specVersions as any).nodes;\n    const _metadata = raw._metadata;\n\n    // Add range for -1 specVersions\n    for (let i = 0; i < specVersions.length - 1; i++) {\n      specVersionBlockHeightSet.add({\n        id: specVersions[i].id,\n        start: Number(specVersions[i].blockHeight),\n        end: Number(specVersions[i + 1].blockHeight) - 1,\n      });\n    }\n    if (specVersions && specVersions.length >= 0) {\n      // Add range for the last specVersion\n      if (_metadata.lastProcessedHeight) {\n        specVersionBlockHeightSet.add({\n          id: specVersions[specVersions.length - 1].id,\n          start: Number(specVersions[specVersions.length - 1].blockHeight),\n          end: Number(_metadata.lastProcessedHeight),\n        });\n      }\n    }\n    return Array.from(specVersionBlockHeightSet);\n  }\n\n  async getSpecVersionsRaw(): Promise<SpecVersionDictionary | undefined> {\n    const { query } = this.specVersionQuery();\n    try {\n      const resp = await timeout(\n        this.client.query({\n          query: gql(query),\n        }),\n        this.nodeConfig.dictionaryTimeout,\n      );\n\n      const _metadata = resp.data._metadata;\n      const specVersions = resp.data.specVersions;\n      return { _metadata, specVersions };\n    } catch (err: any) {\n      logger.warn(err, `failed to fetch specVersion result`);\n      return undefined;\n    }\n  }\n\n  async getSpecVersions(): Promise<SpecVersion[] | undefined> {\n    try {\n      return this.parseSpecVersions(await this.getSpecVersionsRaw());\n    } catch {\n      return undefined;\n    }\n  }\n\n  private specVersionQuery(): GqlQuery {\n    const nodes: GqlNode[] = [\n      {\n        entity: '_metadata',\n        project: ['lastProcessedHeight', 'genesisHash'],\n      },\n      {\n        entity: 'specVersions',\n        project: [\n          {\n            entity: 'nodes',\n            project: ['id', 'blockHeight'],\n          },\n        ],\n        args: {\n          orderBy: 'BLOCK_HEIGHT_ASC',\n        },\n      },\n    ];\n    return buildQuery([], nodes);\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/v2/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './substrateDictionaryV2';\nexport * from './types';\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/v2/substrateDictionaryV2.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { SubstrateDataSource } from '@subql/common-substrate';\nimport {\n  NodeConfig,\n  DictionaryV2,\n  DictionaryResponse,\n  getLogger,\n  DictionaryV2QueryEntry,\n  RawDictionaryResponseData,\n  IBlock,\n} from '@subql/node-core';\nimport { SubstrateBlock, SubstrateDatasource } from '@subql/types';\nimport { SubqueryProject } from '../../../configure/SubqueryProject';\nimport { SubstrateDictionaryV2QueryEntry } from './types';\n\nconst MIN_FETCH_LIMIT = 200;\n\nexport function buildDictionaryV2QueryEntry(\n  dataSources: SubstrateDataSource[],\n): SubstrateDictionaryV2QueryEntry {\n  const dictionaryConditions: SubstrateDictionaryV2QueryEntry = {\n    logs: [],\n    transactions: [],\n  };\n  //TODO\n  return dictionaryConditions;\n}\n\nexport class SubstrateDictionaryV2 extends DictionaryV2<\n  SubstrateBlock,\n  SubstrateDatasource,\n  SubstrateDictionaryV2QueryEntry\n> {\n  protected buildDictionaryQueryEntries(\n    dataSources: SubstrateDataSource[],\n  ): DictionaryV2QueryEntry {\n    return buildDictionaryV2QueryEntry(dataSources);\n  }\n\n  constructor(\n    endpoint: string,\n    nodeConfig: NodeConfig,\n    project: SubqueryProject,\n    chainId?: string,\n  ) {\n    super(endpoint, chainId ?? project.network.chainId, nodeConfig);\n  }\n\n  static async create(\n    endpoint: string,\n    nodeConfig: NodeConfig,\n    project: SubqueryProject,\n    chainId?: string,\n  ): Promise<SubstrateDictionaryV2> {\n    const dictionary = new SubstrateDictionaryV2(\n      endpoint,\n      nodeConfig,\n      project,\n      chainId,\n    );\n    await dictionary.init();\n    return dictionary;\n  }\n\n  /**\n   *\n   * @param startBlock\n   * @param queryEndBlock this block number will limit the max query range, increase dictionary query speed\n   * @param batchSize\n   * @param conditions\n   */\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getData(\n    startBlock: number,\n    queryEndBlock: number,\n    limit = MIN_FETCH_LIMIT,\n  ): Promise<DictionaryResponse<IBlock<SubstrateBlock> | number> | undefined> {\n    return this.getData(startBlock, queryEndBlock, limit);\n  }\n\n  // TODO, complete this once substrate support v2\n  convertResponseBlocks(\n    result: RawDictionaryResponseData<any>,\n  ): DictionaryResponse<IBlock<SubstrateBlock>> | undefined {\n    return undefined;\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/dictionary/v2/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { DictionaryV2QueryEntry } from '@subql/node-core';\n\n/**\n * Substrate Fat dictionary RPC request filter conditions\n */\nexport type SubstrateDictionaryV2QueryEntry = DictionaryV2QueryEntry;\n"
  },
  {
    "path": "packages/node/src/indexer/fetch.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport { Module } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n  StoreService,\n  NodeConfig,\n  ConnectionPoolStateManager,\n  PoiSyncService,\n  InMemoryCacheService,\n  MonitorService,\n  CoreModule,\n  ConnectionPoolService,\n  UnfinalizedBlocksService,\n  DsProcessorService,\n  ProjectService,\n  DynamicDsService,\n  FetchService,\n  DictionaryService,\n  MultiChainRewindService,\n  blockDispatcherFactory,\n} from '@subql/node-core';\nimport { SubstrateDatasource } from '@subql/types';\nimport { BlockchainService } from '../blockchain.service';\nimport { ApiService } from './api.service';\nimport { ApiPromiseConnection } from './apiPromise.connection';\nimport { SubstrateDictionaryService } from './dictionary/substrateDictionary.service';\nimport { IndexerManager } from './indexer.manager';\nimport { RuntimeService } from './runtime/runtimeService';\nimport { BlockContent, LightBlockContent } from './types';\nimport { IIndexerWorker } from './worker/worker';\n\n@Module({\n  imports: [CoreModule],\n  providers: [\n    {\n      provide: 'APIService',\n      useFactory: ApiService.init,\n      inject: [\n        'ISubqueryProject',\n        ConnectionPoolService,\n        EventEmitter2,\n        NodeConfig,\n      ],\n    },\n    {\n      provide: 'RuntimeService',\n      useClass: RuntimeService,\n    },\n    {\n      provide: 'IBlockchainService',\n      useClass: BlockchainService,\n    },\n    DsProcessorService,\n    DynamicDsService,\n    {\n      provide: 'IUnfinalizedBlocksService',\n      useClass: UnfinalizedBlocksService,\n    },\n    {\n      useClass: ProjectService,\n      provide: 'IProjectService',\n    },\n    MultiChainRewindService,\n    IndexerManager,\n    {\n      provide: 'IBlockDispatcher',\n      useFactory: blockDispatcherFactory<\n        SubstrateDatasource,\n        BlockContent | LightBlockContent,\n        ApiPromiseConnection,\n        IIndexerWorker\n      >(path.resolve(__dirname, '../../dist/indexer/worker/worker.js'), [\n        'syncRuntimeService',\n        'getSpecFromMap',\n      ]),\n      inject: [\n        NodeConfig,\n        EventEmitter2,\n        'IProjectService',\n        'IProjectUpgradeService',\n        InMemoryCacheService,\n        StoreService,\n        'IStoreModelProvider',\n        PoiSyncService,\n        'ISubqueryProject',\n        DynamicDsService,\n        'IUnfinalizedBlocksService',\n        ConnectionPoolStateManager,\n        'IBlockchainService',\n        IndexerManager,\n        MultiChainRewindService,\n        MonitorService,\n      ],\n    },\n    {\n      provide: DictionaryService,\n      useClass: SubstrateDictionaryService,\n    },\n    FetchService,\n  ],\n})\nexport class FetchModule {}\n"
  },
  {
    "path": "packages/node/src/indexer/indexer.manager.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport { ApiPromise } from '@polkadot/api';\nimport {\n  isBlockHandlerProcessor,\n  isCallHandlerProcessor,\n  isEventHandlerProcessor,\n  SubstrateCustomDataSource,\n  SubstrateHandlerKind,\n  SubstrateRuntimeHandlerInputMap,\n} from '@subql/common-substrate';\nimport {\n  NodeConfig,\n  profiler,\n  SandboxService,\n  IndexerSandbox,\n  ProcessBlockResponse,\n  BaseIndexerManager,\n  DsProcessorService,\n  IBlock,\n  getLogger,\n  UnfinalizedBlocksService,\n  DynamicDsService,\n} from '@subql/node-core';\nimport {\n  LightSubstrateEvent,\n  SubstrateBlock,\n  SubstrateBlockFilter,\n  SubstrateCustomDatasource,\n  SubstrateDatasource,\n  SubstrateEvent,\n  SubstrateExtrinsic,\n} from '@subql/types';\nimport { BlockchainService } from '../blockchain.service';\nimport { SubstrateProjectDs } from '../configure/SubqueryProject';\nimport * as SubstrateUtil from '../utils/substrate';\nimport { ApiService as SubstrateApiService } from './api.service';\nimport { ApiAt, BlockContent, isFullBlock, LightBlockContent } from './types';\n\nconst logger = getLogger('indexer');\n\n@Injectable()\nexport class IndexerManager extends BaseIndexerManager<\n  ApiPromise,\n  ApiAt,\n  BlockContent | LightBlockContent,\n  SubstrateApiService,\n  SubstrateDatasource,\n  SubstrateCustomDataSource,\n  typeof FilterTypeMap,\n  typeof ProcessorTypeMap,\n  SubstrateRuntimeHandlerInputMap\n> {\n  constructor(\n    @Inject('APIService') apiService: SubstrateApiService,\n    nodeConfig: NodeConfig,\n    sandboxService: SandboxService<ApiAt, ApiPromise>,\n    dsProcessorService: DsProcessorService<\n      SubstrateDatasource,\n      SubstrateCustomDatasource\n    >,\n    dynamicDsService: DynamicDsService<SubstrateDatasource>,\n    @Inject('IUnfinalizedBlocksService')\n    unfinalizedBlocksService: UnfinalizedBlocksService<\n      BlockContent | LightBlockContent\n    >,\n    @Inject('IBlockchainService')\n    blockchainService: BlockchainService,\n  ) {\n    super(\n      apiService,\n      nodeConfig,\n      sandboxService,\n      dsProcessorService,\n      dynamicDsService,\n      unfinalizedBlocksService,\n      FilterTypeMap,\n      ProcessorTypeMap,\n      blockchainService,\n    );\n  }\n\n  @profiler()\n  async indexBlock(\n    block: IBlock<BlockContent | LightBlockContent>,\n    dataSources: SubstrateDatasource[],\n  ): Promise<ProcessBlockResponse> {\n    return super.internalIndexBlock(block, dataSources, () =>\n      this.blockchainService.getSafeApi(block.block),\n    );\n  }\n\n  protected async indexBlockData(\n    blockContent: LightBlockContent | BlockContent,\n    dataSources: SubstrateProjectDs[],\n    getVM: (d: SubstrateProjectDs) => Promise<IndexerSandbox>,\n  ): Promise<void> {\n    if (isFullBlock(blockContent)) {\n      const { block, events, extrinsics } = blockContent;\n      await this.indexContent(SubstrateHandlerKind.Block)(\n        block,\n        dataSources,\n        getVM,\n      );\n\n      // Group the events so they only need to be iterated over a single time\n      const groupedEvents = events.reduce(\n        (acc, evt, idx) => {\n          if (evt.phase.isInitialization) {\n            acc.init.push(evt);\n          } else if (evt.phase.isFinalization) {\n            acc.finalize.push(evt);\n          } else if (evt.extrinsic?.idx) {\n            const idx = evt.extrinsic.idx;\n            acc[idx] ??= [];\n            acc[idx].push(evt);\n          } else if (!evt.phase.isApplyExtrinsic) {\n            logger.warn(\n              `Unrecognized event type, skipping. block=\"${block.block.header.number.toNumber()}\" eventIdx=\"${idx}\"`,\n            );\n          }\n          return acc;\n        },\n        { init: [], finalize: [] } as Record<\n          number | 'init' | 'finalize',\n          SubstrateEvent[]\n        >,\n      );\n\n      // Run initialization events\n      for (const event of groupedEvents.init) {\n        await this.indexContent(SubstrateHandlerKind.Event)(\n          event,\n          dataSources,\n          getVM,\n        );\n      }\n\n      for (const extrinsic of extrinsics) {\n        await this.indexContent(SubstrateHandlerKind.Call)(\n          extrinsic,\n          dataSources,\n          getVM,\n        );\n\n        // Process extrinsic events\n        const extrinsicEvents = (groupedEvents[extrinsic.idx] ?? []).sort(\n          (a, b) => a.idx - b.idx,\n        );\n\n        for (const event of extrinsicEvents) {\n          await this.indexContent(SubstrateHandlerKind.Event)(\n            event,\n            dataSources,\n            getVM,\n          );\n        }\n      }\n\n      // Run finalization events\n      for (const event of groupedEvents.finalize) {\n        await this.indexContent(SubstrateHandlerKind.Event)(\n          event,\n          dataSources,\n          getVM,\n        );\n      }\n    } else {\n      for (const event of blockContent.events) {\n        await this.indexContent(SubstrateHandlerKind.Event)(\n          event,\n          dataSources,\n          getVM,\n        );\n      }\n    }\n  }\n\n  private indexContent(\n    kind: SubstrateHandlerKind,\n  ): (\n    content:\n      | SubstrateBlock\n      | SubstrateExtrinsic\n      | SubstrateEvent\n      | LightSubstrateEvent,\n    dataSources: SubstrateProjectDs[],\n    getVM: (d: SubstrateProjectDs) => Promise<IndexerSandbox>,\n  ) => Promise<void> {\n    return async (content, dataSources, getVM) => {\n      for (const ds of dataSources) {\n        await this.indexData(kind, content, ds, getVM);\n      }\n    };\n  }\n\n  protected async prepareFilteredData<T = any>(\n    kind: SubstrateHandlerKind,\n    data: T,\n  ): Promise<T> {\n    // Substrate doesn't need to do anything here\n    return Promise.resolve(data);\n  }\n}\n\nconst ProcessorTypeMap = {\n  [SubstrateHandlerKind.Block]: isBlockHandlerProcessor,\n  [SubstrateHandlerKind.Event]: isEventHandlerProcessor,\n  [SubstrateHandlerKind.Call]: isCallHandlerProcessor,\n};\n\nconst FilterTypeMap = {\n  [SubstrateHandlerKind.Block]: (\n    block: SubstrateBlock,\n    filter?: SubstrateBlockFilter,\n  ) => !!SubstrateUtil.filterBlock(block, filter),\n  [SubstrateHandlerKind.Event]: SubstrateUtil.filterEvent,\n  [SubstrateHandlerKind.Call]: SubstrateUtil.filterExtrinsic,\n};\n"
  },
  {
    "path": "packages/node/src/indexer/project.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { EventEmitter2, EventEmitterModule } from '@nestjs/event-emitter';\nimport { Test } from '@nestjs/testing';\nimport {\n  ProjectService,\n  ConnectionPoolService,\n  ConnectionPoolStateManager,\n  NodeConfig,\n  ProjectUpgradeService,\n  upgradableSubqueryProject,\n  DsProcessorService,\n  DynamicDsService,\n  MultiChainRewindService,\n  Header,\n} from '@subql/node-core';\nimport { SubstrateDatasourceKind, SubstrateHandlerKind } from '@subql/types';\nimport { GraphQLSchema } from 'graphql';\nimport { BlockchainService } from '../blockchain.service';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { ApiService } from './api.service';\nimport { RuntimeService } from './runtime/runtimeService';\n\nfunction testSubqueryProject(): SubqueryProject {\n  return {\n    id: 'test',\n    root: './',\n    network: {\n      endpoint: { 'https://polkadot.api.onfinality.io/public': {} },\n      chainId:\n        '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n    },\n    dataSources: [\n      {\n        kind: SubstrateDatasourceKind.Runtime,\n        startBlock: 1,\n        mapping: {\n          file: '',\n          handlers: [\n            { handler: 'testSandbox', kind: SubstrateHandlerKind.Event },\n          ],\n        },\n      },\n    ],\n    schema: new GraphQLSchema({}),\n    templates: [],\n    chainTypes: {\n      types: {\n        TestType: 'u32',\n      },\n    },\n    applyCronTimestamps: () => jest.fn(),\n  } as unknown as SubqueryProject;\n}\n\n// @ts-ignore\nclass TestProjectService extends ProjectService<any, any> {\n  packageVersion = '1.0.0';\n\n  async init(startHeight?: number): Promise<void> {\n    await (this as any).initUpgradeService(5);\n  }\n\n  async getBlockTimestamp(height: number): Promise<Date> {\n    return Promise.resolve(new Date());\n  }\n\n  async onProjectChange(project: any): Promise<void> {\n    await this.apiService.updateChainTypes();\n    this.apiService.updateBlockFetching();\n  }\n\n  get schema(): string {\n    return 'mock-schema';\n  }\n\n  async getLastProcessedHeight(): Promise<number> {\n    return Promise.resolve(4);\n  }\n\n  async ensureMetadata(): Promise<void> {\n    return Promise.resolve();\n  }\n\n  async initDbSchema(): Promise<void> {\n    return Promise.resolve();\n  }\n\n  async initUnfinalized(): Promise<Header | undefined> {\n    return Promise.resolve(undefined);\n  }\n}\n\nconst demoProjects = [\n  testSubqueryProject(),\n  {\n    parent: {\n      untilBlock: 4,\n      reference: '0',\n    },\n    ...testSubqueryProject(),\n    chainTypes: {\n      types: {\n        TestType: 'u32',\n        DispatchErrorModule: 'DispatchErrorModuleU8',\n      },\n    },\n  },\n] as SubqueryProject[];\n\njest.setTimeout(50_000);\n\ndescribe('ProjectService', () => {\n  let projectService: TestProjectService;\n  let apiService: ApiService;\n  let projectUpgradeService: ProjectUpgradeService<SubqueryProject>;\n\n  jest\n    .spyOn(ProjectUpgradeService as any, 'rewindableCheck')\n    .mockImplementation(() => true);\n\n  beforeEach(async () => {\n    const projectUpgrade = await ProjectUpgradeService.create(\n      demoProjects[1],\n      (id) => Promise.resolve(demoProjects[parseInt(id, 10)]),\n      1,\n    );\n\n    const p = upgradableSubqueryProject(projectUpgrade);\n\n    const module = await Test.createTestingModule({\n      providers: [\n        ConnectionPoolStateManager,\n        ConnectionPoolService,\n        {\n          provide: 'ISubqueryProject',\n          useFactory: () => p,\n        },\n        {\n          provide: NodeConfig,\n          useFactory: () => ({}),\n        },\n        {\n          provide: ProjectService,\n          useFactory: (\n            apiService: ApiService,\n            project: SubqueryProject,\n            blockchainService: BlockchainService,\n            multiChainRewindService: MultiChainRewindService,\n          ) =>\n            new TestProjectService(\n              {\n                validateProjectCustomDatasources: jest.fn(),\n              } as unknown as DsProcessorService,\n              apiService,\n              null as unknown as any,\n              null as unknown as any,\n              { query: jest.fn() } as unknown as any,\n              project,\n              projectUpgrade,\n              {\n                initCoreTables: jest.fn(),\n                storeCache: {\n                  metadata: {},\n                  flushCache: jest.fn(),\n                  _flushCache: { bind: jest.fn() },\n                },\n              } as unknown as any,\n              { unsafe: false } as unknown as NodeConfig,\n              {\n                getDynamicDatasources: jest.fn().mockResolvedValue([]),\n                init: jest.fn(),\n              } as unknown as DynamicDsService,\n              null as unknown as any,\n              null as unknown as any,\n              blockchainService,\n              multiChainRewindService,\n            ),\n          inject: [\n            'APIService',\n            'ISubqueryProject',\n            'IBlockchainService',\n            MultiChainRewindService,\n          ],\n        },\n        EventEmitter2,\n        {\n          provide: 'APIService',\n          useFactory: ApiService.init,\n          inject: [\n            'ISubqueryProject',\n            ConnectionPoolService,\n            EventEmitter2,\n            NodeConfig,\n          ],\n        },\n        {\n          provide: ProjectUpgradeService,\n          useValue: projectUpgrade,\n        },\n        {\n          provide: 'RuntimeService',\n          useFactory: (apiService) => new RuntimeService(apiService),\n          inject: ['APIService'],\n        },\n        {\n          provide: 'IBlockchainService',\n          useClass: BlockchainService,\n        },\n        {\n          provide: MultiChainRewindService,\n\n          useValue: { init: () => {} },\n        },\n      ],\n      imports: [EventEmitterModule.forRoot()],\n    }).compile();\n\n    const app = module.createNestApplication();\n    await app.init();\n    apiService = app.get('APIService');\n    projectUpgradeService = app.get(\n      ProjectUpgradeService,\n    ) as ProjectUpgradeService<SubqueryProject>;\n\n    (projectUpgradeService as any).updateIndexedDeployments = jest.fn();\n    (projectUpgradeService as any).getDeploymentsMetadata = jest\n      .fn()\n      .mockResolvedValue({ 1: 'project1', 4: 'project4' } as Record<\n        number,\n        string\n      >);\n    (projectUpgradeService as any).validateIndexedData = jest\n      .fn()\n      .mockReturnValue(5);\n    projectService = module.get(ProjectService);\n  });\n\n  it('reload chainTypes when project changed, on init', async () => {\n    const spyOnApiUpdateChainTypes = jest.spyOn(apiService, 'updateChainTypes');\n\n    // When init, api use old chain types\n    expect((apiService.api as any)._options.types).toStrictEqual({\n      TestType: 'u32',\n    });\n\n    await projectService.init(5);\n\n    // During preprocess, it should trigger update chain types\n\n    await projectUpgradeService.setCurrentHeight(5);\n\n    expect((projectService as any).apiService.api._options.types).toStrictEqual(\n      {\n        TestType: 'u32',\n        DispatchErrorModule: 'DispatchErrorModuleU8',\n      },\n    );\n\n    expect(spyOnApiUpdateChainTypes).toHaveBeenCalledTimes(1);\n  });\n});\n"
  },
  {
    "path": "packages/node/src/indexer/runtime/base-runtime.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport { ApiPromise } from '@polkadot/api';\nimport { RuntimeVersion } from '@polkadot/types/interfaces';\nimport { profiler } from '@subql/node-core';\nimport { SubstrateBlock } from '@subql/types';\nimport * as SubstrateUtil from '../../utils/substrate';\nimport { ApiService } from '../api.service';\nimport { SpecVersion } from '../dictionary';\nexport const SPEC_VERSION_BLOCK_GAP = 100;\n\n@Injectable()\nexport abstract class BaseRuntimeService {\n  parentSpecVersion?: number;\n  specVersionMap: SpecVersion[] = [];\n  private currentRuntimeVersion?: RuntimeVersion;\n  latestFinalizedHeight?: number;\n\n  constructor(@Inject('APIService') protected apiService: ApiService) {}\n\n  async specChanged(height: number, specVersion: number): Promise<boolean> {\n    if (this.parentSpecVersion !== specVersion) {\n      const parentSpecVersionCopy = this.parentSpecVersion;\n      this.parentSpecVersion = specVersion;\n      await this.prefetchMeta(height);\n      // When runtime init parentSpecVersion is undefined, count as unchanged,\n      // so it will not use fetchRuntimeVersionRange\n      return parentSpecVersionCopy !== undefined;\n    }\n    return false;\n  }\n\n  abstract getSpecVersion(\n    blockHeight: number,\n  ): Promise<{ blockSpecVersion: number; syncedDictionary: boolean }>;\n\n  get api(): ApiPromise {\n    return this.apiService.api;\n  }\n\n  getSpecFromMap(\n    blockHeight: number,\n    specVersions?: SpecVersion[],\n  ): number | undefined {\n    //return undefined block can not find inside range\n    const spec = specVersions?.find(\n      (spec) =>\n        blockHeight >= spec.start &&\n        (spec.end !== null ? blockHeight <= spec.end : true),\n    );\n    return spec ? Number(spec.id) : undefined;\n  }\n\n  async getSpecFromApi(height: number): Promise<number> {\n    const parentBlockHash = await this.api.rpc.chain.getBlockHash(\n      Math.max(height - 1, 0),\n    );\n    const runtimeVersion =\n      await this.api.rpc.state.getRuntimeVersion(parentBlockHash);\n    const specVersion = runtimeVersion.specVersion.toNumber();\n    return specVersion;\n  }\n\n  @profiler()\n  async prefetchMeta(height: number): Promise<void> {\n    const blockHash = await this.api.rpc.chain.getBlockHash(height);\n    if (\n      this.parentSpecVersion !== undefined &&\n      this.specVersionMap &&\n      this.specVersionMap.length !== 0\n    ) {\n      const parentSpecVersion = this.specVersionMap.find(\n        (spec) => Number(spec.id) === this.parentSpecVersion,\n      );\n      if (parentSpecVersion === undefined) {\n        await SubstrateUtil.prefetchMetadata(this.api, blockHash);\n      } else {\n        for (const specVersion of this.specVersionMap) {\n          if (\n            (parentSpecVersion.end !== null\n              ? specVersion.start > parentSpecVersion.end\n              : true) &&\n            specVersion.start <= height\n          ) {\n            const blockHash = await this.api.rpc.chain.getBlockHash(\n              specVersion.start,\n            );\n            await SubstrateUtil.prefetchMetadata(this.api, blockHash);\n          }\n        }\n      }\n    } else {\n      await SubstrateUtil.prefetchMetadata(this.api, blockHash);\n    }\n  }\n\n  async getRuntimeVersion(block: SubstrateBlock): Promise<RuntimeVersion> {\n    if (\n      !this.currentRuntimeVersion ||\n      this.currentRuntimeVersion.specVersion.toNumber() !== block.specVersion\n    ) {\n      this.currentRuntimeVersion = await this.api.rpc.state.getRuntimeVersion(\n        block.block.header.parentHash,\n      );\n    }\n    return this.currentRuntimeVersion;\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/runtime/runtime.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport { BlockHash, RuntimeVersion } from '@polkadot/types/interfaces';\nimport { ApiService } from '../api.service';\nimport {\n  SpecVersion,\n  SpecVersionDictionary,\n  SubstrateDictionaryService,\n} from '../dictionary';\nimport { SPEC_VERSION_BLOCK_GAP } from './base-runtime.service';\nimport { RuntimeService } from './runtimeService';\n\nconst specVersions: SpecVersion[] = [\n  { id: '0', start: 1, end: 29231 },\n  { id: '1', start: 29232, end: 188836 },\n  { id: '5', start: 188837, end: 199405 },\n  { id: '6', start: 199406, end: 214264 },\n  { id: '7', start: 214265, end: 244358 },\n  { id: '8', start: 244359, end: 303079 },\n  { id: '9', start: 303080, end: 314201 },\n  { id: '10', start: 314202, end: 342400 },\n  { id: '11', start: 342401, end: 443963 },\n  { id: '12', start: 443964, end: 528470 },\n  { id: '13', start: 528471, end: 687751 },\n  { id: '14', start: 687752, end: 746085 },\n  { id: '15', start: 746086, end: null },\n];\n\nconst getApiService = (): ApiService =>\n  ({\n    api: {\n      rpc: {\n        chain: {\n          getBlockHash: (height: number): Promise<BlockHash> => {\n            return Promise.resolve(`${height}` as any as BlockHash);\n          },\n        },\n        state: {\n          getRuntimeVersion: (blockHash: string): Promise<RuntimeVersion> => {\n            // Treat 0 as 1 for parent hash of block 1\n            const blockNum = Math.max(parseInt(blockHash), 1);\n\n            const specVersion = specVersions.find(\n              (v) => v.start <= blockNum && (!v.end || v.end >= blockNum),\n            );\n            assert(specVersion, `Spec version not found for block ${blockNum}`);\n\n            return Promise.resolve({\n              specVersion: {\n                toNumber: () => parseInt(specVersion.id, 10),\n              },\n            } as RuntimeVersion);\n          },\n        },\n      },\n      getBlockRegistry: (hash: string) => Promise.resolve(),\n    },\n  }) as any;\n\nconst getDictionaryService = (): SubstrateDictionaryService =>\n  ({\n    useDictionary: (height: number) => {\n      return false;\n    },\n    getSpecVersions: (): Promise<SpecVersion[]> => {\n      return Promise.resolve(specVersions);\n    },\n    parseSpecVersions: (raw: SpecVersionDictionary): SpecVersion[] => {\n      throw new Error('Not implemented');\n    },\n    initDictionariesV1: () => {\n      //TODO\n    },\n    initDictionariesV2: () => {\n      //TODO\n    },\n  }) as any;\n\ndescribe('Runtime service', () => {\n  let runtimeService: RuntimeService;\n  let dictionaryService: SubstrateDictionaryService;\n  let apiService: ApiService;\n\n  beforeEach(() => {\n    dictionaryService = getDictionaryService();\n    apiService = getApiService();\n\n    runtimeService = new RuntimeService(apiService);\n  });\n\n  it('doesnt refetch metadata when spec version doesnt change', async () => {\n    const metaSpy = jest.spyOn(apiService.api, 'getBlockRegistry');\n\n    // This gets called when fetching each block\n    await runtimeService.specChanged(1);\n    await runtimeService.specChanged(2);\n    await runtimeService.specChanged(3);\n\n    expect(metaSpy).toHaveBeenCalledTimes(1);\n  });\n\n  it('fetches metadata only when spec version changes', async () => {\n    const metaSpy = jest.spyOn(apiService.api, 'getBlockRegistry');\n\n    // This gets called when fetching each block\n    await runtimeService.specChanged(29230);\n    await runtimeService.specChanged(29231);\n    await runtimeService.specChanged(29232); // Spec change here\n    await runtimeService.specChanged(29233);\n\n    expect(metaSpy).toHaveBeenCalledTimes(2);\n  });\n\n  it('use dictionary and specVersionMap to get block specVersion', async () => {\n    (dictionaryService as any).useDictionary = (height: number) => true;\n\n    // This is called in init.ts to bootsrap the application\n    await runtimeService.init(0, 29233, dictionaryService);\n    await runtimeService.syncDictionarySpecVersions();\n\n    const metaSpy = jest.spyOn(apiService.api.rpc.state, 'getRuntimeVersion');\n\n    await runtimeService.getSpecVersion(29233);\n\n    expect(metaSpy).not.toHaveBeenCalled();\n  });\n\n  it('getSpecVersion will fetch the spec version if its not in the map', async () => {\n    (dictionaryService as any).useDictionary = (height: number) => true;\n    (runtimeService as any).dictionaryService = dictionaryService;\n\n    const height = 3967204;\n\n    const apiSpy = jest.spyOn(apiService.api.rpc.state, 'getRuntimeVersion');\n    const dictSpy = jest.spyOn(dictionaryService, 'getSpecVersions');\n\n    runtimeService.latestFinalizedHeight = height + SPEC_VERSION_BLOCK_GAP + 1;\n    await runtimeService.getSpecVersion(height);\n\n    expect(apiSpy).toHaveBeenCalled();\n    expect(dictSpy).toHaveBeenCalled();\n  });\n});\n"
  },
  {
    "path": "packages/node/src/indexer/runtime/runtimeService.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport { getLogger, profiler } from '@subql/node-core';\nimport { ApiService } from '../api.service';\nimport { SubstrateDictionaryService } from '../dictionary';\nimport {\n  BaseRuntimeService,\n  SPEC_VERSION_BLOCK_GAP,\n} from './base-runtime.service';\n\nconst logger = getLogger('RuntimeService');\n\n@Injectable()\nexport class RuntimeService extends BaseRuntimeService {\n  protected dictionaryService?: SubstrateDictionaryService;\n  constructor(@Inject('APIService') protected apiService: ApiService) {\n    super(apiService);\n  }\n\n  async init(\n    startHeight: number,\n    latestFinalizedHeight: number,\n    dictionaryService: SubstrateDictionaryService,\n  ): Promise<void> {\n    this.latestFinalizedHeight = latestFinalizedHeight;\n    this.dictionaryService = dictionaryService;\n\n    await this.syncDictionarySpecVersions();\n\n    await this.specChanged(startHeight);\n    await this.prefetchMeta(startHeight);\n  }\n\n  // get latest specVersions from dictionary\n  async syncDictionarySpecVersions(): Promise<void> {\n    try {\n      // must check useDictionary before get SpecVersion, this will give the right dictionary to fetch SpecVersions\n      const response = await this.dictionaryService?.getSpecVersions();\n      if (response !== undefined) {\n        this.specVersionMap = response;\n      } else if (this.specVersionMap === undefined) {\n        this.specVersionMap = [];\n      }\n    } catch (e: any) {\n      logger.error(e, 'Failed to get spec versions');\n    }\n  }\n\n  // main runtime responsible for sync from dictionary\n  async getSpecVersion(\n    blockHeight: number,\n  ): Promise<{ blockSpecVersion: number; syncedDictionary: boolean }> {\n    let blockSpecVersion: number | undefined;\n    let syncedDictionary = false;\n    // we want to keep the specVersionMap in memory, and use it even useDictionary been disabled\n    // therefore instead of check .useDictionary, we check it length before use it.\n    if (this.specVersionMap && this.specVersionMap.length !== 0) {\n      blockSpecVersion = this.getSpecFromMap(blockHeight, this.specVersionMap);\n    }\n    if (blockSpecVersion === undefined) {\n      blockSpecVersion = await this.getSpecFromApi(blockHeight);\n      if (\n        this.latestFinalizedHeight &&\n        blockHeight + SPEC_VERSION_BLOCK_GAP < this.latestFinalizedHeight\n      ) {\n        // Ask to sync local specVersionMap with dictionary\n        await this.syncDictionarySpecVersions();\n        syncedDictionary = true;\n      }\n    }\n    return { blockSpecVersion, syncedDictionary };\n  }\n\n  // the specVersion is always undefined\n  @profiler()\n  async specChanged(height: number, specVersion?: number): Promise<boolean> {\n    if (specVersion === undefined) {\n      const { blockSpecVersion } = await this.getSpecVersion(height);\n      specVersion = blockSpecVersion;\n    }\n    return super.specChanged(height, specVersion);\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/runtime/workerRuntimeService.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Injectable } from '@nestjs/common';\nimport { SpecVersion } from '../dictionary';\nimport { BaseRuntimeService } from './base-runtime.service';\n\n@Injectable()\nexport class WorkerRuntimeService extends BaseRuntimeService {\n  // sync specVersion between main and workers\n  syncSpecVersionMap(\n    specVersionMap: SpecVersion[],\n    latestFinalizedHeight?: number,\n  ): void {\n    this.specVersionMap = specVersionMap;\n    if (\n      latestFinalizedHeight !== undefined &&\n      this.latestFinalizedHeight &&\n      this.latestFinalizedHeight < latestFinalizedHeight\n    ) {\n      this.latestFinalizedHeight = latestFinalizedHeight;\n    }\n  }\n\n  // Worker runtime does not syncDictionary by itself\n  // syncDictionary is done by main runtime\n  async getSpecVersion(\n    blockHeight: number,\n  ): Promise<{ blockSpecVersion: number; syncedDictionary: boolean }> {\n    let blockSpecVersion: number | undefined;\n    // we want to keep the specVersionMap in memory, and use it even useDictionary been disabled\n    // therefore instead of check .useDictionary, we check it length before use it.\n    if (this.specVersionMap && this.specVersionMap.length !== 0) {\n      blockSpecVersion = this.getSpecFromMap(blockHeight, this.specVersionMap);\n    }\n    if (blockSpecVersion === undefined) {\n      blockSpecVersion = await this.getSpecFromApi(blockHeight);\n    }\n    return { blockSpecVersion, syncedDictionary: false };\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/store.service.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { INestApplication } from '@nestjs/common';\nimport {\n  createNotifyTrigger,\n  createSendNotificationTriggerFunction,\n  DbOption,\n  getFunctions,\n  getTriggers,\n  ProjectService,\n} from '@subql/node-core';\nimport { QueryTypes, Sequelize } from '@subql/x-sequelize';\nimport { rimraf } from 'rimraf';\nimport { prepareApp } from '../utils/test.utils';\n\nconst option: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\njest.setTimeout(900000);\ndescribe('Store service integration test', () => {\n  let app: INestApplication;\n  let projectService: ProjectService;\n  let sequelize: Sequelize;\n  let tempDir: string;\n  let schemaName: string;\n\n  beforeAll(async () => {\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option,\n    );\n    await sequelize.authenticate();\n  });\n  afterEach(async () => {\n    await sequelize.dropSchema(schemaName, { logging: false });\n    await app?.close();\n  });\n\n  afterAll(async () => {\n    await rimraf(tempDir);\n  });\n\n  it('Correct db sync on historical project', async () => {\n    // on uniswap complex schema\n    const cid = 'QmNUNBiVC1BDDNbXCbTxzPexodbSmTqZUaohbeBae6b6r8';\n    schemaName = 'sync-schema-1';\n\n    app = await prepareApp(schemaName, cid, false);\n\n    projectService = app.get('IProjectService');\n    await projectService.init(1);\n\n    tempDir = (projectService as any).project.root;\n\n    const result = await sequelize.query<{ table_name: string }>(\n      `\n       SELECT \n          table_name\n        FROM \n          information_schema.tables\n        WHERE \n          table_schema = :schema; \n        `,\n      {\n        type: QueryTypes.SELECT,\n        replacements: { schema: schemaName },\n      },\n    );\n    const expectedTables = result.map((t) => t.table_name);\n\n    const columnResult = await sequelize.query(\n      `\n        SELECT column_name, data_type, is_nullable\nFROM information_schema.columns\nWHERE table_schema = :schema\nAND table_name = 'positions';\n`,\n      {\n        type: QueryTypes.SELECT,\n        replacements: { schema: schemaName },\n      },\n    );\n    expect(expectedTables.sort()).toStrictEqual(\n      [\n        'factories',\n        'bundles',\n        'tokens',\n        '_metadata',\n        'white_list_pools',\n        'pools',\n        'ticks',\n        'positions',\n        'position_snapshots',\n        'transactions',\n        'mints',\n        'burns',\n        'swaps',\n        'collects',\n        'flashes',\n        'uniswap_day_data',\n        'pool_day_data',\n        'pool_hour_data',\n        'tick_hour_data',\n        'tick_day_data',\n        'token_day_data',\n        'token_hour_data',\n      ].sort(),\n    );\n    expect(\n      columnResult.find((c: any) => c.column_name === 'token0_id'),\n    ).toStrictEqual({\n      column_name: 'token0_id',\n      data_type: 'text',\n      is_nullable: 'NO',\n    });\n\n    expect(\n      columnResult.find((c: any) => c.column_name === '_block_range'),\n    ).toStrictEqual({\n      column_name: '_block_range',\n      data_type: 'int8range',\n      is_nullable: 'NO',\n    });\n\n    expect(\n      columnResult.find((c: any) => c.column_name === 'withdrawn_token0'),\n    ).toStrictEqual({\n      column_name: 'withdrawn_token0',\n      data_type: 'double precision',\n      is_nullable: 'NO',\n    });\n    expect(\n      columnResult.find((c: any) => c.column_name === '_id'),\n    ).toStrictEqual({\n      column_name: '_id',\n      data_type: 'uuid',\n      is_nullable: 'NO',\n    });\n  });\n\n  it('Correct db sync on non-historical', async () => {\n    const cid = 'QmNUNBiVC1BDDNbXCbTxzPexodbSmTqZUaohbeBae6b6r8';\n    schemaName = 'sync-schema-2';\n\n    app = await prepareApp(schemaName, cid, true);\n\n    projectService = app.get('IProjectService');\n    await projectService.init(1);\n\n    tempDir = (projectService as any).project.root;\n\n    const [result] = await sequelize.query(\n      `SELECT\n    a.attname AS column_name,\n    pg_catalog.format_type(a.atttypid, a.atttypmod) AS column_type,\n    fk.constraint_name AS foreign_key_constraint_name,\n    fk.reference_table AS foreign_table,\n    fk.reference_column AS foreign_column\nFROM\n    pg_catalog.pg_attribute a\n        LEFT JOIN\n    pg_catalog.pg_class c ON c.oid = a.attrelid\n        LEFT JOIN\n    pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n        LEFT JOIN\n    (SELECT\n         pg_constraint.conname AS constraint_name,\n         pg_constraint.conrelid AS conrelid,\n         pg_attribute.attname AS attname,\n         pg_class.relname AS reference_table,\n         pg_attribute2.attname AS reference_column\n     FROM\n         pg_constraint\n             JOIN pg_class ON pg_constraint.conrelid = pg_class.oid\n             JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace\n             JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid AND pg_attribute.attnum = ANY(pg_constraint.conkey)\n             JOIN pg_class AS pg_class2 ON pg_class2.oid = pg_constraint.confrelid\n             JOIN pg_attribute AS pg_attribute2 ON pg_attribute2.attrelid = pg_class2.oid AND pg_attribute2.attnum = ANY(pg_constraint.confkey)\n     WHERE\n         pg_constraint.contype = 'f'\n       AND pg_namespace.nspname = :schema\n    ) AS fk ON fk.conrelid = c.oid AND fk.attname = a.attname\nWHERE\n    c.relkind = 'r' -- r = ordinary table\n  AND a.attnum > 0 -- positive attnum indicates a real column\n  AND NOT a.attisdropped -- column is not dropped\n  AND c.relname = 'swaps'\n  AND n.nspname = :schema\nORDER BY\n    a.attnum;`,\n      {\n        replacements: { schema: schemaName },\n      },\n    );\n    const expectedForeignKey = result.find(\n      (c: any) => c.column_name === 'token1_id',\n    );\n    expect(expectedForeignKey).toStrictEqual({\n      column_name: 'token1_id',\n      column_type: 'text',\n      foreign_key_constraint_name: 'swaps_token1_id_fkey',\n      foreign_table: 'swaps',\n      foreign_column: 'id',\n    });\n  });\n\n  it('Cyclic relations on non-historical', async () => {\n    const cid = 'QmTLwdpfE7xsmAtPj3Bep9KKgAPbt2tvXisUHcHys6anSG';\n    schemaName = 'sync-schema-3';\n\n    app = await prepareApp(schemaName, cid, true);\n\n    projectService = app.get('IProjectService');\n    await projectService.init(1);\n\n    tempDir = (projectService as any).project.root;\n\n    const [result] = await sequelize.query(\n      `\n        SELECT\n    tc.constraint_name, \n    kcu.column_name, \n    ccu.table_name AS foreign_table_name,\n    ccu.column_name AS foreign_column_name\nFROM \n    information_schema.table_constraints AS tc \nJOIN information_schema.key_column_usage AS kcu\n    ON tc.constraint_name = kcu.constraint_name\n    AND tc.table_schema = kcu.table_schema\nJOIN information_schema.constraint_column_usage AS ccu\n    ON ccu.constraint_name = tc.constraint_name\n    AND ccu.table_schema = tc.table_schema\nWHERE \n    tc.constraint_type = 'FOREIGN KEY' \n    AND tc.table_name='accounts' \n    AND tc.table_schema= :schema\n        `,\n      { type: QueryTypes.SELECT, replacements: { schema: schemaName } },\n    );\n\n    expect(result).toStrictEqual({\n      constraint_name: 'accounts_transfer_id_id_fkey',\n      column_name: 'transfer_id_id',\n      foreign_table_name: 'transfers',\n      foreign_column_name: 'id',\n    });\n  });\n\n  it('Init with enums', async () => {\n    const cid = 'QmVDDxVgmkKzXKcK5YBkEu3Wvzao7uQxear2SVLTUg2bQ1';\n    schemaName = 'sync-schema-4';\n\n    app = await prepareApp(schemaName, cid, true);\n\n    projectService = app.get('IProjectService');\n    await projectService.init(1);\n\n    tempDir = (projectService as any).project.root;\n\n    const result = await sequelize.query<{ enum_type: string }>(\n      `\n      SELECT n.nspname AS schema_name,\n       t.typname AS enum_type,\n       e.enumlabel AS enum_value\nFROM pg_type t\nJOIN pg_enum e ON t.oid = e.enumtypid\nJOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\nWHERE n.nspname = :schema -- Replace 'public' with your schema name if different\nORDER BY t.typname, e.enumsortorder;`,\n      { type: QueryTypes.SELECT, replacements: { schema: schemaName } },\n    );\n    expect(result.length).toBe(3);\n    expect(result.map((r) => r.enum_type)).toStrictEqual([\n      '65c7fd4e5d',\n      '65c7fd4e5d',\n      '65c7fd4e5d',\n    ]);\n  });\n\n  it('Able to drop notification triggers and functions', async () => {\n    // if subscription is no longer enabled should be able to drop all prior triggers and functions related to subscription\n    const cid = 'Qma3HraGKnH5Gte2WVs4sAAY6z5nBSqVuVq7Ef3eVQQPvz';\n    schemaName = 'sync-schema-5';\n\n    // simulate start with subscription then without subscription\n    const initQueries = [\n      `CREATE SCHEMA IF NOT EXISTS \"${schemaName}\";`,\n      ` CREATE TABLE IF NOT EXISTS \"${schemaName}\".\"transfers\" (\"id\" text NOT NULL,\n            \"amount\" numeric NOT NULL,\n            \"block_number\" integer NOT NULL,\n            \"date\" timestamp NOT NULL,\n            \"from_id\" text NOT NULL,\n            \"to_id\" text NOT NULL,\n            \"_id\" UUID NOT NULL,\n            \"_block_range\" int8range NOT NULL, PRIMARY KEY (\"_id\"));`,\n      `CREATE TABLE IF NOT EXISTS \"${schemaName}\".\"accounts\" (\"id\" text NOT NULL,\n          \"public_key\" text NOT NULL,\n          \"first_transfer_block\" integer,\n          \"last_transfer_block\" integer,\n          \"_id\" UUID NOT NULL,\n          \"_block_range\" int8range NOT NULL, PRIMARY KEY (\"_id\"));`,\n      createSendNotificationTriggerFunction(schemaName),\n      createNotifyTrigger(schemaName, 'transfers'),\n      createNotifyTrigger(schemaName, 'accounts'),\n    ];\n    for (const q of initQueries) {\n      await sequelize.query(q);\n    }\n\n    app = await prepareApp(schemaName, cid, false, false);\n\n    projectService = app.get('IProjectService');\n    await projectService.init(1);\n\n    tempDir = (projectService as any).project.root;\n\n    const accountTrigger = await getTriggers(sequelize, '0xe2ae28f317df40c5');\n    const transferTrigger = await getTriggers(sequelize, '0x2416ab4b88a0cdac');\n\n    const functions = await getFunctions(\n      sequelize,\n      schemaName,\n      'send_notification',\n    );\n\n    expect(accountTrigger.length).toBe(0);\n    expect(transferTrigger.length).toBe(0);\n    expect(functions.length).toBe(0);\n  });\n});\n"
  },
  {
    "path": "packages/node/src/indexer/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { ApiPromise } from '@polkadot/api';\nimport { ApiDecoration } from '@polkadot/api/types';\nimport type { HexString } from '@polkadot/util/types';\nimport { IBlock } from '@subql/node-core';\nimport {\n  BlockHeader,\n  LightSubstrateEvent,\n  SubstrateBlock,\n  SubstrateEvent,\n  SubstrateExtrinsic,\n} from '@subql/types';\n\nexport interface BlockContent {\n  block: SubstrateBlock;\n  extrinsics: SubstrateExtrinsic[];\n  events: SubstrateEvent[];\n}\n\nexport interface LightBlockContent {\n  block: BlockHeader; // A subset of SubstrateBlock\n  events: LightSubstrateEvent[];\n}\n\nexport type BestBlocks = Record<number, HexString>;\n\nexport type ApiAt = ApiDecoration<'promise'> & { rpc: ApiPromise['rpc'] };\n\nexport function isFullBlock(\n  block: BlockContent | LightBlockContent,\n): block is BlockContent {\n  return (block as BlockContent).extrinsics !== undefined;\n}\n\nexport function getBlockSize(\n  block: IBlock<BlockContent | LightBlockContent>,\n): number {\n  return block.block.events.reduce(\n    (acc, evt) => acc + evt.encodedLength,\n    (block.block.block as SubstrateBlock)?.encodedLength ?? 0,\n  );\n}\n"
  },
  {
    "path": "packages/node/src/indexer/worker/worker-fetch.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n  ConnectionPoolService,\n  NodeConfig,\n  WorkerCoreModule,\n  ProjectService,\n  DsProcessorService,\n} from '@subql/node-core';\nimport { BlockchainService } from '../../blockchain.service';\nimport { ApiService } from '../api.service';\nimport { IndexerManager } from '../indexer.manager';\nimport { WorkerRuntimeService } from '../runtime/workerRuntimeService';\nimport { WorkerService } from './worker.service';\n\n/**\n * The alternative version of FetchModule for worker\n */\n\n@Module({\n  imports: [WorkerCoreModule],\n  providers: [\n    DsProcessorService,\n    IndexerManager,\n    {\n      provide: 'APIService',\n      useFactory: ApiService.init,\n      inject: [\n        'ISubqueryProject',\n        ConnectionPoolService,\n        EventEmitter2,\n        NodeConfig,\n      ],\n    },\n    {\n      provide: 'IProjectService',\n      useClass: ProjectService,\n    },\n    // This is aliased so it satisfies the BlockchainService, other services are updated to reflect this\n    {\n      provide: 'RuntimeService',\n      useClass: WorkerRuntimeService,\n    },\n    {\n      provide: 'IBlockchainService',\n      useClass: BlockchainService,\n    },\n    WorkerService,\n  ],\n  exports: [],\n})\nexport class WorkerFetchModule {}\n"
  },
  {
    "path": "packages/node/src/indexer/worker/worker.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitterModule } from '@nestjs/event-emitter';\nimport { ScheduleModule } from '@nestjs/schedule';\nimport { WorkerCoreModule } from '@subql/node-core';\nimport { ConfigureModule } from '../../configure/configure.module';\nimport { WorkerFetchModule } from './worker-fetch.module';\n\n@Module({\n  imports: [\n    EventEmitterModule.forRoot(),\n    ConfigureModule.register(),\n    ScheduleModule.forRoot(),\n    WorkerCoreModule,\n    WorkerFetchModule,\n  ],\n  controllers: [],\n})\nexport class WorkerModule {}\n"
  },
  {
    "path": "packages/node/src/indexer/worker/worker.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport {\n  NodeConfig,\n  IProjectService,\n  ProcessBlockResponse,\n  BaseWorkerService,\n  IProjectUpgradeService,\n  IBlock,\n  Header,\n} from '@subql/node-core';\nimport { SubstrateDatasource } from '@subql/types';\nimport { substrateBlockToHeader } from '../../utils/substrate';\nimport { ApiService } from '../api.service';\nimport { SpecVersion } from '../dictionary';\nimport { IndexerManager } from '../indexer.manager';\nimport { WorkerRuntimeService } from '../runtime/workerRuntimeService';\nimport { BlockContent, getBlockSize, LightBlockContent } from '../types';\n\nexport type FetchBlockResponse = Header & { specVersion?: number };\n\n@Injectable()\nexport class WorkerService extends BaseWorkerService<\n  BlockContent | LightBlockContent,\n  FetchBlockResponse,\n  SubstrateDatasource,\n  { specVersion: number }\n> {\n  constructor(\n    @Inject('APIService') private apiService: ApiService,\n    private indexerManager: IndexerManager,\n    @Inject('RuntimeService')\n    private workerRuntimeService: WorkerRuntimeService,\n    @Inject('IProjectService')\n    projectService: IProjectService<SubstrateDatasource>,\n    @Inject('IProjectUpgradeService')\n    projectUpgradeService: IProjectUpgradeService,\n    nodeConfig: NodeConfig,\n  ) {\n    super(projectService, projectUpgradeService, nodeConfig);\n  }\n\n  protected async fetchChainBlock(\n    height: number,\n    { specVersion }: { specVersion: number },\n  ): Promise<IBlock<BlockContent | LightBlockContent>> {\n    const specChanged = await this.workerRuntimeService.specChanged(\n      height,\n      specVersion,\n    );\n\n    const [block] = await this.apiService.fetchBlocks(\n      [height],\n      specChanged ? undefined : this.workerRuntimeService.parentSpecVersion,\n    );\n\n    return block;\n  }\n\n  // TODO test this with LightBlockContent\n  protected toBlockResponse(\n    block: IBlock<BlockContent> /*| IBlock<LightBlockContent>*/,\n  ): FetchBlockResponse {\n    return {\n      ...block.getHeader(),\n      specVersion: block.block.block.specVersion,\n    };\n  }\n\n  protected getBlockSize(\n    block: IBlock<BlockContent | LightBlockContent>,\n  ): number {\n    return getBlockSize(block);\n  }\n\n  protected async processFetchedBlock(\n    block: IBlock<BlockContent | LightBlockContent>,\n    dataSources: SubstrateDatasource[],\n  ): Promise<ProcessBlockResponse> {\n    return this.indexerManager.indexBlock(block, dataSources);\n  }\n\n  getSpecFromMap(height: number): number | undefined {\n    return this.workerRuntimeService.getSpecFromMap(\n      height,\n      this.workerRuntimeService.specVersionMap,\n    );\n  }\n\n  syncRuntimeService(\n    specVersions: SpecVersion[],\n    latestFinalizedHeight?: number,\n  ): void {\n    this.workerRuntimeService.syncSpecVersionMap(\n      specVersions,\n      latestFinalizedHeight,\n    );\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/worker/worker.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// initlogger and yargs must be imported before all other imports\n// making sure logger is defined before its called\n// eslint-disable-next-line import/order\nimport { initLogger } from '@subql/node-core/logger';\n// eslint-disable-next-line import/order\nimport { yargsOptions } from '../../yargs';\n\nconst { argv } = yargsOptions;\n\ninitLogger(\n  argv.debug,\n  argv.outputFmt as 'json' | 'colored',\n  argv.logLevel as string | undefined,\n);\n\nimport { threadId } from 'node:worker_threads';\nimport { NestFactory } from '@nestjs/core';\nimport {\n  getLogger,\n  NestLogger,\n  createWorkerHost,\n  initWorkerServices,\n  getWorkerService,\n  IBaseIndexerWorker,\n  ProjectService,\n} from '@subql/node-core';\nimport { SpecVersion } from '../dictionary';\nimport { WorkerModule } from './worker.module';\nimport { WorkerService } from './worker.service';\n\nconst logger = getLogger(`worker #${threadId}`);\n\nasync function initWorker(startHeight?: number): Promise<void> {\n  try {\n    const app = await NestFactory.create(WorkerModule, {\n      logger: new NestLogger(!!argv.debug), // TIP: If the worker is crashing comment out this line for better logging\n    });\n\n    await app.init();\n\n    const projectService: ProjectService = app.get('IProjectService');\n    // Initialise async services, we do this here rather than in factories so we can capture one off events\n    await projectService.init(startHeight);\n    const workerService = app.get(WorkerService);\n\n    initWorkerServices(app, workerService);\n  } catch (e: any) {\n    console.log('Failed to start worker', e);\n    logger.error(e, 'Failed to start worker');\n    throw e;\n  }\n}\n\nfunction getSpecFromMap(height: number): number | undefined {\n  return getWorkerService<WorkerService>().getSpecFromMap(height);\n}\n\nfunction syncRuntimeService(\n  specVersions: SpecVersion[],\n  latestFinalizedHeight?: number,\n): void {\n  getWorkerService<WorkerService>().syncRuntimeService(\n    specVersions,\n    latestFinalizedHeight,\n  );\n}\n\nexport type IIndexerWorker = IBaseIndexerWorker & {\n  syncRuntimeService: typeof syncRuntimeService;\n  getSpecFromMap: typeof getSpecFromMap;\n};\n\n(global as any).host = createWorkerHost([], {\n  syncRuntimeService,\n  getSpecFromMap,\n  initWorker,\n});\n"
  },
  {
    "path": "packages/node/src/indexer/x-provider/cachedProvider.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { ProviderInterface } from '@polkadot/rpc-provider/types';\nimport { LRUCache } from 'lru-cache';\n\nconst MAX_CACHE_SIZE = 200;\nconst CACHE_TTL = 60 * 1000;\n\nexport function createCachedProvider<\n  P extends ProviderInterface = ProviderInterface,\n>(provider: P): P {\n  const cacheMap = new LRUCache<string, Promise<any>>({\n    max: MAX_CACHE_SIZE,\n    ttl: CACHE_TTL,\n  });\n\n  const cachedMethodHandler = (\n    fn: ProviderInterface['send'],\n    args: Parameters<ProviderInterface['send']>,\n  ) => {\n    const [method, params] = args;\n    // If there are no parameters then we don't cache as we want the latest results\n    if (!params.length) {\n      return fn(...args);\n    }\n\n    const cacheKey = `${method}-${params[0]}`;\n    if (cacheMap.has(cacheKey)) {\n      return cacheMap.get(cacheKey);\n    }\n\n    const resultPromise = fn(...args);\n    cacheMap.set(cacheKey, resultPromise);\n    return resultPromise;\n  };\n\n  const originalSend = provider.send.bind(provider);\n  (provider as any).send = (...args: Parameters<ProviderInterface['send']>) => {\n    const [method] = args;\n    //caching state_getRuntimeVersion and chain_getHeader\n    //because they are fetched twice per block\n    if (['state_getRuntimeVersion', 'chain_getHeader'].includes(method)) {\n      return cachedMethodHandler(originalSend, args);\n    }\n\n    return originalSend(...args);\n  };\n\n  return provider;\n}\n"
  },
  {
    "path": "packages/node/src/indexer/x-provider/http.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// overwrite the official Polkadot HttpProvider: https://github.com/polkadot-js/api/blob/master/packages/rpc-provider/src/http/index.ts\n// Use context and fetch to provide http1 keepAlive and maxSocket feature\n\nimport { RpcCoder } from '@polkadot/rpc-provider/coder';\nimport defaults from '@polkadot/rpc-provider/defaults';\nimport { LRUCache } from '@polkadot/rpc-provider/lru';\nimport type {\n  JsonRpcResponse,\n  ProviderInterface,\n  ProviderInterfaceCallback,\n  ProviderInterfaceEmitCb,\n  ProviderInterfaceEmitted,\n  ProviderStats,\n} from '@polkadot/rpc-provider/types';\nimport { getLogger } from '@subql/node-core';\nimport { context } from 'fetch-h2';\n\nconst ERROR_SUBSCRIBE =\n  'HTTP Provider does not have subscriptions, use WebSockets instead';\n\nconst l = getLogger('http-provider');\n\n/**\n * # @polkadot/rpc-provider\n *\n * @name HttpProvider\n *\n * @description The HTTP Provider allows sending requests using HTTP to an HTTP RPC server TCP port. It does not support subscriptions so you won't be able to listen to events such as new blocks or balance changes. It is usually preferable using the [[WsProvider]].\n *\n * @example\n * <BR>\n *\n * ```javascript\n * import Api from '@polkadot/api/promise';\n * import { HttpProvider } from '@polkadot/rpc-provider';\n *\n * const provider = new HttpProvider('http://127.0.0.1:9933');\n * const api = new Api(provider);\n * ```\n *\n * @see [[WsProvider]]\n */\nexport class HttpProvider implements ProviderInterface {\n  readonly #callCache = new LRUCache();\n\n  readonly #coder: RpcCoder;\n\n  readonly #endpoint: string;\n\n  readonly #headers: Record<string, string>;\n\n  readonly #stats: ProviderStats;\n\n  readonly #ctx: ReturnType<typeof context>;\n\n  /**\n   * @param {string} endpoint The endpoint url starting with http://\n   */\n  constructor(\n    endpoint: string = defaults.HTTP_URL,\n    headers: Record<string, string> = {},\n  ) {\n    if (!/^(https|http):\\/\\//.test(endpoint)) {\n      throw new Error(\n        `Endpoint should start with 'http://' or 'https://', received '${endpoint}'`,\n      );\n    }\n\n    this.#ctx = context({\n      http1: {\n        keepAlive: true,\n        maxSockets: 10,\n      },\n    });\n\n    this.#coder = new RpcCoder();\n    this.#endpoint = endpoint;\n    this.#headers = headers;\n    this.#stats = {\n      active: { requests: 0, subscriptions: 0 },\n      total: {\n        bytesRecv: 0,\n        bytesSent: 0,\n        cached: 0,\n        errors: 0,\n        requests: 0,\n        subscriptions: 0,\n        timeout: 0,\n      },\n    };\n  }\n\n  /**\n   * @summary `true` when this provider supports subscriptions\n   */\n  get hasSubscriptions(): boolean {\n    return false;\n  }\n\n  /**\n   * @description Returns a clone of the object\n   */\n  clone(): HttpProvider {\n    return new HttpProvider(this.#endpoint, this.#headers);\n  }\n\n  /**\n   * @description Manually connect from the connection\n   */\n  async connect(): Promise<void> {\n    // noop\n  }\n\n  /**\n   * @description Manually disconnect from the connection\n   */\n  async disconnect(): Promise<void> {\n    // noop\n    await this.#ctx.disconnectAll();\n  }\n\n  /**\n   * @description Returns the connection stats\n   */\n  get stats(): ProviderStats {\n    return this.#stats;\n  }\n\n  /**\n   * @summary `true` when this provider supports clone()\n   */\n  get isClonable(): boolean {\n    return true;\n  }\n\n  /**\n   * @summary Whether the node is connected or not.\n   * @return {boolean} true if connected\n   */\n  get isConnected(): boolean {\n    return true;\n  }\n\n  /**\n   * @summary Events are not supported with the HttpProvider, see [[WsProvider]].\n   * @description HTTP Provider does not have 'on' emitters. WebSockets should be used instead.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  on(type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): () => void {\n    l.error(\n      \"HTTP Provider does not have 'on' emitters, use WebSockets instead\",\n    );\n\n    return (): void => {\n      // noop\n    };\n  }\n\n  /**\n   * @summary Send HTTP POST Request with Body to configured HTTP Endpoint.\n   */\n  async send<T>(\n    method: string,\n    params: unknown[],\n    isCacheable?: boolean,\n  ): Promise<T> {\n    this.#stats.total.requests++;\n\n    const [, body] = this.#coder.encodeJson(method, params);\n    let resultPromise: Promise<T> | null = isCacheable\n      ? (this.#callCache.get(body) as Promise<T>)\n      : null;\n\n    // eslint-disable-next-line @typescript-eslint/no-misused-promises\n    if (!resultPromise) {\n      resultPromise = this._send(body);\n\n      if (isCacheable) {\n        this.#callCache.set(body, resultPromise);\n      }\n    } else {\n      this.#stats.total.cached++;\n    }\n\n    return resultPromise;\n  }\n\n  async _send<T>(body: string): Promise<T> {\n    this.#stats.active.requests++;\n    this.#stats.total.bytesSent += body.length;\n\n    try {\n      const response = await this.#ctx.fetch(this.#endpoint, {\n        body,\n        headers: {\n          Accept: 'application/json',\n          // Recommend dropped in HTTP2\n          // 'Content-Length': `${body.length}`,\n          'Content-Type': 'application/json',\n          ...this.#headers,\n        },\n        method: 'POST',\n      });\n\n      if (!response.ok) {\n        throw new Error(`[${response.status}]: ${response.statusText}`);\n      }\n\n      const result = await response.text();\n\n      this.#stats.total.bytesRecv += result.length;\n\n      const decoded = this.#coder.decodeResponse(\n        JSON.parse(result) as JsonRpcResponse<T>,\n      );\n\n      this.#stats.active.requests--;\n\n      return decoded;\n    } catch (e) {\n      this.#stats.active.requests--;\n      this.#stats.total.errors++;\n\n      throw e;\n    }\n  }\n\n  /**\n   * @summary Subscriptions are not supported with the HttpProvider, see [[WsProvider]].\n   */\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/require-await\n  async subscribe(\n    types: string,\n    method: string,\n    params: unknown[],\n    cb: ProviderInterfaceCallback,\n  ): Promise<number> {\n    l.error(ERROR_SUBSCRIBE);\n\n    throw new Error(ERROR_SUBSCRIBE);\n  }\n\n  /**\n   * @summary Subscriptions are not supported with the HttpProvider, see [[WsProvider]].\n   */\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/require-await\n  async unsubscribe(\n    type: string,\n    method: string,\n    id: number,\n  ): Promise<boolean> {\n    l.error(ERROR_SUBSCRIBE);\n\n    throw new Error(ERROR_SUBSCRIBE);\n  }\n}\n"
  },
  {
    "path": "packages/node/src/indexer/x-provider/x-provider.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { WsProvider } from '@polkadot/rpc-provider';\nimport { delay } from '@subql/common';\nimport { createCachedProvider } from './cachedProvider';\nimport { HttpProvider } from './http';\n\nconst TEST_BLOCKHASH =\n  '0x3b712c10ba98c5421a468d1411c94479381be307b7ecb5b2602cf0d395eb4292';\n\ndescribe('ApiPromiseConnection', () => {\n  let wsProvider: WsProvider;\n  let httpProvider: HttpProvider;\n  let wsSpy: jest.SpyInstance;\n  let httpSpy: jest.SpyInstance;\n\n  beforeAll(async () => {\n    const ws = await new WsProvider('wss://kusama.api.onfinality.io/public-ws')\n      .isReady;\n    const http = new HttpProvider('https://kusama.api.onfinality.io/public');\n\n    // Spys created before the send function is modified\n    wsSpy = jest.spyOn(ws, 'send');\n    httpSpy = jest.spyOn(http, 'send');\n\n    wsProvider = createCachedProvider(ws);\n    httpProvider = createCachedProvider(http);\n  });\n\n  afterEach(() => {\n    wsSpy.mockClear();\n    httpSpy.mockClear();\n  });\n\n  afterAll(async () => {\n    await Promise.all([wsProvider?.disconnect(), httpProvider?.disconnect()]);\n  });\n\n  it('should not make duplicate requests for state_getRuntimeVersion on wsProvider', async () => {\n    await Promise.all([\n      wsProvider.send('state_getRuntimeVersion', [TEST_BLOCKHASH]),\n      wsProvider.send('state_getRuntimeVersion', [TEST_BLOCKHASH]),\n    ]);\n    expect(wsSpy).toHaveBeenCalledTimes(1);\n  });\n\n  it('should not make duplicate requests for chain_getHeader on wsProvider', async () => {\n    await Promise.all([\n      wsProvider.send('chain_getHeader', [TEST_BLOCKHASH]),\n      wsProvider.send('chain_getHeader', [TEST_BLOCKHASH]),\n    ]);\n    expect(wsSpy).toHaveBeenCalledTimes(1);\n  });\n\n  it('should not make duplicate requests for state_getRuntimeVersion on httpProvider', async () => {\n    await Promise.all([\n      httpProvider.send('state_getRuntimeVersion', [TEST_BLOCKHASH]),\n      httpProvider.send('state_getRuntimeVersion', [TEST_BLOCKHASH]),\n    ]);\n    expect(httpSpy).toHaveBeenCalledTimes(1);\n  });\n\n  it('should not make duplicate requests for chain_getHeader on httpProvider', async () => {\n    await Promise.all([\n      httpProvider.send('chain_getHeader', [TEST_BLOCKHASH]),\n      httpProvider.send('chain_getHeader', [TEST_BLOCKHASH]),\n    ]);\n    expect(httpSpy).toHaveBeenCalledTimes(1);\n  });\n\n  it('should not cache requests if there are no args', async () => {\n    const result1 = await httpProvider.send('chain_getHeader', []);\n    // Enough time for a new block\n    await delay(7);\n    const result2 = await httpProvider.send('chain_getHeader', []);\n\n    expect(httpSpy).toHaveBeenCalledTimes(2);\n    expect(result1).not.toEqual(result2);\n  }, 10000);\n});\n"
  },
  {
    "path": "packages/node/src/init.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { NestFactory } from '@nestjs/core';\nimport { notifyUpdates } from '@subql/common';\nimport {\n  exitWithError,\n  getLogger,\n  getValidPort,\n  IBlockchainService,\n  NestLogger,\n  ProjectService,\n  FetchService,\n  DictionaryService,\n} from '@subql/node-core';\nimport { AppModule } from './app.module';\nimport { SubstrateDictionaryService } from './indexer/dictionary';\nimport { RuntimeService } from './indexer/runtime/runtimeService';\nimport { yargsOptions } from './yargs';\n\nconst pjson = require('../package.json');\n\nconst { argv } = yargsOptions;\n\nconst logger = getLogger('subql-node');\n\nnotifyUpdates(pjson, logger);\n\nexport async function bootstrap(): Promise<void> {\n  const port = await getValidPort(argv.port);\n\n  try {\n    const app = await NestFactory.create(AppModule, {\n      logger: new NestLogger(!!argv.debug),\n    });\n    await app.init();\n\n    const projectService: ProjectService = app.get('IProjectService');\n    const fetchService = app.get(FetchService);\n    const runtimeService: RuntimeService = app.get('RuntimeService');\n    const dictionaryService: SubstrateDictionaryService =\n      app.get(DictionaryService);\n    const blockchainService: IBlockchainService = app.get('IBlockchainService');\n\n    // Initialise async services, we do this here rather than in factories, so we can capture one off events\n    await projectService.init();\n\n    const startHeight = projectService.startHeight;\n    const { blockHeight: finalizedHeight } =\n      await blockchainService.getFinalizedHeader();\n    await runtimeService.init(startHeight, finalizedHeight, dictionaryService);\n    await fetchService.init(startHeight);\n\n    app.enableShutdownHooks();\n\n    await app.listen(port);\n\n    logger.info(`Node started on port: ${port}`);\n  } catch (e) {\n    exitWithError(new Error(`Node failed to start`, { cause: e }), logger);\n  }\n}\n"
  },
  {
    "path": "packages/node/src/main.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { initLogger } from '@subql/node-core/logger';\nimport { yargsOptions } from './yargs';\n\nconst { argv } = yargsOptions;\n\n// initLogger is imported from true path, to make sure getLogger (or other logger values that relies on logger) isn't initialised\ninitLogger(\n  argv.debug,\n  argv.outputFmt as 'json' | 'colored',\n  argv.logLevel as string | undefined,\n);\n\nconst { setProfiler } = require('@subql/node-core');\nsetProfiler(argv.profiler);\n\n// Check for no subcommand\nif (!argv._[0]) {\n  // Lazy import, to allow logger to be initialised before bootstrap()\n  // As bootstrap runs services that requires logger\n  const { bootstrap } = require('./init');\n  void bootstrap();\n}\n"
  },
  {
    "path": "packages/node/src/subcommands/forceClean.init.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { forceClean } from '@subql/node-core';\nimport { ForceCleanModule } from './forceClean.module';\n\nexport const forceCleanInit = (): Promise<void> => forceClean(ForceCleanModule);\n"
  },
  {
    "path": "packages/node/src/subcommands/forceClean.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { DbModule, ForceCleanFeatureModule } from '@subql/node-core';\nimport { ConfigureModule } from '../configure/configure.module';\n\n@Module({\n  imports: [\n    DbModule.forRoot(),\n    ConfigureModule.register(),\n    ForceCleanFeatureModule,\n  ],\n  controllers: [],\n})\nexport class ForceCleanModule {}\n"
  },
  {
    "path": "packages/node/src/subcommands/reindex.init.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitterModule } from '@nestjs/event-emitter';\nimport { reindexInit as baseReindexInit, DbModule } from '@subql/node-core';\nimport { ConfigureModule } from '../configure/configure.module';\nimport { ReindexFeatureModule } from './reindex.module';\n\n@Module({\n  imports: [\n    DbModule.forRoot(),\n    ConfigureModule.register(),\n    ReindexFeatureModule,\n    EventEmitterModule.forRoot(),\n  ],\n  controllers: [],\n})\nexport class ReindexModule {}\n\nexport const reindexInit = (targetHeight: number): Promise<void> =>\n  baseReindexInit(ReindexModule, targetHeight);\n"
  },
  {
    "path": "packages/node/src/subcommands/reindex.module.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'node:path';\nimport { EventEmitterModule } from '@nestjs/event-emitter';\nimport { Test, TestingModule } from '@nestjs/testing';\nimport { LocalReader, ReaderFactory } from '@subql/common';\nimport { DbModule, NodeConfig } from '@subql/node-core';\nimport { ConfigureModule } from '../configure/configure.module';\nimport { createSubQueryProject } from '../configure/SubqueryProject';\nimport { ReindexFeatureModule } from './reindex.module';\n\ndescribe('ReindexModule', () => {\n  let module: TestingModule;\n  const nodeConfig = new NodeConfig({ subquery: 'test' } as any);\n\n  afterEach(async () => {\n    await module?.close();\n  });\n\n  it('should compile without error', async () => {\n    const projectDirV1_0_0 = path.resolve(\n      __dirname,\n      '../../test/projectFixture/v1.0.0',\n    );\n\n    const reader = await ReaderFactory.create(projectDirV1_0_0);\n    const rawManifest = await reader.getProjectSchema();\n    const project = await createSubQueryProject(\n      projectDirV1_0_0,\n      rawManifest,\n      reader,\n      (reader as LocalReader).root,\n      {\n        endpoint: ['wss://moonriver.api.onfinality.io/public-ws'],\n      },\n    );\n    module = await Test.createTestingModule({\n      imports: [\n        DbModule.forRoot(),\n        ConfigureModule.registerManual(nodeConfig, project),\n        EventEmitterModule.forRoot(),\n        ReindexFeatureModule,\n      ],\n    }).compile();\n\n    expect(module).toBeDefined();\n  }, 20_000);\n});\n"
  },
  {
    "path": "packages/node/src/subcommands/reindex.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n  ForceCleanService,\n  ReindexService,\n  StoreService,\n  PoiService,\n  ConnectionPoolService,\n  NodeConfig,\n  ConnectionPoolStateManager,\n  storeModelFactory,\n  DsProcessorService,\n  UnfinalizedBlocksService,\n  DynamicDsService,\n  MultiChainRewindService,\n} from '@subql/node-core';\nimport { Sequelize } from '@subql/x-sequelize';\nimport { BlockchainService } from '../blockchain.service';\n\nimport { ApiService } from '../indexer/api.service';\nimport { RuntimeService } from '../indexer/runtime/runtimeService';\n\n@Module({\n  providers: [\n    {\n      provide: 'IStoreModelProvider',\n      useFactory: storeModelFactory,\n      inject: [NodeConfig, EventEmitter2, Sequelize],\n    },\n    StoreService,\n    ReindexService,\n    PoiService,\n    ForceCleanService,\n    {\n      provide: 'UnfinalizedBlocksService',\n      useClass: UnfinalizedBlocksService,\n    },\n    {\n      provide: 'DynamicDsService',\n      useClass: DynamicDsService,\n    },\n    DsProcessorService,\n    ConnectionPoolStateManager,\n    ConnectionPoolService,\n    {\n      // Used to work with DI for unfinalizedBlocksService but not used with reindex\n      provide: 'APIService',\n      useFactory: ApiService.init,\n      inject: [\n        'ISubqueryProject',\n        ConnectionPoolService,\n        EventEmitter2,\n        NodeConfig,\n      ],\n    },\n    {\n      provide: 'RuntimeService',\n      useClass: RuntimeService,\n    },\n    {\n      provide: 'IBlockchainService',\n      useClass: BlockchainService,\n    },\n    MultiChainRewindService,\n  ],\n  controllers: [],\n})\nexport class ReindexFeatureModule {}\n"
  },
  {
    "path": "packages/node/src/subcommands/testing.init.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { exitWithError, getLogger } from '@subql/node-core';\nimport { ConfigureModule } from '../configure/configure.module';\nimport { TestingService } from './testing.service';\n\nconst logger = getLogger('Testing');\nexport async function testingInit(): Promise<void> {\n  try {\n    const { nodeConfig, project } = await ConfigureModule.getInstance();\n\n    const testingService = new TestingService(nodeConfig, project);\n    await testingService.run();\n  } catch (e) {\n    exitWithError(new Error('Testing failed', { cause: e }), logger);\n  }\n  process.exit(0);\n}\n"
  },
  {
    "path": "packages/node/src/subcommands/testing.module.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'node:path';\nimport { EventEmitterModule } from '@nestjs/event-emitter';\nimport { ScheduleModule } from '@nestjs/schedule';\nimport { Test, TestingModule } from '@nestjs/testing';\nimport { LocalReader, ReaderFactory } from '@subql/common';\nimport { DbModule, NodeConfig } from '@subql/node-core';\nimport { ConfigureModule } from '../configure/configure.module';\nimport { createSubQueryProject } from '../configure/SubqueryProject';\nimport { TestingFeatureModule } from './testing.module';\n\ndescribe('TestingModule', () => {\n  let module: TestingModule;\n  const nodeConfig = new NodeConfig({ subquery: 'test' } as any);\n\n  afterEach(async () => {\n    await module?.close();\n  });\n\n  it('should compile without error', async () => {\n    const projectDirV1_0_0 = path.resolve(\n      __dirname,\n      '../../test/projectFixture/v1.0.0',\n    );\n\n    const reader = await ReaderFactory.create(projectDirV1_0_0);\n    const rawManifest = await reader.getProjectSchema();\n    const project = await createSubQueryProject(\n      projectDirV1_0_0,\n      rawManifest,\n      reader,\n      (reader as LocalReader).root,\n      {\n        endpoint: ['wss://moonriver.api.onfinality.io/public-ws'],\n      },\n    );\n    module = await Test.createTestingModule({\n      imports: [\n        DbModule.forRoot(),\n        ConfigureModule.registerManual(nodeConfig, project),\n        EventEmitterModule.forRoot(),\n        ScheduleModule.forRoot(),\n        TestingFeatureModule,\n      ],\n    }).compile();\n\n    expect(module).toBeDefined();\n  }, 20_000);\n});\n"
  },
  {
    "path": "packages/node/src/subcommands/testing.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n  ConnectionPoolService,\n  TestRunner,\n  NodeConfig,\n  ProjectService,\n  TestingCoreModule,\n  DsProcessorService,\n  DynamicDsService,\n  UnfinalizedBlocksService,\n  MultiChainRewindService,\n} from '@subql/node-core';\nimport { BlockchainService } from '../blockchain.service';\nimport { ApiService } from '../indexer/api.service';\nimport { IndexerManager } from '../indexer/indexer.manager';\nimport { RuntimeService } from '../indexer/runtime/runtimeService';\n\n@Module({\n  imports: [TestingCoreModule],\n  providers: [\n    {\n      provide: 'IProjectService',\n      useClass: ProjectService,\n    },\n    {\n      provide: 'APIService',\n      useFactory: ApiService.init,\n      inject: [\n        'ISubqueryProject',\n        ConnectionPoolService,\n        EventEmitter2,\n        NodeConfig,\n      ],\n    },\n    {\n      provide: 'IUnfinalizedBlocksService',\n      useClass: UnfinalizedBlocksService,\n    },\n    {\n      provide: 'RuntimeService',\n      useClass: RuntimeService,\n    },\n    {\n      provide: 'IBlockchainService',\n      useClass: BlockchainService,\n    },\n    TestRunner,\n    {\n      provide: 'IIndexerManager',\n      useClass: IndexerManager,\n    },\n    DsProcessorService,\n    DynamicDsService,\n    MultiChainRewindService,\n  ],\n  controllers: [],\n  exports: [TestRunner],\n})\nexport class TestingFeatureModule {}\n"
  },
  {
    "path": "packages/node/src/subcommands/testing.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable, Module } from '@nestjs/common';\nimport { NestFactory } from '@nestjs/core';\nimport { EventEmitterModule } from '@nestjs/event-emitter';\nimport { ScheduleModule } from '@nestjs/schedule';\nimport { ApiPromise } from '@polkadot/api';\nimport {\n  NodeConfig,\n  TestingService as BaseTestingService,\n  NestLogger,\n  TestRunner,\n  ProjectService,\n  DbModule,\n} from '@subql/node-core';\nimport { SubstrateDatasource } from '@subql/types';\nimport { ConfigureModule } from '../configure/configure.module';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { ApiAt, BlockContent, LightBlockContent } from '../indexer/types';\nimport { TestingFeatureModule } from './testing.module';\n\n@Module({\n  imports: [\n    DbModule.forRoot(),\n    ConfigureModule.register(),\n    EventEmitterModule.forRoot(),\n    ScheduleModule.forRoot(),\n    TestingFeatureModule,\n  ],\n  controllers: [],\n})\nexport class TestingModule {}\n\n@Injectable()\nexport class TestingService extends BaseTestingService<\n  ApiPromise,\n  ApiAt,\n  BlockContent | LightBlockContent,\n  SubstrateDatasource\n> {\n  constructor(\n    nodeConfig: NodeConfig,\n    @Inject('ISubqueryProject') project: SubqueryProject,\n  ) {\n    super(nodeConfig, project);\n  }\n\n  async getTestRunner(): Promise<\n    [\n      close: () => Promise<void>,\n      runner: TestRunner<ApiPromise, ApiAt, BlockContent, SubstrateDatasource>,\n    ]\n  > {\n    const testContext = await NestFactory.createApplicationContext(\n      TestingModule,\n      {\n        logger: new NestLogger(!!this.nodeConfig.debug),\n      },\n    );\n\n    await testContext.init();\n\n    const projectService: ProjectService = testContext.get('IProjectService');\n\n    await projectService.init();\n\n    return [testContext.close.bind(testContext), testContext.get(TestRunner)];\n  }\n}\n"
  },
  {
    "path": "packages/node/src/utils/project.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport { LocalReader, loadFromJsonOrYaml } from '@subql/common';\nimport {\n  ChainTypes,\n  parseChainTypes,\n  SubstrateRuntimeHandler,\n  SubstrateCustomHandler,\n  SubstrateHandler,\n  SubstrateHandlerKind,\n  isRuntimeDs,\n  isCustomDs,\n} from '@subql/common-substrate';\nimport { SANDBOX_DEFAULT_BUILTINS, saveFile } from '@subql/node-core';\nimport { Reader } from '@subql/types-core';\nimport yaml from 'js-yaml';\nimport { NodeVM, VMScript } from 'vm2';\nimport {\n  SubqueryProject,\n  SubstrateProjectDs,\n} from '../configure/SubqueryProject';\n\nexport function isBaseHandler(\n  handler: SubstrateHandler,\n): handler is SubstrateRuntimeHandler {\n  return Object.values<string>(SubstrateHandlerKind).includes(handler.kind);\n}\n\nexport function isCustomHandler(\n  handler: SubstrateHandler,\n): handler is SubstrateCustomHandler {\n  return !isBaseHandler(handler);\n}\n\nexport async function getChainTypes(\n  reader: Reader,\n  root: string,\n  file: string,\n): Promise<ChainTypes> {\n  // If the project is load from local, we will direct load them\n  let raw: unknown;\n  if (reader instanceof LocalReader) {\n    raw = loadChainTypes(file, root);\n  } else {\n    // If it is stored in ipfs or other resources, we will use the corresponding reader to read the file\n    // Because ipfs not provide extension of the file, it is difficult to determine its format\n    // We will use yaml.load to try to load the script and parse them to supported chain types\n    // if it failed, we will give it another attempt, and assume the script written in js\n    // we will download it to a temp folder, and load them within sandbox\n    const res = await reader.getFile(file);\n    try {\n      raw = yaml.load(res);\n    } catch (e) {\n      const chainTypesPath = await saveFile(reader, root, file, res);\n      raw = loadChainTypesFromJs(chainTypesPath); //root not required, as it been packed in single js\n    }\n  }\n  return parseChainTypes(raw);\n}\n\nexport function loadChainTypes(file: string, projectRoot: string): unknown {\n  const { ext } = path.parse(file);\n  const filePath = path.resolve(projectRoot, file);\n  if (fs.existsSync(filePath)) {\n    if (ext === '.js' || ext === '.cjs') {\n      //load can be self contained js file, or js depend on node_module which will require project root\n      return loadChainTypesFromJs(filePath, projectRoot);\n    } else if (ext === '.yaml' || ext === '.yml' || ext === '.json') {\n      return loadFromJsonOrYaml(filePath);\n    } else {\n      throw new Error(`Extension ${ext} not supported`);\n    }\n  } else {\n    throw new Error(`Load from file ${file} not exist`);\n  }\n}\n\nexport function loadChainTypesFromJs(\n  filePath: string,\n  requireRoot?: string,\n): unknown {\n  const { base, ext } = path.parse(filePath);\n  const root = requireRoot ?? path.dirname(filePath);\n  const vm = new NodeVM({\n    console: 'redirect',\n    wasm: false,\n    sandbox: {},\n    require: {\n      context: 'sandbox',\n      external: true,\n      builtin: SANDBOX_DEFAULT_BUILTINS,\n      root: root,\n      resolve: (moduleName: string) => {\n        return require.resolve(moduleName, { paths: [root] });\n      },\n    },\n    wrapper: 'commonjs',\n    sourceExtensions: ['js', 'cjs'],\n  });\n  let rawContent: unknown;\n  try {\n    const script = new VMScript(\n      `module.exports = require('${filePath}').default;`,\n      path.join(root, 'sandbox'),\n    ).compile();\n    rawContent = vm.run(script) as unknown;\n  } catch (err) {\n    throw new Error(`\\n NodeVM error: ${err}`);\n  }\n  if (rawContent === undefined) {\n    throw new Error(\n      `There was no default export found from required ${base} file`,\n    );\n  }\n  return rawContent;\n}\n\nfunction dsContainsNonEventHandlers(ds: SubstrateProjectDs): boolean {\n  if (isRuntimeDs(ds)) {\n    return !!ds.mapping.handlers.find(\n      (handler) => handler.kind !== SubstrateHandlerKind.Event,\n    );\n  } else if (isCustomDs(ds)) {\n    // TODO this can be improved upon in the future.\n    return true;\n  }\n  return true;\n}\n\nexport function isOnlyEventHandlers(project: SubqueryProject): boolean {\n  const hasNonEventHandler = !!project.dataSources.find((ds) =>\n    dsContainsNonEventHandlers(ds),\n  );\n  const hasNonEventTemplate = !!project.templates.find((ds) =>\n    dsContainsNonEventHandlers(ds as SubstrateProjectDs),\n  );\n\n  return !hasNonEventHandler && !hasNonEventTemplate;\n}\n"
  },
  {
    "path": "packages/node/src/utils/substrate.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { ApiPromise, WsProvider } from '@polkadot/api';\nimport { getLogger } from '@subql/node-core';\nimport { stringToArray } from 'cron-converter';\nimport {\n  fetchBlocksArray,\n  fetchBlocksBatches,\n  filterExtrinsic,\n  getBlockByHeight,\n  getHeaderForHash,\n  getTimestamp,\n} from './substrate';\n\nconst ENDPOINT_POLKADOT = 'wss://rpc.polkadot.io';\nconst ENDPOINT_KARURA = 'wss://karura-rpc-0.aca-api.network';\nconst ENDPOINT_SHIDEN = 'wss://rpc.shiden.astar.network';\njest.setTimeout(100000);\n\ndescribe('substrate utils', () => {\n  let api: ApiPromise;\n  beforeAll(async () => {\n    const provider = new WsProvider(ENDPOINT_POLKADOT);\n    api = await ApiPromise.create({ provider });\n  });\n\n  afterAll(() => api?.disconnect());\n\n  it('invalid timestamp throws error on cron creation', () => {\n    const cronString = 'invalid cron';\n    expect(() => {\n      try {\n        stringToArray(cronString);\n      } catch (e) {\n        throw new Error(`invalid cron expression: ${cronString}`);\n      }\n    }).toThrow(Error);\n  });\n\n  // This endpoint was having issue when fetch block 3467086, but fixed now\n  // Keep the test for further debugging\n  it.skip('validate block hash after fetch', async () => {\n    const provider = new WsProvider(ENDPOINT_KARURA);\n    const api = await ApiPromise.create({ provider });\n    await expect(fetchBlocksArray(api, [3467085, 3467086])).rejects.toThrow(\n      'fetched block header hash 0xdcdd89927d8a348e00257e1ecc8617f45edb5118efff3ea2f9961b2ad9b7690a is not match with blockHash 0xd13a656c8c4cd7a6f7d03db8209eee9c597edffba1b7ee2dc40844089e10b21a at block 3467086',\n    );\n    // This test creates another api instance, so we need to disconnect manually\n    await api.disconnect();\n  });\n\n  it('filters a signed extrinsic', async () => {\n    const [iblock] = await fetchBlocksBatches(api, [16832854]);\n\n    const block = iblock.block;\n\n    expect(\n      filterExtrinsic(block.extrinsics[0], { isSigned: true }),\n    ).toBeFalsy(); // Timestamp set\n    expect(\n      filterExtrinsic(block.extrinsics[2], { isSigned: true }),\n    ).toBeTruthy();\n\n    expect(\n      filterExtrinsic(block.extrinsics[0], { isSigned: false }),\n    ).toBeTruthy();\n    expect(\n      filterExtrinsic(block.extrinsics[2], { isSigned: false }),\n    ).toBeFalsy();\n  });\n\n  it('decode fail message', async () => {\n    const logger = getLogger('fetch');\n    const consoleSpy = jest.spyOn(logger, 'error');\n\n    const provider = new WsProvider(ENDPOINT_KARURA);\n    const api = await ApiPromise.create({ provider });\n\n    await expect(getBlockByHeight(api, 86614)).rejects.toThrow(\n      /Unable to decode|failed decoding|unknown type/,\n    );\n\n    expect(consoleSpy).toHaveBeenCalledWith(\n      expect.stringMatching(/Update the chain types/),\n    );\n    consoleSpy.mockRestore();\n    await api.disconnect();\n  });\n\n  it('decode normal message', async () => {\n    const provider = new WsProvider(ENDPOINT_KARURA);\n    const api = await ApiPromise.create({ provider });\n\n    expect(await getBlockByHeight(api, 50710)).toBeTruthy();\n    await api.disconnect();\n  });\n\n  it('return undefined if no timestamp set extrinsic', async () => {\n    const provider = new WsProvider(ENDPOINT_SHIDEN);\n    const api = await ApiPromise.create({ provider });\n    const block1 = await getBlockByHeight(api, 1);\n    expect(getTimestamp(block1)).toBeUndefined();\n    await api.disconnect();\n  });\n\n  it('return defined if no timestamp set extrinsic', async () => {\n    const provider = new WsProvider(ENDPOINT_SHIDEN);\n    const api = await ApiPromise.create({ provider });\n    const block1 = await getBlockByHeight(api, 999999);\n    const { timestamp } = await getHeaderForHash(\n      api,\n      block1.block.header.hash.toString(),\n    );\n    expect(timestamp).toBeDefined();\n    await api.disconnect();\n  });\n});\n"
  },
  {
    "path": "packages/node/src/utils/substrate.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport { ApiPromise } from '@polkadot/api';\nimport { Vec } from '@polkadot/types';\nimport '@polkadot/api-augment/substrate';\nimport {\n  BlockHash,\n  EventRecord,\n  RuntimeVersion,\n  SignedBlock,\n  Header as SubstrateHeader,\n} from '@polkadot/types/interfaces';\nimport { BN, BN_THOUSAND, BN_TWO, bnMin } from '@polkadot/util';\nimport {\n  getLogger,\n  IBlock,\n  Header,\n  filterBlockTimestamp,\n} from '@subql/node-core';\nimport {\n  SpecVersionRange,\n  SubstrateBlockFilter,\n  SubstrateCallFilter,\n  SubstrateEventFilter,\n  SubstrateBlock,\n  SubstrateEvent,\n  SubstrateExtrinsic,\n  BlockHeader,\n} from '@subql/types';\nimport { merge } from 'lodash';\nimport { SubqlProjectBlockFilter } from '../configure/SubqueryProject';\nimport { ApiPromiseConnection } from '../indexer/apiPromise.connection';\nimport { BlockContent, LightBlockContent } from '../indexer/types';\n\nconst logger = getLogger('fetch');\nconst INTERVAL_THRESHOLD = BN_THOUSAND.div(BN_TWO);\nconst DEFAULT_TIME = new BN(6_000);\nconst A_DAY = new BN(24 * 60 * 60 * 1000);\n\ntype MissTsHeader = Omit<Header, 'timestamp'>;\n\nexport function substrateHeaderToHeader(header: SubstrateHeader): MissTsHeader {\n  return {\n    blockHeight: header.number.toNumber(),\n    blockHash: header.hash.toHex(),\n    parentHash: header.parentHash.toHex(),\n  };\n}\n\nexport function substrateBlockToHeader(block: SignedBlock): Header {\n  const timestamp = getTimestamp(block);\n  assert(\n    timestamp,\n    'Failed to retrieve a reliable timestamp. This issue is more likely to occur on networks like Shiden',\n  );\n\n  return {\n    ...substrateHeaderToHeader(block.block.header),\n    timestamp,\n  };\n}\n\nexport function wrapBlock(\n  signedBlock: SignedBlock,\n  events: EventRecord[],\n  specVersion: number,\n): SubstrateBlock {\n  return merge(signedBlock, {\n    timestamp: getTimestamp(signedBlock),\n    specVersion: specVersion,\n    events,\n  });\n}\n\nexport function getTimestamp({\n  block: { extrinsics },\n}: SignedBlock): Date | undefined {\n  // extrinsics can be undefined when fetching light blocks\n  if (extrinsics) {\n    for (const e of extrinsics) {\n      const {\n        method: { method, section },\n      } = e;\n      if (section === 'timestamp' && method === 'set') {\n        const date = new Date(e.args[0].toJSON() as number);\n        if (isNaN(date.getTime())) {\n          throw new Error('timestamp args type wrong');\n        }\n        return date;\n      }\n    }\n  }\n  // For network that doesn't use timestamp-set, return undefined\n  // See test `return undefined if no timestamp set extrinsic`\n  // E.g Shiden\n  return undefined;\n}\n\nexport async function getHeaderForHash(\n  api: ApiPromise,\n  blockHash: string,\n): Promise<Header> {\n  const block = await api.rpc.chain.getBlock(blockHash).catch((e) => {\n    logger.error(\n      `failed to fetch Block hash=\"${blockHash}\" ${getApiDecodeErrMsg(e.message)}`,\n    );\n    throw ApiPromiseConnection.handleError(e);\n  });\n\n  return substrateBlockToHeader(block);\n}\n\nexport function wrapExtrinsics(\n  wrappedBlock: SubstrateBlock,\n  allEvents: EventRecord[],\n): SubstrateExtrinsic[] {\n  const groupedEvents = groupEventsByExtrinsic(allEvents);\n  return wrappedBlock.block.extrinsics.map((extrinsic, idx) => {\n    const events = groupedEvents[idx];\n    return {\n      idx,\n      extrinsic,\n      block: wrappedBlock,\n      events,\n      success: getExtrinsicSuccess(events),\n    };\n  });\n}\n\nfunction getExtrinsicSuccess(events: EventRecord[]): boolean {\n  return (\n    events.findIndex((evt) => evt.event.method === 'ExtrinsicSuccess') > -1\n  );\n}\n\nfunction groupEventsByExtrinsic(\n  events: EventRecord[],\n): Record<number, EventRecord[]> {\n  return events.reduce(\n    (acc, event) => {\n      const extrinsicIdx = event.phase.isApplyExtrinsic\n        ? event.phase.asApplyExtrinsic.toNumber()\n        : undefined;\n      if (extrinsicIdx === undefined) {\n        return acc;\n      }\n      acc[extrinsicIdx] ??= [];\n      acc[extrinsicIdx].push(event);\n      return acc;\n    },\n    {} as Record<number, EventRecord[]>,\n  );\n}\n\nexport function wrapEvents(\n  extrinsics: SubstrateExtrinsic[],\n  events: EventRecord[],\n  block: SubstrateBlock,\n): SubstrateEvent[] {\n  return events.reduce((acc, event, idx) => {\n    const { phase } = event;\n    const wrappedEvent: SubstrateEvent = merge(event, { idx, block });\n    if (phase.isApplyExtrinsic) {\n      wrappedEvent.extrinsic = extrinsics[phase.asApplyExtrinsic.toNumber()];\n    }\n    acc.push(wrappedEvent);\n    return acc;\n  }, [] as SubstrateEvent[]);\n}\n\nfunction checkSpecRange(\n  specVersionRange: SpecVersionRange,\n  specVersion: number,\n) {\n  const [lowerBond, upperBond] = specVersionRange;\n  return (\n    (lowerBond === undefined ||\n      lowerBond === null ||\n      specVersion >= lowerBond) &&\n    (upperBond === undefined || upperBond === null || specVersion <= upperBond)\n  );\n}\n\nexport function filterBlock(\n  block: SubstrateBlock,\n  filter?: SubstrateBlockFilter,\n): SubstrateBlock | undefined {\n  if (!filter) return block;\n  if (!filterBlockModulo(block, filter)) return;\n  if (\n    block.timestamp &&\n    !filterBlockTimestamp(\n      block.timestamp.getTime(),\n      filter as SubqlProjectBlockFilter,\n    )\n  ) {\n    return;\n  }\n  return filter.specVersion === undefined ||\n    block.specVersion === undefined ||\n    checkSpecRange(filter.specVersion, block.specVersion)\n    ? block\n    : undefined;\n}\n\nexport function filterBlockModulo(\n  block: SubstrateBlock,\n  filter: SubstrateBlockFilter,\n): boolean {\n  const { modulo } = filter;\n  if (!modulo) return true;\n  return block.block.header.number.toNumber() % modulo === 0;\n}\n\nexport function filterExtrinsic(\n  { block, extrinsic, success }: SubstrateExtrinsic,\n  filter?: SubstrateCallFilter,\n): boolean {\n  if (!filter) return true;\n  return (\n    (filter.specVersion === undefined ||\n      block.specVersion === undefined ||\n      checkSpecRange(filter.specVersion, block.specVersion)) &&\n    (filter.module === undefined ||\n      extrinsic.method.section === filter.module) &&\n    (filter.method === undefined ||\n      extrinsic.method.method === filter.method) &&\n    (filter.success === undefined || success === filter.success) &&\n    (filter.isSigned === undefined || extrinsic.isSigned === filter.isSigned)\n  );\n}\n\nexport function filterExtrinsics(\n  extrinsics: SubstrateExtrinsic[],\n  filterOrFilters: SubstrateCallFilter | SubstrateCallFilter[] | undefined,\n): SubstrateExtrinsic[] {\n  if (\n    !filterOrFilters ||\n    (filterOrFilters instanceof Array && filterOrFilters.length === 0)\n  ) {\n    return extrinsics;\n  }\n  const filters =\n    filterOrFilters instanceof Array ? filterOrFilters : [filterOrFilters];\n  return extrinsics.filter((extrinsic) =>\n    filters.find((filter) => filterExtrinsic(extrinsic, filter)),\n  );\n}\n\nexport function filterEvent(\n  { block, event }: SubstrateEvent,\n  filter?: SubstrateEventFilter,\n): boolean {\n  if (!filter) return true;\n  return (\n    (filter.specVersion === undefined ||\n      block.specVersion === undefined ||\n      checkSpecRange(filter.specVersion, block.specVersion)) &&\n    (filter.module ? event.section === filter.module : true) &&\n    (filter.method ? event.method === filter.method : true)\n  );\n}\n\nexport function filterEvents(\n  events: SubstrateEvent[],\n  filterOrFilters?: SubstrateEventFilter | SubstrateEventFilter[],\n): SubstrateEvent[] {\n  if (\n    !filterOrFilters ||\n    (filterOrFilters instanceof Array && filterOrFilters.length === 0)\n  ) {\n    return events;\n  }\n  const filters =\n    filterOrFilters instanceof Array ? filterOrFilters : [filterOrFilters];\n  return events.filter((event) =>\n    filters.find((filter) => filterEvent(event, filter)),\n  );\n}\n\n// TODO: prefetch all known runtime upgrades at once\nexport async function prefetchMetadata(\n  api: ApiPromise,\n  hash: BlockHash,\n): Promise<void> {\n  await api.getBlockRegistry(hash);\n}\n\n/**\n *\n * @param api\n * @param startHeight\n * @param endHeight\n * @param overallSpecVer exists if all blocks in the range have same parant specVersion\n */\n\nexport async function getBlockByHeight(\n  api: ApiPromise,\n  height: number,\n): Promise<SignedBlock> {\n  const blockHash = await api.rpc.chain.getBlockHash(height).catch((e) => {\n    logger.error(`failed to fetch BlockHash ${height}`);\n    throw ApiPromiseConnection.handleError(e);\n  });\n\n  const block = await api.rpc.chain.getBlock(blockHash).catch((e) => {\n    logger.error(\n      `failed to fetch Block hash=\"${blockHash}\" height=\"${height}\"${getApiDecodeErrMsg(e.message)}`,\n    );\n    throw ApiPromiseConnection.handleError(e);\n  });\n\n  // validate block is valid\n  if (block.block.header.hash.toHex() !== blockHash.toHex()) {\n    throw new Error(\n      `fetched block header hash ${block.block.header.hash.toHex()} is not match with blockHash ${blockHash.toHex()} at block ${height}. This is likely a problem with the rpc provider.`,\n    );\n  }\n  return block;\n}\n\nexport async function getHeaderByHeight(\n  api: ApiPromise,\n  height: number,\n): Promise<SubstrateHeader> {\n  const blockHash = await api.rpc.chain.getBlockHash(height).catch((e) => {\n    logger.error(`failed to fetch BlockHash ${height}`);\n    throw ApiPromiseConnection.handleError(e);\n  });\n\n  const header = await api.rpc.chain.getHeader(blockHash).catch((e) => {\n    logger.error(\n      `failed to fetch Block Header hash=\"${blockHash}\" height=\"${height}\"`,\n    );\n    throw ApiPromiseConnection.handleError(e);\n  });\n  // validate block is valid\n  if (header.hash.toHex() !== blockHash.toHex()) {\n    throw new Error(\n      `fetched block header hash ${header.hash.toHex()} is not match with blockHash ${blockHash.toHex()} at block ${height}. This is likely a problem with the rpc provider.`,\n    );\n  }\n  return header;\n}\n\nexport async function fetchBlocksArray(\n  api: ApiPromise,\n  blockArray: number[],\n): Promise<SignedBlock[]> {\n  return Promise.all(\n    blockArray.map(async (height) => getBlockByHeight(api, height)),\n  );\n}\n\nexport async function fetchHeaderArray(\n  api: ApiPromise,\n  blockArray: number[],\n): Promise<SubstrateHeader[]> {\n  return Promise.all(\n    blockArray.map(async (height) => getHeaderByHeight(api, height)),\n  );\n}\n\nexport async function fetchEventsRange(\n  api: ApiPromise,\n  hashs: BlockHash[],\n): Promise<Vec<EventRecord>[]> {\n  return Promise.all(\n    hashs.map((hash) =>\n      api.query.system.events.at(hash).catch((e) => {\n        logger.error(\n          `failed to fetch events at block ${hash}${getApiDecodeErrMsg(e.message)}`,\n        );\n        throw ApiPromiseConnection.handleError(e);\n      }),\n    ),\n  );\n}\n\nexport async function fetchRuntimeVersionRange(\n  api: ApiPromise,\n  hashs: BlockHash[],\n): Promise<RuntimeVersion[]> {\n  return Promise.all(\n    hashs.map((hash) =>\n      api.rpc.state.getRuntimeVersion(hash).catch((e) => {\n        logger.error(`failed to fetch RuntimeVersion at block ${hash}`);\n        throw ApiPromiseConnection.handleError(e);\n      }),\n    ),\n  );\n}\n\nexport async function fetchBlocksBatches(\n  api: ApiPromise,\n  blockArray: number[],\n  overallSpecVer?: number,\n): Promise<IBlock<BlockContent>[]> {\n  const blocks = await fetchBlocksArray(api, blockArray);\n  const blockHashs = blocks.map((b) => b.block.header.hash);\n  const parentBlockHashs = blocks.map((b) => b.block.header.parentHash);\n  // If overallSpecVersion passed, we don't need to use api to get runtimeVersions\n  // wrap block with specVersion\n  // If specVersion changed, we also not guarantee in this batch contains multiple runtimes,\n  // therefore we better to fetch runtime over all blocks\n  const [blockEvents, runtimeVersions] = await Promise.all([\n    fetchEventsRange(api, blockHashs),\n    overallSpecVer !== undefined // note, we need to be careful if spec version is 0\n      ? undefined\n      : fetchRuntimeVersionRange(api, parentBlockHashs),\n  ]);\n\n  return blocks.map((block, idx) => {\n    const events = blockEvents[idx];\n    const parentSpecVersion =\n      overallSpecVer ?? runtimeVersions?.[idx].specVersion.toNumber();\n    assert(parentSpecVersion !== undefined, 'parentSpecVersion is undefined');\n\n    const wrappedBlock = wrapBlock(block, events.toArray(), parentSpecVersion);\n    const wrappedExtrinsics = wrapExtrinsics(wrappedBlock, events);\n    const wrappedEvents = wrapEvents(wrappedExtrinsics, events, wrappedBlock);\n\n    return {\n      getHeader: () => substrateBlockToHeader(wrappedBlock),\n      block: {\n        block: wrappedBlock,\n        extrinsics: wrappedExtrinsics,\n        events: wrappedEvents,\n      },\n    };\n  });\n}\n\n// TODO why is fetchBlocksBatches a breadth first function rather than depth?\nexport async function fetchLightBlock(\n  api: ApiPromise,\n  height: number,\n): Promise<IBlock<LightBlockContent>> {\n  const blockHash = await api.rpc.chain.getBlockHash(height).catch((e) => {\n    logger.error(`failed to fetch BlockHash ${height}`);\n    throw ApiPromiseConnection.handleError(e);\n  });\n\n  const [header, events, timestamp] = await Promise.all([\n    api.rpc.chain.getHeader(blockHash).catch((e) => {\n      logger.error(\n        `failed to fetch Block Header hash=\"${blockHash}\" height=\"${height}\"`,\n      );\n      throw ApiPromiseConnection.handleError(e);\n    }),\n    api.query.system.events.at(blockHash).catch((e) => {\n      logger.error(`failed to fetch events at block ${blockHash}`);\n      throw ApiPromiseConnection.handleError(e);\n    }),\n    // TODO: Maybe api.query.timestamp.now.at(blockHash) is the only option. If we do use it we need sufficient tests and errors if a chain doesn't support getting the timestamp.\n    (await api.at(blockHash)).query.timestamp.now(),\n  ]);\n\n  const blockHeader: BlockHeader = {\n    block: { header },\n    events: events.toArray(),\n  };\n  return {\n    block: {\n      block: blockHeader,\n      events: events.map((evt, idx) => merge(evt, { idx, block: blockHeader })),\n    },\n    getHeader: () => {\n      return {\n        ...substrateHeaderToHeader(blockHeader.block.header),\n        timestamp: new Date(timestamp.toNumber()),\n      };\n    },\n  };\n}\n\nexport async function fetchBlocksBatchesLight(\n  api: ApiPromise,\n  blockArray: number[],\n): Promise<IBlock<LightBlockContent>[]> {\n  return Promise.all(blockArray.map((height) => fetchLightBlock(api, height)));\n}\n\nexport function calcInterval(api: ApiPromise): BN {\n  return bnMin(\n    A_DAY,\n    api.consts.babe?.expectedBlockTime ||\n      (api.consts.difficulty?.targetBlockTime as any) ||\n      api.consts.subspace?.expectedBlockTime ||\n      (api.consts.timestamp?.minimumPeriod.gte(INTERVAL_THRESHOLD)\n        ? api.consts.timestamp.minimumPeriod.mul(BN_TWO)\n        : api.query.parachainSystem\n          ? DEFAULT_TIME.mul(BN_TWO)\n          : DEFAULT_TIME),\n  );\n}\n\nfunction getApiDecodeErrMsg(errMsg: string): string {\n  const decodedErrMsgs = [\n    'Unable to decode',\n    'failed decoding',\n    'unknown type',\n  ];\n\n  if (!decodedErrMsgs.find((decodedErrMsg) => errMsg.includes(decodedErrMsg))) {\n    return '';\n  }\n\n  return (\n    `\\nThis is because the block cannot be decoded. To solve this you can either:` +\n    '\\n* Skip the block' +\n    '\\n* Update the chain types. You can test this by viewing the block with https://polkadot.js.org/apps/' +\n    '\\nFor further information please read the docs: https://academy.subquery.network/'\n  );\n}\n"
  },
  {
    "path": "packages/node/src/utils/test.utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// Utils for integration tests\n\nimport { DynamicModule, INestApplication } from '@nestjs/common';\nimport { EventEmitterModule } from '@nestjs/event-emitter';\nimport { ScheduleModule } from '@nestjs/schedule';\nimport { Test } from '@nestjs/testing';\nimport {\n  CoreModule,\n  DbModule,\n  HistoricalMode,\n  NodeConfig,\n  registerApp,\n} from '@subql/node-core';\nimport { ConfigureModule } from '../configure/configure.module';\nimport {\n  createSubQueryProject,\n  SubqueryProject,\n} from '../configure/SubqueryProject';\nimport { FetchModule } from '../indexer/fetch.module';\n\nconst mockInstance = async (\n  cid: string,\n  schemaName: string,\n  historical: HistoricalMode,\n  useSubscription: boolean,\n  timestampField: boolean,\n) => {\n  const argv: Record<string, any> = {\n    _: [],\n    historical,\n    subquery: `ipfs://${cid}`,\n    dbSchema: schemaName,\n    allowSchemaMigration: true,\n    ipfs: 'https://unauthipfs.subquery.network/ipfs/api/v0',\n    networkEndpoint: 'https://rpc.polkadot.io/public',\n    timestampField,\n    subscription: useSubscription,\n    // unfinalizedBlocks: false,\n  };\n  return registerApp<SubqueryProject>(\n    argv,\n    createSubQueryProject,\n    () => {}, //jest.fn(),\n    '',\n  );\n};\n\nasync function mockRegister(\n  cid: string,\n  schemaName: string,\n  historical: HistoricalMode,\n  useSubscription: boolean,\n  timestampField: boolean,\n): Promise<DynamicModule> {\n  const { nodeConfig, project } = await mockInstance(\n    cid,\n    schemaName,\n    historical,\n    useSubscription,\n    timestampField,\n  );\n\n  return {\n    module: ConfigureModule,\n    providers: [\n      {\n        provide: NodeConfig,\n        useValue: nodeConfig,\n      },\n      {\n        provide: 'ISubqueryProject',\n        useValue: project,\n      },\n      {\n        provide: 'IProjectUpgradeService',\n        useValue: project,\n      },\n      {\n        provide: 'Null',\n        useValue: null,\n      },\n    ],\n    exports: [NodeConfig, 'ISubqueryProject', 'IProjectUpgradeService', 'Null'],\n  };\n}\n\nexport async function prepareApp(\n  schemaName: string,\n  cid: string,\n  disableHistorical = false,\n  useSubscription = false,\n  timestampField = false,\n): Promise<INestApplication> {\n  const m = await Test.createTestingModule({\n    imports: [\n      DbModule.forRoot(),\n      EventEmitterModule.forRoot(),\n      mockRegister(\n        cid,\n        schemaName,\n        disableHistorical ? false : 'height',\n        useSubscription,\n        timestampField,\n      ),\n      ScheduleModule.forRoot(),\n      CoreModule,\n      FetchModule,\n    ],\n    controllers: [],\n  }).compile();\n\n  const app = m.createNestApplication();\n  await app.init();\n  return app;\n}\n"
  },
  {
    "path": "packages/node/src/yargs.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { yargsBuilder } from '@subql/node-core/yargs';\n\nexport const yargsOptions = yargsBuilder({\n  initTesting: () => {\n    // lazy import to make sure logger is instantiated before all other services\n    // eslint-disable-next-line @typescript-eslint/no-var-requires\n    const { testingInit } = require('./subcommands/testing.init');\n    return testingInit();\n  },\n  initForceClean: () => {\n    // lazy import to make sure logger is instantiated before all other services\n    // eslint-disable-next-line @typescript-eslint/no-var-requires\n    const { forceCleanInit } = require('./subcommands/forceClean.init');\n    return forceCleanInit();\n  },\n  initReindex: (targetHeight: number) => {\n    // lazy import to make sure logger is instantiated before all other services\n    // eslint-disable-next-line @typescript-eslint/no-var-requires\n    const { reindexInit } = require('./subcommands/reindex.init');\n    return reindexInit(targetHeight);\n  },\n});\n"
  },
  {
    "path": "packages/node/test/jest-e2e.json",
    "content": "{\n  \"moduleFileExtensions\": [\"js\", \"json\", \"ts\"],\n  \"rootDir\": \".\",\n  \"testEnvironment\": \"node\",\n  \"testRegex\": \".e2e-spec.ts$\",\n  \"transform\": {\n    \"^.+\\\\.(t|j)s$\": \"ts-jest\"\n  }\n}\n"
  },
  {
    "path": "packages/node/test/jsonfy.js",
    "content": "'use strict';\n// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.JsonfyDatasourcePlugin = void 0;\nexports.JsonfyDatasourcePlugin = {\n  kind: 'substrate/Jsonfy',\n  validate(ds) {\n    return;\n  },\n  dsFilterProcessor(ds, api) {\n    return true;\n  },\n  handlerProcessors: {\n    'substrate/JsonfyEvent': {\n      specVersion: '1.0.0',\n      baseFilter: [],\n      baseHandlerKind: 'substrate/EventHandler',\n      // eslint-disable-next-line @typescript-eslint/require-await\n      async transformer({ original, ds }) {\n        return JSON.parse(JSON.stringify(original.toJSON()));\n      },\n      filterProcessor({ filter, input, ds }) {\n        return (\n          filter.module &&\n          input.event.section === filter.module &&\n          filter.method &&\n          input.event.method === filter.method\n        );\n      },\n      filterValidator(filter) {\n        return;\n      },\n    },\n  },\n};\nexports.default = exports.JsonfyDatasourcePlugin;\n//# sourceMappingURL=jsonfy.js.map\n"
  },
  {
    "path": "packages/node/test/projectFixture/bad.json",
    "content": ""
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/distMock/chaintypes.js",
    "content": "'use strict';\n\nexports.default = { typesBundle: {} };\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/distMock/index.js",
    "content": "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst tslib_1 = require('tslib');\n//Exports all handler functions\nrequire('@polkadot/api-augment');\n(0, tslib_1.__exportStar)(require('./mappings/mappingHandlers'), exports);\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/erc20.abi.json",
    "content": "[\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"name\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_spender\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"approve\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"totalSupply\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_from\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_to\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"transferFrom\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"decimals\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint8\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [\n      {\n        \"name\": \"_owner\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"balanceOf\",\n    \"outputs\": [\n      {\n        \"name\": \"balance\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"symbol\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_to\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"transfer\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [\n      {\n        \"name\": \"_owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_spender\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"allowance\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"payable\": true,\n    \"stateMutability\": \"payable\",\n    \"type\": \"fallback\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"name\": \"owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"name\": \"spender\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": false,\n        \"name\": \"value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Approval\",\n    \"type\": \"event\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"name\": \"from\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"name\": \"to\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": false,\n        \"name\": \"value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Transfer\",\n    \"type\": \"event\"\n  }\n]\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/js/test1/project.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\n\nname: ''\nversion: '0.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  chaintypes:\n    file: ./types.js\n\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/js/test1/types.js",
    "content": "'use strict';\n\nconst types = {\n  types: {\n    TestType: 'u32',\n  },\n  typesAlias: {\n    Alias: {\n      TestType2: 'test',\n    },\n  },\n  typesBundle: {\n    spec: {\n      2312: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType3: 'test3',\n            },\n          },\n        ],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType4: 'test4',\n            },\n          },\n        ],\n      },\n    },\n  },\n  typesChain: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n  typesSpec: {\n    spec3: {\n      TestType6: 'test',\n    },\n  },\n};\n\nObject.defineProperty(exports, '__esModule', {\n  value: true,\n});\n\nexports.default = types;\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/js/test2/project.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\n\nname: ''\nversion: '0.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  chaintypes:\n    file: ./types.js\n\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/js/test2/types.js",
    "content": "const os = require('os');\n\nconsole.log(os.platform);\n\nconst types = {\n  types: {\n    TestType: 'u32',\n  },\n  typesAlias: {\n    Alias: {\n      TestType2: 'test',\n    },\n  },\n  typesBundle: {\n    spec: {\n      2312: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType3: 'test3',\n            },\n          },\n        ],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType4: 'test4',\n            },\n          },\n        ],\n      },\n    },\n  },\n  typesChain: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n  typesSpec: {\n    spec3: {\n      TestType6: 'test',\n    },\n  },\n};\n\nmodule.exports = types;\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/js/test3/project.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\n\nname: ''\nversion: '0.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  chaintypes:\n    file: ./types.js\n\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/js/test3/types.js",
    "content": "const types = {\n  types: {\n    TestType: 'u32',\n  },\n  typesAlias: {\n    Alias: {\n      TestType2: 'test',\n    },\n  },\n  typesBundle: {\n    spec: {\n      2312: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType3: 'test3',\n            },\n          },\n        ],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType4: 'test4',\n            },\n          },\n        ],\n      },\n    },\n  },\n  typesChain: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n  typesSpec: {\n    spec3: {\n      TestType6: 'test',\n    },\n  },\n};\n\nmodule.exports.test = types;\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/js/test4/project.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\n\nname: ''\nversion: '0.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  chaintypes:\n    file: ./types.js\n\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/js/test4/types.js",
    "content": "'use strict';\n\nconst types = {\n  types: {\n    TestType: 'u32',\n  },\n  typesAlias: {\n    Alias: {\n      TestType2: 'test',\n    },\n  },\n  typesBundle: {\n    spec: {\n      2312: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType3: 'test3',\n            },\n          },\n        ],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType4: 'test4',\n            },\n          },\n        ],\n      },\n    },\n  },\n  typesChain: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n  typesSpec: {\n    spec3: {\n      TestType6: 'test',\n    },\n  },\n  shouldIgnorefield: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n};\n\nObject.defineProperty(exports, '__esModule', {\n  value: true,\n});\n\nexports.default = types;\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/package.json",
    "content": "{\n  \"name\": \"subquery-starter\",\n  \"version\": \"0.0.4\",\n  \"description\": \"This project can be use as a starting point for developing your SubQuery project\",\n  \"main\": \"dist/index.js\",\n  \"scripts\": {\n    \"build\": \"tsc -b\",\n    \"prepack\": \"rm -rf dist && npm build\",\n    \"test\": \"jest\",\n    \"codegen\": \"./node_modules/.bin/subql codegen\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql-starter\",\n  \"repository\": \"github:subquery/subql-starter\",\n  \"files\": [\n    \"dist\",\n    \"schema.graphql\",\n    \"project.yaml\"\n  ],\n  \"author\": \"Ian He & Jay Ji\",\n  \"license\": \"Apache-2.0\",\n  \"devDependencies\": {\n    \"@polkadot/api\": \"^16\",\n    \"@subql/types\": \"dev\",\n    \"typescript\": \"^4.1.3\",\n    \"@subql/cli\": \"dev\"\n  },\n  \"resolutions\": {\n    \"ipfs-unixfs\": \"6.0.6\"\n  }\n}\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/project.yaml",
    "content": "specVersion: 1.0.0\nname: subquery-query-registry-project\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=1.0.0'\n  query:\n    name: '@subql/query'\n    version: '*'\nschema:\n  file: ./schema.graphql\nnetwork:\n  # genesisHash: '0x956876d5b80e47e523a6629b3c3ac3e42f2850ad12e236d87a0aaac87c9f6bc9' # Moonriver\n  genesisHash: '0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527' # Moonbase Alpha\n  endpoint: wss://moonbeam-alpha.api.onfinality.io/public-ws\n  dictionary: https://api.subquery.network/sq/subquery/moonbase-alpha-dictionary\n\n  chaintypes:\n    file: './types.yaml'\ndataSources:\n  - kind: substrate/Moonbeam\n    startBlock: 1358833\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: settings\n        address: '0xde030fC2b42AE2438B32506ECf63B2f3c1665579'\n    assets:\n      settings:\n        file: ./src/settings.abi.json\n    mapping:\n      file: ./distMock/index.js\n      handlers:\n        - handler: handleUpdateSettings\n          kind: substrate/MoonbeamCall\n          filter:\n            function: setAllAddresses(address _sqToken,address _staking,address _indexerRegistry,address _queryRegistry) # add \",address _serviceAgreementRegistry\" in later versions\n\ntemplates:\n  - name: QueryRegistry\n    kind: substrate/Moonbeam\n    startBlock: 1358829\n    processor:\n      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        abi: queryRegistry\n        # address: '0xB0b3f6bc7a8E0bCb2aa1Cd2Ae2dE56fbdA3c0651'\n    assets:\n      queryRegistry:\n        file: ./src/queryRegistry.abi.json\n    mapping:\n      file: ./distMock/index.js\n      handlers:\n        - handler: handleNewQuery\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - CreateQuery(uint256 queryId, address creator, bytes32 metadata, bytes32 deploymentId, bytes32 version)\n        - handler: handleUpdateQueryMetadata\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryMetadata(address owner, uint256 queryId, bytes32 metadata)\n        - handler: handleUpdateQueryDeployment\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateQueryDeployment(address owner, uint256 queryId, bytes32 deploymentId, bytes32 version)\n        - handler: handleStartIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StartIndexing(address indexer, bytes32 deploymentId)\n        - handler: handleIndexingUpdate\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateDeploymentStatus(address indexer, bytes32 deploymentId, uint256 blockheight, bytes32 mmrRoot, uint256 timestamp)\n        - handler: handleIndexingReady\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - UpdateIndexingStatusToReady(address indexer, bytes32 deploymentId, uint256 _timestamp)\n        - handler: handleStopIndexing\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - StopIndexing(address indexer, bytes32 deploymentId)\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/schema.graphql",
    "content": "type StarterEntity @entity {\n  id: ID! #id is a required field\n  field1: Int!\n\n  field2: String #filed2 is an optional field\n  field3: BigInt\n\n  field4: Date\n\n  field5: Boolean\n}\n"
  },
  {
    "path": "packages/node/test/projectFixture/template-v1.0.0/types.yaml",
    "content": "types:\n  TestType: u32\ntypesAlias:\n  Alias:\n    TestType2: test\ntypesBundle:\n  spec:\n    '2312':\n      types:\n        - minmax:\n            - 232\n            - 122\n          types:\n            TestType3: test3\n  chain:\n    mockchain:\n      types:\n        - minmax:\n            - 232\n            - 122\n          types:\n            TestType4: test4\ntypesChain:\n  chain2:\n    TestType5: test\ntypesSpec:\n  spec3:\n    TestType6: test\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/distMock/chaintypes.js",
    "content": "'use strict';\n\nexports.default = { typesBundle: {} };\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/distMock/index.js",
    "content": "'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst tslib_1 = require('tslib');\n//Exports all handler functions\nrequire('@polkadot/api-augment');\n(0, tslib_1.__exportStar)(require('./mappings/mappingHandlers'), exports);\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/erc20.abi.json",
    "content": "[\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"name\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_spender\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"approve\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"totalSupply\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_from\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_to\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"transferFrom\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"decimals\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint8\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [\n      {\n        \"name\": \"_owner\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"balanceOf\",\n    \"outputs\": [\n      {\n        \"name\": \"balance\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"symbol\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_to\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"transfer\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [\n      {\n        \"name\": \"_owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_spender\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"allowance\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"payable\": true,\n    \"stateMutability\": \"payable\",\n    \"type\": \"fallback\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"name\": \"owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"name\": \"spender\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": false,\n        \"name\": \"value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Approval\",\n    \"type\": \"event\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"name\": \"from\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"name\": \"to\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": false,\n        \"name\": \"value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Transfer\",\n    \"type\": \"event\"\n  }\n]\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/js/test1/project.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\n\nname: ''\nversion: '0.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  chaintypes:\n    file: ./types.js\n\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/js/test1/types.js",
    "content": "'use strict';\n\nconst types = {\n  types: {\n    TestType: 'u32',\n  },\n  typesAlias: {\n    Alias: {\n      TestType2: 'test',\n    },\n  },\n  typesBundle: {\n    spec: {\n      2312: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType3: 'test3',\n            },\n          },\n        ],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType4: 'test4',\n            },\n          },\n        ],\n      },\n    },\n  },\n  typesChain: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n  typesSpec: {\n    spec3: {\n      TestType6: 'test',\n    },\n  },\n};\n\nObject.defineProperty(exports, '__esModule', {\n  value: true,\n});\n\nexports.default = types;\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/js/test2/project.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\n\nname: ''\nversion: '0.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  chaintypes:\n    file: ./types.js\n\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/js/test2/types.js",
    "content": "const os = require('os');\n\nconsole.log(os.platform);\n\nconst types = {\n  types: {\n    TestType: 'u32',\n  },\n  typesAlias: {\n    Alias: {\n      TestType2: 'test',\n    },\n  },\n  typesBundle: {\n    spec: {\n      2312: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType3: 'test3',\n            },\n          },\n        ],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType4: 'test4',\n            },\n          },\n        ],\n      },\n    },\n  },\n  typesChain: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n  typesSpec: {\n    spec3: {\n      TestType6: 'test',\n    },\n  },\n};\n\nmodule.exports = types;\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/js/test3/project.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\n\nname: ''\nversion: '0.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  chaintypes:\n    file: ./types.js\n\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/js/test3/types.js",
    "content": "const types = {\n  types: {\n    TestType: 'u32',\n  },\n  typesAlias: {\n    Alias: {\n      TestType2: 'test',\n    },\n  },\n  typesBundle: {\n    spec: {\n      2312: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType3: 'test3',\n            },\n          },\n        ],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType4: 'test4',\n            },\n          },\n        ],\n      },\n    },\n  },\n  typesChain: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n  typesSpec: {\n    spec3: {\n      TestType6: 'test',\n    },\n  },\n};\n\nmodule.exports.test = types;\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/js/test4/project.yaml",
    "content": "# project.yaml\nspecVersion: '0.2.0'\n\nname: ''\nversion: '0.0.0'\ndescription: ''\nrepository: 'https://github.com/subquery/subql-starter'\n\nschema:\n  file: ./schema.graphql\n\nnetwork:\n  genesisHash: '0x'\n  endpoint: 'wss://polkadot.api.onfinality.io/public-ws'\n  chaintypes:\n    file: ./types.js\n\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 1\n    mapping:\n      file: dist/index.js\n      handlers:\n        - handler: handleBlock\n          kind: substrate/BlockHandler\n        - handler: handleEvent\n          kind: substrate/EventHandler\n          filter: #Filter is optional\n            module: balances\n            method: Deposit\n        - handler: handleCall\n          kind: substrate/CallHandler\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/js/test4/types.js",
    "content": "'use strict';\n\nconst types = {\n  types: {\n    TestType: 'u32',\n  },\n  typesAlias: {\n    Alias: {\n      TestType2: 'test',\n    },\n  },\n  typesBundle: {\n    spec: {\n      2312: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType3: 'test3',\n            },\n          },\n        ],\n      },\n    },\n    chain: {\n      mockchain: {\n        types: [\n          {\n            minmax: [232, 122],\n            types: {\n              TestType4: 'test4',\n            },\n          },\n        ],\n      },\n    },\n  },\n  typesChain: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n  typesSpec: {\n    spec3: {\n      TestType6: 'test',\n    },\n  },\n  shouldIgnorefield: {\n    chain2: {\n      TestType5: 'test',\n    },\n  },\n};\n\nObject.defineProperty(exports, '__esModule', {\n  value: true,\n});\n\nexports.default = types;\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/package.json",
    "content": "{\n  \"name\": \"subquery-starter\",\n  \"version\": \"0.0.4\",\n  \"description\": \"This project can be use as a starting point for developing your SubQuery project\",\n  \"main\": \"dist/index.js\",\n  \"scripts\": {\n    \"build\": \"tsc -b\",\n    \"prepack\": \"rm -rf dist && npm build\",\n    \"test\": \"jest\",\n    \"codegen\": \"./node_modules/.bin/subql codegen\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql-starter\",\n  \"repository\": \"github:subquery/subql-starter\",\n  \"files\": [\n    \"dist\",\n    \"schema.graphql\",\n    \"project.yaml\"\n  ],\n  \"author\": \"Ian He & Jay Ji\",\n  \"license\": \"Apache-2.0\",\n  \"devDependencies\": {\n    \"@polkadot/api\": \"^16\",\n    \"@subql/types\": \"dev\",\n    \"typescript\": \"^4.9.5\",\n    \"@subql/cli\": \"dev\"\n  },\n  \"resolutions\": {\n    \"ipfs-unixfs\": \"6.0.6\"\n  }\n}\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/project.yaml",
    "content": "specVersion: 1.0.0\nname: moonriver\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=1.0.0'\n  query:\n    name: '@subql/query'\n    version: '*'\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: '0x401a1f9dca3da46f5c4091016c8a2f26dcea05865116b286f60f668207d1474b'\n  endpoint: wss://moonriver.api.onfinality.io/public-ws\n  dictionary: 'https://api.subquery.network/sq/subquery/moonriver-dictionary'\n  chaintypes:\n    file: './distMock/chaintypes.js'\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 69219\n    mapping:\n      file: './distMock/index.js'\n      handlers:\n        - handler: collatorJoined\n          kind: substrate/EventHandler\n          filter:\n            module: parachainStaking\n            method: JoinedCollatorCandidates\n        - handler: collatorLeft\n          kind: substrate/CallHandler\n          filter:\n            module: parachainStaking\n            method: leaveCandidates\n\n  - kind: substrate/Moonbeam\n    startBlock: 562683\n    processor:\n      file: './dist/moonbeam.js'\n      #      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        # Must be a key of assets\n        abi: erc20\n        address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b'\n    assets:\n      erc20:\n        file: './erc20.abi.json'\n    mapping:\n      file: ./distMock/index.js\n      handlers:\n        - handler: erc20Transfer\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - Transfer(address indexed from,address indexed to,uint256 value)\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/schema.graphql",
    "content": "type StarterEntity @entity {\n  id: ID! #id is a required field\n  field1: Int!\n\n  field2: String #filed2 is an optional field\n  field3: BigInt\n\n  field4: Date\n\n  field5: Boolean\n}\n"
  },
  {
    "path": "packages/node/test/projectFixture/v1.0.0/types.yaml",
    "content": "types:\n  TestType: u32\ntypesAlias:\n  Alias:\n    TestType2: test\ntypesBundle:\n  spec:\n    '2312':\n      types:\n        - minmax:\n            - 232\n            - 122\n          types:\n            TestType3: test3\n  chain:\n    mockchain:\n      types:\n        - minmax:\n            - 232\n            - 122\n          types:\n            TestType4: test4\ntypesChain:\n  chain2:\n    TestType5: test\ntypesSpec:\n  spec3:\n    TestType6: test\n"
  },
  {
    "path": "packages/node/tsconfig.build.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"exclude\": [\"node_modules\", \"test\", \"dist\", \"**/*spec.ts\"]\n}\n"
  },
  {
    "path": "packages/node/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"sourceMap\": true,\n    \"tsBuildInfoFile\": \"dist/.tsbuildinfo\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"./dist\",\n    \"noImplicitAny\": true\n  },\n  \"references\": [\n    { \"path\": \"../common\" },\n    { \"path\": \"../common-substrate\" },\n    { \"path\": \"../node-core\" },\n    { \"path\": \"../types-core\" },\n    { \"path\": \"../types\" },\n    { \"path\": \"../utils\" },\n    { \"path\": \"../testing\" }\n  ],\n  \"include\": [\"src/**/*\"],\n  \"exclude\": [\"node_modules\", \"test\", \"dist\"]\n}\n"
  },
  {
    "path": "packages/node-core/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [19.2.0] - 2026-03-05\n### Changed\n- Improve logging of `rewindHeight` when handling un-finalized blocks (#3018)\n\n### Fixed\n- Handle non-sequential unfinalized blocks with backfill (#3016)\n\n## [19.1.0] - 2026-02-23\n### Fixed\n- Recovery for invalid POI sync state on startup. Now it searches backward to find the last valid synced POI and updates\n  the metadata accordingly. (#3014)\n\n## [19.0.0] - 2025-11-26\n### Changed\n- Update the `toBlockResponse` function signature on the worker service to take an `IBlock<B>` instead of a `B` type (#2978)\n\n## [18.5.3] - 2025-11-25\n### Fixed\n- Updating models updateOnDuplicate field being calculated incorrectly (#2976)\n\n## [18.5.2] - 2025-11-20\n### Fixed\n- POI issues with array fields (#2972)\n\n## [18.5.1] - 2025-11-05\n### Fixed\n- Lock down VM2 version to avoid a breaking change (#2959)\n\n## [18.5.0] - 2025-10-15\n### Changed\n- Remove `cross-fetch` in favour of built in nodejs fetch (#2928)\n- Minor improvements and fixes from upgrading to eslint 9 with stricter settings (#2929)\n\n## [18.4.0] - 2025-09-16\n### Changed\n- Locked down graphql related dependencies (#2876)\n- Update polkadot dependenices (#2915)\n\n### Added\n- Support for .env in mapping handlers (#2901)\n\n## [18.3.3] - 2025-09-09\n### Fixed\n- Dictionary v2 being used with empty filter conditions (#2909)\n\n## [18.3.2] - 2025-08-29\n### Changed\n- Fixed typos (#2895)\n\n## [18.3.1] - 2025-07-30\n### Fixed\n- Indexes not being checked correctly on first startup and migrations (#2871)\n\n## [18.3.0] - 2025-07-24\n### Fixed\n- Fix decoding sourcemaps with stack traces\n\n### Changed\n- Improve error stack with sandbox require limitations (#2864)\n\n## [18.2.1] - 2025-07-17\n### Changed\n- Workspace dependencies now match to patch versions rather than exact (#2855)\n\n## [18.2.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n### Fixed\n- DB transaction being commit before all queries provided (#2838)\n\n## [18.1.2] - 2025-06-25\n### Fixed\n- Multichain rewind service cleanup (#2824)\n\n## [18.1.1] - 2025-06-05\n### Added\n- cause to BackoffError (#2805)\n\n### Changed\n- Improve error messages with workers (#2809)\n\n## [18.1.0] - 2025-05-21\n### Added\n- Support for adding new enum values in migrations (#2798)\n\n## [18.0.6] - 2025-05-20\n### Fixed\n- Edge case with auto queue out of order tasks (#2789)\n\n## [18.0.5] - 2025-05-08\n### Changed\n- Move function calls outside of loops in indexer manager (#2780)\n\n### Fixed\n- Max queue size error with workers (#2783)\n\n## [18.0.4] - 2025-04-30\n### Fixed\n- Regression with workers concurrency leading to bad performance (#2771)\n\n## [18.0.3] - 2025-04-24\n### Changed\n- Update blockDispactcherFactory args for worker data\n\n## [18.0.2] - 2025-04-24\n### Changed\n- Don't inject MultichainRewindService in workers (#2758)\n\n## [18.0.1] - 2025-04-24\n### Changed\n- Enable unfinalized blocks by default when historical indexing is enabled (#2755)\n\n## [18.0.0] - 2025-04-16\n### Added\n- Support multi chain project reindex\n\n## [17.2.2] - 2025-04-08\n### Fixed\n- Fix TaskFlushedError caused by DynamicDsCreated\n\n## [17.2.1] - 2025-03-24\n### Fixed\n- Max queue size error with workers (#2725)\n\n## [17.2.0] - 2025-03-20\n### Fixed\n- Testing not updating test results correctly if fetching block fails (#2716)\n- The `dynamicDatasources` will be cleared in advance, causing subsequent index data to be missing.\n- UnfinalizedBlock rollback not being handled correctly\n\n### Changed\n- On block fetch failure, finish indxing already fetched blocks before exiting (#2720)\n\n## [17.1.0] - 2025-03-05\n### Added\n- Flushing the cache every block when the project is fully synced to reduce delay between data indexed and being queryable (#2707)\n\n### Fixed\n- Finalized block getter when height is 0 (#2706)\n\n## [17.0.2] - 2025-02-26\n### Added\n- BlockDispatcher factory function and expose workerData (#2701)\n\n## [17.0.1] - 2025-02-25\n### Fixed\n- The UnfinalizedBlock type obtained from metadata is incorrect.\n\n## [17.0.0] - 2025-02-19\n### Changed\n- Update nestjs dependencies (#2667)\n- Update polkadot api to 15 (#2680)\n\n### Fixed\n- Remove injected TextEncoder into sandbox breaking some dependencies like Polkadot (#2680)\n\n## [16.2.1] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n- Implement new BlockchainService architecture for easier integration of other blockchains (#2517)\n\n### Fixed\n- Various typos\n\n### Removed\n- Id type check on plain model set method (#2662)\n\n## [16.2.0] - 2025-01-28\n### Changed\n- Updated send_notification PG function to include `_block height` and entity `_id` (#2626)\n\n### Added\n- Add `TextEncoder` in sandbox, some network package util method is depended on it\n- Added the `--monitor-object-max-depth` flag to mitigate OOM issues when encountering large chunks.(#2644)\n- Configuration options for PG pool connections (#2646)\n\n### Fixed\n- Fixed the inconsistency between the `monitor-file-size` flag and the expected behavior.(#2644)\n- Improved block range validation in POI endpoint with custom class-validator decorator\n- When setting a smaller batch size and the current processing height reaches latestFinalizedHeight, it causes the program to exit unexpectedly.\n- Store flush interval having a chance of trying to flush with invalid metadata (#2650)\n\n## [16.1.0] - 2024-12-11\n### Changed\n- If any tests fail with the `test` subcommand the exit code will now be 1 instead of 0 (#2624)\n\n## [16.0.0] - 2024-12-04\n### Removed\n- SmartBatchService as it didn't function as intended (#2611)\n\n### Changed\n- Implement new RampQueue to dynamically scale block fetching concurrency, this helps indexing larger blocks (#2611)\n- Memoize promises to get finalized and best blocks (#2611)\n\n### Fixed\n- Fixed the issue where flags that require special handling were being overwritten.(#2612)\n\n### Changed\n- Various internal improvements to exporters (CSV exporter) (#2617)\n\n## [15.0.3] - 2024-11-26\n### Fixed\n- Workers crashing because of lazy monitor write (#2607)\n\n## [15.0.2] - 2024-11-26\n### Fixed\n- Fix import path (#2605)\n\n## [15.0.1] - 2024-11-25\n### Changed\n- Update polkadot/api library to 14 version\n\n## [15.0.0] - 2024-11-22\n### Added\n- lazy loading for monitor service (#2583)\n- Add an `--enable-cache` flag, allowing you to choose between DB or cache for IO operations.\n\n### Fixed\n- When using a GET query to retrieve an entity, it will include a \"store\" field.\n- Support for historical indexing by timestamp as well as block height (#2584)\n- Subscriptions not emitting deleted mutation type with historical (#2600)\n\n### Removed\n- Support for cockroach DB (#2584)\n\n### Fixed\n- When configuring multiple endpoints, poor network conditions may lead to block crawling delays. (#2572)\n- Prevent the use of latestFinalizedHeight when unFinalizedBlock is enabled and the chain has no finalized blocks. (#2594)\n\n## [14.1.7] - 2024-10-30\n### Changed\n- Bump `@subql/common` dependency\n\n## [14.1.6] - 2024-10-21\n### Fixed\n- Issues with setting a large block range for bypass blocks (#2566)\n- Test runner not setting lastProcessedHeight leading to data not being flushed (#2569)\n- Unable to rewind unfinalized blocks on startup (#2570)\n- Store `getByFields` returning removed cache data (#2571)\n\n### Changed\n- Throw error when store getByField(s) options.limit exceeds queryLimit option (#2567)\n\n## [14.1.5] - 2024-09-25\n### Changed\n- Bump common, Added manifest support for query-subgraph.\n\n## [14.1.4] - 2024-09-09\n### Changed\n- Reuse the same temp dir when project is from IPFS (#2551)\n\n### Fixed\n- GraphQL field support for consecutive uppercase letters.\n\n## [14.1.3] - 2024-08-30\n### Fixed\n- Fixed Corn filter (#2547)\n\n## [14.1.2] - 2024-08-14\n### Added\n- Update polkadot/api library\n\n## [14.1.1] - 2024-08-12\n### Fixed\n- revert yargs version as it was returning a promise\n- DS Processor types not being able to distinguish input and filter types (#2522)\n\n## [14.1.0] - 2024-08-05\n### Changed\n- Update dependencies (#2518)\n\n## [14.0.0] - 2024-08-01\n### Added\n- A more useful error message when failing to require modules from the VM (#2512)\n- Support for endpoint configs (#2511)\n\n### Fixed\n- Handle when block timestamp can be undefined (#2513)\n\n## [13.0.2] - 2024-07-31\n### Fixed\n- Fixed project upgrade missing reload network chainTypes when `onProjectChange` (#2505)\n\n## [13.0.1] - 2024-07-29\n### Fixed\n- Fixed get and set data not been deepCloned and data is not mutable\n- Improved get bigInt type from json type\n\n## [13.0.0] - 2024-07-25\n### Changed\n- Breaking change: Require indexing environment timezone set to UTC, avoid inconsistent result from cache and database (#2495)\n\n### Fixed\n- Fix handle bigint type in jsonb array, both get and set method will generate consistent result (#2495)\n- Update with `@subql/utils`, fixed json and json array hashcode issue, improve poi consistency (#2497)\n\n### Added\n- SubqueryProject base from extracting common code (#2496)\n\n## [12.0.0] - 2024-07-22\n### Changed\n- Provide a better error message when user increases project start height beyond indexed height (#2492)\n- Define new core modules to reduce duplicate code in nodes (#2491)\n\n### Fixed\n- \"targetHeight\" being updated out of sync with indexing, leading to it possibly being behind \"lastProcessedHeight\" (#2491)\n\n## [11.0.0] - 2024-07-11\n### Changed\n- Create interval for flushing the cache, this is to support chains that only produce blocks with new transactions (#2485)\n- Improved types for strict TS setting (#2484)\n\n### Fixed\n- Improve indexer could stall due to rpc finalized height could be smaller than previous result (#2487)\n\n## [10.10.2] - 2024-07-10\n### Fixed\n- Fix issue admin api can not get `dbSize` due to it not been set in \\_metadata table\n\n## [10.10.1] - 2024-07-09\n### Added\n- Enable ts strict setting\n\n### Fixed\n- Incrementing the schemaMigration count on every start (#2476)\n\n## [10.10.0] - 2024-07-01\n### Changed\n- Bump version with `@subql/common`\n\n## [10.9.0] - 2024-06-21\n### Fixed\n- Store service index check failing with snake_case fields (#2461)\n\n### Changed\n- Error message for finding available port\n\n## [10.6.0] - 2024-06-18\n### Fixed\n- Testing framework logging the same date if they were within 1s (#2453)\n\n### Fixed\n- Handle edge case when last processed height is same as chain target height, app will wait for new block rather than exit.\n\n### Changed\n- Skip using the dictionary if processing data within batch size of latest height (#2454)\n\n## [10.5.1] - 2024-06-12\n### Changed\n- Update `@subql/utils`\n\n## [10.5.0] - 2024-06-12\n### Added\n- Admin api add query `/db_size` to check database size and upsert in metadata\n\n### Fixed\n- `exitWithError` logging error messages rather than the error (#2435)\n\n### Changed\n- Logging around switching dictionary (#2435)\n\n## [10.4.1] - 2024-06-06\n### Fixed\n- Fix various issue in monitor service, file naming issue and export admin service from node-core\n\n## [10.4.0] - 2024-06-05\n### Added\n- Add monitor service to record block indexing actions in order to improve POI accuracy, and provide debug info for Admin api\n\n### Fixed\n- Update index block failed message  (#2414)\n\n## [10.3.2] - 2024-05-27\n### Changed\n- Visibility of sandboxService in indexer manager to protected (#2416)\n\n## [10.3.1] - 2024-05-22\n### Fixed\n- CacheModel.clear behaviour if height was 0 (#2402)\n\n## [10.3.0] - 2024-05-20\n### Changed\n- Update cache to always flush with a block height and clear after transaction commit (#2386)\n- Export `SANDBOX_DEFAULT_BUILTINS` to share with other sandboxes (#2404)\n\n## [10.2.0] - 2024-05-08\n### Changed\n- Bump with @subql/utils, update polkadot dependencies to v11\n\n### Fixed\n- Fix `reindex` command failed due to `projectUpgradeService` not been initialized\n- Fix project upgrade to an earlier height, deployments in metadata not been updated, and app restart will lead to reindex.\n\n## [10.1.2] - 2024-05-03\n### Fixed\n- Fix `filterBlockTimestamp` when filter could be undefined\n\n## [10.1.1] - 2024-05-02\n### Fixed\n- Add back missing dependencies `pg`, also rollback `Uint8Array` change for sandbox as it could break other sdk.\n\n## [10.1.0] - 2024-05-02\n### Fixed\n- Fixed issue Buffer within sandbox could not concat Buffer and Uint8Array, also injected `atob`\n\n### Added\n- Expose option to add workerData to workers (#2372)\n\n### Changed\n- Simplify logger function (#2374)\n\n## [10.0.0] - 2024-04-24\n### Added\n- Various pieces of code from node and generalised them (#2357)\n\n### Changed\n- Tidy up block dispatcher constructor args (#2357)\n\n## [9.0.0] - 2024-04-12\n### Added\n- `WorkerUnfinalizedBlocksService` class from node that is now chain agnostic (#2346)\n\n### Fixed\n- Issue with using metadata if incorrect network endpoint was provided (#2350)\n- Undefined dictionary response resulting in infinite loop (#2353)\n- Fix at end of modulo block filter it could skip other dataSources, and jump to the latest height\n\n### Changed\n- Simplify ApiService and remove need for getChainId function (#2450)\n- Logging for dictionary and simplify code (#2353)\n\n## [8.0.1] - 2024-04-05\n### Fixed\n- Fix modulo filter not applying correctly with multiple dataSources (#2331)\n\n## [8.0.0] - 2024-03-28\n### Added\n- Add service to support for dictionary v2 (#2257)\n- Support for ordering with store `getBy*` methods (#2325)\n\n### Removed\n- `@subql/apollo-links` for resolving dictionary endpoints and matching `dictionary-resolver` flag (#2305)\n\n### Fixed\n- Various issues with store cache (#2325)\n  - `getByFields` ignoring mutations from the current block\n  - Order and offset issues when using store `getByFields`, `getByField` and `getOnByField`\n  - Being able to mutate data in the store cache without calling methods\n  - Matching cache data with `getByFields`, `getByField` and `getOneByField`\n\n## [7.5.1] - 2024-03-26\n### Fixed\n- Fix unable to find index in `modelIndexedFields` due to a special case entity name (2327)\n- Fix multi-chain has `block-range` issue due to migartion handle historical status incorrectly\n\n## [7.5.0] - 2024-03-20\n### Changed\n- Optimise metadata query when dealing with a large number of dynamic datasources that regularly increase (#2302)\n\n### Fixed\n- Fields called `createdAt` or `updatedAt` having their type converted to timestamps\n\n### Removed\n- Unused `timestamps-field` flag (#2310)\n\n## [7.4.3] - 2024-03-15\n### Changed\n- Update connection retry logic and add backoff to fetch blocks retries (#2301)\n\n## [7.4.2] - 2024-03-14\n### Fixed\n- Graphql comments not being escaped (#2299)\n\n## [7.4.1] - 2024-03-08\n### Fixed\n- Memory leak with workers and large number of (dynamic) datasources (#2292)\n- Add missing `bytes` scalar type (#2293)\n\n## [7.4.0] - 2024-03-05\n### Fixed\n- Fix missing incrememnt keys on `_metadata` table (#2283)\n- Fixed unexpected `store` on testing suite Entity (#2285)\n\n### Added\n- Support for Full Text Search (#2280)\n\n## [7.3.1] - 2024-02-29\n### Removed\n- `scale-batch-size` flag as it had no use (#2275)\n\n### Fixed\n- Drop subscription triggers and notifiy_functions (#2277)\n- Fix poi issue due to Int hashCode failed (#2278)\n\n## [7.3.0] - 2024-02-23\n### Added\n- Schema Migration support for Enums, Relations, Subscription (#2251)\n- Check that the project start height is below the current chain height (#2259)\n\n### Fixed\n- Fixed non-atomic schema migration execution (#2244)\n- Testing Suites should run with unfinalizedBlocks `false` (#2258)\n- StoreService not being fully in sync with db (#2264)\n- StoreService not being initialized early enough on startup (#2265)\n\n### Changed\n- Improve error handling when fetching blocks (#2256)\n- Lock `@subql/apollo-links` to `1.3.2`\n\n## [7.2.1] - 2024-02-07\n### Added\n- Update `ParentProject` to use `untilBlock` as and alias for `block` (#2235)\n\n### Fixed\n- Historical queries not using the correct block height (#2243)\n\n## [7.2.0] - 2024-01-30\n### Changed\n- Update `@subql/apollo-links` and add specific logger for it\n\n## [7.1.0] - 2024-01-25\n### Added\n- Support for CSV output with flag `--csv-out-dir` (#2224)\n- Support for Schema Migration with `--allow-schema-migration` flag (#2179)\n\n### Changed\n- Improve modulo filter performance when there are other data sources (#2152)\n\n### Fixed\n- missing schema migration models (#2226)\n\n## [7.0.8] - 2024-01-10\n### Fixed\n- Update with util package, improve project initialization query from x-sequelize (#2212)\n\n## [7.0.7] - 2024-01-04\n### Fixed\n- Update with util package, fix `more than one row returned by a subquery used as an expression` error from x-sequelize (#2209)\n\n## [7.0.6] - 2023-12-25\n### Fixed\n- Fix bypassBlock method `cleanedBatchBlocks` could throw Maximum call stack size exceeded error from lodash (#2206)\n\n## [7.0.5] - 2023-12-20\n### Fixed\n- Fix issue with metadata cache setting lastProcessedHeight to undefined (#2200)\n\n## [7.0.4] - 2023-12-14\n### Changed\n- Update @subql/common\n\n## [7.0.3] - 2023-12-04\n### Fixed\n- Fixed resolved asset file with incorrect format and content in #2185\n\n## [7.0.2] - 2023-11-29\n### Changed\n- dictionary registry path (#2187)\n\n### Fixed\n- bump `lru-cache` to `10.1.0` and remove default exports (#2189)\n\n## [7.0.1] - 2023-11-28\n### Fixed\n- Fix ipfs deployment templates path failed to resolved, issue was introduced in #2182 (#2185)\n- Update @subql/apollo-links to fix network dictionary timeout but not fallback to config dictionary issue\n\n## [7.0.0] - 2023-11-27\n### Added\n- The ability to find the last indexed with a valid block hash using POI (#2176)\n\n### Fixed\n- Fix incorrect datasources map that could result in `Value at height 7408910 was undefined` (#2183)\n- Fix template assets path not been resolved correctly and lead to `Failed to parse log data` (#2182)\n\n## [6.4.2] - 2023-11-16\n### Fixed\n- Dictionaries timing out by updating `@subql/apollo-links` (#2169)\n- Incorrect block queue with multiple ds (#2167)\n\n## [6.4.1] - 2023-11-13\n### Fixed\n- Store not having access to blockHeight and causing workers to fail on startup (#2161)\n\n## [6.4.0] - 2023-11-10\n### Added\n- Base yargs config for all SDKs (#2144)\n- Support block skipping on unavailable blocks (#2151)\n\n### Fixed\n- When using store get methods the `save` function would be missing (#2153)\n- Not indexing cleanly when all datasources have reached their end block\n\n### Fixed\n- Workers selecting apis for endpoints that aren't connected (#2154)\n\n## [6.3.0] - 2023-11-06\n### Added\n- Add `dictionaryQuerySize` to nodeConfig, so the block range in dictionary can be configurable. (#2139)\n\n### Fixed\n- Fix `multi-chain` should disable historical by default, rather than exit\n- Fix reindex targetHeight issue introduced in #2131 (#2138)\n- `processedBlockCount` and `schemaMigrationCount` metadata fields incrementing exponentially (#2136)\n- Fix regression introduced in [#2110](https://github.com/subquery/subql/pull/2110) that broke `unwrapProxy` if the input is an array\n\n## [6.2.0] - 2023-10-31\n### Fixed\n- Improve reindex query to remove/update by batches. (#2131)\n- Fix poi reindex beyond genesis height issue. (#2131)\n- Fixed modulo block ahead of finalized block issue (#2132)\n- Wrong link to docs for testing\n\n### Added\n- WorkerInMemoryCacheService from node (#2125)\n- New `endBlock` option on datasources (#2064)\n\n## [6.1.1] - 2023-10-25\n### Fixed\n- Not handling TaskFlushedErrors in block dispatchers (#2120)\n\n## [6.1.0] - 2023-10-20\n### Added\n- Add in-memory cache to be used in sandbox #(2110)\n\n### Fixed\n- Fixed poi migration init check, and improve logging (#2112)\n\n## [6.0.4] - 2023-10-18\n### Fixed\n- Store bulk methods failing with workers (#2107)\n\n## [6.0.3] - 2023-10-17\n### Fixed\n- Dictionary validation error causing application exit (#2101)\n- Auto queue flush getting the queue into a bad state (#2103)\n- Fix getCache could not been cleared after reindex, and could have been re-used and lead to error, such as syncPoi\n\n## [6.0.2] - 2023-10-12\n### Fixed\n- Issues with using object destructing for store interface and workers (#2094)\n\n## [6.0.1] - 2023-10-12\n### Fixed\n- Store operations failing with workers when options are provided (#2092)\n- skip managing connection pool for single endpoint (#2091)\n\n## [6.0.0] - 2023-10-11\n### Changed\n- Support scoped debug logging (#2077)\n\n### Added\n- Debug logging for dictionary queries (#2077)\n\n### Fixed\n- Fixed Poi migration performance issue with `sqlIterator`\n- Fixed AutoQueue timeout issue, align setting with nodeConfig. (#2081)\n- Fixed Poi sync could block DB IO and drop connection issue (#2086)\n\n## [5.0.3] - 2023-10-03\n### Fixed\n- Fix reindex service without poi feature (2062)\n\n### Changed\n- Version bump with `types-core` 0.1.1\n\n## [5.0.2] - 2023-10-02\n### Fixed\n- Fix dictionary metadata validation (#2057)\n\n## [5.0.1] - 2023-09-28\n### Fixed\n- Update apollo-links to 1.0.2, fix dictionary resolver failed to get token issue\n- Use test runs as unit for tests instead of entity checks (#1957)\n- Handle APIs in connection pool whose initialization failed (#1970)\n- Fix generated operation hash with single entity, buffer did not get hashed issue.\n- Infinite recursion in setValueModel with arrays (#1993)\n- Fix health checks for Networks that produce batched blocks (#2005)\n- Update `@willsoto/nestjs-prometheus` version to `5.4.0` (#2012)\n- `scaleBatchSize` referring to itself instead of config (#2018)\n- Set default startBlock of datasources to 1 (#2019)\n- Use round-robin worker load balancing with memory constraint consideration (#2029)\n\n### Changed\n- Move more code from node to node-core. Including configure module, workers (#1797)\n- Update api service generics to support multiple block types (#1968)\n- UnfinalizedBlocksService: make private methods protected to allow custom fork detection (#2009)\n- Update fetching blocks to use moving window rather than batches (#2000)\n\n### Added\n- Project upgrades feature and many other changes to support it (#1797)\n- `skipTransactions` option to NodeConfig (#1968)\n- `getByFields` to store (#1993)\n- `getPoiBlocksBefore` method to PoiModel so we can get recent blocks with operations (#2009)\n\n## [4.2.3] - 2023-08-17\n### Fixed\n- delay getPoiBlocksByRange when fully synced, fixes the high CPU usage issue (#1952)\n\n## [4.2.2] - 2023-08-16\n### Fixed\n- Fix modulo filter wrongful block queueing (#1944)\n\n## [4.2.1] - 2023-08-11\n### Fixed\n- Bump with `@subql/types` package, fix missing `unsafeApi`. (#1935)\n\n## [4.2.0] - 2023-08-10\n### Added\n- Added primary network endpoint that is always used from connection pool unless it fails (#1927)\n\n## [4.1.0] - 2023-08-04\n### Fixed\n- Fix poi operationHash and miss poi blocks (#1917)\n- Sync @subql/apollo-links to 0.5.8, fix consuming cached token issue\n\n### Changed\n- moved `indexBlock` to base `TestingService` (#1913)\n- Simplify connection pool logic (#1915)\n\n## [4.0.1] - 2023-07-31\n### Fixed\n- Update license (#1891)\n- Performance scoring fix (#1895)\n- Fix mmrQuery should always read mmr leaf length from Db (#1900).\n\n## [4.0.0] - 2023-07-17\n### Changed\n- **Breaking**: Init DB schema manually during test run (#1870)\n\n### Fixed\n- Updated `@subql/apollo-links` to 0.5.3 for bug fixes. (#1886)\n- Establish common connection pool state among workers using `ConnectionPoolStateManager` (#1829)\n\n## [3.1.2] - 2023-07-11\n### Fixed\n- Fix `TestingService` to run tests in separate application contexts (#1870)\n- Cache race condition when flushing cache and getting data (#1873)\n- Various improvements for POI feature: (#1869)\n  - Benchmarking mmr processing\n  - Improve performance when initialize mmr service, find the latest mmr height in Poi table by record it in `_metadata` table\n  - Correct mmr query directly from Db rather than cache\n\n## [3.1.1] - 2023-07-06\n### Fixed\n- Fixed Poi table missing mmr, due to incorrectly merged data from Db and cache. (#1871)\n\n## [3.1.0] - 2023-07-04\n### Added\n- Configurable limit to the store cache size, this will cause indexing to wait for the cache to be flushed. This resolves an issue where OOM errors happen. (#1859)\n\n## [3.0.0] - 2023-06-26\n### Changed\n- Added `pgMmrCacheService` to use independent Db connection, now mmr cache flush by itself. (#1828)\n- Update meta exports to require `MmrQueryController` and move code from node core (#1823)\n- Switch from node-fetch to cross-fetch. [See apollo issue for more](https://github.com/apollographql/apollo-client/issues/4857)\n\n### Fixed\n- Not being able to test with null/undefined values on entities (#1809)\n\n### Fixed\n- Fix reconnection issues in connection pool\n\n## [2.6.0] - 2023-06-19\n### Changed\n- upgrade @subql/apollo-links (#1801)\n\n## [2.5.1] - 2023-06-16\n### Fixed\n- Fixed meta service missing construct, align blockHeight update with store cache flush interval (#1804)\n\n## [2.5.0] - 2023-06-15\n### Added\n- Implemented load balancing for multiple endpoints, with distribution based on endpoint performance (#1657)\n- Introduced a suspension mechanism for rate-limited endpoints using exponential backoff to regulate usage (#1657)\n\n## [2.4.5] - 2023-06-09\n### Changed\n- Use @subql/x-sequelize in order support cockroach (#1791)\n\n### Fixed\n- Base58 encoding check for POI (#1788)\n- Fix project \\_startHeight been blocked by poiSync (#1792)\n\n## [2.4.4] - 2023-06-07\n### Fixed\n- Fixed various issue for mmr (#1787)\n\n## [2.4.3] - 2023-06-02\n### Fixed\n- Fixed mmr missing node due to cache lock (#1784)\n\n## [2.4.2] - 2023-06-01\n### Changed\n- Cache MMR leaf length and flush with rest of db, enable more mmr logging (#1782)\n\n### Fixed\n- Fix jump buffer height issue (#1781)\n- Error if testing entity not found (#1766)\n\n## [2.4.1] - 2023-05-31\n### Fixed\n- Sync flushing MMR potentially getting corrupt (#1777)\n\n## [2.4.0] - 2023-05-30\n### Added\n- Add cache layer to postgres mmr db (#1762)\n- Support for block hashes with base64 format for POI (#1761)\n\n### Changed\n- Update vm2 past problematic version (#1770)\n- Add optional root option to config (#1771)\n\n## [2.3.1] - 2023-05-26\n### Fixed\n- Improve mmr error and expose ready status (#1752)\n- Fix subcommand could escape issue, setup profiler at application init (#1755)\n\n## [2.3.0] - 2023-05-24\n### Fixed\n- Fix datasource processors base filters not working (#1745)\n\n### Added\n- Support for base58 blockhashes with POI (#1750)\n- Allow url in sandbox and set URL global (#1747)\n- Log for unfound mappingHandlers and list available ones (#1742)\n\n## [2.2.2] - 2023-05-19\n### Fixed\n- Fix project service init failing due to start height being 0 (#1735)\n- No longer initialize store and indexer inside testing service (#1734)\n- Fix poi read leaf height error under cockroach (#1733)\n- Ensure min start height to be 1, even if set to 0 (#1737)\n- Upgrade apollo link package (#1739)\n\n### Changed\n- allow dictionary when only --dictionaryResolver is enabled (#1730)\n- Improve error messages (#1729)\n- Deprecate project id from poi table, track deployment in metadata (#1696)\n\n## [2.2.1] - 2023-05-17\n### Fixed\n- CockroachDB upsert performance issues (#1723)\n- Exiting if dictionary-resolver fails (#1721)\n- Typo in multi-chain logging message (#1722)\n\n## [2.2.0] - 2023-05-16\n### Added\n- Worker threads support for unfinalized blocks (#1695)\n\n### Fixed\n- Logging historical enabled with cockroach db (#1715)\n- Non-historical flushing order (#1711)\n- Filtering arguments to include datasoruce (#1703)\n- Not logging dictionary start height check (#1700)\n\n### Changed\n- Default matcher from insensitive to sensitive casing (#1706)\n\n## [2.1.3] - 2023-05-12\n### Fixed\n- Fix app could fail to start, due to flush before metadata repo been set (#1688)\n\n## [2.1.2] - 2023-05-11\n### Fixed\n- Fix metadata check, allow base indexer manager to parse abis with ethereum (#1682)\n\n### Changed\n- Move validate function to common (#1683)\n\n### Added\n- Inject the chain id into sandboxes (#1684)\n\n## [2.1.1] - 2023-05-11\n### Fixed\n- Extract dictionary meta validation so it can be overridden (#1679)\n\n## [2.1.0] - 2023-05-10\n### Added\n- Added interval for flushing the cache. (#1670)\n- `bulkRemove` method on the store. (#1666)\n- Ability to regenerate MMR (#1664)\n- Ability to migrade MMR from file based db to postgres db and vice versa (#1618)\n\n### Changed\n- Move more chain agnostic code form node. (#1658) (#1659)\n- Move any polkadot imports to utils package. (#1653)\n\n### Fixed\n- POI Cache issues (#1660)\n- `store.getOneByField` with historical and index (#1667)\n- Store cache threshold not including removed items (#1675)\n\n## [2.0.2] - 2023-04-27\n### Changed\n- Deprecate `localMode` (#1648)\n\n## [2.0.1] - 2023-04-27\n### Fixed\n- Fix ApiService abstract class, improve getting all DS (#1638)\n- Fix assertion error and pk index type (#1641)\n- Fix tests (#1640)\n\n## [2.0.0] - 2023-04-20\n### Changed\n- Major release 2.0.0, align with other package versions\n- Update metadata when dictionary skips large number of blocks (#1577)\n\n### Added\n- Added StoreCache service and various other improvements (#1561)\n- Added TestingService (#1584)\n\n### Fixed\n- Enable Typescript strict setting and improve code quality (#1625)\n- Fixed enum not being included in POI (#1561)\n- Fixed when Poi block offset 0, it could get updated when app restart (#1459)\n- Fixed index name too long issue (#1599)\n- Fixed dictionary validation issues and improve error messages (#1561)\n\n## [1.11.3] - 2023-04-17\n### Fixed\n- Improve log, update progress string (#1612)\n\n## [1.11.2] - 2023-04-05\n### Fixed\n- Compute block size one property at a time to prevent RangeError\n- Upgrade @subql/apollo-link version\n\n## [1.11.1] - 2023-03-30\n### Changed\n- Change to support multiple endpoints (#1551)\n\n### Fixed\n- Fix previous release 1.11.0 failed\n\n## [1.11.0] - 2023-03-29\n### Added\n- Add SmartBatchService and BlockSizeBuffer (#1506)\n- Handle bigint in json.stringify (#1562)\n- Generate sourcemap for projects (#1569)\n- Update polkadot api to 10.1.4 (#1580)\n\n### Fixed\n- Fix enum under schema not being escaped (#1555)\n- Remove blocking in process queueing (#1572)\n\n### Changed\n- Use `performance.now` instead of date for profiler. (#1549)\n- Rename `--sponsored-dictionary` to `--dictionary-resolver` (#1559)\n\n## [1.10.0] - 2023-03-06\n### Fixed\n- fix issue store getByField limit could potentially excess config limit (#1529)\n\n### Changed\n- Move enum under schema (#1527)\n- Deprecate exclude constraint (#1543)\n\n## [1.9.0] - 2023-02-21\n### Added\n- add blockTime to NodeConfig (#1501)\n\n### Changed\n- Support array type in dictionary queries (#1510)\n\n## [1.8.0] - 2023-01-23\n### Added\n- Add validation of dictionary with start height (#1473)\n- `Store` add count for entity (#1480)\n\n### Fixed\n- Fix custom metadata keys not being applied (#1496)\n\n## [1.7.1] - 2022-12-22\n### Fixed\n- Fix trigger function name too long (#1469)\n\n## [1.7.0] - 2022-12-19\n### Fixed\n- Workers: Fix SequelizeDatabaseError - tuple concurrently updated (#1458)\n- Handle `bulkUpdate` when fields are undefined with historical indexing (#1463)\n\n### Added\n- Add start height to project metadata (#1456)\n\n## [1.6.0] - 2022-12-06\n### Added\n- Support for `bypassBlocks` (#1435)\n\n## [1.5.1] - 2022-11-30\n### Fixed\n- Fixed enum name (#1441)\n\n## [1.5.0] - 2022-11-23\n### Added\n- Dictionary auth link integration (#1411)\n- Support multi-chain indexing (#1375)\n\n### Changed\n- Move enum name generation method to node-core (#1427)\n\n## [1.4.1] - 2022-11-15\n### Fixed\n- Hot fix for hot schema reload (#1404)\n\n## [1.4.0] - 2022-11-15\n### Added\n- Support for hot schema reload. (#1401)\n- Support for distinct query plugin. (#1274)\n\n## [1.3.3] - 2022-11-09\n### Added\n- Added retry method for handle fetch errors (#1386)\n\n## [1.3.2] - 2022-11-08\n### Fixed\n- Fix missing sequelize sync (#1389)\n\n## [1.3.1] - 2022-11-08\n### Fixed\n- Remove sequelize alter table (#1387)\n\n## [1.3.0] - 2022-11-07\n### Fixed\n- Improve dictionary query by filter with data sources start block. (#1371)\n\n## [1.2.0] - 2022-10-28\n### Added\n- Support for unfinalized blocks. (#1308)\n\n## [1.1.0] - 2022-10-27\n### Changed\n- Update to `@polkadot/api@9.4.2`/ (#1356)\n- Backport dictionary service features from Algorand. (#1346)\n\n## [1.0.1] - 2022-10-11\n### Added\n- Common code from sandbox and dictionary. (#1345)\n\n## [1.0.0] - 2022-10-10\n### Removed\n- `Subqueries` database table. (#1340)\n\n## [0.1.3] - 2022-10-06\n### Changed\n- Update IPFS endpoints. (#1337)\n\n### Fixed\n- Benchmark info not being logged. (#1138)\n\n## [0.1.2] - 2022-09-27\n### Changed\n- Moved `yargs` file from `node-core` to `node`. (#1281)\n- Update `sequelize`. (#1311)\n\n## [0.1.1] - 2022-08-26\n### Fixed\n- Imports not being relative (#1268)\n\n## [0.1.0] - 2022-08-26\n### Changed\n- Move blockchain agnostic code from `node` to `node-core` package. (#1222)\n\n[Unreleased]: https://github.com/subquery/subql/compare/node-core/19.2.0...HEAD\n[19.2.0]: https://github.com/subquery/subql/compare/node-core/19.1.0...node-core/19.2.0\n[19.1.0]: https://github.com/subquery/subql/compare/node-core/19.0.0...node-core/19.1.0\n[19.0.0]: https://github.com/subquery/subql/compare/node-core/18.5.3...node-core/19.0.0\n[18.5.3]: https://github.com/subquery/subql/compare/node-core/18.5.2...node-core/18.5.3\n[18.5.2]: https://github.com/subquery/subql/compare/node-core/18.5.1...node-core/18.5.2\n[18.5.1]: https://github.com/subquery/subql/compare/node-core/18.5.0...node-core/18.5.1\n[18.5.0]: https://github.com/subquery/subql/compare/node-core/18.4.0...node-core/18.5.0\n[18.4.0]: https://github.com/subquery/subql/compare/node-core/18.3.3...node-core/18.4.0\n[18.3.3]: https://github.com/subquery/subql/compare/node-core/18.3.2...node-core/18.3.3\n[18.3.2]: https://github.com/subquery/subql/compare/node-core/18.3.1...node-core/18.3.2\n[18.3.1]: https://github.com/subquery/subql/compare/node-core/18.3.0...node-core/18.3.1\n[18.3.0]: https://github.com/subquery/subql/compare/node-core/18.2.1...node-core/18.3.0\n[18.2.1]: https://github.com/subquery/subql/compare/node-core/18.2.0...node-core/18.2.1\n[18.2.0]: https://github.com/subquery/subql/compare/node-core/18.1.2...node-core/18.2.0\n[18.1.2]: https://github.com/subquery/subql/compare/node-core/18.1.1...node-core/18.1.2\n[18.1.1]: https://github.com/subquery/subql/compare/node-core/18.1.0...node-core/18.1.1\n[18.1.0]: https://github.com/subquery/subql/compare/node-core/18.0.6...node-core/18.1.0\n[18.0.6]: https://github.com/subquery/subql/compare/node-core/18.0.5...node-core/18.0.6\n[18.0.5]: https://github.com/subquery/subql/compare/node-core/18.0.4...node-core/18.0.5\n[18.0.4]: https://github.com/subquery/subql/compare/node-core/18.0.3...node-core/18.0.4\n[18.0.3]: https://github.com/subquery/subql/compare/node-core/18.0.2...node-core/18.0.3\n[18.0.2]: https://github.com/subquery/subql/compare/node-core/18.0.1...node-core/18.0.2\n[18.0.1]: https://github.com/subquery/subql/compare/node-core/18.0.0...node-core/18.0.1\n[18.0.0]: https://github.com/subquery/subql/compare/node-core/17.2.2...node-core/18.0.0\n[17.2.2]: https://github.com/subquery/subql/compare/node-core/17.2.1...node-core/17.2.2\n[17.2.1]: https://github.com/subquery/subql/compare/node-core/17.2.0...node-core/17.2.1\n[17.2.0]: https://github.com/subquery/subql/compare/node-core/17.1.0...node-core/17.2.0\n[17.1.0]: https://github.com/subquery/subql/compare/node-core/17.0.2...node-core/17.1.0\n[17.0.2]: https://github.com/subquery/subql/compare/node-core/17.0.1...node-core/17.0.2\n[17.0.1]: https://github.com/subquery/subql/compare/node-core/17.0.0...node-core/17.0.1\n[17.0.0]: https://github.com/subquery/subql/compare/node-core/16.2.1...node-core/17.0.0\n[16.2.1]: https://github.com/subquery/subql/compare/node-core/16.2.0...node-core/16.2.1\n[16.2.0]: https://github.com/subquery/subql/compare/node-core/16.1.0...node-core/16.2.0\n[16.1.0]: https://github.com/subquery/subql/compare/node-core/16.0.0...node-core/16.1.0\n[16.0.0]: https://github.com/subquery/subql/compare/node-core/15.0.3...node-core/16.0.0\n[15.0.3]: https://github.com/subquery/subql/compare/node-core/15.0.2...node-core/15.0.3\n[15.0.2]: https://github.com/subquery/subql/compare/node-core/15.0.1...node-core/15.0.2\n[15.0.1]: https://github.com/subquery/subql/compare/node-core/15.0.0...node-core/15.0.1\n[15.0.0]: https://github.com/subquery/subql/compare/node-core/14.1.7...node-core/15.0.0\n[14.1.7]: https://github.com/subquery/subql/compare/node-core/14.1.6...node-core/14.1.7\n[14.1.6]: https://github.com/subquery/subql/compare/node-core/14.1.5...node-core/14.1.6\n[14.1.5]: https://github.com/subquery/subql/compare/node-core/14.1.4...node-core/14.1.5\n[14.1.4]: https://github.com/subquery/subql/compare/node-core/14.1.3...node-core/14.1.4\n[14.1.3]: https://github.com/subquery/subql/compare/node-core/14.1.2...node-core/14.1.3\n[14.1.2]: https://github.com/subquery/subql/compare/node-core/14.1.1...node-core/14.1.2\n[14.1.1]: https://github.com/subquery/subql/compare/node-core/14.1.0...node-core/14.1.1\n[14.1.0]: https://github.com/subquery/subql/compare/node-core/14.0.0...node-core/14.1.0\n[14.0.0]: https://github.com/subquery/subql/compare/node-core/13.0.2...node-core/14.0.0\n[13.0.2]: https://github.com/subquery/subql/compare/node-core/13.0.1...node-core/13.0.2\n[13.0.1]: https://github.com/subquery/subql/compare/node-core/13.0.0...node-core/13.0.1\n[13.0.0]: https://github.com/subquery/subql/compare/node-core/12.0.0...node-core/13.0.0\n[12.0.0]: https://github.com/subquery/subql/compare/node-core/11.0.0...node-core/12.0.0\n[11.0.0]: https://github.com/subquery/subql/compare/node-core/10.10.2...node-core/11.0.0\n[10.10.2]: https://github.com/subquery/subql/compare/node-core/10.10.1...node-core/10.10.2\n[10.10.1]: https://github.com/subquery/subql/compare/node-core/10.10.0...node-core/10.10.1\n[10.10.0]: https://github.com/subquery/subql/compare/node-core/10.9.0...node-core/10.10.0\n[10.9.0]: https://github.com/subquery/subql/compare/node-core/10.6.0...node-core/10.9.0\n[10.6.0]: https://github.com/subquery/subql/compare/node-core/10.5.1...node-core/10.6.0\n[10.5.1]: https://github.com/subquery/subql/compare/node-core/10.5.0...node-core/10.5.1\n[10.5.0]: https://github.com/subquery/subql/compare/node-core/10.4.1...node-core/10.5.0\n[10.4.1]: https://github.com/subquery/subql/compare/node-core/10.4.0...node-core/10.4.1\n[10.4.0]: https://github.com/subquery/subql/compare/node-core/10.3.2...node-core/10.4.0\n[10.3.2]: https://github.com/subquery/subql/compare/node-core/10.3.1...node-core/10.3.2\n[10.3.1]: https://github.com/subquery/subql/compare/node-core/10.3.0...node-core/10.3.1\n[10.3.0]: https://github.com/subquery/subql/compare/node-core/10.2.0...node-core/10.3.0\n[10.2.0]: https://github.com/subquery/subql/compare/node-core/10.1.2...node-core/10.2.0\n[10.1.2]: https://github.com/subquery/subql/compare/node-core/10.1.1...node-core/10.1.2\n[10.1.1]: https://github.com/subquery/subql/compare/node-core/10.1.0...node-core/10.1.1\n[10.1.0]: https://github.com/subquery/subql/compare/node-core/10.0.0...node-core/10.1.0\n[10.0.0]: https://github.com/subquery/subql/compare/node-core/9.0.0...node-core/10.0.0\n[9.0.0]: https://github.com/subquery/subql/compare/node-core/8.0.1...node-core/9.0.0\n[8.0.1]: https://github.com/subquery/subql/compare/node-core/8.0.0...node-core/8.0.1\n[8.0.0]: https://github.com/subquery/subql/compare/node-core/7.5.1...node-core/8.0.0\n[7.5.1]: https://github.com/subquery/subql/compare/node-core/7.5.0...node-core/7.5.1\n[7.5.0]: https://github.com/subquery/subql/compare/node-core/7.4.3...node-core/7.5.0\n[7.4.3]: https://github.com/subquery/subql/compare/node-core/7.4.2...node-core/7.4.3\n[7.4.2]: https://github.com/subquery/subql/compare/node-core/7.4.1...node-core/7.4.2\n[7.4.1]: https://github.com/subquery/subql/compare/node-core/7.4.0...node-core/7.4.1\n[7.4.0]: https://github.com/subquery/subql/compare/node-core/7.3.1...node-core/7.4.0\n[7.3.1]: https://github.com/subquery/subql/compare/node-core/7.3.0...node-core/7.3.1\n[7.3.0]: https://github.com/subquery/subql/compare/node-core/7.2.1...node-core/7.3.0\n[7.2.1]: https://github.com/subquery/subql/compare/node-core/7.2.0...node-core/7.2.1\n[7.2.0]: https://github.com/subquery/subql/compare/node-core/7.1.0...node-core/7.2.0\n[7.1.0]: https://github.com/subquery/subql/compare/node-core/7.0.8...node-core/7.1.0\n[7.0.8]: https://github.com/subquery/subql/compare/node-core/7.0.7...node-core/7.0.8\n[7.0.7]: https://github.com/subquery/subql/compare/node-core/7.0.6...node-core/7.0.7\n[7.0.6]: https://github.com/subquery/subql/compare/node-core/7.0.5...node-core/7.0.6\n[7.0.5]: https://github.com/subquery/subql/compare/node-core/7.0.4...node-core/7.0.5\n[7.0.4]: https://github.com/subquery/subql/compare/node-core/7.0.3...node-core/7.0.4\n[7.0.3]: https://github.com/subquery/subql/compare/node-core/7.0.2...node-core/7.0.3\n[7.0.2]: https://github.com/subquery/subql/compare/node-core/7.0.1...node-core/7.0.2\n[7.0.1]: https://github.com/subquery/subql/compare/node-core/7.0.0...node-core/7.0.1\n[7.0.0]: https://github.com/subquery/subql/compare/node-core/6.4.2...node-core/7.0.0\n[6.4.2]: https://github.com/subquery/subql/compare/node-core/6.4.1...node-core/6.4.2\n[6.4.1]: https://github.com/subquery/subql/compare/node-core/6.4.0...node-core/6.4.1\n[6.4.0]: https://github.com/subquery/subql/compare/node-core/6.3.0...node-core/6.4.0\n[6.3.0]: https://github.com/subquery/subql/compare/node-core/6.2.0...node-core/6.3.0\n[6.2.0]: https://github.com/subquery/subql/compare/node-core/6.1.1...node-core/6.2.0\n[6.1.1]: https://github.com/subquery/subql/compare/node-core/6.1.0...node-core/6.1.1\n[6.1.0]: https://github.com/subquery/subql/compare/node-core/6.0.4...node-core/6.1.0\n[6.0.4]: https://github.com/subquery/subql/compare/node-core/6.0.3...node-core/6.0.4\n[6.0.3]: https://github.com/subquery/subql/compare/node-core/6.0.2...node-core/6.0.3\n[6.0.2]: https://github.com/subquery/subql/compare/node-core/6.0.1...node-core/6.0.2\n[6.0.1]: https://github.com/subquery/subql/compare/node-core/6.0.0...node-core/6.0.1\n[6.0.0]: https://github.com/subquery/subql/compare/node-core/5.0.3...node-core/6.0.0\n[5.0.3]: https://github.com/subquery/subql/compare/node-core/5.0.2...node-core/5.0.3\n[5.0.2]: https://github.com/subquery/subql/compare/node-core/5.0.1...node-core/5.0.2\n[5.0.1]: https://github.com/subquery/subql/compare/node-core/4.2.3...node-core/5.0.1\n[4.2.3]: https://github.com/subquery/subql/compare/node-core/4.2.2...node-core/4.2.3\n[4.2.2]: https://github.com/subquery/subql/compare/node-core/4.2.1...node-core/4.2.2\n[4.2.1]: https://github.com/subquery/subql/compare/node-core/4.2.0...node-core/4.2.1\n[4.2.0]: https://github.com/subquery/subql/compare/node-core/4.1.0...node-core/4.2.0\n[4.1.0]: https://github.com/subquery/subql/compare/node-core/4.0.1...node-core/4.1.0\n[4.0.1]: https://github.com/subquery/subql/compare/node-core/4.0.0...node-core/4.0.1\n[4.0.0]: https://github.com/subquery/subql/compare/node-core/3.1.2...node-core/4.0.0\n[3.1.2]: https://github.com/subquery/subql/compare/node-core/3.1.1...node-core/3.1.2\n[3.1.1]: https://github.com/subquery/subql/compare/node-core/3.1.0...node-core/3.1.1\n[3.1.0]: https://github.com/subquery/subql/compare/node-core/3.0.0...node-core/3.1.0\n[3.0.0]: https://github.com/subquery/subql/compare/node-core/2.6.0...node-core/3.0.0\n[2.6.0]: https://github.com/subquery/subql/compare/node-core/2.5.1...node-core/2.6.0\n[2.5.1]: https://github.com/subquery/subql/compare/node-core/2.5.0...node-core/2.5.1\n[2.5.0]: https://github.com/subquery/subql/compare/node-core/2.4.5...node-core/2.5.0\n[2.4.5]: https://github.com/subquery/subql/compare/node-core/2.4.4...node-core/2.4.5\n[2.4.4]: https://github.com/subquery/subql/compare/node-core/2.4.3...node-core/2.4.4\n[2.4.3]: https://github.com/subquery/subql/compare/node-core/2.4.2...node-corev2.4.3\n[2.4.2]: https://github.com/subquery/subql/compare/node-core/2.4.1...node-core/2.4.2\n[2.4.1]: https://github.com/subquery/subql/compare/node-core/2.4.0...node-core/2.4.1\n[2.4.0]: https://github.com/subquery/subql/compare/node-core/2.3.1...node-core/2.4.0\n[2.3.1]: https://github.com/subquery/subql/compare/node-core/2.3.0...node-core/2.3.1\n[2.3.0]: https://github.com/subquery/subql/compare/node-core/2.2.2...node-core/2.3.0\n[2.2.2]: https://github.com/subquery/subql/compare/node-core/2.2.1...node-core/2.2.2\n[2.2.1]: https://github.com/subquery/subql/compare/node-core/2.2.0...node-core/2.2.1\n[2.2.0]: https://github.com/subquery/subql/compare/node-core/2.1.2...node-core/2.2.0\n[2.1.3]: https://github.com/subquery/subql/compare/node-core/2.1.2...node-core/2.1.3\n[2.1.2]: https://github.com/subquery/subql/compare/node-core/2.1.1...node-core/2.1.2\n[2.1.1]: https://github.com/subquery/subql/compare/node-core/2.1.0...node-core/2.1.1\n[2.1.0]: https://github.com/subquery/subql/compare/node-core/2.0.2...node-core/2.1.0\n[2.0.2]: https://github.com/subquery/subql/compare/node-core/2.0.1...node-core/2.0.2\n[2.0.1]: https://github.com/subquery/subql/compare/node-core/2.0.0...node-core/2.0.1\n[2.0.0]: https://github.com/subquery/subql/compare/node-core/1.11.3..node-core/2.0.0\n[1.11.3]: https://github.com/subquery/subql/compare/node-core/1.11.2...node-core/1.11.3\n[1.11.2]: https://github.com/subquery/subql/compare/node-core/1.11.1...node-core/1.11.2\n[1.11.1]: https://github.com/subquery/subql/compare/node-core/1.11.0...node-core/1.11.1\n[1.11.0]: https://github.com/subquery/subql/compare/node-core/1.10.0...node-core/1.11.0\n[1.10.0]: https://github.com/subquery/subql/compare/node-core1.9.0/...node-core/1.10.0\n[1.9.0]: https://github.com/subquery/subql/compare/node-core/1.8.0...node-core/1.9.0\n[1.8.0]: https://github.com/subquery/subql/compare/node-core/1.7.1...node-core/1.8.0\n[1.7.1]: https://github.com/subquery/subql/compare/node-core/1.7.0...node-core/1.7.1\n[1.7.0]: https://github.com/subquery/subql/compare/node-core/1.6.0...node-core/1.7.0\n[1.6.0]: https://github.com/subquery/subql/compare/node-core/1.5.1...node-core/1.6.0\n[1.5.1]: https://github.com/subquery/subql/compare/node-core/1.5.0...node-core/1.5.1\n[1.5.0]: https://github.com/subquery/subql/compare/node-core/1.4.1...node-core/1.5.0\n[1.4.1]: https://github.com/subquery/subql/compare/node-core/1.4.0...node-core/1.4.1\n[1.4.0]: https://github.com/subquery/subql/compare/node-core/1.3.3...node-core/1.4.0\n[1.3.3]: https://github.com/subquery/subql/compare/node-core/1.3.2...node-core/1.3.3\n[1.3.2]: https://github.com/subquery/subql/compare/node-core/1.3.1...node-core/1.3.2\n[1.3.1]: https://github.com/subquery/subql/compare/node-core/1.3.0...node-core/1.3.1\n[1.3.0]: https://github.com/subquery/subql/compare/node-core/1.2.0...node-core/1.3.0\n[1.2.0]: https://github.com/subquery/subql/compare/node-core/1.1.0...node-core/1.2.0\n[1.1.0]: https://github.com/subquery/subql/compare/node-core/1.0.1...node-core/1.1.0\n[1.0.1]: https://github.com/subquery/subql/compare/node-core/1.0.0...node-core/1.0.1\n[1.0.0]: https://github.com/subquery/subql/compare/node-core/0.1.3...node-core/1.0.0\n[0.1.3]: https://github.com/subquery/subql/compare/node-core/0.1.2...node-core/0.1.3\n[0.1.2]: https://github.com/subquery/subql/compare/node-core/0.1.1...node-core/0.1.2\n[0.1.1]: https://github.com/subquery/subql/compare/node-core/0.1.0...node-core/0.1.1\n[0.1.0]: https://github.com/subquery/subql/creleases/tag/0.1.0\n"
  },
  {
    "path": "packages/node-core/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/node-core/logger.js",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// A standalone entrypoint for logger so we can import `@subql/node-core/logger`\nconst logger = require('./dist/logger');\n\nmodule.exports = logger;\n"
  },
  {
    "path": "packages/node-core/package.json",
    "content": "{\n  \"name\": \"@subql/node-core\",\n  \"version\": \"19.2.0\",\n  \"description\": \"Common node features that are agnostic to blockchains\",\n  \"homepage\": \"https://github.com/subquery/subql\",\n  \"repository\": \"github:subquery/subql\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n    \"build\": \"rm -rf dist && tsc -b\",\n    \"format\": \"prettier --write \\\"src/**/*.ts\\\"\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"node-core/\\\"\"\n  },\n  \"author\": \"Ian He\",\n  \"main\": \"dist/index.js\",\n  \"license\": \"GPL-3.0\",\n  \"files\": [\n    \"src/global.d.ts\",\n    \"/dist\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\",\n    \"logger.js\",\n    \"yargs.js\",\n    \"CHANGELOG.md\",\n    \"LICENSE\"\n  ],\n  \"dependencies\": {\n    \"@apollo/client\": \"^3.14.0\",\n    \"@nestjs/common\": \"^11.0.16\",\n    \"@nestjs/event-emitter\": \"^3.0.0\",\n    \"@nestjs/schedule\": \"^5.0.1\",\n    \"@subql/common\": \"workspace:~\",\n    \"@subql/testing\": \"workspace:~\",\n    \"@subql/types\": \"workspace:~\",\n    \"@subql/utils\": \"workspace:~\",\n    \"@willsoto/nestjs-prometheus\": \"^6.0.2\",\n    \"async-mutex\": \"^0.5.0\",\n    \"cron-converter\": \"^2.0.1\",\n    \"csv-stringify\": \"^6.5.1\",\n    \"dayjs\": \"^1.11.12\",\n    \"dotenv\": \"^16.4.5\",\n    \"graphql\": \"^15.8.0\",\n    \"lodash\": \"^4.17.21\",\n    \"lru-cache\": \"10.1.0\",\n    \"merkle-tools\": \"^1.4.1\",\n    \"pg\": \"^8.12.0\",\n    \"prom-client\": \"^15.1.3\",\n    \"source-map\": \"^0.7.4\",\n    \"tar\": \"^7.4.3\",\n    \"toposort-class\": \"^1.0.1\",\n    \"vm2\": \"3.9.19\",\n    \"yargs\": \"^16.2.0\"\n  },\n  \"devDependencies\": {\n    \"@types/yargs\": \"^16.0.9\"\n  },\n  \"stableVersion\": \"19.1.1-0\"\n}\n"
  },
  {
    "path": "packages/node-core/src/admin/admin.controller.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {HttpException, HttpStatus} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {Test, TestingModule} from '@nestjs/testing';\nimport {TargetBlockPayload, RewindPayload, AdminEvent} from '../events';\nimport {MonitorService, PoiService, ProofOfIndex, StoreService} from '../indexer';\nimport {AdminController, AdminListener} from './admin.controller';\nimport {BlockRangeDto} from './blockRange';\n\ndescribe('AdminController', () => {\n  let adminController: AdminController;\n  let monitorService: MonitorService;\n  let poiService: PoiService;\n  let eventEmitter: EventEmitter2;\n\n  beforeEach(async () => {\n    const module: TestingModule = await Test.createTestingModule({\n      controllers: [AdminController],\n      providers: [\n        {\n          provide: MonitorService,\n          useValue: {\n            getBlockIndexHistory: jest.fn(),\n            getForkedRecords: jest.fn(),\n            getBlockIndexRecords: jest.fn(),\n          },\n        },\n        {\n          provide: PoiService,\n          useValue: {\n            plainPoiRepo: {\n              getStartAndEndBlock: jest.fn(),\n              getPoiBlocksByRange: jest.fn(),\n            },\n            PoiToHuman: jest.fn(),\n          },\n        },\n        {\n          provide: EventEmitter2,\n          useValue: {\n            emitAsync: jest.fn(),\n            once: jest.fn(),\n            emit: jest.fn(),\n          },\n        },\n        {\n          provide: StoreService,\n          useValue: {\n            syncDbSize: jest.fn(),\n          },\n        },\n      ],\n    }).compile();\n\n    adminController = module.get<AdminController>(AdminController);\n    monitorService = module.get<MonitorService>(MonitorService);\n    poiService = module.get<PoiService>(PoiService);\n    eventEmitter = module.get<EventEmitter2>(EventEmitter2);\n  });\n\n  it('should be defined', () => {\n    expect(adminController).toBeDefined();\n  });\n\n  describe('getIndexBlocks', () => {\n    it('should return block index history', async () => {\n      const result = ['block1', 'block2'];\n      jest.spyOn(monitorService, 'getBlockIndexHistory').mockImplementation(() => result);\n\n      await expect(adminController.getIndexBlocks()).resolves.toEqual(result);\n    });\n\n    it('should handle errors', async () => {\n      jest.spyOn(monitorService, 'getBlockIndexHistory').mockImplementation(() => {\n        throw new Error('Test error');\n      });\n\n      await expect(adminController.getIndexBlocks()).rejects.toThrow(HttpException);\n    });\n  });\n\n  describe('getIndexForks', () => {\n    it('should return forked records', async () => {\n      const result = ['fork1', 'fork2'];\n      jest.spyOn(monitorService, 'getForkedRecords').mockImplementation(() => Promise.resolve(result));\n\n      await expect(adminController.getIndexForks()).resolves.toEqual(result);\n    });\n\n    it('should handle errors', async () => {\n      jest.spyOn(monitorService, 'getForkedRecords').mockImplementation(() => {\n        throw new Error('Test error');\n      });\n\n      await expect(adminController.getIndexForks()).rejects.toThrow(HttpException);\n    });\n  });\n\n  describe('getIndexBlockRecord', () => {\n    it('should return block index records', async () => {\n      const result = ['record1', 'record2'];\n      jest.spyOn(monitorService, 'getBlockIndexRecords').mockImplementation(() => Promise.resolve(result));\n\n      await expect(adminController.getIndexBlockRecord('1')).resolves.toEqual(result);\n    });\n\n    it('should handle errors', async () => {\n      jest.spyOn(monitorService, 'getBlockIndexRecords').mockImplementation(() => {\n        throw new Error('Test error');\n      });\n\n      await expect(adminController.getIndexBlockRecord('1')).rejects.toThrow(HttpException);\n    });\n  });\n\n  describe('getPoiRange', () => {\n    it('should return POI range', async () => {\n      const result = {startBlock: 1, endBlock: 10};\n      jest.spyOn(poiService.plainPoiRepo, 'getStartAndEndBlock').mockImplementation(() => Promise.resolve(result));\n\n      await expect(adminController.getPoiRange()).resolves.toEqual(result);\n    });\n\n    it('should handle errors', async () => {\n      jest.spyOn(poiService.plainPoiRepo, 'getStartAndEndBlock').mockImplementation(() => {\n        throw new Error('Test error');\n      });\n\n      await expect(adminController.getPoiRange()).rejects.toThrow(HttpException);\n    });\n  });\n\n  describe('getPoisByRange', () => {\n    it('should return POIs by range', async () => {\n      const pois: ProofOfIndex[] = [\n        {\n          id: 1,\n          chainBlockHash: new Uint8Array(),\n          hash: new Uint8Array(),\n          parentHash: new Uint8Array(),\n          operationHashRoot: new Uint8Array(),\n        },\n      ];\n      const blockRange = new BlockRangeDto(1, 10);\n      jest.spyOn(poiService.plainPoiRepo, 'getPoiBlocksByRange').mockImplementation(() => Promise.resolve(pois));\n      await expect(adminController.getPoisByRange(blockRange)).resolves.toEqual([\n        {\n          chainBlockHash: '0x',\n          hash: '0x',\n          id: 1,\n          operationHashRoot: '0x',\n          parentHash: '0x',\n        },\n      ]);\n    });\n\n    it('should handle errors', async () => {\n      const blockRange = new BlockRangeDto(1, 10);\n      jest.spyOn(poiService.plainPoiRepo, 'getPoiBlocksByRange').mockImplementation(() => {\n        throw new Error('Test error');\n      });\n\n      await expect(() => adminController.getPoisByRange(blockRange)).rejects.toThrow(HttpException);\n    });\n\n    it('should throw an error if startBlock is greater than endBlock', async () => {\n      const blockRange = new BlockRangeDto(10, 1);\n\n      await expect(adminController.getPoisByRange(blockRange)).rejects.toThrow(HttpException);\n    });\n  });\n\n  describe('rewindTarget', () => {\n    it('should return successful rewind payload', async () => {\n      const rewindData = {height: 1} as TargetBlockPayload;\n      const result = {success: true, height: 1} as RewindPayload;\n      jest.spyOn(eventEmitter, 'emitAsync').mockImplementation(() => Promise.resolve([]));\n      jest.spyOn(eventEmitter, 'once').mockImplementation((event, callback) => {\n        callback(result);\n        return eventEmitter; // Ensure that it returns the eventEmitter instance\n      });\n      await expect(adminController.rewindTarget(rewindData)).resolves.toEqual(result);\n    });\n\n    it('should return failure if rewind times out', async () => {\n      const rewindData = {height: 1} as TargetBlockPayload;\n\n      jest.spyOn(eventEmitter, 'emitAsync').mockImplementation(() => Promise.resolve([]));\n      jest.spyOn(eventEmitter, 'once').mockImplementation(() => {\n        throw new Error('timeout');\n      });\n\n      const expectError = new HttpException(\n        {\n          status: HttpStatus.INTERNAL_SERVER_ERROR,\n          error: 'Rewind failed:',\n          height: rewindData.height,\n          success: false,\n        },\n        HttpStatus.INTERNAL_SERVER_ERROR\n      );\n      await expect(adminController.rewindTarget(rewindData)).rejects.toThrow(expectError);\n    });\n\n    it('should handle errors', async () => {\n      const rewindData = {height: 1} as TargetBlockPayload;\n\n      jest.spyOn(eventEmitter, 'emitAsync').mockImplementation(() => {\n        throw new Error('Test error');\n      });\n\n      await expect(adminController.rewindTarget(rewindData)).rejects.toThrow(\n        new HttpException(\n          {\n            status: HttpStatus.INTERNAL_SERVER_ERROR,\n            error: 'Rewind failed:',\n            height: rewindData.height,\n            success: false,\n          },\n          HttpStatus.INTERNAL_SERVER_ERROR\n        )\n      );\n    });\n  });\n});\n\ndescribe('AdminListener', () => {\n  let adminListener: AdminListener;\n  let eventEmitter: EventEmitter2;\n\n  beforeEach(async () => {\n    const module: TestingModule = await Test.createTestingModule({\n      providers: [\n        AdminListener,\n        {\n          provide: EventEmitter2,\n          useValue: {\n            emit: jest.fn(),\n          },\n        },\n      ],\n    }).compile();\n\n    adminListener = module.get<AdminListener>(AdminListener);\n    eventEmitter = module.get<EventEmitter2>(EventEmitter2);\n  });\n\n  it('should be defined', () => {\n    expect(adminListener).toBeDefined();\n  });\n\n  describe('handleRewindSuccess', () => {\n    it('should emit RewindTargetResponse event on rewind success', () => {\n      const payload = {height: 1, success: true} as RewindPayload;\n\n      adminListener.handleRewindSuccess(payload);\n\n      expect(eventEmitter.emit).toHaveBeenCalledWith(AdminEvent.RewindTargetResponse, {\n        ...payload,\n        message: `Rewind to block ${payload.height} successful`,\n      });\n    });\n  });\n\n  describe('handleRewindFailure', () => {\n    it('should emit RewindTargetResponse event on rewind failure', () => {\n      const payload = {height: 1, success: false} as RewindPayload;\n\n      adminListener.handleRewindFailure(payload);\n\n      expect(eventEmitter.emit).toHaveBeenCalledWith(AdminEvent.RewindTargetResponse, payload);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/admin/admin.controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n  Controller,\n  Get,\n  Post,\n  HttpException,\n  HttpStatus,\n  Param,\n  Injectable,\n  Query,\n  ValidationPipe,\n  ParseIntPipe,\n} from '@nestjs/common';\nimport {EventEmitter2, OnEvent} from '@nestjs/event-emitter';\nimport {TargetBlockPayload, RewindPayload, AdminEvent, IndexerEvent} from '../events';\nimport {MonitorService, PoiService, ProofOfIndexHuman, StoreService} from '../indexer';\nimport {getLogger} from '../logger';\nimport {timeout} from '../utils';\nimport {BlockRangeDto, BlockRangeDtoInterface} from './blockRange';\n\nconst logger = getLogger('admin-api');\nconst REWIND_RESPONSE_TIMEOUT = 120; //seconds\n\nasync function handleServiceCall<T>(serviceCall: () => Promise<T> | T): Promise<T> {\n  try {\n    return await serviceCall();\n  } catch (e: any) {\n    logger.error(e);\n    throw new HttpException(\n      {\n        status: HttpStatus.INTERNAL_SERVER_ERROR,\n        error: e.message,\n      },\n      HttpStatus.INTERNAL_SERVER_ERROR\n    );\n  }\n}\n\n@Controller('admin')\nexport class AdminController {\n  constructor(\n    private monitorService: MonitorService,\n    private poiService: PoiService,\n    private eventEmitter: EventEmitter2,\n    private storeService: StoreService\n  ) {}\n\n  @Get('index_history/range')\n  async getIndexBlocks(): Promise<(string | number)[]> {\n    return handleServiceCall(() => this.monitorService.getBlockIndexHistory());\n  }\n\n  @Get('index_history/forks')\n  async getIndexForks(): Promise<string[] | undefined> {\n    return handleServiceCall(() => this.monitorService.getForkedRecords());\n  }\n\n  @Get('index_history/block/:blockHeight')\n  async getIndexBlockRecord(@Param('blockHeight', ParseIntPipe) blockHeight: string): Promise<string[] | undefined> {\n    return handleServiceCall(() => this.monitorService.getBlockIndexRecords(Number(blockHeight)));\n  }\n\n  @Get('poi/range')\n  async getPoiRange(): Promise<BlockRangeDtoInterface | undefined> {\n    return handleServiceCall(() => this.poiService.plainPoiRepo.getStartAndEndBlock());\n  }\n\n  @Get('poi/')\n  async getPoisByRange(@Query(ValidationPipe) blockRange: BlockRangeDto): Promise<ProofOfIndexHuman[]> {\n    const {endBlock, startBlock} = blockRange;\n    logger.info(`[POI] Getting poi history for blocks from ${startBlock} to ${endBlock}`);\n    return handleServiceCall(async () => {\n      const pois = await this.poiService.plainPoiRepo.getPoiBlocksByRange(\n        Number(startBlock),\n        endBlock !== undefined ? Number(endBlock) : undefined\n      );\n      return pois.filter((poi) => poi !== undefined).map((poi) => PoiService.PoiToHuman(poi));\n    });\n  }\n\n  @Post('rewind')\n  async rewindTarget(@Query() rewindData: TargetBlockPayload): Promise<RewindPayload> {\n    try {\n      const result = await timeout(\n        new Promise<RewindPayload>((resolve, reject) => {\n          this.eventEmitter\n            .emitAsync(AdminEvent.rewindTarget, {height: rewindData.height})\n            .then(() => {\n              this.eventEmitter.once(AdminEvent.RewindTargetResponse, resolve);\n            })\n            .catch(reject);\n        }),\n        REWIND_RESPONSE_TIMEOUT,\n        `Rewind operation respond timeout after ${REWIND_RESPONSE_TIMEOUT} seconds. Please check metadata to ensure rewind completed`\n      );\n      return result;\n    } catch (e: any) {\n      logger.error(e.message);\n      throw new HttpException(\n        {\n          status: HttpStatus.INTERNAL_SERVER_ERROR,\n          error: `Rewind failed: ${e.message}`,\n          success: false,\n          height: rewindData.height,\n        },\n        HttpStatus.INTERNAL_SERVER_ERROR\n      );\n    }\n  }\n\n  @Get('db_size')\n  async getDbSize(): Promise<bigint> {\n    return handleServiceCall(() => this.storeService.syncDbSize());\n  }\n}\n\n@Injectable()\nexport class AdminListener {\n  constructor(private eventEmitter: EventEmitter2) {}\n\n  @OnEvent(IndexerEvent.RewindSuccess)\n  handleRewindSuccess(payload: RewindPayload): void {\n    this.eventEmitter.emit(AdminEvent.RewindTargetResponse, {\n      ...payload,\n      message: `Rewind to block ${payload.height} successful`,\n    });\n  }\n\n  @OnEvent(IndexerEvent.RewindFailure)\n  handleRewindFailure(payload: RewindPayload): void {\n    this.eventEmitter.emit(AdminEvent.RewindTargetResponse, {...payload});\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/admin/blockRange.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {plainToClass} from 'class-transformer';\nimport {validate} from 'class-validator';\nimport {BlockRangeDto} from './blockRange';\n\ndescribe('BlockRangeDto', () => {\n  it('should create a valid BlockRangeDto instance', () => {\n    const blockRange = new BlockRangeDto(10, 20);\n\n    expect(blockRange).toBeInstanceOf(BlockRangeDto);\n    expect(blockRange.startBlock).toBe(10);\n    expect(blockRange.endBlock).toBe(20);\n  });\n\n  it('should validate successfully for valid data', async () => {\n    const blockRange = plainToClass(BlockRangeDto, {startBlock: 10, endBlock: 20});\n    const errors = await validate(blockRange);\n\n    expect(errors.length).toBe(0);\n  });\n\n  it('should fail validation if startBlock is not a positive integer', async () => {\n    const blockRange = plainToClass(BlockRangeDto, {startBlock: -10, endBlock: 20});\n    const errors = await validate(blockRange);\n\n    expect(errors.length).toBeGreaterThan(0);\n    expect(errors[0].constraints).toHaveProperty('isPositive');\n  });\n\n  it('should fail validation if endBlock is not a positive integer', async () => {\n    const blockRange = plainToClass(BlockRangeDto, {startBlock: 10, endBlock: -20});\n    const errors = await validate(blockRange);\n\n    expect(errors.length).toBeGreaterThan(0);\n    expect(errors[0].constraints).toHaveProperty('isPositive');\n  });\n\n  it('should allow endBlock to be undefined', async () => {\n    const blockRange = plainToClass(BlockRangeDto, {startBlock: 10});\n    const errors = await validate(blockRange);\n\n    expect(errors.length).toBe(0);\n    expect(blockRange.endBlock).toBeUndefined();\n  });\n\n  it('should fail validation if startBlock is less than 0', async () => {\n    const blockRange = plainToClass(BlockRangeDto, {startBlock: -1, endBlock: 20});\n    const errors = await validate(blockRange);\n\n    expect(errors.length).toBeGreaterThan(0);\n    expect(errors[0].constraints).toHaveProperty('min');\n  });\n\n  it('should fail validation if endBlock is less than 0', async () => {\n    const blockRange = plainToClass(BlockRangeDto, {startBlock: 10, endBlock: -1});\n    const errors = await validate(blockRange);\n\n    expect(errors.length).toBeGreaterThan(0);\n    expect(errors[0].constraints).toHaveProperty('min');\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/admin/blockRange.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Type} from 'class-transformer';\nimport {\n  IsInt,\n  IsPositive,\n  Min,\n  IsOptional,\n  ValidateIf,\n  registerDecorator,\n  ValidationOptions,\n  ValidationArguments,\n} from 'class-validator';\n\nexport function IsGreaterThan(property: string, validationOptions?: ValidationOptions) {\n  return function (object: any, propertyName: string) {\n    registerDecorator({\n      name: 'isGreaterThan',\n      target: object.constructor,\n      propertyName: propertyName,\n      constraints: [property],\n      options: validationOptions,\n      validator: {\n        validate(value: any, args: ValidationArguments) {\n          const [relatedPropertyName] = args.constraints;\n          const relatedValue = (args.object as any)[relatedPropertyName];\n          return value === undefined || value > relatedValue;\n        },\n        defaultMessage(args: ValidationArguments) {\n          const [relatedPropertyName] = args.constraints;\n          return `${args.property} must be greater than ${relatedPropertyName}`;\n        },\n      },\n    });\n  };\n}\n\nexport interface BlockRangeDtoInterface {\n  startBlock: number;\n  endBlock?: number;\n}\n\nexport class BlockRangeDto implements BlockRangeDtoInterface {\n  constructor(startBlock: number, endBlock?: number) {\n    this.startBlock = startBlock;\n    this.endBlock = endBlock;\n  }\n\n  @Type(() => Number)\n  @IsInt()\n  @IsPositive()\n  @Min(0)\n  startBlock: number;\n\n  @Type(() => Number)\n  @IsInt()\n  @IsPositive()\n  @Min(0)\n  @IsOptional()\n  @IsGreaterThan('startBlock')\n  endBlock: number | undefined;\n}\n"
  },
  {
    "path": "packages/node-core/src/admin/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './blockRange';\n"
  },
  {
    "path": "packages/node-core/src/api.connection.error.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport enum ApiErrorType {\n  Timeout = 'timeout',\n  Connection = 'connection',\n  RateLimit = 'ratelimit',\n  Default = 'default',\n}\n\nexport class ApiConnectionError extends Error {\n  errorType: ApiErrorType;\n\n  constructor(name: string, message: string, errorType: ApiErrorType) {\n    super(message);\n    this.name = name;\n    this.errorType = errorType;\n  }\n}\n\nexport class RateLimitError extends ApiConnectionError {\n  constructor(e: Error) {\n    super('RateLimit', e.message, ApiErrorType.RateLimit);\n  }\n}\n\nexport class TimeoutError extends ApiConnectionError {\n  constructor(e: Error) {\n    super('TimeoutError', e.message, ApiErrorType.Timeout);\n  }\n}\n\nexport class DisconnectionError extends ApiConnectionError {\n  constructor(e: Error) {\n    super('ConnectionError', e.message, ApiErrorType.Connection);\n  }\n}\n\nexport class LargeResponseError extends ApiConnectionError {\n  constructor(e: Error) {\n    const newMessage = `Oversized RPC node response. This issue is related to the network's RPC nodes configuration, not your application. You may report it to the network's maintainers or try a different RPC node.\\n\\n${e.message}`;\n\n    super('RpcInternalError', newMessage, ApiErrorType.Default);\n  }\n}\n\nexport class MetadataMismatchError extends Error {\n  constructor(metadata: string, expected: string, actual: string) {\n    super(\n      `Value of ${metadata} does not match across all endpoints\\n\n       Expected: ${expected}\n       Actual: ${actual}`\n    );\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/api.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {delay} from '@subql/common';\nimport {IEndpointConfig, ProjectNetworkConfig} from '@subql/types-core';\nimport {ApiService, IApiConnectionSpecific} from './api.service';\nimport {NodeConfig} from './configure';\nimport {ConnectionPoolService, ConnectionPoolStateManager} from './indexer';\n\nclass TestApiService extends ApiService {\n  retryConnection(\n    createConnection: (endpoint: string, config: IEndpointConfig) => Promise<IApiConnectionSpecific>,\n    network: ProjectNetworkConfig & {chainId: string},\n    index: number,\n    endpoint: string,\n    config: IEndpointConfig,\n    postConnectedHook?: (connection: IApiConnectionSpecific, endpoint: string, index: number) => void\n  ): void {\n    /* No Op to avoid creating intervals/timeouts in tests*/\n  }\n}\n\ndescribe('ApiService', () => {\n  let apiService: TestApiService;\n\n  beforeEach(() => {\n    const stateManager = new ConnectionPoolStateManager();\n    const poolService = new ConnectionPoolService(new NodeConfig({} as any), stateManager);\n\n    apiService = new TestApiService(poolService, new EventEmitter2());\n  });\n\n  it('should throw creating connections if all endpoints are invalid', async () => {\n    await expect(\n      apiService.createConnections(\n        {chainId: 'test', endpoint: {fail: {}, fail2: {}}},\n        (endpoint) => Promise.resolve({networkMeta: {chain: endpoint}} as any) // Fail meta validation\n      )\n    ).rejects.toThrow();\n  });\n\n  it('should succeed creating connections if one endpoint is invalid', async () => {\n    await expect(\n      apiService.createConnections(\n        {chainId: 'test', endpoint: {test: {}, fail: {}}},\n        (endpoint) => Promise.resolve({networkMeta: {chain: endpoint}} as any) // Fail meta validation\n      )\n    ).resolves.not.toThrow();\n  });\n\n  it(`doesn't set network meta if a connection fails validation`, async () => {\n    await expect(\n      apiService.createConnections({chainId: 'test', endpoint: ['fail']}, (endpoint) =>\n        Promise.resolve({networkMeta: {chain: endpoint}} as any)\n      )\n    ).rejects.toThrow();\n\n    expect((apiService as any)._networkMeta).toBeUndefined();\n  });\n\n  it('should retry connections if they fail with something other than metadata', async () => {\n    const retrySpy = jest.spyOn(apiService, 'retryConnection');\n\n    await apiService.createConnections({chainId: 'test', endpoint: {test: {}, fail: {}}}, (endpoint) =>\n      endpoint === 'test'\n        ? Promise.resolve({networkMeta: {chain: endpoint}} as any) // At least one endpoint needs to succeed\n        : Promise.reject(new Error('Test'))\n    );\n\n    // Add delay so non blocking promise is resolve in create connections\n    await delay(0.001);\n\n    expect(retrySpy).toHaveBeenCalled();\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/api.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {normalizeNetworkEndpoints} from '@subql/common';\nimport {IEndpointConfig, ProjectNetworkConfig} from '@subql/types-core';\nimport {ApiConnectionError, ApiErrorType, MetadataMismatchError} from './api.connection.error';\nimport {IndexerEvent, NetworkMetadataPayload} from './events';\nimport {ConnectionPoolService} from './indexer';\nimport {getLogger} from './logger';\nimport {backoffRetry, isBackoffError} from './utils';\n\nconst logger = getLogger('api');\n\nconst MAX_RECONNECT_ATTEMPTS = 5;\n\nexport interface IApi<A = any, SA = any, B extends Array<any> = any[]> {\n  fetchBlocks(heights: number[], ...args: any): Promise<B>;\n  safeApi(height: number): SA;\n  unsafeApi: A;\n  readonly networkMeta: NetworkMetadataPayload;\n}\n\nexport interface IApiConnectionSpecific<A = any, SA = any, B extends Array<any> = any[]> extends IApi<A, SA, B> {\n  handleError(error: Error): ApiConnectionError;\n  apiConnect(): Promise<void>;\n  apiDisconnect(): Promise<void>;\n  updateChainTypes?(chainTypes: unknown): Promise<void>;\n}\n\nexport abstract class ApiService<\n  A = any,\n  SA = any,\n  B extends Array<any> = any[],\n  Connection extends IApiConnectionSpecific<A, SA, B> = IApiConnectionSpecific<A, SA, B>,\n  EndpointConfig extends IEndpointConfig = IEndpointConfig,\n> implements IApi<A, SA, B>\n{\n  constructor(\n    protected connectionPoolService: ConnectionPoolService<Connection>,\n    protected eventEmitter: EventEmitter2\n  ) {}\n\n  private _networkMeta?: NetworkMetadataPayload;\n\n  get networkMeta(): NetworkMetadataPayload {\n    assert(!!this._networkMeta, 'ApiService has not been init');\n    return this._networkMeta;\n  }\n\n  private connectionRetrys: Record<string, Promise<void> | undefined> = {};\n\n  async fetchBlocks(heights: number[], numAttempts = MAX_RECONNECT_ATTEMPTS): Promise<B> {\n    return this.retryFetch(async () => {\n      // Get the latest fetch function from the provider\n      const apiInstance = this.connectionPoolService.api;\n      return apiInstance.fetchBlocks(heights);\n    }, numAttempts);\n  }\n\n  protected async retryFetch(fn: () => Promise<B>, numAttempts = MAX_RECONNECT_ATTEMPTS): Promise<B> {\n    try {\n      return await backoffRetry(fn, numAttempts);\n    } catch (e) {\n      if (isBackoffError(e)) {\n        logger.error(e.message);\n        throw e.lastError;\n      }\n      throw e;\n    }\n  }\n\n  get api(): A {\n    return this.unsafeApi;\n  }\n\n  safeApi(height: number): SA {\n    const apiInstance = this.connectionPoolService.api;\n    return apiInstance.safeApi(height);\n  }\n\n  get unsafeApi(): A {\n    const apiInstance = this.connectionPoolService.api;\n    return apiInstance.unsafeApi;\n  }\n\n  async createConnections(\n    network: ProjectNetworkConfig<EndpointConfig> & {chainId: string},\n    createConnection: (endpoint: string, config: EndpointConfig) => Promise<Connection>,\n    /* Used to monitor the state of the connection */\n    postConnectedHook?: (connection: Connection, endpoint: string, index: number) => void\n  ): Promise<void> {\n    const endpointToApiIndex: Record<string, Connection> = {};\n\n    const failedConnections: Map<number, [string, EndpointConfig]> = new Map();\n\n    const endpoints = normalizeNetworkEndpoints<EndpointConfig>(network.endpoint);\n\n    const connectionPromises = Object.entries(endpoints).map(async ([endpoint, config], i) => {\n      try {\n        const connection = await this.performConnection(\n          createConnection,\n          network,\n          i,\n          endpoint,\n          config,\n          postConnectedHook\n        );\n\n        void this.connectionPoolService.addToConnections(connection, endpoint);\n      } catch (e) {\n        logger.error(`Failed to init ${endpoint}: ${e}`);\n        endpointToApiIndex[endpoint] = null as unknown as Connection;\n\n        // Don't reconnect if connection is for wrong network\n        if (!(e instanceof MetadataMismatchError)) {\n          failedConnections.set(i, [endpoint, config]);\n        }\n\n        throw e;\n      }\n    });\n\n    try {\n      await Promise.any(connectionPromises);\n    } catch (e) {\n      throw new Error('All endpoints failed to initialize. Please add healthier endpoints', {cause: e});\n    }\n\n    void Promise.allSettled(connectionPromises).then((res) => {\n      // Retry failed connections in the background\n      for (const [index, [endpoint, config]] of failedConnections) {\n        this.retryConnection(createConnection, network, index, endpoint, config, postConnectedHook);\n      }\n    });\n  }\n\n  private async performConnection(\n    createConnection: (endpoint: string, config: EndpointConfig) => Promise<Connection>,\n    network: ProjectNetworkConfig & {chainId: string},\n    index: number,\n    endpoint: string,\n    config: EndpointConfig,\n    postConnectedHook?: (connection: Connection, endpoint: string, index: number) => void\n  ): Promise<Connection> {\n    const connection = await createConnection(endpoint, config);\n\n    this.assertChainId(network, connection);\n    if (!this._networkMeta) {\n      this._networkMeta = connection.networkMeta;\n    }\n\n    this.eventEmitter.emit(IndexerEvent.ApiConnected, {\n      value: 1,\n      apiIndex: index,\n      endpoint: endpoint,\n    });\n\n    if (postConnectedHook) {\n      postConnectedHook(connection, endpoint, index);\n    }\n\n    return connection;\n  }\n\n  retryConnection(...args: Parameters<ApiService<A, SA, B, Connection, EndpointConfig>['performConnection']>): void {\n    const endpoint = args[3];\n    this.connectionRetrys[endpoint] = backoffRetry(async () => {\n      try {\n        const connection = await this.performConnection(...args);\n\n        // Replace null connection with the new connection\n        await this.connectionPoolService.updateConnection(connection, endpoint);\n        logger.info(`Updated connection for ${endpoint}`);\n      } catch (e) {\n        logger.error(`Initialization retry failed for ${endpoint}: ${e}`);\n        throw e;\n      }\n    }, 5).catch((e) => {\n      logger.error(e, `Initialization retry attempts exhausted for ${endpoint}`);\n    });\n  }\n\n  handleError(error: Error): ApiConnectionError {\n    return new ApiConnectionError(error.name, error.message, ApiErrorType.Default);\n  }\n\n  /**\n   * Override this if the network uses another value like genesisHash\n   * */\n  protected assertChainId(network: ProjectNetworkConfig & {chainId: string}, connection: IApiConnectionSpecific): void {\n    if (network.chainId !== connection.networkMeta.chain) {\n      throw new MetadataMismatchError('ChainId', network.chainId, connection.networkMeta.chain);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/blockchain.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BaseCustomDataSource, BaseDataSource, IProjectNetworkConfig} from '@subql/types-core';\nimport {DatasourceParams, Header, IBaseIndexerWorker, IBlock, ISubqueryProject} from './indexer';\n\nexport interface ICoreBlockchainService<\n  DS extends BaseDataSource = BaseDataSource,\n  SubQueryProject extends ISubqueryProject<IProjectNetworkConfig, DS> = ISubqueryProject<IProjectNetworkConfig, DS>,\n> {\n  /* The semver of the node */\n  packageVersion: string;\n\n  // Project service\n  onProjectChange(project: SubQueryProject): Promise<void> | void;\n  /* Not all networks have a block timestamp, e.g. Shiden need to request one more get */\n  getBlockTimestamp(height: number): Promise<Date>;\n\n  getHeaderForHeight(height: number): Promise<Header>;\n}\n\nexport interface IBlockchainService<\n  DS extends BaseDataSource = BaseDataSource,\n  CDS extends DS & BaseCustomDataSource = DS & BaseCustomDataSource,\n  SubQueryProject extends ISubqueryProject<IProjectNetworkConfig, DS> = ISubqueryProject<IProjectNetworkConfig, DS>,\n  SafeAPI = any,\n  LightBlock = any,\n  FullBlock = any,\n  Worker extends IBaseIndexerWorker = IBaseIndexerWorker,\n> extends ICoreBlockchainService<DS, SubQueryProject> {\n  blockHandlerKind: string;\n\n  // Block dispatcher service\n  fetchBlocks(blockNums: number[]): Promise<IBlock<LightBlock>[] | IBlock<FullBlock>[]>; // TODO this probably needs to change to get light block type correct\n  /* This is the worker equivalent of fetchBlocks, it provides a context to allow syncing anything between workers */\n  fetchBlockWorker(worker: Worker, blockNum: number, context: {workers: Worker[]}): Promise<Header>;\n\n  // /* Not all networks have a block timestamp, e.g. Shiden */\n  // getBlockTimestamp(height: number): Promise<Date | undefined>;\n\n  // Block dispatcher\n  /* Gets the size of the block, used to calculate a median */\n  getBlockSize(block: IBlock): number;\n\n  // Fetch service\n  /**\n   * The finalized header. If the chain doesn't have concrete finalization this could be a probabilistic finalization\n   * */\n  getFinalizedHeader(): Promise<Header>;\n  /**\n   * Gets the latest height of the chain, this should be unfinalized.\n   * Or if the chain has instant finalization this would be the same as the finalized height.\n   * */\n  getBestHeight(): Promise<number>;\n  /**\n   *  The chain interval in milliseconds, if it is not consistent then provide a best estimate\n   * */\n  getChainInterval(): Promise<number>;\n\n  // Unfinalized blocks\n  getHeaderForHash(hash: string): Promise<Header>;\n\n  // Dynamic Ds sevice\n  /**\n   * Applies and validates parameters to a template DS\n   * */\n  updateDynamicDs(params: DatasourceParams, template: DS | CDS): Promise<void>;\n\n  isCustomDs: (x: DS | CDS) => x is CDS;\n  isRuntimeDs: (x: DS | CDS) => x is DS;\n\n  // Indexer manager\n  /**\n   * Gets an API instance to a specific height so any state queries return data as represented at that height.\n   * */\n  getSafeApi(block: LightBlock | FullBlock): Promise<SafeAPI>;\n}\n"
  },
  {
    "path": "packages/node-core/src/configure/NodeConfig.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport * as path from 'path';\nimport {NodeConfig, IConfig} from './NodeConfig';\n\ndescribe('NodeConfig', () => {\n  it('supports read from yaml', () => {\n    const config = NodeConfig.fromFile(path.join(__dirname, '../../test/config.yml'));\n    expect(config).toBeInstanceOf(NodeConfig);\n    expect(config).toMatchObject({\n      subquery: '../../../../subql-example/extrinsics',\n      subqueryName: 'extrinsics',\n    });\n  });\n\n  it('support read from json', () => {\n    const config = NodeConfig.fromFile(path.join(__dirname, '../../test/config.json'));\n    expect(config).toBeInstanceOf(NodeConfig);\n    expect(config).toMatchObject({\n      subquery: '../../../../subql-example/extrinsics',\n      subqueryName: 'extrinsics',\n    });\n  });\n\n  it('rebase file config from manifest runner options', () => {\n    const configPath = path.join(__dirname, '../../test/config.json');\n    const fileConfig = NodeConfig.fromFile(configPath);\n\n    const mockArgIConfig = {\n      workers: 4,\n      unsafe: true,\n      disableHistorical: false,\n      unfinalizedBlocks: false,\n    } as Partial<IConfig>;\n    const config = NodeConfig.rebaseWithArgs(fileConfig, mockArgIConfig);\n    // Fill undefined\n    expect(config.workers).toBe(4);\n    // override default config from manifest options\n    expect(config.unsafe).toBeTruthy();\n  });\n\n  it('throw error for unknown configs', () => {\n    expect(() => NodeConfig.fromFile(path.join(__dirname, '../../test/config.toml'))).toThrow();\n    expect(() => NodeConfig.fromFile(path.join(__dirname, '../../test/con.toml'))).toThrow(/Load config from file/);\n  });\n\n  it('Monitor configs default value', () => {\n    const fileConfig = NodeConfig.fromFile(path.join(__dirname, '../../test/config.yml'));\n    expect(fileConfig.monitorFileSize).toEqual(0);\n    expect(fileConfig.monitorObjectMaxDepth).toEqual(5);\n\n    const config2 = NodeConfig.rebaseWithArgs(fileConfig, {\n      monitorObjectMaxDepth: 10,\n    });\n    expect(config2.monitorObjectMaxDepth).toEqual(10);\n\n    const config3 = NodeConfig.rebaseWithArgs(fileConfig, {\n      proofOfIndex: true,\n    });\n    expect(config3.monitorFileSize).toEqual(200);\n  });\n\n  it('Has the correct default behaviour for unfinalizedBlocks', () => {\n    const config = new NodeConfig({historical: false} as any);\n    expect(config.unfinalizedBlocks).toBe(false);\n\n    const config1 = new NodeConfig({historical: 'height'} as any);\n    expect(config1.unfinalizedBlocks).toBe(true);\n\n    const config2 = new NodeConfig({historical: 'timestamp'} as any);\n    expect(config2.unfinalizedBlocks).toBe(true);\n\n    const config3 = new NodeConfig({historical: 'timestamp', unfinalizedBlocks: false} as any);\n    expect(config3.unfinalizedBlocks).toBe(false);\n\n    const config4 = new NodeConfig({historical: false, unfinalizedBlocks: true} as any);\n    expect(config4.unfinalizedBlocks).toBe(false);\n\n    const config5 = new NodeConfig({historical: 'height', unfinalizedBlocks: true} as any, true);\n    expect(config5.unfinalizedBlocks).toBe(false);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/configure/NodeConfig.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport fs from 'fs';\nimport path from 'path';\nimport {getFileContent, loadFromJsonOrYaml, normalizeNetworkEndpoints} from '@subql/common';\nimport {IEndpointConfig} from '@subql/types-core';\nimport {last} from 'lodash';\nimport {LevelWithSilent} from 'pino';\nimport {HistoricalMode} from '../indexer';\nimport {getLogger} from '../logger';\nimport {assign} from '../utils/object';\n\nconst logger = getLogger('configure');\n\nexport interface IConfig {\n  readonly subquery: string;\n  readonly subqueryName?: string;\n  readonly dbSchema?: string;\n  readonly batchSize: number;\n  readonly timeout: number;\n  readonly blockTime: number;\n  readonly debug?: string;\n  readonly preferRange: boolean;\n  readonly networkEndpoint?: Record<string, IEndpointConfig>;\n  readonly primaryNetworkEndpoint?: [string, IEndpointConfig];\n  readonly networkDictionary?: string[];\n  readonly dictionaryRegistry: string;\n  readonly outputFmt?: 'json';\n  readonly logLevel: LevelWithSilent;\n  readonly queryLimit: number;\n  readonly indexCountLimit: number;\n  readonly proofOfIndex: boolean;\n  readonly ipfs?: string;\n  readonly dictionaryTimeout: number;\n  readonly dictionaryQuerySize: number;\n  readonly workers?: number;\n  readonly profiler?: boolean;\n  readonly unsafe?: boolean;\n  readonly subscription: boolean;\n  readonly historical: HistoricalMode;\n  readonly multiChain: boolean;\n  readonly reindex?: number;\n  readonly unfinalizedBlocks?: boolean;\n  readonly pgCa?: string;\n  readonly pgKey?: string;\n  readonly pgCert?: string;\n  readonly pgPoolMin?: number;\n  readonly pgPoolMax?: number;\n  readonly pgPoolIdle?: number;\n  readonly pgPoolAqcuire?: number;\n  readonly pgPoolEvict?: number;\n  readonly storeCacheThreshold: number;\n  readonly storeCacheUpperLimit: number;\n  readonly storeGetCacheSize: number;\n  readonly storeCacheAsync: boolean;\n  readonly storeFlushInterval: number;\n  readonly storeCacheTarget: number;\n  readonly isTest?: boolean;\n  readonly root?: string;\n  readonly allowSchemaMigration: boolean;\n  readonly csvOutDir?: string;\n  readonly monitorOutDir: string;\n  readonly monitorFileSize?: number;\n  readonly monitorObjectMaxDepth: number;\n  readonly enableCache?: boolean;\n}\n\nexport type MinConfig = Partial<Omit<IConfig, 'subquery'>> & Pick<IConfig, 'subquery'>;\n\nconst DEFAULT_CONFIG = {\n  logLevel: 'info',\n  batchSize: 100,\n  timeout: 900,\n  blockTime: 6000,\n  preferRange: false,\n  debug: undefined,\n  queryLimit: 100,\n  indexCountLimit: 10,\n  proofOfIndex: false,\n  dictionaryTimeout: 30,\n  dictionaryQuerySize: 10000,\n  profiler: false,\n  subscription: false,\n  historical: 'height',\n  multiChain: false,\n  storeCacheThreshold: 1000,\n  storeCacheUpperLimit: 10000,\n  storeGetCacheSize: 500,\n  storeCacheAsync: true,\n  storeFlushInterval: 5,\n  storeCacheTarget: 10,\n  allowSchemaMigration: false,\n  monitorOutDir: './.monitor',\n  monitorObjectMaxDepth: 5,\n};\n\nexport class NodeConfig<C extends IConfig = IConfig> implements IConfig {\n  protected readonly _config: C;\n  protected readonly _isTest: boolean;\n\n  static fromFile(filePath: string, configFromArgs?: Partial<IConfig>, isTest?: boolean): NodeConfig {\n    if (!fs.existsSync(filePath)) {\n      throw new Error(`Load config from file ${filePath} is not exist`);\n    }\n    let configFromFile: unknown;\n    try {\n      configFromFile = loadFromJsonOrYaml(filePath);\n    } catch (e) {\n      logger.error(`failed to load config file, ${e}`);\n      throw e;\n    }\n\n    const config = assign(configFromFile, configFromArgs) as IConfig;\n    return new NodeConfig(config, isTest);\n  }\n\n  static rebaseWithArgs(config: NodeConfig, configFromArgs?: Partial<IConfig>): NodeConfig {\n    const _config = assign({}, (config as any)._config, configFromArgs);\n    return new NodeConfig(_config, (config as any)._isTest);\n  }\n\n  constructor(config: MinConfig, isTest?: boolean) {\n    this._config = assign({}, DEFAULT_CONFIG, config) as C;\n    this._isTest = isTest ?? false;\n  }\n\n  get subquery(): string {\n    assert(this._config.subquery);\n    return this._config.subquery;\n  }\n\n  get subqueryName(): string {\n    assert(this._config.subquery);\n    const name = this._config.subqueryName ?? last(this.subquery.split(path.sep));\n    if (!name) {\n      throw new Error('Unable to get subquery name');\n    }\n    return name;\n  }\n\n  get batchSize(): number {\n    return this._config.batchSize;\n  }\n\n  get networkEndpoints(): Record<string, IEndpointConfig> | undefined {\n    return normalizeNetworkEndpoints(\n      this._config.networkEndpoint as string | string[] | Record<string, IEndpointConfig>\n    );\n  }\n\n  get primaryNetworkEndpoint(): [string, IEndpointConfig] | undefined {\n    return this._config.primaryNetworkEndpoint;\n    // if (!this._config.primaryNetworkEndpoint) {\n    //   return undefined;\n    // }\n    // return [this._config.primaryNetworkEndpoint, {}];\n  }\n\n  get networkDictionaries(): string[] | undefined | false {\n    return typeof this._config.networkDictionary === 'string'\n      ? this._config.networkDictionary === 'false'\n        ? false\n        : [this._config.networkDictionary]\n      : this._config.networkDictionary;\n  }\n\n  get allowSchemaMigration(): boolean {\n    return this._config.allowSchemaMigration;\n  }\n  get storeCacheThreshold(): number {\n    return this._config.storeCacheThreshold;\n  }\n\n  get storeCacheUpperLimit(): number {\n    return this._config.storeCacheUpperLimit;\n  }\n\n  get storeGetCacheSize(): number {\n    return this._config.storeGetCacheSize;\n  }\n\n  get storeCacheAsync(): boolean {\n    return !!this._config.storeCacheAsync;\n  }\n\n  get storeFlushInterval(): number {\n    return this._config.storeFlushInterval;\n  }\n\n  get storeCacheTarget(): number {\n    return this._config.storeCacheTarget;\n  }\n\n  get dictionaryRegistry(): string {\n    if (this._config.dictionaryRegistry) {\n      return this._config.dictionaryRegistry;\n    }\n\n    return 'https://github.com/subquery/templates/raw/main/dist/dictionary.json';\n  }\n\n  get timeout(): number {\n    return this._config.timeout;\n  }\n\n  get blockTime(): number {\n    return this._config.blockTime;\n  }\n\n  get debug(): string | undefined {\n    return this._config.debug;\n  }\n\n  get preferRange(): boolean {\n    return this._config.preferRange;\n  }\n\n  get outputFmt(): 'json' | undefined {\n    return this._config.outputFmt;\n  }\n\n  get logLevel(): LevelWithSilent {\n    return this.debug ? 'debug' : this._config.logLevel;\n  }\n\n  get queryLimit(): number {\n    return this._config.queryLimit;\n  }\n\n  get indexCountLimit(): number {\n    return this._config.indexCountLimit;\n  }\n\n  get proofOfIndex(): boolean {\n    return this._config.proofOfIndex;\n  }\n\n  get dictionaryTimeout(): number {\n    return this._config.dictionaryTimeout;\n  }\n\n  get dictionaryQuerySize(): number {\n    return this._config.dictionaryQuerySize;\n  }\n\n  get ipfs(): string | undefined {\n    return this._config.ipfs;\n  }\n\n  get dbSchema(): string {\n    const schema = this._config.dbSchema ?? this.subqueryName;\n    return this._isTest ? `test-${schema}` : schema;\n  }\n\n  get workers(): number | undefined {\n    return this._config.workers;\n  }\n\n  get profiler(): boolean {\n    return !!this._config.profiler;\n  }\n\n  get unsafe(): boolean {\n    return !!this._config.unsafe;\n  }\n\n  get subscription(): boolean {\n    return this._config.subscription;\n  }\n\n  get historical(): HistoricalMode {\n    if (this._isTest) return false;\n\n    const val = this._config.historical;\n    // Runtime check, option can come from cli, project or config file\n    if (val !== false && val !== 'height' && val !== 'timestamp') {\n      throw new Error(`Historical mode is invalid. Received: ${val}`);\n    }\n    return val;\n  }\n\n  get multiChain(): boolean {\n    return this._config.multiChain;\n  }\n\n  get unfinalizedBlocks(): boolean {\n    if (this._isTest) return false;\n\n    if (this._config.unfinalizedBlocks === false) {\n      return false;\n    }\n\n    return this.historical !== false;\n  }\n\n  get isPostgresSecureConnection(): boolean {\n    return !!this._config.pgCa;\n  }\n\n  get postgresCACert(): string | undefined {\n    if (!this._config.pgCa) {\n      return undefined;\n    }\n    try {\n      return getFileContent(this._config.pgCa, 'postgres ca cert');\n    } catch (e: any) {\n      logger.error(e, 'Unable to get postges CA Cert');\n      throw e;\n    }\n  }\n\n  get postgresClientKey(): string | undefined {\n    if (!this._config.pgKey) {\n      return undefined;\n    }\n\n    try {\n      return getFileContent(this._config.pgKey, 'postgres client key');\n    } catch (e: any) {\n      logger.error(e, 'Unable to get postgres client key');\n      throw e;\n    }\n  }\n\n  get postgresClientCert(): string | undefined {\n    if (!this._config.pgCert) {\n      return undefined;\n    }\n    try {\n      return getFileContent(this._config.pgCert, 'postgres client cert');\n    } catch (e: any) {\n      logger.error(e, 'Unable to get postgres client cert');\n      throw e;\n    }\n  }\n\n  get pgPoolMax(): number | undefined {\n    return this._config.pgPoolMax;\n  }\n\n  get pgPoolMin(): number | undefined {\n    return this._config.pgPoolMin;\n  }\n\n  get pgPoolAqcuire(): number | undefined {\n    return this._config.pgPoolAqcuire;\n  }\n\n  get pgPoolIdle(): number | undefined {\n    return this._config.pgPoolIdle;\n  }\n\n  get pgPoolEvict(): number | undefined {\n    return this._config.pgPoolEvict;\n  }\n\n  get root(): string | undefined {\n    return this._config.root;\n  }\n\n  get csvOutDir(): string | undefined {\n    return this._config.csvOutDir;\n  }\n\n  get monitorOutDir(): string {\n    return this._config.monitorOutDir;\n  }\n\n  get monitorFileSize(): number {\n    const defaultMonitorFileSize = 200;\n    // If user passed though yarg, we will record monitor file by this size, no matter poi or not\n    // if user didn't pass through yarg, we will record monitor file by this default size only when poi is enabled\n    return this._config.monitorFileSize ?? (this._config.proofOfIndex ? defaultMonitorFileSize : 0);\n  }\n\n  get monitorObjectMaxDepth(): number {\n    return this._config.monitorObjectMaxDepth;\n  }\n\n  get enableCache(): boolean {\n    return this._config.enableCache ?? true;\n  }\n\n  merge(config: Partial<IConfig>): this {\n    assign(this._config, config);\n    return this;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/configure/ProjectUpgrade.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Sequelize} from '@subql/x-sequelize';\nimport {CacheMetadataModel, IStoreModelProvider, ISubqueryProject, StoreCacheService, StoreService} from '../indexer';\nimport {NodeConfig} from './NodeConfig';\nimport {IProjectUpgradeService, ProjectUpgradeService, upgradableSubqueryProject} from './ProjectUpgrade.service';\n\nconst templateProject = {\n  network: {\n    chainId: '1',\n  },\n  dataSources: [{startBlock: 1}],\n};\n\nconst demoProjects = [\n  {\n    ...templateProject,\n  },\n  {\n    parent: {\n      block: 10,\n      reference: '0',\n    },\n    ...templateProject,\n  },\n  {\n    parent: {\n      block: 20,\n      reference: '1',\n    },\n    ...templateProject,\n  },\n  {\n    parent: {\n      block: 30,\n      reference: '2',\n    },\n    ...templateProject,\n  },\n  {\n    parent: {\n      block: 40,\n      reference: '3',\n    },\n    ...templateProject,\n  },\n  {\n    parent: {\n      block: 50,\n      reference: '4',\n    },\n    ...templateProject,\n  },\n] as ISubqueryProject[];\n\nconst demoProjectsUntil = [\n  {\n    ...templateProject,\n  },\n  {\n    parent: {\n      untilBlock: 10,\n      reference: '0',\n    },\n    ...templateProject,\n  },\n] as ISubqueryProject[];\n\nconst loopProjects = [\n  {\n    parent: {\n      block: 10,\n      reference: '1',\n    },\n    ...templateProject,\n  },\n  {\n    parent: {\n      block: 20,\n      reference: '0',\n    },\n    ...templateProject,\n  },\n] as ISubqueryProject[];\n\nconst futureProjects = [\n  {\n    ...templateProject,\n  },\n  {\n    parent: {\n      block: 30,\n      reference: '0',\n    },\n    ...templateProject,\n  },\n  {\n    parent: {\n      block: 20,\n      reference: '1',\n    },\n    ...templateProject,\n  },\n] as ISubqueryProject[];\n\nconst mockMetadata = () => {\n  let deployments = {};\n\n  return {\n    find: jest.fn(() => JSON.stringify(deployments)),\n    set: jest.fn((_, value) => (deployments = JSON.parse(value))),\n  } as any as CacheMetadataModel;\n};\n\ndescribe('Project Upgrades', () => {\n  jest.spyOn(ProjectUpgradeService as any, 'rewindableCheck').mockImplementation(() => true);\n\n  describe('Loading projects', () => {\n    it('can load a project with no parents', async () => {\n      const upgradeService = await ProjectUpgradeService.create(\n        demoProjects[0],\n        (id) => Promise.resolve(demoProjects[parseInt(id, 10)]),\n        1\n      );\n\n      expect([...upgradeService.projects.keys()]).toEqual([1]);\n    });\n\n    it('can load all parent projects', async () => {\n      const upgradeService = await ProjectUpgradeService.create(\n        demoProjects[5],\n        (id) => Promise.resolve(demoProjects[parseInt(id, 10)]),\n        1\n      );\n\n      expect([...upgradeService.projects.keys()]).toEqual([1, 10, 20, 30, 40, 50]);\n    });\n\n    it('can load all parent projects with untilBlock field', async () => {\n      const upgradeService = await ProjectUpgradeService.create(\n        demoProjectsUntil[1],\n        (id) => Promise.resolve(demoProjectsUntil[parseInt(id, 10)]),\n        1\n      );\n\n      expect([...upgradeService.projects.keys()]).toEqual([1, 10]);\n    });\n\n    it('can handle projects that somehow refer to each other', async () => {\n      await expect(\n        ProjectUpgradeService.create(loopProjects[1], (id) => Promise.resolve(loopProjects[parseInt(id, 10)]), 1)\n      ).rejects.toThrow();\n    });\n\n    it('can load all parent projects upto startHeight', async () => {\n      const upgradeService = await ProjectUpgradeService.create(\n        demoProjects[5],\n        (id) => Promise.resolve(demoProjects[parseInt(id, 10)]),\n        21\n      );\n\n      expect([...upgradeService.projects.keys()]).toEqual([20, 30, 40, 50]);\n    });\n\n    // It would be a user error to do this but its still possible. In reality the last project should have no parent\n    it('can use the correct project when the parent upgrades at the start height', async () => {\n      const projects = [\n        {\n          id: '0',\n          network: {\n            chainId: '1',\n          },\n          dataSources: [{startBlock: 10}],\n        },\n        {\n          id: '1',\n          parent: {\n            block: 10,\n            reference: '0',\n          },\n          network: {\n            chainId: '1',\n          },\n          dataSources: [{startBlock: 10}],\n        },\n      ] as ISubqueryProject[];\n\n      await expect(() =>\n        ProjectUpgradeService.create(projects[1], (id) => Promise.resolve(projects[parseInt(id, 10)]))\n      ).rejects.toThrow('Project already exists at height 10');\n    });\n\n    it('can load all parent projects upto and including startHeight', async () => {\n      const upgradeService = await ProjectUpgradeService.create(\n        demoProjects[5],\n        (id) => Promise.resolve(demoProjects[parseInt(id, 10)]),\n        20\n      );\n\n      expect([...upgradeService.projects.keys()]).toEqual([20, 30, 40, 50]);\n    });\n\n    it('will throw if parent projects are not at an earlier height', async () => {\n      await expect(\n        ProjectUpgradeService.create(futureProjects[2], (id) => Promise.resolve(futureProjects[parseInt(id, 10)]), 1)\n      ).rejects.toThrow();\n    });\n\n    it('will throw if there are no parents and earlier start height', async () => {\n      const project = {\n        dataSources: [{startBlock: 20}],\n      } as ISubqueryProject;\n      await expect(\n        ProjectUpgradeService.create(project, (id) => Promise.resolve(futureProjects[parseInt(id, 10)]), 1)\n      ).rejects.toThrow();\n    });\n\n    it('will validate all parents are for the same network', async () => {\n      const projects = [\n        {\n          ...templateProject,\n          network: {chainId: 2},\n        },\n        {\n          parent: {\n            block: 30,\n            reference: '0',\n          },\n          ...templateProject,\n        },\n      ] as ISubqueryProject[];\n\n      await expect(\n        ProjectUpgradeService.create(projects[1], (id) => Promise.resolve(projects[parseInt(id, 10)]), 1)\n      ).rejects.toThrow();\n    });\n\n    it('will validate all parents are for the same node runner', async () => {\n      const projects = [\n        {\n          ...templateProject,\n          runner: {\n            node: {\n              name: 'subql-node-wrong',\n            },\n          },\n        },\n        {\n          parent: {\n            block: 30,\n            reference: '0',\n          },\n          ...templateProject,\n        },\n      ] as ISubqueryProject[];\n\n      await expect(\n        ProjectUpgradeService.create(projects[1], (id) => Promise.resolve(projects[parseInt(id, 10)]), 1)\n      ).rejects.toThrow();\n    });\n  });\n\n  describe('Getting projects for heights', () => {\n    let upgradeService: ProjectUpgradeService<ISubqueryProject>;\n\n    beforeAll(async () => {\n      upgradeService = await ProjectUpgradeService.create(\n        demoProjects[5],\n        (id) => Promise.resolve(demoProjects[parseInt(id, 10)]),\n        1\n      );\n    });\n\n    it('can get the latest project', () => {\n      expect(upgradeService.getProject(100).parent?.block).toEqual(50);\n    });\n\n    it('gets the right project with an exact match', () => {\n      expect(upgradeService.getProject(30).parent?.block).toEqual(30);\n    });\n\n    it('throws an error before the first project start height', () => {\n      expect(() => upgradeService.getProject(-1)).toThrow();\n    });\n  });\n\n  describe('Upgradable subquery project', () => {\n    let upgradeService: ProjectUpgradeService<ISubqueryProject>;\n    let project: ISubqueryProject & IProjectUpgradeService<ISubqueryProject>;\n    let storeCache: IStoreModelProvider;\n\n    beforeEach(async () => {\n      const sequelize = {transaction: jest.fn(() => ({commit: jest.fn()}))} as any as Sequelize;\n      storeCache = new StoreCacheService(sequelize, {} as any, {} as any);\n      // eslint-disable-next-line @typescript-eslint/dot-notation\n      (storeCache as any).cachedModels['_metadata'] = mockMetadata();\n\n      upgradeService = await ProjectUpgradeService.create(\n        demoProjects[5],\n        (id) => Promise.resolve(demoProjects[parseInt(id, 10)]),\n        1\n      );\n      const storeService = new StoreService(sequelize, {} as any, storeCache, project);\n\n      await upgradeService.init(storeService, 1, {} as NodeConfig, sequelize, '');\n\n      project = upgradableSubqueryProject(upgradeService);\n    });\n\n    it('cant set values other than `currentHeightg`', () => {\n      expect(() => ((project as any).id = 'not possible')).toThrow();\n    });\n\n    it('can set the current height on the service', async () => {\n      await upgradeService.setCurrentHeight(20);\n\n      expect(upgradeService.currentHeight).toEqual(20);\n      expect(project.currentHeight).toEqual(20);\n    });\n\n    it('can set the current height on the project', async () => {\n      await project.setCurrentHeight(20);\n\n      expect(upgradeService.currentHeight).toEqual(20);\n      expect(project.currentHeight).toEqual(20);\n    });\n\n    it('the project is the right project for a set height', async () => {\n      await project.setCurrentHeight(25);\n\n      expect(project.parent?.block).toEqual(20);\n    });\n\n    it('can update the indexed deployments', async () => {\n      await upgradeService.updateIndexedDeployments('A', 1);\n\n      expect(await (upgradeService as any).getDeploymentsMetadata()).toEqual({1: 'A'});\n\n      // Only update if the deployment changes\n      await upgradeService.updateIndexedDeployments('B', 2);\n      await upgradeService.updateIndexedDeployments('B', 3);\n\n      expect(await (upgradeService as any).getDeploymentsMetadata()).toEqual({1: 'A', 2: 'B'});\n\n      // Handle fork\n      await upgradeService.updateIndexedDeployments('C', 10);\n      await upgradeService.updateIndexedDeployments('D', 7);\n\n      expect(await (upgradeService as any).getDeploymentsMetadata()).toEqual({1: 'A', 2: 'B', 7: 'D'});\n    });\n  });\n\n  describe('Upgrade metadata validation', () => {\n    let upgradeService: ProjectUpgradeService<ISubqueryProject>;\n\n    beforeEach(async () => {\n      upgradeService = await ProjectUpgradeService.create(\n        {...demoProjects[5], id: '5'},\n        (id) => Promise.resolve({...demoProjects[parseInt(id, 10)], id}),\n        1\n      );\n    });\n\n    it('succeds with an exact match', () => {\n      const indexedData = {1: '0', 10: '1', 20: '2', 30: '3', 40: '4', 50: '5'};\n      expect(upgradeService.validateIndexedData(indexedData)).toEqual(undefined);\n    });\n\n    it('succeds with a partial match', () => {\n      const indexedData = {1: '0', 10: '1', 20: '2'};\n      expect(upgradeService.validateIndexedData(indexedData)).toEqual(29);\n    });\n\n    it('succeeds with no indexed data', () => {\n      expect(upgradeService.validateIndexedData({})).toEqual(undefined);\n    });\n\n    it('succeeds with upgraded projects before the upgraded feature', () => {\n      // Negative values wouldn't be possible in use, but its here for test simplification\n      const indexedData = {[-20]: '-2', [-10]: '-1', 1: '0', 10: '1', 20: '2', 30: '3', 40: '4', 50: '5'};\n      expect(upgradeService.validateIndexedData(indexedData)).toEqual(undefined);\n    });\n\n    it('can rewind if an upgrade needs replacing', () => {\n      // indexed a -> b -> c -> d\n      // upgrade to a -> b -> c -> e\n\n      const indexedData = {1: '0', 10: '1', 20: '2', 30: '3', 40: '4', 50: 'Z'};\n      expect(upgradeService.validateIndexedData(indexedData)).toEqual(49);\n    });\n\n    it('throws if there are no matching projects', () => {\n      // indexed a -> b -> c -> d\n      // upgrade to x -> y -> z\n      const indexedData = {1: 'A', 11: 'B', 21: 'C'};\n      expect(() => upgradeService.validateIndexedData(indexedData)).toThrow();\n    });\n\n    it('validates if project doesnt have upgrades', async () => {\n      const upgradeService = await ProjectUpgradeService.create(\n        demoProjects[0],\n        (id) => Promise.resolve(demoProjects[parseInt(id, 10)]),\n        1\n      );\n\n      const indexedData = {1: '0', 10: '1', 20: '2', 30: '3', 40: '4', 50: '5'};\n      expect(upgradeService.validateIndexedData(indexedData)).toEqual(undefined);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/configure/ProjectUpgrade.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {isMainThread} from 'worker_threads';\nimport {ParentProject} from '@subql/types-core';\nimport {Sequelize, Transaction} from '@subql/x-sequelize';\nimport {findLast, last, parseInt} from 'lodash';\nimport {SchemaMigrationService} from '../db';\nimport {IMetadata, IStoreModelProvider, ISubqueryProject, StoreService} from '../indexer';\nimport {getLogger} from '../logger';\nimport {exitWithError, monitorWrite} from '../process';\nimport {getStartHeight, mainThreadOnly} from '../utils';\nimport {BlockHeightMap, EntryNotFoundError} from '../utils/blockHeightMap';\nimport {NodeConfig} from './NodeConfig';\n\ntype OnProjectUpgradeCallback<P> = (height: number, project: P) => void | Promise<void>;\n\nexport interface IProjectUpgradeService<P extends ISubqueryProject = ISubqueryProject> {\n  init: (\n    storeService: StoreService,\n    currentHeight: number,\n    config: NodeConfig,\n    sequelize: Sequelize,\n    schema: string,\n    onProjectUpgrade?: OnProjectUpgradeCallback<P>\n  ) => Promise<number | undefined>;\n  /**\n   * This should only be called from within a worker thread as they dont have access to the store\n   * */\n  initWorker(currentHeight: number, onProjectUpgrade?: OnProjectUpgradeCallback<P>): void;\n  updateIndexedDeployments: (id: string, blockHeight: number) => Promise<void>;\n  readonly currentHeight: number;\n  setCurrentHeight: (newHeight: number) => Promise<void>;\n  isRewindable: boolean;\n  currentProject: P;\n  projects: Map<number, P>;\n  getProject: (height: number) => P;\n  rewind: (\n    targetBlockHeight: number,\n    lastProcessedHeight: number,\n    transaction: Transaction,\n    storeService: StoreService\n  ) => Promise<void>;\n}\n\nconst serviceKeys: Array<keyof IProjectUpgradeService> = [\n  'getProject',\n  'currentHeight',\n  'currentProject',\n  'projects',\n  'init',\n  'updateIndexedDeployments',\n  'isRewindable',\n];\n\nfunction assertEqual<T>(valueA: T, valueB: T, name: string) {\n  assert(valueA === valueB, `Expected ${name} to be equal. expected=\"${valueA}\" parent has=\"${valueB}\"`);\n}\n\nfunction getParentBlock(parent: ParentProject): number {\n  return parent.untilBlock ?? parent.block;\n}\n\nconst logger = getLogger('ProjectUpgradeService');\n\n/*\n  We setup a proxy here so that we can have a class that matches ISubquery project but will change when we set the current height to the correct project\n*/\nexport function upgradableSubqueryProject<P extends ISubqueryProject>(\n  upgradeService: ProjectUpgradeService<P>\n): P & IProjectUpgradeService<P> {\n  return new Proxy<P & IProjectUpgradeService<P>>(upgradeService as any, {\n    set() {\n      // Everything is read-only unless updated via function\n      return false;\n    },\n    get(target, prop, receiver) {\n      const project = target.currentProject;\n      if (project[prop as keyof P]) {\n        const value = project[prop as keyof P];\n        if (value instanceof Function) {\n          return value.bind(project);\n        }\n\n        return value;\n      }\n      /*\n       * It would be nice to limit this to `serviceKeys` but there are issues with\n       * nestjs scheduler reflecting and being unable to get props.\n       * If we can fix that then we can move this above the project accessors\n       */\n      if (prop in target /*(serviceKeys as Array<string | symbol>).includes(prop)*/) {\n        const result = target[prop as keyof IProjectUpgradeService<P>];\n\n        if (result instanceof Function) {\n          return result.bind(target);\n        }\n\n        return result;\n      }\n    },\n  });\n}\n\nexport class ProjectUpgradeService<P extends ISubqueryProject = ISubqueryProject> implements IProjectUpgradeService<P> {\n  #currentHeight: number;\n  #currentProject: P;\n\n  #modelProvider?: IStoreModelProvider;\n  #sequelize?: Sequelize;\n  #initialized = false;\n\n  private config?: NodeConfig;\n  private onProjectUpgrade?: OnProjectUpgradeCallback<P>;\n  private migrationService?: SchemaMigrationService;\n\n  private constructor(\n    private _projects: BlockHeightMap<P>,\n    currentHeight: number,\n    private _isRewindable = true\n  ) {\n    logger.info(\n      `Projects: ${JSON.stringify(\n        [..._projects.getAll().entries()].reduce(\n          (acc, curr) => {\n            acc[curr[0]] = curr[1].id;\n            return acc;\n          },\n          {} as Record<number, string>\n        ),\n        undefined,\n        2\n      )}`\n    );\n    // Bypass setters here because we want to avoid side-effect\n    this.#currentHeight = currentHeight;\n    this.#currentProject = this.getProject(this.#currentHeight);\n  }\n\n  async init(\n    storeService: StoreService,\n    currentHeight: number,\n    config: NodeConfig,\n    sequelize: Sequelize,\n    schema: string,\n    onProjectUpgrade?: OnProjectUpgradeCallback<P>\n  ): Promise<number | undefined> {\n    if (this.#initialized) {\n      logger.warn(`ProjectUpgradeService has already been initialized, this is a no-op`);\n      return;\n    }\n    this.#initialized = true;\n    this.#modelProvider = storeService.modelProvider;\n    this.config = config;\n    this.#sequelize = sequelize;\n\n    this.migrationService = new SchemaMigrationService(sequelize, storeService, schema, config);\n\n    const indexedDeployments = await this.getDeploymentsMetadata();\n\n    const lastProjectChange = this.validateIndexedData(indexedDeployments);\n\n    this.#currentHeight = lastProjectChange || currentHeight;\n\n    try {\n      this.#currentProject = this.getProject(this.#currentHeight);\n    } catch (e: any) {\n      if (e instanceof EntryNotFoundError) {\n        throw new Error(\n          `Unable to find project for height ${\n            this.#currentHeight\n          }. If the project start height is increased it will not jump to that block. Please either reindex or specify blocks to bypass.`,\n          {cause: e}\n        );\n      }\n      throw e;\n    }\n\n    // executed last to ensure that the correct project is set first\n    this.onProjectUpgrade = onProjectUpgrade;\n    return lastProjectChange;\n  }\n\n  initWorker(currentHeight: number, onProjectUpgrade?: OnProjectUpgradeCallback<P>): void {\n    assert(!this.onProjectUpgrade, `onProjectUpgrade callback has already been set`);\n    this.#currentHeight = currentHeight;\n    this.#currentProject = this.getProject(this.#currentHeight);\n    this.onProjectUpgrade = onProjectUpgrade;\n  }\n\n  get isRewindable(): boolean {\n    return this._isRewindable;\n  }\n\n  get projects(): Map<number, P> {\n    return this._projects.getAll();\n  }\n\n  get currentProject(): P {\n    return this.#currentProject;\n  }\n\n  get currentHeight(): number {\n    return this.#currentHeight;\n  }\n\n  private get metadata(): IMetadata {\n    assert(\n      this.#modelProvider?.metadata,\n      'Project Upgrades service has not been initialized, unable to update metadata'\n    );\n    return this.#modelProvider.metadata;\n  }\n\n  async rewind(\n    targetBlockHeight: number,\n    lastProcessedHeight: number,\n    transaction: Transaction,\n    storeService: StoreService\n  ): Promise<void> {\n    const projectsWithinRange = new BlockHeightMap(this.projects).getWithinRange(\n      targetBlockHeight,\n      lastProcessedHeight\n    );\n    const sortedProjectIds = Array.from(projectsWithinRange.keys());\n    const iterator = sortedProjectIds[Symbol.iterator]();\n\n    let currentId = iterator.next();\n    let nextId = iterator.next();\n\n    while (!currentId.done && !nextId.done) {\n      const currentProject = projectsWithinRange.get(currentId.value);\n      const nextProject = projectsWithinRange.get(nextId.value);\n\n      if (currentProject && nextProject) {\n        if (this.config?.dbSchema) {\n          await storeService.init(this.config.dbSchema, transaction);\n        }\n        await this.migrate(currentProject, nextProject, transaction);\n      }\n\n      currentId = nextId;\n      nextId = iterator.next();\n    }\n    // this remove any deployments in metadata beyond target height\n    await this.removeIndexedDeployments(targetBlockHeight, transaction);\n  }\n\n  private async migrate(\n    project: ISubqueryProject,\n    newProject: ISubqueryProject,\n    transaction: Transaction\n  ): Promise<void> {\n    assert(this.config, 'NodeConfig is undefined');\n    assert(this.migrationService, 'MigrationService is undefined');\n    if (this.config.allowSchemaMigration) {\n      await this.migrationService.run(project.schema, newProject.schema, transaction);\n      await this.metadata.setIncrement('schemaMigrationCount', undefined, transaction);\n    }\n  }\n\n  /**\n   * Sets the current project and handles project changes\n   * Project change effects only happen after init has been called\n   * */\n  async setCurrentHeight(height: number): Promise<void> {\n    this.#currentHeight = height;\n    const newProjectDetails = this._projects.getDetails(height);\n    assert(newProjectDetails, `Unable to find project for height ${height}`);\n    const {startHeight, value: newProject} = newProjectDetails;\n\n    const hasChanged = this.#currentProject !== newProject;\n    // Need to set this so that operations under hasChanged use the new project\n    const project = this.#currentProject;\n    this.#currentProject = newProject;\n\n    if (hasChanged && this.#initialized) {\n      if (isMainThread) {\n        try {\n          await this.updateIndexedDeployments(newProject.id, startHeight);\n        } catch (e: any) {\n          logger.error(e, 'Failed to update deployment');\n          throw new Error(`Failed to update deployment`, {cause: e});\n        }\n      }\n\n      try {\n        await this.onProjectUpgrade?.(startHeight, newProject);\n        if (isMainThread) {\n          if (!this.#sequelize) {\n            throw new Error('Sequelize is not available to run migration');\n          }\n          const tx = await this.#sequelize.transaction();\n          await this.migrate(project, newProject, tx);\n          await tx.commit();\n        }\n      } catch (e: any) {\n        exitWithError(new Error(`Failed to complete upgrading project`, {cause: e}), logger, 1);\n      }\n      const msg = `Project upgraded to ${newProject.id} at height ${height}`;\n      monitorWrite(msg);\n      logger.info(msg);\n    }\n  }\n\n  static async create<P extends ISubqueryProject>(\n    startProject: P, // The project passed in via application start\n    loadProject: (ipfsCid: string) => Promise<P>,\n    startHeight?: number // How far back we need to load parent versions\n  ): Promise<ProjectUpgradeService<P>> {\n    const projects: Map<number, P> = new Map();\n\n    let currentProject = startProject;\n    let currentHeight: number | undefined;\n\n    let nextProject = startProject;\n\n    const addProject = (height: number, project: P) => {\n      if (projects.has(height)) {\n        throw new Error(`Project already exists at height ${height}`);\n      }\n      this.validateProject(startProject, project);\n      projects.set(height, project);\n    };\n\n    // eslint-disable-next-line no-constant-condition\n    while (true) {\n      const projectStartHeight = getStartHeight(currentProject.dataSources);\n\n      // Set the current height to the start of the startProject if not provided\n      if (currentHeight === undefined) {\n        currentHeight = (startProject.parent && getParentBlock(startProject.parent)) ?? projectStartHeight;\n      }\n\n      // At the end of the chain\n      if (!currentProject.parent) {\n        // At the limit of the start height for DS\n        if (startHeight !== undefined && startHeight < projectStartHeight) {\n          break;\n        }\n        addProject(projectStartHeight, currentProject);\n        break;\n      }\n      if (currentProject.parent && getParentBlock(currentProject.parent)) {\n        addProject(getParentBlock(currentProject.parent), currentProject);\n      }\n      // At the limit of the start height for Parent\n      if (startHeight !== undefined && startHeight >= getParentBlock(currentProject.parent)) {\n        break;\n      }\n\n      // Load the next project and repeat\n      nextProject = await loadProject(currentProject.parent.reference).catch((e) => {\n        throw new Error(`Failed to load parent project with cid: ${currentProject.parent?.reference}. ${e}`);\n      });\n      if (nextProject.parent && getParentBlock(nextProject.parent) > getParentBlock(currentProject.parent)) {\n        throw new Error(\n          `Parent project ${currentProject.parent.reference} has a block height that is greater than the current project`\n        );\n      }\n      currentProject = nextProject;\n    }\n\n    if (!projects.size) {\n      throw new Error('No valid projects found, this could be due to the startHeight.');\n    }\n\n    const isRewindable = this.rewindableCheck(projects);\n\n    const firstProjectHeight = Math.min(...projects.keys());\n    return new ProjectUpgradeService(new BlockHeightMap(projects), firstProjectHeight, isRewindable);\n  }\n\n  getProject(height: number): P {\n    return this._projects.get(height);\n  }\n\n  private static rewindableCheck<P extends ISubqueryProject>(projects: Map<number, P>): boolean {\n    const sortedProjects = new Map([...projects.entries()].sort((a, b) => a[0] - b[0]));\n    const projectIterator = sortedProjects.values();\n    let previousProject = projectIterator.next().value;\n    if (previousProject) {\n      for (const project of projectIterator) {\n        if (!SchemaMigrationService.validateSchemaChanges(previousProject.schema, project.schema)) {\n          return false;\n        }\n        previousProject = project;\n      }\n    }\n    return true;\n  }\n\n  private static validateProject<P extends ISubqueryProject>(startProject: P, parentProject: P): void {\n    assertEqual(startProject.network.chainId, parentProject.network.chainId, 'chainId');\n    assertEqual(startProject.runner?.node.name, parentProject.runner?.node.name, 'subquery node');\n\n    // TODO validate schema\n  }\n\n  // Returns a height to rewind to if rewind is needed. Otherwise throws an error\n  validateIndexedData(deploymentsMetadata: Record<number, string>): number | undefined {\n    // Using project upgrades feature\n    if (this.projects.size > 1) {\n      const indexedEntries = Object.entries(deploymentsMetadata);\n      const projectEntries: [number, string][] = [...this.projects.entries()].map(([height, project]) => [\n        height,\n        project.id,\n      ]);\n\n      // Nothing has been indexed\n      if (!indexedEntries.length) {\n        return undefined;\n      }\n\n      // TODO do we need to compare heights?\n      const lastCommonProject = findLast(\n        projectEntries,\n        ([, projectId]) => !!indexedEntries.find(([, indexedId]) => projectId === indexedId)\n      );\n\n      if (!lastCommonProject) {\n        throw new Error(`The indexed projects don't match the provided project or any of it's parents.`);\n      }\n\n      return this._projects.getDetails(lastCommonProject[0])?.endHeight;\n    }\n\n    return undefined;\n  }\n\n  private async getDeploymentsMetadata(): Promise<Record<number, string>> {\n    const deploymentsRaw = await this.metadata.find('deployments');\n\n    if (!deploymentsRaw) return {};\n\n    return JSON.parse(deploymentsRaw);\n  }\n\n  @mainThreadOnly()\n  async updateIndexedDeployments(id: string, blockHeight: number): Promise<void> {\n    const deployments = await this.getDeploymentsMetadata();\n\n    // If the last deployment is the same as the one we're updating to theres no need to do anything\n    if (last(Object.values(deployments)) === id) {\n      return;\n    }\n\n    // If we encounter a fork, remove all future block heights\n    Object.keys(deployments).forEach((key) => {\n      const keyNum = parseInt(key, 10);\n      if (keyNum >= blockHeight) {\n        delete deployments[keyNum];\n      }\n    });\n\n    deployments[blockHeight] = id;\n\n    await this.metadata.set('deployments', JSON.stringify(deployments));\n  }\n\n  // Remove metadata deployments beyond this blockHeight\n  async removeIndexedDeployments(blockHeight: number, tx?: Transaction): Promise<void> {\n    const deployments = await this.getDeploymentsMetadata();\n\n    // remove all future block heights\n    Object.keys(deployments).forEach((key) => {\n      const keyNum = parseInt(key, 10);\n      // NOTE, this is different with `updateIndexedDeployments`, deployment > will be deleted\n      if (keyNum > blockHeight) {\n        delete deployments[keyNum];\n      }\n    });\n\n    await this.metadata.set('deployments', JSON.stringify(deployments), tx);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/configure/SubqueryProject.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {CommonProjectManifestV1_0_0Impl, normalizeNetworkEndpoints, validateSemver} from '@subql/common';\nimport {\n  BaseCustomDataSource,\n  BaseDataSource,\n  BaseTemplateDataSource,\n  IProjectNetworkConfig,\n  ParentProject,\n  Reader,\n  RunnerSpecs,\n} from '@subql/types-core';\nimport {buildSchemaFromString} from '@subql/utils';\nimport {GraphQLSchema} from 'graphql';\nimport {ISubqueryProject} from '../indexer';\nimport {\n  insertBlockFiltersCronSchedules,\n  IsCustomDs,\n  IsRuntimeDs,\n  loadProjectTemplates,\n  updateDataSourcesV1_0_0,\n} from '../utils';\n\nclass NotSupportedError extends Error {\n  constructor(expected: string, received: string) {\n    super(`Manifest specVersion ${expected} is not, supported. Received ${received}`);\n  }\n}\n\nexport class BaseSubqueryProject<\n  DS extends BaseDataSource = BaseDataSource,\n  TemplateDS extends BaseTemplateDataSource = BaseTemplateDataSource,\n  NetworkConfig extends IProjectNetworkConfig = IProjectNetworkConfig,\n> implements ISubqueryProject\n{\n  #dataSources: DS[];\n\n  constructor(\n    readonly id: string,\n    readonly root: string,\n    readonly network: NetworkConfig,\n    readonly schema: GraphQLSchema,\n    dataSources: DS[],\n    readonly templates: TemplateDS[],\n    private blockHandlerKind: string,\n    private isRuntimeDs: IsRuntimeDs<any>,\n    readonly runner?: RunnerSpecs,\n    readonly parent?: ParentProject\n  ) {\n    this.#dataSources = dataSources;\n  }\n\n  static async create<Project extends BaseSubqueryProject>(config: {\n    parseManifest: (raw: unknown) => CommonProjectManifestV1_0_0Impl;\n    path: string;\n    rawManifest: unknown;\n    reader: Reader;\n    root: string; // If project local then directory otherwise temp directory\n    nodeSemver: string;\n    blockHandlerKind: string;\n    isCustomDs: IsCustomDs<Project['dataSources'][0], Project['dataSources'][0] & BaseCustomDataSource>;\n    isRuntimeDs: IsRuntimeDs<any>; // This could be better\n    networkOverrides?: Partial<Project['network']>;\n  }): Promise<Project> {\n    // rawManifest and reader can be reused here.\n    // It has been pre-fetched and used for rebase manifest runner options with args\n    // in order to generate correct configs.\n\n    // But we still need reader here, because path can be remote or local\n    // and the `loadProjectManifest(projectPath)` only support local mode\n    assert(config.rawManifest !== undefined, new Error(`Get manifest from project path ${config.path} failed`));\n\n    const manifest = config.parseManifest(config.rawManifest);\n\n    // Note this needs to be updated if a new version is created, or use semver\n    if (manifest.specVersion !== '1.0.0') {\n      throw new NotSupportedError('<1.0.0', manifest.specVersion);\n    }\n\n    // Convert endpoints to the latest format\n\n    manifest.network.endpoint = normalizeNetworkEndpoints(manifest.network.endpoint);\n\n    const network = processChainId({\n      ...manifest.network,\n      ...config.networkOverrides,\n    });\n\n    assert(network.endpoint, new Error(`Network endpoint must be provided for network. chainId=\"${network.chainId}\"`));\n\n    const schemaString: string = await config.reader.getFile(manifest.schema.file);\n    assert(schemaString, 'Schema file is empty');\n    const schema = buildSchemaFromString(schemaString);\n\n    const [dataSources, templates] = await Promise.all([\n      updateDataSourcesV1_0_0(manifest.dataSources, config.reader, config.root, config.isCustomDs),\n      loadProjectTemplates(manifest.templates, config.root, config.reader, config.isCustomDs),\n    ]);\n\n    const runner = manifest.runner;\n    assert(\n      validateSemver(config.nodeSemver, runner.node.version),\n      new Error(`Runner requires node version ${runner.node.version}, current node ${config.nodeSemver}`)\n    );\n\n    return new BaseSubqueryProject(\n      config.reader.root ? config.reader.root : config.path, //TODO, need to method to get project_id\n      config.root,\n      network,\n      schema,\n      dataSources,\n      templates,\n      config.blockHandlerKind,\n      config.isRuntimeDs,\n      runner,\n      manifest.parent\n    ) as Project;\n  }\n\n  get dataSources(): DS[] {\n    return this.#dataSources;\n  }\n\n  async applyCronTimestamps(getTimestamp: (height: number) => Promise<Date>): Promise<void> {\n    this.#dataSources = await insertBlockFiltersCronSchedules(\n      this.dataSources,\n      getTimestamp,\n      this.isRuntimeDs,\n      this.blockHandlerKind\n    );\n  }\n}\n\nfunction processChainId<NetworkConfig extends IProjectNetworkConfig>(network: any): NetworkConfig {\n  if (network.chainId && network.genesisHash) {\n    throw new Error('Please only provide one of chainId and genesisHash');\n  } else if (network.genesisHash && !network.chainId) {\n    network.chainId = network.genesisHash;\n  }\n  delete network.genesisHash;\n  return network;\n}\n"
  },
  {
    "path": "packages/node-core/src/configure/configure.module.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {validDbSchemaName, yargsToIConfig} from './configure.module';\n\ndescribe('Configure', () => {\n  describe('validateDbSchemaName', () => {\n    it('works', () => {\n      expect(validDbSchemaName('subquery_1')).toBeTruthy();\n    });\n    it('works not alphanumeric', () => {\n      expect(validDbSchemaName('subquery_-/1')).toBeTruthy();\n    });\n    it('long', () => {\n      expect(validDbSchemaName('a'.repeat(64))).toBeFalsy();\n    });\n    it('invalid prefix', () => {\n      expect(validDbSchemaName('pg_whatever')).toBeFalsy();\n    });\n    it('invalid tokens', () => {\n      expect(validDbSchemaName('he$$*')).toBeFalsy();\n    });\n    it('empty', () => {\n      expect(validDbSchemaName('')).toBeFalsy();\n    });\n  });\n\n  describe('network endpoint options', () => {\n    it('should work without network-endpoint-config options', () => {\n      const {networkEndpoint} = yargsToIConfig({\n        'network-endpoint': 'https://example.com',\n      });\n\n      expect(networkEndpoint).toEqual({['https://example.com']: {}});\n    });\n\n    it('should work without network-endpoint-config options (array)', () => {\n      const {networkEndpoint} = yargsToIConfig({\n        'network-endpoint': ['https://example.com', 'https://foo.bar'],\n      });\n\n      expect(networkEndpoint).toEqual({\n        ['https://example.com']: {},\n        ['https://foo.bar']: {},\n      });\n    });\n\n    it('should work with network-endpoint-config options', () => {\n      const option = {headers: {'api-key': '<your-api-key>'}};\n      const {networkEndpoint} = yargsToIConfig({\n        'network-endpoint': 'https://example.com',\n        'network-endpoint-config': JSON.stringify(option),\n      });\n\n      expect(networkEndpoint).toEqual({['https://example.com']: option});\n    });\n\n    it('should work with network-endpoint-config options (array)', () => {\n      const option = {headers: {'api-key': '<your-api-key>'}};\n      const {networkEndpoint} = yargsToIConfig({\n        'network-endpoint': ['https://example.com', 'https://foo.bar'],\n        'network-endpoint-config': [JSON.stringify(option), JSON.stringify(option)],\n      });\n\n      expect(networkEndpoint).toEqual({\n        ['https://example.com']: option,\n        ['https://foo.bar']: option,\n      });\n    });\n\n    it('should work with network-endpoint-config options (mixed-arrays)', () => {\n      const option = {headers: {'api-key': '<your-api-key>'}};\n      const {networkEndpoint} = yargsToIConfig({\n        'network-endpoint': ['https://example.com', 'https://foo.bar'],\n        'network-endpoint-config': [JSON.stringify(option)],\n      });\n\n      expect(networkEndpoint).toEqual({\n        ['https://example.com']: option,\n        ['https://foo.bar']: {},\n      });\n    });\n\n    it('should work without primary-network-endpoint-config options', () => {\n      const {primaryNetworkEndpoint} = yargsToIConfig({\n        'primary-network-endpoint': 'https://example.com',\n      });\n\n      expect(primaryNetworkEndpoint).toEqual(['https://example.com', {}]);\n    });\n\n    it('should work with primary-network-endpoint-config options', () => {\n      const option = {headers: {'api-key': '<your-api-key>'}};\n      const {primaryNetworkEndpoint} = yargsToIConfig({\n        'primary-network-endpoint': 'https://example.com',\n        primaryNetworkEndpoint: 'https://example.com',\n        'primary-network-endpoint-config': JSON.stringify(option),\n        primaryNetworkEndpointConfig: JSON.stringify(option),\n      });\n\n      expect(primaryNetworkEndpoint).toEqual(['https://example.com', option]);\n    });\n\n    it('doesnt add config flags to IConfig', () => {\n      const option = {headers: {'api-key': '<your-api-key>'}};\n      const config = yargsToIConfig({\n        'network-endpoint': ['https://example.com', 'https://foo.bar'],\n        'network-endpoint-config': [JSON.stringify(option), JSON.stringify(option)],\n        'primary-network-endpoint': 'https://example.com',\n        'primary-network-endpoint-config': JSON.stringify(option),\n      });\n\n      expect((config as any).networkEndpointConfig).toBe(undefined);\n      expect((config as any).primaryNetworkEndpointConfig).toBe(undefined);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/configure/configure.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {handleCreateSubqueryProjectError, IPFSReader, LocalReader, makeTempDir, ReaderFactory} from '@subql/common';\nimport {IEndpointConfig, Reader} from '@subql/types-core';\nimport {camelCase, isNil, omitBy} from 'lodash';\nimport {ISubqueryProject} from '../indexer';\nimport {getLogger, setDebugFilter} from '../logger';\nimport {exitWithError} from '../process';\nimport {defaultSubqueryName, rebaseArgsWithManifest} from '../utils';\nimport {IConfig, NodeConfig} from './NodeConfig';\nimport {IProjectUpgradeService, ProjectUpgradeService, upgradableSubqueryProject} from './ProjectUpgrade.service';\n\nconst logger = getLogger('configure');\n\n// Check if a subquery name is a valid schema name\nexport function validDbSchemaName(name: string): boolean {\n  if (name.length === 0) {\n    return false;\n  } else {\n    name = name.toLowerCase();\n    const regexp = new RegExp('^[a-zA-Z_][a-zA-Z0-9_\\\\-\\\\/]{0,62}$');\n    const flag0 = !name.startsWith('pg_'); // Reserved identifier\n    const flag1 = regexp.test(name); // <= Valid characters, less than 63 bytes\n    if (!flag0) {\n      logger.error(`Invalid schema name '${name}', schema name must not be prefixed with 'pg_'`);\n    }\n    if (!flag1) {\n      logger.error(\n        `Invalid schema name '${name}', schema name must start with a letter or underscore,\n         be less than 63 bytes and must contain only valid alphanumeric characters (can include characters '_-/')`\n      );\n    }\n    return flag0 && flag1;\n  }\n}\n\n// Cant seem to use the inferred types, strings arent converted to unions\ntype Args = Record<string, any>; //ReturnType<typeof yargsBuilder>['argv']\n\nfunction processEndpointConfig(raw?: string | string[]): IEndpointConfig[] {\n  if (!raw) return [];\n  if (typeof raw === 'string') return [JSON.parse(raw)];\n  if (Array.isArray(raw)) return raw.map((raw) => JSON.parse(raw));\n  throw new Error(`Unknown raw value, received: ${raw}`);\n}\n\nexport function yargsToIConfig(yargs: Args, nameMapping: Record<string, string> = {}): Partial<IConfig> {\n  return Object.entries(yargs).reduce((acc, [key, value]) => {\n    if (['_', '$0'].includes(key)) return acc;\n\n    const outputKey = nameMapping[key] ?? camelCase(key);\n\n    if (outputKey === 'networkRegistry') {\n      try {\n        value = JSON.parse(value as string);\n      } catch (e) {\n        throw new Error('Argument `network-registry` is not valid JSON');\n      }\n    }\n\n    // Merge network endpoints and possible endpoint configs\n    if (outputKey === 'networkEndpoint') {\n      const endpointConfig = processEndpointConfig(yargs['network-endpoint-config']);\n      if (typeof value === 'string') {\n        value = [value];\n      }\n      if (Array.isArray(value)) {\n        value = value.reduce(\n          (acc, endpoint, index) => {\n            acc[endpoint] = endpointConfig[index] ?? {};\n            return acc;\n          },\n          {} as Record<string, IEndpointConfig>\n        );\n      }\n    }\n    if (outputKey === 'primaryNetworkEndpoint') {\n      const endpointConfig = processEndpointConfig(yargs['primary-network-endpoint-config']);\n      value = [value, endpointConfig[0] ?? {}];\n    }\n    if (['networkEndpointConfig', 'primaryNetworkEndpointConfig'].includes(outputKey)) return acc;\n\n    if (outputKey === 'disableHistorical' && value) {\n      acc.historical = false;\n    }\n    if (outputKey === 'historical' && value === 'false') {\n      value = false;\n    }\n\n    acc[outputKey] = value;\n    return acc;\n  }, {} as any);\n}\n\nfunction warnDeprecations(argv: Args) {\n  if (argv['subquery-name']) {\n    logger.warn('Note that argument --subquery-name has been deprecated in favour of --db-schema');\n  }\n}\n\n// This is used to ensure the same temp dir is used across project upgrades and workers\nlet rootDir: string;\nasync function getCachedRoot(reader: Reader, configRoot?: string): Promise<string> {\n  if (reader instanceof LocalReader) return reader.root;\n\n  // Case for in workers when the parent has decided the directory\n  if (configRoot) return configRoot;\n\n  // Allows reusing the same directory on restarts when project is run from ipfs, this can stop duplicating files in the tmp dir\n  if (reader instanceof IPFSReader) {\n    rootDir = path.resolve(os.tmpdir(), reader.cid);\n    if (!fs.existsSync(rootDir)) {\n      await fs.promises.mkdir(rootDir);\n    }\n    return rootDir;\n  }\n\n  if (!rootDir) {\n    rootDir = await makeTempDir();\n  }\n\n  return rootDir;\n}\n\nexport async function registerApp<P extends ISubqueryProject>(\n  argv: Args,\n  createProject: (\n    path: string,\n    rawManifest: unknown,\n    reader: Reader,\n    root: string,\n    networkOverrides: Record<string, unknown>\n  ) => Promise<P>,\n  showHelp: () => void,\n  pjson: any,\n  nameMapping?: Record<string, string> // Currently only used by cosmos\n): Promise<{nodeConfig: NodeConfig; project: P & IProjectUpgradeService<P>}> {\n  let config: NodeConfig;\n  let rawManifest: unknown;\n  let reader: Reader;\n\n  const isTest = argv._[0] === 'test';\n\n  // Override order : Sub-command/Args/Flags > Manifest Runner options > Default configs\n  // Therefore, we should rebase the manifest runner options with args first but not the config in the end\n  if (argv.config) {\n    // get manifest options\n    config = NodeConfig.fromFile(argv.config, yargsToIConfig(argv, nameMapping), isTest);\n    reader = await ReaderFactory.create(config.subquery, {\n      ipfs: config.ipfs,\n    });\n    rawManifest = await reader.getProjectSchema();\n    rebaseArgsWithManifest(argv, rawManifest);\n    // use rebased argv generate config to override current config\n    config = NodeConfig.rebaseWithArgs(config, yargsToIConfig(argv, nameMapping));\n  } else {\n    if (!argv.subquery) {\n      showHelp();\n      exitWithError('Subquery path is missing in both cli options and config file', logger, 1);\n    }\n\n    warnDeprecations(argv);\n    reader = await ReaderFactory.create(argv.subquery, {\n      ipfs: argv.ipfs,\n    });\n    rawManifest = await reader.getProjectSchema();\n    rebaseArgsWithManifest(argv, rawManifest);\n    // Create new nodeConfig with rebased argv\n    config = new NodeConfig(defaultSubqueryName(yargsToIConfig(argv, nameMapping)), isTest);\n  }\n\n  if (!validDbSchemaName(config.dbSchema)) {\n    exitWithError(`invalid schema name ${config.dbSchema}`, undefined, 1);\n  }\n\n  if (config.debug) {\n    setDebugFilter(config.debug);\n  }\n\n  const makeNetworkOverrides = (project?: P) => {\n    // Apply the network endpoint and dictionary from the source project to the parent projects if they are not defined in the config\n    return omitBy(\n      {\n        endpoint: config.networkEndpoints ?? project?.network?.endpoint,\n        dictionary: config.networkDictionaries ?? project?.network?.dictionary,\n      },\n      isNil\n    );\n  };\n\n  const project = await createProject(\n    config.subquery,\n    rawManifest,\n    reader,\n    await getCachedRoot(reader, config.root),\n    makeNetworkOverrides()\n  ).catch((err: any) => {\n    handleCreateSubqueryProjectError(err, pjson, rawManifest, logger);\n    exitWithError(err, logger, 1);\n  });\n\n  const createParentProject = async (cid: string): Promise<P> => {\n    cid = `ipfs://${cid}`;\n    const reader = await ReaderFactory.create(cid, {\n      ipfs: config.ipfs,\n    });\n    return createProject(\n      cid,\n      await reader.getProjectSchema(),\n      reader,\n      await getCachedRoot(reader, config.root),\n      makeNetworkOverrides(project)\n    );\n  };\n\n  const projectUpgradeService = await ProjectUpgradeService.create(project, createParentProject);\n\n  const upgradeableProject = upgradableSubqueryProject(projectUpgradeService);\n\n  return {project: upgradeableProject, nodeConfig: config};\n}\n"
  },
  {
    "path": "packages/node-core/src/configure/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './configure.module';\nexport * from './NodeConfig';\nexport * from './ProjectUpgrade.service';\nexport * from './SubqueryProject';\n"
  },
  {
    "path": "packages/node-core/src/db/db.module.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {INestApplication} from '@nestjs/common';\nimport {Test} from '@nestjs/testing';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {NodeConfig} from '../configure/NodeConfig';\nimport {DbModule} from './db.module';\n\nconst nodeConfig = new NodeConfig({subquery: 'packages/node-core/test/v1.0.0', subqueryName: 'test'});\n\ndescribe('DbModule', () => {\n  let app: INestApplication;\n\n  afterEach(async () => {\n    return app?.close();\n  });\n\n  it('can connect to database', async () => {\n    const module = await Test.createTestingModule({\n      imports: [DbModule.forRootWithConfig(nodeConfig)],\n    }).compile();\n\n    app = module.createNestApplication();\n    await app.init();\n    const sequelize = app.get(Sequelize);\n    await expect(sequelize.authenticate()).resolves.not.toThrow();\n  }, 30000);\n\n  it('can load subquery model', async () => {\n    const module = await Test.createTestingModule({\n      imports: [DbModule.forRootWithConfig(nodeConfig)],\n    }).compile();\n\n    app = module.createNestApplication();\n    await app.init();\n    // const subqueryRepo: SubqueryRepo = app.get('Subquery');\n    // await expect(subqueryRepo.describe()).resolves.toBeTruthy();\n  }, 30000);\n});\n"
  },
  {
    "path": "packages/node-core/src/db/db.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {DynamicModule, Global} from '@nestjs/common';\nimport {Sequelize, Options as SequelizeOption} from '@subql/x-sequelize';\nimport {NodeConfig} from '../configure/NodeConfig';\nimport {getLogger} from '../logger';\nimport {exitWithError} from '../process';\nimport {delay} from '../utils/promise';\n\nexport interface DbOption {\n  host: string;\n  port: number;\n  username: string;\n  password: string;\n  database: string;\n  timezone: string;\n}\n\nconst logger = getLogger('db');\n\nconst DEFAULT_DB_OPTION: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\nconst CONNECTION_SSL_ERROR_REGEX = 'not support SSL';\n\nasync function establishConnectionSequelize(option: SequelizeOption, numRetries: number): Promise<Sequelize> {\n  const uri = `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`;\n\n  const sequelize = new Sequelize(uri, option);\n  try {\n    await sequelize.authenticate();\n  } catch (error: any) {\n    if (JSON.stringify(error.message).includes(CONNECTION_SSL_ERROR_REGEX)) {\n      logger.warn('Database does not support SSL connection, will try to connect without it');\n      option.dialectOptions = undefined;\n    }\n    if (numRetries > 0) {\n      await delay(3);\n      return establishConnectionSequelize(option, numRetries - 1);\n    } else {\n      exitWithError(new Error(`Unable to connect to the database`, {cause: error}), logger);\n    }\n  }\n  return sequelize;\n}\n\nconst sequelizeFactory = (option: SequelizeOption) => async () => {\n  const numRetries = 5;\n  const sequelize = await establishConnectionSequelize(option, numRetries);\n  await sequelize.sync();\n  return sequelize;\n};\n\nconst buildSequelizeOptions = (nodeConfig: NodeConfig, option: DbOption): SequelizeOption => {\n  const logger = getLogger('SQL');\n\n  return {\n    ...option,\n    dialect: 'postgres',\n    ssl: nodeConfig.isPostgresSecureConnection,\n    dialectOptions: {\n      ssl: {\n        rejectUnauthorized: false,\n        ca: nodeConfig.postgresCACert,\n        key: nodeConfig.postgresClientKey,\n        cert: nodeConfig.postgresClientCert,\n      },\n    },\n    pool: {\n      max: nodeConfig.pgPoolMax,\n      min: nodeConfig.pgPoolMin,\n      acquire: nodeConfig.pgPoolAqcuire,\n      idle: nodeConfig.pgPoolIdle,\n      evict: nodeConfig.pgPoolEvict,\n    },\n    logging: (sql: string, timing?: number) => {\n      logger.debug(sql);\n    },\n  };\n};\n\nexport async function establishNewSequelize(nodeConfig: NodeConfig): Promise<Sequelize> {\n  return sequelizeFactory(buildSequelizeOptions(nodeConfig, DEFAULT_DB_OPTION))();\n}\n\n@Global()\nexport class DbModule {\n  static forRootWithConfig(nodeConfig: NodeConfig, option: DbOption = DEFAULT_DB_OPTION): DynamicModule {\n    const factory = sequelizeFactory(buildSequelizeOptions(nodeConfig, option))();\n\n    return {\n      module: DbModule,\n      providers: [\n        {\n          provide: Sequelize,\n          useFactory: () => factory,\n        },\n      ],\n      exports: [Sequelize],\n    };\n  }\n\n  static forRoot(option: DbOption = DEFAULT_DB_OPTION): DynamicModule {\n    return {\n      module: DbModule,\n      providers: [\n        {\n          provide: Sequelize,\n          useFactory: (nodeConfig: NodeConfig) => sequelizeFactory(buildSequelizeOptions(nodeConfig, option))(),\n          inject: [NodeConfig],\n        },\n      ],\n      exports: [Sequelize],\n    };\n  }\n\n  static forFeature(models: string[]): DynamicModule {\n    return {\n      module: DbModule,\n      providers: models.map((model) => ({\n        provide: model,\n        inject: [Sequelize],\n        useFactory: (sequelize: Sequelize) => sequelize.model(model),\n      })),\n      exports: models,\n    };\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/db/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './db.module';\nexport * from './migration-service';\nexport * from './sync-helper';\n"
  },
  {
    "path": "packages/node-core/src/db/migration-service/SchemaMigration.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport {buildSchemaFromFile, GraphQLEnumsType} from '@subql/utils';\nimport {ProjectUpgradeService} from '../../configure';\nimport {compareEnums} from './migration-helpers';\nimport {SchemaMigrationService} from './SchemaMigration.service';\n\ndescribe('SchemaMigration', () => {\n  describe('comparator', () => {\n    const oldSchemaPath = path.join(__dirname, '../../../test/schemas/oldSchema.graphql');\n    const newSchemaPath = path.join(__dirname, '../../../test/schemas/newSchema.graphql');\n    const badSchemaPath = path.join(__dirname, '../../../test/schemas/badSchema.graphql');\n\n    it('ensure comparator correctness', () => {\n      const currentSchema = buildSchemaFromFile(oldSchemaPath);\n      const nextSchema = buildSchemaFromFile(newSchemaPath);\n      const result = SchemaMigrationService.schemaComparator(currentSchema, nextSchema);\n      /*\n      Cases:\n        Added\n        - Added Unique Index\n        - Added field with relation\n        - Added New Enum\n        - Added belongsTo relation\n        - Added hasMany relation\n        - Added new JsonField (with nested json)\n        Removed\n        - Drop field on entity\n        - Drop field with Relation\n        - Drop Entity with JsonField\n        - Drop Enum\n        Modified\n        - Entity - field\n        - Modify Enum\n       */\n      const expectResult = require('../../../test/schemas/schemaDiff.json');\n      expect(JSON.parse(JSON.stringify(result))).toStrictEqual(expectResult);\n    });\n    it('Determine isRewindable', () => {\n      const currentSchema = buildSchemaFromFile(oldSchemaPath);\n      const nextSchema = buildSchemaFromFile(badSchemaPath);\n      const v = SchemaMigrationService.validateSchemaChanges(currentSchema, nextSchema);\n      expect(v).toBe(false);\n    });\n    it('Ensure iterator logic', () => {\n      const currentSchema = buildSchemaFromFile(oldSchemaPath);\n      const nextSchema = buildSchemaFromFile(badSchemaPath);\n      const projects = new Map<number, any>([\n        [4, {schema: nextSchema}],\n        [2, {schema: nextSchema}],\n        [1, {schema: currentSchema}],\n        [3, {schema: currentSchema}],\n      ]);\n\n      const v = (ProjectUpgradeService as any).rewindableCheck(projects);\n      expect(v).toBe(false);\n    });\n  });\n  it('compare enums on modified enums', () => {\n    const currentEnums = [\n      {\n        name: 'TestEnum',\n        values: ['GOOD', 'BAD', 'NEUTRAL'],\n      } as GraphQLEnumsType,\n    ];\n    const nextEnum = [\n      {\n        name: 'TestEnum',\n        values: ['GOOD', 'BAD', 'NEUTRAL', 'CHAOS'],\n      } as GraphQLEnumsType,\n    ];\n\n    const changes: any = {\n      addedEnums: [],\n      removedEnums: [],\n      modifiedEnums: [],\n    };\n    compareEnums(currentEnums, nextEnum, changes);\n    expect(changes).toStrictEqual({\n      addedEnums: [],\n      removedEnums: [],\n      modifiedEnums: [{name: 'TestEnum', values: ['GOOD', 'BAD', 'NEUTRAL', 'CHAOS']}],\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/db/migration-service/SchemaMigration.service.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {readFileSync} from 'fs';\nimport * as path from 'path';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {CommonProjectManifestV1_0_0Impl, IPFSReader} from '@subql/common';\nimport {buildSchemaFromString} from '@subql/utils';\nimport {IndexesOptions, QueryTypes, Sequelize} from '@subql/x-sequelize';\nimport {GraphQLSchema} from 'graphql';\nimport {NodeConfig} from '../../configure';\nimport {ISubqueryProject, StoreCacheService, StoreService} from '../../indexer';\nimport {DbOption} from '../db.module';\nimport {generateHashedIndexName} from '../sync-helper';\nimport {SchemaMigrationService} from './SchemaMigration.service';\n\nconst option: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\nasync function setup(\n  schemaName: string,\n  initialSchema: GraphQLSchema,\n  sequelize: Sequelize,\n  config = new NodeConfig({} as any)\n): Promise<SchemaMigrationService> {\n  const project = {\n    schema: initialSchema,\n    network: {\n      chainId: 'chainId',\n    },\n  } as unknown as ISubqueryProject;\n\n  const storeCache = new StoreCacheService(sequelize, config, new EventEmitter2());\n\n  const storeService = new StoreService(sequelize, config, storeCache, project);\n\n  await sequelize.createSchema(`\"${schemaName}\"`, {});\n\n  await storeService.initCoreTables(schemaName);\n  const tx = await sequelize.transaction();\n  await storeService.init(schemaName, tx);\n  await tx.commit();\n\n  return new SchemaMigrationService(sequelize, storeService, schemaName, config);\n}\n\nfunction loadGqlSchema(fileName: string): GraphQLSchema {\n  return buildSchemaFromString(\n    readFileSync(path.resolve(__dirname, `../../../test/migration-schemas/${fileName}`)).toString('utf8')\n  );\n}\n\njest.setTimeout(900000);\ndescribe('SchemaMigration integration tests', () => {\n  let sequelize: Sequelize;\n  let schemaName: string;\n\n  beforeEach(async () => {\n    // Need to create a new instance for each test because sequelize keeps reference to modle instances\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    await sequelize.authenticate();\n  });\n\n  afterEach(async () => {\n    await sequelize.dropSchema(schemaName, {logging: false});\n    await sequelize?.close();\n  });\n\n  // Use this test for potentially debugging user projects\n  it.skip('Can migrate user project', async () => {\n    schemaName = 'test-migration-user';\n\n    const schemas: GraphQLSchema[] = [];\n\n    let cid: string | undefined = 'ipfs://QmTXkSagBTzFQdPQqK6aMZZs8FUKWniccdCPaiyAUAVaxP';\n    while (cid) {\n      const reader = new IPFSReader(cid);\n      const project = (await reader.getProjectSchema()) as CommonProjectManifestV1_0_0Impl;\n      schemas.unshift(buildSchemaFromString(await reader.getFile(project.schema.file)));\n      cid = project.parent?.reference;\n    }\n\n    expect(schemas.length).toBeGreaterThan(1);\n\n    const migrationService = await setup(schemaName, schemas[0], sequelize);\n\n    const tx = await sequelize.transaction();\n\n    for (let i = 1; i < schemas.length; i++) {\n      await expect(migrationService.run(schemas[i - 1], schemas[i], tx)).resolves.not.toThrow();\n    }\n\n    await tx.commit();\n  });\n\n  it('Migrate to new schema', async () => {\n    schemaName = 'test-migrations-1';\n    const initialSchema = loadGqlSchema('test_1_1.graphql');\n\n    const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n    const tx = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_1_1000.graphql'), tx);\n    await tx.commit();\n\n    const dbResults = await sequelize.query<string[]>(\n      `SELECT table_name FROM information_schema.tables WHERE table_schema='${schemaName}';`,\n      {type: QueryTypes.SELECT}\n    );\n    const tableNames = dbResults.map((row) => row[0]);\n\n    expect(tableNames).toContain('_metadata');\n    expect(tableNames).toContain('accounts');\n    expect(tableNames).not.toContain('test_entities');\n    expect(tableNames).toContain('transfers');\n    expect(tableNames).toContain('test_entity_twos');\n\n    // Query to check the structure of 'accounts' table\n    const accountColumns = await sequelize.query<{column_name: string; is_nullable: string}>(\n      `SELECT column_name, is_nullable FROM information_schema.columns WHERE table_schema = :schema AND table_name = :table ;`,\n      {\n        type: QueryTypes.SELECT,\n        replacements: {schema: schemaName, table: 'accounts'},\n      }\n    );\n    const firstTransferBlockColumn = accountColumns.find((row) => row.column_name === 'first_transfer_block');\n    expect(firstTransferBlockColumn).toBeDefined();\n    expect(firstTransferBlockColumn?.is_nullable).toEqual('YES');\n\n    const [columnResult] = await sequelize.query(\n      `SELECT\n                column_name,\n                data_type,\n                is_nullable\n            FROM\n                information_schema.columns\n            WHERE\n                table_schema = :schema\n                AND table_name = 'test_entity_twos'\n                AND column_name = '_block_range';`,\n      {\n        replacements: {schema: schemaName},\n      }\n    );\n\n    const [indexResult] = await sequelize.query(\n      `SELECT\n                  indexname,\n                  indexdef\n              FROM\n                  pg_indexes\n              WHERE\n                  schemaname = :schema\n                  AND tablename = 'test_entity_twos';`,\n      {\n        replacements: {schema: schemaName},\n      }\n    );\n\n    expect(columnResult[0]).toStrictEqual({\n      column_name: '_block_range',\n      data_type: 'int8range',\n      is_nullable: 'NO',\n    });\n    const indexOptions: IndexesOptions = {\n      fields: ['id'],\n      unique: false,\n      parser: null,\n      name: 'test_entity_twos_id',\n    };\n    const expectIndexName = generateHashedIndexName('TestEntityTwo', indexOptions);\n\n    expect(indexResult).toStrictEqual([\n      {\n        indexname: 'test_entity_twos_pkey',\n        indexdef: `CREATE UNIQUE INDEX test_entity_twos_pkey ON \"${schemaName}\".test_entity_twos USING btree (_id)`,\n      },\n      {\n        indexname: expectIndexName,\n        indexdef: `CREATE INDEX \"0x30cf0ebdd6c10eed\" ON \"${schemaName}\".test_entity_twos USING btree (id)`,\n      },\n    ]);\n  });\n\n  it('Ensure correct JSON field creation with nested json', async () => {\n    schemaName = 'test-migrations-2';\n    const initialSchema = loadGqlSchema('test_2_1.graphql');\n    const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n    const tx = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_2_1000.graphql'), tx);\n    await tx.commit();\n\n    const [exampleFieldColumn] = await sequelize.query<{data_type: string}>(\n      `\n          SELECT column_name, data_type\n          FROM information_schema.columns\n          WHERE table_schema = '${schemaName}'\n            AND table_name = 'test_entities'\n            AND column_name = 'example_field';\n        `,\n      {type: QueryTypes.SELECT}\n    );\n    expect(exampleFieldColumn.data_type).toEqual('jsonb');\n  });\n\n  it('Migration on index removal, creation', async () => {\n    schemaName = 'test-migrations-5';\n\n    const initialSchema = loadGqlSchema('test_5_1.graphql');\n    const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n    const tx = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_5_1000.graphql'), tx);\n    await tx.commit();\n\n    const indexResult = await sequelize.query<{indexname: string; indexdef: string}>(\n      `SELECT\n                  indexname,\n                  indexdef\n              FROM\n                  pg_indexes\n              WHERE\n                  schemaname = :schema ;`,\n      {\n        type: QueryTypes.SELECT,\n        replacements: {schema: schemaName},\n      }\n    );\n    const findIndex = (modelName: string, unique: boolean, fields: string[]) =>\n      indexResult.find((i) => i.indexname === generateHashedIndexName(modelName, {unique, fields}));\n\n    const uniqueIndex = findIndex('NewIndexOne', true, ['name', '_block_range']);\n    const nonUniqueIndex = findIndex('NewIndexTwo', false, ['name', '_block_range']);\n    const compositeIndex = findIndex('NewIndexComposite', false, ['block', 'block_two', '_block_range']);\n    const droppedUniqueIndex = findIndex('DropSingleIndex', true, ['example_field', '_block_range']);\n    const droppedCompositeIndex = findIndex('DropCompositeIndex', false, ['block', 'block_two', '_block_range']);\n\n    expect(uniqueIndex).toBeTruthy();\n    expect(nonUniqueIndex).toBeTruthy();\n    expect(compositeIndex).toBeTruthy();\n\n    expect(droppedCompositeIndex).toBe(undefined);\n    expect(droppedUniqueIndex).toBe(undefined);\n  });\n\n  it('Ensure correctness on non-historical migrate', async () => {\n    schemaName = 'test-migrations-10';\n\n    const initialSchema = loadGqlSchema('test_10_1.graphql');\n    const migrationService = await setup(\n      schemaName,\n      initialSchema,\n      sequelize,\n      new NodeConfig({historical: false} as any)\n    );\n\n    const tx = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_10_1000.graphql'), tx);\n    await tx.commit();\n\n    const results = await sequelize.query<{column_name: string}>(\n      `SELECT\n                column_name\n            FROM\n                information_schema.columns\n            WHERE\n                table_schema = :schema\n                AND table_name = 'test_entity_twos'`,\n      {\n        type: QueryTypes.SELECT,\n        replacements: {schema: schemaName},\n      }\n    );\n\n    expect(results.find((c) => c.column_name === '_block_range')).not.toBeDefined();\n  });\n\n  it('On Failed migration, no metadata transaction should be applied', async () => {\n    const processExitSpy = jest.spyOn(process, 'exit').mockImplementationOnce((() => {\n      throw new Error();\n    }) as any);\n\n    schemaName = 'test-migrations-11';\n\n    const initialSchema = loadGqlSchema('test_11_1.graphql');\n    const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n    const tx = await sequelize.transaction();\n    await expect(migrationService.run(initialSchema, loadGqlSchema('test_11_2000.graphql'), tx)).rejects.toThrow();\n    await tx.commit();\n\n    // expect(processExitSpy).toHaveBeenCalledTimes(1);\n    // expect(processExitSpy).toHaveBeenCalledWith(1);\n\n    const [result] = await sequelize.query(\n      `SELECT * FROM \"${schemaName}\"._metadata WHERE key = 'lastProcessedHeight'`,\n      {type: QueryTypes.SELECT}\n    );\n\n    expect(result).toBe(undefined);\n\n    processExitSpy.mockRestore();\n  });\n\n  it('add relations on migration with historical', async () => {\n    schemaName = 'test-migrations-12';\n\n    const initialSchema = loadGqlSchema('test_12_1.graphql');\n    const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n    const tx = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_12_2000.graphql'), tx);\n    await tx.commit();\n\n    const [indexes] = await sequelize.query(\n      `\n    SELECT\n    idx.indexname AS index_name,\n    idx.indexdef AS index_definition\nFROM\n    pg_indexes idx\nWHERE\n    idx.schemaname = :schema\n    AND idx.tablename = 'accounts';\n    `,\n      {\n        replacements: {schema: schemaName},\n      }\n    );\n\n    expect(indexes).toStrictEqual([\n      {\n        index_definition: `CREATE UNIQUE INDEX accounts_pkey ON \"${schemaName}\".accounts USING btree (_id)`,\n        index_name: 'accounts_pkey',\n      },\n      {\n        index_definition: `CREATE INDEX \"0x4cb388e53e3e30f3\" ON \"${schemaName}\".accounts USING btree (id)`,\n        index_name: '0x4cb388e53e3e30f3',\n      },\n      {\n        index_definition: `CREATE INDEX \"0xc1a3a8c963b2bea2\" ON \"${schemaName}\".accounts USING gist (one_to_one_relation_id, _block_range)`,\n        index_name: '0xc1a3a8c963b2bea2',\n      },\n    ]);\n  });\n\n  it('add relations on migration no historical', async () => {\n    // add a has many and belong to, and one to one\n    schemaName = 'test-migrations-13';\n\n    const initialSchema = loadGqlSchema('test_13_1.graphql');\n    const migrationService = await setup(\n      schemaName,\n      initialSchema,\n      sequelize,\n      new NodeConfig({historical: false} as any)\n    );\n\n    const tx = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_13_2000.graphql'), tx);\n    await tx.commit();\n\n    const result = await sequelize.query(\n      `\n    SELECT\n    tc.table_name,\n    tc.constraint_name,\n    kcu.column_name,\n    ccu.table_name AS foreign_table_name\nFROM\n    information_schema.table_constraints AS tc\n        JOIN\n    information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name\n        AND tc.table_schema = kcu.table_schema\n        JOIN\n    information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name\n        AND ccu.table_schema = tc.table_schema\nWHERE\n    tc.constraint_type = 'FOREIGN KEY'\n  AND tc.table_schema = :schema;`,\n      {\n        type: QueryTypes.SELECT,\n        replacements: {schema: schemaName},\n      }\n    );\n\n    expect(result.length).toBe(6);\n  });\n\n  it('drop relational with no historical', async () => {\n    schemaName = 'test-migrations-14';\n\n    const initialSchema = loadGqlSchema('test_14_1.graphql');\n    const migrationService = await setup(\n      schemaName,\n      initialSchema,\n      sequelize,\n      new NodeConfig({historical: false} as any)\n    );\n\n    const tx = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_14_1000.graphql'), tx);\n    await tx.commit();\n\n    const [result] = await sequelize.query(`\n    SELECT\n    tc.table_name,\n    tc.constraint_name,\n    kcu.column_name,\n    ccu.table_name AS foreign_table_name\nFROM\n    information_schema.table_constraints AS tc\n        JOIN\n    information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name\n        AND tc.table_schema = kcu.table_schema\n        JOIN\n    information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name\n        AND ccu.table_schema = tc.table_schema\nWHERE\n    tc.constraint_type = 'FOREIGN KEY'\n  AND tc.table_schema = '${schemaName}';`);\n\n    expect(result.length).toBe(0);\n  });\n\n  it('Able to drop table and column with relations', async () => {\n    schemaName = 'test-migrations-15';\n\n    const initialSchema = loadGqlSchema('test_15_1.graphql');\n    const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n    const tx = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_15_2000.graphql'), tx);\n    await tx.commit();\n\n    const tx2 = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_15_4000.graphql'), tx2);\n    await tx2.commit();\n\n    const result = await sequelize.query<{table_name: string}>(\n      `SELECT table_name\nFROM information_schema.tables\nWHERE table_schema = :schema\n`,\n      {\n        replacements: {schema: schemaName},\n        type: QueryTypes.SELECT,\n      }\n    );\n    expect(result.length).toBe(4);\n    expect(result).not.toContain({table_name: 'accounts'});\n  });\n\n  it('create subscription on table creation', async () => {\n    schemaName = 'test-migrations-16';\n\n    const initialSchema = loadGqlSchema('test_16_1.graphql');\n    const migrationService = await setup(\n      schemaName,\n      initialSchema,\n      sequelize,\n      new NodeConfig({subscription: true} as any)\n    );\n\n    const tx = await sequelize.transaction();\n    await migrationService.run(initialSchema, loadGqlSchema('test_16_2000.graphql'), tx);\n    await tx.commit();\n\n    const result = await sequelize.query<{trigger_name: string}>(\n      `SELECT trigger_name\nFROM information_schema.triggers\nWHERE event_object_table = :table AND event_object_schema = :schema ;\n        `,\n      {\n        replacements: {\n          schema: schemaName,\n          table: 'many_to_many_test_entities',\n        },\n        type: QueryTypes.SELECT,\n      }\n    );\n    expect(result.length).toBe(3);\n    expect(result[0]).toEqual({trigger_name: '0x36bc022fc662d7ff'});\n  });\n\n  describe('enum migrations', () => {\n    async function queryEnums(): Promise<{enum_type: string; enum_value: string}[]> {\n      return sequelize.query<{enum_type: string; enum_value: string}>(\n        `\n      SELECT\n       t.typname AS enum_type,\n       e.enumlabel AS enum_value\nFROM pg_type t\nJOIN pg_enum e ON t.oid = e.enumtypid\nJOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\nWHERE n.nspname = :schema -- Replace 'public' with your schema name if different\nORDER BY t.typname, e.enumsortorder;`,\n        {type: QueryTypes.SELECT, replacements: {schema: schemaName}}\n      );\n    }\n\n    it('support enum drop and enum creation', async () => {\n      schemaName = 'test-migrations-17';\n\n      const initialSchema = loadGqlSchema('test_17_1.graphql');\n      const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n      const tx = await sequelize.transaction();\n      await migrationService.run(initialSchema, loadGqlSchema('test_17_2000.graphql'), tx);\n      await tx.commit();\n\n      const result = await queryEnums();\n\n      expect(result.length).toBe(5);\n      expect(result.find((e) => e.enum_type === '5fcf5d7ab8')).toEqual({\n        enum_type: '5fcf5d7ab8',\n        enum_value: 'CREATED',\n      });\n      expect(result.find((e) => e.enum_type === 'e9b7360cdc')).toBeUndefined();\n    });\n\n    it('supports enum value additions', async () => {\n      schemaName = 'test-migrations-18';\n\n      const initialSchema = loadGqlSchema('test_18_1.graphql');\n      const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n      const tx = await sequelize.transaction();\n      await migrationService.run(initialSchema, loadGqlSchema('test_18_2000.graphql'), tx);\n      await tx.commit();\n\n      const result = await queryEnums();\n\n      expect(result.length).toBe(4);\n      expect(result.map((r) => r.enum_value)).toEqual(['GOOD', 'BAD', 'NEUTRAL', 'CHAOS']);\n    });\n\n    it('throws when enum values are removed', async () => {\n      schemaName = 'test-migrations-19';\n\n      const initialSchema = loadGqlSchema('test_19_1.graphql');\n      const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n      const tx = await sequelize.transaction();\n      await expect(migrationService.run(initialSchema, loadGqlSchema('test_19_2000.graphql'), tx)).rejects.toThrow(\n        'Enums cannot have values removed. Only adding new values is supported.'\n      );\n      await tx.commit();\n    });\n\n    it('throws when enum values are reordered', async () => {\n      schemaName = 'test-migrations-20';\n\n      const initialSchema = loadGqlSchema('test_20_1.graphql');\n      const migrationService = await setup(schemaName, initialSchema, sequelize);\n\n      const tx = await sequelize.transaction();\n      await expect(migrationService.run(initialSchema, loadGqlSchema('test_20_2000.graphql'), tx)).rejects.toThrow(\n        'Enums cannot have their order changed.'\n      );\n      await tx.commit();\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/db/migration-service/SchemaMigration.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {getAllEntitiesRelations, GraphQLModelsType, GraphQLRelationsType} from '@subql/utils';\nimport {Sequelize, Transaction} from '@subql/x-sequelize';\nimport {GraphQLSchema} from 'graphql';\nimport {NodeConfig} from '../../configure';\nimport {cacheProviderFlushData, StoreService} from '../../indexer';\nimport {getLogger} from '../../logger';\nimport {sortModels} from '../sync-helper';\nimport {Migration} from './migration';\nimport {\n  alignModelOrder,\n  compareEnums,\n  compareModels,\n  compareRelations,\n  hasChanged,\n  ModifiedModels,\n  schemaChangesLoggerMessage,\n  SchemaChangesType,\n} from './migration-helpers';\n\nconst logger = getLogger('SchemaMigrationService');\n\nexport class SchemaMigrationService {\n  private withoutForeignKeys = false;\n\n  constructor(\n    private sequelize: Sequelize,\n    private storeService: StoreService,\n    private dbSchema: string,\n    private config: NodeConfig\n  ) {}\n\n  static validateSchemaChanges(currentSchema: GraphQLSchema, nextSchema: GraphQLSchema): boolean {\n    const {modifiedModels, removedModels} = SchemaMigrationService.schemaComparator(currentSchema, nextSchema);\n    if (removedModels.length > 0) return false;\n\n    for (const {removedFields} of Object.values(modifiedModels)) {\n      if (removedFields.length > 0) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  static schemaComparator(currentSchema: GraphQLSchema | null, nextSchema: GraphQLSchema): SchemaChangesType {\n    const currentData = getAllEntitiesRelations(currentSchema);\n    const nextData = getAllEntitiesRelations(nextSchema);\n\n    const changes: SchemaChangesType = {\n      addedModels: [],\n      removedModels: [],\n      modifiedModels: {},\n      addedRelations: [],\n      removedRelations: [],\n      addedEnums: [],\n      removedEnums: [],\n      modifiedEnums: [],\n    };\n\n    compareEnums(currentData.enums, nextData.enums, changes);\n    compareRelations(currentData.relations, nextData.relations, changes);\n    compareModels(currentData.models, nextData.models, changes);\n\n    return changes;\n  }\n\n  private orderModelsByRelations(models: GraphQLModelsType[], relations: GraphQLRelationsType[]): GraphQLModelsType[] {\n    const sortedModels = sortModels(relations, models);\n    if (sortedModels === null) {\n      this.withoutForeignKeys = true;\n      return models;\n    } else {\n      this.withoutForeignKeys = false;\n      return sortedModels.reverse();\n    }\n  }\n\n  async run(currentSchema: GraphQLSchema | null, nextSchema: GraphQLSchema, transaction: Transaction): Promise<void> {\n    logger.info('Running schema migration');\n    const schemaDifference = SchemaMigrationService.schemaComparator(currentSchema, nextSchema);\n    const {\n      addedEnums,\n      addedModels,\n      addedRelations,\n      modifiedEnums,\n      modifiedModels,\n      removedEnums,\n      removedModels,\n      removedRelations,\n    } = schemaDifference;\n\n    if (!hasChanged(schemaDifference)) {\n      logger.info('No Schema changes');\n      return;\n    }\n\n    const sortedSchemaModels = this.orderModelsByRelations(\n      getAllEntitiesRelations(nextSchema).models,\n      getAllEntitiesRelations(nextSchema).relations\n    );\n\n    const sortedAddedModels = alignModelOrder<GraphQLModelsType[]>(sortedSchemaModels, addedModels);\n    const sortedModifiedModels = alignModelOrder<ModifiedModels>(sortedSchemaModels, modifiedModels);\n\n    await cacheProviderFlushData(this.storeService.modelProvider, true);\n\n    const migrationAction = await Migration.create(this.sequelize, this.storeService, this.dbSchema, this.config);\n\n    if (this.config.debug) {\n      logger.debug(`${schemaChangesLoggerMessage(schemaDifference)}`);\n    }\n\n    try {\n      for (const enumValue of addedEnums) {\n        migrationAction.createEnum(enumValue);\n      }\n\n      for (const enumValue of modifiedEnums) {\n        migrationAction.modifyEnum(enumValue);\n      }\n\n      for (const model of removedModels) {\n        migrationAction.dropTable(model);\n      }\n\n      for (const model of sortedAddedModels) {\n        await migrationAction.createTable(model, this.withoutForeignKeys);\n      }\n\n      const entities = Object.keys(sortedModifiedModels);\n      for (const model of entities) {\n        const modelValue = sortedModifiedModels[model];\n\n        for (const index of modelValue.removedIndexes) {\n          migrationAction.dropIndex(modelValue.model, index);\n        }\n\n        for (const field of modelValue.removedFields) {\n          migrationAction.dropColumn(modelValue.model, field);\n        }\n\n        for (const field of modelValue.addedFields) {\n          migrationAction.createColumn(modelValue.model, field);\n        }\n\n        for (const index of modelValue.addedIndexes) {\n          migrationAction.createIndex(modelValue.model, index);\n        }\n\n        if (modelValue.removedFullText) {\n          migrationAction.dropFullText(modelValue.model);\n        }\n\n        if (modelValue.addedFullText) {\n          migrationAction.createFullText(modelValue.model);\n        }\n      }\n\n      for (const relationModel of addedRelations) {\n        migrationAction.createRelation(relationModel);\n      }\n\n      for (const relationModel of removedRelations) {\n        migrationAction.dropRelation(relationModel);\n      }\n      for (const enumValue of removedEnums) {\n        migrationAction.dropEnum(enumValue);\n      }\n\n      const modelChanges = await migrationAction.run(transaction);\n\n      this.storeService.updateModels(modelChanges, getAllEntitiesRelations(nextSchema));\n\n      await cacheProviderFlushData(this.storeService.modelProvider, true);\n    } catch (e: any) {\n      logger.error(e, 'Failed to execute Schema Migration');\n      throw e;\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/db/migration-service/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './migration';\nexport * from './SchemaMigration.service';\nexport {ModifiedDbModels} from './migration-helpers';\n"
  },
  {
    "path": "packages/node-core/src/db/migration-service/migration-helpers.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n  GraphQLEntityField,\n  GraphQLEntityIndex,\n  GraphQLEnumsType,\n  GraphQLFullTextType,\n  GraphQLModelsType,\n  GraphQLRelationsType,\n} from '@subql/utils';\nimport {ModelStatic} from '@subql/x-sequelize';\nimport {isEqual} from 'lodash';\n\nexport type ModifiedDbModels = {\n  modifiedModels: ModelStatic<any>[];\n  removedModels: string[];\n};\n\nexport type ModifiedModels = Record<\n  string,\n  {\n    model: GraphQLModelsType;\n    addedFields: GraphQLEntityField[];\n    removedFields: GraphQLEntityField[];\n\n    addedIndexes: GraphQLEntityIndex[];\n    removedIndexes: GraphQLEntityIndex[];\n\n    addedFullText?: GraphQLFullTextType;\n    removedFullText?: GraphQLFullTextType;\n  }\n>;\n\nexport interface SchemaChangesType {\n  addedModels: GraphQLModelsType[];\n  removedModels: GraphQLModelsType[];\n\n  modifiedModels: ModifiedModels;\n\n  addedRelations: GraphQLRelationsType[];\n  removedRelations: GraphQLRelationsType[];\n\n  addedEnums: GraphQLEnumsType[];\n  removedEnums: GraphQLEnumsType[];\n  modifiedEnums: GraphQLEnumsType[];\n}\n\n/**\n *  Checks that 2 string arrays are the same independent of order\n * */\nfunction arrayUnorderedMatch(a?: string[], b?: string[]): boolean {\n  return a?.sort().join(',') === b?.sort().join(',');\n}\n\nfunction indexesEqual(index1: GraphQLEntityIndex, index2: GraphQLEntityIndex): boolean {\n  return (\n    arrayUnorderedMatch(index1.fields, index2.fields) &&\n    index1.unique === index2.unique &&\n    index1.using === index2.using\n  );\n}\n\nfunction fullTextEqual(a?: GraphQLFullTextType, b?: GraphQLFullTextType): boolean {\n  return arrayUnorderedMatch(a?.fields, b?.fields) && a?.language === b?.language;\n}\n\nexport function hasChanged(changes: SchemaChangesType): boolean {\n  return Object.values(changes).some((change) =>\n    Array.isArray(change) ? change.length > 0 : Object.keys(change).length > 0\n  );\n}\n\nexport function compareEnums(\n  currentEnums: GraphQLEnumsType[],\n  nextEnums: GraphQLEnumsType[],\n  changes: SchemaChangesType\n): void {\n  const currentEnumNames = new Set(currentEnums.map((e) => e.name));\n  const nextEnumNames = new Set(nextEnums.map((e) => e.name));\n\n  changes.addedEnums = nextEnums.filter((e) => !currentEnumNames.has(e.name));\n  changes.removedEnums = currentEnums.filter((e) => !nextEnumNames.has(e.name));\n\n  currentEnums.forEach((currentEnum) => {\n    if (nextEnumNames.has(currentEnum.name)) {\n      const nextEnum = nextEnums.find((e) => e.name === currentEnum.name);\n      // Check if there's a difference in the values arrays\n      if (nextEnum && !isEqual(currentEnum.values, nextEnum.values)) {\n        if (currentEnum.values.length > nextEnum.values.length) {\n          throw new Error('Enums cannot have values removed. Only adding new values is supported.');\n        }\n        if (!currentEnum.values.every((current, idx) => nextEnum.values.indexOf(current) === idx)) {\n          throw new Error('Enums cannot have their order changed.');\n        }\n        changes.modifiedEnums.push(nextEnum); // Add the nextEnum to modifiedEnums\n      }\n    }\n  });\n}\n\nexport function compareRelations(\n  currentRelations: GraphQLRelationsType[],\n  nextRelations: GraphQLRelationsType[],\n  changes: SchemaChangesType\n): void {\n  const relationKey = (relation: GraphQLRelationsType) =>\n    `${relation.from}-${relation.to}-${relation.type}-${relation.foreignKey}`;\n\n  const currentRelationsMap = new Map(currentRelations.map((rel) => [relationKey(rel), rel]));\n  const nextRelationsMap = new Map(nextRelations.map((rel) => [relationKey(rel), rel]));\n\n  nextRelations.forEach((rel) => {\n    if (!currentRelationsMap.has(relationKey(rel))) {\n      changes.addedRelations.push(rel);\n    }\n  });\n\n  currentRelations.forEach((rel) => {\n    if (!nextRelationsMap.has(relationKey(rel))) {\n      changes.removedRelations.push(rel);\n    }\n  });\n}\n\nfunction fieldsAreEqual(field1: GraphQLEntityField, field2: GraphQLEntityField): boolean {\n  return (\n    field1.name === field2.name &&\n    field1.type === field2.type &&\n    field1.nullable === field2.nullable &&\n    field1.isArray === field2.isArray\n  );\n}\n\nexport function compareModels(\n  currentModels: GraphQLModelsType[],\n  nextModels: GraphQLModelsType[],\n  changes: SchemaChangesType\n): void {\n  const currentModelsMap = new Map(currentModels.map((model) => [model.name, model]));\n  const nextModelsMap = new Map(nextModels.map((model) => [model.name, model]));\n\n  currentModels.forEach((model) => {\n    if (!nextModelsMap.has(model.name)) {\n      changes.removedModels.push(model);\n    }\n  });\n\n  nextModels.forEach((model) => {\n    if (!currentModelsMap.has(model.name)) {\n      changes.addedModels.push(model);\n    }\n  });\n\n  nextModels.forEach((model) => {\n    const currentModel = currentModelsMap.get(model.name);\n    if (currentModel) {\n      const addedFields = model.fields.filter((field) => !currentModel.fields.some((f) => fieldsAreEqual(f, field)));\n      const removedFields = currentModel.fields.filter((field) => !model.fields.some((f) => fieldsAreEqual(f, field)));\n\n      const addedIndexes = model.indexes.filter((index) => !currentModel.indexes.some((i) => indexesEqual(i, index)));\n      const removedIndexes = currentModel.indexes.filter((index) => !model.indexes.some((i) => indexesEqual(i, index)));\n\n      const addedFullText = !fullTextEqual(model.fullText, currentModel.fullText) ? model.fullText : undefined;\n      const removedFullText = !fullTextEqual(model.fullText, currentModel.fullText) ? currentModel.fullText : undefined;\n\n      if (\n        addedFields.length ||\n        removedFields.length ||\n        addedIndexes.length ||\n        removedIndexes.length ||\n        addedFullText ||\n        removedFullText\n      ) {\n        changes.modifiedModels[model.name] = {\n          model,\n          addedFields,\n          removedFields,\n          addedIndexes,\n          removedIndexes,\n          addedFullText,\n          removedFullText,\n        };\n      }\n    }\n  });\n}\n\nexport function schemaChangesLoggerMessage(schemaChanges: SchemaChangesType): string {\n  let logMessage = '\\n';\n\n  const formatModels = (models: GraphQLModelsType[]) => models.map((model: GraphQLModelsType) => model.name).join(', ');\n  const formatIndexes = (indexes: GraphQLEntityIndex[]) =>\n    indexes\n      .map(\n        (index: GraphQLEntityIndex) =>\n          `${index.fields.join(', ')}${index.unique ? ' (Unique)' : ''}${index.using ? ` Using: ${index.using}` : ''}`\n      )\n      .join('; ');\n  const formatRelations = (relations: GraphQLRelationsType[]) =>\n    relations.map((relation) => `From: ${relation.from} To: ${relation.to}`);\n  const formatEnums = (enums: GraphQLEnumsType[]) =>\n    enums.map((enumType) => `${enumType.name} (${enumType.values.join(', ')})`);\n\n  if (schemaChanges.addedModels.length) {\n    logMessage += `Added Entities: ${formatModels(schemaChanges.addedModels)}\\n`;\n  }\n\n  if (schemaChanges.removedModels.length) {\n    logMessage += `Removed Entities: ${formatModels(schemaChanges.removedModels)}\\n`;\n  }\n\n  if (schemaChanges.addedRelations.length) {\n    logMessage += `Added Relations: ${formatRelations(schemaChanges.addedRelations)}\\n`;\n  }\n\n  if (schemaChanges.removedRelations.length) {\n    logMessage += `Removed Relations: ${formatRelations(schemaChanges.removedRelations)}\\n`;\n  }\n\n  Object.entries(schemaChanges.modifiedModels).forEach(([modelName, changes]) => {\n    logMessage += `Modified Entities: ${modelName}\\n`;\n\n    if (changes.addedFields.length) {\n      logMessage += `\\tAdded Fields: ${changes.addedFields.map((field) => field.name).join(', ')}\\n`;\n    }\n    if (changes.removedFields.length) {\n      logMessage += `\\tRemoved Fields: ${changes.removedFields.map((field) => field.name).join(', ')}\\n`;\n    }\n\n    if (changes.addedIndexes.length) {\n      logMessage += `\\tAdded Indexes: ${formatIndexes(changes.addedIndexes)}\\n`;\n    }\n    if (changes.removedIndexes.length) {\n      logMessage += `\\tRemoved Indexes: ${formatIndexes(changes.removedIndexes)}\\n`;\n    }\n\n    if (changes.addedFullText) {\n      logMessage += `\\tAdded FullText: ${changes.addedFullText.fields.join(', ')}\\n`;\n    }\n    if (changes.removedFullText) {\n      logMessage += `\\tRemoved FullText\\n`;\n    }\n  });\n  if (schemaChanges.addedEnums.length) {\n    logMessage += `Added Enums: ${formatEnums(schemaChanges.addedEnums)}\\n`;\n  }\n  if (schemaChanges.removedEnums.length) {\n    logMessage += `Removed Enums: ${formatEnums(schemaChanges.removedEnums)}\\n`;\n  }\n  return logMessage;\n}\nexport function alignModelOrder<T extends GraphQLModelsType[] | ModifiedModels>(\n  schemaModels: GraphQLModelsType[],\n  models: T\n): T {\n  const orderIndex = schemaModels.reduce((acc: Record<string, number>, model, index) => {\n    acc[model.name] = index;\n    return acc;\n  }, {});\n\n  if (Array.isArray(models)) {\n    return models.sort((a, b) => {\n      const indexA = orderIndex[a.name] ?? Number.MAX_VALUE; // Place unknown models at the end\n      const indexB = orderIndex[b.name] ?? Number.MAX_VALUE;\n      return indexA - indexB;\n    }) as T;\n  } else {\n    const modelNames = Object.keys(models);\n    const sortedModelNames = modelNames.sort((a, b) => {\n      const indexA = orderIndex[a] ?? Number.MAX_VALUE;\n      const indexB = orderIndex[b] ?? Number.MAX_VALUE;\n      return indexA - indexB;\n    });\n\n    const sortedModifiedModels: ModifiedModels = {};\n    sortedModelNames.forEach((modelName) => {\n      sortedModifiedModels[modelName] = models[modelName];\n    });\n\n    return sortedModifiedModels as T;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/db/migration-service/migration.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'node:assert';\nimport {\n  GraphQLEntityField,\n  GraphQLEntityIndex,\n  GraphQLEnumsType,\n  GraphQLModelsType,\n  GraphQLRelationsType,\n  hashName,\n} from '@subql/utils';\nimport {\n  IndexesOptions,\n  ModelAttributes,\n  ModelStatic,\n  QueryTypes,\n  Sequelize,\n  Transaction,\n  Utils,\n} from '@subql/x-sequelize';\nimport {isEqual, uniq} from 'lodash';\nimport {NodeConfig} from '../../configure/NodeConfig';\nimport {HistoricalMode, StoreService} from '../../indexer';\nimport {getLogger} from '../../logger';\nimport {EnumType, getColumnOption, modelsTypeToModelAttributes, enumNameToHash} from '../../utils';\nimport {formatAttributes, formatColumnName, modelToTableName} from '../sequelizeUtil';\nimport * as syncHelper from '../sync-helper';\nimport {ModifiedDbModels} from './migration-helpers';\n\nconst logger = getLogger('db-manager');\n\nexport class Migration {\n  /* Models that are added or modified during the migration */\n  private modifiedModels: ModelStatic<any>[] = [];\n  private removedModels: string[] = [];\n  /*\n  mainQueries are used for executions, that are not reliant on any prior db operations\n  extraQueries are executions, that are reliant on certain db operations, e.g. comments on foreignKeys or comments on tables, should be executed only after the table has been created\n   */\n  private mainQueries: syncHelper.QueryString[] = [];\n  private extraQueries: syncHelper.QueryString[] = [];\n  private readonly historical: HistoricalMode;\n  private readonly useSubscription: boolean;\n  private foreignKeyMap: Map<string, Map<string, syncHelper.SmartTags>> = new Map<\n    string,\n    Map<string, syncHelper.SmartTags>\n  >();\n  private enumTypeMap: Map<string, EnumType>;\n\n  private constructor(\n    private sequelize: Sequelize,\n    private storeService: StoreService,\n    private readonly schemaName: string,\n    private readonly config: NodeConfig,\n    private readonly existingForeignKeys: string[], // this the source of truth from the db\n    private initEnumTypeMap: Map<string, EnumType>,\n    private existingIndexes: {indexname: string}[]\n  ) {\n    // We can use store historical here, as long as\n    // store.initCoreTables checked historical status, then store.init called syncSchema then migration run\n    this.historical = storeService.historical;\n    this.useSubscription = config.subscription;\n\n    this.enumTypeMap = this.initEnumTypeMap;\n\n    if (this.useSubscription) {\n      this.extraQueries.push(syncHelper.createSendNotificationTriggerFunction(schemaName));\n    } else {\n      this.extraQueries.push(syncHelper.dropNotifyFunction(this.schemaName));\n    }\n  }\n\n  static async create(\n    sequelize: Sequelize,\n    storeService: StoreService,\n    schemaName: string,\n    config: NodeConfig\n  ): Promise<Migration> {\n    const existingForeignKeys = await syncHelper.getExistingForeignKeys(schemaName, sequelize);\n    const enumTypeMap = await syncHelper.getExistingEnums(schemaName, sequelize);\n    const indexesResult = (await sequelize.query(syncHelper.getExistedIndexesQuery(schemaName), {\n      type: QueryTypes.SELECT,\n    })) as {\n      indexname: string;\n    }[];\n    return new Migration(sequelize, storeService, schemaName, config, existingForeignKeys, enumTypeMap, indexesResult);\n  }\n\n  async run(transaction: Transaction): Promise<ModifiedDbModels> {\n    if (this.historical) {\n      // Comments should be added after\n      this.addRelationComments();\n    }\n\n    for (const query of this.mainQueries) {\n      if (syncHelper.isQuery(query)) {\n        await this.sequelize.query(query.sql, {replacements: query.replacements, transaction});\n      } else {\n        await this.sequelize.query(query, {transaction});\n      }\n    }\n\n    for (const query of uniq(this.extraQueries)) {\n      if (syncHelper.isQuery(query)) {\n        await this.sequelize.query(query.sql, {replacements: query.replacements, transaction});\n      } else {\n        await this.sequelize.query(query, {transaction});\n      }\n    }\n\n    return {\n      modifiedModels: this.modifiedModels,\n      removedModels: this.removedModels,\n    };\n  }\n\n  private prepareModelAttributesAndIndexes(model: GraphQLModelsType): {\n    attributes: ModelAttributes<any>;\n    indexes: IndexesOptions[];\n  } {\n    const attributes = modelsTypeToModelAttributes(model, this.enumTypeMap, this.schemaName);\n    if (this.historical) {\n      syncHelper.addIdAndBlockRangeAttributes(attributes);\n    }\n\n    const indexes = model.indexes.map(({fields, unique, using}) => ({\n      fields: fields.map((field) => Utils.underscoredIf(field, true)),\n      unique,\n      using,\n    }));\n\n    return {attributes, indexes};\n  }\n\n  private addModelToSequelizeCache(sequelizeModel: ModelStatic<any>): void {\n    const modelName = sequelizeModel.name;\n    if (!this.modifiedModels.find((m) => m.name === modelName)) {\n      this.modifiedModels.push(sequelizeModel);\n    }\n  }\n\n  private createSequelizeModel(model: GraphQLModelsType): ModelStatic<any> {\n    const {attributes, indexes} = this.prepareModelAttributesAndIndexes(model);\n    return this.storeService.defineModel(model, attributes, indexes, this.schemaName);\n  }\n\n  async createTable(model: GraphQLModelsType, withoutForeignKey: boolean): Promise<void> {\n    const {attributes, indexes} = this.prepareModelAttributesAndIndexes(model);\n    const existedIndexes = this.existingIndexes.map((i) => (i as any).indexname);\n\n    if (indexes.length > this.config.indexCountLimit) {\n      throw new Error(`too many indexes on entity ${model.name}`);\n    }\n\n    if (this.historical) {\n      syncHelper.addBlockRangeColumnToIndexes(indexes);\n      syncHelper.addHistoricalIdIndex(model, indexes);\n    }\n\n    syncHelper.updateIndexesName(model.name, indexes, existedIndexes as string[]);\n\n    const sequelizeModel = this.storeService.defineModel(model, attributes, indexes, this.schemaName);\n\n    this.mainQueries.push(...syncHelper.generateCreateTableQuery(sequelizeModel, this.schemaName, withoutForeignKey));\n\n    if (sequelizeModel.options.indexes) {\n      this.mainQueries.push(\n        ...syncHelper.generateCreateIndexQuery(\n          sequelizeModel.options.indexes,\n          this.schemaName,\n          sequelizeModel.tableName\n        )\n      );\n    }\n\n    if (model.fullText) {\n      this.createFullText(model);\n    }\n\n    if (this.useSubscription) {\n      const triggerName = hashName(this.schemaName, 'notify_trigger', sequelizeModel.tableName);\n      const notifyTriggers = await syncHelper.getTriggers(this.sequelize, triggerName);\n      // Triggers not been found\n      if (notifyTriggers.length === 0) {\n        this.extraQueries.push(syncHelper.createNotifyTrigger(this.schemaName, sequelizeModel.tableName));\n      } else {\n        syncHelper.validateNotifyTriggers(triggerName, notifyTriggers as syncHelper.NotifyTriggerPayload[]);\n      }\n    } else {\n      // should prioritise dropping the triggers before dropNotifyFunction\n      this.extraQueries.unshift(syncHelper.dropNotifyTrigger(this.schemaName, sequelizeModel.tableName));\n    }\n\n    this.addModelToSequelizeCache(sequelizeModel);\n  }\n\n  dropTable(model: GraphQLModelsType): void {\n    const tableName = modelToTableName(model.name);\n\n    // should prioritise dropping the triggers before dropNotifyFunction\n    this.mainQueries.unshift(syncHelper.dropNotifyTrigger(this.schemaName, tableName));\n    this.mainQueries.push(`DROP TABLE IF EXISTS \"${this.schemaName}\".\"${tableName}\";`);\n    this.removedModels.push(model.name);\n  }\n\n  createColumn(model: GraphQLModelsType, field: GraphQLEntityField): void {\n    const sequelizeModel = this.createSequelizeModel(model);\n\n    const columnOptions = getColumnOption(field, this.enumTypeMap, this.schemaName);\n    if (columnOptions.primaryKey) {\n      throw new Error('Primary Key migration upgrade is not allowed');\n    }\n\n    if (!columnOptions.allowNull) {\n      throw new Error(`Non-nullable field creation is not supported: ${field.name} on ${model.name}`);\n    }\n\n    const dbTableName = modelToTableName(model.name);\n    const dbColumnName = formatColumnName(field.name);\n\n    const formattedAttributes = formatAttributes(columnOptions, this.schemaName, false);\n    this.mainQueries.push(\n      syncHelper.createColumnQuery(this.schemaName, dbTableName, dbColumnName, formattedAttributes)\n    );\n\n    if (columnOptions.comment) {\n      this.extraQueries.push(\n        syncHelper.commentColumnQuery(this.schemaName, dbTableName, dbColumnName, columnOptions.comment)\n      );\n    }\n\n    this.addModelToSequelizeCache(sequelizeModel);\n  }\n\n  dropColumn(model: GraphQLModelsType, field: GraphQLEntityField): void {\n    const columnName = formatColumnName(field.name);\n    const tableName = modelToTableName(model.name);\n    this.mainQueries.push(syncHelper.dropColumnQuery(this.schemaName, columnName, tableName));\n    this.addModelToSequelizeCache(this.createSequelizeModel(model));\n  }\n\n  createIndex(model: GraphQLModelsType, index: GraphQLEntityIndex): void {\n    const formattedTableName = modelToTableName(model.name);\n    const indexOptions: IndexesOptions = {...index, fields: index.fields.map((f) => formatColumnName(f))};\n\n    if (this.historical) {\n      syncHelper.addBlockRangeColumnToIndexes([indexOptions]);\n      syncHelper.addHistoricalIdIndex(model, [indexOptions]);\n    }\n\n    indexOptions.name = syncHelper.generateHashedIndexName(model.name, indexOptions);\n\n    this.mainQueries.push(syncHelper.createIndexQuery(indexOptions, formattedTableName, this.schemaName));\n  }\n\n  dropIndex(model: GraphQLModelsType, index: GraphQLEntityIndex): void {\n    const hashedIndexName = syncHelper.generateHashedIndexName(model.name, index);\n    this.mainQueries.push(syncHelper.dropIndexQuery(this.schemaName, hashedIndexName));\n  }\n\n  createRelation(relation: GraphQLRelationsType): void {\n    const model = this.sequelize.model(relation.from);\n    const relatedModel = this.sequelize.model(relation.to);\n    if (this.historical) {\n      syncHelper.addRelationToMap(relation, this.foreignKeyMap, model, relatedModel);\n    } else {\n      switch (relation.type) {\n        case 'belongsTo': {\n          model.belongsTo(relatedModel, {foreignKey: relation.foreignKey});\n          syncHelper.addRelationToMap(relation, this.foreignKeyMap, model, relatedModel);\n          const rel = model.belongsTo(relatedModel, {foreignKey: relation.foreignKey});\n          const fkConstraint = syncHelper.getFkConstraint(rel.source.tableName, rel.foreignKey);\n          if (this.existingForeignKeys.includes(fkConstraint)) break;\n          this.extraQueries.push(syncHelper.constraintDeferrableQuery(model.getTableName().toString(), fkConstraint));\n          break;\n        }\n        case 'hasOne': {\n          const rel = model.hasOne(relatedModel, {\n            foreignKey: relation.foreignKey,\n          });\n          const fkConstraint = syncHelper.getFkConstraint(rel.target.tableName, rel.foreignKey);\n          if (this.existingForeignKeys.includes(fkConstraint)) break;\n          const tags = syncHelper.smartTags({\n            singleForeignFieldName: relation.fieldName,\n          });\n          this.extraQueries.push(\n            syncHelper.commentConstraintQuery(this.schemaName, rel.target.tableName, fkConstraint, tags),\n            syncHelper.createUniqueIndexQuery(this.schemaName, relatedModel.tableName, relation.foreignKey)\n          );\n          break;\n        }\n        case 'hasMany': {\n          const rel = model.hasMany(relatedModel, {\n            foreignKey: relation.foreignKey,\n          });\n          const fkConstraint = syncHelper.getFkConstraint(rel.target.tableName, rel.foreignKey);\n          if (this.existingForeignKeys.includes(fkConstraint)) break;\n          const tags = syncHelper.smartTags({\n            foreignFieldName: relation.fieldName,\n          });\n          this.extraQueries.push(\n            syncHelper.commentConstraintQuery(this.schemaName, rel.target.tableName, fkConstraint, tags)\n          );\n          break;\n        }\n        default:\n          throw new Error('Relation type is not supported');\n      }\n      const relationQuery = syncHelper.generateForeignKeyQuery(\n        model.getAttributes()[relation.foreignKey],\n        model.tableName\n      );\n      if (relationQuery) {\n        this.mainQueries.push(relationQuery);\n      }\n    }\n\n    this.addModelToSequelizeCache(model);\n  }\n\n  private addRelationComments(): void {\n    this.foreignKeyMap.forEach((keys, tableName) => {\n      const comment = Array.from(keys.values())\n        .map((tags) => syncHelper.smartTags(tags, '|'))\n        .join('\\n');\n      const query = syncHelper.commentTableQuery(this.schemaName, tableName, comment);\n      this.extraQueries.push(query);\n    });\n  }\n\n  dropRelation(relation: GraphQLRelationsType): void {\n    if (relation.type !== 'belongsTo') {\n      return;\n    }\n    const tableName = modelToTableName(relation.from);\n    const fkConstraint = syncHelper.getFkConstraint(tableName, relation.foreignKey);\n\n    this.mainQueries.unshift(syncHelper.dropRelationQuery(this.schemaName, tableName, fkConstraint));\n  }\n\n  createEnum(e: GraphQLEnumsType): void {\n    const queries: string[] = [];\n\n    // Ref: https://www.graphile.org/postgraphile/enums/\n    // Example query for enum name: COMMENT ON TYPE \"polkadot-starter_enum_a40fe73329\" IS E'@enum\\n@enumName TestEnum'\n    // It is difficult for sequelize use replacement, instead we use escape to avoid injection\n    // UPDATE: this comment got syntax error with cockroach db, disable it for now. Waiting to be fixed.\n    // See https://github.com/cockroachdb/cockroach/issues/44135\n    const enumTypeName = enumNameToHash(e.name);\n    const enumTypeNameDeprecated = `${this.schemaName}_enum_${enumNameToHash(e.name)}`;\n\n    let type: string | null = null;\n\n    const typeNames = [enumTypeName, enumTypeNameDeprecated];\n\n    typeNames.forEach((t) => {\n      if (this.enumTypeMap.has(t)) {\n        const enumFromMapValues = this.enumTypeMap.get(t)?.enumValues;\n        if (!isEqual(e.values, enumFromMapValues)) {\n          throw new Error(\n            `\\n * Can't modify enum \"${e.name}\" between runs: \\n * Before: [${enumFromMapValues?.join(\n              `,`\n            )}] \\n * After : [${e.values.join(',')}] \\n * You must rerun the project to do such a change`\n          );\n        }\n        type = t === enumTypeNameDeprecated ? `\"${t}\"` : `\"${this.schemaName}\".\"${enumTypeName}\"`;\n      }\n    });\n\n    if (!type) {\n      type = `\"${this.schemaName}\".\"${enumTypeName}\"`;\n      const escapedEnumValues = e.values.map((value) => this.sequelize.escape(value)).join(',');\n      queries.unshift(syncHelper.createEnumQuery(type, escapedEnumValues));\n    }\n\n    const comment = this.sequelize.escape(`@enum\\\\n@enumName ${e.name}${e.description ? `\\\\n ${e.description}` : ''}`);\n\n    queries.push(syncHelper.commentOnEnumQuery(type, comment));\n    this.mainQueries.unshift(...queries);\n    this.enumTypeMap.set(enumTypeName, {\n      enumValues: e.values,\n      type: type,\n      name: e.name,\n    });\n  }\n\n  modifyEnum(e: GraphQLEnumsType): void {\n    const enumName = enumNameToHash(e.name);\n    const existingEnum = this.enumTypeMap.get(enumName);\n    if (!existingEnum) {\n      throw new Error(`Enum ${e.name} does not exist`);\n    }\n\n    const newValues = e.values.filter((value) => !existingEnum.enumValues.includes(value));\n    if (newValues.length === 0) {\n      return;\n    }\n\n    // Add each new value in a separate ALTER TYPE query\n    const typeName = `\"${this.schemaName}\".\"${enumName}\"`;\n    for (const value of newValues) {\n      this.mainQueries.push(syncHelper.addEnumValueQuery(typeName, value));\n      // this.mainQueries.push(`ALTER TYPE \"${this.schemaName}\".\"${enumName}\" ADD VALUE IF NOT EXISTS '${value}';`);\n    }\n\n    // Update the enum type map\n    this.enumTypeMap.set(enumName, {\n      name: enumName,\n      type: typeName,\n      enumValues: e.values,\n    });\n  }\n\n  dropEnum(e: GraphQLEnumsType): void {\n    const enumTypeName = enumNameToHash(e.name);\n    const enumTypeNameDeprecated = `${this.schemaName}_enum_${enumNameToHash(e.name)}`;\n\n    [enumTypeName, enumTypeNameDeprecated].forEach((typeName) => {\n      if (this.enumTypeMap.has(typeName)) {\n        this.mainQueries.push(syncHelper.dropEnumQuery(typeName, this.schemaName));\n        this.enumTypeMap.delete(typeName);\n      }\n    });\n  }\n\n  createFullText(model: GraphQLModelsType): void {\n    assert(model.fullText, `Expected fullText to exist on model ${model.name}`);\n\n    const table = modelToTableName(model.name);\n\n    const queries = [\n      syncHelper.createTsVectorColumnQuery(this.schemaName, table, model.fullText.fields, model.fullText.language),\n      syncHelper.createTsVectorCommentQuery(this.schemaName, table),\n      syncHelper.createTsVectorIndexQuery(this.schemaName, table),\n      syncHelper.createSearchFunctionQuery(this.schemaName, table),\n      syncHelper.commentSearchFunctionQuery(this.schemaName, table),\n    ];\n\n    this.mainQueries.push(...queries);\n  }\n\n  dropFullText(model: GraphQLModelsType): void {\n    const table = modelToTableName(model.name);\n\n    const queries = [\n      syncHelper.dropSearchFunctionQuery(this.schemaName, table),\n      syncHelper.dropTsVectorIndexQuery(this.schemaName, table),\n      syncHelper.dropTsVectorColumnQuery(this.schemaName, table),\n    ];\n\n    this.mainQueries.push(...queries);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/db/sequelizeUtil.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport NodeUtil from 'node:util';\nimport {BigInt, Boolean, Bytes, DateObj, Int, Json, SequelizeTypes, String} from '@subql/utils';\nimport {\n  DataType,\n  DataTypes,\n  IndexesOptions,\n  ModelAttributeColumnOptions,\n  TableName,\n  Utils,\n  TableNameWithSchema,\n} from '@subql/x-sequelize';\nimport {underscored} from './sync-helper';\n\n// This method is simplified from https://github.com/sequelize/sequelize/blob/066421c00aad61694dcdbb624d4b73dbac7c7b42/packages/core/src/model-definition.ts#L245\nexport function modelToTableName(modelName: string): string {\n  // Align underscored = true, same as in storeService sequelizeModel\n  return Utils.underscoredIf(Utils.pluralize(modelName), true);\n}\n\nexport function formatColumnName(columnName: string): string {\n  return Utils.underscoredIf(columnName, true);\n}\n\n// Rewrite due to method is not exported from sequelize\n// This method is same from https://github.com/sequelize/sequelize/blob/26beda5bf76bd65e30264ebf135e39efaa7d514d/packages/core/src/utils/string.ts#L89\nexport function generateIndexName(tableName: TableName, index: IndexesOptions): string {\n  const tableNameStr = typeof tableName === 'string' ? tableName : tableName.tableName;\n\n  if (!index.fields) {\n    throw new Error(`Index on table ${tableNameStr} has not fields:\n${NodeUtil.inspect(index)}`);\n  }\n\n  const fields = index.fields.map((field) => {\n    // We always pass string in indexes field\n    if (typeof field === 'string') {\n      return field;\n    }\n    throw new Error(`Generate index name failed, index ${index.name} field should be string type`);\n  });\n\n  let out = `${tableNameStr}_${fields.join('_')}`;\n\n  if (index.unique) {\n    out += '_unique';\n  }\n  return underscored(out);\n}\n\nexport function formatReferences(columnOptions: ModelAttributeColumnOptions, schema: string): string {\n  if (!columnOptions.references) {\n    return '';\n  }\n  assert(typeof columnOptions.references !== 'string', 'reference is type string');\n  assert(typeof columnOptions.references.model !== 'string', 'reference.model is type string');\n  let referenceStatement = `REFERENCES \"${schema}\".\"${\n    (columnOptions.references.model as TableNameWithSchema).tableName\n  }\" (\"${columnOptions.references.key}\")`;\n  if (columnOptions.onDelete) {\n    referenceStatement += ` ON DELETE ${columnOptions.onDelete}`;\n  }\n  if (columnOptions.onUpdate) {\n    referenceStatement += ` ON UPDATE ${columnOptions.onUpdate}`;\n  }\n  return referenceStatement;\n}\n\nexport function formatAttributes(\n  columnOptions: ModelAttributeColumnOptions,\n  schema: string,\n  withoutForeignKey: boolean\n): string {\n  const type = formatDataType(columnOptions.type);\n  const allowNull = columnOptions.allowNull === false ? 'NOT NULL' : '';\n  const unique = columnOptions.unique ? 'UNIQUE' : '';\n  const autoIncrement = columnOptions.autoIncrement ? 'AUTO_INCREMENT' : ''; //  PostgreSQL\n\n  const references = formatReferences(columnOptions, schema);\n\n  return `${type} ${allowNull} ${unique} ${autoIncrement} ${withoutForeignKey ? '' : references}`.trim();\n}\n\n// TODO this should be using TypeClass.types['dbType'] instead of TypeClass.key\nconst sequelizeToPostgresTypeMap = {\n  [DataTypes.STRING.name]: (dataType: DataType) => String.sequelizeType,\n  [DataTypes.INTEGER.name]: () => Int.sequelizeType,\n  [DataTypes.BIGINT.name]: () => BigInt.sequelizeType,\n  [DataTypes.UUID.name]: () => DataTypes.UUID,\n  [DataTypes.BOOLEAN.name]: () => Boolean.sequelizeType,\n  [DataTypes.FLOAT.name]: () => 'double precision', // to maintain compatibility we will use float8\n  [DataTypes.DATE.name]: () => DateObj.sequelizeType,\n  [DataTypes.JSONB.name]: () => Json.sequelizeType,\n  [DataTypes.RANGE.name]: () => 'int8range',\n  [DataTypes.BLOB.name]: () => 'bytea',\n};\n\nexport function formatDataType(dataType: DataType): SequelizeTypes {\n  if (typeof dataType === 'string') {\n    return dataType;\n  } else {\n    const formatter = sequelizeToPostgresTypeMap[dataType.key];\n    if (!formatter) {\n      throw new Error(`Unsupported data type: ${dataType.key}`);\n    }\n    return formatter(dataType);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/db/sync-helper.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {GraphQLModelsType} from '@subql/utils';\nimport {Model, ModelAttributeColumnOptions, ModelStatic, Sequelize} from '@subql/x-sequelize';\nimport {formatDataType, formatReferences} from './sequelizeUtil';\nimport {\n  sortModels,\n  getFkConstraint,\n  getExistingEnums,\n  generateForeignKeyQuery,\n  generateCreateTableQuery,\n  generateCreateIndexQuery,\n} from './sync-helper';\n\njest.mock('@subql/x-sequelize', () => {\n  const actualSequelize = jest.requireActual('@subql/x-sequelize');\n  return {\n    ...actualSequelize,\n    Sequelize: jest.fn().mockImplementation(() => ({\n      authenticate: jest.fn(),\n      define: jest.fn().mockReturnValue({\n        findOne: jest.fn(),\n        create: jest.fn((input) => input),\n      }),\n      query: jest.fn(), // Leave this generic for now\n      showAllSchemas: jest.fn().mockResolvedValue(['enum-sync-1']),\n      model: jest.fn().mockReturnValue({upsert: jest.fn()}),\n      sync: jest.fn(),\n      transaction: jest.fn().mockReturnValue({\n        commit: jest.fn(),\n        rollback: jest.fn(),\n        afterCommit: jest.fn(),\n      }),\n    })),\n  };\n});\n\ndescribe('sync-helper', () => {\n  const mockModel = {\n    schema: {\n      name: 'test',\n    },\n    tableName: 'test-table',\n    options: {\n      indexes: [\n        {\n          fields: ['from_id', '_block_range'],\n          unique: false,\n          using: 'gist',\n          name: '0xf48017d5c5d3d768',\n          type: '',\n          parser: null,\n        },\n        {\n          fields: ['id'],\n          unique: false,\n          name: '0xb91efc8ed4021e6e',\n          type: '',\n          parser: null,\n        },\n      ],\n    },\n    getAttributes: () => {\n      return {\n        // ID\n        id: {\n          type: 'text',\n          comment: 'id field is always required and must look like this',\n          allowNull: false,\n          primaryKey: false,\n          fieldName: 'id',\n          _modelAttribute: true,\n          field: 'id',\n        },\n        // BIGINT\n        amount: {\n          type: 'numeric',\n          comment: 'Amount that is transferred',\n          allowNull: false,\n          primaryKey: false,\n          fieldName: 'amount',\n          _modelAttribute: true,\n          field: 'amount',\n        },\n        // TIMESTAMP\n        date: {\n          type: 'timestamp',\n          comment: 'The date of the transfer',\n          allowNull: false,\n          primaryKey: false,\n          fieldName: 'date',\n          _modelAttribute: true,\n          field: 'date',\n        },\n        // RELATION with HISTORICAL\n        fromId: {\n          type: 'text',\n          comment: 'The account that transfers are made from',\n          allowNull: false,\n          primaryKey: false,\n          fieldName: 'fromId',\n          _modelAttribute: true,\n          field: 'from_id',\n        },\n        // UUID\n        __id: {\n          type: {\n            key: 'UUID',\n          },\n          defaultValue: {},\n          allowNull: false,\n          primaryKey: true,\n          fieldName: '__id',\n          _modelAttribute: true,\n          field: '_id',\n        },\n        // HISTORICAL RANGE\n        __block_range: {\n          type: {\n            key: 'RANGE',\n            _subtype: 'BIGINT',\n            options: {\n              subtype: {\n                options: {},\n              },\n            },\n          },\n          allowNull: false,\n          fieldName: '__block_range',\n          _modelAttribute: true,\n          field: '_block_range',\n        },\n        // NULLABLE\n        lastTransferBlock: {\n          type: 'integer',\n          comment: 'The most recent block on which we see a transfer involving this account',\n          allowNull: true,\n          primaryKey: false,\n          fieldName: 'lastTransferBlock',\n          _modelAttribute: true,\n          field: 'last_transfer_block',\n        },\n      };\n    },\n  } as unknown as ModelStatic<Model<any, any>>;\n\n  it('Ensure correct fkConstraint', () => {\n    console.log(getFkConstraint('many_to_many_test_entities', 'AccountId'));\n    expect(getFkConstraint('ManyToManyTestEntities', 'AccountId')).toBe('many_to_many_test_entities_account_id_fkey');\n  });\n\n  it('Generate SQL statement for table creation with historical', () => {\n    const statement = generateCreateTableQuery(mockModel, 'test', false);\n    const expectedStatement = [\n      'CREATE TABLE IF NOT EXISTS \"test\".\"test-table\" (\"id\" text NOT NULL,\\n      \"amount\" numeric NOT NULL,\\n      \"date\" timestamp NOT NULL,\\n      \"from_id\" text NOT NULL,\\n      \"_id\" UUID NOT NULL,\\n      \"_block_range\" int8range NOT NULL,\\n      \"last_transfer_block\" integer, PRIMARY KEY (\"_id\"));',\n\n      {\n        sql: `COMMENT ON COLUMN \"test\".\"test-table\".\"id\" IS ?;`,\n        replacements: [`id field is always required and must look like this`],\n      },\n      {sql: `COMMENT ON COLUMN \"test\".\"test-table\".\"amount\" IS ?;`, replacements: [`Amount that is transferred`]},\n      {sql: `COMMENT ON COLUMN \"test\".\"test-table\".\"date\" IS ?;`, replacements: [`The date of the transfer`]},\n      {\n        sql: `COMMENT ON COLUMN \"test\".\"test-table\".\"from_id\" IS ?;`,\n        replacements: [`The account that transfers are made from`],\n      },\n      {\n        sql: `COMMENT ON COLUMN \"test\".\"test-table\".\"last_transfer_block\" IS ?;`,\n        replacements: [`The most recent block on which we see a transfer involving this account`],\n      },\n    ];\n    expect(statement).toStrictEqual(expectedStatement);\n  });\n\n  it('Generate SQL statement for Indexes', () => {\n    const statement = generateCreateIndexQuery(\n      mockModel.options.indexes as any,\n      mockModel.schema.name,\n      mockModel.tableName\n    );\n    expect(statement).toStrictEqual([\n      `CREATE  INDEX IF NOT EXISTS \"0xf48017d5c5d3d768\" ON \"test\".\"${mockModel.tableName}\" USING gist (\"from_id\", \"_block_range\");`,\n      `CREATE  INDEX IF NOT EXISTS \"0xb91efc8ed4021e6e\" ON \"test\".\"${mockModel.tableName}\"  (\"id\");`,\n    ]);\n  });\n\n  it('Generate table statement no historical, no multi primary keys', () => {\n    jest.spyOn(mockModel, 'getAttributes').mockImplementationOnce(() => {\n      return {\n        id: {\n          type: 'text',\n          comment: 'id field is always required and must look like this',\n          allowNull: false,\n          primaryKey: true,\n          fieldName: 'id',\n          _modelAttribute: true,\n          field: 'id',\n        },\n      };\n    });\n    const statement = generateCreateTableQuery(mockModel, 'test', false);\n    expect(statement).toStrictEqual([\n      `CREATE TABLE IF NOT EXISTS \"test\".\"test-table\" (\"id\" text NOT NULL, PRIMARY KEY (\"id\"));`,\n      {\n        sql: `COMMENT ON COLUMN \"test\".\"test-table\".\"id\" IS ?;`,\n        replacements: ['id field is always required and must look like this'],\n      },\n    ]);\n  });\n\n  it('Reference statement', () => {\n    const attribute = {\n      type: 'text',\n      comment: 'The account that transfers are made from',\n      allowNull: false,\n      primaryKey: false,\n      fieldName: 'fromId',\n      _modelAttribute: true,\n      field: 'from_id',\n      references: {\n        model: {\n          tableName: 'accounts',\n          table: 'accounts',\n          name: 'Account',\n          schema: 't-sync-4',\n          delimiter: '.',\n        },\n        key: 'id',\n      },\n      onDelete: 'NO ACTION',\n      onUpdate: 'CASCADE',\n    } as ModelAttributeColumnOptions;\n\n    const statement = formatReferences(attribute, 'test');\n    expect(statement).toBe(`REFERENCES \"test\".\"accounts\" (\"id\") ON DELETE NO ACTION ON UPDATE CASCADE`);\n  });\n\n  it('Ensure correct foreignkey statement', () => {\n    jest.spyOn(mockModel, 'getAttributes').mockImplementationOnce(() => {\n      return {\n        transferIdId: {\n          type: 'text',\n          comment: undefined,\n          allowNull: false,\n          primaryKey: false,\n          field: 'transfer_id_id',\n          references: {\n            model: {\n              schema: 'test',\n              tableName: 'transfers',\n            },\n            key: 'id',\n          },\n          onDelete: 'NO ACTION',\n          onUpdate: 'CASCADE',\n        },\n      } as any;\n    });\n\n    const referenceQueries: string[] = [];\n    Object.values(mockModel.getAttributes()).forEach((a) => {\n      const refStatement = generateForeignKeyQuery(a, mockModel.tableName);\n      if (refStatement) {\n        referenceQueries.push(refStatement);\n      }\n    });\n\n    expect(referenceQueries[0]).toBe(\n      `DO $$\n  BEGIN\n    ALTER TABLE \"test\".\"test-table\"\n      ADD\n      CONSTRAINT test-table_transfer_id_id_fkey\n      FOREIGN KEY (transfer_id_id)\n      REFERENCES \"test\".\"transfers\" (id) ON DELETE NO ACTION ON UPDATE CASCADE;\n  EXCEPTION\n    WHEN duplicate_object THEN\n        RAISE NOTICE 'Constraint already exists. Ignoring...';\n  END$$;;`\n    );\n  });\n  it('sortModel with toposort on cyclic schema', () => {\n    const mockRelations = [\n      {\n        from: 'Transfer',\n        to: 'Account',\n      },\n      {\n        from: 'Account',\n        to: 'Transfer',\n      },\n    ] as any[];\n    const mockModels = [\n      {\n        name: 'Transfer',\n      },\n      {\n        name: 'Account',\n      },\n    ] as GraphQLModelsType[];\n    expect(sortModels(mockRelations, mockModels)).toBe(null);\n  });\n  it('sortModel with toposort on non cyclic schema', () => {\n    const mockRelations = [\n      {\n        from: 'Transfer',\n        to: 'TestEntity',\n      },\n      {\n        from: 'Account',\n        to: 'TestEntity',\n      },\n    ] as any[];\n    const mockModels = [\n      {\n        name: 'Transfer',\n      },\n      {\n        name: 'Account',\n      },\n      {\n        name: 'TestEntity',\n      },\n      {\n        name: 'LonelyEntity',\n      },\n    ] as GraphQLModelsType[];\n    expect(sortModels(mockRelations, mockModels)).toEqual([\n      {\n        name: 'LonelyEntity',\n      },\n      {\n        name: 'Account',\n      },\n      {\n        name: 'Transfer',\n      },\n      {\n        name: 'TestEntity',\n      },\n    ]);\n  });\n\n  it('Ensure correct enumTypeMap', async () => {\n    const sequelize = new Sequelize() as any;\n    sequelize.query.mockResolvedValue([\n      {enum_value: 'GOOD', type_name: '1a131454ff'},\n      {enum_value: 'BAD', type_name: '1a131454ff'},\n      {enum_value: 'NEUTRAL', type_name: '1a131454ff'},\n      {enum_value: 'CHAOS', type_name: '1a131454ff'},\n      {enum_value: 'DROP', type_name: 'e9b7360cdc'},\n    ]);\n\n    const v = await getExistingEnums('enum-sync-1', sequelize);\n\n    const expectedMap = [\n      [\n        '1a131454ff',\n        {\n          enumValues: ['GOOD', 'BAD', 'NEUTRAL', 'CHAOS'],\n        },\n      ],\n      [\n        'e9b7360cdc',\n        {\n          enumValues: ['DROP'],\n        },\n      ],\n    ];\n\n    expect(Array.from(v.entries())).toEqual(expectedMap);\n  });\n\n  it('sequelize to correct postgres type map', () => {\n    // TODO this should be using {types: postgres: ['jsonb']} instead of its key\n    const v = formatDataType({key: 'JSONB'} as any);\n    expect(v.toString()).toBe('JSONB');\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/db/sync-helper.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {INestApplication} from '@nestjs/common';\nimport {Test} from '@nestjs/testing';\nimport {delay} from '@subql/common';\nimport {hashName} from '@subql/utils';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {PoolClient} from 'pg';\nimport {NodeConfig} from '../configure/NodeConfig';\nimport {DbModule} from './db.module';\nimport {createSendNotificationTriggerFunction, createNotifyTrigger, getDbSizeAndUpdateMetadata} from './sync-helper';\n\nconst nodeConfig = new NodeConfig({subquery: 'packages/node-core/test/v1.0.0', subqueryName: 'test'});\n\ndescribe('sync helper test', () => {\n  let app: INestApplication;\n  let sequelize: Sequelize;\n  let schema: string;\n\n  afterEach(async () => {\n    await sequelize.dropSchema(schema, {});\n    await sequelize.close();\n    return app?.close();\n  });\n\n  it('can check project db size', async () => {\n    const module = await Test.createTestingModule({\n      imports: [DbModule.forRootWithConfig(nodeConfig)],\n    }).compile();\n\n    app = module.createNestApplication();\n    await app.init();\n    sequelize = app.get(Sequelize);\n    schema = 'admin-test';\n    await sequelize.createSchema(schema, {});\n    // mock create metadata table\n    await sequelize.query(`\n      CREATE TABLE IF NOT EXISTS \"${schema}\"._metadata (\n        key VARCHAR(255) NOT NULL PRIMARY KEY,\n        value JSONB,\n        \"createdAt\" TIMESTAMP WITH TIME ZONE NOT NULL,\n        \"updatedAt\" TIMESTAMP WITH TIME ZONE NOT NULL\n    )`);\n    const dbSize = await getDbSizeAndUpdateMetadata(sequelize, schema);\n    expect(dbSize).not.toBeUndefined();\n  }, 50000);\n\n  describe('has the correct notification trigger payload', () => {\n    let client: PoolClient;\n\n    afterEach(async () => {\n      if (client) {\n        await (client as any).query('UNLISTEN \"0xc4e66f9e1358fa3c\"');\n        (client as any).removeAllListeners('notification');\n        sequelize.connectionManager.releaseConnection(client);\n      }\n    });\n\n    it('without historical', async () => {\n      const module = await Test.createTestingModule({\n        imports: [DbModule.forRootWithConfig(nodeConfig)],\n      }).compile();\n\n      app = module.createNestApplication();\n      await app.init();\n      sequelize = app.get(Sequelize);\n      schema = 'trigger-test';\n      const tableName = 'test';\n      await sequelize.createSchema(schema, {});\n      // mock create metadata table\n      await sequelize.query(`\n        CREATE TABLE IF NOT EXISTS \"${schema}\".${tableName} (\n          id text NOT NULL,\n          block_number int4 NOT NULL\n      )`);\n\n      await sequelize.query(createSendNotificationTriggerFunction(schema));\n      await sequelize.query(createNotifyTrigger(schema, tableName));\n\n      client = (await sequelize.connectionManager.getConnection({\n        type: 'read',\n      })) as PoolClient;\n\n      await client.query('LISTEN \"0xc4e66f9e1358fa3c\"');\n\n      const listener = jest.fn();\n      (client as any).on('notification', (msg: any) => {\n        console.log('Payload:', msg.payload);\n        listener(msg.payload);\n      });\n\n      await sequelize.query(`INSERT INTO \"${schema}\".${tableName} (id, block_number) VALUES ('1', 1);`);\n      await sequelize.query(`UPDATE \"${schema}\".${tableName} SET block_number = 2 WHERE id = '1';`);\n      await sequelize.query(`DELETE FROM \"${schema}\".${tableName} WHERE id = '1';`);\n      await delay(1);\n      expect(listener).toHaveBeenNthCalledWith(\n        1,\n        `{\"id\": \"1\", \"_entity\": {\"id\": \"1\", \"block_number\": 1}, \"mutation_type\": \"INSERT\"}`\n      );\n      expect(listener).toHaveBeenNthCalledWith(\n        2,\n        `{\"id\": \"1\", \"_entity\": {\"id\": \"1\", \"block_number\": 2}, \"mutation_type\": \"UPDATE\"}`\n      );\n      expect(listener).toHaveBeenNthCalledWith(\n        3,\n        `{\"id\": \"1\", \"_entity\": {\"id\": \"1\", \"block_number\": 2}, \"mutation_type\": \"DELETE\"}`\n      );\n    }, 10_000);\n\n    it('with historical', async () => {\n      const module = await Test.createTestingModule({\n        imports: [DbModule.forRootWithConfig(nodeConfig)],\n      }).compile();\n\n      app = module.createNestApplication();\n      await app.init();\n      sequelize = app.get(Sequelize);\n      schema = 'trigger-test';\n      const tableName = 'test';\n      await sequelize.createSchema(schema, {});\n      // mock create metadata table\n      await sequelize.query(`\n        CREATE TABLE IF NOT EXISTS \"${schema}\".${tableName} (\n          id text NOT NULL,\n          block_number int4 NOT NULL,\n          \"_id\" uuid NOT NULL,\n          \"_block_range\" int8range NOT NULL,\n          CONSTRAINT test_pk PRIMARY KEY (_id)\n      )`);\n\n      await sequelize.query(createSendNotificationTriggerFunction(schema));\n      await sequelize.query(createNotifyTrigger(schema, tableName));\n\n      client = (await sequelize.connectionManager.getConnection({\n        type: 'read',\n      })) as PoolClient;\n\n      await (client as any).query('LISTEN \"0xc4e66f9e1358fa3c\"');\n\n      const listener = jest.fn();\n\n      (client as any).on('notification', (msg: any) => {\n        console.log('Payload:', msg.payload);\n        listener(msg.payload);\n      });\n\n      // Insert\n      await sequelize.query(\n        `INSERT INTO \"${schema}\".${tableName} (id, block_number, _id, _block_range) VALUES ('1', 1, 'adde2f8c-cb87-4e84-9600-77f434556e6d', int8range(1, NULL));`\n      );\n\n      // Simulate Update\n      const tx1 = await sequelize.transaction();\n      await sequelize.query(\n        `INSERT INTO \"${schema}\".${tableName} (id, block_number, _id, _block_range) VALUES ('1', 2, '9396aca4-cef2-4b52-98a7-c5f1ed3edb81', int8range(2, NULL));`\n      );\n      await sequelize.query(\n        `UPDATE \"${schema}\".${tableName} SET block_number = 2, _block_range = int8range(1, 2) WHERE _id = 'adde2f8c-cb87-4e84-9600-77f434556e6d';`,\n        {transaction: tx1}\n      );\n      await tx1.commit();\n\n      // Simulate delete\n      const tx2 = await sequelize.transaction();\n      await sequelize.query(\n        `UPDATE \"${schema}\".${tableName} SET _block_range = int8range(2, 3) WHERE _id = '9396aca4-cef2-4b52-98a7-c5f1ed3edb81';`,\n        {transaction: tx2}\n      );\n      await tx2.commit();\n\n      await delay(1);\n      // There is a limitation with our historical implementation where with the order or queries means we cant easily determine the difference between insert and update.\n      // For that reason the behaviour is kept the same as before delete was fixed.\n      expect(listener).toHaveBeenNthCalledWith(\n        1,\n        `{\"id\": \"1\", \"_entity\": {\"id\": \"1\", \"_id\": \"adde2f8c-cb87-4e84-9600-77f434556e6d\", \"block_number\": 1}, \"_block_height\": 1, \"mutation_type\": \"UPDATE\"}`\n      );\n      expect(listener).toHaveBeenNthCalledWith(\n        2,\n        `{\"id\": \"1\", \"_entity\": {\"id\": \"1\", \"_id\": \"9396aca4-cef2-4b52-98a7-c5f1ed3edb81\", \"block_number\": 2}, \"_block_height\": 2, \"mutation_type\": \"UPDATE\"}`\n      );\n      expect(listener).toHaveBeenNthCalledWith(\n        3,\n        `{\"id\": \"1\", \"_entity\": {\"id\": \"1\", \"_id\": \"9396aca4-cef2-4b52-98a7-c5f1ed3edb81\", \"block_number\": 2}, \"_block_height\": 2, \"mutation_type\": \"DELETE\"}`\n      );\n    }, 10_000);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/db/sync-helper.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {hashName, blake2AsHex, IndexType, GraphQLModelsType, GraphQLRelationsType} from '@subql/utils';\nimport {\n  DataTypes,\n  IndexesOptions,\n  Model,\n  ModelAttributeColumnOptions,\n  ModelAttributes,\n  ModelStatic,\n  QueryTypes,\n  Sequelize,\n  TableNameWithSchema,\n  Utils,\n} from '@subql/x-sequelize';\nimport {ModelAttributeColumnReferencesOptions, ModelIndexesOptions} from '@subql/x-sequelize/types/model';\nimport {MultiChainRewindEvent} from '../events';\nimport {MultiChainRewindStatus} from '../indexer';\nimport {EnumType} from '../utils';\nimport {formatAttributes, generateIndexName, modelToTableName} from './sequelizeUtil';\n\nconst Toposort = require('toposort-class');\n\nexport type Query = {\n  sql: string;\n  replacements?: any[]; // TODO be stricter with type\n};\n\n/**\n * @deprecated use Query instead for increased security\n * */\nexport type QueryString = Query | string;\n\nexport function isQuery(input: QueryString): input is Query {\n  return (input as any).sql;\n}\n\nexport interface SmartTags {\n  foreignKey?: string;\n  foreignFieldName?: string;\n  singleForeignFieldName?: string;\n}\n\nconst tagOrder = {\n  foreignKey: 0,\n  foreignFieldName: 1,\n  singleForeignFieldName: 2,\n};\n\nexport interface NotifyTriggerPayload {\n  triggerName: string;\n  eventManipulation: string;\n}\n\nconst NotifyTriggerManipulationType = [`INSERT`, `DELETE`, `UPDATE`];\n\nconst byTagOrder = (a: [keyof SmartTags, any], b: [keyof SmartTags, any]) => {\n  return tagOrder[a[0]] - tagOrder[b[0]];\n};\n\nexport function smartTags(tags: SmartTags, separator = '\\n'): string {\n  return (Object.entries(tags) as [keyof SmartTags, any][])\n    .sort(byTagOrder)\n    .map(([k, v]) => `@${k} ${v}`)\n    .join(separator);\n}\n\nexport function getVirtualFkTag(field: string, to: string): string {\n  return `(${underscored(field)}) REFERENCES ${to} (id)`;\n}\n\nexport const underscored = (input: string) => Utils.underscoredIf(input, true);\n\nexport function getFkConstraint(tableName: string, foreignKey: string): string {\n  return [tableName, foreignKey, 'fkey'].map(underscored).join('_');\n}\n\nexport function getUniqConstraint(tableName: string, field: string): string {\n  return [tableName, field, 'uindex'].map(underscored).join('_');\n}\n\nfunction escapedName(...args: string[]): string {\n  return args.map((a) => `\"${a}\"`).join('.');\n}\n\nfunction commentOn(\n  type: 'CONSTRAINT' | 'TABLE' | 'COLUMN' | 'FUNCTION',\n  entity: string,\n  comment: string,\n  constraint?: string\n): Query {\n  const constraintPart = constraint ? `${constraint} ON ` : '';\n  return {sql: `COMMENT ON ${type} ${constraintPart}${entity} IS ?;`, replacements: [comment]};\n}\n\nexport function commentConstraintQuery(schema: string, table: string, constraint: string, comment: string): Query {\n  return commentOn('CONSTRAINT', escapedName(schema, table), comment, constraint);\n}\n\nexport function commentTableQuery(schema: string, table: string, comment: string): Query {\n  return commentOn('TABLE', escapedName(schema, table), comment);\n}\n\nexport function commentColumnQuery(schema: string, table: string, column: string, comment: string): Query {\n  return commentOn('COLUMN', escapedName(schema, table, column), comment);\n}\n\nexport function commentOnFunction(schema: string, functionName: string, comment: string): Query {\n  return commentOn('FUNCTION', escapedName(schema, functionName), comment);\n}\n\n// This is used when historical is disabled so that we can perform bulk updates\nexport function constraintDeferrableQuery(table: string, constraint: string): string {\n  return `ALTER TABLE ${table} ALTER CONSTRAINT ${constraint} DEFERRABLE INITIALLY IMMEDIATE`;\n}\n\nexport function addTagsToForeignKeyMap(\n  map: Map<string, Map<string, SmartTags>>,\n  tableName: string,\n  foreignKey: string,\n  newTags: SmartTags\n): void {\n  if (!map.has(tableName)) {\n    map.set(tableName, new Map<string, SmartTags>());\n  }\n  const tableKeys = map.get(tableName);\n  let foreignKeyTags = tableKeys?.get(foreignKey) || ({} as SmartTags);\n  foreignKeyTags = Object.assign(foreignKeyTags, newTags);\n  tableKeys?.set(foreignKey, foreignKeyTags);\n}\n\nexport const BTREE_GIST_EXTENSION_EXIST_QUERY = `SELECT * FROM pg_extension where extname = 'btree_gist'`;\n\nexport function createUniqueIndexQuery(schema: string, table: string, field: string): string {\n  return `create unique index if not exists \"${getUniqConstraint(\n    table,\n    field\n  )}\" on \"${schema}\".\"${table}\" (${underscored(field)})`;\n}\n\n// Subscriptions\nexport async function getTriggers(sequelize: Sequelize, triggerName: string): Promise<any[]> {\n  return sequelize.query(\n    `select trigger_name as \"triggerName\", event_manipulation as \"eventManipulation\" from information_schema.triggers\n          WHERE trigger_name = :triggerName`,\n    {\n      replacements: {triggerName},\n      type: QueryTypes.SELECT,\n    }\n  );\n}\n\nexport async function getFunctions(sequelize: Sequelize, schema: string, functionName: string): Promise<any[]> {\n  return sequelize.query(\n    `SELECT\n         routine_schema as function_schema,\n         routine_name as function_name\n     FROM\n         information_schema.routines\n     WHERE\n         specific_schema not in ('pg_catalog', 'information_schema')\n       and routine_type = 'FUNCTION'\n       and routine_schema = :schema\n       and routine_name = :functionName;\n    `,\n    {\n      replacements: {schema, functionName},\n      type: QueryTypes.SELECT,\n    }\n  );\n}\n\nexport function createSendNotificationTriggerFunction(schema: string): string {\n  return `\nCREATE OR REPLACE FUNCTION \"${schema}\".send_notification()\n    RETURNS trigger AS $$\nDECLARE\n    channel TEXT;\n    table_name TEXT;\n    row RECORD;\n    payload JSONB;\n    prev_entity BOOLEAN;\n    next_entity BOOLEAN;\nBEGIN\n    channel:= TG_ARGV[0];\n    table_name:= TG_TABLE_NAME;\n    IF (TG_OP = 'DELETE') THEN\n        row = OLD;\n    ELSE\n        row = NEW;\n    END IF;\n    payload = jsonb_build_object(\n            'id', row.id,\n            'mutation_type', TG_OP,\n            '_entity', row);\n    IF payload -> '_entity' ? '_block_range' then\n        payload = payload #- '{\"_entity\",\"_block_range\"}';\n        payload = payload || jsonb_build_object('_block_height', lower(row._block_range));\n        IF NOT upper_inf(row._block_range) then\n          -- Check if a newer version of the entity exists to determine operation\n          EXECUTE FORMAT(\n            'SELECT EXISTS (SELECT 1 FROM \"${schema}\".%I WHERE id = $1 AND lower(_block_range) = upper($2))',\n            TG_TABLE_NAME\n          )\n          INTO next_entity\n          USING row.id, row._block_range;\n\n          IF NOT next_entity THEN\n            payload = payload || '{\"mutation_type\": \"DELETE\"}';\n          ELSE\n            RETURN NULL;\n          END IF;\n        ELSE\n          -- Because of the oerder of operations with historical, we cannot determine if this is an update or insert\n          payload = payload || '{\"mutation_type\": \"UPDATE\"}';\n          -- EXECUTE FORMAT(\n          --   'SELECT EXISTS (SELECT 1 FROM \"${schema}\".%I WHERE id = $1 AND upper(_block_range) = lower($2))',\n          --   TG_TABLE_NAME\n          -- )\n          -- INTO prev_entity\n          -- USING row.id, row._block_range;\n          -- IF NOT prev_entity THEN\n          --   payload = payload || '{\"mutation_type\": \"INSERT\"}';\n          -- ELSE\n          --   payload = payload || '{\"mutation_type\": \"UPDATE\"}';\n          -- END IF;\n        END IF;\n    END IF;\n    IF (octet_length(payload::text) >= 8000) THEN\n        payload = payload || '{\"_entity\": null}';\n    END IF;\n    PERFORM pg_notify(\n            channel::text,\n            payload::text);\n    RETURN NULL;\nEND;\n$$ LANGUAGE plpgsql;`;\n}\n\nexport function createNotifyTrigger(schema: string, table: string): string {\n  const triggerName = hashName(schema, 'notify_trigger', table);\n  const channelName = hashName(schema, 'notify_channel', table);\n  return `\nDO $$\nBEGIN\n    CREATE TRIGGER \"${triggerName}\" AFTER INSERT OR UPDATE OR DELETE\n    ON \"${schema}\".\"${table}\"\n    FOR EACH ROW EXECUTE FUNCTION \"${schema}\".send_notification('${channelName}');\nEXCEPTION\n    WHEN duplicate_object THEN\n        RAISE NOTICE 'Trigger already exists. Ignoring...';\nEND$$;\n  `;\n}\n\nfunction dropTrigger(schema: string, table: string, triggerName: string): string {\n  return `DROP TRIGGER IF EXISTS \"${triggerName}\"\n    ON \"${schema}\".\"${table}\";`;\n}\n\nexport function dropNotifyTrigger(schema: string, table: string): string {\n  const triggerName = hashName(schema, 'notify_trigger', table);\n  return dropTrigger(schema, table, triggerName);\n}\n\nfunction dropFunction(schema: string, functionName: string): string {\n  return `DROP FUNCTION IF EXISTS \"${schema}\".\"${functionName}\";`;\n}\n\nexport function dropNotifyFunction(schema: string): string {\n  return dropFunction(schema, 'send_notification');\n}\n\n// Hot schema reload, _metadata table\n// Should also use Idempotent\nexport function createSchemaTrigger(schema: string, metadataTableName: string): string {\n  const triggerName = hashName(schema, 'schema_trigger', metadataTableName);\n  return `\n  CREATE TRIGGER \"${triggerName}\"\n    AFTER UPDATE\n    ON \"${schema}\".\"${metadataTableName}\"\n    FOR EACH ROW\n    WHEN ( new.key = 'schemaMigrationCount')\n    EXECUTE FUNCTION \"${schema}\".schema_notification();`;\n}\n\nexport function createSchemaTriggerFunction(schema: string): string {\n  return `\n  CREATE OR REPLACE FUNCTION \"${schema}\".schema_notification()\n    RETURNS trigger AS $$\n  BEGIN\n    PERFORM pg_notify(\n            '${hashName(schema, 'schema_channel', '_metadata')}',\n            'schema_updated');\n    RETURN NULL;\n  END;\n  $$ LANGUAGE plpgsql;`;\n}\n\nexport function createRewindTrigger(schema: string): string {\n  const triggerName = hashName(schema, 'rewind_trigger', '_global');\n\n  return `\n  CREATE TRIGGER \"${triggerName}\"\n    AFTER INSERT OR UPDATE OR DELETE\n    ON \"${schema}\".\"_global\"\n    FOR EACH ROW\n    EXECUTE FUNCTION \"${schema}\".rewind_notification();\n    `;\n}\n\nexport function createRewindTriggerFunction(schema: string): string {\n  const triggerName = hashName(schema, 'rewind_trigger', '_global');\n\n  return `\n  CREATE OR REPLACE FUNCTION \"${schema}\".rewind_notification()\n    RETURNS trigger AS $$\n    BEGIN\n      IF TG_OP = 'INSERT' THEN\n        PERFORM pg_notify(\n          '${triggerName}',\n          format('{\"event\":\"%s\",\"chainId\":\"%s\"}', '${MultiChainRewindEvent.Rewind}', NEW.\"chainId\")\n        );\n      ELSIF TG_OP = 'UPDATE' THEN\n        IF NEW.status = '${MultiChainRewindStatus.Complete}' THEN\n          PERFORM pg_notify(\n            '${triggerName}',\n            format('{\"event\":\"%s\",\"chainId\":\"%s\"}', '${MultiChainRewindEvent.RewindComplete}', NEW.\"chainId\")\n          );\n        ELSIF NEW.\"rewindTimestamp\" < OLD.\"rewindTimestamp\" THEN\n          PERFORM pg_notify(\n            '${triggerName}',\n            format('{\"event\":\"%s\",\"chainId\":\"%s\"}', '${MultiChainRewindEvent.RewindTimestampDecreased}', NEW.\"chainId\")\n          );\n        END IF;\n      ELSIF TG_OP = 'DELETE' THEN\n        PERFORM pg_notify(\n          '${triggerName}',\n          format('{\"event\":\"%s\",\"chainId\":\"%s\"}', '${MultiChainRewindEvent.FullyRewind}', OLD.\"chainId\")\n        );\n      END IF;\n\n      RETURN NULL;\n    END;\n    $$ LANGUAGE plpgsql;\n  `;\n}\n\nexport function getExistedIndexesQuery(schema: string): string {\n  return `SELECT indexname FROM pg_indexes WHERE schemaname = '${schema}'`;\n}\n\nexport async function getDbSizeAndUpdateMetadata(sequelize: Sequelize, schema: string): Promise<bigint> {\n  const [result] = (\n    await sequelize.query(\n      `\n        WITH schema_size AS (\n          SELECT sum(pg_total_relation_size(quote_ident(schemaname) || '.' || quote_ident(tablename)))::bigint AS size\n        FROM pg_tables\n        WHERE schemaname = :schema\n          )\n        INSERT INTO \"${schema}\"._metadata (key, value, \"createdAt\", \"updatedAt\")\n        VALUES ('dbSize', to_jsonb((SELECT size FROM schema_size)), now(), now())\n        ON CONFLICT (key)\n          DO UPDATE SET value = to_jsonb((SELECT size FROM schema_size)), \"updatedAt\" = now()\n               RETURNING (SELECT size FROM schema_size) AS size;\n      `,\n      {\n        replacements: {schema},\n        type: QueryTypes.INSERT,\n      }\n    )\n  )[0] as unknown as {size: number}[];\n\n  return BigInt(result.size);\n}\n\n// SQL improvement\nconst DEFAULT_SQL_EXE_BATCH = 2000;\n\n/**\n * Improve SQL which could potentially increase DB IO significantly,\n * this executes it by batch size, and in ASC id order\n **/\nexport const sqlIterator = (tableName: string, sql: string, batch: number = DEFAULT_SQL_EXE_BATCH): string => {\n  return `\n  DO $$\n  DECLARE\n    start_id INT;\n    end_id INT;\n    batch_size INT := ${batch};\n    current_id INT;\n  BEGIN\n    SELECT MIN(id), MAX(id) INTO start_id, end_id FROM ${tableName};\n\n    IF start_id IS NOT NULL AND end_id IS NOT NULL THEN\n        FOR current_id IN start_id..end_id BY batch_size LOOP\n            ${sql};\n        END LOOP;\n    END IF;\n  END $$\n  `;\n};\n\n// Only used with historical to add indexes to ID fields for getting entities by ID\nexport function addHistoricalIdIndex(model: GraphQLModelsType, indexes: IndexesOptions[]): void {\n  const idFieldName = model.fields.find((field) => field.type === 'ID')?.name;\n  if (idFieldName && !indexes.find((idx) => idx.fields?.includes(idFieldName))) {\n    indexes.push({\n      fields: [Utils.underscoredIf(idFieldName, true)],\n      unique: false,\n    });\n  }\n}\n\nexport function generateHashedIndexName(modelName: string, indexOptions: IndexesOptions): string {\n  return blake2AsHex(`${modelName}_${(indexOptions.fields ?? []).join('_')}`, 64).substring(0, 63);\n}\n\nexport function updateIndexesName(modelName: string, indexes: IndexesOptions[], existedIndexes: string[]): void {\n  indexes.forEach((index) => {\n    // follow same pattern as _generateIndexName\n    const tableName = modelToTableName(modelName);\n    const deprecated = generateIndexName(tableName, index);\n\n    if (!existedIndexes.includes(deprecated)) {\n      index.name = generateHashedIndexName(modelName, index);\n    }\n  });\n}\n\nexport function addIdAndBlockRangeAttributes(attributes: ModelAttributes<Model<any, any>, any>): void {\n  (attributes.id as ModelAttributeColumnOptions).primaryKey = false;\n  attributes.__id = {\n    type: DataTypes.UUID,\n    defaultValue: DataTypes.UUIDV4,\n    allowNull: false,\n    primaryKey: true,\n  } as ModelAttributeColumnOptions;\n  attributes.__block_range = {\n    type: DataTypes.RANGE(DataTypes.BIGINT),\n    allowNull: false,\n  } as ModelAttributeColumnOptions;\n}\n\nexport function addBlockRangeColumnToIndexes(indexes: IndexesOptions[]): void {\n  indexes.forEach((index) => {\n    if (index.using === IndexType.GIN) {\n      return;\n    }\n    if (!index.fields) {\n      index.fields = [];\n    }\n    index.fields.push('_block_range');\n    index.using = IndexType.GIST;\n    // GIST does not support unique indexes\n    index.unique = false;\n  });\n}\n\nexport function addRelationToMap(\n  relation: GraphQLRelationsType,\n  foreignKeys: Map<string, Map<string, SmartTags>>,\n  model: ModelStatic<any>,\n  relatedModel: ModelStatic<any>\n): void {\n  switch (relation.type) {\n    case 'belongsTo': {\n      addTagsToForeignKeyMap(foreignKeys, model.tableName, relation.foreignKey, {\n        foreignKey: getVirtualFkTag(relation.foreignKey, relatedModel.tableName),\n      });\n      break;\n    }\n    case 'hasOne': {\n      addTagsToForeignKeyMap(foreignKeys, relatedModel.tableName, relation.foreignKey, {\n        singleForeignFieldName: relation.fieldName,\n      });\n      break;\n    }\n    case 'hasMany': {\n      addTagsToForeignKeyMap(foreignKeys, relatedModel.tableName, relation.foreignKey, {\n        foreignFieldName: relation.fieldName,\n      });\n      break;\n    }\n    default:\n      throw new Error('Relation type is not supported');\n  }\n}\n\nexport function generateCreateTableQuery(\n  model: ModelStatic<Model<any, any>>,\n  schema: string,\n  withoutForeignKey: boolean\n): QueryString[] {\n  const tableName = model.tableName;\n\n  const attributes = model.getAttributes();\n  const columnDefinitions: string[] = [];\n  const primaryKeyColumns: string[] = [];\n  const comments: Query[] = [];\n\n  Object.keys(attributes).forEach((key) => {\n    const attr = attributes[key];\n\n    assert(attr.field, 'Expected field to be set on attribute');\n\n    const columnDefinition = `\"${attr.field}\" ${formatAttributes(attr, schema, withoutForeignKey)}`;\n\n    columnDefinitions.push(columnDefinition);\n    if (attr.comment) {\n      comments.push(commentColumnQuery(schema, tableName, attr.field, attr.comment));\n    }\n    if (attr.primaryKey) {\n      primaryKeyColumns.push(`\"${attr.field}\"`);\n    }\n  });\n\n  const primaryKeyDefinition = `, PRIMARY KEY (${primaryKeyColumns.join(', ')})`;\n\n  const tableQuery = `CREATE TABLE IF NOT EXISTS \"${schema}\".\"${tableName}\" (${columnDefinitions.join(\n    ',\\n      '\n  )}${primaryKeyDefinition});`;\n\n  return [tableQuery, ...comments];\n}\n\nexport function generateCreateIndexQuery(\n  indexes: readonly ModelIndexesOptions[],\n  schema: string,\n  tableName: string\n): string[] {\n  const indexQueries: string[] = [];\n  indexes.forEach((index) => {\n    const fieldsList = index.fields?.map((field) => `\"${field}\"`).join(', ');\n    const unique = index.unique ? 'UNIQUE' : '';\n    const indexUsed = index.using ? `USING ${index.using}` : '';\n    const indexName = index.name;\n\n    const query = `CREATE ${unique} INDEX IF NOT EXISTS \"${indexName}\" ON \"${schema}\".\"${tableName}\" ${indexUsed} (${fieldsList});`;\n    indexQueries.push(query);\n  });\n\n  return indexQueries;\n}\n\nexport function sortModels(relations: GraphQLRelationsType[], models: GraphQLModelsType[]): GraphQLModelsType[] | null {\n  const sorter = new Toposort();\n\n  models.forEach((model) => {\n    sorter.add(model.name, []);\n  });\n\n  relations.forEach(({from, to}) => {\n    sorter.add(from, to);\n  });\n\n  let sortedModelNames: string[];\n  try {\n    sortedModelNames = sorter.sort();\n  } catch (error) {\n    // Handle cyclic dependency error by returning null\n    if (error instanceof Error && error.message.startsWith('Cyclic dependency found.')) {\n      return null;\n    } else {\n      throw error;\n    }\n  }\n\n  const sortedModels = sortedModelNames\n    .map((modelName) => models.find((model) => model.name === modelName))\n    .filter(Boolean) as GraphQLModelsType[];\n\n  return sortedModels.length > 0 ? sortedModels : null;\n}\n\nexport function validateNotifyTriggers(triggerName: string, triggers: NotifyTriggerPayload[]): void {\n  if (triggers.length !== NotifyTriggerManipulationType.length) {\n    throw new Error(\n      `Found ${triggers.length} ${triggerName} triggers, expected ${NotifyTriggerManipulationType.length} triggers`\n    );\n  }\n  triggers.map((t) => {\n    if (!NotifyTriggerManipulationType.includes(t.eventManipulation)) {\n      throw new Error(`Found unexpected trigger ${t.triggerName} with manipulation ${t.eventManipulation}`);\n    }\n  });\n}\n\nexport async function getExistingForeignKeys(schema: string, sequelize: Sequelize): Promise<string[]> {\n  const results = (await sequelize.query(\n    `\n        SELECT\n          tc.constraint_name\n        FROM\n          information_schema.table_constraints AS tc\n            JOIN information_schema.key_column_usage AS kcu\n                 ON tc.constraint_name = kcu.constraint_name\n                   AND tc.table_schema = kcu.table_schema\n            JOIN information_schema.constraint_column_usage AS ccu\n                 ON ccu.constraint_name = tc.constraint_name\n                   AND ccu.table_schema = tc.table_schema\n        WHERE tc.constraint_type = 'FOREIGN KEY'\n          AND tc.table_schema = :schema;\n    `,\n    {\n      replacements: {schema: schema},\n      type: QueryTypes.SELECT,\n    }\n  )) as {constraint_name: string}[];\n  return results.map((r) => r.constraint_name);\n}\n\nexport async function getExistingEnums(schema: string, sequelize: Sequelize): Promise<Map<string, EnumType>> {\n  const enumTypeMap = new Map<string, EnumType>();\n\n  const results = (await sequelize.query(\n    `\n        SELECT pg_enum.enumlabel as enum_value, t.typname as type_name\n        FROM pg_type t\n               JOIN pg_enum ON pg_enum.enumtypid = t.oid\n               JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\n        WHERE n.nspname = :schema\n        ORDER BY t.typname, enumsortorder;\n    `,\n    {\n      replacements: {schema: schema},\n      type: QueryTypes.SELECT,\n    }\n  )) as {enum_value: string; type_name: string}[];\n\n  results.forEach(({enum_value, type_name}) => {\n    if (!enumTypeMap.has(type_name)) {\n      enumTypeMap.set(type_name, {enumValues: [enum_value]});\n    } else {\n      enumTypeMap.get(type_name)?.enumValues.push(enum_value);\n    }\n  });\n\n  return enumTypeMap;\n}\n\n// enums\nexport const dropEnumQuery = (enumTypeValue: string, schema: string): string =>\n  `DROP TYPE IF EXISTS \"${schema}\".\"${enumTypeValue}\";`;\nexport const commentOnEnumQuery = (type: string, comment: string): string => `COMMENT ON TYPE ${type} IS E${comment};`;\nexport const createEnumQuery = (type: string, enumValues: string): string =>\n  `CREATE TYPE ${type} AS ENUM (${enumValues});`;\nexport const addEnumValueQuery = (type: string, newValue: string): string =>\n  `ALTER TYPE ${type} ADD VALUE IF NOT EXISTS '${newValue}';`;\n\n// relations\nexport const dropRelationQuery = (schemaName: string, tableName: string, fkConstraint: string): string =>\n  `ALTER TABLE \"${schemaName}\".\"${tableName}\" DROP CONSTRAINT IF EXISTS ${fkConstraint};`;\n\nexport function generateForeignKeyQuery(attribute: ModelAttributeColumnOptions, tableName: string): string | void {\n  const references = attribute?.references as ModelAttributeColumnReferencesOptions;\n  if (!references) {\n    return;\n  }\n  const foreignTable = references.model as TableNameWithSchema;\n  assert(attribute.field, 'Missing field on attribute');\n  const fkey = getFkConstraint(tableName, attribute.field);\n  let query = `\n  DO $$\n  BEGIN\n    ALTER TABLE \"${foreignTable.schema}\".\"${tableName}\"\n      ADD\n      CONSTRAINT ${fkey}\n      FOREIGN KEY (${attribute.field})\n      REFERENCES \"${foreignTable.schema}\".\"${foreignTable.tableName}\" (${references.key})`;\n  if (attribute.onDelete) {\n    query += ` ON DELETE ${attribute.onDelete}`;\n  }\n  if (attribute.onUpdate) {\n    query += ` ON UPDATE ${attribute.onUpdate}`;\n  }\n  if (references.deferrable) {\n    query += ` DEFERRABLE`;\n  }\n  query += `;\n  EXCEPTION\n    WHEN duplicate_object THEN\n        RAISE NOTICE 'Constraint already exists. Ignoring...';\n  END$$;\n`;\n  return `${query.trim()};`;\n}\n\n// indexes\nexport const dropIndexQuery = (schema: string, hashedIndexName: string): string =>\n  `DROP INDEX IF EXISTS \"${schema}\".\"${hashedIndexName}\";`;\nexport const createIndexQuery = (indexOptions: IndexesOptions, tableName: string, schema: string): string => {\n  if (!indexOptions.fields || indexOptions.fields.length === 0) {\n    throw new Error(\"The 'fields' property is required and cannot be empty.\");\n  }\n  return (\n    `CREATE ${indexOptions.unique ? 'UNIQUE ' : ''}INDEX IF NOT EXISTS \"${indexOptions.name}\" ` +\n    `ON \"${schema}\".\"${tableName}\" ` +\n    `${indexOptions.using ? `USING ${indexOptions.using} ` : ''}` +\n    `(${indexOptions.fields.join(', ')});`\n  );\n};\n\n// columns\nexport const dropColumnQuery = (schema: string, columnName: string, tableName: string): string =>\n  `ALTER TABLE  \"${schema}\".\"${modelToTableName(tableName)}\" DROP COLUMN IF EXISTS ${columnName};`;\n\nexport const createColumnQuery = (schema: string, table: string, columnName: string, attributes: string): string =>\n  `ALTER TABLE ${escapedName(schema, table)} ADD COLUMN IF NOT EXISTS \"${columnName}\" ${attributes};`;\n\n// fullTextSearch\nconst TS_VECTOR_COL = '_tsv';\n\nexport const dropTsVectorColumnQuery = (schema: string, table: string): string =>\n  dropColumnQuery(schema, table, TS_VECTOR_COL);\nexport const createTsVectorColumnQuery = (\n  schema: string,\n  table: string,\n  fields: string[],\n  language = 'english'\n): string => {\n  const generated = `GENERATED ALWAYS as (to_tsvector('pg_catalog.${language}', ${fields\n    .map((field) => `coalesce(${escapedName(field)}, '')`)\n    .join(` || ' ' || `)})) STORED`;\n  return createColumnQuery(schema, table, TS_VECTOR_COL, `tsvector ${generated}`);\n};\n\nexport const createTsVectorCommentQuery = (schema: string, table: string): Query =>\n  commentColumnQuery(schema, table, TS_VECTOR_COL, '@omit all');\n\nconst tsVectorIndexName = (schema: string, table: string) => hashName(schema, 'fulltext_idx', table);\nexport const dropTsVectorIndexQuery = (schema: string, table: string): string =>\n  dropIndexQuery(schema, tsVectorIndexName(schema, table));\n\nexport const createTsVectorIndexQuery = (schema: string, table: string): string =>\n  createIndexQuery({using: 'gist', fields: [TS_VECTOR_COL], name: tsVectorIndexName(schema, table)}, table, schema);\n\nconst searchFunctionName = (schema: string, table: string): string => hashName(schema, 'search', table);\nexport const dropSearchFunctionQuery = (schema: string, table: string): string =>\n  dropFunction(schema, searchFunctionName(schema, table));\nexport const createSearchFunctionQuery = (schema: string, table: string): string => {\n  const functionName = searchFunctionName(schema, table);\n  return `\ncreate or replace function ${escapedName(schema, functionName)}(search text)\n  returns setof ${escapedName(schema, table)} as $$\n    select *\n    from ${escapedName(schema, table)} as \"table\"\n    where \"table\".\"${TS_VECTOR_COL}\" @@ to_tsquery(search)\n  $$ language sql stable;\n  `;\n};\n\nexport const commentSearchFunctionQuery = (schema: string, table: string): Query =>\n  commentOnFunction(schema, searchFunctionName(schema, table), `@name search_${table}`);\n\nexport const tableExistsQuery = (schema: string): string => {\n  return `SELECT table_name FROM information_schema.tables where table_schema='${schema}'`;\n};\n"
  },
  {
    "path": "packages/node-core/src/events.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport enum IndexerEvent {\n  ApiConnected = 'api_connected',\n  BlockTarget = 'block_target_height',\n  BlockBest = 'block_best_height',\n  BlockProcessing = 'block_processing_height',\n  BlockProcessedCount = 'block_processed_count',\n  BlockQueueSize = 'block_queue_size',\n  BlocknumberQueueSize = 'blocknumber_queue_size',\n  NetworkMetadata = 'network_metadata',\n  UsingDictionary = 'using_dictionary',\n  SkipDictionary = 'skip_dictionary',\n  StoreCacheThreshold = 'store_cache_threshold',\n  StoreCacheRecordsSize = 'store_cache_records_size',\n  Ready = 'ready',\n  RewindSuccess = 'rewind_success',\n  RewindFailure = 'rewind_failure',\n}\n\nexport enum AdminEvent {\n  rewindTarget = 'rewind_target',\n  RewindTargetResponse = 'rewind_target_response',\n}\n\nexport enum PoiEvent {\n  LatestSyncedPoi = 'poi_synced',\n  PoiTarget = 'poi_target',\n}\n\nexport enum MultiChainRewindEvent {\n  Rewind = 'rewind',\n  RewindComplete = 'rewind_complete',\n  RewindTimestampDecreased = 'timestamp_decreased',\n  FullyRewind = 'fully_rewind',\n}\n\nexport interface RewindPayload {\n  success: boolean;\n  height: number;\n  message?: string;\n}\n\nexport interface ProcessBlockPayload {\n  height: number;\n  timestamp: number;\n}\n\nexport interface ProcessedBlockCountPayload {\n  processedBlockCount: number;\n  timestamp: number;\n}\n\nexport interface TargetBlockPayload {\n  height: number;\n}\n\nexport interface BestBlockPayload {\n  height: number;\n}\nexport interface EventPayload<T> {\n  value: T;\n}\n\nexport interface NetworkMetadataPayload {\n  chain: string;\n  specName: string;\n  genesisHash: string;\n}\n"
  },
  {
    "path": "packages/node-core/src/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport './utils/bigint';\n\nexport * from './api.service';\nexport * from './api.connection.error';\nexport * from './logger';\nexport * from './process';\nexport * from './profiler';\nexport * from './events';\nexport * from './configure';\nexport * from './db';\nexport * from './meta';\nexport * from './utils';\nexport * from './indexer';\nexport * from './subcommands';\nexport * from './yargs';\nexport * from './admin';\nexport * from './blockchain.service';\n"
  },
  {
    "path": "packages/node-core/src/indexer/StoreOperations.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {GraphQLJsonFieldType, GraphQLModelsType, u8aToHex} from '@subql/utils';\nimport {StoreOperations} from './StoreOperations';\nimport {OperationType} from './types';\n\ntype StarterEntity = {\n  id: string;\n  field1: number;\n  field2?: string;\n  field3?: bigint;\n  field4?: Date;\n  field5?: boolean;\n  field6?: any;\n  field7?: number;\n  createdAt: Date;\n  updatedAt: Date;\n};\n\nconst testOperations = [\n  {\n    operation: OperationType.Set,\n    entityType: 'StarterEntity',\n    data: {\n      id: '0x2494bd5d089cf370c366351e851755ee42e8477df1c17ea1d9c2ae94e4f77ea8',\n      field1: 41914,\n    },\n  },\n  {\n    operation: OperationType.Set,\n    entityType: 'StarterEntity',\n    data: <StarterEntity>{\n      id: '0x2494bd5d089cf370c366351e851755ee42e8477df1c17ea1d9c2ae94e4f77ea8',\n      field3: undefined,\n      field1: 41914,\n      field2: undefined,\n      field4: new Date('2020-05-29T13:28:36.000Z'),\n      field5: true,\n      createdAt: new Date('2021-08-18T02:36:06.549Z'),\n      updatedAt: new Date('2021-08-18T02:36:06.549Z'),\n    },\n  },\n  {\n    operation: OperationType.Set,\n    entityType: 'StarterEntity',\n    data: <StarterEntity>{\n      id: '0x2494bd5d089cf370c366351e851755ee42e8477df1c17ea1d9c2ae94e4f77ea8',\n      field3: undefined,\n      field1: 41914,\n      field2: undefined,\n      field4: new Date('2020-05-29T13:28:36.000Z'),\n      field5: true,\n      createdAt: new Date('2021-08-18T02:36:06.549Z'),\n      updatedAt: new Date('2021-08-18T02:36:06.549Z'),\n    },\n  },\n  {\n    operation: OperationType.Set,\n    entityType: 'StarterEntity',\n    data: <StarterEntity>{\n      id: '0x2494bd5d089cf370c366351e851755ee42e8477df1c17ea1d9c2ae94e4f77ea8',\n      field3: undefined,\n      field1: 41914,\n      field2: undefined,\n      field4: new Date('2020-05-29T13:28:36.000Z'),\n      field5: true,\n      field6: {meat: 0, fruit: {apple: 'Apple'}},\n      createdAt: new Date('2021-08-18T02:36:06.549Z'),\n      updatedAt: new Date('2021-08-18T02:36:06.549Z'),\n      field7: parseFloat('3.14'),\n      field8: 'Foo',\n    },\n  },\n  {\n    operation: OperationType.Remove,\n    entityType: 'StarterEntity',\n    data: '0x2494bd5d089cf370c366351e851755ee42e8477df1c17ea1d9c2ae94e4f77ea8',\n  },\n];\n\n// Single object in operations\nconst testOperations2 = [\n  {\n    operation: OperationType.Set,\n    entityType: 'IndexEra',\n    data: {\n      id: '0x2494bd5d089cf370c366351e851755ee42e8477df1c17ea1d9c2ae94e4f77ea8',\n      field1: 41914,\n    },\n  },\n];\n\n// negative in the field\nconst testOperations3 = [\n  {\n    operation: OperationType.Set,\n    entityType: 'StarterEntity',\n    data: {\n      id: '0x2494bd5d089cf370c366351e851755ee42e8477df1c17ea1d9c2ae94e4f77ea8',\n      field1: -1,\n    },\n  },\n];\n\nconst falseOperation = {\n  operation: OperationType.Remove,\n  entityType: 'StarterEntity',\n  data: <StarterEntity>{\n    id: '0x2494bd5d089cf370c366351e851755ee42e8477df1c17ea1d9c2ae94e4f77ea8',\n    field3: undefined,\n    field1: 41914,\n    field2: undefined,\n    field4: new Date('2020-05-29T13:28:36.000Z'),\n    field5: true,\n    field6: {meat: 0, fruit: {apple: 'Apple'}},\n    createdAt: new Date('2021-08-18T02:36:06.549Z'),\n    updatedAt: new Date('2021-08-18T02:36:06.549Z'),\n    field7: parseFloat('3.14'),\n  },\n};\nconst apple: GraphQLJsonFieldType = {\n  name: 'apple',\n  type: 'String',\n  nullable: true,\n  isArray: false,\n};\nconst fruitJson: GraphQLJsonFieldType = {\n  name: 'fruit',\n  type: 'Json',\n  jsonInterface: {name: 'Fruit', fields: [apple]},\n  isArray: false,\n  nullable: true,\n};\nconst meatJson: GraphQLJsonFieldType = {\n  name: 'meat',\n  type: 'Int',\n  nullable: true,\n  isArray: false,\n};\nconst models = [\n  {\n    name: 'StarterEntity',\n    fields: [\n      {\n        name: 'id',\n        type: 'ID',\n        isArray: false,\n        nullable: false,\n        isEnum: false,\n      },\n      {\n        name: 'field1',\n        type: 'Int',\n        isArray: false,\n        nullable: false,\n        isEnum: false,\n      },\n      {\n        name: 'field2',\n        type: 'String',\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        name: 'field3',\n        type: 'BigInt',\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        name: 'field4',\n        type: 'Date',\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        name: 'field5',\n        type: 'Boolean',\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        name: 'field6',\n        type: 'Json',\n        jsonInterface: {name: 'Food', fields: [meatJson, fruitJson]},\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        name: 'field7',\n        type: 'Float',\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        type: 'TestEnum',\n        description: 'Field description',\n        isEnum: true,\n        isArray: false,\n        nullable: false,\n        name: 'field8',\n      },\n    ],\n    indexes: <any[]>[],\n  },\n  {\n    name: 'IndexEra',\n    fields: [\n      {\n        name: 'id',\n        type: 'ID',\n        isArray: false,\n        nullable: false,\n        isEnum: false,\n      },\n      {\n        name: 'field1',\n        type: 'Int',\n        isArray: false,\n        nullable: false,\n        isEnum: false,\n      },\n    ],\n    indexes: <any[]>[],\n  },\n];\n\ndescribe('StoreOperations', () => {\n  it('single leaf, expect merkleRoot to be hashed', () => {\n    const operationStack = new StoreOperations(models);\n    for (const o of testOperations2) {\n      operationStack.put(o.operation, o.entityType, o.data);\n    }\n\n    operationStack.makeOperationMerkleTree();\n    expect(operationStack.getOperationLeafCount()).toBe(1);\n    const mRoot = operationStack.getOperationMerkleRoot();\n    // To be hashed and 32 bytes long\n    expect(mRoot?.length).toBe(32);\n    console.log(`Root in hex: ${u8aToHex(mRoot)}`);\n    operationStack.reset();\n    expect(operationStack.getOperationLeafCount()).toBe(0);\n  });\n\n  it('put operation into the merkel leaf, and generate Merkle Root, also able to reset', () => {\n    const operationStack = new StoreOperations(models);\n    for (const o of testOperations) {\n      operationStack.put(o.operation, o.entityType, o.data);\n    }\n    operationStack.makeOperationMerkleTree();\n    expect(operationStack.getOperationLeafCount()).toBe(5);\n    const mRoot = operationStack.getOperationMerkleRoot();\n    expect(mRoot?.length).toBe(32);\n    console.log(`Root in hex: ${u8aToHex(mRoot)}`);\n    operationStack.reset();\n    expect(operationStack.getOperationLeafCount()).toBe(0);\n  });\n\n  it('throw error when remove data is not string type', () => {\n    const operationStack = new StoreOperations(models);\n\n    expect(() => operationStack.put(falseOperation.operation, falseOperation.entityType, falseOperation.data)).toThrow(\n      `Remove operation only accept data in string type`\n    );\n  });\n\n  it('could generate operation hash with negative value', () => {\n    const operationStack = new StoreOperations(models);\n    for (const o of testOperations3) {\n      operationStack.put(o.operation, o.entityType, o.data);\n    }\n    expect(() => operationStack.makeOperationMerkleTree()).not.toThrow();\n  });\n\n  describe('arrays', () => {\n    // There was no explicit support for arrays, and most data types converted to bytes without issue if they were arrays.\n    // BigInt, Bytes and Date were a problem so there is a specific case for that.\n    it('retains support for arrays as a single value', () => {\n      const models: GraphQLModelsType[] = [\n        {\n          name: 'DelegationEntity',\n          fields: [\n            {\n              name: 'id',\n              type: 'ID',\n              isArray: false,\n              nullable: false,\n              isEnum: false,\n            },\n            {\n              name: 'delegatorAddress',\n              type: 'String',\n              isArray: true,\n              nullable: false,\n              isEnum: false,\n            },\n          ],\n          indexes: <any[]>[],\n        },\n      ];\n      const operationStack = new StoreOperations(models);\n\n      const data = {\n        id: 'Test',\n        delegatorAddress: ['0x2fd781561631df6Ae95B8f590b38ea8f1267d690', '0xCcFC53103Dc0D227abc190a678afe969f38c14e0'],\n      };\n\n      operationStack.put(OperationType.Set, 'DelegationEntity', data);\n\n      operationStack.makeOperationMerkleTree();\n      expect(operationStack.getOperationLeafCount()).toBe(1);\n      const mRoot = operationStack.getOperationMerkleRoot();\n\n      expect(Buffer.from(mRoot!).toString('hex')).toEqual(\n        '25f69c94b779ed53fb6acafb0360148fc3e57944d965d0a2c1f3296747a9646f'\n      );\n    });\n\n    it('Can generate an operation hash all types as an array', () => {\n      const models: GraphQLModelsType[] = [\n        {\n          name: 'DelegationEntity',\n          fields: [\n            {\n              name: 'id',\n              type: 'ID',\n              isArray: false,\n              nullable: false,\n              isEnum: false,\n            },\n            {\n              name: 'bigIntArray',\n              type: 'BigInt',\n              isArray: true,\n              nullable: false,\n              isEnum: false,\n            },\n            {\n              name: 'booleanArray',\n              type: 'Boolean',\n              isArray: true,\n              nullable: false,\n              isEnum: false,\n            },\n            {\n              name: 'bytesArray',\n              type: 'Bytes',\n              isArray: true,\n              nullable: false,\n              isEnum: false,\n            },\n            {\n              name: 'dateArray',\n              type: 'Date',\n              isArray: true,\n              nullable: false,\n              isEnum: false,\n            },\n            {\n              name: 'floatArray',\n              type: 'Float',\n              isArray: true,\n              nullable: false,\n              isEnum: false,\n            },\n            {\n              name: 'intArray',\n              type: 'Int',\n              isArray: true,\n              nullable: false,\n              isEnum: false,\n            },\n            {\n              name: 'jsonArray',\n              type: 'Json',\n              isArray: true,\n              nullable: false,\n              isEnum: false,\n            },\n            {\n              name: 'stringArray',\n              type: 'String',\n              isArray: true,\n              nullable: false,\n              isEnum: false,\n            },\n          ],\n          indexes: <any[]>[],\n        },\n      ];\n      const operationStack = new StoreOperations(models);\n\n      const data = {\n        id: 'Test',\n        bigIntArray: [200000000000000000000000n, 1000000000000000000000n],\n        booleanArray: [true, false],\n        bytesArray: [Buffer.from('hello'), Buffer.from('world')],\n        dateArray: [new Date('2020-05-29T13:28:36.000Z'), new Date('2021-05-29T13:28:36.000Z')],\n        floatArray: [3.14, 2.71],\n        intArray: [42, 69],\n        jsonArray: [{foo: 'bar'}, {baz: 123}],\n        stringArray: ['Hello', 'World'],\n      };\n\n      operationStack.put(OperationType.Set, 'DelegationEntity', data);\n\n      operationStack.makeOperationMerkleTree();\n      expect(operationStack.getOperationLeafCount()).toBe(1);\n      const mRoot = operationStack.getOperationMerkleRoot();\n\n      expect(Buffer.from(mRoot!).toString('hex')).toEqual(\n        '348f203090055906afd4c2d8ac470a2403537bd4c5e3fdc67ce8a6b6b5eda414'\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/StoreOperations.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Entity, FunctionPropertyNames, Store} from '@subql/types-core';\nimport {GraphQLModelsType, u8aToHex} from '@subql/utils';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {CachedModel, DbOption, handledStringify, modelsTypeToModelAttributes, NodeConfig} from '../';\nimport {EntityClass} from './store/entity';\nimport {StoreOperations} from './StoreOperations';\nimport {OperationType} from './types';\n\ninterface TestJson {\n  testItem: string;\n  amount?: bigint;\n}\n\ninterface DelegationFrom {\n  delegator: string;\n  amount?: bigint;\n  nested?: TestJson;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\ntype EraProps = Omit<EraEntity, NonNullable<FunctionPropertyNames<EraEntity>> | '_name'>;\n\nclass EraEntity implements Entity {\n  constructor(id: string, startTime: Date) {\n    this.id = id;\n    this.startTime = startTime;\n  }\n\n  id: string;\n  startTime: Date;\n  endTime?: Date;\n  forceNext?: boolean;\n  createdBlock?: number;\n  lastEvent?: string;\n  delegators?: DelegationFrom[];\n\n  static create(record: EraProps): EraEntity {\n    assert(typeof record.id === 'string', 'id must be provided');\n    const entity = new this(record.id, record.startTime);\n    Object.assign(entity, record);\n    return entity;\n  }\n}\n\nconst models: GraphQLModelsType[] = [\n  {\n    name: 'EraEntity',\n    fields: [\n      {\n        name: 'id',\n        type: 'ID',\n        isArray: false,\n        nullable: false,\n        isEnum: false,\n      },\n      {\n        name: 'startTime',\n        type: 'Date',\n        isArray: false,\n        nullable: false,\n        isEnum: false,\n      },\n      {\n        name: 'endTime',\n        type: 'Date',\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        name: 'forceNext',\n        type: 'Boolean',\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        name: 'createdBlock',\n        type: 'Int',\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        name: 'lastEvent',\n        type: 'String',\n        isArray: false,\n        nullable: true,\n        isEnum: false,\n      },\n      {\n        name: 'delegators',\n        type: 'Json',\n        nullable: true,\n        jsonInterface: {\n          name: 'DelegationFrom',\n          fields: [\n            {name: 'delegator', type: 'String', isArray: false, nullable: false},\n            {name: 'amount', type: 'BigInt', isArray: false, nullable: true},\n            {\n              name: 'nested',\n              type: 'Json',\n              isArray: false,\n              nullable: false,\n              jsonInterface: {\n                name: 'TestJson',\n                fields: [\n                  {name: 'testItem', type: 'String', isArray: false, nullable: false},\n                  {name: 'amount', type: 'BigInt', isArray: false, nullable: true},\n                ],\n              },\n            },\n          ],\n        },\n        isEnum: false,\n        isArray: true,\n      },\n    ],\n    indexes: <any[]>[],\n  },\n];\n\nconst option: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\njest.setTimeout(50_000);\n\ndescribe('StoreOperations with db', () => {\n  let sequelize: Sequelize;\n  let schema: string;\n  let model: any;\n  let cacheModel: CachedModel<EraEntity>;\n\n  const flush = async (blockHeight: number) => {\n    const tx = await sequelize.transaction();\n    await cacheModel.flush(tx, blockHeight);\n    await tx.commit();\n  };\n\n  beforeAll(async () => {\n    process.env.TZ = 'UTC';\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    await sequelize.authenticate();\n\n    schema = '\"storeOp-test-1\"';\n    await sequelize.createSchema(schema, {});\n\n    const modelAttributes = modelsTypeToModelAttributes(models[0], new Map(), schema);\n\n    const modelFactory = sequelize.define('eraEntity', modelAttributes, {timestamps: false, schema: schema});\n    model = await modelFactory.sync().catch((e) => {\n      console.log('error', e);\n      throw e;\n    });\n\n    let i = 0;\n\n    cacheModel = new CachedModel(model, false, new NodeConfig({} as any), () => i++);\n  });\n\n  afterAll(async () => {\n    await sequelize.dropSchema(schema, {logging: false});\n    await sequelize.close();\n  });\n\n  // If this test failed, please check environment variables TZ is set to UTC\n  it('Timestamp, check operation stack consistency with data fetched from db and cache', async () => {\n    const operationStackDb = new StoreOperations(models);\n    const operationStackCache = new StoreOperations(models);\n\n    cacheModel.set(\n      `0x01`,\n      {\n        id: `0x01`,\n        startTime: new Date('2024-02-14T02:38:51.000Z'),\n        forceNext: false,\n        createdBlock: 10544492,\n      },\n      1\n    );\n    await flush(2);\n\n    const rawDb = (await cacheModel.model.findOne({where: {id: '0x01'}}))?.toJSON();\n\n    const rawCache = await (cacheModel as any).getCache.get('0x01');\n\n    const entityDb = EntityClass.create<EraEntity>('EraEntity', rawDb, {} as Store);\n    expect(entityDb).toBeDefined();\n    if (entityDb) {\n      // Mock set end time\n      entityDb.endTime = new Date('2024-02-24T02:38:51.000Z');\n      console.log(`db data: ${handledStringify(entityDb)}`);\n      operationStackDb.put(OperationType.Set, 'EraEntity', entityDb);\n    }\n\n    const entityCache = EntityClass.create<EraEntity>('EraEntity', rawCache, {} as Store);\n    expect(entityCache).toBeDefined();\n    if (entityCache) {\n      // Mock set end time\n      entityCache.endTime = new Date('2024-02-24T02:38:51.000Z');\n      console.log(`cache data: ${handledStringify(entityCache)}`);\n      operationStackCache.put(OperationType.Set, 'EraEntity', entityCache);\n    }\n\n    operationStackDb.makeOperationMerkleTree();\n    expect(operationStackDb.getOperationLeafCount()).toBe(1);\n    const mRootDb = operationStackDb.getOperationMerkleRoot();\n\n    operationStackCache.makeOperationMerkleTree();\n    expect(operationStackCache.getOperationLeafCount()).toBe(1);\n    const mRootCache = operationStackCache.getOperationMerkleRoot();\n\n    expect(entityCache?.delegators).toBeUndefined();\n    expect(entityDb?.delegators).toBe(null);\n\n    console.log(`Db mmr Root in hex: ${u8aToHex(mRootDb)}`);\n\n    console.log(`Cache mmr Root in hex: ${u8aToHex(mRootCache)}`);\n\n    expect(mRootDb).toEqual(mRootCache);\n  });\n\n  it('JSONB array, check operation stack consistency with data fetched from db and cache', async () => {\n    const operationStackDb = new StoreOperations(models);\n    const operationStackCache = new StoreOperations(models);\n\n    cacheModel.set(\n      `0x03`,\n      {\n        id: `0x03`,\n        startTime: new Date('2024-02-14T02:38:51.000Z'),\n        forceNext: false,\n        createdBlock: 10544492,\n        delegators: [\n          {\n            delegator: '0x05',\n            amount: BigInt(8000000000000000000000n),\n            nested: {testItem: 'test', amount: undefined},\n          },\n          {\n            delegator: '0x06',\n            amount: undefined,\n            nested: {testItem: 'test', amount: BigInt(1000000000000000000000n)},\n          },\n        ],\n      },\n      1\n    );\n    await flush(2);\n\n    const rawDb = (await cacheModel.model.findOne({where: {id: '0x03'}}))?.toJSON();\n\n    const rawCache = await (cacheModel as any).getCache.get('0x03');\n\n    const entityDb = EntityClass.create<EraEntity>('EraEntity', rawDb, {} as Store);\n    expect(entityDb).toBeDefined();\n    if (entityDb) {\n      entityDb.delegators?.push({\n        delegator: '0x07',\n        amount: undefined,\n        nested: {testItem: 'test', amount: BigInt(3000000000000000000000n)},\n      });\n      console.log(`db data: ${handledStringify(entityDb)}`);\n      operationStackDb.put(OperationType.Set, 'EraEntity', entityDb);\n    }\n\n    const entityCache = EntityClass.create<EraEntity>('EraEntity', rawCache, {} as Store);\n    expect(entityCache).toBeDefined();\n    if (entityCache) {\n      entityCache.delegators?.push({\n        delegator: '0x07',\n        amount: undefined,\n        nested: {testItem: 'test', amount: BigInt(3000000000000000000000n)},\n      });\n      console.log(`cache data: ${handledStringify(entityCache)}`);\n      operationStackCache.put(OperationType.Set, 'EraEntity', entityCache);\n    }\n\n    operationStackDb.makeOperationMerkleTree();\n    expect(operationStackDb.getOperationLeafCount()).toBe(1);\n    const mRootDb = operationStackDb.getOperationMerkleRoot();\n\n    operationStackCache.makeOperationMerkleTree();\n    expect(operationStackCache.getOperationLeafCount()).toBe(1);\n    const mRootCache = operationStackCache.getOperationMerkleRoot();\n\n    console.log(`Db mmr Root in hex: ${u8aToHex(mRootDb)}`);\n\n    console.log(`Cache mmr Root in hex: ${u8aToHex(mRootCache)}`);\n\n    expect(mRootDb).toEqual(mRootCache);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/StoreOperations.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Entity} from '@subql/types-core';\nimport {getTypeByScalarName, GraphQLModelsType, u8aConcat, u8aToBuffer, isString} from '@subql/utils';\nimport MerkleTools from 'merkle-tools';\nimport {monitorWrite} from '../process';\nimport {OperationEntity, OperationType} from './types';\n\nexport class StoreOperations {\n  private merkleTools: MerkleTools;\n\n  constructor(private models: GraphQLModelsType[]) {\n    this.merkleTools = new MerkleTools({\n      hashType: 'sha256',\n    });\n  }\n\n  private operationEntityToUint8Array(operation: OperationEntity): Uint8Array {\n    const dataBufferArray: Uint8Array[] = [];\n    if (operation.operation === OperationType.Remove) {\n      //remove case\n      if (isString(operation.data)) {\n        dataBufferArray.push(Buffer.from(operation.data));\n      } else {\n        throw new Error(`Remove operation only accept data in string type`);\n      }\n    } else {\n      const operationModel = this.models.find(({name}) => name === operation.entityType);\n      if (!operationModel) {\n        throw new Error(`Unable to find model with name ${operation.entityType}`);\n      }\n      for (const field of operationModel.fields) {\n        const fieldValue = (operation.data as Entity & Record<string, any>)[field.name];\n        dataBufferArray.push(Buffer.from(field.name));\n\n        if (fieldValue !== undefined && fieldValue !== null) {\n          const type = field.isEnum ? getTypeByScalarName('String') : getTypeByScalarName(field.type);\n          if (!type) {\n            throw new Error('Unable to get type by scalar name');\n          }\n\n          // This should be done for all types when we have an array, but for backwards compatibility this is only for BigInt, Date and Bytes as using an array would throw an error.\n          if (field.isArray && ['BigInt', 'Bytes', 'Date'].includes(type.name)) {\n            for (const item of fieldValue as Array<any>) {\n              dataBufferArray.push(type.hashCode(item));\n            }\n          } else {\n            dataBufferArray.push(type.hashCode(fieldValue));\n          }\n        }\n      }\n    }\n    return u8aConcat(Buffer.from(operation.operation), Buffer.from(operation.entityType), ...dataBufferArray);\n  }\n\n  put(operation: OperationType, entity: string, data: Entity | string): void {\n    const operationEntity: OperationEntity = {\n      operation: operation,\n      entityType: entity,\n      data: data,\n    };\n    // skip full data, should write in higher level\n    monitorWrite(\n      `-- [POI][StoreOperations][put] ${operation} entity ${entity}, data/id: ${\n        typeof data === 'string' ? data : data.id\n      }`\n    );\n    this.merkleTools.addLeaf(u8aToBuffer(this.operationEntityToUint8Array(operationEntity)), true);\n  }\n\n  reset(): void {\n    // Bad types\n    (this.merkleTools as any).resetTree();\n  }\n\n  makeOperationMerkleTree(): void {\n    this.merkleTools.makeTree();\n  }\n\n  getOperationMerkleRoot(): Uint8Array | null {\n    if (this.merkleTools.getTreeReadyState()) {\n      return this.merkleTools.getMerkleRoot();\n    } else {\n      throw new Error(`Failed to get Merkle root from operations, tree is not built yet`);\n    }\n  }\n\n  getOperationLeafCount(): any {\n    return this.merkleTools.getLeafCount();\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/benchmark.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Injectable} from '@nestjs/common';\nimport {OnEvent} from '@nestjs/event-emitter';\nimport {SchedulerRegistry} from '@nestjs/schedule';\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\nimport {NodeConfig} from '../configure';\nimport {IndexerEvent, PoiEvent, ProcessBlockPayload, ProcessedBlockCountPayload, TargetBlockPayload} from '../events';\nimport {getLogger} from '../logger';\nimport {delay} from '../utils/promise';\n\nconst SAMPLING_TIME_VARIANCE = 15;\nconst logger = getLogger('benchmark');\ndayjs.extend(duration);\n\n@Injectable()\nabstract class BaseBenchmarkService {\n  protected currentProcessingHeight?: number;\n  protected currentProcessingTimestamp?: number;\n  protected targetHeight?: number;\n  protected currentProcessedBlockAmount?: number;\n  private lastRegisteredHeight?: number;\n  private lastRegisteredTimestamp?: number;\n  private blockPerSecond?: number;\n  private lastProcessedBlockAmount?: number;\n\n  protected constructor(\n    private nodeConfig: NodeConfig,\n    readonly schedulerRegistry: SchedulerRegistry,\n    private eventName: string,\n    private unitName: string\n  ) {}\n\n  setupInterval(intervalName: string) {\n    if (this.schedulerRegistry.doesExist('interval', intervalName)) {\n      return;\n    }\n    this.schedulerRegistry.addInterval(\n      intervalName,\n      setInterval(\n        () => void this.benchMarking(),\n        SAMPLING_TIME_VARIANCE * 1000 // Convert to miliseconds\n      )\n    );\n  }\n\n  private async benchMarking(): Promise<void> {\n    if (!this.currentProcessingHeight || !this.currentProcessingTimestamp) {\n      await delay(10);\n    } else {\n      if (this.lastRegisteredHeight && this.lastRegisteredTimestamp) {\n        const heightDiff = this.currentProcessingHeight - this.lastRegisteredHeight;\n        const timeDiff = this.currentProcessingTimestamp - this.lastRegisteredTimestamp;\n        this.blockPerSecond = heightDiff === 0 || timeDiff === 0 ? 0 : heightDiff / (timeDiff / 1000);\n\n        if (!this.targetHeight) {\n          logger.debug(`${this.eventName}: Target height is not defined, not logging benchmark`);\n        } else {\n          const blockDuration = dayjs.duration(\n            (this.targetHeight - this.currentProcessingHeight) / this.blockPerSecond,\n            'seconds'\n          );\n          const hoursMinsStr = blockDuration.format('HH [hours] mm [mins]');\n          const days = Math.floor(blockDuration.asDays());\n          const durationStr = `${days} days ${hoursMinsStr}`;\n\n          // Poi will ignore this by default, as poi doesn't record processedCount\n          if (this.nodeConfig.profiler && this.currentProcessedBlockAmount && this.lastProcessedBlockAmount) {\n            logger.info(\n              `${this.eventName}: Processed ${this.currentProcessedBlockAmount - this.lastProcessedBlockAmount} ${\n                this.unitName\n              } in the last ${SAMPLING_TIME_VARIANCE}secs `\n            );\n          }\n\n          logger.info(\n            `${this.eventName}: ${\n              this.targetHeight === this.lastRegisteredHeight && this.blockPerSecond === 0\n                ? `Fully synced, waiting for new ${this.unitName}`\n                : `${this.blockPerSecond.toFixed(2)} ${\n                    this.unitName\n                  }/s. Target height: ${this.targetHeight.toLocaleString()}. Current height: ${this.currentProcessingHeight.toLocaleString()}. Estimated time remaining: ${\n                    this.blockPerSecond === 0 ? 'unknown' : durationStr\n                  }`\n            }`\n          );\n        }\n      }\n      this.lastRegisteredHeight = this.currentProcessingHeight;\n      this.lastRegisteredTimestamp = this.currentProcessingTimestamp;\n      this.lastProcessedBlockAmount = this.currentProcessedBlockAmount;\n    }\n  }\n}\n\n@Injectable()\nexport class PoiBenchmarkService extends BaseBenchmarkService {\n  constructor(nodeConfig: NodeConfig, schedulerRegistry: SchedulerRegistry) {\n    super(nodeConfig, schedulerRegistry, 'POI', 'poi blocks');\n    if (nodeConfig.proofOfIndex) {\n      this.setupInterval('poiBenchmarking');\n    }\n  }\n\n  @OnEvent(PoiEvent.LatestSyncedPoi)\n  handleLatestSyncedPoi(blockPayload: ProcessBlockPayload): void {\n    this.currentProcessingHeight = blockPayload.height;\n    this.currentProcessingTimestamp = blockPayload.timestamp;\n  }\n\n  @OnEvent(PoiEvent.PoiTarget)\n  handlePoiTarget(blockPayload: ProcessBlockPayload): void {\n    this.targetHeight = blockPayload.height;\n    this.currentProcessingTimestamp = blockPayload.timestamp;\n  }\n}\n\n@Injectable()\nexport class IndexingBenchmarkService extends BaseBenchmarkService {\n  constructor(nodeConfig: NodeConfig, schedulerRegistry: SchedulerRegistry) {\n    super(nodeConfig, schedulerRegistry, 'INDEXING', 'blocks');\n    this.setupInterval('indexBenchmarking');\n  }\n\n  @OnEvent(IndexerEvent.BlockProcessing)\n  handleProcessingBlock(blockPayload: ProcessBlockPayload): void {\n    this.currentProcessingHeight = blockPayload.height;\n    this.currentProcessingTimestamp = blockPayload.timestamp;\n  }\n\n  @OnEvent(IndexerEvent.BlockProcessedCount)\n  handleProcessedBlock(blockPayload: ProcessedBlockCountPayload): void {\n    this.currentProcessedBlockAmount = blockPayload.processedBlockCount;\n    this.currentProcessingTimestamp = blockPayload.timestamp;\n  }\n\n  @OnEvent(IndexerEvent.BlockTarget)\n  handleTargetBlock(blockPayload: TargetBlockPayload): void {\n    this.targetHeight = blockPayload.height;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/blockDispatcher/base-block-dispatcher.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\n\nimport {EventEmitter2, OnEvent} from '@nestjs/event-emitter';\nimport {ICoreBlockchainService} from '@subql/node-core/blockchain.service';\nimport {hexToU8a, u8aEq} from '@subql/utils';\nimport {Transaction} from '@subql/x-sequelize';\nimport {NodeConfig, IProjectUpgradeService} from '../../configure';\nimport {AdminEvent, IndexerEvent, PoiEvent, TargetBlockPayload} from '../../events';\nimport {getLogger} from '../../logger';\nimport {exitWithError, monitorCreateBlockFork, monitorCreateBlockStart, monitorWrite} from '../../process';\nimport {AutoQueue, IQueue, isTaskFlushedError, mainThreadOnly} from '../../utils';\nimport {MultiChainRewindService} from '../multiChainRewind.service';\nimport {PoiBlock, PoiSyncService} from '../poi';\nimport {StoreService} from '../store.service';\nimport {IStoreModelProvider, StoreCacheService} from '../storeModelProvider';\nimport {IPoi} from '../storeModelProvider/poi';\nimport {Header, IBlock, IProjectService, ISubqueryProject} from '../types';\nimport {isBlockUnavailableError} from '../worker';\n\nconst logger = getLogger('BaseBlockDispatcherService');\n\nexport type ProcessBlockResponse = {\n  dynamicDsCreated: boolean;\n  reindexBlockHeader: Header | null;\n};\n\nexport interface IBlockDispatcher<B> {\n  init(onDynamicDsCreated: (height: number) => void): Promise<void>;\n  // now within enqueueBlock should handle getLatestBufferHeight\n  enqueueBlocks(heights: (IBlock<B> | number)[], latestBufferHeight: number): void | Promise<void>;\n  queueSize: number;\n  freeSize: number;\n  latestBufferedHeight: number;\n  batchSize: number;\n\n  setLatestProcessedHeight(height: number): void;\n  // Remove all enqueued blocks, used when a dynamic ds is created\n  flushQueue(height: number): void;\n}\n\nconst NULL_MERKEL_ROOT = hexToU8a('0x00');\n\nfunction isNullMerkelRoot(operationHash: Uint8Array): boolean {\n  return u8aEq(operationHash, NULL_MERKEL_ROOT);\n}\n\nexport abstract class BaseBlockDispatcher<Q extends IQueue, DS, B> implements IBlockDispatcher<B> {\n  protected _latestBufferedHeight = 0;\n  protected _processedBlockCount = 0;\n  protected _latestProcessedHeight = 0;\n  protected currentProcessingHeight = 0;\n  private _onDynamicDsCreated?: (height: number) => void;\n  private _pendingRewindHeader?: Header;\n\n  protected isShutdown = false;\n\n  /* The height at which a block fetch failure first ocurrs, ensuring that we don't process any blocks after this */\n  protected fetchFailureHeight?: number;\n\n  constructor(\n    protected nodeConfig: NodeConfig,\n    protected eventEmitter: EventEmitter2,\n    private project: ISubqueryProject,\n    protected projectService: IProjectService<DS>,\n    private projectUpgradeService: IProjectUpgradeService,\n    protected queue: Q,\n    protected storeService: StoreService,\n    private storeModelProvider: IStoreModelProvider,\n    private poiSyncService: PoiSyncService,\n    private blockChainService: ICoreBlockchainService,\n    private multiChainRewindService: MultiChainRewindService\n  ) {}\n\n  abstract enqueueBlocks(heights: (IBlock<B> | number)[], latestBufferHeight?: number): void | Promise<void>;\n\n  async init(onDynamicDsCreated: (height: number) => void): Promise<void> {\n    this._onDynamicDsCreated = onDynamicDsCreated;\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    this.setProcessedBlockCount((await this.storeModelProvider.metadata.find('processedBlockCount', 0))!);\n  }\n\n  get queueSize(): number {\n    return this.queue.size;\n  }\n\n  get freeSize(): number {\n    assert(this.queue.freeSpace !== undefined, 'Queues for base block dispatcher must have a capacity set');\n    return this.queue.freeSpace;\n  }\n\n  get batchSize(): number {\n    return this.nodeConfig.batchSize;\n  }\n\n  get latestProcessedHeight(): number {\n    return this._latestProcessedHeight;\n  }\n\n  setLatestProcessedHeight(height: number): void {\n    this._latestProcessedHeight = height;\n  }\n\n  protected get onDynamicDsCreated(): (height: number) => void {\n    if (!this._onDynamicDsCreated) {\n      throw new Error('BaseBlockDispatcher has not been initialized');\n    }\n    return this._onDynamicDsCreated;\n  }\n\n  get latestBufferedHeight(): number {\n    return this._latestBufferedHeight;\n  }\n\n  set latestBufferedHeight(height: number) {\n    this.eventEmitter.emit(IndexerEvent.BlocknumberQueueSize, {\n      value: this.queueSize,\n    });\n    this._latestBufferedHeight = height;\n  }\n\n  protected setProcessedBlockCount(processedBlockCount: number): void {\n    this._processedBlockCount = processedBlockCount;\n    this.eventEmitter.emit(IndexerEvent.BlockProcessedCount, {\n      processedBlockCount,\n      timestamp: Date.now(),\n    });\n  }\n\n  /**\n   * rewind() is called from this.postProcessBlock(),\n   * it handles runtime status like compare it with current indexing number, if last corrected is already indexed\n   * then dispatch to projectService.reindex()\n   * not likely happen but if rewind to future block, flush queue only\n   * @param lastCorrectHeight\n   */\n  @mainThreadOnly()\n  protected async rewind(lastCorrectHeader: Header): Promise<void> {\n    if (lastCorrectHeader.blockHeight <= this.currentProcessingHeight) {\n      logger.info(`Found last verified block at height ${lastCorrectHeader.blockHeight}, rewinding...`);\n      await this.projectService.reindex(lastCorrectHeader);\n      this.setLatestProcessedHeight(lastCorrectHeader.blockHeight);\n      logger.info(`Successful rewind to block ${lastCorrectHeader.blockHeight}!`);\n    }\n    this.flushQueue(lastCorrectHeader.blockHeight);\n    logger.info(`Queued blocks flushed!`); //Also last buffered height reset, next fetching should start after lastCorrectHeight\n  }\n\n  flushQueue(height: number): void {\n    logger.info(`Queue flushed, height=\"${height}\"`);\n    this.latestBufferedHeight = height;\n    this.queue.flush();\n  }\n\n  // Is called directly before a block is processed\n  @mainThreadOnly()\n  protected async preProcessBlock(header: Header): Promise<void> {\n    const {blockHeight} = header;\n    monitorCreateBlockStart(blockHeight);\n    await this.storeService.setBlockHeader(header);\n\n    await this.projectUpgradeService.setCurrentHeight(blockHeight);\n\n    this.currentProcessingHeight = blockHeight;\n    this.eventEmitter.emit(IndexerEvent.BlockProcessing, {\n      height: blockHeight,\n      timestamp: Date.now(),\n    });\n  }\n\n  // Is called directly after a block is processed\n  @mainThreadOnly()\n  protected async postProcessBlock(header: Header, processBlockResponse: ProcessBlockResponse): Promise<void> {\n    const {blockHash, blockHeight: height} = header;\n    const {dynamicDsCreated, reindexBlockHeader: processReindexBlockHeader} = processBlockResponse;\n    // Rewind height received from admin api have higher priority than processed reindexBlockHeight\n    const reindexBlockHeader =\n      this._pendingRewindHeader ?? this.multiChainRewindService.waitRewindHeader ?? processReindexBlockHeader;\n    monitorWrite(`Finished block ${height}`);\n    if (reindexBlockHeader !== null && reindexBlockHeader !== undefined) {\n      try {\n        // End transaction\n        await this.storeModelProvider.applyPendingChanges(\n          height,\n          !this.projectService.hasDataSourcesAfterHeight(height),\n          this.storeService.transaction\n        );\n\n        if (this.nodeConfig.proofOfIndex) {\n          await this.poiSyncService.stopSync();\n          this.poiSyncService.clear();\n          monitorWrite(`poiSyncService stopped, cache cleared`);\n        }\n        monitorCreateBlockFork(reindexBlockHeader.blockHeight);\n        this.resetPendingRewindHeader();\n        await this.rewind(reindexBlockHeader);\n        // Bring poi sync service back to sync again.\n        if (this.nodeConfig.proofOfIndex) {\n          void this.poiSyncService.syncPoi();\n        }\n        this.eventEmitter.emit(IndexerEvent.RewindSuccess, {success: true, height: reindexBlockHeader.blockHeight});\n        return;\n      } catch (e: any) {\n        this.eventEmitter.emit(IndexerEvent.RewindFailure, {success: false, message: e.message});\n        monitorWrite(`***** Rewind failed: ${e.message}`);\n        throw e;\n      }\n    } else {\n      await this.updateStoreMetadata(height, header.timestamp, undefined, this.storeService.transaction);\n\n      const operationHash = this.storeService.getOperationMerkleRoot();\n      await this.createPOI(height, blockHash, operationHash, this.storeService.transaction);\n\n      if (dynamicDsCreated) {\n        this.onDynamicDsCreated(height);\n      }\n      assert(\n        !this.latestProcessedHeight || height > this.latestProcessedHeight,\n        `Block processed out of order. Height: ${height}. Latest: ${this.latestProcessedHeight}`\n      );\n      // In memory _processedBlockCount increase, db metadata increase BlockCount in indexer.manager\n      this.setProcessedBlockCount(this._processedBlockCount + 1);\n      this.setLatestProcessedHeight(height);\n    }\n\n    await this.storeModelProvider.applyPendingChanges(\n      height,\n      !this.projectService.hasDataSourcesAfterHeight(height),\n      this.storeService.transaction\n    );\n  }\n\n  @OnEvent(AdminEvent.rewindTarget)\n  async handleAdminRewind(blockPayload: TargetBlockPayload): Promise<void> {\n    if (this.currentProcessingHeight < blockPayload.height) {\n      // this will throw back to admin controller, will NOT lead current indexing exit\n      throw new Error(\n        `Current processing block ${this.currentProcessingHeight}, can not rewind to future block ${blockPayload.height}`\n      );\n    }\n\n    // TODO can this work without\n    this._pendingRewindHeader = await this.blockChainService.getHeaderForHeight(blockPayload.height);\n    const message = `Received admin command to rewind to block ${blockPayload.height}`;\n    monitorWrite(`***** [ADMIN] ${message}`);\n    logger.warn(message);\n  }\n\n  private resetPendingRewindHeader(): void {\n    this._pendingRewindHeader = undefined;\n  }\n\n  /**\n   * Process a block with any pre and post processing as well as a check to discard the block.\n   * */\n  private async processBlockTask<T>(\n    data: T,\n    getHeader: (data: T) => Header,\n    discardBlock: (header: Header) => boolean,\n    processBlock: (data: T) => Promise<ProcessBlockResponse>\n  ): Promise<void> {\n    const header = getHeader(data);\n    try {\n      if (discardBlock(header)) {\n        logger.debug(`Queue was reset for new DS, discarding fetched blocks`);\n        return;\n      }\n\n      await this.preProcessBlock(header);\n      const processBlockResponse = await processBlock(data);\n      await this.postProcessBlock(header, processBlockResponse);\n    } catch (e: any) {\n      // TODO discard any cache changes from this block height\n      if (this.isShutdown) {\n        return;\n      }\n      logger.error(\n        e,\n        `Failed to index block at height ${header.blockHeight} ${e.handler ? `${e.handler}(${e.stack ?? ''})` : ''}`\n      );\n      throw e;\n    }\n  }\n\n  /**\n   * Pipes a pending block to be processed.\n   * This includes error handling and will facilitate shutdown.\n   * If a block fails to fetch then and existing blocks that need to be fetched are processed before exiting.\n   * */\n  protected async pipeBlock<T>(options: {\n    /**\n     * A promise that resolves once the block is fetched.\n     * */\n    fetchTask: Promise<T>;\n    /**\n     * A function that triggers the block to be indexed.\n     * */\n    processBlock: (input: T) => Promise<ProcessBlockResponse>;\n    /**\n     *  Used to determine if a fetched block should be discarded and not processed. This happens with rewinds\n     * */\n    discardBlock: (header: Header) => boolean;\n    /**\n     *  The queue used to process blocks\n     * */\n    processQueue: AutoQueue<void>;\n    /**\n     * A function to abort fetching any other blokcs. This is called when there is an error with the fetch task */\n    abortFetching: () => Promise<void> | void;\n    getHeader: (input: T) => Header;\n    height: number;\n  }): Promise<void> {\n    return options.fetchTask\n      .catch(async (e) => {\n        // Failed to fetch block\n        if (isTaskFlushedError(e)) {\n          return;\n        }\n        if (isBlockUnavailableError(e)) {\n          return;\n        }\n\n        // Block fetching has failed, start shutting down things. But we can wait until the ramining fetched blocks can be processed\n        console.error('ERROR', e);\n        logger.error(`Failed to fetch block, waiting for fetched blocks to be processed before shutting down.`, e);\n        if (!this.isShutdown) {\n          this.isShutdown = true;\n          this.fetchFailureHeight = options.height;\n          await options.abortFetching();\n          // this.fetchQueue.abort();\n          // Wait for any pending blocks to be processed\n          await options.processQueue.onIdle();\n          // Ensure any pending changes are persisted\n          if (this.storeModelProvider instanceof StoreCacheService) {\n            await this.storeModelProvider.flushData(true);\n          }\n\n          exitWithError(new Error(`Failed to fetch block ${options.height}.`, {cause: e}), logger);\n        }\n      })\n      .then((data) => {\n        // Don't add more data to index if theres a failure fetching an earlier block\n        if (!data || (this.fetchFailureHeight && options.height > this.fetchFailureHeight)) {\n          return;\n        }\n\n        return options.processQueue\n          .put(() => this.processBlockTask(data, options.getHeader, options.discardBlock, options.processBlock))\n          .catch((e) => {\n            if (isTaskFlushedError(e)) {\n              // Do nothing, fetching the block was flushed, this could be caused by forked blocks or dynamic datasources\n              return;\n            }\n            logger.error(e, `Failed to process block ${options.height}`);\n            throw e;\n          });\n      })\n      .catch((e: any) => {\n        // Failed to process block\n        exitWithError(new Error(`Failed to index block ${options.height}`, {cause: e}), logger);\n      });\n  }\n\n  /**\n   * If index a block generate store operation, this will create a POI\n   * and this createdPoi will be upsert into CachedPoi\n   * @param height\n   * @param blockHash\n   * @param operationHash\n   * @private\n   */\n  private async createPOI(\n    height: number,\n    blockHash: string,\n    operationHash: Uint8Array,\n    tx?: Transaction\n  ): Promise<void> {\n    if (!this.nodeConfig.proofOfIndex) {\n      return;\n    }\n    if (isNullMerkelRoot(operationHash)) {\n      return;\n    }\n\n    const poiBlock = PoiBlock.create(height, blockHash, operationHash, this.project.id);\n    // This is the first creation of POI\n    await this.poi.bulkUpsert([poiBlock], tx);\n    await this.storeModelProvider.metadata.setBulk([{key: 'lastCreatedPoiHeight', value: height}], tx);\n    this.eventEmitter.emit(PoiEvent.PoiTarget, {\n      height,\n      timestamp: Date.now(),\n    });\n  }\n\n  @mainThreadOnly()\n  private async updateStoreMetadata(\n    height: number,\n    blockTimestamp?: Date,\n    updateProcessed = true,\n    tx?: Transaction\n  ): Promise<void> {\n    const meta = this.storeModelProvider.metadata;\n    // Update store metadata\n    await meta.setBulk(\n      [\n        {key: 'lastProcessedHeight', value: height},\n        {key: 'lastProcessedTimestamp', value: Date.now()},\n      ],\n      tx\n    );\n    // Db Metadata increase BlockCount, in memory ref to block-dispatcher _processedBlockCount\n    if (updateProcessed) {\n      await meta.setIncrement('processedBlockCount', undefined, tx);\n    }\n    if (blockTimestamp) {\n      await meta.set('lastProcessedBlockTimestamp', blockTimestamp.getTime(), tx);\n    }\n  }\n\n  private get poi(): IPoi {\n    const poi = this.storeModelProvider.poi;\n    if (!poi) {\n      throw new Error('Poi service expected poi repo but it was not found');\n    }\n    return poi;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/blockDispatcher/block-dispatcher.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {delay} from '@subql/common';\nimport {isTaskFlushedError, TaskFlushedError} from '@subql/node-core/utils';\nimport {NodeConfig} from '../../configure';\nimport {exitWithError} from '../../process';\nimport {ConnectionPoolStateManager} from '../connectionPoolState.manager';\nimport {MultiChainRewindService} from '../multiChainRewind.service';\nimport {Header, IBlock} from '../types';\nimport {BaseWorkerService, BlockUnavailableError, IBaseIndexerWorker, WorkerStatusResponse} from '../worker';\nimport {IBlockDispatcher, ProcessBlockResponse} from './base-block-dispatcher';\nimport {BlockDispatcher} from './block-dispatcher';\nimport {WorkerBlockDispatcher} from './worker-block-dispatcher';\n\nlet failureBlocks: number[] = [];\nlet indexBlockFunction: (block: IBlock<number>) => Promise<void | ProcessBlockResponse>;\nlet workerIdx = 0;\n\nconst nodeConfig = new NodeConfig({batchSize: 10, workers: 2} as any);\n\nconst defaultFetchBlocksFunction = async (height: number): Promise<IBlock<number>> => {\n  await delay(0.1);\n  if (failureBlocks.includes(height)) {\n    await delay(0.3);\n    throw new Error(`Failed to fetch block ${height}`);\n  }\n  return {\n    block: height,\n    getHeader: () => ({\n      blockHeight: height,\n      blockHash: height.toString(),\n      parentHash: (height - 1).toString(),\n      timestamp: new Date(),\n    }),\n  };\n};\n\nlet dynamicDsCreatedBlock: number[] = [];\nlet fetchBlocksFunction = defaultFetchBlocksFunction;\n\nfunction resolveablePromise(): [Promise<void>, () => void] {\n  let resolve: () => void;\n  const promise = new Promise<void>((res) => {\n    resolve = res;\n  });\n  return [promise, resolve!];\n}\n\nconst projectService = {\n  getDataSources: jest.fn(),\n  hasDataSourcesAfterHeight: jest.fn(),\n  reindex: jest.fn(),\n} as any;\n\nconst projectUpgradeService = {\n  setCurrentHeight: jest.fn(),\n} as any;\n\nconst storeService = {\n  setBlockHeader: jest.fn(),\n  getOperationMerkleRoot: jest.fn(),\n  transaction: null,\n  getStore: jest.fn(),\n} as any;\n\nconst storeModelProvider = {\n  metadata: {\n    find: jest.fn(),\n    set: jest.fn(),\n    setBulk: jest.fn(),\n    setIncrement: jest.fn(),\n  },\n  applyPendingChanges: jest.fn(),\n} as any;\n\nconst blockchainService = {\n  getBlockSize: jest.fn(),\n  fetchBlocks: async ([blockNum]: number[]) => {\n    const res = await fetchBlocksFunction(blockNum);\n    return [res];\n  },\n  fetchBlockWorker: (worker: TestWorker, height: number) => worker.fetchBlock(height),\n} as any;\nconst multichainRewindService = {waitRewindHeader: undefined} as MultiChainRewindService;\nclass TestWorkerService extends BaseWorkerService<number, Header> {\n  async fetchChainBlock(height: number): Promise<IBlock<number>> {\n    return fetchBlocksFunction(height);\n  }\n  toBlockResponse(block: IBlock<number>): Header {\n    return {\n      blockHeight: block.block,\n      blockHash: block.block.toString(),\n      parentHash: (block.block - 1).toString(),\n      timestamp: new Date(),\n    };\n  }\n\n  async processFetchedBlock(block: IBlock<number>): Promise<ProcessBlockResponse> {\n    const res = await indexBlockFunction?.(block);\n\n    if (res) {\n      return res;\n    }\n\n    return {\n      dynamicDsCreated: dynamicDsCreatedBlock.includes(block.block),\n      reindexBlockHeader: null,\n    };\n  }\n  getBlockSize(block: IBlock<number>): number {\n    return 1;\n  }\n}\n\nclass TestWorker implements IBaseIndexerWorker {\n  private threradId = workerIdx++;\n  constructor(public workerService: TestWorkerService) {}\n  async processBlock(height: number): Promise<ProcessBlockResponse> {\n    return this.workerService.processBlock(height);\n  }\n  async fetchBlock(height: number): Promise<Header> {\n    return this.workerService.fetchBlock(height, {});\n  }\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async numFetchedBlocks(): Promise<number> {\n    return this.workerService.numFetchedBlocks;\n  }\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async numFetchingBlocks(): Promise<number> {\n    return this.workerService.numFetchingBlocks;\n  }\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getStatus(): Promise<WorkerStatusResponse> {\n    return {\n      threadId: this.threradId + 1,\n      isIndexing: this.workerService.isIndexing,\n      fetchedBlocks: this.workerService.numFetchedBlocks,\n      toFetchBlocks: this.workerService.numFetchingBlocks,\n    };\n  }\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getMemoryLeft(): Promise<number> {\n    return 1;\n  }\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async abortFetching(): Promise<void> {\n    return this.workerService.abortFetching();\n  }\n\n  terminate() {\n    /* Do nothing*/\n  }\n}\n\n// Stop the application exiting\njest.mock('../../process', () => ({\n  ...jest.requireActual('../../process'),\n  exitWithError: jest.fn(),\n}));\njest.mock('../../utils/queues/autoQueue', () => {\n  const original = jest.requireActual('../../utils/queues/autoQueue');\n  return {\n    ...original,\n    isTaskFlushedError: jest.fn(original.isTaskFlushedError),\n  };\n});\n\njest.mock('../worker', () => ({\n  ...jest.requireActual('../worker'),\n  createIndexerWorker: jest.fn(() => {\n    const workerService = new TestWorkerService(projectService, projectUpgradeService, nodeConfig);\n\n    return new TestWorker(workerService);\n  }),\n}));\n\ndescribe.each<[string, () => IBlockDispatcher<number>]>([\n  [\n    'BlockDispatcher',\n    (): IBlockDispatcher<number> => {\n      const indexerManager = {\n        indexBlock: async (input: IBlock<number>) => {\n          const res = await indexBlockFunction(input);\n\n          if (res) {\n            return res;\n          }\n\n          return {\n            dynamicDsCreated: dynamicDsCreatedBlock.includes(input.block),\n            reindexBlockHeader: null,\n          };\n        },\n      } as any;\n\n      return new BlockDispatcher(\n        nodeConfig,\n        new EventEmitter2(),\n        projectService,\n        projectUpgradeService,\n        storeService,\n        storeModelProvider,\n        {} as any, // PoiSyncService\n        {\n          id: 'id',\n        } as any, // ISubqueryProject\n        blockchainService,\n        indexerManager,\n        multichainRewindService\n      );\n    },\n  ],\n  [\n    'WorkerBlockDispatcher',\n    (): IBlockDispatcher<number> => {\n      return new WorkerBlockDispatcher(\n        nodeConfig,\n        new EventEmitter2(),\n        projectService,\n        projectUpgradeService,\n        storeService,\n        storeModelProvider,\n        {getCache: jest.fn()} as any, // CacheService\n        {} as any, // PoiSyncService\n        {} as any, // DynamicDsService\n        {} as any, // UnfinalizedBlockService\n        new ConnectionPoolStateManager(() => {\n          /* Do nothing */\n        }),\n        {\n          id: 'id',\n        } as any, // ISubqueryProject\n        blockchainService,\n        multichainRewindService,\n        '', // workerPath\n        [] // workerFns\n      );\n    },\n  ],\n])('%s', (name, initDispatcher) => {\n  let blockDispatcher: IBlockDispatcher<number>;\n\n  beforeEach(async () => {\n    fetchBlocksFunction = defaultFetchBlocksFunction;\n    failureBlocks = [];\n    indexBlockFunction = jest.fn();\n    workerIdx = 0;\n\n    blockDispatcher = initDispatcher();\n\n    await blockDispatcher.init(blockDispatcher.flushQueue.bind(blockDispatcher));\n  });\n\n  afterEach(async () => {\n    dynamicDsCreatedBlock = [];\n    if (blockDispatcher instanceof BlockDispatcher || blockDispatcher instanceof WorkerBlockDispatcher) {\n      await blockDispatcher.onApplicationShutdown();\n    }\n  });\n\n  it('should finish indexing fetched blocks before shutdown when fetching a block fails', async () => {\n    const indexedBlocks: number[] = [];\n    failureBlocks = [5];\n\n    indexBlockFunction = jest.fn(async (block: IBlock<number>) => {\n      await delay(0.4);\n      indexedBlocks.push(block.block);\n    });\n\n    await blockDispatcher.enqueueBlocks([1, 2, 3, 4, 5, 6, 7], 7);\n    await delay(2);\n\n    await blockDispatcher.enqueueBlocks([8, 9, 10], 10);\n\n    expect(exitWithError).toHaveBeenCalled();\n\n    // Should index 4 blocks\n    expect(indexBlockFunction).toHaveBeenCalledTimes(4);\n    expect(indexedBlocks).toEqual([1, 2, 3, 4]);\n  });\n\n  it('should finish indexing fetched blocks before shutdown when fetching multiple blocks fail', async () => {\n    const indexedBlocks: number[] = [];\n    failureBlocks = [5, 6, 7];\n\n    indexBlockFunction = jest.fn(async (block: IBlock<number>) => {\n      await delay(0.4);\n      indexedBlocks.push(block.block);\n    });\n\n    await blockDispatcher.enqueueBlocks([1, 2, 3, 4, 5, 6, 7], 7);\n    await delay(2);\n\n    await blockDispatcher.enqueueBlocks([8, 9, 10], 10);\n\n    expect(exitWithError).toHaveBeenCalled();\n\n    // Should index 4 blocks\n    expect(indexBlockFunction).toHaveBeenCalledTimes(4);\n    expect(indexedBlocks).toEqual([1, 2, 3, 4]);\n  });\n\n  it('should finish indexing fetched blocks before shutdown when an earlier block fails to fetch after a later block', async () => {\n    const indexedBlocks: number[] = [];\n    failureBlocks = [5];\n\n    fetchBlocksFunction = async (height: number): Promise<IBlock<number>> => {\n      await delay(0.1);\n      if (failureBlocks.includes(height)) {\n        await delay(1);\n        throw new Error(`Failed to fetch block ${height}`);\n      }\n      return {\n        block: height,\n        getHeader: () => ({\n          blockHeight: height,\n          blockHash: height.toString(),\n          parentHash: (height - 1).toString(),\n          timestamp: new Date(),\n        }),\n      };\n    };\n\n    indexBlockFunction = jest.fn(async (block: IBlock<number>) => {\n      await delay(0.4);\n      indexedBlocks.push(block.block);\n    });\n\n    // Split over 2 calls to be sent do different workers.\n    await blockDispatcher.enqueueBlocks([1, 2, 3, 4, 5], 5);\n    await blockDispatcher.enqueueBlocks([6, 7, 8], 8);\n    await delay(2);\n\n    expect(exitWithError).toHaveBeenCalled();\n\n    // Should index 4 blocks\n    expect(indexBlockFunction).toHaveBeenCalledTimes(4);\n    expect(indexedBlocks).toEqual([1, 2, 3, 4]);\n  });\n\n  // This simulates a rewind or a new dynamic datasource changing the blocks to index\n  it('discards blocks from fetching if the latest buffered height reduces', async () => {\n    const indexedBlocks: number[] = [];\n\n    const [pendingBlock3, resolveBlock3] = resolveablePromise();\n    const [pendingBlock5, resolveBlock5] = resolveablePromise();\n\n    indexBlockFunction = jest.fn(async (block: IBlock<number>) => {\n      await delay(0.4);\n      indexedBlocks.push(block.block);\n      if (block.block === 3) {\n        resolveBlock3();\n      }\n      if (block.block === 5) {\n        resolveBlock5();\n      }\n    });\n\n    await blockDispatcher.enqueueBlocks([1, 3, 5, 7], 7);\n    // Wait for some blocks to be indexed\n    await pendingBlock3;\n\n    // Update blocks, rewinding last processed height\n    await blockDispatcher.enqueueBlocks([4, 5], 5);\n    await pendingBlock5;\n\n    expect(indexedBlocks).toEqual([1, 3, 4, 5]);\n  });\n\n  it('correctly sets the free size', async () => {\n    const [pendingBlock, resolveBlock] = resolveablePromise();\n\n    fetchBlocksFunction = async (height: number): Promise<IBlock<number>> => {\n      await pendingBlock;\n      return {\n        block: height,\n        getHeader: () => ({\n          blockHeight: height,\n          blockHash: height.toString(),\n          parentHash: (height - 1).toString(),\n          timestamp: new Date(),\n        }),\n      };\n    };\n\n    // Startup should have free size\n    expect(blockDispatcher.freeSize).toBeGreaterThan(0);\n\n    const blocks = new Array(blockDispatcher.freeSize).fill(0).map((_, idx) => idx + 1);\n    const lastBlock = blocks[blocks.length - 1];\n    await blockDispatcher.enqueueBlocks(blocks, lastBlock);\n\n    // BlockDispatcher will take all the items from the queue and put them straight into the fetch queue. So the value doesn't change initially\n    const expectedSize = blockDispatcher instanceof BlockDispatcher ? 30 : 0;\n\n    expect(blockDispatcher.freeSize).toBe(expectedSize);\n\n    // Trigger blocks being fetched\n    resolveBlock();\n  });\n\n  it('handles a task flushed error', async () => {\n    const indexedBlocks: number[] = [];\n\n    fetchBlocksFunction = async (height: number): Promise<IBlock<number>> => {\n      await delay(0.1);\n      return {\n        block: height,\n        getHeader: () => ({\n          blockHeight: height,\n          blockHash: height.toString(),\n          parentHash: (height - 1).toString(),\n          timestamp: new Date(),\n        }),\n      };\n    };\n\n    indexBlockFunction = jest.fn(async (block: IBlock<number>) => {\n      await delay(0.1);\n      indexedBlocks.push(block.block);\n\n      if (block.block === 2) {\n        return {\n          dynamicDsCreated: true,\n          reindexBlockHeader: block.getHeader(),\n        };\n      }\n    });\n\n    // Split over 2 calls to be sent do different workers.\n    await blockDispatcher.enqueueBlocks([1, 2, 3, 4, 5], 5);\n    await blockDispatcher.enqueueBlocks([6, 7, 8], 8);\n    await delay(2);\n\n    // This should flush the blocks after the height where dynamicDs is created\n    expect(indexBlockFunction).toHaveBeenCalledTimes(2);\n    expect(indexedBlocks).toEqual([1, 2]);\n  });\n\n  it('handles a block unavailable error', async () => {\n    const indexedBlocks: number[] = [];\n\n    const unavailableBlocks = [4];\n\n    fetchBlocksFunction = async (height: number): Promise<IBlock<number>> => {\n      await delay(0.1);\n\n      if (unavailableBlocks.includes(height)) {\n        throw new BlockUnavailableError(`Block ${height} is unavailable`);\n      }\n      return {\n        block: height,\n        getHeader: () => ({\n          blockHeight: height,\n          blockHash: height.toString(),\n          parentHash: (height - 1).toString(),\n          timestamp: new Date(),\n        }),\n      };\n    };\n\n    indexBlockFunction = jest.fn(async (block: IBlock<number>) => {\n      await delay(0.1);\n      indexedBlocks.push(block.block);\n    });\n\n    // Split over 2 calls to be sent do different workers.\n    await blockDispatcher.enqueueBlocks([1, 2, 3, 4, 5], 5);\n    await blockDispatcher.enqueueBlocks([6, 7, 8], 8);\n    await delay(2);\n\n    // This should flush the blocks after the height where dynamicDs is created\n    expect(indexBlockFunction).toHaveBeenCalledTimes(7);\n    expect(indexedBlocks).toEqual([1, 2, 3, 5, 6, 7, 8]);\n  });\n\n  describe('postProcessBlock', () => {\n    beforeEach(() => {\n      jest.clearAllMocks();\n    });\n\n    it('should call storeModelProvider.applyPendingChanges with correct parameters during normal processing', async () => {\n      // Arrange\n      const header: Header = {\n        blockHeight: 100,\n        blockHash: '0xhash',\n        parentHash: '0xparenthash',\n        timestamp: new Date(),\n      };\n\n      const processBlockResponse: ProcessBlockResponse = {\n        dynamicDsCreated: false,\n        reindexBlockHeader: null,\n      };\n\n      // Act\n      await (blockDispatcher as any).postProcessBlock(header, processBlockResponse);\n\n      // Assert\n      expect(storeModelProvider.applyPendingChanges).toHaveBeenCalledWith(\n        header.blockHeight,\n        true, // !projectService.hasDataSourcesAfterHeight(height)\n        storeService.transaction\n      );\n    });\n\n    it('should call applyPendingChanges correctly when handling a reindex', async () => {\n      // Arrange\n      const header: Header = {\n        blockHeight: 100,\n        blockHash: '0xhash',\n        parentHash: '0xparenthash',\n        timestamp: new Date(),\n      };\n\n      const reindexBlockHeader: Header = {\n        blockHeight: 90,\n        blockHash: '0xoldhash',\n        parentHash: '0xoldparenthash',\n        timestamp: new Date(),\n      };\n\n      const processBlockResponse: ProcessBlockResponse = {\n        dynamicDsCreated: false,\n        reindexBlockHeader,\n      };\n\n      // Mock rewind method to avoid executing the full rewind logic\n      (blockDispatcher as any).rewind = jest.fn().mockResolvedValue(undefined);\n\n      // Act\n      await (blockDispatcher as any).postProcessBlock(header, processBlockResponse);\n\n      // Assert\n      expect(storeModelProvider.applyPendingChanges).toHaveBeenCalledWith(\n        header.blockHeight,\n        true, // !projectService.hasDataSourcesAfterHeight(height)\n        storeService.transaction\n      );\n    });\n\n    it('should call applyPendingChanges correctly when a dynamic datasource is created', async () => {\n      (blockDispatcher as any)._onDynamicDsCreated = jest.fn();\n\n      // Arrange\n      const header: Header = {\n        blockHeight: 100,\n        blockHash: '0xhash',\n        parentHash: '0xparenthash',\n        timestamp: new Date(),\n      };\n\n      const processBlockResponse: ProcessBlockResponse = {\n        dynamicDsCreated: true, // Dynamic datasource was created\n        reindexBlockHeader: null,\n      };\n\n      // Act\n      await (blockDispatcher as any).postProcessBlock(header, processBlockResponse);\n\n      // Assert\n      expect((blockDispatcher as any)._onDynamicDsCreated).toHaveBeenCalledWith(header.blockHeight);\n      expect(storeModelProvider.applyPendingChanges).toHaveBeenCalledWith(\n        header.blockHeight,\n        true,\n        storeService.transaction\n      );\n    });\n\n    it('should call _onDynamicDsCreated when dynamic datasource is created', async () => {\n      dynamicDsCreatedBlock = [7];\n      const onDynamicDsCreatedSpy = jest.spyOn(blockDispatcher as any, '_onDynamicDsCreated');\n      await blockDispatcher.enqueueBlocks([7], 7);\n      await blockDispatcher.enqueueBlocks([8], 8);\n      await delay(2);\n\n      const queueName = blockDispatcher instanceof BlockDispatcher ? 'Process' : 'Fetch';\n      expect(onDynamicDsCreatedSpy).toHaveBeenCalledWith(7);\n      expect(isTaskFlushedError).toHaveBeenCalledWith(new TaskFlushedError(queueName));\n    });\n  });\n\n  describe('Multi chain rewind', () => {\n    beforeEach(() => {\n      multichainRewindService.waitRewindHeader = {\n        blockHeight: 10,\n        blockHash: '0xhash',\n        parentHash: '0xparenthash',\n        timestamp: new Date(),\n      };\n      jest.clearAllMocks();\n    });\n    afterAll(() => {\n      multichainRewindService.waitRewindHeader = undefined;\n    });\n    it('Data before the rollback height is reached can be written normally', async () => {\n      await blockDispatcher.enqueueBlocks([7, 8, 9], 9);\n      await delay(2);\n      expect(projectService.reindex).toHaveBeenCalledTimes(0);\n\n      await blockDispatcher.enqueueBlocks([10], 10);\n      await delay(2);\n      expect(projectService.reindex).toHaveBeenCalledWith(multichainRewindService.waitRewindHeader);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/blockDispatcher/block-dispatcher.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {OnApplicationShutdown} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {Interval} from '@nestjs/schedule';\nimport {BaseDataSource} from '@subql/types-core';\nimport {IBlockchainService} from '../../blockchain.service';\nimport {NodeConfig} from '../../configure';\nimport {IProjectUpgradeService} from '../../configure/ProjectUpgrade.service';\nimport {IndexerEvent} from '../../events';\nimport {getBlockHeight, IBlock, MultiChainRewindService, PoiSyncService, StoreService} from '../../indexer';\nimport {getLogger} from '../../logger';\nimport {exitWithError, monitorWrite} from '../../process';\nimport {profilerWrap} from '../../profiler';\nimport {Queue, AutoQueue, RampQueue, delay} from '../../utils';\nimport {IStoreModelProvider} from '../storeModelProvider';\nimport {IIndexerManager, IProjectService, ISubqueryProject} from '../types';\nimport {BaseBlockDispatcher} from './base-block-dispatcher';\n\nconst logger = getLogger('BlockDispatcherService');\n\ntype BatchBlockFetcher<B> = (heights: number[]) => Promise<IBlock<B>[]>;\n\n/**\n * @description Intended to behave the same as WorkerBlockDispatcherService but doesn't use worker threads or any parallel processing\n */\nexport class BlockDispatcher<B, DS extends BaseDataSource>\n  extends BaseBlockDispatcher<Queue<IBlock<B> | number>, DS, B>\n  implements OnApplicationShutdown\n{\n  private fetchQueue: AutoQueue<IBlock<B>>;\n  private processQueue: AutoQueue<void>;\n\n  private fetchBlocksBatches: BatchBlockFetcher<B>;\n\n  private fetching = false;\n\n  constructor(\n    nodeConfig: NodeConfig,\n    eventEmitter: EventEmitter2,\n    projectService: IProjectService<DS>,\n    projectUpgradeService: IProjectUpgradeService,\n    storeService: StoreService,\n    storeModelProvider: IStoreModelProvider,\n    poiSyncService: PoiSyncService,\n    project: ISubqueryProject,\n    blockchainService: IBlockchainService<DS>,\n    private indexerManager: IIndexerManager<B, DS>,\n    multiChainRewindService: MultiChainRewindService\n  ) {\n    super(\n      nodeConfig,\n      eventEmitter,\n      project,\n      projectService,\n      projectUpgradeService,\n      new Queue(nodeConfig.batchSize * 3),\n      storeService,\n      storeModelProvider,\n      poiSyncService,\n      blockchainService,\n      multiChainRewindService\n    );\n    this.processQueue = new AutoQueue(nodeConfig.batchSize * 3, 1, nodeConfig.timeout, 'Process');\n    this.fetchQueue = new RampQueue(\n      blockchainService.getBlockSize.bind(this),\n      nodeConfig.batchSize,\n      nodeConfig.batchSize * 3,\n      nodeConfig.timeout,\n      'Fetch'\n    );\n    if (this.nodeConfig.profiler) {\n      this.fetchBlocksBatches = profilerWrap(\n        blockchainService.fetchBlocks.bind(blockchainService),\n        'BlockDispatcher',\n        'fetchBlocksBatches'\n      );\n    } else {\n      this.fetchBlocksBatches = blockchainService.fetchBlocks.bind(blockchainService);\n    }\n  }\n\n  onApplicationShutdown(): void {\n    this.isShutdown = true;\n    this.processQueue.abort();\n    this.fetchQueue.abort();\n  }\n\n  enqueueBlocks(heights: (IBlock<B> | number)[], latestBufferHeight: number): void {\n    // In the case where factors of batchSize is equal to bypassBlock or when heights is []\n    // to ensure block is bypassed, we set the latestBufferHeight to the heights\n    // make sure lastProcessedHeight in metadata is updated\n    if (!heights.length) {\n      heights = [latestBufferHeight];\n    }\n    const startBlockHeight = getBlockHeight(heights[0]);\n    const endBlockHeight = getBlockHeight(heights[heights.length - 1]);\n    logger.info(`Enqueueing blocks ${startBlockHeight}...${endBlockHeight}, total ${heights.length} blocks`);\n    this.queue.putMany(heights);\n    this.latestBufferedHeight = latestBufferHeight;\n    void this.fetchBlocksFromQueue();\n  }\n\n  flushQueue(height: number): void {\n    super.flushQueue(height);\n    this.fetchQueue.flush();\n    this.processQueue.flush();\n  }\n\n  @Interval(10000)\n  queueStats(stat: 'size' | 'freeSpace' = 'freeSpace'): void {\n    // NOTE: If the free space of the process queue is low it means that processing is the limiting factor. If it is large then fetching blocks is the limitng factor.\n    logger.debug(\n      `QUEUE INFO ${stat}: Block numbers: ${this.queue[stat]}, fetch: ${this.fetchQueue[stat]}, process: ${this.processQueue[stat]}`\n    );\n  }\n\n  private async fetchBlocksFromQueue(): Promise<void> {\n    if (this.fetching || this.isShutdown) return;\n\n    this.fetching = true;\n\n    try {\n      while (!this.isShutdown) {\n        // Wait for blocks or capacity in queues. There needs to be a check that the output of the fetch queue has capacity to go to the process queue\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        if (!this.queue.size || !this.fetchQueue.freeSpace! || this.fetchQueue.size >= this.processQueue.freeSpace!) {\n          await delay(1);\n          continue;\n        }\n        const blockOrNum = this.queue.take();\n        // This shouldn't happen but if it does it whould get caught above\n        if (!blockOrNum) {\n          continue;\n        }\n\n        // Used to compare before and after as a way to check if queue was flushed\n        const bufferedHeight = this._latestBufferedHeight;\n\n        const pendingBlock = this.fetchQueue.put(async () => {\n          if (typeof blockOrNum !== 'number') {\n            // Type is of block\n            return blockOrNum;\n          }\n          const [block] = await this.fetchBlocksBatches([blockOrNum]);\n\n          return block;\n        });\n\n        void this.pipeBlock({\n          fetchTask: pendingBlock,\n          processBlock: async (block: IBlock<B>) => {\n            monitorWrite(`Processing from main thread`);\n            // Inject runtimeVersion here to enhance api.at preparation\n            const processBlockResponse = await this.indexerManager.indexBlock(\n              block,\n              await this.projectService.getDataSources(block.getHeader().blockHeight)\n            );\n\n            //set block to null for garbage collection\n            (block as any) = null;\n            return processBlockResponse;\n          },\n          discardBlock: (header) => {\n            // Check if the queues have been flushed between queue.takeMany and fetchBlocksBatches resolving\n            // Peeking the queue is because the latestBufferedHeight could have regrown since fetching block\n            const peeked = this.queue.peek();\n            return !!(\n              bufferedHeight > this._latestBufferedHeight ||\n              (peeked && getBlockHeight(peeked) < header.blockHeight)\n            );\n          },\n          processQueue: this.processQueue,\n          abortFetching: this.fetchQueue.abort.bind(this.fetchQueue),\n          getHeader: (block) => block.getHeader(),\n          height: getBlockHeight(blockOrNum),\n        });\n\n        this.eventEmitter.emit(IndexerEvent.BlockQueueSize, {\n          value: this.processQueue.size,\n        });\n      }\n    } catch (e: any) {\n      if (!this.isShutdown) {\n        exitWithError(new Error(`Failed to process blocks from queue`, {cause: e}), logger);\n      }\n    } finally {\n      this.fetching = false;\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/blockDispatcher/factory.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {BaseDataSource} from '@subql/types-core';\nimport {IApiConnectionSpecific} from '../../api.service';\nimport {IBlockchainService} from '../../blockchain.service';\nimport {IProjectUpgradeService, NodeConfig} from '../../configure';\nimport {ConnectionPoolStateManager} from '../connectionPoolState.manager';\nimport {DynamicDsService} from '../dynamic-ds.service';\nimport {InMemoryCacheService} from '../inMemoryCache.service';\nimport {MonitorService} from '../monitor.service';\nimport {MultiChainRewindService} from '../multiChainRewind.service';\nimport {PoiSyncService} from '../poi';\nimport {ProjectService} from '../project.service';\nimport {StoreService} from '../store.service';\nimport {IStoreModelProvider} from '../storeModelProvider';\nimport {IIndexerManager, ISubqueryProject} from '../types';\nimport {UnfinalizedBlocksService} from '../unfinalizedBlocks.service';\nimport {createIndexerWorker, IBaseIndexerWorker} from '../worker';\nimport {IBlockDispatcher} from './base-block-dispatcher';\nimport {BlockDispatcher} from './block-dispatcher';\nimport {WorkerBlockDispatcher} from './worker-block-dispatcher';\n\nexport const blockDispatcherFactory =\n  <DS extends BaseDataSource, Block, ApiConn extends IApiConnectionSpecific, Worker extends IBaseIndexerWorker>(\n    workerPath: string,\n    workerFns: Parameters<typeof createIndexerWorker<Worker, ApiConn, Block, DS>>[1],\n    workerData?: unknown\n  ) =>\n  (\n    nodeConfig: NodeConfig,\n    eventEmitter: EventEmitter2,\n    projectService: ProjectService<DS>,\n    projectUpgradeService: IProjectUpgradeService,\n    cacheService: InMemoryCacheService,\n    storeService: StoreService,\n    storeModelProvider: IStoreModelProvider,\n    poiSyncService: PoiSyncService,\n    project: ISubqueryProject,\n    dynamicDsService: DynamicDsService<DS>,\n    unfinalizedBlocks: UnfinalizedBlocksService,\n    connectionPoolState: ConnectionPoolStateManager<ApiConn>,\n    blockchainService: IBlockchainService<DS>,\n    indexerManager: IIndexerManager<Block, DS>,\n    multiChainRewindService: MultiChainRewindService,\n    monitorService?: MonitorService\n  ): IBlockDispatcher<Block> => {\n    return nodeConfig.workers\n      ? new WorkerBlockDispatcher<DS, Worker, Block, ApiConn>(\n          nodeConfig,\n          eventEmitter,\n          projectService,\n          projectUpgradeService,\n          storeService,\n          storeModelProvider,\n          cacheService,\n          poiSyncService,\n          dynamicDsService,\n          unfinalizedBlocks,\n          connectionPoolState,\n          project,\n          blockchainService,\n          multiChainRewindService,\n          workerPath,\n          workerFns,\n          monitorService,\n          workerData\n        )\n      : new BlockDispatcher(\n          nodeConfig,\n          eventEmitter,\n          projectService,\n          projectUpgradeService,\n          storeService,\n          storeModelProvider,\n          poiSyncService,\n          project,\n          blockchainService,\n          indexerManager,\n          multiChainRewindService\n        );\n  };\n"
  },
  {
    "path": "packages/node-core/src/indexer/blockDispatcher/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './base-block-dispatcher';\nexport * from './block-dispatcher';\nexport * from './worker-block-dispatcher';\nexport * from './factory';\n"
  },
  {
    "path": "packages/node-core/src/indexer/blockDispatcher/worker-block-dispatcher.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Inject, Injectable, OnApplicationShutdown} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {Interval} from '@nestjs/schedule';\nimport {BaseDataSource} from '@subql/types-core';\nimport {last} from 'lodash';\nimport {IApiConnectionSpecific} from '../../api.service';\nimport {IBlockchainService} from '../../blockchain.service';\nimport {NodeConfig} from '../../configure';\nimport {IProjectUpgradeService} from '../../configure/ProjectUpgrade.service';\nimport {IndexerEvent} from '../../events';\nimport {\n  ConnectionPoolStateManager,\n  createIndexerWorker,\n  DynamicDsService,\n  IBaseIndexerWorker,\n  IBlock,\n  InMemoryCacheService,\n  MultiChainRewindService,\n  PoiSyncService,\n  TerminateableWorker,\n  UnfinalizedBlocksService,\n} from '../../indexer';\nimport {getLogger} from '../../logger';\nimport {monitorWrite} from '../../process';\nimport {AutoQueue} from '../../utils';\nimport {MonitorServiceInterface} from '../monitor.service';\nimport {StoreService} from '../store.service';\nimport {IStoreModelProvider} from '../storeModelProvider';\nimport {ISubqueryProject, IProjectService, Header} from '../types';\nimport {BaseBlockDispatcher} from './base-block-dispatcher';\n\nconst logger = getLogger('WorkerBlockDispatcherService');\n\nfunction initAutoQueue<T>(\n  workers: number | undefined,\n  batchSize: number,\n  timeout?: number,\n  name?: string\n): AutoQueue<T> {\n  assert(workers && workers > 0, 'Number of workers must be greater than 0');\n  const capacity = workers * batchSize * 2;\n  // Concurrency is the same as capacity here, we want maximum throughput\n  return new AutoQueue(capacity, capacity, timeout, name);\n}\n\n@Injectable()\nexport class WorkerBlockDispatcher<\n    DS extends BaseDataSource = BaseDataSource,\n    Worker extends IBaseIndexerWorker = IBaseIndexerWorker,\n    Block = any,\n    ApiConn extends IApiConnectionSpecific = IApiConnectionSpecific,\n  >\n  extends BaseBlockDispatcher<AutoQueue<Header>, DS, Block>\n  implements OnApplicationShutdown\n{\n  protected workers: TerminateableWorker<Worker>[] = [];\n  private numWorkers: number;\n  private processQueue: AutoQueue<void>;\n\n  private createWorker: () => Promise<TerminateableWorker<Worker>>;\n\n  constructor(\n    nodeConfig: NodeConfig,\n    eventEmitter: EventEmitter2,\n    @Inject('IProjectService') projectService: IProjectService<DS>,\n    @Inject('IProjectUpgradeService') projectUpgradeService: IProjectUpgradeService,\n    storeService: StoreService,\n    storeModelProvider: IStoreModelProvider,\n    cacheService: InMemoryCacheService,\n    poiSyncService: PoiSyncService,\n    dynamicDsService: DynamicDsService<DS>,\n    unfinalizedBlocksService: UnfinalizedBlocksService<Block>,\n    connectionPoolState: ConnectionPoolStateManager<ApiConn>,\n    @Inject('ISubqueryProject') project: ISubqueryProject,\n    @Inject('IBlockchainService') private blockchainService: IBlockchainService<DS>,\n    multiChainRewindService: MultiChainRewindService,\n    workerPath: string,\n    workerFns: Parameters<typeof createIndexerWorker<Worker, ApiConn, Block, DS>>[1],\n    monitorService?: MonitorServiceInterface,\n    workerData?: unknown\n  ) {\n    super(\n      nodeConfig,\n      eventEmitter,\n      project,\n      projectService,\n      projectUpgradeService,\n      initAutoQueue(nodeConfig.workers, nodeConfig.batchSize, nodeConfig.timeout, 'Fetch'),\n      storeService,\n      storeModelProvider,\n      poiSyncService,\n      blockchainService,\n      multiChainRewindService\n    );\n\n    this.processQueue = new AutoQueue(this.queue.capacity, 1, nodeConfig.timeout, 'Process');\n\n    this.createWorker = () =>\n      createIndexerWorker<Worker, ApiConn, Block, DS>(\n        workerPath,\n        workerFns,\n        storeService.getStore(),\n        cacheService.getCache(),\n        dynamicDsService,\n        unfinalizedBlocksService,\n        connectionPoolState,\n        project.root,\n        projectService.startHeight,\n        monitorService,\n        workerData\n      );\n    // initAutoQueue will assert that workers is set. unfortunately we cant do anything before the super call\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    this.numWorkers = nodeConfig.workers!;\n  }\n\n  get freeSize(): number {\n    assert(\n      this.queue.freeSpace !== undefined && this.processQueue.freeSpace !== undefined,\n      'Queues for worker block dispatcher must have a capacity set'\n    );\n    // These queues have the same capacity, we need to consider the known items from the queue that will occupy the process queue\n    return this.processQueue.freeSpace - this.queue.size;\n  }\n\n  async init(onDynamicDsCreated: (height: number) => void): Promise<void> {\n    this.workers = await Promise.all(new Array(this.numWorkers).fill(0).map(() => this.createWorker()));\n    return super.init(onDynamicDsCreated);\n  }\n\n  async onApplicationShutdown(): Promise<void> {\n    this.isShutdown = true;\n    // Stop processing blocks\n    this.queue.abort();\n    this.processQueue.abort();\n\n    // Stop all workers\n    if (this.workers) {\n      await Promise.all(this.workers.map((w) => w.terminate()));\n    }\n  }\n\n  async enqueueBlocks(heights: (IBlock<Block> | number)[], latestBufferHeight?: number): Promise<void> {\n    assert(\n      heights.every((h) => typeof h === 'number'),\n      `Workers don't support full blocks. Because of the dictionary providing full blocks, the workers flag should be removed.`\n    );\n\n    // In the case where factors of batchSize is equal to bypassBlock or when heights is []\n    // to ensure block is bypassed, we set the latestBufferHeight to the heights\n    // make sure lastProcessedHeight in metadata is updated\n    if (!!latestBufferHeight && !heights.length) {\n      heights = [latestBufferHeight];\n    }\n\n    logger.info(`Enqueuing blocks ${heights[0]}...${last(heights)}, total ${heights.length} blocks`);\n\n    // Needs to happen before enqueuing heights so discardBlock check works.\n    // Unlike with the normal dispatcher there is not a queue ob blockHeights to delay this.\n    this.latestBufferedHeight = latestBufferHeight ?? last(heights as number[]) ?? this.latestBufferedHeight;\n\n    // eslint-disable-next-line no-constant-condition\n    if (true) {\n      /*\n       * Load balancing:\n       * worker1: 1,2,3\n       * worker2: 4,5,6\n       */\n      const workerIdx = await this.getNextWorkerIndex();\n      heights.map((height) => this.enqueueBlock(height as number, workerIdx));\n    } else {\n      /*\n       * Load balancing:\n       * worker1: 1,3,5\n       * worker2: 2,4,6\n       */\n      heights.map(async (height) => this.enqueueBlock(height as number, await this.getNextWorkerIndex()));\n    }\n  }\n\n  private enqueueBlock(height: number, workerIdx: number): void {\n    if (this.isShutdown) return;\n    const worker = this.workers[workerIdx];\n\n    assert(worker, `Worker ${workerIdx} not found`);\n\n    // Used to compare before and after as a way to check if queue was flushed\n    const bufferedHeight = this.latestBufferedHeight;\n\n    /*\n     Wrap the promise in a fetchQueue for 2 reasons:\n     1. It retains the order when resolving the fetched promises\n     2. It means `this.queue` doesn't fill up with tasks awaiting pendingBlocks which then means we can abort fetching and wait for idle\n    */\n    const pendingBlock = this.queue.put(() =>\n      this.blockchainService.fetchBlockWorker(worker, height, {workers: this.workers})\n    );\n\n    void this.pipeBlock({\n      fetchTask: pendingBlock,\n      processBlock: async () => {\n        monitorWrite(`Processing from worker #${workerIdx}`);\n        return worker.processBlock(height);\n      },\n      discardBlock: () => bufferedHeight > this.latestBufferedHeight,\n      processQueue: this.processQueue,\n      abortFetching: async () => {\n        await Promise.all(this.workers.map((w) => w.abortFetching()));\n        // Wait for any pending blocks to be processed\n        this.queue.abort();\n      },\n      getHeader: (header) => header,\n      height,\n    });\n  }\n\n  flushQueue(height: number): void {\n    super.flushQueue(height);\n    this.processQueue.flush();\n  }\n\n  @Interval(15000)\n  async sampleWorkerStatus(): Promise<void> {\n    const statuses = await Promise.all(this.workers.map((worker) => worker.getStatus()));\n    if (!statuses.length) return;\n    logger.info(`\nHost Status:\n  Total Fetching: ${this.queue.size}\n  Awaiting process: ${this.processQueue.size}\nWorker Status:\n  ${statuses.map((s) => `Worker ${s.threadId} - To Fetch: ${s.toFetchBlocks} blocks, Fetched: ${s.fetchedBlocks} blocks`).join('\\n  ')}\n`);\n  }\n\n  // Getter doesn't seem to cary from abstract class\n  get latestBufferedHeight(): number {\n    return this._latestBufferedHeight;\n  }\n\n  set latestBufferedHeight(height: number) {\n    super.latestBufferedHeight = height;\n    // There is only a single queue with workers so we treat them as the same\n    this.eventEmitter.emit(IndexerEvent.BlockQueueSize, {\n      value: this.queueSize,\n    });\n  }\n\n  // Finds the minimum toFetchBlocks amongst workers then randomly selects from onese that have a matching minimum\n  private async getNextWorkerIndex(): Promise<number> {\n    const statuses = await Promise.all(this.workers.map((worker) => worker.getStatus()));\n    const metric = statuses.map((s) => s.toFetchBlocks);\n    const lowest = statuses.filter((s) => s.toFetchBlocks === Math.min(...metric));\n    const randIndex = Math.floor(Math.random() * lowest.length);\n\n    return lowest[randIndex].threadId - 1;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/connectionPool.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {delay} from '@subql/common';\nimport {ApiErrorType, ConnectionPoolStateManager, getLogger, IApiConnectionSpecific, NodeConfig} from '..';\nimport {ConnectionPoolService} from './connectionPool.service';\n\nasync function waitFor(conditionFn: () => boolean, timeout = 50000, interval = 100): Promise<void> {\n  return new Promise<void>((resolve, reject) => {\n    const startTime = Date.now();\n    const checkCondition = () => {\n      if (conditionFn()) {\n        resolve();\n      } else if (Date.now() - startTime > timeout) {\n        reject(new Error(`Timed out waiting for ${conditionFn.name} after ${timeout}ms`));\n      } else {\n        setTimeout(checkCondition, interval);\n      }\n    };\n    checkCondition();\n  });\n}\n\nconst mockApiConnection: IApiConnectionSpecific = {\n  apiConnect: jest.fn(),\n  apiDisconnect: jest.fn(),\n  handleError: jest.fn(),\n  safeApi: jest.fn(),\n  unsafeApi: jest.fn(),\n  fetchBlocks: jest.fn(),\n  networkMeta: {\n    chain: '',\n    specName: '',\n    genesisHash: '',\n  },\n};\n\nconst TEST_URL = 'https://example.com/api';\n\ndescribe('ConnectionPoolService', () => {\n  let connectionPoolService: ConnectionPoolService<typeof mockApiConnection>;\n  let stateManager: ConnectionPoolStateManager<typeof mockApiConnection>;\n  const nodeConfig: NodeConfig = new NodeConfig({\n    batchSize: 1,\n    subquery: 'example',\n  });\n  const allConnectionsRemoved = jest.fn(() => {\n    /* nothing*/\n  });\n\n  beforeEach(async () => {\n    stateManager = new ConnectionPoolStateManager(allConnectionsRemoved);\n    connectionPoolService = new ConnectionPoolService<typeof mockApiConnection>(nodeConfig, stateManager);\n    await connectionPoolService.addToConnections(mockApiConnection, TEST_URL);\n  });\n\n  afterEach(async () => {\n    // Clean up timeouts/intervals\n    await Promise.all([stateManager.onApplicationShutdown(), connectionPoolService.onApplicationShutdown()]);\n    jest.clearAllMocks();\n  });\n\n  describe('handleApiDisconnects', () => {\n    it('should handle successful reconnection on the first attempt', async () => {\n      (mockApiConnection.apiConnect as any).mockImplementation(() => Promise.resolve());\n      const apiConnectSpy = jest.spyOn(mockApiConnection, 'apiConnect');\n\n      (connectionPoolService as any).handleApiDisconnects(TEST_URL);\n\n      await waitFor(() => (mockApiConnection.apiConnect as any).mock.calls.length === 1);\n      expect(apiConnectSpy).toHaveBeenCalledTimes(1);\n      expect(connectionPoolService.numConnections).toBe(1);\n    }, 10000);\n\n    it('should handle successful reconnection after multiple attempts', async () => {\n      (mockApiConnection.apiConnect as any)\n        .mockImplementationOnce(() => Promise.reject(new Error('Reconnection failed')))\n        .mockImplementationOnce(() => Promise.reject(new Error('Reconnection failed')))\n        .mockImplementation(() => Promise.resolve());\n\n      const apiConnectSpy = jest.spyOn(mockApiConnection, 'apiConnect');\n\n      (connectionPoolService as any).handleApiDisconnects(TEST_URL);\n\n      await waitFor(() => (mockApiConnection.apiConnect as any).mock.calls.length === 3);\n      expect(apiConnectSpy).toHaveBeenCalledTimes(3);\n      expect(connectionPoolService.numConnections).toBe(1);\n    }, 20000);\n\n    it('should handle failed reconnection after max attempts', async () => {\n      (mockApiConnection.apiConnect as any).mockImplementation(() => Promise.reject(new Error('Reconnection failed')));\n      const apiConnectSpy = jest.spyOn(mockApiConnection, 'apiConnect');\n\n      (connectionPoolService as any).handleApiDisconnects(TEST_URL);\n\n      await waitFor(() => (mockApiConnection.apiConnect as any).mock.calls.length === 5);\n      expect(apiConnectSpy).toHaveBeenCalledTimes(5);\n      expect(connectionPoolService.numConnections).toBe(0);\n\n      // Application would exit under normal circumstances as there is only one connection\n      expect(allConnectionsRemoved).toHaveBeenCalledTimes(1);\n    }, 50000);\n\n    it('should call handleApiDisconnects only once when multiple connection errors are triggered', async () => {\n      // Create another connection to remove a special case, TODO fix this weird behaviour\n      await connectionPoolService.addToConnections(mockApiConnection, `${TEST_URL}/2`);\n      // Mock apiConnection.apiConnect() to not resolve for a considerable time\n      (mockApiConnection.apiConnect as any).mockImplementation(() => delay(10));\n\n      const handleApiDisconnectsSpy = jest.spyOn(connectionPoolService as any, 'handleApiDisconnects');\n\n      // Trigger handleApiError with connection issue twice\n      void connectionPoolService.handleApiError(TEST_URL, {\n        name: 'ConnectionError',\n        errorType: ApiErrorType.Connection,\n        message: 'Connection error',\n      });\n      void connectionPoolService.handleApiError(TEST_URL, {\n        name: 'ConnectionError',\n        errorType: ApiErrorType.Connection,\n        message: 'Connection error',\n      });\n\n      // Wait for a while to see if handleApiDisconnects gets called multiple times\n      await delay(5);\n\n      expect(handleApiDisconnectsSpy).toHaveBeenCalledTimes(1);\n    }, 15000);\n  });\n\n  describe('Rate limit endpoint delay', () => {\n    it('call delay', async () => {\n      const logger = getLogger('connection-pool');\n      const consoleSpy = jest.spyOn(logger, 'info');\n\n      await connectionPoolService.addToConnections(mockApiConnection, TEST_URL);\n      await connectionPoolService.addToConnections(mockApiConnection, `${TEST_URL}/2`);\n      await connectionPoolService.handleApiError(TEST_URL, {\n        name: 'timeout',\n        errorType: ApiErrorType.Timeout,\n        message: 'timeout error',\n      });\n      await connectionPoolService.handleApiError(`${TEST_URL}/2`, {\n        name: 'DefaultError',\n        errorType: ApiErrorType.Default,\n        message: 'Default error',\n      });\n      await (connectionPoolService as any).flushResultCache();\n\n      await connectionPoolService.api.fetchBlocks([34365]);\n\n      expect(consoleSpy).toHaveBeenCalledWith('throtling on ratelimited endpoint 10s');\n      consoleSpy.mockRestore();\n    }, 30000);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/connectionPool.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {isMainThread} from 'node:worker_threads';\nimport {OnApplicationShutdown, Injectable} from '@nestjs/common';\nimport {Interval} from '@nestjs/schedule';\nimport chalk from 'chalk';\nimport {ApiConnectionError, ApiErrorType} from '../api.connection.error';\nimport {IApiConnectionSpecific} from '../api.service';\nimport {NodeConfig} from '../configure';\nimport {getLogger} from '../logger';\nimport {backoffRetry, delay} from '../utils';\nimport {ConnectionPoolStateManager} from './connectionPoolState.manager';\n\nconst logger = getLogger('connection-pool');\n\nconst LOG_INTERVAL_MS = 60 * 1000; // Log every 60 seconds\n\nexport const errorTypeToScoreAdjustment = {\n  [ApiErrorType.Timeout]: -10,\n  [ApiErrorType.Connection]: -20,\n  [ApiErrorType.RateLimit]: -10,\n  [ApiErrorType.Default]: -5,\n};\n\ntype ResultCacheEntry<T> = {\n  endpoint: string;\n  type: 'success' | 'error';\n  data: T;\n};\n\n@Injectable()\nexport class ConnectionPoolService<T extends IApiConnectionSpecific<any, any, any>> implements OnApplicationShutdown {\n  private allApi: Record<string, T> = {};\n  private cachedEndpoint: string | undefined;\n  private reconnectingEndpoints: Record<string, Promise<void> | undefined> = {};\n  private resultCache: Array<ResultCacheEntry<number | ApiConnectionError['errorType']>> = [];\n  private lastCacheFlushTime: number = Date.now();\n  private cacheSizeThreshold = 10;\n  private cacheFlushInterval = 60 * 100;\n\n  constructor(\n    private nodeConfig: NodeConfig,\n    private poolStateManager: ConnectionPoolStateManager<T>\n  ) {\n    this.cacheSizeThreshold = this.nodeConfig.batchSize;\n  }\n\n  async onApplicationShutdown(): Promise<void> {\n    await Promise.all(Object.values(this.allApi).map((api) => api?.apiDisconnect()));\n  }\n\n  async addToConnections(api: T, endpoint: string): Promise<void> {\n    this.allApi[endpoint] = api;\n    await this.poolStateManager.addToConnections(endpoint, endpoint === this.nodeConfig.primaryNetworkEndpoint?.[0]);\n    if (api !== null) {\n      await this.updateNextConnectedApiIndex();\n    }\n  }\n\n  async addBatchToConnections(endpointToApiIndex: Record<string, T>): Promise<void> {\n    for (const endpoint in endpointToApiIndex) {\n      await this.addToConnections(endpointToApiIndex[endpoint], endpoint);\n    }\n  }\n\n  async updateConnection(api: T, endpoint: string): Promise<void> {\n    if (this.allApi[endpoint] === undefined) {\n      throw new Error(`Attempting to update connection that does not exist: ${endpoint}`);\n    }\n    this.allApi[endpoint] = api;\n    await this.updateNextConnectedApiIndex();\n  }\n\n  async connectToApi(endpoint: string): Promise<void> {\n    await this.allApi[endpoint].apiConnect();\n  }\n\n  private async updateNextConnectedApiIndex(): Promise<void> {\n    const newEndpoint = await this.poolStateManager.getNextConnectedEndpoint(Object.keys(this.allApi));\n    if (!!newEndpoint && this.allApi[newEndpoint] === null) {\n      return this.updateNextConnectedApiIndex();\n    }\n    this.cachedEndpoint = newEndpoint;\n  }\n\n  get api(): T {\n    const endpoint = this.cachedEndpoint;\n\n    if (endpoint === undefined) {\n      throw new Error(\n        'All endpoints in the pool are either suspended due to rate limits or attempting to reconnect. Please wait or add healthier endpoints.'\n      );\n    }\n    const api = this.allApi[endpoint];\n\n    assert(api, `Api for endpoint ${endpoint} not found`);\n\n    const wrappedApi = new Proxy(api, {\n      get: (target, prop, receiver) => {\n        if (prop === 'fetchBlocks') {\n          return async (heights: number[], ...args: any): Promise<any> => {\n            try {\n              // Check if the endpoint is rate-limited\n              if (await this.poolStateManager.getFieldValue(endpoint, 'rateLimited')) {\n                logger.info(`throtling on ratelimited endpoint 10s`);\n                await delay(10);\n              }\n\n              const start = Date.now();\n              const result = await target.fetchBlocks(heights, ...args);\n              const end = Date.now();\n              await this.handleApiSuccess(endpoint, end - start);\n              await this.poolStateManager.setFieldValue(endpoint, 'lastRequestTime', end); // Update the last request time\n              return result;\n            } catch (error: any) {\n              await this.handleApiError(endpoint, target.handleError(error));\n              throw error;\n            }\n          };\n        }\n\n        // Delegate other property access and method calls to the original api object\n        return Reflect.get(target, prop, receiver);\n      },\n    });\n    return wrappedApi as T;\n  }\n\n  get numConnections(): number {\n    return this.poolStateManager.numConnections;\n  }\n\n  async handleApiDisconnects(endpoint: string): Promise<void> {\n    logger.warn(`disconnected from ${endpoint}`);\n\n    const tryReconnect = async () => {\n      try {\n        logger.info(`Attempting to reconnect to ${endpoint}`);\n\n        await this.allApi[endpoint].apiConnect();\n        await this.poolStateManager.setFieldValue(endpoint, 'connected', true);\n        this.reconnectingEndpoints[endpoint] = undefined;\n        logger.info(`Reconnected to ${endpoint} successfully`);\n      } catch (e) {\n        logger.error(`Reconnection failed: ${e}`);\n        throw e;\n      }\n    };\n\n    this.reconnectingEndpoints[endpoint] = backoffRetry(tryReconnect, 5).catch(async (e: any) => {\n      logger.error(`Reached max reconnection attempts. Removing connection ${endpoint} from pool.`);\n      await this.poolStateManager.removeFromConnections(endpoint);\n    });\n\n    await this.handleConnectionStateChange();\n    logger.info(`reconnected to ${endpoint}!`);\n  }\n\n  @Interval(LOG_INTERVAL_MS)\n  async logEndpointStatus(): Promise<void> {\n    if (!isMainThread) {\n      return;\n    }\n    const suspendedEnpoints = await this.poolStateManager.getSuspendedEndpoints();\n\n    if (suspendedEnpoints.length === 0) {\n      return;\n    }\n\n    let suspendedEndpointsInfo = chalk.yellow('Suspended endpoints:\\n');\n\n    await Promise.all(\n      suspendedEnpoints.map(async (e) => {\n        const endpoint = chalk.cyan(new URL(e).hostname);\n        const failures = chalk.red(`Failures: ${await this.poolStateManager.getFieldValue(e, 'failureCount')}`);\n        const backoff = chalk.yellow(`Backoff (ms): ${await this.poolStateManager.getFieldValue(e, 'backoffDelay')}`);\n\n        suspendedEndpointsInfo += `\\n- ${endpoint}\\n  ${failures}\\n  ${backoff}\\n`;\n      })\n    );\n\n    logger.info(suspendedEndpointsInfo);\n  }\n\n  async handleApiSuccess(endpoint: string, responseTime: number): Promise<void> {\n    this.addToResultCache(endpoint, 'success', responseTime);\n    await this.flushResultCacheIfNeeded();\n    await this.handleConnectionStateChange();\n  }\n\n  async handleApiError(endpoint: string, error: ApiConnectionError): Promise<void> {\n    this.addToResultCache(endpoint, 'error', error.errorType);\n    await this.flushResultCacheIfNeeded();\n    await this.handleConnectionStateChange();\n  }\n\n  async handleConnectionStateChange(): Promise<void> {\n    // Update the cached value\n    await this.updateNextConnectedApiIndex();\n    const disconnectedEndpoints = await this.poolStateManager.getDisconnectedEndpoints();\n    disconnectedEndpoints.map((endpoint) => {\n      if (this.reconnectingEndpoints[endpoint] !== undefined) {\n        return;\n      }\n      void this.handleApiDisconnects(endpoint);\n    });\n  }\n\n  private addToResultCache(\n    endpoint: string,\n    dataType: 'success' | 'error',\n    data: number | ApiConnectionError['errorType']\n  ): void {\n    const entry: ResultCacheEntry<number | ApiConnectionError['errorType']> = {\n      endpoint,\n      type: dataType,\n      data,\n    };\n    this.resultCache.push(entry);\n  }\n\n  private async flushResultCacheIfNeeded(): Promise<void> {\n    const currentTime = Date.now();\n    const timeSinceLastFlush = currentTime - this.lastCacheFlushTime;\n\n    if (this.resultCache.length >= this.cacheSizeThreshold || timeSinceLastFlush >= this.cacheFlushInterval) {\n      await this.flushResultCache();\n    }\n  }\n\n  private async flushResultCache(): Promise<void> {\n    const successResults: Array<{endpoint: string; responseTime: number}> = [];\n    const errorResults: Array<{endpoint: string; errorType: ApiErrorType}> = [];\n\n    for (const result of this.resultCache) {\n      if (result.type === 'success') {\n        successResults.push({endpoint: result.endpoint, responseTime: result.data as number});\n      } else {\n        errorResults.push({endpoint: result.endpoint, errorType: result.data as ApiErrorType});\n      }\n    }\n\n    await this.poolStateManager.handleBatchApiSuccess(successResults);\n    await this.poolStateManager.handleBatchApiError(errorResults);\n\n    this.resultCache = [];\n    this.lastCacheFlushTime = Date.now();\n    await this.handleConnectionStateChange();\n  }\n\n  async updateChainTypes(newChainTypes: unknown): Promise<void> {\n    for (const endpoint in this.allApi) {\n      await this.allApi[endpoint].updateChainTypes?.(newChainTypes);\n    }\n    logger.info(`Network chain types updated!`);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/connectionPoolState.manager.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ApiErrorType} from '../api.connection.error';\nimport {ConnectionPoolItem, ConnectionPoolStateManager} from './connectionPoolState.manager';\n\ndescribe('ConnectionPoolStateManager', function () {\n  let connectionPoolStateManager: ConnectionPoolStateManager<any>;\n  const EXAMPLE_ENDPOINT1 = 'http://example1.com';\n  const EXAMPLE_ENDPOINT2 = 'http://example2.com';\n\n  beforeEach(function () {\n    connectionPoolStateManager = new ConnectionPoolStateManager();\n  });\n\n  afterEach(async function () {\n    await connectionPoolStateManager.onApplicationShutdown();\n  });\n\n  it('chooses primary endpoint first', async function () {\n    await connectionPoolStateManager.addToConnections(EXAMPLE_ENDPOINT1, true);\n    await connectionPoolStateManager.addToConnections(EXAMPLE_ENDPOINT2, false);\n\n    expect(await connectionPoolStateManager.getNextConnectedEndpoint()).toEqual(EXAMPLE_ENDPOINT1);\n  });\n\n  it('does not choose primary endpoint if failed', async function () {\n    await connectionPoolStateManager.addToConnections(EXAMPLE_ENDPOINT1, true);\n    await connectionPoolStateManager.addToConnections(EXAMPLE_ENDPOINT2, false);\n\n    await connectionPoolStateManager.handleApiError(EXAMPLE_ENDPOINT1, ApiErrorType.Default);\n\n    expect(await connectionPoolStateManager.getNextConnectedEndpoint()).toEqual(EXAMPLE_ENDPOINT2);\n  });\n\n  it('All endpoints backoff; select a rateLimited endpoint. reason: ApiErrorType.Timeout', async function () {\n    await connectionPoolStateManager.addToConnections(EXAMPLE_ENDPOINT1, false);\n    await connectionPoolStateManager.addToConnections(EXAMPLE_ENDPOINT2, false);\n\n    await connectionPoolStateManager.handleApiError(EXAMPLE_ENDPOINT1, ApiErrorType.Default);\n    await connectionPoolStateManager.handleApiError(EXAMPLE_ENDPOINT2, ApiErrorType.Timeout);\n\n    const nextEndpoint = await connectionPoolStateManager.getNextConnectedEndpoint();\n    const endpointInfo = (connectionPoolStateManager as any).pool[EXAMPLE_ENDPOINT2] as ConnectionPoolItem<any>;\n    expect(nextEndpoint).toEqual(EXAMPLE_ENDPOINT2);\n    expect(endpointInfo.rateLimited).toBe(true);\n  });\n\n  it('All endpoints backoff; select a rateLimited endpoint. reason: ApiErrorType.RateLimit', async function () {\n    await connectionPoolStateManager.addToConnections(EXAMPLE_ENDPOINT1, false);\n    await connectionPoolStateManager.addToConnections(EXAMPLE_ENDPOINT2, false);\n\n    await connectionPoolStateManager.handleApiError(EXAMPLE_ENDPOINT1, ApiErrorType.Default);\n    await connectionPoolStateManager.handleApiError(EXAMPLE_ENDPOINT2, ApiErrorType.RateLimit);\n\n    const nextEndpoint = await connectionPoolStateManager.getNextConnectedEndpoint();\n    const endpointInfo = (connectionPoolStateManager as any).pool[EXAMPLE_ENDPOINT2] as ConnectionPoolItem<any>;\n    expect(nextEndpoint).toEqual(EXAMPLE_ENDPOINT2);\n    expect(endpointInfo.rateLimited).toBe(true);\n  });\n\n  it('can calculate performance score for response time of zero', function () {\n    const score = (connectionPoolStateManager as any).calculatePerformanceScore(0, 0);\n    expect(score).not.toBeNaN();\n  });\n\n  it('performance score decreases with increasing response time', function () {\n    const score1 = (connectionPoolStateManager as any).calculatePerformanceScore(1, 0);\n    const score2 = (connectionPoolStateManager as any).calculatePerformanceScore(2, 0);\n    expect(score1).toBeGreaterThan(score2);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/connectionPoolState.manager.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {OnApplicationShutdown} from '@nestjs/common';\nimport {Interval} from '@nestjs/schedule';\nimport chalk from 'chalk';\nimport {ApiErrorType} from '../api.connection.error';\nimport {IApiConnectionSpecific} from '../api.service';\nimport {getLogger} from '../logger';\nimport {exitWithError} from '../process';\nimport {errorTypeToScoreAdjustment} from './connectionPool.service';\n\nconst RETRY_DELAY = 10 * 1000;\nconst MAX_RETRY_DELAY = 32 * RETRY_DELAY;\nconst MAX_FAILURES = 5;\nconst RESPONSE_TIME_WEIGHT = 0.7;\nconst FAILURE_WEIGHT = 0.3;\n\nexport interface ConnectionPoolItem<T> {\n  endpoint: string;\n  primary: boolean;\n  performanceScore: number;\n  backoffDelay: number;\n  failureCount: number;\n  rateLimited: boolean;\n  failed: boolean;\n  lastRequestTime: number;\n  connected: boolean;\n  timeoutId?: NodeJS.Timeout;\n}\n\nconst logger = getLogger('ConnectionPoolState');\n\nexport interface IConnectionPoolStateManager<T extends IApiConnectionSpecific<any, any, any>> {\n  addToConnections(endpoint: string, primary: boolean, initFailed: boolean): Promise<void>;\n  // Connected endpoints allows reducing the endpoints to ones connected in the worker\n  getNextConnectedEndpoint(connectedEndpoints?: string[]): Promise<string | undefined>;\n  // Async to be compatible with workers\n  getFieldValue<K extends keyof ConnectionPoolItem<T>>(endpoint: string, field: K): Promise<ConnectionPoolItem<T>[K]>;\n  // Async to be compatible with workers\n  setFieldValue<K extends keyof ConnectionPoolItem<T>>(\n    endpoint: string,\n    field: K,\n    value: ConnectionPoolItem<T>[K]\n  ): Promise<void>;\n  getSuspendedEndpoints(): Promise<string[]>;\n  removeFromConnections(endpoint: string): Promise<void>;\n  handleApiError(endpoint: string, errorType: ApiErrorType): Promise<void>;\n  handleApiSuccess(endpoint: string, responseTime: number): Promise<void>;\n  getDisconnectedEndpoints(): Promise<string[]>;\n}\n\nexport class ConnectionPoolStateManager<T extends IApiConnectionSpecific<any, any, any>>\n  implements OnApplicationShutdown\n{\n  private pool: Record<string, ConnectionPoolItem<T>> = {};\n\n  /**\n   * @param onAllConnectionsRemoved - allows overwritting the behaviour when all connections are removed\n   * */\n  constructor(\n    private onAllConnectionsRemoved: () => void = () => {\n      exitWithError(`All api connection removed`);\n    }\n  ) {}\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async addToConnections(endpoint: string, primary: boolean): Promise<void> {\n    const poolItem: ConnectionPoolItem<T> = {\n      primary,\n      performanceScore: 100,\n      failureCount: 0,\n      endpoint,\n      backoffDelay: 0,\n      rateLimited: false,\n      failed: false,\n      connected: true,\n      lastRequestTime: 0,\n    };\n    this.pool[endpoint] = poolItem;\n\n    if (primary) {\n      logger.info(`Primary endpoint ${endpoint} added.`);\n    }\n  }\n\n  @Interval(15000)\n  logConnectionStatus(): void {\n    logger.debug(\n      JSON.stringify(\n        this.pool,\n        (key, value) => {\n          // Cannot stringify NodeJs timeouts\n          if (key === 'timeoutId') {\n            return undefined;\n          }\n          return value;\n        },\n        2\n      )\n    );\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async getNextConnectedEndpoint(connectedEndpoints?: string[]): Promise<string | undefined> {\n    const primaryendpoint = this.getPrimaryEndpoint();\n    if (primaryendpoint !== undefined) {\n      return primaryendpoint;\n    }\n\n    const availableEndpoints = Object.keys(this.pool).filter(\n      (endpoint) => !connectedEndpoints || connectedEndpoints.includes(endpoint)\n    );\n\n    const endpoints = availableEndpoints.filter(\n      (endpoint) => !this.pool[endpoint].backoffDelay && this.pool[endpoint].connected && !this.pool[endpoint].failed\n    );\n\n    if (endpoints.length === 0) {\n      // If all endpoints are suspended, try to find a rate-limited one\n      const rateLimitedEndpoints = availableEndpoints.filter(\n        (endpoint) => this.pool[endpoint].backoffDelay && this.pool[endpoint].rateLimited\n      );\n\n      if (rateLimitedEndpoints.length === 0) {\n        // If no rate-limited endpoints found, return undefined\n        // FIXME: We better block the promise until one endpoint is recovered from suspension\n        return undefined;\n      }\n\n      // If there are rate-limited endpoints, return one of them at random\n      return rateLimitedEndpoints[Math.floor(Math.random() * rateLimitedEndpoints.length)];\n    }\n\n    // Sort indices based on their performance scores in descending order\n    endpoints.sort((a, b) => this.pool[b].performanceScore - this.pool[a].performanceScore);\n\n    // Calculate the sum of performance scores\n    const sumScores = endpoints.reduce((acc, idx) => acc + this.pool[idx].performanceScore, 0);\n\n    // Calculate the cumulative probability distribution\n    const cumulativeProbs: number[] = [];\n    endpoints.forEach((idx, i) => {\n      const prevProb = i > 0 ? cumulativeProbs[i - 1] : 0;\n      cumulativeProbs[i] = prevProb + this.pool[idx].performanceScore / sumScores;\n    });\n\n    // Choose a random number between 0 and 1\n    const rand = Math.random();\n\n    // Find the first endpoint in the cumulative probability distribution that is greater than the random number\n    const selectedIndex = cumulativeProbs.findIndex((prob) => prob >= rand);\n\n    // Return the corresponding endpoint from the sorted indices\n    return endpoints[selectedIndex];\n  }\n\n  private getPrimaryEndpoint(): string | undefined {\n    return Object.keys(this.pool).find(\n      (endpoint) =>\n        this.pool[endpoint].primary &&\n        !this.pool[endpoint].backoffDelay &&\n        this.pool[endpoint].connected &&\n        !this.pool[endpoint].failed\n    );\n  }\n\n  get numConnections(): number {\n    return Object.keys(this.pool).length;\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async getFieldValue<K extends keyof ConnectionPoolItem<T>>(\n    endpoint: string,\n    field: K\n  ): Promise<ConnectionPoolItem<T>[K]> {\n    return this.pool[endpoint]?.[field];\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async setFieldValue<K extends keyof ConnectionPoolItem<T>>(\n    endpoint: string,\n    field: K,\n    value: ConnectionPoolItem<T>[K]\n  ): Promise<void> {\n    this.pool[endpoint][field] = value;\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async getSuspendedEndpoints(): Promise<string[]> {\n    return Object.keys(this.pool).filter((endpoint) => this.pool[endpoint].backoffDelay !== 0);\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async setRecoverTimeout(endpoint: string, delay: number): Promise<void> {\n    // Make sure there is no existing timeout\n    await this.clearTimeout(endpoint);\n\n    this.pool[endpoint].timeoutId = setTimeout(() => {\n      this.pool[endpoint].backoffDelay = 0; // Reset backoff delay only if there are no consecutive errors\n      // this.pool[endpoint].rateLimited = false;   // Do not reset rateLimited status\n      this.pool[endpoint].failed = false;\n      this.pool[endpoint].timeoutId = undefined; // Clear the timeout ID\n\n      const suspendedEndpoints = Object.keys(this.pool).filter((endpoint) => this.pool[endpoint].backoffDelay !== 0);\n\n      if (suspendedEndpoints.length === 0) {\n        logger.info(chalk.green('No suspended endpoints.'));\n      }\n    }, delay);\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async clearTimeout(endpoint: string): Promise<void> {\n    if (this.pool[endpoint].timeoutId) {\n      clearTimeout(this.pool[endpoint].timeoutId);\n      this.pool[endpoint].timeoutId = undefined;\n    }\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async removeFromConnections(endpoint: string): Promise<void> {\n    delete this.pool[endpoint];\n    if (Object.keys(this.pool).length === 0) {\n      // Cannot throw here because it would be off stack\n      logger.error('No more connections available. Please add healthier endpoints');\n      this.onAllConnectionsRemoved();\n    }\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async onApplicationShutdown(): Promise<void> {\n    Object.keys(this.pool).forEach((endpoint) => {\n      this.clearTimeout(endpoint);\n    });\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async handleApiError(endpoint: string, errorType: ApiErrorType): Promise<void> {\n    if (Object.keys(this.pool).length === 1 || this.pool[endpoint].failed || this.pool[endpoint].rateLimited) {\n      //if this api was used again then it must be in the same batch of blocks\n      return;\n    }\n    const adjustment = errorTypeToScoreAdjustment[errorType] || errorTypeToScoreAdjustment.default;\n    this.pool[endpoint].performanceScore += adjustment;\n    this.pool[endpoint].failureCount++;\n\n    switch (errorType) {\n      case ApiErrorType.Connection: {\n        if (this.pool[endpoint].connected) {\n          // The connected status does not provide service. handleApiDisconnects() will be called to handle this.\n          this.pool[endpoint].connected = false;\n        }\n        return;\n      }\n      case ApiErrorType.Timeout:\n      case ApiErrorType.RateLimit: {\n        // The “rateLimited” status will be selected when no endpoints are available, so we should avoid setting a large delay.\n        this.pool[endpoint].rateLimited = true;\n        break;\n      }\n      case ApiErrorType.Default: {\n        // The “failed” status does not provide service.\n        this.pool[endpoint].failed = true;\n        break;\n      }\n      default: {\n        throw new Error(`Unknown error type ${errorType}`);\n      }\n    }\n\n    const nextDelay = this.calculateNextDelay(this.pool[endpoint]);\n    this.pool[endpoint].backoffDelay = nextDelay;\n    await this.setRecoverTimeout(endpoint, nextDelay);\n\n    logger.warn(\n      `Endpoint ${this.pool[endpoint].endpoint} experienced an error (${errorType}). Suspending for ${\n        nextDelay / 1000\n      }s.`\n    );\n  }\n\n  private calculateNextDelay(poolItem: ConnectionPoolItem<T>): number {\n    // Exponential backoff using failure count, Start with RETRY_DELAY and double on each failure, MAX_RETRY_DELAY is the maximum delay\n    return Math.min(RETRY_DELAY * Math.pow(2, poolItem.failureCount - 1), MAX_RETRY_DELAY);\n  }\n\n  private calculatePerformanceScore(responseTime: number, failureCount: number): number {\n    const responseTimeScore = 1 / (1 + Math.log(1 + responseTime));\n    const failureScore = 1 - failureCount / MAX_FAILURES;\n    return RESPONSE_TIME_WEIGHT * responseTimeScore + FAILURE_WEIGHT * failureScore;\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async handleApiSuccess(endpoint: string, responseTime: number): Promise<void> {\n    const performanceScore = this.pool[endpoint].performanceScore;\n    const failureCount = this.pool[endpoint].failureCount;\n\n    const updatedScore = performanceScore + this.calculatePerformanceScore(responseTime, failureCount);\n    this.pool[endpoint].performanceScore = updatedScore;\n  }\n\n  async handleBatchApiSuccess(successResults: Array<{endpoint: string; responseTime: number}>): Promise<void> {\n    for (const result of successResults) {\n      await this.handleApiSuccess(result.endpoint, result.responseTime);\n    }\n  }\n\n  async handleBatchApiError(errorResults: Array<{endpoint: string; errorType: ApiErrorType}>): Promise<void> {\n    for (const result of errorResults) {\n      await this.handleApiError(result.endpoint, result.errorType);\n    }\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async getDisconnectedEndpoints(): Promise<string[]> {\n    return Object.keys(this.pool).filter((endpoint) => !this.pool[endpoint].connected);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/core.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Module} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {AdminController, AdminListener} from '../admin/admin.controller';\nimport {NodeConfig} from '../configure';\nimport {IndexingBenchmarkService, PoiBenchmarkService} from './benchmark.service';\nimport {ConnectionPoolService} from './connectionPool.service';\nimport {ConnectionPoolStateManager} from './connectionPoolState.manager';\nimport {InMemoryCacheService} from './inMemoryCache.service';\nimport {MonitorService} from './monitor.service';\nimport {PoiService, PoiSyncService} from './poi';\nimport {SandboxService} from './sandbox.service';\nimport {StoreService} from './store.service';\nimport {storeModelFactory} from './storeModelProvider';\n\n@Module({\n  providers: [\n    InMemoryCacheService,\n    SandboxService,\n    ConnectionPoolStateManager,\n    ConnectionPoolService,\n    IndexingBenchmarkService,\n    PoiBenchmarkService,\n    MonitorService,\n    PoiService,\n    PoiSyncService,\n    StoreService,\n    {\n      provide: 'IStoreModelProvider',\n      useFactory: storeModelFactory,\n      inject: [NodeConfig, EventEmitter2, Sequelize],\n    },\n    AdminListener,\n  ],\n  controllers: [AdminController],\n  exports: [\n    ConnectionPoolService,\n    ConnectionPoolStateManager,\n    SandboxService,\n    MonitorService,\n    PoiService,\n    PoiSyncService,\n    StoreService,\n    'IStoreModelProvider',\n    InMemoryCacheService,\n  ],\n})\nexport class CoreModule {}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/coreDictionary.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NodeConfig} from '../../configure';\nimport {BlockHeightMap} from '../../utils/blockHeightMap';\nimport {IBlock} from '../types';\nimport {DictionaryResponse, IDictionary} from './types';\nimport {FieldSelector} from './v2';\n\nexport abstract class CoreDictionary<DS, FB, M /* Metadata */, E /* DictionaryQueryEntry */>\n  implements IDictionary<DS, FB>\n{\n  protected queriesMap?: BlockHeightMap<E | undefined>;\n  protected _startHeight = 1;\n  protected _metadata?: M;\n  metadataValid: boolean | undefined;\n\n  constructor(\n    protected chainId: string,\n    protected readonly nodeConfig: NodeConfig\n  ) {}\n\n  abstract getData(\n    startBlock: number,\n    queryEndBlock: number,\n    limit: number,\n    fieldSelector?: FieldSelector\n  ): Promise<DictionaryResponse<IBlock | number> | undefined>;\n  protected abstract init(): Promise<void>;\n  protected abstract dictionaryValidation(metaData?: M, startBlockHeight?: number): boolean;\n  protected abstract buildDictionaryQueryEntries(dataSources: DS[]): E | undefined;\n  abstract queryMapValidByHeight(height: number): boolean;\n  abstract getQueryEndBlock(targetBlockHeight: number, apiFinalizedHeight: number): number;\n\n  get startHeight(): number {\n    return this._startHeight;\n  }\n\n  protected get metadata(): M {\n    if (!this._metadata) {\n      throw new Error(`Dictionary metadata hasn't been initialized`);\n    }\n    return this._metadata;\n  }\n\n  protected get useDictionary(): boolean {\n    return !!this.metadataValid;\n  }\n\n  protected setDictionaryStartHeight(start: number | undefined): void {\n    // Since not all dictionary has adopted start height, if it is not set, we just consider it is 1.\n    if (this._startHeight !== undefined) {\n      return;\n    }\n    this._startHeight = start ?? 1;\n  }\n\n  // filter dictionary with start height\n  heightValidation(height: number): boolean {\n    // validate metadata, and then validate query maps\n    return this.dictionaryValidation(this._metadata, height) && this.queryMapValidByHeight(height);\n  }\n\n  updateQueriesMap(dataSources: BlockHeightMap<DS[]>): void {\n    this.queriesMap = dataSources.map((d) => this.buildDictionaryQueryEntries(d));\n  }\n\n  protected getQueryConditions(\n    startBlock: number,\n    queryEndBlock: number\n  ): {queryEndBlock: number; conditions: E | undefined} {\n    const queryDetails = this.queriesMap?.getDetails(startBlock);\n    const conditions = queryDetails?.value;\n    queryEndBlock =\n      queryDetails?.endHeight && queryDetails?.endHeight < queryEndBlock ? queryDetails.endHeight : queryEndBlock;\n    return {queryEndBlock, conditions};\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/dictionary.fixtures.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {SubstrateDatasourceKind, SubstrateHandlerKind} from '@subql/types';\nimport {DictionaryQueryEntry} from '@subql/types-core';\nimport {NodeConfig} from '../../configure';\nimport {BlockHeightMap} from '../../utils';\nimport {IBlock} from '../types';\nimport {DictionaryResponse} from './types';\nimport {DictionaryV1} from './v1';\nimport {DictionaryV2, DictionaryV2Metadata, DictionaryV2QueryEntry, RawDictionaryResponseData} from './v2';\n\n// export use in dictionary service test\nexport class TestDictionaryV1 extends DictionaryV1<any> {\n  constructor(\n    endpoint: string,\n    chainId: string,\n    nodeConfig: NodeConfig,\n    private queryEntry: DictionaryQueryEntry[]\n  ) {\n    super(endpoint, chainId, nodeConfig);\n  }\n\n  buildDictionaryQueryEntries(dataSources: any[]): DictionaryQueryEntry[] {\n    return this.queryEntry;\n  }\n}\n\nexport const HAPPY_PATH_CONDITIONS: DictionaryQueryEntry[] = [\n  {\n    entity: 'events',\n    conditions: [\n      {field: 'module', value: 'staking'},\n      {field: 'event', value: 'Bonded'},\n    ],\n  },\n  {\n    entity: 'events',\n    conditions: [\n      {field: 'module', value: 'balances'},\n      {field: 'event', value: 'Reward'},\n    ],\n  },\n  {\n    entity: 'events',\n    conditions: [\n      {field: 'module', value: 'balances'},\n      {field: 'event', value: 'Slash'},\n    ],\n  },\n  {\n    entity: 'extrinsics',\n    conditions: [\n      {field: 'module', value: 'staking'},\n      {field: 'call', value: 'bond'},\n    ],\n  },\n];\n\nexport const mockDS = [\n  {\n    name: 'runtime',\n    kind: SubstrateDatasourceKind.Runtime,\n    startBlock: 100,\n    mapping: {\n      handlers: [\n        {\n          handler: 'handleTest',\n          kind: SubstrateHandlerKind.Event,\n          filter: {\n            module: 'balances',\n            method: 'Deposit',\n          },\n        },\n      ],\n      file: '',\n    },\n  },\n  {\n    name: 'runtime',\n    kind: SubstrateDatasourceKind.Runtime,\n    startBlock: 500,\n    mapping: {\n      handlers: [\n        {\n          handler: 'handleTest',\n          kind: SubstrateHandlerKind.Call,\n          filter: {\n            module: 'balances',\n            method: 'Deposit',\n            success: true,\n          },\n        },\n      ],\n      file: '',\n    },\n  },\n  {\n    name: 'runtime',\n    kind: SubstrateDatasourceKind.Runtime,\n    startBlock: 1000,\n    mapping: {\n      handlers: [\n        {\n          handler: 'handleTest',\n          kind: SubstrateHandlerKind.Call,\n          filter: {\n            module: 'balances',\n            method: 'Deposit',\n            success: true,\n          },\n        },\n      ],\n      file: '',\n    },\n  },\n];\n\nconst m = new Map<number, any>();\n\nmockDS.forEach((ds, index, dataSources) => {\n  m.set(ds.startBlock, dataSources.slice(0, index + 1));\n});\n\nexport const dsMap = new BlockHeightMap(m);\n\nexport interface TestFB {\n  gasLimit: bigint;\n  gasUsed: bigint;\n  hash: string;\n}\n\nexport class TestDictionaryV2 extends DictionaryV2<TestFB, any, any> {\n  get testMetadata(): DictionaryV2Metadata | undefined {\n    return this._metadata;\n  }\n\n  setMockedApi(mocked: {post: () => any}): void {\n    this.dictionaryApi = mocked as any;\n  }\n\n  buildDictionaryQueryEntries(dataSources: any[]): DictionaryV2QueryEntry {\n    // Test fixture object with non-empty conditions to satisfy running a query\n    return {property: ['value']};\n  }\n\n  convertResponseBlocks<RFB>(result: RawDictionaryResponseData<RFB>): DictionaryResponse<IBlock<TestFB>> | undefined {\n    return {\n      batchBlocks: result.blocks as IBlock<TestFB>[],\n      lastBufferedHeight: (result.blocks as number[])[result.blocks.length - 1],\n    };\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async mockInit(): Promise<void> {\n    (this as any).init = () => Promise.resolve();\n    this._metadata = {\n      start: 1,\n      end: 100000,\n      chainId: 'mockChainId',\n      genesisHash: '0x21121',\n      filters: {\n        complete: ['block', 'transaction'],\n      },\n      supported: ['complete'],\n    };\n\n    this.setDictionaryStartHeight(this._metadata.start);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/dictionary.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {NETWORK_FAMILY} from '@subql/common';\nimport {NodeConfig} from '../..';\nimport {\n  TestDictionaryV1,\n  TestDictionaryV2,\n  dsMap as mockedDsMap,\n  TestFB,\n  HAPPY_PATH_CONDITIONS,\n} from './dictionary.fixtures';\nimport {DictionaryService} from './dictionary.service';\n\nconst dictionaryV1Endpoints = [\n  'https://gx.api.subquery.network/sq/subquery/eth-dictionary',\n  'https://dict-tyk.subquery.network/query/eth-mainnet',\n];\n\nconst dictionaryV2Endpoints = ['http://mock-dictionary-v2/rpc'];\n\nclass TestDictionaryService extends DictionaryService<any, TestFB> {\n  async initDictionaries(): Promise<void> {\n    // Mock version inspection completed\n    const dictionariesV1: TestDictionaryV1[] = [];\n    for (const endpoint of dictionaryV1Endpoints) {\n      try {\n        const dictionary = new TestDictionaryV1(endpoint, 'mockChainId', this.nodeConfig, HAPPY_PATH_CONDITIONS);\n        await (dictionary as any).init();\n        dictionariesV1.push(dictionary);\n      } catch (e) {\n        // ignore the dictionary\n      }\n    }\n\n    const mockDictionaryV2 = new TestDictionaryV2(dictionaryV2Endpoints[0], 'mockChainId', this.nodeConfig);\n    await mockDictionaryV2.mockInit();\n    await (mockDictionaryV2 as any).init();\n\n    const dictionariesV2 = [mockDictionaryV2];\n    this.init([...dictionariesV1, ...dictionariesV2]);\n  }\n\n  get currentDictionaryIndex(): number | undefined {\n    return this._currentDictionaryIndex;\n  }\n\n  set currentDictionaryIndex(index: number | undefined) {\n    this._currentDictionaryIndex = index;\n  }\n}\n\n// Due to only valid dictionary will be added to dictionary service, therefore we need to add a mocked invalid dictionary to the service manually\nfunction addInvalidDictionary(dictionaryService: TestDictionaryService, index: number): void {\n  const dictionary = new TestDictionaryV1(\n    'https://gx.api.subquery.network/sq/subquery/eth-dictionary',\n    'mockChainId',\n    (TestDictionaryService as any).nodeConfig,\n    HAPPY_PATH_CONDITIONS\n  );\n  (dictionary as any)._metadata = {\n    lastProcessedHeight: 1,\n    targetHeight: 100000,\n    chain: 'mockChainIdWrong',\n    specName: 'mock',\n    genesisHash: 'mock',\n    startHeight: 1,\n  };\n  (dictionaryService as any)._dictionaries.splice(index, 0, dictionary);\n  dictionaryService.buildDictionaryEntryMap(mockedDsMap);\n}\ndescribe('Dictionary service', function () {\n  let dictionaryService: TestDictionaryService;\n\n  beforeEach(async () => {\n    const nodeConfig = new NodeConfig({\n      subquery: 'dictionaryService',\n      subqueryName: 'asdf',\n      networkEndpoint: {'wss://eth.api.onfinality.io/public-ws': {}},\n      dictionaryTimeout: 10,\n      networkDictionary: [...dictionaryV1Endpoints, ...dictionaryV2Endpoints],\n    });\n\n    dictionaryService = new TestDictionaryService('0xchainId', nodeConfig, new EventEmitter2());\n    await dictionaryService.initDictionaries();\n\n    // await Promise.all((dictionaryService as any)._dictionaries.map((d: any) => d.init()));\n    dictionaryService.buildDictionaryEntryMap(mockedDsMap);\n  });\n\n  afterAll(() => dictionaryService.onApplicationShutdown());\n\n  it('can use the dictionary registry to resolve a url', async () => {\n    const dictUrl: string[] = await (dictionaryService as any).resolveDictionary(\n      NETWORK_FAMILY.ethereum,\n      1,\n      'https://github.com/subquery/templates/raw/main/dist/dictionary.json'\n    );\n\n    expect(dictUrl.length).toBeGreaterThan(0);\n\n    const dictUrl2: string[] = await (dictionaryService as any).resolveDictionary(\n      NETWORK_FAMILY.substrate,\n      '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n      'https://github.com/subquery/templates/raw/main/dist/dictionary.json'\n    );\n\n    expect(dictUrl2.length).toBeGreaterThan(0);\n  });\n\n  it('init Dictionaries with mutiple endpoints, only valid dictionary will be added', () => {\n    expect((dictionaryService as any)._dictionaries.length).toBe(2);\n  });\n\n  it('can find valid dictionary with height', () => {\n    // If we haven't set dictionary\n    expect(dictionaryService.currentDictionaryIndex).toBeUndefined();\n\n    (dictionaryService as any).findDictionary(100, new Set<number>());\n    expect(dictionaryService.currentDictionaryIndex).toBe(0);\n\n    expect((dictionaryService as any).getDictionary(100)).toBeTruthy();\n    // Current only valid endpoint been provided\n    expect((dictionaryService as any).getDictionary(100).dictionaryEndpoint).toBe(\n      'https://dict-tyk.subquery.network/query/eth-mainnet'\n    );\n  });\n\n  it('scopedDictionaryEntries, dictionary get data should be called', async () => {\n    const dictionary = (dictionaryService as any).getDictionary(1000);\n\n    const spyDictionary = jest.spyOn(dictionary, 'getData');\n\n    await dictionaryService.scopedDictionaryEntries(1000, 11000, 100);\n    expect(spyDictionary).toHaveBeenCalled();\n  });\n\n  it('scopedDictionaryEntries, if query failed/timeout, should try next valid dictionary for query', async () => {\n    // mock current dictionary,  it is an invalid dictionary, should allow scopedDictionaryEntries to find next dictionary\n\n    addInvalidDictionary(dictionaryService, 0);\n    dictionaryService.currentDictionaryIndex = 0;\n    const failedDictionary = (dictionaryService as any)._dictionaries[0];\n    // mock this dictionary can pass validation\n    failedDictionary._metadata = {startBlock: 1, lastProcessedHeight: 10000};\n    // (dictionaryService as any)._dictionaries[0].heightValidation= (height:number) => true;\n    const getDataError = jest.fn(() => {\n      return Promise.reject(new Error('Dictionary index 0 mock fetch failed'));\n    });\n    failedDictionary.getData = getDataError;\n\n    const passDictionary = (dictionaryService as any)._dictionaries[1];\n\n    const spyPassGetData = jest.spyOn(passDictionary, 'getData');\n\n    const spyScopedDictionaryEntries = jest.spyOn(dictionaryService as any, '_scopedDictionaryEntries');\n\n    const res = await dictionaryService.scopedDictionaryEntries(1000, 11000, 100);\n    expect(getDataError).toHaveBeenCalledTimes(1);\n    expect(spyPassGetData).toHaveBeenCalledTimes(1);\n    // failed 1 time + 1 retry\n    expect(spyScopedDictionaryEntries).toHaveBeenCalledTimes(2);\n    expect(dictionaryService.currentDictionaryIndex).toBe(1);\n  });\n\n  it('tried all dictionaries but all failed will return undefined', async () => {\n    // remove the valid dictionary\n    addInvalidDictionary(dictionaryService, 0);\n    dictionaryService.currentDictionaryIndex = 0;\n    // mock this dictionary can pass validation\n    for (const dictionary of (dictionaryService as any)._dictionaries) {\n      dictionary._metadata = {lastProcessedHeight: 10000};\n      dictionary.getData = () => {\n        throw new Error('Dictionary fetch failed');\n      };\n    }\n    const spyScopedDictionaryEntries = jest.spyOn(dictionaryService as any, '_scopedDictionaryEntries');\n    const blocks = await dictionaryService.scopedDictionaryEntries(1000, 11000, 100);\n    expect(spyScopedDictionaryEntries).toHaveBeenCalledTimes(3);\n    expect(blocks).toBeUndefined();\n  }, 50000);\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/dictionary.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {OnApplicationShutdown} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {NETWORK_FAMILY} from '@subql/common';\nimport {IProjectNetworkConfig} from '@subql/types-core';\nimport {NodeConfig} from '../../configure';\nimport {IndexerEvent} from '../../events';\nimport {getLogger} from '../../logger';\nimport {BlockHeightMap} from '../../utils/blockHeightMap';\nimport {IBlock} from '../types';\nimport {DictionaryResponse, IDictionary, IDictionaryCtrl} from './types';\n\nconst logger = getLogger('DictionaryService');\nexport abstract class DictionaryService<DS, FB> implements IDictionaryCtrl<DS, FB>, OnApplicationShutdown {\n  protected _dictionaries: IDictionary<DS, FB>[] = [];\n\n  protected _currentDictionaryIndex: number | undefined;\n  constructor(\n    protected chainId: string,\n    protected readonly nodeConfig: NodeConfig,\n    protected readonly eventEmitter: EventEmitter2\n  ) {}\n\n  onApplicationShutdown(): void {\n    this._dictionaries = [];\n    this._currentDictionaryIndex = undefined;\n  }\n\n  abstract initDictionaries(): Promise<void>;\n\n  init(dictionaries: IDictionary<DS, FB>[]): void {\n    this._dictionaries = dictionaries;\n  }\n\n  private getDictionary(height: number, skipDictionaryIndex: Set<number> = new Set()): IDictionary<DS, FB> | undefined {\n    const previousIndex = this._currentDictionaryIndex;\n    const dict = this._getDictionary(height, skipDictionaryIndex);\n\n    this.eventEmitter.emit(IndexerEvent.UsingDictionary, {value: Number(!!dict)});\n    if (!dict) {\n      this.eventEmitter.emit(IndexerEvent.SkipDictionary);\n    }\n\n    // Only log on change of dictionary\n    try {\n      if (previousIndex !== this._currentDictionaryIndex) {\n        if (this._currentDictionaryIndex === undefined) {\n          if (this._dictionaries.length) {\n            logger.warn(`No supported dictionary found`);\n          } else {\n            logger.debug(`No dictionaries available to use`);\n          }\n        } else {\n          logger.info(\n            `Changed dictionary: new index: ${this._currentDictionaryIndex}, type: ${this._dictionaries[this._currentDictionaryIndex]?.constructor?.name}`\n          );\n        }\n      }\n    } catch (e) {\n      // Do nothing, logging shouldn't cause errors\n    }\n\n    return dict;\n  }\n\n  private _getDictionary(\n    height: number,\n    skipDictionaryIndex: Set<number> = new Set()\n  ): IDictionary<DS, FB> | undefined {\n    if (this._dictionaries.length === 0) {\n      return undefined;\n    }\n    // If current dictionary is valid, use current one instead of find a dictionary\n    if (\n      this._currentDictionaryIndex !== undefined &&\n      !skipDictionaryIndex.has(this._currentDictionaryIndex) &&\n      this._dictionaries[this._currentDictionaryIndex].heightValidation(height)\n    ) {\n      return this._dictionaries[this._currentDictionaryIndex];\n    } else {\n      this.findDictionary(height, skipDictionaryIndex);\n      if (this._currentDictionaryIndex === undefined) {\n        return undefined;\n      } else {\n        return this._dictionaries[this._currentDictionaryIndex];\n      }\n    }\n  }\n\n  // Find the next valid dictionary\n  private findDictionary(height: number, skipDictionaryIndex: Set<number>) {\n    // DO NOT remove dictionary not valid\n    // As they can be valid for different block range, or work for other query\n    const index = this._dictionaries.findIndex(\n      (d, index) => d.heightValidation(height) && !skipDictionaryIndex.has(index)\n    );\n    // If not find any, then still set undefined.\n    this._currentDictionaryIndex = index < 0 ? undefined : index;\n  }\n\n  /**\n   *\n   * @param dataSources\n   */\n  buildDictionaryEntryMap(dataSources: BlockHeightMap<DS[]>): void {\n    for (const dict of this._dictionaries) {\n      dict.updateQueriesMap(dataSources);\n    }\n  }\n\n  async scopedDictionaryEntries(\n    startBlockHeight: number,\n    scaledBatchSize: number,\n    chainHeadHeight: number //api FinalizedHeight\n  ): Promise<DictionaryResponse<number | IBlock<FB>> | undefined> {\n    const skipDictionaryIndex: Set<number> = new Set<number>();\n    return this._scopedDictionaryEntries(startBlockHeight, scaledBatchSize, chainHeadHeight, skipDictionaryIndex);\n  }\n\n  /**\n   * Returns undefined if there is no valid dictionary or dictionary fails\n   * */\n  private async _scopedDictionaryEntries(\n    startBlockHeight: number,\n    scaledBatchSize: number,\n    chainHeadHeight: number, //api FinalizedHeight\n    skipDictionaryIndex: Set<number> = new Set<number>()\n  ): Promise<DictionaryResponse<number | IBlock<FB>> | undefined> {\n    // Initialize skipDictionaryIndex as an empty array\n    // Attempt to get data from the current dictionary\n    const dictionary = this.getDictionary(startBlockHeight, skipDictionaryIndex);\n    if (!dictionary) {\n      return undefined;\n    }\n    try {\n      const queryEndBlock = dictionary.getQueryEndBlock(\n        startBlockHeight + this.nodeConfig.dictionaryQuerySize,\n        chainHeadHeight\n      );\n      return await dictionary.getData(startBlockHeight, queryEndBlock, scaledBatchSize);\n    } catch (error: any) {\n      // Handle errors by skipping the current dictionary\n      if (this._currentDictionaryIndex === undefined) {\n        throw new Error(`try get next dictionary but _currentDictionaryIndex is undefined`);\n      }\n      skipDictionaryIndex.add(this._currentDictionaryIndex);\n      return this._scopedDictionaryEntries(startBlockHeight, scaledBatchSize, chainHeadHeight, skipDictionaryIndex);\n    }\n  }\n\n  protected async resolveDictionary(\n    networkFamily: NETWORK_FAMILY,\n    chainId: string,\n    registryUrl: string\n  ): Promise<string[]> {\n    try {\n      const response = await fetch(registryUrl);\n\n      if (!response.ok) {\n        throw new Error(`Bad response, code=\"${response.status}\" body=\"${await response.text()}\"`);\n      }\n      const dictionaryJson: any = await response.json();\n\n      const dictionaries = dictionaryJson[networkFamily.toLowerCase()][chainId];\n\n      if (Array.isArray(dictionaries) && dictionaries.length > 0) {\n        return dictionaries;\n      } else if (typeof dictionaries === 'string') {\n        return [dictionaries];\n      } else {\n        return [];\n      }\n    } catch (error: any) {\n      logger.error(error, 'An error occurred while fetching the dictionary:');\n      return [];\n    }\n  }\n\n  protected async getDictionaryEndpoints(\n    networkFamily: NETWORK_FAMILY,\n    network: IProjectNetworkConfig\n  ): Promise<string[]> {\n    const registryDictionaries = await this.resolveDictionary(\n      networkFamily,\n      network.chainId,\n      this.nodeConfig.dictionaryRegistry\n    );\n\n    const dictionaryEndpoints: string[] = (\n      !Array.isArray(network.dictionary) ? (!network.dictionary ? [] : [network.dictionary]) : network.dictionary\n    ).concat(registryDictionaries);\n    return dictionaryEndpoints;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './v1';\nexport * from './v2';\nexport * from './types';\nexport * from './dictionary.service';\nexport * from './utils';\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BlockHeightMap} from '../../utils/blockHeightMap';\nimport {FieldSelector} from '../dictionary/v2';\nimport {IBlock} from '../types';\n\nexport type DictionaryResponse<B = number> = {\n  batchBlocks: B[];\n  lastBufferedHeight: number;\n};\n\nexport interface IDictionary<DS, FB> {\n  metadataValid: boolean | undefined;\n  getData(\n    startBlock: number,\n    endBlock: number,\n    limit: number,\n    fieldSelector?: FieldSelector\n  ): Promise<DictionaryResponse<IBlock<FB> | number> | undefined>;\n  queryMapValidByHeight(height: number): boolean;\n  getQueryEndBlock(targetEndHeight: number, apiFinalizedHeight: number): number;\n  heightValidation(height: number): boolean;\n  updateQueriesMap(dataSources: BlockHeightMap<DS[]>): void;\n}\n\nexport interface IDictionaryCtrl<DS, FB> {\n  initDictionaries(): Promise<void> | void;\n  buildDictionaryEntryMap(dataSources: BlockHeightMap<DS[]>): void;\n  scopedDictionaryEntries(\n    startBlockHeight: number,\n    queryEndBlock: number,\n    scaledBatchSize: number\n  ): Promise<DictionaryResponse<number | IBlock<FB>> | undefined>;\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/utils.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IBlock} from '../types';\nimport {mergeNumAndBlocks, mergeNumAndBlocksToNums} from './utils';\n\nfunction mockIblock(n: number): IBlock<{height: number; hash: string}> {\n  return {\n    getHeader: () => {\n      return {blockHeight: n, parentHash: `0x${n - 1}`, blockHash: `0x${n}`, timestamp: new Date()};\n    },\n    block: {height: n, hash: `0x${n}`},\n  };\n}\n\nconst outcomeBlocks = [\n  10,\n  mockIblock(12),\n  mockIblock(20),\n  mockIblock(22),\n  mockIblock(23),\n  30,\n  40,\n  mockIblock(44),\n  mockIblock(45),\n  mockIblock(50),\n];\nconst outcomeBlocks2 = [10, 12, 20, 22, 23, 30, 40, 44, 45, 50];\n\nit('mergeNumAndBlocks, merge and arrange blocks in order', () => {\n  const moduloBlocks = [10, 20, 30, 40, 50];\n\n  const batchBlocks: IBlock<any>[] = [\n    // should keep these fat blocks rather than number, so we don't have to fetch again\n    mockIblock(50),\n    mockIblock(12),\n    mockIblock(22),\n    mockIblock(23),\n    mockIblock(44),\n    mockIblock(45),\n    // and it can order\n    mockIblock(20),\n    // and it can remove duplicate\n    mockIblock(22),\n  ];\n\n  expect(JSON.stringify(mergeNumAndBlocks(moduloBlocks, batchBlocks))).toBe(JSON.stringify(outcomeBlocks));\n  // also should work if batchBlocks is numbers\n  const batchBlocks2 = [12, 22, 23, 44, 45, 22];\n  expect(mergeNumAndBlocks(moduloBlocks, batchBlocks2)).toEqual(outcomeBlocks2);\n});\n\nit('mergeNumAndBlocksToNums, turn all blocks into number', () => {\n  const moduloBlocks = [10, 20, 30, 40, 50];\n\n  function mockIblock(n: number): IBlock<{height: number; hash: string}> {\n    return {\n      getHeader: () => {\n        return {blockHeight: n, parentHash: `0x${n - 1}`, blockHash: `0x${n}`, timestamp: new Date()};\n      },\n      block: {height: n, hash: `0x${n}`},\n    };\n  }\n\n  const batchBlocks: IBlock<any>[] = [\n    // should keep these fat blocks rather than number, so we don't have to fetch again\n    mockIblock(50),\n    mockIblock(12),\n    mockIblock(22),\n    mockIblock(23),\n    mockIblock(44),\n    mockIblock(45),\n    // and it can order\n    mockIblock(20),\n    // and it can remove duplicate\n    mockIblock(22),\n  ];\n  expect(mergeNumAndBlocksToNums(moduloBlocks, batchBlocks)).toEqual(outcomeBlocks2);\n  // also should work if batchBlocks is numbers\n  const batchBlocks2 = [12, 22, 23, 44, 45, 22];\n  expect(mergeNumAndBlocksToNums(moduloBlocks, batchBlocks2)).toEqual(outcomeBlocks2);\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {uniq} from 'lodash';\nimport {IBlock} from '../../indexer';\n\nexport function getBlockHeight<B>(block: number | IBlock<B>): number {\n  if (typeof block === 'number') {\n    return block;\n  }\n  return block.getHeader().blockHeight;\n}\n\nexport function mergeNumAndBlocks<FB>(\n  numberBlocks: number[],\n  batchBlocks: (IBlock<FB> | number)[]\n): (number | IBlock<FB>)[] {\n  let uniqueNumbers: number[] = uniq(numberBlocks);\n  const uniqueBObjects: (IBlock<FB> | number)[] = [];\n  // filter out modulo blocks that already exist in fat blocks\n  for (const item of batchBlocks) {\n    const height = getBlockHeight(item);\n    if (!uniqueBObjects.some((b) => getBlockHeight(b) === height)) {\n      uniqueBObjects.push(item);\n      uniqueNumbers = uniqueNumbers.filter((un) => un !== height);\n    }\n  }\n  // merge and order\n  const combinedArray: (number | IBlock<FB>)[] = [...uniqueNumbers, ...uniqueBObjects].sort((a, b) => {\n    const numA = typeof a === 'number' ? a : getBlockHeight(a);\n    const numB = typeof b === 'number' ? b : getBlockHeight(b);\n    return numA - numB;\n  });\n\n  return combinedArray;\n}\n\nexport function mergeNumAndBlocksToNums<FB>(\n  firstBlocks: (number | IBlock<FB>)[],\n  secondBlocks: (number | IBlock<FB>)[]\n): number[] {\n  const combinedArray: (number | IBlock<FB>)[] = [...firstBlocks, ...secondBlocks];\n  const uniqueNumbersSet = new Set<number>();\n  for (const item of combinedArray) {\n    if (typeof item === 'number') {\n      uniqueNumbersSet.add(item);\n    } else {\n      uniqueNumbersSet.add(getBlockHeight(item));\n    }\n  }\n  const uniqueNumbersArray: number[] = Array.from(uniqueNumbersSet);\n  const sortedArray: number[] = uniqueNumbersArray.sort((a, b) => a - b);\n  return sortedArray;\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/v1/dictionaryV1.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {ApolloClient, HttpLink, InMemoryCache} from '@apollo/client/core';\nimport fetch from 'cross-fetch';\nimport {range} from 'lodash';\nimport {NodeConfig} from '../../../configure';\nimport {BlockHeightMap} from '../../../utils/blockHeightMap';\nimport {dsMap, mockDS, TestDictionaryV1, HAPPY_PATH_CONDITIONS} from '../dictionary.fixtures';\nimport {getGqlType} from './utils';\n\nconst DICTIONARY_ENDPOINT = `https://gateway.subquery.network/query/QmSxAgGGpaMrYzooWpydmwzutREwomL5nupLZqxURzuJTo`;\nconst DICTIONARY_CHAINID = `0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3`;\n\nconst nodeConfig = new NodeConfig({\n  subquery: 'asdf',\n  subqueryName: 'asdf',\n  networkEndpoint: {'wss://polkadot.api.onfinality.io/public-ws': {}},\n  dictionaryTimeout: 10,\n});\n// Need longer timeout\njest.setTimeout(50000);\n\ndescribe('GraphqlTypes', () => {\n  it('Supports arrays of primitives', () => {\n    const stringType = getGqlType(['a', 'b', 'c']);\n    expect(stringType).toEqual(`[String!]`);\n\n    const number = getGqlType([1, 2, 3]);\n    expect(number).toEqual(`[BigFloat!]`);\n  });\n\n  it('Throws arrays of non-primitives', () => {\n    expect(() => getGqlType([{a: 1}])).toThrow('Object types not supported');\n  });\n\n  it('Throws with empty arrays', () => {\n    expect(() => getGqlType([])).toThrow('Unable to determine array type');\n  });\n});\n\nasync function prepareDictionary(\n  endpoint = DICTIONARY_ENDPOINT,\n  chainId = DICTIONARY_CHAINID,\n  nfg = nodeConfig,\n  dsM = dsMap\n): Promise<TestDictionaryV1> {\n  const dictionary = new TestDictionaryV1(endpoint, chainId, nfg, HAPPY_PATH_CONDITIONS);\n  await (dictionary as any).init();\n  dictionary.updateQueriesMap(dsM);\n  return dictionary;\n}\n\ndescribe('Dictionary V1', () => {\n  let dictionary: TestDictionaryV1;\n\n  beforeAll(async () => {\n    dictionary = await prepareDictionary();\n  });\n\n  afterEach(() => {\n    jest.clearAllMocks();\n  });\n\n  describe('coreDictionary', () => {\n    it('set startHeight of this dictionary', () => {\n      // After metadata init, it should set startHeight of this dictionary\n      expect(dictionary.startHeight).toEqual(1);\n    });\n\n    it('validateChainMeta and useDictionary', () => {\n      expect((dictionary as any).validateChainMeta((dictionary as any).metadata)).toBeTruthy();\n    });\n\n    it('validate dictionary with a height', () => {\n      expect(dictionary.heightValidation(100)).toBeTruthy();\n      const beyond500 = (dictionary as any).metadata.lastProcessedHeight + 500;\n      expect(dictionary.heightValidation(beyond500)).toBeFalsy();\n    });\n\n    it('able to build queryEntryMap', () => {\n      dictionary.updateQueriesMap(dsMap);\n      const _map = (dictionary as any).queriesMap?.getAll();\n\n      assert(_map, 'Map should exist');\n\n      expect([..._map.keys()]).toStrictEqual(mockDS.map((ds) => ds.startBlock));\n      expect(_map?.size).toEqual(mockDS.length);\n    });\n\n    it('can use scoped dictionary query', async () => {\n      dictionary.updateQueriesMap(dsMap);\n\n      // Out of range of scoped entries\n      const result = await dictionary.getData(100, 199, 10);\n      expect(result?.batchBlocks.length).toEqual(0);\n\n      const result2 = await dictionary.getData(1000, 10000, 10);\n      expect(result2?.batchBlocks.length).toBeGreaterThan(0);\n    });\n\n    it('able to getDicitonaryQueryEntries', () => {\n      const dictionaryQueryMap = new Map();\n\n      // Mocks a Map object that where key == dataSource.startBlock and mocked DictionaryQueryEntries[] values\n      // Hence testing, when provided a queryEndBlock, the correct DictionaryQueryEntries[] is returned\n      for (let i = 0; i < mockDS.length; i++) {\n        dictionaryQueryMap.set(\n          [mockDS[i].startBlock],\n          HAPPY_PATH_CONDITIONS.filter((dictionaryQuery, index) => i >= index)\n        );\n      }\n      (dictionary as any).queriesMap = new BlockHeightMap(dictionaryQueryMap);\n      let queryEndBlock = 150;\n\n      // queryEndBlock > dictionaryQuery_0 && < dictionaryQuery_1. Output: dictionaryQuery_0\n      expect((dictionary as any).queriesMap?.getSafe(queryEndBlock)).toEqual([HAPPY_PATH_CONDITIONS[0]]);\n\n      queryEndBlock = 500;\n\n      // queryEndBlock > dictionaryQuery_0 && == dictionaryQuery_1. Output: dictionaryQuery_1\n      expect((dictionary as any).queriesMap?.getSafe(queryEndBlock)).toEqual([\n        HAPPY_PATH_CONDITIONS[0],\n        HAPPY_PATH_CONDITIONS[1],\n      ]);\n\n      queryEndBlock = 5000;\n      // queryEndBlock > all dictionaryQuery\n      expect((dictionary as any).queriesMap?.getSafe(queryEndBlock)).toEqual([\n        HAPPY_PATH_CONDITIONS[0],\n        HAPPY_PATH_CONDITIONS[1],\n        HAPPY_PATH_CONDITIONS[2],\n      ]);\n\n      queryEndBlock = 50;\n      // queryEndBlock < min dictionaryQuery\n      expect((dictionary as any).queriesMap?.getSafe(queryEndBlock)).toEqual(undefined);\n    });\n  });\n\n  it('get metadata', () => {\n    const metadata = (dictionary as any).metadata;\n    expect(metadata.startHeight).toBe(1);\n    expect(metadata.genesisHash).toBe('0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3');\n  });\n\n  it('init metadata and get metadata', async () => {\n    await (dictionary as any).init();\n    const metadata = (dictionary as any).metadata;\n    expect(metadata.startHeight).toBe(1);\n    expect(metadata.genesisHash).toBe('0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3');\n    // After metadata init, it should set startHeight of this dictionary\n    expect(dictionary.startHeight).toEqual(1);\n  });\n\n  it('return dictionary query result', async () => {\n    const batchSize = 30;\n    const startBlock = 1000; // first event at 1463, this will pick the correct query map\n    const endBlock = 10001;\n    const dic = await dictionary.getData(startBlock, endBlock, batchSize);\n    expect(dic?.batchBlocks.length).toBeGreaterThan(1);\n    expect(dic?.batchBlocks[0]).toBe(1463);\n  });\n\n  it('should return undefined startblock height greater than dictionary last processed height', async () => {\n    const batchSize = 30;\n    const startBlock = 400000000;\n    const endBlock = 400010000;\n    const dic = await dictionary.getData(startBlock, endBlock, batchSize);\n    expect(dic).toBeUndefined();\n  });\n\n  it('should use metadata last process height at end of query height', () => {\n    const fakeApiFinalHeight = 40001;\n    // assume already synced up with chain\n    // 1 + dictionaryQuerySize\n    const endBlock = dictionary.getQueryEndBlock(10001, fakeApiFinalHeight);\n    expect(endBlock).toEqual(10001);\n  });\n});\n\ndescribe('Individual dictionary V1 test', () => {\n  let dictionary: TestDictionaryV1;\n\n  beforeEach(async () => {\n    dictionary = await prepareDictionary();\n  });\n\n  it('return undefined when dictionary api failed', async () => {\n    // Create a new dictionary for this test so we don't break other instances\n    const dictionary = await prepareDictionary();\n\n    // Replace client with one that wont work\n    (dictionary as any)._client = new ApolloClient({\n      cache: new InMemoryCache({resultCaching: true}),\n      link: new HttpLink({uri: 'https://api.subquery.network/sq/subquery/dictionary-not-exist', fetch}),\n      defaultOptions: {\n        watchQuery: {\n          fetchPolicy: 'no-cache',\n        },\n        query: {\n          fetchPolicy: 'no-cache',\n        },\n      },\n    });\n\n    const batchSize = 30;\n    const startBlock = 1;\n    const endBlock = 10001;\n    const dic = await dictionary.getData(startBlock, endBlock, batchSize);\n    expect(dic).toBeUndefined();\n  });\n\n  it('limits the dictionary query to that block range', async () => {\n    // Only have 1 condition for each range. This is to simulate each \"project upgrade\" having no overlapping ds\n    dictionary.buildDictionaryQueryEntries = (ds) => [HAPPY_PATH_CONDITIONS[ds.length - 1]];\n    dictionary.updateQueriesMap(dsMap);\n\n    const getDictionaryQuerySpy = jest.spyOn(dictionary as any, 'dictionaryQuery');\n\n    await dictionary.getData(200, 600, 10);\n\n    expect(getDictionaryQuerySpy).toHaveBeenCalledWith(200, 499, 10, [\n      {\n        entity: 'events',\n        conditions: [\n          {field: 'module', value: 'staking'},\n          {field: 'event', value: 'Bonded'},\n        ],\n      },\n    ]);\n  });\n\n  it('test query the correct range', async () => {\n    dictionary.buildDictionaryQueryEntries = (ds) => [\n      {\n        entity: 'extrinsics',\n        conditions: [\n          {field: 'module', value: 'timestamp'},\n          {field: 'call', value: 'set'},\n        ],\n      },\n    ];\n    dictionary.updateQueriesMap(dsMap);\n\n    const batchSize = 30;\n    const startBlock = 1000;\n    const endBlock = 10001;\n    const dic = await dictionary.getData(startBlock, endBlock, batchSize);\n    expect(dic?.batchBlocks).toEqual(range(startBlock, startBlock + batchSize));\n  });\n\n  it('use minimum value of event/extrinsic returned block as batch end block', async () => {\n    const batchSize = 50;\n    const startBlock = 333300;\n    const endBlock = 340000;\n\n    dictionary.buildDictionaryQueryEntries = (ds) => [\n      {\n        entity: 'events',\n        conditions: [\n          {field: 'module', value: 'session'},\n          {field: 'event', value: 'NewSession'},\n        ],\n      },\n      {\n        entity: 'events',\n        conditions: [\n          {field: 'module', value: 'staking'},\n          {field: 'event', value: 'EraPayout'},\n        ],\n      },\n      {\n        entity: 'events',\n        conditions: [\n          {field: 'module', value: 'staking'},\n          {field: 'event', value: 'Reward'},\n        ],\n      },\n      {\n        //last extrinsic at block 339186\n        entity: 'extrinsics',\n        conditions: [\n          {field: 'module', value: 'staking'},\n          {field: 'call', value: 'payoutStakers'},\n        ],\n      },\n      {\n        entity: 'extrinsics',\n        conditions: [\n          {field: 'module', value: 'utility'},\n          {field: 'call', value: 'batch'},\n        ],\n      },\n    ];\n    dictionary.updateQueriesMap(dsMap);\n    const dic = await dictionary.getData(startBlock, endBlock, batchSize);\n    // with dictionary distinct, this should give last block at 339186\n    expect(dic?.batchBlocks[dic.batchBlocks.length - 1]).toBe(339186);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/v1/dictionaryV1.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ApolloClient, gql, HttpLink, InMemoryCache, NormalizedCacheObject} from '@apollo/client/core';\nimport {DictionaryQueryCondition, DictionaryQueryEntry as DictionaryV1QueryEntry} from '@subql/types-core';\nimport {buildQuery, GqlNode, GqlQuery, GqlVar, MetaData as DictionaryV1Metadata} from '@subql/utils';\nimport {NodeConfig} from '../../../configure';\nimport {getLogger} from '../../../logger';\nimport {profiler} from '../../../profiler';\nimport {timeout} from '../../../utils';\nimport {CoreDictionary} from '../coreDictionary';\nimport {DictionaryResponse} from '../types';\nimport {buildDictQueryFragment, distinctErrorEscaped, startHeightEscaped} from './utils';\n\nconst logger = getLogger('dictionary-v1');\n\nexport abstract class DictionaryV1<DS> extends CoreDictionary<\n  DS,\n  undefined,\n  DictionaryV1Metadata,\n  DictionaryV1QueryEntry[]\n> {\n  private _client: ApolloClient<NormalizedCacheObject>;\n  private useDistinct = true;\n  private useStartHeight = true;\n\n  constructor(\n    readonly dictionaryEndpoint: string,\n    chainId: string,\n    nodeConfig: NodeConfig,\n    protected readonly metadataKeys = ['lastProcessedHeight', 'genesisHash'], // Cosmos uses chain instead of genesisHash\n    protected buildQueryFragment: typeof buildDictQueryFragment = buildDictQueryFragment\n  ) {\n    super(chainId, nodeConfig);\n\n    this._client = new ApolloClient({\n      cache: new InMemoryCache({resultCaching: true}),\n      link: new HttpLink({uri: dictionaryEndpoint}),\n      defaultOptions: {\n        watchQuery: {\n          fetchPolicy: 'no-cache',\n        },\n        query: {\n          fetchPolicy: 'no-cache',\n        },\n      },\n    });\n  }\n\n  protected async init(): Promise<void> {\n    const {query} = this.metadataQuery();\n    try {\n      const resp = await timeout(\n        this.client.query({\n          query: gql(query),\n        }),\n        this.nodeConfig.dictionaryTimeout,\n        `Dictionary metadata query timeout in ${\n          this.nodeConfig.dictionaryTimeout\n        } seconds. Please increase --dictionary-timeout. ${this.nodeConfig.debug ? `\\n GraphQL: ${query}` : ''}`\n      );\n      this._metadata = resp.data._metadata;\n      this.setDictionaryStartHeight(this.metadata.startHeight);\n    } catch (err: any) {\n      if (JSON.stringify(err).includes(startHeightEscaped)) {\n        this.useStartHeight = false;\n        logger.warn(`Dictionary doesn't support validate start height.`);\n        // Rerun the query now with distinct disabled\n        await this.init();\n      }\n      logger.error(err, `Failed to get dictionary metadata`);\n      throw err;\n    }\n  }\n\n  getQueryEndBlock(targetBlockHeight: number, apiFinalizedHeight: number): number {\n    return Math.min(targetBlockHeight, apiFinalizedHeight, this.metadata.lastProcessedHeight);\n  }\n\n  protected get client(): ApolloClient<NormalizedCacheObject> {\n    if (!this._client) {\n      throw new Error('Dictionary service has not been initialized');\n    }\n    return this._client;\n  }\n\n  /**\n   *\n   * @param startBlock\n   * @param queryEndBlock this block number will limit the max query range, increase dictionary query speed\n   * @param batchSize\n   * @param conditions\n   */\n\n  @profiler()\n  async getData(\n    startBlock: number,\n    endBlock: number,\n    batchSize: number\n  ): Promise<DictionaryResponse<number> | undefined> {\n    const {conditions, queryEndBlock} = this.getQueryConditions(startBlock, endBlock);\n    if (!conditions || conditions.length === 0) {\n      return undefined;\n    }\n\n    const {query, variables} = this.dictionaryQuery(startBlock, queryEndBlock, batchSize, conditions);\n\n    logger.debug(`query: ${query}`);\n    logger.debug(`variables: ${JSON.stringify(variables, null, 2)}`);\n    try {\n      const resp = await timeout(\n        this.client.query({\n          query: gql(query),\n          variables,\n        }),\n        this.nodeConfig.dictionaryTimeout,\n        `Dictionary query timeout in ${\n          this.nodeConfig.dictionaryTimeout\n        } seconds. Please increase --dictionary-timeout. ${\n          this.nodeConfig.debug ? `\\n GraphQL: ${query}, \\n Variables: ${variables}` : ''\n        }`\n      );\n      const blockHeightSet = new Set<number>();\n      const entityEndBlock: {[entity: string]: number} = {};\n      for (const entity of Object.keys(resp.data)) {\n        if (entity !== '_metadata' && resp.data[entity].nodes.length >= 0) {\n          for (const node of resp.data[entity].nodes) {\n            blockHeightSet.add(Number(node.blockHeight));\n            entityEndBlock[entity] = Number(node.blockHeight); //last added event blockHeight\n          }\n        }\n      }\n      const _metadata = resp.data._metadata;\n      const endBlock = Math.min(...Object.values(entityEndBlock).map((height) => (isNaN(height) ? Infinity : height)));\n      const batchBlocks = Array.from(blockHeightSet)\n        .filter((block) => block <= endBlock)\n        .sort((n1, n2) => n1 - n2);\n\n      if (!this.dictionaryValidation(_metadata, startBlock)) {\n        return undefined;\n      }\n\n      return {\n        lastBufferedHeight: Math.min(endBlock, queryEndBlock),\n        batchBlocks,\n      };\n    } catch (err: any) {\n      // Check if the error is about distinct argument and disable distinct if so\n      if (JSON.stringify(err).includes(distinctErrorEscaped)) {\n        this.useDistinct = false;\n        logger.warn(`Dictionary doesn't support distinct query.`);\n        // Rerun the qeury now with distinct disabled\n        return this.getData(startBlock, queryEndBlock, batchSize);\n      }\n      logger.warn(err, `failed to fetch dictionary result`);\n      return undefined;\n    }\n  }\n\n  queryMapValidByHeight(height: number): boolean {\n    try {\n      return !!this.queriesMap?.get(height)?.length;\n    } catch (e: any) {\n      logger.warn(e, `Unable to get query map by height ${height}`);\n      return false;\n    }\n  }\n\n  protected dictionaryValidation(metaData?: DictionaryV1Metadata, startBlockHeight?: number): boolean {\n    const validate = (): boolean => {\n      try {\n        if (!metaData) {\n          return false;\n        }\n\n        if (startBlockHeight !== undefined && metaData.lastProcessedHeight < startBlockHeight) {\n          logger.warn(`Dictionary indexed block is behind current indexing block height`);\n          return false;\n        }\n        return true;\n      } catch (e: any) {\n        logger.error(e, 'Unable to validate dictionary metadata');\n        return false;\n      }\n    };\n\n    const valid = validate();\n\n    this.metadataValid = valid;\n\n    return valid;\n  }\n\n  private dictionaryQuery(\n    startBlock: number,\n    queryEndBlock: number,\n    batchSize: number,\n    conditions: DictionaryV1QueryEntry[]\n  ): GqlQuery {\n    const mapped = conditions.reduce<Record<string, DictionaryQueryCondition[][]>>((acc, c) => {\n      acc[c.entity] = acc[c.entity] || [];\n      acc[c.entity].push(c.conditions);\n      return acc;\n    }, {});\n\n    // assemble\n    const vars: GqlVar[] = [];\n    const nodes: GqlNode[] = [\n      {\n        entity: '_metadata',\n        project: this.useStartHeight ? this.metadataKeys : this.metadataKeys.filter((obj) => obj !== 'startHeight'),\n      },\n    ];\n    for (const entity of Object.keys(mapped)) {\n      const [pVars, node] = this.buildQueryFragment(\n        entity,\n        startBlock,\n        queryEndBlock,\n        mapped[entity],\n        batchSize,\n        this.useDistinct\n      );\n      nodes.push(node);\n      vars.push(...pVars);\n    }\n    return buildQuery(vars, nodes);\n  }\n\n  private metadataQuery(): GqlQuery {\n    const nodes: GqlNode[] = [\n      {\n        entity: '_metadata',\n        project: this.useStartHeight ? [...this.metadataKeys, 'startHeight'] : this.metadataKeys,\n      },\n    ];\n    return buildQuery([], nodes);\n  }\n\n  protected validateChainMeta(metaData: DictionaryV1Metadata): boolean {\n    return metaData.chain === this.chainId || metaData.genesisHash === this.chainId;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/v1/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './dictionaryV1';\nexport * from './utils';\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/v1/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {DictionaryQueryCondition} from '@subql/types-core';\nimport {GqlNode, GqlVar, MetaData as DictionaryV1Metadata} from '@subql/utils';\n\nexport const distinctErrorEscaped = `Unknown argument \\\\\"distinct\\\\\"`;\nexport const startHeightEscaped = `Cannot query field \\\\\"startHeight\\\\\"`;\n\nexport type SpecVersion = {\n  id: string;\n  start: number; //start with this block\n  end: number;\n};\n\nexport type SpecVersionDictionary = {\n  _metadata: DictionaryV1Metadata;\n  specVersions: SpecVersion[];\n};\n\nexport type MetadataDictionary = {\n  _metadata: DictionaryV1Metadata;\n};\n\nexport function getGqlType(value: any): string {\n  switch (typeof value) {\n    case 'number':\n      return 'BigFloat!';\n    case 'boolean':\n      return 'Boolean!';\n    case 'object': {\n      if (Array.isArray(value)) {\n        if (!value.length) {\n          throw new Error('Unable to determine array type');\n        }\n\n        // Use the first value to get the type, assume they are all the same type\n        return `[${getGqlType(value[0])}]`;\n      } else {\n        throw new Error('Object types not supported');\n      }\n    }\n    default:\n    case 'string':\n      return 'String!';\n  }\n}\n\nfunction extractVar(name: string, cond: DictionaryQueryCondition): GqlVar {\n  const gqlType = cond.matcher === 'contains' ? 'JSON' : getGqlType(cond.value);\n\n  return {\n    name,\n    gqlType,\n    value: cond.value,\n  };\n}\n\nconst ARG_FIELD_REGX = /[^a-zA-Z0-9-_]/g;\nfunction sanitizeArgField(input: string): string {\n  return input.replace(ARG_FIELD_REGX, '');\n}\n\ntype Filter = {or: any[]};\n\nfunction extractVars(entity: string, conditions: DictionaryQueryCondition[][]): [GqlVar[], Filter] {\n  const gqlVars: GqlVar[] = [];\n  const filter: Filter = {or: []};\n  conditions.forEach((i, outerIdx) => {\n    if (i.length > 1) {\n      filter.or[outerIdx] = {\n        and: i.map((j, innerIdx) => {\n          const v = extractVar(`${entity}_${outerIdx}_${innerIdx}`, j);\n          gqlVars.push(v);\n          return {\n            [sanitizeArgField(j.field)]: {\n              [j.matcher || 'equalTo']: `$${v.name}`,\n            },\n          };\n        }),\n      };\n    } else if (i.length === 1) {\n      const v = extractVar(`${entity}_${outerIdx}_0`, i[0]);\n      gqlVars.push(v);\n      filter.or[outerIdx] = {\n        [sanitizeArgField(i[0].field)]: {\n          [i[0].matcher || 'equalTo']: `$${v.name}`,\n        },\n      };\n    }\n  });\n  return [gqlVars, filter];\n}\n\nexport function buildDictQueryFragment(\n  entity: string,\n  startBlock: number,\n  queryEndBlock: number,\n  conditions: DictionaryQueryCondition[][],\n  batchSize: number,\n  useDistinct: boolean\n): [GqlVar[], GqlNode] {\n  const [gqlVars, filter] = extractVars(entity, conditions);\n\n  const node: GqlNode = {\n    entity,\n    project: [\n      {\n        entity: 'nodes',\n        project: ['blockHeight'],\n      },\n    ],\n    args: {\n      filter: {\n        ...filter,\n        blockHeight: {\n          greaterThanOrEqualTo: `\"${startBlock}\"`,\n          lessThan: `\"${queryEndBlock}\"`,\n        },\n      },\n      orderBy: 'BLOCK_HEIGHT_ASC',\n      first: batchSize.toString(),\n    },\n  };\n\n  if (useDistinct) {\n    // Non null assertion here because we define the object explicitly\n    assert(node.args, 'Args should be defined in the above definition of node');\n    node.args.distinct = ['BLOCK_HEIGHT'];\n  }\n\n  return [gqlVars, node];\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/v2/dictionaryV2.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NodeConfig} from '../../../configure';\nimport {TestDictionaryV2, dsMap as mockedDsMap} from '../dictionary.fixtures';\n\njest.setTimeout(50000);\n\nconst nodeConfig = new NodeConfig({\n  subquery: 'asdf',\n  subqueryName: 'asdf',\n  dictionaryTimeout: 10,\n});\n\ndescribe('Individual dictionary V2 test', () => {\n  const dictionary = new TestDictionaryV2('http://mock-dictionary-v2/rpc', '0x21121', nodeConfig);\n\n  beforeAll(async () => {\n    await dictionary.mockInit();\n  });\n\n  it('can init metadata and set start height', () => {\n    expect(dictionary.testMetadata).toBeDefined();\n    expect(dictionary.testMetadata?.start).toBe(1);\n  }, 500000);\n\n  it('should get correct getQueryEndBlock', () => {\n    // should use targeted query end height, start height + batch size\n    const queryEndBlock1 = dictionary.getQueryEndBlock(1000, 1000000);\n    expect(queryEndBlock1).toBe(1000);\n\n    // should use dictionary metadata end, mock that api and targetHeight are beyond dictionary metadata\n    const queryEndBlock2 = dictionary.getQueryEndBlock(10000000000, 10000000000);\n    expect(queryEndBlock2).toBe(dictionary.testMetadata?.end);\n  }, 500000);\n\n  it('can get data', async () => {\n    dictionary.updateQueriesMap(mockedDsMap);\n    // mock api return\n    dictionary.setMockedApi({\n      post: () => {\n        return {\n          status: 200,\n          data: {\n            result: {\n              blocks: [105, 205, 600, 705],\n              blockRange: ['0x1', '0xF4240'],\n              genesisHash: 'mockedGenesisHash',\n            },\n          },\n        };\n      },\n    });\n\n    const data = await dictionary.getData(100, 1100, 100, {event: {}, method: {}});\n    expect(data?.batchBlocks).toStrictEqual([105, 205, 600, 705]);\n    expect(data?.lastBufferedHeight).toBe(705);\n    // can update metadata block height\n    expect(dictionary.testMetadata?.end).toBe(1000000);\n\n    // can throw error if response failed\n    dictionary.setMockedApi({\n      post: () => {\n        throw new Error('Mock post error');\n      },\n    });\n    await expect(() => dictionary.getData(100, 1100, 100, {event: {}, method: {}})).rejects.toThrow(\n      'Dictionary query failed Error: Mock post error'\n    );\n\n    jest.clearAllMocks();\n  }, 500000);\n\n  it('can determine current dictionary query map is valid with block height', () => {\n    dictionary.updateQueriesMap(mockedDsMap);\n    expect(dictionary.queryMapValidByHeight(105)).toBeTruthy();\n    expect(dictionary.queryMapValidByHeight(1)).toBeFalsy();\n  });\n\n  it('should able to handle convertResponseBlocks return empty array blocks and lastBufferedHeight is undefined', async () => {\n    dictionary.updateQueriesMap(mockedDsMap);\n    dictionary.setMockedApi({\n      post: () => {\n        return {\n          status: 200,\n          data: {\n            result: {\n              blocks: [105, 205, 600, 705],\n              BlockRange: [1, 1000000],\n              GenesisHash: 'mockedGenesisHash',\n            },\n          },\n        };\n      },\n    });\n    // mock convertResponseBlocks\n    (dictionary as any).convertResponseBlocks = () => {\n      return {\n        batchBlocks: [],\n        lastBufferedHeight: undefined,\n      };\n    };\n    const data = await dictionary.getData(1001, 2001, 100, {event: {}, method: {}});\n    expect(data?.lastBufferedHeight).toBe(2001);\n    jest.clearAllMocks();\n  });\n});\n\ndescribe('determine dictionary V2 version', () => {\n  it('if not supported dictionary endpoint, v2 should throw error if init failed', async () => {\n    const dictionaryV2 = new TestDictionaryV2(\n      'https://dict-tyk.subquery.network/query/eth-mainnet/rpc',\n      '0x21121',\n      nodeConfig\n    );\n    await expect((dictionaryV2 as any).init()).rejects.toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/v2/dictionaryV2.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {hexStripZeros, hexToNumber, numberToHex} from '@subql/utils';\nimport axios, {AxiosInstance} from 'axios';\nimport {FieldSelector} from '../';\nimport {NodeConfig} from '../../../configure';\nimport {getLogger} from '../../../logger';\nimport {IBlock} from '../../types';\nimport {CoreDictionary} from '../coreDictionary';\nimport {DictionaryResponse} from '../types';\nimport {DictionaryV2Metadata, DictionaryV2QueryEntry, V2MetadataFilters, RawDictionaryResponseData} from './types';\n\nconst MIN_FETCH_LIMIT = 200;\nconst BLOCKS_QUERY_METHOD = `subql_filterBlocks`;\nconst META_QUERY_METHOD = `subql_filterBlocksCapabilities`;\nconst logger = getLogger('dictionary v2');\n\ntype DictionaryV2Capabilities = {\n  genesisHash: string;\n  availableBlocks: {startHeight: number; endHeight: number}[];\n  supportedResponses: ('basic' | 'complete')[];\n  filters: V2MetadataFilters;\n  chainId: string;\n};\n\nasync function subqlFilterBlocksCapabilities(\n  endpoint: string,\n  axiosInstance?: AxiosInstance\n): Promise<DictionaryV2Metadata> {\n  axiosInstance ??= axios.create({\n    baseURL: endpoint,\n  });\n\n  const requestData = {\n    jsonrpc: '2.0',\n    method: META_QUERY_METHOD,\n    id: 1,\n  };\n\n  const response = await axiosInstance.post<{\n    result?: DictionaryV2Capabilities;\n    error?: {code: number; message: string};\n  }>(endpoint, requestData, {\n    headers: {\n      'Content-Type': 'application/json',\n    },\n  });\n\n  if (response.status >= 400) {\n    throw new Error(`[${response.status}]: ${response.statusText}`);\n  }\n\n  if (response.data.error) {\n    throw new Error(response.data.error.message);\n  }\n\n  const {result} = response.data;\n\n  if (!result) {\n    throw new Error('Malformed response');\n  }\n\n  const metadata: DictionaryV2Metadata = {\n    start: result.availableBlocks[0].startHeight,\n    end: result.availableBlocks[0].endHeight,\n    genesisHash: result.genesisHash,\n    filters: result.filters,\n    supported: result.supportedResponses,\n    chainId: result.chainId,\n  };\n  return metadata;\n}\n\nexport abstract class DictionaryV2<\n  FB,\n  DS,\n  QE extends DictionaryV2QueryEntry = DictionaryV2QueryEntry,\n> extends CoreDictionary<DS, FB, DictionaryV2Metadata, QE> {\n  protected dictionaryApi: AxiosInstance;\n\n  constructor(\n    readonly dictionaryEndpoint: string,\n    chainId: string,\n    nodeConfig: NodeConfig\n  ) {\n    super(chainId, nodeConfig);\n    this.dictionaryApi = axios.create({\n      baseURL: dictionaryEndpoint,\n      headers: {\n        Connection: 'keep-alive',\n        'Accept-Encoding': 'gzip, deflate',\n      },\n      timeout: nodeConfig.dictionaryTimeout * 1000, // Seconds to ms\n    });\n  }\n\n  protected abstract buildDictionaryQueryEntries(dataSources: DS[]): QE;\n\n  protected async init(): Promise<void> {\n    this._metadata = await subqlFilterBlocksCapabilities(this.dictionaryEndpoint);\n    this.setDictionaryStartHeight(this._metadata.start);\n  }\n\n  getQueryEndBlock(targetBlockHeight: number, apiHeadHeight: number): number {\n    return Math.min(targetBlockHeight, this.metadata.end, apiHeadHeight);\n  }\n\n  protected abstract convertResponseBlocks<RFB>(\n    result: RawDictionaryResponseData<RFB>\n  ): DictionaryResponse<IBlock<FB>> | undefined;\n\n  async getData<RFB>(\n    startBlock: number,\n    endBlock: number,\n    limit: number = MIN_FETCH_LIMIT,\n    fieldSelector: FieldSelector\n  ): Promise<DictionaryResponse<IBlock<FB> | number> | undefined> {\n    const {conditions, queryEndBlock} = this.getQueryConditions(startBlock, endBlock);\n    if (!conditions || Object.keys(conditions).length === 0) {\n      return undefined;\n    }\n    const requestData = {\n      jsonrpc: '2.0',\n      method: BLOCKS_QUERY_METHOD,\n      id: 1,\n      params: [\n        {\n          fromBlock: hexStripZeros(numberToHex(startBlock)),\n          toBlock: hexStripZeros(numberToHex(queryEndBlock)),\n          limit: hexStripZeros(numberToHex(limit)),\n          blockFilter: conditions,\n          fieldSelector,\n        },\n      ],\n    };\n    try {\n      const response = await this.dictionaryApi.post<{\n        result?: RawDictionaryResponseData<RFB>;\n        error?: {code: number; message: string};\n      }>(this.dictionaryEndpoint, requestData, {\n        headers: {\n          'Content-Type': 'application/json',\n        },\n      });\n      if (response.data.error) {\n        throw new Error(response.data.error.message);\n      }\n      if (!response.data.result) {\n        return undefined;\n      }\n      const result = this.convertResponseBlocks(response.data.result);\n      if (result && result?.lastBufferedHeight === undefined) {\n        result.lastBufferedHeight = Math.min(endBlock, queryEndBlock);\n      }\n      try {\n        this.metadata.end = hexToNumber(response.data.result.blockRange[1]);\n      } catch (e: any) {\n        logger.warn(e, 'Failed to update dictionary metadata from query');\n      }\n\n      return result;\n    } catch (error: any) {\n      logger.error(error, `Dictionary query failed. request: ${JSON.stringify(requestData, null, 2)}`);\n      // Handle the error as needed\n      throw new Error(`Dictionary query failed ${error}`);\n    }\n  }\n\n  queryMapValidByHeight(height: number): boolean {\n    // we can not use map.has method here, has method only return true when value for corresponding key is set\n    // but in BlockHeightMap it need to return any map <= key value, see `getDetails` method\n    try {\n      return !!this.queriesMap?.get(height);\n    } catch (e) {\n      return false;\n    }\n  }\n\n  protected dictionaryValidation(metaData?: DictionaryV2Metadata, startBlockHeight?: number): boolean {\n    if (metaData === undefined || startBlockHeight === undefined) {\n      return false;\n    }\n    this.metadataValid =\n      this.validateChainMeta(metaData) &&\n      startBlockHeight >= this.metadata.start &&\n      startBlockHeight < this.metadata.end;\n    return this.metadataValid;\n  }\n\n  protected validateChainMeta(metaData: DictionaryV2Metadata): boolean {\n    return metaData.genesisHash === this.chainId || metaData.chainId === this.chainId;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/v2/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './types';\nexport * from './dictionaryV2';\n"
  },
  {
    "path": "packages/node-core/src/indexer/dictionary/v2/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport interface V2MetadataFilters {\n  [key: string]: string[];\n}\n\nexport interface FieldSelector {\n  [key: string]: boolean | FieldSelector;\n}\n\nexport interface RawDictionaryResponseData<RFB> {\n  blocks: RFB[]; //raw fat blocks\n  blockRange: [string, string]; // Hex encoded numbers\n  genesisHash: string;\n}\n\nexport interface DictionaryV2Metadata {\n  start: number;\n  end: number;\n  genesisHash: string;\n  chainId: string;\n  filters: V2MetadataFilters;\n  supported: string[];\n}\n\nexport type DictionaryV2QueryEntry = Record<string, unknown>;\n"
  },
  {
    "path": "packages/node-core/src/indexer/ds-processor.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport {BaseCustomDataSource, BaseDataSource} from '@subql/types-core';\nimport {GraphQLSchema} from 'graphql';\nimport {NodeConfig} from '../configure';\nimport {DsProcessorService} from './ds-processor.service';\nimport {ISubqueryProject} from './types';\n\nfunction getTestProject(extraDataSources: BaseCustomDataSource[]): ISubqueryProject {\n  return {\n    id: 'test',\n    root: path.resolve(__dirname, '../../'),\n    network: {\n      chainId: '0x',\n      endpoint: ['wss://polkadot.api.onfinality.io/public-ws'],\n    },\n    dataSources: [\n      {\n        kind: 'substrate/Jsonfy',\n        processor: {file: 'test/jsonfy.js'},\n        startBlock: 1,\n        mapping: {\n          handlers: [{handler: 'testSandbox', kind: 'substrate/JsonfyEvent'}],\n        },\n      },\n      ...extraDataSources,\n    ] as any,\n    schema: new GraphQLSchema({}),\n    templates: [],\n  } as unknown as ISubqueryProject;\n}\nconst nodeConfig = new NodeConfig({\n  subquery: 'asdf',\n  subqueryName: 'asdf',\n});\n\nfunction isCustomDs(ds: BaseDataSource): ds is BaseCustomDataSource {\n  return ds.kind.startsWith('substrate/');\n}\n\ndescribe('DsProcessorService', () => {\n  let service: DsProcessorService<BaseDataSource>;\n  let project: ISubqueryProject;\n\n  beforeEach(() => {\n    project = getTestProject([]);\n    service = new DsProcessorService(project, {isCustomDs} as any, nodeConfig);\n  });\n\n  it('can validate custom ds', async () => {\n    await expect(service.validateProjectCustomDatasources(project.dataSources)).resolves.not.toThrow();\n  });\n\n  it('can catch an invalid datasource kind', async () => {\n    const badDs: BaseCustomDataSource = {\n      kind: 'substrate/invalid',\n      processor: {file: 'contract-processors/dist/jsonfy.js'},\n      assets: new Map([]),\n      mapping: {\n        file: '',\n        handlers: [],\n      },\n    };\n\n    project = getTestProject([badDs]);\n    service = new DsProcessorService(project, {isCustomDs} as any, nodeConfig);\n\n    await expect(service.validateProjectCustomDatasources(project.dataSources)).rejects.toThrow();\n  });\n\n  it('can run a custom ds processor', () => {\n    const ds = project.dataSources[0];\n\n    if (!isCustomDs(ds)) {\n      throw new Error('Expected custom data source');\n    }\n\n    expect(() => service.getDsProcessor(ds)).not.toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/ds-processor.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {Inject, Injectable} from '@nestjs/common';\nimport {\n  BaseCustomDataSource,\n  SecondLayerHandlerProcessor_0_0_0,\n  SecondLayerHandlerProcessor_1_0_0,\n  BaseDataSource,\n  DsProcessor,\n  IProjectNetworkConfig,\n} from '@subql/types-core';\nimport {VMScript} from 'vm2';\nimport {IBlockchainService} from '../blockchain.service';\nimport {NodeConfig} from '../configure';\nimport {getLogger} from '../logger';\nimport {Sandbox, SandboxOption} from './sandbox';\nimport {ISubqueryProject} from './types';\n\nconst logger = getLogger('ds-sandbox');\n\nfunction isSecondLayerHandlerProcessor_0_0_0<\n  InputKinds extends string | symbol,\n  HandlerInput extends Record<InputKinds, any>,\n  BaseHandlerFilters extends Record<InputKinds, any>,\n  F extends Record<string, unknown>,\n  E,\n  API,\n  DS extends BaseCustomDataSource = BaseCustomDataSource,\n>(\n  processor:\n    | SecondLayerHandlerProcessor_0_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API>\n    | SecondLayerHandlerProcessor_1_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API>\n): processor is SecondLayerHandlerProcessor_0_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API> {\n  // Existing datasource processors had no concept of specVersion, therefore undefined is equivalent to 0.0.0\n  return processor.specVersion === undefined;\n}\n\nfunction isSecondLayerHandlerProcessor_1_0_0<\n  InputKinds extends string | symbol,\n  HandlerInput extends Record<InputKinds, any>,\n  BaseHandlerFilters extends Record<InputKinds, any>,\n  F extends Record<string, unknown>,\n  E,\n  API,\n  DS extends BaseCustomDataSource = BaseCustomDataSource,\n>(\n  processor:\n    | SecondLayerHandlerProcessor_0_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API>\n    | SecondLayerHandlerProcessor_1_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API>\n): processor is SecondLayerHandlerProcessor_1_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API> {\n  return processor.specVersion === '1.0.0';\n}\n\nexport function asSecondLayerHandlerProcessor_1_0_0<\n  InputKinds extends string | symbol,\n  HandlerInput extends Record<InputKinds, any>,\n  BaseHandlerFilters extends Record<InputKinds, any>,\n  F extends Record<string, unknown>,\n  E,\n  API,\n  DS extends BaseCustomDataSource = BaseCustomDataSource,\n>(\n  processor:\n    | SecondLayerHandlerProcessor_0_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API>\n    | SecondLayerHandlerProcessor_1_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API>\n): SecondLayerHandlerProcessor_1_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API> {\n  if (isSecondLayerHandlerProcessor_1_0_0(processor)) {\n    return processor;\n  }\n\n  if (!isSecondLayerHandlerProcessor_0_0_0(processor)) {\n    throw new Error('Unsupported ds processor version');\n  }\n\n  return {\n    ...processor,\n    specVersion: '1.0.0',\n    filterProcessor: (params) => processor.filterProcessor(params.filter, params.input, params.ds),\n    transformer: (params) =>\n      processor.transformer(params.input, params.ds, params.api, params.assets).then((res) => [res]),\n  };\n}\n\nclass DsPluginSandbox<P> extends Sandbox {\n  constructor(option: Omit<SandboxOption, 'store'>, nodeConfig: NodeConfig) {\n    super(\n      option,\n      new VMScript(`module.exports = require('${option.entry}').default;`, path.join(option.root, 'ds_sandbox')),\n      nodeConfig\n    );\n    this.freeze(logger, 'logger');\n  }\n\n  getDsPlugin(): P {\n    return this.run(this.script);\n  }\n}\n\nexport function getDsProcessor<\n  P,\n  DS extends BaseDataSource = BaseDataSource,\n  CDS extends DS & BaseCustomDataSource = DS & BaseCustomDataSource,\n>(\n  ds: CDS,\n  isCustomDs: (ds: any) => boolean,\n  processorCache: Record<string, P>,\n  root: string,\n  chainId: string,\n  nodeConfig: NodeConfig\n): P {\n  if (!isCustomDs(ds)) {\n    throw new Error(`data source is not a custom data source`);\n  }\n  if (!processorCache[ds.processor.file]) {\n    const sandbox = new DsPluginSandbox<P>(\n      {\n        root: root,\n        entry: ds.processor.file,\n        chainId: chainId,\n      },\n      nodeConfig\n    );\n    try {\n      processorCache[ds.processor.file] = sandbox.getDsPlugin();\n    } catch (e: any) {\n      logger.error(e, `not supported ds @${ds.kind}`);\n      throw e;\n    }\n  }\n  return processorCache[ds.processor.file] as unknown as P;\n}\n\n@Injectable()\nexport class DsProcessorService<\n  DS extends BaseDataSource = BaseDataSource,\n  CDS extends DS & BaseCustomDataSource = DS & BaseCustomDataSource,\n  P extends DsProcessor<CDS> = DsProcessor<CDS>,\n> {\n  private processorCache: Record<string, P> = {};\n\n  constructor(\n    @Inject('ISubqueryProject') private readonly project: ISubqueryProject<IProjectNetworkConfig, DS>,\n    @Inject('IBlockchainService') private blockchainService: IBlockchainService<DS, CDS>,\n    private readonly nodeConfig: NodeConfig\n  ) {}\n\n  async validateCustomDs(datasources: CDS[]): Promise<void> {\n    for (const ds of datasources) {\n      const processor = this.getDsProcessor(ds);\n      /* Standard validation applicable to all custom ds and processors */\n      if (ds.kind !== processor.kind) {\n        throw new Error(`ds kind (${ds.kind}) doesnt match processor (${processor.kind})`);\n      }\n\n      for (const handler of ds.mapping.handlers) {\n        if (!(handler.kind in processor.handlerProcessors)) {\n          throw new Error(`ds kind ${handler.kind} not one of ${Object.keys(processor.handlerProcessors).join(', ')}`);\n        }\n      }\n\n      ds.mapping.handlers.map((handler) => processor.handlerProcessors[handler.kind].filterValidator(handler.filter));\n\n      /* Additional processor specific validation */\n      processor.validate(ds, await this.getAssets(ds));\n    }\n  }\n\n  async validateProjectCustomDatasources(dataSources: DS[]): Promise<void> {\n    await this.validateCustomDs(dataSources.filter((ds) => this.blockchainService.isCustomDs(ds)) as unknown as CDS[]);\n  }\n\n  getDsProcessor(ds: CDS): P {\n    if (!this.blockchainService.isCustomDs(ds)) {\n      throw new Error(`data source is not a custom data source`);\n    }\n    if (!this.processorCache[ds.processor.file]) {\n      const sandbox = new DsPluginSandbox<P>(\n        {\n          root: this.project.root,\n          entry: ds.processor.file,\n          chainId: this.project.network.chainId,\n        },\n        this.nodeConfig\n      );\n      try {\n        this.processorCache[ds.processor.file] = sandbox.getDsPlugin();\n      } catch (e: any) {\n        logger.error(e, `not supported ds @${ds.kind}`);\n        throw e;\n      }\n    }\n    return this.processorCache[ds.processor.file] as unknown as P;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getAssets(ds: CDS): Promise<Record<string, string>> {\n    if (!this.blockchainService.isCustomDs(ds)) {\n      throw new Error(`data source is not a custom data source`);\n    }\n\n    if (!ds.assets) {\n      return {};\n    }\n\n    const res: Record<string, string> = {};\n\n    for (const [name, {file}] of ds.assets) {\n      // TODO update with https://github.com/subquery/subql/pull/511\n      try {\n        res[name] = fs.readFileSync(file, {\n          encoding: 'utf8',\n        });\n      } catch (e) {\n        logger.error(`Failed to load datasource asset ${file}`);\n        throw e;\n      }\n    }\n\n    return res;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/dynamic-ds.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BaseDataSource} from '@subql/types-core';\nimport {IBlockchainService} from '../blockchain.service';\nimport {DatasourceParams, DynamicDsService} from './dynamic-ds.service';\nimport {CacheMetadataModel} from './storeModelProvider';\nimport {ISubqueryProject} from './types';\n\nclass TestDynamicDsService extends DynamicDsService<BaseDataSource, ISubqueryProject> {\n  constructor(project: ISubqueryProject) {\n    super(project, {\n      updateDynamicDs: () => Promise.resolve(undefined), // Return the same value\n    } as unknown as IBlockchainService);\n  }\n\n  // Make it public\n  getTemplate(templateName: string, startBlock?: number): BaseDataSource {\n    return super.getTemplate(templateName, startBlock);\n  }\n}\n\nconst testParam1 = {templateName: 'Test', startBlock: 1};\nconst testParam2 = {templateName: 'Test', startBlock: 2};\nconst testParam3 = {templateName: 'Test', startBlock: 3};\nconst testParam4 = {templateName: 'Test', startBlock: 4};\n\nconst mockMetadata = (initData: DatasourceParams[] = []) => {\n  let datasourceParams: DatasourceParams[] = initData;\n\n  return {\n    set: (key: string, value: any) => {\n      datasourceParams = value;\n    },\n    find: (key: string) => Promise.resolve([...datasourceParams]), // Clone here to make source immutable\n    setNewDynamicDatasource: (params: DatasourceParams) => datasourceParams.push(params),\n  } as unknown as CacheMetadataModel;\n};\n\ndescribe('DynamicDsService', () => {\n  let service: TestDynamicDsService;\n  const project = {\n    templates: [{name: 'Test'}],\n  } as any as ISubqueryProject;\n\n  beforeEach(() => {\n    service = new TestDynamicDsService(project);\n  });\n\n  it('loads all datasources and params when init', async () => {\n    await service.init(mockMetadata([testParam1]));\n\n    await expect(service.getDynamicDatasources()).resolves.toEqual([{startBlock: testParam1.startBlock}]);\n\n    expect((service as any)._datasourceParams).toEqual([testParam1]);\n  });\n\n  it('keeps reference to added dynamic datasources', async () => {\n    const meta = mockMetadata([testParam1]);\n    await service.init(meta);\n\n    await service.createDynamicDatasource(testParam2);\n\n    expect((service as any)._datasourceParams).toEqual([testParam1, testParam2]);\n\n    await expect(meta.find('dynamicDatasources')).resolves.toEqual([testParam1, testParam2]);\n    await expect(service.getDynamicDatasources()).resolves.toEqual([\n      {startBlock: testParam1.startBlock},\n      {startBlock: testParam2.startBlock},\n    ]);\n  });\n\n  it('resets dynamic datasources', async () => {\n    const meta = mockMetadata([testParam1, testParam2, testParam3, testParam4]);\n    await service.init(meta);\n\n    await service.resetDynamicDatasource(2, null as any);\n\n    await expect(meta.find('dynamicDatasources')).resolves.toEqual([testParam1, testParam2]);\n    await expect(service.getDynamicDatasources()).resolves.toEqual([\n      {startBlock: testParam1.startBlock},\n      {startBlock: testParam2.startBlock},\n    ]);\n  });\n\n  it('getDynamicDatasources with force reloads from metadata', async () => {\n    const meta = mockMetadata([testParam1, testParam2]);\n    await service.init(meta);\n\n    await meta.set('dynamicDatasources', [testParam1, testParam2, testParam3, testParam4]);\n\n    await expect(service.getDynamicDatasources()).resolves.toEqual([\n      {startBlock: testParam1.startBlock},\n      {startBlock: testParam2.startBlock},\n    ]);\n    await expect(service.getDynamicDatasources(true)).resolves.toEqual([\n      {startBlock: testParam1.startBlock},\n      {startBlock: testParam2.startBlock},\n      {startBlock: testParam3.startBlock},\n      {startBlock: testParam4.startBlock},\n    ]);\n    await expect(service.getDynamicDatasources()).resolves.toEqual([\n      {startBlock: testParam1.startBlock},\n      {startBlock: testParam2.startBlock},\n      {startBlock: testParam3.startBlock},\n      {startBlock: testParam4.startBlock},\n    ]);\n  });\n\n  it('can find a template and cannot mutate the template', () => {\n    const template1 = service.getTemplate('Test', 1);\n    const template2 = service.getTemplate('Test', 2);\n\n    expect(template1.startBlock).toEqual(1);\n    expect((template1 as any).name).toBeUndefined();\n\n    expect(template2.startBlock).toEqual(2);\n    expect((template2 as any).name).toBeUndefined();\n\n    expect(project.templates![0]).toEqual({name: 'Test'});\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/dynamic-ds.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Inject, Injectable} from '@nestjs/common';\nimport {BaseCustomDataSource, BaseDataSource, BaseTemplateDataSource} from '@subql/types-core';\nimport {Transaction} from '@subql/x-sequelize';\nimport {cloneDeep} from 'lodash';\nimport {IBlockchainService} from '../blockchain.service';\nimport {getLogger} from '../logger';\nimport {exitWithError} from '../process';\nimport {IMetadata} from './storeModelProvider';\nimport {ISubqueryProject} from './types';\n\nconst logger = getLogger('dynamic-ds');\n\nconst METADATA_KEY = 'dynamicDatasources';\n\nexport interface DatasourceParams {\n  templateName: string;\n  args?: Record<string, unknown>;\n  startBlock: number;\n}\n\nexport interface IDynamicDsService<DS> {\n  dynamicDatasources: DS[];\n  createDynamicDatasource(params: DatasourceParams): Promise<DS>;\n  getDynamicDatasources(forceReload?: boolean): Promise<DS[]>;\n}\n\n@Injectable()\nexport class DynamicDsService<DS extends BaseDataSource = BaseDataSource, P extends ISubqueryProject = ISubqueryProject>\n  implements IDynamicDsService<DS>\n{\n  private _metadata?: IMetadata;\n  private _datasources?: DS[];\n  private _datasourceParams?: DatasourceParams[];\n\n  constructor(\n    @Inject('ISubqueryProject') private readonly project: P,\n    @Inject('IBlockchainService') private readonly blockchainService: IBlockchainService<DS>\n  ) {}\n\n  async init(metadata: IMetadata): Promise<void> {\n    this._metadata = metadata;\n\n    await this.getDynamicDatasources(true);\n  }\n\n  get dynamicDatasources(): DS[] {\n    if (!this._datasources) {\n      throw new Error('DynamicDsService has not been initialized');\n    }\n    return this._datasources;\n  }\n\n  private get metadata(): IMetadata {\n    if (!this._metadata) {\n      throw new Error('DynamicDsService has not been initialized');\n    }\n    return this._metadata;\n  }\n\n  /**\n   * remove dynamic ds that is created after this height\n   * @param targetHeight this height is exclusive\n   */\n  async resetDynamicDatasource(targetHeight: number, tx: Transaction): Promise<void> {\n    if (this._datasourceParams && this._datasourceParams.length !== 0) {\n      const filteredDs = this._datasourceParams.filter((ds) => ds.startBlock <= targetHeight);\n      await this.metadata.set(METADATA_KEY, filteredDs, tx);\n      await this.loadDynamicDatasources(filteredDs);\n    }\n  }\n\n  // TODO make tx required\n  async createDynamicDatasource(params: DatasourceParams, tx?: Transaction): Promise<DS> {\n    try {\n      const ds = await this.getDatasource(params);\n      await this.metadata.setNewDynamicDatasource(params, tx);\n\n      logger.info(`Created new dynamic datasource from template: \"${params.templateName}\"`);\n\n      if (!this._datasources) this._datasources = [];\n      if (!this._datasourceParams) this._datasourceParams = [];\n      this._datasources.push(ds);\n      this._datasourceParams.push(params);\n\n      return ds;\n    } catch (e: any) {\n      exitWithError(new Error(`Failed to create dynamic ds`, {cause: e}), logger);\n    }\n  }\n\n  // Not force only seems to be used for project changes\n  async getDynamicDatasources(forceReload?: boolean): Promise<DS[]> {\n    // Workers should not cache this result in order to keep in sync\n    if (!this._datasources || forceReload) {\n      const params = (await this.metadata.find(METADATA_KEY)) ?? [];\n\n      await this.loadDynamicDatasources(params);\n    }\n\n    // loadDynamicDatasources ensures this is set\n    return this._datasources as DS[];\n  }\n\n  private async loadDynamicDatasources(params: DatasourceParams[]): Promise<void> {\n    const dataSources = await Promise.all(params.map((params) => this.getDatasource(params)));\n\n    logger.info(`Loaded ${dataSources.length} dynamic datasources`);\n    this._datasourceParams = params;\n    this._datasources = dataSources;\n  }\n\n  /**\n   * Finds the template based on name and gives a cloned version that can be used to construct a datasource.\n   *\n   * This will throw if the template cannot be found by name.\n   *\n   * Inserts the startBlock into the template.\n   * */\n  protected getTemplate(templateName: string, startBlock?: number): DS {\n    const t = (this.project.templates ?? []).find((t) => t.name === templateName);\n    if (!t) {\n      throw new Error(`Unable to find matching template in project for name: \"${templateName}\"`);\n    }\n    const {name, ...template} = cloneDeep(t);\n    return {...template, startBlock} as DS;\n  }\n\n  private async getDatasource(params: DatasourceParams): Promise<DS> {\n    const dsObj = this.getTemplate(params.templateName, params.startBlock);\n\n    try {\n      await this.blockchainService.updateDynamicDs(params, dsObj);\n\n      return dsObj;\n    } catch (e) {\n      throw new Error(`Unable to create dynamic datasource.\\n ${(e as any).message}`);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/entities/GlobalData.entity.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BuildOptions, DataTypes, Model, Sequelize} from '@subql/x-sequelize';\n\nexport enum MultiChainRewindStatus {\n  /** Indicates a normal state. Each chain needs to register before starting to sync blocks. */\n  Normal = 'normal',\n  /** The rewind task has been completed. The rollback height can be determined using rewindTimestamp. */\n  Complete = 'complete',\n  /** Unprocessed rewind task. The rollback height can be determined using rewindTimestamp. */\n  Incomplete = 'incomplete',\n}\n\nexport interface GlobalData {\n  chainId: string;\n  rewindTimestamp: Date;\n  status: MultiChainRewindStatus;\n  initiator: boolean;\n}\n\ninterface GlobalDataEntity extends Model<GlobalData>, GlobalData {}\n\nexport type GlobalDataRepo = typeof Model & {\n  new (values?: unknown, options?: BuildOptions): GlobalDataEntity;\n};\n\nexport function GlobalDataFactory(sequelize: Sequelize, schema: string): GlobalDataRepo {\n  const tableName = '_global';\n\n  return <GlobalDataRepo>sequelize.define(\n    tableName,\n    {\n      chainId: {\n        type: DataTypes.STRING,\n        primaryKey: true,\n      },\n      rewindTimestamp: {\n        type: DataTypes.DATE,\n        defaultValue: new Date(0),\n      },\n      status: {\n        type: DataTypes.ENUM,\n        values: [MultiChainRewindStatus.Complete, MultiChainRewindStatus.Incomplete],\n      },\n      initiator: {\n        type: DataTypes.BOOLEAN,\n        defaultValue: false,\n      },\n    },\n    {freezeTableName: true, schema: schema}\n  );\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/entities/Metadata.entity.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {getMetadataTableName} from '@subql/utils';\nimport {BuildOptions, DataTypes, Model, QueryTypes, Sequelize} from '@subql/x-sequelize';\nimport {DatasourceParams} from '../dynamic-ds.service';\nimport {HistoricalMode} from '../types';\n\nexport interface MetadataKeys {\n  chain: string;\n  genesisHash: string;\n  startHeight: number;\n  historicalStateEnabled: HistoricalMode;\n  indexerNodeVersion: string;\n  lastProcessedHeight: number;\n  lastProcessedBlockTimestamp: number; // The unix timestamp of the block in MS\n  lastProcessedTimestamp: string;\n  processedBlockCount: number;\n  blockOffset: number;\n  runnerNode: string;\n  runnerNodeVersion: string;\n  runnerQuery: string;\n  runnerQueryVersion: string;\n  specName: string;\n  lastFinalizedVerifiedHeight: number;\n  indexerHealthy: boolean;\n  targetHeight: number;\n  dynamicDatasources: DatasourceParams[];\n  unfinalizedBlocks: string;\n  schemaMigrationCount: number;\n  deployments: string;\n  lastCreatedPoiHeight: number;\n  latestSyncedPoiHeight: number;\n  dbSize: bigint;\n  latestPoiWithMmr: string; // Deprecated, keep for poi migration\n  lastPoiHeight: string; // Deprecated, keep for poi migration\n}\n\nexport interface Metadata {\n  key: keyof MetadataKeys;\n  value: MetadataKeys[keyof MetadataKeys];\n}\n\ninterface MetadataEntity extends Model<Metadata>, Metadata {}\n\nexport type MetadataRepo = typeof Model & {\n  new (values?: unknown, options?: BuildOptions): MetadataEntity;\n};\n\nasync function checkSchemaMetadata(sequelize: Sequelize, schema: string, chainId: string): Promise<boolean> {\n  try {\n    const res = await sequelize.query<Metadata>(`SELECT * FROM \"${schema}\"._metadata WHERE key = 'genesisHash'`, {\n      type: QueryTypes.SELECT,\n    });\n    return res[0]?.value === chainId;\n  } catch (e) {\n    return false;\n  }\n}\n\nexport async function MetadataFactory(\n  sequelize: Sequelize,\n  schema: string,\n  multichain: boolean,\n  chainId: string\n): Promise<MetadataRepo> {\n  let tableName = '_metadata';\n\n  if (multichain) {\n    const singularMetadata = await checkSchemaMetadata(sequelize, schema, chainId);\n\n    if (singularMetadata) {\n      throw new Error(\n        '\"_metadata\" entry found, for multichain project metadata must match _metadata_[chainId] syntax, please clear schema and reindex with --multichain.'\n      );\n    }\n\n    tableName = getMetadataTableName(chainId);\n  }\n\n  return <MetadataRepo>sequelize.define(\n    tableName,\n    {\n      key: {\n        type: DataTypes.STRING,\n        primaryKey: true,\n      },\n      value: {\n        type: DataTypes.JSONB,\n      },\n    },\n    {freezeTableName: true, schema: schema}\n  );\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/entities/Poi.entity.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {HexString} from '@polkadot/util/types';\nimport {BuildOptions, DataTypes, Model, Op, Sequelize} from '@subql/x-sequelize';\n\nexport interface ProofOfIndex {\n  id: number; //blockHeight\n  chainBlockHash: Uint8Array | null;\n  hash: Uint8Array | undefined;\n  parentHash: Uint8Array | undefined;\n  operationHashRoot: Uint8Array | null;\n  projectId?: string;\n}\n\nexport interface SyncedProofOfIndex extends ProofOfIndex {\n  hash: Uint8Array;\n  parentHash: Uint8Array;\n}\n\nexport interface ProofOfIndexHuman\n  extends Omit<ProofOfIndex, 'chainBlockHash' | 'hash' | 'parentHash' | 'operationHashRoot'> {\n  chainBlockHash: HexString | undefined;\n  hash: HexString | undefined;\n  parentHash: HexString | undefined;\n  operationHashRoot: HexString | undefined;\n}\n\nexport interface PoiModel extends Model<ProofOfIndex>, ProofOfIndex {}\n\nexport type PoiRepo = typeof Model & {\n  new (values?: unknown, options?: BuildOptions): PoiModel;\n};\n// Project Id is deprecated\nexport function PoiFactoryDeprecate(sequelize: Sequelize, schema: string): PoiRepo {\n  return <PoiRepo>sequelize.define(\n    `_poi`,\n    {\n      id: {\n        type: DataTypes.INTEGER,\n        primaryKey: true,\n      },\n      chainBlockHash: {\n        type: DataTypes.BLOB,\n        allowNull: false,\n        unique: true,\n      },\n      hash: {\n        type: DataTypes.BLOB,\n        allowNull: false,\n        unique: true,\n      },\n      parentHash: {\n        type: DataTypes.BLOB,\n        allowNull: false,\n        unique: true,\n      },\n      operationHashRoot: {\n        type: DataTypes.BLOB,\n        allowNull: false,\n      },\n      projectId: {\n        type: DataTypes.STRING,\n        allowNull: false,\n        defaultValue: '0',\n      },\n    },\n    {\n      freezeTableName: true,\n      schema: schema,\n      indexes: [{fields: ['hash']}],\n    }\n  );\n}\n\nexport function PoiFactory(sequelize: Sequelize, schema: string): PoiRepo {\n  return <PoiRepo>sequelize.define(\n    `_poi`,\n    {\n      id: {\n        type: DataTypes.INTEGER,\n        primaryKey: true,\n      },\n      chainBlockHash: {\n        type: DataTypes.BLOB,\n        allowNull: true,\n        unique: true,\n      },\n      hash: {\n        type: DataTypes.BLOB,\n        allowNull: true,\n        unique: true,\n      },\n      parentHash: {\n        type: DataTypes.BLOB,\n        allowNull: true,\n        unique: true,\n      },\n      operationHashRoot: {\n        type: DataTypes.BLOB,\n        allowNull: true,\n      },\n    },\n    {\n      freezeTableName: true,\n      schema: schema,\n    }\n  );\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/entities/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './Poi.entity';\nexport * from './Metadata.entity';\nexport * from './GlobalData.entity';\n"
  },
  {
    "path": "packages/node-core/src/indexer/fetch.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {SchedulerRegistry} from '@nestjs/schedule';\nimport {BaseCustomDataSource, BaseDataSource, BaseHandler, BaseMapping, DictionaryQueryEntry} from '@subql/types-core';\nimport {\n  UnfinalizedBlocksService,\n  BlockDispatcher,\n  delay,\n  Header,\n  IBlock,\n  IBlockDispatcher,\n  IProjectService,\n  NodeConfig,\n  IBlockchainService,\n  ISubqueryProject,\n  DatasourceParams,\n  IBaseIndexerWorker,\n  BypassBlocks,\n  MultiChainRewindService,\n  MultiChainRewindStatus,\n  reindex,\n  getLogger,\n} from '../';\nimport {BlockHeightMap} from '../utils/blockHeightMap';\nimport {DictionaryService} from './dictionary/dictionary.service';\nimport {FetchService} from './fetch.service';\n\nconst CHAIN_INTERVAL = 100; // 100ms\n\nclass TestFetchService extends FetchService<BaseDataSource, IBlockDispatcher<any>, any> {\n  setBypassBlocks(blocks: BypassBlocks) {\n    this.projectService.bypassBlocks = blocks;\n  }\n\n  protected buildDictionaryQueryEntries(\n    dataSources: BaseDataSource<BaseHandler<any>, BaseMapping<BaseHandler<any>>>[]\n  ): DictionaryQueryEntry[] {\n    return [];\n  }\n\n  protected getModulos(dataSources: BaseDataSource[]): number[] {\n    // This is mocks get modulos, checkes every handler\n    const modulos: number[] = [];\n    for (const ds of dataSources) {\n      for (const handler of ds.mapping.handlers) {\n        if (handler.filter && handler.filter.modulo) {\n          modulos.push(handler.filter.modulo);\n        }\n      }\n    }\n\n    return modulos;\n  }\n\n  // Only used in the test to mock `getModulos` outputs\n  mockGetModulos(numbers: number[]): void {\n    this.getModulos = () => numbers;\n  }\n\n  mockDsMap(blockHeightMap: BlockHeightMap<any>): void {\n    this.projectService.getDataSourcesMap = jest.fn(() => blockHeightMap);\n  }\n}\n\nclass TestBlockchainService implements IBlockchainService {\n  finalizedHeight = 1000;\n  bestHeight = 20;\n  blockHandlerKind = '';\n  packageVersion = '1.0.0';\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  fetchBlocks(blockNums: number[]): Promise<IBlock<any>[]> {\n    throw new Error('Method not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  fetchBlockWorker(\n    worker: IBaseIndexerWorker,\n    blockNum: number,\n    context: {workers: IBaseIndexerWorker[]}\n  ): Promise<Header> {\n    throw new Error('Method not implemented.');\n  }\n  async getFinalizedHeader(): Promise<Header> {\n    return Promise.resolve({\n      blockHeight: this.finalizedHeight,\n      blockHash: '0xxx',\n      parentHash: '0xxx',\n      timestamp: new Date(),\n    });\n  }\n  async getBestHeight(): Promise<number> {\n    return Promise.resolve(this.bestHeight);\n  }\n  async getChainInterval(): Promise<number> {\n    return Promise.resolve(CHAIN_INTERVAL);\n  }\n  getBlockSize(block: IBlock): number {\n    throw new Error('Not implemented');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getHeaderForHash(hash: string): Promise<Header> {\n    throw new Error('Method not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getHeaderForHeight(height: number): Promise<Header> {\n    throw new Error('Method not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  updateDynamicDs(\n    params: DatasourceParams,\n    template: BaseDataSource | (BaseCustomDataSource & BaseDataSource)\n  ): Promise<void> {\n    throw new Error('Method not implemented.');\n  }\n  isCustomDs(x: BaseDataSource | (BaseCustomDataSource & BaseDataSource)): x is BaseCustomDataSource {\n    throw new Error('Method not implemented.');\n  }\n  isRuntimeDs(x: BaseDataSource | (BaseCustomDataSource & BaseDataSource)): x is BaseDataSource {\n    throw new Error('Method not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getSafeApi(block: any): Promise<any> {\n    throw new Error('Method not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  onProjectChange(project: ISubqueryProject): Promise<void> | void {\n    throw new Error('Method not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getBlockTimestamp(height: number): Promise<Date> {\n    throw new Error('Method not implemented.');\n  }\n\n  async getRequiredHeaderForHeight(height: number): Promise<Header & {timestamp: Date}> {\n    return (await this.getHeaderForHeight(height)) as any;\n  }\n}\n\nconst nodeConfig = new NodeConfig({\n  subquery: '',\n  batchSize: 10,\n  unfinalizedBlocks: false,\n  networkDictionary: [''],\n});\n\nconst mockDs: BaseDataSource = {\n  kind: 'mock/DataSource',\n  startBlock: 1,\n  mapping: {\n    file: '',\n    handlers: [\n      {\n        kind: 'mock/Handler',\n        handler: 'mockFunction',\n      },\n    ],\n  },\n};\n\nfunction mockModuloDs(startBlock: number, endBlock: number, modulo: number): BaseDataSource {\n  return {\n    kind: 'mock/DataSource',\n    startBlock: startBlock,\n    endBlock: endBlock,\n    mapping: {\n      file: '',\n      handlers: [\n        {\n          kind: 'mock/Handler',\n          handler: 'mockFunction',\n          filter: {modulo: modulo},\n        },\n      ],\n    },\n  };\n}\n\nconst getDictionaryService = () =>\n  ({\n    useDictionary: () => {\n      return false;\n    },\n    findDictionary: () => {\n      /* TODO*/\n    },\n    buildDictionaryEntryMap: () => {\n      /* TODO*/\n    },\n    initValidation: () => {\n      /* TODO */\n    },\n    scopedDictionaryEntries: () => {\n      /* TODO */\n    },\n    initDictionaries: () => {\n      /* TODO */\n    },\n  }) as any as DictionaryService<any, any>;\n\nconst getBlockDispatcher = () => {\n  const inst = {\n    init: (fn: any) => Promise.resolve(),\n    latestBufferedHeight: 0,\n    batchSize: 10,\n    freeSize: 10,\n    enqueueBlocks: (heights: number[], latestBufferHeight: number) => {\n      (inst as any).freeSize = inst.freeSize - heights.length;\n      inst.latestBufferedHeight = heights.length ? heights[heights.length - 1] : latestBufferHeight;\n    },\n    flushQueue: (height: number) => {\n      /* TODO */\n    },\n  } as BlockDispatcher<any, any>;\n\n  return inst;\n};\n\njest.mock('../utils/promise', () => {\n  const original = jest.requireActual('../utils/promise');\n  return {\n    ...original,\n    delay: jest.fn(original.delay),\n  };\n});\n\ndescribe('Fetch Service', () => {\n  let fetchService: TestFetchService;\n  let blockDispatcher: IBlockDispatcher<any>;\n  let dictionaryService: DictionaryService<any, any>;\n  let dataSources: BaseDataSource[];\n  let unfinalizedBlocksService: UnfinalizedBlocksService<any>;\n  let blockchainService: TestBlockchainService;\n  const multichainRewindService: MultiChainRewindService = {} as MultiChainRewindService;\n  let projectService: IProjectService<any>;\n\n  let spyOnEnqueueSequential: jest.SpyInstance<\n    void | Promise<void>,\n    [startBlockHeight: number, scaledBatchSize: number, latestHeight: number]\n  >;\n  let enqueueBlocksSpy: jest.SpyInstance<\n    void | Promise<void>,\n    [heights: (number | IBlock<any>)[], lastBufferedHeight: number]\n  >;\n\n  beforeEach(() => {\n    dataSources = [mockDs];\n\n    const eventEmitter = new EventEmitter2();\n    const schedulerRegistry = new SchedulerRegistry();\n\n    projectService = {\n      getStartBlockFromDataSources: jest.fn(() => Math.min(...dataSources.map((ds) => ds.startBlock ?? 0))),\n      getAllDataSources: jest.fn(() => dataSources),\n      getDataSourcesMap: jest.fn(() => {\n        // XXX this doesn't consider end blocks\n        const x = new Map();\n        dataSources.map((ds, idx, dss) => {\n          x.set(\n            ds.startBlock ?? 0,\n            dss.filter((d) => (d.startBlock ?? 0) <= (ds.startBlock ?? 0))\n          );\n        });\n        return new BlockHeightMap(x);\n      }),\n      bypassBlocks: [],\n      reindex: jest.fn(),\n    } as any as IProjectService<any>;\n\n    blockDispatcher = getBlockDispatcher();\n    dictionaryService = getDictionaryService();\n    blockchainService = new TestBlockchainService();\n    unfinalizedBlocksService = {\n      registerFinalizedBlock: jest.fn(),\n    } as unknown as UnfinalizedBlocksService;\n\n    fetchService = new TestFetchService(\n      nodeConfig,\n      projectService,\n      blockDispatcher,\n      dictionaryService,\n      eventEmitter,\n      schedulerRegistry,\n      unfinalizedBlocksService,\n      {\n        metadata: {\n          set: jest.fn(),\n        },\n      } as any,\n      blockchainService,\n      multichainRewindService\n    );\n\n    spyOnEnqueueSequential = jest.spyOn(fetchService as any, 'enqueueSequential') as any;\n    enqueueBlocksSpy = jest.spyOn(blockDispatcher, 'enqueueBlocks');\n  });\n\n  const enableDictionary = () => {\n    // Mock the remainder of dictionary service so it works\n    (dictionaryService as any).useDictionary = () => jest.fn(() => true);\n    // dictionaryService.queriesMap = new BlockHeightMap(new Map([[1, [{entity: 'mock', conditions: []}]]]));\n    (dictionaryService as any).getDictionary = () =>\n      jest.fn(() => {\n        return {\n          queryMapValidByHeight: () => true,\n          startHeight: 1,\n          getQueryEndBlock: () => 1000,\n        };\n      });\n    dictionaryService.scopedDictionaryEntries = (start, end, batch) => {\n      return Promise.resolve({\n        batchBlocks: [2, 4, 6, 8, 10],\n        queryEndBlock: end,\n        _metadata: {\n          lastProcessedHeight: 1000,\n        },\n\n        lastBufferedHeight: 1000,\n      });\n    };\n  };\n\n  const moduloBlockHeightMap = new BlockHeightMap(\n    new Map([\n      [1, [{...mockModuloDs(1, 100, 20), startBlock: 1, endBlock: 100}]],\n      [\n        101, // empty gap for discontinuous block\n        [],\n      ],\n      [201, [{...mockModuloDs(201, 500, 30), startBlock: 201, endBlock: 500}]],\n      // to infinite\n      [500, [{...mockModuloDs(500, Number.MAX_SAFE_INTEGER, 99), startBlock: 500}]],\n      // multiple ds\n      [\n        600,\n        [\n          {...mockModuloDs(500, 800, 99), startBlock: 600, endBlock: 800},\n          {...mockModuloDs(700, Number.MAX_SAFE_INTEGER, 101), startBlock: 700},\n        ],\n      ],\n    ])\n  );\n\n  afterEach(() => {\n    fetchService.onApplicationShutdown();\n    jest.clearAllMocks();\n  });\n\n  it('adds bypassBlocks for empty datasources', async () => {\n    fetchService.mockDsMap(\n      new BlockHeightMap(\n        new Map([\n          [\n            1,\n            [\n              {...mockDs, startBlock: 1, endBlock: 300},\n              {...mockDs, startBlock: 1, endBlock: 100},\n            ],\n          ],\n          [\n            10,\n            [\n              {...mockDs, startBlock: 1, endBlock: 300},\n              {...mockDs, startBlock: 1, endBlock: 100},\n              {...mockDs, startBlock: 10, endBlock: 20},\n            ],\n          ],\n          [\n            21,\n            [\n              {...mockDs, startBlock: 1, endBlock: 300},\n              {...mockDs, startBlock: 1, endBlock: 100},\n            ],\n          ],\n          [\n            50,\n            [\n              {...mockDs, startBlock: 1, endBlock: 300},\n              {...mockDs, startBlock: 1, endBlock: 100},\n              {...mockDs, startBlock: 50, endBlock: 200},\n            ],\n          ],\n          [\n            101,\n            [\n              {...mockDs, startBlock: 1, endBlock: 300},\n              {...mockDs, startBlock: 50, endBlock: 200},\n            ],\n          ],\n          [201, [{...mockDs, startBlock: 1, endBlock: 300}]],\n          [301, []],\n          [500, [{...mockDs, startBlock: 500}]],\n        ])\n      )\n    );\n\n    await fetchService.init(1);\n\n    expect((fetchService as any).getDatasourceBypassBlocks()).toEqual([`301-499`]);\n  });\n\n  it('checks chain heads at an interval', async () => {\n    const finalizedSpy = jest.spyOn(blockchainService, 'getFinalizedHeader');\n    const bestSpy = jest.spyOn(blockchainService, 'getBestHeight');\n\n    await fetchService.init(1);\n\n    // Initial calls within init\n    expect(finalizedSpy).toHaveBeenCalledTimes(1);\n    expect(bestSpy).toHaveBeenCalledTimes(1);\n\n    await delay((CHAIN_INTERVAL / 1000) * 1.5); // Convert to seconds then half a block interval off\n\n    expect(finalizedSpy).toHaveBeenCalledTimes(2);\n    expect(bestSpy).toHaveBeenCalledTimes(2);\n\n    await expect(blockchainService.getFinalizedHeader()).resolves.toMatchObject({\n      blockHeight: blockchainService.finalizedHeight,\n      blockHash: '0xxx',\n      parentHash: '0xxx',\n    });\n  });\n\n  it('enqueues blocks WITHOUT dictionary', async () => {\n    const dictionarySpy = jest.spyOn(dictionaryService, 'scopedDictionaryEntries');\n\n    await fetchService.init(1);\n\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10);\n    expect(dictionarySpy).toHaveReturnedWith(undefined); // Dictionary not used\n  });\n\n  it('enqueues blocks WITH valid dictionary results', async () => {\n    enableDictionary();\n    const dictionarySpy = jest.spyOn(dictionaryService, 'scopedDictionaryEntries');\n    await fetchService.init(1);\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([2, 4, 6, 8, 10], 10);\n    expect(dictionarySpy).toHaveBeenCalled();\n  });\n\n  it('updates the last processed height if the dictionary result is empty', async () => {\n    enableDictionary();\n    dictionaryService.scopedDictionaryEntries = (start, end, batch) => {\n      return Promise.resolve({\n        batchBlocks: [],\n        queryEndBlock: end,\n        _metadata: {\n          lastProcessedHeight: 1000,\n        } as any,\n        lastBufferedHeight: 1000,\n      });\n    };\n\n    const dictionarySpy = jest.spyOn(dictionaryService, 'scopedDictionaryEntries');\n\n    await fetchService.init(1);\n\n    // Update the last processed height but not enqueue blocks\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([], 1000);\n\n    // Wait and see that it has only called the dictionary once, it should stop using it after that\n    await delay(2);\n    expect(dictionarySpy).toHaveBeenCalledTimes(1);\n  });\n\n  it('waits for blockDispatcher to have capacity', async () => {\n    blockDispatcher.freeSize = 0;\n\n    await fetchService.init(1);\n\n    // Should not be called as there is capacity\n    expect(enqueueBlocksSpy).not.toHaveBeenCalled();\n\n    await delay(1);\n    // Should still not be called but should be checking\n    expect(enqueueBlocksSpy).not.toHaveBeenCalled();\n\n    // Add free space and expect blocks to be enqueued\n    blockDispatcher.freeSize = 10;\n\n    // Loop waits 1s before checking for free space\n    await delay(1);\n    expect(enqueueBlocksSpy).toHaveBeenCalled();\n  });\n\n  it('enqueues modulo blocks WITHOUT dictionary', async () => {\n    // Set modulos to every 3rd block. We only have 1 data source\n    fetchService.mockGetModulos([3]);\n\n    const dictionarySpy = jest.spyOn(dictionaryService, 'scopedDictionaryEntries');\n\n    await fetchService.init(1);\n    // expect((fetchService as any).useDictionary).toBeFalsy();\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([3, 6, 9, 12, 15, 18, 21, 24, 27, 30], 30);\n    expect(dictionarySpy).toHaveReturnedWith(undefined); // Dictionary not used\n  });\n\n  it('enqueues modulo blocks WITH dictionary', async () => {\n    fetchService.mockGetModulos([3]);\n    enableDictionary();\n\n    const dictionarySpy = jest.spyOn(dictionaryService, 'scopedDictionaryEntries');\n\n    await fetchService.init(1);\n\n    // This should include dictionary results interleaved with modulo blocks\n    // [2, 4, 6, 8, 10] + [3, 6, 9, 12, 15, 18]. 18 is included because there is a duplicate of 6\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([2, 3, 4, 6, 8, 9, 10, 12, 15, 18], 18);\n    expect(dictionarySpy).not.toHaveReturnedWith(undefined); // Dictionary used\n  });\n\n  it('if useModuloHandlersOnly is false, will enqueue sequentially', async () => {\n    // 2 handlers, modulo filter is mixed with other handler\n    const moduloBlockHeightMap2 = new BlockHeightMap(\n      new Map([\n        [\n          600,\n          [\n            {\n              kind: 'mock/DataSource',\n              startBlock: 600,\n              mapping: {\n                file: '',\n                handlers: [\n                  {\n                    kind: 'mock/BlockHandler',\n                    handler: 'mockFunction',\n                    filter: {modulo: 3},\n                  },\n                  {\n                    kind: 'mock/CallHandler',\n                    handler: 'mockFunction',\n                  },\n                ],\n              },\n            },\n          ],\n        ],\n      ])\n    );\n    fetchService.mockDsMap(moduloBlockHeightMap2);\n    await fetchService.init(600);\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([600, 601, 602, 603, 604, 605, 606, 607, 608, 609], 609);\n  });\n\n  // get modulo blocks with multiple dataSource block heights\n\n  it('enqueue modulo blocks with match height', async () => {\n    fetchService.mockDsMap(moduloBlockHeightMap);\n    await fetchService.init(1);\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([20, 40, 60, 80, 100], 100);\n  });\n\n  it('skip modulo blocks if in that ranges has no data source, it should enqueue nothing', async () => {\n    fetchService.mockDsMap(moduloBlockHeightMap);\n    await fetchService.init(105);\n    // Empty blocks with range end height , 105 + 10 -1\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([], 114);\n  });\n\n  it('enqueue modulo blocks until next block map start', async () => {\n    fetchService.mockDsMap(moduloBlockHeightMap);\n    await fetchService.init(250);\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([270, 300, 330, 360, 390, 420, 450, 480], 480);\n  });\n\n  it('enqueue modulo blocks when ds has no endHeight, end before next blockHeight key', async () => {\n    fetchService.mockDsMap(moduloBlockHeightMap);\n    await fetchService.init(500);\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([594], 594);\n  });\n\n  it('enqueue modulo blocks with mutiple ds modulo filters', async () => {\n    fetchService.mockDsMap(moduloBlockHeightMap);\n    await fetchService.init(600);\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([606, 693, 707, 792, 808, 891, 909, 990], 990);\n  });\n\n  it('update the LatestBufferHeight when modulo blocks full synced', async () => {\n    fetchService.mockGetModulos([20]);\n    blockchainService.finalizedHeight = 55;\n\n    // simulate we have synced to block 50, and modulo is 20, next block to handle suppose be 60,80,100...\n    // we will still enqueue 55 to update LatestBufferHeight\n    await fetchService.init(50);\n    expect(enqueueBlocksSpy).toHaveBeenLastCalledWith([], 55);\n  });\n\n  it('enqueues modulo blocks correctly', async () => {\n    fetchService.mockGetModulos([150]);\n    dataSources = [\n      {\n        kind: 'mock/DataSource',\n        startBlock: 1,\n        mapping: {\n          file: '',\n          handlers: [\n            {\n              kind: 'mock/Handler',\n              handler: 'mockFunction',\n              filter: {},\n            },\n            {\n              kind: 'mock/Handler',\n              handler: 'mockFunction',\n              filter: {\n                modulo: 150,\n              },\n            },\n          ],\n        },\n      },\n    ];\n\n    await fetchService.init(2);\n\n    expect(enqueueBlocksSpy).toHaveBeenLastCalledWith([2, 3, 4, 5, 6, 7, 8, 9, 10, 11], 11);\n  });\n\n  it('when enqueue ds endHeight less than modulo height, should not include any modulo', async () => {\n    dataSources = [\n      {\n        kind: 'mock/DataSource',\n        startBlock: 1,\n        endBlock: 9,\n        mapping: {\n          file: '',\n          handlers: [\n            {\n              kind: 'mock/Handler',\n              handler: 'mockFunction',\n              filter: {},\n            },\n          ],\n        },\n      },\n      {\n        kind: 'mock/DataSource',\n        startBlock: 10,\n        mapping: {\n          file: '',\n          handlers: [\n            {\n              kind: 'mock/Handler',\n              handler: 'mockFunction',\n              filter: {\n                modulo: 150,\n              },\n            },\n          ],\n        },\n      },\n    ];\n    // First ds not found modulo will enqueue block until next ds startHeight -1, so it is 9 here\n    await fetchService.init(2);\n    expect(enqueueBlocksSpy).toHaveBeenLastCalledWith([2, 3, 4, 5, 6, 7, 8, 9], 9);\n  });\n\n  it('enqueues modulo blocks with furture dataSources', async () => {\n    fetchService.mockGetModulos([3]);\n    dataSources.push({...mockDs, startBlock: 20});\n\n    await fetchService.init(1);\n\n    expect((fetchService as any).useDictionary).toBeFalsy();\n    // This should include dictionary results interleaved with modulo blocks\n    // [2, 4, 6, 8, 10] + [3, 6, 9, 12, 15, 18]. 18 is included because there is a duplicate of 6\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([3, 6, 9, 12, 15, 18], 18);\n  });\n\n  it('at the end of modulo block filter, enqueue END should be min of data source range end height and api last height', async () => {\n    // So this will skip next data source\n    fetchService.mockGetModulos([10]);\n    dataSources.push({...mockDs, startBlock: 200});\n    await fetchService.init(191);\n\n    expect((fetchService as any).useDictionary).toBeFalsy();\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([], 199);\n  });\n\n  it('skips bypassBlocks', async () => {\n    fetchService.setBypassBlocks([3]);\n\n    await fetchService.init(1);\n\n    expect((fetchService as any).useDictionary).toBeFalsy();\n    // Note the batch size is smaller because we exclude from the initial batch size\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([1, 2, 4, 5, 6, 7, 8, 9, 10], 10);\n  });\n\n  it('transforms bypassBlocks', async () => {\n    // Set a range so on init its transformed\n    fetchService.setBypassBlocks(['2-5']);\n\n    await fetchService.init(1);\n\n    // Note the batch size is smaller because we exclude from the initial batch size\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([1, 6, 7, 8, 9, 10], 10);\n  });\n\n  it('dictionary page limited result and modulo block enqueues correct blocks', async () => {\n    fetchService.mockGetModulos([50]);\n    enableDictionary();\n    // Increase free size to be greater than batch size\n    blockDispatcher.freeSize = 20;\n\n    // Return results the size of the batch but less than end\n    dictionaryService.scopedDictionaryEntries = (start, end, batch) => {\n      const blocks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n      return Promise.resolve({\n        batchBlocks: blocks,\n        lastBufferedHeight: blocks[blocks.length - 1],\n      });\n    };\n\n    await fetchService.init(1);\n\n    // Modulo blocks should not be added as we are within batch size\n    expect(enqueueBlocksSpy).toHaveBeenCalledWith([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10);\n  });\n\n  it('dictionary dictionary queries to be limited to target block height (finalized/latest depending on settings)', async () => {\n    // Set finalized height behind dict results\n    // This can happen when an RPC endpoint is behind the dictionary\n    enableDictionary();\n\n    const FINALIZED_HEIGHT = 10;\n\n    blockchainService.finalizedHeight = FINALIZED_HEIGHT;\n    // change query end\n    (dictionaryService as any).getDictionary(1).getQueryEndBlock = () => 10;\n\n    const dictSpy = jest.spyOn(dictionaryService, 'scopedDictionaryEntries');\n\n    await fetchService.init(1);\n\n    expect(dictSpy).toHaveBeenCalledWith(1, FINALIZED_HEIGHT, 10);\n  });\n\n  it('throws if the start block is greater than the chain latest height', async () => {\n    await expect(() => fetchService.init(1002)).rejects.toThrow(\n      `The startBlock of dataSources in your project manifest (1002) is higher than the current chain height (1000). Please adjust your startBlock to be less that the current chain height.`\n    );\n  });\n\n  it('should use enqueueSequential if use dictionary fetch failed', async () => {\n    enableDictionary();\n    (fetchService as any).dictionaryService.scopedDictionaryEntries = () => {\n      throw new Error('Mock dictionary fetch failed');\n    };\n    await fetchService.init(10);\n    expect(spyOnEnqueueSequential).toHaveBeenCalledTimes(1);\n\n    expect(enqueueBlocksSpy).toHaveBeenLastCalledWith([10, 11, 12, 13, 14, 15, 16, 17, 18, 19], 19);\n  });\n\n  it(`falls back to sequential blocks if dictionary returns undefined`, async () => {\n    enableDictionary();\n    (fetchService as any).dictionaryService.scopedDictionaryEntries = () => {\n      return undefined;\n    };\n    blockchainService.bestHeight = 500;\n    const dictionarySpy = jest.spyOn((fetchService as any).dictionaryService, 'scopedDictionaryEntries');\n    await fetchService.init(10);\n    expect(dictionarySpy).toHaveBeenCalledTimes(1);\n    expect(spyOnEnqueueSequential).toHaveBeenCalledTimes(1);\n\n    expect(enqueueBlocksSpy).toHaveBeenLastCalledWith([10, 11, 12, 13, 14, 15, 16, 17, 18, 19], 19);\n  });\n\n  it(`doesn't use dictionary if processing near latest height`, async () => {\n    enableDictionary();\n    (fetchService as any).dictionaryService.scopedDictionaryEntries = () => {\n      return undefined;\n    };\n    blockchainService.bestHeight = 500;\n    const dictionarySpy = jest.spyOn((fetchService as any).dictionaryService, 'scopedDictionaryEntries');\n    await fetchService.init(490);\n    expect(dictionarySpy).toHaveBeenCalledTimes(0);\n    expect(spyOnEnqueueSequential).toHaveBeenCalledTimes(1);\n\n    expect(enqueueBlocksSpy).toHaveBeenLastCalledWith([490, 491, 492, 493, 494, 495, 496, 497, 498, 499], 499);\n  });\n\n  it('fetch init when last processed height is same as', async () => {\n    // when last processed height is 1000, finalized height is 1000\n    await expect(fetchService.init(1001)).resolves.not.toThrow();\n  });\n\n  it('When the index height reaches the dictionary’s lastBufferedHeight, it can enqueue normally.', async () => {\n    enableDictionary();\n    dictionaryService.scopedDictionaryEntries = (start, end, batch) => {\n      return Promise.resolve({\n        batchBlocks: [],\n        queryEndBlock: 900,\n        _metadata: {\n          lastProcessedHeight: 900,\n        } as any,\n        lastBufferedHeight: 900,\n      });\n    };\n\n    blockchainService.bestHeight = 1000;\n    const dictionarySpy = jest.spyOn((fetchService as any).dictionaryService, 'scopedDictionaryEntries');\n\n    // first enqueue\n    await fetchService.init(10);\n\n    expect(dictionarySpy).toHaveBeenCalledTimes(1);\n    expect((fetchService as any).blockDispatcher.latestBufferedHeight).toEqual(900);\n\n    // Second enqueue\n    blockDispatcher.freeSize = 10;\n    await delay(1);\n    expect(dictionarySpy).toHaveBeenCalledTimes(2);\n    expect(spyOnEnqueueSequential).toHaveBeenCalledTimes(1);\n    expect((fetchService as any).blockDispatcher.latestBufferedHeight).toEqual(910);\n  }, 10000);\n\n  it('MultiChainRewindStatus.Complete message', async () => {\n    const logger = getLogger('FetchService');\n    const consoleSpy = jest.spyOn(logger, 'info');\n\n    (multichainRewindService as any).status = MultiChainRewindStatus.Complete;\n    await fetchService.init(10);\n    expect(consoleSpy).toHaveBeenCalledWith(expect.stringMatching(/Waiting for all chains to complete rewind/));\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/fetch.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Inject, Injectable, OnApplicationShutdown} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {SchedulerRegistry} from '@nestjs/schedule';\nimport {BaseDataSource} from '@subql/types-core';\nimport {range} from 'lodash';\nimport {IBlockchainService} from '../blockchain.service';\nimport {NodeConfig} from '../configure';\nimport {IndexerEvent} from '../events';\nimport {getLogger} from '../logger';\nimport {delay, filterBypassBlocks, getModulos} from '../utils';\nimport {IBlockDispatcher} from './blockDispatcher';\nimport {mergeNumAndBlocksToNums} from './dictionary';\nimport {DictionaryService} from './dictionary/dictionary.service';\nimport {mergeNumAndBlocks} from './dictionary/utils';\nimport {MultiChainRewindStatus} from './entities';\nimport {MultiChainRewindService} from './multiChainRewind.service';\nimport {IStoreModelProvider} from './storeModelProvider';\nimport {BypassBlocks, IBlock, IProjectService} from './types';\nimport {IUnfinalizedBlocksServiceUtil} from './unfinalizedBlocks.service';\n\nconst logger = getLogger('FetchService');\n// Unit is ms\nconst multiChainRewindDelay = 3;\n@Injectable()\nexport class FetchService<DS extends BaseDataSource, B extends IBlockDispatcher<FB>, FB>\n  implements OnApplicationShutdown\n{\n  private _latestBestHeight?: number;\n  private _latestFinalizedHeight?: number;\n  private isShutdown = false;\n\n  constructor(\n    private nodeConfig: NodeConfig,\n    @Inject('IProjectService') protected projectService: IProjectService<DS>,\n    @Inject('IBlockDispatcher') protected blockDispatcher: B,\n    protected dictionaryService: DictionaryService<DS, FB>,\n    private eventEmitter: EventEmitter2,\n    private schedulerRegistry: SchedulerRegistry,\n    @Inject('IUnfinalizedBlocksService') private unfinalizedBlocksService: IUnfinalizedBlocksServiceUtil,\n    @Inject('IStoreModelProvider') private storeModelProvider: IStoreModelProvider,\n    @Inject('IBlockchainService') private blockchainSevice: IBlockchainService<DS>,\n    private multiChainRewindService: MultiChainRewindService\n  ) {}\n\n  private get latestBestHeight(): number {\n    assert(this._latestBestHeight !== undefined, new Error('Latest Best Height is not available'));\n    return this._latestBestHeight;\n  }\n\n  private get latestFinalizedHeight(): number {\n    // Devnets don't always finalize blocks, in those cases we set the finalized block to be 0 and we need to specifically check for undefined here.\n    assert(this._latestFinalizedHeight !== undefined, new Error('Latest Finalized Height is not available'));\n    return this._latestFinalizedHeight;\n  }\n\n  protected getModulos(dataSources: DS[]): number[] {\n    return getModulos(dataSources, this.blockchainSevice.isCustomDs, this.blockchainSevice.blockHandlerKind);\n  }\n\n  onApplicationShutdown(): void {\n    try {\n      this.schedulerRegistry.deleteInterval('getFinalizedBlockHead');\n      this.schedulerRegistry.deleteInterval('getBestBlockHead');\n    } catch (e) {\n      //ignore if interval not exist\n    }\n    this.isShutdown = true;\n  }\n\n  async init(startHeight: number): Promise<void> {\n    const interval = await this.blockchainSevice.getChainInterval();\n\n    await Promise.all([this.getFinalizedBlockHead(), this.getBestBlockHead()]);\n\n    const chainLatestHeight = this.latestHeight();\n    if (startHeight > chainLatestHeight) {\n      // This is at init stage, lastProcessedHeight should be always - 1 from the startHeight in this case\n      // this is reverse calculated from projectService.nextProcessHeight()\n      // Alternative, we can expose async function getLastProcessedHeight() to ensure accuracy.\n      if (startHeight - 1 === chainLatestHeight) {\n        logger.warn(\n          `Project last processed height is same as current chain height (${chainLatestHeight}). Please ensure the RPC endpoint provider is behaving correctly.`\n        );\n      } else {\n        throw new Error(\n          `The startBlock of dataSources in your project manifest (${startHeight}) is higher than the current chain height (${chainLatestHeight}). Please adjust your startBlock to be less that the current chain height.`\n        );\n      }\n    }\n\n    this.schedulerRegistry.addInterval(\n      'getFinalizedBlockHead',\n      setInterval(() => void this.getFinalizedBlockHead(), interval)\n    );\n    this.schedulerRegistry.addInterval(\n      'getBestBlockHead',\n      setInterval(() => void this.getBestBlockHead(), interval)\n    );\n\n    await this.dictionaryService.initDictionaries();\n    // Update all dictionaries execute before find one usable dictionary\n    this.updateDictionary();\n    // Find one usable dictionary at start\n\n    await this.blockDispatcher.init(this.resetForNewDs.bind(this));\n\n    void this.startLoop(startHeight);\n  }\n\n  private updateDictionary(): void {\n    return this.dictionaryService.buildDictionaryEntryMap(this.projectService.getDataSourcesMap());\n  }\n\n  async getFinalizedBlockHead(): Promise<void> {\n    try {\n      const currentFinalizedHeader = await this.blockchainSevice.getFinalizedHeader();\n      // Rpc could return finalized height below last finalized height due to unmatched nodes, and this could lead indexing stall\n      // See how this could happen in https://gist.github.com/jiqiang90/ea640b07d298bca7cbeed4aee50776de\n      if (\n        this._latestFinalizedHeight === undefined ||\n        currentFinalizedHeader.blockHeight > this._latestFinalizedHeight\n      ) {\n        this._latestFinalizedHeight = currentFinalizedHeader.blockHeight;\n        this.unfinalizedBlocksService.registerFinalizedBlock(currentFinalizedHeader);\n        if (!this.nodeConfig.unfinalizedBlocks) {\n          this.eventEmitter.emit(IndexerEvent.BlockTarget, {\n            height: this.latestFinalizedHeight,\n          });\n        }\n      }\n    } catch (e: any) {\n      logger.error(e, `Having a problem when getting finalized block`);\n    }\n  }\n\n  async getBestBlockHead(): Promise<void> {\n    try {\n      const currentBestHeight = await this.blockchainSevice.getBestHeight();\n      if (this._latestBestHeight !== currentBestHeight) {\n        this._latestBestHeight = currentBestHeight;\n        this.eventEmitter.emit(IndexerEvent.BlockBest, {\n          height: this.latestBestHeight,\n        });\n\n        if (this.nodeConfig.unfinalizedBlocks) {\n          this.eventEmitter.emit(IndexerEvent.BlockTarget, {\n            height: this.latestBestHeight,\n          });\n        }\n      }\n    } catch (e: any) {\n      logger.error(e, `Having a problem when getting best block`);\n    }\n  }\n\n  private async startLoop(initBlockHeight: number): Promise<void> {\n    await this.fillNextBlockBuffer(initBlockHeight);\n  }\n\n  private latestHeight(): number {\n    return this.nodeConfig.unfinalizedBlocks ? this.latestBestHeight : this.latestFinalizedHeight;\n  }\n\n  // eslint-disable-next-line complexity\n  async fillNextBlockBuffer(initBlockHeight: number): Promise<void> {\n    let startBlockHeight: number;\n    let scaledBatchSize: number;\n\n    const getStartBlockHeight = (): number => {\n      return this.blockDispatcher.latestBufferedHeight\n        ? this.blockDispatcher.latestBufferedHeight + 1\n        : initBlockHeight;\n    };\n\n    while (!this.isShutdown) {\n      startBlockHeight = getStartBlockHeight();\n\n      scaledBatchSize = this.blockDispatcher.batchSize;\n\n      const latestHeight = this.latestHeight();\n\n      if (this.blockDispatcher.freeSize < scaledBatchSize || startBlockHeight > latestHeight) {\n        if (this.blockDispatcher.freeSize < scaledBatchSize) {\n          logger.debug(\n            `Fetch service is waiting for free space in the block dispatcher queue, free size: ${this.blockDispatcher.freeSize}, scaledBatchSize: ${scaledBatchSize}`\n          );\n        }\n        if (startBlockHeight > latestHeight) {\n          logger.debug(\n            `Fetch service is waiting for new blocks, startBlockHeight: ${startBlockHeight}, latestHeight: ${latestHeight}`\n          );\n        }\n        await delay(1);\n        continue;\n      }\n\n      // Update the target height, this happens here to stay in sync with the rest of indexing\n      void this.storeModelProvider.metadata.set('targetHeight', latestHeight);\n\n      // If we're rewinding, we should wait until it's done\n      const multiChainStatus = this.multiChainRewindService.status;\n      if (MultiChainRewindStatus.Complete === multiChainStatus) {\n        logger.info(\n          `Waiting for all chains to complete rewind, current chainId: ${this.multiChainRewindService.chainId}`\n        );\n        await delay(multiChainRewindDelay);\n        continue;\n      }\n\n      // This could be latestBestHeight, dictionary should never include finalized blocks\n      // TODO add buffer so dictionary not used when project synced\n      if (startBlockHeight < this.latestBestHeight - scaledBatchSize) {\n        try {\n          const dictionary = await this.dictionaryService.scopedDictionaryEntries(\n            startBlockHeight,\n            scaledBatchSize,\n            latestHeight\n          );\n\n          if (startBlockHeight !== getStartBlockHeight()) {\n            logger.debug(`Queue was reset for new DS, discarding dictionary query result`);\n            continue;\n          }\n          if (dictionary) {\n            const {batchBlocks, lastBufferedHeight} = dictionary;\n            // the last block returned from batch should have max height in this batch\n            const mergedBlocks = mergeNumAndBlocks(\n              this.getModuloBlocks(startBlockHeight, lastBufferedHeight),\n              batchBlocks\n            );\n            if (mergedBlocks.length === 0) {\n              // There we're no blocks in this query range, we can set a new height we're up to\n              if (startBlockHeight <= lastBufferedHeight) {\n                await this.enqueueBlocks([], lastBufferedHeight);\n              } else {\n                // Exceeds the dictionary search height\n                await this.enqueueSequential(startBlockHeight, scaledBatchSize, latestHeight);\n              }\n            } else {\n              const maxBlockSize = Math.min(mergedBlocks.length, this.blockDispatcher.freeSize);\n              const enqueueBlocks = mergedBlocks.slice(0, maxBlockSize);\n              await this.enqueueBlocks(enqueueBlocks, latestHeight);\n            }\n            continue; // skip nextBlockRange() way\n          } else {\n            await this.enqueueSequential(startBlockHeight, scaledBatchSize, latestHeight);\n          }\n        } catch (e: any) {\n          logger.debug(`Fetch dictionary stopped: ${e.message}`);\n          this.eventEmitter.emit(IndexerEvent.SkipDictionary);\n          await this.enqueueSequential(startBlockHeight, scaledBatchSize, latestHeight);\n        }\n      } else {\n        await this.enqueueSequential(startBlockHeight, scaledBatchSize, latestHeight);\n      }\n    }\n  }\n\n  // get all modulo numbers with a specific block ranges\n  private getModuloBlocks(startHeight: number, endHeight: number): number[] {\n    // Find relevant ds\n    const {endHeight: rangeEndHeight, value: relevantDS} = this.getRelevantDsDetails(startHeight);\n    const moduloNumbers = this.getModulos(relevantDS);\n    // no modulos in the filters been found in current ds\n    if (!moduloNumbers.length) return [];\n    const maxModulosBlockHeight = this.nodeConfig.batchSize * Math.max(...moduloNumbers) + startHeight;\n    const moduloEndHeight = Math.min(rangeEndHeight ?? Number.MAX_SAFE_INTEGER, maxModulosBlockHeight, endHeight);\n    const moduloBlocks: number[] = [];\n    for (let i = startHeight; i <= moduloEndHeight; i++) {\n      if (moduloNumbers.find((m) => i % m === 0)) {\n        moduloBlocks.push(i);\n      }\n    }\n    return moduloBlocks;\n  }\n\n  /**\n   *\n   * @param startBlockHeight\n   * @param endBlockHeight is either FinalizedHeight or BestHeight, ensure ModuloBlocks not greater than this number\n   */\n  private getEnqueuedModuloBlocks(startBlockHeight: number, endBlockHeight: number): (IBlock<FB> | number)[] {\n    return this.getModuloBlocks(startBlockHeight, endBlockHeight).slice(0, this.nodeConfig.batchSize);\n  }\n\n  private useModuloHandlersOnly(relevantDS: DS[]): boolean {\n    // If there are modulos handlers only, then number of moduloNumbers should be match number of with handlers\n    const moduloNumbers = this.getModulos(relevantDS);\n    const handlers = [...relevantDS.map((ds) => ds.mapping.handlers)].flat();\n    return !!handlers.length && moduloNumbers.length === handlers.length;\n  }\n\n  private getRelevantDsDetails(startBlockHeight: number): {endHeight: number | undefined; value: DS[]} {\n    const details = this.projectService.getDataSourcesMap().getDetails(startBlockHeight);\n    assert(details, `Datasources not found for height ${startBlockHeight}`);\n    return {endHeight: details.endHeight, value: details.value};\n  }\n\n  // Enqueue block sequentially\n  private async enqueueSequential(\n    startBlockHeight: number,\n    scaledBatchSize: number,\n    latestHeight: number\n  ): Promise<void> {\n    // End height from current dataSource\n    const {endHeight, value: relevantDs} = this.getRelevantDsDetails(startBlockHeight);\n    // Estimated range end height\n    const estRangeEndHeight = Math.min(\n      endHeight ?? Number.MAX_SAFE_INTEGER,\n      this.nextEndBlockHeight(startBlockHeight, scaledBatchSize),\n      latestHeight\n    );\n    const enqueuingBlocks = this.useModuloHandlersOnly(relevantDs)\n      ? this.getEnqueuedModuloBlocks(startBlockHeight, latestHeight)\n      : range(startBlockHeight, estRangeEndHeight + 1);\n\n    await this.enqueueBlocks(enqueuingBlocks, estRangeEndHeight);\n  }\n\n  private async enqueueBlocks(enqueuingBlocks: (IBlock<FB> | number)[], latestHeight: number): Promise<void> {\n    const cleanedBatchBlocks = filterBypassBlocks<FB>(enqueuingBlocks, [\n      ...this.projectService.bypassBlocks,\n      ...this.getDatasourceBypassBlocks(),\n    ]);\n    await this.blockDispatcher.enqueueBlocks(\n      cleanedBatchBlocks,\n      this.getLatestBufferHeight(enqueuingBlocks, latestHeight)\n    );\n  }\n\n  /**\n   *\n   * @param rawBatchBlocks\n   * @param latestHeight\n   * @private\n   */\n  private getLatestBufferHeight(rawBatchBlocks: (IBlock<FB> | number)[], latestHeight: number): number {\n    // When both BatchBlocks are empty, mean no blocks to enqueue and full synced,\n    // we are safe to update latestBufferHeight to this number\n    if (rawBatchBlocks.length === 0) {\n      return latestHeight;\n    }\n    return Math.max(...mergeNumAndBlocksToNums([], rawBatchBlocks));\n  }\n\n  /**\n   * If a projects datasources are not continuious we can add add them to the bypass blocks\n   * */\n  private getDatasourceBypassBlocks(): BypassBlocks {\n    const datasources = this.projectService.getDataSourcesMap().getAll();\n\n    const heights = Array.from(datasources.keys());\n\n    const bypassBlocks: BypassBlocks = [];\n\n    for (let i = 0; i < heights.length - 1; i++) {\n      const currentHeight = heights[i];\n      const nextHeight = heights[i + 1];\n\n      const currentDS = datasources.get(currentHeight);\n      // If the value for the current height is an empty array, then it's a gap\n      if (currentDS?.length === 0) {\n        bypassBlocks.push(`${currentHeight}-${nextHeight - 1}`);\n      }\n    }\n    return bypassBlocks;\n  }\n\n  private nextEndBlockHeight(startBlockHeight: number, scaledBatchSize: number): number {\n    let endBlockHeight = startBlockHeight + scaledBatchSize - 1;\n\n    if (endBlockHeight > this.latestFinalizedHeight) {\n      if (this.nodeConfig.unfinalizedBlocks) {\n        if (endBlockHeight >= this.latestBestHeight) {\n          endBlockHeight = this.latestBestHeight;\n        }\n      } else {\n        endBlockHeight = this.latestFinalizedHeight;\n      }\n    }\n    return endBlockHeight;\n  }\n\n  resetForNewDs(blockHeight: number): void {\n    this.updateDictionary();\n    this.blockDispatcher.flushQueue(blockHeight);\n  }\n\n  getLatestFinalizedHeight(): number {\n    return this.latestFinalizedHeight;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/inMemoryCache.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {InMemoryCacheService} from './inMemoryCache.service';\n\ndescribe('InMemoryCacheService', () => {\n  let service: InMemoryCacheService;\n\n  beforeEach(() => {\n    service = new InMemoryCacheService();\n  });\n\n  it('should be created', () => {\n    expect(service).toBeTruthy();\n  });\n\n  it('should set and get value correctly', async () => {\n    const cache = service.getCache();\n\n    // Test with string\n    await cache.set('testKey', 'testValue');\n    const fetched_string = await cache.get('testKey');\n    expect(fetched_string).toEqual('testValue');\n\n    // Test with number\n    await cache.set('testKey2', 123);\n    const fetched_number = await cache.get('testKey2');\n    expect(fetched_number).toEqual(123);\n\n    // Test with object\n    const obj = {prop: 'value'};\n    await cache.set('testKey3', obj);\n    const fetched_object = await cache.get('testKey3');\n    expect(fetched_object).toEqual(obj);\n  });\n\n  it('should return undefined if key does not exist', async () => {\n    const cache = service.getCache();\n    const fetched = await cache.get('nonExistentKey');\n    expect(fetched).toBeUndefined();\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/inMemoryCache.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Injectable} from '@nestjs/common';\nimport {Cache} from '@subql/types-core';\n\n/**\n * The `InMemoryCacheService` class provides an in-memory caching solution.\n * It's designed to temporarily store data that doesn't need to be persisted in a database.\n * The service is injectable and designed to be used within the sandbox\n */\n@Injectable()\nexport class InMemoryCacheService<T extends Record<string, any> = Record<string, any>> {\n  private cache: T = {} as T;\n\n  getCache(): Cache<T> {\n    return {\n      //eslint-disable-next-line @typescript-eslint/require-await\n      get: async (key: keyof T): Promise<T[keyof T] | undefined> => {\n        return this.cache[key];\n      },\n\n      //eslint-disable-next-line @typescript-eslint/require-await\n      set: async (key: keyof T, value: T[keyof T]): Promise<void> => {\n        this.cache[key] = value;\n      },\n    };\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './connectionPool.service';\nexport * from './connectionPoolState.manager';\nexport * from './entities';\nexport * from './poi';\nexport * from './types';\nexport * from './StoreOperations';\nexport * from './store.service';\nexport * from './inMemoryCache.service';\nexport * from './storeModelProvider';\nexport * from './worker';\nexport * from './dictionary';\nexport * from './sandbox';\nexport * from './sandbox.service';\nexport * from './blockDispatcher';\nexport * from './dynamic-ds.service';\nexport * from './testing.service';\nexport * from './test.runner';\nexport * from './project.service';\nexport * from './fetch.service';\nexport * from './indexer.manager';\nexport * from './ds-processor.service';\nexport * from './unfinalizedBlocks.service';\nexport * from './monitor.service';\nexport * from './multiChainRewind.service';\nexport * from './core.module';\n"
  },
  {
    "path": "packages/node-core/src/indexer/indexer.manager.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {BaseCustomDataSource, BaseDataSource, IProjectNetworkConfig} from '@subql/types-core';\nimport {IApi} from '../api.service';\nimport {IBlockchainService} from '../blockchain.service';\nimport {NodeConfig} from '../configure';\nimport {getLogger} from '../logger';\nimport {exitWithError, monitorWrite} from '../process';\nimport {profilerWrap} from '../profiler';\nimport {handledStringify} from './../utils';\nimport {ProcessBlockResponse} from './blockDispatcher';\nimport {asSecondLayerHandlerProcessor_1_0_0, DsProcessorService} from './ds-processor.service';\nimport {DynamicDsService} from './dynamic-ds.service';\nimport {IndexerSandbox} from './sandbox';\nimport {Header, IBlock, IIndexerManager, ISubqueryProject} from './types';\nimport {IUnfinalizedBlocksService} from './unfinalizedBlocks.service';\n\nconst logger = getLogger('indexer');\n\nexport type HandlerKinds = string[];\nexport type FilterTypeMap<DS extends BaseDataSource = BaseDataSource> = Record<\n  string,\n  (data: any, filter: any, ds: DS) => boolean\n>;\nexport type ProcessorTypeMap<DS extends BaseDataSource, FM extends FilterTypeMap<DS>> = {\n  [K in keyof FM]: (data: any) => boolean;\n};\nexport type HandlerInputTypeMap<DS extends BaseDataSource, FM extends FilterTypeMap<DS>> = {[K in keyof FM]: any};\n\nexport interface CustomHandler<K extends string = string, F = Record<string, unknown>> {\n  handler: string;\n  kind: K;\n  filter?: F;\n}\n\nexport abstract class BaseIndexerManager<\n  A, // Api Type\n  SA, // SafeApi Type\n  B, // Block Type\n  API extends IApi<A, SA, IBlock<B>[]>,\n  DS extends BaseDataSource,\n  CDS extends DS & BaseCustomDataSource, // Custom datasource\n  FilterMap extends FilterTypeMap<DS>,\n  ProcessorMap extends ProcessorTypeMap<DS, FilterMap>,\n  HandlerInputMap extends HandlerInputTypeMap<DS, FilterMap>,\n> implements IIndexerManager<B, DS>\n{\n  abstract indexBlock(block: IBlock<B>, datasources: DS[]): Promise<ProcessBlockResponse>;\n\n  protected abstract indexBlockData(\n    block: B,\n    dataSources: DS[],\n    getVM: (d: DS) => Promise<IndexerSandbox>\n  ): Promise<void>;\n\n  // This is used by Ethereum to parse logs and transaction data with ABIs\n  protected abstract prepareFilteredData<T>(kind: keyof FilterMap, data: T, ds: DS): Promise<T>;\n\n  constructor(\n    protected readonly apiService: API,\n    protected readonly nodeConfig: NodeConfig,\n    protected sandboxService: {getDsProcessor: (ds: DS, api: SA, unsafeApi: A) => IndexerSandbox},\n    private dsProcessorService: DsProcessorService<DS, CDS>,\n    private dynamicDsService: DynamicDsService<DS>,\n    private unfinalizedBlocksService: IUnfinalizedBlocksService<B>,\n    private filterMap: FilterMap,\n    private processorMap: ProcessorMap,\n    protected blockchainService: IBlockchainService<DS, CDS, ISubqueryProject<IProjectNetworkConfig, DS>, SA, B, B>\n  ) {\n    logger.info('indexer manager start');\n  }\n\n  /**\n   * This function can be overwritten to provide extra values to the sandbox\n   * E.g Cosmos injecting the registry\n   * */\n  protected getDsProcessor(ds: DS, safeApi: SA): IndexerSandbox {\n    return this.sandboxService.getDsProcessor(ds, safeApi, this.apiService.unsafeApi);\n  }\n\n  protected async internalIndexBlock(\n    block: IBlock<B>,\n    dataSources: DS[],\n    getApi: () => Promise<SA>\n  ): Promise<ProcessBlockResponse> {\n    let dynamicDsCreated = false;\n    const blockHeight = block.getHeader().blockHeight;\n    monitorWrite(`- BlockHash: ${block.getHeader().blockHash}`);\n\n    const filteredDataSources = this.filterDataSources(blockHeight, dataSources);\n\n    this.assertDataSources(filteredDataSources, blockHeight);\n\n    let apiAt: SA;\n    const reindexBlockHeader = (await this.processUnfinalizedBlocks(block)) ?? null;\n\n    // Only index block if we're not going to reindex\n    if (!reindexBlockHeader) {\n      await this.indexBlockData(block.block, filteredDataSources, async (ds: DS) => {\n        // Injected runtimeVersion from fetch service might be outdated\n        apiAt ??= await getApi();\n\n        const vm = this.getDsProcessor(ds, apiAt);\n\n        // Inject function to create ds into vm\n        vm.freeze(async (templateName: string, args?: Record<string, unknown>) => {\n          const newDs = await this.dynamicDsService.createDynamicDatasource({\n            templateName,\n            args,\n            startBlock: blockHeight,\n          });\n          // Push the newly created dynamic ds to be processed this block on any future extrinsics/events\n          filteredDataSources.push(newDs);\n          dynamicDsCreated = true;\n        }, 'createDynamicDatasource');\n\n        return vm;\n      });\n    }\n\n    return {\n      dynamicDsCreated,\n      reindexBlockHeader,\n    };\n  }\n\n  protected async processUnfinalizedBlocks(block: IBlock<B>): Promise<Header | undefined> {\n    if (this.nodeConfig.unfinalizedBlocks) {\n      return this.unfinalizedBlocksService.processUnfinalizedBlocks(block);\n    }\n  }\n\n  private filterDataSources(nextProcessingHeight: number, dataSources: DS[]): DS[] {\n    let filteredDs: DS[];\n\n    filteredDs = dataSources.filter(\n      (ds) =>\n        ds.startBlock !== undefined &&\n        ds.startBlock <= nextProcessingHeight &&\n        (ds.endBlock ?? Number.MAX_SAFE_INTEGER) >= nextProcessingHeight\n    );\n\n    // perform filter for custom ds\n    filteredDs = filteredDs.filter((ds) => {\n      if (this.blockchainService.isCustomDs(ds)) {\n        return this.dsProcessorService.getDsProcessor(ds).dsFilterProcessor(ds, this.apiService.unsafeApi);\n      } else {\n        return true;\n      }\n    });\n\n    return filteredDs;\n  }\n\n  private assertDataSources(ds: DS[], blockHeight: number) {\n    if (!ds.length) {\n      exitWithError(\n        `Issue detected with data sources: \\n\n        Either all data sources have a 'startBlock' greater than the current indexed block height (${blockHeight}),\n        or they have an 'endBlock' less than the current block. \\n\n        Solution options: \\n\n        1. Adjust 'startBlock' in project.yaml to be less than or equal to ${blockHeight},\n           and 'endBlock' to be greater than or equal to ${blockHeight}. \\n\n        2. Delete your database and start again with the currently specified 'startBlock' and 'endBlock'.`,\n        logger\n      );\n    }\n  }\n\n  protected async indexData<K extends keyof FilterMap>(\n    kind: K,\n    data: HandlerInputMap[K],\n    ds: DS,\n    getVM: (ds: DS) => Promise<IndexerSandbox>\n  ): Promise<void> {\n    assert(this.filterMap[kind], `Unsupported handler kind: ${kind.toString()}`);\n\n    if (this.blockchainService.isRuntimeDs(ds)) {\n      const handlers = ds.mapping.handlers.filter(\n        (h) => h.kind === kind && this.filterMap[kind](data as any, h.filter, ds)\n      );\n\n      if (!handlers.length) {\n        return;\n      }\n\n      const parsedData = await this.prepareFilteredData(kind, data, ds);\n      const vm = await getVM(ds);\n      for (const handler of handlers) {\n        monitorWrite(\n          () => `- Handler: ${handler.handler}, args:${handledStringify(data, this.nodeConfig.monitorObjectMaxDepth)}`\n        );\n        if (this.nodeConfig.profiler) {\n          await profilerWrap(\n            vm.securedExec.bind(vm),\n            'handlerPerformance',\n            handler.handler\n          )(handler.handler, [parsedData]);\n        } else {\n          await vm.securedExec(handler.handler, [parsedData]);\n        }\n      }\n    } else if (this.blockchainService.isCustomDs(ds)) {\n      const handlers = this.filterCustomDsHandlers<K>(ds, data, this.processorMap[kind], (data, baseFilter) => {\n        if (!baseFilter.length) return true;\n        return baseFilter.find((filter) => this.filterMap[kind](data, filter, ds));\n      });\n\n      if (!handlers.length) {\n        return;\n      }\n\n      const vm = await getVM(ds);\n      for (const handler of handlers) {\n        monitorWrite(\n          () => `- Handler: ${handler.handler}, args:${handledStringify(data, this.nodeConfig.monitorObjectMaxDepth)}`\n        );\n        await this.transformAndExecuteCustomDs(ds, vm, handler, data);\n      }\n    }\n  }\n\n  private filterCustomDsHandlers<K extends keyof FilterMap>(\n    ds: CDS, //SubstrateCustomDataSource<string, SubstrateNetworkFilter>,\n    data: HandlerInputMap[K],\n    baseHandlerCheck: ProcessorMap[K],\n    baseFilter: (data: HandlerInputMap[K], baseFilter: any[]) => boolean\n  ): CustomHandler[] {\n    const plugin = this.dsProcessorService.getDsProcessor(ds);\n\n    return ds.mapping.handlers\n      .filter((handler) => {\n        const processor = plugin.handlerProcessors[handler.kind];\n        if (baseHandlerCheck(processor)) {\n          return baseFilter(data, processor.baseFilter);\n        }\n        return false;\n      })\n      .filter((handler) => {\n        const processor = asSecondLayerHandlerProcessor_1_0_0(plugin.handlerProcessors[handler.kind]);\n\n        try {\n          return processor.filterProcessor({\n            filter: handler.filter,\n            input: data,\n            ds,\n          });\n        } catch (e: any) {\n          logger.error(e, 'Failed to run ds processer filter.');\n          throw e;\n        }\n      });\n  }\n\n  private async transformAndExecuteCustomDs<K extends keyof FilterMap>(\n    ds: CDS, //SubstrateCustomDataSource<string, SubstrateNetworkFilter>,\n    vm: IndexerSandbox,\n    handler: CustomHandler,\n    data: HandlerInputMap[K]\n  ): Promise<void> {\n    const plugin = this.dsProcessorService.getDsProcessor(ds);\n    const assets = await this.dsProcessorService.getAssets(ds);\n\n    const processor = asSecondLayerHandlerProcessor_1_0_0(plugin.handlerProcessors[handler.kind]);\n\n    const transformedData = await processor\n      .transformer({\n        input: data,\n        ds,\n        filter: handler.filter,\n        api: this.apiService.unsafeApi,\n        assets,\n      })\n      .catch((e: any) => {\n        logger.error(e, 'Failed to transform data with ds processor.');\n        throw e;\n      });\n\n    // We can not run this in parallel. the transformed data items may be dependent on one another.\n    // An example of this is with Acala EVM packing multiple EVM logs into a single Substrate event\n    for (const _data of transformedData) {\n      await vm.securedExec(handler.handler, [_data]);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/monitor.service.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {makeTempDir} from '@subql/common';\nimport {NodeConfig} from '../configure';\nimport {MonitorService} from './monitor.service';\n\nclass testMonitorService extends MonitorService {\n  testGetBlockIndexEntries(height: number) {\n    return (this as any).getBlockIndexEntries(height);\n  }\n\n  testResetFile(file: 'A' | 'B') {\n    return (this as any).resetFile(file);\n  }\n\n  testRemoveIndexFile() {\n    fs.rmSync((this as any).indexPath);\n  }\n\n  testInit() {\n    (this as any).init();\n  }\n\n  testWrite(blockData: string) {\n    (this as any).write(blockData);\n  }\n\n  resetService() {\n    (this as any)._cachedFileStats = undefined;\n    (this as any)._currentFile = undefined;\n    (this as any).currentIndexHeight = undefined;\n  }\n}\n\nfunction removeLinesFromFile(filePath: string, startLine: number, endLine: number): void {\n  try {\n    const fileContent = fs.readFileSync(filePath, 'utf-8');\n    const lines = fileContent.split('\\n');\n    lines.splice(startLine - 1, endLine - startLine + 1);\n    const updatedContent = lines.join('\\n');\n    fs.writeFileSync(filePath, updatedContent, 'utf-8');\n    console.log(`Lines ${startLine}-${endLine} removed successfully from ${filePath}`);\n  } catch (error) {\n    console.error(`Error removing lines from file: ${error}`);\n  }\n}\n\ndescribe('Monitor service', () => {\n  let monitorDir: string;\n  let monitorService1: testMonitorService;\n  let nodeConfig: NodeConfig;\n  beforeEach(async () => {\n    monitorDir = await makeTempDir();\n    nodeConfig = {monitorOutDir: monitorDir, monitorFileSize: 1024, dbSchema: 'test-db'} as NodeConfig;\n    monitorService1 = new testMonitorService(nodeConfig);\n    monitorService1.resetAll();\n  });\n  afterEach(() => {\n    fs.rmSync(monitorDir, {recursive: true, force: true});\n  });\n\n  function mockWriteBlockData(blockHeight: number, monitorService: testMonitorService = monitorService1) {\n    monitorService.createBlockStart(blockHeight);\n    monitorService.testWrite(`fetch block ${blockHeight}`);\n    monitorService.testWrite(`processing block ${blockHeight}`);\n    monitorService.testWrite(`block handler ${blockHeight}`);\n    monitorService.testWrite(`event handler ${blockHeight}, data :{entity: starter,{}}`);\n    monitorService.testWrite('post process');\n    monitorService.testWrite(`----- end block ${blockHeight}`);\n  }\n\n  it('monitor could write data', async () => {\n    mockWriteBlockData(55);\n    await expect(monitorService1.getBlockIndexRecords(55)).resolves.toContain('+++++ Start block 55');\n    await expect(monitorService1.getBlockIndexRecords(55)).resolves.toContain('fetch block 55');\n    await expect(monitorService1.getBlockIndexRecords(55)).resolves.toContain('----- end block 55');\n  });\n\n  it('reset file', () => {\n    mockWriteBlockData(55);\n    monitorService1.testResetFile('A');\n    // should get nothing from entries\n    expect(monitorService1.testGetBlockIndexEntries(55)).toStrictEqual([]);\n  });\n\n  it('when write one file is full, it could rotate to next file, and could getBlockIndexEntries, getBlockIndexRecords', async () => {\n    const monitorService2 = new testMonitorService(nodeConfig);\n    // set to small size, so it could rotate\n    (monitorService2 as any).monitorFileSize = 150;\n    const spySwitchFile = jest.spyOn(monitorService2 as any, 'switchToFile');\n\n    const spyInitCacheFileStats = jest.spyOn(monitorService2 as any, 'initCacheFileStats');\n    monitorService2.resetAll();\n    const writeBlocks = [2, 5, 15, 25, 35, 55];\n    for (const height of writeBlocks) {\n      mockWriteBlockData(height, monitorService2);\n    }\n    expect(spySwitchFile).toHaveBeenCalledTimes(5);\n    // rotate file many times, but FileStats should on been fetched once at init\n    expect(spyInitCacheFileStats).toHaveBeenCalledTimes(1);\n\n    // getBlockIndexEntries\n    expect(monitorService2.testGetBlockIndexEntries(25)).toStrictEqual([]);\n    expect(monitorService2.testGetBlockIndexEntries(35)).toStrictEqual([\n      {\n        blockHeight: 35,\n        endLine: 5,\n        file: 'A',\n        forked: false,\n        startLine: 0,\n      },\n    ]);\n    expect(monitorService2.testGetBlockIndexEntries(55)).toStrictEqual(\n      // return two indexes as switch files, start in file A, end in file B\n      [\n        {\n          blockHeight: 55,\n          endLine: 7,\n          file: 'A',\n          forked: false,\n          startLine: 6,\n        },\n        {\n          blockHeight: 55,\n          endLine: 5,\n          file: 'B',\n          forked: false,\n          startLine: 0,\n        },\n      ]\n    );\n    // getBlockIndexRecords\n    await expect(monitorService2.getBlockIndexRecords(2)).resolves.toBeUndefined();\n    await expect(monitorService2.getBlockIndexRecords(55)).resolves.toStrictEqual([\n      '+++++ Start block 55',\n      'fetch block 55',\n      'processing block 55',\n      'block handler 55',\n      'event handler 55, data :{entity: starter,{}}',\n      'post process',\n      '----- end block 55',\n    ]);\n  });\n\n  it('handle block forks happens', async () => {\n    // set to small size, so it could rotate\n    const monitorService2 = new testMonitorService(nodeConfig);\n    monitorService2.resetAll();\n    const beforeForkBlocks = [100, 105, 300];\n    for (const height of beforeForkBlocks) {\n      mockWriteBlockData(height, monitorService2);\n    }\n    monitorService2.createBlockFork(102);\n    const afterForkBlocks = [103, 105, 109, 300];\n    for (const height of afterForkBlocks) {\n      mockWriteBlockData(height, monitorService2);\n    }\n    monitorService2.createBlockFork(200);\n    await expect(monitorService2.getForkedRecords()).resolves.toStrictEqual([\n      '***** Forked at block 102',\n      '***** Forked at block 200',\n    ]);\n    expect(monitorService2.getBlockIndexHistory()).toStrictEqual(\n      // block 300 continued to file B, but we only keep one record here\n      [100, 105, 300, 'Forked 102', 103, 105, 109, 300, 'Forked 200']\n    );\n  });\n\n  it('init validation failed it could reset by itself', () => {\n    const monitorService2 = new testMonitorService(nodeConfig);\n    const beforeForkBlocks = [100, 105, 300];\n    for (const height of beforeForkBlocks) {\n      mockWriteBlockData(height, monitorService2);\n    }\n    const spyResetAll = jest.spyOn(monitorService2, 'resetAll');\n    // Case 1 .Mock index file is lost\n    monitorService2.testRemoveIndexFile();\n    monitorService2.testInit();\n    expect(spyResetAll).toHaveBeenCalledTimes(1);\n    jest.clearAllMocks();\n    // Case 2 .Mock last index record block file is lost\n    // Rewrite some data first\n    for (const height of beforeForkBlocks) {\n      mockWriteBlockData(height, monitorService2);\n    }\n    const lastIndexEntries = monitorService2.testGetBlockIndexEntries(300);\n    // Mock file lost\n    fs.rmSync((monitorService2 as any).getFilePath(lastIndexEntries[lastIndexEntries.length - 1].file));\n    monitorService2.testInit();\n    expect(spyResetAll).toHaveBeenCalledTimes(1);\n    jest.clearAllMocks();\n    // Case 3 .Mock last index entry and corresponding file is found , but file is broken/missing records\n    // Rewrite some data first\n    for (const height of beforeForkBlocks) {\n      mockWriteBlockData(height, monitorService2);\n    }\n    const block300Entry = monitorService2.testGetBlockIndexEntries(300)[0];\n    // Mock lost block 300 record before init (We are not expect to loss any data during indexing, we can not handle this as file stats are cached)\n    removeLinesFromFile(\n      (monitorService2 as any).getFilePath(block300Entry.file),\n      block300Entry.startLine,\n      block300Entry.endLine\n    );\n    // Mock indexing stopped and cache cleared\n    monitorService2.resetService();\n    monitorService2.testInit();\n    expect(spyResetAll).toHaveBeenCalledTimes(1);\n  });\n\n  it('should generate correct file path with sanitized dbSchema', () => {\n    const expectedPath1 = path.join(monitorDir, 'test-db-fileA.txt');\n    expect((monitorService1 as any).getFilePath('A')).toBe(expectedPath1);\n\n    const nodeConfig2 = {\n      monitorOutDir: monitorDir,\n      monitorFileSize: 1024,\n      dbSchema: 'd-1234/subquery/subquery-mainnet',\n    } as NodeConfig;\n    const monitorService2 = new testMonitorService(nodeConfig2);\n    const expectedPath2 = path.join(monitorDir, 'd-1234-subquery-subquery-mainnet-fileA.txt');\n    const indexPath = path.join(monitorDir, 'd-1234-subquery-subquery-mainnet-index.csv');\n    expect((monitorService2 as any).getFilePath('A')).toBe(expectedPath2);\n    expect((monitorService2 as any).indexPath).toBe(indexPath);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/monitor.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport * as fs from 'fs';\nimport path from 'path';\nimport * as readline from 'readline';\nimport {Injectable} from '@nestjs/common';\nimport {NodeConfig} from '../configure';\nimport {getLogger} from '../logger';\nimport {setMonitorService} from '../process';\n\nconst UNIT_MB = 1024 * 1024;\n\nconst logger = getLogger('Monitor');\n\nenum FileLocation {\n  'A' = 'fileA.txt',\n  'B' = 'fileB.txt',\n}\n\ninterface IndexEntry {\n  blockHeight: number;\n  startLine: number;\n  file: keyof typeof FileLocation; // 'A' or 'B' for fileAPath and fileBPath respectively\n  forked?: boolean;\n}\n\ninterface IndexBlockEntry extends IndexEntry {\n  endLine: number;\n}\n\ninterface FileStat {\n  fileSize: number;\n  fileEndLine: number;\n}\n\nexport interface MonitorServiceInterface {\n  write(blockData: string | (() => string)): void;\n  createBlockFork(blockHeight: number): void;\n  createBlockStart(blockHeight: number): void;\n}\n\nfunction sanitizeDbName(dbName: string): string {\n  return dbName.replace(/[\\\\/]/g, '-');\n}\n\n@Injectable()\nexport class MonitorService implements MonitorServiceInterface {\n  private readonly outputPath: string;\n  private readonly monitorFileSize: number;\n  private readonly indexPath: string;\n  private _currentFile: keyof typeof FileLocation | undefined;\n  private currentIndexHeight: number | undefined; // We need to keep this to update index when switch file, so we know current processing height\n  private _cachedFileStats: Record<keyof typeof FileLocation, FileStat> | undefined;\n\n  constructor(protected config: NodeConfig) {\n    this.outputPath = config.monitorOutDir;\n    this.monitorFileSize = config.monitorFileSize * UNIT_MB;\n    this.indexPath = path.join(this.outputPath, `${sanitizeDbName(this.config.dbSchema)}-index.csv`);\n    this.init();\n    setMonitorService(this);\n  }\n\n  static forceClean(monitorDir: string): void {\n    if (fs.existsSync(monitorDir)) {\n      fs.rmSync(monitorDir, {recursive: true, force: true});\n      logger.info('force cleaned monitor service files');\n    }\n  }\n\n  // maybe a good idea to expose this, if error didn't be caught api could still use reset\n  /**\n   * Reset all files and memory values\n   */\n  resetAll(): void {\n    fs.mkdirSync(this.outputPath, {recursive: true});\n    this.createOrResetFile(this.getFilePath('A'));\n    this.createOrResetFile(this.getFilePath('B'));\n    this.createOrResetFile(this.indexPath);\n    this._cachedFileStats = this.initCacheFileStats();\n    this._currentFile = 'A';\n  }\n\n  get currentFile(): keyof typeof FileLocation {\n    if (!this._currentFile) throw new Error(`Current write file is not defined`);\n    return this._currentFile;\n  }\n\n  get cachedFileStats(): Record<keyof typeof FileLocation, FileStat> {\n    if (this._cachedFileStats === undefined) {\n      this._cachedFileStats = this.initCacheFileStats();\n    }\n    return this._cachedFileStats;\n  }\n\n  get currentFileSize(): number {\n    return this.cachedFileStats[this.currentFile].fileSize;\n  }\n\n  set currentFileSize(number: number) {\n    this.cachedFileStats[this.currentFile].fileSize = number;\n  }\n\n  get currentFileLastLine(): number {\n    return this.cachedFileStats[this.currentFile].fileEndLine;\n  }\n\n  set currentFileLastLine(number: number) {\n    this.cachedFileStats[this.currentFile].fileEndLine = number;\n  }\n\n  /**\n   * Init service, also validate\n   */\n  private init(): void {\n    if (this.monitorFileSize <= 0) {\n      return;\n    }\n    if (!fs.existsSync(this.outputPath) || !fs.existsSync(this.indexPath)) {\n      this.resetAll();\n    } else {\n      try {\n        // `readLastIndexEntry` also include assertion to make sure endLine is valid\n        const lastIndexEntry = this.readLastIndexEntry();\n        // No index info been found, then reset\n        if (lastIndexEntry === undefined) {\n          throw new Error(`Last index entry is not found or incomplete`);\n        } else if (!fs.existsSync(this.getFilePath(lastIndexEntry.file))) {\n          throw new Error(\n            `Last index entry point to file ${lastIndexEntry.file}, but not found under dir ${this.outputPath}`\n          );\n        } else {\n          this._currentFile = lastIndexEntry.file;\n        }\n      } catch (e) {\n        logger.error(`${e}, will try to reset monitor files`);\n        this.resetAll();\n      }\n    }\n  }\n\n  // To human-readable block history，still experimental, this can be more friendly\n  getBlockIndexHistory(): (number | string)[] {\n    const mixedArray: (number | string)[] = [];\n    const indexEntries = this.getAllIndexEntries();\n    indexEntries.forEach((entry) => {\n      if (entry.forked) {\n        mixedArray.push(`Forked ${entry.blockHeight}`);\n      } else {\n        // Skip this block height, treat it as 2nd index of same block but in another file\n        if (entry.startLine === 0 && mixedArray[mixedArray.length - 1] === entry.blockHeight) {\n          return;\n        }\n        mixedArray.push(entry.blockHeight);\n      }\n    });\n    return mixedArray;\n  }\n\n  /**\n   * Get all forked heights and records\n   */\n  async getForkedRecords(): Promise<string[] | undefined> {\n    const forkedEntries = this.getForkedEntries();\n    return this.getRecordsWithEntries(forkedEntries);\n  }\n\n  /**\n   *  Get block height index records\n   * @param blockHeight\n   */\n  async getBlockIndexRecords(blockHeight: number): Promise<string[] | undefined> {\n    const indexEntries = this.getBlockIndexEntries(blockHeight);\n    return this.getRecordsWithEntries(indexEntries);\n  }\n\n  /**\n   * create a record for fork\n   * @param blockHeight\n   */\n  createBlockFork(blockHeight: number): void {\n    if (this.monitorFileSize <= 0) {\n      return;\n    }\n    this.currentIndexHeight = blockHeight;\n    this.write(`***** Forked at block ${blockHeight}`);\n    this.updateIndex({\n      blockHeight,\n      startLine: this.currentFileLastLine,\n      file: this.currentFile,\n      forked: true,\n    });\n  }\n\n  /**\n   * create a record for block start\n   * @param blockHeight\n   */\n  createBlockStart(blockHeight: number): void {\n    if (this.monitorFileSize <= 0) {\n      return;\n    }\n    this.currentIndexHeight = blockHeight;\n    this.write(`+++++ Start block ${blockHeight}`);\n    this.updateIndex({\n      blockHeight,\n      startLine: this.currentFileLastLine,\n      file: this.currentFile,\n      forked: false,\n    });\n  }\n\n  /**\n   * Write block record data to file\n   * @param blockData string or function that returns a string, this allows lazy interpolation for any heavy stringification\n   */\n  write(blockData: string | (() => string)): void {\n    if (this.monitorFileSize <= 0) {\n      return;\n    }\n    this.checkAndSwitchFile();\n    const escapedBlockData = (typeof blockData === 'string' ? blockData : blockData()).replace(/\\n/g, '\\\\n');\n    fs.appendFileSync(this.getFilePath(this.currentFile), `${escapedBlockData}\\n`);\n    this.currentFileSize += Buffer.byteLength(escapedBlockData) + 1; // + 1 for the new line\n    this.currentFileLastLine += 1;\n  }\n\n  private initCacheFileStats(): Record<keyof typeof FileLocation, FileStat> {\n    return {\n      A: {\n        fileSize: this.getFileSize('A'),\n        fileEndLine: this.getGetNumberOfLines('A'),\n      },\n      B: {\n        fileSize: this.getFileSize('B'),\n        fileEndLine: this.getGetNumberOfLines('B'),\n      },\n    };\n  }\n\n  /**\n   * By given a list of index entry (from index file), found corresponding block index records\n   * @param indexEntries\n   * @private\n   */\n  private async getRecordsWithEntries(indexEntries: IndexBlockEntry[]): Promise<string[] | undefined> {\n    if (!indexEntries.length) {\n      return undefined;\n    }\n    const records: string[] = [];\n    for (const indexEntry of indexEntries) {\n      const filePath = this.getFilePath(indexEntry.file);\n\n      try {\n        const fileStream = fs.createReadStream(filePath);\n        const rl = readline.createInterface({\n          input: fileStream,\n          crlfDelay: Infinity,\n        });\n\n        let currentLine = 0;\n\n        rl.on('line', (line) => {\n          currentLine++;\n          if (currentLine >= indexEntry.startLine && currentLine <= indexEntry.endLine) {\n            records.push(line);\n          }\n          if (currentLine > indexEntry.endLine) {\n            rl.close(); // Stop reading the file further\n          }\n        });\n\n        await new Promise<void>((resolve, reject) => {\n          rl.on('close', resolve);\n          rl.on('error', reject);\n          fileStream.on('error', reject);\n        });\n      } catch (error) {\n        logger.error(`Error get block records in file ${filePath}:`, error);\n        return undefined; // Or handle the error as needed\n      }\n    }\n    return records;\n  }\n\n  /**\n   * Get all index entries\n   * @private\n   */\n  private getAllIndexEntries(): IndexEntry[] {\n    const indexData = fs.readFileSync(this.indexPath, 'utf-8');\n    const data = indexData.trim().split('\\n');\n    return data.map((d) => this.decodeIndexRow(d));\n  }\n\n  private getForkedEntries(): IndexBlockEntry[] {\n    const results: IndexBlockEntry[] = [];\n    const indexEntries = this.getAllIndexEntries();\n    indexEntries.forEach((entry) => {\n      if (entry.forked) {\n        results.push({...entry, endLine: entry.startLine});\n      }\n    });\n    return results;\n  }\n\n  private getBlockIndexEntries(blockHeight: number): IndexBlockEntry[] {\n    const results: IndexBlockEntry[] = [];\n    const indexData = fs.readFileSync(this.indexPath, 'utf-8');\n    const data = indexData.trim().split('\\n');\n    for (let i = 0; i < data.length; i++) {\n      const indexBlockEntry = this.decodeIndexRow(data[i]);\n      if (indexBlockEntry.blockHeight === blockHeight) {\n        let endLine: number | undefined;\n        const nextIndex = i + 1;\n        if (nextIndex < data.length) {\n          const nextIndexBlockEntry = this.decodeIndexRow(data[nextIndex]);\n          // If next entry are in same file, then we can calculate current index endline\n          if (indexBlockEntry.file === nextIndexBlockEntry.file) {\n            endLine = nextIndexBlockEntry.startLine - 1;\n          }\n          // not same, means file location has changed\n          else {\n            endLine = this.cachedFileStats[indexBlockEntry.file].fileEndLine;\n          }\n        } else {\n          // Last index record in index file\n          endLine = this.cachedFileStats[indexBlockEntry.file].fileEndLine;\n        }\n        results?.push({...indexBlockEntry, endLine});\n      }\n    }\n    return results;\n  }\n\n  /**\n   * Read last index, and return IndexBlockInfo, if no record, return undefined\n   * @private\n   */\n  private readLastIndexEntry(): IndexBlockEntry | undefined {\n    try {\n      const indexData = fs.readFileSync(this.indexPath, 'utf-8');\n      const rows = indexData.trim().split('\\n');\n      if (!rows || rows[0] === '') {\n        return undefined;\n      }\n      const lastRow = rows[rows.length - 1];\n      const indexEntry = this.decodeIndexRow(lastRow);\n      const endLine = this.cachedFileStats[indexEntry.file].fileEndLine;\n      if (endLine < indexEntry.startLine) {\n        throw new Error(\n          `Expect last entry record block ${indexEntry.blockHeight}, in file ${indexEntry.file} start from line ${indexEntry.startLine}, but last line in file is ${endLine} `\n        );\n      }\n      return {...indexEntry, endLine};\n    } catch (error) {\n      // Error will be handled in higher level with undefined result\n      logger.error(`Error read last index entry : ${error}`);\n    }\n    return undefined;\n  }\n\n  private resetFile(file: keyof typeof FileLocation): void {\n    const backupIndexPath = `${this.indexPath}.bak`;\n    try {\n      // Backup the original index file\n      const backupContent = fs.readFileSync(this.indexPath, 'utf-8');\n      fs.writeFileSync(backupIndexPath, backupContent, 'utf-8');\n      this.removeIndexEntriesByFile(file);\n    } catch (e) {\n      // Rollback by restoring the backup\n      const backupContent = fs.readFileSync(backupIndexPath, 'utf-8');\n      fs.writeFileSync(this.indexPath, backupContent, 'utf-8');\n      fs.rmSync(backupIndexPath);\n      throw new Error(`Error during index removal: ${e}`);\n    }\n    // Only remove file when index is successful removed\n    fs.rmSync(this.getFilePath(file));\n    fs.rmSync(backupIndexPath);\n    this.createOrResetFile(this.getFilePath(file));\n  }\n\n  private getFileSize(file: keyof typeof FileLocation): number {\n    const filePath = this.getFilePath(file);\n    const stats = fs.statSync(filePath);\n    return stats.size;\n  }\n\n  private getFilePath(file: keyof typeof FileLocation): string {\n    return path.join(this.outputPath, `${sanitizeDbName(this.config.dbSchema)}-${FileLocation[file]}`);\n  }\n\n  private updateIndex(indexEntry: IndexEntry): void {\n    const csvLine = `${indexEntry.blockHeight},${indexEntry.startLine},${indexEntry.file},${\n      indexEntry.forked ? '*' : ''\n    }\\n`;\n    fs.appendFileSync(this.indexPath, csvLine); // Append the index entry to the CSV file\n  }\n\n  private removeIndexEntriesByFile(file: keyof typeof FileLocation): void {\n    const fileContent = fs.readFileSync(this.indexPath, 'utf-8');\n    const rows = fileContent.split('\\n');\n    const filteredRows = rows.filter((line) => {\n      const [, , fileLocationStr] = line.split(',');\n      return fileLocationStr !== file;\n    });\n    const filteredContent = filteredRows.join('\\n');\n    fs.writeFileSync(this.indexPath, filteredContent, 'utf-8');\n  }\n\n  private decodeIndexRow(row: string): IndexEntry {\n    const [entryBlockHeightStr, startLineStr, fileLocationStr, forkedStr] = row.split(',');\n    const file = fileLocationStr as keyof typeof FileLocation;\n    return {\n      blockHeight: parseInt(entryBlockHeightStr),\n      startLine: parseInt(startLineStr),\n      file,\n      forked: forkedStr === '*',\n    };\n  }\n\n  // this is expecting to be found, as given file is from index entry\n  // if unmatched is found, it will throw from here.\n  private getGetNumberOfLines(file: keyof typeof FileLocation): number {\n    try {\n      const filePath = this.getFilePath(file);\n      const fileData = fs.readFileSync(filePath, 'utf-8');\n      // return 0 for new file\n      if (fileData === '') {\n        return 0;\n      }\n      const lines = fileData.trim().split('\\n');\n      return lines.length;\n    } catch (e) {\n      throw new Error(`Get last line from given file ${file} failed, ${e}`);\n    }\n  }\n\n  private checkAndSwitchFile(): void {\n    if (this.currentFileSize >= this.monitorFileSize) {\n      if (this.currentFile === 'A') {\n        this.switchToFile('B');\n      } else {\n        this.switchToFile('A');\n      }\n    }\n  }\n\n  private switchToFile(file: keyof typeof FileLocation): void {\n    logger.debug(`Switch to file ${file}`);\n    if (this.currentIndexHeight === undefined) {\n      throw new Error(`Switch to new file but current index height is not defined`);\n    }\n    this.resetFile(file);\n    this._currentFile = file;\n    this.currentFileSize = 0;\n    this.currentFileLastLine = 0;\n    this.updateIndex({blockHeight: this.currentIndexHeight, startLine: this.currentFileLastLine, file});\n  }\n\n  private createOrResetFile(filePath: string): void {\n    fs.writeFileSync(filePath, '');\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/multiChainRewind.service.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {buildSchemaFromString} from '@subql/utils';\nimport {QueryTypes, Sequelize} from '@subql/x-sequelize';\nimport {NodeConfig} from '../configure';\nimport {DbOption} from '../db';\nimport {delay} from '../utils';\nimport {MultiChainRewindStatus} from './entities';\nimport {MultiChainRewindService} from './multiChainRewind.service';\nimport {StoreService} from './store.service';\nimport {PlainStoreModelService} from './storeModelProvider';\n\nconst option: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\njest.setTimeout(60000);\n// Mock 1740100000 is the timestamp of the genesis block\nconst genBlockTimestamp = (height: number) => {\n  const rewindTimestamp = (1740100000 + height) * 1000;\n  return {rewindTimestamp, rewindDate: new Date(rewindTimestamp)};\n};\n\nconst testSchemaName = 'test_multi_chain_rewind';\nconst schema = buildSchemaFromString(`\n  type Account @entity {\n    id: ID! # Account address\n    balance: Int\n  }\n`);\n\nasync function createChainProject(chainId: string, mockBlockchainService: any, sequelize: Sequelize) {\n  const nodeConfig = new NodeConfig({\n    subquery: 'test',\n    dbSchema: testSchemaName,\n    proofOfIndex: true,\n    enableCache: false,\n    multiChain: true,\n  });\n  const project = {network: {chainId}, schema} as any;\n  const dbModel = new PlainStoreModelService(sequelize, nodeConfig);\n  const storeService = new StoreService(sequelize, nodeConfig, dbModel, project);\n  await storeService.initCoreTables(testSchemaName);\n  const tx = await sequelize.transaction();\n  await storeService.init(testSchemaName, tx);\n  await storeService.modelProvider.metadata.set('chain', chainId, tx);\n  await storeService.modelProvider.metadata.set('startHeight', 1, tx);\n  await storeService.modelProvider.metadata.set('lastProcessedHeight', 10000, tx);\n  await storeService.modelProvider.metadata.set(\n    'lastProcessedBlockTimestamp',\n    genBlockTimestamp(10000).rewindTimestamp,\n    tx\n  );\n  await tx.commit();\n\n  const multiChainRewindService = new MultiChainRewindService(\n    nodeConfig,\n    sequelize,\n    storeService,\n    mockBlockchainService\n  );\n\n  const reindex = jest.fn();\n\n  // Initialize the service\n  await multiChainRewindService.init(chainId, reindex);\n\n  return {sequelize, storeService, multiChainRewindService};\n}\n\ndescribe('MultiChain Rewind Service', () => {\n  const notifyHandleDelay = 0.5;\n  const lockInfoSql = `SELECT \"chainId\",\"rewindTimestamp\",\"status\" FROM \"${testSchemaName}\".\"_global\";`;\n\n  const chainId1 = 'chain1';\n  const chainId2 = 'chain2';\n  let sequelize: Sequelize;\n  let sequelize1: Sequelize;\n  let sequelize2: Sequelize;\n  let storeService1: StoreService, multiChainRewindService1: MultiChainRewindService;\n  let storeService2: StoreService, multiChainRewindService2: MultiChainRewindService;\n\n  // Mock IBlockchainService\n  const mockBlockchainService = {\n    getHeaderForHeight: jest.fn((height: number) => ({\n      blockHeight: height,\n      timestamp: genBlockTimestamp(height).rewindDate,\n      blockHash: `hash${height}`,\n      parentHash: height > 0 ? `hash${height - 1}` : '',\n    })),\n  };\n\n  beforeEach(async () => {\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    await sequelize.authenticate();\n    await sequelize.query(`CREATE SCHEMA ${testSchemaName};`);\n\n    sequelize1 = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    const projectChain1 = await createChainProject(chainId1, mockBlockchainService, sequelize1);\n    storeService1 = projectChain1.storeService;\n    multiChainRewindService1 = projectChain1.multiChainRewindService;\n\n    sequelize2 = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    const projectChain2 = await createChainProject(chainId2, mockBlockchainService, sequelize2);\n    storeService2 = projectChain2.storeService;\n    multiChainRewindService2 = projectChain2.multiChainRewindService;\n  });\n\n  afterEach(async () => {\n    await multiChainRewindService1.onApplicationShutdown();\n    await multiChainRewindService2.onApplicationShutdown();\n    await sequelize.query(`DROP SCHEMA ${testSchemaName} CASCADE;`);\n    await sequelize.close();\n  });\n\n  describe('acquireGlobalRewindLock', () => {\n    it('setGlobalRewindLock should set the lock timestamp', async () => {\n      const {rewindDate} = genBlockTimestamp(5);\n      const result = await multiChainRewindService1.acquireGlobalRewindLock(rewindDate);\n      expect(result).toEqual(true);\n\n      const res = await sequelize.query(lockInfoSql, {type: QueryTypes.SELECT});\n      expect(res).toEqual(\n        expect.arrayContaining([\n          {chainId: chainId1, rewindTimestamp: rewindDate, status: MultiChainRewindStatus.Incomplete},\n          {chainId: chainId2, rewindTimestamp: rewindDate, status: MultiChainRewindStatus.Incomplete},\n        ])\n      );\n    });\n\n    it('A rewind can be moved further back when there is already one in progress.', async () => {\n      const {rewindDate: rewindDate10} = genBlockTimestamp(10);\n      const {rewindDate: rewindDate5} = genBlockTimestamp(5);\n\n      await expect(multiChainRewindService1.acquireGlobalRewindLock(rewindDate10)).resolves.toBe(true);\n      let res = await sequelize.query(lockInfoSql, {type: QueryTypes.SELECT});\n      expect(res).toEqual(\n        expect.arrayContaining([\n          {chainId: chainId1, rewindTimestamp: rewindDate10, status: MultiChainRewindStatus.Incomplete},\n          {chainId: chainId2, rewindTimestamp: rewindDate10, status: MultiChainRewindStatus.Incomplete},\n        ])\n      );\n\n      await expect(multiChainRewindService1.acquireGlobalRewindLock(rewindDate5)).resolves.toBe(true);\n      res = await sequelize.query(lockInfoSql, {type: QueryTypes.SELECT});\n      expect(res).toEqual(\n        expect.arrayContaining([\n          {chainId: chainId1, rewindTimestamp: rewindDate5, status: MultiChainRewindStatus.Incomplete},\n          {chainId: chainId2, rewindTimestamp: rewindDate5, status: MultiChainRewindStatus.Incomplete},\n        ])\n      );\n    });\n\n    it('Not allowed to lock further backward', async () => {\n      const {rewindDate: rewindDate10} = genBlockTimestamp(10);\n      const {rewindDate: rewindDate5} = genBlockTimestamp(5);\n\n      await expect(multiChainRewindService1.acquireGlobalRewindLock(rewindDate5)).resolves.toBe(true);\n      let res = await sequelize.query(lockInfoSql, {type: QueryTypes.SELECT});\n      expect(res).toEqual(\n        expect.arrayContaining([\n          {chainId: chainId1, rewindTimestamp: rewindDate5, status: MultiChainRewindStatus.Incomplete},\n          {chainId: chainId2, rewindTimestamp: rewindDate5, status: MultiChainRewindStatus.Incomplete},\n        ])\n      );\n\n      await expect(multiChainRewindService1.acquireGlobalRewindLock(rewindDate10)).resolves.toBe(false);\n      res = await sequelize.query(lockInfoSql, {type: QueryTypes.SELECT});\n      expect(res).toEqual(\n        expect.arrayContaining([\n          {chainId: chainId1, rewindTimestamp: rewindDate5, status: MultiChainRewindStatus.Incomplete},\n          {chainId: chainId2, rewindTimestamp: rewindDate5, status: MultiChainRewindStatus.Incomplete},\n        ])\n      );\n    });\n\n    it('Only one can successfully acquire the lock.', async () => {\n      const {rewindDate: rewindDate1} = genBlockTimestamp(5);\n      const {rewindDate: rewindDate2} = genBlockTimestamp(5);\n\n      const results = await Promise.allSettled([\n        multiChainRewindService1.acquireGlobalRewindLock(rewindDate1),\n        multiChainRewindService2.acquireGlobalRewindLock(rewindDate2),\n      ]);\n\n      const success = results.filter((result) => result.status === 'fulfilled');\n      const failures = results.filter((result) => result.status === 'rejected');\n\n      expect(success.length).toBe(1);\n      expect(failures.length).toBe(1);\n    });\n  });\n\n  describe('releaseChainRewindLock', () => {\n    const {rewindDate} = genBlockTimestamp(5);\n    beforeEach(async () => {\n      await multiChainRewindService1.acquireGlobalRewindLock(rewindDate);\n    });\n    it('Same height as the target, release lock', async () => {\n      const tx = await sequelize1.transaction();\n      const remaining = await multiChainRewindService1.releaseChainRewindLock(tx, rewindDate);\n      await tx.commit();\n\n      expect(remaining).toBe(1);\n    });\n\n    it('Different height from the target, release failed.', async () => {\n      const tx = await sequelize1.transaction();\n      await expect(multiChainRewindService1.releaseChainRewindLock(tx, new Date())).rejects.toThrow();\n      await tx.rollback();\n    });\n\n    it('The height of rewindLock is greater than or equal to lastProcessHeight, it can be forcibly released.', async () => {\n      const {rewindDate: allowLastDate} = genBlockTimestamp(5);\n\n      const tx = await sequelize1.transaction();\n      const remaining = await multiChainRewindService1.releaseChainRewindLock(tx, rewindDate, allowLastDate);\n      await tx.commit();\n      expect(remaining).toBe(1);\n    });\n\n    it('rewindLock is less than lastProcessHeight, it cannot be forcibly released.', async () => {\n      const {rewindDate: allowLastDate} = genBlockTimestamp(6);\n      const tx = await sequelize1.transaction();\n      await expect(multiChainRewindService1.releaseChainRewindLock(tx, rewindDate, allowLastDate)).rejects.toThrow();\n      await tx.rollback();\n    });\n  });\n\n  describe('The situation where notifyHandle controls the state', () => {\n    it('A chain rollback has been completed.', async () => {\n      const {rewindDate} = genBlockTimestamp(5);\n      await multiChainRewindService1.acquireGlobalRewindLock(rewindDate);\n      await delay(notifyHandleDelay);\n      expect(multiChainRewindService1.status).toBe(MultiChainRewindStatus.Incomplete);\n\n      const tx = await sequelize1.transaction();\n      const remaining = await multiChainRewindService1.releaseChainRewindLock(tx, rewindDate);\n      await tx.commit();\n      expect(multiChainRewindService1.status).toBe(MultiChainRewindStatus.Complete);\n\n      await delay(notifyHandleDelay);\n      expect(remaining).toBe(1);\n      expect(multiChainRewindService2.status).toEqual(MultiChainRewindStatus.Incomplete);\n      expect(multiChainRewindService2.waitRewindHeader).toEqual({\n        blockHash: 'hash5',\n        blockHeight: 5,\n        parentHash: 'hash4',\n        timestamp: rewindDate,\n      });\n    });\n\n    it('should handle multiple concurrent rewind requests', async () => {\n      const {rewindDate: rewindDate1} = genBlockTimestamp(5);\n      const {rewindDate: rewindDate2} = genBlockTimestamp(3); // Earlier timestamp\n\n      await multiChainRewindService1.acquireGlobalRewindLock(rewindDate1);\n      await delay(notifyHandleDelay);\n      expect(multiChainRewindService1.status).toBe(MultiChainRewindStatus.Incomplete);\n\n      await multiChainRewindService2.acquireGlobalRewindLock(rewindDate2);\n      await delay(notifyHandleDelay);\n      expect(multiChainRewindService2.status).toBe(MultiChainRewindStatus.Incomplete);\n\n      // The rewindTimestamp of the later chain will overwrite that of the earlier chain.\n      const res = await sequelize.query(lockInfoSql, {type: QueryTypes.SELECT});\n      expect(res).toEqual([\n        {chainId: chainId1, rewindTimestamp: rewindDate2, status: MultiChainRewindStatus.Incomplete},\n        {chainId: chainId2, rewindTimestamp: rewindDate2, status: MultiChainRewindStatus.Incomplete},\n      ]);\n\n      // Rollback to rewindDate1 is not allowed because it has already been overwritten.\n      let remaining = 2;\n      let tx = await sequelize1.transaction();\n      await expect(multiChainRewindService1.releaseChainRewindLock(tx, rewindDate1)).rejects.toThrow();\n      await tx.rollback();\n      expect(multiChainRewindService1.status).toBe(MultiChainRewindStatus.Incomplete);\n\n      // Rollback to rewindDate2 is allowed.\n      tx = await sequelize1.transaction();\n      remaining = await multiChainRewindService1.releaseChainRewindLock(tx, rewindDate2);\n      await tx.commit();\n      expect(remaining).toBe(1);\n      expect(multiChainRewindService1.status).toBe(MultiChainRewindStatus.Complete);\n\n      // Chain2 has started rolling back.\n      tx = await sequelize2.transaction();\n      remaining = await multiChainRewindService2.releaseChainRewindLock(tx, rewindDate2);\n      await tx.commit();\n      // This can fail because the notification has already come in and the status is back to normal\n      expect(multiChainRewindService2.status).toBe(MultiChainRewindStatus.Complete);\n\n      await delay(notifyHandleDelay);\n      // The last chain rollback is complete, all chains have finished rolling back.\n      expect(remaining).toBe(0);\n      expect(multiChainRewindService1.status).toBe(MultiChainRewindStatus.Normal);\n      expect(multiChainRewindService2.status).toBe(MultiChainRewindStatus.Normal);\n    });\n\n    it('should handle binary search edge cases for timestamp matching', async () => {\n      // Mock the binary search to simulate a large gap between blocks\n      const mockGetHeaderByBinarySearch = jest.spyOn(multiChainRewindService1 as any, 'getHeaderByBinarySearch');\n      mockGetHeaderByBinarySearch.mockResolvedValueOnce({\n        blockHeight: 4,\n        timestamp: genBlockTimestamp(4).rewindDate,\n        blockHash: 'hash4',\n        parentHash: 'hash3',\n      });\n\n      const {rewindDate} = genBlockTimestamp(4.5); // Timestamp between blocks 4 and 5\n      await multiChainRewindService1.acquireGlobalRewindLock(rewindDate);\n      await delay(notifyHandleDelay);\n      expect(multiChainRewindService1.status).toBe(MultiChainRewindStatus.Incomplete);\n      expect(mockGetHeaderByBinarySearch).toHaveBeenCalledWith(expect.any(Date));\n      expect(multiChainRewindService1.waitRewindHeader).toEqual({\n        blockHeight: 4,\n        timestamp: genBlockTimestamp(4.5).rewindDate,\n        blockHash: 'hash4',\n        parentHash: 'hash3',\n      });\n\n      const tx = await sequelize1.transaction();\n      const remaining = await multiChainRewindService1.releaseChainRewindLock(tx, rewindDate);\n      await tx.commit();\n      expect(multiChainRewindService1.status).toBe(MultiChainRewindStatus.Complete);\n      expect(remaining).toBe(1);\n      expect(multiChainRewindService1.waitRewindHeader).toBeUndefined();\n    });\n  });\n\n  describe('getHeaderByBinarySearch', () => {\n    beforeEach(async () => {\n      (multiChainRewindService1 as any).startHeight = 20;\n      await storeService1.modelProvider.metadata.set('lastProcessedHeight', 10000);\n    });\n\n    it('Within the already processed interval', async () => {\n      const {rewindDate} = genBlockTimestamp(23);\n      const header = await (multiChainRewindService1 as any).getHeaderByBinarySearch(rewindDate);\n\n      expect(header).toEqual({\n        blockHeight: 23,\n        timestamp: rewindDate,\n        blockHash: 'hash23',\n        parentHash: 'hash22',\n      });\n    });\n\n    it('Not within the already processed interval', async () => {\n      const {rewindDate: rewindDate19} = genBlockTimestamp(19);\n      const {rewindDate: rewindDate20} = genBlockTimestamp(20);\n      const header = await (multiChainRewindService1 as any).getHeaderByBinarySearch(rewindDate19);\n      expect(header).toEqual({\n        blockHeight: 20,\n        timestamp: rewindDate20,\n        blockHash: 'hash20',\n        parentHash: 'hash19',\n      });\n\n      const {rewindDate: rewindDate10001} = genBlockTimestamp(10001);\n      const {rewindDate: rewindDate10000} = genBlockTimestamp(10000);\n      const header10001 = await (multiChainRewindService1 as any).getHeaderByBinarySearch(rewindDate10001);\n      expect(header10001).toEqual({\n        blockHeight: 10000,\n        timestamp: rewindDate10000,\n        blockHash: 'hash10000',\n        parentHash: 'hash9999',\n      });\n    });\n  });\n\n  describe('Project initialization', () => {\n    const reindex = jest.fn();\n    let multiChainRewindService: MultiChainRewindService;\n\n    beforeEach(async () => {\n      const nodeConfig = new NodeConfig({\n        subquery: 'test',\n        dbSchema: testSchemaName,\n        proofOfIndex: true,\n        enableCache: false,\n        multiChain: true,\n      });\n      const project = {network: {chainId: chainId1}, schema} as any;\n      const dbModel = new PlainStoreModelService(sequelize, nodeConfig);\n      const storeService = new StoreService(sequelize, nodeConfig, dbModel, project);\n      await storeService.initCoreTables(testSchemaName);\n      const tx = await sequelize.transaction();\n      await storeService.init(testSchemaName, tx);\n      await tx.commit();\n\n      multiChainRewindService = new MultiChainRewindService(\n        nodeConfig,\n        sequelize,\n        storeService,\n        mockBlockchainService as any\n      );\n    });\n    afterEach(async () => {\n      await multiChainRewindService.onApplicationShutdown();\n      jest.clearAllMocks();\n    });\n\n    it('Normal startup, starting will not trigger a reindex.', async () => {\n      // Initialize the service\n      await multiChainRewindService.init(chainId1, reindex);\n\n      expect(reindex).toHaveBeenCalledTimes(0);\n    });\n\n    it('After another chain undergoes a rewind, the current chain starts, which can trigger a reindex.', async () => {\n      const {rewindDate} = genBlockTimestamp(5);\n      await multiChainRewindService1.acquireGlobalRewindLock(rewindDate);\n\n      // Initialize the service\n      await multiChainRewindService.init(chainId1, reindex);\n\n      expect(reindex).toHaveBeenCalledTimes(1);\n      expect(multiChainRewindService.status).toBe(MultiChainRewindStatus.Incomplete);\n      expect(multiChainRewindService.waitRewindHeader).toEqual({\n        blockHeight: 5,\n        timestamp: rewindDate,\n        blockHash: 'hash5',\n        parentHash: 'hash4',\n      });\n    });\n\n    it('The current chain has already completed the rewind, and there are still other chains that need to rewind. In this case, starting will not trigger a reindex.', async () => {\n      const {rewindDate} = genBlockTimestamp(5);\n      await multiChainRewindService1.acquireGlobalRewindLock(rewindDate);\n      const tx = await sequelize1.transaction();\n      await multiChainRewindService1.releaseChainRewindLock(tx, rewindDate);\n      await tx.commit();\n\n      // Initialize the service\n      await multiChainRewindService.init(chainId1, reindex);\n\n      expect(multiChainRewindService.status).toBe(MultiChainRewindStatus.Complete);\n      expect(reindex).toHaveBeenCalledTimes(0);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/multiChainRewind.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Inject, Injectable, OnApplicationShutdown} from '@nestjs/common';\nimport {hashName} from '@subql/utils';\nimport {Transaction, Sequelize} from '@subql/x-sequelize';\nimport {Connection} from '@subql/x-sequelize/types/dialects/abstract/connection-manager';\nimport {uniqueId} from 'lodash';\nimport {Notification, PoolClient} from 'pg';\nimport {IBlockchainService} from '../blockchain.service';\nimport {NodeConfig} from '../configure';\nimport {createRewindTrigger, createRewindTriggerFunction, getTriggers} from '../db';\nimport {MultiChainRewindEvent} from '../events';\nimport {getLogger} from '../logger';\nimport {mainThreadOnly} from '../utils';\nimport {MultiChainRewindStatus} from './entities';\nimport {StoreService} from './store.service';\nimport {PlainGlobalModel} from './storeModelProvider/global/global';\nimport {Header} from './types';\n\nconst logger = getLogger('MultiChainRewindService');\n\n/**\n * Working principle:\n * multiChainRewindService is primarily responsible for coordinating multi-chain projects.\n * When global.rewindLock changes, a PG trigger sends a notification, and all subscribed chain projects will receive the rollback notification.\n * This triggers a rollback process, where the fetch service handles the message by clearing the queue.\n * During the next fillNextBlockBuffer loop, if it detects the rewinding state, it will execute the rollback.\n */\n@Injectable()\nexport class MultiChainRewindService implements OnApplicationShutdown {\n  private _shutdown = false;\n  private _status: MultiChainRewindStatus = MultiChainRewindStatus.Normal;\n  private _chainId?: string;\n  private dbSchema: string;\n  private rewindTriggerName: string;\n  private startHeight = 0;\n  private pgListener?: PoolClient;\n  private _globalModel?: PlainGlobalModel = undefined;\n  private processingPromise: Promise<void> = Promise.resolve();\n  waitRewindHeader?: Header;\n  constructor(\n    private nodeConfig: NodeConfig,\n    private sequelize: Sequelize,\n    private storeService: StoreService,\n    @Inject('IBlockchainService') private readonly blockchainService: IBlockchainService\n  ) {\n    this.dbSchema = this.nodeConfig.dbSchema;\n    this.rewindTriggerName = hashName(this.dbSchema, 'rewind_trigger', '_global');\n  }\n\n  get chainId(): string {\n    assert(this._chainId, 'chainId is not set');\n    return this._chainId;\n  }\n\n  private set status(status: MultiChainRewindStatus) {\n    this._status = status;\n  }\n\n  get status(): MultiChainRewindStatus {\n    assert(this._status, 'status is not set');\n    return this._status;\n  }\n\n  get globalModel(): PlainGlobalModel {\n    if (!this._globalModel) {\n      this._globalModel = new PlainGlobalModel(this.dbSchema, this.chainId, this.storeService.globalDataRepo);\n    }\n    return this._globalModel;\n  }\n\n  async onApplicationShutdown(): Promise<void> {\n    this._shutdown = true;\n    await this.processingPromise;\n    if (this.pgListener) {\n      this.sequelize.connectionManager.releaseConnection(this.pgListener as Connection);\n      this.pgListener = undefined;\n    }\n  }\n\n  @mainThreadOnly()\n  async init(chainId: string, reindex?: (targetHeader: Header) => Promise<void>): Promise<Header | undefined> {\n    this._chainId = chainId;\n\n    if (reindex === undefined) {\n      // When using the reindex command, this parameter is not required.\n      return;\n    }\n    if (!this.storeService.isMultichain) return;\n\n    await this.sequelize.query(`${createRewindTriggerFunction(this.dbSchema)}`);\n    const rewindTriggers = await getTriggers(this.sequelize, this.rewindTriggerName);\n    if (rewindTriggers.length === 0) {\n      await this.sequelize.query(`${createRewindTrigger(this.dbSchema)}`);\n    }\n\n    const startHeight = await this.storeService.modelProvider.metadata.find('startHeight');\n    assert(startHeight !== undefined, 'startHeight is not set');\n    this.startHeight = startHeight;\n\n    // Register a listener and create a schema notification sending function.\n    await this.registerPgListener();\n\n    if (this.waitRewindHeader) {\n      const rewindHeader = {...this.waitRewindHeader};\n      await reindex(rewindHeader);\n      return rewindHeader;\n    }\n  }\n\n  private async registerPgListener() {\n    if (this.pgListener) return;\n\n    // Creating a new pgClient is to avoid using the same database connection as the block scheduler,\n    // which may prevent real-time listening to rollback events.\n    this.pgListener = (await this.sequelize.connectionManager.getConnection({\n      type: 'read',\n    })) as PoolClient;\n\n    this.pgListener.on('notification', this.notifyHandle.bind(this));\n\n    await this.pgListener.query(`LISTEN \"${this.rewindTriggerName}\"`);\n    logger.info(`Register rewind listener success, chainId: ${this.chainId}`);\n\n    // Check whether the current state is in rollback.\n    // If a global lock situation occurs, prioritize setting it to the WaitOtherChain state. If a rollback is still required, then set it to the rewinding state.\n    const chainRewindInfo = await this.globalModel.getChainRewindInfo();\n    if (!chainRewindInfo) return;\n\n    if (chainRewindInfo.status === MultiChainRewindStatus.Complete) {\n      this.status = MultiChainRewindStatus.Complete;\n    }\n    if (chainRewindInfo.status === MultiChainRewindStatus.Incomplete) {\n      this.status = MultiChainRewindStatus.Incomplete;\n      this.waitRewindHeader = await this.searchWaitRewindHeader(chainRewindInfo.rewindTimestamp);\n    }\n  }\n\n  private notifyHandle(msg: Notification) {\n    this.processingPromise = this.processingPromise.then(async () => {\n      // We're shutdown but still receiving messages, so we ignore them.\n      if (this._shutdown) return;\n      assert(msg.payload, 'Payload is empty');\n      const {chainId, event: eventType} = JSON.parse(msg.payload) as {chainId: string; event: MultiChainRewindEvent};\n      if (chainId !== this.chainId) return;\n\n      const sessionUuid = uniqueId();\n      logger.info(`[${sessionUuid}]Received rewind event: ${eventType}, chainId: ${this.chainId}`);\n      switch (eventType) {\n        case MultiChainRewindEvent.Rewind:\n        case MultiChainRewindEvent.RewindTimestampDecreased: {\n          const chainRewindInfo = await this.globalModel.getChainRewindInfo();\n          assert(chainRewindInfo, `Not registered rewind timestamp in global data, chainId: ${this.chainId}`);\n\n          await this.setStatus(MultiChainRewindStatus.Incomplete, chainRewindInfo.rewindTimestamp);\n          break;\n        }\n        case MultiChainRewindEvent.RewindComplete:\n          await this.setStatus(MultiChainRewindStatus.Complete);\n          break;\n        case MultiChainRewindEvent.FullyRewind:\n          await this.setStatus(MultiChainRewindStatus.Normal);\n          break;\n        default:\n          throw new Error(`Unknown rewind event: ${eventType}`);\n      }\n      logger.info(`[${sessionUuid}]Handle success rewind event: ${eventType}, chainId: ${this.chainId}`);\n    });\n  }\n\n  private async searchWaitRewindHeader(rewindTimestamp: Date): Promise<Header> {\n    const rewindBlockHeader = await this.getHeaderByBinarySearch(rewindTimestamp);\n    // The blockHeader.timestamp obtained from the query cannot be used directly, as it will cause an infinite loop.\n    // Different chains have timestamp discrepancies, which will result in infinite backward tracing.\n    return {...rewindBlockHeader, timestamp: rewindTimestamp};\n  }\n\n  /**\n   * If the set rewindTimestamp is greater than or equal to the current blockHeight, we do nothing because we will roll back to an earlier time.\n   * If the set rewindTimestamp is less than the current blockHeight, we should roll back to the earlier rewindTimestamp.\n   * @param rewindTimestamp rewindTimestamp in milliseconds\n   */\n  @mainThreadOnly()\n  async acquireGlobalRewindLock(rewindTimestamp: Date): Promise<boolean> {\n    const {lockTimestamp} = await this.globalModel.acquireGlobalRewindLock(rewindTimestamp);\n\n    const existEarlierLock = lockTimestamp < rewindTimestamp;\n    if (!existEarlierLock) {\n      logger.info(`setGlobalRewindLock success chainId: ${this.chainId}, rewindTimestamp: ${rewindTimestamp}`);\n    }\n    return !existEarlierLock;\n  }\n\n  @mainThreadOnly()\n  /**\n   * Check if the height is consistent before unlocking.\n   * @param tx\n   * @param rewindTimestamp The timestamp to roll back to.\n   * @param allowRewindTimestamp Set a rewind-allowed height; only heights greater than or equal this can be released.\n   * @returns the number of remaining rewind chains\n   */\n  async releaseChainRewindLock(tx: Transaction, rewindTimestamp: Date, allowRewindTimestamp?: Date): Promise<number> {\n    const chainsCount = await this.globalModel.releaseChainRewindLock(tx, rewindTimestamp, allowRewindTimestamp);\n    // The current chain has completed the rewind, and we still need to wait for other chains to finish.\n    // When fully synchronized, set the status back to normal by pgListener.\n    await this.setStatus(MultiChainRewindStatus.Complete);\n    logger.info(`Rewind success chainId: ${JSON.stringify({chainsCount, chainId: this.chainId, rewindTimestamp})}`);\n    return chainsCount;\n  }\n\n  private async setStatus(status: MultiChainRewindStatus, rewindTimestamp?: Date) {\n    if (status === MultiChainRewindStatus.Incomplete) {\n      assert(rewindTimestamp, 'rewindTimestamp is not set');\n      this.status = MultiChainRewindStatus.Incomplete;\n      this.waitRewindHeader = await this.searchWaitRewindHeader(rewindTimestamp);\n    } else {\n      this.status = status;\n      this.waitRewindHeader = undefined;\n    }\n  }\n\n  /**\n   * Get the block header closest to the given timestamp\n   * @param timestamp To find the block closest to a given timestamp\n   * @returns\n   */\n  private async getHeaderByBinarySearch(timestamp: Header['timestamp']): Promise<Header> {\n    let left = this.startHeight;\n    let {height: right} = await this.storeService.getLastProcessedBlock();\n    let searchNum = 0;\n    while (left < right) {\n      searchNum++;\n      const mid = Math.floor((left + right) / 2);\n      const header = await this.blockchainService.getHeaderForHeight(mid);\n\n      if (header.timestamp === timestamp) {\n        return header;\n      } else if (header.timestamp < timestamp) {\n        left = mid + 1;\n      } else {\n        right = mid;\n      }\n    }\n\n    const targetHeader = await this.blockchainService.getHeaderForHeight(left);\n    logger.info(`Binary search times: ${searchNum}, target Header: ${JSON.stringify(targetHeader)}`);\n\n    return targetHeader;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/poi/PoiBlock.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {PoiBlock} from './PoiBlock';\n\ndescribe('Poi Block', () => {\n  it('create default block, block that has no operation and not been fetched', () => {\n    const poiBlock = PoiBlock.create(100, null, null, 'test', new Uint8Array());\n    expect(poiBlock.hash).toBeDefined();\n  });\n\n  it('chainBlockHash and Operation hash should either both null or both defined, otherwise should throw error', () => {\n    expect(() =>\n      PoiBlock.create(\n        100,\n        '0xe1858e5710e2a60caad17505d799baafa8bc58a49bb52b9b9009427e9dc764ee',\n        null,\n        'test',\n        new Uint8Array()\n      )\n    ).toThrow();\n  });\n\n  it('for default block, parentHash must be provided, otherwise should throw', () => {\n    expect(() => PoiBlock.create(100, null, null, 'test', undefined)).toThrow();\n  });\n\n  it('create new block with operations, and place hold for parent hash and hash', () => {\n    const poiBlock = PoiBlock.create(\n      1,\n      '0xe1858e5710e2a60caad17505d799baafa8bc58a49bb52b9b9009427e9dc764ee',\n      new Uint8Array(),\n      'test',\n      undefined\n    );\n    expect(poiBlock.hash).toBeUndefined();\n    expect(poiBlock.parentHash).toBeUndefined();\n    expect(poiBlock.operationHashRoot).toBeDefined();\n  });\n\n  it('update existing block with parent hash, it should create its own block hash', () => {\n    const poiBlock = PoiBlock.create(\n      1,\n      '0xe1858e5710e2a60caad17505d799baafa8bc58a49bb52b9b9009427e9dc764ee',\n      new Uint8Array(),\n      'test',\n      new Uint8Array()\n    );\n    expect(poiBlock.hash).toBeDefined();\n    expect(poiBlock.parentHash).toBeDefined();\n  });\n\n  it('supports hex block hashes', () => {\n    // Shiden\n    // https://polkadot.js.org/apps/#/explorer/query/0xe1858e5710e2a60caad17505d799baafa8bc58a49bb52b9b9009427e9dc764ee\n    const poiBlock = PoiBlock.create(\n      1,\n      '0xe1858e5710e2a60caad17505d799baafa8bc58a49bb52b9b9009427e9dc764ee',\n      new Uint8Array(),\n      'test',\n      undefined\n    );\n\n    expect(poiBlock.chainBlockHash).toBeDefined();\n  });\n\n  it('supports u8a block hashes', () => {\n    const hash = new Uint8Array([\n      225, 133, 142, 87, 16, 226, 166, 12, 170, 209, 117, 5, 215, 153, 186, 175, 168, 188, 88, 164, 155, 181, 43, 155,\n      144, 9, 66, 126, 157, 199, 100, 238,\n    ]);\n    const poiBlock = PoiBlock.create(1, hash, new Uint8Array(), 'test', new Uint8Array());\n    expect(poiBlock.chainBlockHash).toBeDefined();\n  });\n\n  it('supports base58 block hashes', () => {\n    // https://explorer.near.org/blocks/8gBy5MhHUAg2gVv5Uu9A8mTJF4hpDXteoKykgJiwSFZS\n    const poiBlock = PoiBlock.create(\n      1,\n      '8gBy5MhHUAg2gVv5Uu9A8mTJF4hpDXteoKykgJiwSFZS',\n      new Uint8Array(),\n      'test',\n      new Uint8Array()\n    );\n    expect(poiBlock.chainBlockHash).toBeDefined();\n  });\n\n  it('supports base64 block hashes', () => {\n    // https://algoexplorer.io/block/100798\n    let poiBlock = PoiBlock.create(\n      1,\n      'KDG6EJ7FUMNFWZJLHDIJQICOZZ4PORTW5OZPUPRJRGOOM63WQ74A',\n      new Uint8Array(),\n      'test',\n      new Uint8Array()\n    );\n    expect(poiBlock.chainBlockHash).toBeDefined();\n\n    poiBlock = PoiBlock.create(\n      1,\n      '7mxLwnp5sElF3ZtZaR2Pe/28+ytwwVNn3hfcQnSurV4=',\n      new Uint8Array(),\n      'test',\n      new Uint8Array()\n    );\n    expect(poiBlock.chainBlockHash).toBeDefined();\n\n    // https://github.com/polkadot-js/common/issues/1841\n    poiBlock = PoiBlock.create(\n      1,\n      'a1UbyspTdnyZXLUQaQbciCxrCWWxz24kgSwGXSQnkbs=',\n      new Uint8Array(),\n      'test',\n      new Uint8Array()\n    );\n    expect(poiBlock.chainBlockHash).toBeDefined();\n  });\n\n  it('throws on unsupported block hash format', () => {\n    expect(() => PoiBlock.create(1, '!@#$%^&', new Uint8Array(), 'test', new Uint8Array())).toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/poi/PoiBlock.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n  u8aConcat,\n  numberToU8a,\n  hexToU8a,\n  isHex,\n  isU8a,\n  blake2AsU8a,\n  isBase58,\n  base58Decode,\n  isBase64,\n  base64Decode,\n  u8aToBuffer,\n} from '@subql/utils';\nimport {ProofOfIndex} from '../entities/Poi.entity';\nexport const DEFAULT_BLOCK_HASH = hexToU8a('0x00');\nexport const NULL_OPERATION_HASH = hexToU8a('0x00');\n\nconst poiBlockHash = (\n  id: number,\n  chainBlockHash: string | Uint8Array | null,\n  operationHashRoot: Uint8Array | null,\n  projectId: string,\n  parentHash: Uint8Array\n): Uint8Array => {\n  if (!id || !projectId || chainBlockHash === undefined || operationHashRoot === undefined) {\n    throw new Error('Poof of index: can not generate block hash');\n  }\n  return blake2AsU8a(\n    u8aConcat(\n      numberToU8a(id),\n      chainBlockHash ?? u8aToBuffer(DEFAULT_BLOCK_HASH),\n      operationHashRoot ?? u8aToBuffer(NULL_OPERATION_HASH),\n      Buffer.from(projectId),\n      parentHash\n    )\n  );\n};\n\nexport class PoiBlock implements ProofOfIndex {\n  // poi block id, this usually same as on chain block height\n  readonly id: number;\n  // on chain block hash\n  readonly chainBlockHash: Uint8Array | null;\n  // Hash generated from store actions within current block\n  readonly operationHashRoot: Uint8Array | null;\n  // project deployment ID\n  readonly projectId: string;\n  // previous poi block hash\n  readonly parentHash: Uint8Array | undefined;\n  // current poi hash, this is hash from above values.\n  readonly hash: Uint8Array | undefined;\n\n  constructor(\n    id: number,\n    chainBlockHash: Uint8Array | null,\n    operationHashRoot: Uint8Array | null,\n    projectId: string,\n    parentHash?: Uint8Array,\n    hash?: Uint8Array\n  ) {\n    this.id = id;\n    this.chainBlockHash = chainBlockHash;\n    this.operationHashRoot = operationHashRoot;\n    this.projectId = projectId;\n    this.parentHash = parentHash;\n    this.hash = hash;\n  }\n\n  static create(\n    id: number,\n    chainBlockHash: string | Uint8Array | null,\n    operationHashRoot: Uint8Array | null,\n    projectId: string,\n    parentHash?: Uint8Array\n  ): PoiBlock {\n    // projectId is deprecated from _POI table, but in order to keep consist with previous hash,\n    // We still take projectId as part of the calculation\n\n    // Validation for default empty block\n    if (\n      (operationHashRoot === null && chainBlockHash !== null) ||\n      (operationHashRoot !== null && chainBlockHash === null)\n    ) {\n      throw new Error(\n        `Create POI block ${id} failed, chainBlockHash and operationHashRoot should be both null or both defined`\n      );\n    }\n    if (operationHashRoot === null && chainBlockHash === null) {\n      // For default empty block, it can not be a genesis hash, parentHash must be defined\n      if (parentHash === undefined) {\n        throw new Error(`Create default POI ${id} failed, parentHash must be defined.`);\n      }\n    }\n\n    let _chainBlockHash: Uint8Array | null;\n    if (isHex(chainBlockHash)) {\n      _chainBlockHash = hexToU8a(chainBlockHash);\n    } else if (isU8a(chainBlockHash)) {\n      _chainBlockHash = chainBlockHash;\n      // needs release with to remove second check https://github.com/polkadot-js/common/pull/1842\n    } else if (isBase58(chainBlockHash) && !chainBlockHash.includes('=')) {\n      // Near block hashes are base58 encoded\n      _chainBlockHash = base58Decode(chainBlockHash);\n    } else if (isBase64(chainBlockHash)) {\n      // Algorand block hashes are base64 encoded\n      _chainBlockHash = base64Decode(chainBlockHash);\n    } else if (chainBlockHash === null) {\n      // For empty block, those we didn't process and skipped\n      _chainBlockHash = null;\n    } else {\n      throw new Error(`Unable to create PoiBlock, chainBlockHash was not valid. Received: \"${chainBlockHash}\"`);\n    }\n\n    let hash: Uint8Array | undefined;\n    if (parentHash !== undefined) {\n      hash = poiBlockHash(id, _chainBlockHash, operationHashRoot, projectId, parentHash);\n    }\n    const poiBlock = new PoiBlock(id, _chainBlockHash, operationHashRoot, projectId, parentHash, hash);\n    return poiBlock;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/poi/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './poi.service';\nexport * from './poiSync.service';\nexport * from './PoiBlock';\n"
  },
  {
    "path": "packages/node-core/src/indexer/poi/poi.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {Test, TestingModule} from '@nestjs/testing';\nimport {delay} from '@subql/common';\nimport {Sequelize, Transaction} from '@subql/x-sequelize';\nimport {NodeConfig} from '../../configure';\nimport {ProofOfIndex} from '../entities/Poi.entity';\nimport {StoreCacheService} from '../storeModelProvider';\nimport {PoiService} from './poi.service';\n\njest.mock('@subql/x-sequelize', () => {\n  let data: Record<string, any> = {};\n\n  let pendingData: typeof data = {};\n  let afterCommitHooks: Array<() => void> = [];\n\n  const mSequelize = {\n    authenticate: jest.fn(),\n    define: () => ({\n      findOne: jest.fn(),\n      create: (input: any) => input,\n      findByPk: jest.fn((key: string) => ({\n        toJSON: () => (key === 'latestSyncedPoiHeight' ? {values: 10} : undefined),\n      })),\n    }),\n    query: () => [{nextval: 1}],\n    showAllSchemas: () => ['subquery_1'],\n    sync: jest.fn(),\n    transaction: () => ({\n      commit: jest.fn(async () => {\n        await delay(1);\n        data = {...data, ...pendingData};\n        pendingData = {};\n        afterCommitHooks.map((fn) => fn());\n        afterCommitHooks = [];\n      }), // Delay of 1s is used to test whether we wait for cache to flush\n      rollback: jest.fn(),\n      afterCommit: jest.fn((fn) => afterCommitHooks.push(fn)),\n    }),\n    // createSchema: jest.fn(),\n  };\n  const actualSequelize = jest.requireActual('@subql/x-sequelize');\n  return {\n    ...actualSequelize,\n    Sequelize: jest.fn(() => mSequelize),\n  };\n});\n\ndescribe('PoiService', () => {\n  let service: PoiService;\n  let nodeConfig: NodeConfig;\n  let storeCache: StoreCacheService;\n\n  beforeEach(async () => {\n    nodeConfig = {\n      proofOfIndex: true,\n      debug: false,\n    } as unknown as NodeConfig;\n\n    const sequelize = new Sequelize();\n    storeCache = new StoreCacheService(sequelize, nodeConfig, new EventEmitter2());\n\n    storeCache.init('height', {} as any, {} as any);\n    (storeCache as any).cachedModels._metadata = {\n      find: jest.fn().mockResolvedValue(10),\n      bulkRemove: jest.fn(),\n      set: jest.fn(),\n      findByPk: jest.fn(),\n    } as any;\n\n    const module: TestingModule = await Test.createTestingModule({\n      providers: [PoiService, {provide: 'IStoreModelProvider', useValue: storeCache}],\n    }).compile();\n\n    service = module.get<PoiService>(PoiService);\n  });\n\n  afterEach(async () => {\n    await storeCache?.beforeApplicationShutdown();\n    service.onApplicationShutdown();\n  });\n\n  it('should be defined', () => {\n    expect(service).toBeDefined();\n  });\n\n  describe('PoiToHuman', () => {\n    it('should convert ProofOfIndex to ProofOfIndexHuman', () => {\n      const proofOfIndex: ProofOfIndex = {\n        id: 1,\n        parentHash: Buffer.from('parentHash'),\n        hash: Buffer.from('hash'),\n        chainBlockHash: Buffer.from('chainBlockHash'),\n        operationHashRoot: Buffer.from('operationHashRoot'),\n      };\n\n      const result = PoiService.PoiToHuman(proofOfIndex);\n      expect(result).toEqual({\n        ...proofOfIndex,\n        parentHash: '0x706172656e7448617368',\n        hash: '0x68617368',\n        chainBlockHash: '0x636861696e426c6f636b48617368',\n        operationHashRoot: '0x6f7065726174696f6e48617368526f6f74',\n      });\n    });\n  });\n\n  describe('init', () => {\n    it('should initialize the poiRepo and migratePoi if needed', async () => {\n      (storeCache as any).cachedModels._metadata = {\n        find: jest.fn().mockResolvedValue(undefined),\n        bulkRemove: jest.fn(),\n        set: jest.fn(),\n        findByPk: jest.fn().mockResolvedValue(undefined),\n      } as any;\n\n      (service as any).migratePoi = jest.fn();\n\n      const spyOnMigration = jest.spyOn(service as any, 'migratePoi');\n\n      await service.init('testSchema');\n      expect(storeCache.metadata.find).toHaveBeenCalledWith('latestSyncedPoiHeight');\n      expect(spyOnMigration).toHaveBeenCalled();\n    });\n\n    it('should not migratePoi if latestSyncedPoiHeight is defined', async () => {\n      await service.init('testSchema');\n      expect(storeCache.metadata.find).toHaveBeenCalledWith('latestSyncedPoiHeight');\n    });\n  });\n\n  describe('rewind', () => {\n    it('should rewind the poi records and update metadata', async () => {\n      const transaction = {} as Transaction;\n      const targetBlockHeight = 5;\n      (storeCache as any).cachedModels._metadata = {\n        find: jest.fn().mockResolvedValue(10),\n        bulkRemove: jest.fn(),\n        set: jest.fn(),\n      } as any;\n\n      (service as any)._poiRepo = {\n        model: {\n          findOne: jest.fn().mockResolvedValueOnce({id: 1}),\n          findAll: jest\n            .fn()\n            .mockResolvedValueOnce([{id: 1}])\n            .mockResolvedValueOnce([]), // first time return to destroy, second time to stop\n          destroy: jest.fn().mockResolvedValueOnce(1),\n        },\n      } as any;\n\n      await service.rewind(targetBlockHeight, transaction);\n      expect(storeCache.metadata.bulkRemove).toHaveBeenCalledWith(['lastCreatedPoiHeight'], transaction);\n    });\n  });\n\n  describe('migratePoi', () => {\n    it('should migrate the POI table', async () => {\n      const schema = 'testSchema';\n      const mockRepo = {\n        model: {\n          getTableName: jest.fn().mockReturnValue('poi'),\n          sequelize: {\n            query: jest.fn(),\n            transaction: jest.fn().mockResolvedValue({\n              commit: jest.fn(),\n            }),\n          },\n        },\n      };\n      (service as any)._poiRepo = mockRepo as any;\n\n      await (service as any).migratePoi(schema);\n      expect(mockRepo.model.getTableName).toHaveBeenCalled();\n    });\n\n    it('should throw an error if migration fails', async () => {\n      const schema = 'testSchema';\n      const mockRepo = {\n        model: {\n          getTableName: jest.fn().mockReturnValue('testTable'),\n          sequelize: {\n            query: jest.fn().mockRejectedValue(new Error('Migration failed')),\n            transaction: jest.fn().mockResolvedValue({\n              commit: jest.fn(),\n            }),\n          },\n        },\n      };\n      (service as any)._poiRepo = mockRepo as any;\n\n      await expect((service as any).migratePoi(schema)).rejects.toThrow('Failed to migrate poi table. {e}');\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/poi/poi.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Inject, Injectable, OnApplicationShutdown} from '@nestjs/common';\nimport {u8aToHex} from '@subql/utils';\nimport {Op, QueryTypes, Transaction} from '@subql/x-sequelize';\nimport {sqlIterator} from '../../db';\nimport {getLogger} from '../../logger';\nimport {PoiRepo} from '../entities';\nimport {ProofOfIndex, ProofOfIndexHuman, SyncedProofOfIndex} from '../entities/Poi.entity';\nimport {IStoreModelProvider} from '../storeModelProvider';\nimport {IPoi, CachePoiModel, PlainPoiModel} from '../storeModelProvider/poi';\n\nconst logger = getLogger('PoiService');\n\n/**\n * Poi service responsible for Poi creation.\n * Also, could migrate previous poi table and recorded rewind poi\n */\n\n@Injectable()\nexport class PoiService implements OnApplicationShutdown {\n  private isShutdown = false;\n  private _poiRepo?: IPoi;\n\n  constructor(@Inject('IStoreModelProvider') private storeModelProvider: IStoreModelProvider) {}\n\n  onApplicationShutdown(): void {\n    this.isShutdown = true;\n  }\n\n  static PoiToHuman(proofOfIndex: ProofOfIndex | SyncedProofOfIndex): ProofOfIndexHuman {\n    return {\n      ...proofOfIndex,\n      parentHash: proofOfIndex.parentHash ? u8aToHex(proofOfIndex.parentHash) : undefined,\n      hash: proofOfIndex.hash ? u8aToHex(proofOfIndex.hash) : undefined,\n      chainBlockHash: proofOfIndex.chainBlockHash ? u8aToHex(proofOfIndex.chainBlockHash) : undefined,\n      operationHashRoot: proofOfIndex.operationHashRoot ? u8aToHex(proofOfIndex.operationHashRoot) : undefined,\n    };\n  }\n\n  get poiRepo(): IPoi {\n    if (!this._poiRepo) {\n      throw new Error(`No poi repo inited`);\n    }\n    return this._poiRepo;\n  }\n\n  get plainPoiRepo(): PlainPoiModel {\n    if (this.poiRepo instanceof CachePoiModel) {\n      return this.poiRepo.plainPoiModel;\n    } else if (this.poiRepo instanceof PlainPoiModel) {\n      return this.poiRepo;\n    }\n    throw new Error(`No plainPoiRepo repo inited`);\n  }\n\n  /**\n   * Init poi service, prepare poiRepo for rewind etc\n   * Migrate poi if required.\n   * @param schema\n   */\n  async init(schema: string): Promise<void> {\n    this._poiRepo = this.storeModelProvider.poi ?? undefined;\n    if (!this._poiRepo) {\n      return;\n    }\n    const latestSyncedPoiHeight = await this.storeModelProvider.metadata.find('latestSyncedPoiHeight');\n    if (latestSyncedPoiHeight === undefined) {\n      await this.migratePoi(schema);\n    }\n  }\n\n  /**\n   * Migrate previous poi table (with mmr etc)\n   * @param schema\n   * @private\n   */\n  private async migratePoi(schema: string): Promise<void> {\n    try {\n      // Remove and Change column from sequelize not work, it only applies to public schema\n      // https://github.com/sequelize/sequelize/issues/13365\n      // await this.poiRepo?.model.sequelize?.getQueryInterface().changeColumn(tableName,'mmrRoot',{})\n      const tableName = this.poiRepo.model.getTableName().toString();\n      const checkAttributesQuery = `SELECT\n        (NOT EXISTS (SELECT 1 FROM ${tableName} WHERE \"operationHashRoot\" IS NOT NULL)) AS operationhashroot_nullable,\n        (NOT EXISTS (SELECT 1 FROM ${tableName} WHERE \"chainBlockHash\" IS NOT NULL)) AS chainblockhash_nullable,\n        (NOT EXISTS (SELECT 1 FROM ${tableName} WHERE \"hash\" IS NOT NULL)) AS hash_nullable,\n        (NOT EXISTS (SELECT 1 FROM ${tableName} WHERE \"parentHash\" IS NOT NULL)) AS parent_nullable,\n        (EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = '_poi' AND column_name = 'mmrRoot' AND table_schema = '${schema}' )) AS mmr_exists;`;\n\n      const checkResult = await this.poiRepo.model.sequelize?.query(checkAttributesQuery, {\n        plain: true,\n      });\n\n      // Drop previous keys in metadata\n      await this.storeModelProvider.metadata.bulkRemove(['blockOffset', 'latestPoiWithMmr', 'lastPoiHeight']);\n\n      const queries: string[] = [];\n\n      if (checkResult) {\n        if (checkResult.mmr_exists) {\n          queries.push(`ALTER TABLE ${tableName} DROP COLUMN \"mmrRoot\";`);\n          queries.push(`DROP TABLE IF EXISTS \"${schema}\".\"_mmr\";`);\n        }\n        if (!checkResult.operationhashroot_nullable) {\n          queries.push(`ALTER TABLE ${tableName} ALTER COLUMN \"operationHashRoot\" DROP NOT NULL;`);\n        }\n        if (!checkResult.chainblockhash_nullable) {\n          queries.push(`ALTER TABLE ${tableName} ALTER COLUMN \"chainBlockHash\" DROP NOT NULL;`);\n          // keep existing chainBlockHash\n          queries.push(\n            sqlIterator(\n              tableName,\n              `CREATE UNIQUE INDEX IF NOT EXISTS \"poi_chainBlockHash\" ON ${tableName} (\"hash\") WHERE \"hash\" IS NOT NULL`\n            )\n          );\n        }\n        if (!checkResult.hash_nullable) {\n          queries.push(`ALTER TABLE ${tableName} ALTER COLUMN \"hash\" DROP NOT NULL;`);\n          queries.push(sqlIterator(tableName, `UPDATE ${tableName} SET hash = NULL`));\n          queries.push(\n            sqlIterator(\n              tableName,\n              `CREATE UNIQUE INDEX IF NOT EXISTS \"poi_hash\" ON ${tableName} (\"hash\") WHERE \"hash\" IS NOT NULL`\n            )\n          );\n        }\n        if (!checkResult.parent_nullable) {\n          queries.push(`ALTER TABLE ${tableName} ALTER COLUMN \"parentHash\" DROP NOT NULL;`);\n          queries.push(sqlIterator(tableName, `UPDATE ${tableName} SET \"parentHash\" = NULL`));\n\n          queries.push(\n            sqlIterator(\n              tableName,\n              `CREATE UNIQUE INDEX IF NOT EXISTS \"poi_parent_hash\" ON ${tableName} (\"parentHash\") WHERE \"parentHash\" IS NOT NULL`\n            )\n          );\n        }\n      }\n\n      if (queries.length) {\n        logger.info('Migrating POI table, this may take some time');\n        const tx = await this.poiRepo.model.sequelize?.transaction();\n        if (!tx) {\n          throw new Error(`Create transaction for poi migration got undefined!`);\n        }\n        for (const query of queries) {\n          try {\n            await this.poiRepo?.model.sequelize?.query(query, {type: QueryTypes.SELECT, transaction: tx});\n          } catch (e) {\n            logger.error(`Migration poi failed with query: ${query}`);\n            throw e;\n          }\n        }\n        await tx.commit();\n        logger.info('Migrating POI completed.');\n        if (checkResult?.mmr_exists) {\n          logger.info(`If file based mmr were used previously, it can be clean up manually`);\n        }\n      }\n    } catch (e) {\n      throw new Error(`Failed to migrate poi table. {e}`);\n    }\n  }\n\n  async rewind(targetBlockHeight: number, transaction: Transaction): Promise<void> {\n    await batchDeletePoi(this.poiRepo.model, transaction, targetBlockHeight);\n    const lastSyncedPoiHeight = await this.storeModelProvider.metadata.find('latestSyncedPoiHeight');\n\n    if (lastSyncedPoiHeight !== undefined && lastSyncedPoiHeight > targetBlockHeight) {\n      const genesisPoi = await this.poiRepo.model.findOne({\n        order: [['id', 'ASC']],\n        transaction: transaction,\n      });\n      // This indicates reindex height is less than genesis poi height\n      // And genesis poi has been remove from `batchDeletePoi`\n      if (!genesisPoi) {\n        await this.storeModelProvider.metadata.bulkRemove(['latestSyncedPoiHeight'], transaction);\n      } else {\n        await this.storeModelProvider.metadata.set('latestSyncedPoiHeight', targetBlockHeight, transaction);\n      }\n    }\n    await this.storeModelProvider.metadata.bulkRemove(['lastCreatedPoiHeight'], transaction);\n  }\n}\n\n// REMOVE 10,000 record per batch\nasync function batchDeletePoi(\n  model: PoiRepo,\n  transaction: Transaction,\n  targetBlockHeight: number,\n  batchSize = 10000\n): Promise<void> {\n  // eslint-disable-next-line no-constant-condition\n  while (true) {\n    try {\n      const recordsToDelete = await model.findAll({\n        transaction,\n        limit: batchSize,\n        where: {\n          id: {\n            [Op.gt]: targetBlockHeight,\n          },\n        },\n      });\n      if (recordsToDelete.length === 0) {\n        break;\n      }\n      logger.debug(`Found Poi recordsToDelete ${recordsToDelete.length}`);\n      if (recordsToDelete.length) {\n        await model.destroy({\n          transaction,\n          hooks: false,\n          where: {\n            id: {\n              [Op.in]: recordsToDelete.map((record) => record.id),\n            },\n          },\n        });\n      }\n      // offset += batchSize;\n    } catch (e) {\n      throw new Error(`Reindex model Poi failed, please try to reindex again: ${e}`);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/poi/poiSync.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {delay} from '@subql/common';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {range} from 'lodash';\nimport {NodeConfig} from '../../configure';\nimport {MetadataFactory, PoiFactory, ProofOfIndex} from '../../indexer';\nimport {Queue} from '../../utils';\nimport {PlainPoiModel} from '../storeModelProvider/poi';\nimport {ISubqueryProject} from '../types';\nimport {PoiSyncService} from './poiSync.service';\n\njest.mock('@subql/x-sequelize', () => {\n  let data: Record<string, any> = {};\n\n  let pendingData: typeof data = {};\n  let afterCommitHooks: Array<() => void> = [];\n\n  const mSequelize = {\n    authenticate: jest.fn(),\n    define: () => ({\n      findOne: jest.fn(),\n      create: (input: any) => input,\n      findByPk: jest.fn((key: string) => ({\n        toJSON: () => (key === 'latestSyncedPoiHeight' ? {values: 10} : undefined),\n      })),\n    }),\n    query: () => [{nextval: 1}],\n    showAllSchemas: () => ['subquery_1'],\n    // model: (entity: string) => ({\n    //   getTableName: () => 'table1',\n    //   sequelize: {\n    //     escape: (key: any) => key,\n    //     query: (sql: string, option?: any) => jest.fn(),\n    //     fn: jest.fn().mockImplementation(() => {\n    //       return {fn: 'int8range', args: [41204769, null]};\n    //     }),\n    //   },\n    //   upsert: jest.fn(),\n    //   findByPk: jest.fn((key:string) => ({\n    //     toJSON: () => (key === 'latestSyncedPoiHeight'?{values:10}:undefined),\n    //   })),\n    //   findOne: jest.fn(({transaction, where: {id}}) => ({\n    //     toJSON: () => (transaction ? pendingData[id] ?? data[id] : data[id]),\n    //   })),\n    //   bulkCreate: jest.fn((records: {id: string}[]) => {\n    //     records.map((r) => (pendingData[r.id] = r));\n    //   }),\n    //   destroy: jest.fn(),\n    // }),\n    sync: jest.fn(),\n    transaction: () => ({\n      commit: jest.fn(async () => {\n        await delay(1);\n        data = {...data, ...pendingData};\n        pendingData = {};\n        afterCommitHooks.map((fn) => fn());\n        afterCommitHooks = [];\n      }), // Delay of 1s is used to test whether we wait for cache to flush\n      rollback: jest.fn(),\n      afterCommit: jest.fn((fn) => afterCommitHooks.push(fn)),\n    }),\n    // createSchema: jest.fn(),\n  };\n  const actualSequelize = jest.requireActual('@subql/x-sequelize');\n  return {\n    ...actualSequelize,\n    Sequelize: jest.fn(() => mSequelize),\n  };\n});\n\nasync function createPoiSyncService(): Promise<PoiSyncService> {\n  const nodeConfig = {\n    proofOfIndex: true,\n    debug: false,\n  } as unknown as NodeConfig;\n\n  const eventEmitter = new EventEmitter2();\n\n  const sequelize = new Sequelize();\n  const poiSyncService = new PoiSyncService(nodeConfig, eventEmitter, {id: 'testId'} as ISubqueryProject);\n  (poiSyncService as any)._sequelize = sequelize;\n\n  (poiSyncService as any)._poiRepo = new PlainPoiModel(PoiFactory(sequelize, 'testSchema'));\n  (poiSyncService as any)._metadataRepo = await MetadataFactory(\n    sequelize,\n    'testSchema',\n    false,\n    '' //No multi chain involved\n  );\n  return poiSyncService;\n}\n\nasync function createGenesisPoi(poiSyncService: PoiSyncService) {\n  // mock poi repo\n  const genesisPoi = {\n    id: 100,\n    chainBlockHash: new Uint8Array(),\n    hash: new Uint8Array(),\n    parentHash: new Uint8Array(),\n    operationHashRoot: new Uint8Array(),\n  };\n  (poiSyncService as any)._poiRepo = {\n    getPoiById: (id = 100) => {\n      return genesisPoi;\n    },\n    getFirst: () => {\n      return genesisPoi;\n    },\n    bulkUpsert: jest.fn(),\n    getPoiBlocksByRange: jest.fn(),\n  };\n  (poiSyncService as any)._projectId = 'test';\n  (poiSyncService as any).updateMetadataSyncedPoi = jest.fn(); // Mock upsert metadata\n  (poiSyncService as any).getMetadataLatestSyncedPoi = jest.fn(() => 100);\n  await (poiSyncService as any).ensureGenesisPoi();\n  await (poiSyncService as any).syncLatestSyncedPoiFromDb();\n}\n\ndescribe('Poi Service sync', () => {\n  let poiSyncService: PoiSyncService;\n\n  beforeEach(async () => {\n    poiSyncService = await createPoiSyncService();\n  });\n\n  afterAll(() => {\n    poiSyncService.stopSync();\n    poiSyncService.onApplicationShutdown();\n  });\n\n  it('sync hold until genesis poi been created', () => {\n    const spyOnSync = jest.spyOn(poiSyncService as any, 'syncPoiJob');\n    void poiSyncService.syncPoi(100);\n    expect(spyOnSync).not.toHaveBeenCalled();\n  });\n\n  it('could set genesis Poi into metadata', async () => {\n    await createGenesisPoi(poiSyncService);\n    expect(poiSyncService.latestSyncedPoi.hash).toBeDefined();\n    expect(poiSyncService.latestSyncedPoi.parentHash).toBeDefined();\n    expect(poiSyncService.latestSyncedPoi.id).toBe(100);\n  });\n\n  it('should skip create genesis poi if latestSyncedPoi existed', async () => {\n    const spyOnCreateGenesisPoi = jest.spyOn(poiSyncService as any, 'createGenesisPoi');\n    await createGenesisPoi(poiSyncService);\n    //mock fetch poi block from db\n    poiSyncService.poiRepo.getPoiBlocksByRange = jest.fn().mockImplementation(() => [\n      {\n        id: 101,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n      {\n        id: 102,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n      {\n        id: 103,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n    ]);\n    void poiSyncService.syncPoi(100);\n    // should be only called once\n    expect(spyOnCreateGenesisPoi).toHaveBeenCalledTimes(1);\n    // And genesis poi should not be changed\n    expect(poiSyncService.latestSyncedPoi.id).toBe(100);\n  });\n\n  it('sync poi block in continuous range', async () => {\n    await createGenesisPoi(poiSyncService);\n    poiSyncService.poiRepo.bulkUpsert = jest.fn();\n    const spyOnPoiCreation = jest.spyOn(poiSyncService.poiRepo, 'bulkUpsert');\n    const spyOnCreateDefaultBlock = jest.spyOn(poiSyncService as any, 'addDefaultPoiBlocks');\n\n    // Reduce queue size, make sure flush triggered\n    (poiSyncService as any).syncedPoiQueue = new Queue(2);\n    // mock existing poi blocks data\n    poiSyncService.poiRepo.getPoiBlocksByRange = jest.fn().mockImplementation(() => [\n      {\n        id: 101,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n      {\n        id: 102,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n      {\n        id: 103,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n    ]);\n    await poiSyncService.syncPoi(102);\n    expect(spyOnPoiCreation).toHaveBeenCalled();\n    expect(spyOnCreateDefaultBlock).not.toHaveBeenCalled();\n  });\n\n  it('sync poi block in discontinuous range,should get default block created', async () => {\n    await createGenesisPoi(poiSyncService);\n    poiSyncService.poiRepo.bulkUpsert = jest.fn();\n    const spyOnPoiCreation = jest.spyOn(poiSyncService.poiRepo, 'bulkUpsert');\n    const spyOnCreateDefaultBlock = jest.spyOn(poiSyncService as any, 'addDefaultPoiBlocks');\n    const spyOnSetLatestSyncedPoi = jest.spyOn(poiSyncService as any, 'setLatestSyncedPoi');\n\n    // Reduce queue size, make sure flush triggered\n    (poiSyncService as any).syncedPoiQueue = new Queue(4);\n    // mock existing poi blocks data\n    poiSyncService.poiRepo.getPoiBlocksByRange = jest.fn().mockImplementation(() => [\n      {\n        id: 101,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n      {\n        id: 102,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n      {\n        id: 105,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n    ]);\n    await poiSyncService.syncPoi(102);\n    expect(spyOnPoiCreation).toHaveBeenCalled();\n    expect(spyOnCreateDefaultBlock).toHaveBeenCalledTimes(1);\n    // Set block 101,102,103,104,105\n    expect(spyOnSetLatestSyncedPoi).toHaveBeenCalledTimes(5);\n  });\n\n  it('if sync poi block out of order, it will throw', async () => {\n    await createGenesisPoi(poiSyncService);\n    poiSyncService.poiRepo.bulkUpsert = jest.fn();\n    (poiSyncService as any).syncedPoiQueue = new Queue(2);\n\n    await (poiSyncService as any).syncPoiJob([\n      {\n        id: 101,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n      {\n        id: 105,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n    ]);\n    await expect(() =>\n      (poiSyncService as any).syncPoiJob([\n        {\n          id: 103,\n          chainBlockHash: new Uint8Array(),\n          parentHash: null,\n          operationHashRoot: new Uint8Array(),\n        },\n      ])\n    ).rejects.toThrow(/Sync poi block out of order, latest synced poi height/);\n  });\n\n  it('could stop sync and clear', async () => {\n    await createGenesisPoi(poiSyncService);\n    poiSyncService.poiRepo.bulkUpsert = jest.fn();\n\n    // mock existing poi blocks data\n    poiSyncService.poiRepo.getPoiBlocksByRange = jest.fn().mockImplementation(() => [\n      {\n        id: 101,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n      {\n        id: 102,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n      {\n        id: 105,\n        chainBlockHash: new Uint8Array(),\n        parentHash: null,\n        operationHashRoot: new Uint8Array(),\n      },\n    ]);\n    void poiSyncService.syncPoi();\n    await delay(2);\n    // Assumed reindex happened, and rollback to 101\n    await poiSyncService.stopSync();\n\n    // Service still exist, and data should be last one synced\n    expect(poiSyncService).toBeTruthy();\n    expect((poiSyncService as any).latestSyncedPoi.id).toBe(105);\n\n    expect((poiSyncService as any).isSyncing).toBeFalsy();\n    expect((poiSyncService as any).isShutdown).toBeTruthy();\n\n    // clear data for rewind\n    poiSyncService.clear();\n    expect((poiSyncService as any)._latestSyncedPoi).toBeUndefined();\n    // Should be empty\n    expect((poiSyncService as any).syncedPoiQueue.size).toBe(0);\n  });\n\n  it('found SyncedProofOfIndex is not complete will throw', async () => {\n    // await createGenesisPoi(poiSyncService);\n    // mock poi repo\n    const genesisPoi = {\n      id: 100,\n      chainBlockHash: new Uint8Array(),\n      hash: new Uint8Array(),\n      parentHash: null,\n      operationHashRoot: new Uint8Array(),\n    };\n    (poiSyncService as any)._poiRepo = {\n      getPoiById: (id = 100) => {\n        return genesisPoi;\n      },\n      getFirst: () => {\n        return genesisPoi;\n      },\n      bulkUpsert: jest.fn(),\n      getPoiBlocksByRange: jest.fn(),\n    };\n    (poiSyncService as any)._projectId = 'test';\n    (poiSyncService as any).updateMetadataSyncedPoi = jest.fn(); // Mock upsert metadata\n    (poiSyncService as any).getMetadataLatestSyncedPoi = jest.fn(() => 100);\n    await (poiSyncService as any).ensureGenesisPoi();\n    await expect((poiSyncService as any).syncLatestSyncedPoiFromDb()).rejects.toThrow();\n    poiSyncService.poiRepo.bulkUpsert = jest.fn();\n  });\n});\n\ndescribe('Independent Poi Service sync', () => {\n  let poiSyncService: PoiSyncService;\n\n  beforeEach(async () => {\n    poiSyncService = await createPoiSyncService();\n  });\n\n  afterAll(() => {\n    poiSyncService.stopSync();\n    poiSyncService.onApplicationShutdown();\n  });\n\n  function mockProofOfIndexes(start: number, end: number): ProofOfIndex[] {\n    return range(start, end + 1).map((i) => ({\n      id: i,\n      chainBlockHash: new Uint8Array(),\n      operationHashRoot: new Uint8Array(),\n      hash: new Uint8Array(),\n      parentHash: new Uint8Array(),\n    }));\n  }\n\n  it('should stop sync as soon when stopSync is called', async () => {\n    const poiBlocks: ProofOfIndex[] = mockProofOfIndexes(4, 100);\n\n    poiSyncService.poiRepo.getPoiBlocksByRange = jest.fn(async () => {\n      return Promise.resolve(poiBlocks);\n    });\n\n    (poiSyncService as any).ensureGenesisPoi = jest.fn(async () => {\n      return Promise.resolve(1);\n    });\n\n    // mock last synced poi is 2\n    (poiSyncService as any)._latestSyncedPoi = mockProofOfIndexes(2, 2)[0];\n\n    // this is important, we mock in syncPoiJob this stepes take longer to resolve\n    // then we can shut down during for loop waiting time\n    (poiSyncService as any).syncedPoiQueueAppend = jest.fn(async () => {\n      await delay(1);\n      return 1;\n    });\n\n    const syncPoiJobSpy = jest.spyOn(poiSyncService as any, 'syncPoiJob');\n\n    // before start sync, latestSyncedPoi is 2\n    expect(poiSyncService.latestSyncedPoi.id).toBe(2);\n\n    // Start sync in a separate promise to simulate async behavior\n    const syncPromise = poiSyncService.syncPoi();\n\n    // We simulate let sync job keep going for a while\n    await delay(2);\n    // Call stopSync to stop the loop\n    await poiSyncService.stopSync();\n\n    // Wait for the syncPoi method to complete\n    await syncPromise;\n\n    // Verify that the loop was stopped\n    expect((poiSyncService as any).isShutdown).toBe(true);\n    expect(syncPoiJobSpy).toHaveBeenCalled();\n\n    // stopped sync, latestSyncedPoi should be changed, like 10\n    expect(poiSyncService.latestSyncedPoi.id).toBeGreaterThan(2);\n    // And it also should never sync to the end\n    expect(poiSyncService.latestSyncedPoi.id).not.toBe(100);\n  }, 50000);\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/poi/poiSync.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Inject, Injectable, OnApplicationShutdown} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {DEFAULT_FETCH_RANGE, delay, POI_AWAIT_TIME} from '@subql/common';\nimport {hexToU8a} from '@subql/utils';\nimport {Op, Sequelize, Transaction} from '@subql/x-sequelize';\nimport {NodeConfig} from '../../configure';\nimport {establishNewSequelize} from '../../db';\nimport {PoiEvent} from '../../events';\nimport {getLogger} from '../../logger';\nimport {exitWithError} from '../../process';\nimport {hasValue, Queue} from '../../utils';\nimport {Metadata, MetadataFactory, MetadataRepo} from '../entities';\nimport {PoiFactory, ProofOfIndex, SyncedProofOfIndex} from '../entities/Poi.entity';\nimport {ensureProofOfIndexId, PlainPoiModel} from '../storeModelProvider/poi';\nimport {ISubqueryProject} from '../types';\nimport {PoiBlock} from './PoiBlock';\n\nconst GENESIS_PARENT_HASH = hexToU8a('0x00');\nconst logger = getLogger('PoiSyncService');\n\nconst syncingMsg = (start: number, end: number, size: number) =>\n  logger.info(`Synced POI [${start} - ${end}] Poi, total ${size} blocks `);\n\nfunction isSyncedProofOfIndex(poi?: ProofOfIndex | SyncedProofOfIndex): poi is SyncedProofOfIndex {\n  return !!poi && !!(poi as SyncedProofOfIndex).parentHash && !!(poi as SyncedProofOfIndex).hash;\n}\n\n/**\n * There are two status of POI:\n * - createdPoi: Poi been created with operationHash, but not include hash and parentHash. Creation of Poi in completed in base-block-dispatcher.\n * - syncedPoi: appended Poi hash and parentHash, and pois should be continuous\n *\n * This PoiSyncService sync Poi from createdPoi to syncedPoi only. And it not uses any cache service.\n */\n\n@Injectable()\nexport class PoiSyncService implements OnApplicationShutdown {\n  private isShutdown = false;\n  private _poiRepo?: PlainPoiModel;\n  private _metadataRepo?: MetadataRepo;\n  private _sequelize?: Sequelize;\n  private _latestSyncedPoi?: ProofOfIndex;\n  private _lastFlushTs: Date;\n  private isSyncing = false;\n  private syncedPoiQueue: Queue<ProofOfIndex>;\n\n  constructor(\n    protected readonly nodeConfig: NodeConfig,\n    private eventEmitter: EventEmitter2,\n    @Inject('ISubqueryProject') private project: ISubqueryProject\n  ) {\n    this.syncedPoiQueue = new Queue(1000);\n    this._lastFlushTs = new Date();\n  }\n\n  onApplicationShutdown(): void {\n    this.isShutdown = true;\n  }\n\n  get poiRepo(): PlainPoiModel {\n    if (!this._poiRepo) {\n      throw new Error(`No poi repo inited`);\n    }\n    return this._poiRepo;\n  }\n\n  get metadataRepo(): MetadataRepo {\n    if (!this._metadataRepo) {\n      throw new Error(`No metadata repo inited`);\n    }\n    return this._metadataRepo;\n  }\n\n  get sequelize(): Sequelize {\n    if (!this._sequelize) {\n      throw new Error(`Poi sync service sequelize not inited`);\n    }\n    return this._sequelize;\n  }\n\n  get projectId(): string {\n    if (!this.project) {\n      throw new Error(`No project inited`);\n    }\n    return this.project.id;\n  }\n\n  get latestSyncedPoi(): SyncedProofOfIndex {\n    if (isSyncedProofOfIndex(this._latestSyncedPoi)) {\n      return this._latestSyncedPoi;\n    } else {\n      throw new Error(\n        `_latestSyncedPoi height ${\n          (this._latestSyncedPoi as SyncedProofOfIndex)?.id\n        } in Poi service is not valid. Please check from the db`\n      );\n    }\n  }\n\n  async init(schema: string): Promise<void> {\n    this._sequelize = await establishNewSequelize(this.nodeConfig);\n    this._poiRepo = new PlainPoiModel(PoiFactory(this.sequelize, schema));\n    this._metadataRepo = await MetadataFactory(\n      this.sequelize,\n      schema,\n      false,\n      '' //No multi chain involved\n    );\n    logger.info(`Poi sync service init completed, use independent sequelize connection`);\n  }\n\n  async syncPoi(exitHeight?: number): Promise<void> {\n    if (this.isSyncing) return;\n    this.isSyncing = true;\n    // Enable this after rewind\n    this.isShutdown = false;\n    try {\n      while (!this.isShutdown) {\n        if (!this._latestSyncedPoi) {\n          // Try to sync latestSyncedPoi poi block from db\n          await this.syncLatestSyncedPoiFromDb();\n          if (this._latestSyncedPoi) {\n            continue;\n          } else {\n            const genesisPoiHeight = await this.ensureGenesisPoi();\n            // When genesis poi block is not set yet, this will await\n            // Once it set, and `latestSyncedPoi` should also store in _metadata, this delay should never have been triggered, because\n            // `latestSyncedPoi` should have been set from `syncLatestSyncedPoiFromDb` on top.\n            if (genesisPoiHeight === undefined) {\n              await delay(10);\n            }\n          }\n        } else {\n          if (this.isFlushable()) {\n            await this.flushSyncedBlocks();\n          }\n          // This only get pois already recorded in the _poi table\n          // So we don't have to worry set cached Poi override synced Poi\n          const poiBlocks = await this.poiRepo.getPoiBlocksByRange(this.latestSyncedPoi.id + 1);\n          if (exitHeight !== undefined && this.latestSyncedPoi.id > exitHeight) {\n            break;\n          }\n          if (poiBlocks.length !== 0) {\n            await this.syncPoiJob(poiBlocks);\n            // await this.flushSyncedBlocks()\n          }\n          // Slows down getPoiBlocksByRange when almost catch up last created poi\n          if (poiBlocks.length < DEFAULT_FETCH_RANGE) {\n            await delay(POI_AWAIT_TIME);\n          }\n        }\n      }\n      this.isSyncing = false;\n    } catch (e) {\n      this.isSyncing = false;\n      exitWithError(new Error(`Failed to sync poi`, {cause: e}), logger);\n    }\n  }\n\n  /**\n   * Wait for current sync job stop, then stop the sync loop\n   */\n  async stopSync(): Promise<void> {\n    this.isShutdown = true;\n    return new Promise((resolve) => {\n      const id = setInterval(() => {\n        if (!this.isSyncing) {\n          resolve();\n          clearInterval(id);\n        }\n      }, 200);\n    });\n  }\n\n  /**\n   * Clear any cached data in poi sync service\n   * - clear latestSyncedPoi\n   * - clear syncedPoiQueue that waiting to be processed\n   */\n  clear(): void {\n    this._latestSyncedPoi = undefined;\n    this.syncedPoiQueue.takeAll();\n  }\n\n  /**\n   * Get the record of latestSyncedPoiHeight in metadata table\n   * @private\n   */\n  private async getMetadataLatestSyncedPoi(): Promise<number | undefined> {\n    const record = await this.metadataRepo.findByPk('latestSyncedPoiHeight');\n    if (hasValue(record)) {\n      return record.toJSON().value as number;\n    }\n    return;\n  }\n\n  private validateSyncedPoi(poi: ProofOfIndex, assertLocation: string) {\n    if (!poi.parentHash || !poi.hash) {\n      let errMsg = `[${assertLocation}] Found synced poi at height ${poi.id} is not valid, please check DB. `;\n      if (!poi.parentHash) {\n        errMsg = errMsg.concat(`\\n Poi ${poi.id} parent hash is not defined.`);\n      }\n      if (!poi.hash) {\n        errMsg = errMsg.concat(`\\n Poi ${poi.id} hash is not defined.`);\n      }\n      throw new Error(errMsg);\n    }\n  }\n\n  /**\n   * Search backward from startHeight to find the last valid synced POI (with both hash and parentHash).\n   * Uses direct model query for efficiency.\n   * @param startHeight The height to start searching backward from\n   * @private\n   */\n  private async findLastValidSyncedPoi(startHeight: number): Promise<ProofOfIndex | undefined> {\n    // Use raw SQL to avoid TypeScript issues with Op.ne and null\n    const result = await this.poiRepo.model.findOne({\n      where: {\n        id: {[Op.lte]: startHeight},\n        hash: {[Op.ne]: null} as any,\n        parentHash: {[Op.ne]: null} as any,\n      },\n      order: [['id', 'DESC']],\n    });\n\n    if (result) {\n      return ensureProofOfIndexId(result.toJSON<ProofOfIndex>());\n    }\n\n    return undefined;\n  }\n\n  /**\n   * Get latestSyncedPoi from metadata, and find from the Poi table and set it into the service.\n   * This should only been called when service sync been called and _latestSyncedPoi is not set.\n   * @private\n   */\n  private async syncLatestSyncedPoiFromDb(): Promise<void> {\n    // Need to re-fetch after rewind, because reindex targetHeight ! == latestSyncedPoiHeight\n    const latestSyncedPoiHeight = await this.getMetadataLatestSyncedPoi();\n    if (latestSyncedPoiHeight !== undefined) {\n      const recordedPoi = await this.poiRepo.getPoiById(latestSyncedPoiHeight);\n      if (recordedPoi) {\n        try {\n          this.validateSyncedPoi(recordedPoi, 'syncLatestSyncedPoiFromDb');\n          this.setLatestSyncedPoi(recordedPoi);\n        } catch (e) {\n          // POI exists but is not valid (created state, not synced)\n          // Try to find the last valid synced POI\n          logger.warn(\n            `Metadata latestSyncedPoiHeight ${latestSyncedPoiHeight} points to an invalid POI (created state, not synced). Searching for last valid synced POI...`\n          );\n          const validPoi = await this.findLastValidSyncedPoi(latestSyncedPoiHeight);\n          if (validPoi) {\n            logger.info(`Found last valid synced POI at height ${validPoi.id}, updating metadata`);\n            const tx = await this.newTx();\n            await this.updateMetadataSyncedPoi(validPoi.id, tx);\n            await tx.commit();\n            this.setLatestSyncedPoi(validPoi);\n          } else {\n            // No valid synced POI found, clear metadata\n            logger.warn(`No valid synced POI found below height ${latestSyncedPoiHeight}, clearing metadata`);\n            const tx = await this.newTx();\n            await this.metadataRepo.destroy({where: {key: 'latestSyncedPoiHeight'}, transaction: tx});\n            await tx.commit();\n          }\n        }\n      } else {\n        // POI record doesn't exist at metadata height, search backward for valid POI\n        logger.warn(\n          `POI record not found at metadata height ${latestSyncedPoiHeight}, searching for last valid synced POI...`\n        );\n        const validPoi = await this.findLastValidSyncedPoi(latestSyncedPoiHeight);\n        if (validPoi) {\n          logger.info(`Found last valid synced POI at height ${validPoi.id}, updating metadata`);\n          const tx = await this.newTx();\n          await this.updateMetadataSyncedPoi(validPoi.id, tx);\n          await tx.commit();\n          this.setLatestSyncedPoi(validPoi);\n        } else {\n          // No valid synced POI found, clear metadata\n          logger.warn(`No valid synced POI found below height ${latestSyncedPoiHeight}, clearing metadata`);\n          const tx = await this.newTx();\n          await this.metadataRepo.destroy({where: {key: 'latestSyncedPoiHeight'}, transaction: tx});\n          await tx.commit();\n        }\n      }\n    }\n  }\n\n  /**\n   * Read first record from poi table (not cache), then create genesis poi\n   * _latestSyncedPoi exist, return if genesis poi been created .\n   * @private\n   */\n  private async ensureGenesisPoi(): Promise<undefined | number> {\n    if (this._latestSyncedPoi) {\n      return;\n    }\n    const genesisPoi = await this.poiRepo.getFirst();\n    if (genesisPoi) {\n      await this.createGenesisPoi(genesisPoi);\n      return genesisPoi.id;\n    }\n  }\n\n  /**\n   * Set the _latestSyncedPoi in the Poi sync service, also assert the order\n   * @param poiBlock\n   * @private\n   */\n  private setLatestSyncedPoi(poiBlock: ProofOfIndex): void {\n    if (this._latestSyncedPoi !== undefined && this.latestSyncedPoi.id >= poiBlock.id) {\n      throw new Error(\n        `Set latest synced poi out of order, current height ${this.latestSyncedPoi.id}, new height ${poiBlock.id} `\n      );\n    }\n    this.validateSyncedPoi(poiBlock, 'setLatestSyncedPoi');\n    this._latestSyncedPoi = poiBlock;\n    this.eventEmitter.emit(PoiEvent.LatestSyncedPoi, {\n      height: poiBlock.id,\n      timestamp: Date.now(),\n    });\n  }\n\n  /**\n   * Create Genesis Poi\n   * @param genesisPoi\n   * @private\n   */\n  private async createGenesisPoi(genesisPoi: ProofOfIndex): Promise<void> {\n    const poiBlock = PoiBlock.create(\n      genesisPoi.id,\n      genesisPoi.chainBlockHash,\n      genesisPoi.operationHashRoot,\n      this.projectId,\n      GENESIS_PARENT_HASH\n    );\n    const tx = await this.newTx();\n    await this.poiRepo.bulkUpsert([poiBlock], tx);\n    await this.updateMetadataSyncedPoi(poiBlock.id, tx);\n    await tx.commit();\n    logger.info(`Genesis Poi created at height ${poiBlock.id}!`);\n  }\n\n  /**\n   * Take an array of un-synced Pois, and sync them, add hash & parentHash.\n   * If Poi blocks id is not continuous, addDefaultPoiBlocks between them.\n   * After sync, setLatestSyncedPoi in memory\n   * @param poiBlocks\n   * @private\n   */\n  private async syncPoiJob(poiBlocks: ProofOfIndex[]): Promise<void> {\n    // const appendedBlocks: ProofOfIndex[] = [];\n    for (let i = 0; i < poiBlocks.length; i++) {\n      // Break if we received a signal to stop, otherwise if largeblock range this will keep running\n      if (this.isShutdown) {\n        break;\n      }\n      const nextBlock = poiBlocks[i];\n      if (this.latestSyncedPoi.id >= nextBlock.id) {\n        throw new Error(\n          `Sync poi block out of order, latest synced poi height ${this.latestSyncedPoi.id}, next poi height ${nextBlock.id}`\n        );\n      }\n      if (this.latestSyncedPoi.id + 1 < nextBlock.id) {\n        // Fill the with default block\n        await this.addDefaultPoiBlocks(nextBlock.id - 1);\n      }\n      const syncedPoiBlock = PoiBlock.create(\n        nextBlock.id,\n        nextBlock.chainBlockHash,\n        nextBlock.operationHashRoot,\n        this.projectId,\n        this.latestSyncedPoi.hash\n      );\n      await this.syncedPoiQueueAppend(syncedPoiBlock);\n      this.setLatestSyncedPoi(syncedPoiBlock);\n    }\n  }\n\n  /**\n   * Add default poi from latestSyncedPoi height to endHeight\n   * @param endHeight\n   * @private\n   */\n  private async addDefaultPoiBlocks(endHeight: number): Promise<void> {\n    for (let i = this.latestSyncedPoi.id + 1; i <= endHeight; i++) {\n      const syncedPoiBlock = PoiBlock.create(i, null, null, this.projectId, this.latestSyncedPoi.hash);\n      await this.syncedPoiQueueAppend(syncedPoiBlock);\n      this.setLatestSyncedPoi(syncedPoiBlock);\n    }\n  }\n\n  /**\n   * Create new sequelize transaction for Synced Poi, also for metadata\n   * @private\n   */\n  private async newTx(): Promise<Transaction> {\n    const tx = await this.sequelize.transaction();\n    if (!tx) {\n      throw new Error(`Create transaction for poi got undefined!`);\n    }\n    return tx;\n  }\n\n  /**\n   * Update latestSyncedPoiHeight in Metadata table immediately\n   * @param height\n   * @param tx\n   * @private\n   */\n  private async updateMetadataSyncedPoi(height: number, tx: Transaction): Promise<void> {\n    const ops: Metadata[] = [{key: 'latestSyncedPoiHeight', value: height}];\n    await Promise.all([\n      this.metadataRepo.bulkCreate(ops, {\n        transaction: tx,\n        updateOnDuplicate: ['key', 'value'],\n      }),\n    ]);\n  }\n\n  /**\n   * Append syncPoi to syncedPoiQueue, check flush If queue is full or overtime, then put input block.\n   * @param syncedPoiBlock\n   * @private\n   */\n  private async syncedPoiQueueAppend(syncedPoiBlock: PoiBlock) {\n    if (this.isFlushable()) {\n      await this.flushSyncedBlocks();\n    }\n    this.syncedPoiQueue.put(syncedPoiBlock);\n  }\n\n  /**\n   * Check the poi queue is flushable, either:\n   * - syncedPoiQueue is full\n   * - over flush threshold time (same as store flush), and the queue is not empty\n   * @private\n   */\n  private isFlushable(): boolean {\n    const timeBasedFlush =\n      new Date().getTime() - this._lastFlushTs.getTime() > this.nodeConfig.storeFlushInterval * 1000;\n    return !this.syncedPoiQueue.freeSpace || (!!this.syncedPoiQueue.size && timeBasedFlush);\n  }\n\n  /**\n   * Take out synced Poi out from queue and process\n   * Upsert to Poi table\n   * Also, update last upstarted poi to metadata\n   * @private\n   */\n  private async flushSyncedBlocks(): Promise<void> {\n    const syncedPois = this.syncedPoiQueue.takeAll();\n    const tx = await this.newTx();\n    if (syncedPois.length) {\n      syncingMsg(syncedPois[0].id, syncedPois[syncedPois.length - 1].id, syncedPois.length);\n      // if (this.nodeConfig.debug) {\n      //   syncingMsg(appendedBlocks[0].id, appendedBlocks[appendedBlocks.length - 1].id, appendedBlocks.length);\n      // }\n      await this.poiRepo.bulkUpsert(syncedPois, tx);\n      await this.updateMetadataSyncedPoi(syncedPois[syncedPois.length - 1].id, tx);\n    }\n    await tx.commit();\n    this._lastFlushTs = new Date();\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/project.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {buildSchemaFromString} from '@subql/utils';\nimport {IBlockchainService} from '../blockchain.service';\nimport {NodeConfig, ProjectUpgradeService} from '../configure';\nimport {DsProcessorService} from './ds-processor.service';\nimport {DatasourceParams, DynamicDsService} from './dynamic-ds.service';\nimport {ProjectService} from './project.service';\nimport {Header, IBlock, ISubqueryProject} from './types';\nimport {\n  METADATA_LAST_FINALIZED_PROCESSED_KEY,\n  METADATA_UNFINALIZED_BLOCKS_KEY,\n  UnfinalizedBlocksService,\n} from './unfinalizedBlocks.service';\nimport {IBaseIndexerWorker} from './worker';\n\nclass TestProjectService extends ProjectService<any, any> {\n  packageVersion = '1.0.0';\n\n  async getBlockTimestamp(height: number): Promise<Date> {\n    return Promise.resolve(new Date());\n  }\n\n  onProjectChange(project: any): void {\n    return;\n  }\n\n  protected async getExistingProjectSchema(): Promise<string | undefined> {\n    return Promise.resolve('test');\n  }\n}\n\nclass TestBlockchainService implements IBlockchainService {\n  packageVersion = '0.0.0';\n  blockHandlerKind = '';\n\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  fetchBlocks(blockNums: number[]): Promise<IBlock<any>[]> {\n    throw new Error('Method fetchBlocks not implemented.');\n  }\n\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  fetchBlockWorker(\n    worker: IBaseIndexerWorker,\n    blockNum: number,\n    context: {workers: IBaseIndexerWorker[]}\n  ): Promise<Header> {\n    throw new Error('Method not implemented.');\n  }\n\n  onProjectChange(project: ISubqueryProject): Promise<void> | void {\n    // throw new Error('Method onProjectChange not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getBlockTimestamp(height: number): Promise<Date> {\n    return Promise.resolve(new Date());\n  }\n  getBlockSize(block: IBlock): number {\n    return 0;\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getBestHeight(): Promise<number> {\n    throw new Error('Method getBestHeight not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getChainInterval(): Promise<number> {\n    throw new Error('Method getChainInterval not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  updateDynamicDs(params: DatasourceParams, template: any): Promise<void> {\n    throw new Error('Method updateDynamicDs not implemented.');\n  }\n  isCustomDs(x: any): x is any {\n    return false;\n  }\n  isRuntimeDs(x: any): x is any {\n    return false;\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getSafeApi(block: any): Promise<any> {\n    throw new Error('Method not implemented.');\n  }\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getFinalizedHeader(): Promise<Header> {\n    return {\n      blockHash: 'asdf',\n      blockHeight: 1000,\n      parentHash: 'efgh',\n      timestamp: new Date(),\n    };\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getHeaderForHash(hash: string): Promise<Header> {\n    const num = parseInt(hash.slice(1), 10);\n    return {\n      blockHeight: num,\n      blockHash: hash,\n      parentHash: `b${num - 1}`,\n      timestamp: new Date(),\n    };\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getHeaderForHeight(height: number): Promise<Header> {\n    return {\n      blockHeight: height,\n      blockHash: `b${height}`,\n      parentHash: `b${height - 1}`,\n      timestamp: new Date(),\n    };\n  }\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getRequiredHeaderForHeight(height: number): Promise<Header & {timestamp: Date}> {\n    return {\n      blockHeight: height,\n      blockHash: `b${height}`,\n      parentHash: `b${height - 1}`,\n      timestamp: new Date(),\n    };\n  }\n}\n\ndescribe('BaseProjectService', () => {\n  let service: TestProjectService;\n\n  beforeEach(() => {\n    service = new TestProjectService(\n      null as unknown as DsProcessorService,\n      null as unknown as any,\n      null as unknown as any,\n      null as unknown as any,\n      null as unknown as any,\n      {dataSources: []} as unknown as ISubqueryProject<any>,\n      null as unknown as any,\n      null as unknown as any,\n      {unsafe: false} as unknown as NodeConfig,\n      {getDynamicDatasources: jest.fn()} as unknown as DynamicDsService<any>,\n      null as unknown as any,\n      null as unknown as any,\n      new TestBlockchainService(),\n      null as unknown as any\n    );\n  });\n\n  it('hasDataSourcesAfterHeight', () => {\n    (service as any).dynamicDsService.dynamicDatasources = [];\n    (service as any).projectUpgradeService = {\n      projects: [\n        [\n          1,\n          {\n            dataSources: [\n              {startBlock: 1, endBlock: 300},\n              {startBlock: 10, endBlock: 20},\n              {startBlock: 1, endBlock: 100},\n              {startBlock: 50, endBlock: 200},\n              {startBlock: 500},\n            ],\n          },\n        ],\n      ],\n    } as any;\n\n    const result1 = service.hasDataSourcesAfterHeight(301);\n    expect(result1).toBe(true);\n    const result2 = service.hasDataSourcesAfterHeight(502);\n    expect(result2).toBe(true);\n  });\n\n  it('hasDataSourcesAfterHeight - no available datasource', () => {\n    (service as any).dynamicDsService.dynamicDatasources = [];\n    (service as any).projectUpgradeService = {\n      projects: [\n        [\n          1,\n          {\n            dataSources: [\n              {startBlock: 1, endBlock: 300},\n              {startBlock: 10, endBlock: 20},\n              {startBlock: 1, endBlock: 100},\n              {startBlock: 50, endBlock: 200},\n            ],\n          },\n        ],\n      ],\n    } as any;\n\n    const result = service.hasDataSourcesAfterHeight(301);\n    expect(result).toBe(false);\n  });\n\n  it('getDataSources', async () => {\n    (service as any).project.dataSources = [\n      {startBlock: 100, endBlock: 200},\n      {startBlock: 1, endBlock: 100},\n    ];\n    (service as any).dynamicDsService.getDynamicDatasources = jest\n      .fn()\n      .mockResolvedValue([{startBlock: 150, endBlock: 250}]);\n\n    const result = await service.getDataSources(175);\n    expect(result).toEqual([\n      {startBlock: 100, endBlock: 200},\n      {startBlock: 150, endBlock: 250},\n    ]);\n  });\n\n  describe('getDatasourceMap', () => {\n    it('should add endBlock heights correctly', () => {\n      (service as any).dynamicDsService.dynamicDatasources = [];\n      (service as any).projectUpgradeService = {\n        projects: [\n          [\n            1,\n            {\n              dataSources: [\n                {startBlock: 1, endBlock: 300},\n                {startBlock: 10, endBlock: 20},\n                {startBlock: 1, endBlock: 100},\n                {startBlock: 50, endBlock: 200},\n                {startBlock: 500},\n              ],\n            },\n          ],\n        ],\n      } as any;\n\n      const result = service.getDataSourcesMap();\n      expect(result.getAll()).toEqual(\n        new Map([\n          [\n            1,\n            [\n              {startBlock: 1, endBlock: 300},\n              {startBlock: 1, endBlock: 100},\n            ],\n          ],\n          [\n            10,\n            [\n              {startBlock: 1, endBlock: 300},\n              {startBlock: 1, endBlock: 100},\n              {startBlock: 10, endBlock: 20},\n            ],\n          ],\n          [\n            21,\n            [\n              {startBlock: 1, endBlock: 300},\n              {startBlock: 1, endBlock: 100},\n            ],\n          ],\n          [\n            50,\n            [\n              {startBlock: 1, endBlock: 300},\n              {startBlock: 1, endBlock: 100},\n              {startBlock: 50, endBlock: 200},\n            ],\n          ],\n          [\n            101,\n            [\n              {startBlock: 1, endBlock: 300},\n              {startBlock: 50, endBlock: 200},\n            ],\n          ],\n          [201, [{startBlock: 1, endBlock: 300}]],\n          [301, []],\n          [500, [{startBlock: 500}]],\n        ])\n      );\n    });\n\n    it('should contain datasources from current project only', () => {\n      (service as any).dynamicDsService.dynamicDatasources = [];\n      (service as any).projectUpgradeService = {\n        projects: [\n          [\n            1,\n            {\n              dataSources: [{startBlock: 1}, {startBlock: 200}],\n            },\n          ],\n          [\n            100,\n            {\n              dataSources: [{startBlock: 100}],\n            },\n          ],\n        ],\n      } as any;\n\n      const result = service.getDataSourcesMap();\n      expect(result.getAll()).toEqual(\n        new Map([\n          [1, [{startBlock: 1}]],\n          [100, [{startBlock: 100}]],\n        ])\n      );\n    });\n\n    it('build correct map when upgrade has the same start height as first project', () => {\n      (service as any).dynamicDsService.dynamicDatasources = [];\n      (service as any).projectUpgradeService = {\n        projects: [\n          [\n            7408909,\n            {\n              dataSources: [{startBlock: 7408909}],\n            },\n          ],\n          [\n            7880532,\n            {\n              dataSources: [{startBlock: 7408909}],\n            },\n          ],\n        ],\n      } as any;\n\n      const result = service.getDataSourcesMap();\n      expect(result.getAll()).toEqual(\n        new Map([\n          [7408909, [{startBlock: 7408909}]],\n          [7880532, [{startBlock: 7408909}]],\n        ])\n      );\n    });\n  });\n\n  // Tests initializing the project service to ensure that things are initialized in the correct order\n  // NOTE: this is not currently covering all scenarios\n  describe('initializing services', () => {\n    beforeAll(() => {\n      process.env.TZ = 'utc';\n    });\n\n    const defaultProjects = [\n      {\n        id: '1',\n        network: {\n          chainId: '1',\n        },\n        dataSources: [{startBlock: 1}],\n        schema: buildSchemaFromString(`type TestEntity @entity {\n  id: ID!\n  fieldOne: String\n  fieldTwo: Int\n  #  fieldThree: BigInt!\n}`),\n        applyCronTimestamps: jest.fn(),\n      } as unknown as ISubqueryProject<any>,\n    ];\n\n    const setupProject = async (\n      startBlock = 1,\n      unfinalizedBlocks: Header[] = [],\n      lastFinalizedHeight?: number,\n      projects: ISubqueryProject<any>[] = defaultProjects\n    ) => {\n      const project = projects[0];\n\n      const projectUpgradeService = await ProjectUpgradeService.create(project, (id: string) =>\n        Promise.resolve(projects[parseInt(id, 10)])\n      );\n\n      const nodeConfig = {unsafe: false} as unknown as NodeConfig;\n\n      const storeService = {\n        init: jest.fn(),\n        initCoreTables: jest.fn(),\n        historical: true,\n        modelProvider: {\n          metadata: {\n            findMany: jest.fn(async () => Promise.resolve({})),\n            find: jest.fn(async (key: string): Promise<any> => {\n              let result: any;\n              switch (key) {\n                case METADATA_LAST_FINALIZED_PROCESSED_KEY:\n                  result = lastFinalizedHeight;\n                  break;\n                case METADATA_UNFINALIZED_BLOCKS_KEY:\n                  result = JSON.stringify(unfinalizedBlocks);\n                  break;\n                case 'lastProcessedHeight':\n                  result = startBlock - 1;\n                  break;\n                case 'deployments':\n                  result = JSON.stringify({1: '1'});\n                  break;\n                default:\n                  result = undefined;\n                  break;\n              }\n              return Promise.resolve(result);\n            }),\n            set: jest.fn(),\n            flush: jest.fn(),\n          } as any,\n          resetCache: jest.fn(),\n          flushCache: jest.fn(),\n          _flushCache: jest.fn(),\n        },\n        rewind: jest.fn(),\n      } as unknown as any;\n\n      const blockchainService = new TestBlockchainService();\n\n      service = new TestProjectService(\n        {\n          validateProjectCustomDatasources: jest.fn(),\n        } as unknown as DsProcessorService, // dsProcessorService\n        {networkMeta: {}} as unknown as any, //apiService\n        null as unknown as any, // poiService\n        null as unknown as any, // poiSyncService\n        {\n          transaction: jest.fn(() => ({\n            rollback: jest.fn(),\n            commit: jest.fn(),\n          })),\n        } as unknown as any, // sequelize\n        project, // project\n        projectUpgradeService, // projectUpgradeService\n        storeService, // storeService\n        nodeConfig,\n        {\n          init: jest.fn(),\n          getDynamicDatasources: jest.fn(() => []),\n          resetDynamicDatasource: jest.fn(),\n        } as unknown as DynamicDsService<any>, // dynamicDsService\n        new EventEmitter2(), // eventEmitter\n        new UnfinalizedBlocksService(nodeConfig, storeService.modelProvider, blockchainService), // unfinalizedBlocksService\n        blockchainService,\n        {init: jest.fn()} as any // MultiChainRewindService\n      );\n    };\n\n    it('succeeds with no rewinds', async () => {\n      await setupProject();\n\n      await service.init();\n\n      await expect(service.init()).resolves.not.toThrow();\n    });\n\n    it('succeeds with a project upgrade rewind', async () => {\n      const projects = [\n        {\n          ...defaultProjects[0],\n          id: '0',\n          parent: {block: 20, untilBlock: 20, reference: '1'},\n          schema: buildSchemaFromString(`type TestEntity @entity {\n  id: ID!\n  fieldOne: String\n  fieldTwo: Int\n  fieldThree: BigInt!\n}`),\n        },\n        ...defaultProjects,\n      ];\n      await setupProject(100, [], 100, projects);\n\n      const reindexSpy = jest.spyOn(service, 'reindex');\n      await service.init();\n      // await expect(service.init()).resolves.not.toThrow();\n      expect(reindexSpy).toHaveReturnedTimes(1);\n    });\n\n    it('succeeds with an unfinalized blocks rewind', async () => {\n      await setupProject(\n        95,\n        [\n          {blockHeight: 100, blockHash: 'a100', parentHash: 'a99', timestamp: new Date()},\n          {blockHeight: 99, blockHash: 'a99', parentHash: 'a98', timestamp: new Date()},\n        ],\n        90\n      );\n\n      const reindexSpy = jest.spyOn(service, 'reindex');\n\n      await expect(service.init()).resolves.not.toThrow();\n\n      expect(reindexSpy).toHaveReturnedTimes(1);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/project.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {isMainThread} from 'worker_threads';\nimport {Inject} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {BaseDataSource, IProjectNetworkConfig} from '@subql/types-core';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {IApi} from '../api.service';\nimport {ICoreBlockchainService} from '../blockchain.service';\nimport {IProjectUpgradeService, NodeConfig} from '../configure';\nimport {IndexerEvent} from '../events';\nimport {getLogger} from '../logger';\nimport {exitWithError, monitorWrite} from '../process';\nimport {getExistingProjectSchema, getStartHeight, hasValue, mainThreadOnly, reindex} from '../utils';\nimport {BlockHeightMap} from '../utils/blockHeightMap';\nimport {DsProcessorService} from './ds-processor.service';\nimport {DynamicDsService} from './dynamic-ds.service';\nimport {MetadataKeys} from './entities';\nimport {MultiChainRewindService} from './multiChainRewind.service';\nimport {PoiSyncService} from './poi';\nimport {PoiService} from './poi/poi.service';\nimport {StoreService} from './store.service';\nimport {cacheProviderFlushData} from './storeModelProvider';\nimport {ISubqueryProject, IProjectService, BypassBlocks, HistoricalMode, Header} from './types';\nimport {IUnfinalizedBlocksService} from './unfinalizedBlocks.service';\n\nconst logger = getLogger('Project');\n\nclass NotInitError extends Error {\n  constructor() {\n    super('ProjectService has not been initialized');\n  }\n}\n\nexport class ProjectService<\n  DS extends BaseDataSource = BaseDataSource,\n  API extends IApi = IApi,\n  UnfinalizedBlocksService extends IUnfinalizedBlocksService<any> = IUnfinalizedBlocksService<any>,\n> implements IProjectService<DS>\n{\n  private _schema?: string;\n  private _startHeight?: number;\n  private _blockOffset?: number;\n\n  constructor(\n    private readonly dsProcessorService: DsProcessorService,\n    @Inject('APIService') protected readonly apiService: API,\n    @Inject(isMainThread ? PoiService : 'Null') private readonly poiService: PoiService,\n    @Inject(isMainThread ? PoiSyncService : 'Null') private readonly poiSyncService: PoiSyncService,\n    @Inject(isMainThread ? Sequelize : 'Null') private readonly sequelize: Sequelize,\n    @Inject('ISubqueryProject') private readonly project: ISubqueryProject<IProjectNetworkConfig, DS>,\n    @Inject('IProjectUpgradeService') private readonly projectUpgradeService: IProjectUpgradeService<ISubqueryProject>,\n    @Inject(isMainThread ? StoreService : 'Null') private readonly storeService: StoreService,\n    private readonly nodeConfig: NodeConfig,\n    private readonly dynamicDsService: DynamicDsService<DS>,\n    private eventEmitter: EventEmitter2,\n    @Inject('IUnfinalizedBlocksService') private readonly unfinalizedBlockService: UnfinalizedBlocksService,\n    @Inject('IBlockchainService') private blockchainService: ICoreBlockchainService<DS>,\n    @Inject(isMainThread ? MultiChainRewindService : 'Null') private multiChainRewindService: MultiChainRewindService\n  ) {\n    if (this.nodeConfig.unsafe) {\n      logger.warn(\n        'UNSAFE MODE IS ENABLED. This is not recommended for most projects and will not be supported by our hosted service'\n      );\n    }\n  }\n\n  protected get schema(): string {\n    assert(this._schema, new NotInitError());\n    return this._schema;\n  }\n\n  get startHeight(): number {\n    assert(this._startHeight !== undefined, new NotInitError());\n    return this._startHeight;\n  }\n\n  get blockOffset(): number | undefined {\n    return this._blockOffset;\n  }\n\n  get bypassBlocks(): BypassBlocks {\n    return this.project.network.bypassBlocks ?? [];\n  }\n\n  protected get isHistorical(): HistoricalMode {\n    return this.storeService.historical;\n  }\n\n  protected async getExistingProjectSchema(): Promise<string | undefined> {\n    return getExistingProjectSchema(this.nodeConfig, this.sequelize);\n  }\n\n  async init(startHeight?: number): Promise<void> {\n    this.ensureTimezone();\n\n    for (const [, project] of this.projectUpgradeService.projects) {\n      await project.applyCronTimestamps(this.blockchainService.getBlockTimestamp.bind(this));\n    }\n\n    // Do extra work on main thread to setup stuff\n    if (isMainThread) {\n      this._schema = await this.ensureProject();\n\n      // Init metadata before rest of schema so we can determine the correct project version to create the schema\n      await this.storeService.initCoreTables(this._schema);\n\n      await this.ensureMetadata();\n      // DynamicDsService is dependent on metadata so we need to ensure it exists first\n      await this.dynamicDsService.init(this.storeService.modelProvider.metadata);\n\n      /**\n       * WARNING: The order of the following steps is very important.\n       *  * The right project needs to be used based on the start height which can change depending on rewinds\n       *  * The DB needs to be init for unfinalized and project upgrades to run any rewinds\n       * */\n\n      this._startHeight = await this.nextProcessHeight();\n\n      // Nothing is indexed, the first project is the default so we can use that start height\n      if (this._startHeight === undefined) {\n        this._startHeight = this.projectUpgradeService.currentHeight;\n      }\n\n      // These need to be init before upgrade and unfinalized services because they may cause rewinds.\n      await this.initDbSchema();\n\n      if (this.nodeConfig.proofOfIndex) {\n        // Prepare for poi migration and creation\n        await this.poiService.init(this.schema);\n        // Sync poi from createdPoi to syncedPoi\n        await this.poiSyncService.init(this.schema);\n        void this.poiSyncService.syncPoi(undefined);\n      }\n\n      const reindexedUpgrade = await this.initUpgradeService(this.startHeight);\n\n      const reindexMultiChain = await this.initMultiChainRewindService();\n\n      // Unfinalized is dependent on POI in some cases, it needs to be init after POI is init\n      const reindexedUnfinalized = await this.initUnfinalizedInternal();\n\n      if (reindexedUnfinalized !== undefined) {\n        this._startHeight = reindexedUnfinalized.blockHeight;\n      }\n\n      if (reindexedUpgrade !== undefined) {\n        this._startHeight = reindexedUpgrade;\n      }\n\n      if (reindexMultiChain !== undefined) {\n        this._startHeight = reindexMultiChain.blockHeight;\n      }\n\n      // Flush any pending operations to set up DB\n      await cacheProviderFlushData(this.storeService.modelProvider, true);\n    } else {\n      assert(startHeight, 'ProjectService must be initialized with a start height in workers');\n      this.projectUpgradeService.initWorker(startHeight, this.handleProjectChange.bind(this));\n\n      // Called to allow handling the first project\n      await this.blockchainService.onProjectChange(this.project);\n    }\n\n    // Used to load assets into DS-processor, has to be done in any thread\n    await this.dsProcessorService.validateProjectCustomDatasources(await this.getDataSources());\n  }\n\n  private ensureTimezone(): void {\n    const timezone = process.env.TZ;\n    if (!timezone || timezone.toLowerCase() !== 'utc') {\n      throw new Error(\n        'Environment Timezone is not set to UTC. This may cause issues with indexing or proof of index\\n Please try to set with \"export TZ=UTC\"'\n      );\n    }\n  }\n\n  private async ensureProject(): Promise<string> {\n    let schema = await this.getExistingProjectSchema();\n    if (!schema) {\n      schema = await this.createProjectSchema();\n    }\n    this.eventEmitter.emit(IndexerEvent.Ready, {\n      value: true,\n    });\n\n    return schema;\n  }\n\n  private async createProjectSchema(): Promise<string> {\n    const schema = this.nodeConfig.dbSchema;\n    const schemas = await this.sequelize.showAllSchemas({});\n    if (!(schemas as unknown as string[]).includes(schema)) {\n      await this.sequelize.createSchema(`\"${schema}\"`, {});\n    }\n\n    return schema;\n  }\n\n  private async initDbSchema(): Promise<void> {\n    const tx = await this.sequelize.transaction();\n    await this.storeService.init(this.schema, tx);\n    await tx.commit();\n  }\n\n  private async ensureMetadata(): Promise<void> {\n    const metadata = this.storeService.modelProvider.metadata;\n\n    this.eventEmitter.emit(IndexerEvent.NetworkMetadata, this.apiService.networkMeta);\n\n    const keys: (keyof MetadataKeys)[] = [\n      'lastProcessedHeight',\n      'blockOffset',\n      'indexerNodeVersion',\n      'chain',\n      'specName',\n      'genesisHash',\n      'startHeight',\n      'processedBlockCount',\n      'lastFinalizedVerifiedHeight',\n      'schemaMigrationCount',\n      'dynamicDatasources',\n    ];\n\n    const existing = await metadata.findMany(keys);\n\n    const {chain, genesisHash, specName} = this.apiService.networkMeta;\n\n    if (this.project.runner) {\n      const {node, query} = this.project.runner;\n\n      await metadata.setBulk([\n        {key: 'runnerNode', value: node.name},\n        {key: 'runnerNodeVersion', value: node.version},\n        {key: 'runnerQuery', value: query.name},\n        {key: 'runnerQueryVersion', value: query.version},\n      ]);\n    }\n    if (!existing.genesisHash) {\n      await metadata.set('genesisHash', genesisHash);\n    } else {\n      // Check if the configured genesisHash matches the currently stored genesisHash\n      assert(\n        genesisHash === existing.genesisHash,\n        `Specified project manifest chain id / genesis hash does not match database stored genesis hash, consider cleaning project schema using \"force-clean\".\\n Database genesis hash = \"${existing.genesisHash}\"\\n Network genesis hash = \"${genesisHash}\"`\n      );\n    }\n    if (existing.chain !== chain) {\n      await metadata.set('chain', chain);\n    }\n\n    if (existing.specName !== specName) {\n      await metadata.set('specName', specName);\n    }\n\n    // If project was created before this feature, don't add the key. If it is project created after, add this key.\n    if (!existing.processedBlockCount && !existing.lastProcessedHeight) {\n      await metadata.set('processedBlockCount', 0);\n    }\n    if (existing.indexerNodeVersion !== this.blockchainService.packageVersion) {\n      await metadata.set('indexerNodeVersion', this.blockchainService.packageVersion);\n    }\n    if (!existing.schemaMigrationCount) {\n      await metadata.set('schemaMigrationCount', 0);\n    }\n    if (!existing.startHeight) {\n      await metadata.set('startHeight', this.getStartBlockFromDataSources());\n    }\n\n    if (!existing.dynamicDatasources) {\n      await metadata.set('dynamicDatasources', []);\n    } else if (typeof existing.dynamicDatasources === 'string') {\n      // Migration Step: In versions  < 4.7.2 dynamic datasources was stored as a string in a json field.\n      logger.info('Migrating dynamic datasources from string to object');\n      await metadata.set('dynamicDatasources', JSON.parse(existing.dynamicDatasources));\n    }\n  }\n\n  protected async getLastProcessedHeight(): Promise<number | undefined> {\n    return this.storeService.modelProvider.metadata.find('lastProcessedHeight');\n  }\n\n  private async nextProcessHeight(): Promise<number | undefined> {\n    const lastProcessedHeight = await this.getLastProcessedHeight();\n\n    if (hasValue(lastProcessedHeight)) {\n      return Number(lastProcessedHeight) + 1;\n    }\n    return undefined;\n  }\n\n  getStartBlockFromDataSources(): number {\n    try {\n      return getStartHeight(this.project.dataSources);\n    } catch (e: any) {\n      exitWithError(e, logger);\n    }\n  }\n\n  getAllDataSources(): DS[] {\n    assert(isMainThread, 'This method is only available on the main thread');\n    const dataSources = this.project.dataSources;\n    const dynamicDs = this.dynamicDsService.dynamicDatasources;\n\n    return [...dataSources, ...dynamicDs];\n  }\n\n  hasDataSourcesAfterHeight(height: number): boolean {\n    const datasourcesMap = this.getDataSourcesMap();\n    //check if there are datasoures for current height\n    if (datasourcesMap.get(height + 1).length) {\n      return true;\n    }\n\n    //check for datasources with height after the current height\n    const dataSources = datasourcesMap.getAll();\n    return [...dataSources.entries()].some(([dsHeight, ds]) => dsHeight > height && ds.length);\n  }\n\n  async getDataSources(blockHeight?: number): Promise<DS[]> {\n    const dataSources = this.project.dataSources;\n    const dynamicDs = await this.dynamicDsService.getDynamicDatasources();\n\n    return [...dataSources, ...dynamicDs].filter(\n      (ds) =>\n        blockHeight === undefined ||\n        (ds.startBlock !== undefined &&\n          ds.startBlock <= blockHeight &&\n          (ds.endBlock === undefined || ds.endBlock >= blockHeight))\n    );\n  }\n\n  @mainThreadOnly()\n  getDataSourcesMap(): BlockHeightMap<DS[]> {\n    const dynamicDs = this.dynamicDsService.dynamicDatasources;\n    const dsMap = new Map<number, DS[]>();\n\n    const projects = [...this.projectUpgradeService.projects];\n\n    for (let i = 0; i < projects.length; i++) {\n      const [height, project] = projects[i];\n      let nextMinStartHeight: number;\n\n      if (i + 1 < projects.length) {\n        const nextProject = projects[i + 1][1];\n        nextMinStartHeight = Math.max(\n          nextProject.dataSources\n            .filter((ds): ds is DS & {startBlock: number} => !!ds.startBlock)\n            .sort((a, b) => a.startBlock - b.startBlock)[0].startBlock,\n          projects[i + 1][0]\n        );\n      }\n\n      const activeDataSources = new Set<DS>();\n      //events denote addition or deletion of datasources from height-datasource map entries at the specified block height\n      const events: {\n        block: number; //block height at which addition or deletion of datasource should take place\n        start: boolean; //if start=TRUE, add the datasource. otherwise remove the datasource.\n        ds: DS;\n      }[] = [];\n\n      [...project.dataSources, ...dynamicDs]\n        .filter((ds): ds is DS & {startBlock: number} => {\n          return !!ds.startBlock && (!nextMinStartHeight || nextMinStartHeight > ds.startBlock);\n        })\n        .forEach((ds) => {\n          events.push({block: Math.max(height, ds.startBlock), start: true, ds});\n          if (ds.endBlock) events.push({block: ds.endBlock + 1, start: false, ds});\n        });\n\n      // sort events by block in ascending order, start events come before end events\n      const sortedEvents = events.sort((a, b) => a.block - b.block || Number(b.start) - Number(a.start));\n\n      sortedEvents.forEach((event) => {\n        if (event.start) {\n          activeDataSources.add(event.ds);\n        } else {\n          activeDataSources.delete(event.ds);\n        }\n        dsMap.set(event.block, Array.from(activeDataSources));\n      });\n    }\n\n    return new BlockHeightMap(dsMap);\n  }\n\n  private async initUnfinalizedInternal(): Promise<Header | undefined> {\n    if (this.nodeConfig.unfinalizedBlocks && !this.isHistorical) {\n      exitWithError(\n        'Unfinalized blocks cannot be enabled without historical. You will need to reindex your project to enable historical',\n        logger\n      );\n    }\n\n    return this.initUnfinalized();\n  }\n\n  protected async initUnfinalized(): Promise<Header | undefined> {\n    return this.unfinalizedBlockService.init(this.reindex.bind(this));\n  }\n\n  /**\n   * If the source project has changed this will align the ancestry of project upgrades. This can result in data being reindexed\n   * @returns {number | undefined} - The height to continue indexing from\n   * */\n  private async initUpgradeService(startHeight: number): Promise<number | undefined> {\n    const upgradePoint = await this.projectUpgradeService.init(\n      this.storeService,\n      startHeight,\n      this.nodeConfig,\n      this.sequelize,\n      this.schema,\n      this.handleProjectChange.bind(this)\n    );\n\n    // Called to allow handling the first project\n    await this.blockchainService.onProjectChange(this.project);\n\n    if (isMainThread) {\n      const lastProcessedHeight = await this.getLastProcessedHeight();\n\n      // New project or not using upgrades feature\n      if (upgradePoint === undefined) {\n        await this.projectUpgradeService.updateIndexedDeployments(\n          this.project.id,\n          lastProcessedHeight ?? this.getStartBlockFromDataSources()\n        );\n      } else {\n        if (lastProcessedHeight && upgradePoint < lastProcessedHeight) {\n          if (!this.isHistorical) {\n            exitWithError(\n              `Unable to upgrade project. Cannot rewind to block ${upgradePoint} without historical indexing enabled.`\n            );\n          }\n          if (!this.projectUpgradeService.isRewindable) {\n            exitWithError(`Due to dropped changes in schema migration, project cannot rewind`, logger);\n          }\n          const msg = `Rewinding project to preform project upgrade. Block height=\"${upgradePoint}\"`;\n          logger.info(msg);\n          monitorWrite(msg);\n\n          const timestamp = await this.blockchainService.getBlockTimestamp(upgradePoint);\n          // Only timestamp and blockHeight are used with reindexing so its safe to convert to a header\n          await this.reindex({\n            blockHeight: upgradePoint,\n            timestamp,\n          } as Header);\n          return upgradePoint + 1;\n        }\n      }\n    }\n    return undefined;\n  }\n  private async initMultiChainRewindService(): Promise<Header | undefined> {\n    return this.multiChainRewindService.init(this.apiService.networkMeta.chain, this.reindex.bind(this));\n  }\n\n  private async handleProjectChange(): Promise<void> {\n    if (isMainThread && !this.nodeConfig.allowSchemaMigration) {\n      await this.initDbSchema();\n    }\n\n    // Reload the dynamic ds with new project\n    await this.dynamicDsService.getDynamicDatasources(true);\n\n    await this.blockchainService.onProjectChange(this.project);\n  }\n\n  async reindex(targetBlockHeader: Header): Promise<void> {\n    const [height, timestamp] = await Promise.all([\n      this.getLastProcessedHeight(),\n      this.storeService.modelProvider.metadata.find('lastProcessedBlockTimestamp'),\n    ]);\n\n    if (height === undefined) {\n      throw new Error('Cannot reindex with missing lastProcessedHeight');\n    }\n\n    return reindex(\n      this.getStartBlockFromDataSources(),\n      targetBlockHeader,\n      {height, timestamp},\n      this.storeService,\n      this.unfinalizedBlockService,\n      this.dynamicDsService,\n      this.sequelize,\n      this.projectUpgradeService,\n      this.multiChainRewindService,\n      this.nodeConfig.proofOfIndex ? this.poiService : undefined\n      /* Not providing force clean service, it should never be needed */\n    );\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/sandbox.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isMainThread} from 'worker_threads';\nimport {Inject, Injectable} from '@nestjs/common';\nimport {BaseDataSource, Store} from '@subql/types-core';\nimport {NodeConfig} from '../configure';\nimport {loadProjectEnvConfig, createSandboxProcessEnv} from '../utils/env';\nimport {InMemoryCacheService} from './inMemoryCache.service';\nimport {IndexerSandbox} from './sandbox';\nimport {StoreService} from './store.service';\nimport {ISubqueryProject} from './types';\nimport {hostStoreToStore} from './worker';\n\n/* It would be nice to move this to node core but need to find a way to inject other things into the sandbox */\n@Injectable()\nexport class SandboxService<Api, UnsafeApi> {\n  private processorCache: Record<string, IndexerSandbox> = {};\n  private envConfig: Record<string, string> = {};\n\n  constructor(\n    @Inject(isMainThread ? StoreService : 'Null')\n    private readonly storeService: StoreService,\n    private readonly cacheService: InMemoryCacheService,\n    private readonly nodeConfig: NodeConfig,\n    @Inject('ISubqueryProject') private readonly project: ISubqueryProject\n  ) {\n    // Load environment variables from .env file\n    const projectEnvConfig = loadProjectEnvConfig(this.project.root);\n    this.envConfig = createSandboxProcessEnv(projectEnvConfig);\n  }\n\n  getDsProcessor(\n    ds: BaseDataSource,\n    api: Api,\n    unsafeApi: UnsafeApi,\n    extraInjections: Record<string, any> = {}\n  ): IndexerSandbox {\n    const store: Store = isMainThread ? this.storeService.getStore() : hostStoreToStore((global as any).host); // Provided in worker.ts\n\n    const cache = this.cacheService.getCache();\n    const entry = this.getDataSourceEntry(ds);\n    let processor = this.processorCache[entry];\n    if (!processor) {\n      processor = new IndexerSandbox(\n        {\n          cache,\n          store,\n          root: this.project.root,\n          entry,\n          chainId: this.project.network.chainId,\n          envConfig: this.envConfig,\n        },\n        this.nodeConfig\n      );\n      this.processorCache[entry] = processor;\n    }\n    // Run this before injecting other values so they cannot be overwritten\n    for (const [key, value] of Object.entries(extraInjections)) {\n      processor.freeze(value, key);\n    }\n    processor.freeze(api, 'api');\n    if (this.nodeConfig.unsafe) {\n      processor.freeze(unsafeApi, 'unsafeApi');\n    }\n    processor.freeze(this.project.network.chainId, 'chainId');\n    return processor;\n  }\n\n  private getDataSourceEntry(ds: BaseDataSource): string {\n    return ds.mapping.file;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/sandbox.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync, writeFileSync, mkdirSync, rmSync} from 'fs';\nimport {tmpdir} from 'os';\nimport * as path from 'path';\nimport {join} from 'path';\nimport {NodeVM, VMScript} from 'vm2';\nimport {NodeConfig} from '../configure/NodeConfig';\nimport {IndexerSandbox, TestSandbox} from './sandbox';\n\ndescribe('sandbox for subql-node', () => {\n  let vm: IndexerSandbox;\n\n  afterEach(() => {\n    vm?.removeAllListeners();\n  });\n\n  // This was caused by vm2@3.10.0 changes that were breaking in a minor release.\n  it('Can use older libraries that use prototypes to set properties', () => {\n    const script = `\n      const util = require('util');\n      const EventEmitter = require('events');\n\n      function MyStream() {\n        console.log(\"This is sha1\");\n      }\n\n      util.inherits(MyStream, EventEmitter);\n    `;\n\n    const vmScript = new VMScript(script);\n    const vm = new NodeVM({\n      console: 'inherit',\n      require: {\n        builtin: ['util', 'events'],\n      },\n    });\n    expect(() => vm.run(vmScript)).not.toThrow();\n  });\n\n  it('wait until promise resolved', async () => {\n    const root = path.resolve(__dirname, '../../test/sandbox');\n    const entry = './main.js';\n    vm = new IndexerSandbox(\n      {\n        store: undefined,\n        root,\n        entry,\n        chainId: '1',\n        // script: fs.readFileSync(path.join(root, entry)).toString(),\n      },\n      new NodeConfig({subquery: ' ', subqueryName: ' '})\n    );\n    let sandboxFuncionEndAt: Date | undefined;\n    vm.on('console.log', (line) => {\n      if (line === 'OK') {\n        sandboxFuncionEndAt = new Date();\n      }\n    });\n    await vm.securedExec('testSandbox', []);\n    const secureExecEndAt = new Date();\n    expect(sandboxFuncionEndAt).toBeDefined();\n    expect(secureExecEndAt.getTime()).toBeGreaterThanOrEqual(sandboxFuncionEndAt?.getTime() ?? 0);\n  });\n\n  // Skip for now, inject Uint8Array into sandbox will break eth skd\n  it.skip('buffer concat with Uint8Array within sandbox', async () => {\n    // src code in the function, this should be resolved\n    const str = 'Hello, Buffer!';\n    const strBuffer = Buffer.from(str);\n    const uin8Array = new Uint8Array(2);\n    uin8Array[0] = 72; //'H'\n    uin8Array[1] = 101; //'e'\n    expect(Buffer.concat([strBuffer, uin8Array])).toBeTruthy();\n\n    const root = path.resolve(__dirname, '../../test/sandbox');\n    const entry = './buffer-test.js';\n    vm = new IndexerSandbox(\n      {\n        store: undefined,\n        root,\n        entry,\n        chainId: '1',\n        // script: fs.readFileSync(path.join(root, entry)).toString(),\n      },\n      new NodeConfig({subquery: ' ', subqueryName: ' '})\n    );\n    let sandboxFuncionEndAt1: Date | undefined;\n    let sandboxFuncionEndAt2: Date | undefined;\n\n    vm.on('console.log', (line) => {\n      if (line === 'Hello, Buffer!He') {\n        sandboxFuncionEndAt1 = new Date();\n      }\n      if (line === 'HeHe') {\n        sandboxFuncionEndAt2 = new Date();\n      }\n    });\n    await vm.securedExec('testSandbox', []);\n    await vm.securedExec('testUin8Array', []);\n\n    const secureExecEndAt = new Date();\n    expect(sandboxFuncionEndAt1).toBeDefined();\n    expect(secureExecEndAt.getTime()).toBeGreaterThanOrEqual(sandboxFuncionEndAt1?.getTime() ?? 0);\n    expect(sandboxFuncionEndAt2).toBeDefined();\n  });\n\n  it('inject atob into sandbox', async () => {\n    // src code in the function, this should be resolved\n    const base64String = 'SGVsbG8sIFdvcmxkIQ==';\n    expect(atob(base64String)).toBe('Hello, World!');\n\n    const root = path.resolve(__dirname, '../../test/sandbox');\n    const entry = './atob-test.js';\n    vm = new IndexerSandbox(\n      {\n        store: undefined,\n        root,\n        entry,\n        chainId: '1',\n      },\n      new NodeConfig({subquery: ' ', subqueryName: ' '})\n    );\n    let sandboxFuncionEndAt: Date | undefined;\n\n    vm.on('console.log', (line) => {\n      if (line === 'Hello, World!') {\n        sandboxFuncionEndAt = new Date();\n      }\n    });\n    await vm.securedExec('testSandbox', []);\n    const secureExecEndAt = new Date();\n    expect(sandboxFuncionEndAt).toBeDefined();\n    expect(secureExecEndAt.getTime()).toBeGreaterThanOrEqual(sandboxFuncionEndAt?.getTime() ?? 0);\n  });\n\n  it.each([\n    ['./sourcemap-test-esbuild.js', 'packages/node-core/test/src/mappings/mappingHandlers.ts:6:19'],\n    ['./sourcemap-test-webpack.js', '/dymension/src/mappings/mappingHandlers.ts:8:11'],\n  ])('can decode sourcemap %s', async (entry, mapped) => {\n    const root = path.resolve(__dirname, '../../test/sandbox');\n    vm = new IndexerSandbox(\n      {\n        store: undefined,\n        root,\n        entry,\n        chainId: '1',\n      },\n      new NodeConfig({subquery: ' ', subqueryName: ' '})\n    );\n\n    const error = await vm.securedExec('throwError', []).then(\n      () => new Error('Expected error to be thrown'),\n      (e) => e\n    );\n\n    expect(error.message).toBe('this is a test error');\n    expect(error.stack).toContain(mapped);\n  });\n});\n\ndescribe('Sandbox Environment Variable Support', () => {\n  let testDir: string;\n  let srcDir: string;\n\n  const mockNodeConfig: NodeConfig = {\n    subquery: '/test/project',\n    timeout: 30000,\n    unsafe: false,\n  } as NodeConfig;\n\n  beforeEach(() => {\n    testDir = join(tmpdir(), `subql-sandbox-test-${Date.now()}`);\n    srcDir = join(testDir, 'src');\n    mkdirSync(srcDir, {recursive: true});\n  });\n\n  afterEach(() => {\n    if (existsSync(testDir)) {\n      rmSync(testDir, {recursive: true, force: true});\n    }\n  });\n\n  describe('IndexerSandbox with environment variables', () => {\n    it('should inject environment variables into sandbox', () => {\n      const envConfig = {\n        DATABASE_URL: 'postgresql://localhost:5432/test',\n        API_KEY: 'test-key-123',\n        NODE_ENV: 'test',\n      };\n\n      const sandbox = new IndexerSandbox(\n        {\n          root: testDir,\n          entry: 'src/mappings.js',\n          chainId: 'test-chain',\n          envConfig,\n        },\n        mockNodeConfig\n      );\n\n      // Check that environment variables were injected by examining the sandbox's globals\n      const processGlobal = (sandbox as any).getGlobal('process');\n      expect(processGlobal).toBeDefined();\n      expect(processGlobal.env).toEqual({\n        DATABASE_URL: 'postgresql://localhost:5432/test',\n        API_KEY: 'test-key-123',\n        NODE_ENV: 'test',\n      });\n    });\n\n    it('should work without environment variables', () => {\n      const sandbox = new IndexerSandbox(\n        {\n          root: testDir,\n          entry: 'src/mappings.js',\n          chainId: 'test-chain',\n          // No envConfig provided\n        },\n        mockNodeConfig\n      );\n\n      // Check that process global exists (vm2 injects it by default) but our custom env is not injected\n      const processGlobal = (sandbox as any).getGlobal('process');\n      expect(processGlobal).toBeDefined();\n      // The env should be the default Node.js process.env, not our custom variables\n      expect(processGlobal.env.DATABASE_URL).toBeUndefined();\n      expect(processGlobal.env.API_KEY).toBeUndefined();\n    });\n\n    it('should handle empty environment config', () => {\n      const sandbox = new IndexerSandbox(\n        {\n          root: testDir,\n          entry: 'src/mappings.js',\n          chainId: 'test-chain',\n          envConfig: {},\n        },\n        mockNodeConfig\n      );\n\n      // Check that process global was injected with empty env\n      const processGlobal = (sandbox as any).getGlobal('process');\n      expect(processGlobal).toBeDefined();\n      expect(processGlobal.env).toEqual({});\n    });\n  });\n\n  describe('TestSandbox with environment variables', () => {\n    it('should inject environment variables into test sandbox', () => {\n      const testContent = `\n        const result = {\n          databaseUrl: process.env.DATABASE_URL,\n          apiKey: process.env.API_KEY,\n          hasProcess: typeof process !== 'undefined'\n        };\n\n        global.subqlTests = [result];\n      `;\n      const testPath = join(srcDir, 'test.js');\n      writeFileSync(testPath, testContent);\n\n      const envConfig = {\n        DATABASE_URL: 'postgresql://localhost:5432/test',\n        API_KEY: 'test-key-456',\n      };\n\n      const sandbox = new TestSandbox(\n        {\n          root: testDir,\n          entry: testPath,\n          chainId: 'test-chain',\n          envConfig,\n        },\n        mockNodeConfig\n      );\n\n      const tests = sandbox.getTests();\n\n      expect(tests).toHaveLength(1);\n      expect(tests[0]).toEqual({\n        databaseUrl: 'postgresql://localhost:5432/test',\n        apiKey: 'test-key-456',\n        hasProcess: true,\n      });\n    });\n\n    it('should work without environment variables in test sandbox', () => {\n      const testContent = `\n        const result = {\n          hasProcess: typeof process !== 'undefined',\n          processType: typeof process\n        };\n\n        global.subqlTests = [result];\n      `;\n      const testPath = join(srcDir, 'test.js');\n      writeFileSync(testPath, testContent);\n\n      const sandbox = new TestSandbox(\n        {\n          root: testDir,\n          entry: testPath,\n          chainId: 'test-chain',\n          // No envConfig\n        },\n        mockNodeConfig\n      );\n\n      const tests = sandbox.getTests();\n\n      expect(tests).toHaveLength(1);\n      // Note: TestSandbox might still inject some globals, so we check that env is empty\n      expect(tests[0]).toEqual({\n        hasProcess: true,\n        processType: 'object',\n      });\n    });\n  });\n\n  describe('Sandbox security with environment variables', () => {\n    it('should inject custom environment variables correctly', () => {\n      const sandbox = new IndexerSandbox(\n        {\n          root: testDir,\n          entry: 'src/mappings.js',\n          chainId: 'test-chain',\n          envConfig: {SAFE_VAR: 'safe-value', ANOTHER_VAR: 'another-value'},\n        },\n        mockNodeConfig\n      );\n\n      // Check that custom environment variables are injected\n      const processGlobal = (sandbox as any).getGlobal('process');\n      expect(processGlobal).toBeDefined();\n      expect(processGlobal.env.SAFE_VAR).toBe('safe-value');\n      expect(processGlobal.env.ANOTHER_VAR).toBe('another-value');\n\n      // Verify that our custom environment variables are present\n      expect(Object.keys(processGlobal.env)).toContain('SAFE_VAR');\n      expect(Object.keys(processGlobal.env)).toContain('ANOTHER_VAR');\n    });\n\n    it('should preserve original environment variables', () => {\n      const originalEnv = {DATABASE_URL: 'postgresql://localhost:5432/original'};\n\n      const sandbox = new IndexerSandbox(\n        {\n          root: testDir,\n          entry: 'src/mappings.js',\n          chainId: 'test-chain',\n          envConfig: originalEnv,\n        },\n        mockNodeConfig\n      );\n\n      // Verify the original env config is intact\n      const processGlobal = (sandbox as any).getGlobal('process');\n      expect(processGlobal.env.DATABASE_URL).toBe('postgresql://localhost:5432/original');\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/sandbox.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync, readFileSync} from 'fs';\nimport path from 'path';\nimport {SubqlTest} from '@subql/testing';\nimport {Cache, Store} from '@subql/types-core';\nimport {levelFilter} from '@subql/utils';\nimport {last, merge} from 'lodash';\nimport {SourceMapConsumer, NullableMappedPosition} from 'source-map';\nimport {NodeVM, NodeVMOptions, VMError, VMScript} from 'vm2';\nimport {NodeConfig} from '../configure/NodeConfig';\nimport {getLogger} from '../logger';\nimport {timeout} from '../utils/promise';\n\nexport const SANDBOX_DEFAULT_BUILTINS = ['assert', 'buffer', 'crypto', 'util', 'path', 'url', 'stream'];\n\nexport interface SandboxOption {\n  cache?: Cache;\n  store?: Store;\n  root: string;\n  entry: string;\n  chainId: string;\n  envConfig?: Record<string, string>;\n}\n\nconst DEFAULT_OPTION = (unsafe = false): NodeVMOptions => {\n  return {\n    console: 'redirect',\n    wasm: unsafe,\n    // TextEncoder was added for Starknet but the reason is unknown. This caused issues with Polkadot so has been disabled.\n    sandbox: {atob /*, TextEncoder*/},\n    require: {\n      builtin: unsafe ? ['*'] : SANDBOX_DEFAULT_BUILTINS,\n      external: true,\n      context: 'sandbox',\n    },\n    wrapper: 'commonjs',\n    sourceExtensions: ['js', 'cjs'],\n  };\n};\n\nconst logger = getLogger('sandbox');\n\nexport class Sandbox extends NodeVM {\n  private root: string;\n  private entry: string;\n  private sourceMap: any;\n\n  constructor(\n    option: SandboxOption,\n    protected readonly script: VMScript,\n    protected config: NodeConfig\n  ) {\n    super(\n      merge(DEFAULT_OPTION(config.unsafe), {\n        require: {\n          root: option.root,\n          resolve: (moduleName: string) => {\n            return require.resolve(moduleName, {paths: [option.root]});\n          },\n        },\n      })\n    );\n\n    // polkadot api uses URL global\n    this.setGlobal('URL', require('url').URL);\n    this.root = config.subquery.startsWith('ipfs://') ? '' : option.root;\n    this.entry = option.entry;\n\n    this.freeze(option.chainId, 'chainId');\n\n    // Inject environment variables if provided\n    if (option.envConfig) {\n      this.freeze({env: option.envConfig}, 'process');\n    }\n\n    const sourceMapFile = path.join(this.root, this.entry);\n\n    if (existsSync(sourceMapFile)) {\n      this.sourceMap = this.decodeSourceMap(sourceMapFile);\n    }\n  }\n\n  async runTimeout<T = unknown>(duration: number): Promise<T> {\n    try {\n      return await timeout(\n        this.run(this.script),\n        duration,\n        `Sandbox execution timeout in ${duration} seconds. Please increase --timeout`\n      );\n    } catch (e) {\n      const msgPart = 'Cannot find module ';\n      if (e instanceof VMError && e.message.includes(msgPart)) {\n        const err = new Error(\n          `Unable to resolve module ${e.message.replace(\n            msgPart,\n            ''\n          )}. To resolve this you can either:\\n\\tNarrow your import. e.g Instead of \"import { BigNumber } from 'ethers'\" you can use \"import {BigNumber} from '@ethersproject/bignumber';\"\\n\\tEnable the --unsafe flag.`,\n          {cause: e}\n        );\n        // Copy the stack so that the logged error is more useful\n        err.stack = e.stack;\n        throw err;\n      }\n      throw e;\n    }\n  }\n\n  protected async convertStack(stackTrace: string | undefined): Promise<string | undefined> {\n    if (!stackTrace) return undefined;\n    if (!this.sourceMap) {\n      logger.warn('Unable to find a source map. Rebuild your project with latest @subql/cli to generate a source map.');\n      logger.warn('Logging unresolved stack trace.');\n      return stackTrace;\n    }\n\n    const entryFile = last(this.entry.split('/')) ?? '';\n    const entryParts = entryFile.split('.');\n    const regex = new RegExp(`${entryParts[0]}.${entryParts[1]}:([0-9]+):([0-9]+)`, 'gi');\n    const matches = [...stackTrace.matchAll(regex)];\n\n    for (const match of matches) {\n      const lineNumber = Number.parseInt(match[1]);\n      const columnNumber = Number.parseInt(match[2]);\n      const lineInfo = await this.findLineInfo(this.sourceMap, lineNumber, columnNumber);\n      const newLineTrace = `${lineInfo.source}:${lineInfo.line}:${lineInfo.column}`;\n      stackTrace = stackTrace.replace(`${path.join(this.root, this.entry)}:${match[1]}:${match[2]}`, newLineTrace);\n    }\n\n    return stackTrace;\n  }\n\n  decodeSourceMap(sourceMapPath: string): any {\n    const source = readFileSync(sourceMapPath).toString();\n    // Projects built with old @subql/cli with webpack\n    let sourceMapBase64 = source.split(`//# sourceMappingURL=data:application/json;charset=utf-8;base64,`)[1];\n    if (!sourceMapBase64) {\n      // Projects built with @subql/cli with esbuild\n      sourceMapBase64 = source.split('//# sourceMappingURL=data:application/json;base64,')[1];\n    }\n    if (!sourceMapBase64) {\n      logger.warn('Unable to find a source map for project');\n      logger.warn('Build your project with latest @subql/cli to generate a source map');\n      return;\n    }\n    const sourceMap = Buffer.from(sourceMapBase64, 'base64').toString();\n    const json = JSON.parse(sourceMap);\n\n    return json;\n  }\n\n  async findLineInfo(\n    sourcemap: any,\n    compiledLineNumber: number,\n    compiledColumnNumber: number\n  ): Promise<NullableMappedPosition> {\n    const consumer = await new SourceMapConsumer(sourcemap);\n    const lineInfo = consumer.originalPositionFor({line: compiledLineNumber, column: compiledColumnNumber});\n\n    return lineInfo;\n  }\n}\n\nexport class IndexerSandbox extends Sandbox {\n  constructor(option: SandboxOption, config: NodeConfig) {\n    super(\n      option,\n      new VMScript(\n        `const mappingFunctions = require('${option.entry}');\n        if(mappingFunctions[funcName] === undefined){\n          throw new Error('Handler function '+ funcName + ' is not found, available functions:' + JSON.stringify(Object.keys(mappingFunctions)))\n        }\n      module.exports = mappingFunctions[funcName](...args);\n    `,\n        path.join(option.root, 'sandbox')\n      ),\n      config\n    );\n    this.injectGlobals(option);\n  }\n\n  async securedExec(funcName: string, args: unknown[]): Promise<void> {\n    this.setGlobal('args', args);\n    this.setGlobal('funcName', funcName);\n    try {\n      await this.runTimeout(this.config.timeout);\n    } catch (e: any) {\n      const newStack = await this.convertStack(e.stack);\n      e.stack = newStack;\n      e.handler = funcName;\n      if (this.config.logLevel && levelFilter('debug', this.config.logLevel)) {\n        e.handlerArgs = JSON.stringify(args);\n      }\n      throw e;\n    } finally {\n      this.setGlobal('args', []);\n      this.setGlobal('funcName', '');\n    }\n  }\n\n  private injectGlobals({cache, store}: SandboxOption) {\n    if (store) {\n      this.freeze(store, 'store');\n    }\n    if (cache) {\n      this.freeze(cache, 'cache');\n    }\n    this.freeze(logger, 'logger');\n  }\n}\n\nexport class TestSandbox extends Sandbox {\n  constructor(option: SandboxOption, config: NodeConfig) {\n    super(\n      {\n        ...option,\n      },\n      new VMScript(`const tests = require('${option.entry}');`, path.join(option.root, 'sandbox')),\n      config\n    );\n    this.injectGlobals(option);\n  }\n\n  private injectGlobals({envConfig, store}: SandboxOption) {\n    if (store) {\n      this.freeze(store, 'store');\n    }\n    if (envConfig) {\n      this.freeze({env: envConfig}, 'process');\n    }\n    this.freeze(logger, 'logger');\n  }\n\n  getTests(): SubqlTest[] {\n    this.run(this.script);\n    return this.getGlobal('subqlTests');\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/store/entity.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Store, Entity} from '@subql/types-core';\n\ntype Properties = {id: string};\n\nexport class EntityClass<P extends Properties> implements Entity {\n  id: string;\n  // Name needs to be private so that it can be converted to a generated entity\n  #name: string;\n  #store: Store;\n\n  constructor(name: string, properties: P, store: Store) {\n    this.#name = name;\n    this.#store = store;\n    this.id = properties.id;\n    Object.assign(this, properties);\n  }\n\n  static create<T extends Entity>(name: string, properties: T | null | undefined, store: Store): T | undefined {\n    if (!properties) return undefined;\n\n    return new EntityClass<T>(name, properties, store) as unknown as T;\n  }\n\n  async save(): Promise<void> {\n    return this.#store.set(this.#name, this.id, this);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/store/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './store';\n"
  },
  {
    "path": "packages/node-core/src/indexer/store/store.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Store as IStore, Entity, FieldsExpression, GetOptions} from '@subql/types-core';\nimport {Transaction} from '@subql/x-sequelize';\nimport {NodeConfig} from '../../configure';\nimport {monitorWrite} from '../../process';\nimport {handledStringify} from '../../utils';\nimport {IStoreModelProvider} from '../storeModelProvider';\nimport {StoreOperations} from '../StoreOperations';\nimport {OperationType} from '../types';\nimport {EntityClass} from './entity';\n\n/* A context is provided to allow it to be updated by the owner of the class instance */\ntype Context = {\n  getHistoricalUnit: () => number;\n  transaction?: Transaction;\n  operationStack?: StoreOperations;\n  isIndexed: (entity: string, field: string) => boolean;\n  isIndexedHistorical: (entity: string, field: string) => boolean;\n};\n\nexport class Store implements IStore {\n  /* These need to explicitly be private using JS style private properties in order to not leak these in the sandbox */\n  #config: NodeConfig;\n  #modelProvider: IStoreModelProvider;\n  #context: Context;\n\n  constructor(config: NodeConfig, modelProvider: IStoreModelProvider, context: Context) {\n    this.#config = config;\n    this.#modelProvider = modelProvider;\n    this.#context = context;\n  }\n\n  #queryLimitCheck(storeMethod: string, entity: string, options: GetOptions<any>) {\n    if (options.limit > this.#config.queryLimit) {\n      throw new Error(`Query limit exceeds the maximum allowed value of ${this.#config.queryLimit}`);\n    }\n  }\n\n  async get<T extends Entity>(entity: string, id: string): Promise<T | undefined> {\n    try {\n      const raw = await this.#modelProvider.getModel<T>(entity).get(id, this.#context.transaction);\n      monitorWrite(() => `-- [Store][get] Entity ${entity} ID ${id}, data: ${handledStringify(raw)}`);\n      return EntityClass.create<T>(entity, raw, this);\n    } catch (e) {\n      throw new Error(`Failed to get Entity ${entity} with id ${id}: ${e}`);\n    }\n  }\n\n  async getByField<T extends Entity>(\n    entity: string,\n    field: keyof T,\n    value: T[keyof T] | T[keyof T][],\n    options: GetOptions<T>\n  ): Promise<T[]> {\n    try {\n      const indexed = this.#context.isIndexed(entity, String(field));\n      assert(indexed, `to query by field ${String(field)}, an index must be created on model ${entity}`);\n\n      this.#queryLimitCheck('getByField', entity, options);\n\n      const raw = await this.#modelProvider\n        .getModel<T>(entity)\n        .getByFields([Array.isArray(value) ? [field, 'in', value] : [field, '=', value]], options);\n      monitorWrite(() => `-- [Store][getByField] Entity ${entity}, data: ${handledStringify(raw)}`);\n      return raw.map((v) => EntityClass.create<T>(entity, v, this)) as T[];\n    } catch (e) {\n      throw new Error(`Failed to getByField Entity ${entity} with field ${String(field)}: ${e}`);\n    }\n  }\n\n  async getByFields<T extends Entity>(\n    entity: string,\n    filter: FieldsExpression<T>[],\n    options: GetOptions<T>\n  ): Promise<T[]> {\n    try {\n      // Check that the fields are indexed\n      filter.forEach((f) => {\n        assert(\n          this.#context.isIndexed(entity, String(f[0])),\n          `to query by field ${String(f[0])}, an index must be created on model ${entity}`\n        );\n      });\n\n      this.#queryLimitCheck('getByFields', entity, options);\n\n      const raw = await this.#modelProvider.getModel<T>(entity).getByFields(filter, options, this.#context.transaction);\n      monitorWrite(() => `-- [Store][getByFields] Entity ${entity}, data: ${handledStringify(raw)}`);\n      return raw.map((v) => EntityClass.create<T>(entity, v, this)) as T[];\n    } catch (e) {\n      throw new Error(`Failed to getByFields Entity ${entity}: ${e}`);\n    }\n  }\n\n  async getOneByField<T extends Entity>(entity: string, field: keyof T, value: T[keyof T]): Promise<T | undefined> {\n    try {\n      const indexed = this.#context.isIndexedHistorical(entity, field as string);\n      assert(indexed, `to query by field ${String(field)}, a unique index must be created on model ${entity}`);\n      const [raw] = await this.#modelProvider\n        .getModel<T>(entity)\n        .getByFields([Array.isArray(value) ? [field, 'in', value] : [field, '=', value]], {limit: 1});\n      monitorWrite(() => `-- [Store][getOneByField] Entity ${entity}, data: ${handledStringify(raw)}`);\n      return EntityClass.create<T>(entity, raw, this);\n    } catch (e) {\n      throw new Error(`Failed to getOneByField Entity ${entity} with field ${String(field)}: ${e}`);\n    }\n  }\n\n  async set(entity: string, _id: string, data: Entity): Promise<void> {\n    try {\n      const historicalUnit = this.#context.getHistoricalUnit();\n      await this.#modelProvider.getModel(entity).set(_id, data, historicalUnit, this.#context.transaction);\n      monitorWrite(\n        () => `-- [Store][set] Entity ${entity}, height: ${historicalUnit}, data: ${handledStringify(data)}`\n      );\n      this.#context.operationStack?.put(OperationType.Set, entity, data);\n    } catch (e) {\n      throw new Error(`Failed to set Entity ${entity} with _id ${_id}: ${e}`);\n    }\n  }\n\n  async bulkCreate(entity: string, data: Entity[]): Promise<void> {\n    try {\n      const historicalUnit = this.#context.getHistoricalUnit();\n      await this.#modelProvider.getModel(entity).bulkCreate(data, historicalUnit, this.#context.transaction);\n      for (const item of data) {\n        this.#context.operationStack?.put(OperationType.Set, entity, item);\n      }\n      monitorWrite(\n        () => `-- [Store][bulkCreate] Entity ${entity}, height: ${historicalUnit}, data: ${handledStringify(data)}`\n      );\n    } catch (e) {\n      throw new Error(`Failed to bulkCreate Entity ${entity}: ${e}`);\n    }\n  }\n\n  async bulkUpdate(entity: string, data: Entity[], fields?: string[]): Promise<void> {\n    try {\n      const historicalUnit = this.#context.getHistoricalUnit();\n      await this.#modelProvider.getModel(entity).bulkUpdate(data, historicalUnit, fields, this.#context.transaction);\n      for (const item of data) {\n        this.#context.operationStack?.put(OperationType.Set, entity, item);\n      }\n      monitorWrite(\n        () => `-- [Store][bulkUpdate] Entity ${entity}, height: ${historicalUnit}, data: ${handledStringify(data)}`\n      );\n    } catch (e) {\n      throw new Error(`Failed to bulkCreate Entity ${entity}: ${e}`);\n    }\n  }\n\n  async remove(entity: string, id: string): Promise<void> {\n    return this.bulkRemove(entity, [id]);\n  }\n\n  async bulkRemove(entity: string, ids: string[]): Promise<void> {\n    try {\n      const historicalUnit = this.#context.getHistoricalUnit();\n      await this.#modelProvider.getModel(entity).bulkRemove(ids, historicalUnit, this.#context.transaction);\n\n      for (const id of ids) {\n        this.#context.operationStack?.put(OperationType.Remove, entity, id);\n      }\n      monitorWrite(\n        () => `-- [Store][remove] Entity ${entity}, height: ${historicalUnit}, ids: ${handledStringify(ids)}`\n      );\n    } catch (e) {\n      throw new Error(`Failed to bulkRemove Entity ${entity}: ${e}`);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/store.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {DataTypes, Model, ModelAttributes} from '@subql/x-sequelize';\nimport {addIdAndBlockRangeAttributes} from '../db';\nimport {StoreService} from './store.service';\n\ndescribe('Store Service', () => {\n  let storeService: StoreService;\n\n  it('addIdAndBlockRangeAttributes', () => {\n    storeService = new StoreService(null as any, null as any, null as any, null as any);\n    const attributes = {\n      id: {\n        type: DataTypes.STRING,\n        primaryKey: true,\n      },\n    } as ModelAttributes<Model<any, any>, any>;\n    addIdAndBlockRangeAttributes(attributes);\n    expect(Object.keys(attributes).length).toEqual(3);\n    expect((attributes.id as any).primaryKey).toEqual(false);\n    expect(attributes.__id).toEqual({\n      type: DataTypes.UUID,\n      defaultValue: DataTypes.UUIDV4,\n      allowNull: false,\n      primaryKey: true,\n    });\n    expect(attributes.__block_range).toEqual({\n      type: DataTypes.RANGE(DataTypes.BIGINT),\n      allowNull: false,\n    });\n  });\n\n  it('could find indexed field', () => {\n    storeService = new StoreService(null as any, null as any, null as any, null as any);\n    (storeService as any).__modelIndexedFields = [\n      {\n        entityName: 'MinerIP', // This is a special case that upperFirst and camelCase will fail\n        fieldName: 'net_uid',\n        isUnique: false,\n        type: 'btree',\n      },\n      {\n        entityName: 'MinerColdkey',\n        fieldName: 'net_uid',\n        isUnique: false,\n        type: 'btree',\n      },\n    ];\n    expect(() => storeService.isIndexed('MinerIP', 'netUid')).toBeTruthy();\n  });\n\n  it('isIndexed support snake case', () => {\n    storeService = new StoreService(\n      null as any,\n      null as any,\n      {\n        getModel: (entityName: string) => {\n          if (entityName !== 'Transfer') {\n            return {\n              model: {\n                options: {},\n              },\n            };\n          }\n          return {\n            model: {\n              options: {\n                indexes: [\n                  {\n                    fields: ['account_from_id'],\n                    unique: false,\n                    type: 'btree',\n                  },\n                  {\n                    fields: ['account_to_id'],\n                    unique: false,\n                    type: 'btree',\n                  },\n                ],\n              },\n            },\n          };\n        },\n      } as any,\n      null as any\n    );\n\n    expect(storeService.isIndexed('Transfer', 'account_fromId')).toEqual(true);\n    expect(storeService.isIndexed('Transfer', 'accountToId')).toEqual(true);\n    expect(storeService.isIndexed('Transfer', 'accountToId2')).toEqual(false);\n    expect(storeService.isIndexed('Transfer2', 'accountToId')).toEqual(false);\n\n    expect(storeService.isIndexed('Transfer', 'AccountToId')).toEqual(true);\n    expect(storeService.isIndexed('Transfer', 'accountToID')).toEqual(true);\n    expect(storeService.isIndexed('Transfer', 'accountTo_ID')).toEqual(true);\n    expect(storeService.isIndexed('Transfer', 'accountTo_Id')).toEqual(true);\n  });\n\n  it('isIndexedHistorical support snake case', () => {\n    storeService = new StoreService(\n      null as any,\n      null as any,\n      {\n        getModel: (entityName: string) => {\n          if (entityName !== 'Transfer') {\n            return {\n              model: {\n                options: {},\n              },\n            };\n          }\n          return {\n            model: {\n              options: {\n                indexes: [\n                  {\n                    fields: ['account_from_id'],\n                    unique: true,\n                    type: 'btree',\n                  },\n                  {\n                    fields: ['account_to_id'],\n                    unique: true,\n                    type: 'btree',\n                  },\n                  {\n                    fields: ['not_index_id'],\n                    unique: false,\n                    type: 'btree',\n                  },\n                ],\n              },\n            },\n          };\n        },\n      } as any,\n      null as any\n    );\n    (storeService as any)._historical = false;\n\n    expect(storeService.isIndexedHistorical('Transfer', 'account_fromId')).toEqual(true);\n    expect(storeService.isIndexedHistorical('Transfer', 'accountToId')).toEqual(true);\n\n    expect(storeService.isIndexedHistorical('Transfer', 'accountToId2')).toEqual(false);\n    expect(storeService.isIndexedHistorical('Transfer2', 'accountToId')).toEqual(false);\n\n    expect(storeService.isIndexedHistorical('Transfer', 'not_index_id')).toEqual(false);\n\n    expect(storeService.isIndexedHistorical('Transfer', 'not_index_id')).toEqual(false);\n\n    expect(storeService.isIndexed('Transfer', 'AccountToId')).toEqual(true);\n    expect(storeService.isIndexed('Transfer', 'accountToID')).toEqual(true);\n    expect(storeService.isIndexed('Transfer', 'accountTo_ID')).toEqual(true);\n    expect(storeService.isIndexed('Transfer', 'accountTo_Id')).toEqual(true);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/store.service.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {buildSchemaFromString} from '@subql/utils';\nimport {Sequelize, QueryTypes} from '@subql/x-sequelize';\nimport {NodeConfig} from '../configure';\nimport {DbOption} from '../db';\nimport {StoreService} from './store.service';\nimport {CachedModel, PlainStoreModelService, StoreCacheService} from './storeModelProvider';\nconst option: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\njest.setTimeout(60000);\n// Mock 1740100000 is the timestamp of the genesis block\nconst genBlockTimestamp = (height: number) => (1740100000 + height) * 1000;\nconst genBlockDate = (height: number) => new Date(genBlockTimestamp(height));\n\nconst testSchemaName = 'test_model_store';\nconst schema = buildSchemaFromString(`\n  type Account @entity {\n    id: ID! # Account address\n    balance: Int\n  }\n`);\n\ndescribe('Check whether the db store and cache store are consistent.', () => {\n  let sequelize: Sequelize;\n  let storeService: StoreService;\n\n  beforeAll(async () => {\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    await sequelize.authenticate();\n\n    await sequelize.query(`CREATE SCHEMA ${testSchemaName};`);\n    const nodeConfig = new NodeConfig({subquery: 'test', proofOfIndex: true, enableCache: false});\n    const project = {network: {chainId: '1'}, schema} as any;\n    const dbModel = new PlainStoreModelService(sequelize, nodeConfig);\n    storeService = new StoreService(sequelize, nodeConfig, dbModel, project);\n    await storeService.initCoreTables(testSchemaName);\n    const tx = await sequelize.transaction();\n    await storeService.init(testSchemaName, tx);\n    await tx.commit();\n  });\n  afterAll(async () => {\n    await sequelize.query(`DROP SCHEMA ${testSchemaName} CASCADE;`);\n    await sequelize.close();\n  });\n\n  afterEach(async () => {\n    if (storeService.transaction) {\n      await storeService.modelProvider.applyPendingChanges(1, false, storeService.transaction);\n    }\n  });\n\n  it('Same block, Execute the set method multiple times.', async () => {\n    await storeService.setBlockHeader({\n      blockHeight: 1,\n      blockHash: '0x01',\n      parentHash: '0x00',\n      timestamp: genBlockDate(1),\n    });\n\n    const accountEntity = {id: 'block-001', balance: 100};\n\n    // account not exist.\n    let account = await storeService.getStore().get('Account', accountEntity.id);\n    expect(account).toBeUndefined();\n\n    // insert account success.\n    await storeService.getStore().set('Account', accountEntity.id, accountEntity as any);\n    account = await storeService.getStore().get('Account', accountEntity.id);\n    expect(account).toEqual(accountEntity);\n\n    // block range check.\n    const [dbData] = await sequelize.query<any>(`SELECT * FROM \"${testSchemaName}\".\"accounts\" WHERE id = :id`, {\n      replacements: {id: accountEntity.id},\n      type: QueryTypes.SELECT,\n      transaction: storeService.transaction,\n    });\n    expect(dbData._block_range).toEqual([\n      {value: '1', inclusive: true},\n      {value: null, inclusive: false},\n    ]);\n\n    // update account success.\n    const account001 = {id: 'block-001', balance: 10000};\n    await storeService.getStore().set('Account', account001.id, account001 as any);\n    const account001After = await storeService.getStore().get('Account', account001.id);\n    expect(account001After).toEqual(account001);\n    console.log({accountAfter: account001After, accountEntityAfter: account001});\n\n    // only one record in db and block range check.\n    const allDatas = await sequelize.query<any>(`SELECT * FROM \"${testSchemaName}\".\"accounts\"`, {\n      type: QueryTypes.SELECT,\n      transaction: storeService.transaction,\n    });\n    expect(allDatas).toHaveLength(1);\n    expect(allDatas[0]._block_range).toEqual([\n      {value: '1', inclusive: true},\n      {value: null, inclusive: false},\n    ]);\n\n    const account002 = {id: 'block-002', balance: 100};\n    await storeService.getStore().bulkCreate('Account', [account002, account001]);\n    const account002After = await storeService.getStore().get('Account', account002.id);\n    expect(account002After).toEqual(account002);\n\n    // two records in db and block range check.\n    const allDatas2 = await sequelize.query<any>(`SELECT * FROM \"${testSchemaName}\".\"accounts\"`, {\n      type: QueryTypes.SELECT,\n      transaction: storeService.transaction,\n    });\n    expect(allDatas2).toHaveLength(2);\n    expect(allDatas2[0]._block_range).toEqual([\n      {value: '1', inclusive: true},\n      {value: null, inclusive: false},\n    ]);\n    expect(allDatas2[1]._block_range).toEqual([\n      {value: '1', inclusive: true},\n      {value: null, inclusive: false},\n    ]);\n  }, 30000);\n\n  it('_block_range update check', async () => {\n    await storeService.setBlockHeader({\n      blockHeight: 1000,\n      blockHash: '0x1000',\n      parentHash: '0x0999',\n      timestamp: genBlockDate(1000),\n    });\n\n    // insert new account.\n    const account1000Data = {id: 'block-1000', balance: 999};\n    await storeService.getStore().set('Account', account1000Data.id, account1000Data as any);\n    const account1000 = await storeService.getStore().get('Account', account1000Data.id);\n    expect(account1000).toEqual(account1000Data);\n\n    const allDatas = await sequelize.query<any>(`SELECT * FROM \"${testSchemaName}\".\"accounts\"`, {\n      type: QueryTypes.SELECT,\n      transaction: storeService.transaction,\n    });\n    expect(allDatas).toHaveLength(3);\n\n    // set old account.\n    const account002 = {id: 'block-002', balance: 222222};\n    await storeService.getStore().set('Account', account002.id, account002 as any);\n    const account002After = await storeService.getStore().get('Account', account002.id);\n    expect(account002After).toEqual(account002);\n    expect((account002After as any).balance).toEqual(222222);\n\n    const allDatas2 = await sequelize.query<any>(`SELECT * FROM \"${testSchemaName}\".\"accounts\"`, {\n      type: QueryTypes.SELECT,\n      transaction: storeService.transaction,\n    });\n    expect(allDatas2).toHaveLength(4);\n\n    // check block range.\n    const account002Datas = allDatas2.filter((v) => v.id === account002.id);\n    expect(account002Datas).toHaveLength(2);\n    expect(account002Datas.map((v) => v._block_range).sort((a, b) => b[0].value - a[0].value)).toEqual([\n      [\n        {value: '1000', inclusive: true},\n        {value: null, inclusive: false},\n      ],\n      [\n        {value: '1', inclusive: true},\n        {value: '1000', inclusive: false},\n      ],\n    ]);\n  }, 100000);\n});\n\ndescribe('Cache Provider', () => {\n  let sequelize: Sequelize;\n  let storeService: StoreService;\n  let cacheModel: StoreCacheService;\n  let Account: CachedModel<any>;\n\n  beforeAll(async () => {\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    await sequelize.authenticate();\n\n    await sequelize.query(`CREATE SCHEMA ${testSchemaName};`);\n    const nodeConfig = new NodeConfig({\n      subquery: 'test',\n      proofOfIndex: true,\n      enableCache: false,\n      storeCacheAsync: true,\n      storeCacheThreshold: 1,\n      storeCacheUpperLimit: 1,\n      storeFlushInterval: 0,\n    });\n    const project = {network: {chainId: '1'}, schema} as any;\n    cacheModel = new StoreCacheService(sequelize, nodeConfig, new EventEmitter2());\n    storeService = new StoreService(sequelize, nodeConfig, cacheModel, project);\n    await storeService.initCoreTables(testSchemaName);\n    const tx = await sequelize.transaction();\n    await storeService.init(testSchemaName, tx);\n    await tx.commit();\n    Account = cacheModel.getModel('Account') as CachedModel<any>;\n  });\n  afterAll(async () => {\n    await sequelize.query(`DROP SCHEMA ${testSchemaName} CASCADE;`);\n    await sequelize.close();\n  });\n\n  beforeEach(async () => {\n    await sequelize.query(`TRUNCATE TABLE \"${testSchemaName}\".\"accounts\" CASCADE;`);\n  });\n  async function cacheFlush(blockHeight: number, handle: (blockHeight: number) => Promise<void>) {\n    const tx = await sequelize.transaction();\n    tx.afterCommit(() => {\n      Account.clear(blockHeight);\n    });\n    await storeService.setBlockHeader({\n      blockHeight,\n      blockHash: `0x${blockHeight}`,\n      parentHash: `0x${blockHeight - 1}`,\n      timestamp: genBlockDate(blockHeight),\n    });\n    await handle(blockHeight);\n    await Account.runFlush(tx, blockHeight);\n    await tx.commit();\n  }\n\n  it('For data that already exists, if there is a delete-create-delete operation, the database should have two entries for the data.', async () => {\n    const getAllAccounts = () =>\n      sequelize.query<any>(`SELECT * FROM \"${testSchemaName}\".\"accounts\"`, {\n        type: QueryTypes.SELECT,\n      });\n\n    const accountEntity1 = {id: 'accountEntity-001', balance: 100};\n    await cacheFlush(1, async (blockHeight) => {\n      await Account.set(accountEntity1.id, accountEntity1, blockHeight);\n    });\n\n    // database check\n    let allDatas = await getAllAccounts();\n    expect(allDatas).toHaveLength(1);\n\n    // next block 999\n    const accountEntity2 = {id: 'accountEntity-002', balance: 9999};\n    await cacheFlush(999, async (blockHeight) => {\n      await Account.remove(accountEntity1.id, blockHeight);\n      const oldAccunt = await Account.get(accountEntity1.id);\n      expect(oldAccunt).toBeUndefined();\n\n      await Account.set(accountEntity2.id, accountEntity2, blockHeight);\n    });\n\n    allDatas = await getAllAccounts();\n    expect(allDatas).toHaveLength(2);\n\n    // next block 99999\n    await cacheFlush(99999, async (blockHeight) => {\n      // last block, accountEntity1 should be deleted.\n      const oldAccunt1 = await Account.get(accountEntity1.id);\n      expect(oldAccunt1).toBeUndefined();\n\n      let oldAccunt2 = await Account.get(accountEntity2.id);\n      expect(oldAccunt2.balance).toEqual(accountEntity2.balance);\n\n      await Account.remove(accountEntity2.id, blockHeight);\n      oldAccunt2 = await Account.get(accountEntity2.id);\n      expect(oldAccunt2).toBeUndefined();\n\n      await Account.set(accountEntity2.id, {id: 'accountEntity-002', balance: 999999} as any, blockHeight);\n      oldAccunt2 = await Account.get(accountEntity2.id);\n      expect(oldAccunt2.balance).toEqual(999999);\n    });\n\n    allDatas = await getAllAccounts();\n    expect(allDatas).toHaveLength(3);\n  });\n\n  it('Should correctly rewind to previous states', async () => {\n    const getAllAccounts = () =>\n      sequelize.query<any>(`SELECT * FROM \"${testSchemaName}\".\"accounts\"`, {\n        type: QueryTypes.SELECT,\n      });\n\n    // Set up initial data at block 5000\n    const accountEntity = {id: 'rewind-test-001', balance: 1000};\n    await cacheFlush(5000, async (blockHeight) => {\n      await Account.set(accountEntity.id, accountEntity, blockHeight);\n    });\n\n    // Modify data at block 6000\n    const updatedAccount = {id: 'rewind-test-001', balance: 2000};\n    await cacheFlush(6000, async (blockHeight) => {\n      await Account.set(updatedAccount.id, updatedAccount, blockHeight);\n    });\n\n    // Add new data at block 7000\n    const anotherAccount = {id: 'rewind-test-002', balance: 3000};\n    await cacheFlush(7000, async (blockHeight) => {\n      await Account.set(anotherAccount.id, anotherAccount, blockHeight);\n    });\n\n    // Verify current state before rewind\n    const account1 = await Account.get(accountEntity.id);\n    const account2 = await Account.get(anotherAccount.id);\n    expect(account1.balance).toEqual(2000);\n    expect(account2.balance).toEqual(3000);\n\n    // Rewind to block 6000\n    const tx1 = await sequelize.transaction();\n    await storeService.rewind({blockHeight: 6000, timestamp: new Date()} as any, tx1);\n    await tx1.commit();\n\n    let allDatas = await getAllAccounts();\n    expect(allDatas.length).toEqual(2);\n\n    // Rewind further back to block 5000\n    const tx2 = await sequelize.transaction();\n    await storeService.rewind({blockHeight: 5000, timestamp: new Date()} as any, tx2);\n    await tx2.commit();\n\n    allDatas = await getAllAccounts();\n    expect(allDatas.length).toEqual(1);\n\n    // Check database records\n    allDatas = await getAllAccounts();\n    const rewindTestDatas = allDatas.filter((data) => data.id.startsWith('rewind-test'));\n\n    // We should only have one active record for rewind-test-001 with block range starting at 5000\n    const activeRecords = rewindTestDatas.filter((data) => data._block_range[1].value === null);\n\n    expect(activeRecords.length).toEqual(1);\n    expect(activeRecords[0].id).toEqual('rewind-test-001');\n    expect(activeRecords[0].balance).toEqual(1000);\n    expect(activeRecords[0]._block_range[0].value).toEqual('5000');\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/store.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Inject, Injectable} from '@nestjs/common';\nimport {IProjectNetworkConfig} from '@subql/types-core';\nimport {\n  GraphQLModelsRelationsEnums,\n  hashName,\n  METADATA_REGEX,\n  MULTI_METADATA_REGEX,\n  hexToU8a,\n  GraphQLModelsType,\n} from '@subql/utils';\nimport {\n  IndexesOptions,\n  ModelAttributes,\n  ModelStatic,\n  Op,\n  QueryTypes,\n  Sequelize,\n  Transaction,\n  Deferrable,\n} from '@subql/x-sequelize';\nimport {camelCase, flatten, last, upperFirst} from 'lodash';\nimport {NodeConfig} from '../configure';\nimport {\n  BTREE_GIST_EXTENSION_EXIST_QUERY,\n  createSchemaTrigger,\n  createSchemaTriggerFunction,\n  getDbSizeAndUpdateMetadata,\n  getTriggers,\n  ModifiedDbModels,\n  SchemaMigrationService,\n  tableExistsQuery,\n} from '../db';\nimport {getLogger} from '../logger';\nimport {exitWithError} from '../process';\nimport {customCamelCaseGraphqlKey, getHistoricalUnit} from '../utils';\nimport {\n  GlobalDataFactory,\n  GlobalDataRepo,\n  MetadataFactory,\n  MetadataRepo,\n  PoiFactory,\n  PoiFactoryDeprecate,\n  PoiRepo,\n} from './entities';\nimport {Store} from './store';\nimport {IMetadata, IStoreModelProvider, PlainStoreModelService} from './storeModelProvider';\nimport {StoreOperations} from './StoreOperations';\nimport {Header, HistoricalMode, ISubqueryProject} from './types';\n\nconst logger = getLogger('StoreService');\nconst NULL_MERKEL_ROOT = hexToU8a('0x00');\nconst DB_SIZE_CACHE_TIMEOUT = 10 * 60 * 1000; // 10 minutes\n\nclass NoInitError extends Error {\n  constructor() {\n    super('StoreService has not been initialized');\n  }\n}\n\n@Injectable()\nexport class StoreService {\n  poiRepo?: PoiRepo;\n  private _modelsRelations?: GraphQLModelsRelationsEnums;\n  private _globalDataRepo?: GlobalDataRepo;\n  private _metaDataRepo?: MetadataRepo;\n  private _historical?: HistoricalMode;\n  private _metadataModel?: IMetadata;\n  private _schema?: string;\n  private _isMultichain?: boolean;\n  // Should be updated each block\n  private _blockHeader?: Header;\n  private _operationStack?: StoreOperations;\n  private _lastTimeDbSizeChecked?: number;\n\n  #transaction?: Transaction;\n\n  constructor(\n    private sequelize: Sequelize,\n    private config: NodeConfig,\n    @Inject('IStoreModelProvider') readonly modelProvider: IStoreModelProvider,\n    @Inject('ISubqueryProject') private subqueryProject: ISubqueryProject<IProjectNetworkConfig>\n  ) {}\n\n  private get modelsRelations(): GraphQLModelsRelationsEnums {\n    assert(this._modelsRelations, new NoInitError());\n    return this._modelsRelations;\n  }\n\n  private get metaDataRepo(): MetadataRepo {\n    assert(this._metaDataRepo, new NoInitError());\n    return this._metaDataRepo;\n  }\n\n  private set operationStack(os: StoreOperations | undefined) {\n    this._operationStack = os;\n  }\n\n  get operationStack(): StoreOperations | undefined {\n    return this._operationStack;\n  }\n\n  get globalDataRepo(): GlobalDataRepo {\n    assert(this._globalDataRepo, new NoInitError());\n    return this._globalDataRepo;\n  }\n\n  get blockHeader(): Header {\n    assert(this._blockHeader, new Error('StoreService.setBlockHeader has not been called'));\n    return this._blockHeader;\n  }\n\n  get historical(): HistoricalMode {\n    assert(this._historical !== undefined, new NoInitError());\n    return this._historical;\n  }\n\n  get transaction(): Transaction | undefined {\n    return this.#transaction;\n  }\n\n  get isMultichain(): boolean {\n    assert(this._isMultichain !== undefined, new NoInitError());\n    return this._isMultichain;\n  }\n\n  async syncDbSize(): Promise<bigint> {\n    if (!this._lastTimeDbSizeChecked || Date.now() - this._lastTimeDbSizeChecked > DB_SIZE_CACHE_TIMEOUT) {\n      this._lastTimeDbSizeChecked = Date.now();\n      return getDbSizeAndUpdateMetadata(this.sequelize, this.schema);\n    } else {\n      return this.modelProvider.metadata.find('dbSize').then((cachedDbSize) => {\n        if (cachedDbSize !== undefined) {\n          return cachedDbSize;\n        } else {\n          this._lastTimeDbSizeChecked = Date.now();\n          return getDbSizeAndUpdateMetadata(this.sequelize, this.schema);\n        }\n      });\n    }\n  }\n\n  private get metadataModel(): IMetadata {\n    assert(this._metadataModel, new NoInitError());\n    return this._metadataModel;\n  }\n\n  private get schema(): string {\n    assert(this._schema, new NoInitError());\n    return this._schema;\n  }\n\n  // Initialize tables and data that isnt' specific to the users data\n  async initCoreTables(schema: string): Promise<void> {\n    if (this.config.proofOfIndex) {\n      const usePoiFactory = (await this.useDeprecatePoi(schema)) ? PoiFactoryDeprecate : PoiFactory;\n      this.poiRepo = usePoiFactory(this.sequelize, schema);\n    }\n\n    this._schema = schema;\n\n    await this.setMultiChainProject();\n\n    this._metaDataRepo = await MetadataFactory(\n      this.sequelize,\n      schema,\n      this.isMultichain,\n      this.subqueryProject.network.chainId\n    );\n\n    if (this.isMultichain) {\n      this._globalDataRepo = GlobalDataFactory(this.sequelize, schema);\n    }\n\n    await this.sequelize.sync();\n\n    this._historical = await this.getHistoricalStateEnabled(schema);\n    logger.info(`Historical state is ${this.historical || 'disabled'}`);\n\n    this.modelProvider.init(this.historical, this.metaDataRepo, this.poiRepo);\n\n    this._metadataModel = this.modelProvider.metadata;\n\n    await this.initHotSchemaReloadQueries(schema);\n\n    await this.metadataModel.set('historicalStateEnabled', this.historical);\n  }\n\n  async init(schema: string, tx: Transaction): Promise<void> {\n    try {\n      if (this.historical) {\n        const [results] = await this.sequelize.query(BTREE_GIST_EXTENSION_EXIST_QUERY);\n        if (results.length === 0) {\n          throw new Error('Btree_gist extension is required to enable historical data, contact DB admin for support');\n        }\n      }\n      /*\n      On SyncSchema, if no schema migration is introduced, it would consider current schema to be null, and go all db operations again\n      every start up is a migration\n       */\n      const schemaMigrationService = new SchemaMigrationService(this.sequelize, this, schema, this.config);\n\n      await schemaMigrationService.run(null, this.subqueryProject.schema, tx);\n\n      const deploymentsRaw = await this.metadataModel.find('deployments');\n      const deployments = deploymentsRaw ? JSON.parse(deploymentsRaw) : {};\n\n      // Check if the deployment change or a local project is running\n      // WARNING:This assumes that the root is the same as the id for local project, there are no checks for this and it could change at any time\n      if (\n        this.subqueryProject.id === this.subqueryProject.root ||\n        last(Object.values(deployments)) !== this.subqueryProject.id\n      ) {\n        await this.metadataModel.setIncrement('schemaMigrationCount', undefined, tx);\n      }\n    } catch (e: any) {\n      exitWithError(new Error(`Having a problem when syncing schema`, {cause: e}), logger);\n    }\n  }\n\n  private async initHotSchemaReloadQueries(schema: string): Promise<void> {\n    /* These SQL queries are to allow hot-schema reload on query service */\n    const schemaTriggerName = hashName(schema, 'schema_trigger', this.metaDataRepo.tableName);\n    const schemaTriggers = await getTriggers(this.sequelize, schemaTriggerName);\n\n    try {\n      // TODO\n      // For now, due to existing channel name over long issue, we will force replace function first\n      // We will change this to check with function length in future\n      // const schemaFunctions = await getFunctions(this.sequelize,schema,'schema_notification');\n      await this.sequelize.query(`${createSchemaTriggerFunction(schema)}`);\n\n      if (schemaTriggers.length === 0) {\n        await this.sequelize.query(createSchemaTrigger(schema, this.metaDataRepo.tableName));\n      }\n    } catch (e) {\n      logger.error(`Failed to init Hot schema reload`);\n    }\n  }\n\n  // Updates the state of the store and model provider after migrations occurr\n  updateModels(modelChanges: ModifiedDbModels, modelsRelations: GraphQLModelsRelationsEnums): undefined {\n    this.modelProvider.updateModels(modelChanges);\n    this._modelsRelations = modelsRelations;\n  }\n\n  defineModel(\n    model: GraphQLModelsType,\n    attributes: ModelAttributes<any>,\n    indexes: IndexesOptions[],\n    schema: string\n  ): ModelStatic<any> {\n    const sequelizeModel = this.sequelize.define(model.name, attributes, {\n      underscored: true,\n      comment: model.description,\n      freezeTableName: false,\n      timestamps: false,\n      schema,\n      indexes,\n    });\n\n    if (this.historical) {\n      // WARNING these hooks depend on `this.blockHeight` which is a changing value. DO NOT move this into a function outside of this class\n      sequelizeModel.addScope('defaultScope', {\n        attributes: {\n          exclude: ['__id', '__block_range'],\n        },\n      });\n\n      sequelizeModel.addHook('beforeFind', (options) => {\n        (options.where as any).__block_range = {\n          [Op.contains]: this.getHistoricalUnit(),\n        };\n      });\n      sequelizeModel.addHook('beforeValidate', (attributes, options) => {\n        attributes.__block_range = [this.getHistoricalUnit(), null];\n      });\n\n      if (!this.config.enableCache) {\n        sequelizeModel.addHook('beforeBulkCreate', (instances, options) => {\n          instances.forEach((item) => {\n            item.__block_range = [this.getHistoricalUnit(), null];\n          });\n        });\n      }\n      // TODO, remove id and block_range constraint, check id manually\n      // see https://github.com/subquery/subql/issues/1542\n    }\n\n    return sequelizeModel;\n  }\n\n  private async useDeprecatePoi(schema: string): Promise<boolean> {\n    const sql = `SELECT * FROM information_schema.columns WHERE table_schema = ? AND table_name = '_poi' AND column_name = 'projectId'`;\n    const [result] = await this.sequelize.query(sql, {replacements: [schema]});\n    return !!result.length;\n  }\n\n  async getHistoricalStateEnabled(schema: string): Promise<HistoricalMode> {\n    const {historical, multiChain} = this.config;\n\n    try {\n      const tableRes = await this.sequelize.query<Array<string>>(tableExistsQuery(schema), {type: QueryTypes.SELECT});\n\n      const metadataTableNames = flatten(tableRes).filter(\n        (value: string) => METADATA_REGEX.test(value) || MULTI_METADATA_REGEX.test(value)\n      );\n\n      if (metadataTableNames.length <= 0) {\n        throw new Error('Metadata table does not exist');\n      }\n\n      const res = await this.sequelize.query<{key: string; value: boolean | string}>(\n        `SELECT key, value FROM \"${schema}\".\"${metadataTableNames[0]}\" WHERE (key = 'historicalStateEnabled')`,\n        {type: QueryTypes.SELECT}\n      );\n\n      if (res[0]?.key !== 'historicalStateEnabled') {\n        throw new Error('Metadata table does not have historicalStateEnabled key');\n      }\n\n      const value = res[0].value;\n\n      if (typeof value === 'string') {\n        if (value === 'height' || value === 'timestamp') {\n          return value;\n        }\n        throw new Error(`Invalid value for historicalStateEnabled. Received \"${value}\"`);\n      }\n\n      if ((value === true || value.toString() === 'height') && multiChain) {\n        throw new Error(\n          'Historical indexing by height is enabled and not compatible with multi-chain, to multi-chain index clear postgres schema and re-index project using --multichain'\n        );\n      }\n\n      // TODO parse through CLI/Project option and consider multichain\n      return value ? 'height' : false;\n    } catch (e) {\n      if (multiChain && historical === 'height') {\n        logger.warn('Historical state by height is not compatible with multi chain indexing, using timestamp instead.');\n        return 'timestamp';\n      }\n      // Will trigger on first startup as metadata table doesn't exist\n      // Default fallback to \"height\" for backwards compatible\n      return historical;\n    }\n  }\n\n  async setBlockHeader(header: Header): Promise<void> {\n    this._blockHeader = header;\n\n    if (this.modelProvider instanceof PlainStoreModelService) {\n      assert(!this.#transaction, new Error(`Transaction already exists for height: ${header.blockHeight}`));\n\n      this.#transaction = await this.sequelize.transaction({\n        deferrable: this._historical ? undefined : Deferrable.SET_DEFERRED(),\n      });\n      this.#transaction.afterCommit(() => (this.#transaction = undefined));\n    }\n    if (this.config.proofOfIndex) {\n      this.operationStack = new StoreOperations(this.modelsRelations.models);\n    }\n  }\n\n  getOperationMerkleRoot(): Uint8Array {\n    if (this.config.proofOfIndex) {\n      assert(this.operationStack, new Error('OperationStack is not set, make sure `setBlockHeight` has been called'));\n      this.operationStack.makeOperationMerkleTree();\n      const merkelRoot = this.operationStack.getOperationMerkleRoot();\n      if (merkelRoot === null) {\n        return NULL_MERKEL_ROOT;\n      }\n      return merkelRoot;\n    }\n    return NULL_MERKEL_ROOT;\n  }\n\n  /**\n   * rollback db that is newer than ${targetBlockHeight} (exclusive)\n   * set metadata\n   * since transaction is handled outside, metadata cache flushing and tx is done there.\n   * @param targetBlockHeight\n   * @param transaction\n   */\n  async rewind(targetBlockHeader: Header, transaction: Transaction): Promise<void> {\n    if (!this.historical) {\n      throw new Error('Unable to reindex, historical state not enabled');\n    }\n    // This should only been called from CLI, blockHeight in storeService never been set and is required for`beforeFind` hook\n    // Height no need to change for rewind during indexing\n    if (this._blockHeader === undefined) {\n      await this.setBlockHeader(targetBlockHeader);\n    }\n    for (const model of Object.values(this.sequelize.models)) {\n      if ('__block_range' in model.getAttributes()) {\n        await batchDeleteAndThenUpdate(\n          this.sequelize,\n          model,\n          transaction,\n          getHistoricalUnit(this.historical, targetBlockHeader)\n        );\n      }\n    }\n\n    await this.metadataModel.set('lastProcessedHeight', targetBlockHeader.blockHeight, transaction);\n    if (targetBlockHeader.timestamp) {\n      await this.metadataModel.set('lastProcessedBlockTimestamp', targetBlockHeader.timestamp.getTime(), transaction);\n    }\n    // metadataModel will be flushed in reindex.ts#reindex()\n  }\n\n  isIndexed(entity: string, field: string): boolean {\n    const indexes = this.modelProvider.getModel(entity).model.options.indexes ?? [];\n\n    return (\n      indexes.findIndex((idx) => {\n        const matchingField = idx.fields?.find((f) => {\n          const fieldName = (f as any).name ?? f;\n          return camelCase(fieldName) === customCamelCaseGraphqlKey(field);\n        });\n        return !!matchingField;\n      }) > -1\n    );\n  }\n\n  isIndexedHistorical(entity: string, field: string): boolean {\n    const indexes = this.modelProvider.getModel(entity).model.options.indexes ?? [];\n\n    return (\n      indexes.findIndex((idx) => {\n        const matchingField = idx.fields?.find((f) => {\n          const fieldName = (f as any).name ?? f;\n          return camelCase(fieldName) === customCamelCaseGraphqlKey(field);\n        });\n        // With historical indexes are not unique\n        return !!matchingField && (this.historical || idx.unique);\n      }) > -1\n    );\n  }\n\n  getStore(): Store {\n    return new Store(this.config, this.modelProvider, this);\n  }\n\n  // Get the right unit depending on the historical mode\n  getHistoricalUnit(): number {\n    // Cant throw here because even with historical disabled the current height is used by the store\n    return getHistoricalUnit(this.historical, this.blockHeader);\n  }\n\n  async getLastProcessedBlock(): Promise<{height: number; timestamp?: number}> {\n    const {lastProcessedBlockTimestamp: timestamp, lastProcessedHeight: height} = await this.metadataModel.findMany([\n      'lastProcessedHeight',\n      'lastProcessedBlockTimestamp',\n    ]);\n\n    return {height: height || 0, timestamp};\n  }\n\n  private async setMultiChainProject() {\n    if (this.config.multiChain) {\n      this._isMultichain = true;\n      return;\n    }\n\n    const tableRes = await this.sequelize.query<Array<string>>(tableExistsQuery(this.schema), {\n      type: QueryTypes.SELECT,\n    });\n\n    this._isMultichain = !!flatten(tableRes).find((value: string) => MULTI_METADATA_REGEX.test(value));\n  }\n}\n\n// REMOVE 10,000 record per batch\nasync function batchDeleteAndThenUpdate(\n  sequelize: Sequelize,\n  model: ModelStatic<any>,\n  transaction: Transaction,\n  targetBlockUnit: number, // Height or timestamp\n  batchSize = 10000\n): Promise<void> {\n  let destroyCompleted = false;\n  let updateCompleted = false;\n  while (!destroyCompleted || !updateCompleted) {\n    try {\n      const [numDestroyRows, [numUpdatedRows]] = await Promise.all([\n        destroyCompleted\n          ? 0\n          : model.destroy({\n              transaction,\n              hooks: false,\n              limit: batchSize,\n              where: sequelize.where(sequelize.fn('lower', sequelize.col('_block_range')), Op.gt, targetBlockUnit),\n            }),\n        updateCompleted\n          ? [0]\n          : model.update(\n              {\n                __block_range: sequelize.fn('int8range', sequelize.fn('lower', sequelize.col('_block_range')), null),\n              },\n              {\n                transaction,\n                limit: batchSize,\n                hooks: false,\n                where: {\n                  [Op.and]: [\n                    {\n                      __block_range: {\n                        [Op.contains]: targetBlockUnit,\n                      },\n                    },\n                    sequelize.where(sequelize.fn('upper', sequelize.col('_block_range')), Op.not, null),\n                  ],\n                },\n              }\n            ),\n      ]);\n      logger.debug(`${model.name} deleted ${numDestroyRows} records, updated ${numUpdatedRows} records`);\n      if (numDestroyRows === 0) {\n        destroyCompleted = true;\n      }\n      if (numUpdatedRows === 0) {\n        updateCompleted = true;\n      }\n    } catch (e) {\n      throw new Error(`Reindex update model ${model.name} failed, please try to reindex again: ${e}`);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/baseCache.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BeforeApplicationShutdown, Injectable} from '@nestjs/common';\nimport Pino from 'pino';\nimport {getLogger} from '../../logger';\nimport {profiler} from '../../profiler';\nimport {timeout} from '../../utils/promise';\nimport {BaseStoreModelService} from './baseStoreModel.service';\nimport {ICachedModelControl} from './types';\n\n@Injectable()\nexport abstract class BaseCacheService\n  extends BaseStoreModelService<ICachedModelControl>\n  implements BeforeApplicationShutdown\n{\n  private pendingFlush?: Promise<void>;\n  private queuedFlush?: Promise<void>;\n  protected logger: Pino.Logger;\n\n  abstract _flushCache(): Promise<void>;\n  abstract _resetCache(): Promise<void> | void;\n  abstract isFlushable(): boolean;\n  abstract get flushableRecords(): number;\n\n  protected constructor(loggerName: string) {\n    super();\n    this.logger = getLogger(loggerName);\n  }\n\n  @profiler()\n  async flushData(forceFlush?: boolean): Promise<void> {\n    const flushCacheGuarded = async (forceFlush?: boolean): Promise<void> => {\n      // When we force flush, this will ensure not interrupt current block flushing,\n      // Force flush will continue after last block flush tx committed.\n      if (this.pendingFlush !== undefined) {\n        await this.pendingFlush;\n      }\n      if ((this.isFlushable() || forceFlush) && this.flushableRecords > 0) {\n        this.pendingFlush = this._flushCache();\n        // Remove reference to pending flush once it completes\n        this.pendingFlush\n          .catch((e) => {\n            /* Do nothing, avoids uncaught exception */\n          })\n          .finally(() => (this.pendingFlush = undefined));\n        await this.pendingFlush;\n      }\n    };\n\n    // Queued flush ensures that we only prepare one more task to flush, successive calls will return the same promise\n    if (this.queuedFlush === undefined) {\n      this.queuedFlush = flushCacheGuarded(forceFlush);\n\n      this.queuedFlush\n        .catch((e) => {\n          /* Do nothing, avoids uncaught exception */\n        })\n        .finally(() => (this.queuedFlush = undefined));\n    }\n\n    return this.queuedFlush;\n  }\n\n  async resetData(): Promise<void> {\n    await this._resetCache();\n  }\n\n  async beforeApplicationShutdown(): Promise<void> {\n    await timeout(this.flushData(true), 60, 'Before shutdown flush cache timeout');\n    this.logger.info(`Force flush cache successful!`);\n    await super.beforeApplicationShutdown();\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/baseStoreModel.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BeforeApplicationShutdown} from '@nestjs/common';\nimport {ModelStatic} from '@subql/x-sequelize';\nimport {getLogger} from '../../logger';\nimport {MetadataRepo, PoiRepo} from '../entities';\nimport {HistoricalMode} from '../types';\nimport {Exporter} from './exporters';\nimport {METADATA_ENTITY_NAME} from './metadata/utils';\nimport {BaseEntity, IModel} from './model';\nimport {POI_ENTITY_NAME} from './poi';\n\nconst logger = getLogger('BaseStoreModelService');\nexport abstract class BaseStoreModelService<M = IModel<any>> implements BeforeApplicationShutdown {\n  protected historical: HistoricalMode = 'height';\n  protected poiRepo?: PoiRepo;\n  protected metadataRepo?: MetadataRepo;\n  protected cachedModels: Record<string, M> = {};\n\n  protected abstract createModel(entity: string): M;\n\n  init(historical: HistoricalMode, meta: MetadataRepo, poi?: PoiRepo): void {\n    this.historical = historical;\n    this.metadataRepo = meta;\n    this.poiRepo = poi;\n  }\n\n  getModel<T extends BaseEntity>(entity: string): IModel<T> {\n    if (entity === METADATA_ENTITY_NAME) {\n      throw new Error('Please use getMetadataModel instead');\n    }\n    if (entity === POI_ENTITY_NAME) {\n      throw new Error('Please use getPoiModel instead');\n    }\n    if (!this.cachedModels[entity]) {\n      this.cachedModels[entity] = this.createModel(entity);\n    }\n    return this.cachedModels[entity] as IModel<T>;\n  }\n\n  updateModels({modifiedModels, removedModels}: {modifiedModels: ModelStatic<any>[]; removedModels: string[]}): void {\n    modifiedModels.forEach((m) => {\n      this.cachedModels[m.name] = this.createModel(m.name);\n    });\n    removedModels.forEach((r) => delete this.cachedModels[r]);\n  }\n\n  async beforeApplicationShutdown(): Promise<void> {\n    await Promise.all(this.getAllExporters().map((e) => e.shutdown()));\n    logger.info(`Force flush exports successful!`);\n  }\n\n  getAllExporters(): Exporter[] {\n    return Object.values(this.cachedModels)\n      .map((m) => (m as any).exporters ?? [])\n      .flat();\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/cacheable.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Transaction} from '@subql/x-sequelize';\nimport {Mutex} from 'async-mutex';\n\nexport abstract class Cacheable {\n  protected mutex = new Mutex();\n\n  abstract clear(historicalUnit?: number): void;\n  protected abstract runFlush(tx: Transaction, historicalUnit: number): Promise<void>;\n\n  async flush(tx: Transaction, historicalUnit: number): Promise<void> {\n    const release = await this.mutex.acquire();\n\n    try {\n      tx.afterCommit(() => {\n        this.clear(historicalUnit);\n        release();\n      });\n\n      await this.runFlush(tx, historicalUnit);\n    } catch (e) {\n      release();\n      throw e;\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/exporters/csvStore.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport type {Fn} from '@subql/x-sequelize/types/utils';\nimport {rimraf} from 'rimraf';\nimport {CsvExporter} from './csvStore';\n\ndescribe('CSV Exporter', () => {\n  const csvDirPath = path.join(__dirname, '../../../../test/csv-test');\n\n  beforeAll(async () => {\n    await fs.promises.mkdir(csvDirPath);\n  });\n\n  afterAll(async () => {\n    await rimraf(csvDirPath);\n  });\n\n  it('Able to export to csv with correct output, No duplicated headers', async () => {\n    const csvFilePath1 = path.join(csvDirPath, 'Test.csv');\n\n    const data = {\n      id: '1463-6',\n      amount: 98746560n,\n      blockNumber: 1463,\n      date: new Date('2020-05-26T18:03:24.000Z'),\n      fromId: '13gkdcmf2pxlw1mdctksezqf541ksy6mszfaehw5vftdpsxe',\n      toId: '15zf7zvduiy2eycgn6kwbv2sjpdbsp6vdhs1ytzdgjrcsmhn',\n      __block_range: {fn: 'int8range', args: [1463, null]} as unknown as Fn,\n    };\n\n    const csvStore = new CsvExporter<typeof data>('Test', csvDirPath);\n\n    await csvStore.export([data]);\n    await csvStore.export([data]);\n\n    await csvStore.shutdown();\n\n    // Read the file after the export operation is complete\n    const csv = await fs.promises.readFile(csvFilePath1, 'utf-8');\n\n    expect(csv).toEqual(\n      `id,amount,blockNumber,date,fromId,toId,__block_number\n1463-6,98746560,1463,1590516204000,13gkdcmf2pxlw1mdctksezqf541ksy6mszfaehw5vftdpsxe,15zf7zvduiy2eycgn6kwbv2sjpdbsp6vdhs1ytzdgjrcsmhn,1463\n1463-6,98746560,1463,1590516204000,13gkdcmf2pxlw1mdctksezqf541ksy6mszfaehw5vftdpsxe,15zf7zvduiy2eycgn6kwbv2sjpdbsp6vdhs1ytzdgjrcsmhn,1463\n`\n    );\n  });\n\n  it('JSON serialisation', async () => {\n    const csvFilePath2 = path.join(csvDirPath, 'JsonTest.csv');\n\n    const data = {\n      id: '1463-6',\n      amount: 98746560n,\n      blockNumber: 1463,\n      jsonField: {field1: 'string', field2: 2, nestedJson: {foo: 'bar'}},\n    };\n\n    const csvStore = new CsvExporter<typeof data>('JsonTest', csvDirPath);\n\n    await csvStore.export([data]);\n\n    await csvStore.shutdown();\n    const csv = await fs.promises.readFile(csvFilePath2, 'utf-8');\n    expect(csv).toEqual(\n      `id,amount,blockNumber,jsonField\n1463-6,98746560,1463,\"{\"\"field1\"\":\"\"string\"\",\"\"field2\"\":2,\"\"nestedJson\"\":{\"\"foo\"\":\"\"bar\"\"}}\"\n`\n    );\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/exporters/csvStore.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport path from 'path';\nimport {Stringifier, stringify} from 'csv-stringify';\nimport {getLogger} from '../../../logger';\nimport {exitWithError} from '../../../process';\nimport {BaseEntity} from '../model';\nimport {Exporter} from './exporter';\n\nconst logger = getLogger('CsvStore');\nexport class CsvExporter<T extends BaseEntity = BaseEntity> implements Exporter<T> {\n  private fileExist?: boolean;\n  private stringifyStream: Stringifier;\n  private readonly writeStream: fs.WriteStream;\n\n  constructor(\n    private modelName: string,\n    private outputPath: string\n  ) {\n    this.writeStream = fs.createWriteStream(this.getCsvFilePath(), {flags: 'a'});\n\n    this.stringifyStream = stringify({header: !this.fileExist}).on('error', (err) => {\n      exitWithError(new Error(`Failed to write to CSV`, err), logger);\n    });\n    this.stringifyStream.pipe(this.writeStream);\n  }\n\n  private getCsvFilePath(): string {\n    const resolvedDir = path.resolve(this.outputPath);\n    if (!fs.existsSync(resolvedDir)) {\n      throw new Error(`${this.outputPath} does not exist`);\n    }\n    if (!fs.lstatSync(resolvedDir).isDirectory()) {\n      throw new Error(`${this.outputPath} is not a directory`);\n    }\n\n    const filePath = path.join(resolvedDir, `${this.modelName}.csv`);\n    this.fileExist = fs.existsSync(filePath);\n    return filePath;\n  }\n\n  private async write(r: Omit<T, '__block_range'> & {blockNumber?: number}): Promise<void> {\n    return new Promise((resolve, reject) => {\n      this.stringifyStream.write(r, (error) => {\n        if (error) {\n          reject(error);\n        } else {\n          resolve(undefined);\n        }\n      });\n    });\n  }\n\n  private blockRangeToBlockNumber(input: T['__block_range']): number | undefined {\n    if (!input) return undefined;\n\n    if (Array.isArray(input)) {\n      return input[0] ?? undefined;\n    }\n\n    if ((input as any).fn === 'int8range') {\n      return (input as any).args[0];\n    }\n  }\n\n  async export(records: T[]): Promise<void> {\n    await Promise.all(\n      records\n        .map((r) => {\n          const {__block_range, ...orgRecord} = r;\n          if (__block_range !== undefined) {\n            return {\n              ...orgRecord,\n              __block_number: this.blockRangeToBlockNumber(__block_range),\n            };\n          }\n          return orgRecord;\n        })\n        .map((r) => this.write(r))\n    );\n  }\n\n  async shutdown(): Promise<void> {\n    return new Promise((resolve) => {\n      this.writeStream.once('finish', () => {\n        logger.info(`Ending CSV write stream, ${this.modelName}`);\n        resolve();\n      });\n\n      this.stringifyStream.end();\n      logger.info(`${this.modelName} CSV Stream ended`);\n    });\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/exporters/exporter.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BaseEntity} from '../model';\n\nexport interface Exporter<T extends BaseEntity = BaseEntity> {\n  /**\n   * Exports an array of records.\n   * This method should handle the processing of the provided records.\n   *\n   * @param records An array of records to be exported.\n   *                These records are of the same type as the database entries\n   */\n  export: (record: T[]) => Promise<void>;\n  /**\n   * Shuts down the export operation.\n   * This method should ensure that all ongoing export operations are\n   * completed and any resources used are properly released or closed.\n   *\n   * @returns A promise that resolves when the shutdown process is complete.\n   */\n  shutdown: () => Promise<void>;\n}\n\nexport type TransactionedExporter<T extends BaseEntity = BaseEntity> = Exporter<T> & {commit: () => Promise<void>};\n\nexport function isTxExporter<T extends BaseEntity = BaseEntity>(\n  exporter: Exporter<T>\n): exporter is TransactionedExporter<T> {\n  return typeof (exporter as TransactionedExporter).commit === 'function';\n}\n\nexport function asTxExporter<T extends BaseEntity = BaseEntity>(exporter: Exporter<T>): TransactionedExporter<T> {\n  if (isTxExporter(exporter)) return exporter;\n  return new TxExporter(exporter);\n}\n\nexport class TxExporter<T extends BaseEntity = BaseEntity> implements TransactionedExporter<T> {\n  #pendingData: T[] = [];\n  #exporter: Exporter<T>;\n\n  constructor(exporter: Exporter<T>) {\n    this.#exporter = exporter;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async export(data: T[]): Promise<void> {\n    this.#pendingData.push(...data);\n  }\n\n  async shutdown(): Promise<void> {\n    await this.commit();\n    await this.#exporter.shutdown();\n  }\n\n  async commit(): Promise<void> {\n    await this.#exporter.export(this.#pendingData);\n    this.#pendingData = [];\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/exporters/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './exporter';\nexport * from './csvStore';\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/global/global.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {getLogger} from '@subql/node-core/logger';\nimport {MULTI_METADATA_REGEX} from '@subql/utils';\nimport {Op, QueryTypes, Sequelize, Transaction} from '@subql/x-sequelize';\nimport {flatten} from 'lodash';\nimport {tableExistsQuery} from '../../../db';\nimport {GlobalData, GlobalDataRepo, MultiChainRewindStatus} from '../../entities';\n\nexport interface IGlobalData {\n  getChainRewindInfo(): Promise<GlobalData | null>;\n\n  acquireGlobalRewindLock(rewindTimestamp: Date): Promise<{lockTimestamp: Date}>;\n  /**\n   * Check if the height is consistent before unlocking.\n   * @param tx\n   * @param rewindTimestamp The timestamp to roll back to, in milliseconds.\n   * @param allowRewindTimestamp Set a rewind-allowed height; only heights greater than or equal this can be released.\n   * @returns the number of remaining rewind chains\n   */\n  releaseChainRewindLock(tx: Transaction, rewindTimestamp: Date, allowRewindTimestamp?: Date): Promise<number>;\n}\n\nconst logger = getLogger('PlainGlobalModel');\n\nexport class PlainGlobalModel implements IGlobalData {\n  constructor(\n    private readonly dbSchema: string,\n    private readonly chainId: string,\n    private readonly model: GlobalDataRepo\n  ) {}\n\n  private get sequelize(): Sequelize {\n    const sequelize = this.model.sequelize;\n\n    if (!sequelize) {\n      throw new Error(`Sequelize is not available on ${this.model.name}`);\n    }\n\n    return sequelize;\n  }\n\n  async getChainRewindInfo(): Promise<GlobalData | null> {\n    const rewindTimestampInfo = await this.model.findOne({\n      where: {chainId: this.chainId},\n    });\n\n    return rewindTimestampInfo;\n  }\n\n  /**\n   * If the set rewindTimestamp is greater than or equal to the current blockHeight, we do nothing because we will roll back to an earlier time.\n   * If the set rewindTimestamp is less than the current blockHeight, we should roll back to the earlier rewindTimestamp.\n   * The reason for not using the external tx variable here is to complete the locking task as soon as possible and promptly send a notification to allow other chains to rewind.\n   * @param rewindTimestamp\n   * @param tx\n   * @returns\n   */\n  async acquireGlobalRewindLock(rewindTimestamp: Date): Promise<{lockTimestamp: Date}> {\n    const tx = await this.sequelize.transaction();\n    const {chainsCount, currentChain} = await this.getChainsInfo(tx);\n    try {\n      if (chainsCount) {\n        assert(currentChain, `Not found chainId: ${this.chainId} in global data`);\n        // Exist rewind task\n        let lockTimestamp = currentChain.rewindTimestamp;\n        const [affectedCount] = await this.model.update(\n          {\n            status: MultiChainRewindStatus.Incomplete,\n            rewindTimestamp,\n            initiator: false,\n          },\n          {\n            where: {\n              rewindTimestamp: {[Op.gt]: rewindTimestamp},\n            },\n            transaction: tx,\n          }\n        );\n\n        assert(\n          affectedCount === 0 || affectedCount === chainsCount,\n          `Set global rewind lock failed, chainId: ${this.chainId}, rewindTimestamp: ${rewindTimestamp}`\n        );\n\n        if (affectedCount === chainsCount) {\n          lockTimestamp = rewindTimestamp;\n          await this.model.update({initiator: true}, {where: {chainId: this.chainId}, transaction: tx});\n        }\n\n        await tx.commit();\n        return {lockTimestamp};\n      } else {\n        const chainIds = await this.getChainIdsFromMetadata(tx);\n        // No rewind task, set the current chain as the initiator\n        await this.model.bulkCreate(\n          chainIds.map((chainId) => ({\n            chainId,\n            status: MultiChainRewindStatus.Incomplete,\n            rewindTimestamp,\n            initiator: chainId === this.chainId,\n          })),\n          {transaction: tx}\n        );\n        await tx.commit();\n        return {lockTimestamp: rewindTimestamp};\n      }\n    } catch (e: any) {\n      logger.error(\n        `setGlobalRewindLock failed chainId: ${this.chainId}, rewindTimestamp: ${rewindTimestamp}, errorMsg: ${e.message}`\n      );\n      await tx.rollback();\n      throw e;\n    }\n  }\n\n  /**\n   * The following special cases may exist:\n   * 1.\tA table lock needs to be added before release to prevent multiple chains from releasing simultaneously, causing a deadlock. If one chain is setting setGlobalRewindLock, others need to queue (so it’s necessary to check if it’s the lock for the current timestamp; if not, the release fails, and the rollback fails).\n   * 2.\tThere may be a case where lastProcessBlock < rewindTime, in which case the lock should be released directly (force = true).\n   * @param rewindTimestamp\n   *\n   * @returns\n   */\n  async releaseChainRewindLock(tx: Transaction, rewindTimestamp: Date, allowRewindTimestamp?: Date): Promise<number> {\n    // A table lock should be used here to prevent multiple chains from releasing simultaneously, causing a deadlock.\n    const {currentChain, waitChainCount} = await this.getChainsInfo(tx);\n    assert(currentChain, `Not registered rewind timestamp key in global data, chainId: ${this.chainId}`);\n\n    if (currentChain.status === MultiChainRewindStatus.Complete) {\n      // Already completed, no need to release\n      return waitChainCount;\n    }\n    if (allowRewindTimestamp && allowRewindTimestamp > currentChain.rewindTimestamp) {\n      throw new Error(\n        'Rewind lock timestamp is less than the allowed rewind timestamp; releasing the lock is not permitted.'\n      );\n    }\n\n    assert(\n      currentChain.rewindTimestamp.getTime() === rewindTimestamp.getTime(),\n      `Chain rewind lock mismatch: chainId: ${this.chainId}, rewindTimestamp: ${rewindTimestamp}, status: ${currentChain.status}`\n    );\n\n    const [affectedCount] = await this.model.update(\n      {status: MultiChainRewindStatus.Complete},\n      {\n        where: {\n          chainId: this.chainId,\n          status: MultiChainRewindStatus.Incomplete,\n          rewindTimestamp,\n        },\n        transaction: tx,\n      }\n    );\n\n    assert(affectedCount === 1, `Release chain rewind lock failed, chainId: ${this.chainId}`);\n\n    if (waitChainCount - 1 === 0) {\n      // Everything is complete, release the lock.\n      await this.model.destroy({where: {status: MultiChainRewindStatus.Complete}, transaction: tx});\n    }\n\n    return waitChainCount - 1;\n  }\n\n  private async getChainsInfo(tx: Transaction) {\n    const chainList = await this.model.findAll({transaction: tx, lock: tx.LOCK.UPDATE});\n    const currentChain = chainList.find((chain) => chain.chainId === this.chainId);\n    const waitChainCount = chainList.filter((chain) => chain.status === MultiChainRewindStatus.Incomplete).length;\n    return {currentChain, chainsCount: chainList.length, waitChainCount};\n  }\n\n  async getChainIdsFromMetadata(tx: Transaction): Promise<string[]> {\n    const tableRes = await this.sequelize.query<Array<string>>(tableExistsQuery(this.dbSchema), {\n      type: QueryTypes.SELECT,\n    });\n    const multiMetadataTables: string[] = flatten(tableRes).filter((value: string) => MULTI_METADATA_REGEX.test(value));\n    assert(\n      multiMetadataTables.length > 0,\n      `No multi metadata tables found in the database. Please check your schema or configuration.`\n    );\n\n    const metadataRes = await Promise.all(\n      multiMetadataTables.map((table) =>\n        this.sequelize.query<{value: string}>(\n          `SELECT \"value\" FROM \"${this.dbSchema}\".\"${table}\" WHERE \"key\" = 'chain'`,\n          {\n            type: QueryTypes.SELECT,\n            transaction: tx,\n          }\n        )\n      )\n    );\n\n    return metadataRes.map((metadata) => metadata[0].value);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/global/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport {IGlobalData} from './global';\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './storeCache.service';\nexport * from './types';\nexport * from './model';\nexport * from './metadata';\nexport * from './storeModel.service';\nexport * from './utils';\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/metadata/cacheMetadata.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {CacheMetadataModel} from './cacheMetadata';\n\nconst incrementKey = 'processedBlockCount';\n\ndescribe('CacheMetadata', () => {\n  let cacheMetadata: CacheMetadataModel;\n\n  beforeEach(() => {\n    cacheMetadata = new CacheMetadataModel(null as any, false);\n  });\n\n  // Clearing the cache used to set the setCache and getCache to the same empty object\n  // The set cache has increment amounts while the get cache has the actual value\n  it('clears the caches properly', async () => {\n    cacheMetadata.clear();\n\n    (cacheMetadata as any).getCache[incrementKey] = 100;\n\n    await cacheMetadata.setIncrement(incrementKey);\n\n    expect((cacheMetadata as any).setCache[incrementKey]).toBe(1);\n  });\n\n  // This tested a very specific use case where `cacheModel.getByFields`` was called on the start block which could trigger a flush and \"lastProcessedHeight\" was not yet set\n  it('clears the caches properly with blockHeight', async () => {\n    cacheMetadata.clear(1);\n\n    (cacheMetadata as any).getCache[incrementKey] = 100;\n\n    await cacheMetadata.setIncrement(incrementKey);\n\n    expect(Object.keys((cacheMetadata as any).setCache)).not.toContain('lastProcessedHeight');\n  });\n\n  it('builds the correct dynamicDatasources query', () => {\n    const queryFn = jest.fn();\n\n    const cacheMetadata = new CacheMetadataModel(\n      {\n        getTableName: () => '\"Schema\".\"_metadata\"',\n        sequelize: {\n          query: queryFn,\n        },\n      } as any,\n      false\n    );\n\n    (cacheMetadata as any).appendDynamicDatasources([{foo: 'bar'}]);\n    expect(queryFn).toHaveBeenCalledWith(\n      `\n      UPDATE \"Schema\".\"_metadata\"\n      SET \"value\" = jsonb_set(\"value\", array[(jsonb_array_length(\"value\") + 1)::text], '{\"foo\":\"bar\"}'::jsonb, true),\n        \"updatedAt\" = CURRENT_TIMESTAMP\n      WHERE \"Schema\".\"_metadata\".key = 'dynamicDatasources';\n    `,\n      undefined\n    );\n\n    (cacheMetadata as any).appendDynamicDatasources([{foo: 'bar'}, {baz: 'buzz'}]);\n    expect(queryFn).toHaveBeenCalledWith(\n      `\n      UPDATE \"Schema\".\"_metadata\"\n      SET \"value\" = jsonb_set(jsonb_set(\"value\", array[(jsonb_array_length(\"value\") + 1)::text], '{\"foo\":\"bar\"}'::jsonb, true), array[(jsonb_array_length(\"value\") + 2)::text], '{\"baz\":\"buzz\"}'::jsonb, true),\n        \"updatedAt\" = CURRENT_TIMESTAMP\n      WHERE \"Schema\".\"_metadata\".key = 'dynamicDatasources';\n    `,\n      undefined\n    );\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/metadata/cacheMetadata.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Sequelize} from '@subql/x-sequelize';\nimport {MetadataFactory, MetadataKeys, MetadataRepo} from '../..';\nimport {DbOption} from '../../..';\nimport {CacheMetadataModel} from './cacheMetadata';\n\nconst option: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\ndescribe('cacheMetadata integration', () => {\n  let sequelize: Sequelize;\n  let schema: string;\n  let metaDataRepo: MetadataRepo;\n  let cacheMetadataModel: CacheMetadataModel;\n\n  beforeAll(async () => {\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    await sequelize.authenticate();\n\n    schema = '\"metadata-test-1\"';\n    await sequelize.createSchema(schema, {});\n    metaDataRepo = await MetadataFactory(sequelize, schema, false, '1');\n\n    await metaDataRepo.sync();\n\n    cacheMetadataModel = new CacheMetadataModel(metaDataRepo, false);\n  });\n\n  const queryMeta = async <K extends keyof MetadataKeys>(key: K): Promise<MetadataKeys[K] | undefined> => {\n    const res = await metaDataRepo.findByPk(key);\n    return res?.toJSON()?.value as any;\n  };\n\n  const flush = async (height: number) => {\n    const tx = await sequelize.transaction();\n    await cacheMetadataModel.flush(tx, height);\n    await tx.commit();\n  };\n\n  afterAll(async () => {\n    await sequelize.dropSchema(schema, {logging: false});\n    await sequelize.close();\n  });\n\n  it('Ensure increment keys are created on _metadata table', async () => {\n    // create key at 0\n    await (cacheMetadataModel as any).incrementJsonbCount('schemaMigrationCount');\n\n    // increment by 1\n    await (cacheMetadataModel as any).incrementJsonbCount('schemaMigrationCount');\n\n    // increase by 100\n    await (cacheMetadataModel as any).incrementJsonbCount('schemaMigrationCount', 100);\n\n    const v = await queryMeta('schemaMigrationCount');\n    expect(v).toBe(101);\n  });\n\n  describe('dynamicDatasources', () => {\n    beforeEach(async () => {\n      // Ensure value exits so we can update it\n      await metaDataRepo.bulkCreate([{key: 'dynamicDatasources', value: []}], {updateOnDuplicate: ['key', 'value']});\n    });\n\n    it('Appends dynamicDatasources correctly', async () => {\n      cacheMetadataModel.setNewDynamicDatasource({templateName: 'foo', startBlock: 1});\n      cacheMetadataModel.setNewDynamicDatasource({templateName: 'bar', startBlock: 2});\n      cacheMetadataModel.setNewDynamicDatasource({templateName: 'baz', startBlock: 3});\n\n      const expected = [\n        {templateName: 'foo', startBlock: 1},\n        {templateName: 'bar', startBlock: 2},\n        {templateName: 'baz', startBlock: 3},\n      ];\n\n      await flush(1);\n      expect((cacheMetadataModel as any).datasourceUpdates).toEqual([expected[1], expected[2]]);\n\n      const v = await queryMeta('dynamicDatasources');\n      expect(v).toEqual([expected[0]]);\n\n      const cacheV = await cacheMetadataModel.find('dynamicDatasources');\n      expect(cacheV).toEqual(expected);\n\n      await flush(3);\n\n      // The data retrieved from memory is complete.\n      const cacheData2 = await cacheMetadataModel.find('dynamicDatasources');\n      expect(cacheData2).toEqual(expected);\n      const dbData2 = await queryMeta('dynamicDatasources');\n      expect(dbData2).toEqual(expected);\n    });\n\n    it('Allows overriding all dynamicDatasources', async () => {\n      cacheMetadataModel.setNewDynamicDatasource({templateName: 'foo', startBlock: 1});\n\n      cacheMetadataModel.set('dynamicDatasources', [{templateName: 'bar', startBlock: 2}]);\n\n      await flush(1);\n\n      const v = await queryMeta('dynamicDatasources');\n      expect(v).toEqual([{templateName: 'bar', startBlock: 2}]);\n    });\n\n    it('Caches the dynamicDatasources correctly after using set', async () => {\n      cacheMetadataModel.setNewDynamicDatasource({templateName: 'foo', startBlock: 1});\n      await flush(1);\n\n      const cacheV = await cacheMetadataModel.find('dynamicDatasources');\n      expect(cacheV).toEqual([{templateName: 'foo', startBlock: 1}]);\n\n      cacheMetadataModel.setNewDynamicDatasource({templateName: 'bar', startBlock: 2});\n      // await flush();\n\n      const cacheV2 = await cacheMetadataModel.find('dynamicDatasources');\n      expect(cacheV2).toEqual([\n        {templateName: 'foo', startBlock: 1},\n        {templateName: 'bar', startBlock: 2},\n      ]);\n    });\n\n    it('Uses the correct cache values when using new and set', async () => {\n      cacheMetadataModel.setNewDynamicDatasource({templateName: 'foo', startBlock: 1});\n\n      cacheMetadataModel.set('dynamicDatasources', [{templateName: 'bar', startBlock: 2}]);\n\n      const cacheV = await cacheMetadataModel.find('dynamicDatasources');\n      expect(cacheV).toEqual([{templateName: 'bar', startBlock: 2}]);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/metadata/cacheMetadata.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Transaction} from '@subql/x-sequelize';\nimport {hasValue} from '../../../utils';\nimport {DatasourceParams} from '../../dynamic-ds.service';\nimport {Metadata, MetadataKeys, MetadataRepo} from '../../entities';\nimport {HistoricalMode} from '../../types';\nimport {Cacheable} from '../cacheable';\nimport {ICachedModelControl} from '../types';\nimport {IMetadata} from './metadata';\nimport {MetadataKey, incrementKeys, IncrementalMetadataKey, INCREMENT_QUERY, APPEND_DS_QUERY} from './utils';\n\n// type MetadataKey = keyof MetadataKeys;\n// const incrementKeys: MetadataKey[] = ['processedBlockCount', 'schemaMigrationCount'];\n// type IncrementalMetadataKey = 'processedBlockCount' | 'schemaMigrationCount';\n\nconst specialKeys: MetadataKey[] = [...incrementKeys, 'dynamicDatasources'];\n\nexport class CacheMetadataModel extends Cacheable implements IMetadata, ICachedModelControl {\n  private setCache: Partial<MetadataKeys> = {};\n  // Needed for dynamic datasources\n  private getCache: Partial<MetadataKeys> = {};\n  private removeCache: string[] = [];\n\n  // This is used for a more efficient appending, as opposed to rewriting which is used through setCache\n  private datasourceUpdates: DatasourceParams[] = [];\n\n  flushableRecordCounter = 0;\n\n  constructor(\n    readonly model: MetadataRepo,\n    readonly historical: HistoricalMode = 'height'\n  ) {\n    super();\n  }\n\n  async find<K extends MetadataKey>(key: K, fallback?: MetadataKeys[K]): Promise<MetadataKeys[K] | undefined> {\n    if (!this.getCache[key]) {\n      const record = await this.model.findByPk(key);\n\n      if (hasValue(record)) {\n        this.getCache[key] = record.toJSON().value as any;\n      } else if (hasValue(fallback)) {\n        this.getCache[key] = fallback;\n      }\n    }\n\n    if (key === 'dynamicDatasources') {\n      // For migration purposes this used to be a string, we need to return that for project.service to migrate it correctly\n      if (typeof this.getCache[key] === 'string') {\n        return this.getCache[key] as MetadataKeys[K];\n      }\n      // Include any unflushed datasource updates in this\n      return [\n        ...((this.getCache[key] as MetadataKeys['dynamicDatasources']) ?? []),\n        ...this.datasourceUpdates,\n      ] as MetadataKeys[K];\n    }\n\n    return this.getCache[key] as MetadataKeys[K] | undefined;\n  }\n\n  async findMany<K extends MetadataKey>(keys: readonly K[]): Promise<Partial<MetadataKeys>> {\n    const entries = await this.model.findAll({\n      where: {\n        key: keys,\n      },\n    });\n\n    const keyValue = entries.reduce((arr, curr) => {\n      arr[curr.key as K] = curr.value as MetadataKeys[K];\n      return arr;\n    }, {} as Partial<MetadataKeys>);\n\n    // Get any unsaved changes\n    const result = {\n      ...keyValue,\n      ...this.setCache,\n    };\n\n    // Update cache\n    this.getCache = {\n      ...this.getCache,\n      ...result,\n    };\n\n    return result;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async set<K extends MetadataKey>(key: K, value: MetadataKeys[K], tx?: Transaction): Promise<void> {\n    if (this.setCache[key] === undefined) {\n      this.flushableRecordCounter += 1;\n    }\n    this.setCache[key] = value;\n    this.getCache[key] = value;\n    if (key === 'dynamicDatasources') {\n      this.datasourceUpdates = [];\n    }\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async setBulk(metadata: Metadata[]): Promise<void> {\n    metadata.map((m) => this.set(m.key, m.value));\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async setIncrement(key: IncrementalMetadataKey, amount = 1): Promise<void> {\n    this.setCache[key] = (this.setCache[key] ?? 0) + amount;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async setNewDynamicDatasource(item: DatasourceParams): Promise<void> {\n    this.datasourceUpdates.push(item);\n  }\n\n  private async incrementJsonbCount(key: IncrementalMetadataKey, amount = 1, tx?: Transaction): Promise<void> {\n    const schemaTable = this.model.getTableName();\n\n    assert(this.model.sequelize, `Sequelize is not available on ${this.model.name}`);\n\n    await this.model.sequelize.query(INCREMENT_QUERY(schemaTable, key, amount), tx && {transaction: tx});\n  }\n\n  private async appendDynamicDatasources(items: DatasourceParams[], tx?: Transaction): Promise<void> {\n    const schemaTable = this.model.getTableName();\n\n    assert(this.model.sequelize, `Sequelize is not available on ${this.model.name}`);\n\n    await this.model.sequelize.query(APPEND_DS_QUERY(schemaTable, items), tx && {transaction: tx});\n  }\n\n  private async handleSpecialKeys(tx?: Transaction, blockHeight?: number): Promise<void> {\n    await Promise.all(\n      specialKeys.map(async (key) => {\n        switch (key) {\n          case 'dynamicDatasources': {\n            /**\n             * DynamicDatasources can be rewriten through set, or appended through setNewDynamicDatasource.\n             * rewriting takes priority over appending\n             * rewritten is used when rewinds happen\n             **/\n            const val = this.setCache[key];\n            if (val !== undefined) {\n              await this.model.bulkCreate([{key, value: val}], {transaction: tx, updateOnDuplicate: ['key', 'value']});\n            } else if (this.datasourceUpdates.length) {\n              await this.appendDynamicDatasources(\n                this.datasourceUpdates.filter((ds) => blockHeight && ds.startBlock <= blockHeight),\n                tx\n              );\n            }\n            break;\n          }\n          case 'processedBlockCount':\n          case 'schemaMigrationCount': {\n            const val = this.setCache[key];\n            if (val === undefined) break;\n            await this.incrementJsonbCount(key as IncrementalMetadataKey, this.setCache[key] as number, tx);\n            break;\n          }\n          default:\n            throw new Error(`No special case for ${key}`);\n        }\n      })\n    );\n  }\n\n  get isFlushable(): boolean {\n    return !!Object.keys(this.setCache).length;\n  }\n\n  async runFlush(tx: Transaction, blockHeight?: number): Promise<void> {\n    const ops = Object.entries(this.setCache)\n      .filter(([key]) => !specialKeys.includes(key as MetadataKey))\n      .map(([key, value]) => ({key, value}) as Metadata);\n\n    const key = this.historical === 'timestamp' ? 'lastProcessedBlockTimestamp' : 'lastProcessedHeight';\n\n    const lastProcessedHeightIdx = ops.findIndex((k) => k.key === key);\n    if (blockHeight !== undefined && lastProcessedHeightIdx >= 0) {\n      const lastProcessedHeight = Number(ops[lastProcessedHeightIdx].value);\n      // Before flush, lastProcessedHeight was obtained from metadata\n      // During the flush, we are expecting metadata not being updated. Therefore, we exit here to ensure data accuracy and integrity.\n      // This is unlikely happened. However, we need to observe how often this occurs, we need to adjust this logic if frequently.\n      // Also, we can remove `lastCreatedPoiHeight` from metadata, as it will recreate again with indexing .\n      assert(\n        blockHeight === lastProcessedHeight,\n        `metadata was updated before getting flushed. BlockHeight=\"${blockHeight}\", LastProcessed=\"${lastProcessedHeight}\"`\n      );\n    }\n\n    await Promise.all([\n      this.model.bulkCreate(ops, {\n        transaction: tx,\n        updateOnDuplicate: ['key', 'value'],\n      }),\n      this.handleSpecialKeys(tx, blockHeight),\n      this.model.destroy({where: {key: this.removeCache}}),\n    ]);\n  }\n\n  // This is current only use for migrate Poi\n  // If concurrent change to cache, please add mutex if needed\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async bulkRemove<K extends MetadataKey>(keys: K[], tx?: Transaction): Promise<void> {\n    this.removeCache.push(...keys);\n    for (const key of keys) {\n      delete this.setCache[key];\n      delete this.getCache[key];\n    }\n  }\n\n  clear(blockHeight?: number): void {\n    const newSetCache: Partial<MetadataKeys> = {};\n    this.flushableRecordCounter = 0;\n    if (\n      blockHeight !== undefined &&\n      this.setCache.lastProcessedHeight !== undefined &&\n      blockHeight !== this.setCache.lastProcessedHeight\n    ) {\n      newSetCache.lastProcessedHeight = this.setCache.lastProcessedHeight;\n      this.flushableRecordCounter = 1;\n    }\n    this.setCache = {...newSetCache};\n    this.getCache = {...newSetCache};\n    this.datasourceUpdates = blockHeight ? this.datasourceUpdates.filter((ds) => ds.startBlock > blockHeight) : [];\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/metadata/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './cacheMetadata';\nexport {IMetadata} from './metadata';\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/metadata/metadata.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Op, Transaction} from '@subql/x-sequelize';\nimport {hasValue} from '../../../utils';\nimport {DatasourceParams} from '../../dynamic-ds.service';\nimport {Metadata, MetadataKeys, MetadataRepo} from '../../entities';\nimport {APPEND_DS_QUERY, INCREMENT_QUERY} from './utils';\n\nexport type MetadataKey = keyof MetadataKeys;\nexport const incrementKeys: MetadataKey[] = ['processedBlockCount', 'schemaMigrationCount'];\nexport type IncrementalMetadataKey = 'processedBlockCount' | 'schemaMigrationCount';\n\nexport interface IMetadata {\n  readonly model: MetadataRepo;\n  find<K extends MetadataKey>(key: K, fallback?: MetadataKeys[K]): Promise<MetadataKeys[K] | undefined>;\n  findMany<K extends MetadataKey>(keys: readonly K[]): Promise<Partial<MetadataKeys>>;\n\n  set<K extends MetadataKey>(key: K, value: MetadataKeys[K], tx?: Transaction): Promise<void>;\n  setBulk(metadata: Metadata[], tx?: Transaction): Promise<void>;\n  setIncrement(key: IncrementalMetadataKey, amount?: number, tx?: Transaction): Promise<void>;\n  setNewDynamicDatasource(item: DatasourceParams, tx?: Transaction): Promise<void>;\n\n  bulkRemove<K extends MetadataKey>(keys: K[], tx?: Transaction): Promise<void>;\n\n  flush?(tx: Transaction, blockHeight: number): Promise<void>;\n}\n\nexport class MetadataModel implements IMetadata {\n  constructor(readonly model: MetadataRepo) {}\n\n  async find<K extends MetadataKey>(key: K, fallback?: MetadataKeys[K]): Promise<MetadataKeys[K] | undefined> {\n    const record = await this.model.findByPk(key);\n\n    return hasValue(record) ? (record.toJSON().value as MetadataKeys[K]) : fallback;\n  }\n\n  async findMany<K extends MetadataKey>(keys: readonly K[]): Promise<Partial<MetadataKeys>> {\n    const entries = await this.model.findAll({\n      where: {\n        key: keys,\n      },\n    });\n\n    return entries.reduce((arr, curr) => {\n      arr[curr.key as K] = curr.value as MetadataKeys[K];\n      return arr;\n    }, {} as Partial<MetadataKeys>);\n  }\n\n  async set<K extends MetadataKey>(key: K, value: MetadataKeys[K], tx?: Transaction): Promise<void> {\n    return this.setBulk([{key, value}], tx);\n  }\n\n  async setBulk(metadata: Metadata[], tx?: Transaction): Promise<void> {\n    await this.model.bulkCreate(metadata, {transaction: tx, updateOnDuplicate: ['key', 'value']});\n  }\n\n  async setIncrement(key: IncrementalMetadataKey, amount = 1, tx?: Transaction): Promise<void> {\n    const schemaTable = this.model.getTableName();\n\n    assert(this.model.sequelize, `Sequelize is not available on ${this.model.name}`);\n    assert(incrementKeys.includes(key), `Key ${key} is not incrementable`);\n\n    await this.model.sequelize.query(INCREMENT_QUERY(schemaTable, key, amount), tx && {transaction: tx});\n  }\n\n  async setNewDynamicDatasource(item: DatasourceParams, tx?: Transaction): Promise<void> {\n    const schemaTable = this.model.getTableName();\n\n    assert(this.model.sequelize, `Sequelize is not available on ${this.model.name}`);\n\n    await this.model.sequelize.query(APPEND_DS_QUERY(schemaTable, [item]), tx && {transaction: tx});\n  }\n\n  async bulkRemove<K extends MetadataKey>(keys: K[], tx: Transaction): Promise<void> {\n    await this.model.destroy({\n      where: {key: {[Op.in]: keys}},\n      transaction: tx,\n    });\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/metadata/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {DatasourceParams} from '../../dynamic-ds.service';\nimport {MetadataKeys} from '../../entities';\n\nexport type MetadataKey = keyof MetadataKeys;\nexport const incrementKeys: MetadataKey[] = ['processedBlockCount', 'schemaMigrationCount'];\nexport type IncrementalMetadataKey = 'processedBlockCount' | 'schemaMigrationCount';\n\nexport const METADATA_ENTITY_NAME = '_metadata';\n\ntype SchemaTable = string | {tableName: string; schema: string; delimiter: string};\n\nexport function INCREMENT_QUERY(schemaTable: SchemaTable, key: MetadataKey, amount = 1): string {\n  return `INSERT INTO ${schemaTable} (key, value, \"createdAt\", \"updatedAt\")\n  VALUES ('${key}', '0'::jsonb, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)\n    ON CONFLICT (key) DO\n  UPDATE SET value = (COALESCE(${schemaTable}.value->>0)::int + '${amount}')::text::jsonb,\n    \"updatedAt\" = CURRENT_TIMESTAMP\n  WHERE ${schemaTable}.key = '${key}';`;\n}\n\nexport function APPEND_DS_QUERY(schemaTable: SchemaTable, items: DatasourceParams[]): string {\n  const VALUE = '\"value\"';\n\n  const makeSet = (item: DatasourceParams, value: string, index = 1): string =>\n    `jsonb_set(${value}, array[(jsonb_array_length(${VALUE}) + ${index})::text], '${JSON.stringify(\n      item\n    )}'::jsonb, true)`;\n\n  return `\n      UPDATE ${schemaTable}\n      SET ${VALUE} = ${items.reduce((acc, item, index) => makeSet(item, acc, index + 1), VALUE)},\n        \"updatedAt\" = CURRENT_TIMESTAMP\n      WHERE ${schemaTable}.key = 'dynamicDatasources';\n    `;\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/model/cacheModel.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {delay} from '@subql/common';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {NodeConfig} from '../../../configure';\nimport {CachedModel} from './cacheModel';\n\njest.mock('@subql/x-sequelize', () => {\n  let data: Record<string, any> = {};\n\n  let pendingData: typeof data = {};\n  let pendingDeletes: (keyof typeof data)[] = [];\n  let afterCommitHooks: Array<() => void> = [];\n\n  const transaction = () => ({\n    commit: jest.fn(async () => {\n      await delay(1);\n      data = {...data, ...pendingData};\n      for (const pendingDelete of pendingDeletes) {\n        delete data[pendingDelete as string];\n      }\n      pendingData = {};\n      pendingDeletes = [];\n      afterCommitHooks.map((fn) => fn());\n      afterCommitHooks = [];\n    }), // Delay of 1s is used to test whether we wait for cache to flush\n    rollback: jest.fn(),\n    afterCommit: jest.fn((fn) => afterCommitHooks.push(fn)),\n  });\n\n  const mSequelize = {\n    authenticate: jest.fn(),\n    define: () => ({\n      findOne: jest.fn(),\n      create: (input: any) => input,\n    }),\n    query: () => [{nextval: 1}],\n    showAllSchemas: () => ['subquery_1'],\n    model: (entity: string) => ({\n      getTableName: () => 'table1',\n      sequelize: {\n        escape: (key: any) => key,\n        query: (sql: string, option?: any) => jest.fn(),\n        fn: jest.fn().mockImplementation((_fn, ...args: unknown[]) => {\n          if (_fn === 'int8range') {\n            return {fn: _fn, args: [args[0], args[1] ?? null]};\n          }\n        }),\n        transaction,\n      },\n      upsert: jest.fn(),\n      associations: [{}, {}],\n      count: 5,\n      findAll: jest.fn(() => Object.values(data).map(({__block_range, ...d}) => ({toJSON: () => d}))),\n      findOne: jest.fn(({transaction, where: {id}}) => ({\n        toJSON: () => (transaction ? (pendingData[id] ?? data[id]) : data[id]),\n      })),\n      bulkCreate: jest.fn((records: {id: string}[]) => {\n        records.map((r) => (pendingData[r.id] = r));\n      }),\n      getAttributes: jest.fn(() => ({})),\n      destroy: jest.fn(({where: {id}}) => pendingDeletes.push(id)),\n    }),\n    sync: jest.fn(),\n    transaction,\n    // createSchema: jest.fn(),\n  };\n  const actualSequelize = jest.requireActual('@subql/x-sequelize');\n  return {\n    ...actualSequelize,\n    Sequelize: jest.fn(() => {\n      // Reset all the data when creating new instances\n      data = {};\n      pendingData = {};\n      pendingDeletes = [];\n      afterCommitHooks = [];\n\n      return mSequelize;\n    }),\n  };\n});\n\ndescribe('cacheModel', () => {\n  let testModel: CachedModel<{id: string; field1: number}>;\n  let sequelize: Sequelize;\n  let blockHeight: number;\n\n  const flush = async (height?: number) => {\n    const tx = await sequelize.transaction();\n\n    await testModel.flush(\n      tx,\n      height ?? blockHeight - 1 // Equivalent of last processed height\n    );\n\n    return tx.commit();\n  };\n\n  describe('without historical', () => {\n    beforeEach(async () => {\n      jest.clearAllMocks();\n      blockHeight = 0;\n      let i = 0;\n      sequelize = new Sequelize();\n      testModel = new CachedModel(sequelize.model('entity1'), false, {} as NodeConfig, () => i++);\n\n      // Set an initial model and flush it\n      blockHeight = 1;\n      await testModel.set(\n        'entity1_id_0x01',\n        {\n          id: 'entity1_id_0x01',\n          field1: 1,\n        },\n        blockHeight\n      );\n      await flush();\n    });\n\n    it('can avoid race conditions', async () => {\n      // Get the entity and update again so we can have a difference between db and cache\n      const entity1 = await testModel.get('entity1_id_0x01');\n      if (!entity1) {\n        throw new Error('Entity should exist');\n      }\n\n      // updated height to 2\n      blockHeight = 2;\n      await testModel.set(\n        'entity1_id_0x01',\n        {\n          ...entity1,\n          field1: entity1.field1 + 1,\n        },\n        2\n      );\n\n      // Clear the get cache to simulate many other operations happening\n      (testModel as any).getCache.clear();\n\n      // Flush and update the entity at the same time\n      const pendingFlush = flush();\n\n      await delay(0.2);\n      const entity2 = await testModel.get('entity1_id_0x01');\n\n      await testModel.set(\n        'entity1_id_0x01',\n        {\n          id: 'entity1_id_0x01',\n          field1: (entity2?.field1 ?? 0) + 1,\n        },\n        3\n      );\n\n      await pendingFlush;\n\n      const finalEntity = await testModel.get('entity1_id_0x01');\n      expect(finalEntity?.field1).toEqual(3);\n    });\n\n    it('can call getByFields, with entities updated in the same block', async () => {\n      blockHeight = 2;\n      await testModel.set(\n        'entity1_id_0x01',\n        {\n          id: 'entity1_id_0x01',\n          field1: 2,\n        },\n        blockHeight\n      );\n\n      const result = await testModel.getByFields(\n        [\n          ['id', '=', 'entity1_id_0x01'],\n          ['field1', '=', 2],\n        ],\n        {offset: 0, limit: 100}\n      );\n\n      expect(result).toEqual([\n        {\n          id: 'entity1_id_0x01',\n          field1: 2,\n        },\n      ]);\n    });\n\n    it('cannot mutate data in the cache without calling methods', async () => {\n      await testModel.set(\n        'entity1_id_0x01',\n        {\n          id: 'entity1_id_0x01',\n          field1: 2,\n        },\n        2\n      );\n\n      /* get usese the get cache */\n\n      const entity = (await testModel.get('entity1_id_0x01'))!;\n\n      expect(entity).toBeDefined();\n\n      // Mutate field directly\n      entity.field1 = -1;\n\n      const entity2 = await testModel.get('entity1_id_0x01');\n      expect(entity2?.field1).toEqual(2);\n\n      /* getBy methods use set cache */\n\n      const [entity3] = (await testModel.getByFields([['field1', '=', 2]], {limit: 1}))!;\n      expect(entity3?.field1).toEqual(2);\n\n      // Mutate field directly\n      entity3.field1 = -2;\n\n      const [entity4] = await testModel.getByFields([['field1', '=', 2]], {limit: 1});\n      expect(entity4?.field1).toEqual(2);\n    });\n  });\n\n  describe('historical', () => {\n    beforeEach(() => {\n      jest.clearAllMocks();\n      let i = 0;\n      sequelize = new Sequelize();\n      testModel = new CachedModel(sequelize.model('entity1'), 'height', {} as NodeConfig, () => i++);\n    });\n\n    it('throws when trying to set undefined', async () => {\n      await expect(() => testModel.set('0x01', undefined as any, 1)).rejects.toThrow();\n      await expect(() => testModel.set('0x01', null as any, 1)).rejects.toThrow();\n    });\n\n    // it should keep same behavior as hook we used\n    it('when get data after flushed, it should exclude block range', async () => {\n      const spyDbGet = jest.spyOn(testModel.model, 'findOne');\n      const sypOnApplyBlockRange = jest.spyOn(testModel as any, 'applyBlockRange');\n      await testModel.set(\n        'entity1_id_0x01',\n        {\n          id: 'entity1_id_0x01',\n          field1: 1,\n        },\n        1\n      );\n      await flush(1);\n      // the block range has been set\n      expect(sypOnApplyBlockRange).toHaveBeenCalledTimes(1);\n\n      const entity = await testModel.get('entity1_id_0x01');\n      if (!entity) {\n        throw new Error('Entity should exist');\n      }\n      // should read from get cache, and entity should exclude __block_range\n      expect(spyDbGet).not.toHaveBeenCalled();\n      expect(JSON.stringify(entity)).not.toContain('__block_range');\n    });\n\n    // TODO, getByFields still works\n\n    // Some edge cases for set get and remove\n    describe('set, remove and get', () => {\n      it('In different block, remove and set, should able to get', async () => {\n        await testModel.remove('entity1_id_0x01', 4);\n        await testModel.set(\n          'entity1_id_0x01',\n          {\n            id: 'entity1_id_0x01',\n            field1: 5,\n          },\n          6\n        );\n        const result = await testModel.get('entity1_id_0x01');\n        expect(result?.field1).toBe(5);\n      });\n\n      it('In same block, remove then set, should able to get', async () => {\n        await testModel.remove('entity1_id_0x01', 1);\n        await testModel.set(\n          'entity1_id_0x01',\n          {\n            id: 'entity1_id_0x01',\n            field1: 1,\n          },\n          1\n        );\n        const result = await testModel.get('entity1_id_0x01');\n        // data should be erased from removeCache\n        expect((testModel as any).removeCache.entity1_id_0x01).toBeUndefined();\n\n        expect(result).toBeDefined();\n      });\n\n      it('In different block, remove and set, then remove again, should get nothing', async () => {\n        await testModel.remove('entity1_id_0x01', 4);\n        await testModel.set(\n          'entity1_id_0x01',\n          {\n            id: 'entity1_id_0x01',\n            field1: 5,\n          },\n          6\n        );\n        await testModel.remove('entity1_id_0x01', 8);\n        const result = await testModel.get('entity1_id_0x01');\n        expect((testModel as any).removeCache.entity1_id_0x01).toBeDefined();\n        // should match with last removed\n        expect((testModel as any).removeCache.entity1_id_0x01.removedAtBlock).toBe(8);\n\n        // check set cache, mark as removed\n        const latestSetRecord = (testModel as any).setCache.entity1_id_0x01.historicalValues[0];\n        expect(latestSetRecord.removed).toBeTruthy();\n        expect(latestSetRecord.endHeight).toBe(8);\n        expect(result).toBeUndefined();\n      });\n\n      it('In same block, remove and set, then remove again, should get nothing', async () => {\n        await testModel.remove('entity1_id_0x01', 1);\n        await testModel.set(\n          'entity1_id_0x01',\n          {\n            id: 'entity1_id_0x01',\n            field1: 1,\n          },\n          1\n        );\n        await testModel.remove('entity1_id_0x01', 1);\n        const result = await testModel.get('entity1_id_0x01');\n        expect((testModel as any).removeCache.entity1_id_0x01).toBeDefined();\n\n        const latestSetRecord = (testModel as any).setCache.entity1_id_0x01.historicalValues[0];\n        // marked set record as removed\n        expect(latestSetRecord.removed).toBeTruthy();\n        expect(latestSetRecord.endHeight).toBe(1);\n        expect(result).toBeUndefined();\n      });\n\n      it('clean flushable records when applyBlockRange, if found set and removed happened in the same height', async () => {\n        await testModel.set(\n          'entity1_id_0x01',\n          {\n            id: 'entity1_id_0x01',\n            field1: 1,\n          },\n          1\n        );\n        await testModel.remove('entity1_id_0x01', 1);\n\n        await testModel.set(\n          'entity1_id_0x02',\n          {\n            id: 'entity1_id_0x02',\n            field1: 2,\n          },\n          2\n        );\n        expect((testModel as any).removeCache.entity1_id_0x01).toBeDefined();\n\n        const latestSetRecord = (testModel as any).setCache.entity1_id_0x01.historicalValues[0];\n        // marked set record as removed\n        expect(latestSetRecord.removed).toBeTruthy();\n        expect(latestSetRecord.startHeight).toBe(1);\n        expect(latestSetRecord.endHeight).toBe(1);\n        const records = (testModel as any).applyBlockRange((testModel as any).setCache);\n        // should filter out id 1\n        expect(records.length).toBe(1);\n        expect(records[0].id).toBe('entity1_id_0x02');\n      });\n\n      it('clean flushable records when applyBlockRange, pass if set and remove in the different height', async () => {\n        await testModel.set(\n          'entity1_id_0x01',\n          {\n            id: 'entity1_id_0x01',\n            field1: 1,\n          },\n          1\n        );\n        await testModel.remove('entity1_id_0x01', 2);\n\n        await testModel.set(\n          'entity1_id_0x02',\n          {\n            id: 'entity1_id_0x02',\n            field1: 2,\n          },\n          2\n        );\n        expect((testModel as any).removeCache.entity1_id_0x01).toBeDefined();\n        const records = (testModel as any).applyBlockRange((testModel as any).setCache);\n        expect(records.length).toBe(2);\n        expect(records[0].id).toBe('entity1_id_0x01');\n        expect(records[0].__block_range).toStrictEqual({args: [1, 2], fn: 'int8range'});\n        expect(records[1].id).toBe('entity1_id_0x02');\n        expect(records[1].__block_range).toStrictEqual({args: [2, null], fn: 'int8range'});\n      });\n\n      it('getFromCache could filter out removed data', async () => {\n        await testModel.set(\n          'entity1_id_0x01',\n          {\n            id: 'entity1_id_0x01',\n            field1: 1,\n          },\n          1\n        );\n        await testModel.remove('entity1_id_0x01', 1);\n\n        await testModel.set(\n          'entity1_id_0x02',\n          {\n            id: 'entity1_id_0x02',\n            field1: 1,\n          },\n          2\n        );\n        const spyFindAll = jest.spyOn(testModel.model, 'findAll');\n        const result = await testModel.getByFields([['field1', '=', 1]], {offset: 0, limit: 50});\n        expect(spyFindAll).toHaveBeenCalledTimes(1);\n\n        expect(result).toStrictEqual([\n          {id: 'entity1_id_0x02', field1: 1}, //Filtered out removed record\n        ]);\n      });\n\n      it('getFromCache with removed and set again data', async () => {\n        await testModel.set(\n          'entity1_id_0x01',\n          {\n            id: 'entity1_id_0x01',\n            field1: 3,\n          },\n          1\n        );\n        await testModel.remove('entity1_id_0x01', 1);\n        await testModel.set(\n          'entity1_id_0x01',\n          {\n            id: 'entity1_id_0x01',\n            field1: 1,\n          },\n          1\n        );\n        const spyFindAll = jest.spyOn(testModel.model, 'findAll');\n        const result = await testModel.getByFields([['field1', '=', 1]], {offset: 0, limit: 50});\n        expect(spyFindAll).toHaveBeenCalledTimes(1);\n        expect(result).toStrictEqual([{id: 'entity1_id_0x01', field1: 1}]);\n\n        // Should not include any previous recorded value\n        const result3 = await testModel.getByFields([['field1', '=', 3]], {offset: 0, limit: 50});\n        // Expect only mocked\n        expect(result3).toStrictEqual([]);\n      });\n    });\n\n    describe('getByFields', () => {\n      it('allows empty filter', async () => {\n        await expect(\n          testModel.getByFields(\n            // Any needed to get past type check\n            [],\n            {offset: 0, limit: 1}\n          )\n        ).resolves.not.toThrow();\n      });\n\n      it('throws for unsupported operators', async () => {\n        await expect(\n          testModel.getByFields(\n            // Any needed to get past type check\n            [['field1', 'badOperator' as any, 1]],\n            {offset: 0, limit: 1}\n          )\n        ).rejects.toThrow(`Operator ('badOperator') for field field1 is not valid. Options are =, !=, in, !in`);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/model/cacheModel.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {GraphQLModelsType} from '@subql/utils';\nimport {Sequelize, DataTypes, QueryTypes} from '@subql/x-sequelize';\nimport {cloneDeep, padStart} from 'lodash';\nimport {DbOption, modelsTypeToModelAttributes, NodeConfig} from '../../..';\nimport {CachedModel} from './cacheModel';\n\nconst option: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\njest.setTimeout(50_000);\n\ndescribe('cacheMetadata integration', () => {\n  let sequelize: Sequelize;\n  let schema: string;\n  let model: any;\n  let cacheModel: CachedModel<{id: string; field1: number}>;\n\n  const flush = async (blockHeight: number) => {\n    const tx = await sequelize.transaction();\n    await cacheModel.flush(tx, blockHeight);\n    await tx.commit();\n  };\n\n  beforeAll(async () => {\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    await sequelize.authenticate();\n\n    schema = '\"model-test-1\"';\n    await sequelize.createSchema(schema, {});\n\n    // TODO create model\n    const modelFactory = sequelize.define(\n      'testModel',\n      {\n        id: {\n          type: DataTypes.STRING,\n          primaryKey: true,\n        },\n        field1: DataTypes.INTEGER,\n      },\n      {timestamps: false, schema: schema}\n    );\n    model = await modelFactory.sync().catch((e) => {\n      console.log('error', e);\n      throw e;\n    });\n\n    let i = 0;\n\n    cacheModel = new CachedModel(model, false, new NodeConfig({} as any), () => i++);\n  });\n\n  afterAll(async () => {\n    await sequelize.dropSchema(schema, {logging: false});\n    await sequelize.close();\n  });\n\n  describe('getByFields', () => {\n    const formatIdNumber = (n: number): string => padStart(`${n}`, 3, '0');\n\n    beforeAll(async () => {\n      // Pre-populate some data and flush it do the db\n      let n = 0;\n      while (n < 100) {\n        await cacheModel.set(\n          `entity1_id_0x${formatIdNumber(n)}`,\n          {\n            id: `entity1_id_0x${formatIdNumber(n)}`,\n            field1: 1,\n          },\n          1\n        );\n        n++;\n      }\n\n      await flush(2);\n\n      // Updates to existing data\n      let m = 20;\n      while (m < 30) {\n        await cacheModel.set(\n          `entity1_id_0x${formatIdNumber(m)}`,\n          {\n            id: `entity1_id_0x${formatIdNumber(m)}`,\n            field1: m % 2,\n          },\n          3\n        );\n        m++;\n      }\n\n      // New data\n      let o = 100;\n      while (o < 130) {\n        await cacheModel.set(\n          `entity1_id_0x${formatIdNumber(o)}`,\n          {\n            id: `entity1_id_0x${formatIdNumber(o)}`,\n            field1: 2,\n          },\n          3\n        );\n        o++;\n      }\n    });\n\n    it('gets one item correctly', async () => {\n      const getOneBy = (field: 'id', value: string) => cacheModel.getByFields([[field, '=', value]], {limit: 1});\n      // Db value\n      const [res0] = await getOneBy('id', 'entity1_id_0x001');\n      expect(res0).toEqual({id: 'entity1_id_0x001', field1: 1});\n\n      // Cache value\n      const [res1] = await getOneBy('id', 'entity1_id_0x020');\n      expect(res1).toEqual({id: 'entity1_id_0x020', field1: 0});\n\n      // Cache value\n      const [res2] = await getOneBy('id', 'entity1_id_0x021');\n      expect(res2).toEqual({id: 'entity1_id_0x021', field1: 1});\n    });\n\n    it('corretly merges data from the setCache', async () => {\n      const results = await cacheModel.getByFields(\n        // Any needed to get past type check\n        [['field1', '=', 1]],\n        {offset: 0, limit: 30}\n      );\n\n      expect(results.length).toEqual(30);\n\n      // This should exclude all the cache values where field1 = 0\n      // The database would still have those values as 1\n      expect(results.map((res) => res.id)).toEqual([\n        // Cache Data\n        'entity1_id_0x021',\n        'entity1_id_0x023',\n        'entity1_id_0x025',\n        'entity1_id_0x027',\n        'entity1_id_0x029',\n        // DB data\n        'entity1_id_0x000',\n        'entity1_id_0x001',\n        'entity1_id_0x002',\n        'entity1_id_0x003',\n        'entity1_id_0x004',\n        'entity1_id_0x005',\n        'entity1_id_0x006',\n        'entity1_id_0x007',\n        'entity1_id_0x008',\n        'entity1_id_0x009',\n        'entity1_id_0x010',\n        'entity1_id_0x011',\n        'entity1_id_0x012',\n        'entity1_id_0x013',\n        'entity1_id_0x014',\n        'entity1_id_0x015',\n        'entity1_id_0x016',\n        'entity1_id_0x017',\n        'entity1_id_0x018',\n        'entity1_id_0x019',\n        'entity1_id_0x030',\n        'entity1_id_0x031',\n        'entity1_id_0x032',\n        'entity1_id_0x033',\n        'entity1_id_0x034',\n      ]);\n    });\n\n    it('corretly orders and offsets data with setCache', async () => {\n      const results = await cacheModel.getByFields([['field1', 'in', [0, 1]]], {\n        offset: 15,\n        limit: 10,\n        orderBy: 'field1',\n        orderDirection: 'DESC',\n      });\n\n      expect(results.length).toEqual(10);\n      expect(results.map((r) => r.field1)).toEqual([1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);\n    });\n\n    it('gets correct results with no filter', async () => {\n      // Cache data first\n      const ids: string[] = [];\n      let n = 20;\n      while (n < 30) {\n        ids.push(`entity1_id_0x${formatIdNumber(n)}`);\n        n++;\n      }\n      n = 100;\n      while (n < 130) {\n        ids.push(`entity1_id_0x${formatIdNumber(n)}`);\n        n++;\n      }\n\n      // TODO make limit bigger to get DB data as well\n\n      const results = await cacheModel.getByFields([], {offset: 0, limit: 30});\n\n      expect(results.map((r) => r.id)).toEqual(ids.slice(0, 30));\n    });\n\n    describe('offsets with cache data', () => {\n      let fullResults: {id: string; field1: number}[];\n\n      beforeAll(async () => {\n        fullResults = await cacheModel.getByFields([], {offset: 0, limit: 50});\n      });\n\n      it('gets data before cache', async () => {\n        const results = await cacheModel.getByFields([], {offset: 5, limit: 15});\n        expect(results).toEqual(fullResults.slice(5).slice(0, 15));\n      });\n\n      it('gets data before and in cache', async () => {\n        const results = await cacheModel.getByFields([], {offset: 15, limit: 20});\n        expect(results).toEqual(fullResults.slice(15).slice(0, 20));\n      });\n\n      it('gets data within cache', async () => {\n        const results = await cacheModel.getByFields([], {offset: 20, limit: 5});\n        expect(results).toEqual(fullResults.slice(20).slice(0, 5));\n      });\n\n      it('gets data after cache', async () => {\n        const results = await cacheModel.getByFields([], {offset: 30, limit: 20});\n        expect(results).toEqual(fullResults.slice(30).slice(0, 20));\n      });\n    });\n\n    describe('data only in cache', () => {\n      it('selects data in the cache', async () => {\n        const result = await cacheModel.getByFields([['field1', '=', 2]]);\n        expect(result.length).toEqual(30);\n      });\n\n      it('selects data from the cache and db in the right order', async () => {\n        const result = await cacheModel.getByFields([], {limit: 50, orderDirection: 'DESC'});\n        expect(result[0].id).toEqual('entity1_id_0x129'); // Failing because we cant offset cache data correctly\n        expect(result[result.length - 1].id).toEqual('entity1_id_0x090');\n      });\n    });\n  });\n});\n\ndescribe('cacheModel integration', () => {\n  let sequelize: Sequelize;\n  let schema: string;\n  let model: any;\n  let cacheModel: CachedModel<{\n    id: string;\n    selfStake: bigint;\n    oneEntity: TestJson;\n    delegators: DelegationFrom[];\n    randomNArray?: number[];\n  }>;\n\n  const flush = async (blockHeight: number) => {\n    const tx = await sequelize.transaction();\n    await cacheModel.flush(tx, blockHeight);\n    await tx.commit();\n  };\n\n  interface TestJson {\n    testItem: string;\n    amount?: bigint;\n  }\n\n  interface DelegationFrom {\n    delegator: string;\n    amount?: bigint;\n    nested?: TestJson;\n  }\n\n  beforeAll(async () => {\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    await sequelize.authenticate();\n\n    schema = '\"model-test-2\"';\n    await sequelize.createSchema(schema, {});\n\n    const modelType: GraphQLModelsType = {\n      name: 'testModel',\n      fields: [\n        {\n          name: 'id',\n          type: 'ID',\n          isArray: false,\n          nullable: false,\n          isEnum: false,\n        },\n        {\n          name: 'selfStake',\n          type: 'BigInt',\n          nullable: false,\n          isEnum: false,\n          isArray: false,\n        },\n        {\n          name: 'oneEntity',\n          type: 'Json',\n          nullable: false,\n          isEnum: false,\n          isArray: false,\n          jsonInterface: {\n            name: 'TestJson',\n            fields: [\n              {name: 'testItem', type: 'String', isArray: false, nullable: false},\n              {name: 'amount', type: 'BigInt', isArray: false, nullable: false},\n            ],\n          },\n        },\n        {\n          name: 'delegators',\n          type: 'Json',\n          nullable: false,\n          jsonInterface: {\n            name: 'DelegationFrom',\n            fields: [\n              {name: 'delegator', type: 'String', isArray: false, nullable: false},\n              {name: 'amount', type: 'BigInt', isArray: false, nullable: true},\n              {\n                name: 'nested',\n                type: 'Json',\n                isArray: false,\n                nullable: false,\n                jsonInterface: {\n                  name: 'TestJson',\n                  fields: [\n                    {name: 'testItem', type: 'String', isArray: false, nullable: false},\n                    {name: 'amount', type: 'BigInt', isArray: false, nullable: true},\n                  ],\n                },\n              },\n            ],\n          },\n          isEnum: false,\n          isArray: true,\n        },\n        {\n          name: 'randomNArray',\n          type: 'Int',\n          nullable: true,\n          isEnum: false,\n          isArray: true,\n        },\n      ],\n      indexes: [],\n    };\n    const modelAttributes = modelsTypeToModelAttributes(modelType, new Map(), schema);\n\n    const modelFactory = sequelize.define('testModel', modelAttributes, {timestamps: false, schema: schema});\n    model = await modelFactory.sync().catch((e) => {\n      console.log('error', e);\n      throw e;\n    });\n\n    let i = 0;\n\n    cacheModel = new CachedModel(model, false, new NodeConfig({} as any), () => i++);\n  });\n\n  it('behaves as expected with removals', async () => {\n    // Create data but dont flush, this puts it in the cache\n    await setDefaultData('0x01', 1, undefined, false);\n\n    // Remove the data, this could happen at any block > 1 but before flushing.\n    cacheModel.remove('0x01', 1);\n\n    // The result should be undefined as it will be marked as removed\n    const res0 = await cacheModel.get('0x01');\n    expect(res0).toBeUndefined();\n\n    // The data will still be in the set cache but it should not be included in the result\n    const res = await cacheModel.getByFields([], {offset: 0, limit: 10, orderBy: 'selfStake', orderDirection: 'ASC'});\n    expect(res).toEqual([]);\n  });\n\n  afterAll(async () => {\n    await sequelize.dropSchema(schema, {logging: false});\n    await sequelize.close();\n  });\n\n  async function setDefaultData(id: string, height: number, data?: any, flushData = true): Promise<void> {\n    cacheModel.set(\n      id,\n      data ?? {\n        id,\n        selfStake: BigInt(1000000000000000000000n),\n        oneEntity: {testItem: 'test', amount: BigInt(8000000000000000000000n)},\n        delegators: [{delegator: '0x02', amount: BigInt(1000000000000000000000n)}],\n        randomNArray: [1, 2, 3, 4, 5],\n      },\n      height\n    );\n    if (flushData) {\n      await flush(height + 1);\n    }\n  }\n\n  describe('cached data and db data compare', () => {\n    it('bigint value in jsonb', async () => {\n      await setDefaultData('0x01', 1);\n\n      // force clear get cache\n      (cacheModel as any).getCache.clear();\n\n      // Db value\n      const res0 = await cacheModel.get('0x01');\n      console.log(JSON.stringify(res0));\n\n      expect(res0).toEqual({\n        delegators: [\n          {\n            amount: BigInt(1000000000000000000000n),\n            delegator: '0x02',\n          },\n        ],\n        oneEntity: {testItem: 'test', amount: BigInt(8000000000000000000000n)},\n        id: '0x01',\n        selfStake: BigInt(1000000000000000000000n),\n        randomNArray: [1, 2, 3, 4, 5],\n      });\n\n      // Cache value\n      const res1 = await cacheModel.get('0x01');\n      console.log(JSON.stringify(res1));\n      expect(res1).toEqual({\n        delegators: [\n          {\n            amount: BigInt(1000000000000000000000n),\n            delegator: '0x02',\n          },\n        ],\n        id: '0x01',\n        oneEntity: {testItem: 'test', amount: BigInt(8000000000000000000000n)},\n        selfStake: BigInt(1000000000000000000000n),\n        randomNArray: [1, 2, 3, 4, 5],\n      });\n\n      // Update the value\n      res1?.delegators.push({delegator: '0x03', amount: BigInt(9000000000000000000000n)});\n\n      await cacheModel.set(`0x01`, res1!, 2);\n      await flush(3);\n      const res2 = await cacheModel.get('0x01');\n      console.log(JSON.stringify(res2));\n\n      expect(res2).toEqual({\n        id: '0x01',\n        selfStake: BigInt(1000000000000000000000n),\n        oneEntity: {testItem: 'test', amount: BigInt(8000000000000000000000n)},\n        delegators: [\n          {delegator: '0x02', amount: BigInt(1000000000000000000000n)},\n          {delegator: '0x03', amount: BigInt(9000000000000000000000n)},\n        ],\n        randomNArray: [1, 2, 3, 4, 5],\n      });\n\n      // check actually stored bigint in json in the db\n      const [oneEntityRow] = await sequelize.query(`SELECT \"oneEntity\" FROM ${schema}.\"testModels\" LIMIT 1;`, {\n        type: QueryTypes.SELECT,\n      });\n      expect(oneEntityRow).toStrictEqual({\n        oneEntity: {\n          amount: '8000000000000000000000n',\n          testItem: 'test',\n        },\n      });\n\n      // check actually stored bigint in json Array in the db\n      const [rows] = await sequelize.query(`SELECT \"delegators\" FROM ${schema}.\"testModels\" LIMIT 1;`, {\n        type: QueryTypes.SELECT,\n      });\n      expect(rows).toStrictEqual({\n        delegators: [\n          {\n            amount: '1000000000000000000000n',\n            delegator: '0x02',\n          },\n          {\n            amount: '9000000000000000000000n',\n            delegator: '0x03',\n          },\n        ],\n      });\n\n      // check nest jsonb value\n      res1?.delegators.push({\n        delegator: '0x04',\n        amount: BigInt(6000000000000000000000n),\n        nested: {testItem: 'test', amount: BigInt(6000000000000000000000n)},\n      });\n      await cacheModel.set(`0x01`, res1!, 4);\n      await flush(5);\n      const [rows2] = await sequelize.query(`SELECT delegators FROM ${schema}.\"testModels\" LIMIT 1;`, {\n        type: QueryTypes.SELECT,\n      });\n      expect(rows2).toStrictEqual({\n        delegators: [\n          {\n            amount: '1000000000000000000000n',\n            delegator: '0x02',\n          },\n          {\n            amount: '9000000000000000000000n',\n            delegator: '0x03',\n          },\n          {\n            amount: '6000000000000000000000n',\n            delegator: '0x04',\n            nested: {\n              testItem: 'test',\n              amount: '6000000000000000000000n', // We are expected nest json bigint also been handled\n            },\n          },\n        ],\n      });\n\n      // it should ignore the bigint value if it is undefined or null\n      const data0x02 = {\n        id: `0x02`,\n        selfStake: BigInt(1000000000000000000000n),\n        oneEntity: {testItem: 'test', amount: BigInt(8000000000000000000000n)},\n        delegators: [\n          {\n            delegator: '0x05',\n            amount: undefined,\n            nested: {testItem: 'test', amount: undefined},\n          },\n        ],\n        randomNArray: undefined,\n      };\n      await cacheModel.set(`0x02`, data0x02, 6);\n      await flush(7);\n      const res5 = (\n        await cacheModel.model.findOne({\n          where: {id: '0x02'} as any,\n        })\n      )?.toJSON();\n      expect(res5?.delegators).toEqual(data0x02.delegators);\n    });\n\n    it('empty array test, compare db result with cache data', async () => {\n      await setDefaultData('0x09', 1, {\n        id: '0x09',\n        selfStake: BigInt(1000000000000000000000n),\n        oneEntity: {testItem: 'test', amount: BigInt(8000000000000000000000n)},\n        delegators: [{delegator: '0x02', amount: BigInt(1000000000000000000000n)}],\n        randomNArray: undefined,\n      });\n\n      // Cache value 1, before cache is cleared\n      const resCache1 = await cacheModel.get('0x09');\n      expect(resCache1?.randomNArray).toBeUndefined();\n\n      // force clear get cache\n      (cacheModel as any).getCache.clear();\n\n      // Db value\n      const res0 = await cacheModel.get('0x09');\n      expect(res0?.randomNArray).toBe(null);\n\n      // Cache value 2, after cache is set from db value\n      const resCache2 = await cacheModel.get('0x09');\n      expect(resCache2?.randomNArray).toBe(null);\n\n      // We are expecting DB value and get cache value to be the same\n      expect(res0).toEqual(resCache2);\n\n      // We are expecting DB value and set cache value can be difference, field value can be undefined and null\n      expect(res0).not.toEqual(resCache1);\n    });\n\n    it('get and update, without save, get again should not be updated value', async () => {\n      await setDefaultData(`0x10`, 1);\n\n      // Db value\n      const res0 = await cacheModel.get('0x10');\n      const copiedRes0 = cloneDeep(res0);\n\n      // Update the value\n      res0?.delegators.push({delegator: '0x11', amount: BigInt(9000000000000000000000n)});\n\n      // Get it again\n      const res1 = await cacheModel.get('0x10');\n\n      // should be same before updated\n      expect(res1).toEqual(copiedRes0);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/model/cacheModel.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {FieldsExpression, GetOptions} from '@subql/types-core';\nimport {CreationAttributes, Model, ModelStatic, Op, Sequelize, Transaction} from '@subql/x-sequelize';\nimport {flatten, uniq, cloneDeep, orderBy, unionBy} from 'lodash';\nimport {NodeConfig} from '../../../configure';\nimport {HistoricalMode} from '../../types';\nimport {Cacheable} from '../cacheable';\nimport {Exporter} from '../exporters';\nimport {SetValueModel} from '../setValueModel';\nimport {ICachedModelControl, RemoveValue, SetData, GetData, FilteredHeightRecords, SetValue} from '../types';\nimport {BaseEntity, IModel} from './model';\nimport {getFullOptions, operatorsMap} from './utils';\n\nconst getCacheOptions = {\n  max: 500, // default value\n  ttl: 1000 * 60 * 60, // in ms\n  updateAgeOnGet: true, // we want to keep most used record in cache longer\n};\n\nexport class CachedModel<T extends BaseEntity = BaseEntity>\n  extends Cacheable\n  implements IModel<T>, ICachedModelControl\n{\n  // Null value indicates its not defined in the db\n  private getCache: GetData<T>;\n  private setCache: SetData<T> = {};\n  private removeCache: Record<string, RemoveValue> = {};\n  readonly hasAssociations: boolean = false;\n  exporters: Exporter[] = [];\n\n  flushableRecordCounter = 0;\n\n  constructor(\n    readonly model: ModelStatic<Model<T, T>>,\n    private readonly historical: HistoricalMode = 'height',\n    config: NodeConfig,\n    private getNextStoreOperationIndex: () => number\n  ) {\n    super();\n    // In case, this might be want to be 0\n    if (config.storeGetCacheSize !== undefined) {\n      getCacheOptions.max = config.storeGetCacheSize;\n    }\n    this.getCache = new GetData<T>(getCacheOptions);\n    if (Object.keys(this.model.associations).length > 0) {\n      this.hasAssociations = true;\n    }\n  }\n\n  allCachedIds(): string[] {\n    // unified ids\n    // We need to look from setCache too, as setCache is LFU cache, it might have more/fewer entities with setCache\n    return uniq(flatten([Object.keys(this.setCache), Object.keys(this.removeCache)]));\n  }\n\n  async get(id: string): Promise<T | undefined> {\n    // If this already been removed\n    const latestSetRecord = this.setCache[id]?.getLatest();\n\n    if (this.removeCache[id]) {\n      // Entity has been set again after being removed\n      if (\n        latestSetRecord &&\n        !latestSetRecord.removed &&\n        this.removeCache[id].removedAtBlock <= latestSetRecord.startHeight\n      ) {\n        return cloneDeep(latestSetRecord.data);\n      }\n      return;\n    }\n    if (!this.getCache.has(id)) {\n      // LFU getCache could remove record from due to it is least frequently used\n      // Then we try look from setCache\n      let record = latestSetRecord?.data;\n      if (latestSetRecord?.removed) {\n        return undefined;\n      }\n      if (!record) {\n        await this.mutex.waitForUnlock();\n        record = (\n          await this.model.findOne({\n            // https://github.com/sequelize/sequelize/issues/15179\n            where: {id} as any,\n          })\n        )?.toJSON();\n        if (record) {\n          // getCache only keep records from db\n          this.getCache.set(id, record);\n        }\n      }\n      return cloneDeep(record);\n    }\n\n    return cloneDeep(this.getCache.get(id));\n  }\n\n  addExporter(cacheState: Exporter): void {\n    this.exporters.push(cacheState);\n  }\n\n  /**\n   * getByFields allows ordering and filtering of data from the setCache and DB.\n   *\n   * When ordering, cache data is provided first followed by DB data, this is to ensure offsets work\n   *\n   * It does not use the get cache because there is no way to guarantee order,\n   * and we have no way to tell where setCache data fits in the order.\n   *\n   * There is also no way to flush data here,\n   * flushing will only flush data before the current block so its still required to consider the setCache\n   * */\n  async getByFields(filters: FieldsExpression<T>[], options?: GetOptions<T>): Promise<T[]> {\n    filters.forEach(([field, operator]) => {\n      assert(\n        operatorsMap[operator],\n        `Operator ('${operator}') for field ${String(field)} is not valid. Options are ${Object.keys(operatorsMap).join(\n          ', '\n        )}`\n      );\n    });\n\n    // Dont do anything to return early like checking for a single ID filter.\n    // If projects use inefficient store methods, thats on them.\n\n    // Ensure we have all the options\n    const fullOptions = getFullOptions(options);\n\n    await this.mutex.waitForUnlock();\n\n    // Query cache with all params\n    // Apply the operations in the same order as the DB would, order -> filter -> offset\n    const cacheData = orderBy(\n      Object.values(this.setCache),\n      [(value: SetValueModel<T>) => value.getLatest()?.data?.[fullOptions.orderBy]],\n      [fullOptions.orderDirection.toLowerCase() as 'asc' | 'desc']\n    )\n      .filter((value) => !value.getLatest()?.removed) // Ensure the data has not been marked for removal\n      .filter((value) => value.matchesFields(filters)) // This filters out any removed/undefined\n      .map((value) => value.getLatest()?.data)\n      .map((value) => cloneDeep(value)) as T[];\n\n    const offsetCacheData = cacheData.slice(fullOptions.offset);\n\n    // Return early if cache covers all the data\n    if (offsetCacheData.length > fullOptions.limit) {\n      return offsetCacheData.slice(0, fullOptions.limit);\n    }\n\n    // Query DB with all params\n    const records = await this.model.findAll({\n      where: {\n        [Op.and]: [\n          ...filters.map(([field, operator, value]) => ({[field]: {[operatorsMap[operator]]: value}})),\n          {id: {[Op.notIn]: this.allCachedIds()}},\n        ] as any, // Types not working properly\n      },\n      limit: fullOptions.limit - offsetCacheData.length, // Only get enough to fill the limit\n      offset: fullOptions.offset - (cacheData.length - offsetCacheData.length), // Remove the offset items from the cache\n      order: [[fullOptions.orderBy as string, fullOptions.orderDirection]],\n    });\n\n    const dbData = records.map((r) => r.toJSON());\n\n    // Combine data from cache and db\n    const combined = unionBy(offsetCacheData, dbData, (v) => v.id).slice(0, fullOptions.limit); // Re-apply limit\n\n    return combined;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async set(id: string, data: T, blockHeight: number): Promise<void> {\n    if (data === undefined || data === null) {\n      throw new Error('Cannot set undefined or null data. If you wish to remove data, use remove()');\n    }\n    this.setCache[id] ??= new SetValueModel();\n    const copiedData = cloneDeep(data);\n    this.setCache[id].set(copiedData, blockHeight, this.getNextStoreOperationIndex());\n    // Experimental, this means getCache keeps duplicate data from setCache,\n    // we can remove this once memory is too full.\n    this.getCache.set(id, copiedData);\n    // Handle remove cache, when removed data been created again\n    if (this.removeCache[id] && this.removeCache[id].removedAtBlock === blockHeight) {\n      delete this.removeCache[id];\n    }\n\n    this.flushableRecordCounter += 1;\n  }\n\n  async bulkCreate(data: T[], blockHeight: number): Promise<void> {\n    for (const entity of data) {\n      await this.set(entity.id, entity, blockHeight);\n    }\n  }\n\n  async bulkUpdate(data: T[], blockHeight: number, fields?: string[]): Promise<void> {\n    //TODO, remove fields\n    if (fields) {\n      throw new Error(`Currently not supported: update by fields`);\n    }\n    for (const entity of data) {\n      await this.set(entity.id, entity, blockHeight);\n    }\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async remove(id: string, blockHeight: number): Promise<void> {\n    // we don't need to check whether id is already removed,\n    // because it could be removed->create-> removed again,\n    // the operationIndex should always be the latest operation\n    this.removeCache[id] = {\n      removedAtBlock: blockHeight,\n      operationIndex: this.getNextStoreOperationIndex(),\n    };\n    this.flushableRecordCounter += 1;\n    if (this.getCache.has(id)) {\n      this.getCache.delete(id);\n      // Also when .get, check removeCache first, should return undefined if removed\n    }\n    if (this.setCache[id]) {\n      // close last record\n      this.setCache[id].markAsRemoved(blockHeight);\n    }\n  }\n\n  async bulkRemove(ids: string[], blockHeight: number): Promise<void> {\n    await Promise.all(ids.map((id) => this.remove(id, blockHeight)));\n  }\n\n  get isFlushable(): boolean {\n    return !!Object.keys(this.setCache).length || !!Object.keys(this.removeCache).length;\n  }\n\n  async runFlush(tx: Transaction, blockHeight: number): Promise<void> {\n    // Get records relevant to the block height\n    const {removeRecords, setRecords} = this.filterRecordsWithHeight(blockHeight);\n    // Filter non-historical could return undefined due to it been removed\n    let records = this.applyBlockRange(setRecords).filter((r) => !!r);\n    let dbOperation: Promise<unknown>;\n    if (this.historical) {\n      dbOperation = Promise.all([\n        // set, bulkCreate, bulkUpdate & remove close previous records\n        this.historicalMarkPreviousHeightRecordsBatch(tx, setRecords, removeRecords),\n        // bulkCreate all new records for this entity,\n        // include(set, bulkCreate, bulkUpdate)\n        this.model.bulkCreate(records, {\n          transaction: tx,\n        }),\n      ]);\n    } else {\n      // We need to check within the same model if there is multiple operations (set/remove) to the same id\n      // we don't have to consider the order in setCache, as we are using getLatest()?.data;\n      // also in removeCache only store last remove operation too.\n\n      // If same Id exist in both set and remove records, we only need to pick the last operation for this ID,\n      // As both cache in final status, so we can compare their operation index\n      for (const v of Object.values(setRecords)) {\n        const latestSet = v.getLatest();\n        if (latestSet !== undefined && removeRecords[latestSet.data.id]) {\n          if (removeRecords[latestSet.data.id].operationIndex > latestSet.operationIndex) {\n            records = records.filter((r) => r.id !== latestSet.data.id);\n          } else if (removeRecords[latestSet.data.id].operationIndex < latestSet.operationIndex) {\n            delete removeRecords[latestSet.data.id];\n          } else {\n            throw new Error(\n              `Cache entity ${this.model.name} Id ${latestSet.data.id} has same Operation Indexes in remove and set cache `\n            );\n          }\n        }\n      }\n\n      const allKeys = Object.keys(this.model.getAttributes()) as (keyof T)[];\n      dbOperation = Promise.all([\n        records.length &&\n          this.model.bulkCreate(records, {\n            transaction: tx,\n            updateOnDuplicate: allKeys,\n          }),\n        Object.keys(removeRecords).length &&\n          this.model.destroy({where: {id: Object.keys(removeRecords)} as any, transaction: tx}),\n      ]);\n    }\n\n    await dbOperation;\n    // If this throws the transaction should be aborted\n    for (const exporter of this.exporters) {\n      await exporter.export(records);\n    }\n  }\n\n  // Flush relation model in operationIndex order with non-historical db\n  async flushOperation(operationIndex: number, tx: Transaction): Promise<void> {\n    const removeRecordKey = Object.keys(this.removeCache).find(\n      (key) => this.removeCache[key].operationIndex === operationIndex\n    );\n    if (removeRecordKey !== undefined) {\n      await this.model.destroy({where: {id: removeRecordKey} as any, transaction: tx});\n      delete this.removeCache[removeRecordKey];\n    } else {\n      let setRecord: SetValue<T> | undefined;\n      for (const r of Object.values(this.setCache)) {\n        setRecord = r.popRecordWithOpIndex(operationIndex);\n        if (setRecord) break;\n      }\n      if (setRecord) {\n        await this.model.upsert(setRecord.data as unknown as CreationAttributes<Model<T, T>>, {transaction: tx});\n      }\n      return;\n    }\n  }\n\n  private filterRemoveRecordByHeight(blockHeight: number, lessEqt: boolean): Record<string, RemoveValue> {\n    return Object.entries(this.removeCache).reduce(\n      (acc, [key, value]) => {\n        if (lessEqt ? value.removedAtBlock <= blockHeight : value.removedAtBlock > blockHeight) {\n          acc[key] = value;\n        }\n\n        return acc;\n      },\n      {} as Record<string, RemoveValue>\n    );\n  }\n\n  private filterRecordsWithHeight(blockHeight: number): FilteredHeightRecords<T> {\n    return {\n      removeRecords: this.filterRemoveRecordByHeight(blockHeight, true),\n      setRecords: Object.entries(this.setCache).reduce((acc, [key, value]) => {\n        const newValue = value.fromBelowHeight(blockHeight + 1);\n        if (newValue.getValues().length) {\n          acc[key] = newValue;\n        }\n        return acc;\n      }, {} as SetData<T>),\n    };\n  }\n\n  // Add blockRange to historical record\n  private applyBlockRange(_setRecords: SetData<T>) {\n    const setRecords = cloneDeep(_setRecords);\n    return flatten(\n      Object.values(setRecords).map((v) => {\n        if (!this.historical) {\n          return v.getLatest()?.data;\n        }\n        // Historical\n        // Alternative: historicalValue.data.__block_range = [historicalValue.startHeight, historicalValue.endHeight];\n        return v\n          .getValues()\n          .map((historicalValue) => {\n            // prevent flush this record,\n            // this is happened when set and remove in same block\n            if (historicalValue.removed && historicalValue.startHeight === historicalValue.endHeight) {\n              return;\n            }\n            historicalValue.data.__block_range = this.sequelize.fn(\n              'int8range',\n              historicalValue.startHeight,\n              historicalValue.endHeight\n            );\n            return historicalValue.data;\n          })\n          .filter((r) => !!r);\n      })\n    ) as unknown as CreationAttributes<Model<T, T>>[];\n  }\n\n  clear(blockHeight?: number): void {\n    if (blockHeight === undefined) {\n      this.setCache = {};\n      // avoid fetch old data after rewind/reindex\n      this.getCache = new GetData<T>(getCacheOptions);\n      this.removeCache = {};\n      this.flushableRecordCounter = 0;\n      return;\n    }\n\n    let newCounter = 0;\n\n    // Clear everything below the block height\n    this.setCache = Object.entries(this.setCache).reduce((acc, [key, value]) => {\n      const newValue = value.fromAboveHeight(blockHeight);\n      const numValues = newValue.getValues().length;\n      if (numValues) {\n        newCounter += numValues;\n        acc[key] = newValue;\n      }\n      return acc;\n    }, {} as SetData<T>);\n\n    this.removeCache = this.filterRemoveRecordByHeight(blockHeight, false);\n\n    this.flushableRecordCounter = newCounter;\n  }\n\n  // Different with markAsDeleted, we only mark/close all the records less than current block height\n  // thus, and new record with current block height will not be impacted,\n  // advantage is this sql is safe to concurrency resolve with any insert sql\n  private async historicalMarkPreviousHeightRecordsBatch(\n    tx: Transaction,\n    setRecords: SetData<T>,\n    removeRecords: Record<string, RemoveValue>\n  ): Promise<void> {\n    const closeSetRecords: {id: string; blockHeight: number}[] = [];\n    for (const [id, value] of Object.entries(setRecords)) {\n      const firstValue = value.getFirst();\n      if (firstValue !== undefined) {\n        closeSetRecords.push({id, blockHeight: firstValue.startHeight});\n      }\n    }\n    const closeRemoveRecords = Object.entries(removeRecords).map(([id, value]) => {\n      return {id, blockHeight: value.removedAtBlock};\n    });\n    const mergedRecords = closeSetRecords.concat(closeRemoveRecords);\n\n    if (!mergedRecords.length) {\n      return;\n    }\n\n    await this.sequelize.query(\n      `UPDATE ${this.model.getTableName()} table1 SET _block_range = int8range(lower(\"_block_range\"), table2._block_end)\n            from (SELECT UNNEST(array[${mergedRecords.map((r) =>\n              this.sequelize.escape(r.id)\n            )}]) AS id, UNNEST(array[${mergedRecords.map((r) => r.blockHeight)}]) AS _block_end) AS table2\n            WHERE table1.id = table2.id and \"_block_range\" @> _block_end-1::int8;`,\n      {transaction: tx}\n    );\n  }\n\n  private get sequelize(): Sequelize {\n    const sequelize = this.model.sequelize;\n\n    if (!sequelize) {\n      throw new Error(`Sequelize is not available on ${this.model.name}`);\n    }\n\n    return sequelize;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/model/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './cacheModel';\nexport {IModel, BaseEntity} from './model';\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/model/model.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Entity} from '@subql/types-core';\nimport {DataTypes, Sequelize} from '@subql/x-sequelize';\nimport _ from 'lodash';\nimport {NodeConfig} from '../../../configure';\nimport {DbOption} from '../../../db';\nimport {CachedModel} from './cacheModel';\nimport {PlainModel} from './model';\n\nconst option: DbOption = {\n  host: process.env.DB_HOST ?? '127.0.0.1',\n  port: process.env.DB_PORT ? Number(process.env.DB_PORT) : 5432,\n  username: process.env.DB_USER ?? 'postgres',\n  password: process.env.DB_PASS ?? 'postgres',\n  database: process.env.DB_DATABASE ?? 'postgres',\n  timezone: 'utc',\n};\n\njest.setTimeout(50_000);\n\ndescribe('Model provider consistency test', () => {\n  let sequelize: Sequelize;\n  let schema: string;\n  let model: any;\n\n  beforeAll(async () => {\n    sequelize = new Sequelize(\n      `postgresql://${option.username}:${option.password}@${option.host}:${option.port}/${option.database}`,\n      option\n    );\n    await sequelize.authenticate();\n\n    schema = '\"model-test-1\"';\n    await sequelize.createSchema(schema, {});\n\n    const modelFactory = sequelize.define(\n      'testModel',\n      {\n        id: {\n          type: DataTypes.STRING,\n          primaryKey: true,\n        },\n        field1: DataTypes.INTEGER,\n      },\n      {timestamps: false, schema: schema}\n    );\n    model = await modelFactory.sync();\n  });\n\n  afterAll(async () => {\n    await sequelize.dropSchema(schema, {logging: false});\n    await sequelize.close();\n  });\n\n  describe('disable historical', () => {\n    let plainModel: PlainModel<{id: string; field1?: number}>;\n    let cacheModel: CachedModel<{id: string; field1?: number}>;\n    let i = 0;\n    beforeAll(() => {\n      plainModel = new PlainModel(model, false);\n      cacheModel = new CachedModel(model, false, new NodeConfig({} as any), () => i++);\n    });\n\n    it('insert data', async () => {\n      const id = '1';\n      const data = {id, field1: 1};\n\n      await plainModel.set(id, data, 1);\n      await cacheModel.set(id, data, 1);\n\n      const result = await plainModel.get(id, undefined as any);\n      const cacheResult = await cacheModel.get(id);\n\n      expect(result).toEqual(data);\n      expect(cacheResult).toEqual(result);\n    });\n\n    it('select data', async () => {\n      const id2 = '2';\n      const data2 = {id: id2, field1: 2};\n      await plainModel.set(id2, data2, 1);\n      await cacheModel.set(id2, data2, 1);\n      const result2 = await plainModel.getByFields([['id', '=', id2]], {limit: 1}, undefined as any);\n      const cacheResult2 = await cacheModel.getByFields([['id', '=', id2]], {limit: 1});\n      expect(result2.length).toEqual(1);\n      expect(cacheResult2).toEqual(result2);\n\n      const result3 = await plainModel.getByFields([], {limit: 2}, undefined as any);\n      const cacheResult3 = await cacheModel.getByFields([], {limit: 2});\n      expect(result3.length).toEqual(2);\n      expect(cacheResult3).toEqual(result3);\n    });\n\n    it('update data', async () => {\n      const datas = [\n        {id: '1', field1: 1},\n        {id: '2', field1: 2},\n        {id: '3', field1: 3},\n      ];\n      await plainModel.bulkUpdate(datas, 1);\n      await cacheModel.bulkUpdate(datas, 1);\n\n      const result3 = await plainModel.getByFields([], {limit: 10}, undefined as any);\n      const cacheResult3 = await cacheModel.getByFields([], {limit: 10});\n      expect(result3.length).toEqual(3);\n      expect(cacheResult3).toEqual(result3);\n    });\n\n    it('delete data', async () => {\n      await plainModel.bulkRemove(['1'], 1);\n      await cacheModel.bulkRemove(['1'], 1);\n\n      const result3 = await plainModel.getByFields([], {limit: 10}, undefined as any);\n      const cacheResult3 = await cacheModel.getByFields([], {limit: 10});\n      expect(result3.length).toEqual(2);\n      expect(cacheResult3).toEqual(result3);\n    });\n\n    it('update with optional fields', async () => {\n      // This test checks that `updateOnDuplicate` is correct, previously it would use Object.keys(data[0]) which would cause issues when later data has more keys,\n      const data = [\n        {id: '1', field1: 1},\n        {id: '2', field1: 2},\n      ];\n\n      // Set some initial data\n      await plainModel.bulkUpdate(data, 1);\n      const initial2 = await plainModel.get('2');\n      expect(initial2).toEqual({id: '2', field1: 2});\n\n      // Set new data + update previous data\n      const data2 = [\n        {id: '3'}, // Omit field1 because its optional\n        {id: '2', field1: 3},\n      ];\n      await plainModel.bulkUpdate(data2, 2);\n      const updated2 = await plainModel.get('2');\n      expect(updated2).toEqual({id: '2', field1: 3});\n    });\n  });\n\n  describe('alternative id types', () => {\n    it('can store an entity with a numeric ID type', async () => {\n      const modelFactory = sequelize.define(\n        'testModel2',\n        {\n          id: {\n            type: DataTypes.INTEGER,\n            primaryKey: true,\n          },\n          field1: DataTypes.INTEGER,\n        },\n        {timestamps: false, schema: schema}\n      );\n      const model2 = await modelFactory.sync();\n\n      let i = 0;\n\n      const plainModel = new PlainModel(model2 as any, false);\n      const cacheModel = new CachedModel(model2 as any, false, new NodeConfig({} as any), () => i++);\n\n      const numericData = {\n        id: 1,\n        field1: 1,\n      } as unknown as Entity;\n\n      await plainModel.set(numericData.id.toString(), numericData, 1);\n      await cacheModel.set(numericData.id.toString(), numericData, 1);\n\n      const result = await plainModel.get(numericData.id, undefined as any);\n      expect(result).toEqual(numericData);\n\n      const cacheResult = await cacheModel.get(numericData.id);\n      expect(cacheResult).toEqual(numericData);\n\n      const [getByResult] = await plainModel.getByFields([['field1', '=', 1] as any], {limit: 1}, undefined as any);\n      expect(getByResult).toEqual(numericData);\n\n      const [getByCachedResult] = await cacheModel.getByFields([['field1', '=', 1] as any], {limit: 1});\n      expect(getByCachedResult).toEqual(numericData);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/model/model.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {FieldsExpression, GetOptions} from '@subql/types-core';\nimport {Op, Model, ModelStatic, Transaction, CreationAttributes, Sequelize} from '@subql/x-sequelize';\nimport {Fn} from '@subql/x-sequelize/types/utils';\nimport {HistoricalMode} from '../../types';\nimport {asTxExporter, Exporter, TransactionedExporter} from '../exporters';\nimport {getFullOptions, operatorsMap} from './utils';\n\nexport type BaseEntity = {id: string; __block_range?: (number | null)[] | Fn};\n\nexport interface IModel<T extends BaseEntity> {\n  model: Readonly<ModelStatic<Model<T, T>>>;\n  get(id: string, tx?: Transaction): Promise<T | undefined>;\n\n  getByFields(filters: FieldsExpression<T>[], options: GetOptions<T>, tx?: Transaction): Promise<T[]>;\n\n  set: (id: string, data: T, blockHeight: number, tx?: Transaction) => Promise<void>;\n  bulkCreate(data: T[], blockHeight: number, tx?: Transaction): Promise<void>;\n  bulkUpdate(data: T[], blockHeight: number, fields?: string[], tx?: Transaction): Promise<void>;\n\n  bulkRemove(ids: string[], blockHeight: number, tx?: Transaction): Promise<void>;\n\n  exporters: Exporter[];\n}\n\n// All operations must be carried out within a transaction.\nexport class PlainModel<T extends BaseEntity = BaseEntity> implements IModel<T> {\n  exporters: TransactionedExporter[] = [];\n\n  constructor(\n    readonly model: ModelStatic<Model<T, T>>,\n    private readonly historical: HistoricalMode = 'height'\n  ) {}\n\n  async get(id: string, tx?: Transaction): Promise<T | undefined> {\n    const record = await this.model.findOne({\n      // https://github.com/sequelize/sequelize/issues/15179\n      where: {id} as any,\n      transaction: tx,\n    });\n\n    return record?.toJSON();\n  }\n\n  async getByFields(filters: FieldsExpression<T>[], options: GetOptions<T>, tx?: Transaction): Promise<T[]> {\n    const fullOptions = getFullOptions(options);\n    // Query DB with all params\n    const records = await this.model.findAll({\n      where: {\n        [Op.and]: [...filters.map(([field, operator, value]) => ({[field]: {[operatorsMap[operator]]: value}}))] as any, // Types not working properly\n      },\n      limit: fullOptions.limit,\n      offset: fullOptions.offset,\n      order: [[fullOptions.orderBy as string, fullOptions.orderDirection]],\n      transaction: tx,\n    });\n\n    return records.map((r) => r.toJSON());\n  }\n\n  async set(id: string, data: T, blockHeight: number, tx?: Transaction): Promise<void> {\n    await this.bulkUpdate([data], blockHeight, undefined, tx);\n  }\n\n  async bulkCreate(data: T[], blockHeight: number, tx?: Transaction): Promise<void> {\n    await this.bulkUpdate(data, blockHeight, undefined, tx);\n  }\n\n  async bulkUpdate(data: T[], blockHeight: number, fields?: string[], tx?: Transaction): Promise<void> {\n    if (!data.length) return;\n\n    // TODO, understand why this happens, its also on the store cache\n    if (fields) {\n      throw new Error(`Currently not supported: update by fields`);\n    }\n\n    if (this.historical) {\n      // To prevent the scenario of repeated created-deleted-created, which may result in multiple entries.\n      await this.model.destroy({\n        where: {\n          id: data.map((v) => v.id),\n          [Op.and]: this.sequelize.where(\n            this.sequelize.fn('lower', this.sequelize.col('_block_range')),\n            Op.eq,\n            blockHeight\n          ),\n        } as any,\n        transaction: tx,\n      });\n      await this.markAsDeleted(\n        data.map((v) => v.id),\n        blockHeight,\n        tx\n      );\n    }\n\n    const allKeys = Object.keys(this.model.getAttributes()) as (keyof T)[];\n    await this.model.bulkCreate(data as CreationAttributes<Model<T, T>>[], {\n      transaction: tx,\n      updateOnDuplicate: allKeys,\n    });\n\n    if (this.exporters.length) {\n      // Include historical information\n      const exportData = this.historical ? data.map((d) => ({...d, __block_range: [blockHeight]})) : data;\n\n      await Promise.all(this.exporters.map((exporter) => exporter.export(exportData)));\n\n      // Without a transaction, commit that data instantly\n      if (!tx) {\n        await Promise.all(this.exporters.map((exporter) => exporter.commit()));\n      }\n    }\n  }\n\n  async bulkRemove(ids: string[], blockHeight: number, tx?: Transaction): Promise<void> {\n    if (!ids.length) return;\n    if (!this.historical) {\n      await this.model.destroy({where: {id: ids} as any, transaction: tx});\n    } else {\n      await this.markAsDeleted(ids, blockHeight, tx);\n    }\n  }\n\n  private get sequelize(): Sequelize {\n    const sequelize = this.model.sequelize;\n\n    if (!sequelize) {\n      throw new Error(`Sequelize is not available on ${this.model.name}`);\n    }\n\n    return sequelize;\n  }\n\n  private async markAsDeleted(ids: string[], blockHeight: number, tx?: Transaction): Promise<void> {\n    await this.model.update(\n      {\n        __block_range: this.sequelize.fn(\n          'int8range',\n          this.sequelize.fn('lower', this.sequelize.col('_block_range')),\n          blockHeight\n        ),\n      } as any,\n      {\n        hooks: false,\n        where: {\n          id: ids,\n          __block_range: {[Op.contains]: blockHeight},\n        } as any,\n        transaction: tx,\n      }\n    );\n  }\n\n  addExporter(exporter: Exporter): void {\n    this.exporters.push(asTxExporter(exporter));\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/model/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {FieldOperators, GetOptions} from '@subql/types-core';\nimport {Op} from '@subql/x-sequelize';\n\nexport const operatorsMap: Record<FieldOperators, any> = {\n  '=': Op.eq,\n  '!=': Op.ne,\n  in: Op.in,\n  '!in': Op.notIn,\n};\n\nconst defaultOptions: Required<GetOptions<{id: string}>> = {\n  offset: 0,\n  limit: 100,\n  orderBy: 'id',\n  orderDirection: 'ASC',\n};\n\n// Ensure we have all the options\nexport const getFullOptions = <T>(options?: GetOptions<T>): Required<GetOptions<T>> =>\n  ({\n    ...(defaultOptions as GetOptions<T>),\n    ...options,\n  }) as Required<GetOptions<T>>;\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/poi/cachePoi.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {delay} from '@subql/common';\nimport {Op, Sequelize} from '@subql/x-sequelize';\nimport {PoiRepo} from '../../entities';\nimport {CachePoiModel} from './cachePoi';\n\nconst mockPoiRepo = (): PoiRepo => {\n  const data: Record<number, any> = {};\n\n  const ascKeys = () => (Object.keys(data) as any[] as number[]).sort((a: number, b: number) => a - b);\n  const descKeys = () => [...ascKeys()].reverse();\n\n  return {\n    findByPk: (key: number) => ({toJSON: () => data[key]}),\n    findAll: ({limit, order, where}: any) => {\n      const orderedKeys = order[0][1] === 'DESC' ? descKeys() : ascKeys();\n\n      const startHeight = where.id[Op.gte];\n      let filteredKeys: number[] = orderedKeys;\n      if (startHeight !== undefined) {\n        filteredKeys = orderedKeys.filter((key) => key >= startHeight);\n      } else {\n        const startHeight = where.id[Op.lte];\n        if (startHeight !== undefined) {\n          filteredKeys = orderedKeys.filter((key) => key <= startHeight);\n        }\n      }\n\n      return filteredKeys.slice(0, limit).map((key) => ({toJSON: () => data[key]}));\n    },\n    findOne: ({order, where}: any) => {\n      const orderedKeys = descKeys();\n\n      if (!orderedKeys.length) {\n        return null;\n      }\n\n      if (!where) {\n        return {toJSON: () => data[orderedKeys[0]]};\n      }\n\n      // Only support null mmrRoot\n      for (const key of orderedKeys) {\n        if (data[key].mmrRoot !== null && data[key].mmrRoot !== undefined) {\n          return {toJSON: () => data[key]};\n        }\n      }\n\n      return null;\n    },\n    bulkCreate: (input: {id: number}[], opts: any) => input.map((d) => (data[d.id] = d)),\n    destroy: (key: number) => {\n      delete data[key];\n    },\n  } as any as PoiRepo;\n};\n\njest.mock('@subql/x-sequelize', () => {\n  let data: Record<string, any> = {};\n\n  let pendingData: typeof data = {};\n  let afterCommitHooks: Array<() => void> = [];\n\n  const mSequelize = {\n    authenticate: jest.fn(),\n    define: () => ({\n      findOne: jest.fn(),\n      create: (input: any) => input,\n    }),\n    query: () => [{nextval: 1}],\n    sync: jest.fn(),\n    transaction: () => ({\n      commit: jest.fn(async () => {\n        await delay(1);\n        data = {...data, ...pendingData};\n        pendingData = {};\n        afterCommitHooks.map((fn) => fn());\n        afterCommitHooks = [];\n      }), // Delay of 1s is used to test whether we wait for cache to flush\n      rollback: jest.fn(),\n      afterCommit: jest.fn((fn) => afterCommitHooks.push(fn)),\n    }),\n    // createSchema: jest.fn(),\n  };\n  const actualSequelize = jest.requireActual('@subql/x-sequelize');\n  return {\n    ...actualSequelize,\n    Sequelize: jest.fn(() => mSequelize),\n  };\n});\n\ndescribe('CachePoi', () => {\n  let poiRepo: PoiRepo;\n  let cachePoi: CachePoiModel;\n  let sequelize: Sequelize;\n\n  beforeEach(() => {\n    poiRepo = mockPoiRepo();\n    sequelize = new Sequelize();\n    cachePoi = new CachePoiModel(poiRepo);\n  });\n\n  describe('clear poi', () => {\n    it('should clear all if blockHeight not provided', () => {\n      cachePoi.bulkUpsert([\n        {id: 5, chainBlockHash: '0x1234'},\n        {id: 30, chainBlockHash: '0x5678'},\n        {id: 120, chainBlockHash: '0x91011'},\n      ] as any);\n      cachePoi.clear();\n      expect(cachePoi.flushableRecordCounter).toBe(0);\n      expect((cachePoi as any).setCache).toStrictEqual({});\n    });\n\n    it('should clear with blockHeight', () => {\n      cachePoi.bulkUpsert([\n        {id: 5, chainBlockHash: '0x1234'},\n        {id: 30, chainBlockHash: '0x5678'},\n        {id: 120, chainBlockHash: '0x91011'},\n      ] as any);\n      cachePoi.clear(30);\n      expect(cachePoi.flushableRecordCounter).toBe(1);\n      // expect(cachePoi.getPoiById(120)).toBeDefined();\n    });\n\n    describe('getPoiBlocksBefore', () => {\n      beforeEach(async () => {\n        // Store data\n        cachePoi.bulkUpsert([\n          {id: 1, chainBlockHash: '0x1111'},\n          {id: 2, chainBlockHash: '0x2222'},\n          {id: 3, chainBlockHash: '0x3333'},\n          {id: 4, chainBlockHash: '0x4444'},\n        ] as any);\n\n        const tx = await sequelize.transaction();\n        await cachePoi.flush(tx, Number.MAX_SAFE_INTEGER /* Poi Doesn't use historical */);\n        await tx.commit();\n\n        // Cache data\n        cachePoi.bulkUpsert([\n          {id: 5, chainBlockHash: '0x1234'},\n          {id: 30, chainBlockHash: '0x5678'},\n          {id: 120, chainBlockHash: '0x91011'},\n        ] as any);\n      });\n\n      it('should hit the cache first', async () => {\n        const results = await cachePoi.getPoiBlocksBefore(50, {limit: 2});\n\n        expect(results.map((r) => r.id)).toEqual([30, 5]);\n      });\n\n      it('should be able to get data from just the store', async () => {\n        const results = await cachePoi.getPoiBlocksBefore(4);\n\n        expect(results.map((r) => r.id)).toEqual([4, 3, 2, 1]);\n      });\n\n      it('should be able to combine cache and store data', async () => {\n        const results = await cachePoi.getPoiBlocksBefore(30);\n\n        expect(results.map((r) => r.id)).toEqual([30, 5, 4, 3, 2, 1]);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/poi/cachePoi.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {DEFAULT_FETCH_RANGE} from '@subql/common';\nimport {u8aToBuffer} from '@subql/utils';\nimport {Transaction} from '@subql/x-sequelize';\nimport {getLogger} from '../../../logger';\nimport {PoiRepo, ProofOfIndex} from '../../entities';\nimport {Cacheable} from '../cacheable';\nimport {ICachedModelControl} from '../types';\nimport {IPoi, PlainPoiModel} from './poi';\nconst logger = getLogger('PoiCache');\n\nexport class CachePoiModel extends Cacheable implements IPoi, ICachedModelControl {\n  private setCache: Record<number, ProofOfIndex> = {};\n  flushableRecordCounter = 0;\n  plainPoiModel: PlainPoiModel;\n\n  constructor(readonly model: PoiRepo) {\n    super();\n    this.plainPoiModel = new PlainPoiModel(model);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async bulkUpsert(proofs: ProofOfIndex[]): Promise<void> {\n    for (const proof of proofs) {\n      if (proof.chainBlockHash !== null) {\n        proof.chainBlockHash = u8aToBuffer(proof.chainBlockHash);\n      }\n      if (proof.hash !== undefined) {\n        proof.hash = u8aToBuffer(proof.hash);\n      }\n      if (proof.parentHash !== undefined) {\n        proof.parentHash = u8aToBuffer(proof.parentHash);\n      }\n      this.setCache[proof.id] = proof;\n    }\n  }\n\n  get isFlushable(): boolean {\n    return !!Object.entries(this.setCache).length;\n  }\n\n  protected async runFlush(tx: Transaction, blockHeight?: number): Promise<void> {\n    logger.debug(`Flushing ${this.flushableRecordCounter} items from cache`);\n    await Promise.all([\n      this.model.bulkCreate(Object.values(this.setCache), {\n        transaction: tx,\n        updateOnDuplicate: ['hash', 'parentHash'],\n      }),\n    ]);\n  }\n\n  clear(blockHeight?: number): void {\n    if (!blockHeight) {\n      this.setCache = {};\n      this.flushableRecordCounter = 0;\n      return;\n    }\n    // Clear everything below the block height\n    const cloneSetCache: Record<number, ProofOfIndex> = {};\n    for (const [n, p] of Object.entries(this.setCache)) {\n      if (Number(n) > blockHeight) {\n        cloneSetCache[Number(n)] = p;\n      }\n    }\n    this.setCache = cloneSetCache;\n    this.flushableRecordCounter = Object.entries(this.setCache).length;\n  }\n\n  async getPoiBlocksBefore(\n    startHeight: number,\n    options: {limit: number} = {limit: DEFAULT_FETCH_RANGE}\n  ): Promise<ProofOfIndex[]> {\n    await this.mutex.waitForUnlock();\n\n    // Use cached values and apply the same filter as store method\n    const cachedValues = Object.values(this.setCache)\n      .sort((a, b) => b.id - a.id)\n      .filter((poi) => poi.id <= startHeight && poi.operationHashRoot !== null)\n      .slice(0, options.limit);\n\n    // Fill remaining values from the store\n    const newOptions = {limit: options.limit - cachedValues.length};\n\n    // If we've already filled the limit, return just cached values\n    if (newOptions.limit <= 0) {\n      return cachedValues;\n    }\n\n    const storeValues = await this.plainPoiModel.getPoiBlocksBefore(startHeight, newOptions);\n\n    return [...cachedValues, ...storeValues];\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/poi/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './cachePoi';\nexport * from './poi';\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/poi/poi.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {DEFAULT_FETCH_RANGE} from '@subql/common';\nimport {u8aToBuffer} from '@subql/utils';\nimport {Op, Transaction} from '@subql/x-sequelize';\nimport {BlockRangeDtoInterface} from '../../../admin';\nimport {PoiRepo, ProofOfIndex} from '../../entities';\n\nexport const POI_ENTITY_NAME = '_poi';\n\nexport interface IPoi {\n  model: PoiRepo; // TODO remove\n  bulkUpsert(proofs: ProofOfIndex[], tx?: Transaction): Promise<void>;\n  /**\n   * Gets the 100 blocks <= to the start height where there is an operation.\n   * This can be used to determine the last blocks that had data to index.\n   * */\n  getPoiBlocksBefore(startHeight: number): Promise<ProofOfIndex[]>;\n}\n\n// When using cockroach db, poi id is store in bigint format, and sequelize toJSON() can not convert id correctly (to string)\n// This will ensure after toJSON Poi id converted to number\nexport function ensureProofOfIndexId(poi: ProofOfIndex): ProofOfIndex {\n  if (typeof poi?.id === 'string') {\n    poi.id = Number(poi.id);\n  }\n  return poi;\n}\n\nexport class PlainPoiModel implements IPoi {\n  constructor(readonly model: PoiRepo) {}\n\n  async getFirst(): Promise<ProofOfIndex | undefined> {\n    const result = await this.model.findOne({\n      order: [['id', 'ASC']],\n    });\n    return result?.toJSON();\n  }\n\n  async getPoiById(id: number): Promise<ProofOfIndex | undefined> {\n    const result = await this.model.findByPk(id);\n    if (result) {\n      return ensureProofOfIndexId(result?.toJSON<ProofOfIndex>());\n    }\n    return;\n  }\n\n  async getStartAndEndBlock(): Promise<BlockRangeDtoInterface | undefined> {\n    const [startRecord, endRecord] = await Promise.all([\n      this.model.findOne({order: [['id', 'ASC']]}),\n      this.model.findOne({order: [['id', 'DESC']]}),\n    ]);\n\n    if (startRecord === null || startRecord?.id === undefined || endRecord === null) {\n      return undefined;\n    } else {\n      return {\n        startBlock: startRecord.id,\n        endBlock: endRecord.id,\n      };\n    }\n  }\n\n  async getPoiBlocksByRange(startHeight: number, endHeight?: number): Promise<ProofOfIndex[]> {\n    const result = await this.model.findAll({\n      limit: DEFAULT_FETCH_RANGE,\n      where:\n        endHeight !== undefined\n          ? {\n              id: {[Op.gte]: startHeight, [Op.lte]: endHeight},\n            }\n          : {id: {[Op.gte]: startHeight}},\n      order: [['id', 'ASC']],\n    });\n    return result.map((r) => ensureProofOfIndexId(r?.toJSON<ProofOfIndex>()));\n  }\n\n  async bulkUpsert(proofs: ProofOfIndex[], tx: Transaction): Promise<void> {\n    for (const proof of proofs) {\n      if (proof.chainBlockHash !== null) {\n        proof.chainBlockHash = u8aToBuffer(proof.chainBlockHash);\n      }\n      if (proof.hash !== undefined) {\n        proof.hash = u8aToBuffer(proof.hash);\n      }\n      if (proof.parentHash !== undefined) {\n        proof.parentHash = u8aToBuffer(proof.parentHash);\n      }\n    }\n    // Only update hash/parentHash if the proof has synced values (not null)\n    // This prevents overwriting existing synced POI with created-only POI\n    const hasSyncedValues = proofs.some((p) => p.hash !== undefined && p.parentHash !== undefined);\n    await this.model.bulkCreate(proofs, {\n      transaction: tx,\n      conflictAttributes: ['id'],\n      updateOnDuplicate: hasSyncedValues ? ['hash', 'parentHash'] : [],\n    });\n  }\n\n  async getPoiBlocksBefore(\n    startHeight: number,\n    options: {limit: number} = {limit: DEFAULT_FETCH_RANGE}\n  ): Promise<ProofOfIndex[]> {\n    const result = await this.model.findAll({\n      limit: options.limit,\n      where: {\n        id: {[Op.lte]: startHeight},\n        operationHashRoot: {[Op.ne]: null},\n      },\n      order: [['id', 'DESC']],\n    });\n    return result.map((r) => ensureProofOfIndexId(r?.toJSON<ProofOfIndex>()));\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/setValueModel.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {SetValueModel} from './setValueModel';\n\ndescribe('SetValueModel', () => {\n  let model: SetValueModel<string>;\n\n  beforeEach(() => {\n    model = new SetValueModel<string>();\n\n    let n = 0;\n    while (n < 5) {\n      model.set(n.toString(), n, n);\n      n++;\n    }\n  });\n\n  it('fromBelowHeight works', () => {\n    expect(model.fromBelowHeight(5).getValues()).toEqual(model.getValues());\n\n    expect(model.fromBelowHeight(2).getValues()).toEqual([\n      {data: '0', startHeight: 0, endHeight: 1, operationIndex: 0, removed: false},\n      {data: '1', startHeight: 1, endHeight: null, operationIndex: 1, removed: false},\n    ]);\n  });\n\n  it('fromAboveHeight works', () => {\n    expect(model.fromAboveHeight(6).getValues()).toEqual([]);\n    expect(model.fromAboveHeight(3).getValues()).toEqual([\n      {data: '4', startHeight: 4, endHeight: null, operationIndex: 4, removed: false},\n    ]);\n  });\n\n  it('ignores removed data in matchesField', () => {\n    expect(model.matchesField(['length', '=', 1])).toBeTruthy();\n\n    model.markAsRemoved(4);\n\n    expect(model.matchesField(['length', '=', 1])).toBeFalsy();\n  });\n\n  it('matches with matchesField and arrays', () => {\n    expect(model.matchesField(['length', 'in', [1, 2]])).toBeTruthy();\n  });\n\n  // it('matches with matchesField and undefined', () => {\n  //   expect(model.matchesField(['length', '=', undefined])).toBeFalsy();\n  // });\n\n  it('matches with matchesFields', () => {\n    expect(model.matchesFields([['length', '=', 5]])).toBeFalsy();\n\n    const objectModel = new SetValueModel<{key: string; value: number}>();\n\n    let n = 0;\n    while (n < 5) {\n      objectModel.set({key: 'foo', value: n}, n, n);\n      n++;\n    }\n\n    expect(\n      objectModel.matchesFields([\n        ['key', '=', 'foo'],\n        ['value', '=', 4],\n      ])\n    ).toBeTruthy();\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/setValueModel.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {FieldsExpression} from '@subql/types-core';\nimport {isEqual} from 'lodash';\nimport {SetValue} from './types';\n\nexport class SetValueModel<T> {\n  private historicalValues: SetValue<T>[] = [];\n  private _latestIndex = -1;\n\n  popRecordWithOpIndex(operationIndex: number): SetValue<T> | undefined {\n    const opIndexInSetRecord = this.historicalValues.findIndex((v) => {\n      return v.operationIndex === operationIndex;\n    });\n    if (opIndexInSetRecord >= 0) {\n      const setRecord = this.historicalValues[opIndexInSetRecord];\n      this.deleteFromHistorical(opIndexInSetRecord);\n      return setRecord;\n    }\n  }\n\n  set(data: T, blockHeight: number, operationIndex: number): void {\n    const latestIndex = this.latestIndex();\n\n    if (latestIndex >= 0) {\n      // Set multiple time within same block, replace with input data only\n      if (this.historicalValues[latestIndex].startHeight === blockHeight) {\n        this.historicalValues[latestIndex].data = data;\n        this.historicalValues[latestIndex].endHeight = null;\n        this.historicalValues[latestIndex].removed = false;\n      } else if (this.historicalValues[latestIndex].startHeight > blockHeight) {\n        throw new Error(\n          `Can not set record with block height ${blockHeight} as data for future block heights has been set`\n        );\n      } else {\n        // close previous historicalValues record endHeight\n        this.historicalValues[latestIndex].endHeight = blockHeight;\n        this.create(data, blockHeight, operationIndex);\n      }\n    } else {\n      this.create(data, blockHeight, operationIndex);\n    }\n  }\n\n  latestIndex(): number {\n    if (this.historicalValues.length === 0) {\n      return -1;\n    } else {\n      // Expect latestIndex should always sync with array growth\n      if (this.historicalValues.length - 1 !== this._latestIndex) {\n        this._latestIndex = this.historicalValues.findIndex((value) => value.endHeight === null);\n      }\n      return this._latestIndex;\n    }\n  }\n\n  // the latest record could be mark as removed\n  // we need to handle return value in where this method called accordingly , rather than return undefined here.\n  getLatest(): SetValue<T> | undefined {\n    const latestIndex = this.latestIndex();\n    if (latestIndex === -1) {\n      return;\n    }\n    return this.historicalValues[latestIndex];\n  }\n\n  getFirst(): SetValue<T> | undefined {\n    return this.historicalValues[0];\n  }\n\n  getValues(): SetValue<T>[] {\n    return this.historicalValues;\n  }\n\n  fromBelowHeight(height: number): SetValueModel<T> {\n    const newModel = new SetValueModel<T>();\n\n    newModel.historicalValues = this.historicalValues\n      .filter((v) => v.startHeight < height)\n      .map((v) => {\n        if (v.endHeight && v.endHeight < height) {\n          return v;\n        }\n\n        return {\n          ...v,\n          endHeight: null,\n        };\n      });\n\n    return newModel;\n  }\n\n  fromAboveHeight(height: number): SetValueModel<T> {\n    const newModel = new SetValueModel<T>();\n\n    newModel.historicalValues = this.historicalValues.filter((v) => v.startHeight > height);\n\n    return newModel;\n  }\n\n  markAsRemoved(removeAtBlock: number): void {\n    const latestIndex = this.latestIndex();\n    if (latestIndex === -1) {\n      return;\n    }\n    this.historicalValues[latestIndex].endHeight = removeAtBlock;\n    this.historicalValues[latestIndex].removed = true;\n  }\n\n  /**\n   * If value is an array then it will do an OR operation\n   * */\n  matchesField([field, matcher, value]: FieldsExpression<T>): boolean {\n    if (this.getLatest()?.removed) return false;\n    const latestValue = this.getLatest()?.data?.[field];\n\n    switch (matcher) {\n      case '=':\n        return isEqual(latestValue, value);\n      case '!=':\n        return !isEqual(latestValue, value);\n      case 'in':\n        return latestValue !== undefined && value.includes(latestValue);\n      case '!in':\n        return latestValue !== undefined && !value.includes(latestValue);\n      default:\n        throw new Error(`Unsupported matcher \"${matcher}\"`);\n    }\n  }\n\n  /**\n   *  Runs an AND operation over all the matchers\n   * */\n  matchesFields(filters: FieldsExpression<T>[]): boolean {\n    return filters.every((filter) => this.matchesField(filter));\n  }\n\n  private create(data: T, blockHeight: number, operationIndex: number): void {\n    this.historicalValues.push({\n      data,\n      startHeight: blockHeight,\n      endHeight: null,\n      operationIndex: operationIndex,\n      removed: false,\n    });\n    this._latestIndex += 1;\n  }\n\n  private deleteFromHistorical(index: number) {\n    this.historicalValues.splice(index, 1);\n    // remove a record, also means _latestIndex position need to -1\n    this._latestIndex -= 1;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/storeCache.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {NodeConfig} from '../../configure';\nimport {delay} from '../../utils';\nimport {Exporter} from './exporters';\nimport {METADATA_ENTITY_NAME} from './metadata/utils';\nimport {BaseEntity, CachedModel} from './model';\nimport {StoreCacheService} from './storeCache.service';\n\nconst eventEmitter = new EventEmitter2();\n\ntype TestEntity = BaseEntity & {field1: string};\n\njest.mock('@subql/x-sequelize', () => {\n  const mSequelize = {\n    authenticate: jest.fn(),\n    Op: {\n      in: jest.fn(),\n      notIn: jest.fn(),\n    },\n    define: () => ({\n      findOne: jest.fn(),\n      create: (input: any) => input,\n    }),\n    query: () => [{nextval: 1}],\n    showAllSchemas: () => ['subquery_1'],\n    model: (entity: string) => ({\n      upsert: jest.fn(),\n      associations: [{}, {}],\n      count: 5,\n      findAll: jest.fn(() => [\n        {\n          toJSON: () => ({\n            id: 'apple-05-sequelize',\n            field1: 'set apple at block 5 with sequelize',\n          }),\n        },\n      ]),\n      bulkCreate: jest.fn(),\n      destroy: jest.fn(),\n      getAttributes: jest.fn(() => ({id: null, field1: null})),\n    }),\n    sync: jest.fn(),\n    transaction: () => {\n      let afterCommits: Array<() => void> = [];\n      return {\n        commit: jest.fn(() => {\n          afterCommits.forEach((fn) => fn());\n          afterCommits = [];\n          return delay(1);\n        }), // Delay of 1s is used to test whether we wait for cache to flush\n        rollback: jest.fn(),\n        afterCommit: (fn: () => void) => afterCommits.push(fn),\n      };\n    },\n    // createSchema: jest.fn(),\n  };\n  const actualSequelize = jest.requireActual('@subql/x-sequelize');\n  return {\n    ...actualSequelize,\n    Sequelize: jest.fn(() => mSequelize),\n  };\n});\n\njest.setTimeout(200000);\n\ndescribe('Store Cache Service historical', () => {\n  let storeCacheService: StoreCacheService;\n\n  const sequelize = new Sequelize();\n  const nodeConfig: NodeConfig = {} as any;\n\n  beforeEach(() => {\n    storeCacheService = new StoreCacheService(sequelize, nodeConfig, eventEmitter);\n  });\n\n  it('could init store cache service and init cache for models', () => {\n    storeCacheService.getModel('entity1');\n    expect((storeCacheService as any).cachedModels.entity1).toBeDefined();\n    expect((storeCacheService as any).cachedModels.entity2).toBeUndefined();\n  });\n\n  it('could set cache for multiple entities, also get from it', async () => {\n    const entity1Model = storeCacheService.getModel<TestEntity>('entity1');\n    const entity2Model = storeCacheService.getModel<TestEntity>('entity2');\n\n    await entity1Model.set(\n      'entity1_id_0x01',\n      {\n        id: 'entity1_id_0x01',\n        field1: 'set at block 1',\n      },\n      1\n    );\n    await entity2Model.set(\n      'entity2_id_0x02',\n      {\n        id: 'entity2_id_0x02',\n        field1: 'set at block 2',\n      },\n      2\n    );\n\n    // check from cache\n    expect((storeCacheService as any).cachedModels.entity1.setCache.entity1_id_0x01).toBeDefined();\n    const entity1Block1 = (await entity1Model.get('entity1_id_0x01')) as any;\n    const entity2Block2 = (await entity2Model.get('entity2_id_0x02')) as any;\n    expect(entity1Block1.field1).toBe('set at block 1');\n    expect(entity2Block2.field1).toBe('set at block 2');\n  });\n\n  // TODO move this test to cacheModel\n  it('set at different block height, will create historical records', async () => {\n    const appleModel = storeCacheService.getModel<TestEntity>('apple');\n\n    await appleModel.set(\n      'apple-01',\n      {\n        id: 'apple-01',\n        field1: 'set apple at block 1',\n      },\n      1\n    );\n\n    const appleEntity_b1 = await appleModel.get('apple-01');\n    expect(appleEntity_b1!.field1).toBe('set apple at block 1');\n    // Add new record, should create historical records for same id entity\n    await appleModel.set(\n      'apple-01',\n      {\n        id: 'apple-01',\n        field1: 'updated apple at block 5',\n      },\n      5\n    );\n    const appleEntity_b5 = (await appleModel.get('apple-01')) as any;\n    expect(appleEntity_b5.field1).toBe('updated apple at block 5');\n\n    // Been pushed two records, the latest index should point to 1\n    expect((storeCacheService as any).cachedModels.apple.setCache['apple-01']._latestIndex).toBe(1);\n\n    // Historical values\n    const historicalValue = (storeCacheService as any).cachedModels.apple.setCache['apple-01'].historicalValues;\n    // should close the range index 0 historical record\n    expect(historicalValue[0].startHeight).toBe(1);\n    expect(historicalValue[0].endHeight).toBe(5);\n    // latest historical record endHeight should be null\n    expect(historicalValue[1].startHeight).toBe(5);\n    expect(historicalValue[1].endHeight).toBe(null);\n  });\n});\n\ndescribe('Store Cache flush with order', () => {\n  let storeCacheService: StoreCacheService;\n\n  const sequelize = new Sequelize();\n  const nodeConfig: NodeConfig = {} as any;\n\n  beforeEach(() => {\n    storeCacheService = new StoreCacheService(sequelize, nodeConfig, eventEmitter);\n    storeCacheService.init(false, {} as any, undefined);\n  });\n\n  it('when set/remove multiple model entities, operation index should added to record in sequential order', async () => {\n    const entity1Model = storeCacheService.getModel<TestEntity>('entity1');\n    const entity2Model = storeCacheService.getModel<TestEntity>('entity2');\n\n    await entity1Model.set(\n      'entity1_id_0x01',\n      {\n        id: 'entity1_id_0x01',\n        field1: 'set at block 1',\n      },\n      1\n    );\n    await entity2Model.set(\n      'entity2_id_0x02',\n      {\n        id: 'entity2_id_0x02',\n        field1: 'set at block 2',\n      },\n      2\n    );\n    await entity1Model.bulkRemove(['entity1_id_0x01'], 3);\n    const entity1 = (storeCacheService as any).cachedModels.entity1;\n    expect(entity1.removeCache.entity1_id_0x01.operationIndex).toBe(3);\n  });\n});\n\ndescribe('Store Cache flush with non-historical', () => {\n  let storeCacheService: StoreCacheService;\n\n  const sequelize = new Sequelize();\n  const nodeConfig: NodeConfig = {disableHistorical: true} as any;\n\n  beforeEach(() => {\n    storeCacheService = new StoreCacheService(sequelize, nodeConfig, eventEmitter);\n    storeCacheService.init(false, {} as any, undefined);\n  });\n\n  it('Same Id with multiple operations, when flush it should always pick up the latest operation', async () => {\n    const entity1Model = storeCacheService.getModel<TestEntity>('entity1');\n\n    //create Id 1\n    await entity1Model.set(\n      'entity1_id_0x01',\n      {\n        id: 'entity1_id_0x01',\n        field1: 'set at block 1',\n      },\n      1\n    );\n    // remove Id 1 and 2\n    await entity1Model.bulkRemove(['entity1_id_0x02'], 2);\n    await entity1Model.bulkRemove(['entity1_id_0x01'], 3);\n\n    // recreate id 1 again\n    await entity1Model.set(\n      'entity1_id_0x01',\n      {\n        id: 'entity1_id_0x01',\n        field1: 'set at block 5',\n      },\n      5\n    );\n\n    //simulate flush here\n    const tx = await sequelize.transaction();\n    await (entity1Model as any).flush(tx, 5);\n\n    const sequelizeModel1 = (entity1Model as any).model;\n    const spyModel1Create = jest.spyOn(sequelizeModel1, 'bulkCreate');\n    const spyModel1Destroy = jest.spyOn(sequelizeModel1, 'destroy');\n\n    // Only last set record with block 5 is created\n    expect(spyModel1Create).toHaveBeenCalledWith([{field1: 'set at block 5', id: 'entity1_id_0x01'}], {\n      transaction: tx,\n      updateOnDuplicate: ['id', 'field1'],\n    });\n    // remove id 2 only\n    expect(spyModel1Destroy).toHaveBeenCalledWith({transaction: tx, where: {id: ['entity1_id_0x02']}});\n  });\n});\n\ndescribe('Store cache upper threshold', () => {\n  let storeCacheService: StoreCacheService;\n\n  const sequelize = new Sequelize();\n  const nodeConfig = {\n    storeCacheThreshold: 2,\n    storeCacheUpperLimit: 10,\n  } as NodeConfig;\n\n  beforeEach(() => {\n    storeCacheService = new StoreCacheService(sequelize, nodeConfig, eventEmitter);\n    storeCacheService.init(false, {findByPk: () => Promise.resolve({toJSON: () => 1})} as any, undefined);\n  });\n\n  it('doesnt wait for flushing cache when threshold not met', async () => {\n    const entity1Model = storeCacheService.getModel<TestEntity>('entity1');\n\n    for (let i = 0; i < 5; i++) {\n      await entity1Model.set(\n        `entity1_id_0x0${i}`,\n        {\n          id: `entity1_id_0x0${i}`,\n          field1: 'set at block 1',\n        },\n        1\n      );\n    }\n\n    const start = new Date().getTime();\n    await storeCacheService.flushAndWaitForCapacity(true);\n    const end = new Date().getTime();\n\n    // Should be less than 1s, we're not waiting\n    expect(end - start).toBeLessThan(1000);\n  });\n\n  it('waits for flushing when threshold is met', async () => {\n    const entity1Model = storeCacheService.getModel<TestEntity>('entity1');\n\n    for (let i = 0; i < 15; i++) {\n      await entity1Model.set(\n        `entity1_id_0x0${i}`,\n        {\n          id: `entity1_id_0x0${i}`,\n          field1: 'set at block 1',\n        },\n        1\n      );\n    }\n\n    const start = new Date().getTime();\n    await storeCacheService.flushAndWaitForCapacity(true);\n    const end = new Date().getTime();\n\n    // Should be more than 1s, we set the db tx.commit to take 1s\n    expect(end - start).toBeGreaterThanOrEqual(1000);\n  });\n});\n\ndescribe('Store cache', () => {\n  let storeCacheService: StoreCacheService;\n\n  const sequelize = new Sequelize();\n  const nodeConfig = {storeCacheTarget: 5, storeFlushInterval: 2} as NodeConfig;\n\n  let targetHeight: number | undefined;\n\n  beforeEach(() => {\n    targetHeight = 103;\n    storeCacheService = new StoreCacheService(sequelize, nodeConfig, eventEmitter);\n    storeCacheService.init(false, {findByPk: () => Promise.resolve({toJSON: () => 1})} as any, undefined);\n\n    (storeCacheService as any).cachedModels[METADATA_ENTITY_NAME] = {\n      find(key: string) {\n        switch (key) {\n          case 'lastProcessedHeight':\n            return 0;\n          case 'targetHeight':\n            return targetHeight;\n          default:\n            throw new Error(`Not supported by test: ${key}`);\n        }\n      },\n    };\n  });\n\n  describe('exporters', () => {\n    // This makes sure exporting + flushing is atomic\n    it('aborts the transaction if an exporter throws', async () => {\n      const entity1Model = storeCacheService.getModel<TestEntity>('entity1');\n\n      const errorExporter = {\n        export: () => {\n          return Promise.reject(new Error('Cant export'));\n        },\n        shutdown: () => Promise.resolve(),\n      } satisfies Exporter;\n\n      for (let i = 0; i < 5; i++) {\n        await entity1Model.set(\n          `entity1_id_0x0${i}`,\n          {\n            id: `entity1_id_0x0${i}`,\n            field1: 'set at block 1',\n          },\n          1\n        );\n      }\n\n      (entity1Model as unknown as CachedModel).addExporter(errorExporter);\n\n      await expect(() => storeCacheService.flushData(true)).rejects.toThrow('Cant export');\n    });\n  });\n\n  describe('flush interval', () => {\n    let flushSpy: jest.SpyInstance<Promise<void>, [forceFlush?: boolean | undefined]>;\n\n    beforeEach(async () => {\n      // Setup initial data that is flushed so we have a last flushed time\n      const entity1Model = storeCacheService.getModel<TestEntity>('entity1');\n      await entity1Model.set(\n        'entity1_id_0x01',\n        {\n          id: 'entity1_id_0x01',\n          field1: 'set at block 1',\n        },\n        1\n      );\n      await storeCacheService.flushData(true);\n\n      flushSpy = jest.spyOn(storeCacheService, 'flushData');\n    });\n\n    it('force flushes at an interval', async () => {\n      let x = 0;\n      while (x <= 12) {\n        await storeCacheService.applyPendingChanges(x, false);\n        await delay(0.1);\n        x++;\n      }\n\n      expect(flushSpy).toHaveBeenCalledWith(true);\n    });\n\n    it('always force flushes when near targetHeight', async () => {\n      let x = 100;\n      while (x < 105) {\n        await storeCacheService.applyPendingChanges(x, false);\n        await delay(0.1);\n        x++;\n      }\n\n      expect(flushSpy).toHaveBeenCalledTimes(5);\n      expect(flushSpy).toHaveBeenCalledWith(true);\n    });\n\n    it('applies pending changes without a targetHeight set', async () => {\n      targetHeight = undefined;\n\n      let x = 100;\n      while (x < 105) {\n        await storeCacheService.applyPendingChanges(x, false);\n        await delay(0.1);\n        x++;\n      }\n\n      expect(flushSpy).toHaveBeenCalled();\n    });\n\n    it('can force flush above the target height', async () => {\n      let x = 100;\n      while (x < 105) {\n        await storeCacheService.applyPendingChanges(x, false);\n        await delay(0.1);\n        x++;\n      }\n\n      expect(flushSpy).toHaveBeenCalledTimes(5);\n      expect(flushSpy).toHaveBeenCalledWith(true);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/storeCache.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Injectable} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {DatabaseError, Deferrable, Sequelize} from '@subql/x-sequelize';\nimport {sum} from 'lodash';\nimport {NodeConfig} from '../../configure';\nimport {IndexerEvent} from '../../events';\nimport {getLogger} from '../../logger';\nimport {exitWithError} from '../../process';\nimport {profiler} from '../../profiler';\nimport {BaseCacheService} from './baseCache.service';\nimport {CsvExporter, Exporter} from './exporters';\nimport {CacheMetadataModel} from './metadata';\nimport {METADATA_ENTITY_NAME} from './metadata/utils';\nimport {CachedModel} from './model';\nimport {CachePoiModel, POI_ENTITY_NAME} from './poi';\nimport {IStoreModelProvider} from './types';\n\nconst logger = getLogger('StoreCacheService');\n\n@Injectable()\nexport class StoreCacheService extends BaseCacheService implements IStoreModelProvider {\n  private readonly storeCacheThreshold: number;\n  private readonly cacheUpperLimit: number;\n  private _storeOperationIndex = 0;\n\n  #lastFlushed: Date | undefined;\n\n  constructor(\n    private sequelize: Sequelize,\n    private config: NodeConfig,\n    protected eventEmitter: EventEmitter2\n  ) {\n    super('StoreCache');\n    this.storeCacheThreshold = config.storeCacheThreshold;\n    this.cacheUpperLimit = config.storeCacheUpperLimit;\n\n    if (this.storeCacheThreshold > this.cacheUpperLimit) {\n      exitWithError('Store cache threshold must be less than the store cache upper limit', logger);\n    }\n  }\n\n  getNextStoreOperationIndex(): number {\n    this._storeOperationIndex += 1;\n    return this._storeOperationIndex;\n  }\n\n  protected createModel(entityName: string): CachedModel<any> {\n    const model = this.sequelize.model(entityName);\n    assert(model, `model ${entityName} not exists`);\n    const cachedModel = new CachedModel(\n      model,\n      this.historical,\n      this.config,\n      this.getNextStoreOperationIndex.bind(this)\n    );\n    if (this.config.csvOutDir) {\n      const exporterStore = new CsvExporter(entityName, this.config.csvOutDir);\n      this.addExporter(cachedModel, exporterStore);\n    }\n\n    return cachedModel;\n  }\n\n  private addExporter(cachedModel: CachedModel, exporter: Exporter): void {\n    cachedModel.addExporter(exporter);\n  }\n\n  get metadata(): CacheMetadataModel {\n    if (!this.cachedModels[METADATA_ENTITY_NAME]) {\n      if (!this.metadataRepo) {\n        throw new Error('Metadata entity has not been set on store cache');\n      }\n      this.cachedModels[METADATA_ENTITY_NAME] = new CacheMetadataModel(this.metadataRepo, this.historical);\n    }\n    return this.cachedModels[METADATA_ENTITY_NAME] as unknown as CacheMetadataModel;\n  }\n\n  get poi(): CachePoiModel | null {\n    if (!this.cachedModels[POI_ENTITY_NAME]) {\n      if (!this.poiRepo) {\n        return null;\n        // throw new Error('Poi entity has not been set on store cache');\n      }\n      this.cachedModels[POI_ENTITY_NAME] = new CachePoiModel(this.poiRepo);\n    }\n\n    return this.cachedModels[POI_ENTITY_NAME] as unknown as CachePoiModel;\n  }\n\n  @profiler()\n  async _flushCache(): Promise<void> {\n    this.#lastFlushed = new Date();\n    this.logger.debug('Flushing cache');\n    // With historical disabled we defer the constraints check so that it doesn't matter what order entities are modified\n    const tx = await this.sequelize.transaction({\n      deferrable: this.historical ? undefined : Deferrable.SET_DEFERRED(),\n    });\n    try {\n      // Get the unit for historical\n      const historicalUnit = await this.metadata.find(\n        this.historical === 'timestamp' ? 'lastProcessedBlockTimestamp' : 'lastProcessedHeight'\n      );\n      // Get models that have data to flush\n      const updatableModels = Object.values(this.cachedModels).filter((m) => m.isFlushable);\n      await Promise.all(updatableModels.map((model) => model.flush(tx, historicalUnit)));\n      await tx.commit();\n    } catch (e: any) {\n      if (e instanceof DatabaseError) {\n        this.logger.warn(`Error: ${e}, Name: ${e.name}, Parent: ${e.parent}, Original: ${e.original}`);\n      }\n      this.logger.error(e, 'Database transaction failed, rolling back');\n      await tx.rollback();\n      throw e;\n    }\n  }\n\n  _resetCache(): void {\n    for (const model of Object.values(this.cachedModels)) {\n      model.clear();\n    }\n  }\n\n  async flushAndWaitForCapacity(forceFlush?: boolean): Promise<void> {\n    const flushableRecords = this.flushableRecords;\n\n    const pendingFlush = this.flushData(forceFlush);\n\n    if (flushableRecords >= this.cacheUpperLimit) {\n      await pendingFlush;\n    }\n  }\n\n  get flushableRecords(): number {\n    const numberOfPoiRecords = this.poi?.flushableRecordCounter ?? 0;\n    return sum(Object.values(this.cachedModels).map((m) => m.flushableRecordCounter)) + numberOfPoiRecords;\n  }\n\n  isFlushable(): boolean {\n    const numOfRecords = this.flushableRecords;\n    this.eventEmitter.emit(IndexerEvent.StoreCacheRecordsSize, {\n      value: numOfRecords,\n    });\n    return numOfRecords >= this.storeCacheThreshold;\n  }\n\n  async applyPendingChanges(height: number, dataSourcesCompleted: boolean): Promise<void> {\n    const targetHeight = await this.metadata.find('targetHeight');\n    const nearTarget = !!targetHeight && height >= targetHeight - this.config.storeCacheTarget;\n\n    // Flush if interval conditions are met or near the targetHeight\n    const force =\n      (this.#lastFlushed &&\n        this.config.storeFlushInterval > 0 &&\n        Date.now() >= this.#lastFlushed.getTime() + this.config.storeFlushInterval * 1000) ||\n      nearTarget;\n\n    if (this.config.storeCacheAsync && !nearTarget) {\n      // Flush all completed block data and don't wait\n      await this.flushAndWaitForCapacity(force)?.catch((e) => {\n        exitWithError(new Error(`Flushing cache failed`, {cause: e}), logger);\n      });\n    } else {\n      // Flush all data from cache and wait\n      await this.flushData(force);\n    }\n\n    if (dataSourcesCompleted) {\n      const msg = `All data sources have been processed up to block number ${height}. Exiting gracefully...`;\n      await this.flushData(force);\n      exitWithError(msg, logger, 0);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/storeModel.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {delay} from '@subql/common';\nimport {NodeConfig} from '@subql/node-core/configure';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {Exporter} from './exporters';\nimport {BaseEntity} from './model';\nimport {PlainStoreModelService} from './storeModel.service';\n\ntype TestEntity = BaseEntity & {field1: string};\n\njest.mock('@subql/x-sequelize', () => {\n  const mSequelize = {\n    authenticate: jest.fn(),\n    Op: {\n      in: jest.fn(),\n      notIn: jest.fn(),\n    },\n    define: () => ({\n      findOne: jest.fn(),\n      create: (input: any) => input,\n    }),\n    query: () => [{nextval: 1}],\n    showAllSchemas: () => ['subquery_1'],\n    model: (entity: string) => ({\n      upsert: jest.fn(),\n      associations: [{}, {}],\n      count: 5,\n      findAll: jest.fn(() => [\n        {\n          toJSON: () => ({\n            id: 'apple-05-sequelize',\n            field1: 'set apple at block 5 with sequelize',\n          }),\n        },\n      ]),\n      bulkCreate: jest.fn(),\n      destroy: jest.fn(),\n      getAttributes: jest.fn(() => ({})),\n    }),\n    sync: jest.fn(),\n    transaction: () => ({\n      commit: jest.fn(() => delay(1)), // Delay of 1s is used to test whether we wait for cache to flush\n      rollback: jest.fn(),\n      afterCommit: jest.fn(),\n    }),\n    // createSchema: jest.fn(),\n  };\n  const actualSequelize = jest.requireActual('@subql/x-sequelize');\n  return {\n    ...actualSequelize,\n    Sequelize: jest.fn(() => mSequelize),\n  };\n});\n\nconst errorExporter = {\n  export: () => {\n    return Promise.reject(new Error('Cant export'));\n  },\n  shutdown: () => Promise.resolve(),\n} satisfies Exporter;\n\ndescribe('StoreModelService', () => {\n  let modelService: PlainStoreModelService;\n\n  const sequelize = new Sequelize();\n  const nodeConfig = {} as NodeConfig;\n\n  beforeEach(() => {\n    modelService = new PlainStoreModelService(sequelize, nodeConfig);\n    modelService.init(false, {findByPk: () => Promise.resolve({toJSON: () => 1})} as any, undefined);\n  });\n\n  it('aborts the transaction if an exporter fails', async () => {\n    const entity1Model = modelService.getModel<TestEntity>('entity1');\n    const tx = await sequelize.transaction();\n\n    (modelService as any).addExporter(entity1Model, errorExporter);\n\n    for (let i = 0; i < 5; i++) {\n      await entity1Model.set(\n        `entity1_id_0x0${i}`,\n        {\n          id: `entity1_id_0x0${i}`,\n          field1: 'set at block 1',\n        },\n        1,\n        tx\n      );\n    }\n\n    await expect(() => modelService.applyPendingChanges(1, false, tx)).rejects.toThrow('Cant export');\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/storeModel.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Injectable} from '@nestjs/common';\nimport {Sequelize, Transaction} from '@subql/x-sequelize';\nimport {NodeConfig} from '../../configure';\nimport {getLogger} from '../../logger';\nimport {exitWithError} from '../../process';\nimport {BaseStoreModelService} from './baseStoreModel.service';\nimport {CsvExporter, Exporter, isTxExporter} from './exporters';\nimport {MetadataModel} from './metadata/metadata';\nimport {METADATA_ENTITY_NAME} from './metadata/utils';\nimport {IModel} from './model';\nimport {PlainModel} from './model/model';\nimport {PlainPoiModel, POI_ENTITY_NAME} from './poi';\nimport {IStoreModelProvider} from './types';\n\nconst logger = getLogger('PlainStoreModelService');\n\n@Injectable()\nexport class PlainStoreModelService extends BaseStoreModelService<IModel<any>> implements IStoreModelProvider {\n  constructor(\n    private sequelize: Sequelize,\n    private config: NodeConfig\n  ) {\n    super();\n  }\n\n  get metadata(): MetadataModel {\n    if (!this.cachedModels[METADATA_ENTITY_NAME]) {\n      if (!this.metadataRepo) {\n        throw new Error('Metadata entity has not been set');\n      }\n      this.cachedModels[METADATA_ENTITY_NAME] = new MetadataModel(this.metadataRepo) as any;\n    }\n\n    return this.cachedModels[METADATA_ENTITY_NAME] as unknown as MetadataModel;\n  }\n\n  get poi(): PlainPoiModel | null {\n    if (!this.cachedModels[POI_ENTITY_NAME]) {\n      if (!this.poiRepo) {\n        return null;\n        // throw new Error('Poi entity has not been set on store cache');\n      }\n      this.cachedModels[POI_ENTITY_NAME] = new PlainPoiModel(this.poiRepo) as any;\n    }\n\n    return this.cachedModels[POI_ENTITY_NAME] as unknown as PlainPoiModel;\n  }\n\n  protected createModel(entityName: string): IModel<any> {\n    const model = this.sequelize.model(entityName);\n\n    const plainModel = new PlainModel(model, this.historical);\n\n    if (this.config.csvOutDir) {\n      const exporterStore = new CsvExporter(entityName, this.config.csvOutDir);\n      this.addExporter(plainModel, exporterStore);\n    }\n\n    return plainModel;\n  }\n\n  private addExporter(model: PlainModel, exporter: Exporter): void {\n    model.addExporter(exporter);\n  }\n\n  async applyPendingChanges(height: number, dataSourcesCompleted: boolean, tx: Transaction): Promise<void> {\n    try {\n      if (!tx) {\n        exitWithError(new Error('Transaction not found'), logger, 1);\n      }\n\n      // Commit all data from exporters here to make exporting and commiting atomic\n      await Promise.all(\n        this.getAllExporters().map((exporter) => (isTxExporter(exporter) ? exporter.commit() : Promise.resolve()))\n      );\n\n      await tx.commit();\n\n      if (dataSourcesCompleted) {\n        const msg = `All data sources have been processed up to block number ${height}. Exiting gracefully...`;\n        exitWithError(msg, logger, 0);\n      }\n    } catch (e) {\n      await tx.rollback();\n      throw e;\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Transaction} from '@subql/x-sequelize';\nimport {LRUCache} from 'lru-cache';\nimport {ModifiedDbModels} from '../../db/migration-service';\nimport {MetadataRepo, PoiRepo} from '../entities';\nimport {HistoricalMode} from '../types';\nimport {IMetadata} from './metadata';\nimport {BaseEntity, IModel} from './model';\nimport {IPoi} from './poi';\nimport {SetValueModel} from './setValueModel';\n\nexport type HistoricalModel = {__block_range: any};\n\nexport interface IStoreModelProvider {\n  poi: IPoi | null;\n  metadata: IMetadata;\n\n  init(historical: HistoricalMode, meta: MetadataRepo, poi?: PoiRepo): void;\n\n  getModel<T extends BaseEntity>(entity: string): IModel<T>;\n\n  applyPendingChanges(height: number, dataSourcesCompleted: boolean, tx?: Transaction): Promise<void>;\n\n  updateModels(changes: ModifiedDbModels): void;\n}\n\nexport interface ICachedModelControl {\n  isFlushable: boolean;\n  hasAssociations?: boolean;\n  flushableRecordCounter: number;\n  flush(tx: Transaction, blockHeight?: number): Promise<void>;\n  flushOperation?(i: number, tx: Transaction): Promise<void>;\n  /**\n   *\n   * @param blockHeight if present, clear data that <= ${blockHeight}\n   */\n  clear: (blockHeight?: number) => void;\n}\n\nexport type FilteredHeightRecords<T> = {\n  removeRecords: Record<string, RemoveValue>;\n  setRecords: SetData<T>;\n};\n\nexport type EntitySetData = Record<string, SetData<any>>;\n\nexport type GetValue<T> = {\n  // Null value indicates its not defined in the db\n  data: T | null;\n  // Future-proof to allow meta for clearing cache\n};\n\nexport type RemoveValue = {\n  removedAtBlock: number;\n  operationIndex: number;\n};\n\nexport type SetValue<T> = {\n  data: T;\n  startHeight: number;\n  endHeight: number | null;\n  operationIndex: number;\n  removed: boolean;\n};\n\nexport type SetData<T> = Record<string, SetValueModel<T>>;\n\nexport class GetData<T extends Record<string, unknown>> extends LRUCache<string, T, unknown> {}\n"
  },
  {
    "path": "packages/node-core/src/indexer/storeModelProvider/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {NodeConfig} from '../../configure';\nimport {StoreCacheService} from './storeCache.service';\nimport {PlainStoreModelService} from './storeModel.service';\nimport {IStoreModelProvider} from './types';\n\nexport async function cacheProviderFlushData(modelProvider: IStoreModelProvider, forceFlush?: boolean): Promise<void> {\n  if (modelProvider instanceof StoreCacheService) {\n    await modelProvider.flushData(forceFlush);\n  }\n}\nexport async function cacheProviderResetData(modelProvider: IStoreModelProvider): Promise<void> {\n  if (modelProvider instanceof StoreCacheService) {\n    await modelProvider.resetData();\n  }\n}\n\nexport function storeModelFactory(\n  nodeConfig: NodeConfig,\n  eventEmitter: EventEmitter2,\n  sequelize: Sequelize\n): IStoreModelProvider {\n  return nodeConfig.enableCache\n    ? new StoreCacheService(sequelize, nodeConfig, eventEmitter)\n    : new PlainStoreModelService(sequelize, nodeConfig);\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/test.runner.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Sequelize} from '@subql/x-sequelize';\nimport {TestRunner} from './test.runner';\n\njest.mock('@subql/x-sequelize');\n\nconst mockStoreCache = {\n  flushCache: jest.fn().mockResolvedValue(undefined),\n  metadata: {set: jest.fn()},\n};\n\ndescribe('TestRunner', () => {\n  let testRunner: TestRunner<any, any, any, any>;\n  let sequelizeMock: jest.Mocked<Sequelize>;\n  let apiServiceMock: any;\n  let storeServiceMock: any;\n  let sandboxMock: any;\n\n  beforeEach(() => {\n    sequelizeMock = new Sequelize() as any;\n    apiServiceMock = {\n      fetchBlocks: jest.fn().mockResolvedValue([{getHeader: jest.fn()}]),\n    };\n\n    storeServiceMock = {\n      setBlockHeader: jest.fn(),\n      getStore: jest.fn().mockReturnValue({}),\n      modelProvider: mockStoreCache,\n    };\n\n    sandboxMock = {\n      freeze: jest.fn(),\n    };\n\n    testRunner = new TestRunner<any, any, any, any>(\n      apiServiceMock, // apiService\n      storeServiceMock, // storeService\n      sequelizeMock,\n      {} as any, // nodeConfig\n      {} as any // indexerManager\n    );\n  });\n\n  afterEach(() => {\n    jest.clearAllMocks();\n  });\n\n  it('cleans the database after each test run', async () => {\n    const testMock = {\n      name: 'test1',\n      blockHeight: 1,\n      handler: 'handler1',\n      expectedEntities: [],\n      dependentEntities: [],\n    };\n\n    const indexBlock = jest.fn().mockResolvedValue(undefined);\n\n    await testRunner.runTest(testMock, sandboxMock, indexBlock);\n\n    expect(sequelizeMock.dropSchema).toHaveBeenCalledTimes(1);\n    expect(sequelizeMock.dropSchema).toHaveBeenCalledWith(expect.any(String), {\n      logging: false,\n      benchmark: false,\n    });\n  });\n\n  it('increments passedTests when expected and actual entity attributes match', async () => {\n    const expectedEntity = {\n      _name: 'Entity1',\n      id: '1',\n      attr: 'value',\n    };\n    const testMock = {\n      name: 'test1',\n      blockHeight: 1,\n      handler: 'handler1',\n      expectedEntities: [expectedEntity],\n      dependentEntities: [],\n    };\n\n    const indexBlock = jest.fn().mockResolvedValue(undefined);\n    storeServiceMock.getStore = () => ({\n      get: jest.fn().mockResolvedValue(expectedEntity),\n    });\n\n    const res = await testRunner.runTest(testMock, sandboxMock, indexBlock);\n    expect(res.passedTests).toBe(1);\n  });\n\n  it('increments failedTests when expected and actual entity attributes do not match', async () => {\n    const expectedEntity = {\n      _name: 'Entity1',\n      id: '1',\n      attr: 'expectedValue',\n    };\n    const actualEntity = {\n      _name: 'Entity1',\n      id: '1',\n      attr: 'actualValue',\n    };\n\n    const testMock = {\n      name: 'test1',\n      blockHeight: 1,\n      handler: 'handler1',\n      expectedEntities: [expectedEntity],\n      dependentEntities: [],\n    };\n\n    const indexBlock = jest.fn().mockResolvedValue(undefined);\n    storeServiceMock.getStore = () => ({\n      get: jest.fn().mockResolvedValue(actualEntity),\n    });\n\n    const res = await testRunner.runTest(testMock, sandboxMock, indexBlock);\n    expect(res.failedTests).toBe(1);\n  });\n\n  it('increments failedTests when indexBlock throws an error', async () => {\n    const testMock = {\n      name: 'test1',\n      blockHeight: 1,\n      handler: 'handler1',\n      expectedEntities: [],\n      dependentEntities: [],\n    };\n\n    const indexBlock = jest.fn().mockRejectedValue(new Error('Test error'));\n\n    const res = await testRunner.runTest(testMock, sandboxMock, indexBlock);\n\n    expect(res.failedTests).toBe(1);\n\n    const summary = res.failedTestSummary;\n    expect(summary?.testName).toEqual(testMock.name);\n    expect(summary?.entityId).toBeUndefined();\n    expect(summary?.entityName).toBeUndefined();\n    expect(summary?.failedAttributes[0]).toEqual(expect.stringMatching(/^Runtime Error:\\nError: Test error/));\n  });\n\n  it('gives a sufficient error for timestamps within MS of each other', async () => {\n    const expectedEntity = {\n      _name: 'Entity1',\n      id: '1',\n      timestamp: new Date(1000),\n    };\n    const actualEntity = {\n      _name: 'Entity1',\n      id: '1',\n      timestamp: new Date(1001),\n    };\n\n    const testMock = {\n      name: 'test1',\n      blockHeight: 1,\n      handler: 'handler1',\n      expectedEntities: [expectedEntity],\n      dependentEntities: [],\n    };\n\n    const indexBlock = jest.fn().mockResolvedValue(undefined);\n\n    storeServiceMock.getStore = () => ({\n      get: jest.fn().mockResolvedValue(actualEntity),\n    });\n\n    const res = await testRunner.runTest(testMock, sandboxMock, indexBlock);\n\n    expect(res.failedTests).toBe(1);\n\n    const summary = res.failedTestSummary;\n    expect(summary?.testName).toEqual(testMock.name);\n    expect(summary?.entityId).toEqual(expectedEntity.id);\n    expect(summary?.entityName).toEqual(expectedEntity._name);\n    expect(summary?.failedAttributes[0]).toEqual(\n      `\\t\\tattribute: \"timestamp\":\\n\\t\\t\\texpected: \"1970-01-01T00:00:01.000Z\"\\n\\t\\t\\tactual:   \"1970-01-01T00:00:01.001Z\"\\n`\n    );\n  });\n\n  it('increments error if a block fails to be fetched', async () => {\n    const expectedEntity = {\n      _name: 'Entity1',\n      id: '1',\n      attr: 'value',\n    };\n    const testMock = {\n      name: 'test1',\n      blockHeight: 1,\n      handler: 'handler1',\n      expectedEntities: [expectedEntity],\n      dependentEntities: [],\n    };\n\n    apiServiceMock.fetchBlocks = jest.fn().mockRejectedValue(new Error('Failed to fetch block'));\n\n    const indexBlock = jest.fn().mockResolvedValue(undefined);\n    const res = await testRunner.runTest(testMock, sandboxMock, indexBlock);\n\n    expect(res.failedTests).toBe(2);\n    expect(res.failedTestSummary?.failedAttributes[0]).toContain('Failed to fetch block');\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/test.runner.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Inject, Injectable} from '@nestjs/common';\nimport {SubqlTest} from '@subql/testing';\nimport {Sequelize} from '@subql/x-sequelize';\nimport chalk from 'chalk';\nimport {isEqual} from 'lodash';\nimport {IApi} from '../api.service';\nimport {NodeConfig} from '../configure/NodeConfig';\nimport {getLogger} from '../logger';\nimport {TestSandbox} from './sandbox';\nimport {StoreService} from './store.service';\nimport {cacheProviderFlushData} from './storeModelProvider';\nimport {IBlock, IIndexerManager} from './types';\n\nconst logger = getLogger('test-runner');\n\nexport interface FailedTestSummary {\n  testName: string;\n  entityId: string | undefined;\n  entityName: string | undefined;\n  failedAttributes: string[];\n}\n\n@Injectable()\nexport class TestRunner<A, SA, B, DS> {\n  private failedTestSummary: FailedTestSummary | undefined;\n  private passedTests = 0;\n  private failedTests = 0;\n  constructor(\n    @Inject('APIService') protected readonly apiService: IApi<A, SA, IBlock<B>[]>,\n    protected readonly storeService: StoreService,\n    protected readonly sequelize: Sequelize,\n    protected readonly nodeConfig: NodeConfig,\n    @Inject('IIndexerManager') protected readonly indexerManager: IIndexerManager<B, DS>\n  ) {}\n\n  private async fetchBlock(height: number, test: SubqlTest): Promise<IBlock<B>> {\n    try {\n      const [block] = await this.apiService.fetchBlocks([height]);\n      return block;\n    } catch (e: any) {\n      logger.warn(`Test: ${test.name} field due to fetch block error`, e);\n      this.failedTestSummary = {\n        testName: test.name,\n        entityId: undefined,\n        entityName: undefined,\n        failedAttributes: [`Fetch Block Error:\\n${e.message}`],\n      };\n\n      this.failedTests++;\n      throw e;\n    }\n  }\n\n  async runTest(\n    test: SubqlTest,\n    sandbox: TestSandbox,\n    indexBlock: (\n      block: IBlock<B>,\n      handler: string,\n      indexerManager: IIndexerManager<B, DS>,\n      apiService?: IApi<A, SA, IBlock<B>[]>\n    ) => Promise<void>\n  ): Promise<{\n    passedTests: number;\n    failedTests: number;\n    failedTestSummary: FailedTestSummary | undefined;\n  }> {\n    const schema = this.nodeConfig.dbSchema;\n\n    try {\n      // Fetch block\n      logger.debug('Fetching block');\n      const block = await this.fetchBlock(test.blockHeight, test);\n\n      await this.storeService.setBlockHeader(block.getHeader());\n      // Ensure a block height is set so that data is flushed correctly\n      await this.storeService.modelProvider.metadata.set('lastProcessedHeight', test.blockHeight - 1);\n      const store = this.storeService.getStore();\n      sandbox.freeze(store, 'store');\n\n      // Init entities\n      logger.debug('Initializing entities');\n      await Promise.all(test.dependentEntities.map((entity) => entity.save?.() ?? Promise.resolve()));\n\n      logger.debug('Running handler');\n\n      try {\n        await indexBlock(block, test.handler, this.indexerManager, this.apiService);\n        await cacheProviderFlushData(this.storeService.modelProvider, true);\n      } catch (e: any) {\n        logger.warn(`Test: ${test.name} field due to runtime error`, e);\n        this.failedTestSummary = {\n          testName: test.name,\n          entityId: undefined,\n          entityName: undefined,\n          failedAttributes: [`Runtime Error:\\n${e.stack}`],\n        };\n\n        this.failedTests++;\n        throw e;\n      }\n\n      // Check expected entities\n      logger.debug('Checking expected entities');\n\n      for (let i = 0; i < test.expectedEntities.length; i++) {\n        const expectedEntity = test.expectedEntities[i];\n        //eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        const actualEntity = await store.get(expectedEntity._name!, expectedEntity.id);\n\n        const failedAttributes: string[] = [];\n        if (!actualEntity) {\n          failedAttributes.push(`\\t\\tExpected entity was not found`);\n        } else {\n          Object.keys(actualEntity).forEach((attr) => {\n            // EntityClass has private store on it, don't need to check it.\n            if (attr === '#store') return;\n\n            const expectedAttr = (expectedEntity as Record<string, any>)[attr] ?? null;\n            const actualAttr = (actualEntity as Record<string, any>)[attr] ?? null;\n\n            if (!isEqual(expectedAttr, actualAttr)) {\n              // Converts dates into a format so that ms is visible\n              const fmtValue = (value: any) => {\n                if (value instanceof Date) {\n                  return value.toISOString();\n                }\n                return value;\n              };\n              failedAttributes.push(\n                `\\t\\tattribute: \"${attr}\":\\n\\t\\t\\texpected: \"${fmtValue(expectedAttr)}\"\\n\\t\\t\\tactual:   \"${fmtValue(\n                  actualAttr\n                )}\"\\n`\n              );\n            }\n          });\n        }\n\n        if (!failedAttributes.length) {\n          logger.info(`Entity check PASSED (Entity ID: ${expectedEntity.id})`);\n          this.passedTests++;\n        } else {\n          logger.warn(`Entity check FAILED (Entity ID: ${expectedEntity.id})`);\n          this.failedTestSummary = {\n            testName: test.name,\n            entityId: expectedEntity.id,\n            entityName: expectedEntity._name,\n            failedAttributes: failedAttributes,\n          };\n\n          this.failedTests++;\n        }\n      }\n\n      await cacheProviderFlushData(this.storeService.modelProvider, true);\n      logger.info(\n        `Test: ${test.name} completed with ${chalk.green(`${this.passedTests} passed`)} and ${chalk.red(\n          `${this.failedTests} failed`\n        )} checks`\n      );\n    } catch (e: any) {\n      this.failedTests += test.expectedEntities.length;\n      logger.warn(e, `Test ${test.name} failed to run`);\n    } finally {\n      await this.sequelize.dropSchema(`\"${schema}\"`, {\n        logging: false,\n        benchmark: false,\n      });\n    }\n\n    return {\n      passedTests: this.passedTests,\n      failedTests: this.failedTests,\n      failedTestSummary: this.failedTestSummary,\n    };\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/testing.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync, readdirSync, statSync} from 'fs';\nimport path from 'path';\nimport {Injectable} from '@nestjs/common';\nimport {SubqlTest} from '@subql/testing/interfaces';\nimport {BaseDataSource, IProjectNetworkConfig} from '@subql/types-core';\nimport chalk from 'chalk';\nimport {cloneDeep} from 'lodash';\nimport {NodeConfig} from '../configure';\nimport {getLogger} from '../logger';\nimport {SandboxOption, TestSandbox} from './sandbox';\nimport {TestRunner} from './test.runner';\nimport {ISubqueryProject, IIndexerManager, IBlock} from './types';\n\nconst logger = getLogger('subql-testing');\n\n@Injectable()\nexport abstract class TestingService<A, SA, B, DS extends BaseDataSource> {\n  private tests: Record<number, SubqlTest[]> = {};\n  private testSandboxes: TestSandbox[];\n  private failedTestsSummary: {\n    testName: string;\n    entityId?: string;\n    entityName?: string;\n    failedAttributes: string[];\n  }[] = [];\n\n  private totalTests = 0;\n  private totalPassedTests = 0;\n  private totalFailedTests = 0;\n\n  constructor(\n    protected nodeConfig: NodeConfig,\n    protected project: ISubqueryProject<IProjectNetworkConfig, DS>\n  ) {\n    const projectPath = this.project.root;\n    // find all paths to test files\n    const testFiles = this.findAllTestFiles(path.join(projectPath, 'dist'));\n\n    // import all test files\n    this.testSandboxes = testFiles.map((file) => {\n      const option: SandboxOption = {\n        root: this.project.root,\n        entry: file,\n        chainId: this.project.network.chainId,\n      };\n\n      return new TestSandbox(option, this.nodeConfig);\n    });\n\n    logger.info(`Found ${this.testSandboxes.length} test files`);\n\n    this.tests = this.testSandboxes.map((sandbox) => sandbox.getTests());\n  }\n\n  abstract getTestRunner(): Promise<[close: () => Promise<void>, runner: TestRunner<A, SA, B, DS>]>; // TestRunner will be create with a new app instance\n\n  async indexBlock(block: IBlock<B>, handler: string, indexerManager: IIndexerManager<B, DS>): Promise<void> {\n    await indexerManager.indexBlock(block, this.getDsWithHandler(handler));\n  }\n\n  async run(): Promise<void> {\n    if (Object.keys(this.tests).length !== 0) {\n      for (const sandboxIndex in this.tests) {\n        const tests = this.tests[sandboxIndex];\n        this.totalTests += tests.length;\n        for (const test of tests) {\n          await this.runTest(test, this.testSandboxes[sandboxIndex]);\n        }\n      }\n      this.logFailedTestsSummary();\n    } else {\n      const docsUrl = 'https://academy.subquery.network/build/testing.html#the-subquery-testing-framework';\n      logger.warn(\n        `No tests found. Please refer to the documentation for guidance on creating and running tests: ${docsUrl}`\n      );\n    }\n  }\n\n  private findAllTestFiles(dirPath: string): string[] {\n    const files: string[] = [];\n\n    if (!existsSync(dirPath)) {\n      return [];\n    }\n\n    readdirSync(dirPath).forEach((file) => {\n      const filePath = path.join(dirPath, file);\n      const stat = statSync(filePath);\n\n      if (stat.isDirectory()) {\n        files.push(...this.findAllTestFiles(filePath));\n      } else if (filePath.endsWith('.test.js')) {\n        files.push(filePath);\n      }\n    });\n\n    return files;\n  }\n\n  private async runTest(test: SubqlTest, sandbox: TestSandbox) {\n    logger.info(`Starting test: ${test.name}`);\n\n    const [close, testRunner] = await this.getTestRunner();\n\n    try {\n      const {failedTestSummary, failedTests, passedTests} = await testRunner.runTest(\n        test,\n        sandbox,\n        this.indexBlock.bind(this)\n      );\n\n      if (failedTests > 0) {\n        this.totalFailedTests++;\n      } else {\n        this.totalPassedTests++;\n      }\n\n      if (failedTestSummary) {\n        this.failedTestsSummary.push(failedTestSummary);\n      }\n    } finally {\n      await close();\n    }\n  }\n\n  protected getDsWithHandler(handler: string): DS[] {\n    const dataSources: DS[] = [];\n\n    for (const ds of this.project.dataSources) {\n      // Create a deep copy of the ds object\n      const dsCopy = cloneDeep(ds);\n\n      const mapping = dsCopy.mapping;\n      const handlers = mapping.handlers;\n\n      for (let i = 0; i < handlers.length; i++) {\n        if (handlers[i].handler === handler) {\n          mapping.handlers = [handlers[i] as any];\n\n          dataSources.push(ds);\n        }\n      }\n    }\n\n    if (!dataSources.length) {\n      throw new Error(\n        `Unable to find any datasources that match handler \"${handler}\". Please check your project.yaml file.`\n      );\n    }\n\n    return dataSources;\n  }\n\n  private logFailedTestsSummary() {\n    if (this.failedTestsSummary.length > 0) {\n      logger.warn(chalk.bold.underline.yellow('Failed tests summary:'));\n      for (const failedTest of this.failedTestsSummary) {\n        let testDetails =\n          failedTest.entityName && failedTest.entityId\n            ? chalk.bold.red(`\\n* ${failedTest.testName}\\n\\tEntity ${failedTest.entityName}: ${failedTest.entityId}\\n`)\n            : chalk.bold.red(`\\n* ${failedTest.testName}\\n`);\n        for (const attr of failedTest.failedAttributes) {\n          testDetails += chalk.red(attr);\n        }\n        logger.warn(testDetails);\n      }\n    }\n\n    logger.info(chalk.bold.white(`Total tests: ${this.totalTests}`));\n    logger.info(chalk.bold.green(`Passing tests: ${this.totalPassedTests}`));\n    logger.info(chalk.bold.red(`Failing tests: ${this.totalFailedTests}`));\n\n    if (this.totalFailedTests > 0) {\n      process.exit(1);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n  BaseDataSource,\n  BaseTemplateDataSource,\n  CommonSubqueryProject,\n  Entity,\n  IProjectNetworkConfig,\n} from '@subql/types-core';\nimport {GraphQLSchema} from 'graphql';\nimport {BlockHeightMap} from '../utils/blockHeightMap';\nimport {ProcessBlockResponse} from './blockDispatcher';\n\n/**\n * Indicates the mode of historical indexing\n * false: No historical indexing\n * height: Indexing is based on block height\n * timestamp: Indexing is based on the unix timestamp in MS of the block\n */\nexport type HistoricalMode = false | 'height' | 'timestamp';\n\nexport interface ISubqueryProject<\n  N extends IProjectNetworkConfig = IProjectNetworkConfig,\n  DS extends BaseDataSource = BaseDataSource,\n  T extends BaseTemplateDataSource<DS> = BaseTemplateDataSource<DS>,\n  C = unknown,\n> extends Omit<CommonSubqueryProject<N, DS, T>, 'schema' | 'version' | 'name' | 'specVersion' | 'description'> {\n  readonly schema: GraphQLSchema;\n  applyCronTimestamps: (getBlockTimestamp: (height: number) => Promise<Date>) => Promise<void>;\n  readonly id: string;\n  chainTypes?: C; // The chainTypes after loaded\n  readonly root: string;\n}\n\nexport enum OperationType {\n  Set = 'Set',\n  Remove = 'Remove',\n}\n\nexport type OperationEntity = {\n  operation: OperationType;\n  entityType: string;\n  data: Entity | string;\n};\n\nexport interface IIndexerManager<B, DS> {\n  indexBlock(block: IBlock<B>, datasources: DS[], ...args: any[]): Promise<ProcessBlockResponse>;\n}\n\nexport interface IProjectService<DS> {\n  blockOffset: number | undefined;\n  startHeight: number;\n  bypassBlocks: BypassBlocks;\n  reindex(lastCorrectHeader: Header): Promise<void>;\n  /**\n   * This is used everywhere but within indexing blocks, see comment on getDataSources for more info\n   * */\n  getAllDataSources(): DS[];\n  /**\n   * This gets used when indexing blocks, it needs to be async to ensure dynamicDs is updated within workers\n   *\n   * */\n  getDataSources(blockHeight?: number): Promise<DS[]>;\n  getStartBlockFromDataSources(): number;\n  getDataSourcesMap(): BlockHeightMap<DS[]>;\n  hasDataSourcesAfterHeight(height: number): boolean;\n}\n\nexport interface IBlock<B = any> {\n  getHeader(): Header;\n  block: B;\n}\n\nexport type Header = {\n  blockHeight: number;\n  blockHash: string;\n  parentHash: string | undefined;\n  timestamp: Date;\n};\n\nexport type BypassBlocks = (number | `${number}-${number}`)[];\n"
  },
  {
    "path": "packages/node-core/src/indexer/unfinalizedBlocks.service.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {IBlockchainService} from '../blockchain.service';\nimport {Header, IBlock} from '../indexer';\nimport {StoreCacheService, CacheMetadataModel} from './storeModelProvider';\nimport {\n  METADATA_LAST_FINALIZED_PROCESSED_KEY,\n  METADATA_UNFINALIZED_BLOCKS_KEY,\n  UnfinalizedBlocksService,\n} from './unfinalizedBlocks.service';\n\n/* Notes:\n * Block hashes all have the format '0xabc' + block number\n * If they are forked they will have an `f` at the end\n */\nlet mockBestHeight = 150;\n\nconst BlockchainService = {\n  async getFinalizedHeader(): Promise<Header> {\n    return Promise.resolve({\n      blockHeight: 91,\n      blockHash: `0xabc91f`,\n      parentHash: `0xabc90f`,\n      timestamp: new Date(),\n    });\n  },\n  async getHeaderForHash(hash: string): Promise<Header> {\n    const num = Number(hash.toString().replace('0xabc', '').replace('f', ''));\n    return Promise.resolve({\n      blockHeight: num,\n      blockHash: hash,\n      parentHash: `0xabc${num - 1}f`,\n      timestamp: new Date(),\n    });\n  },\n  async getHeaderForHeight(height: number): Promise<Header> {\n    return Promise.resolve({\n      blockHeight: height,\n      blockHash: `0xabc${height}f`,\n      parentHash: `0xabc${height - 1}f`,\n      timestamp: new Date(),\n    });\n  },\n  // eslint-disable-next-line @typescript-eslint/require-await\n  async getBestHeight(): Promise<number> {\n    return mockBestHeight;\n  },\n} as IBlockchainService;\n\nfunction getMockMetadata(): any {\n  const data: Record<string, any> = {};\n  return {\n    upsert: ({key, value}: any) => (data[key] = value),\n    findOne: ({where: {key}}: any) => ({value: data[key]}),\n    findByPk: (key: string) => data[key],\n    find: (key: string) => data[key],\n  } as any;\n}\n\nfunction mockStoreCache(): StoreCacheService {\n  return {\n    metadata: new CacheMetadataModel(getMockMetadata(), 'height'),\n  } as StoreCacheService;\n}\n\nfunction mockBlock(height: number, hash: string, parentHash?: string): IBlock<any> {\n  return {\n    getHeader: () => {\n      return {blockHeight: height, parentHash: parentHash ?? '', blockHash: hash, timestamp: new Date()};\n    },\n    block: {\n      header: {\n        blockHeight: height,\n        blockHash: hash,\n        parentHash: parentHash ?? '',\n      },\n    },\n  };\n}\n\ndescribe('UnfinalizedBlocksService', () => {\n  let unfinalizedBlocksService: UnfinalizedBlocksService;\n\n  beforeEach(async () => {\n    mockBestHeight = 150;\n    unfinalizedBlocksService = new UnfinalizedBlocksService(\n      {unfinalizedBlocks: true} as any,\n      mockStoreCache(),\n      BlockchainService\n    );\n\n    await unfinalizedBlocksService.init(() => Promise.resolve());\n  });\n\n  afterEach(() => {\n    (unfinalizedBlocksService as unknown as any)._unfinalizedBlocks = {};\n  });\n\n  it('can set finalized block', () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    expect((unfinalizedBlocksService as any).finalizedBlockNumber).toBe(110);\n  });\n\n  it('cant set a lower finalized block', () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(99, '0x1234').block.header);\n\n    expect((unfinalizedBlocksService as any).finalizedBlockNumber).toBe(110);\n  });\n\n  it('keeps track of unfinalized blocks', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(111, '0xabc111'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(112, '0xabc112'));\n\n    expect((unfinalizedBlocksService as any).unfinalizedBlocks).toMatchObject([\n      mockBlock(111, '0xabc111').block.header,\n      mockBlock(112, '0xabc112').block.header,\n    ]);\n  });\n\n  it('doesnt keep track of finalized blocks', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(120, '0xabc120').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(111, '0xabc111'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(112, '0xabc112'));\n\n    expect((unfinalizedBlocksService as any).unfinalizedBlocks).toEqual([]);\n  });\n\n  it('can process unfinalized blocks', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(111, '0xabc111'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(112, '0xabc112'));\n\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(112, '0xabc112', '0xabc111').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(113, '0xabc113'));\n\n    expect((unfinalizedBlocksService as any).unfinalizedBlocks).toMatchObject([\n      mockBlock(113, '0xabc113').block.header,\n    ]);\n  });\n\n  it('can handle a fork and rewind to the last finalized height', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(111, '0xabc111'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(112, '0xabc112'));\n\n    // Forked block\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(112, '0xabc112f', '0xabc111').block.header);\n\n    const res = await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(113, '0xabc113'));\n\n    // Last valid block\n    expect(res).toMatchObject({blockHash: '0xabc111', blockHeight: 111, parentHash: ''});\n\n    // After this the call stack is something like:\n    // indexerManager -> blockDispatcher -> project -> project -> reindex -> blockDispatcher.resetUnfinalizedBlocks\n    await unfinalizedBlocksService.resetUnfinalizedBlocks();\n\n    expect((unfinalizedBlocksService as any).unfinalizedBlocks).toEqual([]);\n  });\n\n  it('can handle a fork when some unfinalized blocks are invalid', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(111, '0xabc111'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(112, '0xabc112'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(113, '0xabc113'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(114, '0xabc114'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(115, '0xabc115'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(116, '0xabc116'));\n\n    // Forked block\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(113, '0xabc113f', '0xabc112').block.header);\n\n    const res = await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(117, '0xabc117'));\n\n    // Last valid block\n    expect(res).toMatchObject({blockHash: '0xabc112', blockHeight: 112, parentHash: ''});\n  });\n\n  it('can handle a fork when latest unfinalized block has different parent', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(111, '0xabc111', '0xabcd'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(112, '0xabc112', '0xabc111'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(113, '0xabc113', '0xabc112'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(114, '0xabc114', '0xabc113'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(115, '0xabc115', '0xabc114'));\n    const res = await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(116, '0xabc116', '0xabc115f'));\n\n    // Last valid block\n    expect(res).toMatchObject({blockHash: '0xabc110f', blockHeight: 110, parentHash: '0xabc109f'});\n  });\n\n  it('can handle a fork when all unfinalized blocks are invalid', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(111, '0xabc111'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(112, '0xabc112'));\n\n    // Forked block\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(111, '0xabc111f', '0xabc110').block.header);\n\n    const res = await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(113, '0xabc113'));\n\n    // Last valid block\n    expect(res).toMatchObject({blockHash: '0xabc110f', blockHeight: 110, parentHash: '0xabc109f'});\n  });\n\n  it('can handle a fork and when unfinalized blocks < finalized head', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(111, '0xabc111'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(112, '0xabc112'));\n\n    // Forked block\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(120, '0xabc120f', '0xabc119f').block.header);\n\n    const res = await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(113, '0xabc113'));\n\n    // Last valid block\n    expect(res).toMatchObject({blockHash: '0xabc110f', blockHeight: 110, parentHash: '0xabc109f'});\n  });\n\n  it('can handle a fork and when unfinalized blocks < finalized head 2', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block);\n\n    (unfinalizedBlocksService as any).lastCheckedBlockHeight = 110;\n\n    await (unfinalizedBlocksService as any).registerUnfinalizedBlock(\n      mockBlock(111, '0xabc111', null as any).block.header\n    );\n    await (unfinalizedBlocksService as any).registerUnfinalizedBlock(\n      mockBlock(112, '0xabc112', null as any).block.header\n    );\n\n    // Forked block\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(120, '0xabc120f', '0xabc119f').block.header);\n\n    const res = await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(113, '0xabc113'));\n\n    // Last valid block\n    expect(res).toMatchObject({blockHash: '0xabc110f', blockHeight: 110, parentHash: '0xabc109f'});\n  });\n\n  it('can handle a fork and when unfinalized blocks < finalized head with a large difference', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(111, '0xabc111'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(112, '0xabc112'));\n\n    // Forked block\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(1200, '0xabc1200f', '0xabc1199f').block.header);\n\n    const res = await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(113, '0xabc113'));\n\n    // Last valid block\n    expect(res).toMatchObject({blockHash: '0xabc110f', blockHeight: 110, parentHash: '0xabc109f'});\n  });\n\n  it('discards unfinalized blocks older than best height window before backfill', async () => {\n    unfinalizedBlocksService.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(201, '0xabc201'));\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(202, '0xabc202'));\n\n    expect((unfinalizedBlocksService as any).unfinalizedBlocks).toHaveLength(2);\n\n    mockBestHeight = 800;\n\n    await unfinalizedBlocksService.processUnfinalizedBlocks(mockBlock(650, '0xabc650'));\n\n    expect((unfinalizedBlocksService as any).unfinalizedBlocks).toMatchObject([\n      mockBlock(650, '0xabc650').block.header,\n    ]);\n  });\n\n  it('can rewind any unfinalized blocks when restarted and unfinalized blocks is disabled', async () => {\n    const storeCache = new StoreCacheService(null as any, {storeCacheThreshold: 300} as any, new EventEmitter2());\n\n    storeCache.init('height', {} as any, undefined);\n\n    await storeCache.metadata.set(\n      METADATA_UNFINALIZED_BLOCKS_KEY,\n      JSON.stringify(<Header[]>[\n        {blockHeight: 90, blockHash: '0xabcd'},\n        {blockHeight: 91, blockHash: '0xabc91'},\n        {blockHeight: 92, blockHash: '0xabc92'},\n      ])\n    );\n    await storeCache.metadata.set(METADATA_LAST_FINALIZED_PROCESSED_KEY, 90);\n    const unfinalizedBlocksService2 = new UnfinalizedBlocksService(\n      {unfinalizedBlocks: false} as any,\n      storeCache,\n      BlockchainService\n    );\n\n    const reindex = jest.fn().mockReturnValue(Promise.resolve());\n\n    await unfinalizedBlocksService2.init(reindex);\n\n    expect(reindex).toHaveBeenCalledWith(\n      expect.objectContaining({blockHash: '0xabc90f', blockHeight: 90, parentHash: '0xabc89f'})\n    );\n    expect((unfinalizedBlocksService2 as any).lastCheckedBlockHeight).toBe(90);\n  });\n\n  describe('backfill functionality', () => {\n    it('backfills small gap when non-sequential block is registered', async () => {\n      // Create a custom blockchain service that returns proper parentHash chain\n      const customBlockchainService = {\n        ...BlockchainService,\n        async getHeaderForHeight(height: number): Promise<Header> {\n          return Promise.resolve({\n            blockHeight: height,\n            blockHash: `0xabc${height}`,\n            parentHash: `0xabc${height - 1}`,\n            timestamp: new Date(),\n          });\n        },\n      } as IBlockchainService;\n\n      const service = new UnfinalizedBlocksService(\n        {unfinalizedBlocks: true} as any,\n        mockStoreCache(),\n        customBlockchainService\n      );\n\n      await service.init(() => Promise.resolve());\n      service.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n      // Register block 111 with correct parentHash\n      await service.processUnfinalizedBlocks(mockBlock(111, '0xabc111', '0xabc110'));\n\n      // Register block 115 (gap of 3 blocks: 112, 113, 114)\n      await service.processUnfinalizedBlocks(mockBlock(115, '0xabc115', '0xabc114'));\n\n      // Verify all blocks are present including backfilled ones\n      const unfinalizedBlocks = (service as any).unfinalizedBlocks;\n      expect(unfinalizedBlocks.length).toBe(5);\n      expect(unfinalizedBlocks[0].blockHeight).toBe(111);\n      expect(unfinalizedBlocks[1].blockHeight).toBe(112);\n      expect(unfinalizedBlocks[2].blockHeight).toBe(113);\n      expect(unfinalizedBlocks[3].blockHeight).toBe(114);\n      expect(unfinalizedBlocks[4].blockHeight).toBe(115);\n    });\n\n    it('resets chain when gap exceeds UNFINALIZED_THRESHOLD', async () => {\n      // UNFINALIZED_THRESHOLD is 200\n      const service = new UnfinalizedBlocksService(\n        {unfinalizedBlocks: true} as any,\n        mockStoreCache(),\n        BlockchainService\n      );\n\n      await service.init(() => Promise.resolve());\n      service.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n      // Register block 111\n      await service.processUnfinalizedBlocks(mockBlock(111, '0xabc111'));\n\n      // Register block 500 (gap of 389 blocks, exceeds threshold of 200)\n      // safeHeight = 500 - 200 = 300\n      // lastUnfinalizedHeight (111) < 300, so chain should be reset\n      await service.processUnfinalizedBlocks(mockBlock(500, '0xabc500'));\n\n      // Verify only block 500 is present (chain was reset)\n      const unfinalizedBlocks = (service as any).unfinalizedBlocks;\n      expect(unfinalizedBlocks.length).toBe(1);\n      expect(unfinalizedBlocks[0].blockHeight).toBe(500);\n    });\n\n    it('backfills when gap is within UNFINALIZED_THRESHOLD', async () => {\n      const customBlockchainService = {\n        ...BlockchainService,\n        async getHeaderForHeight(height: number): Promise<Header> {\n          return Promise.resolve({\n            blockHeight: height,\n            blockHash: `0xabc${height}`,\n            parentHash: `0xabc${height - 1}`,\n            timestamp: new Date(),\n          });\n        },\n      } as IBlockchainService;\n\n      const service = new UnfinalizedBlocksService(\n        {unfinalizedBlocks: true} as any,\n        mockStoreCache(),\n        customBlockchainService\n      );\n\n      await service.init(() => Promise.resolve());\n      service.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n      // Register block 111\n      await service.processUnfinalizedBlocks(mockBlock(111, '0xabc111', '0xabc110'));\n\n      // Register block 250 (gap of 139 blocks, within threshold of 200)\n      // safeHeight = 250 - 200 = 50\n      // lastUnfinalizedHeight (111) > 50, so backfill is needed\n      await service.processUnfinalizedBlocks(mockBlock(250, '0xabc250', '0xabc249'));\n\n      // Verify all blocks are present including backfilled ones\n      const unfinalizedBlocks = (service as any).unfinalizedBlocks;\n      expect(unfinalizedBlocks.length).toBe(140); // 111 + 138 backfilled + 250\n      expect(unfinalizedBlocks[0].blockHeight).toBe(111);\n      expect(unfinalizedBlocks[139].blockHeight).toBe(250);\n    });\n\n    it('detects fork during backfill when parentHash chain is broken', async () => {\n      // Create a blockchain service that returns wrong parentHash for block 113\n      const customBlockchainService = {\n        ...BlockchainService,\n        async getHeaderForHeight(height: number): Promise<Header> {\n          // Return broken parentHash for block 113\n          if (height === 113) {\n            return Promise.resolve({\n              blockHeight: height,\n              blockHash: `0xabc${height}`,\n              parentHash: '0xwrong',\n              timestamp: new Date(),\n            });\n          }\n          return Promise.resolve({\n            blockHeight: height,\n            blockHash: `0xabc${height}`,\n            parentHash: `0xabc${height - 1}`,\n            timestamp: new Date(),\n          });\n        },\n      } as IBlockchainService;\n\n      const service = new UnfinalizedBlocksService(\n        {unfinalizedBlocks: true} as any,\n        mockStoreCache(),\n        customBlockchainService\n      );\n\n      await service.init(() => Promise.resolve());\n      service.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n      // Register block 111\n      await service.processUnfinalizedBlocks(mockBlock(111, '0xabc111', '0xabc110'));\n\n      // Register block 115 - should detect fork during backfill\n      const result = await service.processUnfinalizedBlocks(mockBlock(115, '0xabc115', '0xabc114'));\n\n      // Should return the finalized block (110) since all unfinalized blocks are > finalized height\n      // and getLastCorrectFinalizedBlock falls back to finalizedHeader\n      expect(result).toBeDefined();\n      expect(result?.blockHeight).toBe(110);\n    });\n\n    it('detects fork after backfill when new block has wrong parentHash', async () => {\n      // Create a blockchain service that returns proper chain for backfill\n      const customBlockchainService = {\n        ...BlockchainService,\n        async getHeaderForHeight(height: number): Promise<Header> {\n          return Promise.resolve({\n            blockHeight: height,\n            blockHash: `0xabc${height}`,\n            parentHash: `0xabc${height - 1}`,\n            timestamp: new Date(),\n          });\n        },\n      } as IBlockchainService;\n\n      const service = new UnfinalizedBlocksService(\n        {unfinalizedBlocks: true} as any,\n        mockStoreCache(),\n        customBlockchainService\n      );\n\n      await service.init(() => Promise.resolve());\n      service.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n      // Register block 111\n      await service.processUnfinalizedBlocks(mockBlock(111, '0xabc111', '0xabc110'));\n\n      // Register block 115 with wrong parentHash (should connect to 0xabc114)\n      const result = await service.processUnfinalizedBlocks(mockBlock(115, '0xabc115', '0xwrong'));\n\n      // Should return the finalized block (110) since all unfinalized blocks are > finalized height\n      // and getLastCorrectFinalizedBlock falls back to finalizedHeader\n      expect(result).toBeDefined();\n      expect(result?.blockHeight).toBe(110);\n    });\n\n    it('throws error when block fetch fails during backfill', async () => {\n      // Create a blockchain service that fails to fetch block 113\n      const customBlockchainService = {\n        ...BlockchainService,\n        async getHeaderForHeight(height: number): Promise<Header> {\n          if (height === 113) {\n            throw new Error('Network error');\n          }\n          return Promise.resolve({\n            blockHeight: height,\n            blockHash: `0xabc${height}`,\n            parentHash: `0xabc${height - 1}`,\n            timestamp: new Date(),\n          });\n        },\n      } as IBlockchainService;\n\n      const service = new UnfinalizedBlocksService(\n        {unfinalizedBlocks: true} as any,\n        mockStoreCache(),\n        customBlockchainService\n      );\n\n      await service.init(() => Promise.resolve());\n      service.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n      // Register block 111\n      await service.processUnfinalizedBlocks(mockBlock(111, '0xabc111', '0xabc110'));\n\n      // Register block 115 - should throw during backfill\n      await expect(service.processUnfinalizedBlocks(mockBlock(115, '0xabc115', '0xabc114'))).rejects.toThrow(\n        'Failed to backfill missing unfinalized block at height 113'\n      );\n    });\n\n    it('continues chain correctly after successful backfill', async () => {\n      const customBlockchainService = {\n        ...BlockchainService,\n        async getHeaderForHeight(height: number): Promise<Header> {\n          return Promise.resolve({\n            blockHeight: height,\n            blockHash: `0xabc${height}`,\n            parentHash: `0xabc${height - 1}`,\n            timestamp: new Date(),\n          });\n        },\n      } as IBlockchainService;\n\n      const service = new UnfinalizedBlocksService(\n        {unfinalizedBlocks: true} as any,\n        mockStoreCache(),\n        customBlockchainService\n      );\n\n      await service.init(() => Promise.resolve());\n      service.registerFinalizedBlock(mockBlock(110, '0xabcd').block.header);\n\n      // Register blocks with gaps and then continue with sequential\n      await service.processUnfinalizedBlocks(mockBlock(111, '0xabc111', '0xabc110'));\n      await service.processUnfinalizedBlocks(mockBlock(115, '0xabc115', '0xabc114'));\n      await service.processUnfinalizedBlocks(mockBlock(116, '0xabc116', '0xabc115'));\n      await service.processUnfinalizedBlocks(mockBlock(117, '0xabc117', '0xabc116'));\n\n      const unfinalizedBlocks = (service as any).unfinalizedBlocks;\n      expect(unfinalizedBlocks.length).toBe(7);\n      expect(unfinalizedBlocks[0].blockHeight).toBe(111);\n      expect(unfinalizedBlocks[6].blockHeight).toBe(117);\n\n      // Verify chain connectivity\n      for (let i = 1; i < unfinalizedBlocks.length; i++) {\n        expect(unfinalizedBlocks[i].parentHash).toBe(unfinalizedBlocks[i - 1].blockHash);\n      }\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/unfinalizedBlocks.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Inject, Injectable} from '@nestjs/common';\nimport {OnEvent} from '@nestjs/event-emitter';\nimport {Transaction} from '@subql/x-sequelize';\nimport {isEqual, last} from 'lodash';\nimport {IBlockchainService} from '../blockchain.service';\nimport {NodeConfig} from '../configure';\nimport {IndexerEvent} from '../events';\nimport {Header, IBlock} from '../indexer/types';\nimport {getLogger} from '../logger';\nimport {mainThreadOnly} from '../utils';\nimport {ProofOfIndex} from './entities';\nimport {PoiBlock} from './poi';\nimport {IStoreModelProvider} from './storeModelProvider';\nimport util from 'node:util';\n\nconst logger = getLogger('UnfinalizedBlocks');\n\nexport const METADATA_UNFINALIZED_BLOCKS_KEY = 'unfinalizedBlocks';\nexport const METADATA_LAST_FINALIZED_PROCESSED_KEY = 'lastFinalizedVerifiedHeight';\n\nexport const POI_NOT_ENABLED_ERROR_MESSAGE = 'Poi is not enabled, unable to check for last finalized block';\n\nconst UNFINALIZED_THRESHOLD = 200;\n\ntype UnfinalizedBlocks = Header[];\n\nexport interface IUnfinalizedBlocksService<B> extends IUnfinalizedBlocksServiceUtil {\n  init(reindex: (targetHeader: Header) => Promise<void>): Promise<Header | undefined>;\n  processUnfinalizedBlocks(block: IBlock<B> | undefined): Promise<Header | undefined>;\n  processUnfinalizedBlockHeader(header: Header | undefined): Promise<Header | undefined>;\n  resetUnfinalizedBlocks(tx?: Transaction): Promise<void>;\n  resetLastFinalizedVerifiedHeight(tx?: Transaction): Promise<void>;\n  getMetadataUnfinalizedBlocks(): Promise<UnfinalizedBlocks>;\n}\n\nexport interface IUnfinalizedBlocksServiceUtil {\n  registerFinalizedBlock(header: Header): void;\n}\n\n@Injectable()\nexport class UnfinalizedBlocksService<B = any> implements IUnfinalizedBlocksService<B> {\n  private _unfinalizedBlocks?: UnfinalizedBlocks;\n  private _finalizedHeader?: Header;\n  protected lastCheckedBlockHeight?: number;\n  private _latestBestHeight?: number;\n\n  @mainThreadOnly()\n  private blockToHeader(block: IBlock<B>): Header {\n    return block.getHeader();\n  }\n\n  protected get unfinalizedBlocks(): UnfinalizedBlocks {\n    assert(this._unfinalizedBlocks !== undefined, new Error('Unfinalized blocks service has not been initialized'));\n    return this._unfinalizedBlocks;\n  }\n\n  protected get finalizedHeader(): Header {\n    assert(this._finalizedHeader !== undefined, new Error('Unfinalized blocks service has not been initialized'));\n    return this._finalizedHeader;\n  }\n\n  constructor(\n    protected readonly nodeConfig: NodeConfig,\n    @Inject('IStoreModelProvider') protected readonly storeModelProvider: IStoreModelProvider,\n    @Inject('IBlockchainService') protected blockchainService: IBlockchainService\n  ) {}\n\n  async init(reindex: (tagetHeader: Header) => Promise<void>): Promise<Header | undefined> {\n    logger.info(`Unfinalized blocks is ${this.nodeConfig.unfinalizedBlocks ? 'enabled' : 'disabled'}`);\n\n    this._unfinalizedBlocks = await this.getMetadataUnfinalizedBlocks();\n    this.lastCheckedBlockHeight = await this.getLastFinalizedVerifiedHeight();\n    this._finalizedHeader = await this.blockchainService.getFinalizedHeader();\n\n    if (this.unfinalizedBlocks.length) {\n      logger.info('Processing unfinalized blocks');\n      // Validate any previously unfinalized blocks\n\n      const rewindHeight = await this.processUnfinalizedBlockHeader();\n      if (rewindHeight !== undefined) {\n        logger.info(\n          `Found un-finalized blocks from previous indexing but unverified, rolling back to last finalized block rewindHeight=${util.inspect(\n            rewindHeight,\n            {depth: 6, colors: false}\n          )}`\n        );\n        await reindex(rewindHeight);\n        logger.info(`Successful rewind to block ${rewindHeight.blockHeight}!`);\n        return rewindHeight;\n      } else {\n        await this.resetUnfinalizedBlocks();\n        await this.resetLastFinalizedVerifiedHeight();\n      }\n    }\n  }\n\n  private get finalizedBlockNumber(): number {\n    return this.finalizedHeader.blockHeight;\n  }\n\n  // If not for workers this could be private\n  async processUnfinalizedBlockHeader(header?: Header): Promise<Header | undefined> {\n    let forkedHeader;\n    if (header) {\n      forkedHeader = await this.registerUnfinalizedBlock(header);\n    }\n    if (!forkedHeader) {\n      forkedHeader = await this.hasForked();\n    }\n\n    if (!forkedHeader) {\n      // Remove blocks that are now confirmed finalized\n      await this.deleteFinalizedBlock();\n    } else {\n      // Get the last unfinalized block that is now finalized\n      return this.getLastCorrectFinalizedBlock(forkedHeader);\n    }\n\n    return;\n  }\n\n  async processUnfinalizedBlocks(block: IBlock<B>): Promise<Header | undefined> {\n    return this.processUnfinalizedBlockHeader(this.blockToHeader(block));\n  }\n\n  registerFinalizedBlock(header: Header): void {\n    if (this.finalizedHeader && this.finalizedBlockNumber >= header.blockHeight) {\n      return;\n    }\n    this._finalizedHeader = header;\n  }\n\n  @OnEvent(IndexerEvent.BlockBest)\n  updateBestHeight(payload: {height: number}): void {\n    this._latestBestHeight = payload.height;\n  }\n\n  private async registerUnfinalizedBlock(header: Header): Promise<Header | undefined> {\n    if (header.blockHeight <= this.finalizedBlockNumber) return;\n\n    if (this._latestBestHeight === undefined) {\n      this._latestBestHeight = await this.blockchainService.getBestHeight();\n    }\n\n    const bestHeight = Math.max(this._latestBestHeight, header.blockHeight);\n    const safeHeight = Math.max(bestHeight - UNFINALIZED_THRESHOLD, 0);\n\n    const currentBlocks = this.unfinalizedBlocks;\n    if (currentBlocks.length) {\n      const filteredBlocks = currentBlocks.filter(({blockHeight}) => blockHeight >= safeHeight);\n      if (filteredBlocks.length !== currentBlocks.length) {\n        logger.info(\n          `Dropping ${currentBlocks.length - filteredBlocks.length} unfinalized blocks below safe height ${safeHeight}`\n        );\n        this._unfinalizedBlocks = filteredBlocks;\n      }\n    }\n\n    const lastUnfinalized = last(this.unfinalizedBlocks);\n    const lastUnfinalizedHeight = lastUnfinalized?.blockHeight;\n\n    // If this is the first unfinalized block or it's sequential, just add it\n    if (lastUnfinalizedHeight === undefined || lastUnfinalizedHeight + 1 === header.blockHeight) {\n      this.unfinalizedBlocks.push(header);\n      if (lastUnfinalized && header.parentHash && lastUnfinalized.blockHash !== header.parentHash) {\n        return header;\n      }\n      await this.saveUnfinalizedBlocks(this.unfinalizedBlocks);\n      return;\n    }\n\n    // Calculate gap start, only backfill from safeHeight onwards\n    const gapStart = Math.max(lastUnfinalizedHeight + 1, safeHeight);\n    const gapEnd = header.blockHeight - 1;\n\n    // If there's still a gap to backfill\n    if (gapStart <= gapEnd) {\n      const gapSize = gapEnd - gapStart + 1;\n      logger.info(`Backfilling missing unfinalized blocks from ${gapStart} to ${gapEnd} (${gapSize} blocks)`);\n\n      // Backfill missing blocks\n      const backfillResult = await this.backfillBlocks(gapStart, gapEnd, header);\n\n      // Add the original header after successful backfill\n      // Note: We push even if fork was detected. The in-memory state will be reset\n      // when the caller processes the fork and triggers a reindex.\n      this.unfinalizedBlocks.push(header);\n\n      if (backfillResult.forkDetected) {\n        return backfillResult.forkHeader;\n      }\n    } else {\n      // No gap to backfill, just add the new header\n      this.unfinalizedBlocks.push(header);\n    }\n\n    await this.saveUnfinalizedBlocks(this.unfinalizedBlocks);\n    return;\n  }\n\n  /**\n   * Backfills missing blocks between the last unfinalized block and a new block.\n   * Validates parentHash chain during backfill to detect forks.\n   *\n   * @param startHeight - The first missing block height\n   * @param endHeight - The last missing block height\n   * @param nextHeader - The next header that triggered backfill (for validation)\n   * @returns Object indicating if fork was detected and the fork header if so\n   */\n  private async backfillBlocks(\n    startHeight: number,\n    endHeight: number,\n    nextHeader: Header\n  ): Promise<{forkDetected: boolean; forkHeader?: Header}> {\n    // Fetch and validate each missing block\n    for (let height = startHeight; height <= endHeight; height++) {\n      try {\n        const header = await this.blockchainService.getHeaderForHeight(height);\n\n        // Validate parentHash chain\n        const previousHeader = last(this.unfinalizedBlocks);\n\n        if (previousHeader && header.parentHash !== previousHeader.blockHash) {\n          logger.warn(\n            `Fork detected during backfill at height ${height}. ` +\n              `Expected parentHash: ${previousHeader.blockHash}, ` +\n              `Got: ${header.parentHash}`\n          );\n          // Return the previous header (last valid block before the fork)\n          return {forkDetected: true, forkHeader: previousHeader};\n        }\n\n        this.unfinalizedBlocks.push(header);\n      } catch (e: any) {\n        logger.error(`Failed to fetch block ${height} during backfill: ${e.message}`);\n        throw new Error(`Failed to backfill missing unfinalized block at height ${height}: ${e.message}`);\n      }\n    }\n\n    // Validate the next header connects properly to the last backfilled block\n    const lastBackfilledHeader = last(this.unfinalizedBlocks);\n    if (lastBackfilledHeader && nextHeader.parentHash !== lastBackfilledHeader.blockHash) {\n      logger.warn(\n        `Fork detected: new block ${nextHeader.blockHeight} doesn't connect to backfilled chain. ` +\n          `Expected parentHash: ${lastBackfilledHeader.blockHash}, ` +\n          `Got: ${nextHeader.parentHash}`\n      );\n      // Return the last backfilled header as the fork point\n      return {forkDetected: true, forkHeader: lastBackfilledHeader};\n    }\n\n    logger.info(`Successfully backfilled ${endHeight - startHeight + 1} missing blocks`);\n\n    return {forkDetected: false};\n  }\n\n  private async deleteFinalizedBlock(): Promise<void> {\n    if (this.lastCheckedBlockHeight !== undefined && this.lastCheckedBlockHeight < this.finalizedBlockNumber) {\n      this.removeFinalized(this.finalizedBlockNumber);\n      await this.saveLastFinalizedVerifiedHeight(this.finalizedBlockNumber);\n      await this.saveUnfinalizedBlocks(this.unfinalizedBlocks);\n    }\n    this.lastCheckedBlockHeight = this.finalizedBlockNumber;\n  }\n\n  // remove any records less and equal than input finalized blockHeight\n  private removeFinalized(blockHeight: number): void {\n    this._unfinalizedBlocks = this.unfinalizedBlocks.filter(({blockHeight: height}) => height > blockHeight);\n  }\n\n  // find closest record from block heights\n  private getClosestRecord(blockHeight: number): Header | undefined {\n    // Have the block in the best block, can be verified\n    return [...this.unfinalizedBlocks] // Copy so we can reverse\n      .reverse() // Reverse the list to find the largest block\n      .find(({blockHeight: height}) => height <= blockHeight);\n  }\n\n  // check unfinalized blocks for a fork, returns the header where a fork happened\n  protected async hasForked(): Promise<Header | undefined> {\n    const lastVerifiableBlock = this.getClosestRecord(this.finalizedBlockNumber);\n\n    // No unfinalized blocks\n    if (!lastVerifiableBlock) {\n      return;\n    }\n\n    // Unfinalized blocks beyond finalized block\n    if (lastVerifiableBlock.blockHeight === this.finalizedBlockNumber) {\n      if (lastVerifiableBlock.blockHash !== this.finalizedHeader.blockHash) {\n        logger.warn(\n          `Block fork found, enqueued un-finalized block at ${lastVerifiableBlock.blockHeight} with hash ${lastVerifiableBlock.blockHash}, actual hash is ${this.finalizedHeader.blockHash}.`\n        );\n        return this.finalizedHeader;\n      }\n    } else {\n      // Unfinalized blocks below finalized block\n      let header = this.finalizedHeader;\n      /*\n       * Iterate back through parent hashes until we get the header with the matching height\n       * We use headers here rather than getBlockHash because of potential caching issues on the rpc\n       * If we're off by a large number of blocks we can optimise by getting the block hash directly\n       */\n      if (header.blockHeight - lastVerifiableBlock.blockHeight > UNFINALIZED_THRESHOLD) {\n        header = await this.blockchainService.getHeaderForHeight(lastVerifiableBlock.blockHeight);\n      } else {\n        while (lastVerifiableBlock.blockHeight !== header.blockHeight) {\n          assert(\n            header.parentHash,\n            'When iterate back parent hashes to find matching height, we expect parentHash to be exist'\n          );\n          header = await this.blockchainService.getHeaderForHash(header.parentHash);\n        }\n      }\n\n      if (header.blockHash !== lastVerifiableBlock.blockHash) {\n        logger.warn(\n          `Block fork found, enqueued un-finalized block at ${lastVerifiableBlock.blockHeight} with hash ${lastVerifiableBlock.blockHash}, actual hash is ${header.blockHash}`\n        );\n        return header;\n      }\n    }\n\n    return;\n  }\n\n  protected async getLastCorrectFinalizedBlock(forkedHeader: Header): Promise<Header | undefined> {\n    const bestVerifiableBlocks = this.unfinalizedBlocks.filter(\n      ({blockHeight}) => blockHeight <= this.finalizedBlockNumber\n    );\n\n    let checkingHeader = forkedHeader;\n\n    // Work backwards through the blocks until we find a matching hash\n    for (const bestHeader of bestVerifiableBlocks.reverse()) {\n      assert(\n        bestHeader.blockHeight === checkingHeader.blockHeight,\n        'Expect best header and checking header to be at the same height'\n      );\n      if (bestHeader.blockHash === checkingHeader.blockHash || bestHeader.blockHash === checkingHeader.parentHash) {\n        return bestHeader;\n      }\n\n      // Get the new parent\n      assert(checkingHeader.parentHash, 'Expect checking header parentHash to be exist');\n      checkingHeader = await this.blockchainService.getHeaderForHash(checkingHeader.parentHash);\n    }\n\n    if (!this.lastCheckedBlockHeight) {\n      return undefined;\n    }\n\n    return this.blockchainService.getHeaderForHeight(this.lastCheckedBlockHeight);\n  }\n\n  // Finds the last POI that had a correct block hash, this is used with the Eth sdk\n  protected async findFinalizedUsingPOI(header: Header): Promise<Header> {\n    const poiModel = this.storeModelProvider.poi;\n    if (!poiModel) {\n      throw new Error(POI_NOT_ENABLED_ERROR_MESSAGE);\n    }\n\n    let lastHeight = header.blockHeight;\n\n    while (true) {\n      const indexedBlocks: ProofOfIndex[] = await poiModel.getPoiBlocksBefore(lastHeight);\n\n      if (!indexedBlocks.length) {\n        break;\n      }\n\n      // Work backwards to find a block on chain that matches POI\n      for (const indexedBlock of indexedBlocks) {\n        const chainHeader = await this.blockchainService.getHeaderForHeight(indexedBlock.id);\n\n        // Need to convert to PoiBlock to encode block hash to Uint8Array properly\n        const testPoiBlock = PoiBlock.create(\n          chainHeader.blockHeight,\n          chainHeader.blockHash,\n          new Uint8Array(),\n          indexedBlock.projectId ?? ''\n        );\n\n        // Need isEqual because of Uint8Array type\n        if (isEqual(testPoiBlock.chainBlockHash, indexedBlock.chainBlockHash)) {\n          return chainHeader;\n        }\n      }\n\n      // Next page of POI, use height rather than offset/limit as data could change in that time\n      lastHeight = indexedBlocks[indexedBlocks.length - 1].id - 1;\n    }\n\n    throw new Error('Unable to find a POI block with matching block hash');\n  }\n\n  private async saveUnfinalizedBlocks(unfinalizedBlocks: UnfinalizedBlocks): Promise<void> {\n    return this.storeModelProvider.metadata.set(METADATA_UNFINALIZED_BLOCKS_KEY, JSON.stringify(unfinalizedBlocks));\n  }\n\n  private async saveLastFinalizedVerifiedHeight(height: number): Promise<void> {\n    return this.storeModelProvider.metadata.set(METADATA_LAST_FINALIZED_PROCESSED_KEY, height);\n  }\n\n  async resetUnfinalizedBlocks(tx?: Transaction): Promise<void> {\n    await this.storeModelProvider.metadata.set(METADATA_UNFINALIZED_BLOCKS_KEY, '[]', tx);\n    this._unfinalizedBlocks = [];\n  }\n\n  async resetLastFinalizedVerifiedHeight(tx?: Transaction): Promise<void> {\n    return this.storeModelProvider.metadata.set(METADATA_LAST_FINALIZED_PROCESSED_KEY, null as any, tx);\n  }\n\n  //string should be jsonb object\n  async getMetadataUnfinalizedBlocks(): Promise<UnfinalizedBlocks> {\n    const val = await this.storeModelProvider.metadata.find(METADATA_UNFINALIZED_BLOCKS_KEY);\n    if (val) {\n      const result: (Header & {timestamp: string})[] = JSON.parse(val);\n      return result.map(({timestamp, ...header}) => ({\n        ...header,\n        timestamp: new Date(timestamp),\n      }));\n    }\n    return [];\n  }\n\n  async getLastFinalizedVerifiedHeight(): Promise<number | undefined> {\n    return this.storeModelProvider.metadata.find(METADATA_LAST_FINALIZED_PROCESSED_KEY);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './worker.builder';\nexport * from './worker.store.service';\nexport * from './worker.cache.service';\nexport * from './worker.dynamic-ds.service';\nexport * from './worker.connectionPoolState.manager';\nexport * from './worker.unfinalizedBlocks.service';\nexport * from './worker.monitor.service';\nexport * from './worker.service';\nexport * from './worker';\nexport * from './utils';\nexport * from './worker.core.module';\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/test.store.worker.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Store} from '@subql/types-core';\nimport {WorkerHost} from './worker.builder';\nimport {hostStoreKeys, hostStoreToStore} from './worker.store.service';\n\nlet store: Store | null = null;\n\nasync function callStoreFunction(name: string, args: any[]) {\n  if (store === null) {\n    throw new Error('Store is null');\n  }\n  const res = await (store as any)[name as any](...args);\n}\n\nconst host = WorkerHost.create(\n  hostStoreKeys,\n  {\n    callStoreFunction,\n  },\n  null as any\n);\n\nstore = hostStoreToStore(host as any);\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport * as util from 'util';\nimport {instanceToPlain} from 'class-transformer';\n\nconst BLOCK_UNAVAILBLE_ERROR_MSG = 'Block is unavailable in the chain';\n\n/**\n * Proxy objects aren't serializable between worker threads.\n * VM2 Seems to have objects come out as proxy objects.\n * NOTE do not use this on return types, if used on an entity it would strip all functions and have a plain object\n * */\nfunction unwrapProxy<T = any>(input: T): T {\n  // Arrays are not proxy objects but their contents might be. This applies to bulkCreate and bulkUpdate\n  if (Array.isArray(input) && input.length && util.types.isProxy(input[0])) {\n    return instanceToPlain(input) as T;\n  }\n\n  if (!util.types.isProxy(input)) {\n    return input;\n  }\n\n  return instanceToPlain(input) as T;\n}\n\n/* Unwraps any arguments to a function that are proxy objects */\nexport function unwrapProxyArgs<T extends Array<any>, R>(fn: (...args: T) => R): (...args: T) => R {\n  return (...args: T) => fn(...(args.map(unwrapProxy) as T));\n}\n\n/**\n * This is thrown by chains that don't produce blocks at every height. e.g Near, Solana. */\nexport class BlockUnavailableError extends Error {\n  constructor(message = BLOCK_UNAVAILBLE_ERROR_MSG) {\n    super(message);\n    Object.setPrototypeOf(this, BlockUnavailableError.prototype);\n  }\n}\nexport function isBlockUnavailableError(e: any): e is BlockUnavailableError {\n  // When parsing errors through workers, the error doesn't retain its original type\n  // Hence, we are using message as a validation too\n  return e instanceof BlockUnavailableError || e.message === BLOCK_UNAVAILBLE_ERROR_MSG;\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.builder.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport * as workers from 'worker_threads';\nimport {Logger} from 'pino';\nimport {getLogger} from '../../logger';\nimport '../../utils/bigint';\nimport {exitWithError} from '../../process';\n\nexport type SerializableError = {\n  message: string;\n  stack?: string;\n};\n\nexport type Request = {\n  id: number | string;\n  name: string;\n  args: any[];\n};\n\nexport type Response<T = any> = {\n  id: number | string;\n  error?: SerializableError;\n  result?: T;\n};\n\nfunction isRequest(message: Request | Response): message is Request {\n  return !!(message as Request).name;\n}\n\nfunction isResponse(message: Request | Response): message is Response {\n  return !isRequest(message);\n}\n\ntype ResponseListener = Record<number | string, (data?: any, error?: SerializableError) => void>;\n\nexport type AsyncFunc<T = any> = (...args: any[]) => T | Promise<T | void> | void;\nexport type AsyncMethods = Record<string, AsyncFunc>;\n\nabstract class WorkerIO {\n  private responseListeners: ResponseListener = {};\n  protected port: workers.MessagePort | workers.Worker;\n\n  protected abstract getReqId(): number;\n\n  constructor(\n    port: workers.MessagePort | workers.Worker | undefined | null,\n    workerFns: string[],\n    private hostFns: AsyncMethods,\n    protected logger: Logger\n  ) {\n    if (!port) {\n      throw new Error('Port not provided to worker. WorkerHost most likely not run from worker thread.');\n    }\n    this.port = port;\n    this.port.on('message', (message) => this.handleMessage(message));\n\n    // Add expected methods to class\n    workerFns.map((fn) => {\n      if ((this as any)[fn]) {\n        throw new Error(`Method ${String(fn)} is already defined`);\n      }\n      Object.assign(this, {[fn]: (...args: any[]) => this.execute(fn, args)});\n    });\n  }\n\n  private handleMessage(message: Request | Response): void {\n    if (isResponse(message)) {\n      if (this.responseListeners[message.id]) {\n        this.responseListeners[message.id](message.result, message.error);\n\n        delete this.responseListeners[message.id];\n      } else {\n        this.logger.warn(`No handler found for request: \"${message.id}\"`);\n      }\n    } else if (isRequest(message)) {\n      void this.handleRequest(message);\n    } else {\n      this.logger.warn(`Unsupported message: \"${message}\"`);\n    }\n  }\n\n  private async handleRequest(req: Request): Promise<void> {\n    const fn = this.hostFns[req.name];\n\n    if (!fn) {\n      this.port.postMessage(<Response>{\n        id: req.id,\n        error: {\n          message: `handleRequest: Function \"${req.name}\" not found`,\n        },\n      });\n      return;\n    }\n\n    try {\n      const res = await fn(...req.args);\n\n      this.port.postMessage(<Response>{\n        id: req.id,\n        result: res,\n      });\n    } catch (e) {\n      this.port.postMessage(<Response>{\n        id: req.id,\n        error: e,\n      });\n    }\n  }\n\n  protected async execute<T>(fnName: keyof T, args: any[]): Promise<T> {\n    const id = this.getReqId();\n\n    return new Promise<T>((resolve, reject) => {\n      try {\n        this.responseListeners[id] = (data, error) => {\n          if (error) {\n            const e = new Error(error.message);\n            e.stack = error.stack ?? e.stack;\n            reject(e);\n          } else {\n            resolve(data);\n          }\n        };\n\n        this.port.postMessage(<Request>{\n          id,\n          name: fnName,\n          args,\n        });\n      } catch (e) {\n        this.logger.error(\n          e as any,\n          `Failed to post message, function=\"${String(fnName)}\", args=\"${JSON.stringify(args)}\"`\n        );\n        // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n        reject(e);\n      }\n    });\n  }\n}\n\n/* Worker side, used to initialise and interact with main thread */\nexport class WorkerHost<T extends AsyncMethods> extends WorkerIO {\n  private _reqCounter = -1;\n\n  private constructor(workerFns: (keyof T)[], hostFns: AsyncMethods, logger: Logger) {\n    super(workers.parentPort, workerFns as string[], hostFns, logger);\n  }\n\n  static create<T extends AsyncMethods, H extends AsyncMethods>(\n    workerFns: (keyof T)[],\n    hostFns: H,\n    logger: Logger\n  ): WorkerHost<T> & T {\n    const workerHost = new WorkerHost(workerFns, hostFns, logger);\n\n    return workerHost as WorkerHost<T> & T;\n  }\n\n  // Host requests are in decreasing ID while Worker is increasing IDs to not conflict\n  protected getReqId(): number {\n    return this._reqCounter--;\n  }\n\n  getWorkerData(): any {\n    return workers.workerData;\n  }\n}\n\n/* Host side, used to initialise and interact with worker */\nexport class Worker<T extends AsyncMethods> extends WorkerIO {\n  private _reqCounter = 0;\n\n  /**\n   * @param worker - the nodejs worker\n   * @param workerFns - functions that the worker exposes to be called from the main thread\n   * @param hostFns - functions the host exposes to the worker\n   * @param exitMain - if true, when a worker exits the host will also exit\n   * */\n  private constructor(\n    private worker: workers.Worker,\n    workerFns: (keyof T)[],\n    hostFns: AsyncMethods,\n    exitMain = true\n  ) {\n    super(worker, workerFns as string[], hostFns, getLogger(`worker: ${worker.threadId}`));\n\n    this.worker.on('error', (error) => {\n      this.logger.error(error, 'Worker error');\n    });\n\n    this.worker.on('messageerror', (error) => {\n      this.logger.error(error, 'Worker message error');\n    });\n\n    this.worker.on('exit', (code) => {\n      const errMsg = `Worker exited with code ${code}`;\n      this.logger.error(errMsg);\n      if (exitMain) {\n        exitWithError(errMsg, undefined, code);\n      }\n    });\n  }\n\n  static create<T extends AsyncMethods, H extends AsyncMethods>(\n    path: string,\n    workerFns: (keyof T)[],\n    hostFns: H,\n    root: string,\n    exitMain = true,\n    workerData?: any\n  ): Worker<T> & T {\n    const worker = new Worker(\n      new workers.Worker(path, {\n        argv: [...process.argv, '--root', root],\n        workerData,\n      }),\n      workerFns,\n      hostFns,\n      exitMain\n    );\n\n    return worker as Worker<T> & T;\n  }\n\n  // Host requests are in decreasing ID while Worker is increasing IDs to not conflict\n  protected getReqId(): number {\n    return this._reqCounter++;\n  }\n\n  async terminate(): Promise<number> {\n    return this.worker.terminate();\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.cache.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isMainThread} from 'worker_threads';\nimport {Injectable} from '@nestjs/common';\nimport {Cache} from '@subql/types-core';\nimport {unwrapProxyArgs} from './utils';\n\nexport type HostCache = {\n  cacheSet(key: string, value: any): Promise<void>;\n  cacheGet(key: string): Promise<any>;\n};\n\nexport const hostCacheKeys: (keyof HostCache)[] = ['cacheGet', 'cacheSet'];\n\nexport const hostCacheToCache = (host: HostCache): Cache => {\n  return {\n    get: unwrapProxyArgs(host.cacheGet),\n    set: unwrapProxyArgs(host.cacheSet),\n  };\n};\n\nexport function cacheHostFunctions(cache: Cache): HostCache {\n  return {\n    cacheGet: cache.get.bind(cache),\n    cacheSet: cache.set.bind(cache),\n  };\n}\n\n@Injectable()\nexport class WorkerInMemoryCacheService {\n  constructor(private host: HostCache) {\n    if (isMainThread) {\n      throw new Error('Expected to be worker thread');\n    }\n  }\n\n  getCache(): Cache {\n    return hostCacheToCache(this.host);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.connectionPoolState.manager.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isMainThread} from 'node:worker_threads';\nimport {Injectable} from '@nestjs/common';\nimport {ApiErrorType} from '../../api.connection.error';\nimport {IApiConnectionSpecific} from '../../api.service';\nimport {\n  ConnectionPoolStateManager,\n  ConnectionPoolItem,\n  IConnectionPoolStateManager,\n} from '../connectionPoolState.manager';\n\nexport type HostConnectionPoolState<T> = {\n  hostGetNextConnectedEndpoint: (connectedEndpoints?: string[]) => Promise<string | undefined>;\n  hostAddToConnections: (endpoint: string, primary: boolean) => Promise<void>;\n  hostGetFieldFromConnectionPoolItem: <K extends keyof ConnectionPoolItem<T>>(\n    endpoint: string,\n    field: K\n  ) => Promise<ConnectionPoolItem<T>[K]>;\n  hostSetFieldInConnectionPoolItem: <K extends keyof ConnectionPoolItem<T>>(\n    endpoint: string,\n    field: K,\n    value: ConnectionPoolItem<T>[K]\n  ) => Promise<void>;\n  hostGetSuspendedEndpoints: () => Promise<string[]>;\n  hostRemoveFromConnections: (endpoint: string) => Promise<void>;\n  hostHandleBatchApiSuccess(successResults: Array<{endpoint: string; responseTime: number}>): Promise<void>;\n  hostHandleBatchApiError(errorResults: Array<{endpoint: string; errorType: ApiErrorType}>): Promise<void>;\n  hostGetDisconnectedEndpoints: () => Promise<string[]>;\n};\n\nexport const hostConnectionPoolStateKeys: (keyof HostConnectionPoolState<any>)[] = [\n  'hostGetNextConnectedEndpoint',\n  'hostAddToConnections',\n  'hostGetFieldFromConnectionPoolItem',\n  'hostSetFieldInConnectionPoolItem',\n  'hostGetSuspendedEndpoints',\n  'hostRemoveFromConnections',\n  'hostHandleBatchApiError',\n  'hostHandleBatchApiSuccess',\n  'hostGetDisconnectedEndpoints',\n];\n\nexport function connectionPoolStateHostFunctions<T extends IApiConnectionSpecific>(\n  connectionPoolState: ConnectionPoolStateManager<T>\n): HostConnectionPoolState<T> {\n  return {\n    hostAddToConnections: connectionPoolState.addToConnections.bind(connectionPoolState),\n    hostGetNextConnectedEndpoint: connectionPoolState.getNextConnectedEndpoint.bind(connectionPoolState),\n    hostGetFieldFromConnectionPoolItem: connectionPoolState.getFieldValue.bind(connectionPoolState),\n    hostSetFieldInConnectionPoolItem: connectionPoolState.setFieldValue.bind(connectionPoolState),\n    hostGetSuspendedEndpoints: connectionPoolState.getSuspendedEndpoints.bind(connectionPoolState),\n    hostRemoveFromConnections: connectionPoolState.removeFromConnections.bind(connectionPoolState),\n    hostHandleBatchApiError: connectionPoolState.handleBatchApiError.bind(connectionPoolState),\n    hostHandleBatchApiSuccess: connectionPoolState.handleBatchApiSuccess.bind(connectionPoolState),\n    hostGetDisconnectedEndpoints: connectionPoolState.getDisconnectedEndpoints.bind(connectionPoolState),\n  };\n}\n\n@Injectable()\nexport class WorkerConnectionPoolStateManager<T extends IApiConnectionSpecific>\n  implements IConnectionPoolStateManager<T>\n{\n  constructor(private host: HostConnectionPoolState<any>) {\n    if (isMainThread) {\n      throw new Error('Expected to be worker thread');\n    }\n  }\n\n  async getNextConnectedEndpoint(connectedEndpoints?: string[]): Promise<string | undefined> {\n    return this.host.hostGetNextConnectedEndpoint(connectedEndpoints);\n  }\n\n  async addToConnections(endpoint: string, primary = false): Promise<void> {\n    return this.host.hostAddToConnections(endpoint, primary);\n  }\n\n  async getFieldValue<K extends keyof ConnectionPoolItem<T>>(\n    endpoint: string,\n    field: K\n  ): Promise<ConnectionPoolItem<T>[K]> {\n    return this.host.hostGetFieldFromConnectionPoolItem(endpoint, field);\n  }\n\n  async setFieldValue<K extends keyof ConnectionPoolItem<T>>(\n    endpoint: string,\n    field: K,\n    value: ConnectionPoolItem<T>[K]\n  ): Promise<void> {\n    return this.host.hostSetFieldInConnectionPoolItem(endpoint, field, value);\n  }\n\n  async getSuspendedEndpoints(): Promise<string[]> {\n    return this.host.hostGetSuspendedEndpoints();\n  }\n\n  async removeFromConnections(endpoint: string): Promise<void> {\n    return this.host.hostRemoveFromConnections(endpoint);\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async handleApiError(endpoint: string, errorType: ApiErrorType): Promise<void> {\n    throw new Error(`Not Implemented`); // workers use handleBatchApiError\n  }\n\n  //eslint-disable-next-line @typescript-eslint/require-await\n  async handleApiSuccess(endpoint: string, responseTime: number): Promise<void> {\n    throw new Error(`Not Implemented`); // workers use handleBatchApiSuccess\n  }\n\n  async handleBatchApiSuccess(successResults: Array<{endpoint: string; responseTime: number}>): Promise<void> {\n    return this.host.hostHandleBatchApiSuccess(successResults);\n  }\n\n  async handleBatchApiError(errorResults: Array<{endpoint: string; errorType: ApiErrorType}>): Promise<void> {\n    return this.host.hostHandleBatchApiError(errorResults);\n  }\n\n  async getDisconnectedEndpoints(): Promise<string[]> {\n    return this.host.hostGetDisconnectedEndpoints();\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.core.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Module} from '@nestjs/common';\nimport {ConnectionPoolService} from '../connectionPool.service';\nimport {ConnectionPoolStateManager} from '../connectionPoolState.manager';\nimport {DynamicDsService} from '../dynamic-ds.service';\nimport {InMemoryCacheService} from '../inMemoryCache.service';\nimport {MonitorService} from '../monitor.service';\nimport {SandboxService} from '../sandbox.service';\nimport {UnfinalizedBlocksService} from '../unfinalizedBlocks.service';\nimport {WorkerInMemoryCacheService} from './worker.cache.service';\nimport {WorkerConnectionPoolStateManager} from './worker.connectionPoolState.manager';\nimport {WorkerDynamicDsService} from './worker.dynamic-ds.service';\nimport {WorkerMonitorService} from './worker.monitor.service';\nimport {WorkerUnfinalizedBlocksService} from './worker.unfinalizedBlocks.service';\n\n@Module({\n  providers: [\n    ConnectionPoolService,\n    SandboxService,\n    {\n      provide: ConnectionPoolStateManager,\n      useFactory: () => new WorkerConnectionPoolStateManager((global as any).host),\n    },\n    {\n      provide: MonitorService,\n      useFactory: () => new WorkerMonitorService((global as any).host),\n    },\n    {\n      provide: InMemoryCacheService,\n      useFactory: () => new WorkerInMemoryCacheService((global as any).host),\n    },\n    {\n      provide: 'IUnfinalizedBlocksService',\n      useFactory: () => new WorkerUnfinalizedBlocksService((global as any).host),\n    },\n    {\n      provide: DynamicDsService,\n      useFactory: () => new WorkerDynamicDsService((global as any).host),\n    },\n  ],\n  exports: [\n    ConnectionPoolService,\n    SandboxService,\n    MonitorService,\n    InMemoryCacheService,\n    'IUnfinalizedBlocksService',\n    DynamicDsService,\n  ],\n})\nexport class WorkerCoreModule {}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.dynamic-ds.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isMainThread} from 'node:worker_threads';\nimport {Injectable} from '@nestjs/common';\nimport {DatasourceParams, IDynamicDsService} from '../dynamic-ds.service';\n\nexport type HostDynamicDS<DS> = {\n  dynamicDsCreateDynamicDatasource: (params: DatasourceParams) => Promise<DS>;\n  dynamicDsGetDynamicDatasources: () => Promise<DS[]>;\n};\n\nexport const hostDynamicDsKeys: (keyof HostDynamicDS<any>)[] = [\n  'dynamicDsCreateDynamicDatasource',\n  'dynamicDsGetDynamicDatasources',\n];\n\n@Injectable()\nexport class WorkerDynamicDsService<DS> implements IDynamicDsService<DS> {\n  constructor(private host: HostDynamicDS<DS>) {\n    if (isMainThread) {\n      throw new Error('Expected to be worker thread');\n    }\n  }\n\n  get dynamicDatasources(): DS[] {\n    throw new Error('Worker does not support this property. Use getDynamicDatasources instead');\n  }\n\n  async createDynamicDatasource(params: DatasourceParams): Promise<DS> {\n    // Make sure the params are serializable over the bridge by using JSON conversion\n    return this.host.dynamicDsCreateDynamicDatasource(JSON.parse(JSON.stringify(params)));\n  }\n\n  async getDynamicDatasources(): Promise<DS[]> {\n    return this.host.dynamicDsGetDynamicDatasources();\n  }\n}\n\nexport function dynamicDsHostFunctions<DS>(dynamicDsService: IDynamicDsService<DS>): HostDynamicDS<DS> {\n  return {\n    dynamicDsCreateDynamicDatasource: dynamicDsService.createDynamicDatasource.bind(dynamicDsService),\n    dynamicDsGetDynamicDatasources: dynamicDsService.getDynamicDatasources.bind(dynamicDsService),\n  };\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.monitor.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isMainThread} from 'worker_threads';\nimport {Injectable} from '@nestjs/common';\nimport {setMonitorService} from '../../process';\nimport {MonitorServiceInterface} from '../monitor.service';\n\ntype HostMonitorService = {\n  hostMonitorServiceWrite?: (blockData: string) => void;\n};\n\nexport const hostMonitorKeys: (keyof HostMonitorService)[] = ['hostMonitorServiceWrite'];\n\nexport function monitorHostFunctions(host?: MonitorServiceInterface): HostMonitorService {\n  return {\n    hostMonitorServiceWrite: host?.write.bind(host),\n  };\n}\n\n@Injectable()\nexport class WorkerMonitorService implements MonitorServiceInterface {\n  constructor(private host?: HostMonitorService) {\n    if (isMainThread) {\n      throw new Error('Expected to be worker thread');\n    }\n    setMonitorService(this);\n  }\n\n  write(blockData: string | (() => string)): void {\n    return this.host?.hostMonitorServiceWrite\n      ? this.host.hostMonitorServiceWrite(typeof blockData === 'string' ? blockData : blockData())\n      : undefined;\n  }\n\n  createBlockFork(blockHeight: number): void {\n    throw Error('Worker does not support this method. Use createBlockFork from main thread instead');\n  }\n\n  createBlockStart(blockHeight: number): void {\n    throw Error('Worker does not support this method. Use createBlockStart from main thread instead');\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BaseDataSource} from '@subql/types-core';\nimport {IProjectUpgradeService, NodeConfig} from '../../configure';\nimport {getLogger} from '../../logger';\nimport {monitorWrite} from '../../process';\nimport {AutoQueue, isTaskFlushedError, RampQueue} from '../../utils';\nimport {ProcessBlockResponse} from '../blockDispatcher';\nimport {Header, IBlock, IProjectService} from '../types';\nimport {isBlockUnavailableError} from './utils';\n\nexport type FetchBlockResponse = {specVersion: number; parentHash: string} | undefined;\n\nexport type WorkerStatusResponse = {\n  threadId: number;\n  isIndexing: boolean;\n  fetchedBlocks: number;\n  toFetchBlocks: number;\n};\n\nconst logger = getLogger(`WorkerService`);\n\nexport abstract class BaseWorkerService<\n  B /* BlockContent */,\n  R extends Header /* FetchBlockResponse */,\n  DS extends BaseDataSource = BaseDataSource,\n  E = any /* Extra params for fetching blocks. Substrate uses specVersion in here*/,\n> {\n  private fetchedBlocks: Record<string, IBlock<B>> = {};\n  private _isIndexing = false;\n\n  private queue: AutoQueue<IBlock<B>>;\n\n  protected abstract fetchChainBlock(heights: number, extra: E): Promise<IBlock<B>>;\n  protected abstract toBlockResponse(block: IBlock<B>): R;\n  protected abstract processFetchedBlock(block: IBlock<B>, dataSources: DS[]): Promise<ProcessBlockResponse>;\n  protected abstract getBlockSize(block: IBlock<B>): number;\n\n  constructor(\n    private projectService: IProjectService<DS>,\n    private projectUpgradeService: IProjectUpgradeService,\n    nodeConfig: NodeConfig\n  ) {\n    this.queue = new RampQueue(\n      this.getBlockSize.bind(this),\n      nodeConfig.batchSize,\n      undefined,\n      nodeConfig.timeout,\n      'WorkerService'\n    );\n  }\n\n  async fetchBlock(height: number, extra: E): Promise<R> {\n    try {\n      const block = await this.queue.put(async () => {\n        // If a dynamic ds is created we might be asked to fetch blocks again, use existing result\n        if (!this.fetchedBlocks[height]) {\n          const block = await this.fetchChainBlock(height, extra);\n          this.fetchedBlocks[height] = block;\n        }\n\n        return this.fetchedBlocks[height];\n      });\n\n      // Return info to get the runtime version, this lets the worker thread know\n      return this.toBlockResponse(block);\n    } catch (e: any) {\n      if (!isTaskFlushedError(e)) {\n        logger.error(e, `Failed to fetch block ${height}`);\n      }\n      throw e;\n    }\n  }\n\n  async processBlock(height: number): Promise<ProcessBlockResponse> {\n    try {\n      this._isIndexing = true;\n      const block = this.fetchedBlocks[height];\n\n      if (block === undefined) {\n        throw new Error(`Block ${height} has not been fetched`);\n      }\n\n      delete this.fetchedBlocks[height];\n\n      // Makes sure the correct project is used for that height\n      await this.projectUpgradeService.setCurrentHeight(height);\n\n      return await this.processFetchedBlock(block, await this.projectService.getDataSources(height));\n    } catch (e: any) {\n      if (!isBlockUnavailableError(e)) {\n        logger.error(e, `Failed to index block ${height}: ${e.stack}`);\n        monitorWrite(`Failed to index block ${height}: ${e.stack}`);\n      }\n      throw e;\n    } finally {\n      this._isIndexing = false;\n    }\n  }\n\n  get numFetchedBlocks(): number {\n    return Object.keys(this.fetchedBlocks).length;\n  }\n\n  get numFetchingBlocks(): number {\n    return this.queue.size;\n  }\n\n  get isIndexing(): boolean {\n    return this._isIndexing;\n  }\n\n  abortFetching(): void {\n    return this.queue.abort();\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.store.service.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport path from 'path';\nimport {Store, Entity, FunctionPropertyNames} from '@subql/types-core';\nimport {Worker} from './worker.builder';\nimport {HostStore, storeHostFunctions} from './worker.store.service';\n\ntype EntityProps = Omit<EntityCls, NonNullable<FunctionPropertyNames<EntityCls>> | '_name'>;\n\nclass EntityCls implements Entity {\n  constructor(\n    public id: string,\n    public field: string\n  ) {}\n\n  get _name(): string {\n    return 'EntityCls';\n  }\n\n  async save(): Promise<void> {\n    return Promise.resolve();\n  }\n  static async remove(id: string): Promise<void> {\n    assert(id !== null, 'Cannot remove Entity entity without an ID');\n    return Promise.resolve();\n  }\n\n  static async get(id: string): Promise<EntityCls | undefined> {\n    assert(id !== null && id !== undefined, 'Cannot get Entity entity without an ID');\n    return Promise.resolve(undefined);\n  }\n\n  static create(record: EntityProps): EntityCls {\n    assert(typeof record.id === 'string', 'id must be provided');\n    const entity = new this(record.id, record.field);\n    Object.assign(entity, record);\n    return entity;\n  }\n}\n\ntype TestWorker = {callStoreFunction: (name: string, args: any[]) => Promise<void>};\n\ndescribe('Worker Store Service', () => {\n  let store: Store;\n  let worker: Worker<HostStore> & TestWorker;\n\n  beforeEach(() => {\n    store = {\n      get: jest.fn(),\n      getByField: jest.fn(() => Promise.resolve([/*{ field: '1'} as any*/ new EntityCls('1', '1') as any])),\n      getByFields: jest.fn(),\n      getOneByField: jest.fn(),\n      set: jest.fn(),\n      bulkCreate: jest.fn(),\n      bulkUpdate: jest.fn(),\n      remove: jest.fn(),\n      bulkRemove: jest.fn(),\n    };\n\n    worker = Worker.create<TestWorker, HostStore>(\n      path.resolve(__dirname, '../../../dist/indexer/worker/test.store.worker.js'),\n      ['callStoreFunction'],\n      storeHostFunctions(store),\n      '', // ROOT not needed,\n      false\n    );\n  });\n\n  afterEach(async () => {\n    await worker.terminate();\n  });\n\n  it('can make a request with an object', async () => {\n    const spy = jest.spyOn(store, 'getByField');\n\n    await worker.callStoreFunction('getByField', ['Entity', 'field', '1', {offset: 0, limit: 1}]);\n\n    expect(spy).toHaveBeenCalledWith('Entity', 'field', '1', {offset: 0, limit: 1});\n  });\n\n  it('can make a respone with an object', async () => {\n    const spy = jest.spyOn(store, 'set');\n\n    const entity = new EntityCls('1', '1');\n\n    await worker.callStoreFunction('set', ['Entity', '1', entity]);\n\n    expect(spy).toHaveBeenCalledWith('Entity', '1', entity);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.store.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Store, FieldsExpression, GetOptions, Entity} from '@subql/types-core';\nimport {unwrapProxyArgs} from './utils';\n\nexport type HostStore = {\n  // This matches the store interface\n  storeGet: (entity: string, id: string) => Promise<any>;\n  storeGetByField: <T extends Entity>(\n    entity: string,\n    field: keyof T,\n    value: any,\n    options: GetOptions<T>\n  ) => Promise<T[]>;\n  storeGetByFields: <T extends Entity>(\n    entity: string,\n    filter: FieldsExpression<T>[],\n    options: GetOptions<T>\n  ) => Promise<T[]>;\n  storeGetOneByField: (entity: string, field: string, value: any) => Promise<any>;\n  storeSet: (entity: string, id: string, data: any) => Promise<void>;\n  storeBulkCreate: (entity: string, data: any[]) => Promise<void>;\n  storeBulkUpdate: (entity: string, data: any[], fields?: string[]) => Promise<void>;\n  storeRemove: (entity: string, id: string) => Promise<void>;\n  storeBulkRemove: (entity: string, ids: string[]) => Promise<void>;\n};\n\nexport const hostStoreKeys: (keyof HostStore)[] = [\n  'storeGet',\n  'storeGetByField',\n  'storeGetByFields',\n  'storeGetOneByField',\n  'storeSet',\n  'storeBulkCreate',\n  'storeBulkUpdate',\n  'storeRemove',\n  'storeBulkRemove',\n];\n\n// Entities have to be converted to plain objects so they can be serialized.\n// We don't need the functions to be included\nexport const hostStoreToStore = (host: HostStore): Store => {\n  return {\n    get: unwrapProxyArgs(host.storeGet),\n    getByField: unwrapProxyArgs(host.storeGetByField),\n    getByFields: unwrapProxyArgs(host.storeGetByFields),\n    getOneByField: unwrapProxyArgs(host.storeGetOneByField),\n    set: unwrapProxyArgs(host.storeSet),\n    bulkCreate: unwrapProxyArgs(host.storeBulkCreate),\n    bulkUpdate: unwrapProxyArgs(host.storeBulkUpdate),\n    remove: unwrapProxyArgs(host.storeRemove),\n    bulkRemove: unwrapProxyArgs(host.storeBulkRemove),\n  };\n};\n\nexport function storeHostFunctions(store: Store): HostStore {\n  return {\n    storeGet: store.get.bind(store),\n    storeGetByField: store.getByField.bind<any>(store),\n    storeGetByFields: store.getByFields.bind<any>(store),\n    storeGetOneByField: store.getOneByField.bind(store),\n    storeSet: store.set.bind(store),\n    storeBulkCreate: store.bulkCreate.bind(store),\n    storeBulkUpdate: store.bulkUpdate.bind(store),\n    storeRemove: store.remove.bind(store),\n    storeBulkRemove: store.bulkRemove.bind(store),\n  };\n}\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'node:assert';\nimport {getHeapStatistics} from 'node:v8';\nimport {threadId} from 'node:worker_threads';\nimport {INestApplication} from '@nestjs/common';\nimport {BaseDataSource, Store, Cache} from '@subql/types-core';\nimport {IApiConnectionSpecific} from '../../api.service';\nimport {getLogger} from '../../logger';\nimport {ProcessBlockResponse} from '../blockDispatcher';\nimport {ConnectionPoolStateManager} from '../connectionPoolState.manager';\nimport {IDynamicDsService} from '../dynamic-ds.service';\nimport {MonitorServiceInterface} from '../monitor.service';\nimport {Header} from '../types';\nimport {IUnfinalizedBlocksService} from '../unfinalizedBlocks.service';\nimport {hostMonitorKeys, monitorHostFunctions} from '../worker';\nimport {WorkerHost, Worker, AsyncMethods} from './worker.builder';\nimport {cacheHostFunctions, HostCache, hostCacheKeys} from './worker.cache.service';\nimport {\n  connectionPoolStateHostFunctions,\n  HostConnectionPoolState,\n  hostConnectionPoolStateKeys,\n} from './worker.connectionPoolState.manager';\nimport {dynamicDsHostFunctions, HostDynamicDS, hostDynamicDsKeys} from './worker.dynamic-ds.service';\nimport {BaseWorkerService, WorkerStatusResponse} from './worker.service';\nimport {HostStore, hostStoreKeys, storeHostFunctions} from './worker.store.service';\nimport {HostUnfinalizedBlocks, hostUnfinalizedBlocksKeys} from './worker.unfinalizedBlocks.service';\n\nexport type DefaultWorkerFunctions<\n  ApiConnection /* ApiPromiseConnection*/,\n  DS extends BaseDataSource = BaseDataSource,\n> = HostCache & HostStore & HostDynamicDS<DS> & HostUnfinalizedBlocks & HostConnectionPoolState<ApiConnection>;\n\nlet workerApp: INestApplication;\nlet workerService: BaseWorkerService<any, Header>;\n\nconst logger = getLogger(`worker #${threadId}`);\n\nexport function initWorkerServices(worker: INestApplication, service: typeof workerService): void {\n  if (workerApp) {\n    logger.warn('Worker already initialised');\n    return;\n  }\n  workerApp = worker;\n  workerService = service;\n}\n\nexport function getWorkerApp(): INestApplication {\n  assert(workerApp, 'Worker Not initialised');\n  return workerApp;\n}\n\nexport function getWorkerService<S extends typeof workerService>(): S {\n  assert(workerService, 'Worker Not initialised');\n  return workerService as S;\n}\n\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function getMemoryLeft(): Promise<number> {\n  const totalHeap = getHeapStatistics().heap_size_limit;\n  const heapUsed = process.memoryUsage().heapUsed;\n\n  return totalHeap - heapUsed;\n}\n\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function getStatus(): Promise<WorkerStatusResponse> {\n  assert(workerService, 'Worker Not initialised');\n  return {\n    threadId,\n    fetchedBlocks: workerService.numFetchedBlocks,\n    toFetchBlocks: workerService.numFetchingBlocks,\n    isIndexing: workerService.isIndexing,\n  };\n}\n\nasync function fetchBlock(height: number, specVersion: number): ReturnType<(typeof workerService)['fetchBlock']> {\n  assert(workerService, 'Worker Not initialised');\n  return workerService.fetchBlock(height, {specVersion});\n}\n\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function processBlock(height: number): Promise<ProcessBlockResponse> {\n  assert(workerService, 'Worker Not initialised');\n  return workerService.processBlock(height);\n}\n\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function numFetchedBlocks(): Promise<number> {\n  assert(workerService, 'Worker Not initialised');\n  return workerService.numFetchedBlocks;\n}\n\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function numFetchingBlocks(): Promise<number> {\n  assert(workerService, 'Worker Not initialised');\n  return workerService.numFetchingBlocks;\n}\n\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function abortFetching(): Promise<void> {\n  assert(workerService, 'Worker Not initialised');\n  return workerService.abortFetching();\n}\n\n// Export types to be used on the parent\ntype FetchBlock = typeof fetchBlock;\ntype ProcessBlock = typeof processBlock;\ntype NumFetchedBlocks = typeof numFetchedBlocks;\ntype NumFetchingBlocks = typeof numFetchingBlocks;\ntype GetWorkerStatus = typeof getStatus;\ntype GetMemoryLeft = typeof getMemoryLeft;\ntype AbortFetching = typeof abortFetching;\n\nexport type IBaseIndexerWorker = {\n  processBlock: ProcessBlock;\n  fetchBlock: FetchBlock;\n  numFetchedBlocks: NumFetchedBlocks;\n  numFetchingBlocks: NumFetchingBlocks;\n  getStatus: GetWorkerStatus;\n  getMemoryLeft: GetMemoryLeft;\n  abortFetching: AbortFetching;\n};\n\nexport const baseWorkerFunctions: (keyof IBaseIndexerWorker)[] = [\n  'processBlock',\n  'fetchBlock',\n  'numFetchedBlocks',\n  'numFetchingBlocks',\n  'getStatus',\n  'getMemoryLeft',\n  'abortFetching',\n];\n\nexport function createWorkerHost<\n  T extends AsyncMethods,\n  H extends AsyncMethods & {initWorker: (height?: number) => Promise<void>},\n  ApiConnection /* ApiPromiseConnection*/,\n  DS extends BaseDataSource = BaseDataSource,\n>(extraWorkerFns: (keyof T)[], extraHostFns: H): WorkerHost<DefaultWorkerFunctions<ApiConnection, DS> & T> {\n  // Register these functions to be exposed to worker host\n  return WorkerHost.create<DefaultWorkerFunctions<ApiConnection, DS> & T, IBaseIndexerWorker & H>(\n    [\n      // Have this first to not override the default functions\n      ...extraWorkerFns,\n      ...hostStoreKeys,\n      ...hostCacheKeys,\n      ...hostDynamicDsKeys,\n      ...hostUnfinalizedBlocksKeys,\n      ...hostMonitorKeys,\n      ...hostConnectionPoolStateKeys,\n    ],\n    {\n      // Have this first to not override the default functions\n      ...extraHostFns,\n      fetchBlock,\n      processBlock,\n      numFetchedBlocks,\n      numFetchingBlocks,\n      getStatus,\n      getMemoryLeft,\n      abortFetching,\n    },\n    logger\n  );\n}\n\nexport type TerminateableWorker<T extends IBaseIndexerWorker> = T & {terminate: () => Promise<number>};\n\nexport async function createIndexerWorker<\n  T extends IBaseIndexerWorker,\n  ApiConnection extends IApiConnectionSpecific<any, any, any> /*ApiPromiseConnection*/ /*ApiPromiseConnection*/,\n  B,\n  DS extends BaseDataSource = BaseDataSource,\n>(\n  workerPath: string,\n  workerFns: (keyof Omit<T, keyof IBaseIndexerWorker>)[],\n  store: Store,\n  cache: Cache,\n  dynamicDsService: IDynamicDsService<DS>,\n  unfinalizedBlocksService: IUnfinalizedBlocksService<B>,\n  connectionPoolState: ConnectionPoolStateManager<ApiConnection>,\n  root: string,\n  startHeight: number,\n  monitorService?: MonitorServiceInterface,\n  workerData?: any\n): Promise<TerminateableWorker<T>> {\n  const indexerWorker = Worker.create<\n    T & {initWorker: (startHeight: number) => Promise<void>},\n    DefaultWorkerFunctions<ApiConnection, DS>\n  >(\n    workerPath,\n    [...baseWorkerFunctions, 'initWorker', ...workerFns],\n    {\n      ...cacheHostFunctions(cache),\n      ...storeHostFunctions(store),\n      ...(monitorService ? monitorHostFunctions(monitorService) : {}),\n      ...dynamicDsHostFunctions(dynamicDsService),\n      unfinalizedBlocksProcess: unfinalizedBlocksService.processUnfinalizedBlockHeader.bind(unfinalizedBlocksService),\n      ...connectionPoolStateHostFunctions(connectionPoolState),\n    },\n    root,\n    true,\n    workerData\n  );\n\n  await indexerWorker.initWorker(startHeight);\n\n  return indexerWorker;\n}\n\nprocess.on('uncaughtException', (e) => {\n  logger.error(e, 'Uncaught Exception');\n  throw e;\n});\n"
  },
  {
    "path": "packages/node-core/src/indexer/worker/worker.unfinalizedBlocks.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isMainThread} from 'node:worker_threads';\nimport {Injectable} from '@nestjs/common';\nimport {Header, IBlock, IUnfinalizedBlocksService} from '../../indexer';\n\nexport type HostUnfinalizedBlocks = {\n  unfinalizedBlocksProcess: (header: Header | undefined) => Promise<Header | undefined>;\n};\n\nexport const hostUnfinalizedBlocksKeys: (keyof HostUnfinalizedBlocks)[] = ['unfinalizedBlocksProcess'];\n\n@Injectable()\nexport class WorkerUnfinalizedBlocksService<T> implements IUnfinalizedBlocksService<T> {\n  constructor(private host: HostUnfinalizedBlocks) {\n    if (isMainThread) {\n      throw new Error('Expected to be worker thread');\n    }\n  }\n\n  async processUnfinalizedBlocks(block: IBlock<T>): Promise<Header | undefined> {\n    return this.host.unfinalizedBlocksProcess(block.getHeader());\n  }\n\n  async processUnfinalizedBlockHeader(header: Header | undefined): Promise<Header | undefined> {\n    return this.host.unfinalizedBlocksProcess(header);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  init(reindex: (targetHeader: Header) => Promise<void>): Promise<Header> {\n    throw new Error('This method should not be called from a worker');\n  }\n\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  resetUnfinalizedBlocks(): Promise<void> {\n    throw new Error('This method should not be called from a worker');\n  }\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  resetLastFinalizedVerifiedHeight(): Promise<void> {\n    throw new Error('This method should not be called from a worker');\n  }\n\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getMetadataUnfinalizedBlocks(): Promise<Header[]> {\n    throw new Error('This method should not be called from a worker');\n  }\n\n  registerFinalizedBlock(header: Header): void {\n    throw new Error('This method should not be called from a worker');\n  }\n\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  getHeaderForHeight(height: number): Promise<Header> {\n    throw new Error('This method should not be called from a worker');\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/logger.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isMainThread, threadId} from 'node:worker_threads';\nimport {LoggerService} from '@nestjs/common';\nimport {Logger} from '@subql/utils';\nimport Pino from 'pino';\n\nlet logger: Logger;\n\nexport function initLogger(\n  debug: string | undefined = undefined,\n  outputFmt?: 'json' | 'colored',\n  logLevel?: string\n): void {\n  logger = new Logger({\n    level: debug === '*' ? 'debug' : logLevel,\n    outputFormat: outputFmt,\n    nestedKey: 'payload',\n    debugFilter: !debug || debug === '*' ? undefined : debug.split(','),\n  });\n}\n\n// Init logger for tests\nif ((global as any).__TEST__) {\n  initLogger();\n}\n\nexport function getLogger(category: string): Pino.Logger {\n  return logger.getLogger(`${category}${isMainThread ? '' : `-#${threadId}`}`);\n}\n\nexport function setLevel(level: Pino.LevelWithSilent): void {\n  logger.setLevel(level);\n}\n\nexport function setDebugFilter(debug: string | undefined): void {\n  if (debug === '*') {\n    logger.setLevel('debug');\n  }\n  logger.setDebugFilter(!debug || debug === '*' ? [] : debug.split(','));\n}\n\nexport class NestLogger implements LoggerService {\n  private logger = getLogger(`nestjs`);\n\n  constructor(private readonly debugLevel = false) {}\n\n  error(message: any, trace?: string): void {\n    if (trace) {\n      this.logger.error({trace}, message);\n    } else {\n      this.logger.error(message);\n    }\n  }\n\n  log(message: any): void {\n    // if (!this.debugLevel) return;\n    this.logger.info(message);\n  }\n\n  warn(message: any): void {\n    // if (!this.debugLevel) return;\n    this.logger.warn(message);\n  }\n\n  debug(message: any): void {\n    if (!this.debugLevel) return;\n    this.logger.debug(message);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/meta/event.listener.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {OnEvent} from '@nestjs/event-emitter';\nimport {InjectMetric} from '@willsoto/nestjs-prometheus';\nimport {Gauge} from 'prom-client';\nimport {\n  BestBlockPayload,\n  EventPayload,\n  IndexerEvent,\n  ProcessBlockPayload,\n  ProcessedBlockCountPayload,\n  TargetBlockPayload,\n} from '../events';\n\nexport class MetricEventListener {\n  private skipDictionaryCount = 0;\n\n  constructor(\n    @InjectMetric('subql_indexer_api_connected')\n    private apiConnectedMetric: Gauge<string>,\n    @InjectMetric('subql_indexer_block_queue_size')\n    private blockQueueSizeMetric: Gauge<string>,\n    @InjectMetric('subql_indexer_blocknumber_queue_size')\n    private blocknumberQueueSizeMetric: Gauge<string>,\n    @InjectMetric('subql_indexer_processing_block_height')\n    private processingBlockHeight: Gauge<string>,\n    @InjectMetric('subql_indexer_target_block_height')\n    private targetHeightMetric: Gauge<string>,\n    @InjectMetric('subql_indexer_best_block_height')\n    private bestHeightMetric: Gauge<string>,\n    @InjectMetric('subql_indexer_using_dictionary')\n    private usingDictionaryMetric: Gauge<string>,\n    @InjectMetric('subql_indexer_skip_dictionary_count')\n    private skipDictionaryCountMetric: Gauge<string>,\n    @InjectMetric('subql_indexer_processed_block_count')\n    private processedBlockCountMetric: Gauge<string>,\n    @InjectMetric('subql_indexer_store_cache_threshold')\n    private storeCacheThreshold: Gauge<string>,\n    @InjectMetric('subql_indexer_store_cache_records_size')\n    private storeCacheRecordsSize: Gauge<string>\n  ) {}\n\n  @OnEvent(IndexerEvent.ApiConnected)\n  handleApiConnected({value}: EventPayload<number>): void {\n    this.apiConnectedMetric.set(value);\n  }\n\n  @OnEvent(IndexerEvent.BlockQueueSize)\n  handleBlockQueueSizeMetric({value}: EventPayload<number>): void {\n    this.blockQueueSizeMetric.set(value);\n  }\n\n  @OnEvent(IndexerEvent.BlocknumberQueueSize)\n  handleBlocknumberQueueSizeMetric({value}: EventPayload<number>): void {\n    this.blocknumberQueueSizeMetric.set(value);\n  }\n\n  @OnEvent(IndexerEvent.BlockProcessing)\n  handleProcessingBlock(blockPayload: ProcessBlockPayload): void {\n    this.processingBlockHeight.set(blockPayload.height);\n  }\n\n  @OnEvent(IndexerEvent.BlockProcessedCount)\n  handleProcessedBlockCount(blockPayload: ProcessedBlockCountPayload): void {\n    this.processedBlockCountMetric.set(blockPayload.processedBlockCount);\n  }\n\n  @OnEvent(IndexerEvent.BlockTarget)\n  handleTargetBlock(blockPayload: TargetBlockPayload): void {\n    this.targetHeightMetric.set(blockPayload.height);\n  }\n\n  @OnEvent(IndexerEvent.BlockBest)\n  handleBestBlock(blockPayload: BestBlockPayload): void {\n    this.bestHeightMetric.set(blockPayload.height);\n  }\n\n  @OnEvent(IndexerEvent.UsingDictionary)\n  handleUsingDictionary({value}: EventPayload<number>): void {\n    this.usingDictionaryMetric.set(value);\n  }\n\n  @OnEvent(IndexerEvent.SkipDictionary)\n  handleSkipDictionary(): void {\n    this.skipDictionaryCount += 1;\n    this.skipDictionaryCountMetric.set(this.skipDictionaryCount);\n  }\n\n  @OnEvent(IndexerEvent.StoreCacheThreshold)\n  handleStoreCacheThreshold({value}: EventPayload<number>): void {\n    this.storeCacheThreshold.set(value);\n  }\n\n  @OnEvent(IndexerEvent.StoreCacheRecordsSize)\n  handleStoreCacheRecordsSize({value}: EventPayload<number>): void {\n    this.storeCacheRecordsSize.set(value);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/meta/health.controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Controller, Get, HttpException, HttpStatus} from '@nestjs/common';\nimport {getLogger} from '../logger';\nimport {HealthService} from './health.service';\n\nconst logger = getLogger('health');\n\n@Controller('health')\nexport class HealthController {\n  constructor(private healthService: HealthService) {}\n\n  @Get()\n  getHealth(): void {\n    try {\n      this.healthService.getHealth();\n    } catch (e: any) {\n      logger.error(e);\n      throw new HttpException(\n        {\n          status: HttpStatus.INTERNAL_SERVER_ERROR,\n          error: e.message,\n        },\n        HttpStatus.INTERNAL_SERVER_ERROR\n      );\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/meta/health.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Injectable} from '@nestjs/common';\nimport {OnEvent} from '@nestjs/event-emitter';\nimport {Interval} from '@nestjs/schedule';\nimport {NodeConfig} from '../configure';\nimport {IndexerEvent, ProcessBlockPayload, TargetBlockPayload} from '../events';\nimport {StoreService} from '../indexer';\n\nconst DEFAULT_TIMEOUT = 900000;\nconst DEFAULT_BLOCK_TIME = 6000;\nconst CHECK_HEALTH_INTERVAL = 60000;\n\n@Injectable()\nexport class HealthService {\n  private recordBlockHeight?: number;\n  private recordBlockTimestamp?: number;\n  private currentProcessingHeight?: number;\n  private currentProcessingTimestamp?: number;\n  private blockTime: number;\n  private healthTimeout: number;\n  private indexerHealthy?: boolean;\n\n  constructor(\n    protected nodeConfig: NodeConfig,\n    private storeService: StoreService\n  ) {\n    this.healthTimeout = Math.max(DEFAULT_TIMEOUT, this.nodeConfig.timeout * 1000);\n    this.blockTime = Math.max(DEFAULT_BLOCK_TIME, this.nodeConfig.blockTime);\n  }\n\n  @Interval(CHECK_HEALTH_INTERVAL)\n  async checkHealthStatus(): Promise<void> {\n    let healthy: boolean;\n\n    try {\n      this.getHealth();\n      healthy = true;\n    } catch (e) {\n      healthy = false;\n    }\n\n    if (healthy !== this.indexerHealthy) {\n      await this.storeService.modelProvider.metadata.model.upsert({key: 'indexerHealthy', value: healthy});\n      this.indexerHealthy = healthy;\n    }\n  }\n\n  // Not all networks have a consistent interval for Finalized Blocks\n  // Hence, the endpoint's health will be dictated by the best block (as it is a consistent interval)\n  @OnEvent(IndexerEvent.BlockBest)\n  handleTargetBlock(blockPayload: TargetBlockPayload): void {\n    if (this.recordBlockHeight !== blockPayload.height) {\n      this.recordBlockHeight = blockPayload.height;\n      this.recordBlockTimestamp = Date.now();\n    }\n  }\n\n  @OnEvent(IndexerEvent.BlockProcessing)\n  handleProcessingBlock(blockPayload: ProcessBlockPayload): void {\n    if (this.currentProcessingHeight !== blockPayload.height) {\n      this.currentProcessingHeight = blockPayload.height;\n      this.currentProcessingTimestamp = blockPayload.timestamp;\n    }\n  }\n\n  getHealth(): void {\n    if (this.recordBlockTimestamp && Date.now() - this.recordBlockTimestamp > this.blockTime * 10) {\n      throw new Error('Endpoint is not healthy');\n    }\n    if (this.currentProcessingTimestamp && Date.now() - this.currentProcessingTimestamp > this.healthTimeout) {\n      throw new Error('Indexer is not healthy');\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/meta/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './meta.module';\n"
  },
  {
    "path": "packages/node-core/src/meta/meta.controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Controller, Get} from '@nestjs/common';\nimport {MetaService} from './meta.service';\n\n@Controller('meta')\nexport class MetaController {\n  constructor(private metaService: MetaService) {}\n\n  @Get()\n  getMeta() {\n    return this.metaService.getMeta();\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/meta/meta.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {DynamicModule, Module} from '@nestjs/common';\nimport {PrometheusModule} from '@willsoto/nestjs-prometheus';\n// import { FetchModule } from '../indexer/fetch.module';\nimport {CoreModule} from '../indexer';\nimport {MetricEventListener} from './event.listener';\nimport {HealthController} from './health.controller';\nimport {HealthService} from './health.service';\nimport {gaugeProviders} from './meta';\nimport {MetaController} from './meta.controller';\nimport {MetaService, MetaServiceOptions} from './meta.service';\nimport {ReadyController} from './ready.controller';\nimport {ReadyService} from './ready.service';\n\n@Module({\n  // imports: [PrometheusModule.register(), FetchModule],\n  // controllers: [...metaControllers, MetaController],\n  // providers: [...metaServices, MetaService],\n})\nexport class MetaModule {\n  static forRoot(options: MetaServiceOptions): DynamicModule {\n    return {\n      module: MetaModule,\n      imports: [PrometheusModule.register(), CoreModule],\n      controllers: [HealthController, ReadyController, MetaController],\n      providers: [\n        MetricEventListener,\n        HealthService,\n        ReadyService,\n        ...gaugeProviders,\n        {\n          provide: MetaService,\n          useFactory: () => new MetaService(options),\n        },\n      ],\n    };\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/meta/meta.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {OnEvent} from '@nestjs/event-emitter';\nimport {\n  BestBlockPayload,\n  EventPayload,\n  IndexerEvent,\n  NetworkMetadataPayload,\n  ProcessBlockPayload,\n  ProcessedBlockCountPayload,\n  TargetBlockPayload,\n} from '../events';\n\nexport type MetaServiceOptions = {\n  /**\n   * The version of the node from package.json\n   * @example\n   * \"1.0.0\n   * */\n  version: string;\n  sdkVersion: {\n    /**\n     * The name of the sdk\n     * @example\n     * \"@polkadot/api\"\n     * */\n    name: string;\n    /**\n     * The semver of the skd package from package.json\n     * @example\n     * \"1.0.0\"\n     * */\n    version: string;\n  };\n};\n\nexport class MetaService {\n  private currentProcessingHeight?: number;\n  private currentProcessingTimestamp?: number;\n  private bestHeight?: number;\n  private targetHeight?: number;\n  private networkMeta?: NetworkMetadataPayload;\n  private apiConnected?: boolean;\n  private usingDictionary?: boolean;\n  private lastProcessedHeight?: number;\n  private lastProcessedTimestamp?: number;\n  private processedBlockCount?: number;\n\n  constructor(private opts: MetaServiceOptions) {}\n\n  getMeta() {\n    const {name: sdkName, version} = this.opts.sdkVersion;\n\n    return {\n      currentProcessingHeight: this.currentProcessingHeight,\n      currentProcessingTimestamp: this.currentProcessingTimestamp,\n      targetHeight: this.targetHeight,\n      bestHeight: this.bestHeight,\n      indexerNodeVersion: this.opts.version,\n      lastProcessedHeight: this.lastProcessedHeight,\n      lastProcessedTimestamp: this.lastProcessedTimestamp,\n      uptime: process.uptime(),\n      processedBlockCount: this.processedBlockCount,\n      apiConnected: this.apiConnected,\n      usingDictionary: this.usingDictionary,\n      [sdkName]: version,\n      ...this.networkMeta,\n    };\n  }\n\n  @OnEvent(IndexerEvent.BlockProcessing)\n  handleProcessingBlock(blockPayload: ProcessBlockPayload): void {\n    this.currentProcessingHeight = blockPayload.height;\n    this.currentProcessingTimestamp = blockPayload.timestamp;\n  }\n\n  @OnEvent(IndexerEvent.BlockProcessedCount)\n  handleProcessedBlock(blockPayload: ProcessedBlockCountPayload): void {\n    this.processedBlockCount = blockPayload.processedBlockCount;\n    this.currentProcessingTimestamp = blockPayload.timestamp;\n  }\n\n  @OnEvent(IndexerEvent.BlockTarget)\n  handleTargetBlock(blockPayload: TargetBlockPayload): void {\n    this.targetHeight = blockPayload.height;\n  }\n\n  @OnEvent(IndexerEvent.BlockBest)\n  handleBestBlock(blockPayload: BestBlockPayload): void {\n    this.bestHeight = blockPayload.height;\n  }\n\n  @OnEvent(IndexerEvent.NetworkMetadata)\n  handleNetworkMetadata(networkMeta: NetworkMetadataPayload): void {\n    this.networkMeta = networkMeta;\n  }\n\n  @OnEvent(IndexerEvent.ApiConnected)\n  handleApiConnected({value}: EventPayload<number>): void {\n    this.apiConnected = !!value;\n  }\n\n  @OnEvent(IndexerEvent.UsingDictionary)\n  handleUsingDictionary({value}: EventPayload<number>): void {\n    this.usingDictionary = !!value;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/meta/meta.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {makeGaugeProvider} from '@willsoto/nestjs-prometheus';\n\nexport const gaugeProviders = [\n  makeGaugeProvider({\n    name: 'subql_indexer_api_connected',\n    help: 'The indexer api connection status',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_processing_block_height',\n    help: 'The current processing block height',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_target_block_height',\n    help: 'The latest finalized block height',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_best_block_height',\n    help: 'The latest best block height',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_block_queue_size',\n    help: 'The size of fetched block queue',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_blocknumber_queue_size',\n    help: 'The size of fetched block number queue',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_using_dictionary',\n    help: 'The status of indexer is using the dictionary',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_skip_dictionary_count',\n    help: 'The number of times indexer been skip use dictionary',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_processed_block_count',\n    help: 'The number of processed block',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_store_cache_threshold',\n    help: 'Store cache will flush once cache record size excess this threshold',\n  }),\n  makeGaugeProvider({\n    name: 'subql_indexer_store_cache_records_size',\n    help: 'Number of records waiting to flush in store cache',\n  }),\n];\n"
  },
  {
    "path": "packages/node-core/src/meta/ready.controller.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Controller, Get, HttpException, HttpStatus} from '@nestjs/common';\nimport {ReadyService} from './ready.service';\n\n@Controller('ready')\nexport class ReadyController {\n  constructor(private readyService: ReadyService) {}\n\n  @Get()\n  getReady() {\n    if (!this.readyService.ready) {\n      throw new HttpException(\n        {\n          status: HttpStatus.SERVICE_UNAVAILABLE,\n          error: 'Database schema is not created or ready',\n        },\n        HttpStatus.SERVICE_UNAVAILABLE\n      );\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/meta/ready.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Injectable} from '@nestjs/common';\nimport {OnEvent} from '@nestjs/event-emitter';\nimport {EventPayload, IndexerEvent} from '../events';\n\n@Injectable()\nexport class ReadyService {\n  private _ready: boolean;\n\n  constructor() {\n    this._ready = false;\n  }\n\n  @OnEvent(IndexerEvent.Ready)\n  handleReady({value}: EventPayload<boolean>): void {\n    this._ready = value;\n  }\n\n  get ready(): boolean {\n    return this._ready;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/process.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport Pino from 'pino';\nimport {MonitorServiceInterface} from './indexer';\n\nlet monitorService: MonitorServiceInterface;\n\nexport function setMonitorService(service: MonitorServiceInterface): void {\n  monitorService = service;\n}\n\nexport function exitWithError(error: Error | string, logger?: Pino.Logger, code = 1): never {\n  const errorMessage = typeof error === 'string' ? error : error.message;\n  logger?.error(error as any); /* Bad types */\n  monitorService?.write(`[EXIT ${code}]: ${errorMessage}`);\n  process.exit(code);\n}\n\n// Function argument is to allow for lazy evaluation only if monitor service is enabled\nexport function monitorWrite(blockData: string | (() => string)): void {\n  monitorService?.write(blockData);\n}\n\nexport function monitorCreateBlockStart(blockNumber: number): void {\n  monitorService?.createBlockStart(blockNumber);\n}\n\nexport function monitorCreateBlockFork(blockNumber: number): void {\n  monitorService?.createBlockFork(blockNumber);\n}\n"
  },
  {
    "path": "packages/node-core/src/profiler.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n/* class decorator */\n\nimport {performance} from 'perf_hooks';\nimport {getLogger} from './logger';\n\nfunction isPromise(e: any): boolean {\n  return !!e && typeof e.then === 'function';\n}\n\nconst logger = getLogger('profiler');\n\nfunction printCost(start: number, end: number, target: string, method: string | symbol): void {\n  logger.info(`${target}, ${method.toString()}, ${end - start} ms`);\n}\n\nlet enableProfiler = false;\n\nexport function setProfiler(enabled: boolean): void {\n  enableProfiler = enabled;\n}\n\nexport function profiler(): MethodDecorator {\n  return (target, name: string | symbol, descriptor: PropertyDescriptor): void => {\n    if (enableProfiler && !!descriptor && typeof descriptor.value === 'function') {\n      const orig = descriptor.value;\n      // tslint:disable no-function-expression no-invalid-this\n      descriptor.value = function (...args: any[]): any {\n        const start = performance.now();\n        const res = orig.bind(this)(...args);\n        if (isPromise(res)) {\n          res.then(\n            (_: any) => {\n              printCost(start, performance.now(), target.constructor.name, name);\n              return _;\n            },\n            (err: any) => {\n              printCost(start, performance.now(), target.constructor.name, name);\n              throw err;\n            }\n          );\n        } else {\n          printCost(start, performance.now(), target.constructor.name, name);\n        }\n        return res;\n      };\n    }\n  };\n}\n\ntype AnyFn = (...args: any[]) => any;\n\nexport const profilerWrap =\n  <T extends AnyFn>(method: T, target: any, name: string) =>\n  (...args: Parameters<T>): ReturnType<T> => {\n    const start = performance.now();\n    const res = method(...args);\n    if (isPromise(res)) {\n      res.then(\n        (_: any) => {\n          printCost(start, performance.now(), target, name);\n          return _;\n        },\n        (err: any) => {\n          printCost(start, performance.now(), target, name);\n          throw err;\n        }\n      );\n    } else {\n      printCost(start, performance.now(), target, name);\n    }\n    return res;\n  };\n"
  },
  {
    "path": "packages/node-core/src/subcommands/forceClean.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Module} from '@nestjs/common';\nimport {SchedulerRegistry} from '@nestjs/schedule';\nimport {ForceCleanService} from './forceClean.service';\n\n@Module({\n  providers: [ForceCleanService, SchedulerRegistry],\n  controllers: [],\n})\nexport class ForceCleanFeatureModule {}\n"
  },
  {
    "path": "packages/node-core/src/subcommands/forceClean.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Inject, Injectable} from '@nestjs/common';\nimport {getAllEntitiesRelations} from '@subql/utils';\nimport {QueryTypes, Sequelize} from '@subql/x-sequelize';\nimport {NodeConfig} from '../configure';\nimport {MonitorService} from '../indexer';\nimport {ISubqueryProject} from '../indexer/types';\nimport {getLogger} from '../logger';\nimport {getEnumDeprecated, getExistingProjectSchema, enumNameToHash} from '../utils';\n\nconst logger = getLogger('Force-clean');\n\n@Injectable()\nexport class ForceCleanService {\n  constructor(\n    private readonly sequelize: Sequelize,\n    private readonly nodeConfig: NodeConfig,\n    @Inject('ISubqueryProject') protected project: ISubqueryProject\n  ) {}\n\n  async forceClean(): Promise<void> {\n    const schema = await getExistingProjectSchema(this.nodeConfig, this.sequelize);\n    if (!schema) {\n      logger.error('Unable to locate schema');\n      throw new Error('Schema does not exist.');\n    }\n    const modelsRelation = getAllEntitiesRelations(this.project.schema);\n\n    try {\n      // drop existing project schema and metadata table\n      await this.sequelize.dropSchema(`\"${schema}\"`, {\n        logging: false,\n        benchmark: false,\n      });\n\n      // TODO, remove this soon, once original enum are cleaned\n      // Deprecate, now enums are moved under schema, drop schema will remove project enums\n      await Promise.all(\n        modelsRelation.enums.map(async (e) => {\n          const enumTypeNameDeprecated = `${schema}_enum_${enumNameToHash(e.name)}`;\n          const resultsDeprecated = await getEnumDeprecated(this.sequelize, enumTypeNameDeprecated);\n          if (resultsDeprecated.length !== 0) {\n            await this.sequelize.query(`\n            DROP TYPE \"${enumTypeNameDeprecated}\";\n          `);\n          }\n        })\n      );\n\n      // remove schema from subquery table (might not exist)\n      const checker = await this.sequelize.query(\n        `\n              SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'public' AND  TABLE_NAME = 'subqueries'`\n      );\n\n      if ((checker[1] as any).rowCount > 0) {\n        await this.sequelize.query(\n          ` DELETE\n                  FROM public.subqueries\n                  WHERE name = :name`,\n          {\n            replacements: {name: this.nodeConfig.subqueryName},\n            type: QueryTypes.DELETE,\n          }\n        );\n      }\n      logger.info('force cleaned schema and tables');\n      MonitorService.forceClean(this.nodeConfig.monitorOutDir);\n    } catch (err: any) {\n      logger.error(err, 'failed to force clean');\n      throw err;\n    }\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/subcommands/foreceClean.init.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NestFactory} from '@nestjs/core';\nimport {getLogger} from '../logger';\nimport {exitWithError} from '../process';\nimport {ForceCleanService} from './forceClean.service';\n\nconst logger = getLogger('CLI');\nexport async function forceClean(forceCleanModule: any): Promise<void> {\n  try {\n    const app = await NestFactory.create(forceCleanModule);\n    await app.init();\n    const forceCleanService = app.get(ForceCleanService);\n    await forceCleanService.forceClean();\n  } catch (e: any) {\n    exitWithError(new Error(`Force-clean failed to execute`, {cause: e}), logger);\n  }\n\n  process.exit(0);\n}\n"
  },
  {
    "path": "packages/node-core/src/subcommands/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './forceClean.service';\nexport * from './forceClean.module';\nexport * from './foreceClean.init';\nexport * from './reindex.init';\nexport * from './reindex.service';\nexport * from './testing.core.module';\n"
  },
  {
    "path": "packages/node-core/src/subcommands/reindex.init.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {NestFactory} from '@nestjs/core';\nimport {getLogger} from '../logger';\nimport {exitWithError} from '../process';\nimport {ReindexService} from './reindex.service';\n\nconst logger = getLogger('CLI-Reindex');\nexport async function reindexInit(reindexModule: any, targetHeight: number): Promise<void> {\n  try {\n    const app = await NestFactory.create(reindexModule);\n\n    await app.init();\n    const reindexService = app.get(ReindexService);\n\n    await reindexService.init();\n    const actualReindex = await reindexService.getTargetHeightWithUnfinalizedBlocks(targetHeight);\n    if (actualReindex.blockHeight !== targetHeight) {\n      logger.info(\n        `Found index target height ${targetHeight} beyond indexed unfinalized block ${actualReindex.blockHeight}, will index to ${actualReindex.blockHeight}`\n      );\n    }\n\n    await reindexService.reindex(actualReindex);\n  } catch (e: any) {\n    exitWithError(new Error(`Reindex failed to execute`, {cause: e}), logger);\n  }\n  process.exit(0);\n}\n"
  },
  {
    "path": "packages/node-core/src/subcommands/reindex.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {Inject, Injectable} from '@nestjs/common';\nimport {BaseDataSource} from '@subql/types-core';\nimport {Sequelize} from '@subql/x-sequelize';\nimport {IBlockchainService} from '../blockchain.service';\nimport {NodeConfig, ProjectUpgradeService} from '../configure';\nimport {\n  IUnfinalizedBlocksService,\n  StoreService,\n  ISubqueryProject,\n  PoiService,\n  IMetadata,\n  cacheProviderFlushData,\n  Header,\n  MultiChainRewindService,\n} from '../indexer';\nimport {DynamicDsService} from '../indexer/dynamic-ds.service';\nimport {getLogger} from '../logger';\nimport {exitWithError, monitorWrite} from '../process';\nimport {getExistingProjectSchema, reindex} from '../utils';\nimport {ForceCleanService} from './forceClean.service';\n\nconst logger = getLogger('Reindex');\n\n@Injectable()\nexport class ReindexService<P extends ISubqueryProject, DS extends BaseDataSource, B> {\n  private _metadataRepo?: IMetadata;\n  private _lastProcessedHeader?: {height: number; timestamp?: number};\n\n  constructor(\n    private readonly sequelize: Sequelize,\n    private readonly nodeConfig: NodeConfig,\n    private readonly storeService: StoreService,\n    private readonly poiService: PoiService,\n    @Inject('IProjectUpgradeService') private readonly projectUpgradeService: ProjectUpgradeService,\n    @Inject('ISubqueryProject') private readonly project: P,\n    private readonly forceCleanService: ForceCleanService,\n    @Inject('UnfinalizedBlocksService') private readonly unfinalizedBlocksService: IUnfinalizedBlocksService<B>,\n    @Inject('DynamicDsService') private readonly dynamicDsService: DynamicDsService<DS>,\n    @Inject('IBlockchainService') private readonly blockchainService: IBlockchainService<DS>,\n    private readonly multiChainRewindService: MultiChainRewindService\n  ) {}\n\n  private get metadataRepo(): IMetadata {\n    assert(this._metadataRepo, 'BaseReindexService has not been init');\n    return this._metadataRepo;\n  }\n\n  async init(): Promise<void> {\n    const schema = await this.getExistingProjectSchema();\n\n    if (!schema) {\n      logger.error('Unable to locate schema');\n      throw new Error('Schema does not exist.');\n    }\n\n    await this.storeService.initCoreTables(schema);\n    if (this.nodeConfig.proofOfIndex) {\n      await this.poiService.init(schema);\n    }\n    const tx = await this.sequelize.transaction();\n    await this.storeService.init(schema, tx);\n    await tx.commit();\n\n    this._metadataRepo = this.storeService.modelProvider.metadata;\n\n    await this.dynamicDsService.init(this.metadataRepo);\n\n    const {height, timestamp} = await this.storeService.getLastProcessedBlock();\n\n    if (height === undefined) {\n      throw new Error('lastProcessedHeight is not defined');\n    }\n\n    this._lastProcessedHeader = {\n      height,\n      timestamp,\n    };\n\n    const chain = await this.storeService.modelProvider.metadata.find('chain');\n    assert(chain, 'Chain not found in metadata');\n\n    await this.multiChainRewindService.init(chain);\n\n    await this.projectUpgradeService.init(\n      this.storeService,\n      this.lastProcessedHeader.height,\n      this.nodeConfig,\n      this.sequelize,\n      schema\n    );\n  }\n\n  async getTargetHeightWithUnfinalizedBlocks(inputHeight: number): Promise<Header> {\n    const inputHeader = await this.blockchainService.getHeaderForHeight(inputHeight);\n\n    const unfinalizedBlocks = await this.unfinalizedBlocksService.getMetadataUnfinalizedBlocks();\n    const bestBlocks = unfinalizedBlocks.filter(({blockHeight}) => blockHeight <= inputHeight);\n    if (bestBlocks.length && inputHeight >= bestBlocks[0].blockHeight) {\n      return bestBlocks[0];\n    }\n    return inputHeader;\n  }\n\n  private async getExistingProjectSchema(): Promise<string | undefined> {\n    return getExistingProjectSchema(this.nodeConfig, this.sequelize);\n  }\n\n  get lastProcessedHeader(): {height: number; timestamp?: number} {\n    assert(this._lastProcessedHeader !== undefined, 'Cannot reindex without lastProcessedHeight been initialized');\n    return this._lastProcessedHeader;\n  }\n\n  private getStartBlockFromDataSources(): number {\n    const datasources = this.project.dataSources;\n\n    const startBlocksList = datasources.map((item) => item.startBlock ?? 1);\n    if (startBlocksList.length === 0) {\n      exitWithError(\n        `Failed to find a valid datasource, Please check your endpoint if specName filter is used.`,\n        logger\n      );\n    } else {\n      return Math.min(...startBlocksList);\n    }\n  }\n\n  async reindex(targetBlockHeader: Header): Promise<void> {\n    const startHeight = this.getStartBlockFromDataSources();\n    monitorWrite(\n      `- Reindex when last processed is ${this.lastProcessedHeader.height}, to block ${targetBlockHeader.blockHeight}`\n    );\n\n    await reindex(\n      startHeight,\n      targetBlockHeader,\n      this.lastProcessedHeader,\n      this.storeService,\n      this.unfinalizedBlocksService,\n      this.dynamicDsService,\n      this.sequelize,\n      this.projectUpgradeService,\n      this.multiChainRewindService,\n      this.nodeConfig.proofOfIndex ? this.poiService : undefined,\n      this.forceCleanService\n    );\n\n    await cacheProviderFlushData(this.storeService.modelProvider, true);\n    monitorWrite(`- Reindex completed`);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/subcommands/testing.core.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Module} from '@nestjs/common';\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {SchedulerRegistry} from '@nestjs/schedule';\nimport {\n  ConnectionPoolService,\n  ConnectionPoolStateManager,\n  InMemoryCacheService,\n  PoiService,\n  PoiSyncService,\n  StoreService,\n  SandboxService,\n  storeModelFactory,\n  NodeConfig,\n} from '@subql/node-core';\nimport {Sequelize} from '@subql/x-sequelize';\n\n@Module({\n  providers: [\n    SchedulerRegistry,\n    InMemoryCacheService,\n    StoreService,\n    {\n      provide: 'IStoreModelProvider',\n      useFactory: storeModelFactory,\n      inject: [NodeConfig, EventEmitter2, Sequelize],\n    },\n    EventEmitter2,\n    PoiService,\n    PoiSyncService,\n    SandboxService,\n    ConnectionPoolStateManager,\n    ConnectionPoolService,\n  ],\n  exports: ['IStoreModelProvider', PoiService, PoiSyncService, StoreService, SandboxService, ConnectionPoolService],\n})\nexport class TestingCoreModule {}\n"
  },
  {
    "path": "packages/node-core/src/utils/bigint.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\ninterface BigInt {\n  toJSON(): string;\n}\n\n// Make BigInt json serializable, note this doesn't go from string -> BigInt when parsing\nBigInt.prototype.toJSON = function () {\n  return `${this.toString()}n`;\n};\n"
  },
  {
    "path": "packages/node-core/src/utils/blockHeightMap.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BlockHeightMap} from './blockHeightMap';\n\ndescribe('Ensure correct logic on blockHeightMap', () => {\n  it('getWithinRange should return projects within specified height range', () => {\n    const blockHeightMap = new Map([\n      [1, {projectName: 'Project A'}],\n      [500, {projectName: 'Project B'}],\n      [1000, {projectName: 'Project C'}],\n    ]);\n\n    const blockHeight = new BlockHeightMap(blockHeightMap as any);\n\n    const projectsWithinRange = blockHeight.getWithinRange(499, 700);\n\n    console.log(projectsWithinRange);\n    expect(projectsWithinRange).toStrictEqual(\n      new Map([\n        [1, {projectName: 'Project A'}],\n        [500, {projectName: 'Project B'}],\n      ])\n    );\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/blockHeightMap.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\ntype GetRange<T> = {value: T; startHeight: number; endHeight?: number};\n\nexport class EntryNotFoundError extends Error {\n  constructor(height: number) {\n    super(`Entry not found at height ${height}`);\n  }\n}\n\nexport class BlockHeightMap<T> {\n  #map: Map<number, T>;\n\n  constructor(initialValues: Map<number, T>) {\n    // Ensure the values are sorted by key\n    this.#map = new Map([...initialValues.entries()].sort((a, b) => a[0] - b[0]));\n  }\n\n  getAll(): Map<number, T> {\n    return this.#map;\n  }\n\n  get(height: number): T {\n    const details = this.getDetails(height);\n\n    if (details === undefined) {\n      throw new EntryNotFoundError(height);\n    }\n\n    return details.value;\n  }\n\n  // Same as get but wont throw when there is nothing in the block range\n  getSafe(height: number): T | undefined {\n    try {\n      return this.get(height);\n    } catch (e) {\n      return undefined;\n    }\n  }\n\n  getDetails(height: number): GetRange<T> | undefined {\n    let result: GetRange<T> | undefined;\n\n    const arr = [...this.#map.entries()];\n\n    for (let i = 0; i < arr.length; i++) {\n      const [currentHeight, value] = arr[i];\n      const nextStart = arr[i + 1]?.[0];\n      const r = {\n        value,\n        startHeight: currentHeight,\n        endHeight: nextStart ? nextStart - 1 : undefined,\n      };\n\n      if (currentHeight === height) {\n        result = r;\n        break;\n      }\n      if (currentHeight <= height) {\n        result = r;\n      }\n\n      if (currentHeight > height) {\n        break;\n      }\n    }\n\n    return result;\n  }\n\n  getAllWithRange(): GetRange<T>[] {\n    return [...this.#map.entries()].map(([key, value], index, entries) => {\n      return {\n        value,\n        startHeight: key,\n        endHeight: entries[index + 1]?.[0] - 1, // Start height of the nex item\n      };\n    });\n  }\n\n  getWithinRange(startHeight: number, endHeight: number): Map<number, T> {\n    const result = new Map<number, T>();\n    let previousKey: number | null = null;\n\n    for (const [key, value] of this.#map) {\n      if (previousKey !== null && previousKey < startHeight && key >= startHeight) {\n        const previousValue = this.#map.get(previousKey);\n        if (previousValue !== undefined) {\n          result.set(previousKey, previousValue);\n        }\n      }\n\n      if (key >= startHeight && key <= endHeight) {\n        result.set(key, value);\n      }\n\n      previousKey = key;\n    }\n\n    return result;\n  }\n\n  map<T2>(fn: (value: T) => T2): BlockHeightMap<T2> {\n    const newMap = new Map<number, T2>();\n\n    for (const [key, value] of this.#map) {\n      newMap.set(key, fn(value));\n    }\n\n    return new BlockHeightMap(newMap);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/blocks.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {range} from 'lodash';\nimport {BypassBlocks} from '../indexer';\nimport {filterBypassBlocks} from './blocks';\n\ndescribe('bypass logic', () => {\n  it('process bypassBlocks with ranges', () => {\n    let bypassBlocks: BypassBlocks = [20, 40, '5-10', 20, 140];\n    let currentBlockBatch = [1, 5, 7, 8, 20, 40, 100, 120];\n    const case_1 = filterBypassBlocks(currentBlockBatch, bypassBlocks);\n\n    expect(case_1).toEqual([1, 100, 120]);\n\n    bypassBlocks = [' 5 - 10 ', 20, 140];\n    currentBlockBatch = [1, 5, 7, 8, 20, 40, 100, 120];\n    const case_2 = filterBypassBlocks(currentBlockBatch, bypassBlocks);\n\n    expect(case_2).toEqual([1, 40, 100, 120]);\n  });\n\n  it('cleanedBatchBlocks with large amount blocks should not throw error Maximum call stack size exceeded', () => {\n    const bypassBlocks: BypassBlocks = ['50051722-54939220'];\n    const currentBlockBatch = range(34312396, 34312495);\n    const case_1 = filterBypassBlocks(currentBlockBatch, bypassBlocks);\n    expect(case_1).toEqual(currentBlockBatch);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/blocks.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Schedule} from 'cron-converter';\nimport {getBlockHeight} from '../indexer/dictionary';\nimport {BypassBlocks, Header, HistoricalMode, IBlock} from '../indexer/types';\nimport {getLogger} from '../logger';\n\nconst logger = getLogger('timestamp-filter');\n\nexport type CronFilter = {\n  cronSchedule?: {\n    schedule: Schedule;\n    next: number;\n  };\n};\n\nexport function filterBlockTimestamp(blockTimestamp: number, filter: CronFilter): boolean {\n  if (!filter?.cronSchedule) {\n    return true;\n  }\n  if (blockTimestamp > filter.cronSchedule.next) {\n    logger.info(`Block with timestamp ${new Date(blockTimestamp).toString()} is about to be indexed`);\n    logger.info(`Next block will be indexed at ${new Date(filter.cronSchedule.next).toString()}`);\n    filter.cronSchedule.schedule.prev();\n    return true;\n  } else {\n    filter.cronSchedule.schedule.prev();\n    return false;\n  }\n}\n\n/**\n * Takes a list of blocks or block numbers to be enqueued and indexed and removes any based on the bypassBlocks\n * TODO this could further be optimised by returning the end of a block range to fast forward to.\n * */\nexport function filterBypassBlocks<B = any>(\n  enqueuedBlocks: (IBlock<B> | number)[],\n  bypassBlocks?: BypassBlocks\n): (IBlock<B> | number)[] {\n  if (!bypassBlocks?.length) return enqueuedBlocks;\n\n  return enqueuedBlocks.filter((b) => {\n    if (typeof b === 'number') return !inBypassBlocks(bypassBlocks, b);\n    return !inBypassBlocks(bypassBlocks, getBlockHeight(b));\n  });\n}\n\nfunction inBypassBlocks(bypassBlocks: BypassBlocks, blockNum: number): boolean {\n  return bypassBlocks.some((bypassEntry) => {\n    if (typeof bypassEntry === 'number') return bypassEntry === blockNum;\n    const [start, end] = bypassEntry.split('-').map((val) => parseInt(val.trim(), 10));\n    return blockNum >= start && blockNum <= end;\n  });\n}\n\nexport function getHistoricalUnit(mode: HistoricalMode, header: Header): number {\n  if (mode === 'timestamp') {\n    if (!header.timestamp) {\n      throw new Error('Timestamp missing on current block header');\n    }\n    return header.timestamp.getTime();\n  }\n\n  return header.blockHeight;\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/configure.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport {ReaderFactory} from '@subql/common';\nimport {rebaseArgsWithManifest} from '../utils/configure';\n\njest.setTimeout(30000);\n\ndescribe('configure utils', () => {\n  it('could rebase node args with manifest file', async () => {\n    const mockArgv = {\n      ipfs: '',\n      unsafe: false,\n      batchSize: 500,\n    } as any;\n\n    const manifestPath = path.join(__dirname, '../../test/v1.0.0/projectOptions.yaml');\n    const reader = await ReaderFactory.create(manifestPath);\n    const rawManifest = await reader.getProjectSchema();\n\n    rebaseArgsWithManifest(mockArgv, rawManifest);\n\n    // Fill the missing args, in manifest runner historical is enabled\n    expect(mockArgv.disableHistorical).toBeUndefined();\n    expect(mockArgv.historical).toBeTruthy();\n    // Keep the original value from argv\n    expect(mockArgv.batchSize).toBe(500);\n    // Args could override manifest options\n    expect(mockArgv.unsafe).toBeFalsy();\n  });\n\n  it('should rebase historical manifest options', () => {\n    const mock = {\n      historical: 'height',\n    } as any;\n\n    rebaseArgsWithManifest(mock, {runner: {node: {options: {historical: true}}}});\n    expect(mock.historical).toBe('height');\n\n    rebaseArgsWithManifest(mock, {runner: {node: {options: {historical: false}}}});\n    expect(mock.historical).toBe(false);\n\n    rebaseArgsWithManifest(mock, {runner: {node: {options: {historical: 'height'}}}});\n    expect(mock.historical).toBe('height');\n\n    rebaseArgsWithManifest(mock, {runner: {node: {options: {historical: 'timestamp'}}}});\n    expect(mock.historical).toBe('timestamp');\n\n    expect(mock.disableHistorical).toBeUndefined();\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/configure.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport {getProjectRootAndManifest, IPFS_REGEX, RunnerNodeOptionsModel} from '@subql/common';\nimport {plainToClass} from 'class-transformer';\nimport {last} from 'lodash';\nimport {IConfig, MinConfig} from '../configure/NodeConfig';\nimport {HistoricalMode} from '../indexer';\n\n// These are overridable types from node argv\nexport interface ArgvOverrideOptions {\n  unsafe?: boolean;\n  historical?: HistoricalMode;\n  disableHistorical?: boolean;\n  unfinalizedBlocks?: boolean;\n  skipTransactions?: boolean;\n}\n\nexport function defaultSubqueryName(config: Partial<IConfig>): MinConfig {\n  if (config.subquery === undefined) {\n    throw new Error(`Must provide local path or IPFS cid of the subquery project`);\n  }\n  const ipfsMatch = config.subquery.match(IPFS_REGEX);\n  return {\n    ...config,\n    subqueryName:\n      config.subqueryName ??\n      (ipfsMatch\n        ? config.subquery.replace(IPFS_REGEX, '')\n        : last(getProjectRootAndManifest(config.subquery).root.split(path.sep))),\n  } as MinConfig;\n}\n\nexport function rebaseArgsWithManifest(argvs: ArgvOverrideOptions, rawManifest: unknown): void {\n  const options = plainToClass(RunnerNodeOptionsModel, (rawManifest as any)?.runner?.node?.options);\n  if (!options) {\n    return;\n  }\n\n  // Do this with any options as other SDKs might want to implement custom options\n  (Object.entries(options) as [keyof Omit<ArgvOverrideOptions, 'disableHistorical'> | 'historical', any][]).map(\n    ([key, value]) => {\n      // we override them if they are not provided in args/flag\n      if (key === 'historical') {\n        if (value !== undefined) {\n          // THIS IS OPPOSITE\n          argvs.historical = value === true ? 'height' : value;\n        }\n        return;\n      }\n      if (value !== undefined && argvs[key] === undefined) {\n        argvs[key] = value;\n      }\n    }\n  );\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/decorators.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isMainThread} from 'worker_threads';\nimport {getLogger} from '../logger';\n\nconst logger = getLogger('main');\nexport function mainThreadOnly(): MethodDecorator {\n  return (target, name: string | symbol, descriptor: PropertyDescriptor): void => {\n    if (!!descriptor && typeof descriptor.value === 'function') {\n      const orig = descriptor.value;\n      // tslint:disable no-function-expression no-invalid-this\n      descriptor.value = function (...args: any[]): any {\n        if (!isMainThread) {\n          logger.warn(`${name?.toString()} should only run in main thread`);\n        }\n        return orig.bind(this)(...args);\n      };\n    }\n  };\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/env.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync, writeFileSync, unlinkSync, mkdirSync, rmSync} from 'fs';\nimport {tmpdir} from 'os';\nimport {join} from 'path';\nimport {loadProjectEnvConfig, createSandboxProcessEnv} from './env';\n\ndescribe('Node Core Environment Utils', () => {\n  let testDir: string;\n  let envPath: string;\n\n  beforeEach(() => {\n    // Create a temporary directory for testing\n    testDir = join(tmpdir(), `subql-node-env-test-${Date.now()}`);\n    mkdirSync(testDir, {recursive: true});\n    envPath = join(testDir, '.env');\n  });\n\n  afterEach(() => {\n    // Clean up test directory\n    if (existsSync(testDir)) {\n      rmSync(testDir, {recursive: true, force: true});\n    }\n  });\n\n  describe('loadProjectEnvConfig', () => {\n    it('should return empty object when no .env file exists', () => {\n      const config = loadProjectEnvConfig(testDir);\n      expect(config).toEqual({});\n    });\n\n    it('should load environment variables from .env file', () => {\n      const envContent = [\n        'NODE_ENV=development',\n        'DATABASE_HOST=localhost',\n        'DATABASE_PORT=5432',\n        'INDEXER_WORKERS=4',\n        'LOG_LEVEL=debug',\n      ].join('\\n');\n\n      writeFileSync(envPath, envContent);\n\n      const config = loadProjectEnvConfig(testDir);\n      expect(config).toEqual({\n        NODE_ENV: 'development',\n        DATABASE_HOST: 'localhost',\n        DATABASE_PORT: '5432',\n        INDEXER_WORKERS: '4',\n        LOG_LEVEL: 'debug',\n      });\n    });\n\n    it('should handle parsing errors gracefully', () => {\n      const consoleSpy = jest.spyOn(console, 'warn').mockImplementation();\n\n      // Create an invalid .env file (binary content)\n      writeFileSync(envPath, Buffer.from([0x00, 0x01, 0x02, 0x03]));\n\n      const config = loadProjectEnvConfig(testDir);\n\n      expect(config).toBeDefined();\n\n      consoleSpy.mockRestore();\n    });\n  });\n\n  describe('createSandboxProcessEnv', () => {\n    it('should create process.env compatible object', () => {\n      const envConfig = {\n        NODE_ENV: 'development',\n        DATABASE_HOST: 'localhost',\n        DATABASE_PORT: '5432',\n        INDEXER_WORKERS: '4',\n      };\n\n      const processEnv = createSandboxProcessEnv(envConfig);\n\n      expect(processEnv).toEqual({\n        NODE_ENV: 'development',\n        DATABASE_HOST: 'localhost',\n        DATABASE_PORT: '5432',\n        INDEXER_WORKERS: '4',\n      });\n    });\n\n    it('should filter out undefined values', () => {\n      const envConfig = {\n        DEFINED_VAR: 'value',\n        UNDEFINED_VAR: undefined,\n        ANOTHER_VAR: 'another-value',\n      };\n\n      const processEnv = createSandboxProcessEnv(envConfig);\n\n      expect(processEnv).toEqual({\n        DEFINED_VAR: 'value',\n        ANOTHER_VAR: 'another-value',\n      });\n      expect(processEnv.UNDEFINED_VAR).toBeUndefined();\n    });\n\n    it('should handle empty string values', () => {\n      const envConfig = {\n        EMPTY_VAR: '',\n        ZERO_VAR: '0',\n      };\n\n      const processEnv = createSandboxProcessEnv(envConfig);\n\n      expect(processEnv).toEqual({\n        EMPTY_VAR: '',\n        ZERO_VAR: '0',\n      });\n    });\n\n    it('should handle empty config', () => {\n      const envConfig = {};\n\n      const processEnv = createSandboxProcessEnv(envConfig);\n\n      expect(processEnv).toEqual({});\n    });\n  });\n\n  describe('Integration test', () => {\n    it('should work end-to-end from file to sandbox env', () => {\n      const envContent = [\n        'NODE_ENV=production',\n        'DATABASE_URL=postgresql://prod-server:5432/subql',\n        'REDIS_URL=redis://prod-redis:6379',\n        'MAX_CONNECTIONS=20',\n        'ENABLE_CACHE=true',\n      ].join('\\n');\n\n      writeFileSync(envPath, envContent);\n\n      const config = loadProjectEnvConfig(testDir);\n      const processEnv = createSandboxProcessEnv(config);\n\n      expect(processEnv).toEqual({\n        NODE_ENV: 'production',\n        DATABASE_URL: 'postgresql://prod-server:5432/subql',\n        REDIS_URL: 'redis://prod-redis:6379',\n        MAX_CONNECTIONS: '20',\n        ENABLE_CACHE: 'true',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/env.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {existsSync} from 'fs';\nimport path from 'path';\nimport {config as dotenvConfig} from 'dotenv';\n\nexport interface EnvConfig {\n  [key: string]: string | undefined;\n}\n\n/**\n * Load environment variables from .env file in the project directory\n * @param projectDir - The project directory path\n * @returns Object containing environment variables\n */\nexport function loadProjectEnvConfig(projectDir: string): EnvConfig {\n  const envPath = path.join(projectDir, '.env');\n\n  if (!existsSync(envPath)) {\n    return {};\n  }\n\n  try {\n    const envConfig = dotenvConfig({path: envPath});\n    return envConfig.parsed || {};\n  } catch (error) {\n    console.warn(`Warning: Failed to load .env file at ${envPath}:`, error);\n    return {};\n  }\n}\n\n/**\n * Create a process.env object for sandbox injection\n * @param envConfig - Environment configuration object\n * @returns Object with environment variables for sandbox\n */\nexport function createSandboxProcessEnv(envConfig: EnvConfig): Record<string, string> {\n  const processEnv: Record<string, string> = {};\n\n  Object.keys(envConfig).forEach((key) => {\n    const value = envConfig[key];\n    if (value !== undefined) {\n      processEnv[key] = value;\n    }\n  });\n\n  return processEnv;\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/fetchHelper.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {retryOnFailAxios} from './fetchHelpers';\n\njest.setTimeout(30000);\n\ndescribe('fetchHelpers', () => {\n  it('retryOnFail', async () => {\n    const axiosError = new Error();\n    (axiosError as any).response = {status: 429};\n\n    const mockAxiosRequest = jest.fn().mockImplementation(() => {\n      throw axiosError;\n    });\n\n    const mockNotAxiosRequest = jest.fn().mockImplementation(() => {\n      throw new Error('Oh no it failed');\n    });\n    // If not Axios error, should only be called once\n    await expect(retryOnFailAxios(mockNotAxiosRequest, [429])).rejects.toThrow();\n    expect(mockNotAxiosRequest).toHaveBeenCalledTimes(1);\n\n    //If Axios error, should retry 5 times before throwing\n    await expect(retryOnFailAxios(mockAxiosRequest, [429])).rejects.toThrow();\n    expect(mockAxiosRequest).toHaveBeenCalledTimes(5);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/fetchHelpers.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {getLogger} from '../logger';\nimport {delay} from './promise';\n\nconst logger = getLogger('fetch');\n\nconst RETRY_COUNT = 5;\nconst RETRY_DELAY = 2;\n\nexport async function retryOnFail<T>(\n  request: () => Promise<T>,\n  shouldRetry: (error: any) => boolean,\n  retries = RETRY_COUNT\n): Promise<T> {\n  try {\n    return await request();\n  } catch (e: any) {\n    if (!shouldRetry(e)) throw e;\n    if (retries > 1) {\n      await delay(RETRY_DELAY);\n      return retryOnFail(request, shouldRetry, --retries);\n    } else {\n      logger.error(e, `Retries failed after ${RETRY_COUNT}`);\n      throw e;\n    }\n  }\n}\n\n// When dealing with Axios errors use shouldRetry\nexport async function retryOnFailAxios<T>(request: () => Promise<T>, statusCodes: number[]): Promise<T> {\n  return retryOnFail(request, (e) => !!statusCodes.find((t) => t === e?.response?.status));\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/graphql.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n  getTypeByScalarName,\n  GraphQLModelsType,\n  isHex,\n  hexToU8a,\n  u8aToBuffer,\n  u8aToHex,\n  bufferToU8a,\n  isBuffer,\n  isNull,\n  GraphQLEntityField,\n  GraphQLJsonFieldType,\n  blake2AsHex,\n} from '@subql/utils';\nimport {ModelAttributes, ModelAttributeColumnOptions} from '@subql/x-sequelize';\nimport {isArray, isObject} from 'lodash';\n\nexport function enumNameToHash(enumName: string): string {\n  return blake2AsHex(enumName).substr(2, 10);\n}\n\nexport interface EnumType {\n  enumValues: string[];\n  name?: string;\n  type?: string;\n}\n\nexport function modelsTypeToModelAttributes(\n  modelType: GraphQLModelsType,\n  enums: Map<string, EnumType>,\n  schema: string\n): ModelAttributes {\n  const fields = modelType.fields;\n  return Object.values(fields).reduce((acc, field) => {\n    acc[field.name] = getColumnOption(field, enums, schema);\n    return acc;\n  }, {} as ModelAttributes<any>);\n}\n\nexport function getColumnOption(\n  field: GraphQLEntityField,\n  enums: Map<string, EnumType>,\n  schema: string\n): ModelAttributeColumnOptions {\n  const allowNull = field.nullable;\n\n  let enumType: string | null = null;\n  if (field.isEnum) {\n    const enumTypeName = enumNameToHash(field.type);\n    const enumTypeNameDeprecated = `${schema}_enum_${enumNameToHash(field.type)}`;\n\n    [enumTypeName, enumTypeNameDeprecated].forEach((t) => {\n      if (enums.has(t)) {\n        enumType = t === enumTypeNameDeprecated ? `\"${t}\"` : `\"${schema}\".\"${enumTypeName}\"`;\n      }\n    });\n  }\n\n  if (field.isEnum && !enumType) throw new Error('Unable to get enum type');\n\n  const type = field.isEnum\n    ? `${enumType}${field.isArray ? '[]' : ''}`\n    : field.isArray || field.jsonInterface\n      ? getTypeByScalarName('Json')?.sequelizeType\n      : getTypeByScalarName(field.type)?.sequelizeType;\n\n  if (type === undefined) {\n    throw new Error('Unable to get model type');\n  }\n\n  const columnOption: ModelAttributeColumnOptions<any> = {\n    type,\n    comment: field.description,\n    allowNull,\n    primaryKey: field.type === 'ID',\n  };\n  if (field.type === 'BigInt') {\n    columnOption.get = function () {\n      const dataValue = this.getDataValue(field.name);\n      if (field.isArray) {\n        return dataValue ? dataValue.map((v: any) => BigInt(v)) : null;\n      }\n      return dataValue ? BigInt(dataValue) : null;\n    };\n    columnOption.set = function (val: any) {\n      if (field.isArray) {\n        this.setDataValue(\n          field.name,\n          (val as any[])?.map((v) => v.toString())\n        );\n      } else {\n        this.setDataValue(field.name, val?.toString());\n      }\n    };\n  }\n  if (field.type === 'Bytes') {\n    columnOption.get = function () {\n      const dataValue = this.getDataValue(field.name);\n      if (!dataValue) {\n        return null;\n      }\n      if (!isBuffer(dataValue)) {\n        throw new Error(`Bytes: store.get() returned type is not buffer type`);\n      }\n      return u8aToHex(bufferToU8a(dataValue));\n    };\n    columnOption.set = function (val: unknown) {\n      if (val === undefined || isNull(val)) {\n        this.setDataValue(field.name, null);\n      } else if (isHex(val)) {\n        const setValue = u8aToBuffer(hexToU8a(val));\n        this.setDataValue(field.name, setValue);\n      } else {\n        throw new Error(`input for Bytes type is only support unprefixed hex`);\n      }\n    };\n  }\n  if (field.jsonInterface) {\n    columnOption.get = function () {\n      const dataValue = this.getDataValue(field.name);\n\n      if (!dataValue || !field.jsonInterface) {\n        return null;\n      }\n      return field.isArray ? dataValue.map((v: any) => processGetJson(field, v)) : processGetJson(field, dataValue);\n    };\n    columnOption.set = function (val: unknown) {\n      if (val === undefined || isNull(val)) {\n        this.setDataValue(field.name, null);\n        return;\n      }\n      if (isArray(val)) {\n        const setValue = val.length === 0 ? [] : val.map((v) => processSetJson(v));\n        this.setDataValue(field.name, setValue);\n      } else if (isObject(val)) {\n        this.setDataValue(field.name, processSetJson(val));\n      } else {\n        throw new Error(`input for Json type only supports object or array, received type ${typeof val}`);\n      }\n    };\n  }\n  return columnOption;\n}\n\n/***\n * Process nested json get, output is same as input value type\n * @param field\n * @param value\n */\nfunction processGetJson(field: GraphQLEntityField | GraphQLJsonFieldType, value: any): any {\n  // bigIntFields and nestJsonFields from this level in the entity/json\n  const bigIntFields = field.jsonInterface?.fields.filter((f) => f.type === 'BigInt');\n  const nestJsonFields = field.jsonInterface?.fields.filter((f) => f.jsonInterface);\n  const processBigIntFields = (value: any) => {\n    if (bigIntFields) {\n      for (const bigIntField of bigIntFields) {\n        // If null is passed, we should not convert it to BigInt\n        if (value[bigIntField.name] !== undefined && value[bigIntField.name] !== null) {\n          value[bigIntField.name] = BigInt(value[bigIntField.name].slice(0, -1));\n        }\n      }\n    }\n    return value;\n  };\n  if (nestJsonFields) {\n    for (const nestJsonField of nestJsonFields) {\n      // have a nest field, and nest field is json type, also value is defined\n      if (nestJsonField.jsonInterface && value[nestJsonField.name]) {\n        value[nestJsonField.name] = processGetJson(nestJsonField, value[nestJsonField.name]);\n      }\n    }\n  }\n  return processBigIntFields(value);\n}\n\nfunction processSetJson(data: any): any {\n  return JSON.parse(\n    JSON.stringify(data, (key, value) => {\n      if (typeof value === 'bigint') {\n        return `${value}n`;\n      }\n      return value;\n    })\n  );\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './decorators';\nexport * from './object';\nexport * from './promise';\nexport * from './graphql';\nexport * from './queues';\nexport * from './project';\nexport * from './fetchHelpers';\nexport * from './configure';\nexport * from './reindex';\nexport * from './blocks';\nexport * from './blockHeightMap';\nexport * from './string';\n"
  },
  {
    "path": "packages/node-core/src/utils/object.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {camelCaseObjectKey} from './object';\n\nit('Convert objects key to camelCase', () => {\n  const object = {\n    entity: 'someEntity',\n    active_for_auction: 'someAuction',\n  };\n\n  const result = camelCaseObjectKey(object);\n\n  expect(result).toEqual({\n    entity: 'someEntity',\n    activeForAuction: 'someAuction',\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/object.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {assignWith, camelCase, isUndefined} from 'lodash';\n\nexport function assign<TObject, TSource1, TSource2>(\n  target: TObject,\n  src: TSource1,\n  src2?: TSource2\n): TObject & TSource1 & (TSource2 | undefined) {\n  return assignWith(target, src, src2, (objValue, srcValue) => (isUndefined(srcValue) ? objValue : srcValue));\n}\n\nexport function camelCaseObjectKey(object: Record<string, any>): object {\n  return Object.keys(object).reduce(\n    (result, key) => ({\n      ...result,\n      [camelCase(key)]: object[key],\n    }),\n    {}\n  );\n}\n\nexport function splitArrayByRatio(arr: number[], weights: number[]): number[][] {\n  const result: number[][] = [];\n  let start = 0;\n  for (let i = 0; i < weights.length; i++) {\n    const end = Math.floor(arr.length * weights[i]) + start;\n    result.push(arr.slice(start, end));\n    start = end;\n  }\n  return result;\n}\n\nexport function hasValue<T>(obj: T | undefined | null): obj is T {\n  return obj !== undefined && obj !== null;\n}\n\nexport function customCamelCaseGraphqlKey(str: string) {\n  return str\n    .replace(/([a-z])([A-Z])/g, '$1_$2')\n    .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n    .toLowerCase()\n    .replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/project.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isCustomDs} from '@subql/common-substrate';\nimport {\n  SubstrateBlockHandler,\n  SubstrateCallHandler,\n  SubstrateDatasource,\n  SubstrateDatasourceKind,\n  SubstrateEventHandler,\n  SubstrateHandlerKind,\n  SubstrateRuntimeHandler,\n} from '@subql/types';\nimport {BaseCustomDataSource} from '@subql/types-core';\nimport {getModulos} from './project';\n\nconst blockHandler: SubstrateBlockHandler = {\n  kind: SubstrateHandlerKind.Block,\n  handler: 'handleBlock',\n};\nconst callHandler: SubstrateCallHandler = {\n  kind: SubstrateHandlerKind.Call,\n  handler: 'handleCall',\n  filter: {method: 'call', module: 'module'},\n};\nconst eventHandler: SubstrateEventHandler = {\n  kind: SubstrateHandlerKind.Event,\n  handler: 'handleEvent',\n  filter: {method: 'event', module: 'module'},\n};\n\nconst makeDs = (handlers: SubstrateRuntimeHandler[]) => {\n  return {\n    name: '',\n    kind: SubstrateDatasourceKind.Runtime,\n    mapping: {\n      file: '',\n      handlers,\n    },\n  };\n};\n\ndescribe('Project Utils', () => {\n  it('gets the correct modulos', () => {\n    const modulos = getModulos<SubstrateDatasource, BaseCustomDataSource>(\n      [\n        makeDs([{...blockHandler, filter: {modulo: 5}}]),\n        makeDs([callHandler]),\n        makeDs([eventHandler, {...blockHandler, filter: {modulo: 2}}]),\n      ],\n      isCustomDs,\n      SubstrateHandlerKind.Block\n    );\n\n    expect(modulos).toEqual([5, 2]);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/project.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport {DEFAULT_PORT, GithubReader, IPFSReader, LocalReader} from '@subql/common';\nimport {\n  BaseAssetsDataSource,\n  BaseCustomDataSource,\n  BaseDataSource,\n  BaseTemplateDataSource,\n  Reader,\n} from '@subql/types-core';\nimport {findAvailablePort} from '@subql/utils';\nimport {QueryTypes, Sequelize} from '@subql/x-sequelize';\nimport {stringToArray, getSchedule, Schedule} from 'cron-converter';\nimport tar from 'tar';\nimport {NodeConfig} from '../configure/NodeConfig';\nimport {StoreService} from '../indexer';\nimport {getLogger} from '../logger';\nimport {exitWithError} from '../process';\nimport {CronFilter} from './blocks';\n\nconst logger = getLogger('Project-Utils');\n\nexport async function getValidPort(argvPort?: number): Promise<number> {\n  const validate = (x: any) => {\n    const p = parseInt(x);\n    return isNaN(p) ? null : p;\n  };\n\n  const port = validate(argvPort) ?? (await findAvailablePort(DEFAULT_PORT));\n  if (!port) {\n    const errMsg = `Unable to find available port (tried ports in range (${DEFAULT_PORT}..${\n      DEFAULT_PORT + 10\n    })). Try setting a free port manually by setting the --port flag`;\n    exitWithError(errMsg, logger);\n  }\n  return port;\n}\n\nexport async function prepareProjectDir(projectPath: string): Promise<string> {\n  const stats = fs.statSync(projectPath);\n  if (stats.isFile()) {\n    const sep = path.sep;\n    const tmpDir = os.tmpdir();\n    const tempPath = fs.mkdtempSync(`${tmpDir}${sep}`);\n    // Will promote errors if incorrect format/extension\n    await tar.x({file: projectPath, cwd: tempPath});\n    return tempPath.concat('/package');\n  } else if (stats.isDirectory()) {\n    return projectPath;\n  }\n  throw new Error(`Project path: ${projectPath} doesn't exist`);\n}\n\nexport async function getExistingProjectSchema(\n  nodeConfig: NodeConfig,\n  sequelize: Sequelize\n): Promise<string | undefined> {\n  const schema = nodeConfig.dbSchema;\n\n  let schemas: string[];\n  try {\n    const result = await sequelize.query(`SELECT schema_name FROM information_schema.schemata`, {\n      type: QueryTypes.SELECT,\n    });\n    schemas = result.map((x: any) => x.schema_name);\n  } catch (err) {\n    exitWithError(new Error(`Unable to fetch all schemas`, {cause: err}), logger);\n  }\n  if (!schemas.includes(schema)) {\n    return undefined;\n  }\n  return schema;\n}\n\nexport async function getEnumDeprecated(sequelize: Sequelize, enumTypeNameDeprecated: string): Promise<unknown[]> {\n  const [resultsDeprecated] = await sequelize.query(\n    `select e.enumlabel as enum_value\n         from pg_type t\n         join pg_enum e on t.oid = e.enumtypid\n         where t.typname = ?\n         order by enumsortorder;`,\n    {replacements: [enumTypeNameDeprecated]}\n  );\n  return resultsDeprecated;\n}\n\nexport type IsCustomDs<DS, CDS> = (x: DS | CDS) => x is CDS;\n// TODO remove this type, it would result in a breaking change though\n/**\n * @deprecated Please unwrap the datasource from this type\n * */\nexport type SubqlProjectDs<DS extends BaseDataSource> = DS;\n\nexport function getModulos<DS extends BaseDataSource, CDS extends DS & BaseCustomDataSource>(\n  dataSources: DS[],\n  isCustomDs: IsCustomDs<DS, CDS>,\n  blockHandlerKind: string\n): number[] {\n  const modulos: number[] = [];\n  for (const ds of dataSources) {\n    if (isCustomDs(ds)) {\n      continue;\n    }\n    for (const handler of ds.mapping.handlers) {\n      if (handler.kind === blockHandlerKind && handler.filter && handler.filter.modulo) {\n        modulos.push(handler.filter.modulo);\n      }\n    }\n  }\n  return modulos;\n}\n\nexport function isAssetsDs(ds: unknown): ds is BaseAssetsDataSource {\n  return !!(ds as any).assets;\n}\n\nexport async function updateDataSourcesV1_0_0<DS extends BaseDataSource, CDS extends DS & BaseCustomDataSource>(\n  _dataSources: (DS | CDS)[],\n  reader: Reader,\n  root: string,\n  isCustomDs: IsCustomDs<DS, CDS>\n): Promise<(DS | CDS)[]> {\n  // force convert to updated ds\n  return Promise.all(\n    _dataSources.map(async (dataSource) => {\n      dataSource.startBlock = dataSource.startBlock ?? 1;\n      const entryScript = await loadDataSourceScript(reader, dataSource.mapping.file);\n      if (isAssetsDs(dataSource) && dataSource.assets) {\n        for (const [, asset] of dataSource.assets.entries()) {\n          // Only need to resolve path for local file\n          if (reader instanceof LocalReader) {\n            asset.file = path.resolve(root, asset.file);\n          } else {\n            asset.file = await fetchAndSaveFile(reader, root, asset.file, '');\n          }\n        }\n      }\n      const file = await updateDataSourcesEntry(reader, dataSource.mapping.file, root, entryScript);\n      if (isCustomDs(dataSource)) {\n        if (dataSource.processor) {\n          dataSource.processor.file = await updateProcessor(reader, root, dataSource.processor.file);\n        }\n        return {\n          ...dataSource,\n          mapping: {...dataSource.mapping, file},\n        };\n      } else {\n        return {\n          ...dataSource,\n          mapping: {...dataSource.mapping, file},\n        };\n      }\n    })\n  );\n}\n\nexport async function updateDataSourcesEntry(\n  reader: Reader,\n  file: string,\n  root: string,\n  script: string\n): Promise<string> {\n  if (reader instanceof LocalReader) return file;\n  else if (reader instanceof IPFSReader || reader instanceof GithubReader) {\n    return saveFile(reader, root, file, script);\n  }\n  throw new Error('Un-known reader type');\n}\n\nexport async function updateProcessor(reader: Reader, root: string, file: string): Promise<string> {\n  if (reader instanceof LocalReader) {\n    return path.resolve(root, file);\n  } else {\n    return fetchAndSaveFile(reader, root, file);\n  }\n}\n\nexport async function fetchAndSaveFile(reader: Reader, root: string, file: string, ext = 'js'): Promise<string> {\n  if (!(reader instanceof IPFSReader || reader instanceof GithubReader)) {\n    throw new Error('Only IPFS and Github readers can save remote files');\n  }\n  const res = await reader.getFile(file);\n  if (!res) {\n    throw new Error(`Unable to read file ${file}`);\n  }\n  return saveFile(reader, root, file, res, ext);\n}\n\nexport async function saveFile(reader: Reader, root: string, file: string, data: string, ext = 'js'): Promise<string> {\n  if (!(reader instanceof IPFSReader || reader instanceof GithubReader)) {\n    throw new Error('Only IPFS and Github readers can save remote files');\n  }\n  const resolved = path.resolve(root, file.replace('ipfs://', ''));\n  const outputPath = ext ? `${resolved}.${ext}` : resolved;\n  if (fs.existsSync(outputPath)) {\n    return outputPath;\n  }\n  await fs.promises.writeFile(outputPath, data);\n  return outputPath;\n}\n\nexport async function loadDataSourceScript(reader: Reader, file?: string): Promise<string> {\n  let entry = file;\n  //For RuntimeDataSourceV0_0_1\n  if (!entry) {\n    const pkg = await reader.getPkg();\n    if (pkg === undefined) throw new Error('Project package.json is not found');\n    if (pkg.main) {\n      entry = pkg.main.startsWith('./') ? pkg.main : `./${pkg.main}`;\n    } else {\n      entry = './dist';\n    }\n  }\n  //Else get file\n  const entryScript = await reader.getFile(entry);\n  if (entryScript === undefined) {\n    throw new Error(`Entry file ${entry} for datasource not exist`);\n  }\n  return entryScript;\n}\n\nexport type IsRuntimeDs<DS> = (ds: DS) => ds is DS;\n\n// eslint-disable-next-line @typescript-eslint/require-await\nexport async function insertBlockFiltersCronSchedules<DS extends BaseDataSource = BaseDataSource>(\n  dataSources: DS[],\n  getBlockTimestamp: (height: number) => Promise<Date>,\n  isRuntimeDs: IsRuntimeDs<DS>,\n  blockHandlerKind: string\n): Promise<DS[]> {\n  dataSources = await Promise.all(\n    dataSources.map(async (ds) => {\n      if (isRuntimeDs(ds)) {\n        const startBlock = ds.startBlock ?? 1;\n        let timestampReference: Date;\n\n        ds.mapping.handlers = await Promise.all(\n          ds.mapping.handlers.map(async (handler) => {\n            if (handler.kind === blockHandlerKind) {\n              if (handler.filter?.timestamp) {\n                if (!timestampReference) {\n                  const blockTimestamp = await getBlockTimestamp(startBlock);\n                  timestampReference = blockTimestamp;\n                }\n\n                let cronArr: number[][];\n                try {\n                  cronArr = stringToArray(handler.filter.timestamp);\n                } catch (e) {\n                  throw new Error(`Invalid Cron string: ${handler.filter.timestamp}`);\n                }\n\n                const schedule = getSchedule(cronArr, timestampReference, 'utc');\n                handler.filter.cronSchedule = {\n                  schedule: schedule,\n                  get next() {\n                    return (this.schedule as Schedule).next().toMillis();\n                  },\n                } satisfies CronFilter['cronSchedule'];\n              }\n            }\n            return handler;\n          })\n        );\n      }\n      return ds;\n    })\n  );\n\n  return dataSources;\n}\n\nexport async function loadProjectTemplates<T extends BaseTemplateDataSource>(\n  templates: T[] | undefined,\n  root: string,\n  reader: Reader,\n  isCustomDs: IsCustomDs<T, T & BaseCustomDataSource>\n): Promise<T[]> {\n  if (!templates || !templates.length) {\n    return [];\n  }\n\n  const templateIsCustomDs = (template: T): template is T & BaseCustomDataSource =>\n    isCustomDs(template) && 'name' in template;\n  const dsTemplates = await updateDataSourcesV1_0_0(templates, reader, root, templateIsCustomDs);\n  return dsTemplates.map((ds, index) => ({\n    ...ds,\n    name: templates[index].name,\n  }));\n}\n\nexport function getStartHeight(dataSources: BaseDataSource[]): number {\n  const startBlocksList = dataSources.map((item) => item.startBlock || 1);\n  if (startBlocksList.length === 0) {\n    throw new Error(`Failed to find a valid datasource, Please check your endpoint if specName filter is used.`);\n  } else {\n    return Math.min(...startBlocksList);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/promise.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BackoffError, backoffRetry, delay, timeout} from './promise';\n\ndescribe('Promise Utils', () => {\n  it('utils.promise delay()', async () => {\n    const start = new Date();\n    await delay(1);\n    const millsecDiff = new Date().getTime() - start.getTime();\n    expect(millsecDiff).toBeGreaterThanOrEqual(1000);\n    expect(millsecDiff).toBeLessThan(1050);\n  });\n\n  it('utils.promise timeout()', async () => {\n    const firstPromise = (async () => {\n      await delay(1);\n      return true;\n    })();\n    await expect(timeout(firstPromise, 2)).resolves.toEqual(true);\n    const secondPromise = delay(3);\n    await expect(timeout(secondPromise, 2)).rejects.toThrow(/timeout/);\n  });\n\n  describe('BackoffRetry', () => {\n    it(`doesn't retry with success`, async () => {\n      const fn = jest.fn(() => Promise.resolve());\n      await backoffRetry(fn, 5);\n      expect(fn).toHaveBeenCalledTimes(1);\n    });\n\n    it(`retries multiple times`, async () => {\n      let count = 0;\n\n      const fn = jest.fn(() => {\n        if (count < 1) {\n          count++;\n          return Promise.reject(new Error('Test'));\n        }\n        return Promise.resolve();\n      });\n\n      await backoffRetry(fn, 5);\n\n      expect(fn).toHaveBeenCalledTimes(2);\n    });\n\n    it(`throws when reaching the number of retries`, async () => {\n      const e = new Error('Test');\n      const fn = jest.fn(() => Promise.reject(e));\n      await expect(() => backoffRetry(fn, 2)).rejects.toEqual(new BackoffError(e));\n    });\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/promise.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n//deprecate method, use delay from @subql/common\nexport async function delay(sec: number): Promise<void> {\n  return new Promise((resolve) => {\n    setTimeout(resolve, sec * 1000);\n  });\n}\n\nexport async function timeout<T>(promise: Promise<T>, sec: number, errMsg = 'timeout'): Promise<T> {\n  // so we can have a more comprehensive error stack\n  const err = new Error(errMsg);\n  let timeout: NodeJS.Timeout;\n  return Promise.race([\n    promise.then(\n      (r) => {\n        clearTimeout(timeout);\n        return r;\n      },\n      (e) => {\n        clearTimeout(timeout);\n        throw e;\n      }\n    ),\n    new Promise<never>((resolve, reject) => {\n      timeout = setTimeout(() => reject(err), sec * 1000);\n    }),\n  ]);\n}\n\nexport class BackoffError extends Error {\n  readonly lastError: any;\n\n  constructor(lastError: any, options?: ErrorOptions) {\n    super('Maximum number of retries reached', options);\n    this.lastError = lastError;\n  }\n}\n\nexport function isBackoffError(error: any): error is BackoffError {\n  return error instanceof BackoffError;\n}\n\nasync function backoffRetryInternal<T>(fn: () => Promise<T>, maxAttempts: number, currentAttempt = 0): Promise<T> {\n  try {\n    return await fn();\n  } catch (e) {\n    if (maxAttempts - 1 === currentAttempt) {\n      throw new BackoffError(e, {cause: e});\n    }\n    await delay(Math.pow(2, currentAttempt));\n    return backoffRetryInternal(fn, maxAttempts, currentAttempt + 1);\n  }\n}\n\nexport async function backoffRetry<T>(fn: () => Promise<T>, attempts = 5): Promise<T> {\n  return backoffRetryInternal(fn, attempts);\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/queues/autoQueue.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {AutoQueue} from './autoQueue';\n\ndescribe('AutoQueue', () => {\n  it('resolves promises in the order they are pushed', async () => {\n    const autoQueue = new AutoQueue<number>(10, 5);\n    const results: number[] = [];\n\n    const tasks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((v) => async () => {\n      const randomTime = Math.floor(Math.random() * 1000);\n      await new Promise((resolve) => setTimeout(resolve, randomTime));\n\n      return v;\n    });\n\n    await Promise.all(\n      tasks.map(async (t) => {\n        const r = await autoQueue.put(t);\n\n        results.push(r);\n      })\n    );\n\n    expect(results).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n  });\n\n  it('doesnt resolve tasks if flush is called', async () => {\n    const autoQueue = new AutoQueue<number>(10, 2);\n    const results: number[] = [];\n    let abortedCount = 0;\n\n    const tasks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((v) => async () => {\n      await new Promise((resolve) => setTimeout(resolve, 100));\n\n      return v;\n    });\n\n    tasks.map((t) => {\n      void autoQueue\n        .put(t)\n        .then((r) => {\n          results.push(r);\n        })\n        .catch((e) => {\n          abortedCount++;\n        });\n    });\n\n    // Wait for some tasks to complete\n    await new Promise((resolve) => setTimeout(resolve, 110));\n\n    autoQueue.flush();\n\n    expect(autoQueue.size).toBe(0);\n\n    // Wait for any other tasks to be completed\n    await new Promise((resolve) => setTimeout(resolve, 1000));\n\n    expect(results).toEqual([1, 2]);\n    // Match concurrency\n    expect(abortedCount).toEqual(2);\n  });\n\n  it('has a cap on the number of out of order tasks', async () => {\n    const autoQueue = new AutoQueue<number>(10, 2, 0.2);\n    const results: number[] = [];\n\n    const tasks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((v) => async () => {\n      // Set a large timeout for the first task to simulate blocking\n      const randomTime = v === 1 ? 400 : 100;\n      await new Promise((resolve) => setTimeout(resolve, randomTime));\n\n      return v;\n    });\n\n    await expect(\n      Promise.all(\n        tasks.map(async (t) => {\n          const r = await autoQueue.put(t);\n\n          results.push(r);\n        })\n      )\n    ).rejects.toEqual(new Error('Auto Queue process task timeout in 0.2 seconds. Please increase --timeout'));\n  });\n\n  it('can adjust the parallelism while running', async () => {\n    const autoQueue = new AutoQueue<number>(10, 2);\n    const results: number[] = [];\n\n    const tasks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((v) => async () => {\n      await new Promise((resolve) => setTimeout(resolve, 100));\n\n      return v;\n    });\n\n    const start1 = new Date();\n    await Promise.all(\n      tasks.map(async (t) => {\n        const r = await autoQueue.put(t);\n        results.push(r);\n      })\n    );\n\n    const end1 = new Date();\n    expect(end1.getTime() - start1.getTime()).toBeGreaterThanOrEqual(500);\n\n    // Update the concurrency, the next batch should complete much quicker\n    autoQueue.concurrency = 5;\n\n    const tasks2 = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20].map((v) => async () => {\n      await new Promise((resolve) => setTimeout(resolve, 100));\n\n      return v;\n    });\n\n    const start2 = new Date();\n    await Promise.all(\n      tasks2.map(async (t) => {\n        const r = await autoQueue.put(t);\n        results.push(r);\n      })\n    );\n    const end2 = new Date();\n    expect(end2.getTime() - start2.getTime()).toBeLessThanOrEqual(300);\n  });\n\n  it('includes running tasks in the size and free space', /*async*/ () => {\n    const autoQueue = new AutoQueue<void>(10, 2);\n\n    let resolveFn: () => void = () => {\n      /* Nothing */\n    };\n    const pendingPromise = new Promise<void>((resolve) => {\n      resolveFn = resolve;\n    });\n\n    const task = async () => {\n      await pendingPromise;\n    };\n\n    void autoQueue.put(task);\n\n    expect(autoQueue.size).toEqual(1);\n    expect(autoQueue.freeSpace).toEqual(9);\n    expect(autoQueue.size + (autoQueue.freeSpace ?? 0)).toEqual(autoQueue.capacity);\n\n    // Assertions done, complete the task\n    resolveFn();\n  });\n\n  it('resumes after flushing', async () => {\n    const autoQueue = new AutoQueue<number>(10, 2, 1);\n\n    const results: number[] = [];\n\n    const tasks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((v) => async () => {\n      await new Promise((resolve) => setTimeout(resolve, 100));\n\n      return v;\n    });\n\n    tasks.map((t) => {\n      void autoQueue\n        .put(t)\n        .then((r) => {\n          results.push(r);\n        })\n        .catch((e) => {\n          // We expect some to throw as they get flushed\n        });\n    });\n\n    // Wait for some tasks to complete\n    await new Promise((resolve) => setTimeout(resolve, 200));\n\n    autoQueue.flush();\n\n    const tasks2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((v) => async () => {\n      await new Promise((resolve) => setTimeout(resolve, 100));\n      return v;\n    });\n\n    await Promise.all(\n      tasks2.map((t) => {\n        return autoQueue.put(t).then((r) => {\n          results.push(r + 10);\n        });\n      })\n    );\n\n    expect(results).toEqual([1, 2, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n  });\n\n  it('resolves the isIdle promise when the queue becomes idle', async () => {\n    const autoQueue = new AutoQueue<number>(10, 2, 1);\n\n    const pendingIdle = autoQueue.onIdle();\n\n    const tasks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((v) => async () => {\n      await new Promise((resolve) => setTimeout(resolve, 100));\n\n      return v;\n    });\n\n    autoQueue.putMany(tasks);\n\n    await expect(pendingIdle).resolves.toBeUndefined();\n  });\n\n  it('correctly processes out of order tasks', async () => {\n    // This test fills up the queue with tasks, all but the first one completes then the rest should resolve\n    let firstTask: (value: unknown) => void = () => {\n      /* Nothing*/\n    };\n    let lastResolve: (value: unknown) => void;\n\n    const lastDone = new Promise((resolve) => (lastResolve = resolve));\n\n    const numTasks = 1000;\n\n    const tasks = new Array(numTasks).fill(0).map((_, i) => async () => {\n      if (i === 0) {\n        await new Promise((resolve) => {\n          firstTask = resolve;\n        });\n        return i;\n      } else {\n        if (i === numTasks - 1) {\n          lastResolve(i);\n        }\n        return i;\n      }\n    });\n\n    const autoQueue = new AutoQueue<number>(numTasks, numTasks);\n    const pendingTasks = autoQueue.putMany(tasks);\n\n    await lastDone;\n\n    firstTask(undefined);\n\n    await expect(Promise.all(pendingTasks)).resolves.not.toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/queues/autoQueue.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {EventEmitter2} from '@nestjs/event-emitter';\nimport {timeout} from '../promise';\nimport {IQueue, Queue} from './queue';\n\nexport class TaskFlushedError extends Error {\n  readonly name = 'TaskFlushedError';\n\n  constructor(queueName = 'Auto') {\n    super(`This task was flushed from the ${queueName} queue before completing`);\n  }\n}\n\nexport function isTaskFlushedError(e: any): e is TaskFlushedError {\n  return (e as TaskFlushedError)?.name === 'TaskFlushedError';\n}\n\nexport type Task<T> = () => Promise<T> | T;\n\ntype Action<T> = {\n  index: number;\n  task: Task<T>;\n  resolve: (value: T) => void;\n  reject: (reason: any) => void;\n};\n\n/*\n * AutoQueue processes asnyc functions in order with a level of concurrency\n * When concurrency is used it will be running many functions concurrently,\n * but the promisies for this will still resolve in order they were inserted in the queue\n */\nexport class AutoQueue<T> implements IQueue {\n  private pendingPromise = false;\n  private queue: Queue<Action<T>>;\n  private _abort = false;\n  private _resolveIdle?: () => void;\n  // private processingTasks = 0;\n\n  private eventEmitter = new EventEmitter2();\n\n  private runningTasks: Promise<void | T>[] = [];\n\n  // Completed tasks that have completed before earlier tasks\n  private outOfOrderTasks: Record<number, {action: Action<T>; result?: T; error?: unknown}> = {};\n  // Next index assigned to a task when pushing to the queue\n  private nextIndex = 0;\n  // Next task to resolve, used to order the outOfOrderTasks\n  private nextTask = 0;\n  // Flag to ensure processOutOfOrderTasks is not re-entrant\n  private isProcessingOutOfOrder = false;\n\n  /**\n   * @param {number} capacity - The size limit of the queue, if undefined there is no limit\n   * @param {number} [concurrency=1] - The number of parallel tasks that can be processed at any one time.\n   * @param {number} [taskTimeoutSec=900] - A timeout for tasks to complete in. Units are seconds. Align with nodeConfig process timeout.\n   * @param {string} [name] - A name for the queue to help with debugging\n   * */\n  constructor(\n    capacity?: number,\n    public concurrency = 1,\n    private taskTimeoutSec = 900,\n    protected name = 'Auto'\n  ) {\n    this.queue = new Queue<Action<T>>(capacity);\n  }\n\n  get size(): number {\n    return this.queue.size + this.runningTasks.length + Object.keys(this.outOfOrderTasks).length;\n  }\n\n  get capacity(): number | undefined {\n    return this.queue.capacity;\n  }\n\n  get freeSpace(): number | undefined {\n    if (!this.capacity) return undefined;\n    return this.capacity - this.size;\n  }\n\n  /*\n   * We don't want this function to be async\n   * If it is async it will return a promise that throws rather than throwing the function\n   */\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  put(item: Task<T>): Promise<T> {\n    return this.putMany([item])[0];\n  }\n\n  // eslint-disable-next-line @typescript-eslint/promise-function-async\n  putMany(tasks: Array<Task<T>>): Promise<T>[] {\n    if (this.freeSpace && tasks.length > this.freeSpace) {\n      throw new Error(`${this.name} Queue exceeds max size of ${this.capacity}`);\n    }\n\n    if (this._abort) {\n      throw new Error(`${this.name} Queue has been aborted`);\n    }\n\n    return tasks.map((task, index) => {\n      return new Promise((resolve, reject) => {\n        this.queue.put({task, resolve, reject, index: this.nextIndex++});\n        if (tasks.length - 1 === index) {\n          void this.take();\n        }\n      });\n    });\n  }\n\n  private processOutOfOrderTasks() {\n    // If already processing, let the existing call handle it.\n    if (this.isProcessingOutOfOrder) return;\n    this.isProcessingOutOfOrder = true;\n\n    try {\n      // Loop as long as the next task in sequence is present in the outOfOrderTasks map\n      let record = this.outOfOrderTasks[this.nextTask];\n      while (record !== undefined) {\n        if (record.error !== undefined) {\n          record.action.reject(record.error);\n        } else if (record.result !== undefined) {\n          record.action.resolve(record.result);\n        }\n\n        delete this.outOfOrderTasks[this.nextTask];\n        this.nextTask++;\n\n        // Check for the next record for the next iteration\n        record = this.outOfOrderTasks[this.nextTask];\n      }\n    } finally {\n      this.isProcessingOutOfOrder = false;\n    }\n  }\n\n  private async take(): Promise<void> {\n    if (this.pendingPromise) return;\n    if (this._abort) {\n      return;\n    }\n\n    while (!this._abort) {\n      const action = this.queue.take();\n\n      // No more actions to start, take will be called again when new items are pushed\n      if (!action) break;\n\n      this.pendingPromise = true;\n\n      const p = timeout(\n        Promise.resolve(action.task()),\n        this.taskTimeoutSec,\n        `${this.name} Queue process task timeout in ${this.taskTimeoutSec} seconds. Please increase --timeout`\n      )\n        .then((result) => {\n          // Queue was flushed while task was running, we ned to discard now\n          if (this.nextTask > action.index) {\n            action.reject(new TaskFlushedError(this.name));\n            return;\n          }\n          this.outOfOrderTasks[action.index] = {action, result};\n        })\n        .catch((error) => {\n          // Queue was flushed while task was running, we ned to discard now\n          if (this.nextTask > action.index) {\n            action.reject(new TaskFlushedError(this.name));\n            return;\n          }\n          this.outOfOrderTasks[action.index] = {action, error};\n        })\n        .finally(() => {\n          const index = this.runningTasks.indexOf(p);\n          // If the index is -1 then the queue will have been flushed\n          if (index >= 0) {\n            this.processOutOfOrderTasks();\n            this.runningTasks.splice(index, 1);\n          }\n        });\n\n      this.runningTasks.push(p);\n\n      if (this.runningTasks.length >= this.concurrency) {\n        // Load up more when any task completes\n        await Promise.any(this.runningTasks);\n      }\n    }\n\n    // Processed all items in the queue\n    this._resolveIdle?.();\n    this._resolveIdle = undefined;\n    this.pendingPromise = false;\n  }\n\n  flush(): void {\n    // Empty the queue\n    this.queue.takeAll();\n\n    // Remove reference to runing tasks, they will still continue running but the result wont be used\n    this.runningTasks = [];\n\n    // Set the next task to the index that would be used after flush\n    this.nextTask = this.nextIndex;\n    // Clean up out of order tasks\n    Object.entries(this.outOfOrderTasks).map(([id, task]) => {\n      // Is this desired behaviour? The other option would be resolving undefined\n      task.action.reject(new TaskFlushedError(this.name));\n    });\n    this.outOfOrderTasks = {};\n    this.pendingPromise = false;\n  }\n\n  abort(): void {\n    this._abort = true;\n  }\n\n  on(evt: 'size', callback: (size: number) => void | Promise<void>): () => void {\n    this.eventEmitter.on(evt, callback as (size: number) => void);\n\n    return () => this.eventEmitter.off(evt, callback as (size: number) => void);\n  }\n\n  async onIdle(): Promise<void> {\n    if (this.size === 0) {\n      return;\n    }\n\n    return new Promise((resolve) => {\n      const currentResolve = this._resolveIdle;\n      this._resolveIdle = () => {\n        currentResolve?.();\n        resolve();\n      };\n    });\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/queues/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './autoQueue';\nexport * from './queue';\nexport * from './rampQueue';\n"
  },
  {
    "path": "packages/node-core/src/utils/queues/queue.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport interface IQueue {\n  size: number;\n  capacity: number | undefined;\n  freeSpace: number | undefined;\n\n  flush(): void;\n}\n\nexport class Queue<T> implements IQueue {\n  protected items: T[] = [];\n  private _capacity?: number;\n\n  constructor(capacity?: number) {\n    this._capacity = capacity;\n  }\n\n  get size(): number {\n    return this.items.length;\n  }\n\n  get capacity(): number | undefined {\n    return this._capacity;\n  }\n\n  get freeSpace(): number | undefined {\n    if (!this._capacity) return undefined;\n\n    return this._capacity - this.size;\n  }\n\n  put(item: T): void {\n    this.putMany([item]);\n  }\n\n  putMany(items: T[]): void {\n    if (this.freeSpace && items.length > this.freeSpace) {\n      throw new Error('Queue exceeds max size');\n    }\n    this.items.push(...items);\n  }\n\n  peek(): T | undefined {\n    return this.items[0];\n  }\n\n  take(): T | undefined {\n    return this.items.shift();\n  }\n\n  takeMany(size: number): T[] {\n    const sizeCapped = Math.min(this.size, size);\n\n    const result = this.items.slice(0, sizeCapped);\n    this.items = this.items.slice(sizeCapped);\n\n    return result;\n  }\n\n  takeAll(): T[] {\n    const result = this.items;\n\n    this.items = [];\n    return result;\n  }\n\n  flush(): void {\n    this.takeAll();\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/queues/rampQueue.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Task} from './autoQueue';\nimport {RampQueue} from './rampQueue';\n\nconst testSizes = [\n  4.448733415947499, 8.956082893010741, 1.0740251087438613, 7.874408027526685, 2.095588330681719, 9.877603058371257,\n  0.26588775084013694, 5.3688758024204075, 4.671317302459488, 4.936036470903067, 7.463695662357379, 0.0711211590650418,\n  4.841152155689485, 6.589399364540089, 5.33840341477309, 8.083555618831673, 0.9052566506797755, 5.9079018928373035,\n  4.846492987181811, 8.245959543695747, 5.460921697188357, 0.7043806224121507, 2.3857434319496518, 2.6918821593173825,\n  2.1284178622273875, 4.6586931023608, 5.541801214592789, 7.699660358512865, 1.7609267208636559, 7.374614871844476,\n  3.467359287274774, 1.9130382916923239, 4.299989967525457, 8.700538279205558, 9.565834125047408, 1.8466949701526802,\n  6.537691936703256, 1.768453891237669, 5.692631134946318, 8.628395051306788, 5.472044652806851, 9.927113870306119,\n  4.003094529277136, 0.552330717827545, 3.5144104884478566, 7.449595823096287, 2.8985520335505566, 5.947189837345519,\n  3.0711372037168583, 1.6113066655669672, 6.921119496961885, 4.719632718538214, 7.871754171657878, 7.955877161534463,\n  3.397497333755941, 9.496938503818358, 1.3986331511241934, 5.622688974863552, 2.8435658149293097, 3.866639909234073,\n  6.316575461599183, 3.141113012713883, 2.776692764764137, 5.831976543135431, 4.288044903146373, 6.048401548461621,\n  2.6875146658212157, 6.822941828005713, 8.10971754598745, 0.3413062242535725, 8.897781544073045, 6.865489802832028,\n  3.894256575593764, 5.862579766647702, 0.6062292779262113, 2.5020990968271106, 0.4564383819215645, 7.437457990684706,\n  5.378929658223783, 6.404423211376513, 3.4856467856434903, 1.78756098752324, 5.06180877528712, 5.971995837564927,\n  0.3329444767396139, 5.528156896524639, 2.6196190996965063, 6.971005783415343, 9.948474242499683, 3.011190899660412,\n  8.133780227538313, 2.4909706549660715, 5.603675099720298, 5.136555674514199, 3.5004619769181144, 6.445875763339708,\n  0.9132682345511878, 4.094728057715262, 8.94382906736585, 2.4066587617826785,\n];\n\ndescribe('RampQueue', () => {\n  it('Ramps correctly', async () => {\n    const queue = new RampQueue<number>((v: number) => v, 10, 100);\n\n    // Initial should always be 1\n    expect(queue.concurrency).toBe(1);\n\n    await queue.put(() => Promise.resolve(10));\n\n    // A single item shouldn't change the concurrenct\n    expect(queue.concurrency).toBe(1);\n\n    // Fill up to initial capacity\n    const tasks: Task<number>[] = new Array(99).fill(0).map((_, i) => () => Promise.resolve(testSizes[i]));\n    await Promise.all(queue.putMany(tasks));\n\n    // Concurrency should still be one since capacity has only just been reached, from now we should be adjusting capacity\n    // expect(queue.concurrency).toBe(1);\n\n    const tasks1: Task<number>[] = new Array(100).fill(0).map((_, i) => () => Promise.resolve(testSizes[i]));\n    await Promise.all(queue.putMany(tasks1));\n\n    expect(queue.concurrency).toBe(7);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/queues/rampQueue.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {getLogger} from '../../logger';\nimport {AutoQueue, Task} from './autoQueue';\n\nconst median = (arr: number[]): number => {\n  if (!arr.length) return 0;\n  const s = [...arr].sort((a, b) => a - b);\n  const mid = Math.floor(s.length / 2);\n  return s.length % 2 ? s[mid] : (s[mid - 1] + s[mid]) / 2;\n};\n\nconst MAX_SIZES = 1000;\nconst MIN_SIZES = 5;\n\nconst logger = getLogger('RampQueue');\n\n/**\n * The ramp queue is an extension of the AutoQueue which dynamically adjusts the concurrency based on the getSize function.\n * It will start at concurrency 1 and ramp up to the max concurrency unless there is a large jump above the median size then it will decrease.\n * */\nexport class RampQueue<T> extends AutoQueue<T> {\n  #maxConcurrency: number;\n  #sizes: number[] = [];\n  #totalItems = 0;\n\n  constructor(\n    private getSize: (data: T) => number,\n    concurrency: number,\n    capacity?: number,\n    timeout?: number,\n    name?: string\n  ) {\n    super(capacity, 1, timeout, name);\n    this.#maxConcurrency = concurrency;\n  }\n\n  async put(item: Task<T>): Promise<T> {\n    return this.putMany([item])[0];\n  }\n\n  putMany(tasks: Task<T>[]): Promise<T>[] {\n    return super.putMany(tasks).map((r) =>\n      r.then((d) => {\n        this.adjustConcurrency(d);\n        return d;\n      })\n    );\n  }\n\n  private setConcurrency(newConcurrency: number) {\n    const clamped = Math.max(1, Math.min(Math.floor(newConcurrency), this.#maxConcurrency));\n    if (clamped > this.concurrency) {\n      logger.debug(`${this.name} increased concurrency to ${clamped}`);\n    } else if (clamped < this.concurrency) {\n      logger.debug(`${this.name} decreased concurrency to ${clamped}`);\n    }\n    this.concurrency = clamped;\n  }\n\n  private adjustConcurrency(data: T): void {\n    try {\n      const m = median(this.#sizes);\n      const size = this.getSize(data);\n\n      this.addSize(size);\n\n      // Not enough data to construct a median\n      if (this.#sizes.length < MIN_SIZES) {\n        return;\n      }\n\n      if (size > m * 2) {\n        // Inverse of the size compared to the median. E.g if a block is 5x as big as the median then the batch size should be 1/5 of the max\n        const multiplier = m / size;\n        this.setConcurrency(this.#maxConcurrency * multiplier);\n      } else if (this.#totalItems % MIN_SIZES === 0) {\n        // Increase by 10% of max\n        this.setConcurrency(this.concurrency + Math.floor(this.#maxConcurrency / 10));\n      }\n    } catch (e) {\n      console.log('Failed to adjust concurrency', e);\n    }\n  }\n\n  private addSize(size: number): void {\n    if (this.#sizes.length >= MAX_SIZES) {\n      this.#sizes.shift();\n    }\n    this.#totalItems++;\n    this.#sizes.push(size);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/reindex.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Sequelize} from '@subql/x-sequelize';\nimport {IProjectUpgradeService, NodeConfig} from '../configure';\nimport {\n  DynamicDsService,\n  IUnfinalizedBlocksService,\n  StoreService,\n  PoiService,\n  ISubqueryProject,\n  StoreCacheService,\n  cacheProviderFlushData,\n  cacheProviderResetData,\n  Header,\n  MultiChainRewindService,\n} from '../indexer';\nimport {getLogger} from '../logger';\nimport {exitWithError} from '../process';\nimport {ForceCleanService} from '../subcommands/forceClean.service';\nimport {getHistoricalUnit} from './blocks';\n\nconst logger = getLogger('Reindex');\n\n/**\n * Reindex the project to ${targetBlockHeight} (continue indexing after this height)\n * reset project if ${targetBlockHeight} <= startHeight\n * - storeCache is handled first, flush cached content before the actual rewind starts\n * - rewind is usually triggered by signal from unfinalizedBlockService, so some state cleanup is required there. FIXME\n * - dynamicDsService will need to look after, clean all ds that added after the targetHeight\n * - poi need to cope with rewind as well. FIXME\n * - in the end, update metadata to targetHeight\n * @param startHeight\n * @param targetBlockHeight !IMPORTANT! this height is exclusive in the reindex operation\n * @param lastProcessedHeight\n * @param storeService\n * @param unfinalizedBlockService\n * @param dynamicDsService\n * @param sequelize\n * @param projectUpgradeService\n * @param multichainRewindService\n * @param poiService\n * @param forceCleanService\n */\nexport async function reindex(\n  startHeight: number,\n  targetBlockHeader: Header,\n  lastProcessed: {height: number; timestamp?: number},\n  storeService: StoreService,\n  unfinalizedBlockService: IUnfinalizedBlocksService<any>,\n  dynamicDsService: DynamicDsService<any>,\n  sequelize: Sequelize,\n  projectUpgradeService: IProjectUpgradeService<ISubqueryProject>,\n  multichainRewindService: MultiChainRewindService,\n  poiService?: PoiService,\n  forceCleanService?: ForceCleanService\n): Promise<void> {\n  const lastUnit = storeService.historical === 'timestamp' ? lastProcessed.timestamp : lastProcessed.height;\n  const targetUnit = getHistoricalUnit(storeService.historical, targetBlockHeader);\n\n  if (!lastUnit || lastUnit < targetUnit) {\n    logger.warn(\n      `Skipping reindexing to ${storeService.historical} ${targetUnit}: current indexing height ${lastUnit} is behind requested ${storeService.historical}`\n    );\n    if (storeService.isMultichain) {\n      const tx = await sequelize.transaction();\n      await multichainRewindService.releaseChainRewindLock(tx, new Date(targetUnit), new Date(lastUnit || 0));\n      await tx.commit();\n    }\n    return;\n  }\n\n  // if startHeight is greater than the targetHeight, just force clean\n  // We prevent the entire data from being cleared due to multiple chains because the startblock is uncertain in multi-chain projects.\n  if (targetBlockHeader.blockHeight < startHeight && !storeService.isMultichain) {\n    logger.info(\n      `targetHeight: ${targetBlockHeader.blockHeight} is less than startHeight: ${startHeight}. Hence executing force-clean`\n    );\n    if (!forceCleanService) {\n      exitWithError(`ForceCleanService not provided, cannot force clean`, logger);\n    }\n    // if DB need rollback? no, because forceCleanService will take care of it\n    await cacheProviderResetData(storeService.modelProvider);\n    await forceCleanService?.forceClean();\n    return;\n  }\n\n  logger.info(`Reindexing to ${storeService.historical}: ${targetUnit}`);\n  if (storeService.isMultichain) {\n    const needRewind = await multichainRewindService.acquireGlobalRewindLock(new Date(targetUnit));\n    if (!needRewind) {\n      logger.warn(`Rewind to ${storeService.historical} ${targetUnit} is not needed`);\n      return;\n    }\n  }\n\n  await cacheProviderFlushData(storeService.modelProvider, true);\n  await cacheProviderResetData(storeService.modelProvider);\n  if (storeService.modelProvider instanceof StoreCacheService) {\n    await storeService.modelProvider.flushData(true);\n    await storeService.modelProvider.resetData();\n  }\n  const transaction = await sequelize.transaction();\n  try {\n    /*\n      Must initialize storeService, to ensure all models are loaded, as storeService.init has not been called at this point\n      1. During runtime, model should be already been init\n      2.1 On start, projectUpgrade rewind will sync the sequelize models\n      2.2 On start, without projectUpgrade or upgradablePoint, sequelize will sync models through project.service\n    */\n    await projectUpgradeService.rewind(targetBlockHeader.blockHeight, lastProcessed.height, transaction, storeService);\n\n    await Promise.all([\n      storeService.rewind(targetBlockHeader, transaction),\n      unfinalizedBlockService.resetUnfinalizedBlocks(), // TODO: may not needed for nonfinalized chains\n      unfinalizedBlockService.resetLastFinalizedVerifiedHeight(), // TODO: may not needed for nonfinalized chains\n      dynamicDsService.resetDynamicDatasource(targetBlockHeader.blockHeight, transaction),\n      poiService?.rewind(targetBlockHeader.blockHeight, transaction),\n    ]);\n    // Flush metadata changes from above Promise.all\n    await storeService.modelProvider.metadata.flush?.(transaction, targetUnit);\n\n    // release rewind lock\n    if (storeService.isMultichain) {\n      await multichainRewindService.releaseChainRewindLock(transaction, new Date(targetUnit));\n    }\n\n    await transaction.commit();\n    logger.info('Reindex Success');\n  } catch (err: any) {\n    logger.error(err, 'Reindexing failed');\n    await transaction.rollback();\n    throw err;\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/utils/string.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {handledStringify} from './string';\n\ndescribe('handledStringify', () => {\n  it('should stringify a normal object', () => {\n    const obj = {key: 'value'};\n    expect(handledStringify(obj)).toBe(JSON.stringify(obj));\n  });\n\n  it('should handle a circular reference error', () => {\n    const obj: any = {};\n    obj.circularRef = obj;\n    const result = handledStringify(obj);\n    expect(result).toMatch(/Converting circular structure to JSON/);\n  });\n\n  it('should handle an object with toJSON throwing an error', () => {\n    const obj = {\n      toJSON() {\n        throw new Error('toJSON error');\n      },\n    };\n    const result = handledStringify(obj);\n    expect(result).toMatch(/Error: toJSON error/);\n  });\n\n  it('should handle unknown errors gracefully', () => {\n    const obj = {\n      toJSON() {\n        // eslint-disable-next-line @typescript-eslint/only-throw-error\n        throw 'Unknown error'; // Simulate an unknown error\n      },\n    };\n    const result = handledStringify(obj);\n    expect(result).toBe('Unknown error when Stringify');\n  });\n\n  it('should return error stack if available', () => {\n    const obj = {\n      toJSON() {\n        throw new Error('Error with stack');\n      },\n    };\n    const result = handledStringify(obj);\n    expect(result).toMatch(/Error: Error with stack/);\n  });\n\n  it('should return error message if stack is not available', () => {\n    const obj = {\n      toJSON() {\n        const error: any = new Error('Error without stack');\n        delete error.stack;\n        throw error;\n      },\n    };\n    const result = handledStringify(obj);\n    expect(result).toBe('Error without stack');\n  });\n});\n\ndescribe('handledStringify depth', () => {\n  it('Different truncation situations at various depths', () => {\n    const obj = {\n      key: 'value',\n      child: {\n        key: 'value',\n        child: {\n          key: 'value',\n        },\n        arr: [1, 2, 3],\n      },\n    };\n    expect(handledStringify(obj, 0)).toEqual(\n      '{\"key\":\"value\",\"child\":{\"key\":\"value\",\"child\":{\"key\":\"value\"},\"arr\":[1,2,3]}}'\n    );\n    expect(handledStringify(obj, 2)).toEqual(\n      '{\"key\":\"value\",\"child\":{\"key\":\"value\",\"child\":\"[Object(1)]\",\"arr\":\"[Array(3)]\"}}'\n    );\n    expect(handledStringify(obj, 1)).toEqual('{\"key\":\"value\",\"child\":\"[Object(3)]\"}');\n  });\n\n  it('Undefined values', () => {\n    expect(handledStringify(undefined, 3)).toBeUndefined();\n  });\n\n  it('Null values', () => {\n    expect(handledStringify(null, 3)).toEqual('null');\n    expect(handledStringify({a: null}, 3)).toEqual('{\"a\":null}');\n  });\n\n  it('A circular reference', () => {\n    const obj: any = {};\n    const obj2: any = {};\n    obj.reference = obj2;\n    obj2.reference = obj;\n    expect(handledStringify(obj, 0)).toMatch(/Converting circular structure to JSON/);\n    expect(handledStringify(obj, 3)).toMatch(/Converting circular structure to JSON/);\n  });\n});\n"
  },
  {
    "path": "packages/node-core/src/utils/string.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nfunction truncateObject(value: any, currentDepth: number, maxDepth: number, seen: Set<any> = new Set()): any {\n  if (currentDepth >= maxDepth) {\n    if (Array.isArray(value)) return `[Array(${value.length})]`;\n    if (value && typeof value === 'object') return `[Object(${Object.keys(value).length})]`;\n  }\n\n  if (value && typeof value === 'object') {\n    if (seen.has(value)) {\n      throw new Error('Converting circular structure to JSON');\n    }\n    seen.add(value);\n\n    const truncated: any = Array.isArray(value) ? [] : {};\n    for (const key in value) {\n      if (Object.prototype.hasOwnProperty.call(value, key)) {\n        truncated[key] = truncateObject(value[key], currentDepth + 1, maxDepth, seen);\n      }\n    }\n    seen.delete(value);\n    return truncated;\n  }\n\n  return value;\n}\n\nexport function handledStringify(obj: any, depth = 0): string {\n  try {\n    if (depth > 0) {\n      const limitedObj = truncateObject(obj, 0, depth);\n      return JSON.stringify(limitedObj);\n    }\n\n    return JSON.stringify(obj);\n  } catch (error) {\n    if (error instanceof Error) {\n      return error.stack || error.message;\n    }\n    return 'Unknown error when Stringify';\n  }\n}\n"
  },
  {
    "path": "packages/node-core/src/yargs.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport yargs, {demandOption} from 'yargs';\nimport {hideBin} from 'yargs/helpers';\nimport {initLogger} from './logger';\n\ntype YargsOptions<RootO extends Record<string, yargs.Options>, RunO extends Record<string, yargs.Options>> = {\n  /**\n   * Invoked with testing command\n   * */\n  initTesting: () => void;\n  /**\n   * Invoked with force-clean command\n   * */\n  initForceClean: () => void;\n  /**\n   * Invoked with reindex command\n   * */\n  initReindex: (targetHeight: number) => void;\n  /**\n   * Extra options to be added to all commands\n   * */\n  rootOptions?: RootO;\n  /**\n   *  Extra options to be added to the main/default command\n   * */\n  runOptions?: RunO;\n};\n\n// Unable to properly type this, TS seems to resolve the correct type already\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function yargsBuilder<\n  RootO extends Record<string, yargs.Options> = Record<string, never>,\n  RunO extends Record<string, yargs.Options> = Record<string, never>,\n>(options: YargsOptions<RootO, RunO>) {\n  return (\n    yargs(hideBin(process.argv))\n      .env('SUBQL_NODE')\n      .command({\n        command: 'test',\n        describe: 'Run tests for a SubQuery application',\n        builder: {},\n        handler: (argv) => {\n          initLogger(argv.debug as string, argv.outputFmt as 'json' | 'colored', argv.logLevel as string | undefined);\n          return options.initTesting();\n        },\n      })\n      .command({\n        command: 'force-clean',\n        describe:\n          'Clean the database dropping project schemas and tables. Once the command is executed, the application would exit upon completion.',\n        builder: {},\n        handler: (argv) => {\n          initLogger(argv.debug as string, argv.outputFmt as 'json' | 'colored', argv.logLevel as string | undefined);\n\n          return options.initForceClean();\n        },\n      })\n      .command({\n        command: 'reindex',\n        describe:\n          'Reindex to specified block height. Historical must be enabled for the targeted project (--historical). The application will exit upon completion.',\n        builder: (yargs) =>\n          yargs.options('targetHeight', {\n            type: 'number',\n            description: 'set targetHeight',\n            require: true,\n          }),\n        handler: (argv) => {\n          initLogger(argv.debug as string, argv.outputFmt as 'json' | 'colored', argv.logLevel as string | undefined);\n          return options.initReindex(argv.targetHeight);\n        },\n      })\n      // Note we must have default command $0 at last to avoid override\n      .command({\n        command: '$0', //default command\n        describe: 'Index a SubQuery application',\n        builder: (yargs) =>\n          yargs\n            .options({\n              ...options.runOptions,\n              'batch-size': {\n                demandOption: false,\n                describe: 'Batch size of blocks to fetch in one round',\n                type: 'number',\n              },\n              'dictionary-timeout': {\n                demandOption: false,\n                describe: 'Max timeout for dictionary query',\n                type: 'number',\n              },\n              'dictionary-query-size': {\n                demandOption: false,\n                describe:\n                  'Dictionary query max block size, this specify the block height range of the dictionary query',\n                type: 'number',\n              },\n              'dictionary-registry': {\n                demandOption: false,\n                describe: 'Url to a dictionary registry used to resolve dictionary if one is not provided',\n                type: 'string',\n              },\n              'disable-historical': {\n                demandOption: false,\n                describe: 'Disable storing historical state entities, please use `historical` flag instead',\n                type: 'boolean',\n                deprecated: true,\n                conflicts: 'historical',\n                // NOTE: don't set a default for this. It will break apply args from manifest. The default should be set in NodeConfig\n              },\n              historical: {\n                describe: 'Enable historical state entities, ',\n                type: 'string',\n                choices: ['false', 'height', 'timestamp'],\n                // NOTE: don't set a default for this. It will break apply args from manifest. The default should be set in NodeConfig\n                conflicts: 'disable-historical',\n              },\n              'log-level': {\n                demandOption: false,\n                describe: 'Specify log level to print. Ignored when --debug is used',\n                type: 'string',\n                choices: ['fatal', 'error', 'warn', 'info', 'debug', 'trace', 'silent'],\n              },\n              'multi-chain': {\n                alias: 'multichain',\n                demandOption: false,\n                default: false,\n                describe: 'Enables indexing multiple subquery projects into the same database schema',\n                type: 'boolean',\n              },\n              'network-dictionary': {\n                alias: 'd',\n                demandOption: false,\n                describe: 'Specify the dictionary api for this network',\n                type: 'string',\n              },\n              'primary-network-endpoint': {\n                demandOption: false,\n                type: 'string',\n                describe: 'Primary blockchain endpoint, used as the first choice for connections.',\n              },\n              'network-endpoint-config': {\n                demandOption: false,\n                type: 'string',\n                describe: 'A json encoded string of a network endpoint configuration',\n\n                // example: JSON.stringify({ headers: { 'api-key': '<your-api-key>'}})\n              },\n              'primary-network-endpoint-config': {\n                demandOption: false,\n                type: 'string',\n\n                describe: 'Same as the network-endpoint.config but for the primary network endpoint',\n                // example: JSON.stringify({ headers: { 'api-key': '<your-api-key>'}})\n              },\n              'output-fmt': {\n                demandOption: false,\n                describe: 'Print log as json or plain text',\n                type: 'string',\n                choices: ['json', 'colored'],\n              },\n              'query-limit': {\n                demandOption: false,\n                describe: 'The limit of items a project can query with store.getByField at once',\n                type: 'number',\n                default: 100,\n              },\n              'store-cache-threshold': {\n                demandOption: false,\n                describe: 'Store cache will flush data to the database when number of records excess this threshold',\n                type: 'number',\n              },\n              'store-cache-upper-limit': {\n                demandOption: false,\n                describe:\n                  'Defines the upper limit to the store cache size. When this limit is reached indexing will wait for the cache to be flushed before continuing.',\n                type: 'number',\n              },\n              'store-get-cache-size': {\n                demandOption: false,\n                describe: 'Store get cache size for each model',\n                type: 'number',\n              },\n              'store-cache-async': {\n                demandOption: false,\n                describe: 'If enabled the store cache will flush data asynchronously relative to indexing data',\n                type: 'boolean',\n              },\n              'store-flush-interval': {\n                demandOption: false,\n                describe:\n                  'The interval, in seconds, at which data is flushed from the cache. ' +\n                  'This ensures that data is persisted regularly when there is either not much data or the project is up to date.',\n                type: 'number',\n                default: 5,\n              },\n              'store-cache-target': {\n                demandOption: false,\n                describe:\n                  'If indexing is happening within this many blocks of the target height, then cache data will be flushed every block. This makes sure a (nearly) fully synced node is flushing data to be available ASAP to query.',\n                type: 'number',\n                default: 10,\n              },\n              'subquery-name': {\n                deprecated: true,\n                demandOption: false,\n                describe: 'Name of the subquery project',\n                type: 'string',\n              },\n              subscription: {\n                demandOption: false,\n                describe: 'Enable subscription by create notification triggers',\n                type: 'boolean',\n                default: false,\n              },\n              skipTransactions: {\n                demandOption: false,\n                describe:\n                  'If the project contains only event handlers and only accesses the events or block header then you can enable this option to reduce RPC requests and have a slight performance increase. This will be automatically disabled if handlers other than EventHandlers are detected.',\n                type: 'boolean',\n                // NOTE: don't set a default for this. It will break apply args from manifest. The default should be set in NodeConfig\n              },\n              timeout: {\n                demandOption: false,\n                describe: 'Timeout for indexer sandbox to execute the mapping functions',\n                type: 'number',\n              },\n              'unfinalized-blocks': {\n                demandOption: false,\n                describe: 'Enable to fetch and index unfinalized blocks',\n                type: 'boolean',\n                // NOTE: don't set a default for this. It will break apply args from manifest. The default should be set in NodeConfig\n              },\n              unsafe: {\n                type: 'boolean',\n                demandOption: false,\n                describe: 'Allows usage of any built-in module within the sandbox',\n                // NOTE: don't set a default for this. It will break apply args from manifest. The default should be set in NodeConfig\n              },\n              workers: {\n                alias: 'w',\n                demandOption: false,\n                describe: 'Number of worker threads to use for fetching and processing blocks. Disabled by default.',\n                type: 'number',\n              },\n              'allow-schema-migration': {\n                demandOption: false,\n                describe: 'Allow schema-migration to occur with project upgrades',\n                type: 'boolean',\n              },\n              root: {\n                describe:\n                  'This is a hidden flag only used from the main thread to workers. It provides a root directory for the project. This is a temp directory with IPFS and GitHub projects.',\n                type: 'string',\n              },\n              'csv-out-dir': {\n                describe:\n                  'Path to a directory for CSV output.  If this is not provided then data will not be output to CSV',\n                type: 'string',\n              },\n              'monitor-out-dir': {\n                describe:\n                  'Path to a directory for monitor service output.  If this is not provided then data will store to default folder',\n                type: 'string',\n              },\n              'monitor-file-size': {\n                describe: 'monitor file size limit in MB ',\n                type: 'number',\n              },\n              'monitor-object-max-depth': {\n                describe: 'The maximum depth of an object recorded by a monitor. Default is 5, 0 is no limit',\n                type: 'number',\n              },\n              'enable-cache': {\n                describe: 'cache enable or disable',\n                type: 'boolean',\n                default: true,\n              },\n            })\n            .hide('root'), // root is hidden because its for internal use\n        handler: () => {\n          // bootstrap trigger in main.ts\n        },\n      })\n      // Default options, shared with all command\n      .options({\n        ...options.rootOptions,\n        config: {\n          alias: 'c',\n          demandOption: false,\n          describe: 'Specify configuration file',\n          type: 'string',\n        },\n        'db-schema': {\n          demandOption: false,\n          describe: 'Db schema name of the project',\n          type: 'string',\n        },\n        debug: {\n          demandOption: false,\n          describe: `Enable debug logging for specific scopes, this will override log-level. \"*\" will enable debug everywhere, or comma separated strings for specific scopes. e.g. \"SQL,dictionary\". To disable specific scopes you can prefix them with '-'. e.g. \"*,-SQL\"`,\n          type: 'string',\n        },\n        ipfs: {\n          demandOption: false,\n          describe: 'IPFS gateway endpoint',\n          type: 'string',\n        },\n        port: {\n          alias: 'p',\n          demandOption: false,\n          describe: 'The port the service will bind to',\n          type: 'number',\n        },\n        profiler: {\n          demandOption: false,\n          describe: 'Show profiler information to console output',\n          type: 'boolean',\n          default: false,\n        },\n        'proof-of-index': {\n          demandOption: false,\n          alias: 'poi',\n          describe: 'Enable/disable proof of index',\n          type: 'boolean',\n          default: false,\n        },\n        'pg-ca': {\n          demandOption: false,\n          describe:\n            'Postgres ca certificate - to enable TLS/SSL connections to your PostgreSQL, path to the server certificate file are required, e.g /path/to/server-certificates/root.crt',\n          type: 'string',\n        },\n        'pg-key': {\n          demandOption: false,\n          describe: 'Postgres client key - Path to key file e.g /path/to/client-key/postgresql.key',\n          type: 'string',\n        },\n        'pg-cert': {\n          demandOption: false,\n          describe:\n            'Postgres client certificate - Path to client certificate e.g /path/to/client-certificates/postgresql.crt',\n          type: 'string',\n        },\n        'pg-pool-min': {\n          demandOption: false,\n          type: 'number',\n          describe: 'Postgres connection pool min number of connections',\n        },\n        'pg-pool-max': {\n          demandOption: false,\n          type: 'number',\n          describe: 'Postgres connection pool max number of connections',\n        },\n        'pg-pool-acquire': {\n          demandOption: false,\n          type: 'number',\n          describe: 'Postgres connection pool max time to acquire a connection, in milliseconds',\n        },\n        'pg-pool-idle': {\n          demandOption: false,\n          type: 'number',\n          describe: 'Posgres connection pool maximum idle time before a connection is released, in milliseconds',\n        },\n        'pg-pool-evict': {\n          demandOption: false,\n          type: 'number',\n          describe: 'Postgres connection pool interval after which idle connections are removed, in milliseconds',\n        },\n        subquery: {\n          alias: 'f',\n          demandOption: true,\n          default: process.cwd(),\n          describe: 'Local path or IPFS cid of the subquery project',\n          type: 'string',\n        },\n        'network-endpoint': {\n          demandOption: false,\n          type: 'string',\n          describe: 'Blockchain network endpoint to connect',\n        },\n      })\n  );\n}\n"
  },
  {
    "path": "packages/node-core/test/config.json",
    "content": "{\n  \"subquery\": \"../../../../subql-example/extrinsics\",\n  \"subqueryName\": \"extrinsics\"\n}\n"
  },
  {
    "path": "packages/node-core/test/config.toml",
    "content": "{\n  \"subquery\": \"../../../../subql-example/extrinsics\",\n  \"subqueryName\": \"extrinsics\"\n}\n"
  },
  {
    "path": "packages/node-core/test/config.yml",
    "content": "subquery: ../../../../subql-example/extrinsics\nsubqueryName: extrinsics\n"
  },
  {
    "path": "packages/node-core/test/jsonfy.js",
    "content": "'use strict';\n// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\nObject.defineProperty(exports, '__esModule', {value: true});\nexports.JsonfyDatasourcePlugin = void 0;\nexports.JsonfyDatasourcePlugin = {\n  kind: 'substrate/Jsonfy',\n  validate(ds) {\n    return;\n  },\n  dsFilterProcessor(ds, api) {\n    return true;\n  },\n  handlerProcessors: {\n    'substrate/JsonfyEvent': {\n      specVersion: '1.0.0',\n      baseFilter: [],\n      baseHandlerKind: 'substrate/EventHandler',\n      // eslint-disable-next-line @typescript-eslint/require-await\n      async transformer({original, ds}) {\n        return JSON.parse(JSON.stringify(original.toJSON()));\n      },\n      filterProcessor({filter, input, ds}) {\n        return (\n          filter.module &&\n          input.event.section === filter.module &&\n          filter.method &&\n          input.event.method === filter.method\n        );\n      },\n      filterValidator(filter) {\n        return;\n      },\n    },\n  },\n};\nexports.default = exports.JsonfyDatasourcePlugin;\n//# sourceMappingURL=jsonfy.js.map\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_10_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n}\n#\ntype TestEntity @entity {\n  id: ID!\n  fieldOne: String\n  fieldTwo: Int\n  #  fieldThree: BigInt!\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_10_1000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  testField: String\n}\n\ntype TestEntityTwo @entity {\n  id: ID!\n  exampleField: String\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_11_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: BigInt! ## this should throw lmao\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_11_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: BigInt! ## this should throw lmao\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  addedField1: Int\n  addedField2: String!\n}\n\ntype NewEntity @entity {\n  id: ID!\n  field: String\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_12_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n\n  accountValue: Account\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  #  oneToOneRelation: OneToOneTestEntity\n  oneToManyRelation: [Transfer] @derivedFrom(field: \"accountValue\")\n}\n\n#type ManyToManyTestEntity @entity {\n#  id: ID!\n#  account: Account!\n#  transfer: Transfer!\n#}\n#\n#type OneToOneTestEntity @entity {\n#  id: ID!\n#}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_12_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n\n  accountValue: Account\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  oneToOneRelation: OneToOneTestEntity\n  oneToManyRelation: [Transfer] @derivedFrom(field: \"accountValue\")\n}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  account: Account!\n  transfer: Transfer!\n}\n\ntype OneToOneTestEntity @entity {\n  id: ID!\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_13_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n\n  accountValue: Account\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  #  oneToOneRelation: OneToOneTestEntity\n  oneToManyRelation: [Transfer] @derivedFrom(field: \"accountValue\")\n}\n\n#type ManyToManyTestEntity @entity {\n#  id: ID!\n#  account: Account!\n#  transfer: Transfer!\n#}\n#\n#type OneToOneTestEntity @entity {\n#  id: ID!\n#}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_13_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n\n  accountValue: Account\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  oneToOneRelation: OneToOneTestEntity\n  oneToManyRelation: [Transfer] @derivedFrom(field: \"accountValue\")\n}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  account: Account!\n  transfer: Transfer!\n}\n\ntype OneToOneTestEntity @entity {\n  id: ID!\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_14_1.graphql",
    "content": "type Transfer @entity {\n  id: ID!\n  amount: BigInt!\n  blockNumber: Int!\n  date: Date!\n  from: Account!\n  to: Account!\n}\n\ntype Account @entity {\n  id: ID!\n  publicKey: String!\n  firstTransferBlock: Int\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_14_1000.graphql",
    "content": "type Transfer @entity {\n  id: ID!\n  amount: BigInt!\n  blockNumber: Int!\n  date: Date!\n  #  from: Account!\n  #  to: Account!\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_15_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n\n  accountValue: Account\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  #  oneToOneRelation: OneToOneTestEntity\n  oneToManyRelation: [Transfer] @derivedFrom(field: \"accountValue\")\n}\n\n#type ManyToManyTestEntity @entity {\n#  id: ID!\n#  account: Account!\n#  transfer: Transfer!\n#}\n#\n#type OneToOneTestEntity @entity {\n#  id: ID!\n#}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_15_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n\n  accountValue: Account\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  oneToOneRelation: OneToOneTestEntity\n  oneToManyRelation: [Transfer] @derivedFrom(field: \"accountValue\")\n}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  account: Account!\n  transfer: Transfer!\n}\n\ntype OneToOneTestEntity @entity {\n  id: ID!\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_15_4000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  #  \"\"\"\n  #  The account that transfers are made from\n  #  \"\"\"\n  #  from: Account!\n  #  \"\"\"\n  #  The account that transfers are made to\n  #  \"\"\"\n  #  to: Account!\n\n  #  accountValue: Account\n}\n\n#type Account @entity {\n#  \"\"\"\n#  id field is always required and must look like this\n#  \"\"\"\n#  id: ID!\n#  \"\"\"\n#  The public key of this account (same across all Polkadot parachains)\n#  \"\"\"\n#  publicKey: String!\n#  \"\"\"\n#  The first block on which we see a transfer involving this account\n#  \"\"\"\n#  firstTransferBlock: Int!\n#  \"\"\"\n#  The most recent block on which we see a transfer involving this account\n#  \"\"\"\n#  lastTransferBlock: Int\n#  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n#  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n#\n#  oneToOneRelation: OneToOneTestEntity\n#  oneToManyRelation:  [Transfer] @derivedFrom(field: \"accountValue\")\n#}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  #  account: Account!\n  transfer: Transfer!\n}\n\ntype OneToOneTestEntity @entity {\n  id: ID!\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_16_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n\n  accountValue: Account\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n\n  #  oneToOneRelation: OneToOneTestEntity\n  #  oneToManyRelation:  [Transfer] @derivedFrom(field: \"accountValue\")\n}\n\n#type ManyToManyTestEntity @entity {\n#  id: ID!\n##  account: Account!\n##  transfer: Transfer!\n#}\n\n#type OneToOneTestEntity @entity {\n#  id: ID!\n#}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_16_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  #  from: Account!\n  from: String\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  #  to: Account!\n\n  to: String\n  #  accountValue: Account\n}\n\n#type Account @entity {\n#  \"\"\"\n#  id field is always required and must look like this\n#  \"\"\"\n#  id: ID!\n#  \"\"\"\n#  The public key of this account (same across all Polkadot parachains)\n#  \"\"\"\n#  publicKey: String!\n#  \"\"\"\n#  The first block on which we see a transfer involving this account\n#  \"\"\"\n#  firstTransferBlock: Int!\n#  \"\"\"\n#  The most recent block on which we see a transfer involving this account\n#  \"\"\"\n#  lastTransferBlock: Int\n#  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n#  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n#\n##  oneToOneRelation: OneToOneTestEntity\n##  oneToManyRelation:  [Transfer] @derivedFrom(field: \"accountValue\")\n#}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  #  account: Account!\n  transfer: Transfer!\n}\n\n#type OneToOneTestEntity @entity {\n#  id: ID!\n#}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_17_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  #  from: Account!\n  from: String\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  #  to: Account!\n\n  to: String\n  #  accountValue: Account\n}\n\n#type Account @entity {\n#  \"\"\"\n#  id field is always required and must look like this\n#  \"\"\"\n#  id: ID!\n#  \"\"\"\n#  The public key of this account (same across all Polkadot parachains)\n#  \"\"\"\n#  publicKey: String!\n#  \"\"\"\n#  The first block on which we see a transfer involving this account\n#  \"\"\"\n#  firstTransferBlock: Int!\n#  \"\"\"\n#  The most recent block on which we see a transfer involving this account\n#  \"\"\"\n#  lastTransferBlock: Int\n#  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n#  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n#\n##  oneToOneRelation: OneToOneTestEntity\n##  oneToManyRelation:  [Transfer] @derivedFrom(field: \"accountValue\")\n#}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  #  account: Account!\n  transfer: Transfer!\n  exampleEnum: ModifyEnumType\n  #  createEnumField: CreatedEnumType\n  dropEnumField: DropEnumType\n}\n\n#type CreationEnumEntity @entity {\n#  id: ID!\n#\n#}\n#\n#enum CreatedEnumType {\n#  CREATED\n#}\n#\nenum DropEnumType {\n  DROP\n}\n\nenum ModifyEnumType {\n  GOOD\n  BAD\n  NEUTRAL\n  CHAOS\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_17_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  #  from: Account!\n  from: String\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  #  to: Account!\n\n  to: String\n  #  accountValue: Account\n}\n\n#type Account @entity {\n#  \"\"\"\n#  id field is always required and must look like this\n#  \"\"\"\n#  id: ID!\n#  \"\"\"\n#  The public key of this account (same across all Polkadot parachains)\n#  \"\"\"\n#  publicKey: String!\n#  \"\"\"\n#  The first block on which we see a transfer involving this account\n#  \"\"\"\n#  firstTransferBlock: Int!\n#  \"\"\"\n#  The most recent block on which we see a transfer involving this account\n#  \"\"\"\n#  lastTransferBlock: Int\n#  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n#  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n#\n##  oneToOneRelation: OneToOneTestEntity\n##  oneToManyRelation:  [Transfer] @derivedFrom(field: \"accountValue\")\n#}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  #  account: Account!\n  transfer: Transfer!\n  exampleEnum: ModifyEnumType\n  createEnumField: CreatedEnumType\n  #  dropEnumField: DropEnumType\n}\n\n#type CreationEnumEntity @entity {\n#  id: ID!\n#\n#}\n#\nenum CreatedEnumType {\n  CREATED\n}\n\n#enum DropEnumType {\n#  DROP\n#}\n\nenum ModifyEnumType {\n  GOOD\n  BAD\n  NEUTRAL\n  CHAOS\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_18_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  #  from: Account!\n  from: String\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  #  to: Account!\n\n  to: String\n  #  accountValue: Account\n}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  transfer: Transfer!\n  exampleEnum: ModifyEnumType\n}\n\nenum ModifyEnumType {\n  GOOD\n  BAD\n  # \"\"\"\n  # Added in migration\n  # \"\"\"\n  # NEUTRAL\n  # CHAOS\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_18_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  #  from: Account!\n  from: String\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  #  to: Account!\n\n  to: String\n  #  accountValue: Account\n}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  transfer: Transfer!\n  exampleEnum: ModifyEnumType\n}\n\nenum ModifyEnumType {\n  GOOD\n  BAD\n  \"\"\"\n  Added\n  \"\"\"\n  NEUTRAL\n  CHAOS\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_19_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  #  from: Account!\n  from: String\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  #  to: Account!\n\n  to: String\n  #  accountValue: Account\n}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  transfer: Transfer!\n  exampleEnum: ModifyEnumType\n}\n\nenum ModifyEnumType {\n  GOOD\n  BAD\n  NEUTRAL\n  CHAOS\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_19_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  #  from: Account!\n  from: String\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  #  to: Account!\n\n  to: String\n  #  accountValue: Account\n}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  transfer: Transfer!\n  exampleEnum: ModifyEnumType\n}\n\nenum ModifyEnumType {\n  GOOD\n  BAD\n  # \"\"\"\n  # Removed\n  # \"\"\"\n  # NEUTRAL\n  # CHAOS\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_1_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n}\n#\ntype TestEntity @entity {\n  id: ID!\n  fieldOne: String\n  fieldTwo: Int\n  #  fieldThree: BigInt!\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_1_1000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  testField: String\n}\n\ntype TestEntityTwo @entity {\n  id: ID!\n  exampleField: String\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_20_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  #  from: Account!\n  from: String\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  #  to: Account!\n\n  to: String\n  #  accountValue: Account\n}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  transfer: Transfer!\n  exampleEnum: ModifyEnumType\n}\n\nenum ModifyEnumType {\n  GOOD\n  BAD\n  NEUTRAL\n  CHAOS\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_20_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: Int!\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  #  from: Account!\n  from: String\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  #  to: Account!\n\n  to: String\n  #  accountValue: Account\n}\n\ntype ManyToManyTestEntity @entity {\n  id: ID!\n  transfer: Transfer!\n  exampleEnum: ModifyEnumType\n}\n\n# Order is reversed\nenum ModifyEnumType {\n  CHAOS\n  NEUTRAL\n  BAD\n  GOOD\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_2_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: BigInt! ## this should throw lmao\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n}\n\ntype TestEntity @entity {\n  id: ID!\n  exampleField: String\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_2_1000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: BigInt! ## this should throw lmao\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n}\n\ntype TestJson @jsonField {\n  one: String!\n  two: Int!\n}\n\ntype TestEntity @entity {\n  id: ID!\n  exampleField: [TestJson]\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_5_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: BigInt! ## this should throw lmao\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n}\n\n#type TestIndexOne @entity {\n#  id: ID!\n#  name: String! @index(unique: true)\n#}\n#\n#type TestIndexTwo @entity {\n#  id: ID!\n#  name: String! @index(unique: false)\n#}\n#\n#type TestIndexComposite @entity @compositeIndexes(fields: [[\"block\", \"blockTwo\"]]){\n#  id: ID!\n#  block: String\n#  blockTwo: String\n#}\n\ntype DropSingleIndex @entity {\n  id: ID!\n  exampleField: String! @index(unique: true)\n}\n\ntype DropCompositeIndex @entity @compositeIndexes(fields: [[\"block\", \"blockTwo\"]]) {\n  id: ID!\n  block: String\n  blockTwo: String\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_5_1000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: BigInt! ## this should throw lmao\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n}\n\ntype NewIndexOne @entity {\n  id: ID!\n  name: String! @index(unique: true)\n}\n\ntype NewIndexTwo @entity {\n  id: ID!\n  name: String! @index(unique: false)\n}\n\ntype NewIndexComposite @entity @compositeIndexes(fields: [[\"block\", \"blockTwo\"]]) {\n  id: ID!\n  block: String\n  blockTwo: String\n}\n\n#type DropSingleIndex @entity {\n#  id: ID!\n#  exampleField: String! @index(unique: true)\n#}\n#\n#type DropCompositeIndex @entity @compositeIndexes(fields: [[\"block\", \"blockTwo\"]]){\n#  id: ID!\n#    block: String\n#    blockTwo: String\n#}\n#\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_6_1.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: BigInt! ## this should throw lmao\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  testField: String\n}\n\ntype TestIndexOne @entity {\n  id: ID!\n  name: String! @index(unique: false)\n}\n"
  },
  {
    "path": "packages/node-core/test/migration-schemas/test_6_2000.graphql",
    "content": "type Transfer @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  Amount that is transferred\n  \"\"\"\n  amount: BigInt!\n  \"\"\"\n  The block height of the transfer\n  \"\"\"\n  blockNumber: BigInt! ## this should throw lmao\n  \"\"\"\n  The date of the transfer\n  \"\"\"\n  date: Date!\n  \"\"\"\n  The account that transfers are made from\n  \"\"\"\n  from: Account!\n  \"\"\"\n  The account that transfers are made to\n  \"\"\"\n  to: Account!\n}\n\ntype Account @entity {\n  \"\"\"\n  id field is always required and must look like this\n  \"\"\"\n  id: ID!\n  \"\"\"\n  The public key of this account (same across all Polkadot parachains)\n  \"\"\"\n  publicKey: String!\n  \"\"\"\n  The first block on which we see a transfer involving this account\n  \"\"\"\n  firstTransferBlock: Int!\n  \"\"\"\n  The most recent block on which we see a transfer involving this account\n  \"\"\"\n  lastTransferBlock: Int\n  sentTransfers: [Transfer] @derivedFrom(field: \"from\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  recievedTransfers: [Transfer] @derivedFrom(field: \"to\") # These are virtual properties to help us navigate to the correct foreign key of Transfer\n  testField: String\n}\n#\n#type TestIndexOne @entity {\n#  id: ID!\n#  name: String! @index(unique: false)\n#}\n"
  },
  {
    "path": "packages/node-core/test/sandbox/atob-test.js",
    "content": "'use strict';\n// SPDX-License-Identifier: GPL-3.0\nObject.defineProperty(exports, '__esModule', {value: true});\nexports.testSandbox = void 0;\nasync function testSandbox() {\n  try {\n    const base64String = 'SGVsbG8sIFdvcmxkIQ==';\n    console.log(atob(base64String)); //expect to be `Hello, World!`\n  } catch (e) {\n    throw new Error(`atob in sandbox failed, ${e}`);\n  }\n}\nexports.testSandbox = testSandbox;\n//# sourceMappingURL=atob-test.js.map\n"
  },
  {
    "path": "packages/node-core/test/sandbox/atob-test.ts",
    "content": "// SPDX-License-Identifier: GPL-3.0\n\nexport async function testSandbox(): Promise<void> {\n  try {\n    const base64String = 'SGVsbG8sIFdvcmxkIQ==';\n    console.log(atob(base64String)); //expect to be `Hello, World!`\n  } catch (e) {\n    throw new Error(`atob in sandbox failed, ${e}`);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/test/sandbox/buffer-test.js",
    "content": "'use strict';\n// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\nObject.defineProperty(exports, '__esModule', {value: true});\nexports.testUin8Array = exports.testSandbox = void 0;\nasync function testSandbox() {\n  const str = 'Hello, Buffer!';\n  const strBuffer = Buffer.from(str);\n  const uin8Array = new Uint8Array(2);\n  uin8Array[0] = 72; //'H'\n  uin8Array[1] = 101; //'e'\n  try {\n    const output = Buffer.concat([strBuffer, uin8Array]);\n    console.log(output.toString()); //expect to be `Hello, Buffer!He`\n  } catch (e) {\n    throw new Error(`Buffer concat failed, ${e}`);\n  }\n}\nexports.testSandbox = testSandbox;\nasync function testUin8Array() {\n  const uin8Array = new Uint8Array(2);\n  const uin8Array2 = new Uint8Array(2);\n  uin8Array[0] = 72; //'H'\n  uin8Array[1] = 101; //'e'\n  uin8Array2[0] = 72;\n  uin8Array2[1] = 101;\n  try {\n    const output = Buffer.concat([uin8Array, uin8Array2]);\n    console.log(output.toString()); //expect to be `HeHe`\n  } catch (e) {\n    throw new Error(`Uin8Array concat failed, ${e}`);\n  }\n}\nexports.testUin8Array = testUin8Array;\n//# sourceMappingURL=buffer-test.js.map\n"
  },
  {
    "path": "packages/node-core/test/sandbox/buffer-test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport async function testSandbox(): Promise<void> {\n  const str = 'Hello, Buffer!';\n  const strBuffer = Buffer.from(str);\n  const uin8Array = new Uint8Array(2);\n  uin8Array[0] = 72; //'H'\n  uin8Array[1] = 101; //'e'\n  try {\n    const output = Buffer.concat([strBuffer, uin8Array]);\n    console.log(output.toString()); //expect to be `Hello, Buffer!He`\n  } catch (e) {\n    throw new Error(`Buffer concat failed, ${e}`);\n  }\n}\n\nexport async function testUin8Array(): Promise<void> {\n  const uin8Array = new Uint8Array(2);\n  const uin8Array2 = new Uint8Array(2);\n  uin8Array[0] = 72; //'H'\n  uin8Array[1] = 101; //'e'\n  uin8Array2[0] = 72;\n  uin8Array2[1] = 101;\n  try {\n    const output = Buffer.concat([uin8Array, uin8Array2]);\n    console.log(output.toString()); //expect to be `HeHe`\n  } catch (e) {\n    throw new Error(`Uin8Array concat failed, ${e}`);\n  }\n}\n"
  },
  {
    "path": "packages/node-core/test/sandbox/main.js",
    "content": "'use strict';\n// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\nObject.defineProperty(exports, '__esModule', {value: true});\nexports.testSandbox = void 0;\nasync function testSandbox() {\n  await new Promise((resolve) => setTimeout(resolve, 3000));\n  console.log('OK');\n}\nexports.testSandbox = testSandbox;\n"
  },
  {
    "path": "packages/node-core/test/sandbox/main.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport async function testSandbox(): Promise<void> {\n  await new Promise((resolve) => setTimeout(resolve, 3000));\n  console.log('OK');\n}\n"
  },
  {
    "path": "packages/node-core/test/sandbox/package.json",
    "content": "{\n  \"name\": \"sandbox\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"main.js\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"author\": \"\",\n  \"license\": \"ISC\"\n}\n"
  },
  {
    "path": "packages/node-core/test/sandbox/schema.graphql",
    "content": "type StarterEntity @entity {\n  id: ID! #id is a required field\n  field1: Int!\n\n  field2: String #filed2 is an optional field\n  field3: BigInt\n\n  field4: Date\n\n  field5: Boolean\n}\n"
  },
  {
    "path": "packages/node-core/test/sandbox/sourcemap-test-esbuild.js",
    "content": "\"use strict\";var i=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var a=(o,r)=>{for(var e in r)i(o,e,{get:r[e],enumerable:!0})},c=(o,r,e,s)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let t of h(r))!w.call(o,t)&&t!==e&&i(o,t,{get:()=>r[t],enumerable:!(s=n(r,t))||s.enumerable});return o};var f=o=>c(i({},\"__esModule\",{value:!0}),o);var p={};a(p,{throwError:()=>m});module.exports=f(p);async function m(){throw new Error(\"this is a test error\")}0&&(module.exports={throwError});\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9tYXBwaW5ncy9tYXBwaW5nSGFuZGxlcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8vRXhwb3J0cyBhbGwgaGFuZGxlciBmdW5jdGlvbnNcbmV4cG9ydCAqIGZyb20gXCIuL21hcHBpbmdzL21hcHBpbmdIYW5kbGVyc1wiO1xuIiwgIi8vIGltcG9ydCB7IFRyYW5zZmVyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG4vLyBpbXBvcnQgeyBDb3Ntb3NCbG9jaywgQ29zbW9zRXZlbnQgfSBmcm9tIFwiQHN1YnFsL3R5cGVzLWNvc21vc1wiO1xuLy8gaW1wb3J0IHsgc2hhMjU2IH0gZnJvbSBcIkBjb3NtanMvY3J5cHRvXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0aHJvd0Vycm9yKCk6IFByb21pc2U8dm9pZD4ge1xuICB0aHJvdyBuZXcgRXJyb3IoXCJ0aGlzIGlzIGEgdGVzdCBlcnJvclwiKTtcbn1cblxuLy8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZUJsb2NrKGJsb2NrOiBDb3Ntb3NCbG9jayk6IFByb21pc2U8dm9pZD4ge1xuLy8gICBsb2dnZXIuaW5mbyhcIkhBTkRMRSBCTE9DS1wiKTtcblxuLy8gICBsb2dnZXIuaW5mbyhgSGFzaGVkIGRhdGEgJHtzaGEyNTYoYmxvY2suYmxvY2suaGVhZGVyLmRhdGFIYXNoKX1gKTtcbi8vIH1cblxuLy8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZUV2ZW50KGV2ZW50OiBDb3Ntb3NFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuLy8gICBjb25zdCBldmVudFJlY29yZCA9IFRyYW5zZmVyLmNyZWF0ZSh7XG4vLyAgICAgaWQ6IGAke2V2ZW50LnR4Lmhhc2h9LSR7ZXZlbnQubXNnIS5pZHh9LSR7ZXZlbnQuaWR4fWAsXG4vLyAgICAgYmxvY2tIZWlnaHQ6IEJpZ0ludChldmVudC5ibG9jay5ibG9jay5oZWFkZXIuaGVpZ2h0KSxcbi8vICAgICB0eEhhc2g6IGV2ZW50LnR4Lmhhc2gsXG4vLyAgICAgdG9BZGRyZXNzOiBcIlwiLFxuLy8gICAgIGFtb3VudDogXCJcIixcbi8vICAgICBmcm9tQWRkcmVzczogXCJcIixcbi8vICAgfSk7XG4vLyAgIGZvciAoY29uc3QgYXR0ciBvZiBldmVudC5ldmVudC5hdHRyaWJ1dGVzKSB7XG4vLyAgICAgc3dpdGNoIChhdHRyLmtleSkge1xuLy8gICAgICAgY2FzZSBcInJlY2lwaWVudFwiOlxuLy8gICAgICAgICBldmVudFJlY29yZC50b0FkZHJlc3MgPSBhdHRyLnZhbHVlLnRvU3RyaW5nKCk7XG4vLyAgICAgICAgIGJyZWFrO1xuLy8gICAgICAgY2FzZSBcImFtb3VudFwiOlxuLy8gICAgICAgICBldmVudFJlY29yZC5hbW91bnQgPSBhdHRyLnZhbHVlLnRvU3RyaW5nKCk7XG4vLyAgICAgICAgIGJyZWFrO1xuLy8gICAgICAgY2FzZSBcInNlbmRlclwiOlxuLy8gICAgICAgICBldmVudFJlY29yZC5mcm9tQWRkcmVzcyA9IGF0dHIudmFsdWUudG9TdHJpbmcoKTtcbi8vICAgICAgICAgYnJlYWs7XG4vLyAgICAgICBkZWZhdWx0OlxuLy8gICAgICAgICBicmVhaztcbi8vICAgICB9XG4vLyAgIH1cbi8vICAgYXdhaXQgZXZlbnRSZWNvcmQuc2F2ZSgpO1xuLy8gfVxuIl0sCiAgIm1hcHBpbmdzIjogInlhQUFBLElBQUFBLEVBQUEsR0FBQUMsRUFBQUQsRUFBQSxnQkFBQUUsSUFBQSxlQUFBQyxFQUFBSCxHQ0lBLGVBQXNCSSxHQUE0QixDQUNoRCxNQUFNLElBQUksTUFBTSxzQkFBc0IsQ0FDeEMiLAogICJuYW1lcyI6IFsiaW5kZXhfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJ0aHJvd0Vycm9yIiwgIl9fdG9Db21tb25KUyIsICJ0aHJvd0Vycm9yIl0KfQo=\n"
  },
  {
    "path": "packages/node-core/test/sandbox/sourcemap-test-webpack.js",
    "content": "(() => {\n    \"use strict\";\n    var e = {\n        440: (e, t, r) => {\n            Object.defineProperty(t, \"__esModule\", {\n                value: !0\n            });\n            r(635).__exportStar(r(573), t);\n        },\n        573: (e, t) => {\n            Object.defineProperty(t, \"__esModule\", {\n                value: !0\n            }), t.throwError = async function() {\n                throw new Error(\"this is a test error\");\n            };\n        },\n        635: (e, t, r) => {\n            r.r(t), r.d(t, {\n                __addDisposableResource: () => M,\n                __assign: () => a,\n                __asyncDelegator: () => S,\n                __asyncGenerator: () => P,\n                __asyncValues: () => x,\n                __await: () => j,\n                __awaiter: () => _,\n                __classPrivateFieldGet: () => k,\n                __classPrivateFieldIn: () => F,\n                __classPrivateFieldSet: () => A,\n                __createBinding: () => v,\n                __decorate: () => c,\n                __disposeResources: () => G,\n                __esDecorate: () => u,\n                __exportStar: () => h,\n                __extends: () => o,\n                __generator: () => d,\n                __importDefault: () => R,\n                __importStar: () => D,\n                __makeTemplateObject: () => E,\n                __metadata: () => y,\n                __param: () => s,\n                __propKey: () => l,\n                __read: () => w,\n                __rest: () => i,\n                __rewriteRelativeImportExtension: () => z,\n                __runInitializers: () => f,\n                __setFunctionName: () => p,\n                __spread: () => m,\n                __spreadArray: () => O,\n                __spreadArrays: () => g,\n                __values: () => b,\n                default: () => N\n            });\n            var n = function(e, t) {\n                return n = Object.setPrototypeOf || {\n                    __proto__: []\n                } instanceof Array && function(e, t) {\n                    e.__proto__ = t;\n                } || function(e, t) {\n                    for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);\n                }, n(e, t);\n            };\n            function o(e, t) {\n                if (\"function\" != typeof t && null !== t) throw new TypeError(\"Class extends value \" + String(t) + \" is not a constructor or null\");\n                function r() {\n                    this.constructor = e;\n                }\n                n(e, t), e.prototype = null === t ? Object.create(t) : (r.prototype = t.prototype, \n                new r);\n            }\n            var a = function() {\n                return a = Object.assign || function(e) {\n                    for (var t, r = 1, n = arguments.length; r < n; r++) for (var o in t = arguments[r]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n                    return e;\n                }, a.apply(this, arguments);\n            };\n            function i(e, t) {\n                var r = {};\n                for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && t.indexOf(n) < 0 && (r[n] = e[n]);\n                if (null != e && \"function\" == typeof Object.getOwnPropertySymbols) {\n                    var o = 0;\n                    for (n = Object.getOwnPropertySymbols(e); o < n.length; o++) t.indexOf(n[o]) < 0 && Object.prototype.propertyIsEnumerable.call(e, n[o]) && (r[n[o]] = e[n[o]]);\n                }\n                return r;\n            }\n            function c(e, t, r, n) {\n                var o, a = arguments.length, i = a < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, r) : n;\n                if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) i = Reflect.decorate(e, t, r, n); else for (var c = e.length - 1; c >= 0; c--) (o = e[c]) && (i = (a < 3 ? o(i) : a > 3 ? o(t, r, i) : o(t, r)) || i);\n                return a > 3 && i && Object.defineProperty(t, r, i), i;\n            }\n            function s(e, t) {\n                return function(r, n) {\n                    t(r, n, e);\n                };\n            }\n            function u(e, t, r, n, o, a) {\n                function i(e) {\n                    if (void 0 !== e && \"function\" != typeof e) throw new TypeError(\"Function expected\");\n                    return e;\n                }\n                for (var c, s = n.kind, u = \"getter\" === s ? \"get\" : \"setter\" === s ? \"set\" : \"value\", f = !t && e ? n.static ? e : e.prototype : null, l = t || (f ? Object.getOwnPropertyDescriptor(f, n.name) : {}), p = !1, y = r.length - 1; y >= 0; y--) {\n                    var _ = {};\n                    for (var d in n) _[d] = \"access\" === d ? {} : n[d];\n                    for (var d in n.access) _.access[d] = n.access[d];\n                    _.addInitializer = function(e) {\n                        if (p) throw new TypeError(\"Cannot add initializers after decoration has completed\");\n                        a.push(i(e || null));\n                    };\n                    var v = (0, r[y])(\"accessor\" === s ? {\n                        get: l.get,\n                        set: l.set\n                    } : l[u], _);\n                    if (\"accessor\" === s) {\n                        if (void 0 === v) continue;\n                        if (null === v || \"object\" != typeof v) throw new TypeError(\"Object expected\");\n                        (c = i(v.get)) && (l.get = c), (c = i(v.set)) && (l.set = c), (c = i(v.init)) && o.unshift(c);\n                    } else (c = i(v)) && (\"field\" === s ? o.unshift(c) : l[u] = c);\n                }\n                f && Object.defineProperty(f, n.name, l), p = !0;\n            }\n            function f(e, t, r) {\n                for (var n = arguments.length > 2, o = 0; o < t.length; o++) r = n ? t[o].call(e, r) : t[o].call(e);\n                return n ? r : void 0;\n            }\n            function l(e) {\n                return \"symbol\" == typeof e ? e : \"\".concat(e);\n            }\n            function p(e, t, r) {\n                return \"symbol\" == typeof t && (t = t.description ? \"[\".concat(t.description, \"]\") : \"\"), \n                Object.defineProperty(e, \"name\", {\n                    configurable: !0,\n                    value: r ? \"\".concat(r, \" \", t) : t\n                });\n            }\n            function y(e, t) {\n                if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.metadata) return Reflect.metadata(e, t);\n            }\n            function _(e, t, r, n) {\n                return new (r || (r = Promise))(function(o, a) {\n                    function i(e) {\n                        try {\n                            s(n.next(e));\n                        } catch (e) {\n                            a(e);\n                        }\n                    }\n                    function c(e) {\n                        try {\n                            s(n.throw(e));\n                        } catch (e) {\n                            a(e);\n                        }\n                    }\n                    function s(e) {\n                        var t;\n                        e.done ? o(e.value) : (t = e.value, t instanceof r ? t : new r(function(e) {\n                            e(t);\n                        })).then(i, c);\n                    }\n                    s((n = n.apply(e, t || [])).next());\n                });\n            }\n            function d(e, t) {\n                var r, n, o, a = {\n                    label: 0,\n                    sent: function() {\n                        if (1 & o[0]) throw o[1];\n                        return o[1];\n                    },\n                    trys: [],\n                    ops: []\n                }, i = Object.create((\"function\" == typeof Iterator ? Iterator : Object).prototype);\n                return i.next = c(0), i.throw = c(1), i.return = c(2), \"function\" == typeof Symbol && (i[Symbol.iterator] = function() {\n                    return this;\n                }), i;\n                function c(c) {\n                    return function(s) {\n                        return function(c) {\n                            if (r) throw new TypeError(\"Generator is already executing.\");\n                            for (;i && (i = 0, c[0] && (a = 0)), a; ) try {\n                                if (r = 1, n && (o = 2 & c[0] ? n.return : c[0] ? n.throw || ((o = n.return) && o.call(n), \n                                0) : n.next) && !(o = o.call(n, c[1])).done) return o;\n                                switch (n = 0, o && (c = [ 2 & c[0], o.value ]), c[0]) {\n                                  case 0:\n                                  case 1:\n                                    o = c;\n                                    break;\n\n                                  case 4:\n                                    return a.label++, {\n                                        value: c[1],\n                                        done: !1\n                                    };\n\n                                  case 5:\n                                    a.label++, n = c[1], c = [ 0 ];\n                                    continue;\n\n                                  case 7:\n                                    c = a.ops.pop(), a.trys.pop();\n                                    continue;\n\n                                  default:\n                                    if (!(o = a.trys, (o = o.length > 0 && o[o.length - 1]) || 6 !== c[0] && 2 !== c[0])) {\n                                        a = 0;\n                                        continue;\n                                    }\n                                    if (3 === c[0] && (!o || c[1] > o[0] && c[1] < o[3])) {\n                                        a.label = c[1];\n                                        break;\n                                    }\n                                    if (6 === c[0] && a.label < o[1]) {\n                                        a.label = o[1], o = c;\n                                        break;\n                                    }\n                                    if (o && a.label < o[2]) {\n                                        a.label = o[2], a.ops.push(c);\n                                        break;\n                                    }\n                                    o[2] && a.ops.pop(), a.trys.pop();\n                                    continue;\n                                }\n                                c = t.call(e, a);\n                            } catch (e) {\n                                c = [ 6, e ], n = 0;\n                            } finally {\n                                r = o = 0;\n                            }\n                            if (5 & c[0]) throw c[1];\n                            return {\n                                value: c[0] ? c[1] : void 0,\n                                done: !0\n                            };\n                        }([ c, s ]);\n                    };\n                }\n            }\n            var v = Object.create ? function(e, t, r, n) {\n                void 0 === n && (n = r);\n                var o = Object.getOwnPropertyDescriptor(t, r);\n                o && !(\"get\" in o ? !t.__esModule : o.writable || o.configurable) || (o = {\n                    enumerable: !0,\n                    get: function() {\n                        return t[r];\n                    }\n                }), Object.defineProperty(e, n, o);\n            } : function(e, t, r, n) {\n                void 0 === n && (n = r), e[n] = t[r];\n            };\n            function h(e, t) {\n                for (var r in e) \"default\" === r || Object.prototype.hasOwnProperty.call(t, r) || v(t, e, r);\n            }\n            function b(e) {\n                var t = \"function\" == typeof Symbol && Symbol.iterator, r = t && e[t], n = 0;\n                if (r) return r.call(e);\n                if (e && \"number\" == typeof e.length) return {\n                    next: function() {\n                        return e && n >= e.length && (e = void 0), {\n                            value: e && e[n++],\n                            done: !e\n                        };\n                    }\n                };\n                throw new TypeError(t ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n            }\n            function w(e, t) {\n                var r = \"function\" == typeof Symbol && e[Symbol.iterator];\n                if (!r) return e;\n                var n, o, a = r.call(e), i = [];\n                try {\n                    for (;(void 0 === t || t-- > 0) && !(n = a.next()).done; ) i.push(n.value);\n                } catch (e) {\n                    o = {\n                        error: e\n                    };\n                } finally {\n                    try {\n                        n && !n.done && (r = a.return) && r.call(a);\n                    } finally {\n                        if (o) throw o.error;\n                    }\n                }\n                return i;\n            }\n            function m() {\n                for (var e = [], t = 0; t < arguments.length; t++) e = e.concat(w(arguments[t]));\n                return e;\n            }\n            function g() {\n                for (var e = 0, t = 0, r = arguments.length; t < r; t++) e += arguments[t].length;\n                var n = Array(e), o = 0;\n                for (t = 0; t < r; t++) for (var a = arguments[t], i = 0, c = a.length; i < c; i++, \n                o++) n[o] = a[i];\n                return n;\n            }\n            function O(e, t, r) {\n                if (r || 2 === arguments.length) for (var n, o = 0, a = t.length; o < a; o++) !n && o in t || (n || (n = Array.prototype.slice.call(t, 0, o)), \n                n[o] = t[o]);\n                return e.concat(n || Array.prototype.slice.call(t));\n            }\n            function j(e) {\n                return this instanceof j ? (this.v = e, this) : new j(e);\n            }\n            function P(e, t, r) {\n                if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n                var n, o = r.apply(e, t || []), a = [];\n                return n = Object.create((\"function\" == typeof AsyncIterator ? AsyncIterator : Object).prototype), \n                i(\"next\"), i(\"throw\"), i(\"return\", function(e) {\n                    return function(t) {\n                        return Promise.resolve(t).then(e, u);\n                    };\n                }), n[Symbol.asyncIterator] = function() {\n                    return this;\n                }, n;\n                function i(e, t) {\n                    o[e] && (n[e] = function(t) {\n                        return new Promise(function(r, n) {\n                            a.push([ e, t, r, n ]) > 1 || c(e, t);\n                        });\n                    }, t && (n[e] = t(n[e])));\n                }\n                function c(e, t) {\n                    try {\n                        (r = o[e](t)).value instanceof j ? Promise.resolve(r.value.v).then(s, u) : f(a[0][2], r);\n                    } catch (e) {\n                        f(a[0][3], e);\n                    }\n                    var r;\n                }\n                function s(e) {\n                    c(\"next\", e);\n                }\n                function u(e) {\n                    c(\"throw\", e);\n                }\n                function f(e, t) {\n                    e(t), a.shift(), a.length && c(a[0][0], a[0][1]);\n                }\n            }\n            function S(e) {\n                var t, r;\n                return t = {}, n(\"next\"), n(\"throw\", function(e) {\n                    throw e;\n                }), n(\"return\"), t[Symbol.iterator] = function() {\n                    return this;\n                }, t;\n                function n(n, o) {\n                    t[n] = e[n] ? function(t) {\n                        return (r = !r) ? {\n                            value: j(e[n](t)),\n                            done: !1\n                        } : o ? o(t) : t;\n                    } : o;\n                }\n            }\n            function x(e) {\n                if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n                var t, r = e[Symbol.asyncIterator];\n                return r ? r.call(e) : (e = b(e), t = {}, n(\"next\"), n(\"throw\"), n(\"return\"), t[Symbol.asyncIterator] = function() {\n                    return this;\n                }, t);\n                function n(r) {\n                    t[r] = e[r] && function(t) {\n                        return new Promise(function(n, o) {\n                            (function(e, t, r, n) {\n                                Promise.resolve(n).then(function(t) {\n                                    e({\n                                        value: t,\n                                        done: r\n                                    });\n                                }, t);\n                            })(n, o, (t = e[r](t)).done, t.value);\n                        });\n                    };\n                }\n            }\n            function E(e, t) {\n                return Object.defineProperty ? Object.defineProperty(e, \"raw\", {\n                    value: t\n                }) : e.raw = t, e;\n            }\n            var T = Object.create ? function(e, t) {\n                Object.defineProperty(e, \"default\", {\n                    enumerable: !0,\n                    value: t\n                });\n            } : function(e, t) {\n                e.default = t;\n            }, I = function(e) {\n                return I = Object.getOwnPropertyNames || function(e) {\n                    var t = [];\n                    for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[t.length] = r);\n                    return t;\n                }, I(e);\n            };\n            function D(e) {\n                if (e && e.__esModule) return e;\n                var t = {};\n                if (null != e) for (var r = I(e), n = 0; n < r.length; n++) \"default\" !== r[n] && v(t, e, r[n]);\n                return T(t, e), t;\n            }\n            function R(e) {\n                return e && e.__esModule ? e : {\n                    default: e\n                };\n            }\n            function k(e, t, r, n) {\n                if (\"a\" === r && !n) throw new TypeError(\"Private accessor was defined without a getter\");\n                if (\"function\" == typeof t ? e !== t || !n : !t.has(e)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n                return \"m\" === r ? n : \"a\" === r ? n.call(e) : n ? n.value : t.get(e);\n            }\n            function A(e, t, r, n, o) {\n                if (\"m\" === n) throw new TypeError(\"Private method is not writable\");\n                if (\"a\" === n && !o) throw new TypeError(\"Private accessor was defined without a setter\");\n                if (\"function\" == typeof t ? e !== t || !o : !t.has(e)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n                return \"a\" === n ? o.call(e, r) : o ? o.value = r : t.set(e, r), r;\n            }\n            function F(e, t) {\n                if (null === t || \"object\" != typeof t && \"function\" != typeof t) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n                return \"function\" == typeof e ? t === e : e.has(t);\n            }\n            function M(e, t, r) {\n                if (null != t) {\n                    if (\"object\" != typeof t && \"function\" != typeof t) throw new TypeError(\"Object expected.\");\n                    var n, o;\n                    if (r) {\n                        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n                        n = t[Symbol.asyncDispose];\n                    }\n                    if (void 0 === n) {\n                        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n                        n = t[Symbol.dispose], r && (o = n);\n                    }\n                    if (\"function\" != typeof n) throw new TypeError(\"Object not disposable.\");\n                    o && (n = function() {\n                        try {\n                            o.call(this);\n                        } catch (e) {\n                            return Promise.reject(e);\n                        }\n                    }), e.stack.push({\n                        value: t,\n                        dispose: n,\n                        async: r\n                    });\n                } else r && e.stack.push({\n                    async: !0\n                });\n                return t;\n            }\n            var C = \"function\" == typeof SuppressedError ? SuppressedError : function(e, t, r) {\n                var n = new Error(r);\n                return n.name = \"SuppressedError\", n.error = e, n.suppressed = t, n;\n            };\n            function G(e) {\n                function t(t) {\n                    e.error = e.hasError ? new C(t, e.error, \"An error was suppressed during disposal.\") : t, \n                    e.hasError = !0;\n                }\n                var r, n = 0;\n                return function o() {\n                    for (;r = e.stack.pop(); ) try {\n                        if (!r.async && 1 === n) return n = 0, e.stack.push(r), Promise.resolve().then(o);\n                        if (r.dispose) {\n                            var a = r.dispose.call(r.value);\n                            if (r.async) return n |= 2, Promise.resolve(a).then(o, function(e) {\n                                return t(e), o();\n                            });\n                        } else n |= 1;\n                    } catch (e) {\n                        t(e);\n                    }\n                    if (1 === n) return e.hasError ? Promise.reject(e.error) : Promise.resolve();\n                    if (e.hasError) throw e.error;\n                }();\n            }\n            function z(e, t) {\n                return \"string\" == typeof e && /^\\.\\.?\\//.test(e) ? e.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function(e, r, n, o, a) {\n                    return r ? t ? \".jsx\" : \".js\" : !n || o && a ? n + o + \".\" + a.toLowerCase() + \"js\" : e;\n                }) : e;\n            }\n            const N = {\n                __extends: o,\n                __assign: a,\n                __rest: i,\n                __decorate: c,\n                __param: s,\n                __esDecorate: u,\n                __runInitializers: f,\n                __propKey: l,\n                __setFunctionName: p,\n                __metadata: y,\n                __awaiter: _,\n                __generator: d,\n                __createBinding: v,\n                __exportStar: h,\n                __values: b,\n                __read: w,\n                __spread: m,\n                __spreadArrays: g,\n                __spreadArray: O,\n                __await: j,\n                __asyncGenerator: P,\n                __asyncDelegator: S,\n                __asyncValues: x,\n                __makeTemplateObject: E,\n                __importStar: D,\n                __importDefault: R,\n                __classPrivateFieldGet: k,\n                __classPrivateFieldSet: A,\n                __classPrivateFieldIn: F,\n                __addDisposableResource: M,\n                __disposeResources: G,\n                __rewriteRelativeImportExtension: z\n            };\n        }\n    }, t = {};\n    function r(n) {\n        var o = t[n];\n        if (void 0 !== o) return o.exports;\n        var a = t[n] = {\n            exports: {}\n        };\n        return e[n](a, a.exports, r), a.exports;\n    }\n    r.d = (e, t) => {\n        for (var n in t) r.o(t, n) && !r.o(e, n) && Object.defineProperty(e, n, {\n            enumerable: !0,\n            get: t[n]\n        });\n    }, r.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), r.r = e => {\n        \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n            value: \"Module\"\n        }), Object.defineProperty(e, \"__esModule\", {\n            value: !0\n        });\n    };\n    var n = r(440), o = exports;\n    for (var a in n) o[a] = n[a];\n    n.__esModule && Object.defineProperty(o, \"__esModule\", {\n        value: !0\n    });\n})();\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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T0MsZUFBZUMsR0FBUyxjQUFjO1lBQUVDLFFBQU87OztJQ0Z2RCxJQUFJb00sSUFBc0JULEVBQW9CLE0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9keW1lbnNpb24vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vZHltZW5zaW9uLy4vc3JjL21hcHBpbmdzL21hcHBpbmdIYW5kbGVycy50cyIsIndlYnBhY2s6Ly9keW1lbnNpb24vLi9ub2RlX21vZHVsZXMvdHNsaWIvdHNsaWIuZXM2Lm1qcyIsIndlYnBhY2s6Ly9keW1lbnNpb24vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vZHltZW5zaW9uL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9keW1lbnNpb24vd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9keW1lbnNpb24vd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9keW1lbnNpb24vd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgdHNsaWJfMSA9IHJlcXVpcmUoXCJ0c2xpYlwiKTtcbi8vRXhwb3J0cyBhbGwgaGFuZGxlciBmdW5jdGlvbnNcbnRzbGliXzEuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL21hcHBpbmdzL21hcHBpbmdIYW5kbGVyc1wiKSwgZXhwb3J0cyk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8vIGltcG9ydCB7IFRyYW5zZmVyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG4vLyBpbXBvcnQgeyBDb3Ntb3NCbG9jaywgQ29zbW9zRXZlbnQgfSBmcm9tIFwiQHN1YnFsL3R5cGVzLWNvc21vc1wiO1xuLy8gaW1wb3J0IHsgc2hhMjU2IH0gZnJvbSBcIkBjb3NtanMvY3J5cHRvXCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnRocm93RXJyb3IgPSB0aHJvd0Vycm9yO1xuYXN5bmMgZnVuY3Rpb24gdGhyb3dFcnJvcigpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ0aGlzIGlzIGEgdGVzdCBlcnJvclwiKTtcbn1cbi8vIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVCbG9jayhibG9jazogQ29zbW9zQmxvY2spOiBQcm9taXNlPHZvaWQ+IHtcbi8vICAgbG9nZ2VyLmluZm8oXCJIQU5ETEUgQkxPQ0tcIik7XG4vLyAgIGxvZ2dlci5pbmZvKGBIYXNoZWQgZGF0YSAke3NoYTI1NihibG9jay5ibG9jay5oZWFkZXIuZGF0YUhhc2gpfWApO1xuLy8gfVxuLy8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZUV2ZW50KGV2ZW50OiBDb3Ntb3NFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuLy8gICBjb25zdCBldmVudFJlY29yZCA9IFRyYW5zZmVyLmNyZWF0ZSh7XG4vLyAgICAgaWQ6IGAke2V2ZW50LnR4Lmhhc2h9LSR7ZXZlbnQubXNnIS5pZHh9LSR7ZXZlbnQuaWR4fWAsXG4vLyAgICAgYmxvY2tIZWlnaHQ6IEJpZ0ludChldmVudC5ibG9jay5ibG9jay5oZWFkZXIuaGVpZ2h0KSxcbi8vICAgICB0eEhhc2g6IGV2ZW50LnR4Lmhhc2gsXG4vLyAgICAgdG9BZGRyZXNzOiBcIlwiLFxuLy8gICAgIGFtb3VudDogXCJcIixcbi8vICAgICBmcm9tQWRkcmVzczogXCJcIixcbi8vICAgfSk7XG4vLyAgIGZvciAoY29uc3QgYXR0ciBvZiBldmVudC5ldmVudC5hdHRyaWJ1dGVzKSB7XG4vLyAgICAgc3dpdGNoIChhdHRyLmtleSkge1xuLy8gICAgICAgY2FzZSBcInJlY2lwaWVudFwiOlxuLy8gICAgICAgICBldmVudFJlY29yZC50b0FkZHJlc3MgPSBhdHRyLnZhbHVlLnRvU3RyaW5nKCk7XG4vLyAgICAgICAgIGJyZWFrO1xuLy8gICAgICAgY2FzZSBcImFtb3VudFwiOlxuLy8gICAgICAgICBldmVudFJlY29yZC5hbW91bnQgPSBhdHRyLnZhbHVlLnRvU3RyaW5nKCk7XG4vLyAgICAgICAgIGJyZWFrO1xuLy8gICAgICAgY2FzZSBcInNlbmRlclwiOlxuLy8gICAgICAgICBldmVudFJlY29yZC5mcm9tQWRkcmVzcyA9IGF0dHIudmFsdWUudG9TdHJpbmcoKTtcbi8vICAgICAgICAgYnJlYWs7XG4vLyAgICAgICBkZWZhdWx0OlxuLy8gICAgICAgICBicmVhaztcbi8vICAgICB9XG4vLyAgIH1cbi8vICAgYXdhaXQgZXZlbnRSZWNvcmQuc2F2ZSgpO1xuLy8gfVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXG5cblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1Jcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xuXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcbiAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcbiAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcbiAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbn1cblxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xuICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xuICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHQ7XG4gIH1cbiAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xuICB2YXIgdCA9IHt9O1xuICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgIHRbcF0gPSBzW3BdO1xuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgIH1cbiAgcmV0dXJuIHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXNEZWNvcmF0ZShjdG9yLCBkZXNjcmlwdG9ySW4sIGRlY29yYXRvcnMsIGNvbnRleHRJbiwgaW5pdGlhbGl6ZXJzLCBleHRyYUluaXRpYWxpemVycykge1xuICBmdW5jdGlvbiBhY2NlcHQoZikgeyBpZiAoZiAhPT0gdm9pZCAwICYmIHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJGdW5jdGlvbiBleHBlY3RlZFwiKTsgcmV0dXJuIGY7IH1cbiAgdmFyIGtpbmQgPSBjb250ZXh0SW4ua2luZCwga2V5ID0ga2luZCA9PT0gXCJnZXR0ZXJcIiA/IFwiZ2V0XCIgOiBraW5kID09PSBcInNldHRlclwiID8gXCJzZXRcIiA6IFwidmFsdWVcIjtcbiAgdmFyIHRhcmdldCA9ICFkZXNjcmlwdG9ySW4gJiYgY3RvciA/IGNvbnRleHRJbltcInN0YXRpY1wiXSA/IGN0b3IgOiBjdG9yLnByb3RvdHlwZSA6IG51bGw7XG4gIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pO1xuICB2YXIgXywgZG9uZSA9IGZhbHNlO1xuICBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgdmFyIGNvbnRleHQgPSB7fTtcbiAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluKSBjb250ZXh0W3BdID0gcCA9PT0gXCJhY2Nlc3NcIiA/IHt9IDogY29udGV4dEluW3BdO1xuICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4uYWNjZXNzKSBjb250ZXh0LmFjY2Vzc1twXSA9IGNvbnRleHRJbi5hY2Nlc3NbcF07XG4gICAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyID0gZnVuY3Rpb24gKGYpIHsgaWYgKGRvbmUpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWRcIik7IGV4dHJhSW5pdGlhbGl6ZXJzLnB1c2goYWNjZXB0KGYgfHwgbnVsbCkpOyB9O1xuICAgICAgdmFyIHJlc3VsdCA9ICgwLCBkZWNvcmF0b3JzW2ldKShraW5kID09PSBcImFjY2Vzc29yXCIgPyB7IGdldDogZGVzY3JpcHRvci5nZXQsIHNldDogZGVzY3JpcHRvci5zZXQgfSA6IGRlc2NyaXB0b3Jba2V5XSwgY29udGV4dCk7XG4gICAgICBpZiAoa2luZCA9PT0gXCJhY2Nlc3NvclwiKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdm9pZCAwKSBjb250aW51ZTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09IFwib2JqZWN0XCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWRcIik7XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmdldCkpIGRlc2NyaXB0b3IuZ2V0ID0gXztcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5pbml0KSkgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHtcbiAgICAgICAgICBpZiAoa2luZCA9PT0gXCJmaWVsZFwiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTtcbiAgICAgICAgICBlbHNlIGRlc2NyaXB0b3Jba2V5XSA9IF87XG4gICAgICB9XG4gIH1cbiAgaWYgKHRhcmdldCkgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgY29udGV4dEluLm5hbWUsIGRlc2NyaXB0b3IpO1xuICBkb25lID0gdHJ1ZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3J1bkluaXRpYWxpemVycyh0aGlzQXJnLCBpbml0aWFsaXplcnMsIHZhbHVlKSB7XG4gIHZhciB1c2VWYWx1ZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGluaXRpYWxpemVycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFsdWUgPSB1c2VWYWx1ZSA/IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcsIHZhbHVlKSA6IGluaXRpYWxpemVyc1tpXS5jYWxsKHRoaXNBcmcpO1xuICB9XG4gIHJldHVybiB1c2VWYWx1ZSA/IHZhbHVlIDogdm9pZCAwO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fcHJvcEtleSh4KSB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gXCJzeW1ib2xcIiA/IHggOiBcIlwiLmNvbmNhdCh4KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3NldEZ1bmN0aW9uTmFtZShmLCBuYW1lLCBwcmVmaXgpIHtcbiAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN5bWJvbFwiKSBuYW1lID0gbmFtZS5kZXNjcmlwdGlvbiA/IFwiW1wiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCBcIl1cIikgOiBcIlwiO1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGYsIFwibmFtZVwiLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHByZWZpeCA/IFwiXCIuY29uY2F0KHByZWZpeCwgXCIgXCIsIG5hbWUpIDogbmFtZSB9KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XG4gIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XG4gIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGcgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEl0ZXJhdG9yIDogT2JqZWN0KS5wcm90b3R5cGUpO1xuICByZXR1cm4gZy5uZXh0ID0gdmVyYigwKSwgZ1tcInRocm93XCJdID0gdmVyYigxKSwgZ1tcInJldHVyblwiXSA9IHZlcmIoMiksIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcbiAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XG4gICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgfVxufVxuXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspO1xuICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xuICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgb1trMl0gPSBtW2tdO1xufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xuICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIHApKSBfX2NyZWF0ZUJpbmRpbmcobywgbSwgcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XG4gIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7XG4gIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xuICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09IFwibnVtYmVyXCIpIHJldHVybiB7XG4gICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XG4gICAgICB9XG4gIH07XG4gIHRocm93IG5ldyBUeXBlRXJyb3IocyA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XG4gIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCFtKSByZXR1cm4gbztcbiAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XG4gIHRyeSB7XG4gICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcbiAgfVxuICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cbiAgZmluYWxseSB7XG4gICAgICB0cnkge1xuICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xuICAgICAgfVxuICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XG4gIH1cbiAgcmV0dXJuIGFyO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcbiAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXG4gICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XG4gIHJldHVybiBhcjtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheXMoKSB7XG4gIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xuICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXG4gICAgICBmb3IgKHZhciBhID0gYXJndW1lbnRzW2ldLCBqID0gMCwgamwgPSBhLmxlbmd0aDsgaiA8IGpsOyBqKyssIGsrKylcbiAgICAgICAgICByW2tdID0gYVtqXTtcbiAgcmV0dXJuIHI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XG4gIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoYXIgfHwgIShpIGluIGZyb20pKSB7XG4gICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcbiAgICAgICAgICBhcltpXSA9IGZyb21baV07XG4gICAgICB9XG4gIH1cbiAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcbiAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xuICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xuICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xuICByZXR1cm4gaSA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBBc3luY0l0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBBc3luY0l0ZXJhdG9yIDogT2JqZWN0KS5wcm90b3R5cGUpLCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIsIGF3YWl0UmV0dXJuKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xuICBmdW5jdGlvbiBhd2FpdFJldHVybihmKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZiwgcmVqZWN0KTsgfTsgfVxuICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaWYgKGdbbl0pIHsgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgaWYgKGYpIGlbbl0gPSBmKGlbbl0pOyB9IH1cbiAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxuICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cbiAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxuICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XG4gIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xuICB2YXIgaSwgcDtcbiAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcbiAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xuICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xuICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xuICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XG4gIGZ1bmN0aW9uIHZlcmIobikgeyBpW25dID0gb1tuXSAmJiBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeyB2ID0gb1tuXSh2KSwgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgdi5kb25lLCB2LnZhbHVlKTsgfSk7IH07IH1cbiAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcbiAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cbiAgcmV0dXJuIGNvb2tlZDtcbn07XG5cbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gIG9bXCJkZWZhdWx0XCJdID0gdjtcbn07XG5cbnZhciBvd25LZXlzID0gZnVuY3Rpb24obykge1xuICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gKG8pIHtcbiAgICB2YXIgYXIgPSBbXTtcbiAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xuICAgIHJldHVybiBhcjtcbiAgfTtcbiAgcmV0dXJuIG93bktleXMobyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnRTdGFyKG1vZCkge1xuICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICB2YXIgcmVzdWx0ID0ge307XG4gIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gXCJkZWZhdWx0XCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7XG4gIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XG4gIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgZGVmYXVsdDogbW9kIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xuICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7XG4gIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZFNldChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XG4gIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcbiAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyXCIpO1xuICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRJbihzdGF0ZSwgcmVjZWl2ZXIpIHtcbiAgaWYgKHJlY2VpdmVyID09PSBudWxsIHx8ICh0eXBlb2YgcmVjZWl2ZXIgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHJlY2VpdmVyICE9PSBcImZ1bmN0aW9uXCIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3RcIik7XG4gIHJldHVybiB0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyID09PSBzdGF0ZSA6IHN0YXRlLmhhcyhyZWNlaXZlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FkZERpc3Bvc2FibGVSZXNvdXJjZShlbnYsIHZhbHVlLCBhc3luYykge1xuICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QgZXhwZWN0ZWQuXCIpO1xuICAgIHZhciBkaXNwb3NlLCBpbm5lcjtcbiAgICBpZiAoYXN5bmMpIHtcbiAgICAgIGlmICghU3ltYm9sLmFzeW5jRGlzcG9zZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0Rpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xuICAgICAgZGlzcG9zZSA9IHZhbHVlW1N5bWJvbC5hc3luY0Rpc3Bvc2VdO1xuICAgIH1cbiAgICBpZiAoZGlzcG9zZSA9PT0gdm9pZCAwKSB7XG4gICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xuICAgICAgZGlzcG9zZSA9IHZhbHVlW1N5bWJvbC5kaXNwb3NlXTtcbiAgICAgIGlmIChhc3luYykgaW5uZXIgPSBkaXNwb3NlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGRpc3Bvc2UgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBub3QgZGlzcG9zYWJsZS5cIik7XG4gICAgaWYgKGlubmVyKSBkaXNwb3NlID0gZnVuY3Rpb24oKSB7IHRyeSB7IGlubmVyLmNhbGwodGhpcyk7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpOyB9IH07XG4gICAgZW52LnN0YWNrLnB1c2goeyB2YWx1ZTogdmFsdWUsIGRpc3Bvc2U6IGRpc3Bvc2UsIGFzeW5jOiBhc3luYyB9KTtcbiAgfVxuICBlbHNlIGlmIChhc3luYykge1xuICAgIGVudi5zdGFjay5wdXNoKHsgYXN5bmM6IHRydWUgfSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG52YXIgX1N1cHByZXNzZWRFcnJvciA9IHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xuICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2Rpc3Bvc2VSZXNvdXJjZXMoZW52KSB7XG4gIGZ1bmN0aW9uIGZhaWwoZSkge1xuICAgIGVudi5lcnJvciA9IGVudi5oYXNFcnJvciA/IG5ldyBfU3VwcHJlc3NlZEVycm9yKGUsIGVudi5lcnJvciwgXCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuXCIpIDogZTtcbiAgICBlbnYuaGFzRXJyb3IgPSB0cnVlO1xuICB9XG4gIHZhciByLCBzID0gMDtcbiAgZnVuY3Rpb24gbmV4dCgpIHtcbiAgICB3aGlsZSAociA9IGVudi5zdGFjay5wb3AoKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKCFyLmFzeW5jICYmIHMgPT09IDEpIHJldHVybiBzID0gMCwgZW52LnN0YWNrLnB1c2gociksIFByb21pc2UucmVzb2x2ZSgpLnRoZW4obmV4dCk7XG4gICAgICAgIGlmIChyLmRpc3Bvc2UpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gci5kaXNwb3NlLmNhbGwoci52YWx1ZSk7XG4gICAgICAgICAgaWYgKHIuYXN5bmMpIHJldHVybiBzIHw9IDIsIFByb21pc2UucmVzb2x2ZShyZXN1bHQpLnRoZW4obmV4dCwgZnVuY3Rpb24oZSkgeyBmYWlsKGUpOyByZXR1cm4gbmV4dCgpOyB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHMgfD0gMTtcbiAgICAgIH1cbiAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGZhaWwoZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzID09PSAxKSByZXR1cm4gZW52Lmhhc0Vycm9yID8gUHJvbWlzZS5yZWplY3QoZW52LmVycm9yKSA6IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIGlmIChlbnYuaGFzRXJyb3IpIHRocm93IGVudi5lcnJvcjtcbiAgfVxuICByZXR1cm4gbmV4dCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24ocGF0aCwgcHJlc2VydmVKc3gpIHtcbiAgaWYgKHR5cGVvZiBwYXRoID09PSBcInN0cmluZ1wiICYmIC9eXFwuXFwuP1xcLy8udGVzdChwYXRoKSkge1xuICAgICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFwuKHRzeCkkfCgoPzpcXC5kKT8pKCg/OlxcLlteLi9dKz8pPylcXC4oW2NtXT8pdHMkL2ksIGZ1bmN0aW9uIChtLCB0c3gsIGQsIGV4dCwgY20pIHtcbiAgICAgICAgICByZXR1cm4gdHN4ID8gcHJlc2VydmVKc3ggPyBcIi5qc3hcIiA6IFwiLmpzXCIgOiBkICYmICghZXh0IHx8ICFjbSkgPyBtIDogKGQgKyBleHQgKyBcIi5cIiArIGNtLnRvTG93ZXJDYXNlKCkgKyBcImpzXCIpO1xuICAgICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhdGg7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgX19leHRlbmRzLFxuICBfX2Fzc2lnbixcbiAgX19yZXN0LFxuICBfX2RlY29yYXRlLFxuICBfX3BhcmFtLFxuICBfX2VzRGVjb3JhdGUsXG4gIF9fcnVuSW5pdGlhbGl6ZXJzLFxuICBfX3Byb3BLZXksXG4gIF9fc2V0RnVuY3Rpb25OYW1lLFxuICBfX21ldGFkYXRhLFxuICBfX2F3YWl0ZXIsXG4gIF9fZ2VuZXJhdG9yLFxuICBfX2NyZWF0ZUJpbmRpbmcsXG4gIF9fZXhwb3J0U3RhcixcbiAgX192YWx1ZXMsXG4gIF9fcmVhZCxcbiAgX19zcHJlYWQsXG4gIF9fc3ByZWFkQXJyYXlzLFxuICBfX3NwcmVhZEFycmF5LFxuICBfX2F3YWl0LFxuICBfX2FzeW5jR2VuZXJhdG9yLFxuICBfX2FzeW5jRGVsZWdhdG9yLFxuICBfX2FzeW5jVmFsdWVzLFxuICBfX21ha2VUZW1wbGF0ZU9iamVjdCxcbiAgX19pbXBvcnRTdGFyLFxuICBfX2ltcG9ydERlZmF1bHQsXG4gIF9fY2xhc3NQcml2YXRlRmllbGRHZXQsXG4gIF9fY2xhc3NQcml2YXRlRmllbGRTZXQsXG4gIF9fY2xhc3NQcml2YXRlRmllbGRJbixcbiAgX19hZGREaXNwb3NhYmxlUmVzb3VyY2UsXG4gIF9fZGlzcG9zZVJlc291cmNlcyxcbiAgX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24sXG59O1xuIiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCIvLyBzdGFydHVwXG4vLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8vIFRoaXMgZW50cnkgbW9kdWxlIGlzIHJlZmVyZW5jZWQgYnkgb3RoZXIgbW9kdWxlcyBzbyBpdCBjYW4ndCBiZSBpbmxpbmVkXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNDQwKTtcbiJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIl9fZXhwb3J0U3RhciIsInRocm93RXJyb3IiLCJhc3luYyIsIkVycm9yIiwiZXh0ZW5kU3RhdGljcyIsImQiLCJiIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJBcnJheSIsInAiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfX2V4dGVuZHMiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJfXyIsInRoaXMiLCJjb25zdHJ1Y3RvciIsImNyZWF0ZSIsIl9fYXNzaWduIiwiYXNzaWduIiwidCIsInMiLCJpIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiX19yZXN0IiwiZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIl9fZGVjb3JhdGUiLCJkZWNvcmF0b3JzIiwidGFyZ2V0Iiwia2V5IiwiZGVzYyIsImMiLCJyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiUmVmbGVjdCIsImRlY29yYXRlIiwiX19wYXJhbSIsInBhcmFtSW5kZXgiLCJkZWNvcmF0b3IiLCJfX2VzRGVjb3JhdGUiLCJjdG9yIiwiZGVzY3JpcHRvckluIiwiY29udGV4dEluIiwiaW5pdGlhbGl6ZXJzIiwiZXh0cmFJbml0aWFsaXplcnMiLCJhY2NlcHQiLCJmIiwiXyIsImtpbmQiLCJkZXNjcmlwdG9yIiwibmFtZSIsImRvbmUiLCJjb250ZXh0IiwiYWNjZXNzIiwiYWRkSW5pdGlhbGl6ZXIiLCJwdXNoIiwicmVzdWx0IiwiZ2V0Iiwic2V0IiwiaW5pdCIsInVuc2hpZnQiLCJfX3J1bkluaXRpYWxpemVycyIsInRoaXNBcmciLCJ1c2VWYWx1ZSIsIl9fcHJvcEtleSIsIngiLCJjb25jYXQiLCJfX3NldEZ1bmN0aW9uTmFtZSIsInByZWZpeCIsImRlc2NyaXB0aW9uIiwiY29uZmlndXJhYmxlIiwiX19tZXRhZGF0YSIsIm1ldGFkYXRhS2V5IiwibWV0YWRhdGFWYWx1ZSIsIm1ldGFkYXRhIiwiX19hd2FpdGVyIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJ0aGVuIiwiX19nZW5lcmF0b3IiLCJib2R5IiwieSIsImxhYmVsIiwic2VudCIsInRyeXMiLCJvcHMiLCJnIiwiSXRlcmF0b3IiLCJ2ZXJiIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJ2Iiwib3AiLCJwb3AiLCJfX2NyZWF0ZUJpbmRpbmciLCJvIiwibSIsImsiLCJrMiIsInVuZGVmaW5lZCIsIl9fZXNNb2R1bGUiLCJ3cml0YWJsZSIsImVudW1lcmFibGUiLCJfX3ZhbHVlcyIsIl9fcmVhZCIsImFyIiwiZXJyb3IiLCJfX3NwcmVhZCIsIl9fc3ByZWFkQXJyYXlzIiwiaWwiLCJhIiwiaiIsImpsIiwiX19zcHJlYWRBcnJheSIsInRvIiwiZnJvbSIsInBhY2siLCJsIiwic2xpY2UiLCJfX2F3YWl0IiwiX19hc3luY0dlbmVyYXRvciIsImFzeW5jSXRlcmF0b3IiLCJxIiwiQXN5bmNJdGVyYXRvciIsInJlc3VtZSIsImZ1bGZpbGwiLCJzZXR0bGUiLCJzaGlmdCIsIl9fYXN5bmNEZWxlZ2F0b3IiLCJfX2FzeW5jVmFsdWVzIiwiX19tYWtlVGVtcGxhdGVPYmplY3QiLCJjb29rZWQiLCJyYXciLCJfX3NldE1vZHVsZURlZmF1bHQiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsIl9faW1wb3J0U3RhciIsIm1vZCIsIl9faW1wb3J0RGVmYXVsdCIsImRlZmF1bHQiLCJfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0IiwicmVjZWl2ZXIiLCJzdGF0ZSIsImhhcyIsIl9fY2xhc3NQcml2YXRlRmllbGRTZXQiLCJfX2NsYXNzUHJpdmF0ZUZpZWxkSW4iLCJfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSIsImVudiIsImRpc3Bvc2UiLCJpbm5lciIsImFzeW5jRGlzcG9zZSIsInN0YWNrIiwiX1N1cHByZXNzZWRFcnJvciIsIlN1cHByZXNzZWRFcnJvciIsInN1cHByZXNzZWQiLCJtZXNzYWdlIiwiX19kaXNwb3NlUmVzb3VyY2VzIiwiZmFpbCIsImhhc0Vycm9yIiwiX19yZXdyaXRlUmVsYXRpdmVJbXBvcnRFeHRlbnNpb24iLCJwYXRoIiwicHJlc2VydmVKc3giLCJ0ZXN0IiwicmVwbGFjZSIsInRzeCIsImV4dCIsImNtIiwidG9Mb3dlckNhc2UiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJtb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwiZGVmaW5pdGlvbiIsIm9iaiIsInByb3AiLCJ0b1N0cmluZ1RhZyIsIl9fd2VicGFja19leHBvcnRzX18iXSwic291cmNlUm9vdCI6IiJ9"
  },
  {
    "path": "packages/node-core/test/sandbox/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"module\": \"commonjs\",\n    \"target\": \"es2017\",\n    \"noImplicitAny\": false,\n    \"moduleResolution\": \"node\",\n    \"baseUrl\": \".\",\n    \"types\": [\"node\", \"jest\"],\n    \"experimentalDecorators\": true,\n    \"esModuleInterop\": true,\n    \"allowSyntheticDefaultImports\": true,\n    \"lib\": [\"ES2017\"],\n    \"emitDecoratorMetadata\": true,\n    \"sourceMap\": false,\n    \"rootDir\": \".\",\n    \"outDir\": \".\"\n  },\n  \"exclude\": [],\n  \"include\": [\"./main.ts\", \"./project.ts\"]\n}\n"
  },
  {
    "path": "packages/node-core/test/schemas/badSchema.graphql",
    "content": "type EntityOne @entity {\n  id: ID!\n  field1: Int! @index(unique: true) # added @index unique\n  field2: String # from nullable to non-nullable\n  field3: EntityTwo! # Updated from BigInt to EntityTwo ID\n}\n\ntype EntityTwo @entity @compositeIndexes(fields: [[\"field2\", \"field3\"]]) {\n  id: ID!\n  #    field1: Int! # Dropped field1\n  field2: FieldTypeMod # Updated from nullable to non-nullable\n  field3: Int # Updated from BigInt to Int\n  field4: EntityFour! # Added new field\n}\n\n# Dropped Entity Three\n# Drop index on ID\n#type EntityThree @entity {\n#    id: ID!\n#    field1: Int!\n#    field2: String\n#    field3: BigInt\n#}\ntype NewJsonOne @jsonField {\n  one: String!\n  two: Int!\n}\n\ntype NewJsonTwo @jsonField {\n  one: String!\n  two: NewJsonOne # Nested Json\n}\n\nenum FieldTypeNew {\n  VALUE1\n  VALUE2\n}\n\nenum FieldTypeMod {\n  VALUE1\n  VALUE2\n  VALUE3\n}\n\ntype EntityFour @entity {\n  id: ID!\n  field1: FieldTypeNew!\n  field2: [NewJsonTwo]\n  field3: [EntityTwo] @derivedFrom(field: \"field4\")\n}\n"
  },
  {
    "path": "packages/node-core/test/schemas/badschema-2.graphql",
    "content": "type EntityOne @entity {\n  id: ID! #id is a required field\n  field1: Int!\n  field2: Int! # no nullability changes, but dataType change\n}\n\ntype EntityTwo @entity {\n  id: ID!\n  field1: Int!\n  field2: String\n  field3: BigInt\n  field5: FieldTypeOld!\n}\n\nenum FieldTypeOld {\n  VALUE1\n  VALUE2\n}\n\nenum FieldTypeMod {\n  VALUE1\n  VALUE2\n}\n"
  },
  {
    "path": "packages/node-core/test/schemas/newSchema.graphql",
    "content": "type EntityOne @entity {\n  id: ID!\n  field1: Int! @index(unique: true) # added @index unique\n  field2: String!\n  field3: EntityTwo! # Updated from BigInt to EntityTwo ID\n}\n\ntype EntityTwo @entity @compositeIndexes(fields: [[\"field2\", \"field3\"]]) {\n  id: ID!\n  #    field1: Int! # Dropped field1\n  field2: FieldTypeMod # Updated from nullable to non-nullable\n  field3: Int # Updated from BigInt to Int\n  field4: EntityFour! # Added new field\n}\n\n# Dropped Entity Three\n# Drop index on ID\n#type EntityThree @entity {\n#    id: ID!\n#    field1: Int!\n#    field2: String\n#    field3: BigInt\n#}\ntype NewJsonOne @jsonField {\n  one: String!\n  two: Int!\n}\n\ntype NewJsonTwo @jsonField {\n  one: String!\n  two: NewJsonOne # Nested Json\n}\n\nenum FieldTypeNew {\n  VALUE1\n  VALUE2\n}\n\nenum FieldTypeMod {\n  VALUE1\n  VALUE2\n  VALUE3\n}\n\ntype EntityFour @entity {\n  id: ID!\n  field1: FieldTypeNew!\n  field2: [NewJsonTwo]\n  field3: [EntityTwo] @derivedFrom(field: \"field4\")\n}\n"
  },
  {
    "path": "packages/node-core/test/schemas/oldSchema.graphql",
    "content": "type EntityOne @entity {\n  id: ID! #id is a required field\n  field1: Int!\n  field2: String!\n  field3: EntityThree!\n}\n\ntype EntityTwo @entity {\n  id: ID! #id is a required field\n  field1: Int!\n  field2: String #filed2 is an optional field\n  field3: BigInt\n  field5: FieldTypeOld!\n}\n\ntype ExampleJsonOne @jsonField {\n  one: String!\n  two: Int!\n}\n\ntype ExampleJsonTwo @jsonField {\n  one: String!\n  two: ExampleJsonOne! # Nested Json\n}\n\ntype EntityThree @entity {\n  id: ID! #id is a required field\n  field1: [ExampleJsonTwo]\n}\n\nenum FieldTypeOld {\n  VALUE1\n  VALUE2\n}\n\nenum FieldTypeMod {\n  VALUE1\n  VALUE2\n}\n"
  },
  {
    "path": "packages/node-core/test/schemas/schemaDiff.json",
    "content": "{\n  \"addedEnums\": [\n    {\n      \"name\": \"FieldTypeNew\",\n      \"values\": [\"VALUE1\", \"VALUE2\"]\n    }\n  ],\n  \"addedModels\": [\n    {\n      \"fields\": [\n        {\n          \"isArray\": false,\n          \"isEnum\": false,\n          \"name\": \"id\",\n          \"nullable\": false,\n          \"type\": \"ID\"\n        },\n        {\n          \"isArray\": false,\n          \"isEnum\": true,\n          \"name\": \"field1\",\n          \"nullable\": false,\n          \"type\": \"FieldTypeNew\"\n        },\n        {\n          \"isArray\": true,\n          \"isEnum\": false,\n          \"jsonInterface\": {\n            \"fields\": [\n              {\n                \"isArray\": false,\n                \"name\": \"one\",\n                \"nullable\": false,\n                \"type\": \"String\"\n              },\n              {\n                \"isArray\": false,\n                \"jsonInterface\": {\n                  \"fields\": [\n                    {\n                      \"isArray\": false,\n                      \"name\": \"one\",\n                      \"nullable\": false,\n                      \"type\": \"String\"\n                    },\n                    {\n                      \"isArray\": false,\n                      \"name\": \"two\",\n                      \"nullable\": false,\n                      \"type\": \"Int\"\n                    }\n                  ],\n                  \"name\": \"NewJsonOne\"\n                },\n                \"name\": \"two\",\n                \"nullable\": true,\n                \"type\": \"Json\"\n              }\n            ],\n            \"name\": \"NewJsonTwo\"\n          },\n          \"name\": \"field2\",\n          \"nullable\": true,\n          \"type\": \"Json\"\n        }\n      ],\n      \"indexes\": [\n        {\n          \"fields\": [\"field2\"],\n          \"unique\": false,\n          \"using\": \"gin\"\n        }\n      ],\n      \"name\": \"EntityFour\"\n    }\n  ],\n  \"addedRelations\": [\n    {\n      \"foreignKey\": \"field3Id\",\n      \"from\": \"EntityOne\",\n      \"to\": \"EntityTwo\",\n      \"type\": \"belongsTo\"\n    },\n    {\n      \"foreignKey\": \"field4Id\",\n      \"from\": \"EntityTwo\",\n      \"to\": \"EntityFour\",\n      \"type\": \"belongsTo\"\n    },\n    {\n      \"fieldName\": \"field3\",\n      \"foreignKey\": \"field4Id\",\n      \"from\": \"EntityFour\",\n      \"to\": \"EntityTwo\",\n      \"type\": \"hasMany\"\n    }\n  ],\n  \"modifiedEnums\": [\n    {\n      \"name\": \"FieldTypeMod\",\n      \"values\": [\"VALUE1\", \"VALUE2\", \"VALUE3\"]\n    }\n  ],\n  \"modifiedModels\": {\n    \"EntityOne\": {\n      \"addedFields\": [],\n      \"addedIndexes\": [\n        {\n          \"fields\": [\"field1\"],\n          \"unique\": true\n        }\n      ],\n      \"model\": {\n        \"fields\": [\n          {\n            \"isArray\": false,\n            \"isEnum\": false,\n            \"name\": \"id\",\n            \"nullable\": false,\n            \"type\": \"ID\"\n          },\n          {\n            \"isArray\": false,\n            \"isEnum\": false,\n            \"name\": \"field1\",\n            \"nullable\": false,\n            \"type\": \"Int\"\n          },\n          {\n            \"isArray\": false,\n            \"isEnum\": false,\n            \"name\": \"field2\",\n            \"nullable\": false,\n            \"type\": \"String\"\n          },\n          {\n            \"isArray\": false,\n            \"isEnum\": false,\n            \"name\": \"field3Id\",\n            \"nullable\": false,\n            \"type\": \"String\"\n          }\n        ],\n        \"indexes\": [\n          {\n            \"fields\": [\"field1\"],\n            \"unique\": true\n          },\n          {\n            \"fields\": [\"field3Id\"],\n            \"unique\": false,\n            \"using\": \"hash\"\n          }\n        ],\n        \"name\": \"EntityOne\"\n      },\n      \"removedFields\": [],\n      \"removedIndexes\": []\n    },\n    \"EntityTwo\": {\n      \"addedFields\": [\n        {\n          \"isArray\": false,\n          \"isEnum\": true,\n          \"name\": \"field2\",\n          \"nullable\": true,\n          \"type\": \"FieldTypeMod\"\n        },\n        {\n          \"isArray\": false,\n          \"isEnum\": false,\n          \"name\": \"field3\",\n          \"nullable\": true,\n          \"type\": \"Int\"\n        },\n        {\n          \"isArray\": false,\n          \"isEnum\": false,\n          \"name\": \"field4Id\",\n          \"nullable\": false,\n          \"type\": \"String\"\n        }\n      ],\n      \"addedIndexes\": [\n        {\n          \"fields\": [\"field4Id\"],\n          \"unique\": false,\n          \"using\": \"hash\"\n        },\n        {\n          \"fields\": [\"field2\", \"field3\"]\n        }\n      ],\n      \"model\": {\n        \"fields\": [\n          {\n            \"isArray\": false,\n            \"isEnum\": false,\n            \"name\": \"id\",\n            \"nullable\": false,\n            \"type\": \"ID\"\n          },\n          {\n            \"isArray\": false,\n            \"isEnum\": true,\n            \"name\": \"field2\",\n            \"nullable\": true,\n            \"type\": \"FieldTypeMod\"\n          },\n          {\n            \"isArray\": false,\n            \"isEnum\": false,\n            \"name\": \"field3\",\n            \"nullable\": true,\n            \"type\": \"Int\"\n          },\n          {\n            \"isArray\": false,\n            \"isEnum\": false,\n            \"name\": \"field4Id\",\n            \"nullable\": false,\n            \"type\": \"String\"\n          }\n        ],\n        \"indexes\": [\n          {\n            \"fields\": [\"field4Id\"],\n            \"unique\": false,\n            \"using\": \"hash\"\n          },\n          {\n            \"fields\": [\"field2\", \"field3\"]\n          }\n        ],\n        \"name\": \"EntityTwo\"\n      },\n      \"removedFields\": [\n        {\n          \"isArray\": false,\n          \"isEnum\": false,\n          \"name\": \"field1\",\n          \"nullable\": false,\n          \"type\": \"Int\"\n        },\n        {\n          \"isArray\": false,\n          \"isEnum\": false,\n          \"name\": \"field2\",\n          \"nullable\": true,\n          \"type\": \"String\"\n        },\n        {\n          \"isArray\": false,\n          \"isEnum\": false,\n          \"name\": \"field3\",\n          \"nullable\": true,\n          \"type\": \"BigInt\"\n        },\n        {\n          \"isArray\": false,\n          \"isEnum\": true,\n          \"name\": \"field5\",\n          \"nullable\": false,\n          \"type\": \"FieldTypeOld\"\n        }\n      ],\n      \"removedIndexes\": []\n    }\n  },\n  \"removedEnums\": [\n    {\n      \"name\": \"FieldTypeOld\",\n      \"values\": [\"VALUE1\", \"VALUE2\"]\n    }\n  ],\n  \"removedModels\": [\n    {\n      \"fields\": [\n        {\n          \"isArray\": false,\n          \"isEnum\": false,\n          \"name\": \"id\",\n          \"nullable\": false,\n          \"type\": \"ID\"\n        },\n        {\n          \"isArray\": true,\n          \"isEnum\": false,\n          \"jsonInterface\": {\n            \"fields\": [\n              {\n                \"isArray\": false,\n                \"name\": \"one\",\n                \"nullable\": false,\n                \"type\": \"String\"\n              },\n              {\n                \"isArray\": false,\n                \"jsonInterface\": {\n                  \"fields\": [\n                    {\n                      \"isArray\": false,\n                      \"name\": \"one\",\n                      \"nullable\": false,\n                      \"type\": \"String\"\n                    },\n                    {\n                      \"isArray\": false,\n                      \"name\": \"two\",\n                      \"nullable\": false,\n                      \"type\": \"Int\"\n                    }\n                  ],\n                  \"name\": \"ExampleJsonOne\"\n                },\n                \"name\": \"two\",\n                \"nullable\": false,\n                \"type\": \"Json\"\n              }\n            ],\n            \"name\": \"ExampleJsonTwo\"\n          },\n          \"name\": \"field1\",\n          \"nullable\": true,\n          \"type\": \"Json\"\n        }\n      ],\n      \"indexes\": [\n        {\n          \"fields\": [\"field1\"],\n          \"unique\": false,\n          \"using\": \"gin\"\n        }\n      ],\n      \"name\": \"EntityThree\"\n    }\n  ],\n  \"removedRelations\": [\n    {\n      \"foreignKey\": \"field3Id\",\n      \"from\": \"EntityOne\",\n      \"to\": \"EntityThree\",\n      \"type\": \"belongsTo\"\n    }\n  ]\n}\n"
  },
  {
    "path": "packages/node-core/test/v1.0.0/distMock/chaintypes.js",
    "content": "'use strict';\n\nexports.default = {typesBundle: {}};\n"
  },
  {
    "path": "packages/node-core/test/v1.0.0/distMock/index.js",
    "content": "'use strict';\nObject.defineProperty(exports, '__esModule', {value: true});\nconst tslib_1 = require('tslib');\n//Exports all handler functions\nrequire('@polkadot/api-augment');\n(0, tslib_1.__exportStar)(require('./mappings/mappingHandlers'), exports);\n"
  },
  {
    "path": "packages/node-core/test/v1.0.0/erc20.abi.json",
    "content": "[\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"name\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_spender\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"approve\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"totalSupply\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_from\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_to\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"transferFrom\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"decimals\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint8\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [\n      {\n        \"name\": \"_owner\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"balanceOf\",\n    \"outputs\": [\n      {\n        \"name\": \"balance\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [],\n    \"name\": \"symbol\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"string\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": false,\n    \"inputs\": [\n      {\n        \"name\": \"_to\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"transfer\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"bool\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"nonpayable\",\n    \"type\": \"function\"\n  },\n  {\n    \"constant\": true,\n    \"inputs\": [\n      {\n        \"name\": \"_owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"name\": \"_spender\",\n        \"type\": \"address\"\n      }\n    ],\n    \"name\": \"allowance\",\n    \"outputs\": [\n      {\n        \"name\": \"\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"payable\": false,\n    \"stateMutability\": \"view\",\n    \"type\": \"function\"\n  },\n  {\n    \"payable\": true,\n    \"stateMutability\": \"payable\",\n    \"type\": \"fallback\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"name\": \"owner\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"name\": \"spender\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": false,\n        \"name\": \"value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Approval\",\n    \"type\": \"event\"\n  },\n  {\n    \"anonymous\": false,\n    \"inputs\": [\n      {\n        \"indexed\": true,\n        \"name\": \"from\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": true,\n        \"name\": \"to\",\n        \"type\": \"address\"\n      },\n      {\n        \"indexed\": false,\n        \"name\": \"value\",\n        \"type\": \"uint256\"\n      }\n    ],\n    \"name\": \"Transfer\",\n    \"type\": \"event\"\n  }\n]\n"
  },
  {
    "path": "packages/node-core/test/v1.0.0/package.json",
    "content": "{\n  \"name\": \"subquery-starter\",\n  \"version\": \"0.0.4\",\n  \"description\": \"This project can be use as a starting point for developing your SubQuery project\",\n  \"main\": \"dist/index.js\",\n  \"scripts\": {\n    \"build\": \"tsc -b\",\n    \"prepack\": \"rm -rf dist && npm build\",\n    \"test\": \"jest\",\n    \"codegen\": \"./node_modules/.bin/subql codegen\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql-starter\",\n  \"repository\": \"github:subquery/subql-starter\",\n  \"files\": [\n    \"dist\",\n    \"schema.graphql\",\n    \"project.yaml\"\n  ],\n  \"author\": \"Ian He & Jay Ji\",\n  \"license\": \"Apache-2.0\",\n  \"devDependencies\": {\n    \"@polkadot/api\": \"^16\",\n    \"@subql/types\": \"latest\",\n    \"typescript\": \"^4.9.5\",\n    \"@subql/cli\": \"latest\"\n  },\n  \"resolutions\": {\n    \"ipfs-unixfs\": \"6.0.6\"\n  }\n}\n"
  },
  {
    "path": "packages/node-core/test/v1.0.0/project.yaml",
    "content": "specVersion: 1.0.0\nname: moonriver\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=1.0.0'\n  query:\n    name: '@subql/query'\n    version: '*'\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: '0x401a1f9dca3da46f5c4091016c8a2f26dcea05865116b286f60f668207d1474b'\n  endpoint: wss://moonriver.api.onfinality.io/public-ws\n  dictionary: 'https://api.subquery.network/sq/subquery/moonriver-dictionary'\n  chaintypes:\n    file: './distMock/chaintypes.js'\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 69219\n    mapping:\n      file: './distMock/index.js'\n      handlers:\n        - handler: collatorJoined\n          kind: substrate/EventHandler\n          filter:\n            module: parachainStaking\n            method: JoinedCollatorCandidates\n        - handler: collatorLeft\n          kind: substrate/CallHandler\n          filter:\n            module: parachainStaking\n            method: leaveCandidates\n\n  - kind: substrate/Moonbeam\n    startBlock: 562683\n    processor:\n      file: './dist/moonbeam.js'\n      #      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        # Must be a key of assets\n        abi: erc20\n        address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b'\n    assets:\n      erc20:\n        file: './erc20.abi.json'\n    mapping:\n      file: ./distMock/index.js\n      handlers:\n        - handler: erc20Transfer\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - Transfer(address indexed from,address indexed to,uint256 value)\n"
  },
  {
    "path": "packages/node-core/test/v1.0.0/projectOptions.yaml",
    "content": "specVersion: 1.0.0\nname: moonriver\nversion: 1.0.0\ndescription: ''\nrepository: ''\nrunner:\n  node:\n    name: '@subql/node'\n    version: '>=1.0.0'\n    options:\n      historical: true\n      unsafe: true\n      unfinalizedBlocks: false\n  query:\n    name: '@subql/query'\n    version: '*'\nschema:\n  file: ./schema.graphql\nnetwork:\n  chainId: '0x401a1f9dca3da46f5c4091016c8a2f26dcea05865116b286f60f668207d1474b'\n  endpoint: wss://moonriver.api.onfinality.io/public-ws\n  dictionary: 'https://api.subquery.network/sq/subquery/moonriver-dictionary'\n  chaintypes:\n    file: './distMock/chaintypes.js'\ndataSources:\n  - kind: substrate/Runtime\n    startBlock: 69219\n    mapping:\n      file: './distMock/index.js'\n      handlers:\n        - handler: collatorJoined\n          kind: substrate/EventHandler\n          filter:\n            module: parachainStaking\n            method: JoinedCollatorCandidates\n        - handler: collatorLeft\n          kind: substrate/CallHandler\n          filter:\n            module: parachainStaking\n            method: leaveCandidates\n\n  - kind: substrate/Moonbeam\n    startBlock: 562683\n    processor:\n      file: './dist/moonbeam.js'\n      #      file: './node_modules/@subql/contract-processors/dist/moonbeam.js'\n      options:\n        # Must be a key of assets\n        abi: erc20\n        address: '0x6bd193ee6d2104f14f94e2ca6efefae561a4334b'\n    assets:\n      erc20:\n        file: './erc20.abi.json'\n    mapping:\n      file: ./distMock/index.js\n      handlers:\n        - handler: erc20Transfer\n          kind: substrate/MoonbeamEvent\n          filter:\n            topics:\n              - Transfer(address indexed from,address indexed to,uint256 value)\n"
  },
  {
    "path": "packages/node-core/test/v1.0.0/schema.graphql",
    "content": "type StarterEntity @entity {\n  id: ID! #id is a required field\n  field1: Int!\n\n  field2: String #filed2 is an optional field\n  field3: BigInt\n\n  field4: Date\n\n  field5: Boolean\n}\n"
  },
  {
    "path": "packages/node-core/test/v1.0.0/types.yaml",
    "content": "types:\n  TestType: u32\ntypesAlias:\n  Alias:\n    TestType2: test\ntypesBundle:\n  spec:\n    '2312':\n      types:\n        - minmax:\n            - 232\n            - 122\n          types:\n            TestType3: test3\n  chain:\n    mockchain:\n      types:\n        - minmax:\n            - 232\n            - 122\n          types:\n            TestType4: test4\ntypesChain:\n  chain2:\n    TestType5: test\ntypesSpec:\n  spec3:\n    TestType6: test\n"
  },
  {
    "path": "packages/node-core/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"tsBuildInfoFile\": \"dist/.tsbuildinfo\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"dist\",\n    \"esModuleInterop\": true,\n    \"importHelpers\": true,\n    \"noImplicitAny\": true\n  },\n  \"references\": [{\"path\": \"../common\"}, {\"path\": \"../utils\"}, {\"path\": \"../testing\"}],\n  \"include\": [\"src/**/*\"]\n}\n"
  },
  {
    "path": "packages/node-core/yargs.js",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// A standalone entrypoint for logger so we can import `@subql/node-core/logger`\nconst yargs = require('./dist/yargs');\n\nmodule.exports = yargs;\n"
  },
  {
    "path": "packages/query/.gitignore",
    "content": "# compiled output\n/dist\n/node_modules\n\n# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\nlerna-debug.log*\n\n# OS\n.DS_Store\n\n# Tests\n/coverage\n/.nyc_output\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n\n.env\n"
  },
  {
    "path": "packages/query/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [2.25.0] - 2025-11-05\n### Changed\n- Replace `express-pino-logger` with the underlying `pino-http` (#2957)\n\n## [2.24.0] - 2025-10-15\n### Changed\n- Minor improvements and fixes from upgrading to eslint 9 with stricter settings (#2929)\n\n## [2.23.6] - 2025-09-16\n### Changed\n- Address some linter related warnings (#2876)\n\n## [2.23.5] - 2025-08-29\n### Fixed\n- Subscriptions with historical enabled (#2897)\n\n## [2.23.4] - 2025-08-25\n### Fixed\n- Subscription error with undefined block height (#2889)\n\n## [2.23.3] - 2025-07-24\n### Changed\n- Improved docker image size (#2866)\n\n## [2.23.2] - 2025-07-17\n### Changed\n- Workspace dependencies now match to patch versions rather than exact (#2855)\n\n## [2.23.1] - 2025-07-02\n### Fixed\n- Filtering out \\_Global table (#2840)\n\n## [2.23.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n## [2.22.2] - 2025-06-25\n### Fixed\n- Playgroung unable to load because of graphiql dependency (#2832)\n\n## [2.22.1] - 2025-05-21\n### Changed\n- Hide \\`\\_global\\` table from being queried (#2799)\n\n## [2.22.0] - 2025-04-30\n### Removed\n- Usage of node-fetch and use fetch instead (#2772)\n\n## [2.21.2] - 2025-04-24\n### Changed\n- Update graphlile utils (#2727)\n\n## [2.21.1] - 2025-03-24\n### Changed\n- Update compression dependency (#2687)\n\n## [2.21.0] - 2025-02-19\n### Changed\n- Update node version to LTS (#2655)\n\n## [2.20.1] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n\n## [2.20.0] - 2025-01-28\n### Fixed\n- Subscriptions `_entity` field now returns all properties (#2626)\n\n## [2.19.0] - 2024-12-11\n### Added\n- Support for ordering with fulltext search (#2623)\n\n## [2.18.0] - 2024-12-04\n### Fixed\n- High CPU usage caused by interval with 0ms (#2614)\n\n### Added\n- Add PgOrderByRelatedPlugin to GraphQL query package\n\n## [2.17.1] - 2024-11-28\n### Fixed\n- Crash with query service subscriptions on multichain projects (#2609)\n\n## [2.17.0] - 2024-11-25\n### Changed\n- WS library with support for graphiql (#2600)\n- Subscription type from JSON to the correct entity type (#2600)\n\n## [2.16.0] - 2024-11-22\n### Changed\n- Update the playground to the latest GraphiQL (#2588)\n\n### Added\n- Support for historical indexing by timestamp as well as block height (#2584)\n\n## [2.15.2] - 2024-09-25\n### Changed\n- Bump common, Added manifest support for query-subgraph.\n\n## [2.15.1] - 2024-08-23\n### Fixed\n- Missing rxjs dependency\n\n## [2.15.0] - 2024-08-23\n### Added\n- Support for null ordering (#2526)\n\n## [2.14.1] - 2024-08-12\n### Fixed\n- Revert yargs version\n\n### Changed\n- Update how idle psql pool connections are handled (#2520)\n\n## [2.14.0] - 2024-08-05\n### Changed\n- Update dependencies (#2518)\n\n### Added\n- add support for null ordering in 'order by' query (#2387)\n\n## [2.13.3] - 2024-07-25\n### Changed\n- Bump version with `@subql/common` and `@subql/utils` (#2498)\n\n## [2.13.2] - 2024-07-09\n### Changed\n- Enable TS strict setting\n\n## [2.13.1] - 2024-06-26\n### Fixed\n- Fixed the aggregate query, type conversion causes precision loss.\n\n## [2.13.0] - 2024-06-21\n### Fixed\n- Fixed query service unable to query dynamic datasource due to change from #2302\n\n### Added\n- enable ts strict mode\n\n## [2.12.1] - 2024-06-12\n### Changed\n- Update `@subql/utils`\n\n## [2.12.0] - 2024-06-12\n### Added\n- Add query `dbSize` under metadata (#2430)\n\n## [2.11.1] - 2024-05-09\n### Fixed\n- Certain historical queries not appliying block height (#2398)\n\n## [2.11.0] - 2024-05-08\n### Changed\n- Bump with @subql/utils, update polkadot dependencies to v11\n\n## [2.10.5] - 2024-05-03\n### Fixed\n- Block height missing from certain historical queries (#2384)\n\n## [2.10.4] - 2024-05-02\n### Changed\n- Update `@subql/utils`\n\n## [2.10.3] - 2024-04-29\n### Fixed\n- Aggregate queries with historical not filtering by block height (#2367)\n\n## [2.10.1] - 2024-04-24\n### Changed\n- Executable path in docker (#2344)\n\n## [2.10.0] - 2024-03-05\n### Added\n- Fulltext search plugin to sanitise search input (#2280)\n\n## [2.9.1] - 2024-02-29\n### Fixed\n- Relation filters not taking into account block height when historical is enabled (#2276)\n\n## [2.9.0] - 2024-01-25\n### Added\n- gzip compression to queries (#2195)\n\n## [2.8.0] - 2023-11-22\n### Added\n- Allow restrictions on alias queries, with flag `--query-alias-limit` (#2174)\n- Allow restrictions on array based queries, with flag `--query-batch-limit` (#2172)\n\n## [2.7.0] - 2023-11-15\n### Added\n- Allow restrictions on query depth, with flag `--query-depth-limit` (#2164)\n\n## [2.6.0] - 2023-10-17\n### Added\n- Add `lastFinalizedVerifiedHeight`, `unfinalizedBlocks`, `lastCreatedPoiHeight` and `latestSyncedPoiHeight` to metadata\n\n## [2.5.0] - 2023-08-10\n### Added\n- Support for update availability logs (#1930)\n\n## [2.4.0] - 2023-07-31\n### Fixed\n- Avoid get `metadataTableName` call system table (#1893)\n- Update license (#1891)\n\n### Added\n- Custom OrderBy plugin to improve dictionary query performance (#1907)\n\n## [2.3.0] - 2023-07-04\n### Changed\n- Update x-graphile-build-pg to improve query service init speed (#1855)\n\n## [2.2.0] - 2023-06-26\n### Changed\n- Update apollo server with security fixes (#1834)\n\n### Added\n- Add the ability to get all metadata tables with multichain projects (#1839)\n\n## [2.1.0] - 2023-05-24\n### Changed\n- Tidy up commands and their args (#1741)\n\n## [2.0.1] - 2023-04-27\n### Fixed\n- Fix tests (#1640)\n\n## [2.0.0] - 2023-04-20\n### Changed\n- Major release for 2.0.0, align with other package versions\n\n## [1.11.2] - 2023-04-11\n### Added\n- `evmChainId` to metadata (#1607)\n\n## [1.11.1] - 2023-03-30\n### Added\n- Support multiple endpoints (#1551)\n\n### Fixed\n- Fix previous release 1.11.0 failed\n\n## [1.11.0] - 2023-02-21\n### Added\n- Add flag `--query-limit`, moved from `--unsafe` (#1514)\n- Add `dictionary-optimisation` flag to improve dictionary query performance (#1519)\n- Add SSL connection option (#1513)\n- Support Cockroach database (#1521)\n\n### Changed\n- Update postgraphile enable table partitions (#1520)\n\n## [1.10.2] - 2023-01-23\n### Changed\n- Enable connection filters (#1484)\n\n## [1.10.1] - 2022-12-22\n### Fixed\n- Updated subscription `triggerName` (#1469)\n\n## [1.10.0] - 2022-12-06\n### Added\n- Add start height to \\_metadata (#1456)\n\n## [1.9.0] - 2022-11-30\n### Added\n- Add `--playground-settings` options for passing the settings to the playground (#1436)\n\n## [1.8.0] - 2022-11-23\n### Fixed\n- Fix row estimate in \\_metadata, only execute SQL when `rowEstimate` included in graphql query field (#1417)\n\n### Changed\n- Query explain include graphql query (#1426)\n- Support for multi-chain indexing (#1375)\n\n## [1.7.0] - 2022-11-15\n### Added\n- Added distinct query plugin. (#1401)\n\n### Fixed\n- Fix permission restrictions when using hot-schema reload. (#1398)\n- Fix query distinct dependencies. (#1274)\n\n## [1.6.1] - 2022-10-27\n### Changed\n- Disable hot schema reload by default. It can be enabled with `--disable-hot-schema=false`. (#1349)\n\n## [1.6.0] - 2022-10-26\n### Changed\n- Change max connection to 10 ms and query timeout to 10000 ms. (#1322)\n\n### Added\n- Added hot-schema reload, query-service no longer needs to restart to see schema changes. (#1321)\n\n## [1.5.0] - 2022-08-11\n### Fixed\n- Fix db selection in configuration when subscription is enabled (#1241)\n- Fork OrderByAggregatesPlugin and modify to be compatible with historical feature (#1242)\n- Fix block height being applied to all queries (#1238)\n\n### Changed\n- Move aggregation feature out from `unsafe` and apply it by default, can be control though `aggregate` flag.\n\n## [1.4.0] - 2022-07-27\n### Added\n- Add `query-explain` flag, by enable this console will log actual SQL statement been queried. (#1192)\n\n## [1.3.0] - 2022-07-05\n### Changed\n- Try to catch error if server creation failed, also give retry build schema (#1153)\n\n### Fixed\n- Fix tests (#1160)\n\n## [1.2.1] - 2022-06-27\n### Fixed\n- Fixed subql-query doesn't show all help docs issue (#1137)\n\n## [1.2.0] - 2022-06-22\n### Added\n- added `max-connection` and `query-timeout` configuration for pg pool (#1108)\n\n## [1.1.1] - 2022-06-02\n### Changed\n- Now query-complexity is indicated in the header (#1088)\n\n## [1.1.0] - 2022-05-31\n### Added\n- Experimental feature: Support query by block number, require enable by indexing node (#992)\n\n## [1.0.0] - 2022-05-11\n### Changed\n- Major release\n\n## [0.16.1] - 2022-05-06\n### Changed\n- Bump with `@subql/utils`\n\n## [0.16.0] - 2022-05-02\n### Added\n- Add utils package (#928)\n- Allow set query-complexity for query (#923)\n\n## [0.15.0] - 2022-04-26\n### Added\n- Add support for querying historical state (#859)\n\n## [0.14.1] - 2022-04-04\n### Changed\n- Bump with `subql/common`\n\n## [0.14.0] - 2022-04-04\n### Changed\n- move subscription to dedicate flag (#867)\n\n## [0.13.0] - 2022-03-22\n### Added\n- Add GraphQL subscription support (#846)\n\n## [0.12.0] - 2022-02-09\n### Added\n- Add `dynamicDatasources` in metadata (#773)\n\n## [0.11.0] - 2022-01-21\n### Added\n- Enable full aggregates support when `--unsafe`, and group-by only when `--unsafe=false` (#765)\n\n## [0.10.0] - 2022-01-13\n### Added\n- Add rowCountEstimate to Metadata (#736)\n- Support allocate port automatically (#739)\n\n## [0.9.0] - 2021-12-16\n### Changed\n- Limit query record size to 100, though by using `--unsafe` can remove this limit. (#644)\n- Update `getProjectSchema` to handle when subqueries table has been deprecated (#683)\n- Update `Dockerfile` to use `node:16-alpine` (#640)\n\n### Added\n- Add query log to file (#667)\n\n### Fixed\n- Fix fetch metadata (#700)\n\n## [0.8.0] - 2021-11-19\n### Added\n- Support enum in postgraphile plugin (#551)\n\n### Changed\n- Update `GetMetadataPlugin` to support fetch from both api and table (#555)\n\n## [0.7.4] - 2021-11-03\n### Changed\n- Bump dependencies (#584)\n\n## [0.7.3] - 2021-09-25\n### Fixed\n- Change `_metadata` back, and use `smartTagPlugin` to omit node `metadata` class. By doing this, previous project that rely on query `_metadata` won't be affected, such as Dictionaries.\n\n## [0.7.2] - 2021-09-22\n### Changed\n- Changed query indexer `_metadata` to `_meta`, current `_metadata` is created from indexer service included `blockOffset` data (#489)\n\n## [0.7.1] - 2021-08-27\n### Fixed\n- Deprecated warnings (#448)\n\n## [0.7.0] - 2021-06-25\n### Changed\n- Update dependencies (#358)\n\n## [0.6.0] - 2021-06-22\n### Added\n- Allow query service to query indexer metadata though add `--indexer <indexer-meta-api>` (#327)\n- Add `_Metadata` in the query schema (#327)\n\n### Changed\n- change `lastProcessedHeight` and `targetHeight` type to `Int`. (#347)\n\n## [0.5.0] - 2021-04-20\n### Added\n- Remove `condition` in query schema, please use `filter` instead (#260)\n- annotation is now supported in\n- We'll automatically generate coresponding JSON interfaces when querying this data (#275)\n- Read more about how you can use this in our [updated docs](https://doc.subquery.network/create/graphql.html#json-type)\n\n## [0.4.0] - 2021-03-25\n### Added\n- support filter for condition search (#240)\n\n## [0.3.2] - 2021-03-11\n### Fixed\n- add dependency of @subql/common for @subql/query (#233)\n\n## [0.3.1] - 2021-03-11\n### Fixed\n- fix wrong cross package imports (#231)\n\n## [0.3.0] - 2021-03-11\n### Added\n- refactor logger: support --output-fmt and --log-level (#220)\n- use read db host (DB_HOST_READ from env) as priority (#221)\n\n## [0.2.0] - 2021-02-05\n### Added\n- init query service project\n- customise first/last plugin to give max record to query (#114)\n- disable debug mode in production (#115)\n- overwrite plugin to fix one to one unique key check\n- update query publish and docker build process\n\n[Unreleased]: https://github.com/subquery/subql/compare/query/2.25.0...HEAD\n[2.25.0]: https://github.com/subquery/subql/compare/query/2.24.0...query/2.25.0\n[2.24.0]: https://github.com/subquery/subql/compare/query/2.23.6...query/2.24.0\n[2.23.6]: https://github.com/subquery/subql/compare/query/2.23.5...query/2.23.6\n[2.23.5]: https://github.com/subquery/subql/compare/query/2.23.4...query/2.23.5\n[2.23.4]: https://github.com/subquery/subql/compare/query/2.23.3...query/2.23.4\n[2.23.3]: https://github.com/subquery/subql/compare/query/2.23.2...query/2.23.3\n[2.23.2]: https://github.com/subquery/subql/compare/query/2.23.1...query/2.23.2\n[2.23.1]: https://github.com/subquery/subql/compare/query/2.23.0...query/2.23.1\n[2.23.0]: https://github.com/subquery/subql/compare/query/2.22.2...query/2.23.0\n[2.22.2]: https://github.com/subquery/subql/compare/query/2.22.1...query/2.22.2\n[2.22.1]: https://github.com/subquery/subql/compare/query/2.22.0...query/2.22.1\n[2.22.0]: https://github.com/subquery/subql/compare/query/2.21.2...query/2.22.0\n[2.21.2]: https://github.com/subquery/subql/compare/query/2.21.1...query/2.21.2\n[2.21.1]: https://github.com/subquery/subql/compare/query/2.21.0...query/2.21.1\n[2.21.0]: https://github.com/subquery/subql/compare/query/2.20.1...query/2.21.0\n[2.20.1]: https://github.com/subquery/subql/compare/query/2.20.0...query/2.20.1\n[2.20.0]: https://github.com/subquery/subql/compare/query/2.19.0...query/2.20.0\n[2.19.0]: https://github.com/subquery/subql/compare/query/2.18.0...query/2.19.0\n[2.18.0]: https://github.com/subquery/subql/compare/query/2.17.1...query/2.18.0\n[2.17.1]: https://github.com/subquery/subql/compare/query/2.17.0...query/2.17.1\n[2.17.0]: https://github.com/subquery/subql/compare/query/2.16.0...query/2.17.0\n[2.16.0]: https://github.com/subquery/subql/compare/query/2.15.2...query/2.16.0\n[2.15.2]: https://github.com/subquery/subql/compare/query/2.15.1...query/2.15.2\n[2.15.1]: https://github.com/subquery/subql/compare/query/2.15.0...query/2.15.1\n[2.15.0]: https://github.com/subquery/subql/compare/query/2.14.1...query/2.15.0\n[2.14.1]: https://github.com/subquery/subql/compare/query/2.14.0...query/2.14.1\n[2.14.0]: https://github.com/subquery/subql/compare/query/2.13.3...query/2.14.0\n[2.13.3]: https://github.com/subquery/subql/compare/query/2.13.2...query/2.13.3\n[2.13.2]: https://github.com/subquery/subql/compare/query/2.13.1...query/2.13.2\n[2.13.1]: https://github.com/subquery/subql/compare/query/2.13.0...query/2.13.1\n[2.13.0]: https://github.com/subquery/subql/compare/query/2.12.1...query/2.13.0\n[2.12.1]: https://github.com/subquery/subql/compare/query/2.12.0...query/2.12.1\n[2.12.0]: https://github.com/subquery/subql/compare/query/2.11.1...query/2.12.0\n[2.11.1]: https://github.com/subquery/subql/compare/query/2.11.0...query/2.11.1\n[2.11.0]: https://github.com/subquery/subql/compare/query/2.10.5...query/2.11.0\n[2.10.5]: https://github.com/subquery/subql/compare/query/2.10.4...query/2.10.5\n[2.10.4]: https://github.com/subquery/subql/compare/query/2.10.3...query/2.10.4\n[2.10.3]: https://github.com/subquery/subql/compare/query/2.10.1...query/2.10.3\n[2.10.1]: https://github.com/subquery/subql/compare/query/2.10.0...query/2.10.1\n[2.10.0]: https://github.com/subquery/subql/compare/query/2.9.1...query/2.10.0\n[2.9.1]: https://github.com/subquery/subql/compare/query/2.9.0...query/2.9.1\n[2.9.0]: https://github.com/subquery/subql/compare/query/2.8.0...query/2.9.0\n[2.8.0]: https://github.com/subquery/subql/compare/query/2.7.0...query/2.8.0\n[2.7.0]: https://github.com/subquery/subql/compare/query/2.6.0...query/2.7.0\n[2.6.0]: https://github.com/subquery/subql/compare/query/2.5.0...query/2.6.0\n[2.5.0]: https://github.com/subquery/subql/compare/query/2.4.0...query/2.5.0\n[2.4.0]: https://github.com/subquery/subql/compare/query/2.3.0...query/2.4.0\n[2.3.0]: https://github.com/subquery/subql/compare/query/2.2.0...query/2.3.0\n[2.2.0]: https://github.com/subquery/subql/compare/query/2.1.0...query/2.2.0\n[2.1.0]: https://github.com/subquery/subql/compare/query/2.0.1..query/2.1.0\n[2.0.1]: https://github.com/subquery/subql/compare/query/2.0.0...query/2.0.1\n[2.0.0]: https://github.com/subquery/subql/compare/query/1.11.2..query/2.0.0\n[1.11.2]: https://github.com/subquery/subql/compare/query/1.11.1...query/1.11.2\n[1.11.1]: https://github.com/subquery/subql/compare/query/1.11.0...query/1.11.1\n[1.11.0]: https://github.com/subquery/subql/compare/query/1.10.2...query/1.11.0\n[1.10.2]: https://github.com/subquery/subql/compare/query/1.10.1...query/1.10.2\n[1.10.1]: https://github.com/subquery/subql/compare/query/1.10.0...query/1.10.1\n[1.10.0]: https://github.com/subquery/subql/compare/query/1.9.0...query/1.10.0\n[1.9.0]: https://github.com/subquery/subql/compare/query/1.8.0...query/1.9.0\n[1.8.0]: https://github.com/subquery/subql/compare/query/1.7.0...query/1.8.0\n[1.7.0]: https://github.com/subquery/subql/compare/query/1.6.1...query/1.7.0\n[1.6.1]: https://github.com/subquery/subql/compare/query/1.6.0...query/1.6.1\n[1.6.0]: https://github.com/subquery/subql/compare/query/1.5.0...query/1.6.0\n[1.5.0]: https://github.com/subquery/subql/compare/query/1.4.0...query/1.5.0\n[1.4.0]: https://github.com/subquery/subql/compare/query/1.3.0...query/1.4.0\n[1.3.0]: https://github.com/subquery/subql/compare/query/1.2.1...query/1.3.0\n[1.2.1]: https://github.com/subquery/subql/compare/query/1.2.0...query/1.2.1\n[1.2.0]: https://github.com/subquery/subql/compare/query/1.1.1...query/1.2.0\n[1.1.1]: https://github.com/subquery/subql/compare/query/1.1.0...query/1.1.1\n[1.1.0]: https://github.com/subquery/subql/compare/query/1.0.0...query/1.1.0\n[1.0.0]: https://github.com/subquery/subql/compare/query/0.16.1...query/1.0.0\n[0.16.1]: https://github.com/subquery/subql/compare/query/0.16.0...query/0.16.1\n[0.16.0]: https://github.com/subquery/subql/compare/query/0.15.0...query/0.16.0\n[0.15.0]: https://github.com/subquery/subql/compare/query/0.14.1...query/0.15.0\n[0.14.1]: https://github.com/subquery/subql/compare/query/0.14.0...query/0.14.1\n[0.14.0]: https://github.com/subquery/subql/compare/query/0.13.0...query/0.14.0\n[0.13.0]: https://github.com/subquery/subql/compare/query/0.12.0...query/0.13.0\n[0.12.0]: https://github.com/subquery/subql/compare/query/0.11.0...query/0.12.0\n[0.11.0]: https://github.com/subquery/subql/compare/query/0.10.0...query/0.11.0\n[0.10.0]: https://github.com/subquery/subql/compare/query/0.9.0...query/0.10.0\n[0.9.0]: https://github.com/subquery/subql/compare/query/0.8.0...query/0.9.0\n[0.8.0]: https://github.com/subquery/subql/compare/query/0.7.4...query/0.8.0\n[0.7.4]: https://github.com/subquery/subql/compare/query/0.7.3...query/0.7.4\n[0.7.3]: https://github.com/subquery/subql/compare/query/0.7.2...query/0.7.3\n[0.7.2]: https://github.com/subquery/subql/compare/query/0.7.1...query/0.7.2\n[0.7.1]: https://github.com/subquery/subql/compare/query/0.7.0...query/0.7.1\n[0.7.0]: https://github.com/subquery/subql/compare/query/0.6.0...query/0.7.0\n[0.6.0]: https://github.com/subquery/subql/compare/query/0.5.0...query/0.6.0\n[0.5.0]: https://github.com/subquery/subql/compare/query/0.4.0...query/0.5.0\n[0.4.0]: https://github.com/subquery/subql/compare/query/0.3.2...query/0.4.0\n[0.3.2]: https://github.com/subquery/subql/compare/query/0.3.1...query/0.3.2\n[0.3.1]: https://github.com/subquery/subql/compare/query/0.3.0...query/0.3.1\n[0.3.0]: https://github.com/subquery/subql/compare/query/0.2.0...query/0.3.0\n[0.2.0]: https://github.com/subquery/subql/tag/query/0.2.0\n"
  },
  {
    "path": "packages/query/Dockerfile",
    "content": "# Build stage\nFROM node:lts-alpine as builder\n\n# Set working directory\nWORKDIR /app\n\n# Copy all packages\nCOPY ./packages ./packages\n\n# Copy tsconfig.json\nCOPY ./tsconfig.json ./tsconfig.json\n\n# Copy build script\nCOPY ./scripts/build.sh ./scripts/build.sh\n\n# Install dependencies and build\nRUN ./scripts/build.sh packages/query\n\n# Production stage\nFROM node:lts-alpine\n\n# Copy .tgz file from builder\nCOPY --from=builder /app/packages/query/app.tgz /app.tgz\n\n# Install production dependencies\nRUN apk add --no-cache tini curl git && \\\n  tar -xzvf /app.tgz --strip 1 && \\\n  rm /app.tgz && \\\n  yarn install --production && \\\n  yarn cache clean && \\\n  rm -rf /root/.npm /root/.cache\n\n# Make the user not ROOT\nUSER 1000\n\n# Set Entry point and command\nENTRYPOINT [\"/sbin/tini\", \"--\", \"/bin/run\"]\nCMD [\"-f\",\"/app\"]\n"
  },
  {
    "path": "packages/query/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/query/README.md",
    "content": "# @subql/query\n\n## Run this package\n\nTo quickly setup the project, add a `.env` file in the `subql/packages/query` folder with the following content:\n\n```env\nDB_HOST=localhost\nDB_PORT=5432\nDB_USER=postgres\nDB_PASS=postgres\nDB_DATABASE=postgres\n```\n\nthen run the following command\n\n```sh\nNODE_OPTIONS=\"-r dotenv/config\" yarn start:dev -- --name <subquery_name> --playground\n```\n"
  },
  {
    "path": "packages/query/bin/run",
    "content": "#!/usr/bin/env node\n\nrequire('../dist/main.js')\n\n"
  },
  {
    "path": "packages/query/bin/run.cmd",
    "content": "@echo off\n\nnode \"%~dp0\\run\" %*\n"
  },
  {
    "path": "packages/query/nest-cli.json",
    "content": "{\n  \"collection\": \"@nestjs/schematics\",\n  \"sourceRoot\": \"src\"\n}\n"
  },
  {
    "path": "packages/query/nodemon.json",
    "content": "{\n  \"watch\": [\"src\"],\n  \"ext\": \"ts\",\n  \"ignore\": [\"src/**/*.spec.ts\"],\n  \"exec\": \"node -r dotenv/config -r tsconfig-paths/register -r ts-node/register src/main.ts\"\n}\n"
  },
  {
    "path": "packages/query/package.json",
    "content": "{\n  \"name\": \"@subql/query\",\n  \"version\": \"2.25.0\",\n  \"description\": \"\",\n  \"bin\": {\n    \"subql-query\": \"./bin/run\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql\",\n  \"repository\": \"github:subquery/subql\",\n  \"scripts\": {\n    \"prebuild\": \"rimraf dist\",\n    \"build\": \"rm -rf dist && tsc -b\",\n    \"format\": \"prettier --write \\\"src/**/*.ts\\\" \\\"test/**/*.ts\\\"\",\n    \"start\": \"nest start\",\n    \"start:dev\": \"nodemon\",\n    \"start:prod\": \"node dist/main\",\n    \"lint\": \"eslint \\\"{src,apps,libs,test}/**/*.ts\\\" --fix\",\n    \"test\": \"jest\",\n    \"test:watch\": \"jest --watch\",\n    \"test:cov\": \"jest --coverage\",\n    \"test:debug\": \"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand\",\n    \"test:e2e\": \"jest --config ./test/jest-e2e.json\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"query/\\\"\"\n  },\n  \"author\": \"ZheX\",\n  \"main\": \"dist/index.js\",\n  \"license\": \"GPL-3.0\",\n  \"files\": [\n    \"/dist\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\",\n    \"/bin\",\n    \"CHANGELOG.md\",\n    \"LICENSE\",\n    \"README.md\"\n  ],\n  \"dependencies\": {\n    \"@graphile-contrib/pg-many-to-many\": \"^1.0.2\",\n    \"@graphile-contrib/pg-order-by-related\": \"^1.0.0\",\n    \"@graphile-contrib/pg-simplify-inflector\": \"^6.1.0\",\n    \"@graphile/pg-aggregates\": \"^0.1.1\",\n    \"@graphile/pg-pubsub\": \"^4.13.0\",\n    \"@nestjs/common\": \"^9.4.0\",\n    \"@nestjs/core\": \"^9.4.0\",\n    \"@nestjs/platform-express\": \"^9.4.0\",\n    \"@subql/common\": \"workspace:~\",\n    \"@subql/utils\": \"workspace:~\",\n    \"@subql/x-graphile-build-pg\": \"4.13.0-0.2.5\",\n    \"@subql/x-postgraphile-core\": \"4.13.0-0.2.0\",\n    \"apollo-server-express\": \"^3.12.0\",\n    \"compression\": \"^1.8.0\",\n    \"graphile-build\": \"^4.12.2\",\n    \"graphile-utils\": \"^4.13.0\",\n    \"graphql\": \"^15.8.0\",\n    \"graphql-query-complexity\": \"^0.11.0\",\n    \"graphql-ws\": \"^5.16.0\",\n    \"lodash\": \"^4.17.21\",\n    \"pg\": \"^8.12.0\",\n    \"pg-tsquery\": \"^8.4.2\",\n    \"pino-http\": \"^5.8.0\",\n    \"postgraphile\": \"^4.13.0\",\n    \"postgraphile-plugin-connection-filter\": \"^2.2.2\",\n    \"rxjs\": \"^7.1.0\",\n    \"ws\": \"^8.18.0\",\n    \"yargs\": \"^16.2.0\"\n  },\n  \"devDependencies\": {\n    \"@nestjs/schematics\": \"^9.2.0\",\n    \"@nestjs/testing\": \"^9.4.0\",\n    \"@types/compression\": \"^1.7.5\",\n    \"@types/express\": \"^4.17.21\",\n    \"@types/jest\": \"^27.5.2\",\n    \"@types/lodash\": \"^4.17.20\",\n    \"@types/ws\": \"^8\",\n    \"@types/yargs\": \"^16.0.9\",\n    \"nodemon\": \"^3.1.4\"\n  }\n}\n"
  },
  {
    "path": "packages/query/src/app.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Module} from '@nestjs/common';\nimport {ConfigureModule} from './configure/configure.module';\nimport {GraphqlModule} from './graphql/graphql.module';\n\n@Module({\n  imports: [ConfigureModule.register(), GraphqlModule],\n  controllers: [],\n})\nexport class AppModule {}\n"
  },
  {
    "path": "packages/query/src/configure/config.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {get} from 'lodash';\n\nexport class Config {\n  constructor(private readonly store: Record<never, never>) {}\n\n  get<T>(key: string, defaultValue?: T): T | undefined {\n    return (process.env[key.toUpperCase()] as unknown as T) ?? get(this.store, key, defaultValue);\n  }\n}\n"
  },
  {
    "path": "packages/query/src/configure/configure.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ConnectionOptions} from 'tls';\nimport {DynamicModule, Global, Module} from '@nestjs/common';\nimport {getFileContent, CONNECTION_SSL_ERROR_REGEX} from '@subql/common';\nimport {Pool, PoolConfig} from 'pg';\nimport {getLogger} from '../utils/logger';\nimport {getYargsOption} from '../yargs';\nimport {Config} from './config';\nimport {debugPgClient} from './x-postgraphile/debugClient';\n\nasync function ensurePool(poolConfig: PoolConfig): Promise<Pool> {\n  const pgPool = new Pool(poolConfig);\n  try {\n    const pgClient = await pgPool.connect();\n    // Release the client back to the pool as it's no longer needed\n    pgClient.release();\n  } catch (e: any) {\n    if (JSON.stringify(e.message).includes(CONNECTION_SSL_ERROR_REGEX)) {\n      poolConfig.ssl = undefined;\n      // end the pool and recreate it without ssl\n      await pgPool.end();\n      return ensurePool(poolConfig);\n    }\n  }\n  return pgPool;\n}\n\n@Global()\n@Module({})\nexport class ConfigureModule {\n  static async register(): Promise<DynamicModule> {\n    const {argv: opts} = getYargsOption();\n\n    const config = new Config({\n      name: opts.name,\n      playground: opts.playground ?? false,\n      unsafe: opts.unsafe ?? false,\n    });\n\n    const dbSslOption = () => {\n      const sslConfig: ConnectionOptions = {rejectUnauthorized: false};\n      if (opts['pg-ca']) {\n        try {\n          sslConfig.ca = getFileContent(opts['pg-ca'], 'postgres ca cert');\n          if (opts['pg-key']) {\n            sslConfig.key = getFileContent(opts['pg-key'], 'postgres client key');\n          }\n\n          if (opts['pg-cert']) {\n            sslConfig.cert = getFileContent(opts['pg-cert'], 'postgres client cert');\n          }\n\n          return sslConfig;\n        } catch (e: any) {\n          getLogger('db config').error(e);\n          throw e;\n        }\n      }\n      return sslConfig;\n    };\n\n    const poolConfig: PoolConfig = {\n      user: config.get('DB_USER'),\n      password: config.get('DB_PASS'),\n      host: config.get('DB_HOST_READ') && !opts.subscription ? config.get('DB_HOST_READ') : config.get('DB_HOST'),\n      port: config.get('DB_PORT'),\n      database: config.get('DB_DATABASE'),\n      max: opts['max-connection'],\n      statement_timeout: opts['query-timeout'],\n      ssl: dbSslOption(),\n    };\n\n    const pgPool = await ensurePool(poolConfig);\n\n    pgPool.on('error', (err) => {\n      // tslint:disable-next-line no-console\n      getLogger('db').error('PostgreSQL client generated error: ', err.message);\n    });\n    if (opts['query-explain']) {\n      pgPool.on('connect', (pgClient) => {\n        // Enhance our Postgres client with debugging stuffs.\n        debugPgClient(pgClient, getLogger('explain'));\n        pgClient._explainResults = [];\n      });\n    }\n    return {\n      module: ConfigureModule,\n      providers: [\n        {\n          provide: Config,\n          useValue: config,\n        },\n        {\n          provide: Pool,\n          useValue: pgPool,\n        },\n      ],\n      exports: [Config, Pool],\n    };\n  }\n}\n"
  },
  {
    "path": "packages/query/src/configure/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './config';\n"
  },
  {
    "path": "packages/query/src/configure/x-postgraphile/debugClient.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// overwrite the method plugin: https://github.com/graphile/postgraphile/blob/263ba7477bc2133eebdf89d29acd0460e58501ec/src/postgraphile/withPostGraphileContext.ts#L473\n// Allow log SQL queries without resolve result\nimport {ApolloServerPlugin} from 'apollo-server-plugin-base';\nimport {PoolClient} from 'pg';\nimport Pino from 'pino';\n\nconst $$pgClientOrigQuery = Symbol();\n\ndeclare module 'pg' {\n  interface ClientBase {\n    _explainResults: Array<RawExplainResult> | null;\n    startExplain: () => void;\n    stopExplain: () => Promise<Array<ExplainResult>>;\n  }\n}\n\ninterface RawExplainResult {\n  query: string;\n  values: any[];\n  result: any;\n}\ntype ExplainResult = Omit<RawExplainResult, 'result'> & {\n  plan: string;\n};\n\n// print original Graphql Query\nexport function queryExplainPlugin(logger: Pino.Logger): ApolloServerPlugin {\n  return {\n    requestDidStart: ({request}) => {\n      if (request.operationName !== 'IntrospectionQuery' && request.query !== undefined) {\n        logger.info(` \\n GraphQL query: ${request.query}`);\n      }\n    },\n  } as unknown as ApolloServerPlugin;\n}\n\n// print SQL query\nexport function debugPgClient(pgClient: PoolClient, logger: Pino.Logger): PoolClient {\n  // If Postgres debugging is enabled, enhance our query function by adding\n  // a debug statement.\n  if (!pgClient[$$pgClientOrigQuery]) {\n    // Set the original query method to a key on our client. If that key is\n    // already set, use that.\n    pgClient[$$pgClientOrigQuery] = pgClient.query;\n\n    pgClient.startExplain = () => {\n      pgClient._explainResults = [];\n    };\n\n    pgClient.stopExplain = async () => {\n      const results = pgClient._explainResults;\n      pgClient._explainResults = null;\n      if (!results) {\n        return Promise.resolve([]);\n      }\n      return (\n        await Promise.all(\n          results.map(async (r) => {\n            const {result: resultPromise, ...rest} = r;\n            const result = await resultPromise;\n            const firstKey = result && result[0] && Object.keys(result[0])[0];\n            if (!firstKey) {\n              return null;\n            }\n            const plan = result.map((r: any) => r[firstKey]).join('\\n');\n            return {\n              ...rest,\n              plan,\n            };\n          })\n        )\n      ).filter((entry: unknown): entry is ExplainResult => !!entry);\n    };\n\n    pgClient.query = function (...args: Array<any>): any {\n      const [a, b, c] = args;\n      const variables: string[] = [];\n      // If we understand it (and it uses the promises API)\n      if (\n        (typeof a === 'string' && (!c || typeof c === 'function') && (!b || Array.isArray(b))) ||\n        (typeof a === 'object' && !b && !c)\n      ) {\n        if (pgClient._explainResults) {\n          const query = a && a.text ? a.text : a;\n          const values = a && a.text ? a.values : b;\n          if (query.match(/^\\s*(select|insert|update|delete|with)\\s/i) && !query.includes(';')) {\n            // Explain it\n            const explain = `explain ${query}`;\n            pgClient._explainResults.push({\n              query,\n              values,\n              result: pgClient[$$pgClientOrigQuery]\n                .call(this, explain, values)\n                .then((data: any) => data.rows)\n                // swallow errors during explain\n                .catch(() => null),\n            });\n          }\n        }\n        pgClient._explainResults?.forEach(({query, values}: {query: string; values?: any[]}) => {\n          let res: string;\n          res = `\\n SQL query: ${query} `;\n          if (values && values.length !== 0) {\n            res = res.concat(` \\n Values: ${JSON.stringify(values)}`);\n          }\n          logger.info(res);\n        });\n        pgClient._explainResults = [];\n        return pgClient[$$pgClientOrigQuery].apply(this, args);\n      } else {\n        // We don't understand it (e.g. `pgPool.query`), just let it happen.\n        logger.info(`Having trouble to understand query args`);\n        args.forEach((arg) => {\n          logger.info(`arg: ${arg}`);\n        });\n        return pgClient[$$pgClientOrigQuery].apply(this, args);\n      }\n    };\n  }\n\n  return pgClient;\n}\n"
  },
  {
    "path": "packages/query/src/graphql/__snapshots__/graphql.historical.test.ts.snap",
    "content": "// Jest Snapshot v1, https://goo.gl/fbAQLP\n\nexports[`GraphqlHistorical to filter historical items when ordering 1`] = `\n\"with __local_0__ as (select to_json((json_build_object('__identifiers'::text, json_build_array(__local_1__.\"_id\"), '@listings'::text, (with __local_2__ as (select to_json((json_build_object('__identifiers'::text, json_build_array(__local_3__.\"_id\"), 'priceAmount'::text, ((__local_3__.\"price_amount\"))::text))) as \"@nodes\" from (select \n__local_3__.*\nfrom \"subquery_2\".\"listings\" as __local_3__\n\nwhere (__local_3__.\"item_id\" = __local_1__.\"id\") and (__local_3__._block_range @> $1::bigint) and (__local_3__._block_range @> $1::bigint) and (TRUE) and (TRUE)\norder by __local_3__.\"_id\" ASC\n\n) __local_3__), __local_4__ as (select json_agg(to_json(__local_2__)) as data from __local_2__) select json_build_object('data'::text, coalesce((select __local_4__.data from __local_4__), '[]'::json)) )))) as \"@nodes\" from (select \n__local_1__.*\nfrom \"subquery_2\".\"items\" as __local_1__\n\nwhere (__local_1__._block_range @> $1::bigint) and (TRUE) and (TRUE)\norder by __local_1__.\"last_traded_price_amount\" ASC,__local_1__.\"_id\" ASC\n\n) __local_1__), __local_5__ as (select json_agg(to_json(__local_0__)) as data from __local_0__) select coalesce((select __local_5__.data from __local_5__), '[]'::json) as \"data\" \"\n`;\n\nexports[`GraphqlHistorical to filter historical nested (backward) 1`] = `\n\"with __local_0__ as (select to_json((json_build_object('__identifiers'::text, json_build_array(__local_1__.\"_id\"), 'id'::text, (__local_1__.\"id\")))) as \"@nodes\" from (select \n__local_1__.*\nfrom \"subquery_2\".\"items\" as __local_1__\n\nwhere (__local_1__._block_range @> $1::bigint) and (((exists(select 1 from \"subquery_2\".\"listings\" as __local_2__ where (__local_2__.\"item_id\" = __local_1__.\"id\") and (__local_2__._block_range @> $1::bigint) and (((__local_2__.\"price_token\" = $2))) and (__local_2__._block_range @> $1::bigint))))) and (TRUE) and (TRUE)\norder by __local_1__.\"_id\" ASC\n\n) __local_1__), __local_3__ as (select json_agg(to_json(__local_0__)) as data from __local_0__) select coalesce((select __local_3__.data from __local_3__), '[]'::json) as \"data\" \"\n`;\n\nexports[`GraphqlHistorical to filter historical nested (forward) 1`] = `\n\"with __local_0__ as (select to_json((json_build_object('__identifiers'::text, json_build_array(__local_1__.\"_id\"), 'id'::text, (__local_1__.\"id\")))) as \"@nodes\" from (select \n__local_1__.*\nfrom \"subquery_2\".\"listings\" as __local_1__\n\nwhere (__local_1__._block_range @> $1::bigint) and ((      exists(\n        select 1 from \"subquery_2\".\"items\" as __local_2__\n        where (__local_1__.\"item_id\" = __local_2__.\"id\") and (__local_1__._block_range @> $1::bigint) and\n          (((__local_2__.\"approved\" = $2))) and (__local_2__._block_range @> $1::bigint)\n      ))) and (TRUE) and (TRUE)\norder by __local_1__.\"_id\" ASC\n\n) __local_1__), __local_3__ as (select json_agg(to_json(__local_0__)) as data from __local_0__) select coalesce((select __local_3__.data from __local_3__), '[]'::json) as \"data\" \"\n`;\n\nexports[`GraphqlHistorical to filter historical top level 1`] = `\n\"with __local_0__ as (select to_json((json_build_object('__identifiers'::text, json_build_array(__local_1__.\"_id\"), 'id'::text, (__local_1__.\"id\"), '@listings'::text, (with __local_2__ as (select to_json((json_build_object('__identifiers'::text, json_build_array(__local_3__.\"_id\"), 'id'::text, (__local_3__.\"id\")))) as \"@nodes\" from (select \n__local_3__.*\nfrom \"subquery_2\".\"listings\" as __local_3__\n\nwhere (__local_3__.\"item_id\" = __local_1__.\"id\") and (__local_3__._block_range @> $1::bigint) and (__local_3__._block_range @> $1::bigint) and (TRUE) and (TRUE)\norder by __local_3__.\"_id\" ASC\n\n) __local_3__), __local_4__ as (select json_agg(to_json(__local_2__)) as data from __local_2__) select json_build_object('data'::text, coalesce((select __local_4__.data from __local_4__), '[]'::json)) )))) as \"@nodes\" from (select \n__local_1__.*\nfrom \"subquery_2\".\"items\" as __local_1__\n\nwhere (__local_1__._block_range @> $1::bigint) and ((exists(select 1 from \"subquery_2\".\"listings\" as __local_5__ where (__local_5__.\"item_id\" = __local_1__.\"id\") and (__local_5__._block_range @> $1::bigint)))) and (TRUE) and (TRUE)\norder by __local_1__.\"_id\" ASC\n\n) __local_1__), __local_6__ as (select json_agg(to_json(__local_0__)) as data from __local_0__) select coalesce((select __local_6__.data from __local_6__), '[]'::json) as \"data\", (\n  select json_build_object('totalCount'::text, count(1))\n  from \"subquery_2\".\"items\" as __local_1__\n  where (__local_1__._block_range @> $1::bigint) and ((exists(select 1 from \"subquery_2\".\"listings\" as __local_5__ where (__local_5__.\"item_id\" = __local_1__.\"id\") and (__local_5__._block_range @> $1::bigint))))\n) as \"aggregates\" \"\n`;\n"
  },
  {
    "path": "packages/query/src/graphql/graphql.historical.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {getPostGraphileBuilder} from '@subql/x-postgraphile-core';\nimport {ApolloServer, ExpressContext, gql} from 'apollo-server-express';\nimport {Pool} from 'pg';\nimport {Config} from '../configure';\nimport {getYargsOption} from '../yargs';\nimport {plugins} from './plugins';\n\njest.mock('../yargs', () => jest.createMockFromModule('../yargs'));\n\n(getYargsOption as jest.Mock).mockImplementation(() => {\n  return {argv: {name: 'test', aggregate: true}};\n});\n\ndescribe('GraphqlHistorical', () => {\n  const dbSchema = 'subquery_2';\n\n  const config = new Config({});\n\n  const pool: Pool = new Pool({\n    user: config.get('DB_USER'),\n    password: config.get('DB_PASS'),\n    host: config.get('DB_HOST_READ') ?? config.get('DB_HOST'),\n    port: config.get('DB_PORT'),\n    database: config.get('DB_DATABASE'),\n  });\n\n  pool.on('error', (err) => {\n    console.error('PostgreSQL client generated error: ', err.message);\n  });\n\n  let server: ApolloServer<ExpressContext>;\n  let sqlSpy: jest.SpyInstance<void, [queryText: string, values: any[], callback?: any]>;\n\n  async function createApolloServer() {\n    const builder = await getPostGraphileBuilder(pool, [dbSchema], {\n      replaceAllPlugins: plugins,\n      subscriptions: true,\n      dynamicJson: true,\n    });\n\n    const schema = builder.buildSchema();\n\n    const server = new ApolloServer({\n      schema,\n      context: {\n        pgClient: pool,\n      },\n    });\n\n    return server;\n  }\n\n  beforeAll(async () => {\n    await pool.query(`CREATE SCHEMA IF NOT EXISTS ${dbSchema}`);\n    await pool.query(`CREATE TABLE IF NOT EXISTS \"${dbSchema}\".listings (\n      id text NOT NULL,\n      item_id text NOT NULL,\n      collection_id text NOT NULL,\n      price_amount numeric NOT NULL,\n      price_token text NULL,\n      expires_at jsonb NULL,\n      created_at_block_height numeric NOT NULL,\n      created_at_block_time timestamp NOT NULL,\n      created_at_tx_hash text NOT NULL,\n      updated_at_block_height numeric NULL,\n      updated_at_block_time timestamp NULL,\n      updated_at_tx_hash text NULL,\n      \"_id\" uuid NOT NULL,\n      \"_block_range\" int8range NOT NULL,\n      CONSTRAINT listings_pkey PRIMARY KEY (_id)\n    );`);\n    await pool.query(`CREATE TABLE IF NOT EXISTS \"${dbSchema}\".items (\n      id text NOT NULL,\n      collection_id text NOT NULL,\n      token_id text NOT NULL,\n      owner_id text NOT NULL,\n      token_uri text NULL,\n      \"extension\" text NULL,\n      metadata jsonb NULL,\n      last_traded_price_amount numeric NULL,\n      approved bool NOT NULL,\n      created_at_block_height numeric NOT NULL,\n      created_at_block_time timestamp NOT NULL,\n      created_at_tx_hash text NOT NULL,\n      updated_at_block_height numeric NULL,\n      updated_at_block_time timestamp NULL,\n      updated_at_tx_hash text NULL,\n      \"_id\" uuid NOT NULL,\n      \"_block_range\" int8range NOT NULL,\n      CONSTRAINT items_pkey PRIMARY KEY (_id)\n    );`);\n    await pool.query(`COMMENT ON TABLE \"${dbSchema}\".listings IS '@foreignFieldName listings\n@foreignKey (item_id) REFERENCES items (id)|@singleForeignFieldName listing';`);\n    await pool.query(`COMMENT ON TABLE \"${dbSchema}\".items IS '@foreignFieldName items';`);\n\n    server = await createApolloServer();\n    sqlSpy = jest.spyOn(pool, 'query');\n  });\n\n  beforeEach(() => {\n    sqlSpy.mockClear();\n  });\n\n  afterAll(async () => {\n    await pool.query(`DROP TABLE ${dbSchema}.listings;`);\n    await pool.query(`DROP TABLE ${dbSchema}.items;`);\n    await pool.query(`DROP SCHEMA ${dbSchema};`);\n    await pool.end();\n  });\n\n  it('to filter historical items when ordering', async () => {\n    const GQL_QUERY = gql`\n      query nfts {\n        items(orderBy: LAST_TRADED_PRICE_AMOUNT_ASC) {\n          nodes {\n            listings {\n              nodes {\n                priceAmount\n              }\n            }\n          }\n        }\n      }\n    `;\n\n    const res = await server.executeOperation({query: GQL_QUERY});\n    expect(res.errors).toBeUndefined();\n\n    expect(sqlSpy.mock.calls[0][0]).toMatchSnapshot();\n  });\n\n  it('to filter historical top level', async () => {\n    const GQL_QUERY = gql`\n      query NFTsOnSale {\n        items(filter: {listingsExist: true}) {\n          nodes {\n            id\n            listings {\n              nodes {\n                id\n              }\n            }\n          }\n          totalCount\n        }\n      }\n    `;\n\n    const res = await server.executeOperation({query: GQL_QUERY});\n    expect(res.errors).toBeUndefined();\n\n    expect(sqlSpy.mock.calls[0][0]).toMatchSnapshot();\n  });\n\n  it('to filter historical nested (forward)', async () => {\n    const GQL_QUERY = gql`\n      query {\n        listings(filter: {item: {approved: {equalTo: true}}}) {\n          nodes {\n            id\n          }\n        }\n      }\n    `;\n\n    const res = await server.executeOperation({query: GQL_QUERY});\n    expect(res.errors).toBeUndefined();\n\n    expect(sqlSpy.mock.calls[0][0]).toMatchSnapshot();\n  });\n\n  it('to filter historical nested (backward)', async () => {\n    const GQL_QUERY = gql`\n      query {\n        items(filter: {listings: {some: {priceToken: {equalTo: \"foo\"}}}}) {\n          nodes {\n            id\n          }\n        }\n      }\n    `;\n\n    const res = await server.executeOperation({query: GQL_QUERY});\n    expect(res.errors).toBeUndefined();\n\n    expect(sqlSpy.mock.calls[0][0]).toMatchSnapshot();\n  });\n});\n"
  },
  {
    "path": "packages/query/src/graphql/graphql.module.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {setInterval} from 'timers';\nimport PgPubSub from '@graphile/pg-pubsub';\nimport {Module, OnModuleDestroy, OnModuleInit} from '@nestjs/common';\nimport {HttpAdapterHost} from '@nestjs/core';\nimport {delay} from '@subql/common';\nimport {hashName} from '@subql/utils';\nimport {getPostGraphileBuilder, Plugin, PostGraphileCoreOptions} from '@subql/x-postgraphile-core';\nimport {ApolloServerPluginCacheControl, ApolloServerPluginLandingPageDisabled} from 'apollo-server-core';\nimport {ApolloServer, UserInputError} from 'apollo-server-express';\nimport compression from 'compression';\nimport {NextFunction, Request, Response} from 'express';\nimport {GraphQLSchema} from 'graphql';\nimport {useServer} from 'graphql-ws/lib/use/ws';\nimport {set} from 'lodash';\nimport {Pool, PoolClient} from 'pg';\nimport pinoLogger from 'pino-http';\nimport {makePluginHook} from 'postgraphile';\nimport {WebSocketServer} from 'ws';\nimport {Config} from '../configure';\nimport {queryExplainPlugin} from '../configure/x-postgraphile/debugClient';\nimport {getLogger, PinoConfig} from '../utils/logger';\nimport {getYargsOption} from '../yargs';\nimport {plugins} from './plugins';\nimport {PgSubscriptionPlugin} from './plugins/PgSubscriptionPlugin';\nimport {playgroundPlugin} from './plugins/PlaygroundPlugin';\nimport {queryAliasLimit} from './plugins/QueryAliasLimitPlugin';\nimport {queryComplexityPlugin} from './plugins/QueryComplexityPlugin';\nimport {queryDepthLimitPlugin} from './plugins/QueryDepthLimitPlugin';\nimport {ProjectService} from './project.service';\n\nconst {argv} = getYargsOption();\nconst logger = getLogger('graphql-module');\n\nconst SCHEMA_RETRY_INTERVAL = 10; //seconds\nconst SCHEMA_RETRY_NUMBER = 5;\nconst WS_ROUTE = '/';\n\nclass NoInitError extends Error {\n  constructor() {\n    super('GraphqlModule has not been initialized');\n  }\n}\n@Module({\n  providers: [ProjectService],\n})\nexport class GraphqlModule implements OnModuleInit, OnModuleDestroy {\n  private _apolloServer?: ApolloServer;\n  private wsCleanup?: ReturnType<typeof useServer>;\n  constructor(\n    private readonly httpAdapterHost: HttpAdapterHost,\n    private readonly config: Config,\n    private readonly pgPool: Pool,\n    private readonly projectService: ProjectService\n  ) {}\n\n  private get apolloServer(): ApolloServer {\n    assert(this._apolloServer, new NoInitError());\n    return this._apolloServer;\n  }\n\n  async onModuleInit(): Promise<void> {\n    if (!this.httpAdapterHost) {\n      return;\n    }\n    try {\n      this._apolloServer = await this.createServer();\n    } catch (e: any) {\n      throw new Error(`create apollo server failed, ${e.message}`);\n    }\n  }\n\n  async schemaListener(dbSchema: string, options: PostGraphileCoreOptions): Promise<void> {\n    // In order to apply hotSchema Reload without using apollo Gateway, must access the private method, hence the need to use set()\n    try {\n      const schema = await this.buildSchema(dbSchema, options);\n      if (schema && !!(this.apolloServer as any)?.generateSchemaDerivedData) {\n        const schemaDerivedData = await (this.apolloServer as any).generateSchemaDerivedData(schema);\n        set(this.apolloServer, 'schema', schema);\n        set(this.apolloServer, 'state.schemaManager.schemaDerivedData', schemaDerivedData);\n        logger.info('Schema updated');\n      }\n    } catch (e: any) {\n      logger.error(e, `Failed to hot reload Schema`);\n      process.exit(1);\n    }\n  }\n\n  async onModuleDestroy(): Promise<void> {\n    await Promise.all([this.apolloServer?.stop(), this.wsCleanup?.dispose()]);\n  }\n\n  private async buildSchema(\n    dbSchema: string,\n    options: PostGraphileCoreOptions,\n    retries = SCHEMA_RETRY_NUMBER\n  ): Promise<GraphQLSchema> {\n    if (retries > 0) {\n      try {\n        const builder = await getPostGraphileBuilder(this.pgPool, [dbSchema], options);\n\n        const graphqlSchema = builder.buildSchema();\n        return graphqlSchema;\n      } catch (e: any) {\n        await delay(SCHEMA_RETRY_INTERVAL);\n        if (retries === 1) {\n          logger.error(e);\n        }\n        return this.buildSchema(dbSchema, options, --retries);\n      }\n    } else {\n      throw new Error(`Failed to build schema ${dbSchema} ${SCHEMA_RETRY_NUMBER} times`);\n    }\n  }\n\n  private setupKeepAlive(pgClient: PoolClient) {\n    const interval = argv['sl-keep-alive-interval'] || 180000;\n    logger.info(`Setup PG Pool keep alive. interval ${interval} ms`);\n    setInterval(() => {\n      void (async () => {\n        try {\n          await pgClient.query('SELECT 1');\n        } catch (err) {\n          getLogger('db').error('Schema listener client keep-alive query failed: ', err);\n        }\n      })();\n    }, interval);\n  }\n\n  private async createServer() {\n    const app = this.httpAdapterHost.httpAdapter.getInstance();\n    const httpServer = this.httpAdapterHost.httpAdapter.getHttpServer();\n\n    const schemaName = this.config.get<string>('name');\n    if (!schemaName) throw new Error('Unable to get schema name from config');\n\n    const dbSchema = await this.projectService.getProjectSchema(schemaName);\n    let options: PostGraphileCoreOptions = {\n      replaceAllPlugins: plugins,\n      subscriptions: true,\n      dynamicJson: true,\n      graphileBuildOptions: {\n        connectionFilterRelations: false, // We use our own forked version with historical support\n\n        // cockroach db does not support pgPartition\n        pgUsePartitionedParent: true,\n      },\n    };\n\n    if (argv.subscription) {\n      const pluginHook = makePluginHook([PgPubSub]);\n      // Must be called manually to init PgPubSub since we're using Apollo Server and not postgraphile\n      options = pluginHook('postgraphile:options', options, {pgPool: this.pgPool});\n      options.replaceAllPlugins ??= [];\n      options.appendPlugins ??= [];\n      options.replaceAllPlugins.push(PgSubscriptionPlugin as Plugin);\n      while (options.appendPlugins.length) {\n        const replaceAllPlugin = options.appendPlugins.pop();\n        if (replaceAllPlugin) options.replaceAllPlugins.push(replaceAllPlugin);\n      }\n    }\n\n    if (!argv['disable-hot-schema']) {\n      try {\n        const pgClient = await this.pgPool.connect();\n        await pgClient.query(`LISTEN \"${hashName(dbSchema, 'schema_channel', '_metadata')}\"`);\n\n        // Set up a keep-alive interval to prevent the connection from being killed\n        this.setupKeepAlive(pgClient);\n\n        pgClient.on('error', (err: Error) => {\n          getLogger('db').error('PostgreSQL schema listener client error: ', err);\n          process.exit(1);\n        });\n\n        pgClient.on('notification', (msg) => {\n          if (msg.payload === 'schema_updated') {\n            void this.schemaListener(dbSchema, options);\n          }\n        });\n      } catch (e) {\n        logger.warn('Failed to init hot-schema reload', e);\n      }\n    }\n    const schema = await this.buildSchema(dbSchema, options);\n\n    const apolloServerPlugins = [\n      ApolloServerPluginCacheControl({\n        defaultMaxAge: 5,\n        calculateHttpHeaders: true,\n      }),\n      this.config.get('playground')\n        ? playgroundPlugin({url: '/', subscriptionUrl: argv.subscription ? WS_ROUTE : undefined})\n        : ApolloServerPluginLandingPageDisabled(),\n      queryComplexityPlugin({schema, maxComplexity: argv['query-complexity']}),\n      queryDepthLimitPlugin({schema, maxDepth: argv['query-depth-limit']}),\n      queryAliasLimit({schema, limit: argv['query-alias-limit']}),\n    ];\n\n    if (argv['query-explain']) {\n      apolloServerPlugins.push(queryExplainPlugin(getLogger('explain')));\n    }\n\n    const server = new ApolloServer({\n      schema,\n      context: {\n        pgClient: this.pgPool,\n      },\n      plugins: apolloServerPlugins,\n      debug: this.config.get('NODE_ENV') !== 'production',\n    });\n\n    if (argv.subscription) {\n      const wsServer = new WebSocketServer({\n        server: httpServer,\n        path: WS_ROUTE,\n      });\n\n      this.wsCleanup = useServer({schema, context: {pgClient: this.pgPool}}, wsServer);\n    }\n\n    app.use(pinoLogger(PinoConfig));\n    app.use(limitBatchedQueries);\n    app.use(compression());\n\n    await server.start();\n    server.applyMiddleware({\n      app,\n      path: '/',\n      cors: true,\n    });\n    return server;\n  }\n}\nfunction limitBatchedQueries(req: Request, res: Response, next: NextFunction): void {\n  const errors: UserInputError[] = [];\n  if (argv['query-batch-limit'] && argv['query-batch-limit'] > 0) {\n    if (req.method === 'POST') {\n      try {\n        const queries = req.body;\n        if (Array.isArray(queries) && queries.length > argv['query-batch-limit']) {\n          errors.push(new UserInputError('Batch query limit exceeded'));\n          // eslint-disable-next-line @typescript-eslint/only-throw-error\n          throw errors;\n        }\n      } catch (error: any) {\n        res.status(500).json({errors: [...error]});\n        return next(error);\n      }\n    }\n  }\n  next();\n}\n"
  },
  {
    "path": "packages/query/src/graphql/graphql.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {getPostGraphileBuilder} from '@subql/x-postgraphile-core';\nimport {ApolloServer, gql} from 'apollo-server-express';\nimport {Pool} from 'pg';\nimport {Config} from '../configure';\nimport {plugins} from './plugins';\n\njest.mock('../yargs', () => {\n  const actualModule = jest.requireActual('../yargs');\n  const getYargsOption = jest.fn(() => ({argv: {name: 'test', aggregate: true}}));\n  const argv = (arg: string) => getYargsOption().argv[arg];\n  return {\n    ...actualModule,\n    getYargsOption,\n    argv,\n  };\n});\n\ndescribe('GraphqlModule', () => {\n  const dbSchema = 'subquery_1';\n\n  const config = new Config({});\n\n  const pool: Pool = new Pool({\n    user: config.get('DB_USER'),\n    password: config.get('DB_PASS'),\n    host: config.get('DB_HOST_READ') ?? config.get('DB_HOST'),\n    port: config.get('DB_PORT'),\n    database: config.get('DB_DATABASE'),\n  });\n\n  pool.on('error', (err) => {\n    console.error('PostgreSQL client generated error: ', err.message);\n  });\n\n  async function insertMetadata(key: string, value: string) {\n    await pool.query(`INSERT INTO subquery_1._metadata(\n            key, value, \"createdAt\", \"updatedAt\")\n            VALUES ('${key}', '${value}', '2021-11-07 07:02:31.768+00', '2021-11-07 07:02:31.768+00');`);\n  }\n\n  async function createApolloServer() {\n    const builder = await getPostGraphileBuilder(pool, [dbSchema], {\n      replaceAllPlugins: plugins,\n      subscriptions: true,\n      dynamicJson: true,\n    });\n\n    const schema = builder.buildSchema();\n\n    const server = new ApolloServer({\n      schema,\n      context: {\n        pgClient: pool,\n      },\n    });\n\n    return server;\n  }\n\n  beforeEach(async () => {\n    await pool.query(`CREATE SCHEMA IF NOT EXISTS ${dbSchema}`);\n    await pool.query(`CREATE TABLE IF NOT EXISTS subquery_1._metadata (\n            key character varying(255) COLLATE pg_catalog.\"default\" NOT NULL,\n            value jsonb,\n            \"createdAt\" timestamp with time zone NOT NULL,\n            \"updatedAt\" timestamp with time zone NOT NULL,\n            CONSTRAINT _metadata_pkey PRIMARY KEY (key)\n        )`);\n\n    await pool.query(`CREATE TABLE \"${dbSchema}\".\"pool_snapshots\" (\n            \"id\" text COLLATE \"pg_catalog\".\"default\" NOT NULL,\n            \"pool_id\" text COLLATE \"pg_catalog\".\"default\" NOT NULL,\n            \"block_number\" int4 NOT NULL,\n            \"total_reserve\" numeric,\n            CONSTRAINT \"pool_snapshots_pkey\" PRIMARY KEY (\"id\")\n          )`);\n  });\n\n  afterEach(async () => {\n    await pool.query(`DROP TABLE \"${dbSchema}\".\"pool_snapshots\"`);\n    await pool.query(`DROP TABLE subquery_1._metadata`);\n  });\n\n  afterAll(async () => {\n    await pool.end();\n  });\n\n  it('can query all metadata fields from database', async () => {\n    await Promise.all([\n      insertMetadata('lastProcessedHeight', '398'),\n      insertMetadata('lastProcessedTimestamp', '110101'),\n      insertMetadata('targetHeight', '7595931'),\n      insertMetadata('chain', `\"Polkadot\"`),\n      insertMetadata('specName', `\"polkadot\"`),\n      insertMetadata('genesisHash', `\"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3\"`),\n      insertMetadata('indexerHealthy', 'true'),\n      insertMetadata('indexerNodeVersion', `\"0.21-0\"`),\n    ]);\n\n    const server = await createApolloServer();\n\n    const GET_META = gql`\n      query {\n        _metadata {\n          lastProcessedHeight\n          lastProcessedTimestamp\n          targetHeight\n          chain\n          specName\n          genesisHash\n          indexerHealthy\n          indexerNodeVersion\n        }\n      }\n    `;\n\n    const mock = {\n      lastProcessedHeight: 398,\n      lastProcessedTimestamp: '110101',\n      targetHeight: 7595931,\n      chain: 'Polkadot',\n      specName: 'polkadot',\n      genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n      indexerHealthy: true,\n      indexerNodeVersion: '0.21-0',\n    };\n\n    const results = await server.executeOperation({query: GET_META});\n    const fetchedMeta = results.data?._metadata;\n\n    expect(fetchedMeta).toMatchObject(mock);\n  });\n\n  it('wont resolve fields that arent allowed metadata', async () => {\n    await Promise.all([\n      insertMetadata('lastProcessedHeight', '398'),\n      insertMetadata('chain', `\"Polkadot\"`),\n      insertMetadata('indexerHealthy', 'true'),\n      insertMetadata('fakeMetadata', 'true'),\n    ]);\n\n    const server = await createApolloServer();\n\n    const GET_META = gql`\n      query {\n        _metadata {\n          lastProcessedHeight\n          chain\n          indexerHealthy\n          fakeMetadata\n        }\n      }\n    `;\n\n    const results = await server.executeOperation({query: GET_META});\n    expect(`${results.errors}`).toEqual(`Cannot query field \"fakeMetadata\" on type \"_Metadata\".`);\n  });\n\n  it('resolve incorrect fields in db to null when queried from graphql', async () => {\n    await Promise.all([\n      insertMetadata('lastProcessedHeight', `\"Polkadot\"`),\n      insertMetadata('chain', 'true'),\n      insertMetadata('indexerHealthy', '20'),\n    ]);\n\n    const server = await createApolloServer();\n\n    const GET_META = gql`\n      query {\n        _metadata {\n          lastProcessedHeight\n          chain\n          indexerHealthy\n        }\n      }\n    `;\n\n    const mock = {\n      lastProcessedHeight: null,\n      chain: null,\n      indexerHealthy: null,\n    };\n\n    const results = await server.executeOperation({query: GET_META});\n    const fetchedMeta = results.data?._metadata;\n\n    expect(fetchedMeta).toMatchObject(mock);\n  });\n\n  // sum(price_amount)\n  it('AggregateSpecsPlugin support big number', async () => {\n    await pool.query(\n      `INSERT INTO \"${dbSchema}\".\"pool_snapshots\" (\"id\", \"pool_id\", \"block_number\", \"total_reserve\") VALUES ('1', '1', 1, '1')`\n    );\n    await pool.query(\n      `INSERT INTO \"${dbSchema}\".\"pool_snapshots\" (\"id\", \"pool_id\", \"block_number\", \"total_reserve\") VALUES ('2', '1', 1, '20000000000000000000000')`\n    );\n\n    const server = await createApolloServer();\n\n    const GET_META = gql`\n      query {\n        poolSnapshots(first: 25) {\n          nodes {\n            totalReserve\n            blockNumber\n          }\n          groupedAggregates(groupBy: []) {\n            sum {\n              totalReserve\n              blockNumber\n            }\n            max {\n              totalReserve\n              blockNumber\n            }\n            min {\n              totalReserve\n              blockNumber\n            }\n            average {\n              totalReserve\n              blockNumber\n            }\n          }\n        }\n      }\n    `;\n\n    const results = await server.executeOperation({query: GET_META});\n    expect(results.data).toBeDefined();\n\n    const nodes = (results.data as any).poolSnapshots.nodes[0];\n    expect(nodes.blockNumber).toEqual(1);\n    expect(nodes.totalReserve).toEqual('1');\n\n    const aggregate = (results.data as any).poolSnapshots.groupedAggregates[0];\n    expect(aggregate.average.totalReserve).toEqual('10000000000000000000001');\n    expect(aggregate.sum.totalReserve).toEqual('20000000000000000000001');\n    expect(aggregate.min.totalReserve).toEqual('1');\n    expect(aggregate.max.totalReserve).toEqual('20000000000000000000000');\n  });\n\n  // github issue #2387 : orderBy with orderByNull\n  it('PgOrderByUnique plugin correctly orders NULL values using orderByNull param', async () => {\n    await pool.query(`\n      INSERT INTO \"${dbSchema}\".\"pool_snapshots\" (\"id\", \"pool_id\", \"block_number\", \"total_reserve\") VALUES\n      ('1', '1', 15921, NULL),\n      ('2', '2', 8743, NULL),\n      ('3', '3', 87, '100'),\n      ('4', '4', 13288, '200')\n    `);\n\n    const server = await createApolloServer();\n\n    // Query with orderBy desc and orderByNull (NULLS_LAST)\n    const GET_SNAPSHOTS_NULLS_LAST = gql`\n      query {\n        poolSnapshots(orderBy: TOTAL_RESERVE_DESC, orderByNull: NULLS_LAST) {\n          nodes {\n            id\n            totalReserve\n          }\n        }\n      }\n    `;\n\n    const resultsOrderByNullsLast = await server.executeOperation({query: GET_SNAPSHOTS_NULLS_LAST});\n    expect(resultsOrderByNullsLast.errors).toBeUndefined();\n\n    const snapshotsNullsLast = resultsOrderByNullsLast.data?.poolSnapshots.nodes;\n\n    // Verify that NULL values appear last\n    expect(snapshotsNullsLast).toEqual([\n      {id: '4', totalReserve: '200'},\n      {id: '3', totalReserve: '100'},\n      {id: '1', totalReserve: null},\n      {id: '2', totalReserve: null},\n    ]);\n\n    // Query with orderBy desc and orderByNull (NULLS_FIRST)\n    const GET_SNAPSHOTS_NULLS_FIRST = gql`\n      query {\n        poolSnapshots(orderBy: TOTAL_RESERVE_DESC, orderByNull: NULLS_FIRST) {\n          nodes {\n            id\n            totalReserve\n          }\n        }\n      }\n    `;\n\n    const resultsOrderByNullsFirst = await server.executeOperation({query: GET_SNAPSHOTS_NULLS_FIRST});\n    expect(resultsOrderByNullsFirst.errors).toBeUndefined();\n\n    const snapshotsNullsFirst = resultsOrderByNullsFirst.data?.poolSnapshots.nodes;\n\n    // Verify that NULL values appear first\n    expect(snapshotsNullsFirst).toEqual([\n      {id: '1', totalReserve: null},\n      {id: '2', totalReserve: null},\n      {id: '4', totalReserve: '200'},\n      {id: '3', totalReserve: '100'},\n    ]);\n  });\n});\n"
  },
  {
    "path": "packages/query/src/graphql/limit.test.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {getPostGraphileBuilder} from '@subql/x-postgraphile-core';\nimport {ApolloServer, gql} from 'apollo-server-express';\nimport {Pool} from 'pg';\nimport {Config} from '../configure';\nimport {plugins} from './plugins';\n\njest.mock('../yargs', () => {\n  return {\n    argv: jest.fn((x) => {\n      if (x === 'name') return 'test';\n      if (x === 'query-limit') return 100;\n    }),\n  };\n});\n\ndescribe('query limits', () => {\n  const dbSchema = 'subquery_1';\n\n  const config = new Config({});\n\n  const pool = new Pool({\n    user: config.get('DB_USER'),\n    password: config.get('DB_PASS'),\n    host: config.get('DB_HOST_READ') ?? config.get('DB_HOST'),\n    port: config.get('DB_PORT'),\n    database: config.get('DB_DATABASE'),\n  });\n\n  pool.on('error', (err) => {\n    console.error('PostgreSQL client generated error: ', err.message);\n  });\n\n  async function createApolloServer() {\n    const builder = await getPostGraphileBuilder(pool, [dbSchema], {\n      replaceAllPlugins: plugins,\n      subscriptions: true,\n      dynamicJson: true,\n    });\n\n    const schema = builder.buildSchema();\n\n    return new ApolloServer({\n      schema,\n      context: {\n        pgClient: pool,\n      },\n    });\n  }\n\n  afterAll(async () => {\n    await pool.end();\n  });\n\n  describe('entity limits', () => {\n    async function insertPair(key: number, value: number) {\n      await pool.query(`INSERT INTO subquery_1.table( key, value) VALUES ('${key}', '${value}');`);\n    }\n\n    beforeEach(async () => {\n      await pool.query(`CREATE SCHEMA IF NOT EXISTS ${dbSchema}`);\n      await pool.query(`CREATE TABLE IF NOT EXISTS subquery_1.table (\n            key   INT, \n            value INT )`);\n\n      for (let i = 0; i < 200; i++) {\n        await insertPair(i, i);\n      }\n    });\n\n    afterEach(async () => {\n      await pool.query(`DROP TABLE subquery_1.table`);\n    });\n\n    it('unbounded query clamped to safe bound', async () => {\n      const LARGE_UNBOUND_QUERY = gql`\n        query {\n          tables {\n            nodes {\n              key\n              value\n            }\n          }\n        }\n      `;\n\n      const server = await createApolloServer();\n      const results = await server.executeOperation({query: LARGE_UNBOUND_QUERY});\n      expect(results.data?.tables.nodes.length).toEqual(100);\n    }, 5000000);\n\n    it('bounded unsafe query clamped to safe bound', async () => {\n      const LARGE_BOUNDED_QUERY = gql`\n        query {\n          tables(first: 200) {\n            nodes {\n              key\n              value\n            }\n          }\n        }\n      `;\n\n      const server = await createApolloServer();\n      const results = await server.executeOperation({query: LARGE_BOUNDED_QUERY});\n      expect(results.data?.tables.nodes.length).toEqual(100);\n    });\n\n    it('bounded safe query remains unchanged', async () => {\n      const LARGE_BOUNDED_QUERY = gql`\n        query {\n          tables(first: 50) {\n            nodes {\n              key\n              value\n            }\n          }\n        }\n      `;\n\n      const server = await createApolloServer();\n      const results = await server.executeOperation({query: LARGE_BOUNDED_QUERY});\n      expect(results.data?.tables.nodes.length).toEqual(50);\n    });\n  });\n});\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/GetMetadataPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {getMetadataTableName, MetaData, METADATA_REGEX, MULTI_METADATA_REGEX, TableEstimate} from '@subql/utils';\nimport {PgIntrospectionResultsByKind} from '@subql/x-graphile-build-pg';\nimport {Build} from '@subql/x-postgraphile-core';\nimport {makeExtendSchemaPlugin, gql} from 'graphile-utils';\nimport {FieldNode, SelectionNode} from 'graphql';\nimport {uniq} from 'lodash';\nimport {Client} from 'pg';\nimport {setAsyncInterval} from '../../utils/asyncInterval';\nimport {argv} from '../../yargs';\n\nconst {version: packageVersion} = require('../../../package.json');\nconst META_JSON_FIELDS = ['deployments'];\nconst METADATA_TYPES = {\n  lastProcessedHeight: 'number',\n  lastProcessedBlockTimestamp: 'number',\n  lastProcessedTimestamp: 'number',\n  targetHeight: 'number',\n  lastFinalizedVerifiedHeight: 'number',\n  unfinalizedBlocks: 'string',\n  chain: 'string',\n  specName: 'string',\n  genesisHash: 'string',\n  indexerHealthy: 'boolean',\n  indexerNodeVersion: 'string',\n  queryNodeVersion: 'string',\n  dynamicDatasources: 'object',\n  startHeight: 'number',\n  evmChainId: 'string',\n  deployments: 'string',\n  lastCreatedPoiHeight: 'number',\n  latestSyncedPoiHeight: 'number',\n  dbSize: 'string',\n  historicalStateEnabled: 'string',\n};\n\nconst METADATA_KEYS = Object.keys(METADATA_TYPES);\n\ntype MetaType = number | string | boolean;\n\ntype MetaEntry = {key: string; value: MetaType};\n\ntype MetadatasConnection = {\n  totalCount?: number;\n  nodes?: MetaData[];\n  // edges?: any; // TODO\n};\n\nconst metaCache = {\n  queryNodeVersion: packageVersion,\n} as MetaData;\n\nasync function fetchFromApi(): Promise<void> {\n  let health: Response;\n  let meta: Response;\n\n  const indexerUrl = argv('indexer') as string | undefined;\n\n  try {\n    meta = await fetch(new URL(`meta`, indexerUrl));\n    const result = await meta.json();\n    Object.assign(metaCache, result);\n  } catch (e: any) {\n    metaCache.indexerHealthy = false;\n    console.warn(`Failed to fetch indexer meta, `, e.message);\n  }\n\n  try {\n    health = await fetch(new URL(`health`, indexerUrl));\n    metaCache.indexerHealthy = !!health.ok;\n  } catch (e: any) {\n    metaCache.indexerHealthy = false;\n    console.warn(`Failed to fetch indexer health, `, e.message);\n  }\n}\n\nfunction matchMetadataTableName(name: string): boolean {\n  return METADATA_REGEX.test(name) || MULTI_METADATA_REGEX.test(name);\n}\n\nasync function fetchMetadataFromTable(\n  pgClient: Client,\n  schemaName: string,\n  tableName: string,\n  useRowEst: boolean\n): Promise<MetaData> {\n  const {rows} = await pgClient.query(`select * from \"${schemaName}\".${tableName} WHERE key = ANY ($1)`, [\n    METADATA_KEYS,\n  ]);\n\n  const dbKeyValue = rows.reduce((array: MetaEntry[], curr: MetaEntry) => {\n    array[curr.key] = curr.value;\n    return array;\n  }, {}) as {[key: string]: MetaType};\n\n  const metadata = {} as MetaData;\n\n  for (const key in METADATA_TYPES) {\n    if (typeof dbKeyValue[key] === METADATA_TYPES[key]) {\n      //JSON object are stored in string type, filter here and parse\n      if (META_JSON_FIELDS.includes(key)) {\n        metadata[key] = JSON.parse(dbKeyValue[key].toString());\n      } else {\n        metadata[key] = dbKeyValue[key];\n      }\n    }\n  }\n  metadata.queryNodeVersion = packageVersion;\n\n  if (useRowEst) {\n    const tableEstimates = await pgClient\n      .query<TableEstimate>(\n        `select relname as table , reltuples::bigint as estimate from pg_class\n      where relnamespace in\n            (select oid from pg_namespace where nspname = $1)\n      and relname in\n          (select table_name from information_schema.tables\n           where table_schema = $1)`,\n        [schemaName]\n      )\n      .catch((e) => {\n        throw new Error(`Unable to estimate table row count: ${e}`);\n      });\n    metadata.rowCountEstimate = tableEstimates.rows;\n  }\n\n  return metadata;\n}\n\n// Store default metadata name in table avoid query system table\nlet defaultMetadataName: string;\n\nexport async function fetchFromTable(\n  pgClient: Client,\n  schemaName: string,\n  chainId: string | undefined,\n  useRowEst: boolean\n): Promise<MetaData> {\n  let metadataTableName: string;\n\n  if (!chainId) {\n    // return first metadata entry you find.\n    if (defaultMetadataName === undefined) {\n      const {rows} = await pgClient.query(\n        `SELECT table_name FROM information_schema.tables where table_schema='${schemaName}'`\n      );\n      const {table_name} = rows.find((obj: {table_name: string}) => matchMetadataTableName(obj.table_name));\n      defaultMetadataName = table_name;\n    }\n    metadataTableName = defaultMetadataName;\n  } else {\n    metadataTableName = getMetadataTableName(chainId);\n  }\n\n  return fetchMetadataFromTable(pgClient, schemaName, metadataTableName, useRowEst);\n}\n\nfunction metadataTableSearch(build: Build): boolean {\n  return !!(build.pgIntrospectionResultsByKind as PgIntrospectionResultsByKind).attribute.find((attr) =>\n    matchMetadataTableName(attr.class.name)\n  );\n}\n\nfunction isFieldNode(node: SelectionNode): node is FieldNode {\n  return node.kind === 'Field';\n}\n\n/* Recursively work down the AST to find a node with a matching path */\nfunction findNodePath(nodes: readonly SelectionNode[], path: string[]): FieldNode | undefined {\n  if (!path.length) {\n    throw new Error('Path must have a length');\n  }\n\n  const currentPath = path[0];\n  const found = nodes.find((node) => isFieldNode(node) && node.name.value === currentPath);\n\n  if (found && isFieldNode(found)) {\n    const newPath = path.slice(1);\n\n    if (!newPath.length) return found;\n\n    if (!found.selectionSet) return;\n    return findNodePath(found.selectionSet.selections, newPath);\n  }\n}\n\nexport const GetMetadataPlugin = makeExtendSchemaPlugin((build: Build, options) => {\n  const [schemaName] = options.pgSchemas;\n\n  if (argv(`indexer`)) {\n    setAsyncInterval(fetchFromApi, 10000);\n  }\n\n  return {\n    typeDefs: gql`\n      type TableEstimate {\n        table: String\n        estimate: Int\n      }\n\n      type _Metadata {\n        lastProcessedHeight: Int\n        lastProcessedTimestamp: Date\n        targetHeight: Int\n        chain: String\n        specName: String\n        genesisHash: String\n        startHeight: Int\n        indexerHealthy: Boolean\n        indexerNodeVersion: String\n        queryNodeVersion: String\n        rowCountEstimate: [TableEstimate]\n        dynamicDatasources: [JSON]\n        evmChainId: String\n        deployments: JSON\n        lastFinalizedVerifiedHeight: Int\n        unfinalizedBlocks: String\n        lastCreatedPoiHeight: Int\n        latestSyncedPoiHeight: Int\n        dbSize: BigInt\n      }\n\n      type _MetadatasEdge {\n        cursor: Cursor\n        node: _Metadata\n      }\n\n      type _Metadatas {\n        totalCount: Int!\n        nodes: [_Metadata]!\n        # edges: [_MetadatasEdge]\n      }\n\n      extend type Query {\n        _metadata(chainId: String): _Metadata\n\n        _metadatas(\n          after: Cursor\n          before: Cursor # distinct: [_mmr_distinct_enum] = null # filter: _MetadataFilter # first: Int # offset: Int\n          # last: Int\n        ): # orderBy: [_MetadatasOrderBy!] = [PRIMARY_KEY_ASC]\n        _Metadatas\n      }\n    `,\n    resolvers: {\n      Query: {\n        _metadata: async (_parentObject, args, context, info): Promise<MetaData | undefined> => {\n          const tableExists = metadataTableSearch(build);\n          if (tableExists) {\n            let rowCountFound = false;\n            if (info.fieldName === '_metadata') {\n              rowCountFound = !!findNodePath(info.fieldNodes, ['_metadata', 'rowCountEstimate']);\n            }\n            const metadata = await fetchFromTable(context.pgClient, schemaName, args.chainId, rowCountFound);\n            if (Object.keys(metadata).length > 0) {\n              return metadata;\n            }\n          }\n          if (argv(`indexer`)) {\n            return metaCache;\n          }\n          return;\n        },\n        _metadatas: async (_parentObject, args, context, info): Promise<MetadatasConnection> => {\n          const tableNames = uniq<string>(\n            (build.pgIntrospectionResultsByKind as PgIntrospectionResultsByKind).attribute\n              .filter((attr) => attr.class.namespaceName === schemaName && matchMetadataTableName(attr.class.name))\n              .map((attr) => attr.class.name)\n          );\n\n          let totalCount = false;\n          let rowCountEstimate = false;\n\n          if (info.fieldName === '_metadatas') {\n            totalCount = !!findNodePath(info.fieldNodes, ['_metadatas', 'totalCount']);\n            rowCountEstimate = !!findNodePath(info.fieldNodes, ['_metadatas', 'nodes', 'rowCountEstimate']);\n          }\n\n          const metadatas = await Promise.all(\n            tableNames.map((name) => fetchMetadataFromTable(context.pgClient, schemaName, name, rowCountEstimate))\n          );\n\n          return {\n            totalCount: totalCount ? tableNames.length : undefined,\n            nodes: metadatas,\n          };\n        },\n      },\n    },\n  };\n});\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgAggregateSpecsPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// overwrite the official plugin: https://github.com/graphile/pg-aggregates/blob/main/src/AggregateSpecsPlugin.ts\n// Fixed the aggregate query, type conversion causes precision loss.\n\nconst TIMESTAMP_OID = '1114';\nconst TIMESTAMPTZ_OID = '1184';\nconst SMALLINT_OID = '21';\nconst BIGINT_OID = '20';\nconst INTEGER_OID = '23';\nconst NUMERIC_OID = '1700';\nconst REAL_OID = '700';\nconst DOUBLE_PRECISION_OID = '701';\nconst INTERVAL_OID = '1186';\nconst MONEY_OID = '790';\nconst AggregateSpecsPlugin = (builder) => {\n  builder.hook('build', (build) => {\n    const {pgSql: sql} = build;\n    const isNumberLike = (pgType) => pgType.category === 'N';\n    /** Maps from the data type of the column to the data type of the sum aggregate */\n    /** BigFloat is our fallback type; it should be valid for almost all numeric types */\n    const convertWithMapAndFallback = (dataTypeToAggregateTypeMap, fallback) => {\n      return (pgType, _pgTypeModifier) => {\n        const targetTypeId = dataTypeToAggregateTypeMap[pgType.id] || fallback;\n        const targetType = build.pgIntrospectionResultsByKind.type.find((t) => t.id === targetTypeId);\n        if (!targetType) {\n          throw new Error(`Could not find PostgreSQL type with oid '${targetTypeId}' whilst processing aggregate.`);\n        }\n        return [targetType, null];\n      };\n    };\n    const pgAggregateSpecs = [\n      {\n        id: 'sum',\n        humanLabel: 'sum',\n        HumanLabel: 'Sum',\n        isSuitableType: isNumberLike,\n        // I've wrapped it in `coalesce` so that it cannot be null\n        // Subql fix: The ::text cast is to ensure that the result is a string, which is\n        sqlAggregateWrap: (sqlFrag) => sql.fragment`coalesce(sum(${sqlFrag}), 0)::text`,\n        isNonNull: true,\n        // A SUM(...) often ends up significantly larger than any individual\n        // value; see\n        // https://www.postgresql.org/docs/current/functions-aggregate.html for\n        // how the sum aggregate changes result type.\n        pgTypeAndModifierModifier: convertWithMapAndFallback(\n          {\n            [SMALLINT_OID]: BIGINT_OID,\n            [INTEGER_OID]: BIGINT_OID,\n            [BIGINT_OID]: NUMERIC_OID,\n            [REAL_OID]: REAL_OID,\n            [DOUBLE_PRECISION_OID]: DOUBLE_PRECISION_OID,\n            [INTERVAL_OID]: INTERVAL_OID,\n            [MONEY_OID]: MONEY_OID,\n          },\n          NUMERIC_OID /* numeric */\n        ),\n      },\n      {\n        id: 'distinctCount',\n        humanLabel: 'distinct count',\n        HumanLabel: 'Distinct count',\n        isSuitableType: () => true,\n        sqlAggregateWrap: (sqlFrag) => sql.fragment`count(distinct ${sqlFrag})`,\n        pgTypeAndModifierModifier: convertWithMapAndFallback({}, BIGINT_OID /* always use bigint */),\n      },\n      {\n        id: 'min',\n        humanLabel: 'minimum',\n        HumanLabel: 'Minimum',\n        isSuitableType: isNumberLike,\n        // Subql fix: The ::text cast is to ensure that the result is a string, which is\n        sqlAggregateWrap: (sqlFrag) => sql.fragment`min(${sqlFrag})::text`,\n      },\n      {\n        id: 'max',\n        humanLabel: 'maximum',\n        HumanLabel: 'Maximum',\n        isSuitableType: isNumberLike,\n        // Subql fix: The ::text cast is to ensure that the result is a string, which is\n        sqlAggregateWrap: (sqlFrag) => sql.fragment`max(${sqlFrag})::text`,\n      },\n      {\n        id: 'average',\n        humanLabel: 'mean average',\n        HumanLabel: 'Mean average',\n        isSuitableType: isNumberLike,\n        // Subql fix: The ::text cast is to ensure that the result is a string, which is\n        sqlAggregateWrap: (sqlFrag) => sql.fragment`avg(${sqlFrag})::text`,\n        // An AVG(...) ends up more precise than any individual value; see\n        // https://www.postgresql.org/docs/current/functions-aggregate.html for\n        // how the avg aggregate changes result type.\n        pgTypeAndModifierModifier: convertWithMapAndFallback(\n          {\n            [SMALLINT_OID]: NUMERIC_OID,\n            [INTEGER_OID]: NUMERIC_OID,\n            [BIGINT_OID]: NUMERIC_OID,\n            [NUMERIC_OID]: NUMERIC_OID,\n            [REAL_OID]: DOUBLE_PRECISION_OID,\n            [DOUBLE_PRECISION_OID]: DOUBLE_PRECISION_OID,\n            [INTERVAL_OID]: INTERVAL_OID,\n          },\n          '1700' /* numeric */\n        ),\n      },\n      {\n        id: 'stddevSample',\n        humanLabel: 'sample standard deviation',\n        HumanLabel: 'Sample standard deviation',\n        isSuitableType: isNumberLike,\n        sqlAggregateWrap: (sqlFrag) => sql.fragment`stddev_samp(${sqlFrag})`,\n        // See https://www.postgresql.org/docs/current/functions-aggregate.html\n        // for how this aggregate changes result type.\n        pgTypeAndModifierModifier: convertWithMapAndFallback(\n          {\n            [REAL_OID]: DOUBLE_PRECISION_OID,\n            [DOUBLE_PRECISION_OID]: DOUBLE_PRECISION_OID,\n          },\n          NUMERIC_OID /* numeric */\n        ),\n      },\n      {\n        id: 'stddevPopulation',\n        humanLabel: 'population standard deviation',\n        HumanLabel: 'Population standard deviation',\n        isSuitableType: isNumberLike,\n        sqlAggregateWrap: (sqlFrag) => sql.fragment`stddev_pop(${sqlFrag})`,\n        // See https://www.postgresql.org/docs/current/functions-aggregate.html\n        // for how this aggregate changes result type.\n        pgTypeAndModifierModifier: convertWithMapAndFallback(\n          {\n            [REAL_OID]: DOUBLE_PRECISION_OID,\n            [DOUBLE_PRECISION_OID]: DOUBLE_PRECISION_OID,\n          },\n          NUMERIC_OID /* numeric */\n        ),\n      },\n      {\n        id: 'varianceSample',\n        humanLabel: 'sample variance',\n        HumanLabel: 'Sample variance',\n        isSuitableType: isNumberLike,\n        sqlAggregateWrap: (sqlFrag) => sql.fragment`var_samp(${sqlFrag})`,\n        // See https://www.postgresql.org/docs/current/functions-aggregate.html\n        // for how this aggregate changes result type.\n        pgTypeAndModifierModifier: convertWithMapAndFallback(\n          {\n            [REAL_OID]: DOUBLE_PRECISION_OID,\n            [DOUBLE_PRECISION_OID]: DOUBLE_PRECISION_OID,\n          },\n          NUMERIC_OID /* numeric */\n        ),\n      },\n      {\n        id: 'variancePopulation',\n        humanLabel: 'population variance',\n        HumanLabel: 'Population variance',\n        isSuitableType: isNumberLike,\n        sqlAggregateWrap: (sqlFrag) => sql.fragment`var_pop(${sqlFrag})`,\n        // See https://www.postgresql.org/docs/current/functions-aggregate.html\n        // for how this aggregate changes result type.\n        pgTypeAndModifierModifier: convertWithMapAndFallback(\n          {\n            [REAL_OID]: DOUBLE_PRECISION_OID,\n            [DOUBLE_PRECISION_OID]: DOUBLE_PRECISION_OID,\n          },\n          NUMERIC_OID /* numeric */\n        ),\n      },\n    ];\n    const pgAggregateGroupBySpecs = [\n      {\n        id: 'truncated-to-hour',\n        isSuitableType: (pgType) =>\n          /* timestamp or timestamptz */\n          pgType.id === TIMESTAMP_OID || pgType.id === TIMESTAMPTZ_OID,\n        sqlWrap: (sqlFrag) => sql.fragment`date_trunc('hour', ${sqlFrag})`,\n      },\n      {\n        id: 'truncated-to-day',\n        isSuitableType: (pgType) =>\n          /* timestamp or timestamptz */\n          pgType.id === TIMESTAMP_OID || pgType.id === TIMESTAMPTZ_OID,\n        sqlWrap: (sqlFrag) => sql.fragment`date_trunc('day', ${sqlFrag})`,\n      },\n    ];\n    return build.extend(build, {\n      pgAggregateSpecs,\n      pgAggregateGroupBySpecs,\n    });\n  });\n};\nexport default AggregateSpecsPlugin;\n//# sourceMappingURL=AggregateSpecsPlugin.js.map\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgAggregationPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport AddAggregateTypesPlugin from '@graphile/pg-aggregates/dist/AddAggregateTypesPlugin';\nimport AddConnectionAggregatesPlugin from '@graphile/pg-aggregates/dist/AddConnectionAggregatesPlugin';\nimport AddConnectionGroupedAggregatesPlugin from '@graphile/pg-aggregates/dist/AddConnectionGroupedAggregatesPlugin';\nimport AddGroupByAggregateEnumsPlugin from '@graphile/pg-aggregates/dist/AddGroupByAggregateEnumsPlugin';\nimport AddGroupByAggregateEnumValuesForColumnsPlugin from '@graphile/pg-aggregates/dist/AddGroupByAggregateEnumValuesForColumnsPlugin';\nimport AddHavingAggregateTypesPlugin from '@graphile/pg-aggregates/dist/AddHavingAggregateTypesPlugin';\nimport FilterRelationalAggregatesPlugin from '@graphile/pg-aggregates/dist/FilterRelationalAggregatesPlugin';\nimport InflectionPlugin from '@graphile/pg-aggregates/dist/InflectionPlugin';\nimport {AggregateSpec, AggregateGroupBySpec} from '@graphile/pg-aggregates/dist/interfaces';\n\nimport type {Plugin} from 'graphile-build';\nimport {makePluginByCombiningPlugins} from 'graphile-utils';\nimport {argv} from '../../yargs';\nimport AggregateSpecsPlugin from './PgAggregateSpecsPlugin';\nimport OrderByAggregatesPlugin from './PgOrderByAggregatesPlugin';\n\nconst aggregate = argv('aggregate') as boolean;\n\n// overwrite the official plugin: https://github.com/graphile/pg-aggregates/blob/main/src/AggregateSpecsPlugin.ts\n// Removes all aggregation functions when not using --aggregate flag.\n\nconst AggregateSpecsPluginSafe: Plugin = (builder) => {\n  builder.hook('build', (build) => {\n    const pgAggregateSpecs: AggregateSpec[] = [];\n    const pgAggregateGroupBySpecs: AggregateGroupBySpec[] = [];\n\n    return build.extend(build, {\n      pgAggregateSpecs,\n      pgAggregateGroupBySpecs,\n    });\n  });\n};\n\nconst plugins = [\n  InflectionPlugin,\n  AddGroupByAggregateEnumsPlugin,\n  AddGroupByAggregateEnumValuesForColumnsPlugin,\n  AddHavingAggregateTypesPlugin,\n  AddAggregateTypesPlugin,\n  AddConnectionAggregatesPlugin,\n  AddConnectionGroupedAggregatesPlugin,\n  OrderByAggregatesPlugin,\n  FilterRelationalAggregatesPlugin,\n];\n\nlet PgAggregationPlugin: Plugin;\n\nif (aggregate) {\n  PgAggregationPlugin = makePluginByCombiningPlugins(...plugins, AggregateSpecsPlugin);\n} else {\n  PgAggregationPlugin = makePluginByCombiningPlugins(...plugins, AggregateSpecsPluginSafe);\n}\n\nexport default PgAggregationPlugin;\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgBackwardRelationPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// overwrite the official plugin: https://github.com/graphile/graphile-engine/blob/v4/packages/graphile-build-pg/src/plugins/PgBackwardRelationPlugin.js\n// fix the one to one relationship unique key check\n\nimport debugFactory from 'debug';\n\nconst debug = debugFactory('@subql/x-graphile-build-pg');\n\nconst OMIT = 0;\nconst DEPRECATED = 1;\nconst ONLY = 2;\n\nexport default function (builder, {pgLegacyRelations, pgSimpleCollections, subscriptions}) {\n  const legacyRelationMode =\n    {\n      only: ONLY,\n      deprecated: DEPRECATED,\n    }[pgLegacyRelations] || OMIT;\n  builder.hook(\n    'GraphQLObjectType:fields',\n    (fields, build, context) => {\n      const {\n        describePgEntity,\n        extend,\n        getSafeAliasFromAlias,\n        getSafeAliasFromResolveInfo,\n        getTypeByName,\n        graphql: {GraphQLList, GraphQLNonNull},\n        inflection,\n        pgAddStartEndCursor: addStartEndCursor,\n        pgGetGqlTypeByTypeIdAndModifier,\n        pgIntrospectionResultsByKind: introspectionResultsByKind,\n        pgOmit: omit,\n        pgQueryFromResolveData: queryFromResolveData,\n        pgSql: sql,\n        sqlCommentByAddingTags,\n      } = build;\n      const {\n        Self,\n        fieldWithHooks,\n        scope: {isPgRowType, pgIntrospection: foreignTable},\n      } = context;\n      if (!isPgRowType || !foreignTable || foreignTable.kind !== 'class') {\n        return fields;\n      }\n      // This is a relation in which WE are foreign\n      const foreignKeyConstraints = foreignTable.foreignConstraints.filter((con) => con.type === 'f');\n      const foreignTableTypeName = inflection.tableType(foreignTable);\n      const gqlForeignTableType = pgGetGqlTypeByTypeIdAndModifier(foreignTable.type.id, null);\n      if (!gqlForeignTableType) {\n        debug(`Could not determine type for foreign table with id ${foreignTable.type.id}`);\n        return fields;\n      }\n\n      return extend(\n        fields,\n        // eslint-disable-next-line complexity\n        foreignKeyConstraints.reduce((memo, constraint) => {\n          if (omit(constraint, 'read')) {\n            return memo;\n          }\n          const table = introspectionResultsByKind.classById[constraint.classId];\n          if (!table) {\n            throw new Error(`Could not find the table that referenced us (constraint: ${constraint.name})`);\n          }\n          if (!table.isSelectable) {\n            // Could be a composite type\n            return memo;\n          }\n          const tableTypeName = inflection.tableType(table);\n          const gqlTableType = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);\n          if (!gqlTableType) {\n            debug(`Could not determine type for table with id ${constraint.classId}`);\n            return memo;\n          }\n          const schema = table.namespace;\n\n          const keys = constraint.keyAttributes;\n          const foreignKeys = constraint.foreignKeyAttributes;\n          if (!keys.every((_) => _) || !foreignKeys.every((_) => _)) {\n            throw new Error('Could not find key columns!');\n          }\n          if (keys.some((key) => omit(key, 'read'))) {\n            return memo;\n          }\n          if (foreignKeys.some((key) => omit(key, 'read'))) {\n            return memo;\n          }\n          const isUnique = !!table.constraints.find(\n            (c) =>\n              (c.type === 'p' || c.type === 'f') &&\n              c.keyAttributeNums.length === keys.length &&\n              c.keyAttributeNums.every((n, i) => keys[i].num === n && keys[i].isUnique)\n          );\n\n          const isDeprecated = isUnique && legacyRelationMode === DEPRECATED;\n\n          const singleRelationFieldName = isUnique\n            ? inflection.singleRelationByKeysBackwards(keys, table, foreignTable, constraint)\n            : null;\n\n          const primaryKeyConstraint = table.primaryKeyConstraint;\n          const primaryKeys = primaryKeyConstraint && primaryKeyConstraint.keyAttributes;\n\n          const shouldAddSingleRelation = isUnique && legacyRelationMode !== ONLY;\n\n          const shouldAddManyRelation = !isUnique || legacyRelationMode === DEPRECATED || legacyRelationMode === ONLY;\n\n          if (shouldAddSingleRelation && !omit(table, 'read') && singleRelationFieldName) {\n            memo = extend(\n              memo,\n              {\n                [singleRelationFieldName]: fieldWithHooks(\n                  singleRelationFieldName,\n                  ({addDataGenerator, getDataFromParsedResolveInfoFragment}) => {\n                    const sqlFrom = sql.identifier(schema.name, table.name);\n                    addDataGenerator((parsedResolveInfoFragment) => {\n                      return {\n                        pgQuery: (queryBuilder) => {\n                          queryBuilder.select(() => {\n                            const resolveData = getDataFromParsedResolveInfoFragment(\n                              parsedResolveInfoFragment,\n                              gqlTableType\n                            );\n                            const tableAlias = sql.identifier(Symbol());\n                            const foreignTableAlias = queryBuilder.getTableAlias();\n                            const query = queryFromResolveData(\n                              sqlFrom,\n                              tableAlias,\n                              resolveData,\n                              {\n                                useAsterisk: false, // Because it's only a single relation, no need\n                                asJson: true,\n                                addNullCase: true,\n                                withPagination: false,\n                              },\n                              (innerQueryBuilder) => {\n                                innerQueryBuilder.parentQueryBuilder = queryBuilder;\n                                if (subscriptions && table.primaryKeyConstraint) {\n                                  innerQueryBuilder.selectIdentifiers(table);\n                                  innerQueryBuilder.makeLiveCollection(table);\n                                  innerQueryBuilder.addLiveCondition(\n                                    (data) => (record) => {\n                                      return keys.every((key) => record[key.name] === data[key.name]);\n                                    },\n                                    keys.reduce((memo, key, i) => {\n                                      memo[key.name] = sql.fragment`${foreignTableAlias}.${sql.identifier(\n                                        foreignKeys[i].name\n                                      )}`;\n                                      return memo;\n                                    }, {})\n                                  );\n                                }\n                                keys.forEach((key, i) => {\n                                  innerQueryBuilder.where(\n                                    sql.fragment`${tableAlias}.${sql.identifier(\n                                      key.name\n                                    )} = ${foreignTableAlias}.${sql.identifier(foreignKeys[i].name)}`\n                                  );\n                                });\n                              },\n                              queryBuilder.context,\n                              queryBuilder.rootValue\n                            );\n                            return sql.fragment`(${query})`;\n                          }, getSafeAliasFromAlias(parsedResolveInfoFragment.alias));\n                        },\n                      };\n                    });\n                    return {\n                      description:\n                        constraint.tags.backwardDescription ||\n                        build.wrapDescription(\n                          `Reads a single \\`${tableTypeName}\\` that is related to this \\`${foreignTableTypeName}\\`.`,\n                          'field'\n                        ),\n                      type: gqlTableType,\n                      args: {},\n                      resolve: (data, _args, resolveContext, resolveInfo) => {\n                        const safeAlias = getSafeAliasFromResolveInfo(resolveInfo);\n                        const record = data[safeAlias];\n                        const liveRecord = resolveInfo.rootValue && resolveInfo.rootValue.liveRecord;\n                        const liveCollection = resolveInfo.rootValue && resolveInfo.rootValue.liveCollection;\n                        const liveConditions = resolveInfo.rootValue && resolveInfo.rootValue.liveConditions;\n                        if (subscriptions && liveCollection && liveConditions && data.__live) {\n                          const {__id, ...rest} = data.__live;\n                          const condition = liveConditions[__id];\n                          const checker = condition(rest);\n\n                          liveCollection('pg', table, checker);\n                        }\n                        if (record && liveRecord) {\n                          liveRecord('pg', table, record.__identifiers);\n                        }\n                        return record;\n                      },\n                    };\n                  },\n                  {\n                    pgFieldIntrospection: table,\n                    isPgBackwardSingleRelationField: true,\n                  }\n                ),\n              },\n              `Backward relation (single) for ${describePgEntity(\n                constraint\n              )}. To rename this relation with a 'Smart Comment':\\n\\n  ${sqlCommentByAddingTags(constraint, {\n                foreignSingleFieldName: 'newNameHere',\n              })}`\n            );\n          }\n\n          function makeFields(isConnection) {\n            const manyRelationFieldName = isConnection\n              ? inflection.manyRelationByKeys(keys, table, foreignTable, constraint)\n              : inflection.manyRelationByKeysSimple(keys, table, foreignTable, constraint);\n\n            memo = extend(\n              memo,\n              {\n                [manyRelationFieldName]: fieldWithHooks(\n                  manyRelationFieldName,\n                  ({addDataGenerator, getDataFromParsedResolveInfoFragment}) => {\n                    const sqlFrom = sql.identifier(schema.name, table.name);\n                    const queryOptions = {\n                      useAsterisk: table.canUseAsterisk,\n                      withPagination: isConnection,\n                      withPaginationAsFields: false,\n                      asJsonAggregate: !isConnection,\n                    };\n                    addDataGenerator((parsedResolveInfoFragment) => {\n                      return {\n                        pgQuery: (queryBuilder) => {\n                          queryBuilder.select(() => {\n                            const resolveData = getDataFromParsedResolveInfoFragment(\n                              parsedResolveInfoFragment,\n                              isConnection ? ConnectionType : TableType\n                            );\n                            const tableAlias = sql.identifier(Symbol());\n                            const foreignTableAlias = queryBuilder.getTableAlias();\n                            const query = queryFromResolveData(\n                              sqlFrom,\n                              tableAlias,\n                              resolveData,\n                              queryOptions,\n                              (innerQueryBuilder) => {\n                                innerQueryBuilder.parentQueryBuilder = queryBuilder;\n                                if (subscriptions) {\n                                  innerQueryBuilder.makeLiveCollection(table);\n                                  innerQueryBuilder.addLiveCondition(\n                                    (data) => (record) => {\n                                      return keys.every((key) => record[key.name] === data[key.name]);\n                                    },\n                                    keys.reduce((memo, key, i) => {\n                                      memo[key.name] = sql.fragment`${foreignTableAlias}.${sql.identifier(\n                                        foreignKeys[i].name\n                                      )}`;\n                                      return memo;\n                                    }, {})\n                                  );\n                                }\n                                if (primaryKeys) {\n                                  if (subscriptions && !isConnection && table.primaryKeyConstraint) {\n                                    innerQueryBuilder.selectIdentifiers(table);\n                                  }\n                                  innerQueryBuilder.beforeLock('orderBy', () => {\n                                    // append order by primary key to the list of orders\n                                    if (!innerQueryBuilder.isOrderUnique(false)) {\n                                      innerQueryBuilder.data.cursorPrefix = ['primary_key_asc'];\n                                      primaryKeys.forEach((key) => {\n                                        innerQueryBuilder.orderBy(\n                                          sql.fragment`${innerQueryBuilder.getTableAlias()}.${sql.identifier(\n                                            key.name\n                                          )}`,\n                                          true\n                                        );\n                                      });\n                                      innerQueryBuilder.setOrderIsUnique();\n                                    }\n                                  });\n                                }\n\n                                keys.forEach((key, i) => {\n                                  innerQueryBuilder.where(\n                                    sql.fragment`${tableAlias}.${sql.identifier(\n                                      key.name\n                                    )} = ${foreignTableAlias}.${sql.identifier(foreignKeys[i].name)}`\n                                  );\n                                });\n                              },\n                              queryBuilder.context,\n                              queryBuilder.rootValue\n                            );\n                            return sql.fragment`(${query})`;\n                          }, getSafeAliasFromAlias(parsedResolveInfoFragment.alias));\n                        },\n                      };\n                    });\n                    const ConnectionType = getTypeByName(inflection.connection(gqlTableType.name));\n                    const TableType = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);\n                    return {\n                      description:\n                        constraint.tags.backwardDescription ||\n                        build.wrapDescription(\n                          `Reads and enables pagination through a set of \\`${tableTypeName}\\`.`,\n                          'field'\n                        ),\n                      type: isConnection\n                        ? new GraphQLNonNull(ConnectionType)\n                        : new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(TableType))),\n                      args: {},\n                      resolve: (data, _args, resolveContext, resolveInfo) => {\n                        const safeAlias = getSafeAliasFromResolveInfo(resolveInfo);\n                        const liveCollection = resolveInfo.rootValue && resolveInfo.rootValue.liveCollection;\n                        const liveConditions = resolveInfo.rootValue && resolveInfo.rootValue.liveConditions;\n                        if (subscriptions && liveCollection && liveConditions && data.__live) {\n                          const {__id, ...rest} = data.__live;\n                          const condition = liveConditions[__id];\n                          const checker = condition(rest);\n\n                          liveCollection('pg', table, checker);\n                        }\n                        if (isConnection) {\n                          return addStartEndCursor(data[safeAlias]);\n                        } else {\n                          const records = data[safeAlias];\n                          const liveRecord = resolveInfo.rootValue && resolveInfo.rootValue.liveRecord;\n                          if (primaryKeys && subscriptions && liveRecord) {\n                            records.forEach((r) => r && r.__identifiers && liveRecord('pg', table, r.__identifiers));\n                          }\n                          return records;\n                        }\n                      },\n                      ...(isDeprecated\n                        ? {\n                            deprecationReason: singleRelationFieldName\n                              ? `Please use ${singleRelationFieldName} instead`\n                              : `Please use singular instead`, // This should never happen\n                          }\n                        : null),\n                    };\n                  },\n                  {\n                    isPgFieldConnection: isConnection,\n                    isPgFieldSimpleCollection: !isConnection,\n                    isPgBackwardRelationField: true,\n                    pgFieldIntrospection: table,\n                  }\n                ),\n              },\n\n              `Backward relation (${isConnection ? 'connection' : 'simple collection'}) for ${describePgEntity(\n                constraint\n              )}. To rename this relation with a 'Smart Comment':\\n\\n  ${sqlCommentByAddingTags(constraint, {\n                [isConnection ? 'foreignFieldName' : 'foreignSimpleFieldName']: 'newNameHere',\n              })}`\n            );\n          }\n\n          if (shouldAddManyRelation && !omit(table, 'many') && !omit(constraint, 'many')) {\n            const simpleCollections =\n              constraint.tags.simpleCollections || table.tags.simpleCollections || pgSimpleCollections;\n            const hasConnections = simpleCollections !== 'only';\n            const hasSimpleCollections = simpleCollections === 'only' || simpleCollections === 'both';\n            if (hasConnections) {\n              makeFields(true);\n            }\n            if (\n              hasSimpleCollections &&\n              !isUnique // if unique, use the singular instead\n            ) {\n              makeFields(false);\n            }\n          }\n          return memo;\n        }, {}),\n        `Adding backward relations for ${Self.name}`\n      );\n    },\n    ['PgBackwardRelation']\n  );\n}\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgConnectionArgFirstLastBeforeAfter.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// overwrite the official plugin: https://github.com/graphile/graphile-engine/blob/v4/packages/graphile-build-pg/src/plugins/PgConnectionArgFirstLastBeforeAfter.js\n// to support max record rewrite, which to prevent the db performance issue.\n\nimport {QueryBuilder} from '@subql/x-graphile-build-pg';\nimport {argv} from '../../yargs';\n\nconst base64Decode = (str) => Buffer.from(String(str), 'base64').toString('utf8');\n\nexport default (builder) => {\n  builder.hook(\n    'GraphQLObjectType:fields:field:args',\n    (args, build, context) => {\n      const {\n        extend,\n        getTypeByName,\n        graphql: {GraphQLInt},\n      } = build;\n      const {\n        Self,\n        addArgDataGenerator,\n        scope: {fieldName, isPgFieldConnection, isPgFieldSimpleCollection, pgFieldIntrospection: source},\n      } = context;\n      const unsafe = argv('unsafe') as boolean;\n      const safeClamp = (x: number) => Math.min(x, argv('query-limit') as number);\n\n      if (\n        !(isPgFieldConnection || isPgFieldSimpleCollection) ||\n        !source ||\n        (source.kind !== 'class' && source.kind !== 'procedure')\n      ) {\n        return args;\n      }\n      const Cursor = getTypeByName('Cursor');\n\n      addArgDataGenerator(function connectionFirstLastBeforeAfter({after, before, first, last, offset}) {\n        return {\n          pgQuery: (queryBuilder: QueryBuilder) => {\n            if (!first && !last && !unsafe) {\n              queryBuilder.first(argv('query-limit') as number);\n            }\n            if (first) {\n              first = safeClamp(first);\n              queryBuilder.first(first);\n            }\n            if (offset) {\n              queryBuilder.offset(offset);\n            }\n            if (isPgFieldConnection) {\n              if (after) {\n                addCursorConstraint(after, true);\n              }\n              if (before) {\n                addCursorConstraint(before, false);\n              }\n              if (last) {\n                if (first) {\n                  throw new Error(\"We don't support setting both first and last\");\n                }\n                if (offset) {\n                  throw new Error(\"We don't support setting both offset and last\");\n                }\n                last = safeClamp(last);\n                queryBuilder.last(last);\n              }\n            }\n\n            function addCursorConstraint(cursor, isAfter) {\n              try {\n                const cursorValues = JSON.parse(base64Decode(cursor));\n                return queryBuilder.addCursorCondition(cursorValues, isAfter);\n              } catch (e) {\n                throw new Error('Invalid cursor, please enter a cursor from a previous request, or null.');\n              }\n            }\n          },\n        };\n      });\n\n      return extend(\n        args,\n        {\n          first: {\n            description: build.wrapDescription('Only read the first `n` values of the set.', 'arg'),\n            type: GraphQLInt,\n          },\n          ...(isPgFieldConnection\n            ? {\n                last: {\n                  description: build.wrapDescription('Only read the last `n` values of the set.', 'arg'),\n                  type: GraphQLInt,\n                },\n              }\n            : null),\n          offset: {\n            description: build.wrapDescription(\n              isPgFieldConnection\n                ? 'Skip the first `n` values from our `after` cursor, an alternative to cursor based pagination. May not be used with `last`.'\n                : 'Skip the first `n` values.',\n              'arg'\n            ),\n            type: GraphQLInt,\n          },\n          ...(isPgFieldConnection\n            ? {\n                before: {\n                  description: build.wrapDescription('Read all values in the set before (above) this cursor.', 'arg'),\n                  type: Cursor,\n                },\n                after: {\n                  description: build.wrapDescription('Read all values in the set after (below) this cursor.', 'arg'),\n                  type: Cursor,\n                },\n              }\n            : null),\n        },\n        isPgFieldConnection\n          ? `Adding connection pagination args to field '${fieldName}' of '${Self.name}'`\n          : `Adding simple collection args to field '${fieldName}' of '${Self.name}'`\n      );\n    },\n    ['PgConnectionArgFirstLastBeforeAfter']\n  );\n};\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgDistinctPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {PgClass, QueryBuilder} from '@subql/x-graphile-build-pg';\nimport {Build, Plugin} from 'graphile-build';\nimport type {GraphQLEnumType} from 'graphql';\nimport * as PgSql from 'pg-sql2';\nimport {SQLNode} from 'pg-sql2';\nimport {argv} from '../../yargs';\n\ntype Extend = <T1, T2>(base: T1, extra: T2, hint?: string) => T1 & T2;\n\nconst getEnumName = (entityName: string): string => {\n  return `${entityName}_distinct_enum`;\n};\n\nexport const PgDistinctPlugin: Plugin = (builder) => {\n  // Creates enums for each entity based on their fields\n  builder.hook(\n    'init',\n    (args, build) => {\n      const {\n        graphql: {GraphQLEnumType},\n        newWithHooks,\n        pgIntrospectionResultsByKind,\n      } = build;\n\n      pgIntrospectionResultsByKind.class.forEach((cls: PgClass) => {\n        if (!cls.isSelectable || build.pgOmit(cls, 'order')) return;\n        if (!cls.namespace) return;\n\n        const enumTypeName = getEnumName(cls.name);\n\n        const entityEnumValues: Record<string, {value: number}> = {};\n        cls?.attributes?.forEach((attr, index) => {\n          if (attr.name.indexOf('_') !== 0) {\n            entityEnumValues[attr.name.toUpperCase()] = {value: index};\n          }\n        });\n\n        newWithHooks(\n          GraphQLEnumType,\n          {\n            name: enumTypeName,\n            values: entityEnumValues,\n          },\n          {\n            __origin: `Adding connection \"distinct\" enum type for ${cls.name}.`,\n            pgIntrospection: cls,\n          },\n          true\n        );\n      });\n\n      return args;\n    },\n    ['AddDistinctEnumsPlugin']\n  );\n\n  // Extends schema and modifies the query\n  builder.hook(\n    'GraphQLObjectType:fields:field:args',\n    (args, build, {addArgDataGenerator, scope: {pgFieldIntrospection}}) => {\n      const {\n        extend,\n        graphql: {GraphQLList},\n        pgSql: sql,\n      } = build as Build & {extend: Extend; pgSql: typeof PgSql};\n\n      const enumTypeName = getEnumName(pgFieldIntrospection?.name);\n      const enumType = build.getTypeByName(enumTypeName) as GraphQLEnumType;\n\n      if (!enumType) {\n        return args;\n      }\n\n      addArgDataGenerator(({distinct}) => ({\n        pgQuery: (queryBuilder: QueryBuilder) => {\n          distinct?.map((field: number) => {\n            const {name} = enumType.getValues()[field];\n            const fieldName = name.toLowerCase();\n            if (!pgFieldIntrospection?.attributes?.map((a) => a.name).includes(fieldName)) {\n              console.warn(`Distinct field ${fieldName} doesn't exist on entity ${pgFieldIntrospection?.name}`);\n\n              return;\n            }\n            //export declare type SQL = SQLNode | SQLQuery;\n            const id = sql.fragment`${queryBuilder.getTableAlias() as unknown as SQLNode}.${sql.identifier(fieldName)}`;\n\n            // Dependent on https://github.com/graphile/graphile-engine/pull/805\n            (queryBuilder as any).distinctOn(id);\n\n            // set BlockHeight as orderBy key, as by default it uses primaryKey (This will speed up the query speed of dictionaries)\n            if (argv('dictionary-optimisation')) {\n              queryBuilder.setOrderIsUnique();\n            }\n          });\n        },\n      }));\n\n      return extend(\n        args,\n        {\n          distinct: {\n            description: 'Fields to be distinct',\n            defaultValue: null,\n            type: new GraphQLList(enumType),\n          },\n        },\n        'DistinctPlugin'\n      );\n    }\n  );\n};\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgOrderByAggregatesPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n/* WARNING\n * This is a fork of https://github.com/graphile/pg-aggregates/blob/c8dd0f951663d5dacde21da26f3b94b62dc296c5/src/OrderByAggregatesPlugin.ts\n * The only modification is to filter out `_id` and `_block_height` attributes to fix a naming conflict\n */\n\nimport {AggregateSpec} from '@graphile/pg-aggregates/dist/interfaces';\nimport type {SQL, QueryBuilder, PgClass, PgEntity} from '@subql/x-graphile-build-pg';\nimport type {Plugin} from 'graphile-build';\nimport {hasBlockRange, makeRangeQuery} from './historical/utils';\n\ntype OrderBySpecIdentity = string | SQL | ((options: {queryBuilder: QueryBuilder}) => SQL);\n\ntype OrderSpec = [OrderBySpecIdentity, boolean] | [OrderBySpecIdentity, boolean, boolean];\nexport interface OrderSpecs {\n  [orderByEnumValue: string]: {\n    value: {\n      alias?: string;\n      specs: Array<OrderSpec>;\n      unique: boolean;\n    };\n  };\n}\n\nconst OrderByAggregatesPlugin: Plugin = (builder) => {\n  builder.hook('GraphQLEnumType:values', (values, build, context) => {\n    const {\n      extend,\n      inflection,\n      pgIntrospectionResultsByKind: introspectionResultsByKind,\n      pgOmit: omit,\n      pgSql: sql,\n    } = build;\n    const pgAggregateSpecs: AggregateSpec[] = build.pgAggregateSpecs;\n    const {\n      scope: {isPgRowSortEnum},\n    } = context;\n\n    const pgIntrospection: PgEntity | undefined = context.scope.pgIntrospection;\n\n    if (!isPgRowSortEnum || !pgIntrospection || pgIntrospection.kind !== 'class') {\n      return values;\n    }\n\n    const foreignTable: PgClass = pgIntrospection;\n\n    const foreignKeyConstraints = foreignTable.foreignConstraints.filter((con) => con.type === 'f');\n\n    const newValues = foreignKeyConstraints.reduce((memo, constraint) => {\n      if (omit(constraint, 'read')) {\n        return memo;\n      }\n      const table: PgClass | undefined = introspectionResultsByKind.classById[constraint.classId];\n      if (!table) {\n        throw new Error(`Could not find the table that referenced us (constraint: ${constraint.name})`);\n      }\n      const keys = constraint.keyAttributes;\n      const foreignKeys = constraint.foreignKeyAttributes;\n      if (!keys.every((_) => _) || !foreignKeys.every((_) => _)) {\n        throw new Error('Could not find key columns!');\n      }\n      if (keys.some((key) => omit(key, 'read'))) {\n        return memo;\n      }\n      if (foreignKeys.some((key) => omit(key, 'read'))) {\n        return memo;\n      }\n      const isUnique = !!table.constraints.find(\n        (c) =>\n          (c.type === 'p' || c.type === 'u') &&\n          c.keyAttributeNums.length === keys.length &&\n          c.keyAttributeNums.every((n, i) => keys[i].num === n)\n      );\n      if (isUnique) {\n        // No point aggregating over a relation that's unique\n        return memo;\n      }\n\n      const tableAlias = sql.identifier(Symbol(`${foreignTable.namespaceName}.${foreignTable.name}`));\n\n      const supportsHistorical = hasBlockRange(pgIntrospection);\n      const buildConditions = (queryBuilder: QueryBuilder): SQL[] => {\n        const foreignTableAlias = queryBuilder.getTableAlias();\n        const conditions: SQL[] = [];\n        keys.forEach((key, i) => {\n          conditions.push(\n            sql.fragment`${tableAlias}.${sql.identifier(key.name)} = ${foreignTableAlias}.${sql.identifier(\n              foreignKeys[i].name\n            )}`\n          );\n        });\n\n        if (queryBuilder.context.args?.blockHeight && supportsHistorical) {\n          conditions.push(makeRangeQuery(tableAlias, queryBuilder.context.args.blockHeight, sql));\n        }\n\n        return conditions;\n      };\n\n      // Add count\n      memo = build.extend(\n        memo,\n        orderByAscDesc(\n          inflection.orderByCountOfManyRelationByKeys(keys, table, foreignTable, constraint),\n          ({queryBuilder}) => {\n            const conditions = buildConditions(queryBuilder);\n            return sql.fragment`(select count(*) from ${sql.identifier(\n              table.namespaceName,\n              table.name\n            )} ${tableAlias} where (${sql.join(conditions, ' AND ')}))`;\n          },\n          false\n        ),\n        `Adding orderBy count to '${foreignTable.namespaceName}.${foreignTable.name}' using constraint '${constraint.name}'`\n      );\n\n      // Filter out attributes relating to historical. This was causing conflicts with `id` and `_id`\n      const attributes = table.attributes.filter((attr) => attr.name !== '_id' && attr.name !== '_block_height');\n\n      // Add other aggregates\n      pgAggregateSpecs.forEach((spec) => {\n        attributes.forEach((attr) => {\n          memo = build.extend(\n            memo,\n            orderByAscDesc(\n              inflection.orderByColumnAggregateOfManyRelationByKeys(keys, table, foreignTable, constraint, spec, attr),\n              ({queryBuilder}) => {\n                const conditions = buildConditions(queryBuilder);\n\n                return sql.fragment`(select ${spec.sqlAggregateWrap(\n                  sql.fragment`${tableAlias}.${sql.identifier(attr.name)}`\n                )} from ${sql.identifier(table.namespaceName, table.name)} ${tableAlias} where (${sql.join(\n                  conditions,\n                  ' AND '\n                )}))`;\n              },\n              false\n            ),\n            `Adding orderBy ${spec.id} of '${attr.name}' to '${foreignTable.namespaceName}.${foreignTable.name}' using constraint '${constraint.name}'`\n          );\n        });\n      });\n\n      return memo;\n    }, {} as OrderSpecs);\n\n    return extend(values, newValues, `Adding aggregate orders to '${foreignTable.namespaceName}.${foreignTable.name}'`);\n  });\n};\n\nexport function orderByAscDesc(baseName: string, columnOrSqlFragment: OrderBySpecIdentity, unique = false): OrderSpecs {\n  return {\n    [`${baseName}_ASC`]: {\n      value: {\n        alias: `${baseName}_ASC`,\n        specs: [[columnOrSqlFragment, true]],\n        unique,\n      },\n    },\n    [`${baseName}_DESC`]: {\n      value: {\n        alias: `${baseName}_DESC`,\n        specs: [[columnOrSqlFragment, false]],\n        unique,\n      },\n    },\n  };\n}\n\nexport default OrderByAggregatesPlugin;\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgOrderByUnique.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {PgClass} from '@subql/x-graphile-build-pg';\nimport {Plugin} from 'graphile-build';\nimport {GraphQLEnumType} from 'graphql';\nimport isString from 'lodash/isString';\nimport * as PgSql from 'pg-sql2';\nimport {argv} from '../../yargs';\n\nconst PgConnectionArgOrderBy: Plugin = (builder, {orderByNullsLast}) => {\n  builder.hook(\n    'init',\n    (_, build) => {\n      const {\n        describePgEntity,\n        graphql: {GraphQLEnumType},\n        inflection,\n        newWithHooks,\n        pgIntrospectionResultsByKind: introspectionResultsByKind,\n        pgOmit: omit,\n        sqlCommentByAddingTags,\n      } = build;\n\n      introspectionResultsByKind.class.forEach((table: PgClass) => {\n        // PERFORMANCE: These used to be .filter(...) calls\n        if (!table.isSelectable || omit(table, 'order')) return;\n        if (!table.namespace) return;\n        const tableTypeName = inflection.tableType(table);\n        // const TableOrderByType =\n        newWithHooks(\n          GraphQLEnumType,\n          {\n            name: inflection.orderByType(tableTypeName),\n            description: build.wrapDescription(`Methods to use when ordering \\`${tableTypeName}\\`.`, 'type'),\n            values: {\n              [inflection.builtin('NATURAL')]: {\n                value: {\n                  alias: null,\n                  specs: [],\n                },\n              },\n            },\n          },\n          {\n            __origin: `Adding connection \"orderBy\" argument for ${describePgEntity(\n              table\n            )}. You can rename the table's GraphQL type via a 'Smart Comment':\\n\\n  ${sqlCommentByAddingTags(table, {\n              name: 'newNameHere',\n            })}`,\n            pgIntrospection: table,\n            isPgRowSortEnum: true,\n          }\n        );\n      });\n\n      return _;\n    },\n    ['PgConnectionArgOrderBy']\n  );\n\n  builder.hook(\n    'GraphQLObjectType:fields:field:args',\n    (args, build, context) => {\n      const {\n        extend,\n        getTypeByName,\n        graphql: {GraphQLList, GraphQLNonNull},\n        inflection,\n        pgGetGqlTypeByTypeIdAndModifier,\n        pgOmit: omit,\n        pgSql: sql,\n      } = build;\n      const {\n        Self,\n        addArgDataGenerator,\n        scope: {\n          fieldName,\n          isPgFieldConnection,\n          isPgFieldSimpleCollection,\n          pgFieldIntrospection,\n          pgFieldIntrospectionTable,\n        },\n      } = context;\n\n      if (!isPgFieldConnection && !isPgFieldSimpleCollection) {\n        return args;\n      }\n\n      const proc = pgFieldIntrospection.kind === 'procedure' ? pgFieldIntrospection : null;\n      const table: PgClass | null =\n        pgFieldIntrospection.kind === 'class' ? pgFieldIntrospection : proc ? pgFieldIntrospectionTable : null;\n\n      if (!table || !table.namespace || !table.isSelectable || omit(table, 'order')) {\n        return args;\n      }\n\n      if (proc) {\n        if (!proc.tags.sortable) {\n          return args;\n        }\n      }\n\n      const TableType = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);\n      const tableTypeName = TableType.name;\n      const TableOrderByType = getTypeByName(inflection.orderByType(tableTypeName)) as GraphQLEnumType;\n\n      const cursorPrefixFromOrderBy = (orderBy: any) => {\n        if (orderBy) {\n          const cursorPrefixes: PgSql.SQLNode[] = [];\n\n          for (let itemIndex = 0, itemCount = orderBy.length; itemIndex < itemCount; itemIndex++) {\n            const item = orderBy[itemIndex];\n\n            if (item.alias) {\n              cursorPrefixes.push(sql.literal(item.alias));\n            }\n          }\n\n          if (cursorPrefixes.length > 0) {\n            return cursorPrefixes;\n          }\n        }\n\n        return null;\n      };\n\n      addArgDataGenerator(function connectionOrderBy({orderBy: rawOrderBy, orderByNull}: any) {\n        const orderBy = rawOrderBy ? (Array.isArray(rawOrderBy) ? rawOrderBy : [rawOrderBy]) : null;\n        return {\n          pgCursorPrefix: cursorPrefixFromOrderBy(orderBy),\n          pgQuery: (queryBuilder) => {\n            if (orderBy !== null) {\n              orderBy.forEach((item) => {\n                const {specs, unique} = item;\n                const orders = Array.isArray(specs[0]) || specs.length === 0 ? specs : [specs];\n                orders.forEach(([col, ascending, specNullsFirst]) => {\n                  const expr = isString(col)\n                    ? sql.fragment`${queryBuilder.getTableAlias()}.${sql.identifier(col)}`\n                    : col;\n\n                  // If the enum specifies null ordering, use that\n                  // Otherwise, use the orderByNullsLast option if present\n                  // For Ordering By DESC -> NULL First is default behaviour.\n                  let nullsFirst;\n                  if (orderByNull !== null && orderByNull !== undefined) {\n                    nullsFirst = orderByNull === 'NULLS_FIRST';\n                  } else if (specNullsFirst !== null) {\n                    nullsFirst = specNullsFirst;\n                  } else if (orderByNullsLast !== null) {\n                    nullsFirst = !orderByNullsLast;\n                  } else {\n                    nullsFirst = undefined; // Leave it to the default behaviour\n                  }\n\n                  queryBuilder.orderBy(expr, ascending, nullsFirst);\n                });\n\n                if (argv('dictionary-optimisation') || unique) {\n                  queryBuilder.setOrderIsUnique();\n                }\n              });\n            }\n          },\n        };\n      });\n\n      return extend(\n        args,\n        {\n          orderBy: {\n            description: build.wrapDescription(`The method to use when ordering \\`${tableTypeName}\\`.`, 'arg'),\n            type: new GraphQLList(new GraphQLNonNull(TableOrderByType)),\n          },\n          orderByNull: {\n            description: 'Specify ordering of null values (NULLS_FIRST or NULLS_LAST).',\n            type: getTypeByName('NullOrder'),\n          },\n        },\n        `Adding 'orderBy' and 'orderByNull' arguments to field '${fieldName}' of '${Self.name}'`\n      );\n    },\n    ['PgConnectionArgOrderBy']\n  );\n\n  // Define the NullOrder enum\n  builder.hook('build', (build) => {\n    const {\n      graphql: {GraphQLEnumType},\n    } = build;\n\n    build.addType(\n      new GraphQLEnumType({\n        name: 'NullOrder',\n        description: 'Options for ordering null values in a specific direction.',\n        values: {\n          NULLS_FIRST: {\n            description: 'Order null values first.',\n            value: 'NULLS_FIRST',\n          },\n          NULLS_LAST: {\n            description: 'Order null values last.',\n            value: 'NULLS_LAST',\n          },\n        },\n      })\n    );\n\n    return build;\n  });\n};\n\nexport default PgConnectionArgOrderBy;\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgRowByVirtualIdPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Plugin} from 'graphile-build';\n\n// Copied from graphile-build-pg/node8plus/plugins/PgRowByUniqueConstraint.ts\n// Modified to overwrite hidden column _id primary key with id column\nexport const PgRowByVirtualIdPlugin: Plugin = (builder) => {\n  builder.hook('GraphQLObjectType:fields', (fields, build, context) => {\n    const {\n      extend,\n      gql2pg,\n      graphql: {GraphQLNonNull},\n      inflection,\n      parseResolveInfo,\n      pgGetGqlInputTypeByTypeIdAndModifier,\n      pgGetGqlTypeByTypeIdAndModifier,\n      pgIntrospectionResultsByKind: introspectionResultsByKind,\n      pgOmit: omit,\n      pgPrepareAndRun,\n      pgQueryFromResolveData: queryFromResolveData,\n      pgSql: sql,\n    } = build;\n    const {\n      fieldWithHooks,\n      scope: {isRootQuery},\n    } = context;\n\n    if (!isRootQuery) {\n      return fields;\n    }\n\n    return extend(\n      fields,\n      introspectionResultsByKind.class.reduce((memo, table) => {\n        if (!table.namespace) return memo;\n        if (omit(table, 'read')) return memo;\n\n        const TableType = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);\n        const sqlFullTableName = sql.identifier(table.namespace.name, table.name);\n        if (TableType) {\n          const uniqueConstraints = table.constraints.filter((con) => con.type === 'u' || con.type === 'p');\n          uniqueConstraints.forEach((constraint) => {\n            if (omit(constraint, 'read')) {\n              return;\n            }\n            const keys = constraint.keyAttributes;\n            // Only for _id primary key\n            if (keys.length !== 1 || keys[0].name !== '_id') {\n              return;\n            }\n            const fieldName = inflection.rowByUniqueKeys(keys, table, constraint);\n            // Find id column\n            const idColumn = table.attributes.find(({name}) => name === 'id');\n            if (!idColumn) {\n              return;\n            }\n            // Overwrite with id column\n            const keysIncludingMeta = [\n              {\n                ...idColumn,\n                sqlIdentifier: sql.identifier(idColumn.name),\n                columnName: inflection.column(idColumn),\n              },\n            ];\n            const queryFromResolveDataOptions = {\n              useAsterisk: false,\n            };\n            const queryFromResolveDataCallback = (queryBuilder, args) => {\n              const sqlTableAlias = queryBuilder.getTableAlias();\n              keysIncludingMeta.forEach(({columnName, sqlIdentifier, type, typeModifier}) => {\n                queryBuilder.where(\n                  sql.fragment`${sqlTableAlias}.${sqlIdentifier} = ${gql2pg(args[columnName], type, typeModifier)}`\n                );\n              });\n            };\n\n            memo[fieldName] = fieldWithHooks(\n              fieldName,\n              ({getDataFromParsedResolveInfoFragment}) => {\n                return {\n                  type: TableType,\n                  args: keysIncludingMeta.reduce((memo, {columnName, name, typeId, typeModifier}) => {\n                    const InputType = pgGetGqlInputTypeByTypeIdAndModifier(typeId, typeModifier);\n                    if (!InputType) {\n                      throw new Error(`Could not find input type for key '${name}' on type '${TableType.name}'`);\n                    }\n                    memo[columnName] = {\n                      type: new GraphQLNonNull(InputType),\n                    };\n                    return memo;\n                  }, {}),\n                  async resolve(parent, args, resolveContext, resolveInfo) {\n                    const {pgClient} = resolveContext;\n                    const parsedResolveInfoFragment = parseResolveInfo(resolveInfo);\n                    parsedResolveInfoFragment.args = args; // Allow overriding via makeWrapResolversPlugin\n                    const resolveData = getDataFromParsedResolveInfoFragment(parsedResolveInfoFragment, TableType);\n                    const query = queryFromResolveData(\n                      sqlFullTableName,\n                      undefined,\n                      resolveData,\n                      queryFromResolveDataOptions,\n                      (queryBuilder) => queryFromResolveDataCallback(queryBuilder, args),\n                      resolveContext,\n                      resolveInfo.rootValue\n                    );\n                    const {text, values} = sql.compile(query);\n                    const {\n                      rows: [row],\n                    } = await pgPrepareAndRun(pgClient, text, values);\n                    return row;\n                  },\n                };\n              },\n              {\n                isPgRowByUniqueConstraintField: true,\n                pgFieldIntrospection: constraint,\n              }\n            );\n          });\n        }\n        return memo;\n      }, {})\n    );\n  });\n};\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgSearchPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {PgEntity, PgEntityKind, PgProc} from '@subql/x-graphile-build-pg';\nimport {Plugin, Context} from 'graphile-build';\nimport {Tsquery} from 'pg-tsquery';\n\nconst parser = new Tsquery();\n\nfunction isProcedure(entity?: PgEntity): entity is PgProc {\n  return entity?.kind === PgEntityKind.PROCEDURE;\n}\n\nexport const PgSearchPlugin: Plugin = (builder) => {\n  // Sanitises the search argument for fulltext search using pg-tsquery\n  builder.hook('GraphQLObjectType:fields:field', (field, build, {scope: {pgFieldIntrospection}}: Context<any>) => {\n    if (isProcedure(pgFieldIntrospection) && pgFieldIntrospection.argNames.includes('search')) {\n      pgFieldIntrospection.tags.sortable = true;\n      return {\n        ...field,\n        resolve(source, args, ctx, info) {\n          if (args.search !== undefined) {\n            args.search = parser.parse(args.search)?.toString();\n          }\n          return field.resolve?.(source, args, ctx, info);\n        },\n      };\n    }\n\n    return field;\n  });\n};\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PgSubscriptionPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {hashName} from '@subql/utils';\nimport {PgIntrospectionResultsByKind} from '@subql/x-graphile-build-pg';\nimport {makeExtendSchemaPlugin, gql, embed, Resolvers} from 'graphile-utils';\nimport {DocumentNode} from 'graphql';\n\nconst filter = (event, args) => {\n  if (args.mutation && !args.mutation.includes(event.mutation_type)) {\n    return false;\n  }\n  if (args.id && !args.id.includes(event.id)) {\n    return false;\n  }\n  return true;\n};\n\nfunction makePayload(entityType: string): {type: DocumentNode; name: string} {\n  const name = `${entityType}Payload`;\n  const type = gql`\n    type ${name} {\n      id: ID!\n      mutation_type: MutationType!\n      _entity: ${entityType}\n    }\n  `;\n\n  return {name, type};\n}\n\nexport const PgSubscriptionPlugin = makeExtendSchemaPlugin((build) => {\n  const {inflection, pgIntrospectionResultsByKind, pgSql: sql} = build;\n\n  const typeDefs = [\n    gql`\n      enum MutationType {\n        INSERT\n        UPDATE\n        DELETE\n      }\n    `,\n  ];\n\n  const resolvers: Resolvers = {};\n\n  // Generate subscription fields for all database tables\n  (pgIntrospectionResultsByKind as PgIntrospectionResultsByKind).class.forEach((table) => {\n    if (!table.namespace || table.name.includes('_metadata')) return;\n\n    const field = inflection.allRows(table);\n    const type = inflection.tableType(table);\n\n    const {name: payloadName, type: payloadType} = makePayload(type);\n\n    const topic = hashName(table.namespace.name, 'notify_channel', table.name);\n    typeDefs.push(\n      gql`\n        ${payloadType}\n        extend type Subscription {\n          ${field}(id: [ID!], mutation: [MutationType!]): ${payloadName}\n          @pgSubscription(\n            topic: ${embed(topic)}\n            filter: ${embed(filter)}\n          )\n        }`\n    );\n    resolvers[payloadName] = {\n      _entity: {\n        resolve: async ({_block_height, _entity}, args, context, resolveInfo) => {\n          const [row] = await resolveInfo.graphile.selectGraphQLResultFromTable(\n            sql.identifier(table.namespace.name, table.name),\n            (tableAlias, queryBuilder) => {\n              queryBuilder.context.args ??= {};\n              if (_block_height) {\n                queryBuilder.context.args.blockHeight = sql.fragment`${sql.value(_block_height.toString())}::bigint`;\n                queryBuilder.where(sql.fragment`${tableAlias}._id = ${sql.value(_entity._id)}`);\n              } else {\n                queryBuilder.where(sql.fragment`${tableAlias}.id = ${sql.value(_entity.id)}`);\n              }\n              queryBuilder.limit(1);\n            }\n          );\n\n          return row;\n        },\n      },\n    };\n  });\n\n  return {\n    typeDefs,\n    resolvers,\n  };\n});\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/PlaygroundPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport type {ApolloServerPlugin, GraphQLServerListener} from 'apollo-server-plugin-base';\n\nexport function playgroundPlugin(options: {url: string; subscriptionUrl?: string}): ApolloServerPlugin {\n  return {\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async serverWillStart(): Promise<GraphQLServerListener> {\n      return {\n        // eslint-disable-next-line @typescript-eslint/require-await\n        async renderLandingPage() {\n          // This content is sourced from https://github.com/graphql/graphiql/blob/main/examples/graphiql-cdn/index.html\n          return {\n            html: `<!--\n             *  Copyright (c) 2025 GraphQL Contributors\n             *  All rights reserved.\n             *\n             *  This source code is licensed under the license found in the\n             *  LICENSE file in the root directory of this source tree.\n            -->\n            <!doctype html>\n            <html lang=\"en\">\n              <head>\n                <meta charset=\"UTF-8\" />\n                <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n                <title>GraphiQL 5 with React 19 and GraphiQL Explorer</title>\n                <style>\n                  body {\n                    margin: 0;\n                  }\n\n                  #graphiql {\n                    height: 100dvh;\n                  }\n\n                  .loading {\n                    height: 100%;\n                    display: flex;\n                    align-items: center;\n                    justify-content: center;\n                    font-size: 4rem;\n                  }\n                </style>\n                <link rel=\"stylesheet\" href=\"https://esm.sh/graphiql/dist/style.css\" />\n                <link\n                  rel=\"stylesheet\"\n                  href=\"https://esm.sh/@graphiql/plugin-explorer/dist/style.css\"\n                />\n                <!-- Note: the ?standalone flag bundles the module along with all of its 'dependencies', excluding peerDependencies', into a single JavaScript file. -->\n                <script type=\"importmap\">\n                  {\n                    \"imports\": {\n                      \"react\": \"https://esm.sh/react@19.1.0\",\n                      \"react/jsx-runtime\": \"https://esm.sh/react@19.1.0/jsx-runtime\",\n\n                      \"react-dom\": \"https://esm.sh/react-dom@19.1.0\",\n                      \"react-dom/client\": \"https://esm.sh/react-dom@19.1.0/client\",\n\n                      \"graphiql\": \"https://esm.sh/graphiql?standalone&external=react,react-dom,@graphiql/react,graphql\",\n                      \"@graphiql/plugin-explorer\": \"https://esm.sh/@graphiql/plugin-explorer?standalone&external=react,@graphiql/react,graphql\",\n                      \"@graphiql/react\": \"https://esm.sh/@graphiql/react?standalone&external=react,react-dom,graphql\",\n\n                      \"@graphiql/toolkit\": \"https://esm.sh/@graphiql/toolkit?standalone&external=graphql\",\n                      \"graphql\": \"https://esm.sh/graphql@16.11.0\"\n                    }\n                  }\n                </script>\n                <script type=\"module\">\n                  // Import React and ReactDOM\n                  import React from 'react';\n                  import ReactDOM from 'react-dom/client';\n                  // Import GraphiQL and the Explorer plugin\n                  import { GraphiQL, HISTORY_PLUGIN } from 'graphiql';\n                  import { createGraphiQLFetcher } from '@graphiql/toolkit';\n                  import { explorerPlugin } from '@graphiql/plugin-explorer';\n\n                  import createJSONWorker from 'https://esm.sh/monaco-editor/esm/vs/language/json/json.worker.js?worker';\n                  import createGraphQLWorker from 'https://esm.sh/monaco-graphql/esm/graphql.worker.js?worker';\n                  import createEditorWorker from 'https://esm.sh/monaco-editor/esm/vs/editor/editor.worker.js?worker';\n\n                  globalThis.MonacoEnvironment = {\n                    getWorker(_workerId, label) {\n                      console.info('MonacoEnvironment.getWorker', { label });\n                      switch (label) {\n                        case 'json':\n                          return createJSONWorker();\n                        case 'graphql':\n                          return createGraphQLWorker();\n                      }\n                      return createEditorWorker();\n                    },\n                  };\n\n                  const fetcher = createGraphiQLFetcher(${JSON.stringify(options)});\n                  const plugins = [HISTORY_PLUGIN, explorerPlugin()];\n\n                  function App() {\n                    return React.createElement(GraphiQL, {\n                      fetcher,\n                      plugins,\n                      defaultEditorToolsVisibility: true,\n                    });\n                  }\n\n                  const container = document.getElementById('graphiql');\n                  const root = ReactDOM.createRoot(container);\n                  root.render(React.createElement(App));\n                </script>\n              </head>\n              <body>\n                <div id=\"graphiql\">\n                  <div class=\"loading\">Loading…</div>\n                </div>\n              </body>\n            </html>`,\n          };\n        },\n      };\n    },\n  };\n}\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/QueryAliasLimitPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport type {ApolloServerPlugin} from 'apollo-server-plugin-base';\nimport {GraphQLSchema, GraphQLError, DocumentNode, visit} from 'graphql';\n\nfunction checkLimit(document: DocumentNode, limit: number): void {\n  let aliasCount = 0;\n  visit(document, {\n    Field(node) {\n      if (node.alias) {\n        aliasCount += 1;\n        if (aliasCount > limit) throw new GraphQLError('Alias limit exceeded');\n      }\n    },\n  });\n}\n\nexport function queryAliasLimit(options: {schema: GraphQLSchema; limit?: number}): ApolloServerPlugin {\n  return {\n    requestDidStart: () => {\n      return {\n        didResolveOperation(context: {document: DocumentNode}) {\n          if (options?.limit === undefined) {\n            return;\n          }\n          checkLimit(context.document, options.limit);\n        },\n      };\n    },\n  } as unknown as ApolloServerPlugin;\n}\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/QueryComplexityPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport type {ApolloServerPlugin} from 'apollo-server-plugin-base';\nimport {separateOperations, GraphQLSchema} from 'graphql';\nimport {getComplexity, simpleEstimator} from 'graphql-query-complexity';\n\nexport function queryComplexityPlugin(options: {schema: GraphQLSchema; maxComplexity?: number}): ApolloServerPlugin {\n  return {\n    requestDidStart: () => {\n      let complexity: number;\n      return {\n        didResolveOperation({document, request}) {\n          complexity = getComplexity({\n            schema: options.schema,\n            query: request.operationName ? separateOperations(document)[request.operationName] : document,\n            variables: request.variables,\n            estimators: [simpleEstimator({defaultComplexity: 1})],\n          });\n\n          if (options.maxComplexity !== undefined && complexity > options.maxComplexity) {\n            throw new Error(\n              `Sorry, too complicated query! Current ${complexity} is over ${options.maxComplexity} that is the max allowed complexity.`\n            );\n          }\n        },\n        willSendResponse({response}) {\n          response.http.headers.append('query-complexity', complexity);\n          if (options.maxComplexity !== undefined) {\n            response.http.headers.append('max-query-complexity', options.maxComplexity);\n          }\n        },\n      };\n    },\n  } as unknown as ApolloServerPlugin;\n}\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/QueryDepthLimitPlugin.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ASTNode, Kind} from 'graphql';\nimport {checkDepth} from './QueryDepthLimitPlugin';\n\nconst mockFieldNode = {\n  kind: Kind.FIELD,\n  name: {kind: 'Name', value: 'field1'},\n  selectionSet: {\n    kind: Kind.SELECTION_SET,\n    selections: [\n      {\n        kind: Kind.FIELD,\n        name: {\n          kind: 'Name',\n          value: 'field2',\n        },\n        selectionSet: {\n          kind: Kind.SELECTION_SET,\n          selections: [\n            {\n              kind: Kind.FIELD,\n              name: {kind: 'Name', value: 'field1'},\n            },\n          ],\n        },\n      },\n    ],\n  },\n} as unknown as ASTNode;\n\ndescribe('Query depth limit', () => {\n  it('checkDepth does not throw on shallow depth', () => {\n    const depthSoFar = 0;\n    const maxDepth = 5;\n    expect(() => checkDepth(mockFieldNode, {}, depthSoFar, maxDepth)).not.toThrow();\n  });\n  it('checkDepth does throw when max depth is exceeded', () => {\n    const depthSoFar = 6;\n    const maxDepth = 7;\n    expect(() => checkDepth(mockFieldNode, {}, depthSoFar, maxDepth)).toThrow();\n  });\n});\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/QueryDepthLimitPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport type {ApolloServerPlugin} from 'apollo-server-plugin-base';\nimport {\n  GraphQLSchema,\n  Kind,\n  GraphQLError,\n  DocumentNode,\n  DefinitionNode,\n  ValidationContext,\n  TypeInfo,\n  SelectionNode,\n  FragmentDefinitionNode,\n  OperationDefinitionNode,\n  ASTNode,\n} from 'graphql';\n\nexport function validateQueryDepth(maxDepth: number, context: ValidationContext): void {\n  const {definitions} = context.getDocument();\n  const fragments = getFragments(definitions);\n  const operations = getQueriesAndMutations(definitions);\n\n  for (const operation of operations) {\n    if (operation.name && operation.name.value === 'IntrospectionQuery') {\n      continue;\n    }\n    checkDepth(operation, fragments, 0, maxDepth);\n  }\n}\n\nfunction isOperationDefinitionNode(node: DefinitionNode): node is OperationDefinitionNode {\n  return node.kind === Kind.OPERATION_DEFINITION;\n}\nfunction isFragmentDefinitionNode(node: DefinitionNode): node is FragmentDefinitionNode {\n  return node.kind === Kind.FRAGMENT_DEFINITION;\n}\n\nfunction getFragments(definitions: readonly DefinitionNode[]): Record<string, FragmentDefinitionNode> {\n  return definitions.filter(isFragmentDefinitionNode).reduce((frags, def) => {\n    frags[def.name.value] = def;\n    return frags;\n  }, {});\n}\n\nfunction getQueriesAndMutations(definitions: readonly DefinitionNode[]): OperationDefinitionNode[] {\n  return definitions.filter(isOperationDefinitionNode);\n}\n\nexport function checkDepth(\n  node: ASTNode,\n  fragments: Record<string, FragmentDefinitionNode>,\n  depthSoFar: number,\n  maxDepth: number\n): void {\n  if (depthSoFar > maxDepth) {\n    throw new GraphQLError(`Query is too deep. Maximum depth allowed is ${maxDepth}.`, [node]);\n  }\n  switch (node.kind) {\n    case Kind.FIELD: {\n      if (!node.selectionSet) {\n        return;\n      }\n\n      node.selectionSet.selections.forEach((selection: SelectionNode) => {\n        checkDepth(selection, fragments, depthSoFar + 1, maxDepth);\n      });\n\n      return;\n    }\n    case Kind.FRAGMENT_SPREAD: {\n      return checkDepth(fragments[node.name.value], fragments, depthSoFar, maxDepth);\n    }\n    case Kind.INLINE_FRAGMENT:\n    case Kind.FRAGMENT_DEFINITION:\n    case Kind.OPERATION_DEFINITION: {\n      node.selectionSet.selections.forEach((selection: SelectionNode) => {\n        checkDepth(selection, fragments, depthSoFar, maxDepth);\n      });\n      return;\n    }\n    default:\n      break;\n  }\n}\n\nexport function queryDepthLimitPlugin(options: {schema: GraphQLSchema; maxDepth?: number}): ApolloServerPlugin {\n  return {\n    requestDidStart: () => {\n      return {\n        didResolveOperation(context: {document: DocumentNode}) {\n          if (options?.maxDepth === undefined) {\n            return;\n          }\n          const validationContext = new ValidationContext(\n            options.schema,\n            context.document,\n            new TypeInfo(options.schema),\n            (err) => {\n              throw err;\n            }\n          );\n          validateQueryDepth(options.maxDepth, validationContext);\n        },\n      };\n    },\n  } as unknown as ApolloServerPlugin;\n}\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/historical/PgBlockHeightPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {QueryBuilder} from '@subql/x-graphile-build-pg';\nimport {Plugin, Context} from 'graphile-build';\nimport {GraphQLString} from 'graphql';\nimport {fetchFromTable} from '../GetMetadataPlugin';\nimport {makeRangeQuery, hasBlockRange} from './utils';\n\nfunction addRangeQuery(queryBuilder: QueryBuilder, sql: any) {\n  queryBuilder.where(makeRangeQuery(queryBuilder.getTableAlias(), queryBuilder.context.args.blockHeight, sql));\n}\n\n// Save blockHeight to context, so it gets passed down to children\nfunction addQueryContext(queryBuilder: QueryBuilder, sql: any, blockHeight: any) {\n  if (!queryBuilder.context.args?.blockHeight || !queryBuilder.parentQueryBuilder) {\n    queryBuilder.context.args = {blockHeight: sql.fragment`${sql.value(blockHeight)}::bigint`};\n  }\n}\n\nexport const PgBlockHeightPlugin: Plugin = async (builder, options) => {\n  // Note this varies from node where true is allowed because of legacy support\n  let historicalMode: boolean | 'height' | 'timestamp' = 'height';\n  const [schemaName] = options.pgSchemas;\n\n  try {\n    const {historicalStateEnabled} = await fetchFromTable(options.pgConfig, schemaName, undefined, false);\n    historicalMode = historicalStateEnabled;\n  } catch (e) {\n    /* Do nothing, default value is already set */\n  }\n\n  // Adds blockHeight condition to join clause when joining a table that has _block_range column\n  builder.hook(\n    'GraphQLObjectType:fields:field',\n    (\n      field,\n      {pgSql: sql},\n      {\n        addArgDataGenerator,\n        scope: {\n          isPgBackwardRelationField,\n          isPgBackwardSingleRelationField,\n          isPgForwardRelationField,\n          pgFieldIntrospection,\n        },\n      }: Context<any>\n    ) => {\n      if (!isPgBackwardRelationField && !isPgForwardRelationField && !isPgBackwardSingleRelationField) {\n        return field;\n      }\n      if (!hasBlockRange(pgFieldIntrospection)) {\n        return field;\n      }\n\n      addArgDataGenerator(({blockHeight, timestamp}) => ({\n        pgQuery: (queryBuilder: QueryBuilder) => {\n          // If timestamp provided use that as the value\n          addQueryContext(queryBuilder, sql, blockHeight ?? timestamp);\n          addRangeQuery(queryBuilder, sql);\n        },\n      }));\n      return field;\n    }\n  );\n  // Adds blockHeight argument to single entity and connection queries for tables with _block_range column\n  builder.hook(\n    'GraphQLObjectType:fields:field:args',\n    (\n      args,\n      {extend, pgSql: sql},\n      {\n        addArgDataGenerator,\n        scope: {isPgFieldConnection, isPgRowByUniqueConstraintField, pgFieldIntrospection},\n      }: Context<any>\n    ) => {\n      if (!isPgRowByUniqueConstraintField && !isPgFieldConnection) {\n        return args;\n      }\n      if (!hasBlockRange(pgFieldIntrospection)) {\n        return args;\n      }\n\n      addArgDataGenerator(({blockHeight, timestamp}) => ({\n        pgQuery: (queryBuilder: QueryBuilder) => {\n          // If timestamp provided use that as the value\n          addQueryContext(queryBuilder, sql, blockHeight ?? timestamp);\n          addRangeQuery(queryBuilder, sql);\n        },\n      }));\n\n      if (historicalMode === 'timestamp') {\n        return extend(args, {\n          timestamp: {\n            description: 'When specified, the query will return results as of this timestamp. Unix timestamp in MS',\n            defaultValue: '9223372036854775807',\n            type: GraphQLString, // String because of int overflow\n          },\n        });\n      }\n\n      return extend(args, {\n        blockHeight: {\n          description: 'When specified, the query will return results as of this block height',\n          defaultValue: '9223372036854775807',\n          type: GraphQLString, // String because of int overflow\n        },\n      });\n    }\n  );\n};\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/historical/PgConnectionArgFilterBackwardRelationsPlugin.ts",
    "content": "/* eslint-disable */\n\n/* INFO: This file has been modified from https://github.com/graphile-contrib/postgraphile-plugin-connection-filter to support historical queries */\nimport {SQL} from '@subql/x-graphile-build-pg';\nimport type {PgEntity, PgAttribute, PgClass, PgConstraint, QueryBuilder} from '@subql/x-graphile-build-pg';\nimport type {Plugin} from 'graphile-build';\nimport {ConnectionFilterResolver} from 'postgraphile-plugin-connection-filter/dist/PgConnectionArgFilterPlugin';\nimport {makeRangeQuery, hasBlockRange} from './utils';\n\n/* This is a modification from the original function where a block range condition is added */\nexport function buildWhereConditionBackward(\n  table: PgEntity,\n  foreignTableAlias: SQL,\n  sourceAlias: SQL,\n  foreignKeyAttributes: PgAttribute[],\n  keyAttributes: PgAttribute[],\n  queryBuilder: QueryBuilder,\n  sql: any\n): SQL {\n  const fkMatches = foreignKeyAttributes.map((attr, i) => {\n    return sql.fragment`${foreignTableAlias}.${sql.identifier(attr.name)} = ${sourceAlias}.${sql.identifier(\n      keyAttributes[i].name\n    )}`;\n  });\n\n  if (queryBuilder.context.args?.blockHeight && hasBlockRange(table)) {\n    fkMatches.push(makeRangeQuery(foreignTableAlias, queryBuilder.context.args.blockHeight, sql));\n  }\n\n  return sql.query`(${sql.join(fkMatches, ') and (')})`;\n}\n\nexport function connectionFilterResolveBlockHeight(\n  fieldValue: unknown,\n  foreignTableAlias: SQL,\n  foreignTableFilterTypeName: string,\n  queryBuilder: QueryBuilder,\n  connectionFilterResolve: (\n    fieldValue: unknown,\n    foreignTableAlias: SQL,\n    foreignTableFilterTypeName: string,\n    queryBuilder: QueryBuilder\n    // There are more args but they don't seem to be used\n  ) => SQL | null,\n  foreignTable: PgEntity,\n  sql: any\n): SQL | null {\n  const sqlFragment = connectionFilterResolve(fieldValue, foreignTableAlias, foreignTableFilterTypeName, queryBuilder);\n\n  if (sqlFragment === null) {\n    return null;\n  }\n\n  if (queryBuilder.context.args?.blockHeight === undefined || !hasBlockRange(foreignTable)) {\n    return sqlFragment;\n  }\n\n  return sql.join(\n    [sqlFragment, makeRangeQuery(foreignTableAlias, queryBuilder.context.args.blockHeight, sql)],\n    ') and ('\n  );\n}\n\nconst PgConnectionArgFilterBackwardRelationsPlugin: Plugin = (\n  builder,\n  {pgSimpleCollections, pgOmitListSuffix, connectionFilterUseListInflectors}\n) => {\n  const hasConnections = pgSimpleCollections !== 'only';\n  const simpleInflectorsAreShorter = pgOmitListSuffix === true;\n  if (simpleInflectorsAreShorter && connectionFilterUseListInflectors === undefined) {\n    // TODO: in V3 consider doing this for the user automatically (doing it in V2 would be a breaking change)\n    console.warn(\n      `We recommend you set the 'connectionFilterUseListInflectors' option to 'true' since you've set the 'pgOmitListSuffix' option`\n    );\n  }\n  const useConnectionInflectors =\n    connectionFilterUseListInflectors === undefined ? hasConnections : !connectionFilterUseListInflectors;\n\n  builder.hook('inflection', (inflection) => {\n    return Object.assign(inflection, {\n      filterManyType(table: PgClass, foreignTable: PgClass): string {\n        return (this as any).upperCamelCase(\n          `${(this as any).tableType(table)}-to-many-${(this as any).tableType(foreignTable)}-filter`\n        );\n      },\n      filterBackwardSingleRelationExistsFieldName(relationFieldName: string) {\n        return `${relationFieldName}Exists`;\n      },\n      filterBackwardManyRelationExistsFieldName(relationFieldName: string) {\n        return `${relationFieldName}Exist`;\n      },\n      filterSingleRelationByKeysBackwardsFieldName(fieldName: string) {\n        return fieldName;\n      },\n      filterManyRelationByKeysFieldName(fieldName: string) {\n        return fieldName;\n      },\n    });\n  });\n\n  builder.hook('GraphQLInputObjectType:fields', (fields, build, context) => {\n    const {\n      describePgEntity,\n      extend,\n      newWithHooks,\n      inflection,\n      pgOmit: omit,\n      pgSql: sql,\n      pgIntrospectionResultsByKind: introspectionResultsByKind,\n      graphql: {GraphQLInputObjectType, GraphQLBoolean},\n      connectionFilterResolve,\n      connectionFilterRegisterResolver,\n      connectionFilterTypesByTypeName,\n      connectionFilterType,\n    } = build;\n    const {\n      fieldWithHooks,\n      scope: {pgIntrospection: table, isPgConnectionFilter},\n      Self,\n    } = context;\n\n    if (!isPgConnectionFilter || table.kind !== 'class') return fields;\n\n    connectionFilterTypesByTypeName[Self.name] = Self;\n\n    const backwardRelationSpecs = (introspectionResultsByKind.constraint as PgConstraint[])\n      .filter((con) => con.type === 'f')\n      .filter((con) => con.foreignClassId === table.id)\n      .reduce((memo: BackwardRelationSpec[], foreignConstraint) => {\n        if (omit(foreignConstraint, 'read') || omit(foreignConstraint, 'filter')) {\n          return memo;\n        }\n        const foreignTable = introspectionResultsByKind.classById[foreignConstraint.classId];\n        if (!foreignTable) {\n          throw new Error(`Could not find the foreign table (constraint: ${foreignConstraint.name})`);\n        }\n        if (omit(foreignTable, 'read') || omit(foreignTable, 'filter')) {\n          return memo;\n        }\n        const attributes = (introspectionResultsByKind.attribute as PgAttribute[])\n          .filter((attr) => attr.classId === table.id)\n          .sort((a, b) => a.num - b.num);\n        const foreignAttributes = (introspectionResultsByKind.attribute as PgAttribute[])\n          .filter((attr) => attr.classId === foreignTable.id)\n          .sort((a, b) => a.num - b.num);\n        const keyAttributes = foreignConstraint.foreignKeyAttributeNums.map(\n          (num) => attributes.filter((attr) => attr.num === num)[0]\n        );\n        const foreignKeyAttributes = foreignConstraint.keyAttributeNums.map(\n          (num) => foreignAttributes.filter((attr) => attr.num === num)[0]\n        );\n        if (keyAttributes.some((attr) => omit(attr, 'read'))) {\n          return memo;\n        }\n        if (foreignKeyAttributes.some((attr) => omit(attr, 'read'))) {\n          return memo;\n        }\n        const isForeignKeyUnique = !!(introspectionResultsByKind.constraint as PgConstraint[]).find(\n          (c) =>\n            c.classId === foreignTable.id &&\n            (c.type === 'p' || c.type === 'u') &&\n            c.keyAttributeNums.length === foreignKeyAttributes.length &&\n            c.keyAttributeNums.every((n, i) => foreignKeyAttributes[i].num === n)\n        );\n        memo.push({\n          table,\n          keyAttributes,\n          foreignTable,\n          foreignKeyAttributes,\n          foreignConstraint,\n          isOneToMany: !isForeignKeyUnique,\n        });\n        return memo;\n      }, []);\n\n    let backwardRelationSpecByFieldName: {\n      [fieldName: string]: BackwardRelationSpec;\n    } = {};\n\n    const addField = (\n      fieldName: string,\n      description: string,\n      type: any,\n      resolve: any,\n      spec: BackwardRelationSpec,\n      hint: string\n    ) => {\n      // Field\n      fields = extend(\n        fields,\n        {\n          [fieldName]: fieldWithHooks(\n            fieldName,\n            {\n              description,\n              type,\n            },\n            {\n              isPgConnectionFilterField: true,\n            }\n          ),\n        },\n        hint\n      );\n      // Relation spec for use in resolver\n      backwardRelationSpecByFieldName = extend(backwardRelationSpecByFieldName, {\n        [fieldName]: spec,\n      });\n      // Resolver\n      connectionFilterRegisterResolver(Self.name, fieldName, resolve);\n    };\n\n    const resolveSingle: ConnectionFilterResolver = ({sourceAlias, fieldName, fieldValue, queryBuilder}) => {\n      if (fieldValue == null) return null;\n\n      const {foreignTable, foreignKeyAttributes, keyAttributes} = backwardRelationSpecByFieldName[fieldName];\n\n      const foreignTableTypeName = inflection.tableType(foreignTable);\n\n      const foreignTableAlias = sql.identifier(Symbol());\n      const foreignTableFilterTypeName = inflection.filterType(foreignTableTypeName);\n      const sqlIdentifier = sql.identifier(foreignTable.namespace.name, foreignTable.name);\n\n      /******************************\n       * HISTORICAL CHANGES BEGIN\n       *******************************/\n\n      const sqlKeysMatch = buildWhereConditionBackward(\n        table,\n        foreignTableAlias,\n        sourceAlias,\n        foreignKeyAttributes,\n        keyAttributes,\n        queryBuilder,\n        sql\n      );\n\n      const sqlSelectWhereKeysMatch = sql.query`select 1 from ${sqlIdentifier} as ${foreignTableAlias} where ${sqlKeysMatch}`;\n      const sqlFragment = connectionFilterResolveBlockHeight(\n        fieldValue,\n        foreignTableAlias,\n        foreignTableFilterTypeName,\n        queryBuilder,\n        connectionFilterResolve,\n        foreignTable,\n        sql\n      );\n\n      /******************************\n       * HISTORICAL CHANGES END\n       *******************************/\n\n      return sqlFragment == null ? null : sql.query`exists(${sqlSelectWhereKeysMatch} and (${sqlFragment}))`;\n    };\n\n    const resolveExists: ConnectionFilterResolver = ({sourceAlias, fieldName, fieldValue, queryBuilder}) => {\n      if (fieldValue == null) return null;\n\n      const {foreignTable, foreignKeyAttributes, keyAttributes} = backwardRelationSpecByFieldName[fieldName];\n\n      const foreignTableAlias = sql.identifier(Symbol());\n\n      const sqlIdentifier = sql.identifier(foreignTable.namespace.name, foreignTable.name);\n\n      /******************************\n       * HISTORICAL CHANGES BEGIN\n       *******************************/\n      const sqlKeysMatch = buildWhereConditionBackward(\n        table,\n        foreignTableAlias,\n        sourceAlias,\n        foreignKeyAttributes,\n        keyAttributes,\n        queryBuilder,\n        sql\n      );\n\n      /******************************\n       * HISTORICAL CHANGES END\n       *******************************/\n\n      const sqlSelectWhereKeysMatch = sql.query`select 1 from ${sqlIdentifier} as ${foreignTableAlias} where ${sqlKeysMatch}`;\n\n      return fieldValue === true\n        ? sql.query`exists(${sqlSelectWhereKeysMatch})`\n        : sql.query`not exists(${sqlSelectWhereKeysMatch})`;\n    };\n\n    const makeResolveMany = (backwardRelationSpec: BackwardRelationSpec) => {\n      const resolveMany: ConnectionFilterResolver = ({sourceAlias, fieldName, fieldValue, queryBuilder}) => {\n        if (fieldValue == null) return null;\n\n        const {foreignTable} = backwardRelationSpecByFieldName[fieldName];\n\n        const foreignTableFilterManyTypeName = inflection.filterManyType(table, foreignTable);\n        const sqlFragment = connectionFilterResolve(\n          fieldValue,\n          sourceAlias,\n          foreignTableFilterManyTypeName,\n          queryBuilder,\n          null,\n          null,\n          null,\n          {backwardRelationSpec}\n        );\n        return sqlFragment == null ? null : sqlFragment;\n      };\n      return resolveMany;\n    };\n\n    for (const spec of backwardRelationSpecs) {\n      const {foreignTable, foreignKeyAttributes, foreignConstraint, isOneToMany} = spec;\n      const foreignTableTypeName = inflection.tableType(foreignTable);\n      const foreignTableFilterTypeName = inflection.filterType(foreignTableTypeName);\n      const ForeignTableFilterType = connectionFilterType(\n        newWithHooks,\n        foreignTableFilterTypeName,\n        foreignTable,\n        foreignTableTypeName\n      );\n      if (!ForeignTableFilterType) continue;\n\n      if (isOneToMany) {\n        if (!omit(foreignTable, 'many')) {\n          const filterManyTypeName = inflection.filterManyType(table, foreignTable);\n          if (!connectionFilterTypesByTypeName[filterManyTypeName]) {\n            connectionFilterTypesByTypeName[filterManyTypeName] = newWithHooks(\n              GraphQLInputObjectType,\n              {\n                name: filterManyTypeName,\n                description: `A filter to be used against many \\`${foreignTableTypeName}\\` object types. All fields are combined with a logical ‘and.’`,\n              },\n              {\n                foreignTable,\n                isPgConnectionFilterMany: true,\n              }\n            );\n          }\n          const FilterManyType = connectionFilterTypesByTypeName[filterManyTypeName];\n          const fieldName = useConnectionInflectors\n            ? inflection.manyRelationByKeys(foreignKeyAttributes, foreignTable, table, foreignConstraint)\n            : inflection.manyRelationByKeysSimple(foreignKeyAttributes, foreignTable, table, foreignConstraint);\n          const filterFieldName = inflection.filterManyRelationByKeysFieldName(fieldName);\n          addField(\n            filterFieldName,\n            `Filter by the object’s \\`${fieldName}\\` relation.`,\n            FilterManyType,\n            makeResolveMany(spec),\n            spec,\n            `Adding connection filter backward relation field from ${describePgEntity(table)} to ${describePgEntity(\n              foreignTable\n            )}`\n          );\n\n          const existsFieldName = inflection.filterBackwardManyRelationExistsFieldName(fieldName);\n          addField(\n            existsFieldName,\n            `Some related \\`${fieldName}\\` exist.`,\n            GraphQLBoolean,\n            resolveExists,\n            spec,\n            `Adding connection filter backward relation exists field from ${describePgEntity(\n              table\n            )} to ${describePgEntity(foreignTable)}`\n          );\n        }\n      } else {\n        const fieldName = inflection.singleRelationByKeysBackwards(\n          foreignKeyAttributes,\n          foreignTable,\n          table,\n          foreignConstraint\n        );\n        const filterFieldName = inflection.filterSingleRelationByKeysBackwardsFieldName(fieldName);\n        addField(\n          filterFieldName,\n          `Filter by the object’s \\`${fieldName}\\` relation.`,\n          ForeignTableFilterType,\n          resolveSingle,\n          spec,\n          `Adding connection filter backward relation field from ${describePgEntity(table)} to ${describePgEntity(\n            foreignTable\n          )}`\n        );\n\n        const existsFieldName = inflection.filterBackwardSingleRelationExistsFieldName(fieldName);\n        addField(\n          existsFieldName,\n          `A related \\`${fieldName}\\` exists.`,\n          GraphQLBoolean,\n          resolveExists,\n          spec,\n          `Adding connection filter backward relation exists field from ${describePgEntity(\n            table\n          )} to ${describePgEntity(foreignTable)}`\n        );\n      }\n    }\n\n    return fields;\n  });\n\n  builder.hook('GraphQLInputObjectType:fields', (fields, build, context) => {\n    const {\n      extend,\n      newWithHooks,\n      inflection,\n      pgSql: sql,\n      connectionFilterResolve,\n      connectionFilterRegisterResolver,\n      connectionFilterTypesByTypeName,\n      connectionFilterType,\n    } = build;\n    const {\n      fieldWithHooks,\n      scope: {foreignTable, isPgConnectionFilterMany},\n      Self,\n    } = context;\n\n    if (!isPgConnectionFilterMany || !foreignTable) return fields;\n\n    connectionFilterTypesByTypeName[Self.name] = Self;\n\n    const foreignTableTypeName = inflection.tableType(foreignTable);\n    const foreignTableFilterTypeName = inflection.filterType(foreignTableTypeName);\n    const FilterType = connectionFilterType(\n      newWithHooks,\n      foreignTableFilterTypeName,\n      foreignTable,\n      foreignTableTypeName\n    );\n\n    const manyFields = {\n      every: fieldWithHooks(\n        'every',\n        {\n          description: `Every related \\`${foreignTableTypeName}\\` matches the filter criteria. All fields are combined with a logical ‘and.’`,\n          type: FilterType,\n        },\n        {\n          isPgConnectionFilterManyField: true,\n        }\n      ),\n      some: fieldWithHooks(\n        'some',\n        {\n          description: `Some related \\`${foreignTableTypeName}\\` matches the filter criteria. All fields are combined with a logical ‘and.’`,\n          type: FilterType,\n        },\n        {\n          isPgConnectionFilterManyField: true,\n        }\n      ),\n      none: fieldWithHooks(\n        'none',\n        {\n          description: `No related \\`${foreignTableTypeName}\\` matches the filter criteria. All fields are combined with a logical ‘and.’`,\n          type: FilterType,\n        },\n        {\n          isPgConnectionFilterManyField: true,\n        }\n      ),\n    };\n\n    const resolve: ConnectionFilterResolver = ({sourceAlias, fieldName, fieldValue, queryBuilder, parentFieldInfo}) => {\n      if (fieldValue == null) return null;\n\n      if (!parentFieldInfo || !parentFieldInfo.backwardRelationSpec)\n        throw new Error('Did not receive backward relation spec');\n      const {keyAttributes, foreignKeyAttributes}: BackwardRelationSpec = parentFieldInfo.backwardRelationSpec;\n\n      const foreignTableAlias = sql.identifier(Symbol());\n      const sqlIdentifier = sql.identifier(foreignTable.namespace.name, foreignTable.name);\n\n      /******************************\n       * HISTORICAL CHANGES BEGIN\n       *******************************/\n      const sqlKeysMatch = buildWhereConditionBackward(\n        foreignTable,\n        foreignTableAlias,\n        sourceAlias,\n        foreignKeyAttributes,\n        keyAttributes,\n        queryBuilder,\n        sql\n      );\n\n      /******************************\n       * HISTORICAL CHANGES END\n       *******************************/\n\n      const sqlSelectWhereKeysMatch = sql.query`select 1 from ${sqlIdentifier} as ${foreignTableAlias} where ${sqlKeysMatch}`;\n\n      const sqlFragment = connectionFilterResolveBlockHeight(\n        fieldValue,\n        foreignTableAlias,\n        foreignTableFilterTypeName,\n        queryBuilder,\n        connectionFilterResolve,\n        foreignTable,\n        sql\n      );\n\n      if (sqlFragment == null) {\n        return null;\n      } else if (fieldName === 'every') {\n        return sql.query`not exists(${sqlSelectWhereKeysMatch} and not (${sqlFragment}))`;\n      } else if (fieldName === 'some') {\n        return sql.query`exists(${sqlSelectWhereKeysMatch} and (${sqlFragment}))`;\n      } else if (fieldName === 'none') {\n        return sql.query`not exists(${sqlSelectWhereKeysMatch} and (${sqlFragment}))`;\n      }\n      throw new Error(`Unknown field name: ${fieldName}`);\n    };\n\n    for (const fieldName of Object.keys(manyFields)) {\n      connectionFilterRegisterResolver(Self.name, fieldName, resolve);\n    }\n\n    return extend(fields, manyFields);\n  });\n};\n\nexport interface BackwardRelationSpec {\n  table: PgClass;\n  keyAttributes: PgAttribute[];\n  foreignTable: PgClass;\n  foreignKeyAttributes: PgAttribute[];\n  foreignConstraint: PgConstraint;\n  isOneToMany: boolean;\n}\n\nexport default PgConnectionArgFilterBackwardRelationsPlugin;\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/historical/PgConnectionArgFilterForwardRelationsPlugin.ts",
    "content": "/* eslint-disable */\n\n/* INFO: This file has been modified from https://github.com/graphile-contrib/postgraphile-plugin-connection-filter to support historical queries */\n\nimport {PgEntity, SQL} from '@subql/x-graphile-build-pg';\nimport type {Plugin} from 'graphile-build';\nimport type {PgAttribute, PgClass, PgConstraint, QueryBuilder} from '@subql/x-graphile-build-pg';\nimport {ConnectionFilterResolver} from 'postgraphile-plugin-connection-filter/dist/PgConnectionArgFilterPlugin';\nimport {\n  buildWhereConditionBackward,\n  connectionFilterResolveBlockHeight,\n} from './PgConnectionArgFilterBackwardRelationsPlugin';\n\n/* This is a modification from the original function where a block range condition is added */\nfunction buildWhereConditionForward(\n  table: PgEntity,\n  foreignTableAlias: SQL,\n  sourceAlias: SQL,\n  foreignKeyAttributes: PgAttribute[],\n  keyAttributes: PgAttribute[],\n  queryBuilder: QueryBuilder,\n  sql: any\n): SQL {\n  // Swaps the arguments for source and foreign\n  return buildWhereConditionBackward(\n    table,\n    sourceAlias,\n    foreignTableAlias,\n    keyAttributes,\n    foreignKeyAttributes,\n    queryBuilder,\n    sql\n  );\n}\n\nconst PgConnectionArgFilterForwardRelationsPlugin: Plugin = (builder) => {\n  builder.hook('inflection', (inflection) => ({\n    ...inflection,\n    filterForwardRelationExistsFieldName(relationFieldName: string) {\n      return `${relationFieldName}Exists`;\n    },\n    filterSingleRelationFieldName(fieldName: string) {\n      return fieldName;\n    },\n  }));\n\n  builder.hook('GraphQLInputObjectType:fields', (fields, build, context) => {\n    const {\n      describePgEntity,\n      extend,\n      newWithHooks,\n      inflection,\n      graphql: {GraphQLBoolean},\n      pgOmit: omit,\n      pgSql: sql,\n      pgIntrospectionResultsByKind: introspectionResultsByKind,\n      connectionFilterResolve,\n      connectionFilterRegisterResolver,\n      connectionFilterTypesByTypeName,\n      connectionFilterType,\n    } = build;\n    const {\n      fieldWithHooks,\n      scope: {pgIntrospection: table, isPgConnectionFilter},\n      Self,\n    } = context;\n\n    if (!isPgConnectionFilter || table.kind !== 'class') return fields;\n\n    connectionFilterTypesByTypeName[Self.name] = Self;\n\n    const forwardRelationSpecs = (introspectionResultsByKind.constraint as PgConstraint[])\n      .filter((con) => con.type === 'f')\n      .filter((con) => con.classId === table.id)\n      .reduce((memo: ForwardRelationSpec[], constraint) => {\n        if (omit(constraint, 'read') || omit(constraint, 'filter')) {\n          return memo;\n        }\n        const foreignTable = constraint.foreignClassId\n          ? introspectionResultsByKind.classById[constraint.foreignClassId]\n          : null;\n        if (!foreignTable) {\n          throw new Error(`Could not find the foreign table (constraint: ${constraint.name})`);\n        }\n        if (omit(foreignTable, 'read') || omit(foreignTable, 'filter')) {\n          return memo;\n        }\n        const attributes = (introspectionResultsByKind.attribute as PgAttribute[])\n          .filter((attr) => attr.classId === table.id)\n          .sort((a, b) => a.num - b.num);\n        const foreignAttributes = (introspectionResultsByKind.attribute as PgAttribute[])\n          .filter((attr) => attr.classId === foreignTable.id)\n          .sort((a, b) => a.num - b.num);\n        const keyAttributes = constraint.keyAttributeNums.map(\n          (num) => attributes.filter((attr) => attr.num === num)[0]\n        );\n        const foreignKeyAttributes = constraint.foreignKeyAttributeNums.map(\n          (num) => foreignAttributes.filter((attr) => attr.num === num)[0]\n        );\n        if (keyAttributes.some((attr) => omit(attr, 'read'))) {\n          return memo;\n        }\n        if (foreignKeyAttributes.some((attr) => omit(attr, 'read'))) {\n          return memo;\n        }\n        memo.push({\n          table,\n          keyAttributes,\n          foreignTable,\n          foreignKeyAttributes,\n          constraint,\n        });\n        return memo;\n      }, []);\n\n    let forwardRelationSpecByFieldName: {\n      [fieldName: string]: ForwardRelationSpec;\n    } = {};\n\n    const addField = (\n      fieldName: string,\n      description: string,\n      type: any,\n      resolve: any,\n      spec: ForwardRelationSpec,\n      hint: string\n    ) => {\n      // Field\n      fields = extend(\n        fields,\n        {\n          [fieldName]: fieldWithHooks(\n            fieldName,\n            {\n              description,\n              type,\n            },\n            {\n              isPgConnectionFilterField: true,\n            }\n          ),\n        },\n        hint\n      );\n      // Spec for use in resolver\n      forwardRelationSpecByFieldName = extend(forwardRelationSpecByFieldName, {\n        [fieldName]: spec,\n      });\n      // Resolver\n      connectionFilterRegisterResolver(Self.name, fieldName, resolve);\n    };\n\n    const resolve: ConnectionFilterResolver = ({sourceAlias, fieldName, fieldValue, queryBuilder}) => {\n      if (fieldValue == null) return null;\n\n      const {foreignTable, foreignKeyAttributes, keyAttributes} = forwardRelationSpecByFieldName[fieldName];\n\n      const foreignTableAlias = sql.identifier(Symbol());\n\n      const sqlIdentifier = sql.identifier(foreignTable.namespace.name, foreignTable.name);\n\n      /******************************\n       * HISTORICAL CHANGES BEGIN\n       *******************************/\n\n      const sqlKeysMatch = buildWhereConditionForward(\n        table,\n        foreignTableAlias,\n        sourceAlias,\n        foreignKeyAttributes,\n        keyAttributes,\n        queryBuilder,\n        sql\n      );\n\n      const foreignTableTypeName = inflection.tableType(foreignTable);\n      const foreignTableFilterTypeName = inflection.filterType(foreignTableTypeName);\n\n      const sqlFragment = connectionFilterResolveBlockHeight(\n        fieldValue,\n        foreignTableAlias,\n        foreignTableFilterTypeName,\n        queryBuilder,\n        connectionFilterResolve,\n        foreignTable,\n        sql\n      );\n\n      /******************************\n       * HISTORICAL CHANGES END\n       *******************************/\n\n      return sqlFragment == null\n        ? null\n        : sql.query`\\\n      exists(\n        select 1 from ${sqlIdentifier} as ${foreignTableAlias}\n        where ${sqlKeysMatch} and\n          (${sqlFragment})\n      )`;\n    };\n\n    const resolveExists: ConnectionFilterResolver = ({sourceAlias, fieldName, fieldValue, queryBuilder}) => {\n      if (fieldValue == null) return null;\n\n      const {foreignTable, foreignKeyAttributes, keyAttributes} = forwardRelationSpecByFieldName[fieldName];\n\n      const foreignTableAlias = sql.identifier(Symbol());\n\n      const sqlIdentifier = sql.identifier(foreignTable.namespace.name, foreignTable.name);\n\n      /******************************\n       * HISTORICAL CHANGES BEGIN\n       *******************************/\n\n      const sqlKeysMatch = buildWhereConditionForward(\n        table,\n        foreignTableAlias,\n        sourceAlias,\n        foreignKeyAttributes,\n        keyAttributes,\n        queryBuilder,\n        sql\n      );\n\n      /******************************\n       * HISTORICAL CHANGES END\n       *******************************/\n\n      const sqlSelectWhereKeysMatch = sql.query`select 1 from ${sqlIdentifier} as ${foreignTableAlias} where ${sqlKeysMatch}`;\n\n      return fieldValue === true\n        ? sql.query`exists(${sqlSelectWhereKeysMatch})`\n        : sql.query`not exists(${sqlSelectWhereKeysMatch})`;\n    };\n\n    for (const spec of forwardRelationSpecs) {\n      const {constraint, foreignTable, keyAttributes} = spec;\n      const fieldName = inflection.singleRelationByKeys(keyAttributes, foreignTable, table, constraint);\n      const filterFieldName = inflection.filterSingleRelationFieldName(fieldName);\n      const foreignTableTypeName = inflection.tableType(foreignTable);\n      const foreignTableFilterTypeName = inflection.filterType(foreignTableTypeName);\n      const ForeignTableFilterType = connectionFilterType(\n        newWithHooks,\n        foreignTableFilterTypeName,\n        foreignTable,\n        foreignTableTypeName\n      );\n      if (!ForeignTableFilterType) continue;\n\n      addField(\n        filterFieldName,\n        `Filter by the object’s \\`${fieldName}\\` relation.`,\n        ForeignTableFilterType,\n        resolve,\n        spec,\n        `Adding connection filter forward relation field from ${describePgEntity(table)} to ${describePgEntity(\n          foreignTable\n        )}`\n      );\n\n      const keyIsNullable = !keyAttributes.every((attr) => attr.isNotNull);\n      if (keyIsNullable) {\n        const existsFieldName = inflection.filterForwardRelationExistsFieldName(fieldName);\n        addField(\n          existsFieldName,\n          `A related \\`${fieldName}\\` exists.`,\n          GraphQLBoolean,\n          resolveExists,\n          spec,\n          `Adding connection filter forward relation exists field from ${describePgEntity(table)} to ${describePgEntity(\n            foreignTable\n          )}`\n        );\n      }\n    }\n\n    return fields;\n  });\n};\n\nexport interface ForwardRelationSpec {\n  table: PgClass;\n  keyAttributes: PgAttribute[];\n  foreignTable: PgClass;\n  foreignKeyAttributes: PgAttribute[];\n  constraint: PgConstraint;\n}\n\nexport default PgConnectionArgFilterForwardRelationsPlugin;\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/historical/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {PgBlockHeightPlugin} from './PgBlockHeightPlugin';\nimport PgConnectionArgFilterBackwardRelationsPlugin from './PgConnectionArgFilterBackwardRelationsPlugin';\nimport PgConnectionArgFilterForwardRelationsPlugin from './PgConnectionArgFilterForwardRelationsPlugin';\n\nconst historicalPlugins = [\n  PgBlockHeightPlugin, // This must be before the other plugins to ensure the context is set\n  PgConnectionArgFilterBackwardRelationsPlugin,\n  PgConnectionArgFilterForwardRelationsPlugin,\n];\n\nexport default historicalPlugins;\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/historical/utils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {PgEntity, PgEntityKind, SQL} from '@subql/x-graphile-build-pg';\n\nexport function makeRangeQuery(tableName: SQL, blockHeight: SQL, sql: any): SQL {\n  return sql.fragment`${tableName}._block_range @> ${blockHeight}`;\n}\n\n// Used to filter out _block_range attributes\nexport function hasBlockRange(entity?: PgEntity): boolean {\n  if (!entity) {\n    return true;\n  }\n\n  switch (entity.kind) {\n    case PgEntityKind.CLASS: {\n      return entity.attributes.some(({name}) => name === '_block_range');\n    }\n    case PgEntityKind.CONSTRAINT: {\n      return hasBlockRange(entity.class); // DOESNT WORK && notBlockRange(pgFieldIntrospection.foreignClass)\n    }\n    default:\n      return true;\n  }\n}\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n/* eslint-disable */\nimport {\n  SwallowErrorsPlugin,\n  StandardTypesPlugin,\n  NodePlugin,\n  QueryPlugin,\n  MutationPlugin,\n  SubscriptionPlugin,\n  ClientMutationIdDescriptionPlugin,\n  MutationPayloadQueryPlugin,\n  AddQueriesToSubscriptionsPlugin,\n  TrimEmptyDescriptionsPlugin,\n} from 'graphile-build/node8plus/plugins';\nimport PgBasicsPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgBasicsPlugin';\nimport PgIntrospectionPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgIntrospectionPlugin';\nimport PgTypesPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgTypesPlugin';\nimport PgTablesPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgTablesPlugin';\nimport PgConnectionArgOrderByDefaultValue from '@subql/x-graphile-build-pg/node8plus/plugins/PgConnectionArgOrderByDefaultValue';\nimport PgConditionComputedColumnPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgConditionComputedColumnPlugin';\nimport PgAllRows from '@subql/x-graphile-build-pg/node8plus/plugins/PgAllRows';\nimport PgColumnsPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgColumnsPlugin';\nimport PgColumnDeprecationPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgColumnDeprecationPlugin';\nimport PgForwardRelationPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgForwardRelationPlugin';\nimport PgRowByUniqueConstraint from '@subql/x-graphile-build-pg/node8plus/plugins/PgRowByUniqueConstraint';\nimport PgComputedColumnsPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgComputedColumnsPlugin';\nimport PgQueryProceduresPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgQueryProceduresPlugin';\nimport PgOrderAllColumnsPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgOrderAllColumnsPlugin';\nimport PgOrderComputedColumnsPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgOrderComputedColumnsPlugin';\nimport PgOrderByPrimaryKeyPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgOrderByPrimaryKeyPlugin';\nimport PgRowNode from '@subql/x-graphile-build-pg/node8plus/plugins/PgRowNode';\nimport PgNodeAliasPostGraphile from '@subql/x-graphile-build-pg/node8plus/plugins/PgNodeAliasPostGraphile';\nimport PgRecordReturnTypesPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgRecordReturnTypesPlugin';\nimport PgRecordFunctionConnectionPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgRecordFunctionConnectionPlugin';\nimport PgScalarFunctionConnectionPlugin from '@subql/x-graphile-build-pg/node8plus/plugins/PgScalarFunctionConnectionPlugin';\nimport PageInfoStartEndCursor from '@subql/x-graphile-build-pg/node8plus/plugins/PageInfoStartEndCursor';\nimport PgConnectionTotalCount from '@subql/x-graphile-build-pg/node8plus/plugins/PgConnectionTotalCount';\n\nimport PgSimplifyInflectorPlugin from '@graphile-contrib/pg-simplify-inflector';\nimport PgManyToManyPlugin from '@graphile-contrib/pg-many-to-many';\nimport ConnectionFilterPlugin from 'postgraphile-plugin-connection-filter';\nimport PgOrderByRelatedPlugin from '@graphile-contrib/pg-order-by-related';\n\n// custom plugins\nimport PgConnectionArgFirstLastBeforeAfter from './PgConnectionArgFirstLastBeforeAfter';\nimport PgBackwardRelationPlugin from './PgBackwardRelationPlugin';\nimport {GetMetadataPlugin} from './GetMetadataPlugin';\nimport {smartTagsPlugin} from './smartTagsPlugin';\nimport {makeAddInflectorsPlugin} from 'graphile-utils';\nimport PgAggregationPlugin from './PgAggregationPlugin';\nimport {PgRowByVirtualIdPlugin} from './PgRowByVirtualIdPlugin';\nimport {PgDistinctPlugin} from './PgDistinctPlugin';\nimport PgConnectionArgOrderBy from './PgOrderByUnique';\nimport historicalPlugins from './historical';\nimport {PgSearchPlugin} from './PgSearchPlugin';\n\n/* eslint-enable */\n\nexport const defaultPlugins = [\n  SwallowErrorsPlugin,\n  StandardTypesPlugin,\n  NodePlugin,\n  QueryPlugin,\n  MutationPlugin,\n  SubscriptionPlugin,\n  ClientMutationIdDescriptionPlugin,\n  MutationPayloadQueryPlugin,\n  AddQueriesToSubscriptionsPlugin,\n  TrimEmptyDescriptionsPlugin,\n];\n\nexport const pgDefaultPlugins = [\n  PgBasicsPlugin,\n  PgIntrospectionPlugin,\n  PgTypesPlugin,\n  // PgJWTPlugin,\n  PgTablesPlugin,\n  PgConnectionArgFirstLastBeforeAfter,\n  PgConnectionArgOrderByDefaultValue,\n  PgConditionComputedColumnPlugin,\n  PgAllRows,\n  PgColumnsPlugin,\n  PgColumnDeprecationPlugin,\n  PgForwardRelationPlugin,\n  PgBackwardRelationPlugin,\n  PgRowByUniqueConstraint,\n  PgComputedColumnsPlugin,\n  PgQueryProceduresPlugin,\n  PgOrderAllColumnsPlugin,\n  PgOrderComputedColumnsPlugin,\n  PgOrderByPrimaryKeyPlugin,\n  PgRowNode,\n  PgNodeAliasPostGraphile,\n  PgRecordReturnTypesPlugin,\n  PgRecordFunctionConnectionPlugin,\n  PgScalarFunctionConnectionPlugin, // For PostGraphile compatibility\n  PageInfoStartEndCursor, // For PostGraphile compatibility\n  PgConnectionTotalCount,\n];\n\nconst plugins = [\n  ...defaultPlugins,\n  ...pgDefaultPlugins,\n  ...historicalPlugins,\n  PgConnectionArgOrderBy,\n  PgSimplifyInflectorPlugin,\n  PgManyToManyPlugin,\n  ConnectionFilterPlugin,\n  smartTagsPlugin,\n  GetMetadataPlugin,\n  PgAggregationPlugin,\n  PgRowByVirtualIdPlugin,\n  PgDistinctPlugin,\n  PgSearchPlugin,\n  PgOrderByRelatedPlugin,\n  makeAddInflectorsPlugin((inflectors) => {\n    const {constantCase: oldConstantCase} = inflectors;\n    const enumValues = new Set();\n    return {\n      enumName: (v: string) => {\n        enumValues.add(v);\n        return v;\n      },\n      constantCase: (v: string) => {\n        // We don't want to change the names of all enum values to CONSTANT CASE\n        // because they could be specified in non CONSTANT CASE in their schema.graphql\n        if (enumValues.has(v)) {\n          return v;\n        } else {\n          return oldConstantCase(v);\n        }\n      },\n    };\n  }, true),\n];\n\nexport {plugins};\n"
  },
  {
    "path": "packages/query/src/graphql/plugins/smartTagsPlugin.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {MULTI_METADATA_REGEX, METADATA_REGEX, MULTI_GLOBAL_REGEX} from '@subql/utils';\nimport {PgEntity, PgEntityKind} from '@subql/x-graphile-build-pg';\nimport {makePgSmartTagsPlugin} from 'graphile-utils';\n\nexport const smartTagsPlugin = makePgSmartTagsPlugin([\n  {\n    //Rule 1, omit `_metadata`, `_global` from node\n    kind: PgEntityKind.CLASS,\n    match: ({name}: PgEntity) =>\n      METADATA_REGEX.test(name) || MULTI_METADATA_REGEX.test(name) || MULTI_GLOBAL_REGEX.test(name),\n    tags: {\n      omit: true,\n    },\n  },\n  // Omit _block_range column\n  {\n    kind: PgEntityKind.ATTRIBUTE,\n    match: ({name}) => /^_block_range$/.test(name),\n    tags: {\n      omit: true,\n    },\n  },\n  // Omit _id column\n  {\n    kind: PgEntityKind.ATTRIBUTE,\n    match: ({name}) => /^_id$/.test(name),\n    tags: {\n      omit: true,\n    },\n  },\n]);\n"
  },
  {
    "path": "packages/query/src/graphql/project.service.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Injectable} from '@nestjs/common';\nimport {Pool} from 'pg';\nimport {Config} from '../configure';\n\n@Injectable()\nexport class ProjectService {\n  constructor(\n    private readonly pool: Pool,\n    private readonly config: Config\n  ) {}\n\n  async getProjectSchema(name: string): Promise<string> {\n    // After subqueries table has been deprecated, project may not be present in subqueries table\n    const result = await this.pool\n      .query<{schema_name: string}, any[]>(`SELECT schema_name FROM information_schema.schemata`)\n      .then((obj) => obj.rows.map((x) => x.schema_name))\n      .catch((e) => {\n        throw new Error(`Unable to fetch all database schemas: ${e}`);\n      });\n    if (result.includes(name)) {\n      return name;\n    } else {\n      // fallback to subqueries table\n      const {rows} = await this.pool.query(\n        `SELECT *\n        FROM public.subqueries\n        WHERE name = $1`,\n        [name]\n      );\n      if (rows.length === 0) {\n        throw new Error(`unknown project name ${this.config.get('name')}`);\n      }\n      return rows[0].db_schema;\n    }\n  }\n}\n"
  },
  {
    "path": "packages/query/src/main.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// import rxjs from 'rxjs'; This is a reminder that rxjs is a peer dependency of @nestjs/common\n\nimport {NestFactory} from '@nestjs/core';\nimport {notifyUpdates} from '@subql/common';\nimport {findAvailablePort} from '@subql/utils';\nimport {AppModule} from './app.module';\nimport {getLogger, NestLogger} from './utils/logger';\nimport {getYargsOption} from './yargs';\n\nconst pjson = require('../package.json');\n\nconst DEFAULT_PORT = 3000;\n\nconst {argv} = getYargsOption();\nconst logger = getLogger('subql-query');\n\nnotifyUpdates(pjson, logger);\n\nvoid (async () => {\n  const app = await NestFactory.create(AppModule, {\n    logger: new NestLogger(),\n  });\n\n  const validate = (x: any) => {\n    const p = parseInt(x);\n    return isNaN(p) ? null : p;\n  };\n\n  const port = validate(process.env.PORT) ?? validate(argv.port) ?? (await findAvailablePort(DEFAULT_PORT));\n  if (!port) {\n    logger.error(\n      `Unable to find available port (tried ports in range (${DEFAULT_PORT}..${\n        DEFAULT_PORT + 10\n      })). Try setting a free port manually by setting the PORT environment variable or by setting the --port flag`\n    );\n    process.exit(1);\n  }\n\n  if (argv.playground) {\n    logger.info(`Started playground at http://localhost:${port}`);\n  }\n\n  await app.listen(port);\n})();\n"
  },
  {
    "path": "packages/query/src/utils/asyncInterval.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n//improve util method from : https://dev.to/jsmccrumb/asynchronous-setinterval-4j69\n\nconst asyncIntervals: {run: boolean; id: number | NodeJS.Timeout}[] = [];\n\nconst runAsyncInterval = async (cb: () => any, interval: number, intervalIndex: number) => {\n  await cb();\n  if (asyncIntervals[intervalIndex].run) {\n    // eslint-disable-next-line @typescript-eslint/no-misused-promises\n    asyncIntervals[intervalIndex].id = setTimeout(() => runAsyncInterval(cb, interval, intervalIndex), interval);\n  }\n};\n\nexport const setAsyncInterval = (cb: () => any, interval: number) => {\n  if (cb && typeof cb === 'function') {\n    const intervalIndex = asyncIntervals.length;\n    asyncIntervals.push({run: true, id: 0});\n    void runAsyncInterval(cb, interval, intervalIndex);\n    return intervalIndex;\n  } else {\n    throw new Error('Callback must be a function');\n  }\n};\n"
  },
  {
    "path": "packages/query/src/utils/logger.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {LoggerService} from '@nestjs/common';\nimport {Logger} from '@subql/utils';\nimport Pino from 'pino';\nimport {argv} from '../yargs';\n\nconst outputFmt = argv('output-fmt') as 'json' | 'colored';\nconst logLevel = argv('log-level') as string | undefined;\nconst logPath = argv('log-path') as string | undefined;\nconst logRotate = argv('log-rotate') as boolean | undefined;\n\nconst logger = new Logger({level: logLevel, filepath: logPath, rotate: logRotate, outputFormat: outputFmt});\n\nexport function getLogger(category: string): Pino.Logger {\n  return logger.getLogger(category);\n}\n\nexport class NestLogger implements LoggerService {\n  private logger = logger.getLogger('nestjs');\n\n  error(message: any, trace?: string): void {\n    if (trace) {\n      this.logger.error({trace}, message);\n    } else {\n      this.logger.error(message);\n    }\n  }\n\n  log(message: any): any {\n    this.logger.info(message);\n  }\n\n  warn(message: any): any {\n    this.logger.warn(message);\n  }\n}\n\nexport const PinoConfig = {\n  logger: getLogger('express'),\n  serializers: {\n    req(req) {\n      const body = req.raw.body;\n      if ('operationName' in body && body.query) {\n        // Logging IntrospectionQuery payload clutters logs and isn't useful\n        if (body.operationName === 'IntrospectionQuery') {\n          req.introspection = true;\n        } else {\n          req.payload = body.query;\n        }\n      }\n      return req;\n    },\n  },\n  autoLogging: {\n    ignorePaths: ['/.well-known/apollo/server-health'],\n  },\n};\n"
  },
  {
    "path": "packages/query/src/yargs.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\n// import {argv as yargv} from 'yargs';\nimport {hideBin} from 'yargs/helpers';\nimport yargs from 'yargs/yargs';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function getYargsOption() {\n  return yargs(hideBin(process.argv))\n    .env('SUBQL_QUERY')\n    .options({\n      aggregate: {\n        demandOption: false,\n        default: true,\n        describe: 'Enable aggregate feature',\n        type: 'boolean',\n      },\n      'disable-hot-schema': {\n        demandOption: false,\n        describe: 'Hot reload schema on schema-changes',\n        type: 'boolean',\n        default: false,\n      },\n      'dictionary-optimisation': {\n        demandOption: false,\n        describe: 'Dictionary optimisation',\n        type: 'boolean',\n        default: false,\n      },\n      indexer: {\n        demandOption: false,\n        describe: 'Url that allows query to access indexer metadata',\n        type: 'string',\n      },\n      'log-level': {\n        demandOption: false,\n        describe: 'Specify log level to print.',\n        type: 'string',\n        default: 'info',\n        choices: ['fatal', 'error', 'warn', 'info', 'debug', 'trace', 'silent'],\n      },\n      'log-path': {\n        demandOption: false,\n        describe: 'Path to create log file e.g ./src/name.log',\n        type: 'string',\n      },\n      'log-rotate': {\n        demandOption: false,\n        describe: 'Rotate log files in directory specified by log-path',\n        type: 'boolean',\n        default: false,\n      },\n      'max-connection': {\n        demandOption: false,\n        describe: 'Max connection to pg pool',\n        type: 'number',\n        default: 10,\n      },\n      name: {\n        demandOption: true,\n        alias: 'n',\n        describe: 'Project name',\n        type: 'string',\n      },\n      'output-fmt': {\n        demandOption: false,\n        describe: 'Print log as json or plain text',\n        type: 'string',\n        default: 'colored',\n        choices: ['json', 'colored'],\n      },\n      'pg-ca': {\n        demandOption: false,\n        describe:\n          'Postgres ca certificate - to enables TLS/SSL connections to your PostgreSQL, path to the server certificate file are required, e.g /path/to/server-certificates/root.crt',\n        type: 'string',\n      },\n      'pg-key': {\n        demandOption: false,\n        describe: 'Postgres client key - Path to key file e.g /path/to/client-key/postgresql.key',\n        type: 'string',\n      },\n      'pg-cert': {\n        demandOption: false,\n        describe:\n          'Postgres client certificate - Path to client certificate e.g /path/to/client-certificates/postgresql.crt',\n        type: 'string',\n      },\n      port: {\n        alias: 'p',\n        demandOption: false,\n        describe: 'The port the service will bind to',\n        type: 'number',\n      },\n      playground: {\n        demandOption: false,\n        describe: 'Enable graphql playground',\n        type: 'boolean',\n      },\n      'query-limit': {\n        demandOption: false,\n        describe: 'Set limit on number of query results per entity',\n        type: 'number',\n        default: 100,\n      },\n      'query-batch-limit': {\n        demandOption: false,\n        describe: 'Set limit on number on the maximum batch queries',\n        type: 'number',\n      },\n      'query-depth-limit': {\n        demandOption: false,\n        describe: 'Set limit on query depth',\n        type: 'number',\n      },\n      'query-alias-limit': {\n        demandOption: false,\n        describe: 'Set limit on query alias limit',\n        type: 'number',\n      },\n      'query-complexity': {\n        demandOption: false,\n        describe: 'Level of query complexity',\n        type: 'number',\n      },\n      'query-timeout': {\n        demandOption: false,\n        describe: 'Query timeout in milliseconds',\n        type: 'number',\n        default: 10000,\n      },\n      'query-explain': {\n        demandOption: false,\n        describe: 'Explain query in SQL statement',\n        type: 'boolean',\n      },\n      unsafe: {\n        demandOption: false,\n        describe: 'Disable limits on query depth and allowable number returned query records',\n        type: 'boolean',\n      },\n      subscription: {\n        demandOption: false,\n        describe: 'Enable subscription service',\n        type: 'boolean',\n        default: false,\n      },\n      'sl-keep-alive-interval': {\n        demandOption: false,\n        describe: 'Schema listener keep-alive interval in milliseconds',\n        type: 'number',\n        default: 180000,\n      },\n    });\n}\n\nexport function argv(arg: string): unknown {\n  return getYargsOption().argv[arg];\n}\n"
  },
  {
    "path": "packages/query/tsconfig.build.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"exclude\": [\"node_modules\", \"test\", \"dist\", \"**/*spec.ts\"]\n}\n"
  },
  {
    "path": "packages/query/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"target\": \"es2017\",\n    \"sourceMap\": true,\n    \"tsBuildInfoFile\": \"dist/.tsbuildinfo\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"./dist\"\n  },\n  \"references\": [{\"path\": \"../common\"}, {\"path\": \"../types\"}, {\"path\": \"../utils\"}],\n  \"include\": [\"src/**/*\"]\n}\n"
  },
  {
    "path": "packages/testing/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [2.3.1] - 2025-11-05\n### Changed\n- Update package manager (#2937)\n\n## [2.3.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n## [2.2.4] - 2025-02-26\n### Changed\n- Update subqlTest to support entities with alternative ID types (#2700)\n\n## [2.2.3] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n\n## [2.2.2] - 2024-10-23\n### Fixed\n- Bump version `@subql/types-core`\n\n## [2.2.1] - 2024-07-09\n### Changed\n- Changes to ts build settings (#2475)\n\n## [2.2.0] - 2024-06-21\n### Changed\n- Bump version with `@subql/types-core`\n\n## [2.1.2] - 2024-06-18\n### Changed\n- Enable strict TS setting (#2446)\n\n## [2.1.1] - 2024-04-24\n### Changed\n- Update headers to 2024 (#2237)\n\n## [2.1.0] - 2023-10-17\n### Changed\n- Update with Typescript manifest (#2011)\n\n## [2.0.2] - 2023-07-31\n### Fixed\n- Update license (#1891)\n\n## [2.0.1] - 2023-05-11\n### Changed\n- Sync with `types@2.1.2`\n\n## [2.0.0] - 2023-04-20\n### Added\n- Major release 2.0.0, align with other package versions\n\n[Unreleased]: https://github.com/subquery/subql/compare/testing/2.3.1...HEAD\n[2.3.1]: https://github.com/subquery/subql/compare/testing/2.3.0...testing/2.3.1\n[2.3.0]: https://github.com/subquery/subql/compare/testing/2.2.4...testing/2.3.0\n[2.2.4]: https://github.com/subquery/subql/compare/testing/2.2.3...testing/2.2.4\n[2.2.3]: https://github.com/subquery/subql/compare/testing/2.2.2...testing/2.2.3\n[2.2.2]: https://github.com/subquery/subql/compare/testing/2.2.1...testing/2.2.2\n[2.2.1]: https://github.com/subquery/subql/compare/testing/2.2.0...testing/2.2.1\n[2.2.0]: https://github.com/subquery/subql/compare/testing/2.1.2...testing/2.2.0\n[2.1.2]: https://github.com/subquery/subql/compare/testing/2.1.1...testing/2.1.2\n[2.1.1]: https://github.com/subquery/subql/compare/testing/2.1.0...testing/2.1.1\n[2.1.0]: https://github.com/subquery/subql/compare/testing/2.0.2...testing/2.1.0\n[2.0.2]: https://github.com/subquery/subql/compare/v2.0.1...v2.0.2\n[2.0.1]: https://github.com/subquery/subql/compare/testing/2.0.0...testing/2.0.1\n[2.0.0]: https://github.com/subquery/subql/tag/v2.0.0\n"
  },
  {
    "path": "packages/testing/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/testing/package.json",
    "content": "{\n  \"name\": \"@subql/testing\",\n  \"version\": \"2.3.1\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n    \"build\": \"rm -rf dist && tsc -b\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"testing/\\\"\"\n  },\n  \"main\": \"dist/index.js\",\n  \"license\": \"GPL-3.0\",\n  \"files\": [\n    \"/dist\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\",\n    \"package.json\",\n    \"README.md\",\n    \"CHANGELOG.md\",\n    \"LICENSE\"\n  ],\n  \"dependencies\": {\n    \"@subql/types-core\": \"workspace:^\"\n  }\n}\n"
  },
  {
    "path": "packages/testing/src/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './interfaces';\n\nimport {CompatEntity} from '@subql/types-core';\n\n// Register test functions to a global array\nexport function subqlTest<E extends CompatEntity<any> = CompatEntity<any>>(\n  name: string,\n  blockHeight: number,\n  dependentEntities: E[],\n  expectedEntities: E[],\n  handler: string\n): void {\n  (global as any).subqlTests = (global as any).subqlTests ?? [];\n\n  (global as any).subqlTests.push({\n    name,\n    blockHeight,\n    dependentEntities,\n    expectedEntities,\n    handler,\n  });\n}\n"
  },
  {
    "path": "packages/testing/src/interfaces.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {Entity} from '@subql/types-core';\n\nexport type HandlerFunction = <T = any>(input: T) => Promise<void>;\n\nexport type SubqlTest = {\n  name: string;\n  blockHeight: number;\n  dependentEntities: Entity[];\n  expectedEntities: Entity[];\n  handler: string;\n};\n"
  },
  {
    "path": "packages/testing/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"tsBuildInfoFile\": \"dist/.tsbuildinfo\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"dist\",\n    \"noImplicitAny\": true\n  },\n  \"include\": [\"src/**/*\"],\n  \"references\": [{\"path\": \"../common\"}, {\"path\": \"../common-substrate\"}]\n}\n"
  },
  {
    "path": "packages/types/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [3.15.0] - 2025-10-15\n### Changed\n- Minor improvements and fixes from upgrading to eslint 9 with stricter settings (#2929)\n\n## [3.14.2] - 2025-09-16\n### Changed\n- Update polkadot dependenices (#2915)\n\n## [3.14.1] - 2025-07-17\n### Changed\n- Workspace dependencies now match to patch versions rather than exact (#2855)\n\n## [3.14.0] - 2025-07-14\n### Changed\n- Update to `@polkadot/api@^16` (#2845)\n\n## [3.13.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n## [3.12.2] - 2025-04-24\n### Changed\n- Update polkadot dependencies\n\n## [3.12.1] - 2025-02-26\n### Changed\n- Update types core\n\n## [3.12.0] - 2025-02-19\n### Changed\n- Update polkadot api to 15 (#2680)\n\n### Removed\n- Redundant internal type (#2677)\n\n## [3.11.5] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n\n## [3.11.4] - 2024-11-25\n### Added\n- Update polkadot/api library to 14 version\n\n## [3.11.3] - 2024-10-23\n### Fixed\n- Bump version `@subql/types-core`\n\n## [3.11.2] - 2024-08-14\n### Added\n- Update polkadot/api library\n\n## [3.11.1] - 2024-08-12\n### Fixed\n- DS Processor types not being able to distinguish input and filter types (#2522)\n\n## [3.11.0] - 2024-08-05\n### Changed\n- Update dependencies (#2518)\n\n## [3.10.0] - 2024-08-01\n### Fixed\n- Fix timestamp can be undefined (#2514)\n\n### Changed\n- Bump version with `@subql/types-core`\n\n## [3.9.0] - 2024-07-09\n### Changed\n- Enable TS strict setting.\n\n### Removed\n- Deprecated types relating to datasource processors (#2475)\n\n## [3.8.0] - 2024-07-01\n### Changed\n- Bump version with `@subql/types-core`\n\n## [3.7.0] - 2024-06-21\n### Changed\n- Bump version with `@subql/types-core`\n\n## [3.6.1] - 2024-06-12\n### Changed\n- Update polkadot dependencies to 11.2.1 (#2440)\n\n## [3.6.0] - 2024-05-08\n### Changed\n- Update polkadot dependencies to v11\n\n## [3.5.0] - 2024-04-24\n### Changed\n- Use ds processor types from `@subql/types-core` (#2357)\n\n## [3.4.0] - 2024-03-28\n### Added\n- Add IBlock interface for block content of all networks, also support dictionary to be array type (#2257)\n\n## [3.3.1] - 2024-02-07\n### Changed\n- Update `@subql/types-core`\n\n## [3.3.0] - 2023-10-31\n### Changed\n- Import types-core global so there is no need to update tsconfig\n- Update `@subql/types-core` to add support for endBlock\n\n## [3.2.0] - 2023-10-20\n### Changed\n- Version bump with `types-core` 0.2.0\n\n## [3.1.2] - 2023-10-04\n### Fixed\n- `@subql/types-core` being a devDep instead of a dep\n\n## [3.1.1] - 2023-10-03\n### Changed\n- Version bump with `types-core` 0.1.1\n\n## [3.1.0] - 2023-10-02\n### Changed\n- Update project types with `types-core` 0.1.0 (#2056)\n\n## [3.0.1] - 2023-09-28\n### Changed\n- Move non-specific types to types-core package, add `SubstrateProject` type to define project manifest in typescript. (#2011)\n\n### Added\n- New LightBlock type (#1968)\n- `getByFields` function to store interface (#1993)\n\n## [2.2.0] - 2023-08-16\n### Added\n- `isSigned` filter to call handler (#1940)\n\n### Changed\n- Allow boolean types in DictionaryQueryCondition (#1940)\n\n## [2.1.4] - 2023-08-11\n### Fixed\n- Fix missing `unsafeApi` in global (#1935)\n\n## [2.1.3] - 2023-07-31\n### Fixed\n- Update license (#1891)\n\n## [2.1.2] - 2023-05-11\n### Added\n- Inject the chain id into sandboxes (#1684)\n\n## [2.1.1] - 2023-05-11\n### Changed\n- `DictionaryQueryCondition` type (#1679)\n\n## [2.1.0] - 2023-05-10\n### Added\n- `bulkRemove` method on the store. (#1666)\n\n## [2.0.0] - 2023-04-20\n### Changed\n- Major release 2.0.0, align with other package versions\n- Update interfaces to support testing framework (#1584)\n- Removed `count` method from `Store`\n\n## [1.7.2] - 2023-03-29\n### Changed\n- Update polkadot api to 10.1.4 (#1580)\n\n## [1.7.1] - 2023-01-23\n### Added\n- Add `count` to `Store` interface (#1480)\n\n## [1.7.0] - 2022-12-06\n### Added\n- Support for `bypassBlocks` (#1435)\n\n## [1.6.0] - 2022-10-27\n### Added\n- Timestamp filter to block handlers (#1310)\n\n## [1.5.1] - 2022-10-11\n### Added\n- Matcher to dictionary query condition. (#1345)\n\n## [1.5.0] - 2022-09-13\n### Changed\n- Change types to support wasm processor and update polkadot API to v9. (#1280)\n\n## [1.4.0] - 2022-08-26\n### Changed\n- Minor release\n\n### Changed\n- Updated store.getByField to have limit and offset options. `getByField(entity: string, field: string, value: any, options?: {offset?: number; limit?: number}): Promise<Entity[]>;`. (#1259)\n\n## [1.3.0] - 2022-08-17\n### Added\n- `bulkUpdate` and `bulkGet` to the injected store. This can be used to optimise handlers and speed up indexing. (#1246)\n\n## [1.2.1] - 2022-08-04\n### Fixed\n- Export `EventTypeRecord`. (#1225)\n\n## [1.2.0] - 2022-07-27\n### Changed\n- Update `SubstrateBlockFilter` with new `modulo` filter. (#1196)\n- Make `SubstrateExtrinsic` and `SubstrateEvent` types generic. This allows specifying the data/args type rather than being provided with `Codec[]` or `AnyTuple`. (#1194)\n\n## [1.1.0] - 2022-05-31\n### Changed\n- Update name for substrate types (#1012)\n\n## [1.0.0] - 2022-05-11\n### Changed\n- Major release\n\n## [0.15.0] - 2022-05-02\n### Changed\n- Update polkadot 8.2.1 (#910)\n\n## [0.14.0] - 2022-02-09\n### Added\n- inject `createDynamicDatasource` in global (#773)\n\n## [0.13.0] - 2022-01-13\n### Changed\n- Update Polkadot/api to 7.3.1 (#745)\n\n## [0.12.0] - 2021-12-16\n### Added\n- Add `bulkCreate` in `Store` interface (#699)\n\n## [0.11.0] - 2021-11-27\n### Changed\n- Update patch api type (#638)\n\n## [0.10.1] - 2021-11-19\n### Changed\n- Update patch api type (#638)\n\n## [0.10.0] - 2021-11-03\n### Changed\n- Update interface under project for Moonbeam custom datasource processor (#579)\n\n### Added\n- Add interface `FunctionPropertyNames` improve types of entity creation (#573)\n\n## [0.9.0] - 2021-10-26\n### Changed\n- Update Polkadot/api to v6 (#548)\n- Move project manifest types to @subql/types because it is now also required by subquery project. (#512)\n\n## [0.8.5] - 2021-10-12\n### Changed\n- Update Polkadot/api to 6.3.1 (#505)\n\n## [0.8.4] - 2021-09-16\n### Changed\n- Update Polkadot/api to 5.9.1 (#476)\n\n## [0.8.3] - 2021-09-01\n### Changed\n- Update Polkadot/api to 5.7.1 (#460)\n\n## [0.8.2] - 2021-08-20\n### Changed\n- Update Polkadot/api to 5.5.2 (#439)\n\n## [0.8.1] - 2021-08-16\n### Changed\n- Update Polkadot/api to 5.5.1 (#433)\n\n## [0.8.0] - 2021-06-25\n### Changed\n- Update dependencies (#358)\n\n## [0.7.0] - 2021-04-20\n### Fixed\n- inject logger module in global(#248)\n\n### Added\n- Expose events in SubstrateBlock (#256)\n- Injecting logger to sandbox's global (#259)\n- Store support querying by indexed field (#271)\n\n## [0.6.1] - 2021-03-11\n### Fixed\n- patch release with other packages (#228)\n\n## [0.6.0] - 2021-01-27\n### Fixed\n- fix crash for events not own by extrinsic (#120)\n\n## [0.5.0] - 2021-01-25\n### Added\n- patch and inject api in sandbox context (#103)\n- support specVersion filter and success filter (#106)\n\n### Changed\n- bump @polkadot/api to v3.6.3 (#109)\n\n## [0.3.0] - 2021-01-06\n### Added\n- support callHandler and eventHandler (#47)\n\n## [0.2.0] - 2020-12-22\n### Added\n- support block handler\n\n[Unreleased]: https://github.com/subquery/subql/compare/types/3.15.0...HEAD\n[3.15.0]: https://github.com/subquery/subql/compare/types/3.14.2...types/3.15.0\n[3.14.2]: https://github.com/subquery/subql/compare/types/3.14.1...types/3.14.2\n[3.14.1]: https://github.com/subquery/subql/compare/types/3.14.0...types/3.14.1\n[3.14.0]: https://github.com/subquery/subql/compare/types/3.13.0...types/3.14.0\n[3.13.0]: https://github.com/subquery/subql/compare/types/3.12.2...types/3.13.0\n[3.12.2]: https://github.com/subquery/subql/compare/types/3.12.1...types/3.12.2\n[3.12.1]: https://github.com/subquery/subql/compare/types/3.12.0...types/3.12.1\n[3.12.0]: https://github.com/subquery/subql/compare/types/3.11.5...types/3.12.0\n[3.11.5]: https://github.com/subquery/subql/compare/types/3.11.4...types/3.11.5\n[3.11.4]: https://github.com/subquery/subql/compare/types/3.11.3...types/3.11.4\n[3.11.3]: https://github.com/subquery/subql/compare/types/3.11.2...types/3.11.3\n[3.11.2]: https://github.com/subquery/subql/compare/types/3.11.1...types/3.11.2\n[3.11.1]: https://github.com/subquery/subql/compare/types/3.11.0...types/3.11.1\n[3.11.0]: https://github.com/subquery/subql/compare/types/3.10.0...types/3.11.0\n[3.10.0]: https://github.com/subquery/subql/compare/types/3.9.0...types/3.10.0\n[3.9.0]: https://github.com/subquery/subql/compare/types/3.8.0...types/3.9.0\n[3.8.0]: https://github.com/subquery/subql/compare/types/3.7.0...types/3.8.0\n[3.7.0]: https://github.com/subquery/subql/compare/types/3.6.1...types/3.7.0\n[3.6.1]: https://github.com/subquery/subql/compare/types/3.6.0...types/3.6.1\n[3.6.0]: https://github.com/subquery/subql/compare/types/3.5.0...types/3.6.0\n[3.5.0]: https://github.com/subquery/subql/compare/types/3.4.0...types/3.5.0\n[3.4.0]: https://github.com/subquery/subql/compare/types/3.3.1...types/3.4.0\n[3.3.1]: https://github.com/subquery/subql/compare/types/3.3.0...types/3.3.1\n[3.3.0]: https://github.com/subquery/subql/compare/types/3.2.0...types/3.3.0\n[3.2.0]: https://github.com/subquery/subql/compare/types/3.1.2...types/3.2.0\n[3.1.2]: https://github.com/subquery/subql/compare/types/3.1.1...types/3.1.2\n[3.1.1]: https://github.com/subquery/subql/compare/types/3.1.0...types/3.1.1\n[3.1.0]: https://github.com/subquery/subql/compare/types/3.0.1...types/3.1.0\n[3.0.1]: https://github.com/subquery/subql/compare/types/2.2.0...types/3.0.1\n[2.2.0]: https://github.com/subquery/subql/compare/types/2.1.4...types/2.2.0\n[2.1.4]: https://github.com/subquery/subql/compare/types/2.1.3...types/2.1.4\n[2.1.3]: https://github.com/subquery/subql/compare/types/2.1.2...types/2.1.3\n[2.1.2]: https://github.com/subquery/subql/compare/types/2.1.1...types/2.1.2\n[2.1.1]: https://github.com/subquery/subql/compare/types/2.1.1...types/2.1.1\n[2.1.0]: https://github.com/subquery/subql/compare/types/2.0.0...types/2.1.0\n[2.0.0]: https://github.com/subquery/subql/compare/types/1.7.2...types/2.0.0\n[1.7.2]: https://github.com/subquery/subql/compare/types/1.7.1...types/1.7.2\n[1.7.1]: https://github.com/subquery/subql/compare/types/1.7.0...types/1.7.1\n[1.7.0]: https://github.com/subquery/subql/compare/types/1.6.0...types/1.7.0\n[1.6.0]: https://github.com/subquery/subql/compare/types/1.5.1...types/1.6.0\n[1.5.1]: https://github.com/subquery/subql/compare/types/1.5.0...types/1.5.1\n[1.5.0]: https://github.com/subquery/subql/compare/types/1.4.0...types/1.5.0\n[1.4.0]: https://github.com/subquery/subql/compare/types/1.3.0...types/1.4.0\n[1.3.0]: https://github.com/subquery/subql/compare/types/1.2.1...types/1.3.0\n[1.2.1]: https://github.com/subquery/subql/compare/types/1.2.0...types/1.2.1\n[1.2.0]: https://github.com/subquery/subql/compare/types/1.1.0...types/1.2.0\n[1.1.0]: https://github.com/subquery/subql/compare/types/1.0.0...types/1.1.0\n[1.0.0]: https://github.com/subquery/subql/compare/types/0.15.0...types/1.0.0\n[0.15.0]: https://github.com/subquery/subql/compare/types/0.14.0...types/0.15.0\n[0.14.0]: https://github.com/subquery/subql/compare/types/0.13.0...types/0.14.0\n[0.13.0]: https://github.com/subquery/subql/compare/types/0.12.0...types/0.13.0\n[0.12.0]: https://github.com/subquery/subql/compare/types/0.11.0...types/0.12.0\n[0.11.0]: https://github.com/subquery/subql/compare/types/0.10.0...types/0.11.0\n[0.10.1]: https://github.com/subquery/subql/compare/types/0.10.0...types/0.10.1\n[0.10.0]: https://github.com/subquery/subql/compare/types/0.9.0...types/0.10.0\n[0.9.0]: https://github.com/subquery/subql/compare/types/0.8.5...types/0.9.0\n[0.8.5]: https://github.com/subquery/subql/compare/types/0.8.4...types/0.8.5\n[0.8.4]: https://github.com/subquery/subql/compare/types/0.8.3...types/0.8.4\n[0.8.3]: https://github.com/subquery/subql/compare/types/0.8.2...types/0.8.3\n[0.8.2]: https://github.com/subquery/subql/compare/types/0.8.1...types/0.8.2\n[0.8.1]: https://github.com/subquery/subql/compare/types/0.8.0...types/0.8.1\n[0.8.0]: https://github.com/subquery/subql/compare/types/0.7.0...types/0.8.0\n[0.7.0]: https://github.com/subquery/subql/compare/types/0.6.1...types/0.7.0\n[0.6.1]: https://github.com/subquery/subql/compare/types/0.6.0...types/0.6.1\n[0.6.0]: https://github.com/subquery/subql/compare/types/0.5.0...types/0.6.0\n[0.5.0]: https://github.com/subquery/subql/compare/types/0.3.0...types/0.5.0\n[0.3.0]: https://github.com/subquery/subql/compare/types/0.2.0...types/0.3.0\n[0.2.0]: https://github.com/subquery/subql/tag/v0.2.0\n"
  },
  {
    "path": "packages/types/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/types/package.json",
    "content": "{\n  \"name\": \"@subql/types\",\n  \"version\": \"3.15.0\",\n  \"description\": \"\",\n  \"homepage\": \"https://github.com/subquery/subql\",\n  \"repository\": \"github:subquery/subql\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n    \"build\": \"rm -rf dist && tsc -b\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"types/\\\"\"\n  },\n  \"author\": \"Ian He\",\n  \"main\": \"dist/index.js\",\n  \"license\": \"GPL-3.0\",\n  \"files\": [\n    \"src/global.d.ts\",\n    \"/dist\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\",\n    \"package.json\",\n    \"README.md\",\n    \"CHANGELOG.md\",\n    \"LICENSE\"\n  ],\n  \"dependencies\": {\n    \"@subql/types-core\": \"workspace:~\"\n  },\n  \"peerDependencies\": {\n    \"@polkadot/api\": \"^16\"\n  },\n  \"devDependencies\": {\n    \"@polkadot/api\": \"^16.4.7\"\n  }\n}\n"
  },
  {
    "path": "packages/types/src/global.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ApiPromise} from '@polkadot/api';\nimport {ApiDecoration} from '@polkadot/api/types';\n\nimport '@subql/types-core/dist/global';\n\ntype ApiAt = ApiDecoration<'promise'> & {rpc: ApiPromise['rpc']};\n\ndeclare global {\n  const api: ApiAt;\n  const unsafeApi: ApiPromise | undefined;\n}\n"
  },
  {
    "path": "packages/types/src/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './interfaces';\nexport * from './project';\n"
  },
  {
    "path": "packages/types/src/interfaces.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {GenericExtrinsic} from '@polkadot/types/extrinsic';\nimport {EventRecord, SignedBlock, Header} from '@polkadot/types/interfaces';\nimport {IEvent} from '@polkadot/types/types';\nimport {AnyTuple, Codec} from '@polkadot/types-codec/types';\n\nexport interface SubstrateBlock extends SignedBlock {\n  // parent block's spec version, can be used to decide the correct metadata that should be used for this block.\n  specVersion: number;\n  timestamp: Date | undefined;\n  events: EventRecord[];\n}\n\nexport interface SubstrateExtrinsic<A extends AnyTuple = AnyTuple> {\n  // index in the block\n  idx: number;\n  extrinsic: GenericExtrinsic<A>;\n  block: SubstrateBlock;\n  events: TypedEventRecord<Codec[]>[];\n  success: boolean;\n}\n\ninterface BaseSubstrateEvent<T extends AnyTuple = AnyTuple> extends TypedEventRecord<T> {\n  // index in the block\n  idx: number;\n}\n\n// A subset of SubstrateBlock with just the header\nexport interface BlockHeader {\n  block: {\n    header: Header;\n  };\n  events: EventRecord[];\n}\n\nexport interface LightSubstrateEvent<T extends AnyTuple = AnyTuple> extends BaseSubstrateEvent<T> {\n  block: BlockHeader;\n}\n\nexport interface SubstrateEvent<T extends AnyTuple = AnyTuple> extends BaseSubstrateEvent<T> {\n  extrinsic?: SubstrateExtrinsic;\n  block: SubstrateBlock;\n}\n\nexport type TypedEventRecord<T extends AnyTuple> = Omit<EventRecord, 'event'> & {\n  event: IEvent<T>;\n};\n"
  },
  {
    "path": "packages/types/src/project.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ApiPromise} from '@polkadot/api';\nimport {AnyTuple} from '@polkadot/types/types';\nimport {\n  BaseTemplateDataSource,\n  IProjectNetworkConfig,\n  CommonSubqueryProject,\n  FileReference,\n  Processor,\n  ProjectManifestV1_0_0,\n  BlockFilter,\n  BaseDataSource,\n  BaseHandler,\n  BaseMapping,\n  BaseCustomDataSource,\n  HandlerInputTransformer_0_0_0 as BaseHandlerInputTransformer_0_0_0,\n  HandlerInputTransformer_1_0_0 as BaseHandlerInputTransformer_1_0_0,\n  SecondLayerHandlerProcessor_0_0_0,\n  SecondLayerHandlerProcessor_1_0_0,\n  DsProcessor,\n} from '@subql/types-core';\nimport {LightSubstrateEvent, SubstrateBlock, SubstrateEvent, SubstrateExtrinsic} from './interfaces';\n\nexport type RuntimeDatasourceTemplate = BaseTemplateDataSource<SubstrateDatasource>;\nexport type CustomDatasourceTemplate = BaseTemplateDataSource<SubstrateCustomDatasource>;\n\nexport type SubstrateProjectManifestV1_0_0 = ProjectManifestV1_0_0<\n  SubstrateRuntimeDatasource | SubstrateCustomDatasource\n>;\n\n/**\n * Kind of Substrate datasource.\n * @enum {string}\n */\nexport enum SubstrateDatasourceKind {\n  /**\n   * The runtime kind of Substrate datasource.\n   */\n  Runtime = 'substrate/Runtime',\n}\n\n/**\n * Enum representing the kind of Substrate handler.\n * @enum {string}\n */\nexport enum SubstrateHandlerKind {\n  /**\n   * Handler for Substrate blocks.\n   */\n  Block = 'substrate/BlockHandler',\n\n  /**\n   * Handler for Substrate extrinsic calls.\n   */\n  Call = 'substrate/CallHandler',\n\n  /**\n   * Handler for Substrate events.\n   */\n  Event = 'substrate/EventHandler',\n}\n\nexport type RuntimeHandlerInputMap<T extends AnyTuple = AnyTuple> = {\n  [SubstrateHandlerKind.Block]: SubstrateBlock;\n  [SubstrateHandlerKind.Event]: SubstrateEvent<T> | LightSubstrateEvent<T>;\n  [SubstrateHandlerKind.Call]: SubstrateExtrinsic<T>;\n};\n\ntype RuntimeFilterMap = {\n  [SubstrateHandlerKind.Block]: SubstrateBlockFilter;\n  [SubstrateHandlerKind.Event]: SubstrateEventFilter;\n  [SubstrateHandlerKind.Call]: SubstrateCallFilter;\n};\n\n// [startSpecVersion?, endSpecVersion?] closed range\nexport type SpecVersionRange = [number, number];\n\ninterface SubstrateBaseHandlerFilter {\n  specVersion?: SpecVersionRange;\n}\n\n/**\n * Represents a filter for Substrate blocks, extending SubstrateBaseHandlerFilter.\n * @interface\n * @extends {SubstrateBaseHandlerFilter}\n */\nexport interface SubstrateBlockFilter extends SubstrateBaseHandlerFilter, BlockFilter {}\n\n/**\n * Represents a filter for Substrate events, extending SubstrateBaseHandlerFilter.\n * @interface\n * @extends {SubstrateBaseHandlerFilter}\n */\nexport interface SubstrateEventFilter extends SubstrateBaseHandlerFilter {\n  /**\n   * The module name for filtering events or calls (optional).\n   * @type {string}\n   * @example\n   * module: 'balances'\n   */\n  module?: string;\n\n  /**\n   * The method name for filtering events calls (case-sensitive) (optional).\n   * @type {string}\n   * @example\n   * method: 'Transfer'\n   */\n  method?: string;\n}\n\n/**\n * Represents a filter for Substrate calls, extending SubstrateEventFilter.\n * @interface\n * @extends {SubstrateEventFilter}\n * @example\n * filter: {\n * module: 'balances',\n * method: 'Deposit',\n * success: true,\n * }\n */\nexport interface SubstrateCallFilter extends SubstrateEventFilter {\n  /**\n   * Indicates whether the call was successful (optional).\n   * @type {boolean}\n   */\n  success?: boolean;\n\n  /**\n   * Indicates whether the call is signed (optional).\n   * @type {boolean}\n   */\n  isSigned?: boolean;\n}\n\n/**\n * Represents a handler for Substrate blocks.\n * @type {SubstrateCustomHandler<SubstrateHandlerKind.Block, SubstrateBlockFilter>}\n */\nexport type SubstrateBlockHandler = SubstrateCustomHandler<SubstrateHandlerKind.Block, SubstrateBlockFilter>;\n\n/**\n * Represents a handler for Substrate calls.\n * @type {SubstrateCustomHandler<SubstrateHandlerKind.Call, SubstrateCallFilter>}\n */\nexport type SubstrateCallHandler = SubstrateCustomHandler<SubstrateHandlerKind.Call, SubstrateCallFilter>;\n\n/**\n * Represents a handler for Substrate events.\n * @type {SubstrateCustomHandler<SubstrateHandlerKind.Event, SubstrateEventFilter>}\n */\nexport type SubstrateEventHandler = SubstrateCustomHandler<SubstrateHandlerKind.Event, SubstrateEventFilter>;\n\n/**\n * Represents a generic custom handler for Substrate.\n * @interface\n * @template K - The kind of the handler (default: string).\n * @template F - The filter type for the handler (default: Record<string, unknown>).\n */\nexport interface SubstrateCustomHandler<K extends string = string, F = Record<string, unknown>>\n  extends BaseHandler<F, K> {\n  /**\n   * The kind of handler. For `substrate/Runtime` datasources this is either `Block`, `Call` or `Event` kinds.\n   * The value of this will determine the filter options as well as the data provided to your handler function\n   * @type {SubstrateHandlerKind.Block | SubstrateHandlerKind.Call | SubstrateHandlerKind.Event | string }\n   * @example\n   * kind: SubstrateHandlerKind.Block // Defined with an enum, this is used for runtime datasources\n   * @example\n   * kind: 'substrate/FrontierEvmEvent' // Defined with a string, this is used with custom datasources\n   */\n  kind: K;\n  /**\n   * @type {F}\n   * @example\n   * filter: {\n   *   module: 'balances',\n   *   method: 'Deposit',\n   *   success: true,\n   * } // A Call filter\n   */\n  filter?: F;\n}\n\n/**\n * Represents a runtime handler for Substrate, which can be a block handler, call handler, or event handler.\n * @type {SubstrateBlockHandler | SubstrateCallHandler | SubstrateEventHandler}\n */\nexport type SubstrateRuntimeHandler = SubstrateBlockHandler | SubstrateCallHandler | SubstrateEventHandler;\n\n/**\n * Represents a handler for Substrate, which can be a runtime handler or a custom handler with unknown filter type.\n * @type {SubstrateRuntimeHandler | SubstrateCustomHandler<string, unknown>}\n */\nexport type SubstrateHandler = SubstrateRuntimeHandler | SubstrateCustomHandler<string, unknown>;\n\n/**\n * Represents a filter for Substrate runtime handlers, which can be a block filter, call filter, or event filter.\n * @type {SubstrateBlockFilter | SubstrateCallFilter | SubstrateEventFilter}\n */\nexport type SubstrateRuntimeHandlerFilter = SubstrateBlockFilter | SubstrateCallFilter | SubstrateEventFilter;\n\n/**\n * Represents a mapping for Substrate handlers, extending FileReference.\n * @interface\n * @extends {FileReference}\n */\nexport interface SubstrateMapping<T extends SubstrateHandler = SubstrateHandler> extends BaseMapping<T> {\n  /**\n   * @type {T[]}\n   * @example\n   * handlers: [{\n        kind: SubstrateHandlerKind.Call,\n        handler: 'handleCall',\n        filter: {\n          module: 'balances',\n          method: 'Deposit',\n          success: true,\n        }\n      }]\n   */\n  handlers: T[];\n}\n\n/**\n * Represents a runtime datasource for Substrate.\n * @interface\n * @template M - The mapping type for the datasource (default: SubstrateMapping<SubstrateRuntimeHandler>).\n */\nexport interface SubstrateRuntimeDatasource<\n  M extends SubstrateMapping<SubstrateRuntimeHandler> = SubstrateMapping<SubstrateRuntimeHandler>,\n> extends BaseDataSource<SubstrateHandler, M> {\n  /**\n   * The kind of the datasource, which is `substrate/Runtime`.\n   * @type {SubstrateDatasourceKind.Runtime}\n   */\n  kind: SubstrateDatasourceKind.Runtime;\n}\n\n/**\n * Represents a Substrate datasource, which can be either runtime or custom.\n * @type {SubstrateDatasource}\n */\nexport type SubstrateDatasource = SubstrateRuntimeDatasource | SubstrateCustomDatasource;\n\n/**\n * Represents a custom datasource for Substrate.\n * @interface\n * @template K - The kind of the datasource (default: string).\n * @template M - The mapping type for the datasource (default: SubstrateMapping<SubstrateCustomHandler>).\n * @template O - The processor options (default: any).\n */\nexport interface SubstrateCustomDatasource<\n  K extends string = string,\n  M extends SubstrateMapping = SubstrateMapping<SubstrateCustomHandler>,\n  O = any,\n> extends BaseCustomDataSource<SubstrateHandler, M> {\n  /**\n   * The kind of the custom datasource. This should follow the pattern `substrate/*`.\n   * @type {K}\n   * @example\n   * kind: 'substrate/FrontierEvm'\n   */\n  kind: K;\n\n  /**\n   * @example\n   * processor: {\n   *    file: './node_modules/@subql/frontier-evm-processor/dist/bundle.js',\n   *    options: {\n   *      abi: 'erc20',\n   *      address: '0x322E86852e492a7Ee17f28a78c663da38FB33bfb',\n   *    }\n   *  }\n   */\n  processor: Processor<O>;\n}\n\n/**\n * @deprecated use types core version. datasource processors need updating before this can be removed\n * */\nexport type HandlerInputTransformer_0_0_0<\n  IT extends AnyTuple,\n  IM extends RuntimeHandlerInputMap<IT>,\n  T extends SubstrateHandlerKind,\n  E,\n  DS extends SubstrateCustomDatasource = SubstrateCustomDatasource,\n> = BaseHandlerInputTransformer_0_0_0<IM[T], DS, ApiPromise, E>;\n\n/**\n * @deprecated use types core version. datasource processors need updating before this can be removed\n * */\nexport type HandlerInputTransformer_1_0_0<\n  IT extends AnyTuple,\n  IM extends RuntimeHandlerInputMap<IT>,\n  T extends SubstrateHandlerKind,\n  F extends Record<string, unknown>,\n  E,\n  DS extends SubstrateCustomDatasource = SubstrateCustomDatasource,\n> = BaseHandlerInputTransformer_1_0_0<IM[T], DS, ApiPromise, F, E>;\n\nexport type SecondLayerHandlerProcessorArray<\n  K extends string,\n  F extends Record<string, unknown>,\n  T,\n  DS extends SubstrateCustomDatasource<K> = SubstrateCustomDatasource<K>,\n> =\n  | SecondLayerHandlerProcessor<SubstrateHandlerKind.Block, F, T, DS>\n  | SecondLayerHandlerProcessor<SubstrateHandlerKind.Call, F, T, DS>\n  | SecondLayerHandlerProcessor<SubstrateHandlerKind.Event, F, T, DS>;\n\n/**\n * @deprecated use types core version. datasource processors need updating before this can be removed\n * */\nexport type SubstrateDatasourceProcessor<\n  K extends string,\n  F extends Record<string, unknown>,\n  DS extends SubstrateCustomDatasource<K> = SubstrateCustomDatasource<K>,\n  P extends Record<string, SecondLayerHandlerProcessorArray<K, F, any, DS>> = Record<\n    string,\n    SecondLayerHandlerProcessorArray<K, F, any, DS>\n  >,\n> = DsProcessor<DS, P, ApiPromise>;\n\nexport type SecondLayerHandlerProcessor<\n  K extends SubstrateHandlerKind,\n  F extends Record<string, unknown>,\n  E,\n  DS extends SubstrateCustomDatasource = SubstrateCustomDatasource,\n> =\n  | SecondLayerHandlerProcessor_0_0_0<K, RuntimeHandlerInputMap, RuntimeFilterMap, F, E, DS, ApiPromise>\n  | SecondLayerHandlerProcessor_1_0_0<K, RuntimeHandlerInputMap, RuntimeFilterMap, F, E, DS, ApiPromise>;\n\n/**\n * Represents a Substrate subquery network configuration, which is based on the CommonSubqueryNetworkConfig template.\n * @type {IProjectNetworkConfig}\n */\nexport type SubstrateNetworkConfig = IProjectNetworkConfig & {\n  /**\n   * The chain types associated with the network (optional).\n   * @type {FileReference}\n   */\n  chaintypes?: FileReference; // Align with previous field name\n};\n\n/**\n * Represents a Substrate project configuration based on the CommonSubqueryProject template.\n * @type {CommonSubqueryProject<SubstrateNetworkConfig, SubstrateDatasource, RuntimeDatasourceTemplate | CustomDatasourceTemplate>}\n */\nexport type SubstrateProject<DS extends SubstrateDatasource = SubstrateRuntimeDatasource> = CommonSubqueryProject<\n  SubstrateNetworkConfig,\n  SubstrateRuntimeDatasource | DS,\n  BaseTemplateDataSource<SubstrateRuntimeDatasource> | BaseTemplateDataSource<DS>\n>;\n"
  },
  {
    "path": "packages/types/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"strictNullChecks\": true,\n    \"tsBuildInfoFile\": \"dist/.tsbuildinfo\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"dist\",\n    \"noImplicitAny\": true\n  },\n  \"references\": [{\"path\": \"../types-core\"}],\n  \"include\": [\"src/**/*\"]\n}\n"
  },
  {
    "path": "packages/types-core/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [2.2.0] - 2025-10-15\n### Changed\n- Minor improvements and fixes from upgrading to eslint 9 with stricter settings (#2929)\n\n## [2.1.1] - 2025-07-14\n### Fixed\n- Missing deps for imported deps (#2842)\n\n## [2.1.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n## [2.0.2] - 2025-02-26\n### Added\n- CompatEntity type for when using alternative ID types (#2700)\n\n## [2.0.1] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n\n## [2.0.0] - 2024-10-21\n### Changed\n- Update store interface making options.limit required on getByField(s) methods (#2567)\n\n## [1.1.1] - 2024-08-12\n### Fixed\n- DS Processor types not being able to distinguish input and filter types (#2522)\n\n## [1.1.0] - 2024-08-05\n### Changed\n- Update dependencies (#2518)\n\n## [1.0.0] - 2024-08-01\n### Added\n- New endpoint type to allow specifying endpoint config (#2511)\n\n## [0.10.0] - 2024-07-11\n### Changed\n- Make assets optional on `BaseAssetsDataSource` (#2484)\n\n## [0.9.1] - 2024-07-09\n### Changed\n- Changes to ts build settings (#2475)\n\n## [0.9.0] - 2024-07-01\n### Added\n- Add generic network module types (#2462)\n\n## [0.8.0] - 2024-06-21\n### Changed\n- Reader interface not returning undefined\n\n## [0.7.0] - 2024-04-24\n### Added\n- GetOptions type with support for ordering store methods (#2325)\n- Generic ds processor types from types (#2357)\n\n## [0.6.0] - 2024-03-28\n### Changed\n- Dictionary type changed (#2257)\n\n## [0.5.0] - 2024-02-07\n### Added\n- Update `ParentProject` to use `untilBlock` as and alias for `block` (#2235)\n\n## [0.4.0] - 2023-11-27\n### Changed\n- Split out `BaseAssetsDataSource` interface from `BaseCustomDataSource` (#2182)\n\n## [0.3.0] - 2023-10-31\n### Added\n- New `endBlock` option on datasources (#2064)\n\n## [0.2.0] - 2023-10-20\n### Added\n- Add cache to injected globals (#2110)\n\n### Changed\n- Update `ProjectManifestV1_0_0` with generic networkConfig (#2061)\n\n## [0.1.0] - 2023-10-02\n### Changed\n- Update `BaseDataSource` and `BaseCustomDataSource` with JSDoc (#2056)\n\n## [0.0.1] - 2023-09-29\n### Added\n- Initial release of new package containing types common to all chains\n\n[Unreleased]: https://github.com/subquery/subql/compare/types-core/2.2.0...HEAD\n[2.2.0]: https://github.com/subquery/subql/compare/types-core/2.1.1...types-core/2.2.0\n[2.1.1]: https://github.com/subquery/subql/compare/types-core/2.1.0...types-core/2.1.1\n[2.1.0]: https://github.com/subquery/subql/compare/types-core/2.0.2...types-core/2.1.0\n[2.0.2]: https://github.com/subquery/subql/compare/types-core/2.0.1...types-core/2.0.2\n[2.0.1]: https://github.com/subquery/subql/compare/types-core/2.0.0...types-core/2.0.1\n[2.0.0]: https://github.com/subquery/subql/compare/types-core/1.1.1...types-core/2.0.0\n[1.1.1]: https://github.com/subquery/subql/compare/types-core/1.1.0...types-core/1.1.1\n[1.1.0]: https://github.com/subquery/subql/compare/types-core/1.0.0...types-core/1.1.0\n[1.0.0]: https://github.com/subquery/subql/compare/types-core/0.10.0...types-core/1.0.0\n[0.10.0]: https://github.com/subquery/subql/compare/types-core/0.9.1...types-core/0.10.0\n[0.9.1]: https://github.com/subquery/subql/compare/types-core/0.9.0...types-core/0.9.1\n[0.9.0]: https://github.com/subquery/subql/compare/types-core/0.8.0...types-core/0.9.0\n[0.8.0]: https://github.com/subquery/subql/compare/types-core/0.7.0...types-core/0.8.0\n[0.7.0]: https://github.com/subquery/subql/compare/types-core/0.6.0...types-core/0.7.0\n[0.6.0]: https://github.com/subquery/subql/compare/types-core/0.5.0...types-core/0.6.0\n[0.5.0]: https://github.com/subquery/subql/compare/types-core/0.4.0...types-core/0.5.0\n[0.4.0]: https://github.com/subquery/subql/compare/types-core/0.3.0...types-core/0.4.0\n[0.3.0]: https://github.com/subquery/subql/compare/types-core/0.2.0...types-core/0.3.0\n[0.2.0]: https://github.com/subquery/subql/compare/types-core/0.1.0...types-core/0.2.0\n[0.1.0]: https://github.com/subquery/subql/compare/types-core/0.0.1...types-core/0.1.0\n[0.0.1]: https://github.com/subquery/subql/tag/types-core/0.0.1\n"
  },
  {
    "path": "packages/types-core/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/types-core/package.json",
    "content": "{\n  \"name\": \"@subql/types-core\",\n  \"version\": \"2.2.0\",\n  \"description\": \"\",\n  \"homepage\": \"https://github.com/subquery/subql\",\n  \"repository\": \"github:subquery/subql\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n    \"build\": \"rm -rf dist && tsc -b\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"types-core/\\\"\"\n  },\n  \"author\": \"Ian He\",\n  \"main\": \"dist/index.js\",\n  \"license\": \"GPL-3.0\",\n  \"files\": [\n    \"/dist\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\",\n    \"package.json\",\n    \"README.md\",\n    \"CHANGELOG.md\",\n    \"LICENSE\"\n  ],\n  \"dependencies\": {\n    \"package-json-type\": \"^1.0.3\",\n    \"pino\": \"^6.13.3\"\n  }\n}\n"
  },
  {
    "path": "packages/types-core/src/global.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport type Pino from 'pino';\nimport {Cache, DynamicDatasourceCreator} from './interfaces';\nimport {Store} from './store';\n\n// base global\ndeclare global {\n  const logger: Pino.Logger;\n  const store: Store;\n  const cache: Cache;\n  const chainId: string;\n  const createDynamicDatasource: DynamicDatasourceCreator;\n}\n"
  },
  {
    "path": "packages/types-core/src/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './interfaces';\nexport * from './project';\nexport * from './store';\nexport * from './multichain';\n"
  },
  {
    "path": "packages/types-core/src/interfaces.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport type DynamicDatasourceCreator = (name: string, args: Record<string, unknown>) => Promise<void>;\n\nexport interface Cache<T extends Record<string, any> = Record<string, any>> {\n  set(key: keyof T, value: T[keyof T]): Promise<void>;\n  get(key: keyof T): Promise<T[keyof T] | undefined>;\n}\n"
  },
  {
    "path": "packages/types-core/src/multichain/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './types';\n"
  },
  {
    "path": "packages/types-core/src/multichain/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {QuerySpec} from '../project';\n\nexport interface MultichainProjectManifest {\n  specVersion: string;\n  projects: string[];\n  query: QuerySpec;\n}\n"
  },
  {
    "path": "packages/types-core/src/project/datasourceProcessors.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {DictionaryQueryEntry} from './types';\nimport {BaseCustomDataSource} from './versioned';\n\n/**\n * Maps a handler kind to the data type\n * @example {\n * 'block': BlockType,\n * 'transaction': TransactionType,\n * 'event': EventType,\n * }*/\nexport type HandlerInputMap = Record<string, any>;\n\nexport interface HandlerInputTransformer_0_0_0<\n  Input,\n  DS extends BaseCustomDataSource,\n  API,\n  E, // Output type\n> {\n  (input: Input, ds: DS, api: API, assets?: Record<string, string>): Promise<E>;\n}\n\nexport interface HandlerInputTransformer_1_0_0<\n  Input,\n  DS extends BaseCustomDataSource,\n  API,\n  F extends Record<string, unknown>,\n  E, // Output type\n> {\n  (params: {input: Input; ds: DS; api: API; filter?: F; assets?: Record<string, string>}): Promise<E[]>;\n}\n\ninterface SecondLayerHandlerProcessorBase<\n  BaseFilterMap extends HandlerInputMap,\n  K extends keyof BaseFilterMap,\n  F extends Record<string, unknown>,\n  DS extends BaseCustomDataSource,\n> {\n  baseHandlerKind: K;\n  baseFilter: BaseFilterMap[K] | BaseFilterMap[K][];\n  filterValidator: (filter?: F) => void;\n  dictionaryQuery?: (filter: F, ds: DS) => DictionaryQueryEntry | undefined;\n}\n\n// only allow one custom handler for each baseHandler kind\nexport interface SecondLayerHandlerProcessor_0_0_0<\n  InputKinds extends string | symbol,\n  HandlerInput extends Record<InputKinds, any>,\n  BaseHandlerFilters extends Record<InputKinds, any>,\n  F extends Record<string, unknown>,\n  E,\n  DS extends BaseCustomDataSource,\n  API,\n> extends SecondLayerHandlerProcessorBase<BaseHandlerFilters, InputKinds, F, DS> {\n  specVersion: undefined;\n  transformer: HandlerInputTransformer_0_0_0<HandlerInput[InputKinds], DS, API, E>;\n  filterProcessor: (filter: F | undefined, input: HandlerInput[InputKinds], ds: DS) => boolean;\n}\n\nexport interface SecondLayerHandlerProcessor_1_0_0<\n  InputKinds extends string | symbol,\n  HandlerInput extends Record<InputKinds, any>,\n  BaseHandlerFilters extends Record<InputKinds, any>,\n  F extends Record<string, unknown>,\n  E,\n  DS extends BaseCustomDataSource,\n  API,\n> extends SecondLayerHandlerProcessorBase<BaseHandlerFilters, InputKinds, F, DS> {\n  specVersion: '1.0.0';\n  transformer: HandlerInputTransformer_1_0_0<HandlerInput[InputKinds], DS, API, F, E>;\n  filterProcessor: (params: {filter: F | undefined; input: HandlerInput[InputKinds]; ds: DS}) => boolean;\n}\n\nexport type SecondLayerHandlerProcessor<\n  InputKinds extends string | symbol,\n  HandlerInput extends Record<InputKinds, any>,\n  BaseHandlerFilters extends Record<InputKinds, any>,\n  F extends Record<string, unknown>,\n  E,\n  DS extends BaseCustomDataSource,\n  API,\n> =\n  | SecondLayerHandlerProcessor_0_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API>\n  | SecondLayerHandlerProcessor_1_0_0<InputKinds, HandlerInput, BaseHandlerFilters, F, E, DS, API>;\n"
  },
  {
    "path": "packages/types-core/src/project/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './types';\nexport * from './versioned';\nexport * from './readers';\nexport * from './datasourceProcessors';\nexport * from './modulars';\n"
  },
  {
    "path": "packages/types-core/src/project/modulars/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './types';\n"
  },
  {
    "path": "packages/types-core/src/project/modulars/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BaseCustomDataSource, BaseDataSource, IProjectManifest, ProjectManifestBaseImplInterface} from '../index';\n\nexport interface INetworkCommonModule<\n  D extends BaseCustomDataSource | BaseDataSource = BaseDataSource,\n  RDS extends D = D,\n  CDS extends D = D,\n> {\n  parseProjectManifest(raw: unknown): IProjectManifest<D> & {\n    // other missing interfaces ProjectManifestVersioned\n    asImpl: ProjectManifestBaseImplInterface;\n  };\n  isRuntimeDs(ds: D): ds is RDS;\n  isCustomDs(ds: D): ds is CDS;\n}\n"
  },
  {
    "path": "packages/types-core/src/project/readers/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './reader';\n"
  },
  {
    "path": "packages/types-core/src/project/readers/reader.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport type {IPackageJson} from 'package-json-type';\n\nexport type ReaderOptions = {\n  ipfs?: string;\n};\n\nexport interface Reader {\n  getProjectSchema(): Promise<unknown>;\n  getPkg(): Promise<IPackageJson>;\n  getFile(file: string): Promise<string>;\n  root: string | undefined;\n}\n"
  },
  {
    "path": "packages/types-core/src/project/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {BaseDataSource, BaseTemplateDataSource, ParentProject, RunnerSpecs} from './versioned';\n\n/**\n * Represents a common subquery project configuration.\n * @template N - The type of the network configuration (default: CommonSubqueryNetworkConfig).\n * @template DS - The type of the base data source (default: BaseDataSource).\n * @template T - The type of templates (default: unknown).\n */\nexport interface CommonSubqueryProject<\n  N extends IProjectNetworkConfig = IProjectNetworkConfig,\n  DS extends BaseDataSource = BaseDataSource,\n  T extends BaseTemplateDataSource<DS> = BaseTemplateDataSource<DS>,\n> {\n  /**\n   * The repository of your SubQuery project.\n   * @type {string}\n   */\n  repository?: string;\n  /**\n   * The version string of your SubQuery project.\n   * @type {string}\n   * @default \"1.0.0\"\n   */\n  version?: string;\n  /**\n   * The name of your SubQuery project.\n   * @type {string}\n   */\n  name?: string;\n  /**\n   * The specVersion of the SubQuery project manifest file, the latest and suggested is 1.0.0\n   * @type {string}\n   * @default \"1.0.0\"\n   */\n  specVersion: string;\n  /**\n   * A description of your SubQuery project.\n   * @type {string}\n   */\n  description?: string;\n  /**\n   * The location of your GraphQL schema file.\n   * @type {FileReference}\n   */\n  schema: FileReference;\n  /**\n   * The runner specifications for the common SubQuery project.\n   * @readonly\n   * @type {RunnerSpecs}\n   */\n  readonly runner?: RunnerSpecs;\n  /**\n   * The parent manifest of current project.\n   * @readonly\n   * @type {ParentProject}\n   */\n  readonly parent?: ParentProject;\n  /**\n   * The network configuration for the SubQuery project.\n   *\n   * This defines what network you are wanting to index as well as the details on how to connect to it.\n   * @readonly\n   * @type {N}\n   */\n  readonly network: N;\n  /**\n   * An array of data sources associated with the SubQuery project.\n   *\n   * Defines the data that will be filtered and extracted and the location of the mapping function handler for the data transformation to be applied.\n   * @readonly\n   * @type {DS[]}\n   */\n  readonly dataSources: DS[];\n  /**\n   * An array of project templates associated with the project.\n   *\n   * These are the same as datasources but instead of having a startBlock they have a unique name.\n   * These are used to dynamically create data sources, this is useful when you don't know the start block.\n   * e.g When a factory creates a new instance of a contract you can initialize a datasource from a template in your mapping function.\n   * @readonly\n   * @type {T[]}\n   */\n  readonly templates?: T[];\n}\n\n/**\n * Represents the common network configuration for a subquery project.\n * @interface\n * @extends {ProjectNetworkConfig}\n */\nexport interface IProjectNetworkConfig<EndpointConfig extends IEndpointConfig = IEndpointConfig>\n  extends ProjectNetworkConfig<EndpointConfig> {\n  /**\n   * The unique identity of the chain.\n   *\n   * This differs for different blockchain ecosystems, please refer to our documentation\n   * @type {string}\n   * @example\n   * chainId: '1' // Ethereum\n   * @example\n   * chainId: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3' // Polkadot\n   * @example\n   * chainId: 'juno-1' // Cosmos Juno\n   * */\n  chainId: string;\n}\n\nexport type DsProcessor<DS, P extends Record<string, any> = Record<string, any>, API = any> = {\n  kind: string;\n  validate: (ds: DS, assets: Record<string, string>) => void;\n  dsFilterProcessor: (ds: DS, api: API) => boolean;\n  handlerProcessors: P;\n};\n\nexport interface ProjectRootAndManifest {\n  root: string;\n  manifests: string[];\n}\n\nexport interface IProjectManifest<D> {\n  specVersion: string;\n  description?: string;\n  repository?: string;\n  dataSources: D[];\n  toDeployment(): string;\n  validate(): void;\n}\n\n/* Define specific behaviour for rate limits*/\nexport interface IEndpointConfig {\n  /* Headers to be supplied with the requests to the endpoint */\n  headers?: Record<string, string>;\n}\n\n/**\n * Represents the network configuration for a project.\n * @interface\n */\nexport interface ProjectNetworkConfig<EndpointConfig extends IEndpointConfig = IEndpointConfig> {\n  /**\n   * The endpoint(s) for the network connection, which can be a single string or an array of strings.\n   *\n   * Endpoints ideally should non-pruned archive nodes (so you have access for the entire chain state)\n   * We recommend providing more than one endpoint for improved reliability, performance, and uptime.\n   * Public nodes may be rate limited, which can affect indexing speed\n   * When developing your project we suggest adding a private API key\n   *\n   * @type {string | string[] | Record<string, IEndpointConfig> }\n   */\n  endpoint: string | string[] | Record<string, EndpointConfig>;\n\n  /**\n   * The SubQuery network dictionary endpoint (optional).\n   * This significantly speeds up indexing of your project.\n   *\n   * @type {string}\n   */\n  dictionary?: string | string[];\n\n  /**\n   * An array of block numbers or block ranges to bypass (optional).\n   * @type {(number | string)[]}\n   * @example\n   * [1, 2, 3, '5-10']\n   */\n  bypassBlocks?: (number | `${number}-${number}`)[];\n}\n\n/**\n * Represents a reference to a file.\n * @interface\n */\nexport interface FileReference {\n  /**\n   * The path or name of the referenced file from the root of this project.\n   * @type {string}\n   */\n  file: string;\n}\nexport type Processor<O = any> = FileReference & {options?: O};\n\nexport interface DictionaryQueryCondition {\n  field: string;\n  value: string | string[] | boolean;\n  matcher?: string; // defaults to \"equalTo\", use \"contains\" for JSON\n}\n\nexport interface DictionaryQueryEntry {\n  entity: string;\n  conditions: DictionaryQueryCondition[];\n}\n"
  },
  {
    "path": "packages/types-core/src/project/versioned/base.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {ParentProject} from '../../project';\nimport {FileReference, Processor} from '../types';\n\nexport interface BaseDataSource<H extends BaseHandler = BaseHandler, M extends BaseMapping<H> = BaseMapping<H>> {\n  /**\n   * The kind of the datasource.\n   * @type {string}\n   */\n  kind: string;\n  /**\n   * The starting block number for the datasource. If not specified, 1 will be used (optional).\n   * @type {number}\n   * @default 1\n   */\n  startBlock?: number;\n  /**\n   * The ending block number for the datasource (optional).\n   * @type {number}\n   */\n  endBlock?: number;\n  /**\n   * The mapping associated with the datasource.\n   * This contains the handlers.\n   * @type {M}\n   */\n  mapping: M;\n}\n\nexport interface BaseCustomDataSource<H extends BaseHandler = BaseHandler, T extends BaseMapping<H> = BaseMapping<H>>\n  extends BaseDataSource<H, T>,\n    BaseAssetsDataSource {\n  /**\n   * The processor used for the custom datasource.\n   * @type {Processor<O>}\n   */\n  processor: Processor;\n}\n\nexport interface BaseAssetsDataSource {\n  /**\n   * A map of custom datasource assets. These typically include ABIs or other files used to decode data.\n   * @type {Map<string, FileReference>}\n   * @example\n   * assets: new Map([['erc20', './abis/erc20.json']])\n   */\n  assets?: Map<string, FileReference>;\n}\n\nexport interface BaseMapping<T extends BaseHandler> extends FileReference {\n  /**\n   * An array of handlers associated with the mapping.\n   * @type {T[]}\n   */\n  handlers: T[];\n}\n\nexport interface BaseHandler<T = any, K extends string = string> {\n  kind: K;\n  /**\n   * The name of your handler function. This must be defined and exported from your code.\n   * @type {string}\n   * @example\n   * handler: 'handleBlock'\n   */\n  handler: string;\n  /**\n   * The filter for the handler. The handler kind will determine the possible filters (optional).\n   */\n  filter?: T;\n}\n\nexport interface TemplateBase {\n  /**\n   * The name of the template. This must be unique.\n   * */\n  name: string;\n}\n\nexport type BaseTemplateDataSource<DS extends BaseDataSource = BaseDataSource> = Omit<DS, 'startBlock' | 'endBlock'> &\n  TemplateBase;\n\nexport interface ProjectManifestBaseImplInterface<\n  D extends BaseDeploymentV1_0_0Interface = BaseDeploymentV1_0_0Interface,\n> {\n  deployment: D;\n}\n\nexport interface BaseDeploymentV1_0_0Interface {\n  specVersion: string;\n  schema: FileReference;\n  parent?: ParentProject;\n  toYaml(): string;\n}\n"
  },
  {
    "path": "packages/types-core/src/project/versioned/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './base';\nexport * from './v1_0_0';\n"
  },
  {
    "path": "packages/types-core/src/project/versioned/v1_0_0/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './types';\n"
  },
  {
    "path": "packages/types-core/src/project/versioned/v1_0_0/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IProjectNetworkConfig} from '../../types';\nimport {BaseDataSource, BaseTemplateDataSource} from '../base';\n\n/**\n * Represents specifications for an indexer runner.\n * @interface\n */\nexport interface RunnerSpecs {\n  /**\n   * The specifications for a node.\n   * @type {NodeSpec}\n   */\n  node: NodeSpec;\n\n  /**\n   * The specifications for a query.\n   * @type {QuerySpec}\n   */\n  query: QuerySpec;\n}\n\n/**\n * Represents specifications for a node.\n * @interface\n * @example\n * // Example of a substrate based NodeSpec\n * const nodeSpec = {\n *   name: '@subql/node'\n *   version: '^2.15.0'\n *   options: {\n *     historical: true\n *   }\n * }\n */\nexport interface NodeSpec {\n  /**\n   * The name of the indexer node.\n   * @type {string}\n   */\n  name: string;\n\n  /**\n   * The version number of the indexer node.\n   * @type {string}\n   * @default \"*\"\n   */\n  version: string;\n\n  /**\n   * Additional options for the node (optional).\n   * @type {NodeOptions}\n   */\n  options?: NodeOptions;\n}\n\n/**\n * Represents specifications for a query.\n * @interface\n */\nexport interface QuerySpec {\n  /**\n   * The name of the query service.\n   * @type {string}\n   * @default \"@subql/query\"\n   */\n  name: string;\n  /**\n   * The version number of the query service.\n   * @type {string}\n   * @default \"*\"\n   */\n  version: string;\n}\n\n/**\n * Represents optional configuration options for a node.\n * @interface\n */\nexport interface NodeOptions {\n  /**\n   * Indicates whether historical state tracking is enabled for the indexer (optional).\n   * @type {boolean}\n   * @default \"true\"\n   */\n  historical?: boolean;\n\n  /**\n   * Indicates whether unsafe mode are allowed for the indexer (optional).\n   *\n   * Unsafe mode controls various features that compromise the determinsm of a SubQuery project.\n   * Unsafe allows any imports which greatly increases functionality with the tradeoff of decreased security\n   * @type {boolean}\n   * @default \"false\"\n   */\n  unsafe?: boolean;\n\n  /**\n   * Indicates whether unfinalized blocks are supported by the indexer (optional).\n   *\n   * This allows you to index blocks before they become finalized.\n   * It can be very useful if you want the most up-to-date data possible.\n   * It will detect any forks and remove any blocks that don't become finalized.\n   * @type {boolean}\n   * @default \"false\"\n   */\n  unfinalizedBlocks?: boolean;\n\n  /**\n   * Indicates whether transaction skipping is enabled for the indexer. (optional).\n   * If this is enabled and the project only contains event handlers then it wont fetch transactions reducing memory footprint and RPC requests. This can lead to faster indexing.\n   * @type {boolean}\n   */\n  skipTransactions?: boolean;\n}\n\n/**\n * Represents a parent project configuration.\n * @interface\n */\nexport interface ParentProject {\n  /**\n   * The block height at which to switch from the parent project to this project.\n   * @deprecated Please use `untilBlock` instead\n   * @type {number}\n   * @description The block height to switch from the parent project to this project.\n   */\n  block: number;\n\n  /**\n   * The block height at which to switch from the parent project to this project.\n   * @type {number}\n   * @description The block height to switch from the parent project to this project.\n   */\n  untilBlock: number;\n\n  /**\n   * The IPFS CID (Content Identifier) referencing the parent project.\n   * @type {string}\n   * @description The IPFS CID to the parent project.\n   */\n  reference: string;\n}\n\nexport interface ProjectManifestV1_0_0<\n  D extends BaseDataSource = BaseDataSource,\n  T extends BaseTemplateDataSource<D> = BaseTemplateDataSource<D>,\n  C extends IProjectNetworkConfig = IProjectNetworkConfig,\n> {\n  name?: string;\n  version: string;\n  schema: {\n    file: string;\n  };\n  specVersion: string;\n  repository?: string;\n  description?: string;\n  templates?: T[];\n  dataSources: D[];\n  runner: RunnerSpecs;\n  network: C;\n  parent?: ParentProject;\n}\n\nexport interface BlockFilter {\n  /**\n   * The modulo value for filtering blocks (optional).\n   * @type {number}\n   * @example\n   * modulo: 5, // every 5 blocks will be indexed\n   */\n  modulo?: number;\n\n  /**\n   * A cron expression will index blocks at an interval (optional).\n   * @type {string}\n   * @example\n   * timestamp: \"\\*\\/5 * * * *\"\n   */\n  timestamp?: string;\n}\n"
  },
  {
    "path": "packages/types-core/src/store.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport type FunctionPropertyNames<T> = {\n  // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n  [K in keyof T]: T[K] extends Function ? K : never;\n}[keyof T];\n\ntype SingleOperators = '=' | '!=';\ntype ArrayOperators = 'in' | '!in';\nexport type FieldOperators = SingleOperators | ArrayOperators;\n\nexport type FieldsExpression<T> =\n  | [field: keyof T, operator: SingleOperators, value: T[keyof T]]\n  | [field: keyof T, operator: ArrayOperators, value: Array<T[keyof T]>];\n\nexport interface Entity {\n  id: string;\n  _name?: string;\n  save?: () => Promise<void>;\n}\n\n// Used in selective places where @dbType directive is used to change the ID type\nexport type CompatEntity<T> = Omit<Entity, 'id'> & {id: T};\n\nexport type GetOptions<T> = {\n  /**\n   * The number of items to return, if this exceeds the query-limit flag it will throw\n   * */\n  limit: number;\n  offset?: number;\n  orderBy?: keyof T;\n  orderDirection?: 'ASC' | 'DESC';\n};\n\nexport interface Store {\n  get(entity: string, id: string): Promise<Entity | undefined>;\n  /**\n   * Gets entities matching the specified filters and options.\n   *\n   * ⚠️ This function will first search cache data followed by DB data. Please consider this when using order and offset options.⚠️\n   * */\n  getByFields<T extends Entity>(entity: string, filter: FieldsExpression<T>[], options: GetOptions<T>): Promise<T[]>;\n  /**\n   * This is an alias for getByFields with a single filter\n   * */\n  getByField<T extends Entity>(entity: string, field: keyof T, value: any, options: GetOptions<T>): Promise<T[]>;\n  /**\n   * This is an alias for getByField with limit set to 1\n   * */\n  getOneByField(entity: string, field: string, value: any): Promise<Entity | undefined>;\n  set(entity: string, id: string, data: Entity): Promise<void>;\n  bulkCreate(entity: string, data: Entity[]): Promise<void>;\n  //if fields in provided, only specify fields will be updated\n  bulkUpdate(entity: string, data: Entity[], fields?: string[]): Promise<void>;\n  remove(entity: string, id: string): Promise<void>;\n  bulkRemove(entity: string, ids: string[]): Promise<void>;\n}\n"
  },
  {
    "path": "packages/types-core/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"strictNullChecks\": true,\n    \"tsBuildInfoFile\": \"dist/.tsbuildinfo\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"dist\",\n    \"noImplicitAny\": true\n  },\n  \"include\": [\"src/**/*\"]\n}\n"
  },
  {
    "path": "packages/utils/CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [2.22.1] - 2025-11-05\n### Changed\n- Update flatted dependency (#2941)\n\n## [2.22.0] - 2025-10-15\n### Changed\n- Minor improvements and fixes from upgrading to eslint 9 with stricter settings (#2929)\n\n## [2.21.2] - 2025-09-16\n### Changed\n- Address some linter related warnings (#2876)\n- Update polkadot dependenices (#2915)\n\n## [2.21.1] - 2025-07-24\n### Fixed\n- Typos (#2834)\n\n## [2.21.0] - 2025-07-14\n### Changed\n- Update polkadot deps to align with `@polkadot/api@16` (#2845)\n\n## [2.20.1] - 2025-07-02\n### Fixed\n- Regex for \\_global table (#2840)\n\n## [2.20.0] - 2025-07-01\n### Removed\n- Test files and artifacts from published package (#2838)\n\n## [2.19.0] - 2025-05-21\n### Added\n- Regex for \\`\\_global\\` table (#2799)\n\n## [2.18.1] - 2025-04-24\n### Changed\n- Update polkadot dependencies\n\n## [2.18.0] - 2025-02-19\n### Changed\n- Update polkadot api to 15 (#2680)\n\n## [2.17.2] - 2025-02-04\n### Changed\n- Update copyright header to 2025\n- Update error message to include allowed dbType types (#2662)\n\n### Fixed\n- Various typos\n\n## [2.17.1] - 2025-01-28\n### Fixed\n- Graphql entity relations not resolving the id type from the `@dbType` directive (#2649)\n\n## [2.17.0] - 2024-12-11\n### Added\n- @dbType graphql directive (#2622)\n\n## [2.16.0] - 2024-11-25\n### Changed\n- Update polkadot/api library to 14 version\n\n## [2.15.0] - 2024-11-22\n### Added\n- Support for indexes on enums (#2586)\n\n### Changed\n- Update metadata types (#2584)\n\n## [2.14.0] - 2024-08-05\n### Added\n- `findAvailablePort` function from common package (#2518)\n\n### Changed\n- Update dependencies (#2518)\n\n## [2.13.1] - 2024-07-25\n### Fixed\n- Fix hashcode for Json and Json array, sorted keys before hashing\n\n## [2.13.0] - 2024-07-22\n### Changed\n- Update error log format to specify the name of the error instance where possible (#2492)\n\n## [2.12.1] - 2024-07-09\n### Changed\n- Changes to ts build settings (#2475)\n\n## [2.12.0] - 2024-06-21\n### Added\n- Better error messages for invalid graphql schemas (#2458)\n- enable ts strict mode\n- TS check reports errors when debugging Query\n\n## [2.11.0] - 2024-06-12\n### Changed\n- Support logging errors with provided cause and improve colors (#2435)\n\n## [2.10.0] - 2024-05-08\n### Changed\n- Update polkadot dependencies to v11\n\n## [2.9.2] - 2024-05-02\n### Fixed\n- Debug flag not working with worker loggers (#2374)\n\n## [2.9.1] - 2024-04-12\n### Changed\n- Update tar dependency\n\n## [2.9.0] - 2024-03-28\n### Added\n- Export 'numberToHex' (#2307)\n- Add method `hexStripZeros` to handle hex string in order to align with ethers (#2319)\n\n## [2.8.0] - 2024-03-05\n### Added\n- New fullText graphql directive (#2280)\n\n## [2.7.1] - 2024-02-29\n### Fixed\n- Fixed Int hashCode method failed due to original method not support negative value (#2278)\n\n## [2.7.0] - 2024-01-25\n### Added\n- export sequelize support types (#2179)\n\n## [2.6.2] - 2024-01-10\n### Fixed\n- Update x-sequelize improve `getForeignKeyReferencesQuery` performance in large size DB (#2212)\n\n## [2.6.1] - 2024-01-04\n### Fixed\n- Update x-sequelize, fix `more than one row returned by a subquery used as an expression` error. (#2209)\n\n## [2.6.0] - 2023-11-10\n### Changed\n- Update Polkadot/util to 10.5.1 (#2150)\n\n### Removed\n- Removed unused `axios` from dependency (#2155)\n\n## [2.5.0] - 2023-10-31\n### Added\n- Logger now supports negative filters. To use this prefix the logger name with a `-`. E.g `--debug=\"*,-SQL\"` (#2133)\n\n## [2.4.4] - 2023-10-11\n### Added\n- Option to set debug level for child loggers\n\n### Fixed\n- fix undefined ts type for unsupported field type (#2003)\n\n## [2.4.3] - 2023-07-31\n### Fixed\n- Update license (#1891)\n\n## [2.4.2] - 2023-06-26\n### Fixed\n- Incorrect type for rowCountEstimate on metadata, remove terra metadata type (#1839)\n\n## [2.4.1] - 2023-06-09\n### Changed\n- Use @subql/x-sequelize in order support cockroach (#1791)\n\n## [2.4.0] - 2023-05-30\n### Added\n- Composite indexes for entities (#1759)\n- Expose base64 functions (#1761)\n\n## [2.3.0] - 2023-05-24\n### Added\n- Base58 util functions (#1750)\n\n## [2.2.0] - 2023-05-19\n### Changed\n- Update polkadot api to 10.7.1 (#1736)\n\n## [2.1.0] - 2023-05-10\n### Changed\n- Expose all `@polkadot/utils` and `@polkadot/utils-crypto` through utils (#1653)\n\n## [2.0.0] - 2023-04-20\n### Changed\n- Major release 2.0.0, align with other package versions\n\n## [1.5.0] - 2023-04-14\n### Added\n- Added option to @jsonField to disable GIN index (#1613)\n\n## [1.4.2] - 2023-03-29\n### Changed\n- update polkadot api to 10.1.4 (#1580)\n\n## [1.4.1] - 2023-02-21\n### Changed\n- Update sequlize to 6.28.0 (#1521)\n\n## [1.4.0] - 2023-01-23\n### Changed\n- Update metadata type with `startHeight` (#1473)\n- Update Polkadot api to 9.11.1 (#1483)\n\n## [1.3.1] - 2022-11-30\n### Fixed\n- Support postgres identifier restrictions (#1438)\n\n## [1.3.0] - 2022-11-23\n### Changed\n- Support for multi-chain indexing (#1375)\n\n## [1.2.0] - 2022-08-11\n### Changed\n- Update `sequelize` to 6.23.0. (#1311)\n\n## [1.1.0] - 2022-08-11\n### Changed\n- Update `@polkadot/util` to v10 (#1230)\n\n## [1.0.1] - 2022-07-05\n### Fixed\n- Tidy up dependency, move `ipfs-http-client` to common packages (#1160)\n\n## [1.0.0] - 2022-05-11\n### Changed\n- Major release\n\n## [0.1.0] - 2022-05-06\n### Changed\n- Update polkadot/api to 9\n\n[Unreleased]: https://github.com/subquery/subql/compare/utils/2.22.1...HEAD\n[2.22.1]: https://github.com/subquery/subql/compare/utils/2.22.0...utils/2.22.1\n[2.22.0]: https://github.com/subquery/subql/compare/utils/2.21.2...utils/2.22.0\n[2.21.2]: https://github.com/subquery/subql/compare/utils/2.21.1...utils/2.21.2\n[2.21.1]: https://github.com/subquery/subql/compare/utils/2.21.0...utils/2.21.1\n[2.21.0]: https://github.com/subquery/subql/compare/utils/2.20.1...utils/2.21.0\n[2.20.1]: https://github.com/subquery/subql/compare/utils/2.20.0...utils/2.20.1\n[2.20.0]: https://github.com/subquery/subql/compare/utils/2.19.0...utils/2.20.0\n[2.19.0]: https://github.com/subquery/subql/compare/utils/2.18.1...utils/2.19.0\n[2.18.1]: https://github.com/subquery/subql/compare/utils/2.18.0...utils/2.18.1\n[2.18.0]: https://github.com/subquery/subql/compare/utils/2.17.2...utils/2.18.0\n[2.17.2]: https://github.com/subquery/subql/compare/utils/2.17.1...utils/2.17.2\n[2.17.1]: https://github.com/subquery/subql/compare/utils/2.17.0...utils/2.17.1\n[2.17.0]: https://github.com/subquery/subql/compare/utils/2.16.0...utils/2.17.0\n[2.16.0]: https://github.com/subquery/subql/compare/utils/2.15.0...utils/2.16.0\n[2.15.0]: https://github.com/subquery/subql/compare/utils/2.14.0...utils/2.15.0\n[2.14.0]: https://github.com/subquery/subql/compare/utils/2.13.1...utils/2.14.0\n[2.13.1]: https://github.com/subquery/subql/compare/utils/2.13.0...utils/2.13.1\n[2.13.0]: https://github.com/subquery/subql/compare/utils/2.12.1...utils/2.13.0\n[2.12.1]: https://github.com/subquery/subql/compare/utils/2.12.0...utils/2.12.1\n[2.12.0]: https://github.com/subquery/subql/compare/utils/2.11.0...utils/2.12.0\n[2.11.0]: https://github.com/subquery/subql/compare/utils/2.10.0...utils/2.11.0\n[2.10.0]: https://github.com/subquery/subql/compare/utils/2.9.2...utils/2.10.0\n[2.9.2]: https://github.com/subquery/subql/compare/utils/2.9.1...utils/2.9.2\n[2.9.1]: https://github.com/subquery/subql/compare/utils/2.9.0...utils/2.9.1\n[2.9.0]: https://github.com/subquery/subql/compare/utils/2.8.0...utils/2.9.0\n[2.8.0]: https://github.com/subquery/subql/compare/utils/2.7.1...utils/2.8.0\n[2.7.1]: https://github.com/subquery/subql/compare/utils/2.7.0...utils/2.7.1\n[2.7.0]: https://github.com/subquery/subql/compare/utils/2.6.2...utils/2.7.0\n[2.6.2]: https://github.com/subquery/subql/compare/utils/2.6.1...utils/2.6.2\n[2.6.1]: https://github.com/subquery/subql/compare/utils/2.6.0...utils/2.6.1\n[2.6.0]: https://github.com/subquery/subql/compare/utils/2.5.0...utils/2.6.0\n[2.5.0]: https://github.com/subquery/subql/compare/utils/2.4.4...utils/2.5.0\n[2.4.4]: https://github.com/subquery/subql/compare/v2.4.3...v2.4.4\n[2.4.3]: https://github.com/subquery/subql/compare/v2.4.2...v2.4.3\n[2.4.2]: https://github.com/subquery/subql/compare/utils/2.4.1...utils/2.4.2\n[2.4.1]: https://github.com/subquery/subql/compare/utils/2.4.0...utils/2.4.1\n[2.4.0]: https://github.com/subquery/subql/compare/utils/2.3.0...utils/2.4.0\n[2.3.0]: https://github.com/subquery/subql/compare/utils/2.2.0...utils/2.3.0\n[2.2.0]: https://github.com/subquery/subql/compare/utils/2.1.0...utils/2.2.0\n[2.1.0]: https://github.com/subquery/subql/compare/utils/2.0.0...utils/2.1.0\n[2.0.0]: https://github.com/subquery/subql/compare/utils/1.5.0...utils/2.0.0\n[1.5.0]: https://github.com/subquery/subql/compare/utils/1.4.2...utils/1.5.0\n[1.4.2]: https://github.com/subquery/subql/compare/utils/1.4.1...utils/1.4.2\n[1.4.1]: https://github.com/subquery/subql/compare/utils/1.4.0...utils/1.4.1\n[1.4.0]: https://github.com/subquery/subql/compare/utils/1.3.1...utils/1.4.0\n[1.3.1]: https://github.com/subquery/subql/compare/utils/1.3.0...utils/1.3.1\n[1.3.0]: https://github.com/subquery/subql/compare/utils/1.2.0...utils/1.3.0\n[1.2.0]: https://github.com/subquery/subql/compare/utils/1.1.0...utils/1.2.0\n[1.1.0]: https://github.com/subquery/subql/compare/utils/1.0.1...utils/1.1.0\n[1.0.1]: https://github.com/subquery/subql/compare/utils/1.0.0...utils/1.0.1\n[1.0.0]: https://github.com/subquery/subql/compare/utils/0.1.0...utils/1.0.0\n[0.1.0]: https://github.com/subquery/subql/tags/0.1.0\n"
  },
  {
    "path": "packages/utils/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "packages/utils/README.md",
    "content": "# manifest-spec\n"
  },
  {
    "path": "packages/utils/package.json",
    "content": "{\n  \"name\": \"@subql/utils\",\n  \"version\": \"2.22.1\",\n  \"description\": \"\",\n  \"scripts\": {\n    \"build\": \"tsc -b\",\n    \"changelog:release\": \"echo \\\"Updating changelog $npm_package_version\\\" && npx chan release $npm_package_version --git-url \\\"https://github.com/subquery/subql\\\" --release-prefix=\\\"utils/\\\"\"\n  },\n  \"homepage\": \"https://github.com/subquery/subql\",\n  \"repository\": \"github:subquery/subql\",\n  \"author\": \"SubQuery Pty. Limited\",\n  \"main\": \"dist/index.js\",\n  \"license\": \"GPL-3.0\",\n  \"dependencies\": {\n    \"@polkadot/util\": \"^13.5.6\",\n    \"@polkadot/util-crypto\": \"^13.5.6\",\n    \"@subql/x-sequelize\": \"6.32.0-0.0.4\",\n    \"chalk\": \"^4.1.2\",\n    \"detect-port\": \"^1.6.1\",\n    \"flatted\": \"^3.3.3\",\n    \"graphql\": \"^15.8.0\",\n    \"graphql-tag\": \"^2.12.6\",\n    \"lodash\": \"^4.17.21\",\n    \"pino\": \"^6.13.3\",\n    \"rotating-file-stream\": \"^3.2.3\"\n  },\n  \"devDependencies\": {\n    \"@types/detect-port\": \"^1.3.5\",\n    \"@types/pino\": \"^6.3.12\"\n  },\n  \"files\": [\n    \"/dist\",\n    \"!/dist/**/*.spec.js\",\n    \"!/dist/**/*.spec.d.ts\",\n    \"!/dist/**/*.spec.js.map\",\n    \"!/dist/**/*.test.js\",\n    \"!/dist/**/*.test.d.ts\",\n    \"!/dist/**/*.test.js.map\",\n    \"package.json\",\n    \"README.md\",\n    \"CHANGELOG.md\",\n    \"LICENSE\"\n  ]\n}\n"
  },
  {
    "path": "packages/utils/src/array/array.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {findDuplicateStringArray} from './array';\n\ndescribe('Array util', () => {\n  it('findDuplicateStringArray', () => {\n    const arrays = [\n      ['1', '2', '3'],\n      ['3', '1', '2'],\n      ['apple', 'banana', 'orange'],\n      ['orange', 'apple', 'banana'],\n      ['grape', 'melon', 'kiwi'], //this is unique\n    ];\n    expect(findDuplicateStringArray(arrays)).toStrictEqual([\n      ['1', '2', '3'],\n      ['apple', 'banana', 'orange'],\n    ]);\n  });\n});\n"
  },
  {
    "path": "packages/utils/src/array/array.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {uniqWith, isEqual} from 'lodash';\n\n// Find duplicate string array in arrays\n// Only sorted unique string array will be return\nexport function findDuplicateStringArray(arrays: string[][]): string[][] {\n  const sortedArrays = arrays.map((arr) => arr.sort().join(''));\n  const duplicateArray: string[][] = [];\n  for (let i = 0; i < sortedArrays.length; i++) {\n    if (sortedArrays.indexOf(sortedArrays[i]) !== sortedArrays.lastIndexOf(sortedArrays[i])) {\n      duplicateArray.push(arrays[i]);\n    }\n  }\n  return uniqWith(duplicateArray, isEqual);\n}\n"
  },
  {
    "path": "packages/utils/src/array/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './array';\n"
  },
  {
    "path": "packages/utils/src/buffer/buffer.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {hexStripZeros, numberToHex} from './buffer';\n\nit('in getData, should hex number correctly', () => {\n  const from = 10000;\n  const to = 9999999;\n  const to54897704 = 54897704;\n  const zero = 0;\n\n  // Use ethers.utils should have same output\n  // expect(utils.hexValue(from)).toBe(numberToHex(from))\n  // expect(utils.hexValue(to54897704)).toBe(hexStripZeros(numberToHex(to54897704)))\n  expect(hexStripZeros(numberToHex(zero))).toBe('0x0');\n  expect(hexStripZeros(numberToHex(from))).toBe('0x2710');\n  expect(hexStripZeros(numberToHex(to))).toBe('0x98967f');\n  expect(hexStripZeros(numberToHex(to54897704))).toBe('0x345ac28');\n});\n"
  },
  {
    "path": "packages/utils/src/buffer/buffer.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isHex} from '@polkadot/util';\nimport {HexString} from '@polkadot/util/types';\n\nexport {\n  u8aEq,\n  hexToU8a,\n  hexToNumber,\n  bufferToU8a,\n  numberToU8a,\n  numberToHex,\n  u8aToHex,\n  u8aConcat,\n  u8aToBuffer,\n  isU8a,\n  isHex,\n  isString,\n  isBuffer,\n  isNull,\n} from '@polkadot/util';\n\nexport {blake2AsHex, blake2AsU8a, isBase58, isBase64, base58Decode, base64Decode} from '@polkadot/util-crypto';\n\n// This is a clone from ethers.util hexStripZeros, in order to match polkadot util hex value with ethers\nexport function hexStripZeros(value: HexString): string {\n  if (!isHex(value)) {\n    throw new Error(`invalid hex string ${value}`);\n  }\n  const str = value.toString().substring(2);\n  let offset = 0;\n  while (offset < str.length && str[offset] === '0') {\n    offset++;\n  }\n  const trimmed = `0x${str.substring(offset)}`;\n  if (trimmed === '0x') {\n    return '0x0';\n  }\n  return trimmed;\n}\n"
  },
  {
    "path": "packages/utils/src/buffer/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './buffer';\n"
  },
  {
    "path": "packages/utils/src/graphql/builder.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {validate} from 'graphql/validation';\nimport {buildQuery, GqlNode, GqlVar} from './builder';\n\ndescribe('build gql', () => {\n  it('gql 1', () => {\n    const vars: GqlVar[] = [\n      {\n        name: 'e_1_value',\n        gqlType: 'String!',\n        value: 'balances',\n      },\n    ];\n    const nodes: GqlNode[] = [\n      {\n        entity: 'specVersions',\n        args: {\n          filter: {\n            blockHeight: {greaterThanOrEqualTo: '\"1000\"', lessThan: '\"100000\"'},\n          },\n        },\n        project: [\n          {\n            entity: 'nodes',\n            project: ['id', 'blockHeight'],\n          },\n        ],\n      },\n      {\n        entity: 'events',\n        args: {\n          filter: {\n            blockHeight: {greaterThanOrEqualTo: '\"1000\"', lessThan: '\"100000\"'},\n            or: [\n              {\n                and: [{module: {equalTo: '$e_1_value'}}, {event: {equalTo: '\"Transfer\"'}}],\n              },\n            ],\n          },\n          orderBy: 'BLOCK_HEIGHT_ASC',\n          first: '100',\n        },\n        project: [\n          {\n            entity: 'nodes',\n            project: ['blockHeight'],\n          },\n        ],\n      },\n    ];\n    const {query, variables} = buildQuery(vars, nodes);\n    expect(variables.e_1_value).toBe('balances');\n    expect(query).toMatch(/query\\(\\$e_1_value:String!\\)/);\n  });\n});\n"
  },
  {
    "path": "packages/utils/src/graphql/builder.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport interface GqlVar {\n  name: string;\n  gqlType: string;\n  value: unknown;\n}\n\nexport interface GqlNode {\n  // type?: \"interface\" | \"union\";\n  entity: string;\n  project?: Array<GqlNode | string>;\n  args?: Record<string, unknown>;\n}\n\nexport interface GqlQuery {\n  query: string;\n  variables: Record<string, unknown>;\n}\n\nfunction buildArgs(args: Record<string, unknown>): string {\n  return Object.keys(args)\n    .map((argKey) => {\n      const argValue = args[argKey];\n      if (typeof argValue === 'string') {\n        return `${argKey}:${argValue}`;\n      } else if (argValue instanceof Array) {\n        return `${argKey}:[${argValue\n          .map((nested) => {\n            if (typeof nested === 'string') {\n              return nested;\n            } else if (nested instanceof Array) {\n              throw new Error('not supported');\n            } else if (typeof nested === 'object') {\n              return `{${buildArgs(nested)}}`;\n            }\n            throw new Error('not supported');\n          })\n          .join(',')}]`;\n      } else if (typeof argValue === 'object') {\n        return `${argKey}:{${buildArgs(argValue as Record<string, unknown>)}}`;\n      } else {\n        throw new Error('graphql args not supported');\n      }\n    })\n    .join(',');\n}\n\nconst bindProjections = (node: GqlNode): string => {\n  return `${node.entity} ${node.args ? `(${buildArgs(node.args)})` : ``}${\n    node.project\n      ? `{${node.project\n          .map((el: GqlNode | string) => {\n            if (typeof el === 'string') {\n              return `${el} `;\n            }\n            return `${bindProjections(el)} `;\n          })\n          .join('')}} `\n      : ``\n  }`;\n};\n\nconst toVarDefs = (vars: GqlVar[]): string => {\n  return vars && vars.length ? `(${vars.map((item) => `$${item.name}:${item.gqlType}`)})` : ``;\n};\n\nconst toVariables = (vars: GqlVar[]) =>\n  vars.reduce(\n    (acc, v) => {\n      if (acc[v.name]) {\n        throw new Error(`Graphql variables conflicts $${v.name}`);\n      }\n      acc[v.name] = v.value;\n      return acc;\n    },\n    {} as Record<string, unknown>\n  );\n\nexport function buildQuery(vars: GqlVar[], nodes: GqlNode[]): GqlQuery {\n  return {\n    query: `query${toVarDefs(vars)}{${nodes.map((node) => bindProjections(node)).join(' ')}}`,\n    variables: toVariables(vars),\n  };\n}\n"
  },
  {
    "path": "packages/utils/src/graphql/constant.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport enum DirectiveName {\n  DerivedFrom = 'derivedFrom',\n  Entity = 'entity',\n  JsonField = 'jsonField',\n  FullText = 'fullText',\n}\n"
  },
  {
    "path": "packages/utils/src/graphql/entities.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {\n  assertListType,\n  getDirectiveValues,\n  getNullableType,\n  GraphQLEnumType,\n  GraphQLField,\n  GraphQLNamedType,\n  GraphQLObjectType,\n  GraphQLOutputType,\n  GraphQLSchema,\n  isEnumType,\n  isInterfaceType,\n  isListType,\n  isNonNullType,\n  isObjectType,\n  isUnionType,\n  ValueNode,\n  BooleanValueNode,\n  TypeNode,\n  GraphQLDirective,\n} from 'graphql';\nimport {findDuplicateStringArray} from '../array';\nimport {Logger} from '../logger';\nimport {getTypeByScalarName} from '../types';\nimport {DirectiveName} from './constant';\nimport {buildSchemaFromFile} from './schema';\nimport {\n  FieldScalar,\n  GraphQLEntityField,\n  GraphQLFullTextType,\n  GraphQLJsonFieldType,\n  GraphQLJsonObjectType,\n  GraphQLModelsRelationsEnums,\n  GraphQLModelsType,\n  GraphQLRelationsType,\n  IndexType,\n} from './types';\n\nconst logger = new Logger({level: 'info', outputFormat: 'colored'}).getLogger('Utils.entities');\n\nexport function getAllJsonObjects(_schema: GraphQLSchema | string): GraphQLObjectType[] {\n  return Object.values(getSchema(_schema).getTypeMap())\n    .filter((node) => node.astNode?.directives?.find(({name: {value}}) => value === DirectiveName.JsonField))\n    .map((node) => node)\n    .filter(isObjectType);\n}\n\nexport function getAllEnums(_schema: GraphQLSchema | string): GraphQLEnumType[] {\n  return getEnumsFromSchema(getSchema(_schema));\n}\n\nfunction getDirectives(schema: GraphQLSchema, names: string[]): GraphQLDirective[] {\n  const res: GraphQLDirective[] = [];\n  for (const name of names) {\n    const directive = schema.getDirective(name);\n    assert(directive, `${name} directive is required`);\n    res.push(directive);\n  }\n  return res;\n}\n\n// eslint-disable-next-line complexity\nexport function getAllEntitiesRelations(_schema: GraphQLSchema | string | null): GraphQLModelsRelationsEnums {\n  if (_schema === null) {\n    return {\n      models: [],\n      relations: [],\n      enums: [],\n    };\n  }\n\n  const schema = getSchema(_schema);\n  const entities = Object.values(schema.getTypeMap())\n    .filter((node) => node.astNode?.directives?.find(({name: {value}}) => value === DirectiveName.Entity))\n    .filter(isObjectType);\n\n  const jsonObjects = getAllJsonObjects(schema);\n\n  const entityNameSet = entities.map((entity) => entity.name);\n\n  const enums = new Map(\n    getEnumsFromSchema(schema).map((node) => [\n      node.name,\n      {name: node.name, description: node.description, values: node.getValues().map((v) => v.value)},\n    ])\n  );\n\n  const modelRelations = {models: [], relations: [], enums: [...enums.values()]} as GraphQLModelsRelationsEnums;\n  const [derivedFrom, indexDirective, idDbType] = getDirectives(schema, ['derivedFrom', 'index', 'dbType']);\n  for (const entity of entities) {\n    const newModel: GraphQLModelsType = {\n      name: entity.name,\n      description: entity.description ?? undefined,\n      fields: [],\n      indexes: [],\n    };\n    const entityFields = Object.values(entity.getFields());\n\n    const idField = entityFields.find((field) => field.name === 'id');\n    if (!idField) {\n      throw new Error(`Entity \"${entity.name}\" is missing required id field.`);\n    } else if (idField.type.toString() !== 'ID!') {\n      throw new Error(`Entity \"${entity.name}\" type must be ID, received ${idField.type.toString()}`);\n    }\n\n    const fkNameSet: string[] = [];\n    for (const field of entityFields) {\n      const typeString = extractType(field.type);\n      const derivedFromDirectValues = field.astNode ? getDirectiveValues(derivedFrom, field.astNode) : undefined;\n      const indexDirectiveVal = field.astNode ? getDirectiveValues(indexDirective, field.astNode) : undefined;\n      const dbTypeDirectiveVal = field.astNode ? getDirectiveValues(idDbType, field.astNode) : undefined;\n\n      //If is a basic scalar type\n      const typeClass = getTypeByScalarName(typeString);\n      if (typeClass?.fieldScalar) {\n        newModel.fields.push(packEntityField(typeString, field, false));\n      }\n      // If is an enum\n      else if (enums.has(typeString)) {\n        newModel.fields.push({\n          type: typeString,\n          description: field.description ?? undefined,\n          isEnum: true,\n          isArray: isListType(isNonNullType(field.type) ? getNullableType(field.type) : field.type),\n          nullable: !isNonNullType(field.type),\n          name: field.name,\n        });\n      }\n      // If is a foreign key\n      else if (entityNameSet.includes(typeString) && !derivedFromDirectValues) {\n        let relatedTypeString = FieldScalar.String;\n\n        // Check to see if the relation ID type is modified with the @dbType directive\n        const relatedIdField = entities.find((e) => e.name === typeString)?.getFields().id;\n        const dbIdType = relatedIdField?.astNode ? getDirectiveValues(idDbType, relatedIdField.astNode) : undefined;\n        if (dbIdType) {\n          relatedTypeString = dbIdType.type;\n        }\n\n        newModel.fields.push(packEntityField(relatedTypeString, field, true));\n        modelRelations.relations.push({\n          from: entity.name,\n          type: 'belongsTo',\n          to: typeString,\n          foreignKey: `${field.name}Id`,\n        } as GraphQLRelationsType);\n\n        // Ensures that foreign keys are linked correctly\n        if (\n          field.astNode &&\n          (field.astNode.type.kind === 'ListType' ||\n            (field.astNode.type.kind === 'NonNullType' && field.astNode.type.type.kind === 'ListType'))\n        ) {\n          const resolveName = (type: TypeNode): string => {\n            switch (type.kind) {\n              case 'NamedType':\n                return type.name.value;\n              case 'NonNullType':\n                return resolveName(type.type);\n              case 'ListType':\n                return resolveName(type.type);\n              default:\n                // Any case in case future adds new kind\n                throw new Error(`Unhandled node kind: ${(type as any).kind}`);\n            }\n          };\n\n          throw new Error(\n            `Field \"${field.name}\" on entity \"${newModel.name}\" is missing \"derivedFrom\" directive. Please also make sure \"${resolveName(field.astNode.type)}\" has a field of type \"${newModel.name}\".`\n          );\n        }\n\n        newModel.indexes.push({\n          unique: false,\n          fields: [`${field.name}Id`],\n          using: IndexType.HASH,\n        });\n        fkNameSet.push(field.name);\n      }\n      // If is derivedFrom\n      else if (entityNameSet.includes(typeString) && derivedFromDirectValues) {\n        modelRelations.relations.push({\n          from: entity.name,\n          type: isListType(isNonNullType(field.type) ? getNullableType(field.type) : field.type) ? 'hasMany' : 'hasOne',\n          to: typeString,\n          foreignKey: `${derivedFromDirectValues.field}Id`,\n          fieldName: field.name,\n        } as GraphQLRelationsType);\n      }\n      // If is jsonField\n      else if (jsonObjects.map((json) => json.name).includes(typeString)) {\n        const jsonObject = jsonObjects.find((object) => object.name === typeString);\n        assert(jsonObject, `Json object ${typeString} not found`);\n        const jsonObjectType = setJsonObjectType(jsonObject, jsonObjects);\n        newModel.fields.push(packJSONField(typeString, field, jsonObjectType));\n\n        const directive = jsonObject.astNode?.directives?.find(({name: {value}}) => value === DirectiveName.JsonField);\n        const argValue = directive?.arguments?.find((arg) => arg.name.value === 'indexed')?.value;\n        // For backwards compatibility if the argument is not defined then the index will be added\n        if (!argValue || (isBooleanValueNode(argValue) && argValue.value !== false)) {\n          newModel.indexes.push({\n            unique: false,\n            fields: [field.name],\n            using: IndexType.GIN,\n          });\n        }\n      } else {\n        throw new Error(`${typeString} is not a valid type`);\n      }\n      // handle indexes\n      if (indexDirectiveVal) {\n        if (typeString !== 'ID' && typeClass) {\n          newModel.indexes.push({\n            unique: indexDirectiveVal.unique,\n            fields: [field.name],\n          });\n        } else if (typeString !== 'ID' && entityNameSet.includes(typeString)) {\n          if (indexDirectiveVal.unique) {\n            const fkIndex = newModel.indexes.find(\n              (idx) => idx.fields.length === 1 && idx.fields[0] === `${field.name}Id`\n            );\n            if (fkIndex) {\n              fkIndex.unique = true;\n            }\n          }\n        } else if (typeString !== 'ID' && enums.has(typeString)) {\n          newModel.indexes.push({\n            fields: [field.name],\n          });\n        } else {\n          throw new Error(`index can not be added on field ${field.name}`);\n        }\n      }\n\n      // Update id type if directive specified\n      if (dbTypeDirectiveVal) {\n        if (typeString !== 'ID') {\n          throw new Error(`dbType directive can only be added on 'id' field, received: ${field.name}`);\n        }\n\n        const dbType = dbTypeDirectiveVal.type;\n        const t = getTypeByScalarName(dbType);\n\n        // Allowlist of types that can be used.\n        const allowedTypes = ['BigInt', 'Float', 'ID', 'Int', 'String'];\n        if (!t || !allowedTypes.includes(t.name)) {\n          throw new Error(\n            `${dbType} is not a defined scalar type, please use another type in the dbType directive.\\nAvailable types: ${allowedTypes.join(', ')}`\n          );\n        }\n\n        const f = newModel.fields.find((f) => f.name === 'id');\n        if (!f) {\n          throw new Error('Expected id field to exist on model');\n        }\n        f.type = t.name;\n      }\n    }\n\n    // Composite Indexes\n    const compositeIndexDirective = schema.getDirective('compositeIndexes');\n    assert(compositeIndexDirective, 'compositeIndexes directive is required');\n    assert(entity.astNode, 'Entity astNode is required');\n    const compositeIndexDirectiveVal = getDirectiveValues(compositeIndexDirective, entity.astNode) as {\n      fields?: string[][];\n    };\n    if (compositeIndexDirectiveVal?.fields && compositeIndexDirectiveVal?.fields.length) {\n      const duplicateIndexes = findDuplicateStringArray(compositeIndexDirectiveVal.fields);\n      if (duplicateIndexes.length) {\n        throw new Error(\n          `Found duplicate composite indexes ${JSON.stringify(duplicateIndexes)} on entity ${entity.name}`\n        );\n      }\n      compositeIndexDirectiveVal.fields.forEach((indexFields) => {\n        const joinFields = getJoinIndexFields(entity, entityFields, fkNameSet, indexFields);\n        newModel.indexes.push({\n          fields: joinFields,\n        });\n      });\n    }\n\n    // Fulltext Search\n    const fullTextDirective = schema.getDirective('fullText');\n    assert(fullTextDirective, 'fullText directive is required');\n    const fullTextDirectiveVal = getDirectiveValues(fullTextDirective, entity.astNode) as GraphQLFullTextType;\n\n    if (fullTextDirectiveVal) {\n      if (!fullTextDirectiveVal.fields.length) {\n        throw new Error(`Expected fullText directive to have at least one field on entity ${entity.name}`);\n      }\n\n      // Make fields unique\n      fullTextDirectiveVal.fields = [...new Set(fullTextDirectiveVal.fields)];\n\n      fullTextDirectiveVal.fields.forEach((searchField, index) => {\n        const field = newModel.fields.find((f) => [searchField, `${searchField}Id`].includes(f.name));\n        if (!field) {\n          throw new Error(`Field \"${searchField}\" in fullText directive doesn't exist on entity \"${entity.name}\"`);\n        }\n\n        if (!['String', 'ID'].includes(field.type)) {\n          throw new Error(`fullText directive fields only supports String types`);\n        }\n\n        // If the field is a relation, we rename the field to include _id\n        if (field.name === `${searchField}Id`) {\n          fullTextDirectiveVal.fields[index] = `${searchField}_id`;\n        }\n      });\n\n      newModel.fullText = fullTextDirectiveVal;\n    }\n\n    modelRelations.models.push(newModel);\n  }\n  validateRelations(modelRelations);\n  return modelRelations;\n}\n\nfunction getJoinIndexFields(\n  entity: GraphQLObjectType<any, any>,\n  entityFields: GraphQLField<any, any, {[p: string]: any}>[],\n  fkNameSet: string[],\n  indexArgFields: string[]\n): string[] {\n  if (indexArgFields.length === 1) {\n    logger.warn(`Composite index expected to be more than 1 field , entity ${entity} [${indexArgFields}]`);\n  }\n  if (indexArgFields.length > 3) {\n    throw new Error(\n      `Composite index on entity ${entity} expected not more than 3 fields, index [${indexArgFields}] got ${indexArgFields.length} fields`\n    );\n  }\n  // check duplicate fields\n  const duplicateFields = indexArgFields.filter((name, index, arr) => arr.indexOf(name) !== index);\n  if (duplicateFields.length) {\n    throw new Error(`Composite index ${entity}.${indexArgFields} got duplicated fields: ${duplicateFields}`);\n  }\n  return indexArgFields.map((j) => {\n    const fieldInEntity = entityFields.find((f) => f.name === j);\n    // check whether these fields are exist in the entity\n    if (fieldInEntity === undefined) {\n      throw new Error(`Composite index [${indexArgFields}], field ${j} not found within entity ${entity} `);\n    }\n    // check is fk\n    if (fkNameSet.includes(fieldInEntity.name)) {\n      return `${j}Id`;\n    }\n    return j;\n  });\n}\n\nfunction packEntityField(\n  typeString: FieldScalar | string,\n  field: GraphQLField<unknown, unknown>,\n  isForeignKey: boolean\n): GraphQLEntityField {\n  return {\n    name: isForeignKey ? `${field.name}Id` : field.name,\n    type: typeString,\n    description: field.description ?? undefined,\n    isArray: isListType(isNonNullType(field.type) ? getNullableType(field.type) : field.type),\n    nullable: !isNonNullType(field.type),\n    isEnum: false,\n  };\n}\n\nfunction packJSONField(\n  typeString: string,\n  field: GraphQLField<unknown, unknown>,\n  jsonObject: GraphQLJsonObjectType\n): GraphQLEntityField {\n  return {\n    name: field.name,\n    type: 'Json',\n    description: field.description ?? undefined,\n    jsonInterface: jsonObject,\n    isArray: isListType(isNonNullType(field.type) ? getNullableType(field.type) : field.type),\n    nullable: !isNonNullType(field.type),\n    isEnum: false,\n  };\n}\n\nexport function setJsonObjectType(\n  jsonObject: GraphQLObjectType<unknown, unknown>,\n  jsonObjects: GraphQLObjectType<unknown, unknown>[]\n): GraphQLJsonObjectType {\n  const graphQLJsonObject: GraphQLJsonObjectType = {\n    name: jsonObject.name,\n    fields: [],\n  };\n  for (const field of Object.values(jsonObject.getFields())) {\n    //check if field is also json\n    const typeString = extractType(field.type);\n    const jsonType = jsonObjects.find((json) => json.name === typeString);\n\n    graphQLJsonObject.fields.push({\n      name: field.name,\n      type: jsonType ? 'Json' : extractType(field.type),\n      jsonInterface: jsonType ? setJsonObjectType(jsonType, jsonObjects) : undefined,\n      nullable: !isNonNullType(field.type),\n      isArray: isListType(isNonNullType(field.type) ? getNullableType(field.type) : field.type),\n    } as GraphQLJsonFieldType);\n  }\n  return graphQLJsonObject;\n}\n\nfunction getSchema(_schema: GraphQLSchema | string): GraphQLSchema {\n  return typeof _schema === 'string' ? buildSchemaFromFile(_schema) : _schema;\n}\n\nfunction getEnumsFromSchema(schema: GraphQLSchema): GraphQLEnumType[] {\n  return Object.values(schema.getTypeMap())\n    .filter((r) => r.astNode !== undefined)\n    .filter(isEnumType);\n}\n\n//Get the type, ready to be convert to string\nfunction extractType(type: GraphQLOutputType): string {\n  if (isUnionType(type)) {\n    throw new Error(`Not support Union type`);\n  }\n  if (isInterfaceType(type)) {\n    throw new Error(`Not support Interface type`);\n  }\n  const offNullType = isNonNullType(type) ? getNullableType(type) : type;\n  const offListType = isListType(offNullType) ? assertListType(offNullType).ofType : type;\n  return isNonNullType(offListType)\n    ? (getNullableType(offListType) as unknown as GraphQLNamedType).name\n    : offListType.name;\n}\n\nfunction validateRelations(modelRelations: GraphQLModelsRelationsEnums): void {\n  for (const r of modelRelations.relations.filter((model) => model.type === 'hasMany' || model.type === 'hasOne')) {\n    assert(\n      modelRelations.models.find(\n        (model) => model.name === r.to && model.fields.find((field) => field.name === r.foreignKey)\n      ),\n      `Please check entity ${r.from} with field ${r.fieldName} has correct relation with entity ${r.to}`\n    );\n  }\n}\n\nfunction isBooleanValueNode(valueNode?: ValueNode): valueNode is BooleanValueNode {\n  return valueNode?.kind === 'BooleanValue';\n}\n"
  },
  {
    "path": "packages/utils/src/graphql/graphql.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport gql from 'graphql-tag';\nimport {getAllEntitiesRelations} from './entities';\nimport {buildSchemaFromDocumentNode} from './schema';\n\ndescribe('utils that handle schema.graphql', () => {\n  it('support @entity annotation in the schema', () => {\n    const graphqlSchema = gql`\n      type KittyBirthInfo @entity {\n        id: ID!\n        birthBlockHeight: BigInt!\n        owner: String!\n        birthAt: Date!\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(schema).toBeTruthy();\n    expect(Object.keys(schema.getTypeMap())).toContain('KittyBirthInfo');\n  });\n  it('can extract entities from the schema', () => {\n    const graphqlSchema = gql`\n      type KittyBirthInfo @entity {\n        id: ID!\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const entities = getAllEntitiesRelations(schema);\n    expect(entities.models).toMatchObject([{name: 'KittyBirthInfo'}]);\n    expect(entities.models[0].fields).toEqual([\n      {isArray: false, name: 'id', nullable: false, type: 'ID', isEnum: false},\n    ]);\n  });\n\n  it('throw error for unsupported types', () => {\n    const graphqlSchema = gql`\n      type Test @entity {\n        id: ID!\n        price: Double\n      }\n    `;\n    expect(() => buildSchemaFromDocumentNode(graphqlSchema)).toThrow();\n  });\n\n  it('support Bytes and Float types', () => {\n    const graphqlSchema = gql`\n      type Test @entity {\n        id: ID!\n        hash: Bytes\n        rate: Float\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const entities = getAllEntitiesRelations(schema);\n    expect(entities.models[0].fields[1].type).toBe('Bytes');\n    expect(entities.models[0].fields[2].type).toBe('Float');\n  });\n\n  it('throw error for union/enum/interface type', () => {\n    const graphqlSchema = gql`\n      type Test @entity {\n        id: ID!\n        unionKind: unionResult\n        enumKind: enumResult\n        who: Character\n      }\n      interface Character {\n        id: ID!\n        name: String!\n      }\n      union unionResult = Human | Droid | Starship\n      type Human @entity {\n        id: ID!\n      }\n      type Droid @entity {\n        id: ID!\n      }\n      type Starship @entity {\n        id: ID!\n      }\n      enum enumResult {\n        NEWHOPE\n        EMPIRE\n        JEDI\n      }\n    `;\n    expect(() => {\n      const schema = buildSchemaFromDocumentNode(graphqlSchema);\n      getAllEntitiesRelations(schema);\n    }).toThrow(/Not support/);\n  });\n\n  it('can create an enum with an index', () => {\n    const graphqlSchema = gql`\n      type Test @entity {\n        id: ID!\n        enumKind: enumResult! @index\n      }\n      enum enumResult {\n        NEWHOPE\n        EMPIRE\n        JEDI\n      }\n    `;\n\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const rels = getAllEntitiesRelations(schema);\n\n    expect(rels.models[0].indexes[0]).toMatchObject({\n      fields: ['enumKind'],\n    });\n\n    // expect(() => {\n    //   const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    //   getAllEntitiesRelations(schema);\n    // }).toThrow(/Not support/);\n  });\n\n  it('can extract nested models and relations from the schema', () => {\n    const graphqlSchema = gql`\n      type Account @entity {\n        id: ID!\n        identity: Identity! @derivedFrom(field: \"account\")\n        transfers: [Transfer] @derivedFrom(field: \"from\")\n      }\n      type Transfer @entity {\n        id: ID!\n        from: Account!\n      }\n      type Identity @entity {\n        id: ID!\n        account: Account!\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const entities = getAllEntitiesRelations(schema);\n    expect(entities.models).toMatchObject([\n      {\n        name: 'Account',\n        fields: [{name: 'id', type: 'ID', isArray: false, nullable: false}],\n      },\n      {\n        name: 'Transfer',\n        fields: [\n          {name: 'id', type: 'ID', isArray: false, nullable: false},\n          {name: 'fromId', type: 'String', isArray: false, nullable: false},\n        ],\n      },\n      {\n        name: 'Identity',\n        fields: [\n          {name: 'id', type: 'ID', isArray: false, nullable: false},\n          {\n            name: 'accountId',\n            type: 'String',\n            isArray: false,\n            nullable: false,\n          },\n        ],\n      },\n    ]);\n\n    expect(entities.relations).toMatchObject([\n      {\n        from: 'Account',\n        type: 'hasOne',\n        to: 'Identity',\n        foreignKey: 'accountId',\n        fieldName: 'identity',\n      },\n      {\n        from: 'Account',\n        type: 'hasMany',\n        to: 'Transfer',\n        foreignKey: 'fromId',\n        fieldName: 'transfers',\n      },\n      {\n        from: 'Transfer',\n        type: 'belongsTo',\n        to: 'Account',\n        foreignKey: 'fromId',\n      },\n      {\n        from: 'Identity',\n        type: 'belongsTo',\n        to: 'Account',\n        foreignKey: 'accountId',\n      },\n    ]);\n  });\n\n  it('throw error if derivedFrom field with missing field name in corresponding entity', () => {\n    const graphqlSchema = gql`\n      type Account @entity {\n        id: ID!\n        transfers: [Transfer] @derivedFrom(field: \"from\")\n      }\n      type Transfer @entity {\n        id: ID!\n        #from: Account! # If this is missing\n        to: Account!\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(\n      'Please check entity Account with field transfers has correct relation with entity Transfer'\n    );\n  });\n\n  it('can extract indexed fields from the schema', () => {\n    const graphqlSchema = gql`\n      type TestEntity @entity {\n        id: ID!\n        column1: String @index\n        column2: BigInt @index(unique: true)\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const entities = getAllEntitiesRelations(schema);\n    expect(entities.models?.[0].indexes).toHaveLength(2);\n    expect(entities.models?.[0].indexes[0].fields).toEqual(['column1']);\n    expect(entities.models?.[0].indexes[0].unique).toBeUndefined();\n    expect(entities.models?.[0].indexes[1].fields).toEqual(['column2']);\n    expect(entities.models?.[0].indexes[1].unique).toBe(true);\n  });\n\n  it('throw if add index on pk', () => {\n    const graphqlSchema = gql`\n      type TestEntity @entity {\n        id: ID! @index\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(/^index can not be added on field id/);\n  });\n\n  it('can extract indexed fields from foreign field', () => {\n    const graphqlSchema = gql`\n      type Fruit @entity {\n        id: ID!\n        apple: Apple\n        banana: [Banana] @derivedFrom(field: \"fruit\")\n      }\n      type Fruit2 @entity {\n        id: ID!\n        apple: Apple @index\n      }\n      type Apple @entity {\n        id: ID!\n      }\n      type Banana @entity {\n        id: ID!\n        fruit: Fruit\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const entities = getAllEntitiesRelations(schema);\n    expect(entities.models?.[0].indexes[0].fields).toEqual(['appleId']);\n    expect(entities.models?.[0].indexes[0].using).toEqual('hash');\n    expect(entities.models?.[0].indexes[0].unique).toBe(false);\n\n    expect(entities.models?.[1].indexes[0].fields).toEqual(['appleId']);\n    expect(entities.models?.[1].indexes[0].unique).toBe(false);\n  });\n\n  it('can read jsonfield', () => {\n    const graphqlSchema = gql`\n      type MyJson @jsonField {\n        data: String!\n        data2: [String]\n        data3: MyJson2\n      }\n      type MyJson2 @jsonField {\n        data4: String!\n      }\n      type Account @entity {\n        field6: [MyJson]!\n        id: ID!\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const accountModel = getAllEntitiesRelations(schema).models.find((model) => model.name === 'Account');\n    expect(accountModel?.fields[0].type).toBe('Json');\n    expect(accountModel?.fields[0].jsonInterface?.name).toBe('MyJson');\n    expect(accountModel?.fields[0].isArray).toBeTruthy();\n    expect(accountModel?.fields[0].jsonInterface?.fields[0].nullable).toBeFalsy();\n    expect(accountModel?.fields[0].jsonInterface?.fields[1].isArray).toBeTruthy();\n    // allow json in json\n    expect(accountModel?.fields[0].jsonInterface?.fields[2].type).toBe('Json');\n    expect(accountModel?.fields[0].jsonInterface?.fields[2].jsonInterface?.name).toBe('MyJson2');\n  });\n\n  it('can read jsonfield with indexed option', () => {\n    const graphqlSchema = gql`\n      type MyJson @jsonField(indexed: false) {\n        data: String!\n        data2: [String]\n      }\n      type MyJson2 @jsonField(indexed: true) {\n        data: String!\n        data2: [String]\n      }\n      type MyJson3 @jsonField {\n        data: String!\n        data2: [String]\n      }\n      type Account @entity {\n        field1: MyJson!\n        field2: MyJson2!\n        field3: MyJson3!\n        id: ID!\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const entities = getAllEntitiesRelations(schema);\n\n    expect(entities.models?.[0].indexes.length).toEqual(2);\n    expect(entities.models?.[0].indexes[0].fields).toEqual(['field2']);\n    expect(entities.models?.[0].indexes[1].fields).toEqual(['field3']);\n  });\n\n  it('can read composite index', () => {\n    const graphqlSchema = gql`\n      type StarterEntity @entity @compositeIndexes(fields: [[\"field1\", \"field2\"], [\"field2\", \"field3\"]]) {\n        id: ID! #id is a required field\n        field1: Int!\n        field2: String #field2 is an optional field\n        field3: String\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const entities = getAllEntitiesRelations(schema);\n    expect(entities.models?.[0].indexes[0].fields).toEqual(['field1', 'field2']);\n  });\n\n  it('can create composite index for fk field', () => {\n    const graphqlSchema = gql`\n      type StarterEntity @entity @compositeIndexes(fields: [[\"field1\", \"field2\"], [\"field2\", \"relate\"]]) {\n        id: ID! #id is a required field\n        field1: Int!\n        field2: String\n        relate: RelateEntity\n      }\n      type RelateEntity @entity {\n        id: ID! #id is a required field\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const entities = getAllEntitiesRelations(schema);\n    expect(entities.models?.[0].indexes[2].fields).toEqual(['field2', 'relateId']);\n  });\n\n  it('will throw if composite index field not found within entity', () => {\n    const graphqlSchema = gql`\n      type StarterEntity @entity @compositeIndexes(fields: [[\"field1\", \"field5\"]]) {\n        id: ID!\n        field1: Int!\n        field2: String\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(/not found within entity/);\n  });\n\n  it('will throw when found duplicate composite index', () => {\n    const graphqlSchema = gql`\n      type StarterEntity\n        @entity\n        @compositeIndexes(fields: [[\"field1\", \"field2\"], [\"field2\", \"field3\"], [\"field3\", \"field2\"]]) {\n        id: ID!\n        field1: Int!\n        field2: String\n        field3: String\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(/Found duplicate composite indexes/);\n  });\n\n  it('will throw if number of composite indexes excess limit', () => {\n    const graphqlSchema = gql`\n      type StarterEntity @entity @compositeIndexes(fields: [[\"id\", \"field1\", \"field2\", \"field3\"]]) {\n        id: ID!\n        field1: Int!\n        field2: String\n        field3: String\n      }\n    `;\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(\n      /Composite index on entity StarterEntity expected not more than 3 fields,/\n    );\n  });\n\n  it('can read fulltext directive', () => {\n    const graphqlSchema = gql`\n      type StarterEntity @entity @fullText(fields: [\"field2\", \"field3\"], language: \"english\") {\n        id: ID! #id is a required field\n        field1: Int!\n        field2: String #field2 is an optional field\n        field3: String\n      }\n    `;\n\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    const entities = getAllEntitiesRelations(schema);\n\n    expect(entities.models?.[0].fullText?.fields).toEqual(['field2', 'field3']);\n  });\n\n  it('can throw fulltext directive when field doesnt exist on entity', () => {\n    const graphqlSchema = gql`\n      type StarterEntity @entity @fullText(fields: [\"field2\", \"not_exists\"], language: \"english\") {\n        id: ID! #id is a required field\n        field1: Int!\n        field2: String #field2 is an optional field\n        field3: String\n      }\n    `;\n\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(\n      `Field \"not_exists\" in fullText directive doesn't exist on entity \"StarterEntity\"`\n    );\n  });\n\n  it('can throw fulltext directive when field isnt a string', () => {\n    const graphqlSchema = gql`\n      type StarterEntity @entity @fullText(fields: [\"field1\"], language: \"english\") {\n        id: ID! #id is a required field\n        field1: Int!\n        field2: String #field2 is an optional field\n        field3: String\n      }\n    `;\n\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(`fullText directive fields only supports String types`);\n  });\n\n  it('will throw if entity missing id field', () => {\n    const graphqlSchema = gql`\n      type StarterEntity @entity {\n        field1: Int!\n        field2: String #field2 is an optional field\n        field3: String\n      }\n    `;\n\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(`Entity \"StarterEntity\" is missing required id field.`);\n  });\n\n  it('will throw if entity id field isnt id', () => {\n    const graphqlSchema = gql`\n      type StarterEntity @entity {\n        id: Int!\n        field1: Int!\n        field2: String #field2 is an optional field\n        field3: String\n      }\n    `;\n\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(`Entity \"StarterEntity\" type must be ID, received Int`);\n  });\n\n  it('will throw if 1 to Many relationship is missing directive', () => {\n    const graphqlSchema = gql`\n      type Fruit @entity {\n        id: ID!\n        bananas: [Banana!]!\n      }\n      type Banana @entity {\n        id: ID!\n      }\n    `;\n\n    const schema = buildSchemaFromDocumentNode(graphqlSchema);\n    expect(() => getAllEntitiesRelations(schema)).toThrow(\n      `Field \"bananas\" on entity \"Fruit\" is missing \"derivedFrom\" directive. Please also make sure \"Banana\" has a field of type \"Fruit\".`\n    );\n  });\n\n  describe('dbType directive', () => {\n    it('allows overriding the default ID type', () => {\n      const graphqlSchema = gql`\n        type StarterEntity @entity {\n          id: ID! @dbType(type: \"Int\")\n        }\n      `;\n\n      const schema = buildSchemaFromDocumentNode(graphqlSchema);\n      const entityRelations = getAllEntitiesRelations(schema);\n      const model = entityRelations.models.find((m) => m.name === 'StarterEntity');\n\n      expect(model).toBeDefined();\n      expect(model?.fields[0].type).toEqual('Int');\n    });\n\n    it('doesnt allow the directive on fields other than id', () => {\n      const graphqlSchema = gql`\n        type StarterEntity @entity {\n          id: ID!\n          field1: Date @dbType(type: \"Int\")\n        }\n      `;\n\n      const schema = buildSchemaFromDocumentNode(graphqlSchema);\n      expect(() => getAllEntitiesRelations(schema)).toThrow(\n        `dbType directive can only be added on 'id' field, received: field1`\n      );\n    });\n\n    it('only allows predefined ID db types', () => {\n      const makeSchema = (type: string) =>\n        buildSchemaFromDocumentNode(gql`\n        type StarterEntity @entity {\n          id: ID! @dbType(type: \"${type}\")\n        }\n      `);\n\n      for (const type of ['BigInt', 'Int', 'Float', 'ID', 'String']) {\n        const schema = makeSchema(type);\n        expect(() => getAllEntitiesRelations(schema)).not.toThrow();\n      }\n\n      for (const type of ['JSON', 'Date', 'Bytes', 'Boolean', 'StarterEntity']) {\n        const schema = makeSchema(type);\n        expect(() => getAllEntitiesRelations(schema)).toThrow(\n          `${type} is not a defined scalar type, please use another type in the dbType directive.\\nAvailable types: BigInt, Float, ID, Int, String`\n        );\n      }\n    });\n  });\n});\n"
  },
  {
    "path": "packages/utils/src/graphql/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './entities';\nexport * from './schema';\nexport * from './types';\nexport * from './builder';\n"
  },
  {
    "path": "packages/utils/src/graphql/schema/directives.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport gql from 'graphql-tag';\n\nexport const directives = gql`\n  directive @derivedFrom(field: String!) on FIELD_DEFINITION\n  directive @entity on OBJECT\n  directive @jsonField(indexed: Boolean) on OBJECT\n  directive @index(unique: Boolean) on FIELD_DEFINITION\n  directive @compositeIndexes(fields: [[String]]!) on OBJECT\n  directive @fullText(fields: [String!], language: String) on OBJECT\n  directive @dbType(type: String!) on FIELD_DEFINITION\n`;\n"
  },
  {
    "path": "packages/utils/src/graphql/schema/scalas.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport gql from 'graphql-tag';\n\nexport const scalas = gql`\n  scalar BigInt\n  scalar BigDecimal\n  scalar Date\n  scalar Bytes\n  scalar Float\n`;\n"
  },
  {
    "path": "packages/utils/src/graphql/schema.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport fs from 'fs';\nimport {buildASTSchema, DocumentNode, extendSchema, GraphQLSchema, parse, Source} from 'graphql';\nimport {directives} from './schema/directives';\nimport {scalas} from './schema/scalas';\n\nfunction loadBaseSchema(): GraphQLSchema {\n  const schema = buildASTSchema(scalas);\n  return extendSchema(schema, directives);\n}\n\nexport function buildSchemaFromFile(path: string): GraphQLSchema {\n  return buildSchemaFromString(fs.readFileSync(path).toString());\n}\n\nexport function buildSchemaFromString(raw: string): GraphQLSchema {\n  const src = new Source(raw);\n  const doc = parse(src);\n  return buildSchemaFromDocumentNode(doc);\n}\n\nexport function buildSchemaFromDocumentNode(doc: DocumentNode): GraphQLSchema {\n  return extendSchema(loadBaseSchema(), doc);\n}\n"
  },
  {
    "path": "packages/utils/src/graphql/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport interface GraphQLJsonObjectType {\n  name: string;\n  fields: GraphQLJsonFieldType[];\n}\n\nexport interface GraphQLJsonFieldType {\n  name: string;\n  type: Exclude<keyof typeof FieldScalar, 'ID'> | 'Json';\n  jsonInterface?: GraphQLJsonObjectType;\n  nullable: boolean;\n  isArray: boolean;\n}\n\nexport interface GraphQLModelsRelationsEnums {\n  models: GraphQLModelsType[];\n\n  relations: GraphQLRelationsType[];\n\n  enums: GraphQLEnumsType[];\n}\n\nexport interface GraphQLEnumsType {\n  name: string;\n\n  values: string[];\n\n  description?: string;\n}\n\nexport interface GraphQLModelsType {\n  name: string;\n\n  fields: GraphQLEntityField[];\n\n  indexes: GraphQLEntityIndex[];\n\n  fullText?: GraphQLFullTextType;\n\n  description?: string;\n}\n\nexport interface GraphQLEntityField {\n  name: string;\n\n  type: string;\n\n  jsonInterface?: GraphQLJsonObjectType;\n\n  isArray: boolean;\n\n  nullable: boolean;\n\n  isEnum: boolean;\n\n  description?: string;\n}\n\nexport enum IndexType {\n  BTREE = 'btree',\n  HASH = 'hash',\n  GIST = 'gist',\n  SPGIST = 'spgist',\n  GIN = 'gin',\n  BRIN = 'brin',\n}\n\nexport interface GraphQLEntityIndex {\n  fields: string[];\n\n  unique?: boolean;\n\n  using?: IndexType;\n}\n\nexport interface GraphQLFullTextType {\n  fields: string[];\n\n  language?: string;\n}\n\nexport interface GraphQLRelationsType {\n  from: string;\n\n  type: 'hasOne' | 'hasMany' | 'belongsTo';\n\n  to: string;\n\n  foreignKey: string;\n\n  fieldName?: string;\n}\n\nexport enum FieldScalar {\n  ID = 'ID',\n  Int = 'Int',\n  BigInt = 'BigInt',\n  String = 'String',\n  Date = 'Date',\n  Boolean = 'Boolean',\n  Bytes = 'Bytes',\n  Float = 'Float',\n}\n"
  },
  {
    "path": "packages/utils/src/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './graphql';\nexport {levelFilter, Logger, LoggerOption} from './logger';\nexport * from './query';\nexport * from './types';\nexport * from './buffer';\nexport * from './networking';\n"
  },
  {
    "path": "packages/utils/src/logger/colors.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {colorizeLevel} from './colors';\n\ndescribe('LoggerColorLevel', () => {\n  it('returns default for an unsupported level number', () => {\n    const level = colorizeLevel(5);\n    expect(level).toBe('\\x1b[37mUSERLVL\\x1b[39m');\n  });\n\n  it('returns the correct level for a level number', () => {\n    const level = colorizeLevel(60);\n    expect(level).toBe('\\x1b[41mFATAL\\x1b[49m');\n  });\n});\n"
  },
  {
    "path": "packages/utils/src/logger/colors.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport chalk from 'chalk';\nimport {LEVELS} from './constants';\n\nexport const ctx = new chalk.Instance({level: 3});\nconst colored: Record<keyof typeof LEVELS | 'message', chalk.Chalk> = {\n  default: ctx.white,\n  60: ctx.bgRed,\n  50: ctx.red,\n  40: ctx.yellow,\n  30: ctx.green,\n  20: ctx.blue,\n  10: ctx.grey,\n  message: ctx.cyan,\n};\n\nfunction isColouredValue(level: number | string): level is keyof typeof LEVELS {\n  return Number.isInteger(+level) && level in colored;\n}\n\nexport function colorizeLevel(level: number): string {\n  if (isColouredValue(level) && Object.prototype.hasOwnProperty.call(LEVELS, level)) {\n    return colored[level](LEVELS[level]);\n  }\n  return colored.default(LEVELS.default);\n}\n"
  },
  {
    "path": "packages/utils/src/logger/constants.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport const LEVELS = {\n  default: 'USERLVL',\n  60: 'FATAL',\n  50: 'ERROR',\n  40: 'WARN',\n  30: 'INFO',\n  20: 'DEBUG',\n  10: 'TRACE',\n};\n\nexport const LEVELS_MAP = {\n  trace: 10,\n  debug: 20,\n  info: 30,\n  warn: 40,\n  error: 50,\n  fatal: 60,\n  silent: 999,\n};\n"
  },
  {
    "path": "packages/utils/src/logger/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './logger';\nexport * from './util';\n"
  },
  {
    "path": "packages/utils/src/logger/logger.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport {isMainThread, threadId} from 'worker_threads';\nimport {stringify} from 'flatted';\nimport Pino, {LevelWithSilent} from 'pino';\nimport {createStream} from 'rotating-file-stream';\nimport {colorizeLevel, ctx} from './colors';\nimport {LEVELS, LEVELS_MAP} from './constants';\nexport interface LoggerOption {\n  level?: string;\n  filepath?: string;\n  rotate?: boolean;\n  nestedKey?: string;\n  outputFormat?: 'json' | 'colored';\n  /**\n   * Set the debug level for specific child loggers\n   * */\n  debugFilter?: string[];\n}\n\nfunction formatErrorString(err: unknown, stack = false): string {\n  if (err instanceof Error) {\n    const t = err.constructor.name ?? 'Error';\n    let formattedError = `${ctx.red(`${t}:`)} ${ctx.yellow(err.message)}`;\n\n    if (stack) {\n      formattedError += `\\n${ctx.red('Stack:')} ${ctx.gray(err.stack)}`;\n    }\n\n    if (err.cause) {\n      formattedError += `\\n${ctx.red('Cause:')} ${formatErrorString(err.cause, stack)}`;\n    }\n\n    return formattedError;\n  }\n  return String(err);\n}\n\nfunction formatErrorJson(err: unknown): unknown {\n  if (err instanceof Error) {\n    return {\n      type: 'error',\n      name: err.name,\n      message: err.message,\n      stack: err.stack,\n      cause: err.cause ? formatErrorJson(err.cause) : undefined,\n    };\n  } else {\n    return stringify(err);\n  }\n}\n\nexport class Logger {\n  private pino: Pino.Logger;\n  private childLoggers: {[category: string]: Pino.Logger} = {};\n  private _debugFilter: string[];\n\n  constructor({debugFilter = [], filepath, level: logLevel = 'info', nestedKey, outputFormat, rotate}: LoggerOption) {\n    this._debugFilter = debugFilter;\n\n    const options = {\n      messageKey: 'message',\n      timestamp: () => `,\"timestamp\":\"${new Date().toISOString()}\"`,\n      nestedKey,\n      level: logLevel,\n      formatters: {\n        level(label, number) {\n          return {level: label};\n        },\n      },\n      serializers:\n        outputFormat === 'json'\n          ? {\n              payload: formatErrorJson,\n            }\n          : {},\n      prettyPrint: outputFormat !== 'json',\n      prettifier: function (options: unknown) {\n        // `this` is bound to the pino instance\n        // Deal with whatever options are supplied.\n        return function prettifier(inputData: string | object) {\n          let logObject;\n          if (typeof inputData === 'string') {\n            logObject = JSON.parse(inputData);\n          } else if (isObject(inputData)) {\n            logObject = inputData;\n          }\n          if (!logObject) return inputData;\n          // implement prettification\n          const {category, level, message, payload, time} = logObject;\n          let error = '';\n          if (payload instanceof Error) {\n            if (['debug', 'trace'].includes(logLevel)) {\n              error = `\\n${formatErrorString(payload, true)}`;\n            } else {\n              error = formatErrorString(payload);\n            }\n          }\n          return `${time} <${ctx.magentaBright(category)}> ${colorizeLevel(level)} ${message} ${error}\\n`;\n        };\n\n        function isObject(input: unknown): boolean {\n          return Object.prototype.toString.apply(input) === '[object Object]';\n        }\n      },\n    } as Pino.LoggerOptions;\n\n    if (filepath) {\n      const baseName = path.basename(filepath);\n      const dirName = path.dirname(path.resolve(filepath));\n\n      const rotateOptions = {\n        interval: '1d',\n        maxFiles: 7,\n        maxSize: '1G',\n      };\n\n      if (rotate) {\n        this.pino = Pino(options, createStream(baseName, {path: dirName, ...rotateOptions}));\n      } else {\n        this.pino = Pino(options, createStream(baseName, {path: dirName}));\n      }\n    } else {\n      this.pino = Pino(options);\n    }\n  }\n\n  getLogger(category: string): Pino.Logger {\n    if (!this.childLoggers[category]) {\n      this.childLoggers[category] = this.pino.child({category});\n\n      this.applyChildDebug(category);\n    }\n    return this.childLoggers[category];\n  }\n\n  setLevel(level: LevelWithSilent): void {\n    this.pino.level = level;\n\n    Object.keys(this.childLoggers).map((key) => this.applyChildDebug(key));\n  }\n\n  setDebugFilter(debugFilter: string[]): void {\n    this._debugFilter = debugFilter;\n    Object.keys(this.childLoggers).map((key) => this.applyChildDebug(key));\n  }\n\n  private get debugFilter(): string[] {\n    return this._debugFilter.map((f) => f.trim());\n  }\n\n  private applyChildDebug(category: string) {\n    if (!this.childLoggers[category].level) return;\n\n    const checkCategory = isMainThread ? category : category.replace(`-#${threadId}`, '');\n\n    if (this.debugFilter.includes(`-${checkCategory}`)) {\n      this.pino.info(`Debug logging is disabled for ${category}`);\n      // Set the log level to the global log level or INFO if its debug\n      const newLevel = Math.max(LEVELS_MAP[<LevelWithSilent>this.pino.level], LEVELS_MAP.info);\n      this.childLoggers[category].level = LEVELS[newLevel as keyof typeof LEVELS].toLowerCase();\n    } else if (this.debugFilter.includes(checkCategory)) {\n      this.pino.info(`Debug logging is enabled for ${category}`);\n      this.childLoggers[category].level = 'debug';\n    } else if (this.debugFilter.includes('*')) {\n      // Don't log wildcards, it spams the output\n      this.childLoggers[category].level = 'debug';\n    }\n  }\n}\n"
  },
  {
    "path": "packages/utils/src/logger/util.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {LevelWithSilent} from 'pino';\nimport {LEVELS_MAP} from './constants';\n\nexport function levelFilter(test: LevelWithSilent, target: LevelWithSilent): boolean {\n  return LEVELS_MAP[<LevelWithSilent>test?.toLowerCase()] >= LEVELS_MAP[<LevelWithSilent>target.toLowerCase()];\n}\n"
  },
  {
    "path": "packages/utils/src/networking.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport detectPort from 'detect-port';\n\nexport async function findAvailablePort(startPort: number, range = 10): Promise<number | null> {\n  for (let port = startPort; port <= startPort + range; port++) {\n    try {\n      const _port = await detectPort(port);\n      if (_port === port) {\n        return port;\n      }\n    } catch (e) {\n      return null;\n    }\n  }\n\n  return null;\n}\n"
  },
  {
    "path": "packages/utils/src/query/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './types';\nexport * from './metadata';\n"
  },
  {
    "path": "packages/utils/src/query/metadata.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {blake2AsHex} from '@polkadot/util-crypto';\n\nexport const METADATA_REGEX = /^_metadata$/;\nexport const MULTI_METADATA_REGEX = /^_metadata_[a-zA-Z0-9-]+$/;\nexport const MULTI_GLOBAL_REGEX = /^_[global|Global]$/;\n\nexport function getMetadataTableName(chainId: string): string {\n  const hash = blake2AsHex(chainId, 64);\n  return `_metadata_${hash}`.substring(0, 63); // 63 chars is the max postgres database table name length\n}\n\n// Hash names of SQL functions, triggers, channels to ensure it does not exceed the char limit\nexport function hashName(schema: string, type: string, tableName: string): string {\n  // Postgres identifier limit is 63 bytes (chars)\n  return blake2AsHex(`${schema}_${tableName}_${type}`, 64).substring(0, 63);\n}\n"
  },
  {
    "path": "packages/utils/src/query/types.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport type TableEstimate = {\n  table: string;\n  estimate: number;\n};\n\nexport type MetaData = {\n  lastProcessedHeight: number;\n  lastProcessedBlockTimestamp: number;\n  lastProcessedTimestamp: number;\n  targetHeight: number;\n  chain: string;\n  specName: string;\n  genesisHash: string;\n  indexerHealthy: boolean;\n  indexerNodeVersion: string;\n  queryNodeVersion: string;\n  startHeight?: number;\n  rowCountEstimate: TableEstimate[];\n  deployments: Record<number, string>;\n  historicalStateEnabled: boolean | 'height' | 'timestamp';\n};\n"
  },
  {
    "path": "packages/utils/src/types/TypeClass.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {DataTypes} from '@subql/x-sequelize';\ntype ValueOf<T> = T[keyof T];\nexport type SequelizeTypes = string | ValueOf<typeof DataTypes>;\n\nexport class TypeClass<T extends string, D> {\n  constructor(\n    public name: T,\n    private _hashCode: (data: D) => Uint8Array,\n    private _tsType?: string,\n    private _fieldScalar?: string,\n    private _sequelizeType?: SequelizeTypes\n  ) {}\n  get tsType(): string | undefined {\n    return this._tsType;\n  }\n  get fieldScalar(): string | undefined {\n    return this._fieldScalar;\n  }\n  get sequelizeType(): SequelizeTypes {\n    assert(this._sequelizeType !== undefined, `Type ${this.name} associated sequelize type is not supported`);\n    return this._sequelizeType;\n  }\n  hashCode(data: D): Uint8Array {\n    if (this._hashCode === undefined) {\n      return Buffer.from(JSON.stringify(data));\n    }\n    return this._hashCode(data);\n  }\n}\n"
  },
  {
    "path": "packages/utils/src/types/generalTypes.spec.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isU8a, numberToU8a, u8aConcat} from '@polkadot/util';\nimport {u8aEq} from '@subql/utils';\nimport {getTypeByScalarName} from '../types';\nimport {wrappedNumToU8a} from './u8aUtils';\n\ndescribe('general types', () => {\n  it('can get json type', () => {\n    const typeClass = getTypeByScalarName('Json');\n    expect(typeClass?.name).toBe('Json');\n  });\n\n  it('get sequelize date type', () => {\n    const typeClass = getTypeByScalarName('Date');\n    expect(typeClass?.sequelizeType).toBe('timestamp');\n  });\n\n  it('get unsupported type', () => {\n    expect(getTypeByScalarName('Unsupported' as any)).toBe(undefined);\n  });\n\n  it('Int type should able to hash negative value', () => {\n    const testNum0 = 0;\n    const testNum = -1;\n    const testNum2 = -989899999;\n    const testNum3 = 10000;\n    const testNum4 = -98989999999999;\n    expect(() => wrappedNumToU8a(testNum0)).not.toThrow();\n    const testArray = wrappedNumToU8a(testNum);\n    const testArray2 = wrappedNumToU8a(testNum2);\n    const testArray4 = wrappedNumToU8a(testNum4);\n    expect(u8aEq(wrappedNumToU8a(testNum3), numberToU8a(testNum3))).toBeTruthy();\n    expect(isU8a(testArray)).toBeTruthy();\n    expect(isU8a(testArray2)).toBeTruthy();\n    expect(isU8a(testArray4)).toBeTruthy();\n\n    expect(u8aEq(u8aConcat(new Uint8Array([0]), wrappedNumToU8a(1000)), wrappedNumToU8a(-1000))).toBeTruthy();\n  });\n});\n"
  },
  {
    "path": "packages/utils/src/types/generalTypes.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport * as supportedTypes from './supported';\nimport {TypeClass} from './TypeClass';\n\ntype TypeNameMap = {\n  [K in keyof typeof supportedTypes]: {\n    name: (typeof supportedTypes)[K]['name'];\n    hashCodeArg: Parameters<(typeof supportedTypes)[K]['hashCode']>[0];\n  };\n};\n\nexport type TypeNames = (typeof supportedTypes)[keyof typeof supportedTypes]['name'];\n\nexport function getTypeByScalarName<\n  T extends keyof TypeNameMap,\n  R extends TypeNameMap[T]['hashCodeArg'],\n  N extends TypeNameMap[T]['name'],\n>(type: N | string): TypeClass<N, R> | undefined {\n  const typeClass = Object.values(supportedTypes).find(({name}) => name === type);\n  if (!typeClass) return undefined;\n\n  return typeClass as TypeClass<N, R>;\n}\n"
  },
  {
    "path": "packages/utils/src/types/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './generalTypes';\n\nexport * from './TypeClass';\n\nexport * from './supported';\n"
  },
  {
    "path": "packages/utils/src/types/supported/BigInt.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport BN from 'bn.js';\nimport {TypeClass} from '../TypeClass';\n\nexport const BigInt = new TypeClass(\n  'BigInt',\n  (data: bigint | string): Uint8Array => {\n    return new BN(data.toString()).toBuffer();\n  },\n  'bigint',\n  'BigInt',\n  'numeric'\n);\n"
  },
  {
    "path": "packages/utils/src/types/supported/Boolean.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {numberToU8a} from '@polkadot/util';\nimport {TypeClass} from '../TypeClass';\n\nexport const Boolean = new TypeClass(\n  'Boolean',\n  (data: boolean): Uint8Array => {\n    return numberToU8a(data ? 1 : 0);\n  },\n  'boolean',\n  'Boolean',\n  'boolean'\n);\n"
  },
  {
    "path": "packages/utils/src/types/supported/Bytes.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {isHex, hexToU8a} from '@polkadot/util';\nimport {DataTypes} from '@subql/x-sequelize';\nimport {TypeClass} from '../TypeClass';\n\nexport const Bytes = new TypeClass(\n  'Bytes',\n  (data: string | Uint8Array): Uint8Array => {\n    if (data instanceof Uint8Array) return data;\n    if (isHex(data)) {\n      return hexToU8a(data);\n    }\n    throw new Error(`can not hash ${data}`);\n  },\n  'string',\n  'Bytes',\n  DataTypes.BLOB\n);\n"
  },
  {
    "path": "packages/utils/src/types/supported/Date.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport assert from 'assert';\nimport {numberToU8a} from '@polkadot/util';\nimport {TypeClass} from '../TypeClass';\n\nexport const DateObj = new TypeClass(\n  'Date',\n  (data: Date): Uint8Array => {\n    assert(data instanceof Date, `can not hash ${data}, expect instance of Date`);\n    return numberToU8a(data.getTime());\n  },\n  'Date',\n  'Date',\n  'timestamp'\n);\n"
  },
  {
    "path": "packages/utils/src/types/supported/Float.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {DataTypes} from '@subql/x-sequelize';\nimport {TypeClass} from '../TypeClass';\n\nexport const Float = new TypeClass(\n  'Float',\n  (data: number): Uint8Array => {\n    //TODO, check if this is proper way to handle float\n    return Buffer.from(data.toString());\n  },\n  'number',\n  'Float',\n  DataTypes.FLOAT\n);\n"
  },
  {
    "path": "packages/utils/src/types/supported/ID.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {TypeClass} from '../TypeClass';\n\nexport const ID = new TypeClass(\n  'ID',\n  (data: any): Uint8Array => {\n    return Buffer.from(data);\n  },\n  'string',\n  'ID',\n  'text'\n);\n"
  },
  {
    "path": "packages/utils/src/types/supported/Int.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {numberToU8a} from '@polkadot/util';\nimport {TypeClass} from '../TypeClass';\nimport {wrappedNumToU8a} from '../u8aUtils';\n\nexport const Int = new TypeClass(\n  'Int',\n  (data: number): Uint8Array => {\n    return wrappedNumToU8a(data);\n  },\n  'number',\n  'Int',\n  'integer'\n);\n"
  },
  {
    "path": "packages/utils/src/types/supported/Json.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {DataTypes} from '@subql/x-sequelize';\nimport {TypeClass} from '../TypeClass';\n\n// Function to sort object properties\n// If array is provide, return same array, but sort json properties in each object\n// If JSON object only, sort its properties\nfunction sortJsonObjectProperties(obj: any): any {\n  if (Array.isArray(obj)) {\n    return obj.map((item) => sortJsonObjectProperties(item)).sort();\n  } else if (obj && typeof obj === 'object' && obj.constructor === Object) {\n    const sortedObj: any = {};\n    Object.keys(obj)\n      .sort()\n      .forEach((key) => {\n        const value = sortJsonObjectProperties(obj[key]);\n        if (value !== undefined) {\n          sortedObj[key] = value;\n        }\n      });\n    return sortedObj;\n  }\n  return obj;\n}\n\nexport const Json = new TypeClass(\n  'Json',\n  (data: unknown): Uint8Array => {\n    return Buffer.from(JSON.stringify(sortJsonObjectProperties(data)));\n  },\n  undefined,\n  undefined,\n  DataTypes.JSONB\n);\n"
  },
  {
    "path": "packages/utils/src/types/supported/String.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {TypeClass} from '../TypeClass';\n\nexport const String = new TypeClass(\n  'String',\n  (data: string): Uint8Array => {\n    return Buffer.from(data);\n  },\n  'string',\n  'String',\n  'text'\n);\n"
  },
  {
    "path": "packages/utils/src/types/supported/index.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nexport * from './BigInt';\nexport * from './Boolean';\nexport * from './Bytes';\nexport * from './Date';\nexport * from './Float';\nexport * from './ID';\nexport * from './Int';\nexport * from './String';\nexport * from './Json';\n"
  },
  {
    "path": "packages/utils/src/types/u8aUtils.ts",
    "content": "// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {numberToU8a, u8aConcat} from '@polkadot/util';\n\n/**\n * Due to current polkadotjs `numberToU8a` not support negative number,\n * The helper method used to convert negative to a uint8Array\n *\n * @param byteArray\n */\n\nexport function wrappedNumToU8a(num: number): Uint8Array {\n  if (num >= 0) {\n    return numberToU8a(num);\n  }\n  return u8aConcat(new Uint8Array([0]), numberToU8a(Math.abs(num)));\n}\n"
  },
  {
    "path": "packages/utils/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"target\": \"es2017\",\n    \"sourceMap\": true,\n    \"tsBuildInfoFile\": \"dist/.tsbuildinfo\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"./dist\",\n    \"noImplicitThis\": true,\n    \"noImplicitAny\": true\n  },\n  \"references\": [{\"path\": \"../types\"}],\n  \"include\": [\"src/**/*\"]\n}\n"
  },
  {
    "path": "report-main.json",
    "content": "{\"numFailedTestSuites\":12,\"numFailedTests\":20,\"numPassedTestSuites\":70,\"numPassedTests\":468,\"numPendingTestSuites\":2,\"numPendingTests\":12,\"numRuntimeErrorTestSuites\":4,\"numTodoTests\":0,\"numTotalTestSuites\":84,\"numTotalTests\":500,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1710903676836,\"success\":false,\"testResults\":[{\"assertionResults\":[{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate Construct correct datasources\",\"invocations\":1,\"location\":{\"column\":3,\"line\":128},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Construct correct datasources\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate prepareInputFragments, should return all fragments, if user passes --events=\\\"*\\\"\",\"invocations\":1,\"location\":{\"column\":3,\"line\":168},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"prepareInputFragments, should return all fragments, if user passes --events=\\\"*\\\"\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate prepareInputFragments, no method passed, should prompt through inquirer\",\"invocations\":1,\"location\":{\"column\":3,\"line\":172},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"prepareInputFragments, no method passed, should prompt through inquirer\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate prepareInputFragments, --functions=\\\"transferFrom\\\", should return matching fragment method (cased insensitive)\",\"invocations\":1,\"location\":{\"column\":3,\"line\":186},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"prepareInputFragments, --functions=\\\"transferFrom\\\", should return matching fragment method (cased insensitive)\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate should throw when passing invalid methods\",\"invocations\":1,\"location\":{\"column\":3,\"line\":205},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should throw when passing invalid methods\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate Ensure generateHandlerName\",\"invocations\":1,\"location\":{\"column\":3,\"line\":227},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure generateHandlerName\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate Ensure ConstructHandlerProps\",\"invocations\":1,\"location\":{\"column\":3,\"line\":230},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure ConstructHandlerProps\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate FilterObjectsByStatMutability\",\"invocations\":1,\"location\":{\"column\":3,\"line\":247},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"FilterObjectsByStatMutability\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate filter out existing methods, input address === undefined && ds address === \\\"\\\", should filter\",\"invocations\":1,\"location\":{\"column\":3,\"line\":288},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"filter out existing methods, input address === undefined && ds address === \\\"\\\", should filter\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate filter out existing methods, only on matching address\",\"invocations\":1,\"location\":{\"column\":3,\"line\":307},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"filter out existing methods, only on matching address\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate filter out existing methods, inputAddress === undefined || \\\"\\\" should filter all ds that contains no address\",\"invocations\":1,\"location\":{\"column\":3,\"line\":324},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"filter out existing methods, inputAddress === undefined || \\\"\\\" should filter all ds that contains no address\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate filter out different formatted filters\",\"invocations\":1,\"location\":{\"column\":3,\"line\":342},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"filter out different formatted filters\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate removeKeyword, should only remove expect value\",\"invocations\":1,\"location\":{\"column\":3,\"line\":388},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"removeKeyword, should only remove expect value\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":29,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate Able to read from artifacts and abis\",\"invocations\":1,\"location\":{\"column\":3,\"line\":400},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Able to read from artifacts and abis\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate resolve to absolutePath from tilde\",\"invocations\":1,\"location\":{\"column\":3,\"line\":409},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"resolve to absolutePath from tilde\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate resolve to absolutePath from relativePath\",\"invocations\":1,\"location\":{\"column\":3,\"line\":413},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"resolve to absolutePath from relativePath\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate if absolutePath regex should not do anything\",\"invocations\":1,\"location\":{\"column\":3,\"line\":417},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"if absolutePath regex should not do anything\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate filter existing methods\",\"invocations\":1,\"location\":{\"column\":3,\"line\":421},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"filter existing methods\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate splitArrayString\",\"invocations\":1,\"location\":{\"column\":3,\"line\":435},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"splitArrayString\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate Correct constructedDataSourcesTs\",\"invocations\":1,\"location\":{\"column\":3,\"line\":504},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Correct constructedDataSourcesTs\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate Construct correct ds for yaml\",\"invocations\":1,\"location\":{\"column\":3,\"line\":545},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Construct correct ds for yaml\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate tsExtractor should extract existing events and functions from ts-manifest\",\"invocations\":1,\"location\":{\"column\":3,\"line\":582},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"tsExtractor should extract existing events and functions from ts-manifest\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":19,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate findArray indices\",\"invocations\":1,\"location\":{\"column\":3,\"line\":593},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"findArray indices\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":4,\"failureDetails\":[{\"matcherResult\":{\"message\":\"\\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mtoMatch\\u001b[2m(\\u001b[22m\\u001b[32mexpected\\u001b[39m\\u001b[2m)\\u001b[22m\\n\\nExpected substring: \\u001b[32m\\\"approve(address spender, uint256 rawAmount)\\\"\\u001b[39m\\nReceived string:    \\u001b[31m\\\"0x095ea7b3\\\"\\u001b[39m\",\"pass\":false}}],\"failureMessages\":[\"Error: \\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mtoMatch\\u001b[2m(\\u001b[22m\\u001b[32mexpected\\u001b[39m\\u001b[2m)\\u001b[22m\\n\\nExpected substring: \\u001b[32m\\\"approve(address spender, uint256 rawAmount)\\\"\\u001b[39m\\nReceived string:    \\u001b[31m\\\"0x095ea7b3\\\"\\u001b[39m\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/generate-controller.spec.ts:686:24)\"],\"fullName\":\"CLI codegen:generate extract from TS manifest\",\"invocations\":1,\"location\":{\"column\":3,\"line\":603},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"extract from TS manifest\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate Should replace value in tsManifetst\",\"invocations\":1,\"location\":{\"column\":3,\"line\":692},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Should replace value in tsManifetst\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate Correct output on tsStringify\",\"invocations\":1,\"location\":{\"column\":3,\"line\":699},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Correct output on tsStringify\"},{\"ancestorTitles\":[\"CLI codegen:generate\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate Split array\",\"invocations\":1,\"location\":{\"column\":3,\"line\":721},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Split array\"}],\"endTime\":1710903700090,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCLI codegen:generate › extract from TS manifest\\u001b[39m\\u001b[22m\\n\\n    \\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mtoMatch\\u001b[2m(\\u001b[22m\\u001b[32mexpected\\u001b[39m\\u001b[2m)\\u001b[22m\\n\\n    Expected substring: \\u001b[32m\\\"approve(address spender, uint256 rawAmount)\\\"\\u001b[39m\\n    Received string:    \\u001b[31m\\\"0x095ea7b3\\\"\\u001b[39m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 684 |\\u001b[39m     )\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 685 |\\u001b[39m     \\u001b[90m// TODO expected to fail, due to unable to skip comments\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 686 |\\u001b[39m     expect(v\\u001b[33m.\\u001b[39m\\u001b[36mfunction\\u001b[39m)\\u001b[33m.\\u001b[39mtoMatch(\\u001b[32m'approve(address spender, uint256 rawAmount)'\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m     |\\u001b[39m                        \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 687 |\\u001b[39m     expect(v\\u001b[33m.\\u001b[39mtopics[\\u001b[35m0\\u001b[39m])\\u001b[33m.\\u001b[39mtoMatch(\\u001b[32m'Transfer(address indexed from, address indexed to, uint256 amount)'\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 688 |\\u001b[39m     expect(v\\u001b[33m.\\u001b[39mendpoint[\\u001b[35m0\\u001b[39m])\\u001b[33m.\\u001b[39mtoMatch(\\u001b[32m'https://eth.api.onfinality.io/public'\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 689 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/cli/src/controller/generate-controller.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:686:24)\\u001b[22m\\u001b[2m\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/generate-controller.spec.ts\",\"startTime\":1710903677010,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"CLI deploy, delete, promote\"],\"duration\":209,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\n    at errorHandle (/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/utils.ts:82:11)\\n    at ipfsCID_validate (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.ts:169:16)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.spec.ts:110:23)\"],\"fullName\":\"CLI deploy, delete, promote Deploy to Hosted Service and Delete\",\"invocations\":1,\"location\":{\"column\":3,\"line\":107},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"Deploy to Hosted Service and Delete\"},{\"ancestorTitles\":[\"CLI deploy, delete, promote\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI deploy, delete, promote Promote Deployment\",\"invocations\":1,\"location\":{\"column\":6,\"line\":120},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"Promote Deployment\"},{\"ancestorTitles\":[\"CLI deploy, delete, promote\"],\"duration\":197,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\n    at errorHandle (/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/utils.ts:82:11)\\n    at ipfsCID_validate (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.ts:169:16)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.spec.ts:139:23)\"],\"fullName\":\"CLI deploy, delete, promote should return true for valid ipfsCID\",\"invocations\":1,\"location\":{\"column\":3,\"line\":138},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"should return true for valid ipfsCID\"},{\"ancestorTitles\":[\"CLI deploy, delete, promote\"],\"duration\":221,\"failureDetails\":[{\"matcherResult\":{\"message\":\"\\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mrejects\\u001b[2m.\\u001b[22mtoThrow\\u001b[2m(\\u001b[22m\\u001b[32mexpected\\u001b[39m\\u001b[2m)\\u001b[22m\\n\\nExpected substring: \\u001b[32m\\\"Failed to validate IPFS CID: fake is not a valid subquery deployment id!\\\"\\u001b[39m\\nReceived message:   \\u001b[31m\\\"Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\\"\\u001b[39m\\n\\n    \\u001b[0m \\u001b[90m 80 |\\u001b[39m \\u001b[36mexport\\u001b[39m \\u001b[36mfunction\\u001b[39m errorHandle(e\\u001b[33m:\\u001b[39m any\\u001b[33m,\\u001b[39m msg\\u001b[33m:\\u001b[39m string)\\u001b[33m:\\u001b[39m \\u001b[33mError\\u001b[39m {\\u001b[0m\\n    \\u001b[0m \\u001b[90m 81 |\\u001b[39m   \\u001b[36mif\\u001b[39m (axios\\u001b[33m.\\u001b[39misAxiosError(e) \\u001b[33m&&\\u001b[39m e\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mresponse\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mdata) {\\u001b[0m\\n    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 82 |\\u001b[39m     \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.response.data.message ?? e.response.data}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m    |\\u001b[39m           \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 83 |\\u001b[39m   }\\u001b[0m\\n    \\u001b[0m \\u001b[90m 84 |\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 85 |\\u001b[39m   \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.message}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\n      \\u001b[2mat errorHandle (\\u001b[22mpackages/cli/src/utils/utils.ts\\u001b[2m:82:11)\\u001b[22m\\n      \\u001b[2mat ipfsCID_validate (\\u001b[22mpackages/cli/src/controller/deploy-controller.ts\\u001b[2m:169:16)\\u001b[22m\\n      \\u001b[2mat Object.<anonymous> (\\u001b[22mpackages/cli/src/controller/deploy-controller.spec.ts\\u001b[2m:144:5)\\u001b[22m\",\"pass\":false},\"message\":\"\\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mrejects\\u001b[2m.\\u001b[22mtoThrow\\u001b[2m(\\u001b[22m\\u001b[32mexpected\\u001b[39m\\u001b[2m)\\u001b[22m\\n\\nExpected substring: \\u001b[32m\\\"Failed to validate IPFS CID: fake is not a valid subquery deployment id!\\\"\\u001b[39m\\nReceived message:   \\u001b[31m\\\"Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\\"\\u001b[39m\\n\\n    \\u001b[0m \\u001b[90m 80 |\\u001b[39m \\u001b[36mexport\\u001b[39m \\u001b[36mfunction\\u001b[39m errorHandle(e\\u001b[33m:\\u001b[39m any\\u001b[33m,\\u001b[39m msg\\u001b[33m:\\u001b[39m string)\\u001b[33m:\\u001b[39m \\u001b[33mError\\u001b[39m {\\u001b[0m\\n    \\u001b[0m \\u001b[90m 81 |\\u001b[39m   \\u001b[36mif\\u001b[39m (axios\\u001b[33m.\\u001b[39misAxiosError(e) \\u001b[33m&&\\u001b[39m e\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mresponse\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mdata) {\\u001b[0m\\n    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 82 |\\u001b[39m     \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.response.data.message ?? e.response.data}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m    |\\u001b[39m           \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 83 |\\u001b[39m   }\\u001b[0m\\n    \\u001b[0m \\u001b[90m 84 |\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 85 |\\u001b[39m   \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.message}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\n      \\u001b[2mat errorHandle (\\u001b[22mpackages/cli/src/utils/utils.ts\\u001b[2m:82:11)\\u001b[22m\\n      \\u001b[2mat ipfsCID_validate (\\u001b[22mpackages/cli/src/controller/deploy-controller.ts\\u001b[2m:169:16)\\u001b[22m\\n      \\u001b[2mat Object.<anonymous> (\\u001b[22mpackages/cli/src/controller/deploy-controller.spec.ts\\u001b[2m:144:5)\\u001b[22m\"}],\"failureMessages\":[\"Error: \\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mrejects\\u001b[2m.\\u001b[22mtoThrow\\u001b[2m(\\u001b[22m\\u001b[32mexpected\\u001b[39m\\u001b[2m)\\u001b[22m\\n\\nExpected substring: \\u001b[32m\\\"Failed to validate IPFS CID: fake is not a valid subquery deployment id!\\\"\\u001b[39m\\nReceived message:   \\u001b[31m\\\"Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\\"\\u001b[39m\\n\\n    \\u001b[0m \\u001b[90m 80 |\\u001b[39m \\u001b[36mexport\\u001b[39m \\u001b[36mfunction\\u001b[39m errorHandle(e\\u001b[33m:\\u001b[39m any\\u001b[33m,\\u001b[39m msg\\u001b[33m:\\u001b[39m string)\\u001b[33m:\\u001b[39m \\u001b[33mError\\u001b[39m {\\u001b[0m\\n    \\u001b[0m \\u001b[90m 81 |\\u001b[39m   \\u001b[36mif\\u001b[39m (axios\\u001b[33m.\\u001b[39misAxiosError(e) \\u001b[33m&&\\u001b[39m e\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mresponse\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mdata) {\\u001b[0m\\n    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 82 |\\u001b[39m     \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.response.data.message ?? e.response.data}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m    |\\u001b[39m           \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 83 |\\u001b[39m   }\\u001b[0m\\n    \\u001b[0m \\u001b[90m 84 |\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 85 |\\u001b[39m   \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.message}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\n      \\u001b[2mat errorHandle (\\u001b[22mpackages/cli/src/utils/utils.ts\\u001b[2m:82:11)\\u001b[22m\\n      \\u001b[2mat ipfsCID_validate (\\u001b[22mpackages/cli/src/controller/deploy-controller.ts\\u001b[2m:169:16)\\u001b[22m\\n      \\u001b[2mat Object.<anonymous> (\\u001b[22mpackages/cli/src/controller/deploy-controller.spec.ts\\u001b[2m:144:5)\\u001b[22m\\n    at Object.toThrow (/Users/scotttwiname/Projects/subql-main/node_modules/expect/build/index.js:210:22)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.spec.ts:144:80)\\n    at Promise.then.completed (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/utils.js:293:28)\\n    at new Promise (<anonymous>)\\n    at callAsyncCircusFn (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/utils.js:226:10)\\n    at _callCircusTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:297:40)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at _runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:233:3)\\n    at _runTestsForDescribeBlock (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:135:9)\\n    at _runTestsForDescribeBlock (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:130:9)\\n    at run (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:68:3)\\n    at runAndTransformResultsToJestFormat (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"CLI deploy, delete, promote to throw error for invalid ipfsCID\",\"invocations\":1,\"location\":{\"column\":3,\"line\":143},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"to throw error for invalid ipfsCID\"},{\"ancestorTitles\":[\"CLI deploy, delete, promote\"],\"duration\":205,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\n    at errorHandle (/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/utils.ts:82:11)\\n    at ipfsCID_validate (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.ts:169:16)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.spec.ts:150:23)\"],\"fullName\":\"CLI deploy, delete, promote get DictEndpoint - polkadot\",\"invocations\":1,\"location\":{\"column\":3,\"line\":149},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"get DictEndpoint - polkadot\"},{\"ancestorTitles\":[\"CLI deploy, delete, promote\"],\"duration\":196,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\n    at errorHandle (/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/utils.ts:82:11)\\n    at ipfsCID_validate (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.ts:169:16)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.spec.ts:160:23)\"],\"fullName\":\"CLI deploy, delete, promote reDeploy to Hosted Service\",\"invocations\":1,\"location\":{\"column\":3,\"line\":157},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"reDeploy to Hosted Service\"}],\"endTime\":1710903702449,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCLI deploy, delete, promote › Deploy to Hosted Service and Delete\\u001b[39m\\u001b[22m\\n\\n    Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 80 |\\u001b[39m \\u001b[36mexport\\u001b[39m \\u001b[36mfunction\\u001b[39m errorHandle(e\\u001b[33m:\\u001b[39m any\\u001b[33m,\\u001b[39m msg\\u001b[33m:\\u001b[39m string)\\u001b[33m:\\u001b[39m \\u001b[33mError\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 81 |\\u001b[39m   \\u001b[36mif\\u001b[39m (axios\\u001b[33m.\\u001b[39misAxiosError(e) \\u001b[33m&&\\u001b[39m e\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mresponse\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mdata) {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 82 |\\u001b[39m     \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.response.data.message ?? e.response.data}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m           \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 83 |\\u001b[39m   }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 84 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 85 |\\u001b[39m   \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.message}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat errorHandle (\\u001b[22m\\u001b[2mpackages/cli/src/utils/utils.ts\\u001b[2m:82:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat ipfsCID_validate (\\u001b[22m\\u001b[2mpackages/cli/src/controller/deploy-controller.ts\\u001b[2m:169:16)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/cli/src/controller/deploy-controller.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:110:23)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCLI deploy, delete, promote › should return true for valid ipfsCID\\u001b[39m\\u001b[22m\\n\\n    Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 80 |\\u001b[39m \\u001b[36mexport\\u001b[39m \\u001b[36mfunction\\u001b[39m errorHandle(e\\u001b[33m:\\u001b[39m any\\u001b[33m,\\u001b[39m msg\\u001b[33m:\\u001b[39m string)\\u001b[33m:\\u001b[39m \\u001b[33mError\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 81 |\\u001b[39m   \\u001b[36mif\\u001b[39m (axios\\u001b[33m.\\u001b[39misAxiosError(e) \\u001b[33m&&\\u001b[39m e\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mresponse\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mdata) {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 82 |\\u001b[39m     \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.response.data.message ?? e.response.data}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m           \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 83 |\\u001b[39m   }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 84 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 85 |\\u001b[39m   \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.message}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat errorHandle (\\u001b[22m\\u001b[2mpackages/cli/src/utils/utils.ts\\u001b[2m:82:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat ipfsCID_validate (\\u001b[22m\\u001b[2mpackages/cli/src/controller/deploy-controller.ts\\u001b[2m:169:16)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/cli/src/controller/deploy-controller.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:139:23)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCLI deploy, delete, promote › to throw error for invalid ipfsCID\\u001b[39m\\u001b[22m\\n\\n    \\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mrejects\\u001b[2m.\\u001b[22mtoThrow\\u001b[2m(\\u001b[22m\\u001b[32mexpected\\u001b[39m\\u001b[2m)\\u001b[22m\\n\\n    Expected substring: \\u001b[32m\\\"Failed to validate IPFS CID: fake is not a valid subquery deployment id!\\\"\\u001b[39m\\n    Received message:   \\u001b[31m\\\"Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\\"\\u001b[39m\\n\\n        \\u001b[0m \\u001b[90m 80 |\\u001b[39m \\u001b[36mexport\\u001b[39m \\u001b[36mfunction\\u001b[39m errorHandle(e\\u001b[33m:\\u001b[39m any\\u001b[33m,\\u001b[39m msg\\u001b[33m:\\u001b[39m string)\\u001b[33m:\\u001b[39m \\u001b[33mError\\u001b[39m {\\u001b[0m\\n        \\u001b[0m \\u001b[90m 81 |\\u001b[39m   \\u001b[36mif\\u001b[39m (axios\\u001b[33m.\\u001b[39misAxiosError(e) \\u001b[33m&&\\u001b[39m e\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mresponse\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mdata) {\\u001b[0m\\n        \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 82 |\\u001b[39m     \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.response.data.message ?? e.response.data}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n        \\u001b[0m \\u001b[90m    |\\u001b[39m           \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n        \\u001b[0m \\u001b[90m 83 |\\u001b[39m   }\\u001b[0m\\n        \\u001b[0m \\u001b[90m 84 |\\u001b[39m\\u001b[0m\\n        \\u001b[0m \\u001b[90m 85 |\\u001b[39m   \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.message}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\n\\n          \\u001b[2mat errorHandle (\\u001b[22mpackages/cli/src/utils/utils.ts\\u001b[2m:82:11)\\u001b[22m\\n          \\u001b[2mat ipfsCID_validate (\\u001b[22mpackages/cli/src/controller/deploy-controller.ts\\u001b[2m:169:16)\\u001b[22m\\n          \\u001b[2mat Object.<anonymous> (\\u001b[22mpackages/cli/src/controller/deploy-controller.spec.ts\\u001b[2m:144:5)\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 142 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 143 |\\u001b[39m   it(\\u001b[32m'to throw error for invalid ipfsCID'\\u001b[39m\\u001b[33m,\\u001b[39m \\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 144 |\\u001b[39m     \\u001b[36mawait\\u001b[39m expect(ipfsCID_validate(\\u001b[32m'fake'\\u001b[39m\\u001b[33m,\\u001b[39m testAuth\\u001b[33m,\\u001b[39m \\u001b[33mROOT_API_URL_DEV\\u001b[39m))\\u001b[33m.\\u001b[39mrejects\\u001b[33m.\\u001b[39mtoThrow(\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m     |\\u001b[39m                                                                                \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 145 |\\u001b[39m       \\u001b[32m'Failed to validate IPFS CID: fake is not a valid subquery deployment id!'\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 146 |\\u001b[39m     )\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 147 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.toThrow (\\u001b[22m\\u001b[2mnode_modules/expect/build/index.js\\u001b[2m:210:22)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/cli/src/controller/deploy-controller.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:144:80)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCLI deploy, delete, promote › get DictEndpoint - polkadot\\u001b[39m\\u001b[22m\\n\\n    Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 80 |\\u001b[39m \\u001b[36mexport\\u001b[39m \\u001b[36mfunction\\u001b[39m errorHandle(e\\u001b[33m:\\u001b[39m any\\u001b[33m,\\u001b[39m msg\\u001b[33m:\\u001b[39m string)\\u001b[33m:\\u001b[39m \\u001b[33mError\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 81 |\\u001b[39m   \\u001b[36mif\\u001b[39m (axios\\u001b[33m.\\u001b[39misAxiosError(e) \\u001b[33m&&\\u001b[39m e\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mresponse\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mdata) {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 82 |\\u001b[39m     \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.response.data.message ?? e.response.data}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m           \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 83 |\\u001b[39m   }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 84 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 85 |\\u001b[39m   \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.message}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat errorHandle (\\u001b[22m\\u001b[2mpackages/cli/src/utils/utils.ts\\u001b[2m:82:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat ipfsCID_validate (\\u001b[22m\\u001b[2mpackages/cli/src/controller/deploy-controller.ts\\u001b[2m:169:16)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/cli/src/controller/deploy-controller.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:150:23)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCLI deploy, delete, promote › reDeploy to Hosted Service\\u001b[39m\\u001b[22m\\n\\n    Failed to validate IPFS CID: failure to get a peer from the ring-balancer\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 80 |\\u001b[39m \\u001b[36mexport\\u001b[39m \\u001b[36mfunction\\u001b[39m errorHandle(e\\u001b[33m:\\u001b[39m any\\u001b[33m,\\u001b[39m msg\\u001b[33m:\\u001b[39m string)\\u001b[33m:\\u001b[39m \\u001b[33mError\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 81 |\\u001b[39m   \\u001b[36mif\\u001b[39m (axios\\u001b[33m.\\u001b[39misAxiosError(e) \\u001b[33m&&\\u001b[39m e\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mresponse\\u001b[33m?\\u001b[39m\\u001b[33m.\\u001b[39mdata) {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 82 |\\u001b[39m     \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.response.data.message ?? e.response.data}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m           \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 83 |\\u001b[39m   }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 84 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 85 |\\u001b[39m   \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`${msg} ${e.message}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat errorHandle (\\u001b[22m\\u001b[2mpackages/cli/src/utils/utils.ts\\u001b[2m:82:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat ipfsCID_validate (\\u001b[22m\\u001b[2mpackages/cli/src/controller/deploy-controller.ts\\u001b[2m:169:16)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/cli/src/controller/deploy-controller.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:160:23)\\u001b[22m\\u001b[2m\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.spec.ts\",\"startTime\":1710903677022,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"IndexerManager\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"IndexerManager should be able to start the manager (v0.0.1)\",\"invocations\":1,\"location\":{\"column\":6,\"line\":228},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"should be able to start the manager (v0.0.1)\"},{\"ancestorTitles\":[\"IndexerManager\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"IndexerManager should be able to start the manager (v0.2.0)\",\"invocations\":1,\"location\":{\"column\":6,\"line\":241},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"should be able to start the manager (v0.2.0)\"}],\"coverage\":{},\"endTime\":1710904328682,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/indexer.manager.spec.ts\",\"startTime\":1710904328682,\"status\":\"skipped\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"CLI create project and delete project\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI create project and delete project Create project and delete\",\"invocations\":1,\"location\":{\"column\":32,\"line\":24},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"Create project and delete\"}],\"coverage\":{},\"endTime\":1710904328682,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/project-controller.spec.ts\",\"startTime\":1710904328682,\"status\":\"skipped\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"query limits\",\"entity limits\"],\"duration\":10039,\"failureDetails\":[{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"},{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"}],\"failureMessages\":[\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:62:5\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:57:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:19:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\",\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:73:5\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:57:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:19:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"query limits entity limits unbounded query clamped to safe bound\",\"invocations\":1,\"location\":{\"column\":5,\"line\":77},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"unbounded query clamped to safe bound\"},{\"ancestorTitles\":[\"query limits\",\"entity limits\"],\"duration\":10004,\"failureDetails\":[{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"},{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"}],\"failureMessages\":[\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:62:5\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:57:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:19:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\",\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:73:5\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:57:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:19:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"query limits entity limits bounded unsafe query clamped to safe bound\",\"invocations\":1,\"location\":{\"column\":5,\"line\":94},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"bounded unsafe query clamped to safe bound\"},{\"ancestorTitles\":[\"query limits\",\"entity limits\"],\"duration\":10004,\"failureDetails\":[{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"},{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"}],\"failureMessages\":[\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:62:5\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:57:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:19:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\",\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:73:5\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:57:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts:19:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"query limits entity limits bounded safe query remains unchanged\",\"invocations\":1,\"location\":{\"column\":5,\"line\":111},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"bounded safe query remains unchanged\"}],\"coverage\":{},\"endTime\":1710904328682,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › unbounded query clamped to safe bound\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › unbounded query clamped to safe bound\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 60 |\\u001b[39m     }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 61 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 62 |\\u001b[39m     beforeEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m     \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 63 |\\u001b[39m       \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE SCHEMA IF NOT EXISTS ${dbSchema}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 64 |\\u001b[39m       \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE TABLE IF NOT EXISTS subquery_1.table (\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 65 |\\u001b[39m \\u001b[32m            key   INT, \\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:62:5\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:57:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:19:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › unbounded query clamped to safe bound\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › unbounded query clamped to safe bound\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 71 |\\u001b[39m     })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 72 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 73 |\\u001b[39m     afterEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m     \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 74 |\\u001b[39m       \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`DROP TABLE subquery_1.table`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 75 |\\u001b[39m     })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 76 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:73:5\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:57:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:19:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › bounded unsafe query clamped to safe bound\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › bounded unsafe query clamped to safe bound\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 60 |\\u001b[39m     }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 61 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 62 |\\u001b[39m     beforeEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m     \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 63 |\\u001b[39m       \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE SCHEMA IF NOT EXISTS ${dbSchema}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 64 |\\u001b[39m       \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE TABLE IF NOT EXISTS subquery_1.table (\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 65 |\\u001b[39m \\u001b[32m            key   INT, \\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:62:5\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:57:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:19:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › bounded unsafe query clamped to safe bound\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › bounded unsafe query clamped to safe bound\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 71 |\\u001b[39m     })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 72 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 73 |\\u001b[39m     afterEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m     \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 74 |\\u001b[39m       \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`DROP TABLE subquery_1.table`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 75 |\\u001b[39m     })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 76 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:73:5\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:57:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:19:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › bounded safe query remains unchanged\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › bounded safe query remains unchanged\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 60 |\\u001b[39m     }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 61 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 62 |\\u001b[39m     beforeEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m     \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 63 |\\u001b[39m       \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE SCHEMA IF NOT EXISTS ${dbSchema}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 64 |\\u001b[39m       \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE TABLE IF NOT EXISTS subquery_1.table (\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 65 |\\u001b[39m \\u001b[32m            key   INT, \\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:62:5\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:57:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:19:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › bounded safe query remains unchanged\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mquery limits › entity limits › bounded safe query remains unchanged\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 71 |\\u001b[39m     })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 72 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 73 |\\u001b[39m     afterEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m     \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 74 |\\u001b[39m       \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`DROP TABLE subquery_1.table`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 75 |\\u001b[39m     })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 76 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:73:5\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:57:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/limit.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:19:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\n  \\u001b[1m● \\u001b[22mTest suite failed to run\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\n    \\u001b[0m \\u001b[90m 51 |\\u001b[39m   }\\u001b[0m\\n    \\u001b[0m \\u001b[90m 52 |\\u001b[39m\\u001b[0m\\n    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 53 |\\u001b[39m   afterAll(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\n    \\u001b[0m \\u001b[90m    |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 54 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mend()\\u001b[33m;\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 55 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 56 |\\u001b[39m\\u001b[0m\\n\\n      \\u001b[2mat \\u001b[22mpackages/query/src/graphql/limit.test.ts\\u001b[2m:53:3\\u001b[22m\\n      \\u001b[2mat Object.<anonymous> (\\u001b[22mpackages/query/src/graphql/limit.test.ts\\u001b[2m:19:1)\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/limit.test.ts\",\"startTime\":1710904328682,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"GraphqlModule\"],\"duration\":10022,\"failureDetails\":[{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"},{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"}],\"failureMessages\":[\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:59:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:17:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\",\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:70:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:17:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"GraphqlModule can query all metadata fields from database\",\"invocations\":1,\"location\":{\"column\":3,\"line\":78},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"can query all metadata fields from database\"},{\"ancestorTitles\":[\"GraphqlModule\"],\"duration\":10005,\"failureDetails\":[{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"},{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"}],\"failureMessages\":[\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:59:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:17:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\",\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:70:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:17:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"GraphqlModule wont resolve fields that arent allowed metadata\",\"invocations\":1,\"location\":{\"column\":3,\"line\":124},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"wont resolve fields that arent allowed metadata\"},{\"ancestorTitles\":[\"GraphqlModule\"],\"duration\":10003,\"failureDetails\":[{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"},{},{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"}],\"failureMessages\":[\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:59:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:17:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\",\"Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n    at Object.continueSession (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/sasl.js:24:11)\\n    at Client._handleAuthSASLContinue (/Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/client.js:257:10)\\n    at Connection.emit (node:events:518:28)\\n    at /Users/scotttwiname/Projects/subql-main/node_modules/pg/lib/connection.js:114:12\\n    at Parser.parse (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/parser.ts:104:9)\\n    at Socket.<anonymous> (/Users/scotttwiname/Projects/subql-main/node_modules/pg-protocol/src/index.ts:7:48)\\n    at Socket.emit (node:events:518:28)\\n    at addChunk (node:internal/streams/readable:559:12)\\n    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)\\n    at Socket.Readable.push (node:internal/streams/readable:390:5)\\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)\",\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:70:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts:17:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"GraphqlModule resolve incorrect fields in db to null when queried from graphql\",\"invocations\":1,\"location\":{\"column\":3,\"line\":149},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"resolve incorrect fields in db to null when queried from graphql\"}],\"coverage\":{},\"endTime\":1710904328682,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › can query all metadata fields from database\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › can query all metadata fields from database\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 57 |\\u001b[39m   }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 58 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 59 |\\u001b[39m   beforeEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 60 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE SCHEMA IF NOT EXISTS ${dbSchema}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 61 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE TABLE IF NOT EXISTS subquery_1._metadata (\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 62 |\\u001b[39m \\u001b[32m            key character varying(255) COLLATE pg_catalog.\\\"default\\\" NOT NULL,\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:59:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:17:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › can query all metadata fields from database\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › can query all metadata fields from database\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 68 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 69 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 70 |\\u001b[39m   afterEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 71 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`DROP TABLE subquery_1._metadata`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 72 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 73 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:70:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:17:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › wont resolve fields that arent allowed metadata\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › wont resolve fields that arent allowed metadata\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 57 |\\u001b[39m   }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 58 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 59 |\\u001b[39m   beforeEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 60 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE SCHEMA IF NOT EXISTS ${dbSchema}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 61 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE TABLE IF NOT EXISTS subquery_1._metadata (\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 62 |\\u001b[39m \\u001b[32m            key character varying(255) COLLATE pg_catalog.\\\"default\\\" NOT NULL,\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:59:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:17:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › wont resolve fields that arent allowed metadata\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › wont resolve fields that arent allowed metadata\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 68 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 69 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 70 |\\u001b[39m   afterEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 71 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`DROP TABLE subquery_1._metadata`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 72 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 73 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:70:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:17:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › resolve incorrect fields in db to null when queried from graphql\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › resolve incorrect fields in db to null when queried from graphql\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 57 |\\u001b[39m   }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 58 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 59 |\\u001b[39m   beforeEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 60 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE SCHEMA IF NOT EXISTS ${dbSchema}`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 61 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`CREATE TABLE IF NOT EXISTS subquery_1._metadata (\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 62 |\\u001b[39m \\u001b[32m            key character varying(255) COLLATE pg_catalog.\\\"default\\\" NOT NULL,\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:59:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:17:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › resolve incorrect fields in db to null when queried from graphql\\u001b[39m\\u001b[22m\\n\\n    SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.continueSession (\\u001b[22m\\u001b[2mnode_modules/pg/lib/sasl.js\\u001b[2m:24:11)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Client._handleAuthSASLContinue (\\u001b[22m\\u001b[2mnode_modules/pg/lib/client.js\\u001b[2m:257:10)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mnode_modules/pg/lib/connection.js\\u001b[2m:114:12\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Parser.parse (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/parser.ts\\u001b[2m:104:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Socket.<anonymous> (\\u001b[22m\\u001b[2mnode_modules/pg-protocol/src/index.ts\\u001b[2m:7:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mGraphqlModule › resolve incorrect fields in db to null when queried from graphql\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 68 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 69 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 70 |\\u001b[39m   afterEach(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 71 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mquery(\\u001b[32m`DROP TABLE subquery_1._metadata`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 72 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 73 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:70:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/query/src/graphql/graphql.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:17:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\n  \\u001b[1m● \\u001b[22mTest suite failed to run\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a hook.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\n    \\u001b[0m \\u001b[90m 72 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 73 |\\u001b[39m\\u001b[0m\\n    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[39m\\u001b[90m 74 |\\u001b[39m   afterAll(\\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\n    \\u001b[0m \\u001b[90m    |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 75 |\\u001b[39m     \\u001b[36mawait\\u001b[39m pool\\u001b[33m.\\u001b[39mend()\\u001b[33m;\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 76 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\n    \\u001b[0m \\u001b[90m 77 |\\u001b[39m\\u001b[0m\\n\\n      \\u001b[2mat \\u001b[22mpackages/query/src/graphql/graphql.test.ts\\u001b[2m:74:3\\u001b[22m\\n      \\u001b[2mat Object.<anonymous> (\\u001b[22mpackages/query/src/graphql/graphql.test.ts\\u001b[2m:17:1)\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/graphql.test.ts\",\"startTime\":1710904328682,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Store service integration test\"],\"duration\":11683,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store service integration test Correct db sync on historical project\",\"invocations\":1,\"location\":{\"column\":3,\"line\":52},\"numPassingAsserts\":5,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Correct db sync on historical project\"},{\"ancestorTitles\":[\"Store service integration test\"],\"duration\":10143,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store service integration test Correct db sync on non-historical\",\"invocations\":1,\"location\":{\"column\":3,\"line\":153},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Correct db sync on non-historical\"},{\"ancestorTitles\":[\"Store service integration test\"],\"duration\":9174,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store service integration test Cyclic relations on non-historical\",\"invocations\":1,\"location\":{\"column\":3,\"line\":223},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Cyclic relations on non-historical\"},{\"ancestorTitles\":[\"Store service integration test\"],\"duration\":9386,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store service integration test Init with enums\",\"invocations\":1,\"location\":{\"column\":3,\"line\":267},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Init with enums\"},{\"ancestorTitles\":[\"Store service integration test\"],\"duration\":10694,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store service integration test Able to drop notification triggers and functions\",\"invocations\":1,\"location\":{\"column\":3,\"line\":298},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Able to drop notification triggers and functions\"}],\"endTime\":1710903767918,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/store.service.test.ts\",\"startTime\":1710903714893,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service calls the preHookLoop when init is called\",\"invocations\":1,\"location\":{\"column\":3,\"line\":181},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"calls the preHookLoop when init is called\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service adds bypassBlocks for empty datasources\",\"invocations\":1,\"location\":{\"column\":3,\"line\":189},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"adds bypassBlocks for empty datasources\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":153,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service checks chain heads at an interval\",\"invocations\":1,\"location\":{\"column\":3,\"line\":241},\"numPassingAsserts\":5,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"checks chain heads at an interval\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service enqueues blocks WITHOUT dictionary\",\"invocations\":1,\"location\":{\"column\":3,\"line\":259},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"enqueues blocks WITHOUT dictionary\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3002,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service enqueues blocks WITH valid dictionary results\",\"invocations\":1,\"location\":{\"column\":3,\"line\":270},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"enqueues blocks WITH valid dictionary results\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3003,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service skips the dictionary\",\"invocations\":1,\"location\":{\"column\":3,\"line\":282},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"skips the dictionary\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":5004,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service updates the last processed height if the dictionary result is empty\",\"invocations\":1,\"location\":{\"column\":3,\"line\":297},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"updates the last processed height if the dictionary result is empty\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":2006,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service waits for blockDispatcher to have capacity\",\"invocations\":1,\"location\":{\"column\":3,\"line\":326},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"waits for blockDispatcher to have capacity\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3008,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service enqueues modulo blocks WITHOUT dictionary\",\"invocations\":1,\"location\":{\"column\":3,\"line\":348},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"enqueues modulo blocks WITHOUT dictionary\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3003,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service enqueues modulo blocks WITH dictionary\",\"invocations\":1,\"location\":{\"column\":3,\"line\":361},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"enqueues modulo blocks WITH dictionary\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3010,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service update the LatestBufferHeight when modulo blocks full synced\",\"invocations\":1,\"location\":{\"column\":3,\"line\":377},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"update the LatestBufferHeight when modulo blocks full synced\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3020,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service skips bypassBlocks\",\"invocations\":1,\"location\":{\"column\":3,\"line\":391},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"skips bypassBlocks\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3002,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service transforms bypassBlocks\",\"invocations\":1,\"location\":{\"column\":3,\"line\":405},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"transforms bypassBlocks\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3002,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service dictionary page limited result and modulo block enqueues correct blocks\",\"invocations\":1,\"location\":{\"column\":3,\"line\":422},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"dictionary page limited result and modulo block enqueues correct blocks\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":3004,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service dictionary dictionary queries to be limited to target block height (finalized/latest depending on settings)\",\"invocations\":1,\"location\":{\"column\":3,\"line\":447},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"dictionary dictionary queries to be limited to target block height (finalized/latest depending on settings)\"},{\"ancestorTitles\":[\"Fetch Service\"],\"duration\":24,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Fetch Service throws if the start block is greater than the chain latest height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":467},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throws if the start block is greater than the chain latest height\"}],\"endTime\":1710903768499,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/fetch.service.spec.ts\",\"startTime\":1710903731787,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[],\"coverage\":{},\"endTime\":1710904328682,\"message\":\"  \\u001b[1m● \\u001b[22mTest suite failed to run\\n\\n    Jest worker encountered 4 child process exceptions, exceeding retry limit\\n\\n      \\u001b[2mat ChildProcessWorker.initialize (\\u001b[22mnode_modules/jest-worker/build/workers/ChildProcessWorker.js\\u001b[2m:181:21)\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/connectionPool.service.spec.ts\",\"startTime\":1710904328682,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"GraphqlTypes\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GraphqlTypes Supports arrays of primitives\",\"invocations\":1,\"location\":{\"column\":3,\"line\":117},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Supports arrays of primitives\"},{\"ancestorTitles\":[\"GraphqlTypes\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GraphqlTypes Throws arrays of non-primitives\",\"invocations\":1,\"location\":{\"column\":3,\"line\":125},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Throws arrays of non-primitives\"},{\"ancestorTitles\":[\"GraphqlTypes\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GraphqlTypes Throws with empty arrays\",\"invocations\":1,\"location\":{\"column\":3,\"line\":129},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Throws with empty arrays\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1526,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary set startHeight of this dictionary\",\"invocations\":1,\"location\":{\"column\":5,\"line\":175},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"set startHeight of this dictionary\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1668,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary validateChainMeta and useDictionary\",\"invocations\":1,\"location\":{\"column\":5,\"line\":180},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validateChainMeta and useDictionary\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1397,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary validate dictionary with a height\",\"invocations\":1,\"location\":{\"column\":5,\"line\":184},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validate dictionary with a height\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1422,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary able to build queryEntryMap\",\"invocations\":1,\"location\":{\"column\":5,\"line\":190},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"able to build queryEntryMap\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":4596,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary can use scoped dictionary query\",\"invocations\":1,\"location\":{\"column\":5,\"line\":200},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can use scoped dictionary query\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1653,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary able to getDicitonaryQueryEntries\",\"invocations\":1,\"location\":{\"column\":5,\"line\":211},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"able to getDicitonaryQueryEntries\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":1508,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 get metadata\",\"invocations\":1,\"location\":{\"column\":3,\"line\":250},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"get metadata\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":2947,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 init metadata and get metadata\",\"invocations\":1,\"location\":{\"column\":3,\"line\":256},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"init metadata and get metadata\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":2936,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 return dictionary query result\",\"invocations\":1,\"location\":{\"column\":3,\"line\":265},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"return dictionary query result\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":2902,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 should return undefined startblock height greater than dictionary last processed height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":274},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return undefined startblock height greater than dictionary last processed height\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":1443,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 should use metadata last process height at end of query height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":282},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should use metadata last process height at end of query height\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":618,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test return undefined when dictionary api failed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":293},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"return undefined when dictionary api failed\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":2949,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test limits the dictionary query to that block range\",\"invocations\":1,\"location\":{\"column\":3,\"line\":314},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"limits the dictionary query to that block range\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":3119,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test test query the correct range\",\"invocations\":1,\"location\":{\"column\":3,\"line\":336},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"test query the correct range\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":3158,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test use minimum value of event/extrinsic returned block as batch end block\",\"invocations\":1,\"location\":{\"column\":3,\"line\":356},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"use minimum value of event/extrinsic returned block as batch end block\"}],\"endTime\":1710903804285,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v1/dictionaryV1.spec.ts\",\"startTime\":1710903768679,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"GraphqlTypes\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GraphqlTypes Supports arrays of primitives\",\"invocations\":1,\"location\":{\"column\":3,\"line\":117},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Supports arrays of primitives\"},{\"ancestorTitles\":[\"GraphqlTypes\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GraphqlTypes Throws arrays of non-primitives\",\"invocations\":1,\"location\":{\"column\":3,\"line\":125},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Throws arrays of non-primitives\"},{\"ancestorTitles\":[\"GraphqlTypes\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GraphqlTypes Throws with empty arrays\",\"invocations\":1,\"location\":{\"column\":3,\"line\":129},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Throws with empty arrays\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":2252,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary set startHeight of this dictionary\",\"invocations\":1,\"location\":{\"column\":5,\"line\":175},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"set startHeight of this dictionary\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1477,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary validateChainMeta and useDictionary\",\"invocations\":1,\"location\":{\"column\":5,\"line\":180},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validateChainMeta and useDictionary\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":10011,\"failureDetails\":[{\"matcherResult\":{\"message\":\"\\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mtoBeTruthy\\u001b[2m()\\u001b[22m\\n\\nReceived: \\u001b[31mfalse\\u001b[39m\",\"pass\":false}}],\"failureMessages\":[\"Error: \\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mtoBeTruthy\\u001b[2m()\\u001b[22m\\n\\nReceived: \\u001b[31mfalse\\u001b[39m\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v1/dictionaryV1.spec.ts:185:48)\\n    at Promise.then.completed (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/utils.js:293:28)\\n    at new Promise (<anonymous>)\\n    at callAsyncCircusFn (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/utils.js:226:10)\\n    at _callCircusTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:297:40)\\n    at _runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:233:3)\\n    at _runTestsForDescribeBlock (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:135:9)\\n    at _runTestsForDescribeBlock (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:130:9)\\n    at _runTestsForDescribeBlock (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:130:9)\\n    at run (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:68:3)\\n    at runAndTransformResultsToJestFormat (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"Dictionary V1 coreDictionary validate dictionary with a height\",\"invocations\":1,\"location\":{\"column\":5,\"line\":184},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"validate dictionary with a height\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1420,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary able to build queryEntryMap\",\"invocations\":1,\"location\":{\"column\":5,\"line\":190},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"able to build queryEntryMap\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":4622,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary can use scoped dictionary query\",\"invocations\":1,\"location\":{\"column\":5,\"line\":200},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can use scoped dictionary query\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1441,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary able to getDicitonaryQueryEntries\",\"invocations\":1,\"location\":{\"column\":5,\"line\":211},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"able to getDicitonaryQueryEntries\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":1456,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 get metadata\",\"invocations\":1,\"location\":{\"column\":3,\"line\":250},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"get metadata\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":11793,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 init metadata and get metadata\",\"invocations\":1,\"location\":{\"column\":3,\"line\":256},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"init metadata and get metadata\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":3013,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 return dictionary query result\",\"invocations\":1,\"location\":{\"column\":3,\"line\":265},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"return dictionary query result\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":2896,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 should return undefined startblock height greater than dictionary last processed height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":274},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return undefined startblock height greater than dictionary last processed height\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":1509,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 should use metadata last process height at end of query height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":282},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should use metadata last process height at end of query height\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":671,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test return undefined when dictionary api failed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":293},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"return undefined when dictionary api failed\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":2893,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test limits the dictionary query to that block range\",\"invocations\":1,\"location\":{\"column\":3,\"line\":314},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"limits the dictionary query to that block range\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":3221,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test test query the correct range\",\"invocations\":1,\"location\":{\"column\":3,\"line\":336},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"test query the correct range\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":11508,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test use minimum value of event/extrinsic returned block as batch end block\",\"invocations\":1,\"location\":{\"column\":3,\"line\":356},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"use minimum value of event/extrinsic returned block as batch end block\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test can init metadata and set start height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":60},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can init metadata and set start height\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test should get correct getQueryEndBlock\",\"invocations\":1,\"location\":{\"column\":3,\"line\":66},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should get correct getQueryEndBlock\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test can get data\",\"invocations\":1,\"location\":{\"column\":3,\"line\":77},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can get data\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test can determine current dictionary query map is valid with block height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":115},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can determine current dictionary query map is valid with block height\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test should able to handle convertResponseBlocks return empty array blocks and lastBufferedHeight is undefined\",\"invocations\":1,\"location\":{\"column\":3,\"line\":122},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should able to handle convertResponseBlocks return empty array blocks and lastBufferedHeight is undefined\"},{\"ancestorTitles\":[\"determine dictionary V2 version\"],\"duration\":443,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"determine dictionary V2 version if not supported dictionary endpoint, v2 should throw error if init failed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":154},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"if not supported dictionary endpoint, v2 should throw error if init failed\"},{\"ancestorTitles\":[],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"in getData, should hex number correctly\",\"invocations\":1,\"location\":{\"column\":1,\"line\":165},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"in getData, should hex number correctly\"},{\"ancestorTitles\":[\"Dictionary service\"],\"duration\":7142,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary service can use the dictionary registry to resolve a url\",\"invocations\":1,\"location\":{\"column\":3,\"line\":62},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can use the dictionary registry to resolve a url\"},{\"ancestorTitles\":[\"Dictionary service\"],\"duration\":930,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary service init Dictionaries with mutiple endpoints, can be valid and non-valid\",\"invocations\":1,\"location\":{\"column\":3,\"line\":80},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"init Dictionaries with mutiple endpoints, can be valid and non-valid\"},{\"ancestorTitles\":[\"Dictionary service\"],\"duration\":1110,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary service can find valid dictionary with height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":84},\"numPassingAsserts\":5,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can find valid dictionary with height\"},{\"ancestorTitles\":[\"Dictionary service\"],\"duration\":1271,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary service scopedDictionaryEntries, dictionary get data should be called\",\"invocations\":1,\"location\":{\"column\":3,\"line\":100},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"scopedDictionaryEntries, dictionary get data should be called\"},{\"ancestorTitles\":[\"Dictionary service\"],\"duration\":1271,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary service scopedDictionaryEntries, if query failed/timeout, should try next valid dictionary for query\",\"invocations\":1,\"location\":{\"column\":3,\"line\":109},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"scopedDictionaryEntries, if query failed/timeout, should try next valid dictionary for query\"},{\"ancestorTitles\":[\"Dictionary service\"],\"duration\":902,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary service tried all dictionaries but all failed will return undefined\",\"invocations\":1,\"location\":{\"column\":3,\"line\":135},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"tried all dictionaries but all failed will return undefined\"}],\"endTime\":1710903807999,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mDictionary V1 › coreDictionary › validate dictionary with a height\\u001b[39m\\u001b[22m\\n\\n    \\u001b[2mexpect(\\u001b[22m\\u001b[31mreceived\\u001b[39m\\u001b[2m).\\u001b[22mtoBeTruthy\\u001b[2m()\\u001b[22m\\n\\n    Received: \\u001b[31mfalse\\u001b[39m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 183 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 184 |\\u001b[39m     it(\\u001b[32m'validate dictionary with a height'\\u001b[39m\\u001b[33m,\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 185 |\\u001b[39m       expect(dictionary\\u001b[33m.\\u001b[39mheightValidation(\\u001b[35m100\\u001b[39m))\\u001b[33m.\\u001b[39mtoBeTruthy()\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m     |\\u001b[39m                                                \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 186 |\\u001b[39m       \\u001b[36mconst\\u001b[39m beyond500 \\u001b[33m=\\u001b[39m (dictionary \\u001b[36mas\\u001b[39m any)\\u001b[33m.\\u001b[39mmetadata\\u001b[33m.\\u001b[39mlastProcessedHeight \\u001b[33m+\\u001b[39m \\u001b[35m500\\u001b[39m\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 187 |\\u001b[39m       expect(dictionary\\u001b[33m.\\u001b[39mheightValidation(beyond500))\\u001b[33m.\\u001b[39mtoBeFalsy()\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 188 |\\u001b[39m     })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2mpackages/node-core/src/indexer/dictionary/v1/dictionaryV1.spec.ts\\u001b[2m:185:48)\\u001b[22m\\u001b[2m\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/dictionary.service.spec.ts\",\"startTime\":1710903731427,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"AutoQueue\"],\"duration\":1116,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"AutoQueue resovles promises in the order they are pushed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":7},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"resovles promises in the order they are pushed\"},{\"ancestorTitles\":[\"AutoQueue\"],\"duration\":1111,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"AutoQueue doesnt resolve tasks if flush is called\",\"invocations\":1,\"location\":{\"column\":3,\"line\":29},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"doesnt resolve tasks if flush is called\"},{\"ancestorTitles\":[\"AutoQueue\"],\"duration\":202,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"AutoQueue has a cap on the number of out of order tasks\",\"invocations\":1,\"location\":{\"column\":3,\"line\":66},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"has a cap on the number of out of order tasks\"},{\"ancestorTitles\":[\"AutoQueue\"],\"duration\":705,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"AutoQueue can adjust the parallelism while running\",\"invocations\":1,\"location\":{\"column\":3,\"line\":89},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can adjust the parallelism while running\"},{\"ancestorTitles\":[\"AutoQueue\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"AutoQueue includes running tasks in the size and free space\",\"invocations\":1,\"location\":{\"column\":3,\"line\":130},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"includes running tasks in the size and free space\"},{\"ancestorTitles\":[\"AutoQueue\"],\"duration\":504,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"AutoQueue resumes after flushing\",\"invocations\":1,\"location\":{\"column\":3,\"line\":154},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"resumes after flushing\"}],\"endTime\":1710903813503,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/autoQueue.spec.ts\",\"startTime\":1710903808140,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Substrate DictionaryService\"],\"duration\":13387,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Substrate DictionaryService should return all specVersion\",\"invocations\":1,\"location\":{\"column\":3,\"line\":41},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return all specVersion\"},{\"ancestorTitles\":[\"Building dictionary query entries\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Building dictionary query entries supports block handlers\",\"invocations\":1,\"location\":{\"column\":3,\"line\":88},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"supports block handlers\"},{\"ancestorTitles\":[\"Building dictionary query entries\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Building dictionary query entries supports block handlers with modulo filter\",\"invocations\":1,\"location\":{\"column\":3,\"line\":109},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"supports block handlers with modulo filter\"},{\"ancestorTitles\":[\"Building dictionary query entries\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Building dictionary query entries supports any handler with no filters\",\"invocations\":1,\"location\":{\"column\":3,\"line\":138},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"supports any handler with no filters\"},{\"ancestorTitles\":[\"Building dictionary query entries\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Building dictionary query entries supports custom ds processors\",\"invocations\":1,\"location\":{\"column\":3,\"line\":152},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"supports custom ds processors\"}],\"endTime\":1710903820165,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v1/substrateDictionaryV1.spec.ts\",\"startTime\":1710903804493,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"GraphqlTypes\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GraphqlTypes Supports arrays of primitives\",\"invocations\":1,\"location\":{\"column\":3,\"line\":117},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Supports arrays of primitives\"},{\"ancestorTitles\":[\"GraphqlTypes\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GraphqlTypes Throws arrays of non-primitives\",\"invocations\":1,\"location\":{\"column\":3,\"line\":125},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Throws arrays of non-primitives\"},{\"ancestorTitles\":[\"GraphqlTypes\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GraphqlTypes Throws with empty arrays\",\"invocations\":1,\"location\":{\"column\":3,\"line\":129},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Throws with empty arrays\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":10010,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary set startHeight of this dictionary\",\"invocations\":1,\"location\":{\"column\":5,\"line\":175},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"set startHeight of this dictionary\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":10007,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Dictionary metadata hasn't been initialized\\n    at TestDictionaryV1.get metadata [as metadata] (/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/coreDictionary.ts:44:13)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v1/dictionaryV1.spec.ts:181:72)\\n    at Promise.then.completed (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/utils.js:293:28)\\n    at new Promise (<anonymous>)\\n    at callAsyncCircusFn (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/utils.js:226:10)\\n    at _callCircusTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:297:40)\\n    at _runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:233:3)\\n    at _runTestsForDescribeBlock (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:135:9)\\n    at _runTestsForDescribeBlock (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:130:9)\\n    at _runTestsForDescribeBlock (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:130:9)\\n    at run (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/run.js:68:3)\\n    at runAndTransformResultsToJestFormat (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"Dictionary V1 coreDictionary validateChainMeta and useDictionary\",\"invocations\":1,\"location\":{\"column\":5,\"line\":180},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"validateChainMeta and useDictionary\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1510,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary validate dictionary with a height\",\"invocations\":1,\"location\":{\"column\":5,\"line\":184},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validate dictionary with a height\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1467,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary able to build queryEntryMap\",\"invocations\":1,\"location\":{\"column\":5,\"line\":190},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"able to build queryEntryMap\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":4489,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary can use scoped dictionary query\",\"invocations\":1,\"location\":{\"column\":5,\"line\":200},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can use scoped dictionary query\"},{\"ancestorTitles\":[\"Dictionary V1\",\"coreDictionary\"],\"duration\":1770,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 coreDictionary able to getDicitonaryQueryEntries\",\"invocations\":1,\"location\":{\"column\":5,\"line\":211},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"able to getDicitonaryQueryEntries\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":1479,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 get metadata\",\"invocations\":1,\"location\":{\"column\":3,\"line\":250},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"get metadata\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":3031,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 init metadata and get metadata\",\"invocations\":1,\"location\":{\"column\":3,\"line\":256},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"init metadata and get metadata\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":3755,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 return dictionary query result\",\"invocations\":1,\"location\":{\"column\":3,\"line\":265},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"return dictionary query result\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":3057,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 should return undefined startblock height greater than dictionary last processed height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":274},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return undefined startblock height greater than dictionary last processed height\"},{\"ancestorTitles\":[\"Dictionary V1\"],\"duration\":1656,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Dictionary V1 should use metadata last process height at end of query height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":282},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should use metadata last process height at end of query height\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":625,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test return undefined when dictionary api failed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":293},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"return undefined when dictionary api failed\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":3004,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test limits the dictionary query to that block range\",\"invocations\":1,\"location\":{\"column\":3,\"line\":314},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"limits the dictionary query to that block range\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":3204,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test test query the correct range\",\"invocations\":1,\"location\":{\"column\":3,\"line\":336},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"test query the correct range\"},{\"ancestorTitles\":[\"Individual dictionary V1 test\"],\"duration\":2948,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V1 test use minimum value of event/extrinsic returned block as batch end block\",\"invocations\":1,\"location\":{\"column\":3,\"line\":356},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"use minimum value of event/extrinsic returned block as batch end block\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test can init metadata and set start height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":60},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can init metadata and set start height\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test should get correct getQueryEndBlock\",\"invocations\":1,\"location\":{\"column\":3,\"line\":66},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should get correct getQueryEndBlock\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test can get data\",\"invocations\":1,\"location\":{\"column\":3,\"line\":77},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can get data\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test can determine current dictionary query map is valid with block height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":115},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can determine current dictionary query map is valid with block height\"},{\"ancestorTitles\":[\"Individual dictionary V2 test\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Individual dictionary V2 test should able to handle convertResponseBlocks return empty array blocks and lastBufferedHeight is undefined\",\"invocations\":1,\"location\":{\"column\":3,\"line\":122},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should able to handle convertResponseBlocks return empty array blocks and lastBufferedHeight is undefined\"},{\"ancestorTitles\":[\"determine dictionary V2 version\"],\"duration\":471,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"determine dictionary V2 version if not supported dictionary endpoint, v2 should throw error if init failed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":154},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"if not supported dictionary endpoint, v2 should throw error if init failed\"},{\"ancestorTitles\":[],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"in getData, should hex number correctly\",\"invocations\":1,\"location\":{\"column\":1,\"line\":165},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"in getData, should hex number correctly\"}],\"endTime\":1710903823975,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mDictionary V1 › coreDictionary › validateChainMeta and useDictionary\\u001b[39m\\u001b[22m\\n\\n    Dictionary metadata hasn't been initialized\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 42 |\\u001b[39m   \\u001b[36mprotected\\u001b[39m \\u001b[36mget\\u001b[39m metadata()\\u001b[33m:\\u001b[39m \\u001b[33mM\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 43 |\\u001b[39m     \\u001b[36mif\\u001b[39m (\\u001b[33m!\\u001b[39m\\u001b[36mthis\\u001b[39m\\u001b[33m.\\u001b[39m_metadata) {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 44 |\\u001b[39m       \\u001b[36mthrow\\u001b[39m \\u001b[36mnew\\u001b[39m \\u001b[33mError\\u001b[39m(\\u001b[32m`Dictionary metadata hasn't been initialized`\\u001b[39m)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m             \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 45 |\\u001b[39m     }\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 46 |\\u001b[39m     \\u001b[36mreturn\\u001b[39m \\u001b[36mthis\\u001b[39m\\u001b[33m.\\u001b[39m_metadata\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 47 |\\u001b[39m   }\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat TestDictionaryV1.get metadata [as metadata] (\\u001b[22m\\u001b[2mpackages/node-core/src/indexer/dictionary/coreDictionary.ts\\u001b[2m:44:13)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2mpackages/node-core/src/indexer/dictionary/v1/dictionaryV1.spec.ts\\u001b[2m:181:72)\\u001b[22m\\u001b[2m\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v2/dictionaryV2.spec.ts\",\"startTime\":1710903768086,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Poi Service sync\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Service sync sync hold until genesis poi been created\",\"invocations\":1,\"location\":{\"column\":3,\"line\":132},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"sync hold until genesis poi been created\"},{\"ancestorTitles\":[\"Poi Service sync\"],\"duration\":1008,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Service sync could set genesis Poi into metadata\",\"invocations\":1,\"location\":{\"column\":3,\"line\":138},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"could set genesis Poi into metadata\"},{\"ancestorTitles\":[\"Poi Service sync\"],\"duration\":1013,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Service sync should skip create genesis poi if latestSyncedPoi existed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":145},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should skip create genesis poi if latestSyncedPoi existed\"},{\"ancestorTitles\":[\"Poi Service sync\"],\"duration\":4019,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Service sync sync poi block in continuous range\",\"invocations\":1,\"location\":{\"column\":3,\"line\":176},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"sync poi block in continuous range\"},{\"ancestorTitles\":[\"Poi Service sync\"],\"duration\":4494,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Service sync sync poi block in discontinuous range,should get default block created\",\"invocations\":1,\"location\":{\"column\":3,\"line\":210},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"sync poi block in discontinuous range,should get default block created\"},{\"ancestorTitles\":[\"Poi Service sync\"],\"duration\":3071,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Service sync if sync poi block out of order, it will throw\",\"invocations\":1,\"location\":{\"column\":3,\"line\":247},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"if sync poi block out of order, it will throw\"},{\"ancestorTitles\":[\"Poi Service sync\"],\"duration\":3259,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Service sync could stop sync and clear\",\"invocations\":1,\"location\":{\"column\":3,\"line\":278},\"numPassingAsserts\":6,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"could stop sync and clear\"},{\"ancestorTitles\":[\"Poi Service sync\"],\"duration\":1007,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Service sync found SyncedProofOfIndex is not complete will throw\",\"invocations\":1,\"location\":{\"column\":3,\"line\":322},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"found SyncedProofOfIndex is not complete will throw\"}],\"endTime\":1710903832456,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/poiSync.service.spec.ts\",\"startTime\":1710903799047,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Cli can create project\"],\"duration\":2378,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project should resolve when starter project created via template\",\"invocations\":1,\"location\":{\"column\":3,\"line\":68},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should resolve when starter project created via template\"},{\"ancestorTitles\":[\"Cli can create project\"],\"duration\":1709,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project should resolve when starter project created via git\",\"invocations\":1,\"location\":{\"column\":3,\"line\":76},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should resolve when starter project created via git\"},{\"ancestorTitles\":[\"Cli can create project\"],\"duration\":2059,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project throw error if .git exists in starter project\",\"invocations\":1,\"location\":{\"column\":3,\"line\":88},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error if .git exists in starter project\"},{\"ancestorTitles\":[\"Cli can create project\"],\"duration\":1840,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project YAML contains comments\",\"invocations\":1,\"location\":{\"column\":3,\"line\":95},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"YAML contains comments\"},{\"ancestorTitles\":[\"Cli can create project\"],\"duration\":1747,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project prepare correctly applies project details\",\"invocations\":1,\"location\":{\"column\":3,\"line\":117},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"prepare correctly applies project details\"},{\"ancestorTitles\":[\"Cli can create project\"],\"duration\":1883,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project allow git from sub directory\",\"invocations\":1,\"location\":{\"column\":3,\"line\":136},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"allow git from sub directory\"}],\"endTime\":1710903834360,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/init-controller.test.ts\",\"startTime\":1710903820284,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"ApiPromiseConnection\"],\"duration\":6740,\"failureDetails\":[{\"message\":\"thrown: \\\"Exceeded timeout of 5000 ms for a test.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"}],\"failureMessages\":[\"Error: thrown: \\\"Exceeded timeout of 5000 ms for a test.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/apiPromise.connection.spec.ts:30:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/apiPromise.connection.spec.ts:12:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"ApiPromiseConnection should not make duplicate requests for state_getRuntimeVersion on wsProvider\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"should not make duplicate requests for state_getRuntimeVersion on wsProvider\"},{\"ancestorTitles\":[\"ApiPromiseConnection\"],\"duration\":689,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiPromiseConnection should not make duplicate requests for chain_getHeader on wsProvider\",\"invocations\":1,\"location\":{\"column\":3,\"line\":41},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should not make duplicate requests for chain_getHeader on wsProvider\"},{\"ancestorTitles\":[\"ApiPromiseConnection\"],\"duration\":4169,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiPromiseConnection should not make duplicate requests for state_getRuntimeVersion on httpProvider\",\"invocations\":1,\"location\":{\"column\":3,\"line\":50},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should not make duplicate requests for state_getRuntimeVersion on httpProvider\"},{\"ancestorTitles\":[\"ApiPromiseConnection\"],\"duration\":1086,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiPromiseConnection should not make duplicate requests for chain_getHeader on httpProvider\",\"invocations\":1,\"location\":{\"column\":3,\"line\":60},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should not make duplicate requests for chain_getHeader on httpProvider\"},{\"ancestorTitles\":[\"ApiPromiseConnection\"],\"duration\":8242,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiPromiseConnection should not cache requests if there are no args\",\"invocations\":1,\"location\":{\"column\":3,\"line\":70},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should not cache requests if there are no args\"}],\"endTime\":1710903836863,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mApiPromiseConnection › should not make duplicate requests for state_getRuntimeVersion on wsProvider\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 5000 ms for a test.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 28 |\\u001b[39m   })\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 29 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 30 |\\u001b[39m   it(\\u001b[32m'should not make duplicate requests for state_getRuntimeVersion on wsProvider'\\u001b[39m\\u001b[33m,\\u001b[39m \\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m    |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 31 |\\u001b[39m     \\u001b[36mconst\\u001b[39m cachedProvider \\u001b[33m=\\u001b[39m createCachedProvider(wsProvider)\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 32 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 33 |\\u001b[39m     \\u001b[36mawait\\u001b[39m \\u001b[33mPromise\\u001b[39m\\u001b[33m.\\u001b[39mall([\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/node/src/indexer/apiPromise.connection.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:30:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/node/src/indexer/apiPromise.connection.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:12:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/apiPromise.connection.spec.ts\",\"startTime\":1710903813527,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"fetchHelpers\"],\"duration\":8055,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"fetchHelpers retryOnFail\",\"invocations\":1,\"location\":{\"column\":3,\"line\":9},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"retryOnFail\"}],\"endTime\":1710903839233,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/fetchHelper.spec.ts\",\"startTime\":1710903824767,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"DbModule\"],\"duration\":3915,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DbModule can connect to database\",\"invocations\":1,\"location\":{\"column\":3,\"line\":19},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can connect to database\"},{\"ancestorTitles\":[\"DbModule\"],\"duration\":3321,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DbModule can load subquery model\",\"invocations\":1,\"location\":{\"column\":3,\"line\":30},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can load subquery model\"}],\"endTime\":1710903845124,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/db.module.test.ts\",\"startTime\":1710903834441,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"bypass logic\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"bypass logic process bypassBlocks with ranges\",\"invocations\":1,\"location\":{\"column\":3,\"line\":8},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"process bypassBlocks with ranges\"},{\"ancestorTitles\":[\"bypass logic\"],\"duration\":7260,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"bypass logic cleanedBatchBlocks with large amount blocks should not throw error Maximum call stack size exceeded\",\"invocations\":1,\"location\":{\"column\":3,\"line\":23},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"cleanedBatchBlocks with large amount blocks should not throw error Maximum call stack size exceeded\"}],\"endTime\":1710903846615,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/blocks.spec.ts\",\"startTime\":1710903837051,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Substrate Dictionary service\"],\"duration\":109,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Substrate Dictionary service should use v1 if v2 init failed, can determine dictionary version by init dictionary\",\"invocations\":1,\"location\":{\"column\":3,\"line\":67},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should use v1 if v2 init failed, can determine dictionary version by init dictionary\"},{\"ancestorTitles\":[\"Substrate Dictionary service\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Substrate Dictionary service should use v2 if init passed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":81},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should use v2 if init passed\"}],\"endTime\":1710903849082,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/substrateDictionary.service.spec.ts\",\"startTime\":1710903846695,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Promise Utils\"],\"duration\":1036,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Promise Utils utils.promise delay()\",\"invocations\":1,\"location\":{\"column\":3,\"line\":7},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"utils.promise delay()\"},{\"ancestorTitles\":[\"Promise Utils\"],\"duration\":3031,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Promise Utils utils.promise timeout()\",\"invocations\":1,\"location\":{\"column\":3,\"line\":15},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"utils.promise timeout()\"},{\"ancestorTitles\":[\"Promise Utils\",\"BackoffRetry\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Promise Utils BackoffRetry doesn't retry with success\",\"invocations\":1,\"location\":{\"column\":5,\"line\":26},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"doesn't retry with success\"},{\"ancestorTitles\":[\"Promise Utils\",\"BackoffRetry\"],\"duration\":1002,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Promise Utils BackoffRetry retries multiple times\",\"invocations\":1,\"location\":{\"column\":5,\"line\":32},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"retries multiple times\"},{\"ancestorTitles\":[\"Promise Utils\",\"BackoffRetry\"],\"duration\":1004,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Promise Utils BackoffRetry throws when reaching the number of retries\",\"invocations\":1,\"location\":{\"column\":5,\"line\":48},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throws when reaching the number of retries\"}],\"endTime\":1710903850870,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/promise.spec.ts\",\"startTime\":1710903839518,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"substrate utils\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"substrate utils invalid timestamp throws error on cron creation\",\"invocations\":1,\"location\":{\"column\":3,\"line\":26},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"invalid timestamp throws error on cron creation\"},{\"ancestorTitles\":[\"substrate utils\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"substrate utils validate block hash after fetch\",\"invocations\":1,\"location\":{\"column\":6,\"line\":40},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"validate block hash after fetch\"},{\"ancestorTitles\":[\"substrate utils\"],\"duration\":5048,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"substrate utils filters a signed extrinsic\",\"invocations\":1,\"location\":{\"column\":3,\"line\":50},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"filters a signed extrinsic\"}],\"endTime\":1710903852547,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/utils/substrate.test.ts\",\"startTime\":1710903832591,\"status\":\"focused\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"CLI codegen:generate, Can write to file\"],\"duration\":21,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate, Can write to file generateManifest from ts-manifest\",\"invocations\":1,\"location\":{\"column\":3,\"line\":196},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"generateManifest from ts-manifest\"},{\"ancestorTitles\":[\"CLI codegen:generate, Can write to file\"],\"duration\":32,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate, Can write to file Can generate manifest\",\"invocations\":1,\"location\":{\"column\":3,\"line\":325},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Can generate manifest\"},{\"ancestorTitles\":[\"CLI codegen:generate, Can write to file\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate, Can write to file if handler filter already exist with matching address, should not add\",\"invocations\":1,\"location\":{\"column\":3,\"line\":363},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"if handler filter already exist with matching address, should not add\"},{\"ancestorTitles\":[\"CLI codegen:generate, Can write to file\"],\"duration\":5694,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate, Can write to file should preserve any comments in existing datasources\",\"invocations\":1,\"location\":{\"column\":3,\"line\":419},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should preserve any comments in existing datasources\"},{\"ancestorTitles\":[\"CLI codegen:generate, Can write to file\"],\"duration\":66,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate, Can write to file should throw, if handler file exists\",\"invocations\":1,\"location\":{\"column\":3,\"line\":443},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should throw, if handler file exists\"},{\"ancestorTitles\":[\"CLI codegen:generate, Can write to file\"],\"duration\":48,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate, Can write to file Can generate mapping handlers\",\"invocations\":1,\"location\":{\"column\":3,\"line\":463},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Can generate mapping handlers\"},{\"ancestorTitles\":[\"CLI codegen:generate, Can write to file\"],\"duration\":31,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate, Can write to file Throws if invalid abiPath is given\",\"invocations\":1,\"location\":{\"column\":3,\"line\":504},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Throws if invalid abiPath is given\"},{\"ancestorTitles\":[\"CLI codegen:generate, Can write to file\"],\"duration\":36,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate, Can write to file Should be able to parse relative path on abiPath\",\"invocations\":1,\"location\":{\"column\":3,\"line\":509},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Should be able to parse relative path on abiPath\"},{\"ancestorTitles\":[\"CLI codegen:generate, Can write to file\"],\"duration\":29,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CLI codegen:generate, Can write to file Should be able to parse absolute path on abiPath\",\"invocations\":1,\"location\":{\"column\":3,\"line\":515},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Should be able to parse absolute path on abiPath\"}],\"endTime\":1710903856316,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/generate-controller.test.ts\",\"startTime\":1710903845298,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"ApiService\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiService read custom types from project manifest\",\"invocations\":1,\"location\":{\"column\":3,\"line\":99},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"read custom types from project manifest\"},{\"ancestorTitles\":[\"ApiService\"],\"duration\":23,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiService throws if expected genesis hash doesnt match\",\"invocations\":1,\"location\":{\"column\":3,\"line\":123},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throws if expected genesis hash doesnt match\"}],\"endTime\":1710903856807,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/api.service.spec.ts\",\"startTime\":1710903850900,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"SubqueryProject\",\"convert manifest to project object\"],\"duration\":28,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SubqueryProject convert manifest to project object convert 1.0.0 ipfs deployment to project object\",\"invocations\":1,\"location\":{\"column\":5,\"line\":62},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"convert 1.0.0 ipfs deployment to project object\"},{\"ancestorTitles\":[\"SubqueryProject\",\"convert manifest to project object\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SubqueryProject convert manifest to project object check processChainId\",\"invocations\":1,\"location\":{\"column\":5,\"line\":88},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"check processChainId\"},{\"ancestorTitles\":[\"SubqueryProject\",\"convert manifest to project object\"],\"duration\":21,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SubqueryProject convert manifest to project object check loadProjectTemplates\",\"invocations\":1,\"location\":{\"column\":5,\"line\":105},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"check loadProjectTemplates\"},{\"ancestorTitles\":[\"SubqueryProject\"],\"duration\":6399,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SubqueryProject loads chainTypes from deployment\",\"invocations\":1,\"location\":{\"column\":3,\"line\":133},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"loads chainTypes from deployment\"},{\"ancestorTitles\":[\"SubqueryProject\"],\"duration\":2615,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SubqueryProject loads asset file correctly from deployment\",\"invocations\":1,\"location\":{\"column\":3,\"line\":152},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"loads asset file correctly from deployment\"},{\"ancestorTitles\":[\"load asset with updateDataSourcesV1_0_0\"],\"duration\":917,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"load asset with updateDataSourcesV1_0_0 After fix, it could load asset correctly\",\"invocations\":1,\"location\":{\"column\":3,\"line\":233},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"After fix, it could load asset correctly\"}],\"endTime\":1710903863039,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/configure/SubqueryProject.spec.ts\",\"startTime\":1710903849363,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"cacheMetadata integration\"],\"duration\":27,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheMetadata integration Ensure increment keys are created on _metadata table\",\"invocations\":1,\"location\":{\"column\":3,\"line\":56},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure increment keys are created on _metadata table\"},{\"ancestorTitles\":[\"cacheMetadata integration\",\"dynamicDatasources\"],\"duration\":62,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheMetadata integration dynamicDatasources Appends dynamicDatasources correctly\",\"invocations\":1,\"location\":{\"column\":5,\"line\":76},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Appends dynamicDatasources correctly\"},{\"ancestorTitles\":[\"cacheMetadata integration\",\"dynamicDatasources\"],\"duration\":20,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheMetadata integration dynamicDatasources Allows overriding all dynamicDatasources\",\"invocations\":1,\"location\":{\"column\":5,\"line\":96},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Allows overriding all dynamicDatasources\"},{\"ancestorTitles\":[\"cacheMetadata integration\",\"dynamicDatasources\"],\"duration\":17,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheMetadata integration dynamicDatasources Caches the dynamicDatasources correctly after using set\",\"invocations\":1,\"location\":{\"column\":5,\"line\":107},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Caches the dynamicDatasources correctly after using set\"},{\"ancestorTitles\":[\"cacheMetadata integration\",\"dynamicDatasources\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheMetadata integration dynamicDatasources Uses the correct cache values when using new and set\",\"invocations\":1,\"location\":{\"column\":5,\"line\":124},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Uses the correct cache values when using new and set\"}],\"endTime\":1710903865809,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cacheMetadata.test.ts\",\"startTime\":1710903857373,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"mergeNumAndBlocks, merge and arrange blocks in order\",\"invocations\":1,\"location\":{\"column\":1,\"line\":30},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"mergeNumAndBlocks, merge and arrange blocks in order\"},{\"ancestorTitles\":[],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"mergeNumAndBlocksToNums, turn all blocks into number\",\"invocations\":1,\"location\":{\"column\":1,\"line\":53},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"mergeNumAndBlocksToNums, turn all blocks into number\"}],\"endTime\":1710903866314,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/utils.spec.ts\",\"startTime\":1710903863296,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"FetchService\"],\"duration\":1024,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"FetchService can get the finalized height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":47},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can get the finalized height\"},{\"ancestorTitles\":[\"FetchService\"],\"duration\":323,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"FetchService can get the best height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":52},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can get the best height\"},{\"ancestorTitles\":[\"FetchService\"],\"duration\":6,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"FetchService can get the chain interval\",\"invocations\":1,\"location\":{\"column\":3,\"line\":57},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can get the chain interval\"}],\"endTime\":1710903874875,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/fetch.service.test.ts\",\"startTime\":1710903856982,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"CachePoi\",\"clear poi\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CachePoi clear poi should clear all if blockHeight not provided\",\"invocations\":1,\"location\":{\"column\":5,\"line\":106},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should clear all if blockHeight not provided\"},{\"ancestorTitles\":[\"CachePoi\",\"clear poi\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CachePoi clear poi should clear with blockHeight\",\"invocations\":1,\"location\":{\"column\":5,\"line\":117},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should clear with blockHeight\"},{\"ancestorTitles\":[\"CachePoi\",\"clear poi\",\"getPoiBlocksBefore\"],\"duration\":1001,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CachePoi clear poi getPoiBlocksBefore should hit the cache first\",\"invocations\":1,\"location\":{\"column\":7,\"line\":150},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should hit the cache first\"},{\"ancestorTitles\":[\"CachePoi\",\"clear poi\",\"getPoiBlocksBefore\"],\"duration\":1005,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CachePoi clear poi getPoiBlocksBefore should be able to get data from just the store\",\"invocations\":1,\"location\":{\"column\":7,\"line\":156},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should be able to get data from just the store\"},{\"ancestorTitles\":[\"CachePoi\",\"clear poi\",\"getPoiBlocksBefore\"],\"duration\":1003,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CachePoi clear poi getPoiBlocksBefore should be able to combine cache and store data\",\"invocations\":1,\"location\":{\"column\":7,\"line\":162},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should be able to combine cache and store data\"}],\"endTime\":1710903876549,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cachePoi.spec.ts\",\"startTime\":1710903866418,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"cacheModel\",\"without historical\"],\"duration\":2033,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel without historical can avoid race conditions\",\"invocations\":1,\"location\":{\"column\":5,\"line\":106},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can avoid race conditions\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\"],\"duration\":1035,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical when get data after flushed, it should exclude block range\",\"invocations\":1,\"location\":{\"column\":5,\"line\":187},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"when get data after flushed, it should exclude block range\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"set, remove and get\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical set, remove and get In different block, remove and set, should able to get\",\"invocations\":1,\"location\":{\"column\":7,\"line\":215},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"In different block, remove and set, should able to get\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"set, remove and get\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical set, remove and get In same block, remove then set, should able to get\",\"invocations\":1,\"location\":{\"column\":7,\"line\":229},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"In same block, remove then set, should able to get\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"set, remove and get\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical set, remove and get In different block, remove and set, then remove again, should get nothing\",\"invocations\":1,\"location\":{\"column\":7,\"line\":246},\"numPassingAsserts\":5,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"In different block, remove and set, then remove again, should get nothing\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"set, remove and get\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical set, remove and get In same block, remove and set, then remove again, should get nothing\",\"invocations\":1,\"location\":{\"column\":7,\"line\":269},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"In same block, remove and set, then remove again, should get nothing\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"set, remove and get\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical set, remove and get clean flushable records when applyBlockRange, if found set and removed happened in the same height\",\"invocations\":1,\"location\":{\"column\":7,\"line\":290},\"numPassingAsserts\":6,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"clean flushable records when applyBlockRange, if found set and removed happened in the same height\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"set, remove and get\"],\"duration\":194,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical set, remove and get clean flushable records when applyBlockRange, pass if set and remove in the different height\",\"invocations\":1,\"location\":{\"column\":7,\"line\":322},\"numPassingAsserts\":6,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"clean flushable records when applyBlockRange, pass if set and remove in the different height\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"set, remove and get\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical set, remove and get getFromCache could filter out removed data\",\"invocations\":1,\"location\":{\"column\":7,\"line\":350},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getFromCache could filter out removed data\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"set, remove and get\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical set, remove and get getFromCache with removed and set again data\",\"invocations\":1,\"location\":{\"column\":7,\"line\":382},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getFromCache with removed and set again data\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"getByFields\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical getByFields calls getByField if there is one filter\",\"invocations\":1,\"location\":{\"column\":7,\"line\":424},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"calls getByField if there is one filter\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"getByFields\"],\"duration\":1019,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical getByFields flushes the cache first\",\"invocations\":1,\"location\":{\"column\":7,\"line\":432},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"flushes the cache first\"},{\"ancestorTitles\":[\"cacheModel\",\"historical\",\"getByFields\"],\"duration\":50,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"cacheModel historical getByFields throws for unsupported operators\",\"invocations\":1,\"location\":{\"column\":7,\"line\":456},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throws for unsupported operators\"}],\"endTime\":1710903881468,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cacheModel.spec.ts\",\"startTime\":1710903866409,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Configure\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Configure validDbSchemaName - works\",\"invocations\":1,\"location\":{\"column\":3,\"line\":7},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validDbSchemaName - works\"},{\"ancestorTitles\":[\"Configure\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Configure validDbSchemaName - works not alphanumeric\",\"invocations\":1,\"location\":{\"column\":3,\"line\":10},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validDbSchemaName - works not alphanumeric\"},{\"ancestorTitles\":[\"Configure\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Configure validDbSchemaName - long\",\"invocations\":1,\"location\":{\"column\":3,\"line\":13},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validDbSchemaName - long\"},{\"ancestorTitles\":[\"Configure\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Configure validDbSchemaName - invalid prefix\",\"invocations\":1,\"location\":{\"column\":3,\"line\":16},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validDbSchemaName - invalid prefix\"},{\"ancestorTitles\":[\"Configure\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Configure validDbSchemaName - invalid tokens\",\"invocations\":1,\"location\":{\"column\":3,\"line\":19},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validDbSchemaName - invalid tokens\"},{\"ancestorTitles\":[\"Configure\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Configure validDbSchemaName - empty\",\"invocations\":1,\"location\":{\"column\":3,\"line\":22},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validDbSchemaName - empty\"}],\"endTime\":1710903883705,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/configure.module.spec.ts\",\"startTime\":1710903876697,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Convert objects key to camelCase\",\"invocations\":1,\"location\":{\"column\":1,\"line\":6},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Convert objects key to camelCase\"}],\"endTime\":1710903889739,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/object.spec.ts\",\"startTime\":1710903881753,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Codegen can generate schema (mocked)\"],\"duration\":31,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema (mocked) throw error when make directory failed at beginning of codegen\",\"invocations\":1,\"location\":{\"column\":3,\"line\":28},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error when make directory failed at beginning of codegen\"},{\"ancestorTitles\":[\"Codegen can generate schema (mocked)\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema (mocked) test codegen reserved key validate\",\"invocations\":1,\"location\":{\"column\":3,\"line\":34},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"test codegen reserved key validate\"},{\"ancestorTitles\":[\"Codegen can generate schema (mocked)\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema (mocked) throw error when processing unsupported type in json fields\",\"invocations\":1,\"location\":{\"column\":3,\"line\":45},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error when processing unsupported type in json fields\"}],\"endTime\":1710903889242,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/codegen-controller.spec.ts\",\"startTime\":1710903852867,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"sandbox for subql-node\"],\"duration\":3070,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sandbox for subql-node wait until promise resolved\",\"invocations\":1,\"location\":{\"column\":3,\"line\":15},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"wait until promise resolved\"}],\"endTime\":1710903889869,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/sandbox.spec.ts\",\"startTime\":1710903875658,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"SchemaMigration\",\"comparator\"],\"duration\":54,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration comparator ensure comparator correctness\",\"invocations\":1,\"location\":{\"column\":5,\"line\":16},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"ensure comparator correctness\"},{\"ancestorTitles\":[\"SchemaMigration\",\"comparator\"],\"duration\":21,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration comparator Determine isRewindable\",\"invocations\":1,\"location\":{\"column\":5,\"line\":41},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Determine isRewindable\"},{\"ancestorTitles\":[\"SchemaMigration\",\"comparator\"],\"duration\":20,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration comparator Ensure iterator logic\",\"invocations\":1,\"location\":{\"column\":5,\"line\":47},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure iterator logic\"},{\"ancestorTitles\":[\"SchemaMigration\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration compare enums on modified enums\",\"invocations\":1,\"location\":{\"column\":3,\"line\":61},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"compare enums on modified enums\"}],\"endTime\":1710903900232,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/migration-service/SchemaMigration.service.spec.ts\",\"startTime\":1710903890182,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"CacheMetadata\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CacheMetadata clears the caches properly\",\"invocations\":1,\"location\":{\"column\":3,\"line\":17},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"clears the caches properly\"},{\"ancestorTitles\":[\"CacheMetadata\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CacheMetadata clears the caches properly with blockHeight\",\"invocations\":1,\"location\":{\"column\":3,\"line\":28},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"clears the caches properly with blockHeight\"},{\"ancestorTitles\":[\"CacheMetadata\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"CacheMetadata builds the correct dynamicDatasources query\",\"invocations\":1,\"location\":{\"column\":3,\"line\":38},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"builds the correct dynamicDatasources query\"}],\"endTime\":1710903902164,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cacheMetadata.spec.ts\",\"startTime\":1710903889773,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":1638,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema codegen with correct schema should pass\",\"invocations\":1,\"location\":{\"column\":3,\"line\":18},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"codegen with correct schema should pass\"},{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":60,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema codegen with incorrect schema field should fail\",\"invocations\":1,\"location\":{\"column\":3,\"line\":23},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"codegen with incorrect schema field should fail\"},{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":29,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema codegen with entities that uses reserved names should throw\",\"invocations\":1,\"location\":{\"column\":3,\"line\":27},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"codegen with entities that uses reserved names should throw\"},{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":634,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema Codegen should be able to generate ABIs from template datasources\",\"invocations\":1,\"location\":{\"column\":3,\"line\":33},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Codegen should be able to generate ABIs from template datasources\"},{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":33,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema Should not fail, if ds does not have any assets\",\"invocations\":1,\"location\":{\"column\":3,\"line\":41},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Should not fail, if ds does not have any assets\"},{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":292,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema Codegen should be able to generate ABIs from customName datasources\",\"invocations\":1,\"location\":{\"column\":3,\"line\":45},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Codegen should be able to generate ABIs from customName datasources\"},{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":353,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema Should clean out existing types directory\",\"invocations\":1,\"location\":{\"column\":3,\"line\":53},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Should clean out existing types directory\"},{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":834,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema should generate contracts on different glob paths\",\"invocations\":1,\"location\":{\"column\":3,\"line\":61},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should generate contracts on different glob paths\"},{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":83,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema Should not generate ABI for non evm ds\",\"invocations\":1,\"location\":{\"column\":3,\"line\":77},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Should not generate ABI for non evm ds\"},{\"ancestorTitles\":[\"Codegen can generate schema\"],\"duration\":70,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Codegen can generate schema Should not generate proto-interfaces if no chaintypes are provided\",\"invocations\":1,\"location\":{\"column\":3,\"line\":82},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Should not generate proto-interfaces if no chaintypes are provided\"}],\"endTime\":1710903910342,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/codegen-controller.test.ts\",\"startTime\":1710903883915,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Store Cache Service historical\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store Cache Service historical could init store cache service and init cache for models\",\"invocations\":1,\"location\":{\"column\":3,\"line\":70},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"could init store cache service and init cache for models\"},{\"ancestorTitles\":[\"Store Cache Service historical\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store Cache Service historical could set cache for multiple entities, also get from it\",\"invocations\":1,\"location\":{\"column\":3,\"line\":76},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"could set cache for multiple entities, also get from it\"},{\"ancestorTitles\":[\"Store Cache Service historical\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store Cache Service historical set at different block height, will create historical records\",\"invocations\":1,\"location\":{\"column\":3,\"line\":105},\"numPassingAsserts\":7,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"set at different block height, will create historical records\"},{\"ancestorTitles\":[\"Store Cache Service historical\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store Cache Service historical getAll, getOneByField and getByField with getFromCache\",\"invocations\":1,\"location\":{\"column\":3,\"line\":143},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getAll, getOneByField and getByField with getFromCache\"},{\"ancestorTitles\":[\"Store Cache Service historical\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store Cache Service historical count\",\"invocations\":1,\"location\":{\"column\":3,\"line\":197},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"count\"},{\"ancestorTitles\":[\"Store Cache Service historical\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store Cache Service historical remove\",\"invocations\":1,\"location\":{\"column\":3,\"line\":223},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"remove\"},{\"ancestorTitles\":[\"Store Cache flush with order\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store Cache flush with order when set/remove multiple model entities, operation index should added to record in sequential order\",\"invocations\":1,\"location\":{\"column\":3,\"line\":264},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"when set/remove multiple model entities, operation index should added to record in sequential order\"},{\"ancestorTitles\":[\"Store Cache flush with non-historical\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store Cache flush with non-historical Same Id with multiple operations, when flush it should always pick up the latest operation\",\"invocations\":1,\"location\":{\"column\":3,\"line\":301},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Same Id with multiple operations, when flush it should always pick up the latest operation\"},{\"ancestorTitles\":[\"Store cache upper threshold\"],\"duration\":6,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store cache upper threshold doesnt wait for flushing cache when threshold not met\",\"invocations\":1,\"location\":{\"column\":3,\"line\":359},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"doesnt wait for flushing cache when threshold not met\"},{\"ancestorTitles\":[\"Store cache upper threshold\"],\"duration\":1057,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store cache upper threshold waits for flushing when threshold is met\",\"invocations\":1,\"location\":{\"column\":3,\"line\":381},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"waits for flushing when threshold is met\"}],\"endTime\":1710903914150,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/storeCache.service.spec.ts\",\"startTime\":1710903902679,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Able to generate cosmos types from protobuf\"],\"duration\":4517,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Able to generate cosmos types from protobuf Able to generate ts types from protobufs\",\"invocations\":1,\"location\":{\"column\":3,\"line\":35},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Able to generate ts types from protobufs\"},{\"ancestorTitles\":[\"Able to generate cosmos types from protobuf\"],\"duration\":889,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Able to generate cosmos types from protobuf On missing protobuf dependency should throw\",\"invocations\":1,\"location\":{\"column\":3,\"line\":58},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"On missing protobuf dependency should throw\"},{\"ancestorTitles\":[\"Able to generate cosmos types from protobuf\"],\"duration\":1004,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Able to generate cosmos types from protobuf create temp dir with all protobufs\",\"invocations\":1,\"location\":{\"column\":3,\"line\":74},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"create temp dir with all protobufs\"}],\"endTime\":1710903915917,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/codegen-cosmos.test.ts\",\"startTime\":1710903900642,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"sync-helper\"],\"duration\":54,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper Ensure correct fkConstraint\",\"invocations\":1,\"location\":{\"column\":3,\"line\":148},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure correct fkConstraint\"},{\"ancestorTitles\":[\"sync-helper\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper Generate SQL statement for table creation with historical\",\"invocations\":1,\"location\":{\"column\":3,\"line\":153},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Generate SQL statement for table creation with historical\"},{\"ancestorTitles\":[\"sync-helper\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper Generate SQL statement for Indexes\",\"invocations\":1,\"location\":{\"column\":3,\"line\":176},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Generate SQL statement for Indexes\"},{\"ancestorTitles\":[\"sync-helper\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper Generate table statement no historical, no multi primary keys\",\"invocations\":1,\"location\":{\"column\":3,\"line\":188},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Generate table statement no historical, no multi primary keys\"},{\"ancestorTitles\":[\"sync-helper\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper Reference statement\",\"invocations\":1,\"location\":{\"column\":3,\"line\":212},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Reference statement\"},{\"ancestorTitles\":[\"sync-helper\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper Ensure correct foreignkey statement\",\"invocations\":1,\"location\":{\"column\":3,\"line\":239},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure correct foreignkey statement\"},{\"ancestorTitles\":[\"sync-helper\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper sortModel with toposort on cyclic schema\",\"invocations\":1,\"location\":{\"column\":3,\"line\":283},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"sortModel with toposort on cyclic schema\"},{\"ancestorTitles\":[\"sync-helper\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper sortModel with toposort on non cyclic schema\",\"invocations\":1,\"location\":{\"column\":3,\"line\":304},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"sortModel with toposort on non cyclic schema\"},{\"ancestorTitles\":[\"sync-helper\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper Ensure correct enumTypeMap\",\"invocations\":1,\"location\":{\"column\":3,\"line\":345},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure correct enumTypeMap\"},{\"ancestorTitles\":[\"sync-helper\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"sync-helper sequelize to correct postgres type map\",\"invocations\":1,\"location\":{\"column\":3,\"line\":375},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"sequelize to correct postgres type map\"}],\"endTime\":1710903928309,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/sync-helper.spec.ts\",\"startTime\":1710903890150,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Runtime service\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Runtime service doesnt refetch metadata when spec version doesnt change\",\"invocations\":1,\"location\":{\"column\":3,\"line\":91},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"doesnt refetch metadata when spec version doesnt change\"},{\"ancestorTitles\":[\"Runtime service\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Runtime service fetches metadata only when spec version changes\",\"invocations\":1,\"location\":{\"column\":3,\"line\":102},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"fetches metadata only when spec version changes\"},{\"ancestorTitles\":[\"Runtime service\"],\"duration\":57,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Runtime service use dictionary and specVersionMap to get block specVersion\",\"invocations\":1,\"location\":{\"column\":3,\"line\":114},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"use dictionary and specVersionMap to get block specVersion\"},{\"ancestorTitles\":[\"Runtime service\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Runtime service getSpecVersion will fetch the spec version if its not in the map\",\"invocations\":1,\"location\":{\"column\":3,\"line\":127},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getSpecVersion will fetch the spec version if its not in the map\"}],\"endTime\":1710903927790,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/runtime/runtime.service.spec.ts\",\"startTime\":1710903914584,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":229,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) throw error when git clone failed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":60},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error when git clone failed\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":125,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) validate ethereum project manifest\",\"invocations\":1,\"location\":{\"column\":3,\"line\":69},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validate ethereum project manifest\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) fetch templates\",\"invocations\":1,\"location\":{\"column\":6,\"line\":76},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"fetch templates\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) fetch networks\",\"invocations\":1,\"location\":{\"column\":6,\"line\":80},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"fetch networks\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) fetch example projects\",\"invocations\":1,\"location\":{\"column\":6,\"line\":84},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"fetch example projects\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":38,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) readDefaults using regex\",\"invocations\":1,\"location\":{\"column\":3,\"line\":88},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"readDefaults using regex\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":54,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) Ensure regex correctness for ENDPOINT_REG\",\"invocations\":1,\"location\":{\"column\":3,\"line\":100},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure regex correctness for ENDPOINT_REG\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":32,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) findReplace using regex\",\"invocations\":1,\"location\":{\"column\":3,\"line\":136},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"findReplace using regex\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) findReplace with string endpoints\",\"invocations\":1,\"location\":{\"column\":3,\"line\":148},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"findReplace with string endpoints\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":16,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) able to extract string endpoints\",\"invocations\":1,\"location\":{\"column\":3,\"line\":160},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"able to extract string endpoints\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":247,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) Ensure prepareManifest and preparePackage correctness for project.ts\",\"invocations\":1,\"location\":{\"column\":3,\"line\":170},\"numPassingAsserts\":6,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure prepareManifest and preparePackage correctness for project.ts\"},{\"ancestorTitles\":[\"Cli can create project (mocked)\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli can create project (mocked) Validate validateEthereumTsManifest\",\"invocations\":1,\"location\":{\"column\":3,\"line\":196},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Validate validateEthereumTsManifest\"}],\"endTime\":1710903931570,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/init-controller.spec.ts\",\"startTime\":1710903916172,\"status\":\"focused\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"configure utils\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"configure utils could rebase node args with manifest file\",\"invocations\":1,\"location\":{\"column\":3,\"line\":11},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"could rebase node args with manifest file\"}],\"endTime\":1710903935293,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/configure.spec.ts\",\"startTime\":1710903930154,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"IPFSReader\"],\"duration\":1034,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"IPFSReader should return a project deployment\",\"invocations\":1,\"location\":{\"column\":3,\"line\":12},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return a project deployment\"},{\"ancestorTitles\":[\"IPFSReader\"],\"duration\":306,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"IPFSReader ipfs should only fetch once when cache found\",\"invocations\":1,\"location\":{\"column\":3,\"line\":20},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"ipfs should only fetch once when cache found\"}],\"endTime\":1710903937981,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/ipfs-reader.spec.ts\",\"startTime\":1710903931802,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"StoreOperations\"],\"duration\":53,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"StoreOperations single leaf, expect merkleRoot to be hashed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":236},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"single leaf, expect merkleRoot to be hashed\"},{\"ancestorTitles\":[\"StoreOperations\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"StoreOperations put operation into the merkel leaf, and generate Merkle Root, also able to reset\",\"invocations\":1,\"location\":{\"column\":3,\"line\":252},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"put operation into the merkel leaf, and generate Merkle Root, also able to reset\"},{\"ancestorTitles\":[\"StoreOperations\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"StoreOperations throw error when remove data is not string type\",\"invocations\":1,\"location\":{\"column\":3,\"line\":266},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error when remove data is not string type\"},{\"ancestorTitles\":[\"StoreOperations\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"StoreOperations could generate operation hash with negative value\",\"invocations\":1,\"location\":{\"column\":3,\"line\":274},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"could generate operation hash with negative value\"}],\"endTime\":1710903940027,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/StoreOperations.spec.ts\",\"startTime\":1710903913223,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Manifest generation\"],\"duration\":461,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Manifest generation should build ts manifest from multichain file\",\"invocations\":1,\"location\":{\"column\":5,\"line\":45},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should build ts manifest from multichain file\"},{\"ancestorTitles\":[\"Manifest generation\"],\"duration\":81,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Manifest generation throws error on unknown file in multichain manifest\",\"invocations\":1,\"location\":{\"column\":5,\"line\":55},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throws error on unknown file in multichain manifest\"},{\"ancestorTitles\":[\"Manifest generation\"],\"duration\":30,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Manifest generation allows both ts and yaml file in multichain manifest\",\"invocations\":1,\"location\":{\"column\":5,\"line\":59},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"allows both ts and yaml file in multichain manifest\"},{\"ancestorTitles\":[\"Manifest generation\"],\"duration\":26,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Manifest generation should build ts manifest from yaml multichain file\",\"invocations\":1,\"location\":{\"column\":5,\"line\":69},\"numPassingAsserts\":5,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should build ts manifest from yaml multichain file\"}],\"endTime\":1710903940743,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/build.spec.ts\",\"startTime\":1710903935576,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"ReaderFactory\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ReaderFactory should return the Github Reader\",\"invocations\":1,\"location\":{\"column\":3,\"line\":14},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return the Github Reader\"},{\"ancestorTitles\":[\"ReaderFactory\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ReaderFactory should return the Local Reader\",\"invocations\":1,\"location\":{\"column\":3,\"line\":20},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return the Local Reader\"},{\"ancestorTitles\":[\"ReaderFactory\"],\"duration\":19,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ReaderFactory should return the IPFS Reader for a CID v0\",\"invocations\":1,\"location\":{\"column\":3,\"line\":26},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return the IPFS Reader for a CID v0\"},{\"ancestorTitles\":[\"ReaderFactory\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ReaderFactory should return the IPFS Reader for a CID v1\",\"invocations\":1,\"location\":{\"column\":3,\"line\":33},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return the IPFS Reader for a CID v1\"},{\"ancestorTitles\":[\"ReaderFactory\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ReaderFactory should support archive files\",\"invocations\":1,\"location\":{\"column\":6,\"line\":39},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"should support archive files\"},{\"ancestorTitles\":[\"ReaderFactory\"],\"duration\":51,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ReaderFactory throw error if getProjectRootAndManifest path not exist\",\"invocations\":1,\"location\":{\"column\":3,\"line\":45},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error if getProjectRootAndManifest path not exist\"},{\"ancestorTitles\":[\"ReaderFactory\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ReaderFactory throw error if ipfs path is not valid\",\"invocations\":1,\"location\":{\"column\":3,\"line\":49},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error if ipfs path is not valid\"}],\"endTime\":1710903948696,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/reader.spec.ts\",\"startTime\":1710903941163,\"status\":\"focused\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"project.yaml\"],\"duration\":58,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can validate project.yaml\",\"invocations\":1,\"location\":{\"column\":3,\"line\":26},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can validate project.yaml\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can fail validation if version not supported\",\"invocations\":1,\"location\":{\"column\":3,\"line\":31},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can fail validation if version not supported\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":100,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can validate a v1.0.0 project.yaml with a custom data source\",\"invocations\":1,\"location\":{\"column\":3,\"line\":34},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can validate a v1.0.0 project.yaml with a custom data source\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":13,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can validate a v1.0.0 project.yaml with templates\",\"invocations\":1,\"location\":{\"column\":3,\"line\":37},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can validate a v1.0.0 project.yaml with templates\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":6,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can convert genesis hash in v1.0.0 to chainId in deployment\",\"invocations\":1,\"location\":{\"column\":3,\"line\":41},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can convert genesis hash in v1.0.0 to chainId in deployment\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can get chainId for deployment\",\"invocations\":1,\"location\":{\"column\":3,\"line\":46},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can get chainId for deployment\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can get runner options for deployment\",\"invocations\":1,\"location\":{\"column\":3,\"line\":52},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can get runner options for deployment\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can validate deployment runner versions\",\"invocations\":1,\"location\":{\"column\":3,\"line\":58},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can validate deployment runner versions\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":39,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can validate bypass blocks\",\"invocations\":1,\"location\":{\"column\":3,\"line\":77},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can validate bypass blocks\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can validate a v1.0.0 project.yaml with unsupported runner node\",\"invocations\":1,\"location\":{\"column\":3,\"line\":89},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can validate a v1.0.0 project.yaml with unsupported runner node\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can throw error with unsupported runner version\",\"invocations\":1,\"location\":{\"column\":3,\"line\":93},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can throw error with unsupported runner version\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can validate a v1.0.0 project.yaml runner and datasource mismatches\",\"invocations\":1,\"location\":{\"column\":3,\"line\":99},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can validate a v1.0.0 project.yaml runner and datasource mismatches\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can fail validation if custom ds missing processor\",\"invocations\":1,\"location\":{\"column\":3,\"line\":105},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can fail validation if custom ds missing processor\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml can convert project with assets to deployment\",\"invocations\":1,\"location\":{\"column\":3,\"line\":111},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can convert project with assets to deployment\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml validate versions\",\"invocations\":1,\"location\":{\"column\":3,\"line\":117},\"numPassingAsserts\":16,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validate versions\"},{\"ancestorTitles\":[\"project.yaml\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"project.yaml Preserve Map content on deployment\",\"invocations\":1,\"location\":{\"column\":3,\"line\":139},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Preserve Map content on deployment\"}],\"endTime\":1710903949235,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/project.spec.ts\",\"startTime\":1710903929463,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"FetchSevice\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"FetchSevice can extract modulos from datasources\",\"invocations\":1,\"location\":{\"column\":3,\"line\":77},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can extract modulos from datasources\"}],\"endTime\":1710903948497,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/fetch.service.spec.ts\",\"startTime\":1710903938090,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"load\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"load throw error on incorrect format chain types\",\"invocations\":1,\"location\":{\"column\":3,\"line\":9},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error on incorrect format chain types\"},{\"ancestorTitles\":[\"load\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"load can load yaml and json format chain types\",\"invocations\":1,\"location\":{\"column\":6,\"line\":13},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"can load yaml and json format chain types\"}],\"endTime\":1710903956792,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/load.spec.ts\",\"startTime\":1710903949132,\"status\":\"focused\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"SetValueModel\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SetValueModel fromBelowHeight works\",\"invocations\":1,\"location\":{\"column\":3,\"line\":19},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"fromBelowHeight works\"},{\"ancestorTitles\":[\"SetValueModel\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SetValueModel fromAboveHeight works\",\"invocations\":1,\"location\":{\"column\":3,\"line\":28},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"fromAboveHeight works\"}],\"endTime\":1710903959335,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/setValueModel.spec.ts\",\"startTime\":1710903951206,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"LoggerColorLevel\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"LoggerColorLevel returns default for an unsupported level number\",\"invocations\":1,\"location\":{\"column\":3,\"line\":7},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"returns default for an unsupported level number\"},{\"ancestorTitles\":[\"LoggerColorLevel\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"LoggerColorLevel returns the correct level for a level number\",\"invocations\":1,\"location\":{\"column\":3,\"line\":12},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"returns the correct level for a level number\"}],\"endTime\":1710903964299,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/colors.spec.ts\",\"startTime\":1710903957095,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"test jsonrpc client\"],\"duration\":1290,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"test jsonrpc client Query polkadot's genesisHash via ws endpoint\",\"invocations\":1,\"location\":{\"column\":3,\"line\":12},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Query polkadot's genesisHash via ws endpoint\"},{\"ancestorTitles\":[\"test jsonrpc client\"],\"duration\":654,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"test jsonrpc client Query polkadot's genesisHash via http endpoint\",\"invocations\":1,\"location\":{\"column\":3,\"line\":17},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Query polkadot's genesisHash via http endpoint\"}],\"endTime\":1710903970236,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/jsonrpc.test.ts\",\"startTime\":1710903940428,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"DsProcessorService\"],\"duration\":17,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DsProcessorService can validate custom ds\",\"invocations\":1,\"location\":{\"column\":3,\"line\":51},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can validate custom ds\"},{\"ancestorTitles\":[\"DsProcessorService\"],\"duration\":40,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DsProcessorService can catch an invalid datasource kind\",\"invocations\":1,\"location\":{\"column\":3,\"line\":57},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can catch an invalid datasource kind\"},{\"ancestorTitles\":[\"DsProcessorService\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DsProcessorService can run a custom ds processor\",\"invocations\":1,\"location\":{\"column\":3,\"line\":76},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can run a custom ds processor\"}],\"endTime\":1710903970711,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/ds-processor.service.spec.ts\",\"startTime\":1710903959405,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"WorkerBlockDispatcher\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"WorkerBlockDispatcher getNextWorkerIndex should return the index of the next worker that has memory above the minimum limit\",\"invocations\":1,\"location\":{\"column\":3,\"line\":50},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getNextWorkerIndex should return the index of the next worker that has memory above the minimum limit\"},{\"ancestorTitles\":[\"WorkerBlockDispatcher\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"WorkerBlockDispatcher getNextWorkerIndex should skip workers that have memory below the minimum limit\",\"invocations\":1,\"location\":{\"column\":3,\"line\":55},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getNextWorkerIndex should skip workers that have memory below the minimum limit\"},{\"ancestorTitles\":[\"WorkerBlockDispatcher\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"WorkerBlockDispatcher getNextWorkerIndex should wait for memory to be freed if all workers have memory below the minimum limit\",\"invocations\":1,\"location\":{\"column\":3,\"line\":63},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getNextWorkerIndex should wait for memory to be freed if all workers have memory below the minimum limit\"}],\"endTime\":1710903972905,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/blockDispatcher/worker-block-dispatcher.spec.ts\",\"startTime\":1710903964474,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"GithubReader\"],\"duration\":1200,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GithubReader should return the package json object\",\"invocations\":1,\"location\":{\"column\":3,\"line\":15},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return the package json object\"},{\"ancestorTitles\":[\"GithubReader\"],\"duration\":331,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GithubReader should return the project schema object\",\"invocations\":1,\"location\":{\"column\":3,\"line\":20},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return the project schema object\"}],\"endTime\":1710903979336,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/github-reader.spec.ts\",\"startTime\":1710903949644,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService can set finalized block\",\"invocations\":1,\"location\":{\"column\":3,\"line\":89},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can set finalized block\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService cant set a lower finalized block\",\"invocations\":1,\"location\":{\"column\":3,\"line\":95},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"cant set a lower finalized block\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService keeps track of unfinalized blocks\",\"invocations\":1,\"location\":{\"column\":3,\"line\":103},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"keeps track of unfinalized blocks\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService doesnt keep track of finalized blocks\",\"invocations\":1,\"location\":{\"column\":3,\"line\":115},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"doesnt keep track of finalized blocks\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService can process unfinalized blocks\",\"invocations\":1,\"location\":{\"column\":3,\"line\":124},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can process unfinalized blocks\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService can handle a fork and rewind to the last finalized height\",\"invocations\":1,\"location\":{\"column\":3,\"line\":137},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can handle a fork and rewind to the last finalized height\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService can handle a fork when some unfinalized blocks are invalid\",\"invocations\":1,\"location\":{\"column\":3,\"line\":158},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can handle a fork when some unfinalized blocks are invalid\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService can handle a fork when all unfinalized blocks are invalid\",\"invocations\":1,\"location\":{\"column\":3,\"line\":177},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can handle a fork when all unfinalized blocks are invalid\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService can handle a fork and when unfinalized blocks < finalized head\",\"invocations\":1,\"location\":{\"column\":3,\"line\":192},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can handle a fork and when unfinalized blocks < finalized head\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService can handle a fork and when unfinalized blocks < finalized head 2\",\"invocations\":1,\"location\":{\"column\":3,\"line\":207},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can handle a fork and when unfinalized blocks < finalized head 2\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService can handle a fork and when unfinalized blocks < finalized head with a large difference\",\"invocations\":1,\"location\":{\"column\":3,\"line\":228},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can handle a fork and when unfinalized blocks < finalized head with a large difference\"},{\"ancestorTitles\":[\"UnfinalizedBlocksService\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"UnfinalizedBlocksService can rewind any unfinalized blocks when restarted and unfinalized blocks is disabled\",\"invocations\":1,\"location\":{\"column\":3,\"line\":243},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can rewind any unfinalized blocks when restarted and unfinalized blocks is disabled\"}],\"endTime\":1710903981277,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/unfinalizedBlocks.service.spec.ts\",\"startTime\":1710903971293,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"BaseProjectService\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"BaseProjectService hasDataSourcesAfterHeight\",\"invocations\":1,\"location\":{\"column\":3,\"line\":42},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"hasDataSourcesAfterHeight\"},{\"ancestorTitles\":[\"BaseProjectService\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"BaseProjectService hasDataSourcesAfterHeight - no available datasource\",\"invocations\":1,\"location\":{\"column\":3,\"line\":67},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"hasDataSourcesAfterHeight - no available datasource\"},{\"ancestorTitles\":[\"BaseProjectService\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"BaseProjectService getDataSources\",\"invocations\":1,\"location\":{\"column\":3,\"line\":89},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getDataSources\"},{\"ancestorTitles\":[\"BaseProjectService\",\"getDatasourceMap\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"BaseProjectService getDatasourceMap should add endBlock heights correctly\",\"invocations\":1,\"location\":{\"column\":5,\"line\":106},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should add endBlock heights correctly\"},{\"ancestorTitles\":[\"BaseProjectService\",\"getDatasourceMap\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"BaseProjectService getDatasourceMap should contain datasources from current project only\",\"invocations\":1,\"location\":{\"column\":5,\"line\":172},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should contain datasources from current project only\"},{\"ancestorTitles\":[\"BaseProjectService\",\"getDatasourceMap\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"BaseProjectService getDatasourceMap build correct map when upgrade has the same start height as first project\",\"invocations\":1,\"location\":{\"column\":5,\"line\":200},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"build correct map when upgrade has the same start height as first project\"}],\"endTime\":1710903981357,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/project.service.spec.ts\",\"startTime\":1710903973429,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Query depth limit\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Query depth limit checkDepth does not throw on shallow depth\",\"invocations\":1,\"location\":{\"column\":3,\"line\":34},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"checkDepth does not throw on shallow depth\"},{\"ancestorTitles\":[\"Query depth limit\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Query depth limit checkDepth does throw when max depth is exceeded\",\"invocations\":1,\"location\":{\"column\":3,\"line\":39},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"checkDepth does throw when max depth is exceeded\"}],\"endTime\":1710903986666,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/query/src/graphql/plugins/QueryDepthLimitPlugin.spec.ts\",\"startTime\":1710903970370,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Worker Store Service\"],\"duration\":930,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Worker Store Service can make a request with an object\",\"invocations\":1,\"location\":{\"column\":3,\"line\":72},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can make a request with an object\"},{\"ancestorTitles\":[\"Worker Store Service\"],\"duration\":758,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Worker Store Service can make a respone with an object\",\"invocations\":1,\"location\":{\"column\":3,\"line\":80},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can make a respone with an object\"}],\"endTime\":1710903988547,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.store.service.test.ts\",\"startTime\":1710903981587,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects can load a project with no parents\",\"invocations\":1,\"location\":{\"column\":5,\"line\":120},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can load a project with no parents\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects can load all parent projects\",\"invocations\":1,\"location\":{\"column\":5,\"line\":130},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can load all parent projects\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects can load all parent projects with untilBlock field\",\"invocations\":1,\"location\":{\"column\":5,\"line\":140},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can load all parent projects with untilBlock field\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects can handle projects that somehow refer to each other\",\"invocations\":1,\"location\":{\"column\":5,\"line\":150},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can handle projects that somehow refer to each other\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects can load all parent projects upto startHeight\",\"invocations\":1,\"location\":{\"column\":5,\"line\":156},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can load all parent projects upto startHeight\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects can use the correct project when the parent upgrades at the start height\",\"invocations\":1,\"location\":{\"column\":5,\"line\":167},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can use the correct project when the parent upgrades at the start height\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects can load all parent projects upto and including startHeight\",\"invocations\":1,\"location\":{\"column\":5,\"line\":194},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can load all parent projects upto and including startHeight\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects will throw if parent projects are not at an earlier height\",\"invocations\":1,\"location\":{\"column\":5,\"line\":204},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"will throw if parent projects are not at an earlier height\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects will throw if there are no parents and earlier start height\",\"invocations\":1,\"location\":{\"column\":5,\"line\":210},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"will throw if there are no parents and earlier start height\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects will validate all parents are for the same network\",\"invocations\":1,\"location\":{\"column\":5,\"line\":219},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"will validate all parents are for the same network\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Loading projects\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Loading projects will validate all parents are for the same node runner\",\"invocations\":1,\"location\":{\"column\":5,\"line\":239},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"will validate all parents are for the same node runner\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Getting projects for heights\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Getting projects for heights can get the latest project\",\"invocations\":1,\"location\":{\"column\":5,\"line\":275},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can get the latest project\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Getting projects for heights\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Getting projects for heights gets the right project with an exact match\",\"invocations\":1,\"location\":{\"column\":5,\"line\":279},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"gets the right project with an exact match\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Getting projects for heights\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Getting projects for heights throws an error before the first project start height\",\"invocations\":1,\"location\":{\"column\":5,\"line\":283},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throws an error before the first project start height\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgradable subquery project\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgradable subquery project cant set values other than `currentHeightg`\",\"invocations\":1,\"location\":{\"column\":5,\"line\":310},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"cant set values other than `currentHeightg`\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgradable subquery project\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgradable subquery project can set the current height on the service\",\"invocations\":1,\"location\":{\"column\":5,\"line\":314},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can set the current height on the service\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgradable subquery project\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgradable subquery project can set the current height on the project\",\"invocations\":1,\"location\":{\"column\":5,\"line\":321},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can set the current height on the project\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgradable subquery project\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgradable subquery project the project is the right project for a set height\",\"invocations\":1,\"location\":{\"column\":5,\"line\":328},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"the project is the right project for a set height\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgradable subquery project\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgradable subquery project can update the indexed deployments\",\"invocations\":1,\"location\":{\"column\":5,\"line\":334},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can update the indexed deployments\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgrade metadata validation\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgrade metadata validation succeds with an exact match\",\"invocations\":1,\"location\":{\"column\":5,\"line\":364},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"succeds with an exact match\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgrade metadata validation\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgrade metadata validation succeds with a partial match\",\"invocations\":1,\"location\":{\"column\":5,\"line\":369},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"succeds with a partial match\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgrade metadata validation\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgrade metadata validation succeeds with no indexed data\",\"invocations\":1,\"location\":{\"column\":5,\"line\":374},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"succeeds with no indexed data\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgrade metadata validation\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgrade metadata validation succeeds with upgraded projects before the upgraded feature\",\"invocations\":1,\"location\":{\"column\":5,\"line\":378},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"succeeds with upgraded projects before the upgraded feature\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgrade metadata validation\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgrade metadata validation can rewind if an upgrade needs replacing\",\"invocations\":1,\"location\":{\"column\":5,\"line\":384},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can rewind if an upgrade needs replacing\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgrade metadata validation\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgrade metadata validation throws if there are no matching projects\",\"invocations\":1,\"location\":{\"column\":5,\"line\":392},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throws if there are no matching projects\"},{\"ancestorTitles\":[\"Project Upgrades\",\"Upgrade metadata validation\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Project Upgrades Upgrade metadata validation validates if project doesnt have upgrades\",\"invocations\":1,\"location\":{\"column\":5,\"line\":399},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"validates if project doesnt have upgrades\"}],\"endTime\":1710903990513,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/ProjectUpgrade.service.spec.ts\",\"startTime\":1710903981532,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Store Service\"],\"duration\":60,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Store Service addIdAndBlockRangeAttributes\",\"invocations\":1,\"location\":{\"column\":3,\"line\":11},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"addIdAndBlockRangeAttributes\"}],\"endTime\":1710903994475,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/store.service.spec.ts\",\"startTime\":1710903979523,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"MultiChain - ADD\"],\"duration\":113,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"MultiChain - ADD can add chain to multichain manifest - valid schema paths\",\"invocations\":1,\"location\":{\"column\":3,\"line\":144},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can add chain to multichain manifest - valid schema paths\"},{\"ancestorTitles\":[\"MultiChain - ADD\"],\"duration\":51,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"MultiChain - ADD cannot add chain to multichain manifest - invalid schema path\",\"invocations\":1,\"location\":{\"column\":3,\"line\":153},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"cannot add chain to multichain manifest - invalid schema path\"}],\"endTime\":1710903996387,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/add-chain-controller.spec.ts\",\"startTime\":1710903988659,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"TestRunner\"],\"duration\":20,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"TestRunner cleans the database after each test run\",\"invocations\":1,\"location\":{\"column\":3,\"line\":45},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"cleans the database after each test run\"},{\"ancestorTitles\":[\"TestRunner\"],\"duration\":22,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"TestRunner increments passedTests when expected and actual entity attributes match\",\"invocations\":1,\"location\":{\"column\":3,\"line\":65},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"increments passedTests when expected and actual entity attributes match\"},{\"ancestorTitles\":[\"TestRunner\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"TestRunner increments failedTests when expected and actual entity attributes do not match\",\"invocations\":1,\"location\":{\"column\":3,\"line\":94},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"increments failedTests when expected and actual entity attributes do not match\"},{\"ancestorTitles\":[\"TestRunner\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"TestRunner increments failedTests when indexBlock throws an error\",\"invocations\":1,\"location\":{\"column\":3,\"line\":129},\"numPassingAsserts\":5,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"increments failedTests when indexBlock throws an error\"}],\"endTime\":1710904001194,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/test.runner.spec.ts\",\"startTime\":1710903986818,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"csv Store Service\"],\"duration\":27,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"csv Store Service Able to export to csv with correct output, No duplicated headers\",\"invocations\":1,\"location\":{\"column\":3,\"line\":20},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Able to export to csv with correct output, No duplicated headers\"},{\"ancestorTitles\":[\"csv Store Service\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"csv Store Service JSON serialisation\",\"invocations\":1,\"location\":{\"column\":3,\"line\":61},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"JSON serialisation\"}],\"endTime\":1710904001889,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/csvStore.service.spec.ts\",\"startTime\":1710903990986,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"ConnectionPoolStateManager\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ConnectionPoolStateManager chooses primary endpoint first\",\"invocations\":1,\"location\":{\"column\":3,\"line\":15},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"chooses primary endpoint first\"},{\"ancestorTitles\":[\"ConnectionPoolStateManager\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ConnectionPoolStateManager does not choose primary endpoint if failed\",\"invocations\":1,\"location\":{\"column\":3,\"line\":43},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"does not choose primary endpoint if failed\"},{\"ancestorTitles\":[\"ConnectionPoolStateManager\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ConnectionPoolStateManager can calculate performance score for response time of zero\",\"invocations\":1,\"location\":{\"column\":3,\"line\":71},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can calculate performance score for response time of zero\"},{\"ancestorTitles\":[\"ConnectionPoolStateManager\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ConnectionPoolStateManager performance score decreases with increasing response time\",\"invocations\":1,\"location\":{\"column\":3,\"line\":76},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"performance score decreases with increasing response time\"}],\"endTime\":1710904005912,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/connectionPoolState.manager.spec.ts\",\"startTime\":1710903996539,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"NodeConfig\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"NodeConfig supports read from yaml\",\"invocations\":1,\"location\":{\"column\":3,\"line\":8},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"supports read from yaml\"},{\"ancestorTitles\":[\"NodeConfig\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"NodeConfig support read from json\",\"invocations\":1,\"location\":{\"column\":3,\"line\":17},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"support read from json\"},{\"ancestorTitles\":[\"NodeConfig\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"NodeConfig rebase file config from manifest runner options\",\"invocations\":1,\"location\":{\"column\":3,\"line\":26},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"rebase file config from manifest runner options\"},{\"ancestorTitles\":[\"NodeConfig\"],\"duration\":50,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"NodeConfig throw error for unknown configs\",\"invocations\":1,\"location\":{\"column\":3,\"line\":43},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error for unknown configs\"}],\"endTime\":1710904010160,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/NodeConfig.spec.ts\",\"startTime\":1710904001561,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql support @entity annotation in the schema\",\"invocations\":1,\"location\":{\"column\":3,\"line\":9},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"support @entity annotation in the schema\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can extract entities from the schema\",\"invocations\":1,\"location\":{\"column\":3,\"line\":22},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can extract entities from the schema\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":22,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql throw error for unsupported types\",\"invocations\":1,\"location\":{\"column\":3,\"line\":36},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error for unsupported types\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":20,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql support Bytes and Float types\",\"invocations\":1,\"location\":{\"column\":3,\"line\":46},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"support Bytes and Float types\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":47,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql throw error for union/enum/interface type\",\"invocations\":1,\"location\":{\"column\":3,\"line\":60},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error for union/enum/interface type\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can extract nested models and relations from the schema\",\"invocations\":1,\"location\":{\"column\":3,\"line\":94},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can extract nested models and relations from the schema\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":31,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql throw error if derivedFrom field with missing field name in corresponding entity\",\"invocations\":1,\"location\":{\"column\":3,\"line\":168},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw error if derivedFrom field with missing field name in corresponding entity\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":208,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can extract indexed fields from the schema\",\"invocations\":1,\"location\":{\"column\":3,\"line\":186},\"numPassingAsserts\":5,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can extract indexed fields from the schema\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql throw if add index on pk\",\"invocations\":1,\"location\":{\"column\":3,\"line\":203},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throw if add index on pk\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can extract indexed fields from foreign field\",\"invocations\":1,\"location\":{\"column\":3,\"line\":213},\"numPassingAsserts\":6,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can extract indexed fields from foreign field\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can read jsonfield\",\"invocations\":1,\"location\":{\"column\":3,\"line\":241},\"numPassingAsserts\":7,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can read jsonfield\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can read jsonfield with indexed option\",\"invocations\":1,\"location\":{\"column\":3,\"line\":267},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can read jsonfield with indexed option\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can read composite index\",\"invocations\":1,\"location\":{\"column\":3,\"line\":295},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can read composite index\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":5,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can create composite index for fk field\",\"invocations\":1,\"location\":{\"column\":3,\"line\":309},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can create composite index for fk field\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql will throw if composite index field not found within entity\",\"invocations\":1,\"location\":{\"column\":3,\"line\":326},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"will throw if composite index field not found within entity\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql will throw when found duplicate composite index\",\"invocations\":1,\"location\":{\"column\":3,\"line\":338},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"will throw when found duplicate composite index\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql will throw if number of composite indexes excess limit\",\"invocations\":1,\"location\":{\"column\":3,\"line\":353},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"will throw if number of composite indexes excess limit\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can read fulltext directive\",\"invocations\":1,\"location\":{\"column\":3,\"line\":368},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can read fulltext directive\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can throw fulltext directive when field doesnt exist on entity\",\"invocations\":1,\"location\":{\"column\":3,\"line\":384},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can throw fulltext directive when field doesnt exist on entity\"},{\"ancestorTitles\":[\"utils that handle schema.graphql\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"utils that handle schema.graphql can throw fulltext directive when field isnt a string\",\"invocations\":1,\"location\":{\"column\":3,\"line\":400},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can throw fulltext directive when field isnt a string\"}],\"endTime\":1710904013086,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/graphql.spec.ts\",\"startTime\":1710904002289,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"LocalReader\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"LocalReader should return the package json object\",\"invocations\":1,\"location\":{\"column\":3,\"line\":16},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return the package json object\"},{\"ancestorTitles\":[\"LocalReader\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"LocalReader should return the project schema object\",\"invocations\":1,\"location\":{\"column\":3,\"line\":21},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return the project schema object\"}],\"endTime\":1710904017131,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/local-reader.spec.ts\",\"startTime\":1710904006478,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Tests for validate, CLI\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Tests for validate, CLI ensure EnumValidator\",\"invocations\":1,\"location\":{\"column\":3,\"line\":8},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"ensure EnumValidator\"}],\"endTime\":1710904020660,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/validate.spec.ts\",\"startTime\":1710904010431,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Poi Block\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block create default block, block that has no operation and not been fetched\",\"invocations\":1,\"location\":{\"column\":3,\"line\":7},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"create default block, block that has no operation and not been fetched\"},{\"ancestorTitles\":[\"Poi Block\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block chainBlockHash and Operation hash should either both null or both defined, otherwise should throw error\",\"invocations\":1,\"location\":{\"column\":3,\"line\":12},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"chainBlockHash and Operation hash should either both null or both defined, otherwise should throw error\"},{\"ancestorTitles\":[\"Poi Block\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block for default block, parentHash must be provided, otherwise should throw\",\"invocations\":1,\"location\":{\"column\":3,\"line\":24},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"for default block, parentHash must be provided, otherwise should throw\"},{\"ancestorTitles\":[\"Poi Block\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block create new block with operations, and place hold for parent hash and hash\",\"invocations\":1,\"location\":{\"column\":3,\"line\":28},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"create new block with operations, and place hold for parent hash and hash\"},{\"ancestorTitles\":[\"Poi Block\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block update existing block with parent hash, it should create its own block hash\",\"invocations\":1,\"location\":{\"column\":3,\"line\":41},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"update existing block with parent hash, it should create its own block hash\"},{\"ancestorTitles\":[\"Poi Block\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block supports hex block hashes\",\"invocations\":1,\"location\":{\"column\":3,\"line\":53},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"supports hex block hashes\"},{\"ancestorTitles\":[\"Poi Block\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block supports u8a block hashes\",\"invocations\":1,\"location\":{\"column\":3,\"line\":67},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"supports u8a block hashes\"},{\"ancestorTitles\":[\"Poi Block\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block supports base58 block hashes\",\"invocations\":1,\"location\":{\"column\":3,\"line\":76},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"supports base58 block hashes\"},{\"ancestorTitles\":[\"Poi Block\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block supports base64 block hashes\",\"invocations\":1,\"location\":{\"column\":3,\"line\":88},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"supports base64 block hashes\"},{\"ancestorTitles\":[\"Poi Block\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Poi Block throws on unsupported block hash format\",\"invocations\":1,\"location\":{\"column\":3,\"line\":119},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"throws on unsupported block hash format\"}],\"endTime\":1710904023630,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/PoiBlock.spec.ts\",\"startTime\":1710904013180,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"general types\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"general types can get json type\",\"invocations\":1,\"location\":{\"column\":3,\"line\":10},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can get json type\"},{\"ancestorTitles\":[\"general types\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"general types get sequelize date type\",\"invocations\":1,\"location\":{\"column\":3,\"line\":15},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"get sequelize date type\"},{\"ancestorTitles\":[\"general types\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"general types get unsupported type\",\"invocations\":1,\"location\":{\"column\":3,\"line\":20},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"get unsupported type\"},{\"ancestorTitles\":[\"general types\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"general types Int type should able to hash negative value\",\"invocations\":1,\"location\":{\"column\":3,\"line\":24},\"numPassingAsserts\":6,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Int type should able to hash negative value\"}],\"endTime\":1710904027796,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/generalTypes.spec.ts\",\"startTime\":1710903995823,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Ensure correct logic on blockHeightMap\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Ensure correct logic on blockHeightMap getWithinRange should return projects within specified height range\",\"invocations\":1,\"location\":{\"column\":3,\"line\":7},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getWithinRange should return projects within specified height range\"}],\"endTime\":1710904028394,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/blockHeightMap.spec.ts\",\"startTime\":1710904017420,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"DynamicDsService\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DynamicDsService loads all datasources and params when init\",\"invocations\":1,\"location\":{\"column\":3,\"line\":37},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"loads all datasources and params when init\"},{\"ancestorTitles\":[\"DynamicDsService\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DynamicDsService keeps reference to added dynamic datasources\",\"invocations\":1,\"location\":{\"column\":3,\"line\":45},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"keeps reference to added dynamic datasources\"},{\"ancestorTitles\":[\"DynamicDsService\"],\"duration\":58,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DynamicDsService resets dynamic datasources\",\"invocations\":1,\"location\":{\"column\":3,\"line\":57},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"resets dynamic datasources\"},{\"ancestorTitles\":[\"DynamicDsService\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DynamicDsService getDynamicDatasources with force reloads from metadata\",\"invocations\":1,\"location\":{\"column\":3,\"line\":67},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"getDynamicDatasources with force reloads from metadata\"}],\"endTime\":1710904033871,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dynamic-ds.service.spec.ts\",\"startTime\":1710904024181,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"splitMultichainDataFields test\"],\"duration\":4,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"splitMultichainDataFields test Single chain, single endpoint\",\"invocations\":1,\"location\":{\"column\":3,\"line\":10},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Single chain, single endpoint\"},{\"ancestorTitles\":[\"splitMultichainDataFields test\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"splitMultichainDataFields test multi chain, multi endpoint\",\"invocations\":1,\"location\":{\"column\":3,\"line\":16},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"multi chain, multi endpoint\"},{\"ancestorTitles\":[\"splitMultichainDataFields test\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"splitMultichainDataFields test Incorrect values (endpoint without chainId)\",\"invocations\":1,\"location\":{\"column\":3,\"line\":22},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Incorrect values (endpoint without chainId)\"}],\"endTime\":1710904034432,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.test.ts\",\"startTime\":1710904020910,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Array util\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Array util findDuplicateStringArray\",\"invocations\":1,\"location\":{\"column\":3,\"line\":7},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"findDuplicateStringArray\"}],\"endTime\":1710904040590,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/array/array.spec.ts\",\"startTime\":1710904034095,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"InMemoryCacheService\"],\"duration\":3,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"InMemoryCacheService should be created\",\"invocations\":1,\"location\":{\"column\":3,\"line\":13},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should be created\"},{\"ancestorTitles\":[\"InMemoryCacheService\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"InMemoryCacheService should set and get value correctly\",\"invocations\":1,\"location\":{\"column\":3,\"line\":17},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should set and get value correctly\"},{\"ancestorTitles\":[\"InMemoryCacheService\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"InMemoryCacheService should return undefined if key does not exist\",\"invocations\":1,\"location\":{\"column\":3,\"line\":37},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should return undefined if key does not exist\"}],\"endTime\":1710904045122,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/inMemoryCache.service.spec.ts\",\"startTime\":1710904028450,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[],\"coverage\":{},\"endTime\":1710904328682,\"message\":\"  \\u001b[1m● \\u001b[22mTest suite failed to run\\n\\n    Your test suite must contain at least one test.\\n\\n      \\u001b[2mat onResult (\\u001b[22mnode_modules/@jest/core/build/TestScheduler.js\\u001b[2m:133:18)\\u001b[22m\\n      \\u001b[2mat \\u001b[22mnode_modules/@jest/core/build/TestScheduler.js\\u001b[2m:254:19\\u001b[22m\\n      \\u001b[2mat \\u001b[22mnode_modules/emittery/index.js\\u001b[2m:363:13\\u001b[22m\\n          at Array.map (<anonymous>)\\n      \\u001b[2mat Emittery.emit (\\u001b[22mnode_modules/emittery/index.js\\u001b[2m:361:23)\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/poi.service.spec.ts\",\"startTime\":1710904328682,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"build gql\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"build gql gql 1\",\"invocations\":1,\"location\":{\"column\":3,\"line\":8},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"gql 1\"}],\"endTime\":1710904049389,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/builder.spec.ts\",\"startTime\":1710904028427,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":12129,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests Migrate to new schema\",\"invocations\":1,\"location\":{\"column\":3,\"line\":51},\"numPassingAsserts\":9,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Migrate to new schema\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":12234,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests Ensure correct JSON field creation with nested json\",\"invocations\":1,\"location\":{\"column\":3,\"line\":152},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure correct JSON field creation with nested json\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":11506,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests Migration on index removal, creation\",\"invocations\":1,\"location\":{\"column\":3,\"line\":180},\"numPassingAsserts\":5,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Migration on index removal, creation\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":10893,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests Should initialize correct schema based on startHeight\",\"invocations\":1,\"location\":{\"column\":3,\"line\":244},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Should initialize correct schema based on startHeight\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":10793,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests On entity drop isRewindable should be false\",\"invocations\":1,\"location\":{\"column\":3,\"line\":271},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"On entity drop isRewindable should be false\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":10934,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests Should update sequelize Models in cachedModels\",\"invocations\":1,\"location\":{\"column\":3,\"line\":288},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Should update sequelize Models in cachedModels\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":10908,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests Ensure no duplication in cacheModels\",\"invocations\":1,\"location\":{\"column\":3,\"line\":325},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure no duplication in cacheModels\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":11138,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests Ensure correctness on non-historical migrate\",\"invocations\":1,\"location\":{\"column\":3,\"line\":345},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Ensure correctness on non-historical migrate\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":11430,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests On Failed migration, no metadata transaction should be applied\",\"invocations\":1,\"location\":{\"column\":3,\"line\":379},\"numPassingAsserts\":4,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"On Failed migration, no metadata transaction should be applied\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":11079,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests add relations on migration with historical\",\"invocations\":1,\"location\":{\"column\":3,\"line\":414},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"add relations on migration with historical\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":12681,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests add relations on migration no historical\",\"invocations\":1,\"location\":{\"column\":3,\"line\":461},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"add relations on migration no historical\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":10252,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests drop relational with no historical\",\"invocations\":1,\"location\":{\"column\":3,\"line\":502},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"drop relational with no historical\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":11503,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests Able to drop table and column with relations\",\"invocations\":1,\"location\":{\"column\":3,\"line\":539},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"Able to drop table and column with relations\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":10114,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests create subscription on table creation\",\"invocations\":1,\"location\":{\"column\":3,\"line\":569},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"create subscription on table creation\"},{\"ancestorTitles\":[\"SchemaMigration integration tests\"],\"duration\":10259,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"SchemaMigration integration tests support enum drop and enum creation\",\"invocations\":1,\"location\":{\"column\":3,\"line\":599},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"support enum drop and enum creation\"}],\"endTime\":1710904218516,\"message\":\"\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/configure/SchemaMigration.service.test.ts\",\"startTime\":1710904040700,\"status\":\"passed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Cli publish\"],\"duration\":139123,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish should not allow uploading a v0.0.1 spec version project\",\"invocations\":1,\"location\":{\"column\":5,\"line\":84},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should not allow uploading a v0.0.1 spec version project\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":2022,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Publish project to default failed, HTTPError: <html>\\r\\n<head><title>403 Forbidden</title></head>\\r\\n<body>\\r\\n<center><h1>403 Forbidden</h1></center>\\r\\n<hr><center>nginx/1.17.7</center>\\r\\n</body>\\r\\n</html>\\r\\n\\n    at /Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:176:15\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at async Promise.all (index 0)\\n    at async uploadFile (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:179:30)\\n    at async Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.spec.ts:92:21)\"],\"fullName\":\"Cli publish upload file to ipfs\",\"invocations\":1,\"location\":{\"column\":5,\"line\":88},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"upload file to ipfs\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":142899,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Publish project to default failed, HTTPError: <html>\\r\\n<head><title>403 Forbidden</title></head>\\r\\n<body>\\r\\n<center><h1>403 Forbidden</h1></center>\\r\\n<hr><center>nginx/1.17.7</center>\\r\\n</body>\\r\\n</html>\\r\\n\\n    at /Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:176:15\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at async Promise.all (index 0)\\n    at async uploadFile (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:179:30)\\n    at async replaceFileReferences (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:102:26)\\n    at async /Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:107:26\\n    at async Promise.all (index 2)\\n    at async replaceFileReferences (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:105:9)\\n    at async uploadToIpfs (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:72:28)\\n    at async Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.spec.ts:97:21)\"],\"fullName\":\"Cli publish should upload appropriate project to IPFS\",\"invocations\":1,\"location\":{\"column\":5,\"line\":95},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"should upload appropriate project to IPFS\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":90400,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish upload project from a manifest\",\"invocations\":1,\"location\":{\"column\":5,\"line\":102},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"upload project from a manifest\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":109896,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish v1.0.0 should deploy\",\"invocations\":1,\"location\":{\"column\":5,\"line\":109},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"v1.0.0 should deploy\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":33259,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish convert to deployment and removed descriptive field\",\"invocations\":1,\"location\":{\"column\":5,\"line\":115},\"numPassingAsserts\":8,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"convert to deployment and removed descriptive field\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish convert js object to JSON object\",\"invocations\":1,\"location\":{\"column\":5,\"line\":129},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"convert js object to JSON object\"}],\"endTime\":1710904227277,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCli publish › upload file to ipfs\\u001b[39m\\u001b[22m\\n\\n    Publish project to default failed, HTTPError: <html>\\r\\n    <head><title>403 Forbidden</title></head>\\r\\n    <body>\\r\\n    <center><h1>403 Forbidden</h1></center>\\r\\n    <hr><center>nginx/1.17.7</center>\\r\\n    </body>\\r\\n    </html>\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 174 |\\u001b[39m     \\u001b[36mconst\\u001b[39m results \\u001b[33m=\\u001b[39m ipfsWrite\\u001b[33m.\\u001b[39maddAll(contents\\u001b[33m,\\u001b[39m {pin\\u001b[33m:\\u001b[39m \\u001b[36mtrue\\u001b[39m\\u001b[33m,\\u001b[39m cidVersion\\u001b[33m:\\u001b[39m \\u001b[35m0\\u001b[39m\\u001b[33m,\\u001b[39m wrapWithDirectory\\u001b[33m:\\u001b[39m isMultichain})\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 175 |\\u001b[39m     \\u001b[36mfor\\u001b[39m \\u001b[36mawait\\u001b[39m (\\u001b[36mconst\\u001b[39m result \\u001b[36mof\\u001b[39m results) {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 176 |\\u001b[39m       fileCidMap\\u001b[33m.\\u001b[39m\\u001b[36mset\\u001b[39m(result\\u001b[33m.\\u001b[39mpath\\u001b[33m,\\u001b[39m result\\u001b[33m.\\u001b[39mcid\\u001b[33m.\\u001b[39mtoString())\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m     |\\u001b[39m               \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 177 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 178 |\\u001b[39m       \\u001b[36mawait\\u001b[39m ipfsWrite\\u001b[33m.\\u001b[39mpin\\u001b[33m.\\u001b[39mremote\\u001b[33m.\\u001b[39madd(result\\u001b[33m.\\u001b[39mcid\\u001b[33m,\\u001b[39m {service\\u001b[33m:\\u001b[39m \\u001b[33mPIN_SERVICE\\u001b[39m})\\u001b[33m.\\u001b[39m\\u001b[36mcatch\\u001b[39m((e) \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 179 |\\u001b[39m         console\\u001b[33m.\\u001b[39mwarn(\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:176:15\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m          at async Promise.all (index 0)\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async uploadFile (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:179:30)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/cli/src/controller/publish-controller.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:92:21)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCli publish › should upload appropriate project to IPFS\\u001b[39m\\u001b[22m\\n\\n    Publish project to default failed, HTTPError: <html>\\r\\n    <head><title>403 Forbidden</title></head>\\r\\n    <body>\\r\\n    <center><h1>403 Forbidden</h1></center>\\r\\n    <hr><center>nginx/1.17.7</center>\\r\\n    </body>\\r\\n    </html>\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 174 |\\u001b[39m     \\u001b[36mconst\\u001b[39m results \\u001b[33m=\\u001b[39m ipfsWrite\\u001b[33m.\\u001b[39maddAll(contents\\u001b[33m,\\u001b[39m {pin\\u001b[33m:\\u001b[39m \\u001b[36mtrue\\u001b[39m\\u001b[33m,\\u001b[39m cidVersion\\u001b[33m:\\u001b[39m \\u001b[35m0\\u001b[39m\\u001b[33m,\\u001b[39m wrapWithDirectory\\u001b[33m:\\u001b[39m isMultichain})\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 175 |\\u001b[39m     \\u001b[36mfor\\u001b[39m \\u001b[36mawait\\u001b[39m (\\u001b[36mconst\\u001b[39m result \\u001b[36mof\\u001b[39m results) {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 176 |\\u001b[39m       fileCidMap\\u001b[33m.\\u001b[39m\\u001b[36mset\\u001b[39m(result\\u001b[33m.\\u001b[39mpath\\u001b[33m,\\u001b[39m result\\u001b[33m.\\u001b[39mcid\\u001b[33m.\\u001b[39mtoString())\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m     |\\u001b[39m               \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 177 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 178 |\\u001b[39m       \\u001b[36mawait\\u001b[39m ipfsWrite\\u001b[33m.\\u001b[39mpin\\u001b[33m.\\u001b[39mremote\\u001b[33m.\\u001b[39madd(result\\u001b[33m.\\u001b[39mcid\\u001b[33m,\\u001b[39m {service\\u001b[33m:\\u001b[39m \\u001b[33mPIN_SERVICE\\u001b[39m})\\u001b[33m.\\u001b[39m\\u001b[36mcatch\\u001b[39m((e) \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 179 |\\u001b[39m         console\\u001b[33m.\\u001b[39mwarn(\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:176:15\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m          at async Promise.all (index 0)\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async uploadFile (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:179:30)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async replaceFileReferences (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:102:26)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2masync /Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts\\u001b[2m:107:26\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m          at async Promise.all (index 2)\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async replaceFileReferences (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:105:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async uploadToIpfs (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:72:28)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/cli/src/controller/publish-controller.spec.ts\\u001b[39m\\u001b[0m\\u001b[2m:97:21)\\u001b[22m\\u001b[2m\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.spec.ts\",\"startTime\":1710903677005,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"ApiService\"],\"duration\":5743,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiService can instantiate api\",\"invocations\":1,\"location\":{\"column\":3,\"line\":88},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"can instantiate api\"},{\"ancestorTitles\":[\"ApiService\"],\"duration\":400797,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiService api query is locked at specified block\",\"invocations\":1,\"location\":{\"column\":3,\"line\":100},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"api query is locked at specified block\"},{\"ancestorTitles\":[\"ApiService\"],\"duration\":6631,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiService api query input is double map\",\"invocations\":1,\"location\":{\"column\":3,\"line\":120},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"api query input is double map\"},{\"ancestorTitles\":[\"ApiService\"],\"duration\":8321,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiService apiAt could fetch previous block info\",\"invocations\":1,\"location\":{\"column\":3,\"line\":144},\"numPassingAsserts\":3,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"apiAt could fetch previous block info\"},{\"ancestorTitles\":[\"ApiService\"],\"duration\":7212,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiService apiAt will throw when fetch future block info\",\"invocations\":1,\"location\":{\"column\":3,\"line\":174},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"apiAt will throw when fetch future block info\"},{\"ancestorTitles\":[\"ApiService\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiService api consts is swapped to the specified block\",\"invocations\":1,\"location\":{\"column\":6,\"line\":198},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"api consts is swapped to the specified block\"},{\"ancestorTitles\":[\"ApiService\"],\"duration\":null,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"ApiService support http provider\",\"invocations\":1,\"location\":{\"column\":6,\"line\":381},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"pending\",\"title\":\"support http provider\"},{\"ancestorTitles\":[\"ApiService\"],\"duration\":90004,\"failureDetails\":[{\"message\":\"thrown: \\\"Exceeded timeout of 90000 ms for a test.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\"}],\"failureMessages\":[\"Error: thrown: \\\"Exceeded timeout of 90000 ms for a test.\\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n    at /Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/api.service.test.ts:397:3\\n    at _dispatchDescribe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:91:26)\\n    at describe (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/index.js:55:5)\\n    at Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/api.service.test.ts:52:1)\\n    at Runtime._execModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1429:24)\\n    at Runtime._loadModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:1013:12)\\n    at Runtime.requireModule (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runtime/build/index.js:873:12)\\n    at jestAdapter (/Users/scotttwiname/Projects/subql-main/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at runTestInternal (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:367:16)\\n    at runTest (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/runTest.js:444:34)\\n    at Object.worker (/Users/scotttwiname/Projects/subql-main/node_modules/jest-runner/build/testWorker.js:106:12)\"],\"fullName\":\"ApiService can correctly call rpc methods that use block number\",\"invocations\":1,\"location\":null,\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"can correctly call rpc methods that use block number\"}],\"endTime\":1710904232466,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mApiService › can correctly call rpc methods that use block number\\u001b[39m\\u001b[22m\\n\\n    thrown: \\\"Exceeded timeout of 90000 ms for a test.\\n    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.\\\"\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 395 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 396 |\\u001b[39m   \\u001b[90m/* This test can be reenabled once https://github.com/polkadot-js/api/pull/4540 has been released and the api is updated */\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 397 |\\u001b[39m   it(\\u001b[32m'can correctly call rpc methods that use block number'\\u001b[39m\\u001b[33m,\\u001b[39m \\u001b[36masync\\u001b[39m () \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m     |\\u001b[39m   \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 398 |\\u001b[39m     \\u001b[36mconst\\u001b[39m apiService \\u001b[33m=\\u001b[39m \\u001b[36mawait\\u001b[39m prepareApiService(\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 399 |\\u001b[39m       \\u001b[32m'wss://moonbeam-alpha.api.onfinality.io/public-ws'\\u001b[39m\\u001b[33m,\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 400 |\\u001b[39m       \\u001b[32m'0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527'\\u001b[39m\\u001b[33m,\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/node/src/indexer/api.service.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:397:3\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat Object.<anonymous> (\\u001b[22m\\u001b[2m\\u001b[0m\\u001b[36mpackages/node/src/indexer/api.service.test.ts\\u001b[39m\\u001b[0m\\u001b[2m:52:1)\\u001b[22m\\u001b[2m\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/api.service.test.ts\",\"startTime\":1710903677001,\"status\":\"failed\",\"summary\":\"\"},{\"assertionResults\":[{\"ancestorTitles\":[\"Cli publish\"],\"duration\":139205,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish should not allow uploading a v0.0.1 spec version project\",\"invocations\":1,\"location\":{\"column\":5,\"line\":84},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"should not allow uploading a v0.0.1 spec version project\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":1934,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Publish project to default failed, HTTPError: <html>\\r\\n<head><title>403 Forbidden</title></head>\\r\\n<body>\\r\\n<center><h1>403 Forbidden</h1></center>\\r\\n<hr><center>nginx/1.17.7</center>\\r\\n</body>\\r\\n</html>\\r\\n\\n    at /Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:176:15\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at async Promise.all (index 0)\\n    at async uploadFile (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:179:30)\\n    at async Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.spec.ts:92:21)\"],\"fullName\":\"Cli publish upload file to ipfs\",\"invocations\":1,\"location\":{\"column\":5,\"line\":88},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"upload file to ipfs\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":159194,\"failureDetails\":[{}],\"failureMessages\":[\"Error: Publish project to default failed, HTTPError: <html>\\r\\n<head><title>403 Forbidden</title></head>\\r\\n<body>\\r\\n<center><h1>403 Forbidden</h1></center>\\r\\n<hr><center>nginx/1.17.7</center>\\r\\n</body>\\r\\n</html>\\r\\n\\n    at /Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:176:15\\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n    at async Promise.all (index 0)\\n    at async uploadFile (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:179:30)\\n    at async replaceFileReferences (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:102:26)\\n    at async /Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:107:26\\n    at async Promise.all (index 2)\\n    at async replaceFileReferences (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:105:9)\\n    at async uploadToIpfs (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts:72:28)\\n    at async Object.<anonymous> (/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.spec.ts:97:21)\"],\"fullName\":\"Cli publish should upload appropriate project to IPFS\",\"invocations\":1,\"location\":{\"column\":5,\"line\":95},\"numPassingAsserts\":0,\"retryReasons\":[],\"status\":\"failed\",\"title\":\"should upload appropriate project to IPFS\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":75489,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish upload project from a manifest\",\"invocations\":1,\"location\":{\"column\":5,\"line\":102},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"upload project from a manifest\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":108385,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish v1.0.0 should deploy\",\"invocations\":1,\"location\":{\"column\":5,\"line\":109},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"v1.0.0 should deploy\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":32526,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish convert to deployment and removed descriptive field\",\"invocations\":1,\"location\":{\"column\":5,\"line\":115},\"numPassingAsserts\":8,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"convert to deployment and removed descriptive field\"},{\"ancestorTitles\":[\"Cli publish\"],\"duration\":2,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Cli publish convert js object to JSON object\",\"invocations\":1,\"location\":{\"column\":5,\"line\":129},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"convert js object to JSON object\"},{\"ancestorTitles\":[\"Intergration test - Publish\"],\"duration\":34331,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Intergration test - Publish overwrites any exisiting CID files\",\"invocations\":1,\"location\":{\"column\":5,\"line\":26},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"overwrites any exisiting CID files\"},{\"ancestorTitles\":[\"Intergration test - Publish\"],\"duration\":33248,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Intergration test - Publish file name consistent with manfiest file name, if -f <manifest path> is used\",\"invocations\":1,\"location\":{\"column\":5,\"line\":35},\"numPassingAsserts\":1,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"file name consistent with manfiest file name, if -f <manifest path> is used\"},{\"ancestorTitles\":[\"Intergration test - Publish\"],\"duration\":33112,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Intergration test - Publish create ipfsCID file stored in local with dictiory path\",\"invocations\":1,\"location\":{\"column\":5,\"line\":45},\"numPassingAsserts\":2,\"retryReasons\":[],\"status\":\"passed\",\"title\":\"create ipfsCID file stored in local with dictiory path\"}],\"endTime\":1710904327199,\"message\":\"\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCli publish › upload file to ipfs\\u001b[39m\\u001b[22m\\n\\n    Publish project to default failed, HTTPError: <html>\\r\\n    <head><title>403 Forbidden</title></head>\\r\\n    <body>\\r\\n    <center><h1>403 Forbidden</h1></center>\\r\\n    <hr><center>nginx/1.17.7</center>\\r\\n    </body>\\r\\n    </html>\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 174 |\\u001b[39m     \\u001b[36mconst\\u001b[39m results \\u001b[33m=\\u001b[39m ipfsWrite\\u001b[33m.\\u001b[39maddAll(contents\\u001b[33m,\\u001b[39m {pin\\u001b[33m:\\u001b[39m \\u001b[36mtrue\\u001b[39m\\u001b[33m,\\u001b[39m cidVersion\\u001b[33m:\\u001b[39m \\u001b[35m0\\u001b[39m\\u001b[33m,\\u001b[39m wrapWithDirectory\\u001b[33m:\\u001b[39m isMultichain})\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 175 |\\u001b[39m     \\u001b[36mfor\\u001b[39m \\u001b[36mawait\\u001b[39m (\\u001b[36mconst\\u001b[39m result \\u001b[36mof\\u001b[39m results) {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 176 |\\u001b[39m       fileCidMap\\u001b[33m.\\u001b[39m\\u001b[36mset\\u001b[39m(result\\u001b[33m.\\u001b[39mpath\\u001b[33m,\\u001b[39m result\\u001b[33m.\\u001b[39mcid\\u001b[33m.\\u001b[39mtoString())\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m     |\\u001b[39m               \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 177 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 178 |\\u001b[39m       \\u001b[36mawait\\u001b[39m ipfsWrite\\u001b[33m.\\u001b[39mpin\\u001b[33m.\\u001b[39mremote\\u001b[33m.\\u001b[39madd(result\\u001b[33m.\\u001b[39mcid\\u001b[33m,\\u001b[39m {service\\u001b[33m:\\u001b[39m \\u001b[33mPIN_SERVICE\\u001b[39m})\\u001b[33m.\\u001b[39m\\u001b[36mcatch\\u001b[39m((e) \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 179 |\\u001b[39m         console\\u001b[33m.\\u001b[39mwarn(\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:176:15\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m          at async Promise.all (index 0)\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async uploadFile (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:179:30)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async Object.<anonymous> (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.spec.ts\\u001b[2m:92:21)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\n\\u001b[1m\\u001b[31m  \\u001b[1m● \\u001b[22m\\u001b[1mCli publish › should upload appropriate project to IPFS\\u001b[39m\\u001b[22m\\n\\n    Publish project to default failed, HTTPError: <html>\\r\\n    <head><title>403 Forbidden</title></head>\\r\\n    <body>\\r\\n    <center><h1>403 Forbidden</h1></center>\\r\\n    <hr><center>nginx/1.17.7</center>\\r\\n    </body>\\r\\n    </html>\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 174 |\\u001b[39m     \\u001b[36mconst\\u001b[39m results \\u001b[33m=\\u001b[39m ipfsWrite\\u001b[33m.\\u001b[39maddAll(contents\\u001b[33m,\\u001b[39m {pin\\u001b[33m:\\u001b[39m \\u001b[36mtrue\\u001b[39m\\u001b[33m,\\u001b[39m cidVersion\\u001b[33m:\\u001b[39m \\u001b[35m0\\u001b[39m\\u001b[33m,\\u001b[39m wrapWithDirectory\\u001b[33m:\\u001b[39m isMultichain})\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 175 |\\u001b[39m     \\u001b[36mfor\\u001b[39m \\u001b[36mawait\\u001b[39m (\\u001b[36mconst\\u001b[39m result \\u001b[36mof\\u001b[39m results) {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m\\u001b[31m\\u001b[1m>\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[90m 176 |\\u001b[39m       fileCidMap\\u001b[33m.\\u001b[39m\\u001b[36mset\\u001b[39m(result\\u001b[33m.\\u001b[39mpath\\u001b[33m,\\u001b[39m result\\u001b[33m.\\u001b[39mcid\\u001b[33m.\\u001b[39mtoString())\\u001b[33m;\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m     |\\u001b[39m               \\u001b[31m\\u001b[1m^\\u001b[22m\\u001b[2m\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 177 |\\u001b[39m\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 178 |\\u001b[39m       \\u001b[36mawait\\u001b[39m ipfsWrite\\u001b[33m.\\u001b[39mpin\\u001b[33m.\\u001b[39mremote\\u001b[33m.\\u001b[39madd(result\\u001b[33m.\\u001b[39mcid\\u001b[33m,\\u001b[39m {service\\u001b[33m:\\u001b[39m \\u001b[33mPIN_SERVICE\\u001b[39m})\\u001b[33m.\\u001b[39m\\u001b[36mcatch\\u001b[39m((e) \\u001b[33m=>\\u001b[39m {\\u001b[0m\\u001b[22m\\n\\u001b[2m    \\u001b[0m \\u001b[90m 179 |\\u001b[39m         console\\u001b[33m.\\u001b[39mwarn(\\u001b[0m\\u001b[22m\\n\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:176:15\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m          at async Promise.all (index 0)\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async uploadFile (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:179:30)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async replaceFileReferences (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:102:26)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat \\u001b[22m\\u001b[2masync /Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts\\u001b[2m:107:26\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m          at async Promise.all (index 2)\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async replaceFileReferences (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:105:9)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async uploadToIpfs (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.ts\\u001b[2m:72:28)\\u001b[22m\\u001b[2m\\u001b[22m\\n\\u001b[2m      \\u001b[2mat async Object.<anonymous> (\\u001b[22m\\u001b[2mpackages/cli/src/controller/publish-controller.spec.ts\\u001b[2m:97:21)\\u001b[22m\\u001b[2m\\u001b[22m\\n\",\"name\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/publish.test.ts\",\"startTime\":1710903677011,\"status\":\"failed\",\"summary\":\"\"}],\"wasInterrupted\":false,\"coverageMap\":{\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/build/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/build/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":55}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":43}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":24}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":61}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":92}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":44}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":58}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":18}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":99}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":87}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":103}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":67}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":4}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":30}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":9}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":46}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":94}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":73}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":91}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":94}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":49}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":23}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":40}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":21}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":22}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":21}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":27}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":15}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":33}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":10}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":7}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":73}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":94}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":64}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":72}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":50}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":28}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":8}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":86}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":68}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":52}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":9}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":87}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":68}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":53}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":9}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":63}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":86}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":34}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":54}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":23}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":12}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":27}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":10}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":7}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":37}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":50}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":55}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":33}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":9}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":7}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":72}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":26}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":50}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":26}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":7}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":17}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":20}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":5}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":3}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":18,\"23\":18,\"24\":18,\"25\":18,\"26\":18,\"27\":18,\"28\":18,\"29\":18,\"30\":18,\"31\":18,\"32\":18,\"33\":15,\"34\":15,\"35\":15,\"36\":15,\"37\":2,\"38\":2,\"39\":15,\"40\":15,\"41\":15,\"42\":18,\"43\":18,\"44\":18,\"45\":18,\"46\":18,\"47\":18,\"48\":18,\"49\":18,\"50\":18,\"51\":18,\"52\":18,\"53\":18,\"54\":18,\"55\":18,\"56\":18,\"57\":18,\"58\":0,\"59\":0,\"60\":18,\"61\":18,\"62\":18,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":18,\"72\":18,\"73\":36,\"74\":0,\"75\":0,\"76\":0,\"77\":36,\"78\":18,\"79\":18,\"80\":13,\"81\":13,\"82\":13,\"83\":18,\"84\":0,\"85\":0,\"86\":18,\"87\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"locations\":[{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":87,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":78},\"end\":{\"line\":25,\"column\":93}},\"locations\":[{\"start\":{\"line\":25,\"column\":78},\"end\":{\"line\":25,\"column\":93}}]},\"2\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":58},\"end\":{\"line\":29,\"column\":68}},\"locations\":[{\"start\":{\"line\":29,\"column\":58},\"end\":{\"line\":29,\"column\":68}}]},\"3\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":69},\"end\":{\"line\":29,\"column\":93}},\"locations\":[{\"start\":{\"line\":29,\"column\":69},\"end\":{\"line\":29,\"column\":93}}]},\"4\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":22},\"end\":{\"line\":42,\"column\":7}},\"locations\":[{\"start\":{\"line\":33,\"column\":22},\"end\":{\"line\":42,\"column\":7}}]},\"5\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":12},\"end\":{\"line\":39,\"column\":15}},\"locations\":[{\"start\":{\"line\":37,\"column\":12},\"end\":{\"line\":39,\"column\":15}}]},\"6\":{\"type\":\"branch\",\"line\":40,\"loc\":{\"start\":{\"line\":40,\"column\":12},\"end\":{\"line\":40,\"column\":33}},\"locations\":[{\"start\":{\"line\":40,\"column\":12},\"end\":{\"line\":40,\"column\":33}}]},\"7\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":23},\"end\":{\"line\":63,\"column\":60}},\"locations\":[{\"start\":{\"line\":63,\"column\":23},\"end\":{\"line\":63,\"column\":60}}]},\"8\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":62},\"end\":{\"line\":71,\"column\":7}},\"locations\":[{\"start\":{\"line\":63,\"column\":62},\"end\":{\"line\":71,\"column\":7}}]},\"9\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":36},\"end\":{\"line\":78,\"column\":7}},\"locations\":[{\"start\":{\"line\":73,\"column\":36},\"end\":{\"line\":78,\"column\":7}}]},\"10\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":49},\"end\":{\"line\":77,\"column\":9}},\"locations\":[{\"start\":{\"line\":74,\"column\":49},\"end\":{\"line\":77,\"column\":9}}]},\"11\":{\"type\":\"branch\",\"line\":80,\"loc\":{\"start\":{\"line\":80,\"column\":25},\"end\":{\"line\":83,\"column\":7}},\"locations\":[{\"start\":{\"line\":80,\"column\":25},\"end\":{\"line\":83,\"column\":7}}]},\"12\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":6},\"end\":{\"line\":86,\"column\":5}},\"locations\":[{\"start\":{\"line\":84,\"column\":6},\"end\":{\"line\":86,\"column\":5}}]},\"13\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":14},\"end\":{\"line\":39,\"column\":15}},\"locations\":[{\"start\":{\"line\":37,\"column\":14},\"end\":{\"line\":39,\"column\":15}}]},\"14\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":71},\"end\":{\"line\":56,\"column\":7}},\"locations\":[{\"start\":{\"line\":53,\"column\":71},\"end\":{\"line\":56,\"column\":7}}]}},\"b\":{\"0\":[18],\"1\":[0],\"2\":[15],\"3\":[3],\"4\":[15],\"5\":[2],\"6\":[13],\"7\":[0],\"8\":[0],\"9\":[36],\"10\":[0],\"11\":[13],\"12\":[0],\"13\":[2],\"14\":[18]},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"line\":22},\"1\":{\"name\":\"Object.entries.reduce\",\"decl\":{\"start\":{\"line\":65,\"column\":10},\"end\":{\"line\":68,\"column\":11}},\"loc\":{\"start\":{\"line\":65,\"column\":10},\"end\":{\"line\":68,\"column\":11}},\"line\":65}},\"f\":{\"0\":18,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/codegen/generate.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/codegen/generate.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":33}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":84}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":43}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":83}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":75}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":44}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":8}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":24}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":33}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":19}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":21}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":23}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":18}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":18}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":20}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":24}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":14}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":16}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":46}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":42}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":33}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":15}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":17}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":28}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":21}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":30}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":27}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":18}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":19}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":1}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":47}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":91}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":18}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":79}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":85}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":95}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":82}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":75}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":61}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":4}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":30}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":50}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":56}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":18}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":32}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":23}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":24}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":35}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":16}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":64}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":21}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":24}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":17}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":14}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":15}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":6}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":74}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":83}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":12}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":29}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":38}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":32}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":39}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":23}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":6}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":3}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":30}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":47}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":74}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":39}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":22}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":60}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":47}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":71}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":63}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":20}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":14}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":60}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":21}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":7}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":25}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":49}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":49}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":17}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":32}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":29}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":12}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":42}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":5}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":52}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":83}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":68}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":5}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":45}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":47}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":25}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":60}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":48}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":85}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":98}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":109}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":29}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":0}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":9}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":17}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":78}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":70}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":33}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":11}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":70}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":42}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":25}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":28}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":21}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":18}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":21}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":22}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":21}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":10}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":0}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":72}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":14}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":15}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":65}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":106}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":42}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":25}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":28}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":21}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":18}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":21}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":22}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":23}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":10}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":0}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":74}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":7}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":0}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":85}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":0}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":50}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":43}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":64}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":9}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":43}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":64}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":9}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":50}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":17}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":20}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":5}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":3}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":2,\"81\":2,\"82\":2,\"83\":2,\"84\":2,\"85\":2,\"86\":2,\"87\":2,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":2,\"97\":2,\"98\":2,\"99\":2,\"100\":2,\"101\":2,\"102\":0,\"103\":0,\"104\":2,\"105\":2,\"106\":2,\"107\":2,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":2,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":2,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":1,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":1,\"156\":1,\"157\":1,\"158\":1,\"159\":1,\"160\":1,\"161\":1,\"162\":1,\"163\":1,\"164\":1,\"165\":2,\"166\":1,\"167\":1,\"168\":2,\"169\":1,\"170\":1,\"171\":2,\"172\":0,\"173\":0,\"174\":2,\"175\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":10},\"end\":{\"line\":79,\"column\":3}},\"locations\":[{\"start\":{\"line\":52,\"column\":10},\"end\":{\"line\":79,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":80,\"loc\":{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":175,\"column\":3}},\"locations\":[{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":175,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":41},\"end\":{\"line\":86,\"column\":58}},\"locations\":[{\"start\":{\"line\":86,\"column\":41},\"end\":{\"line\":86,\"column\":58}}]},\"3\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":46},\"end\":{\"line\":97,\"column\":11}},\"locations\":[{\"start\":{\"line\":88,\"column\":46},\"end\":{\"line\":97,\"column\":11}}]},\"4\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":5},\"end\":{\"line\":104,\"column\":5}},\"locations\":[{\"start\":{\"line\":102,\"column\":5},\"end\":{\"line\":104,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":108,\"loc\":{\"start\":{\"line\":108,\"column\":82},\"end\":{\"line\":126,\"column\":16}},\"locations\":[{\"start\":{\"line\":108,\"column\":82},\"end\":{\"line\":126,\"column\":16}}]},\"6\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":16},\"end\":{\"line\":144,\"column\":13}},\"locations\":[{\"start\":{\"line\":126,\"column\":16},\"end\":{\"line\":144,\"column\":13}}]},\"7\":{\"type\":\"branch\",\"line\":144,\"loc\":{\"start\":{\"line\":144,\"column\":7},\"end\":{\"line\":172,\"column\":13}},\"locations\":[{\"start\":{\"line\":144,\"column\":7},\"end\":{\"line\":172,\"column\":13}}]},\"8\":{\"type\":\"branch\",\"line\":147,\"loc\":{\"start\":{\"line\":147,\"column\":99},\"end\":{\"line\":147,\"column\":105}},\"locations\":[{\"start\":{\"line\":147,\"column\":99},\"end\":{\"line\":147,\"column\":105}}]},\"9\":{\"type\":\"branch\",\"line\":172,\"loc\":{\"start\":{\"line\":172,\"column\":6},\"end\":{\"line\":174,\"column\":5}},\"locations\":[{\"start\":{\"line\":172,\"column\":6},\"end\":{\"line\":174,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":165,\"loc\":{\"start\":{\"line\":165,\"column\":34},\"end\":{\"line\":167,\"column\":7}},\"locations\":[{\"start\":{\"line\":165,\"column\":34},\"end\":{\"line\":167,\"column\":7}}]},\"11\":{\"type\":\"branch\",\"line\":168,\"loc\":{\"start\":{\"line\":168,\"column\":31},\"end\":{\"line\":170,\"column\":7}},\"locations\":[{\"start\":{\"line\":168,\"column\":31},\"end\":{\"line\":170,\"column\":7}}]}},\"b\":{\"0\":[1],\"1\":[2],\"2\":[0],\"3\":[0],\"4\":[0],\"5\":[1],\"6\":[0],\"7\":[1],\"8\":[0],\"9\":[0],\"10\":[2],\"11\":[2]},\"fnMap\":{\"0\":{\"name\":\"prepareUserInput\",\"decl\":{\"start\":{\"line\":52,\"column\":10},\"end\":{\"line\":79,\"column\":3}},\"loc\":{\"start\":{\"line\":52,\"column\":10},\"end\":{\"line\":79,\"column\":3}},\"line\":52},\"1\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":175,\"column\":3}},\"loc\":{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":175,\"column\":3}},\"line\":80}},\"f\":{\"0\":1,\"1\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/codegen/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/codegen/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":71}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":60}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":92}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":46}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":57}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":28}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":16}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":95}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":7}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":112}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":4}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":30}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":46}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":48}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":48}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":48}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":35}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":81}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":6}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":56}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":31}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":74}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":6}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":50}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":21}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":71}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":5}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":69}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":46}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":39}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":55}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":37}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":37}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":50}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":61}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":7}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":5}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":9}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":37}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":19}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":33}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":22}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":5}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":3}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":13,\"21\":13,\"22\":13,\"23\":13,\"24\":13,\"25\":13,\"26\":13,\"27\":13,\"28\":13,\"29\":13,\"30\":13,\"31\":13,\"32\":13,\"33\":13,\"34\":13,\"35\":13,\"36\":13,\"37\":13,\"38\":13,\"39\":13,\"40\":13,\"41\":13,\"42\":13,\"43\":13,\"44\":13,\"45\":13,\"46\":13,\"47\":13,\"48\":13,\"49\":13,\"50\":0,\"51\":0,\"52\":13,\"53\":13,\"54\":13,\"55\":13,\"56\":13,\"57\":0,\"58\":0,\"59\":0,\"60\":13,\"61\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"locations\":[{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":61,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":62},\"end\":{\"line\":28,\"column\":79}},\"locations\":[{\"start\":{\"line\":28,\"column\":62},\"end\":{\"line\":28,\"column\":79}}]},\"2\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":7},\"end\":{\"line\":52,\"column\":7}},\"locations\":[{\"start\":{\"line\":50,\"column\":7},\"end\":{\"line\":52,\"column\":7}}]},\"3\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":6},\"end\":{\"line\":60,\"column\":5}},\"locations\":[{\"start\":{\"line\":57,\"column\":6},\"end\":{\"line\":60,\"column\":5}}]}},\"b\":{\"0\":[13],\"1\":[0],\"2\":[0],\"3\":[0]},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"line\":20}},\"f\":{\"0\":13}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/deployment/delete.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/deployment/delete.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":50}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":68}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":54}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":45}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":43}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":64}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":68}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":69}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":4}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":30}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":45}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":41}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":51}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":50}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":32}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":85}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":103}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":105}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":53}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":119}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":26}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":6}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":53}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"loc\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"line\":18}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/deployment/deploy.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/deployment/deploy.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":26}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":25}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":32}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":50}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":8}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":21}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":22}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":27}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":26}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":16}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":19}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":19}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":15}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":16}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":44}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":52}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":85}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":45}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":54}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":52}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":59}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":76}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":5}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":30}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":45}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":41}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":97}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":113}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":97}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":90}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":50}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":54}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":27}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":61}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":5}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":26}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":30}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":92}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":7}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":99}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":5}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":22}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":117}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":56}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":111}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":14}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":42}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":7}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":5}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":32}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":11}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":52}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":45}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":48}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":20}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":27}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":10}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":33}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":63}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":21}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":36}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":17}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":28}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":16}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":12}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":16}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":52}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":9}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":19}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":74}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":7}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":5}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":30}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":11}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":50}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":46}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":49}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":20}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":27}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":10}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":33}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":117}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":40}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":16}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":48}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":9}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":19}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":72}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":7}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":5}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":115}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":49}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":16}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":31}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":27}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":33}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":49}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":21}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":49}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":8}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":6}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":61}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":0}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":36}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":20}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":27}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":21}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":19}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":29}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":21}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":37}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":37}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":38}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":7}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":0}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":0}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":0}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":3}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":138,\"column\":3}},\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":138,\"column\":3}},\"line\":31}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/deployment/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/deployment/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":37}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":30}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":30}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":32}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":56}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":49}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":50}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":18}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":27}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":47}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":7}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":20}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":21}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":20}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":4}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":26}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":19}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":21}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":19}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":4}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":30}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":49}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":33}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":38}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":18}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":46}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":9}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":36}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":49}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":23}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":75}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":10}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":9}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":47}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":12}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":47}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":5}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":59}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":9}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":60}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":87}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":50}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":97}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":62}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":39}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":17}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":72}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":5}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"loc\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"line\":28}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/deployment/promote.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/deployment/promote.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":50}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":69}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":54}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":46}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":44}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":64}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":68}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":69}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":4}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":30}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":46}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":41}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":51}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":32}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":50}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":85}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":103}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":105}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":51}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":10}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":19}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":16}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":20}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":23}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":34}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":79}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":3}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":38,\"column\":3}},\"loc\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":38,\"column\":3}},\"line\":18}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/init.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/init.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":49}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":45}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":26}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":25}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":26}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":37}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":8}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":22}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":23}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":18}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":15}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":10}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":25}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":34}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":16}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":23}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":26}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":39}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":41}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":74}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":42}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":81}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":51}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":37}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":40}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":24}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":37}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":14}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":46}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":29}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":10}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":8}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":7}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":4}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":64}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":22}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":21}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":20}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":9}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":63}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":23}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":9}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":22}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":21}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":17}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":72}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":15}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":5}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":3}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":65}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":19}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":5}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":26}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":43}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":64}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":18}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":38}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":94}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":105}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":118}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":61}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":4}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":17}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":30}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":51}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":7}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":4}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":47}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":35}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":27}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":40}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":26}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":30}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":49}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":91}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":41}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":40}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":24}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":85}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":74}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":89}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":5}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":51}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":22}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":60}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":18}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":15}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":9}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":33}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":45}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":31}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":25}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":48}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":23}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":40}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":10}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":8}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":35}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":44}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":9}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":75}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":97}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":24}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":69}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":0}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":18}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":15}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":9}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":34}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":38}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":31}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":25}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":41}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":23}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":45}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":10}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":8}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":36}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":39}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":9}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":101}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":0}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":100}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":49}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":26}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":115}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":51}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":92}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":6}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":110}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":18}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":15}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":9}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":34}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":47}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":31}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":25}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":42}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":48}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":10}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":8}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":42}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":71}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":39}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":39}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":16}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":95}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":9}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":9}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":101}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":0}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":35}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":0}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":66}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":47}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":9}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":26}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":26}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":88}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":25}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":10}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":9}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":0}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":20}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":43}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":7}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":5}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":3}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":0}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":42}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":70}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":101}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":3}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":0}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":49}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":102}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":0}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":98}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":57}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":82}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":22}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":7}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":53}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":58}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":5}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":78}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":95}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":40}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":30}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":24}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":33}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":8}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":30}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":82}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":9}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":0}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":42}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":50}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":22}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":40}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":50}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":55}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":24}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":5}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":46}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":3}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":48}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":51}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":0}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":49}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":7}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":22}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":28}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":31}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":8}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":7}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":0}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":53}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":7}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":22}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":32}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":64}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":8}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":7}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":0}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":48}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":7}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":22}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":27}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":90}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":19}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":8}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":7}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":0}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":73}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":0}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":78}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":24}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":11}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":23}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":18}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":23}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":18}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":34}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":21}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":22}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":7}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":3}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":1,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":1,\"189\":1,\"190\":0,\"191\":0,\"192\":0,\"193\":1,\"194\":1,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":1,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"filterInput\",\"decl\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"loc\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"line\":31},\"1\":{\"name\":\"promptValidRemoteAndBranch\",\"decl\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"loc\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"line\":44},\"2\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":87,\"column\":2},\"end\":{\"line\":188,\"column\":3}},\"loc\":{\"start\":{\"line\":87,\"column\":2},\"end\":{\"line\":188,\"column\":3}},\"line\":87},\"3\":{\"name\":\"cloneCustomRepo\",\"decl\":{\"start\":{\"line\":190,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"loc\":{\"start\":{\"line\":190,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"line\":190},\"4\":{\"name\":\"setupProject\",\"decl\":{\"start\":{\"line\":195,\"column\":2},\"end\":{\"line\":226,\"column\":3}},\"loc\":{\"start\":{\"line\":195,\"column\":2},\"end\":{\"line\":226,\"column\":3}},\"line\":195},\"5\":{\"name\":\"createProjectScaffold\",\"decl\":{\"start\":{\"line\":227,\"column\":2},\"end\":{\"line\":268,\"column\":3}},\"loc\":{\"start\":{\"line\":227,\"column\":2},\"end\":{\"line\":268,\"column\":3}},\"line\":227}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/multi-chain/add.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/multi-chain/add.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":27}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":63}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":50}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":52}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":77}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":120}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":96}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":4}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":30}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":52}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":31}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":36}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":29}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":87}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":5}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":73}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"line\":17}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/multi-chain/deploy.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/multi-chain/deploy.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":43}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":83}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":26}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":25}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":32}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":23}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":50}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":8}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":21}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":27}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":26}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":16}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":19}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":19}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":15}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":28}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":44}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":65}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":77}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":108}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":55}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":66}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":52}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":117}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":80}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":5}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":30}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":55}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":41}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":92}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":98}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":56}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":93}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":69}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":34}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":166}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":77}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":48}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":53}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":5}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":115}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":26}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":6}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":97}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":113}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":34}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":76}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":115}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":49}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":89}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":88}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":101}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":30}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":11}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":59}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":46}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":49}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":20}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":27}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":10}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":33}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":130}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":16}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":57}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":9}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":19}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":72}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":7}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":5}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":50}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":0}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":85}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":110}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":99}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":29}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":63}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":7}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":0}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":48}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":13}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":63}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":47}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":50}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":22}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":29}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":12}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":35}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":79}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":23}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":67}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":19}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":39}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":18}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":14}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":18}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":77}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":11}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":21}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":76}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":9}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":7}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":84}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":0}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":42}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":32}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":162}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":9}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":144}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":7}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":0}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":45}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":119}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":58}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":163}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":16}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":65}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":9}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":7}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":18}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":33}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":36}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":56}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":51}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":23}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":65}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":10}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":8}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":5}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":0}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":73}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":0}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":36}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":20}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":27}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":21}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":19}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":23}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":21}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":31}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":37}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":38}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":7}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":0}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":3}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":174,\"column\":3}},\"loc\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":174,\"column\":3}},\"line\":36}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/project/create-project.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/project/create-project.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":68}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":66}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":54}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":53}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":58}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":64}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":67}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":65}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":89}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":90}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":96}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":96}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":90}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":4}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":30}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":53}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":44}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":41}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":85}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":101}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":97}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":39}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":10}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":21}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":20}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":18}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":16}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":14}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":24}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":23}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":24}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":23}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":34}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":50}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":57}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":86}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":3}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":50,\"column\":3}},\"loc\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":50,\"column\":3}},\"line\":24}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/project/delete-project.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/project/delete-project.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":50}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":66}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":54}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":53}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":58}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":64}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":67}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":4}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":30}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":53}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":41}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":35}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":85}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":101}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":105}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":19}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":6}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":58}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":3}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"line\":17}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/project/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/project/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":37}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":46}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":46}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":42}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":46}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":47}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":18}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":27}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":36}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":7}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":28}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":28}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":4}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":26}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":27}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":27}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":4}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":30}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":46}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":33}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":36}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":18}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":46}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":9}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":32}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":46}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":23}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":56}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":10}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":9}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":43}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":12}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":45}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":56}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":9}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":57}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":87}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":50}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":94}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":62}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":39}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":17}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":72}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":5}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"loc\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"line\":24}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/publish.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/commands/publish.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":43}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":83}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":78}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":59}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":28}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":46}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":62}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":18}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":101}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":80}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":88}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":4}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":30}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":46}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":92}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":9}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":54}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":17}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":18}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":44}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":5}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":98}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":56}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":41}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":93}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":69}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":33}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":79}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":115}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":26}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":6}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":22}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":120}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":6}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":80}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":24}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":25}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":85}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":7}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":43}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":26}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":112}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":9}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":9}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":12}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":25}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":34}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":14}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":45}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":28}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":26}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":11}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":11}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":7}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":5}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":3}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":5,\"21\":5,\"22\":5,\"23\":5,\"24\":5,\"25\":5,\"26\":0,\"27\":0,\"28\":0,\"29\":5,\"30\":5,\"31\":5,\"32\":5,\"33\":5,\"34\":5,\"35\":5,\"36\":5,\"37\":5,\"38\":5,\"39\":0,\"40\":0,\"41\":5,\"42\":5,\"43\":5,\"44\":5,\"45\":5,\"46\":5,\"47\":5,\"48\":5,\"49\":5,\"50\":5,\"51\":5,\"52\":5,\"53\":4,\"54\":0,\"55\":0,\"56\":4,\"57\":4,\"58\":4,\"59\":4,\"60\":4,\"61\":4,\"62\":5,\"63\":1,\"64\":0,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":5,\"74\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"locations\":[{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":74,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":76},\"end\":{\"line\":22,\"column\":91}},\"locations\":[{\"start\":{\"line\":22,\"column\":76},\"end\":{\"line\":22,\"column\":91}}]},\"2\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":6},\"end\":{\"line\":29,\"column\":5}},\"locations\":[{\"start\":{\"line\":26,\"column\":6},\"end\":{\"line\":29,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":32},\"end\":{\"line\":41,\"column\":5}},\"locations\":[{\"start\":{\"line\":39,\"column\":32},\"end\":{\"line\":41,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":23},\"end\":{\"line\":63,\"column\":11}},\"locations\":[{\"start\":{\"line\":53,\"column\":23},\"end\":{\"line\":63,\"column\":11}}]},\"5\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":24},\"end\":{\"line\":56,\"column\":7}},\"locations\":[{\"start\":{\"line\":54,\"column\":24},\"end\":{\"line\":56,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":5},\"end\":{\"line\":73,\"column\":5}},\"locations\":[{\"start\":{\"line\":63,\"column\":5},\"end\":{\"line\":73,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":24},\"end\":{\"line\":66,\"column\":13}},\"locations\":[{\"start\":{\"line\":64,\"column\":24},\"end\":{\"line\":66,\"column\":13}}]},\"8\":{\"type\":\"branch\",\"line\":36,\"loc\":{\"start\":{\"line\":36,\"column\":44},\"end\":{\"line\":36,\"column\":91}},\"locations\":[{\"start\":{\"line\":36,\"column\":44},\"end\":{\"line\":36,\"column\":91}}]},\"9\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":28},\"end\":{\"line\":48,\"column\":119}},\"locations\":[{\"start\":{\"line\":48,\"column\":28},\"end\":{\"line\":48,\"column\":119}}]},\"10\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":55},\"end\":{\"line\":51,\"column\":78}},\"locations\":[{\"start\":{\"line\":51,\"column\":55},\"end\":{\"line\":51,\"column\":78}}]},\"11\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":27},\"end\":{\"line\":62,\"column\":7}},\"locations\":[{\"start\":{\"line\":58,\"column\":27},\"end\":{\"line\":62,\"column\":7}}]},\"12\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":35},\"end\":{\"line\":60,\"column\":54}},\"locations\":[{\"start\":{\"line\":60,\"column\":35},\"end\":{\"line\":60,\"column\":54}}]},\"13\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":29},\"end\":{\"line\":71,\"column\":9}},\"locations\":[{\"start\":{\"line\":67,\"column\":29},\"end\":{\"line\":71,\"column\":9}}]}},\"b\":{\"0\":[5],\"1\":[0],\"2\":[0],\"3\":[0],\"4\":[4],\"5\":[0],\"6\":[1],\"7\":[0],\"8\":[5],\"9\":[5],\"10\":[5],\"11\":[4],\"12\":[0],\"13\":[1]},\"fnMap\":{\"0\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"line\":20}},\"f\":{\"0\":5}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/constants.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/constants.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":12}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":49}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":9}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":63}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":64}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":67}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":70}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":28}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":73}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":60}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":69}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":62}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":46}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":69}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":29}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":43},\"end\":{\"line\":23,\"column\":58}},\"locations\":[{\"start\":{\"line\":23,\"column\":43},\"end\":{\"line\":23,\"column\":58}}]}},\"b\":{\"0\":[0]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/add-chain-controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/add-chain-controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":29}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":120}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":83}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":71}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":51}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":41}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":59}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":55}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":59}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":51}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":62}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":68}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":2}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":31}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":20}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":2}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":33}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":24}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":2}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":33}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":30}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":19}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":18}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":18}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":2}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":29}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":17}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":54}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":19}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":41}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":21}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":21}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":41}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":2}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":94}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":77}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":76}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":65}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":109}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":74}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":87}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":77}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":20}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":63}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":29}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":47}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":75}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":10}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":37}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":82}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":5}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":32}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":3}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":24}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":1}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":82}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":35}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":53}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":91}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":46}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":68}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":48}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":10}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":83}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":3}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":28}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":1}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":76}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":27}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":60}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":3}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":0}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":53}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":42}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":106}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":3}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":41}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":44}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":21}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":28}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":30}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":9}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":26}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":102}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":110}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":0}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":70}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":0}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":87}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":46}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":6}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":86}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":73}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":49}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":20}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":153}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":8}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":52}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":5}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":3}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":91}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":76}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":97}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":13}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":5}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":3}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":55}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":68}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":0}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":68}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":73}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":0}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":88}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":41}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":63}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":34}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":3}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":1}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":89}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":49}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":48}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":51}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":54}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":56}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":7}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":0}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":54}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":71}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":71}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":38}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":7}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":60}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":5}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":3}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":0}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":19}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":1}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":0}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":46}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":28}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":21}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":34}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":63}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":23}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":7}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":68}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":15}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":74}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":3}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":0}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":50}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":21}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":60}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":3}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":0}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":10}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":35}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":17}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":17}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":37}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":8}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":6}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":22}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":18}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":26}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":26}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":30}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":26}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":22}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":6}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":25}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":77}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":18}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":70}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":21}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":20}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":18}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":6}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":4}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":1}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":0}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":105}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":83}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":72}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":65}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":23}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":106}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":3}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":0}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":82}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":0}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":35}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":49}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":48}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":59}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":46}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":65}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":21}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":7}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":61}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":78}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":7}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":0}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":26}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":18}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":109}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":8}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":13}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":5}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":3}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":0}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":60}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":25}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":62}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":96}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":80}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":98}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":10}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":52}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":92}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":3}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":67}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":0}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":73}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":0}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":41}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":64}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":83}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":1}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":0}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":56}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":92}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":1,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":1,\"71\":2,\"72\":2,\"73\":2,\"74\":2,\"75\":0,\"76\":0,\"77\":2,\"78\":2,\"79\":2,\"80\":2,\"81\":2,\"82\":0,\"83\":0,\"84\":2,\"85\":2,\"86\":2,\"87\":1,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":1,\"101\":2,\"102\":2,\"103\":2,\"104\":2,\"105\":2,\"106\":2,\"107\":2,\"108\":2,\"109\":2,\"110\":2,\"111\":2,\"112\":2,\"113\":2,\"114\":2,\"115\":2,\"116\":2,\"117\":2,\"118\":2,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":2,\"125\":1,\"126\":1,\"127\":1,\"128\":0,\"129\":0,\"130\":0,\"131\":1,\"132\":1,\"133\":1,\"134\":1,\"135\":1,\"136\":1,\"137\":1,\"138\":1,\"139\":1,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":1,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":1,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":1,\"210\":1,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":1,\"259\":2,\"260\":2,\"261\":2},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":87,\"column\":1}},\"locations\":[{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":87,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":52},\"end\":{\"line\":77,\"column\":3}},\"locations\":[{\"start\":{\"line\":75,\"column\":52},\"end\":{\"line\":77,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":3},\"end\":{\"line\":84,\"column\":3}},\"locations\":[{\"start\":{\"line\":82,\"column\":3},\"end\":{\"line\":84,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"locations\":[{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":139,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":119,\"loc\":{\"start\":{\"line\":119,\"column\":48},\"end\":{\"line\":124,\"column\":5}},\"locations\":[{\"start\":{\"line\":119,\"column\":48},\"end\":{\"line\":124,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":-1},\"end\":{\"line\":139,\"column\":1}},\"locations\":[{\"start\":{\"line\":126,\"column\":-1},\"end\":{\"line\":139,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":75},\"end\":{\"line\":131,\"column\":5}},\"locations\":[{\"start\":{\"line\":128,\"column\":75},\"end\":{\"line\":131,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":114,\"loc\":{\"start\":{\"line\":114,\"column\":4},\"end\":{\"line\":114,\"column\":46}},\"locations\":[{\"start\":{\"line\":114,\"column\":4},\"end\":{\"line\":114,\"column\":46}}]},\"8\":{\"type\":\"branch\",\"line\":260,\"loc\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":262,\"column\":1}},\"locations\":[{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":262,\"column\":1}}]}},\"b\":{\"0\":[2],\"1\":[0],\"2\":[0],\"3\":[2],\"4\":[1],\"5\":[1],\"6\":[0],\"7\":[2],\"8\":[2]},\"fnMap\":{\"0\":{\"name\":\"addChain\",\"decl\":{\"start\":{\"line\":45,\"column\":7},\"end\":{\"line\":52,\"column\":1}},\"loc\":{\"start\":{\"line\":45,\"column\":7},\"end\":{\"line\":52,\"column\":1}},\"line\":45},\"1\":{\"name\":\"determineMultichainManifestPath\",\"decl\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":70,\"column\":1}},\"loc\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":70,\"column\":1}},\"line\":54},\"2\":{\"name\":\"loadMultichainManifest\",\"decl\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":87,\"column\":1}},\"loc\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":87,\"column\":1}},\"line\":72},\"3\":{\"name\":\"handleChainManifestOrId\",\"decl\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"loc\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"line\":89},\"4\":{\"name\":\"validateAndAddChainManifest\",\"decl\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"loc\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"line\":102},\"5\":{\"name\":\"loadDockerComposeFile\",\"decl\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":146,\"column\":1}},\"loc\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":146,\"column\":1}},\"line\":141},\"6\":{\"name\":\"getSubqlNodeService\",\"decl\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":166,\"column\":1}},\"loc\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":166,\"column\":1}},\"line\":148},\"7\":{\"name\":\"getDefaultServiceConfiguration\",\"decl\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":209,\"column\":1}},\"loc\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":209,\"column\":1}},\"line\":168},\"8\":{\"name\":\"updateDockerCompose\",\"decl\":{\"start\":{\"line\":211,\"column\":7},\"end\":{\"line\":258,\"column\":1}},\"loc\":{\"start\":{\"line\":211,\"column\":7},\"end\":{\"line\":258,\"column\":1}},\"line\":211},\"9\":{\"name\":\"isMultiChainProject\",\"decl\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":262,\"column\":1}},\"loc\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":262,\"column\":1}},\"line\":260}},\"f\":{\"0\":0,\"1\":0,\"2\":2,\"3\":0,\"4\":2,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/build-controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/build-controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":49}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":47}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":36}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":23}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":39}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":21}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":20}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":30}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":17}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":51}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":22}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":22}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":31}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":17}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":19}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":16}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":24}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":24}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":26}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":19}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":27}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":12}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":10}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":9}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":6}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":4}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":11}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":12}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":7}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":24}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":32}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":45}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":18}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":28}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":31}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":12}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":10}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":8}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":7}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":25}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":27}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":8}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":6}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":4}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":12}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":48}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":4}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":11}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":20}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":26}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":30}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":4}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":3}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":33}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":39}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":21}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":20}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":16}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":15}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":18}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":23}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":62}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":21}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":57}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":4}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":42}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":43}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":18}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":22}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":15}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":7}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":30}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":36}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":39}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":15}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":7}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":20}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":7}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":5}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":18,\"9\":18,\"10\":18,\"11\":18,\"12\":18,\"13\":18,\"14\":18,\"15\":18,\"16\":18,\"17\":18,\"18\":18,\"19\":18,\"20\":18,\"21\":18,\"22\":18,\"23\":18,\"24\":18,\"25\":18,\"26\":18,\"27\":18,\"28\":18,\"29\":18,\"30\":18,\"31\":18,\"32\":18,\"33\":18,\"34\":18,\"35\":18,\"36\":18,\"37\":18,\"38\":18,\"39\":18,\"40\":18,\"41\":18,\"42\":18,\"43\":18,\"44\":18,\"45\":18,\"46\":18,\"47\":18,\"48\":18,\"49\":18,\"50\":18,\"51\":18,\"52\":18,\"53\":18,\"54\":18,\"55\":18,\"56\":18,\"57\":18,\"58\":18,\"59\":1,\"60\":1,\"61\":1,\"62\":18,\"63\":18,\"64\":18,\"65\":18,\"66\":18,\"67\":18,\"68\":18,\"69\":18,\"70\":18,\"71\":18,\"72\":18,\"73\":18,\"74\":18,\"75\":18,\"76\":18,\"77\":0,\"78\":0,\"79\":0,\"80\":18,\"81\":18,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":18,\"88\":18,\"89\":18,\"90\":18,\"91\":18},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":22},\"end\":{\"line\":60,\"column\":2}},\"locations\":[{\"start\":{\"line\":8,\"column\":22},\"end\":{\"line\":60,\"column\":2}}]},\"1\":{\"type\":\"branch\",\"line\":15,\"loc\":{\"start\":{\"line\":15,\"column\":20},\"end\":{\"line\":15,\"column\":35}},\"locations\":[{\"start\":{\"line\":15,\"column\":20},\"end\":{\"line\":15,\"column\":35}}]},\"2\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":92,\"column\":1}},\"locations\":[{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":92,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":20},\"end\":{\"line\":91,\"column\":3}},\"locations\":[{\"start\":{\"line\":75,\"column\":20},\"end\":{\"line\":91,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":24},\"end\":{\"line\":90,\"column\":5}},\"locations\":[{\"start\":{\"line\":76,\"column\":24},\"end\":{\"line\":90,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":17},\"end\":{\"line\":80,\"column\":7}},\"locations\":[{\"start\":{\"line\":77,\"column\":17},\"end\":{\"line\":80,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":29},\"end\":{\"line\":87,\"column\":7}},\"locations\":[{\"start\":{\"line\":82,\"column\":29},\"end\":{\"line\":87,\"column\":7}}]}},\"b\":{\"0\":[18],\"1\":[0],\"2\":[18],\"3\":[18],\"4\":[18],\"5\":[0],\"6\":[0]},\"fnMap\":{\"0\":{\"name\":\"getBaseConfig\",\"decl\":{\"start\":{\"line\":8,\"column\":22},\"end\":{\"line\":60,\"column\":2}},\"loc\":{\"start\":{\"line\":8,\"column\":22},\"end\":{\"line\":60,\"column\":2}},\"line\":8},\"1\":{\"name\":\"runWebpack\",\"decl\":{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":92,\"column\":1}},\"loc\":{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":92,\"column\":1}},\"line\":62}},\"f\":{\"0\":18,\"1\":18}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/codegen-controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/codegen-controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":114}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":114}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":19}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":20}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":16}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":15}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":25}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":41}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":25}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":30}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":8}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":35}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":37}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":15}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":32}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":96}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":105}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":101}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":8}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":51}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":56}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":22}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":8}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":52}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":57}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":33}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":47}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":8}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":48}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":53}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":29}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":8}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":50}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":55}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":39}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":44}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":31}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":8}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":46}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":51}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":27}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":8}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":49}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":54}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":30}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":8}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":26}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":20}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":20}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":22}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":21}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":23}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":21}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":14}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":22}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":48}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":56}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":19}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":23}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":29}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":20}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":26}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":22}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":28}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":18}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":24}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":21}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":27}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":24}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":31}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":87}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":80}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":94}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":92}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":88}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":78}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":108}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":34}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":42}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":44}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":21}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":16}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":20}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":15}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":21}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":2}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":39}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":33}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":15}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":15}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":20}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":18}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":19}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":19}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":19}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":27}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":1}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":0}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":98}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":57}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":48}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":49}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":53}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":74}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":12}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":33}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":13}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":6}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":5}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":36}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":31}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":14}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":23}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":8}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":15}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":19}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":8}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":6}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":9}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":109}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":36}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":17}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":70}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":5}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":3}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":1}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":0}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":89}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":57}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":42}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":40}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":12}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":19}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":47}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":6}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":5}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":0}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":27}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":27}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":14}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":14}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":8}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":6}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":9}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":95}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":31}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":17}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":60}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":5}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":3}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":1}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":0}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":30}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":31}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":20}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":56}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":40}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":21}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":41}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":31}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":25}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":23}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":32}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":29}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":20}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":24}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":28}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":71}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":30}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":88}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":26}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":70}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":28}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":57}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":29}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":13}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":11}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":21}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":10}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":26}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":8}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":36}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":34}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":5}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":47}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":36}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":32}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":42}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":12}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":27}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":18}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":69}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":34}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":28}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":77}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":26}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":49}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":14}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":11}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":46}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":16}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":9}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":22}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":50}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":101}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":11}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":66}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":45}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":9}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":7}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":5}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":32}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":3}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":19}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":1}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":0}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":45}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":109}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":58}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":80}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":39}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":46}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":54}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":79}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":23}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":26}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":33}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":36}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":6}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":5}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":0}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":50}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":0}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":71}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":37}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":49}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":23}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":52}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":49}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":75}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":9}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":8}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":23}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":5}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":0}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":58}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":50}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":0}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":62}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":44}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":9}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":0}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":62}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":62}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":44}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":5}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":16}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":9}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":0}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":31}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":62}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":68}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":3}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":0}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":39}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":56}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":3}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":0}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":51}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":0}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":26}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":107}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":3}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":95}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":0}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":91}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":0}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":101}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":9}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":106}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":16}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":22}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":10}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":9}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":17}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":69}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":5}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":45}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":3}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":1}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":0}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":30}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":73}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":42}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":17}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":45}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":57}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":65}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":1}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":0}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":100}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":58}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":80}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":39}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":46}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":0}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":56}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":48}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":47}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":1}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":0}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":58}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":44}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":65}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":89}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":5}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":3}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":14}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":1}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":37}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":90}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":58}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":48}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":41}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":46}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":0}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":55}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":0}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":85}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":106}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":82}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":92}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":27}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":14}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":23}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":18}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":19}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":15}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":29}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":20}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":22}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":8}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":15}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":19}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":8}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":6}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":9}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":27}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":28}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":66}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":21}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":8}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":17}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":23}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":84}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":5}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":53}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":3}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":73}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":32}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":9}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":108}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":16}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":21}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":10}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":17}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":21}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":10}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":9}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":32}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":17}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":70}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":5}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":46}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":3}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":1}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":0}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":114}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":39}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":35}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":67}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":6}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":0}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":86}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":0}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":7}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":117}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":36}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":7}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":35}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":15}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":21}},\"404\":{\"start\":{\"line\":405,\"column\":0},\"end\":{\"line\":405,\"column\":75}},\"405\":{\"start\":{\"line\":406,\"column\":0},\"end\":{\"line\":406,\"column\":3}},\"406\":{\"start\":{\"line\":407,\"column\":0},\"end\":{\"line\":407,\"column\":64}},\"407\":{\"start\":{\"line\":408,\"column\":0},\"end\":{\"line\":408,\"column\":1}},\"408\":{\"start\":{\"line\":409,\"column\":0},\"end\":{\"line\":409,\"column\":0}},\"409\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":410,\"column\":50}},\"410\":{\"start\":{\"line\":411,\"column\":0},\"end\":{\"line\":411,\"column\":10}},\"411\":{\"start\":{\"line\":412,\"column\":0},\"end\":{\"line\":412,\"column\":47}},\"412\":{\"start\":{\"line\":413,\"column\":0},\"end\":{\"line\":413,\"column\":46}},\"413\":{\"start\":{\"line\":414,\"column\":0},\"end\":{\"line\":414,\"column\":51}},\"414\":{\"start\":{\"line\":415,\"column\":0},\"end\":{\"line\":415,\"column\":50}},\"415\":{\"start\":{\"line\":416,\"column\":0},\"end\":{\"line\":416,\"column\":52}},\"416\":{\"start\":{\"line\":417,\"column\":0},\"end\":{\"line\":417,\"column\":43}},\"417\":{\"start\":{\"line\":418,\"column\":0},\"end\":{\"line\":418,\"column\":42}},\"418\":{\"start\":{\"line\":419,\"column\":0},\"end\":{\"line\":419,\"column\":49}},\"419\":{\"start\":{\"line\":420,\"column\":0},\"end\":{\"line\":420,\"column\":48}},\"420\":{\"start\":{\"line\":421,\"column\":0},\"end\":{\"line\":421,\"column\":55}},\"421\":{\"start\":{\"line\":422,\"column\":0},\"end\":{\"line\":422,\"column\":51}},\"422\":{\"start\":{\"line\":423,\"column\":0},\"end\":{\"line\":423,\"column\":4}},\"423\":{\"start\":{\"line\":424,\"column\":0},\"end\":{\"line\":424,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":24,\"111\":24,\"112\":24,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":24,\"120\":24,\"121\":24,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":24,\"138\":1,\"139\":1,\"140\":22,\"141\":22,\"142\":22,\"143\":9,\"144\":9,\"145\":9,\"146\":9,\"147\":22,\"148\":22,\"149\":22,\"150\":9,\"151\":9,\"152\":9,\"153\":9,\"154\":9,\"155\":9,\"156\":9,\"157\":9,\"158\":9,\"159\":0,\"160\":0,\"161\":9,\"162\":22,\"163\":1,\"164\":37,\"165\":37,\"166\":37,\"167\":37,\"168\":37,\"169\":37,\"170\":37,\"171\":37,\"172\":197,\"173\":197,\"174\":197,\"175\":197,\"176\":197,\"177\":197,\"178\":197,\"179\":196,\"180\":196,\"181\":162,\"182\":28,\"183\":28,\"184\":0,\"185\":28,\"186\":0,\"187\":0,\"188\":28,\"189\":162,\"190\":196,\"191\":196,\"192\":196,\"193\":196,\"194\":196,\"195\":196,\"196\":197,\"197\":9,\"198\":9,\"199\":9,\"200\":197,\"201\":188,\"202\":188,\"203\":188,\"204\":188,\"205\":1,\"206\":1,\"207\":1,\"208\":1,\"209\":1,\"210\":1,\"211\":187,\"212\":187,\"213\":187,\"214\":188,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":188,\"222\":188,\"223\":196,\"224\":196,\"225\":36,\"226\":36,\"227\":1,\"228\":1,\"229\":1,\"230\":25,\"231\":25,\"232\":25,\"233\":24,\"234\":24,\"235\":24,\"236\":24,\"237\":24,\"238\":24,\"239\":24,\"240\":24,\"241\":24,\"242\":24,\"243\":24,\"244\":24,\"245\":24,\"246\":24,\"247\":24,\"248\":24,\"249\":161,\"250\":161,\"251\":79,\"252\":79,\"253\":24,\"254\":24,\"255\":24,\"256\":24,\"257\":24,\"258\":24,\"259\":22,\"260\":22,\"261\":22,\"262\":22,\"263\":22,\"264\":22,\"265\":22,\"266\":2,\"267\":2,\"268\":20,\"269\":22,\"270\":22,\"271\":24,\"272\":2,\"273\":2,\"274\":2,\"275\":22,\"276\":24,\"277\":4,\"278\":4,\"279\":22,\"280\":22,\"281\":22,\"282\":24,\"283\":0,\"284\":0,\"285\":22,\"286\":22,\"287\":22,\"288\":22,\"289\":25,\"290\":22,\"291\":22,\"292\":22,\"293\":22,\"294\":22,\"295\":22,\"296\":22,\"297\":0,\"298\":0,\"299\":22,\"300\":22,\"301\":25,\"302\":1,\"303\":22,\"304\":22,\"305\":22,\"306\":22,\"307\":22,\"308\":22,\"309\":22,\"310\":22,\"311\":1,\"312\":1,\"313\":24,\"314\":24,\"315\":24,\"316\":24,\"317\":24,\"318\":24,\"319\":24,\"320\":22,\"321\":22,\"322\":1,\"323\":39,\"324\":39,\"325\":77,\"326\":2,\"327\":2,\"328\":77,\"329\":37,\"330\":37,\"331\":1,\"332\":1,\"333\":24,\"334\":24,\"335\":37,\"336\":37,\"337\":37,\"338\":37,\"339\":37,\"340\":37,\"341\":37,\"342\":37,\"343\":37,\"344\":37,\"345\":37,\"346\":37,\"347\":37,\"348\":37,\"349\":37,\"350\":37,\"351\":37,\"352\":37,\"353\":37,\"354\":37,\"355\":37,\"356\":37,\"357\":37,\"358\":37,\"359\":37,\"360\":37,\"361\":37,\"362\":37,\"363\":37,\"364\":37,\"365\":0,\"366\":0,\"367\":0,\"368\":36,\"369\":36,\"370\":22,\"371\":22,\"372\":22,\"373\":22,\"374\":22,\"375\":22,\"376\":22,\"377\":22,\"378\":22,\"379\":22,\"380\":22,\"381\":22,\"382\":22,\"383\":0,\"384\":0,\"385\":22,\"386\":22,\"387\":24,\"388\":1,\"389\":1,\"390\":2,\"391\":2,\"392\":2,\"393\":2,\"394\":2,\"395\":2,\"396\":2,\"397\":2,\"398\":2,\"399\":2,\"400\":2,\"401\":2,\"402\":2,\"403\":0,\"404\":0,\"405\":0,\"406\":2,\"407\":2,\"408\":1,\"409\":2,\"410\":2,\"411\":2,\"412\":2,\"413\":2,\"414\":2,\"415\":2,\"416\":2,\"417\":2,\"418\":2,\"419\":2,\"420\":2,\"421\":0,\"422\":2,\"423\":2},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":7},\"end\":{\"line\":138,\"column\":1}},\"locations\":[{\"start\":{\"line\":110,\"column\":7},\"end\":{\"line\":138,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":35},\"end\":{\"line\":137,\"column\":3}},\"locations\":[{\"start\":{\"line\":122,\"column\":35},\"end\":{\"line\":137,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":7},\"end\":{\"line\":163,\"column\":1}},\"locations\":[{\"start\":{\"line\":140,\"column\":7},\"end\":{\"line\":163,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":26},\"end\":{\"line\":162,\"column\":3}},\"locations\":[{\"start\":{\"line\":150,\"column\":26},\"end\":{\"line\":162,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":159,\"loc\":{\"start\":{\"line\":159,\"column\":6},\"end\":{\"line\":161,\"column\":5}},\"locations\":[{\"start\":{\"line\":159,\"column\":6},\"end\":{\"line\":161,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":143,\"loc\":{\"start\":{\"line\":143,\"column\":32},\"end\":{\"line\":148,\"column\":3}},\"locations\":[{\"start\":{\"line\":143,\"column\":32},\"end\":{\"line\":148,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":146,\"loc\":{\"start\":{\"line\":146,\"column\":32},\"end\":{\"line\":146,\"column\":45}},\"locations\":[{\"start\":{\"line\":146,\"column\":32},\"end\":{\"line\":146,\"column\":45}}]},\"7\":{\"type\":\"branch\",\"line\":165,\"loc\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":227,\"column\":1}},\"locations\":[{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":227,\"column\":1}}]},\"8\":{\"type\":\"branch\",\"line\":172,\"loc\":{\"start\":{\"line\":172,\"column\":30},\"end\":{\"line\":225,\"column\":3}},\"locations\":[{\"start\":{\"line\":172,\"column\":30},\"end\":{\"line\":225,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":179,\"loc\":{\"start\":{\"line\":179,\"column\":27},\"end\":{\"line\":196,\"column\":5}},\"locations\":[{\"start\":{\"line\":179,\"column\":27},\"end\":{\"line\":196,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":197,\"loc\":{\"start\":{\"line\":197,\"column\":46},\"end\":{\"line\":201,\"column\":11}},\"locations\":[{\"start\":{\"line\":197,\"column\":46},\"end\":{\"line\":201,\"column\":11}}]},\"11\":{\"type\":\"branch\",\"line\":201,\"loc\":{\"start\":{\"line\":201,\"column\":5},\"end\":{\"line\":223,\"column\":5}},\"locations\":[{\"start\":{\"line\":201,\"column\":5},\"end\":{\"line\":223,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":204,\"loc\":{\"start\":{\"line\":204,\"column\":60},\"end\":{\"line\":204,\"column\":68}},\"locations\":[{\"start\":{\"line\":204,\"column\":60},\"end\":{\"line\":204,\"column\":68}}]},\"13\":{\"type\":\"branch\",\"line\":205,\"loc\":{\"start\":{\"line\":205,\"column\":33},\"end\":{\"line\":211,\"column\":11}},\"locations\":[{\"start\":{\"line\":205,\"column\":33},\"end\":{\"line\":211,\"column\":11}}]},\"14\":{\"type\":\"branch\",\"line\":212,\"loc\":{\"start\":{\"line\":212,\"column\":-1},\"end\":{\"line\":214,\"column\":9}},\"locations\":[{\"start\":{\"line\":212,\"column\":-1},\"end\":{\"line\":214,\"column\":9}}]},\"15\":{\"type\":\"branch\",\"line\":215,\"loc\":{\"start\":{\"line\":215,\"column\":8},\"end\":{\"line\":221,\"column\":9}},\"locations\":[{\"start\":{\"line\":215,\"column\":8},\"end\":{\"line\":221,\"column\":9}}]},\"16\":{\"type\":\"branch\",\"line\":224,\"loc\":{\"start\":{\"line\":224,\"column\":-1},\"end\":{\"line\":225,\"column\":3}},\"locations\":[{\"start\":{\"line\":224,\"column\":-1},\"end\":{\"line\":225,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":226,\"loc\":{\"start\":{\"line\":226,\"column\":-1},\"end\":{\"line\":227,\"column\":1}},\"locations\":[{\"start\":{\"line\":226,\"column\":-1},\"end\":{\"line\":227,\"column\":1}}]},\"18\":{\"type\":\"branch\",\"line\":181,\"loc\":{\"start\":{\"line\":181,\"column\":8},\"end\":{\"line\":191,\"column\":9}},\"locations\":[{\"start\":{\"line\":181,\"column\":8},\"end\":{\"line\":191,\"column\":9}}]},\"19\":{\"type\":\"branch\",\"line\":182,\"loc\":{\"start\":{\"line\":182,\"column\":52},\"end\":{\"line\":182,\"column\":85}},\"locations\":[{\"start\":{\"line\":182,\"column\":52},\"end\":{\"line\":182,\"column\":85}}]},\"20\":{\"type\":\"branch\",\"line\":182,\"loc\":{\"start\":{\"line\":182,\"column\":87},\"end\":{\"line\":189,\"column\":11}},\"locations\":[{\"start\":{\"line\":182,\"column\":87},\"end\":{\"line\":189,\"column\":11}}]},\"21\":{\"type\":\"branch\",\"line\":184,\"loc\":{\"start\":{\"line\":184,\"column\":69},\"end\":{\"line\":186,\"column\":19}},\"locations\":[{\"start\":{\"line\":184,\"column\":69},\"end\":{\"line\":186,\"column\":19}}]},\"22\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":56},\"end\":{\"line\":188,\"column\":13}},\"locations\":[{\"start\":{\"line\":186,\"column\":56},\"end\":{\"line\":188,\"column\":13}}]},\"23\":{\"type\":\"branch\",\"line\":230,\"loc\":{\"start\":{\"line\":230,\"column\":7},\"end\":{\"line\":302,\"column\":1}},\"locations\":[{\"start\":{\"line\":230,\"column\":7},\"end\":{\"line\":302,\"column\":1}}]},\"24\":{\"type\":\"branch\",\"line\":234,\"loc\":{\"start\":{\"line\":234,\"column\":-1},\"end\":{\"line\":290,\"column\":50}},\"locations\":[{\"start\":{\"line\":234,\"column\":-1},\"end\":{\"line\":290,\"column\":50}}]},\"25\":{\"type\":\"branch\",\"line\":260,\"loc\":{\"start\":{\"line\":260,\"column\":-1},\"end\":{\"line\":272,\"column\":30}},\"locations\":[{\"start\":{\"line\":260,\"column\":-1},\"end\":{\"line\":272,\"column\":30}}]},\"26\":{\"type\":\"branch\",\"line\":272,\"loc\":{\"start\":{\"line\":272,\"column\":30},\"end\":{\"line\":275,\"column\":3}},\"locations\":[{\"start\":{\"line\":272,\"column\":30},\"end\":{\"line\":275,\"column\":3}}]},\"27\":{\"type\":\"branch\",\"line\":276,\"loc\":{\"start\":{\"line\":276,\"column\":-1},\"end\":{\"line\":277,\"column\":38}},\"locations\":[{\"start\":{\"line\":276,\"column\":-1},\"end\":{\"line\":277,\"column\":38}}]},\"28\":{\"type\":\"branch\",\"line\":277,\"loc\":{\"start\":{\"line\":277,\"column\":38},\"end\":{\"line\":279,\"column\":3}},\"locations\":[{\"start\":{\"line\":277,\"column\":38},\"end\":{\"line\":279,\"column\":3}}]},\"29\":{\"type\":\"branch\",\"line\":280,\"loc\":{\"start\":{\"line\":280,\"column\":-1},\"end\":{\"line\":283,\"column\":25}},\"locations\":[{\"start\":{\"line\":280,\"column\":-1},\"end\":{\"line\":283,\"column\":25}}]},\"30\":{\"type\":\"branch\",\"line\":283,\"loc\":{\"start\":{\"line\":283,\"column\":25},\"end\":{\"line\":285,\"column\":3}},\"locations\":[{\"start\":{\"line\":283,\"column\":25},\"end\":{\"line\":285,\"column\":3}}]},\"31\":{\"type\":\"branch\",\"line\":286,\"loc\":{\"start\":{\"line\":286,\"column\":-1},\"end\":{\"line\":290,\"column\":50}},\"locations\":[{\"start\":{\"line\":286,\"column\":-1},\"end\":{\"line\":290,\"column\":50}}]},\"32\":{\"type\":\"branch\",\"line\":290,\"loc\":{\"start\":{\"line\":290,\"column\":50},\"end\":{\"line\":290,\"column\":71}},\"locations\":[{\"start\":{\"line\":290,\"column\":50},\"end\":{\"line\":290,\"column\":71}}]},\"33\":{\"type\":\"branch\",\"line\":290,\"loc\":{\"start\":{\"line\":290,\"column\":71},\"end\":{\"line\":290,\"column\":98}},\"locations\":[{\"start\":{\"line\":290,\"column\":71},\"end\":{\"line\":290,\"column\":98}}]},\"34\":{\"type\":\"branch\",\"line\":290,\"loc\":{\"start\":{\"line\":290,\"column\":100},\"end\":{\"line\":301,\"column\":3}},\"locations\":[{\"start\":{\"line\":290,\"column\":100},\"end\":{\"line\":301,\"column\":3}}]},\"35\":{\"type\":\"branch\",\"line\":297,\"loc\":{\"start\":{\"line\":297,\"column\":6},\"end\":{\"line\":299,\"column\":5}},\"locations\":[{\"start\":{\"line\":297,\"column\":6},\"end\":{\"line\":299,\"column\":5}}]},\"36\":{\"type\":\"branch\",\"line\":235,\"loc\":{\"start\":{\"line\":235,\"column\":39},\"end\":{\"line\":242,\"column\":3}},\"locations\":[{\"start\":{\"line\":235,\"column\":39},\"end\":{\"line\":242,\"column\":3}}]},\"37\":{\"type\":\"branch\",\"line\":246,\"loc\":{\"start\":{\"line\":246,\"column\":51},\"end\":{\"line\":256,\"column\":3}},\"locations\":[{\"start\":{\"line\":246,\"column\":51},\"end\":{\"line\":256,\"column\":3}}]},\"38\":{\"type\":\"branch\",\"line\":248,\"loc\":{\"start\":{\"line\":248,\"column\":14},\"end\":{\"line\":248,\"column\":48}},\"locations\":[{\"start\":{\"line\":248,\"column\":14},\"end\":{\"line\":248,\"column\":48}}]},\"39\":{\"type\":\"branch\",\"line\":249,\"loc\":{\"start\":{\"line\":249,\"column\":11},\"end\":{\"line\":254,\"column\":7}},\"locations\":[{\"start\":{\"line\":249,\"column\":11},\"end\":{\"line\":254,\"column\":7}}]},\"40\":{\"type\":\"branch\",\"line\":251,\"loc\":{\"start\":{\"line\":251,\"column\":37},\"end\":{\"line\":251,\"column\":46}},\"locations\":[{\"start\":{\"line\":251,\"column\":37},\"end\":{\"line\":251,\"column\":46}}]},\"41\":{\"type\":\"branch\",\"line\":251,\"loc\":{\"start\":{\"line\":251,\"column\":48},\"end\":{\"line\":253,\"column\":9}},\"locations\":[{\"start\":{\"line\":251,\"column\":48},\"end\":{\"line\":253,\"column\":9}}]},\"42\":{\"type\":\"branch\",\"line\":252,\"loc\":{\"start\":{\"line\":252,\"column\":65},\"end\":{\"line\":252,\"column\":74}},\"locations\":[{\"start\":{\"line\":252,\"column\":65},\"end\":{\"line\":252,\"column\":74}}]},\"43\":{\"type\":\"branch\",\"line\":252,\"loc\":{\"start\":{\"line\":252,\"column\":43},\"end\":{\"line\":252,\"column\":64}},\"locations\":[{\"start\":{\"line\":252,\"column\":43},\"end\":{\"line\":252,\"column\":64}}]},\"44\":{\"type\":\"branch\",\"line\":261,\"loc\":{\"start\":{\"line\":261,\"column\":42},\"end\":{\"line\":263,\"column\":3}},\"locations\":[{\"start\":{\"line\":261,\"column\":42},\"end\":{\"line\":263,\"column\":3}}]},\"45\":{\"type\":\"branch\",\"line\":265,\"loc\":{\"start\":{\"line\":265,\"column\":42},\"end\":{\"line\":270,\"column\":3}},\"locations\":[{\"start\":{\"line\":265,\"column\":42},\"end\":{\"line\":270,\"column\":3}}]},\"46\":{\"type\":\"branch\",\"line\":266,\"loc\":{\"start\":{\"line\":266,\"column\":25},\"end\":{\"line\":266,\"column\":59}},\"locations\":[{\"start\":{\"line\":266,\"column\":25},\"end\":{\"line\":266,\"column\":59}}]},\"47\":{\"type\":\"branch\",\"line\":266,\"loc\":{\"start\":{\"line\":266,\"column\":61},\"end\":{\"line\":268,\"column\":5}},\"locations\":[{\"start\":{\"line\":266,\"column\":61},\"end\":{\"line\":268,\"column\":5}}]},\"48\":{\"type\":\"branch\",\"line\":269,\"loc\":{\"start\":{\"line\":269,\"column\":-1},\"end\":{\"line\":270,\"column\":3}},\"locations\":[{\"start\":{\"line\":269,\"column\":-1},\"end\":{\"line\":270,\"column\":3}}]},\"49\":{\"type\":\"branch\",\"line\":304,\"loc\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":311,\"column\":1}},\"locations\":[{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":311,\"column\":1}}]},\"50\":{\"type\":\"branch\",\"line\":308,\"loc\":{\"start\":{\"line\":308,\"column\":12},\"end\":{\"line\":308,\"column\":44}},\"locations\":[{\"start\":{\"line\":308,\"column\":12},\"end\":{\"line\":308,\"column\":44}}]},\"51\":{\"type\":\"branch\",\"line\":309,\"loc\":{\"start\":{\"line\":309,\"column\":9},\"end\":{\"line\":309,\"column\":56}},\"locations\":[{\"start\":{\"line\":309,\"column\":9},\"end\":{\"line\":309,\"column\":56}}]},\"52\":{\"type\":\"branch\",\"line\":310,\"loc\":{\"start\":{\"line\":310,\"column\":12},\"end\":{\"line\":310,\"column\":63}},\"locations\":[{\"start\":{\"line\":310,\"column\":12},\"end\":{\"line\":310,\"column\":63}}]},\"53\":{\"type\":\"branch\",\"line\":313,\"loc\":{\"start\":{\"line\":313,\"column\":7},\"end\":{\"line\":322,\"column\":1}},\"locations\":[{\"start\":{\"line\":313,\"column\":7},\"end\":{\"line\":322,\"column\":1}}]},\"54\":{\"type\":\"branch\",\"line\":321,\"loc\":{\"start\":{\"line\":321,\"column\":-1},\"end\":{\"line\":322,\"column\":1}},\"locations\":[{\"start\":{\"line\":321,\"column\":-1},\"end\":{\"line\":322,\"column\":1}}]},\"55\":{\"type\":\"branch\",\"line\":324,\"loc\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":331,\"column\":1}},\"locations\":[{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":331,\"column\":1}}]},\"56\":{\"type\":\"branch\",\"line\":325,\"loc\":{\"start\":{\"line\":325,\"column\":43},\"end\":{\"line\":329,\"column\":3}},\"locations\":[{\"start\":{\"line\":325,\"column\":43},\"end\":{\"line\":329,\"column\":3}}]},\"57\":{\"type\":\"branch\",\"line\":326,\"loc\":{\"start\":{\"line\":326,\"column\":64},\"end\":{\"line\":328,\"column\":5}},\"locations\":[{\"start\":{\"line\":326,\"column\":64},\"end\":{\"line\":328,\"column\":5}}]},\"58\":{\"type\":\"branch\",\"line\":330,\"loc\":{\"start\":{\"line\":330,\"column\":-1},\"end\":{\"line\":331,\"column\":1}},\"locations\":[{\"start\":{\"line\":330,\"column\":-1},\"end\":{\"line\":331,\"column\":1}}]},\"59\":{\"type\":\"branch\",\"line\":333,\"loc\":{\"start\":{\"line\":333,\"column\":7},\"end\":{\"line\":388,\"column\":1}},\"locations\":[{\"start\":{\"line\":333,\"column\":7},\"end\":{\"line\":388,\"column\":1}}]},\"60\":{\"type\":\"branch\",\"line\":335,\"loc\":{\"start\":{\"line\":335,\"column\":47},\"end\":{\"line\":370,\"column\":3}},\"locations\":[{\"start\":{\"line\":335,\"column\":47},\"end\":{\"line\":370,\"column\":3}}]},\"61\":{\"type\":\"branch\",\"line\":365,\"loc\":{\"start\":{\"line\":365,\"column\":-1},\"end\":{\"line\":365,\"column\":13}},\"locations\":[{\"start\":{\"line\":365,\"column\":-1},\"end\":{\"line\":365,\"column\":13}}]},\"62\":{\"type\":\"branch\",\"line\":365,\"loc\":{\"start\":{\"line\":365,\"column\":6},\"end\":{\"line\":368,\"column\":5}},\"locations\":[{\"start\":{\"line\":365,\"column\":6},\"end\":{\"line\":368,\"column\":5}}]},\"63\":{\"type\":\"branch\",\"line\":369,\"loc\":{\"start\":{\"line\":369,\"column\":-1},\"end\":{\"line\":370,\"column\":3}},\"locations\":[{\"start\":{\"line\":369,\"column\":-1},\"end\":{\"line\":370,\"column\":3}}]},\"64\":{\"type\":\"branch\",\"line\":371,\"loc\":{\"start\":{\"line\":371,\"column\":-1},\"end\":{\"line\":387,\"column\":3}},\"locations\":[{\"start\":{\"line\":371,\"column\":-1},\"end\":{\"line\":387,\"column\":3}}]},\"65\":{\"type\":\"branch\",\"line\":383,\"loc\":{\"start\":{\"line\":383,\"column\":6},\"end\":{\"line\":385,\"column\":5}},\"locations\":[{\"start\":{\"line\":383,\"column\":6},\"end\":{\"line\":385,\"column\":5}}]},\"66\":{\"type\":\"branch\",\"line\":342,\"loc\":{\"start\":{\"line\":342,\"column\":52},\"end\":{\"line\":342,\"column\":84}},\"locations\":[{\"start\":{\"line\":342,\"column\":52},\"end\":{\"line\":342,\"column\":84}}]},\"67\":{\"type\":\"branch\",\"line\":343,\"loc\":{\"start\":{\"line\":343,\"column\":38},\"end\":{\"line\":343,\"column\":61}},\"locations\":[{\"start\":{\"line\":343,\"column\":38},\"end\":{\"line\":343,\"column\":61}}]},\"68\":{\"type\":\"branch\",\"line\":343,\"loc\":{\"start\":{\"line\":343,\"column\":67},\"end\":{\"line\":343,\"column\":80}},\"locations\":[{\"start\":{\"line\":343,\"column\":67},\"end\":{\"line\":343,\"column\":80}}]},\"69\":{\"type\":\"branch\",\"line\":344,\"loc\":{\"start\":{\"line\":344,\"column\":40},\"end\":{\"line\":344,\"column\":90}},\"locations\":[{\"start\":{\"line\":344,\"column\":40},\"end\":{\"line\":344,\"column\":90}}]},\"70\":{\"type\":\"branch\",\"line\":344,\"loc\":{\"start\":{\"line\":344,\"column\":64},\"end\":{\"line\":344,\"column\":90}},\"locations\":[{\"start\":{\"line\":344,\"column\":64},\"end\":{\"line\":344,\"column\":90}}]},\"71\":{\"type\":\"branch\",\"line\":371,\"loc\":{\"start\":{\"line\":371,\"column\":48},\"end\":{\"line\":371,\"column\":71}},\"locations\":[{\"start\":{\"line\":371,\"column\":48},\"end\":{\"line\":371,\"column\":71}}]},\"72\":{\"type\":\"branch\",\"line\":390,\"loc\":{\"start\":{\"line\":390,\"column\":7},\"end\":{\"line\":408,\"column\":1}},\"locations\":[{\"start\":{\"line\":390,\"column\":7},\"end\":{\"line\":408,\"column\":1}}]},\"73\":{\"type\":\"branch\",\"line\":403,\"loc\":{\"start\":{\"line\":403,\"column\":4},\"end\":{\"line\":406,\"column\":3}},\"locations\":[{\"start\":{\"line\":403,\"column\":4},\"end\":{\"line\":406,\"column\":3}}]},\"74\":{\"type\":\"branch\",\"line\":391,\"loc\":{\"start\":{\"line\":391,\"column\":30},\"end\":{\"line\":394,\"column\":4}},\"locations\":[{\"start\":{\"line\":391,\"column\":30},\"end\":{\"line\":394,\"column\":4}}]},\"75\":{\"type\":\"branch\",\"line\":393,\"loc\":{\"start\":{\"line\":393,\"column\":55},\"end\":{\"line\":393,\"column\":66}},\"locations\":[{\"start\":{\"line\":393,\"column\":55},\"end\":{\"line\":393,\"column\":66}}]},\"76\":{\"type\":\"branch\",\"line\":396,\"loc\":{\"start\":{\"line\":396,\"column\":47},\"end\":{\"line\":396,\"column\":84}},\"locations\":[{\"start\":{\"line\":396,\"column\":47},\"end\":{\"line\":396,\"column\":84}}]},\"77\":{\"type\":\"branch\",\"line\":410,\"loc\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":424,\"column\":1}},\"locations\":[{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":424,\"column\":1}}]},\"78\":{\"type\":\"branch\",\"line\":414,\"loc\":{\"start\":{\"line\":414,\"column\":48},\"end\":{\"line\":415,\"column\":47}},\"locations\":[{\"start\":{\"line\":414,\"column\":48},\"end\":{\"line\":415,\"column\":47}}]},\"79\":{\"type\":\"branch\",\"line\":415,\"loc\":{\"start\":{\"line\":415,\"column\":47},\"end\":{\"line\":416,\"column\":49}},\"locations\":[{\"start\":{\"line\":415,\"column\":47},\"end\":{\"line\":416,\"column\":49}}]},\"80\":{\"type\":\"branch\",\"line\":416,\"loc\":{\"start\":{\"line\":416,\"column\":49},\"end\":{\"line\":417,\"column\":40}},\"locations\":[{\"start\":{\"line\":416,\"column\":49},\"end\":{\"line\":417,\"column\":40}}]},\"81\":{\"type\":\"branch\",\"line\":417,\"loc\":{\"start\":{\"line\":417,\"column\":40},\"end\":{\"line\":418,\"column\":39}},\"locations\":[{\"start\":{\"line\":417,\"column\":40},\"end\":{\"line\":418,\"column\":39}}]},\"82\":{\"type\":\"branch\",\"line\":418,\"loc\":{\"start\":{\"line\":418,\"column\":39},\"end\":{\"line\":419,\"column\":46}},\"locations\":[{\"start\":{\"line\":418,\"column\":39},\"end\":{\"line\":419,\"column\":46}}]},\"83\":{\"type\":\"branch\",\"line\":419,\"loc\":{\"start\":{\"line\":419,\"column\":46},\"end\":{\"line\":420,\"column\":45}},\"locations\":[{\"start\":{\"line\":419,\"column\":46},\"end\":{\"line\":420,\"column\":45}}]},\"84\":{\"type\":\"branch\",\"line\":420,\"loc\":{\"start\":{\"line\":420,\"column\":45},\"end\":{\"line\":421,\"column\":52}},\"locations\":[{\"start\":{\"line\":420,\"column\":45},\"end\":{\"line\":421,\"column\":52}}]},\"85\":{\"type\":\"branch\",\"line\":421,\"loc\":{\"start\":{\"line\":421,\"column\":52},\"end\":{\"line\":422,\"column\":51}},\"locations\":[{\"start\":{\"line\":421,\"column\":52},\"end\":{\"line\":422,\"column\":51}}]}},\"b\":{\"0\":[24],\"1\":[0],\"2\":[22],\"3\":[9],\"4\":[0],\"5\":[9],\"6\":[18],\"7\":[37],\"8\":[197],\"9\":[196],\"10\":[9],\"11\":[188],\"12\":[187],\"13\":[1],\"14\":[187],\"15\":[0],\"16\":[196],\"17\":[36],\"18\":[162],\"19\":[28],\"20\":[28],\"21\":[0],\"22\":[0],\"23\":[25],\"24\":[24],\"25\":[22],\"26\":[2],\"27\":[22],\"28\":[4],\"29\":[22],\"30\":[0],\"31\":[22],\"32\":[0],\"33\":[0],\"34\":[22],\"35\":[0],\"36\":[24],\"37\":[24],\"38\":[163],\"39\":[161],\"40\":[80],\"41\":[79],\"42\":[4],\"43\":[113],\"44\":[22],\"45\":[22],\"46\":[2],\"47\":[2],\"48\":[20],\"49\":[22],\"50\":[22],\"51\":[1],\"52\":[1],\"53\":[24],\"54\":[22],\"55\":[39],\"56\":[77],\"57\":[2],\"58\":[37],\"59\":[24],\"60\":[37],\"61\":[36],\"62\":[0],\"63\":[36],\"64\":[22],\"65\":[0],\"66\":[196],\"67\":[196],\"68\":[9],\"69\":[196],\"70\":[28],\"71\":[35],\"72\":[2],\"73\":[0],\"74\":[2],\"75\":[0],\"76\":[2],\"77\":[2],\"78\":[0],\"79\":[0],\"80\":[0],\"81\":[0],\"82\":[0],\"83\":[0],\"84\":[0],\"85\":[0]},\"fnMap\":{\"0\":{\"name\":\"generateJsonInterfaces\",\"decl\":{\"start\":{\"line\":110,\"column\":7},\"end\":{\"line\":138,\"column\":1}},\"loc\":{\"start\":{\"line\":110,\"column\":7},\"end\":{\"line\":138,\"column\":1}},\"line\":110},\"1\":{\"name\":\"generateEnums\",\"decl\":{\"start\":{\"line\":140,\"column\":7},\"end\":{\"line\":163,\"column\":1}},\"loc\":{\"start\":{\"line\":140,\"column\":7},\"end\":{\"line\":163,\"column\":1}},\"line\":140},\"2\":{\"name\":\"processFields\",\"decl\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":227,\"column\":1}},\"loc\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":227,\"column\":1}},\"line\":165},\"3\":{\"name\":\"codegen\",\"decl\":{\"start\":{\"line\":230,\"column\":7},\"end\":{\"line\":302,\"column\":1}},\"loc\":{\"start\":{\"line\":230,\"column\":7},\"end\":{\"line\":302,\"column\":1}},\"line\":230},\"4\":{\"name\":\"getChaintypes\",\"decl\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":311,\"column\":1}},\"loc\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":311,\"column\":1}},\"line\":304},\"5\":{\"name\":\"generateSchemaModels\",\"decl\":{\"start\":{\"line\":313,\"column\":7},\"end\":{\"line\":322,\"column\":1}},\"loc\":{\"start\":{\"line\":313,\"column\":7},\"end\":{\"line\":322,\"column\":1}},\"line\":313},\"6\":{\"name\":\"validateEntityName\",\"decl\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":331,\"column\":1}},\"loc\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":331,\"column\":1}},\"line\":324},\"7\":{\"name\":\"generateModels\",\"decl\":{\"start\":{\"line\":333,\"column\":7},\"end\":{\"line\":388,\"column\":1}},\"loc\":{\"start\":{\"line\":333,\"column\":7},\"end\":{\"line\":388,\"column\":1}},\"line\":333},\"8\":{\"name\":\"generateDatasourceTemplates\",\"decl\":{\"start\":{\"line\":390,\"column\":7},\"end\":{\"line\":408,\"column\":1}},\"loc\":{\"start\":{\"line\":390,\"column\":7},\"end\":{\"line\":408,\"column\":1}},\"line\":390},\"9\":{\"name\":\"hasParameters\",\"decl\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":424,\"column\":1}},\"loc\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":424,\"column\":1}},\"line\":410}},\"f\":{\"0\":24,\"1\":22,\"2\":37,\"3\":25,\"4\":22,\"5\":24,\"6\":39,\"7\":24,\"8\":2,\"9\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/deploy-controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":34}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":60}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":35}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":26}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":90}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":8}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":21}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":18}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":20}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":26}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":20}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":19}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":29}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":35}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":27}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":25}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":18}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":54}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":67}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":45}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":18}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":50}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":23}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":17}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":12}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":5}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":39}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":14}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":22}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":20}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":18}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":28}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":15}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":27}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":36}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":13}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":32}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":7}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":60}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":71}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":7}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":21}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":19}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":45}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":39}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":15}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":28}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":6}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":31}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":15}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":57}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":3}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":1}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":40}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":14}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":22}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":20}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":23}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":13}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":20}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":7}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":48}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":91}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":6}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":29}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":15}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":49}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":3}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":39}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":14}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":22}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":20}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":23}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":13}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":20}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":7}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":50}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":83}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":6}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":29}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":15}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":51}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":3}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":1}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":39}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":14}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":22}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":20}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":19}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":13}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":20}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":7}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":79}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":86}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":6}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":32}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":15}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":55}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":3}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":1}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":35}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":20}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":14}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":22}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":14}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":14}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":29}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":38}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":7}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":78}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":67}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":6}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":96}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":15}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":46}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":3}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":1}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":39}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":14}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":22}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":19}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":20}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":18}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":23}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":27}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":36}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":13}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":18}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":7}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":47}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":83}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":7}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":21}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":40}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":39}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":15}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":28}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":6}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":15}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":63}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":3}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":1}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":0}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":112}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":7}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":116}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":0}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":29}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":76}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":5}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":0}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":20}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":15}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":51}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":3}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":1}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":0}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":81}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":7}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":91}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":20}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":15}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":57}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":3}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":1}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":0}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":98}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":92}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":1}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":0}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":119}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":7}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":69}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":86}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":6}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":20}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":15}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":43}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":3}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":1}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":0}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":63}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":53}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":1}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":0}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":31}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":18}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":19}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":18}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":1}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":0}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":86}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":45}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":0}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":59}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":65}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":23}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":49}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":120}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":50}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":7}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":5}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":5}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":0}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":16}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":1}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":0}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":70}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":3}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":64}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":67}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":62}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":0}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":107}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":90}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":86}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":75}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":77}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":26}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":90}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":100}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":102}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":96}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":39}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":82}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":22}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":7}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":47}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":75}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":22}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":7}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":50}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":106}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":22}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":7}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":110}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":0}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":17}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":88}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":98}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":104}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":106}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":86}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":0}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":32}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":16}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":95}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":22}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":6}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":4}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":0}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":0}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":80}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":10}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":17}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":35}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":27}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":49}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":30}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":16}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":40}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":46}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":52}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":53}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":56}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":66}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":72}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":8}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":6}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":43}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":7}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":18}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":40}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":10}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":9}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":8}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":4}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":1}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":0}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":98}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":10}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":32}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":44}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":45}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":113}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":38}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":3}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":1}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":0}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":0}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":118}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":50}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":0}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":39}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":27}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":15}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":23}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":26}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":21}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":19}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":24}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":47}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":18}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":23}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":6}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":66}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":10}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":46}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":15}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":23}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":21}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":19}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":24}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":22}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":47}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":18}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":23}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":20}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":13}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":7}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":0}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":27}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":55}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":54}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":44}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":49}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":57}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":53}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":46}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":61}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":47}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":79}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":99}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":103}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":9}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":5}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":3}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":26}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":5,\"23\":5,\"24\":5,\"25\":5,\"26\":0,\"27\":0,\"28\":5,\"29\":5,\"30\":5,\"31\":5,\"32\":5,\"33\":5,\"34\":1,\"35\":1,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":1,\"63\":1,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":1,\"80\":1,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":1,\"97\":1,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":1,\"114\":1,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":1,\"132\":1,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":1,\"158\":1,\"159\":5,\"160\":5,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":5,\"168\":5,\"169\":5,\"170\":5,\"171\":1,\"172\":1,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":1,\"182\":0,\"183\":0,\"184\":0,\"185\":1,\"186\":1,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":1,\"197\":3,\"198\":3,\"199\":3,\"200\":1,\"201\":1,\"202\":1,\"203\":1,\"204\":1,\"205\":1,\"206\":1,\"207\":3,\"208\":3,\"209\":3,\"210\":3,\"211\":6,\"212\":6,\"213\":6,\"214\":6,\"215\":4,\"216\":4,\"217\":6,\"218\":3,\"219\":3,\"220\":3,\"221\":3,\"222\":1,\"223\":1,\"224\":1,\"225\":1,\"226\":1,\"227\":1,\"228\":1,\"229\":1,\"230\":1,\"231\":1,\"232\":1,\"233\":1,\"234\":1,\"235\":1,\"236\":1,\"237\":1,\"238\":1,\"239\":1,\"240\":1,\"241\":1,\"242\":1,\"243\":1,\"244\":1,\"245\":1,\"246\":1,\"247\":1,\"248\":1,\"249\":1,\"250\":1,\"251\":1,\"252\":1,\"253\":1,\"254\":1,\"255\":1,\"256\":1,\"257\":1,\"258\":1,\"259\":1,\"260\":1,\"261\":1,\"262\":1,\"263\":1,\"264\":1,\"265\":1,\"266\":1,\"267\":1,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":0,\"280\":0,\"281\":0,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":0,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":1,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":1,\"305\":1,\"306\":1,\"307\":0,\"308\":0,\"309\":0,\"310\":0,\"311\":0,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":0,\"333\":0,\"334\":0,\"335\":0,\"336\":0,\"337\":0,\"338\":0,\"339\":0,\"340\":0,\"341\":0,\"342\":0,\"343\":0,\"344\":0,\"345\":0,\"346\":0,\"347\":0,\"348\":0,\"349\":0,\"350\":0,\"351\":0,\"352\":0,\"353\":0,\"354\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"locations\":[{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":34,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":17},\"end\":{\"line\":28,\"column\":3}},\"locations\":[{\"start\":{\"line\":26,\"column\":17},\"end\":{\"line\":28,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":159,\"loc\":{\"start\":{\"line\":159,\"column\":7},\"end\":{\"line\":171,\"column\":1}},\"locations\":[{\"start\":{\"line\":159,\"column\":7},\"end\":{\"line\":171,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":162,\"loc\":{\"start\":{\"line\":162,\"column\":-1},\"end\":{\"line\":168,\"column\":11}},\"locations\":[{\"start\":{\"line\":162,\"column\":-1},\"end\":{\"line\":168,\"column\":11}}]},\"4\":{\"type\":\"branch\",\"line\":198,\"loc\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":200,\"column\":1}},\"locations\":[{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":200,\"column\":1}}]},\"5\":{\"type\":\"branch\",\"line\":199,\"loc\":{\"start\":{\"line\":199,\"column\":36},\"end\":{\"line\":199,\"column\":51}},\"locations\":[{\"start\":{\"line\":199,\"column\":36},\"end\":{\"line\":199,\"column\":51}}]},\"6\":{\"type\":\"branch\",\"line\":208,\"loc\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":222,\"column\":1}},\"locations\":[{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":222,\"column\":1}}]},\"7\":{\"type\":\"branch\",\"line\":211,\"loc\":{\"start\":{\"line\":211,\"column\":43},\"end\":{\"line\":219,\"column\":3}},\"locations\":[{\"start\":{\"line\":211,\"column\":43},\"end\":{\"line\":219,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":215,\"loc\":{\"start\":{\"line\":215,\"column\":119},\"end\":{\"line\":217,\"column\":7}},\"locations\":[{\"start\":{\"line\":215,\"column\":119},\"end\":{\"line\":217,\"column\":7}}]}},\"b\":{\"0\":[5],\"1\":[0],\"2\":[5],\"3\":[0],\"4\":[3],\"5\":[6],\"6\":[3],\"7\":[6],\"8\":[4]},\"fnMap\":{\"0\":{\"name\":\"getAxiosInstance\",\"decl\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"loc\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"line\":23},\"1\":{\"name\":\"createDeployment\",\"decl\":{\"start\":{\"line\":36,\"column\":7},\"end\":{\"line\":62,\"column\":1}},\"loc\":{\"start\":{\"line\":36,\"column\":7},\"end\":{\"line\":62,\"column\":1}},\"line\":36},\"2\":{\"name\":\"promoteDeployment\",\"decl\":{\"start\":{\"line\":64,\"column\":7},\"end\":{\"line\":79,\"column\":1}},\"loc\":{\"start\":{\"line\":64,\"column\":7},\"end\":{\"line\":79,\"column\":1}},\"line\":64},\"3\":{\"name\":\"deleteDeployment\",\"decl\":{\"start\":{\"line\":81,\"column\":7},\"end\":{\"line\":96,\"column\":1}},\"loc\":{\"start\":{\"line\":81,\"column\":7},\"end\":{\"line\":96,\"column\":1}},\"line\":81},\"4\":{\"name\":\"deploymentStatus\",\"decl\":{\"start\":{\"line\":98,\"column\":7},\"end\":{\"line\":113,\"column\":1}},\"loc\":{\"start\":{\"line\":98,\"column\":7},\"end\":{\"line\":113,\"column\":1}},\"line\":98},\"5\":{\"name\":\"projectsInfo\",\"decl\":{\"start\":{\"line\":115,\"column\":7},\"end\":{\"line\":131,\"column\":1}},\"loc\":{\"start\":{\"line\":115,\"column\":7},\"end\":{\"line\":131,\"column\":1}},\"line\":115},\"6\":{\"name\":\"updateDeployment\",\"decl\":{\"start\":{\"line\":133,\"column\":7},\"end\":{\"line\":157,\"column\":1}},\"loc\":{\"start\":{\"line\":133,\"column\":7},\"end\":{\"line\":157,\"column\":1}},\"line\":133},\"7\":{\"name\":\"ipfsCID_validate\",\"decl\":{\"start\":{\"line\":159,\"column\":7},\"end\":{\"line\":171,\"column\":1}},\"loc\":{\"start\":{\"line\":159,\"column\":7},\"end\":{\"line\":171,\"column\":1}},\"line\":159},\"8\":{\"name\":\"dictionaryEndpoints\",\"decl\":{\"start\":{\"line\":173,\"column\":7},\"end\":{\"line\":181,\"column\":1}},\"loc\":{\"start\":{\"line\":173,\"column\":7},\"end\":{\"line\":181,\"column\":1}},\"line\":173},\"9\":{\"name\":\"processEndpoints\",\"decl\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":185,\"column\":1}},\"loc\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":185,\"column\":1}},\"line\":183},\"10\":{\"name\":\"imageVersions\",\"decl\":{\"start\":{\"line\":187,\"column\":7},\"end\":{\"line\":196,\"column\":1}},\"loc\":{\"start\":{\"line\":187,\"column\":7},\"end\":{\"line\":196,\"column\":1}},\"line\":187},\"11\":{\"name\":\"splitEndpoints\",\"decl\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":200,\"column\":1}},\"loc\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":200,\"column\":1}},\"line\":198},\"12\":{\"name\":\"splitMultichainDataFields\",\"decl\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":222,\"column\":1}},\"loc\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":222,\"column\":1}},\"line\":208},\"13\":{\"name\":\"generateDeploymentChain\",\"decl\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":294,\"column\":1}},\"loc\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":294,\"column\":1}},\"line\":269},\"14\":{\"name\":\"generateAdvancedQueryOptions\",\"decl\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":304,\"column\":1}},\"loc\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":304,\"column\":1}},\"line\":296},\"15\":{\"name\":\"executeProjectDeployment\",\"decl\":{\"start\":{\"line\":307,\"column\":7},\"end\":{\"line\":355,\"column\":1}},\"loc\":{\"start\":{\"line\":307,\"column\":7},\"end\":{\"line\":355,\"column\":1}},\"line\":307}},\"f\":{\"0\":5,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":5,\"8\":0,\"9\":0,\"10\":0,\"11\":3,\"12\":3,\"13\":0,\"14\":0,\"15\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/generate-controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/generate-controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":115}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":49}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":8}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":25}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":22}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":28}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":22}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":20}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":32}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":94}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":26}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":43}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":37}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":54}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":54}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":71}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":67}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":8}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":16}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":17}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":32}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":24}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":19}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":14}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":18}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":27}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":15}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":18}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":18}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":23}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":15}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":30}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":103}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":40}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":53}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":32}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":60}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":55}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":1}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":93}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":58}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":35}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":59}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":54}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":11}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":3}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":39}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":56}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":7}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":78}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":102}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":20}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":30}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":59}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":5}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":1}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":74}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":36}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":21}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":50}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":12}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":36}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":16}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":6}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":5}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":1}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":82}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":31}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":37}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":31}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":48}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":42}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":17}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":32}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":21}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":43}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":5}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":50}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":42}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":55}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":5}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":0}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":25}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":1}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":86}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":94}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":28}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":19}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":69}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":5}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":34}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":10}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":30}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":3}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":47}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":39}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":37}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":58}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":1}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":0}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":120}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":10}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":49}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":51}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":4}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":1}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":96}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":78}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":1}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":35}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":23}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":18}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":62}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":26}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":54}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":0}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":39}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":42}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":59}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":74}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":15}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":28}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":8}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":6}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":36}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":5}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":0}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":39}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":42}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":63}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":85}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":15}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":31}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":8}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":6}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":36}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":5}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":0}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":27}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":1}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":0}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":70}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":60}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":90}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":56}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":0}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":11}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":41}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":40}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":14}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":24}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":64}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":6}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":70}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":14}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":44}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":33}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":5}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":5}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":1}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":0}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":76}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":60}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":85}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":77}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":37}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":5}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":65}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":0}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":10}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":41}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":37}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":14}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":19}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":61}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":6}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":19}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":14}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":39}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":34}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":6}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":4}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":1}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":0}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":21}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":86}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":29}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":31}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":40}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":17}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":31}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":18}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":58}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":3}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":0}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":25}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":30}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":3}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":0}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":50}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":42}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":50}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":78}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":33}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":70}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":57}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":21}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":7}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":7}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":0}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":25}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":84}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":5}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":5}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":0}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":27}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":1}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":75}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":31}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":27}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":22}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":47}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":32}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":93}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":62}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":28}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":33}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":33}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":55}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":9}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":9}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":5}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":3}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":0}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":24}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":1}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":0}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":36}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":17}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":39}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":6}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":27}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":30}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":2}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":0}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":41}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":48}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":54}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":17}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":30}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":33}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":70}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":103}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":0}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":10}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":75}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":84}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":4}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":1}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":0}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":99}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":38}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":41}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":0}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":13}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":32}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":57}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":78}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":6}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":34}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":48}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":41}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":79}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":9}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":43}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":89}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":9}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":9}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":7}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":0}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":45}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":2}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":0}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":91}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":38}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":41}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":0}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":31}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":20}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":41}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":88}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":6}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":21}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":91}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":0}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":64}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":27}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":31}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":9}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":38}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":49}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":7}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":40}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":61}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":7}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":7}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":0}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":45}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":2}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":0}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":80}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":87}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":41}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":1}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":0}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":78}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":67}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":59}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":55}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":10}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":69}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":3}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":1}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":41}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":23}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":23}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":30}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":18}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":52}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":0}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":109}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":65}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":95}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":0}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":68}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":1}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":43}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":23}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":23}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":32}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":18}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":54}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":68}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":40}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":41}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":34}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":25}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":53}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":10}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":24}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":3}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":96}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":1}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":0}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":116}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":41}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":38}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":0}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":29}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":19}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":56}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":20}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":51}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":7}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":5}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":0}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":29}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":19}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":60}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":21}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":46}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":7}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":5}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":0}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":10}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":18}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":23}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":4}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":1}},\"404\":{\"start\":{\"line\":405,\"column\":0},\"end\":{\"line\":405,\"column\":0}},\"405\":{\"start\":{\"line\":406,\"column\":0},\"end\":{\"line\":406,\"column\":39}},\"406\":{\"start\":{\"line\":407,\"column\":0},\"end\":{\"line\":407,\"column\":56}},\"407\":{\"start\":{\"line\":408,\"column\":0},\"end\":{\"line\":408,\"column\":22}},\"408\":{\"start\":{\"line\":409,\"column\":0},\"end\":{\"line\":409,\"column\":17}},\"409\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":410,\"column\":18}},\"410\":{\"start\":{\"line\":411,\"column\":0},\"end\":{\"line\":411,\"column\":67}},\"411\":{\"start\":{\"line\":412,\"column\":0},\"end\":{\"line\":412,\"column\":0}},\"412\":{\"start\":{\"line\":413,\"column\":0},\"end\":{\"line\":413,\"column\":40}},\"413\":{\"start\":{\"line\":414,\"column\":0},\"end\":{\"line\":414,\"column\":7}},\"414\":{\"start\":{\"line\":415,\"column\":0},\"end\":{\"line\":415,\"column\":118}},\"415\":{\"start\":{\"line\":416,\"column\":0},\"end\":{\"line\":416,\"column\":14}},\"416\":{\"start\":{\"line\":417,\"column\":0},\"end\":{\"line\":417,\"column\":25}},\"417\":{\"start\":{\"line\":418,\"column\":0},\"end\":{\"line\":418,\"column\":8}},\"418\":{\"start\":{\"line\":419,\"column\":0},\"end\":{\"line\":419,\"column\":27}},\"419\":{\"start\":{\"line\":420,\"column\":0},\"end\":{\"line\":420,\"column\":7}},\"420\":{\"start\":{\"line\":421,\"column\":0},\"end\":{\"line\":421,\"column\":106}},\"421\":{\"start\":{\"line\":422,\"column\":0},\"end\":{\"line\":422,\"column\":15}},\"422\":{\"start\":{\"line\":423,\"column\":0},\"end\":{\"line\":423,\"column\":74}},\"423\":{\"start\":{\"line\":424,\"column\":0},\"end\":{\"line\":424,\"column\":3}},\"424\":{\"start\":{\"line\":425,\"column\":0},\"end\":{\"line\":425,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":99,\"48\":99,\"49\":99,\"50\":1,\"51\":1,\"52\":4,\"53\":4,\"54\":4,\"55\":0,\"56\":0,\"57\":4,\"58\":4,\"59\":1,\"60\":1,\"61\":3,\"62\":3,\"63\":3,\"64\":3,\"65\":3,\"66\":3,\"67\":2,\"68\":4,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":4,\"74\":1,\"75\":8,\"76\":8,\"77\":8,\"78\":8,\"79\":20,\"80\":20,\"81\":20,\"82\":20,\"83\":8,\"84\":8,\"85\":1,\"86\":1,\"87\":2,\"88\":2,\"89\":2,\"90\":2,\"91\":2,\"92\":2,\"93\":2,\"94\":2,\"95\":2,\"96\":2,\"97\":2,\"98\":2,\"99\":2,\"100\":2,\"101\":2,\"102\":2,\"103\":2,\"104\":1,\"105\":6,\"106\":6,\"107\":6,\"108\":2,\"109\":1,\"110\":1,\"111\":1,\"112\":6,\"113\":4,\"114\":4,\"115\":6,\"116\":1,\"117\":4,\"118\":4,\"119\":4,\"120\":4,\"121\":4,\"122\":1,\"123\":48,\"124\":48,\"125\":48,\"126\":48,\"127\":48,\"128\":48,\"129\":1,\"130\":29,\"131\":29,\"132\":29,\"133\":1,\"134\":7,\"135\":7,\"136\":7,\"137\":7,\"138\":7,\"139\":7,\"140\":7,\"141\":7,\"142\":8,\"143\":8,\"144\":8,\"145\":8,\"146\":8,\"147\":8,\"148\":8,\"149\":8,\"150\":7,\"151\":7,\"152\":7,\"153\":8,\"154\":8,\"155\":8,\"156\":8,\"157\":8,\"158\":8,\"159\":8,\"160\":8,\"161\":7,\"162\":7,\"163\":7,\"164\":7,\"165\":1,\"166\":2,\"167\":2,\"168\":2,\"169\":2,\"170\":2,\"171\":2,\"172\":2,\"173\":2,\"174\":2,\"175\":2,\"176\":2,\"177\":2,\"178\":2,\"179\":2,\"180\":2,\"181\":2,\"182\":2,\"183\":2,\"184\":2,\"185\":1,\"186\":5,\"187\":5,\"188\":5,\"189\":12,\"190\":6,\"191\":5,\"192\":5,\"193\":5,\"194\":5,\"195\":5,\"196\":5,\"197\":5,\"198\":5,\"199\":5,\"200\":5,\"201\":5,\"202\":5,\"203\":5,\"204\":5,\"205\":5,\"206\":5,\"207\":5,\"208\":1,\"209\":1,\"210\":1,\"211\":12,\"212\":12,\"213\":12,\"214\":12,\"215\":12,\"216\":12,\"217\":2,\"218\":2,\"219\":10,\"220\":12,\"221\":1,\"222\":1,\"223\":9,\"224\":9,\"225\":9,\"226\":13,\"227\":13,\"228\":45,\"229\":45,\"230\":10,\"231\":10,\"232\":10,\"233\":13,\"234\":13,\"235\":13,\"236\":3,\"237\":3,\"238\":9,\"239\":9,\"240\":9,\"241\":9,\"242\":14,\"243\":14,\"244\":14,\"245\":14,\"246\":14,\"247\":14,\"248\":48,\"249\":48,\"250\":48,\"251\":38,\"252\":114,\"253\":62,\"254\":62,\"255\":38,\"256\":38,\"257\":48,\"258\":14,\"259\":14,\"260\":14,\"261\":1,\"262\":1,\"263\":1,\"264\":1,\"265\":1,\"266\":1,\"267\":1,\"268\":1,\"269\":1,\"270\":7,\"271\":7,\"272\":7,\"273\":7,\"274\":7,\"275\":7,\"276\":7,\"277\":7,\"278\":7,\"279\":7,\"280\":7,\"281\":7,\"282\":7,\"283\":7,\"284\":1,\"285\":1,\"286\":6,\"287\":6,\"288\":6,\"289\":6,\"290\":6,\"291\":6,\"292\":6,\"293\":6,\"294\":6,\"295\":4,\"296\":8,\"297\":4,\"298\":4,\"299\":8,\"300\":4,\"301\":4,\"302\":4,\"303\":6,\"304\":6,\"305\":6,\"306\":6,\"307\":1,\"308\":1,\"309\":3,\"310\":3,\"311\":3,\"312\":3,\"313\":3,\"314\":3,\"315\":3,\"316\":3,\"317\":3,\"318\":2,\"319\":2,\"320\":2,\"321\":2,\"322\":2,\"323\":2,\"324\":2,\"325\":2,\"326\":2,\"327\":2,\"328\":2,\"329\":2,\"330\":3,\"331\":3,\"332\":3,\"333\":3,\"334\":1,\"335\":1,\"336\":4,\"337\":4,\"338\":4,\"339\":1,\"340\":1,\"341\":1,\"342\":1,\"343\":1,\"344\":1,\"345\":0,\"346\":0,\"347\":1,\"348\":1,\"349\":1,\"350\":1,\"351\":1,\"352\":1,\"353\":1,\"354\":1,\"355\":1,\"356\":1,\"357\":1,\"358\":1,\"359\":1,\"360\":1,\"361\":1,\"362\":3,\"363\":3,\"364\":3,\"365\":3,\"366\":3,\"367\":3,\"368\":3,\"369\":0,\"370\":0,\"371\":0,\"372\":0,\"373\":3,\"374\":3,\"375\":3,\"376\":3,\"377\":3,\"378\":1,\"379\":3,\"380\":3,\"381\":3,\"382\":3,\"383\":3,\"384\":4,\"385\":4,\"386\":4,\"387\":4,\"388\":4,\"389\":3,\"390\":3,\"391\":3,\"392\":4,\"393\":4,\"394\":4,\"395\":4,\"396\":4,\"397\":3,\"398\":3,\"399\":3,\"400\":3,\"401\":3,\"402\":3,\"403\":3,\"404\":1,\"405\":1,\"406\":2,\"407\":2,\"408\":2,\"409\":2,\"410\":2,\"411\":2,\"412\":2,\"413\":2,\"414\":2,\"415\":2,\"416\":2,\"417\":2,\"418\":2,\"419\":2,\"420\":2,\"421\":2,\"422\":0,\"423\":0,\"424\":2},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":50,\"column\":1}},\"locations\":[{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":50,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":7},\"end\":{\"line\":74,\"column\":1}},\"locations\":[{\"start\":{\"line\":52,\"column\":7},\"end\":{\"line\":74,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":34},\"end\":{\"line\":57,\"column\":3}},\"locations\":[{\"start\":{\"line\":55,\"column\":34},\"end\":{\"line\":57,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":53},\"end\":{\"line\":61,\"column\":3}},\"locations\":[{\"start\":{\"line\":59,\"column\":53},\"end\":{\"line\":61,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":-1},\"end\":{\"line\":67,\"column\":78}},\"locations\":[{\"start\":{\"line\":62,\"column\":-1},\"end\":{\"line\":67,\"column\":78}}]},\"5\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":-1},\"end\":{\"line\":69,\"column\":11}},\"locations\":[{\"start\":{\"line\":68,\"column\":-1},\"end\":{\"line\":69,\"column\":11}}]},\"6\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":4},\"end\":{\"line\":73,\"column\":3}},\"locations\":[{\"start\":{\"line\":69,\"column\":4},\"end\":{\"line\":73,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":85,\"column\":1}},\"locations\":[{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":85,\"column\":1}}]},\"8\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":42},\"end\":{\"line\":84,\"column\":3}},\"locations\":[{\"start\":{\"line\":79,\"column\":42},\"end\":{\"line\":84,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":87,\"loc\":{\"start\":{\"line\":87,\"column\":7},\"end\":{\"line\":104,\"column\":1}},\"locations\":[{\"start\":{\"line\":87,\"column\":7},\"end\":{\"line\":104,\"column\":1}}]},\"10\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":21},\"end\":{\"line\":101,\"column\":3}},\"locations\":[{\"start\":{\"line\":99,\"column\":21},\"end\":{\"line\":101,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":106,\"loc\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"locations\":[{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":116,\"column\":1}}]},\"12\":{\"type\":\"branch\",\"line\":108,\"loc\":{\"start\":{\"line\":108,\"column\":27},\"end\":{\"line\":113,\"column\":9}},\"locations\":[{\"start\":{\"line\":108,\"column\":27},\"end\":{\"line\":113,\"column\":9}}]},\"13\":{\"type\":\"branch\",\"line\":109,\"loc\":{\"start\":{\"line\":109,\"column\":18},\"end\":{\"line\":113,\"column\":9}},\"locations\":[{\"start\":{\"line\":109,\"column\":18},\"end\":{\"line\":113,\"column\":9}}]},\"14\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":3},\"end\":{\"line\":115,\"column\":3}},\"locations\":[{\"start\":{\"line\":113,\"column\":3},\"end\":{\"line\":115,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":118,\"loc\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":122,\"column\":1}},\"locations\":[{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":122,\"column\":1}}]},\"16\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":21},\"end\":{\"line\":121,\"column\":56}},\"locations\":[{\"start\":{\"line\":121,\"column\":21},\"end\":{\"line\":121,\"column\":56}}]},\"17\":{\"type\":\"branch\",\"line\":124,\"loc\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":129,\"column\":1}},\"locations\":[{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":129,\"column\":1}}]},\"18\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":133,\"column\":1}},\"locations\":[{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":133,\"column\":1}}]},\"19\":{\"type\":\"branch\",\"line\":135,\"loc\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":165,\"column\":1}},\"locations\":[{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":165,\"column\":1}}]},\"20\":{\"type\":\"branch\",\"line\":142,\"loc\":{\"start\":{\"line\":142,\"column\":30},\"end\":{\"line\":151,\"column\":3}},\"locations\":[{\"start\":{\"line\":142,\"column\":30},\"end\":{\"line\":151,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":153,\"loc\":{\"start\":{\"line\":153,\"column\":27},\"end\":{\"line\":162,\"column\":3}},\"locations\":[{\"start\":{\"line\":153,\"column\":27},\"end\":{\"line\":162,\"column\":3}}]},\"22\":{\"type\":\"branch\",\"line\":167,\"loc\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":185,\"column\":1}},\"locations\":[{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":185,\"column\":1}}]},\"23\":{\"type\":\"branch\",\"line\":169,\"loc\":{\"start\":{\"line\":169,\"column\":74},\"end\":{\"line\":169,\"column\":88}},\"locations\":[{\"start\":{\"line\":169,\"column\":74},\"end\":{\"line\":169,\"column\":88}}]},\"24\":{\"type\":\"branch\",\"line\":187,\"loc\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":208,\"column\":1}},\"locations\":[{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":208,\"column\":1}}]},\"25\":{\"type\":\"branch\",\"line\":200,\"loc\":{\"start\":{\"line\":200,\"column\":27},\"end\":{\"line\":200,\"column\":59}},\"locations\":[{\"start\":{\"line\":200,\"column\":27},\"end\":{\"line\":200,\"column\":59}}]},\"26\":{\"type\":\"branch\",\"line\":189,\"loc\":{\"start\":{\"line\":189,\"column\":74},\"end\":{\"line\":192,\"column\":3}},\"locations\":[{\"start\":{\"line\":189,\"column\":74},\"end\":{\"line\":192,\"column\":3}}]},\"27\":{\"type\":\"branch\",\"line\":190,\"loc\":{\"start\":{\"line\":190,\"column\":45},\"end\":{\"line\":192,\"column\":3}},\"locations\":[{\"start\":{\"line\":190,\"column\":45},\"end\":{\"line\":192,\"column\":3}}]},\"28\":{\"type\":\"branch\",\"line\":211,\"loc\":{\"start\":{\"line\":211,\"column\":7},\"end\":{\"line\":242,\"column\":1}},\"locations\":[{\"start\":{\"line\":211,\"column\":7},\"end\":{\"line\":242,\"column\":1}}]},\"29\":{\"type\":\"branch\",\"line\":217,\"loc\":{\"start\":{\"line\":217,\"column\":17},\"end\":{\"line\":219,\"column\":3}},\"locations\":[{\"start\":{\"line\":217,\"column\":17},\"end\":{\"line\":219,\"column\":3}}]},\"30\":{\"type\":\"branch\",\"line\":220,\"loc\":{\"start\":{\"line\":220,\"column\":-1},\"end\":{\"line\":221,\"column\":24}},\"locations\":[{\"start\":{\"line\":220,\"column\":-1},\"end\":{\"line\":221,\"column\":24}}]},\"31\":{\"type\":\"branch\",\"line\":221,\"loc\":{\"start\":{\"line\":221,\"column\":24},\"end\":{\"line\":223,\"column\":3}},\"locations\":[{\"start\":{\"line\":221,\"column\":24},\"end\":{\"line\":223,\"column\":3}}]},\"32\":{\"type\":\"branch\",\"line\":224,\"loc\":{\"start\":{\"line\":224,\"column\":-1},\"end\":{\"line\":242,\"column\":1}},\"locations\":[{\"start\":{\"line\":224,\"column\":-1},\"end\":{\"line\":242,\"column\":1}}]},\"33\":{\"type\":\"branch\",\"line\":226,\"loc\":{\"start\":{\"line\":226,\"column\":30},\"end\":{\"line\":239,\"column\":3}},\"locations\":[{\"start\":{\"line\":226,\"column\":30},\"end\":{\"line\":239,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":236,\"loc\":{\"start\":{\"line\":236,\"column\":24},\"end\":{\"line\":238,\"column\":5}},\"locations\":[{\"start\":{\"line\":236,\"column\":24},\"end\":{\"line\":238,\"column\":5}}]},\"35\":{\"type\":\"branch\",\"line\":228,\"loc\":{\"start\":{\"line\":228,\"column\":66},\"end\":{\"line\":234,\"column\":5}},\"locations\":[{\"start\":{\"line\":228,\"column\":66},\"end\":{\"line\":234,\"column\":5}}]},\"36\":{\"type\":\"branch\",\"line\":230,\"loc\":{\"start\":{\"line\":230,\"column\":69},\"end\":{\"line\":233,\"column\":7}},\"locations\":[{\"start\":{\"line\":230,\"column\":69},\"end\":{\"line\":233,\"column\":7}}]},\"37\":{\"type\":\"branch\",\"line\":243,\"loc\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":261,\"column\":1}},\"locations\":[{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":261,\"column\":1}}]},\"38\":{\"type\":\"branch\",\"line\":248,\"loc\":{\"start\":{\"line\":248,\"column\":31},\"end\":{\"line\":258,\"column\":3}},\"locations\":[{\"start\":{\"line\":248,\"column\":31},\"end\":{\"line\":258,\"column\":3}}]},\"39\":{\"type\":\"branch\",\"line\":251,\"loc\":{\"start\":{\"line\":251,\"column\":27},\"end\":{\"line\":257,\"column\":5}},\"locations\":[{\"start\":{\"line\":251,\"column\":27},\"end\":{\"line\":257,\"column\":5}}]},\"40\":{\"type\":\"branch\",\"line\":252,\"loc\":{\"start\":{\"line\":252,\"column\":19},\"end\":{\"line\":256,\"column\":7}},\"locations\":[{\"start\":{\"line\":252,\"column\":19},\"end\":{\"line\":256,\"column\":7}}]},\"41\":{\"type\":\"branch\",\"line\":253,\"loc\":{\"start\":{\"line\":253,\"column\":32},\"end\":{\"line\":255,\"column\":9}},\"locations\":[{\"start\":{\"line\":253,\"column\":32},\"end\":{\"line\":255,\"column\":9}}]},\"42\":{\"type\":\"branch\",\"line\":271,\"loc\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":284,\"column\":1}},\"locations\":[{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":284,\"column\":1}}]},\"43\":{\"type\":\"branch\",\"line\":278,\"loc\":{\"start\":{\"line\":278,\"column\":76},\"end\":{\"line\":278,\"column\":101}},\"locations\":[{\"start\":{\"line\":278,\"column\":76},\"end\":{\"line\":278,\"column\":101}}]},\"44\":{\"type\":\"branch\",\"line\":286,\"loc\":{\"start\":{\"line\":286,\"column\":62},\"end\":{\"line\":307,\"column\":2}},\"locations\":[{\"start\":{\"line\":286,\"column\":62},\"end\":{\"line\":307,\"column\":2}}]},\"45\":{\"type\":\"branch\",\"line\":291,\"loc\":{\"start\":{\"line\":291,\"column\":12},\"end\":{\"line\":294,\"column\":5}},\"locations\":[{\"start\":{\"line\":291,\"column\":12},\"end\":{\"line\":294,\"column\":5}}]},\"46\":{\"type\":\"branch\",\"line\":292,\"loc\":{\"start\":{\"line\":292,\"column\":41},\"end\":{\"line\":292,\"column\":54}},\"locations\":[{\"start\":{\"line\":292,\"column\":41},\"end\":{\"line\":292,\"column\":54}}]},\"47\":{\"type\":\"branch\",\"line\":293,\"loc\":{\"start\":{\"line\":293,\"column\":31},\"end\":{\"line\":293,\"column\":64}},\"locations\":[{\"start\":{\"line\":293,\"column\":31},\"end\":{\"line\":293,\"column\":64}}]},\"48\":{\"type\":\"branch\",\"line\":293,\"loc\":{\"start\":{\"line\":293,\"column\":65},\"end\":{\"line\":293,\"column\":77}},\"locations\":[{\"start\":{\"line\":293,\"column\":65},\"end\":{\"line\":293,\"column\":77}}]},\"49\":{\"type\":\"branch\",\"line\":295,\"loc\":{\"start\":{\"line\":295,\"column\":13},\"end\":{\"line\":304,\"column\":5}},\"locations\":[{\"start\":{\"line\":295,\"column\":13},\"end\":{\"line\":304,\"column\":5}}]},\"50\":{\"type\":\"branch\",\"line\":296,\"loc\":{\"start\":{\"line\":296,\"column\":34},\"end\":{\"line\":303,\"column\":7}},\"locations\":[{\"start\":{\"line\":296,\"column\":34},\"end\":{\"line\":303,\"column\":7}}]},\"51\":{\"type\":\"branch\",\"line\":297,\"loc\":{\"start\":{\"line\":297,\"column\":40},\"end\":{\"line\":299,\"column\":9}},\"locations\":[{\"start\":{\"line\":297,\"column\":40},\"end\":{\"line\":299,\"column\":9}}]},\"52\":{\"type\":\"branch\",\"line\":300,\"loc\":{\"start\":{\"line\":300,\"column\":42},\"end\":{\"line\":302,\"column\":9}},\"locations\":[{\"start\":{\"line\":300,\"column\":42},\"end\":{\"line\":302,\"column\":9}}]},\"53\":{\"type\":\"branch\",\"line\":309,\"loc\":{\"start\":{\"line\":309,\"column\":54},\"end\":{\"line\":334,\"column\":2}},\"locations\":[{\"start\":{\"line\":309,\"column\":54},\"end\":{\"line\":334,\"column\":2}}]},\"54\":{\"type\":\"branch\",\"line\":314,\"loc\":{\"start\":{\"line\":314,\"column\":12},\"end\":{\"line\":317,\"column\":5}},\"locations\":[{\"start\":{\"line\":314,\"column\":12},\"end\":{\"line\":317,\"column\":5}}]},\"55\":{\"type\":\"branch\",\"line\":318,\"loc\":{\"start\":{\"line\":318,\"column\":13},\"end\":{\"line\":331,\"column\":5}},\"locations\":[{\"start\":{\"line\":318,\"column\":13},\"end\":{\"line\":331,\"column\":5}}]},\"56\":{\"type\":\"branch\",\"line\":336,\"loc\":{\"start\":{\"line\":336,\"column\":7},\"end\":{\"line\":339,\"column\":1}},\"locations\":[{\"start\":{\"line\":336,\"column\":7},\"end\":{\"line\":339,\"column\":1}}]},\"57\":{\"type\":\"branch\",\"line\":341,\"loc\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":348,\"column\":1}},\"locations\":[{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":348,\"column\":1}}]},\"58\":{\"type\":\"branch\",\"line\":345,\"loc\":{\"start\":{\"line\":345,\"column\":3},\"end\":{\"line\":347,\"column\":3}},\"locations\":[{\"start\":{\"line\":345,\"column\":3},\"end\":{\"line\":347,\"column\":3}}]},\"59\":{\"type\":\"branch\",\"line\":349,\"loc\":{\"start\":{\"line\":349,\"column\":7},\"end\":{\"line\":361,\"column\":1}},\"locations\":[{\"start\":{\"line\":349,\"column\":7},\"end\":{\"line\":361,\"column\":1}}]},\"60\":{\"type\":\"branch\",\"line\":362,\"loc\":{\"start\":{\"line\":362,\"column\":7},\"end\":{\"line\":378,\"column\":1}},\"locations\":[{\"start\":{\"line\":362,\"column\":7},\"end\":{\"line\":378,\"column\":1}}]},\"61\":{\"type\":\"branch\",\"line\":369,\"loc\":{\"start\":{\"line\":369,\"column\":39},\"end\":{\"line\":374,\"column\":9}},\"locations\":[{\"start\":{\"line\":369,\"column\":39},\"end\":{\"line\":374,\"column\":9}}]},\"62\":{\"type\":\"branch\",\"line\":380,\"loc\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":404,\"column\":1}},\"locations\":[{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":404,\"column\":1}}]},\"63\":{\"type\":\"branch\",\"line\":384,\"loc\":{\"start\":{\"line\":384,\"column\":20},\"end\":{\"line\":390,\"column\":3}},\"locations\":[{\"start\":{\"line\":384,\"column\":20},\"end\":{\"line\":390,\"column\":3}}]},\"64\":{\"type\":\"branch\",\"line\":392,\"loc\":{\"start\":{\"line\":392,\"column\":17},\"end\":{\"line\":398,\"column\":3}},\"locations\":[{\"start\":{\"line\":392,\"column\":17},\"end\":{\"line\":398,\"column\":3}}]},\"65\":{\"type\":\"branch\",\"line\":406,\"loc\":{\"start\":{\"line\":406,\"column\":7},\"end\":{\"line\":425,\"column\":1}},\"locations\":[{\"start\":{\"line\":406,\"column\":7},\"end\":{\"line\":425,\"column\":1}}]},\"66\":{\"type\":\"branch\",\"line\":422,\"loc\":{\"start\":{\"line\":422,\"column\":4},\"end\":{\"line\":424,\"column\":3}},\"locations\":[{\"start\":{\"line\":422,\"column\":4},\"end\":{\"line\":424,\"column\":3}}]}},\"b\":{\"0\":[99],\"1\":[4],\"2\":[0],\"3\":[1],\"4\":[3],\"5\":[2],\"6\":[1],\"7\":[8],\"8\":[20],\"9\":[2],\"10\":[2],\"11\":[6],\"12\":[2],\"13\":[1],\"14\":[4],\"15\":[4],\"16\":[53],\"17\":[48],\"18\":[29],\"19\":[7],\"20\":[8],\"21\":[8],\"22\":[2],\"23\":[4],\"24\":[5],\"25\":[4],\"26\":[12],\"27\":[6],\"28\":[12],\"29\":[2],\"30\":[10],\"31\":[1],\"32\":[9],\"33\":[13],\"34\":[3],\"35\":[45],\"36\":[10],\"37\":[14],\"38\":[48],\"39\":[38],\"40\":[114],\"41\":[62],\"42\":[7],\"43\":[4],\"44\":[6],\"45\":[6],\"46\":[5],\"47\":[3],\"48\":[3],\"49\":[4],\"50\":[8],\"51\":[4],\"52\":[4],\"53\":[3],\"54\":[3],\"55\":[2],\"56\":[4],\"57\":[1],\"58\":[0],\"59\":[1],\"60\":[3],\"61\":[0],\"62\":[3],\"63\":[4],\"64\":[4],\"65\":[2],\"66\":[0]},\"fnMap\":{\"0\":{\"name\":\"removeKeyword\",\"decl\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":50,\"column\":1}},\"loc\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":50,\"column\":1}},\"line\":48},\"1\":{\"name\":\"prepareAbiDirectory\",\"decl\":{\"start\":{\"line\":52,\"column\":7},\"end\":{\"line\":74,\"column\":1}},\"loc\":{\"start\":{\"line\":52,\"column\":7},\"end\":{\"line\":74,\"column\":1}},\"line\":52},\"2\":{\"name\":\"constructMethod\",\"decl\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":85,\"column\":1}},\"loc\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":85,\"column\":1}},\"line\":76},\"3\":{\"name\":\"promptSelectables\",\"decl\":{\"start\":{\"line\":87,\"column\":7},\"end\":{\"line\":104,\"column\":1}},\"loc\":{\"start\":{\"line\":87,\"column\":7},\"end\":{\"line\":104,\"column\":1}},\"line\":87},\"4\":{\"name\":\"getAbiInterface\",\"decl\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"loc\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"line\":106},\"5\":{\"name\":\"filterObjectsByStateMutability\",\"decl\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":122,\"column\":1}},\"loc\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":122,\"column\":1}},\"line\":118},\"6\":{\"name\":\"getFragmentFormats\",\"decl\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":129,\"column\":1}},\"loc\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":129,\"column\":1}},\"line\":124},\"7\":{\"name\":\"generateHandlerName\",\"decl\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":133,\"column\":1}},\"loc\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":133,\"column\":1}},\"line\":131},\"8\":{\"name\":\"generateFormattedHandlers\",\"decl\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":165,\"column\":1}},\"loc\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":165,\"column\":1}},\"line\":135},\"9\":{\"name\":\"constructDatasourcesTs\",\"decl\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":185,\"column\":1}},\"loc\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":185,\"column\":1}},\"line\":167},\"10\":{\"name\":\"constructDatasourcesYaml\",\"decl\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":208,\"column\":1}},\"loc\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":208,\"column\":1}},\"line\":187},\"11\":{\"name\":\"prepareInputFragments\",\"decl\":{\"start\":{\"line\":211,\"column\":7},\"end\":{\"line\":242,\"column\":1}},\"loc\":{\"start\":{\"line\":211,\"column\":7},\"end\":{\"line\":242,\"column\":1}},\"line\":211},\"12\":{\"name\":\"filterExistingFragments\",\"decl\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":261,\"column\":1}},\"loc\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":261,\"column\":1}},\"line\":243},\"13\":{\"name\":\"filterExistingMethods\",\"decl\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":284,\"column\":1}},\"loc\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":284,\"column\":1}},\"line\":271},\"14\":{\"name\":\"yamlExtractor\",\"decl\":{\"start\":{\"line\":286,\"column\":62},\"end\":{\"line\":307,\"column\":2}},\"loc\":{\"start\":{\"line\":286,\"column\":62},\"end\":{\"line\":307,\"column\":2}},\"line\":286},\"15\":{\"name\":\"tsExtractor\",\"decl\":{\"start\":{\"line\":309,\"column\":54},\"end\":{\"line\":334,\"column\":2}},\"loc\":{\"start\":{\"line\":309,\"column\":54},\"end\":{\"line\":334,\"column\":2}},\"line\":309},\"16\":{\"name\":\"getManifestData\",\"decl\":{\"start\":{\"line\":336,\"column\":7},\"end\":{\"line\":339,\"column\":1}},\"loc\":{\"start\":{\"line\":336,\"column\":7},\"end\":{\"line\":339,\"column\":1}},\"line\":336},\"17\":{\"name\":\"prependDatasources\",\"decl\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":348,\"column\":1}},\"loc\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":348,\"column\":1}},\"line\":341},\"18\":{\"name\":\"generateManifestTs\",\"decl\":{\"start\":{\"line\":349,\"column\":7},\"end\":{\"line\":361,\"column\":1}},\"loc\":{\"start\":{\"line\":349,\"column\":7},\"end\":{\"line\":361,\"column\":1}},\"line\":349},\"19\":{\"name\":\"generateManifestYaml\",\"decl\":{\"start\":{\"line\":362,\"column\":7},\"end\":{\"line\":378,\"column\":1}},\"loc\":{\"start\":{\"line\":362,\"column\":7},\"end\":{\"line\":378,\"column\":1}},\"line\":362},\"20\":{\"name\":\"constructHandlerProps\",\"decl\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":404,\"column\":1}},\"loc\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":404,\"column\":1}},\"line\":380},\"21\":{\"name\":\"generateHandlers\",\"decl\":{\"start\":{\"line\":406,\"column\":7},\"end\":{\"line\":425,\"column\":1}},\"loc\":{\"start\":{\"line\":406,\"column\":7},\"end\":{\"line\":425,\"column\":1}},\"line\":406}},\"f\":{\"0\":99,\"1\":4,\"2\":8,\"3\":2,\"4\":6,\"5\":4,\"6\":48,\"7\":29,\"8\":7,\"9\":2,\"10\":5,\"11\":12,\"12\":14,\"13\":7,\"14\":6,\"15\":3,\"16\":4,\"17\":1,\"18\":1,\"19\":3,\"20\":3,\"21\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/init-controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/init-controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":53}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":20}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":29}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":31}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":101}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":68}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":56}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":26}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":34}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":28}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":29}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":53}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":61}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":62}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":8}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":24}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":26}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":14}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":16}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":14}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":17}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":32}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":29}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":18}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":42}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":15}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":22}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":17}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":15}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":26}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":15}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":15}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":19}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":22}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":15}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":27}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":15}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":15}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":22}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":15}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":13}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":17}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":17}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":21}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":24}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":17}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":40}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":6}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":1}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":65}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":11}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":41}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":61}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":7}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":73}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":30}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":15}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":73}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":3}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":1}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":16}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":46}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":60}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":7}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":76}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":28}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":15}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":78}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":3}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":1}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":108}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":43}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":21}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":21}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":39}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":7}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":120}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":28}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":15}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":76}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":3}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":1}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":38}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":20}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":22}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":24}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":16}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":20}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":56}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":7}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":85}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":15}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":58}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":9}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":32}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":17}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":86}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":5}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":25}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":3}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":21}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":43}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":20}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":22}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":42}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":20}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":56}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":40}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":39}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":58}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":73}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":79}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":52}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":33}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":72}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":22}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":54}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":21}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":1}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":0}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":76}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":80}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":60}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":34}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":59}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":63}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":37}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":73}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":68}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":29}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":7}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":42}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":10}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":77}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":92}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":52}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":3}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":0}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":71}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":1}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":0}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":93}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":7}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":48}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":15}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":92}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":7}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":47}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":15}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":96}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":3}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":7}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":51}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":15}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":67}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":3}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":1}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":100}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":31}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":80}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":60}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":37}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":81}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":41}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":61}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":81}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":1}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":0}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":101}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":52}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":52}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":56}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":27}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":0}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":37}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":0}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":13}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":79}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":52}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":61}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":40}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":36}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":0}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":91}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":10}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":43}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":70}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":45}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":36}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":0}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":57}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":46}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":41}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":39}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":46}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":5}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":41}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":3}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":78}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":1}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":0}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":82}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":31}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":0}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":37}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":28}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":3}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":0}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":53}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":1}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":0}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":37}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":7}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":44}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":16}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":15}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":17}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":3}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":1}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":0}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":82}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":45}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":63}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":70}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":0}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":59}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":0}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":7}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":25}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":39}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":33}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":52}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":12}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":77}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":5}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":15}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":58}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":3}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":0}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":38}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":61}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":1}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":0}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":79}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":69}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":86}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":69}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":1}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":0}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":83}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":86}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":45}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":76}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":1}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":0}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":94}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":20}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":74}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":13}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":108}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":10}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":76}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":3}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":7}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":98}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":15}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":17}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":3}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":1,\"83\":1,\"84\":1,\"85\":17,\"86\":17,\"87\":17,\"88\":17,\"89\":17,\"90\":17,\"91\":17,\"92\":0,\"93\":0,\"94\":17,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":17,\"119\":17,\"120\":17,\"121\":17,\"122\":17,\"123\":17,\"124\":17,\"125\":17,\"126\":17,\"127\":17,\"128\":17,\"129\":17,\"130\":17,\"131\":17,\"132\":17,\"133\":17,\"134\":17,\"135\":1,\"136\":1,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":1,\"155\":1,\"156\":1,\"157\":1,\"158\":1,\"159\":18,\"160\":18,\"161\":18,\"162\":0,\"163\":0,\"164\":18,\"165\":18,\"166\":18,\"167\":0,\"168\":0,\"169\":18,\"170\":18,\"171\":18,\"172\":0,\"173\":0,\"174\":18,\"175\":1,\"176\":1,\"177\":18,\"178\":18,\"179\":18,\"180\":18,\"181\":18,\"182\":18,\"183\":18,\"184\":18,\"185\":18,\"186\":1,\"187\":1,\"188\":18,\"189\":18,\"190\":18,\"191\":18,\"192\":18,\"193\":18,\"194\":18,\"195\":18,\"196\":17,\"197\":17,\"198\":17,\"199\":17,\"200\":17,\"201\":17,\"202\":17,\"203\":18,\"204\":1,\"205\":1,\"206\":1,\"207\":1,\"208\":1,\"209\":1,\"210\":1,\"211\":1,\"212\":1,\"213\":1,\"214\":1,\"215\":1,\"216\":1,\"217\":18,\"218\":18,\"219\":1,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":1,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":1,\"239\":1,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":1,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":1,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":1,\"274\":1,\"275\":2,\"276\":2,\"277\":2,\"278\":1,\"279\":1,\"280\":1,\"281\":1,\"282\":2,\"283\":2,\"284\":2,\"285\":0,\"286\":0,\"287\":2},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":7},\"end\":{\"line\":95,\"column\":1}},\"locations\":[{\"start\":{\"line\":85,\"column\":7},\"end\":{\"line\":95,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":4},\"end\":{\"line\":94,\"column\":3}},\"locations\":[{\"start\":{\"line\":92,\"column\":4},\"end\":{\"line\":94,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":7},\"end\":{\"line\":116,\"column\":1}},\"locations\":[{\"start\":{\"line\":97,\"column\":7},\"end\":{\"line\":116,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":106,\"loc\":{\"start\":{\"line\":106,\"column\":4},\"end\":{\"line\":114,\"column\":3}},\"locations\":[{\"start\":{\"line\":106,\"column\":4},\"end\":{\"line\":114,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":118,\"loc\":{\"start\":{\"line\":118,\"column\":7},\"end\":{\"line\":135,\"column\":1}},\"locations\":[{\"start\":{\"line\":118,\"column\":7},\"end\":{\"line\":135,\"column\":1}}]},\"5\":{\"type\":\"branch\",\"line\":137,\"loc\":{\"start\":{\"line\":137,\"column\":7},\"end\":{\"line\":157,\"column\":1}},\"locations\":[{\"start\":{\"line\":137,\"column\":7},\"end\":{\"line\":157,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":3},\"end\":{\"line\":154,\"column\":3}},\"locations\":[{\"start\":{\"line\":150,\"column\":3},\"end\":{\"line\":154,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":159,\"loc\":{\"start\":{\"line\":159,\"column\":7},\"end\":{\"line\":175,\"column\":1}},\"locations\":[{\"start\":{\"line\":159,\"column\":7},\"end\":{\"line\":175,\"column\":1}}]},\"8\":{\"type\":\"branch\",\"line\":162,\"loc\":{\"start\":{\"line\":162,\"column\":4},\"end\":{\"line\":164,\"column\":3}},\"locations\":[{\"start\":{\"line\":162,\"column\":4},\"end\":{\"line\":164,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":167,\"loc\":{\"start\":{\"line\":167,\"column\":4},\"end\":{\"line\":169,\"column\":3}},\"locations\":[{\"start\":{\"line\":167,\"column\":4},\"end\":{\"line\":169,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":172,\"loc\":{\"start\":{\"line\":172,\"column\":4},\"end\":{\"line\":174,\"column\":3}},\"locations\":[{\"start\":{\"line\":172,\"column\":4},\"end\":{\"line\":174,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":177,\"loc\":{\"start\":{\"line\":177,\"column\":7},\"end\":{\"line\":186,\"column\":1}},\"locations\":[{\"start\":{\"line\":177,\"column\":7},\"end\":{\"line\":186,\"column\":1}}]},\"12\":{\"type\":\"branch\",\"line\":182,\"loc\":{\"start\":{\"line\":182,\"column\":50},\"end\":{\"line\":182,\"column\":80}},\"locations\":[{\"start\":{\"line\":182,\"column\":50},\"end\":{\"line\":182,\"column\":80}}]},\"13\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":7},\"end\":{\"line\":219,\"column\":1}},\"locations\":[{\"start\":{\"line\":188,\"column\":7},\"end\":{\"line\":219,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":196,\"loc\":{\"start\":{\"line\":196,\"column\":12},\"end\":{\"line\":204,\"column\":9}},\"locations\":[{\"start\":{\"line\":196,\"column\":12},\"end\":{\"line\":204,\"column\":9}}]},\"15\":{\"type\":\"branch\",\"line\":200,\"loc\":{\"start\":{\"line\":200,\"column\":6},\"end\":{\"line\":200,\"column\":40}},\"locations\":[{\"start\":{\"line\":200,\"column\":6},\"end\":{\"line\":200,\"column\":40}}]},\"16\":{\"type\":\"branch\",\"line\":201,\"loc\":{\"start\":{\"line\":201,\"column\":6},\"end\":{\"line\":201,\"column\":35}},\"locations\":[{\"start\":{\"line\":201,\"column\":6},\"end\":{\"line\":201,\"column\":35}}]},\"17\":{\"type\":\"branch\",\"line\":204,\"loc\":{\"start\":{\"line\":204,\"column\":3},\"end\":{\"line\":217,\"column\":3}},\"locations\":[{\"start\":{\"line\":204,\"column\":3},\"end\":{\"line\":217,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":35},\"end\":{\"line\":218,\"column\":43}},\"locations\":[{\"start\":{\"line\":218,\"column\":35},\"end\":{\"line\":218,\"column\":43}}]},\"19\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":44},\"end\":{\"line\":218,\"column\":54}},\"locations\":[{\"start\":{\"line\":218,\"column\":44},\"end\":{\"line\":218,\"column\":54}}]},\"20\":{\"type\":\"branch\",\"line\":275,\"loc\":{\"start\":{\"line\":275,\"column\":7},\"end\":{\"line\":288,\"column\":1}},\"locations\":[{\"start\":{\"line\":275,\"column\":7},\"end\":{\"line\":288,\"column\":1}}]},\"21\":{\"type\":\"branch\",\"line\":278,\"loc\":{\"start\":{\"line\":278,\"column\":12},\"end\":{\"line\":282,\"column\":3}},\"locations\":[{\"start\":{\"line\":278,\"column\":12},\"end\":{\"line\":282,\"column\":3}}]},\"22\":{\"type\":\"branch\",\"line\":284,\"loc\":{\"start\":{\"line\":284,\"column\":16},\"end\":{\"line\":284,\"column\":54}},\"locations\":[{\"start\":{\"line\":284,\"column\":16},\"end\":{\"line\":284,\"column\":54}}]},\"23\":{\"type\":\"branch\",\"line\":284,\"loc\":{\"start\":{\"line\":284,\"column\":55},\"end\":{\"line\":284,\"column\":97}},\"locations\":[{\"start\":{\"line\":284,\"column\":55},\"end\":{\"line\":284,\"column\":97}}]},\"24\":{\"type\":\"branch\",\"line\":285,\"loc\":{\"start\":{\"line\":285,\"column\":4},\"end\":{\"line\":287,\"column\":3}},\"locations\":[{\"start\":{\"line\":285,\"column\":4},\"end\":{\"line\":287,\"column\":3}}]}},\"b\":{\"0\":[17],\"1\":[0],\"2\":[1],\"3\":[0],\"4\":[17],\"5\":[1],\"6\":[0],\"7\":[18],\"8\":[0],\"9\":[0],\"10\":[0],\"11\":[18],\"12\":[0],\"13\":[18],\"14\":[17],\"15\":[4],\"16\":[13],\"17\":[1],\"18\":[17],\"19\":[1],\"20\":[2],\"21\":[1],\"22\":[1],\"23\":[1],\"24\":[0]},\"fnMap\":{\"0\":{\"name\":\"fetchTemplates\",\"decl\":{\"start\":{\"line\":63,\"column\":7},\"end\":{\"line\":71,\"column\":1}},\"loc\":{\"start\":{\"line\":63,\"column\":7},\"end\":{\"line\":71,\"column\":1}},\"line\":63},\"1\":{\"name\":\"fetchNetworks\",\"decl\":{\"start\":{\"line\":75,\"column\":7},\"end\":{\"line\":82,\"column\":1}},\"loc\":{\"start\":{\"line\":75,\"column\":7},\"end\":{\"line\":82,\"column\":1}},\"line\":75},\"2\":{\"name\":\"fetchExampleProjects\",\"decl\":{\"start\":{\"line\":85,\"column\":7},\"end\":{\"line\":95,\"column\":1}},\"loc\":{\"start\":{\"line\":85,\"column\":7},\"end\":{\"line\":95,\"column\":1}},\"line\":85},\"3\":{\"name\":\"cloneProjectGit\",\"decl\":{\"start\":{\"line\":97,\"column\":7},\"end\":{\"line\":116,\"column\":1}},\"loc\":{\"start\":{\"line\":97,\"column\":7},\"end\":{\"line\":116,\"column\":1}},\"line\":97},\"4\":{\"name\":\"cloneProjectTemplate\",\"decl\":{\"start\":{\"line\":118,\"column\":7},\"end\":{\"line\":135,\"column\":1}},\"loc\":{\"start\":{\"line\":118,\"column\":7},\"end\":{\"line\":135,\"column\":1}},\"line\":118},\"5\":{\"name\":\"readDefaults\",\"decl\":{\"start\":{\"line\":137,\"column\":7},\"end\":{\"line\":157,\"column\":1}},\"loc\":{\"start\":{\"line\":137,\"column\":7},\"end\":{\"line\":157,\"column\":1}},\"line\":137},\"6\":{\"name\":\"prepare\",\"decl\":{\"start\":{\"line\":159,\"column\":7},\"end\":{\"line\":175,\"column\":1}},\"loc\":{\"start\":{\"line\":159,\"column\":7},\"end\":{\"line\":175,\"column\":1}},\"line\":159},\"7\":{\"name\":\"preparePackage\",\"decl\":{\"start\":{\"line\":177,\"column\":7},\"end\":{\"line\":186,\"column\":1}},\"loc\":{\"start\":{\"line\":177,\"column\":7},\"end\":{\"line\":186,\"column\":1}},\"line\":177},\"8\":{\"name\":\"prepareManifest\",\"decl\":{\"start\":{\"line\":188,\"column\":7},\"end\":{\"line\":219,\"column\":1}},\"loc\":{\"start\":{\"line\":188,\"column\":7},\"end\":{\"line\":219,\"column\":1}},\"line\":188},\"9\":{\"name\":\"installDependencies\",\"decl\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":229,\"column\":1}},\"loc\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":229,\"column\":1}},\"line\":221},\"10\":{\"name\":\"checkYarnExists\",\"decl\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":238,\"column\":1}},\"loc\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":238,\"column\":1}},\"line\":231},\"11\":{\"name\":\"prepareProjectScaffold\",\"decl\":{\"start\":{\"line\":240,\"column\":7},\"end\":{\"line\":261,\"column\":1}},\"loc\":{\"start\":{\"line\":240,\"column\":7},\"end\":{\"line\":261,\"column\":1}},\"line\":240},\"12\":{\"name\":\"prepareProjectScaffoldTS\",\"decl\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":267,\"column\":1}},\"loc\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":267,\"column\":1}},\"line\":263},\"13\":{\"name\":\"prepareProjectScaffoldYAML\",\"decl\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":273,\"column\":1}},\"loc\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":273,\"column\":1}},\"line\":269},\"14\":{\"name\":\"validateEthereumProjectManifest\",\"decl\":{\"start\":{\"line\":275,\"column\":7},\"end\":{\"line\":288,\"column\":1}},\"loc\":{\"start\":{\"line\":275,\"column\":7},\"end\":{\"line\":288,\"column\":1}},\"line\":275}},\"f\":{\"0\":0,\"1\":0,\"2\":17,\"3\":1,\"4\":17,\"5\":1,\"6\":18,\"7\":18,\"8\":18,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/project-controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/project-controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":26}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":37}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":33}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":14}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":48}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":14}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":34}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":25}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":2}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":36}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":23}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":19}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":18}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":23}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":20}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":24}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":22}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":21}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":33}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":13}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":35}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":7}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":52}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":16}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":45}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":8}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":21}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":24}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":19}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":13}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":37}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":33}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":37}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":61}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":25}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":27}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":27}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":34}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":8}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":7}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":56}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":15}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":48}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":3}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":36}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":20}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":23}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":23}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":13}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":20}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":48}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":7}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":17}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":16}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":45}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":8}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":23}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":31}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":19}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":7}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":20}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":15}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":48}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":3}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":0,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":0,\"69\":1,\"70\":1,\"71\":1,\"72\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":10,\"loc\":{\"start\":{\"line\":10,\"column\":28},\"end\":{\"line\":15,\"column\":2}},\"locations\":[{\"start\":{\"line\":10,\"column\":28},\"end\":{\"line\":15,\"column\":2}}]},\"1\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":7},\"end\":{\"line\":51,\"column\":1}},\"locations\":[{\"start\":{\"line\":16,\"column\":7},\"end\":{\"line\":51,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":-1},\"end\":{\"line\":48,\"column\":11}},\"locations\":[{\"start\":{\"line\":47,\"column\":-1},\"end\":{\"line\":48,\"column\":11}}]},\"3\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":7},\"end\":{\"line\":73,\"column\":1}},\"locations\":[{\"start\":{\"line\":53,\"column\":7},\"end\":{\"line\":73,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":-1},\"end\":{\"line\":70,\"column\":11}},\"locations\":[{\"start\":{\"line\":69,\"column\":-1},\"end\":{\"line\":70,\"column\":11}}]}},\"b\":{\"0\":[1],\"1\":[1],\"2\":[0],\"3\":[1],\"4\":[0]},\"fnMap\":{\"0\":{\"name\":\"suffixFormat\",\"decl\":{\"start\":{\"line\":10,\"column\":28},\"end\":{\"line\":15,\"column\":2}},\"loc\":{\"start\":{\"line\":10,\"column\":28},\"end\":{\"line\":15,\"column\":2}},\"line\":10},\"1\":{\"name\":\"createProject\",\"decl\":{\"start\":{\"line\":16,\"column\":7},\"end\":{\"line\":51,\"column\":1}},\"loc\":{\"start\":{\"line\":16,\"column\":7},\"end\":{\"line\":51,\"column\":1}},\"line\":16},\"2\":{\"name\":\"deleteProject\",\"decl\":{\"start\":{\"line\":53,\"column\":7},\"end\":{\"line\":73,\"column\":1}},\"loc\":{\"start\":{\"line\":53,\"column\":7},\"end\":{\"line\":73,\"column\":1}},\"line\":53}},\"f\":{\"0\":1,\"1\":1,\"2\":1}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/controller/publish-controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":16}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":22}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":18}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":32}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":14}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":68}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":72}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":64}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":68}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":94}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":60}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":66}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":70}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":41}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":56}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":33}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":98}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":38}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":56}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":7}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":60}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":15}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":55}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":3}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":35}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":25}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":20}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":33}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":24}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":20}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":33}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":53}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":20}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":45}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":61}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":44}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":6}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":4}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":57}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":27}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":21}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":39}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":42}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":44}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":51}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":42}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":30}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":36}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":33}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":35}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":35}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":32}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":31}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":34}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":37}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":6}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":24}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":51}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":11}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":48}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":45}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":19}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":48}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":7}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":5}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":28}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":58}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":5}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":67}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":102}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":42}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":19}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":63}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":35}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":7}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":3}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":30}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":59}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":19}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":77}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":34}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":7}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":3}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":18}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":85}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":1}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":99}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":40}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":21}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":11}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":20}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":23}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":15}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":29}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":30}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":81}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":23}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":59}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":31}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":38}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":5}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":33}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":60}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":76}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":105}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":32}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":8}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":5}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":101}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":22}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":31}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":27}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":90}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":8}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":6}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":3}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":0}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":15}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":1}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":0}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":67}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":34}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":46}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":20}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":25}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":23}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":33}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":52}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":0}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":13}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":9}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":79}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":0}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":43}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":59}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":7}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":17}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":79}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":5}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":3}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":0}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":28}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":29}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":52}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":5}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":0}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":7}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":108}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":41}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":57}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":0}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":87}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":21}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":114}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":10}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":9}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":5}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":15}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":63}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":3}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":0}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":20}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":1}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":0}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":33}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":44}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":20}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":23}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":20}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":35}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":38}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":3}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":0}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":40}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":13}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":27}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":56}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":46}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":21}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":67}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":9}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":3}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":0}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":28}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":29}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":52}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":5}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":0}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":30}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":54}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":33}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":26}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":11}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":68}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":30}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":19}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":21}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":116}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":10}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":30}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":7}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":6}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":19}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":65}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":7}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":0}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":41}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":0}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":77}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":0}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":39}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":70}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":46}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":3}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":0}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":13}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":5,\"27\":5,\"28\":5,\"29\":5,\"30\":5,\"31\":0,\"32\":0,\"33\":5,\"34\":1,\"35\":1,\"36\":9,\"37\":9,\"38\":9,\"39\":9,\"40\":9,\"41\":9,\"42\":9,\"43\":9,\"44\":9,\"45\":9,\"46\":9,\"47\":7,\"48\":9,\"49\":9,\"50\":7,\"51\":7,\"52\":7,\"53\":7,\"54\":9,\"55\":0,\"56\":0,\"57\":7,\"58\":7,\"59\":7,\"60\":7,\"61\":7,\"62\":7,\"63\":7,\"64\":7,\"65\":7,\"66\":7,\"67\":7,\"68\":7,\"69\":7,\"70\":7,\"71\":7,\"72\":7,\"73\":7,\"74\":7,\"75\":7,\"76\":7,\"77\":7,\"78\":7,\"79\":7,\"80\":7,\"81\":0,\"82\":0,\"83\":7,\"84\":7,\"85\":7,\"86\":0,\"87\":0,\"88\":7,\"89\":7,\"90\":7,\"91\":5,\"92\":5,\"93\":5,\"94\":7,\"95\":7,\"96\":7,\"97\":7,\"98\":5,\"99\":9,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":5,\"107\":5,\"108\":5,\"109\":5,\"110\":1,\"111\":1,\"112\":164,\"113\":164,\"114\":164,\"115\":164,\"116\":164,\"117\":164,\"118\":164,\"119\":12,\"120\":12,\"121\":12,\"122\":164,\"123\":66,\"124\":0,\"125\":0,\"126\":66,\"127\":14,\"128\":14,\"129\":14,\"130\":14,\"131\":14,\"132\":10,\"133\":62,\"134\":62,\"135\":62,\"136\":145,\"137\":145,\"138\":62,\"139\":62,\"140\":58,\"141\":144,\"142\":144,\"143\":144,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":5,\"149\":5,\"150\":5,\"151\":5,\"152\":5,\"153\":5,\"154\":5,\"155\":5,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":5,\"167\":5,\"168\":5,\"169\":5,\"170\":5,\"171\":5,\"172\":5,\"173\":5,\"174\":5,\"175\":5,\"176\":5,\"177\":5,\"178\":0,\"179\":0,\"180\":0,\"181\":5,\"182\":5,\"183\":5,\"184\":0,\"185\":0,\"186\":5,\"187\":5,\"188\":5,\"189\":1,\"190\":1,\"191\":16,\"192\":16,\"193\":16,\"194\":16,\"195\":16,\"196\":0,\"197\":0,\"198\":16,\"199\":16,\"200\":16,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":16,\"209\":16,\"210\":16,\"211\":16,\"212\":16,\"213\":16,\"214\":16,\"215\":16,\"216\":16,\"217\":16,\"218\":10,\"219\":10,\"220\":10,\"221\":10,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":16,\"228\":16,\"229\":6,\"230\":16,\"231\":16,\"232\":16,\"233\":16,\"234\":16,\"235\":10,\"236\":16,\"237\":0,\"238\":0,\"239\":0,\"240\":10,\"241\":10,\"242\":10},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":7},\"end\":{\"line\":34,\"column\":1}},\"locations\":[{\"start\":{\"line\":26,\"column\":7},\"end\":{\"line\":34,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":4},\"end\":{\"line\":33,\"column\":3}},\"locations\":[{\"start\":{\"line\":31,\"column\":4},\"end\":{\"line\":33,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":36,\"loc\":{\"start\":{\"line\":36,\"column\":7},\"end\":{\"line\":110,\"column\":1}},\"locations\":[{\"start\":{\"line\":36,\"column\":7},\"end\":{\"line\":110,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":-1},\"end\":{\"line\":55,\"column\":20}},\"locations\":[{\"start\":{\"line\":51,\"column\":-1},\"end\":{\"line\":55,\"column\":20}}]},\"4\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":20},\"end\":{\"line\":57,\"column\":3}},\"locations\":[{\"start\":{\"line\":55,\"column\":20},\"end\":{\"line\":57,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":-1},\"end\":{\"line\":98,\"column\":3}},\"locations\":[{\"start\":{\"line\":58,\"column\":-1},\"end\":{\"line\":98,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":8},\"end\":{\"line\":83,\"column\":7}},\"locations\":[{\"start\":{\"line\":81,\"column\":8},\"end\":{\"line\":83,\"column\":7}}]},\"7\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":27},\"end\":{\"line\":88,\"column\":5}},\"locations\":[{\"start\":{\"line\":86,\"column\":27},\"end\":{\"line\":88,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":-1},\"end\":{\"line\":95,\"column\":37}},\"locations\":[{\"start\":{\"line\":92,\"column\":-1},\"end\":{\"line\":95,\"column\":37}}]},\"9\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":-1},\"end\":{\"line\":100,\"column\":29}},\"locations\":[{\"start\":{\"line\":99,\"column\":-1},\"end\":{\"line\":100,\"column\":29}}]},\"10\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":29},\"end\":{\"line\":106,\"column\":3}},\"locations\":[{\"start\":{\"line\":100,\"column\":29},\"end\":{\"line\":106,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":-1},\"end\":{\"line\":110,\"column\":1}},\"locations\":[{\"start\":{\"line\":107,\"column\":-1},\"end\":{\"line\":110,\"column\":1}}]},\"12\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":21},\"end\":{\"line\":49,\"column\":5}},\"locations\":[{\"start\":{\"line\":46,\"column\":21},\"end\":{\"line\":49,\"column\":5}}]},\"13\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":-1},\"end\":{\"line\":49,\"column\":5}},\"locations\":[{\"start\":{\"line\":48,\"column\":-1},\"end\":{\"line\":49,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":144,\"column\":1}},\"locations\":[{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":144,\"column\":1}}]},\"15\":{\"type\":\"branch\",\"line\":119,\"loc\":{\"start\":{\"line\":119,\"column\":28},\"end\":{\"line\":123,\"column\":9}},\"locations\":[{\"start\":{\"line\":119,\"column\":28},\"end\":{\"line\":123,\"column\":9}}]},\"16\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":5},\"end\":{\"line\":123,\"column\":9}},\"locations\":[{\"start\":{\"line\":122,\"column\":5},\"end\":{\"line\":123,\"column\":9}}]},\"17\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":3},\"end\":{\"line\":141,\"column\":3}},\"locations\":[{\"start\":{\"line\":123,\"column\":3},\"end\":{\"line\":141,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":38},\"end\":{\"line\":123,\"column\":56}},\"locations\":[{\"start\":{\"line\":123,\"column\":38},\"end\":{\"line\":123,\"column\":56}}]},\"19\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":58},\"end\":{\"line\":141,\"column\":3}},\"locations\":[{\"start\":{\"line\":123,\"column\":58},\"end\":{\"line\":141,\"column\":3}}]},\"20\":{\"type\":\"branch\",\"line\":124,\"loc\":{\"start\":{\"line\":124,\"column\":30},\"end\":{\"line\":126,\"column\":5}},\"locations\":[{\"start\":{\"line\":124,\"column\":30},\"end\":{\"line\":126,\"column\":5}}]},\"21\":{\"type\":\"branch\",\"line\":127,\"loc\":{\"start\":{\"line\":127,\"column\":32},\"end\":{\"line\":133,\"column\":5}},\"locations\":[{\"start\":{\"line\":127,\"column\":32},\"end\":{\"line\":133,\"column\":5}}]},\"22\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":-1},\"end\":{\"line\":133,\"column\":5}},\"locations\":[{\"start\":{\"line\":133,\"column\":-1},\"end\":{\"line\":133,\"column\":5}}]},\"23\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":-1},\"end\":{\"line\":140,\"column\":6}},\"locations\":[{\"start\":{\"line\":134,\"column\":-1},\"end\":{\"line\":140,\"column\":6}}]},\"24\":{\"type\":\"branch\",\"line\":141,\"loc\":{\"start\":{\"line\":141,\"column\":-1},\"end\":{\"line\":141,\"column\":3}},\"locations\":[{\"start\":{\"line\":141,\"column\":-1},\"end\":{\"line\":141,\"column\":3}}]},\"25\":{\"type\":\"branch\",\"line\":142,\"loc\":{\"start\":{\"line\":142,\"column\":-1},\"end\":{\"line\":144,\"column\":1}},\"locations\":[{\"start\":{\"line\":142,\"column\":-1},\"end\":{\"line\":144,\"column\":1}}]},\"26\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":16},\"end\":{\"line\":121,\"column\":80}},\"locations\":[{\"start\":{\"line\":121,\"column\":16},\"end\":{\"line\":121,\"column\":80}}]},\"27\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":8},\"end\":{\"line\":131,\"column\":32}},\"locations\":[{\"start\":{\"line\":131,\"column\":8},\"end\":{\"line\":131,\"column\":32}}]},\"28\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":43},\"end\":{\"line\":134,\"column\":73}},\"locations\":[{\"start\":{\"line\":134,\"column\":43},\"end\":{\"line\":134,\"column\":73}}]},\"29\":{\"type\":\"branch\",\"line\":136,\"loc\":{\"start\":{\"line\":136,\"column\":15},\"end\":{\"line\":139,\"column\":7}},\"locations\":[{\"start\":{\"line\":136,\"column\":15},\"end\":{\"line\":139,\"column\":7}}]},\"30\":{\"type\":\"branch\",\"line\":139,\"loc\":{\"start\":{\"line\":139,\"column\":-1},\"end\":{\"line\":139,\"column\":7}},\"locations\":[{\"start\":{\"line\":139,\"column\":-1},\"end\":{\"line\":139,\"column\":7}}]},\"31\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":7},\"end\":{\"line\":189,\"column\":1}},\"locations\":[{\"start\":{\"line\":148,\"column\":7},\"end\":{\"line\":189,\"column\":1}}]},\"32\":{\"type\":\"branch\",\"line\":156,\"loc\":{\"start\":{\"line\":156,\"column\":12},\"end\":{\"line\":166,\"column\":3}},\"locations\":[{\"start\":{\"line\":156,\"column\":12},\"end\":{\"line\":166,\"column\":3}}]},\"33\":{\"type\":\"branch\",\"line\":184,\"loc\":{\"start\":{\"line\":184,\"column\":4},\"end\":{\"line\":186,\"column\":3}},\"locations\":[{\"start\":{\"line\":184,\"column\":4},\"end\":{\"line\":186,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":7},\"end\":{\"line\":243,\"column\":1}},\"locations\":[{\"start\":{\"line\":191,\"column\":7},\"end\":{\"line\":243,\"column\":1}}]},\"35\":{\"type\":\"branch\",\"line\":196,\"loc\":{\"start\":{\"line\":196,\"column\":34},\"end\":{\"line\":198,\"column\":3}},\"locations\":[{\"start\":{\"line\":196,\"column\":34},\"end\":{\"line\":198,\"column\":3}}]},\"36\":{\"type\":\"branch\",\"line\":201,\"loc\":{\"start\":{\"line\":201,\"column\":12},\"end\":{\"line\":208,\"column\":3}},\"locations\":[{\"start\":{\"line\":201,\"column\":12},\"end\":{\"line\":208,\"column\":3}}]},\"37\":{\"type\":\"branch\",\"line\":236,\"loc\":{\"start\":{\"line\":236,\"column\":-1},\"end\":{\"line\":237,\"column\":19}},\"locations\":[{\"start\":{\"line\":236,\"column\":-1},\"end\":{\"line\":237,\"column\":19}}]},\"38\":{\"type\":\"branch\",\"line\":237,\"loc\":{\"start\":{\"line\":237,\"column\":15},\"end\":{\"line\":237,\"column\":36}},\"locations\":[{\"start\":{\"line\":237,\"column\":15},\"end\":{\"line\":237,\"column\":36}}]},\"39\":{\"type\":\"branch\",\"line\":237,\"loc\":{\"start\":{\"line\":237,\"column\":38},\"end\":{\"line\":240,\"column\":3}},\"locations\":[{\"start\":{\"line\":237,\"column\":38},\"end\":{\"line\":240,\"column\":3}}]},\"40\":{\"type\":\"branch\",\"line\":241,\"loc\":{\"start\":{\"line\":241,\"column\":-1},\"end\":{\"line\":243,\"column\":1}},\"locations\":[{\"start\":{\"line\":241,\"column\":-1},\"end\":{\"line\":243,\"column\":1}}]},\"41\":{\"type\":\"branch\",\"line\":217,\"loc\":{\"start\":{\"line\":217,\"column\":10},\"end\":{\"line\":217,\"column\":32}},\"locations\":[{\"start\":{\"line\":217,\"column\":10},\"end\":{\"line\":217,\"column\":32}}]},\"42\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":10},\"end\":{\"line\":228,\"column\":5}},\"locations\":[{\"start\":{\"line\":218,\"column\":10},\"end\":{\"line\":228,\"column\":5}}]},\"43\":{\"type\":\"branch\",\"line\":222,\"loc\":{\"start\":{\"line\":222,\"column\":8},\"end\":{\"line\":227,\"column\":7}},\"locations\":[{\"start\":{\"line\":222,\"column\":8},\"end\":{\"line\":227,\"column\":7}}]},\"44\":{\"type\":\"branch\",\"line\":229,\"loc\":{\"start\":{\"line\":229,\"column\":11},\"end\":{\"line\":231,\"column\":5}},\"locations\":[{\"start\":{\"line\":229,\"column\":11},\"end\":{\"line\":231,\"column\":5}}]}},\"b\":{\"0\":[5],\"1\":[0],\"2\":[9],\"3\":[7],\"4\":[0],\"5\":[7],\"6\":[0],\"7\":[0],\"8\":[5],\"9\":[5],\"10\":[0],\"11\":[5],\"12\":[9],\"13\":[7],\"14\":[164],\"15\":[12],\"16\":[10],\"17\":[152],\"18\":[66],\"19\":[66],\"20\":[0],\"21\":[14],\"22\":[10],\"23\":[62],\"24\":[58],\"25\":[144],\"26\":[12],\"27\":[10],\"28\":[145],\"29\":[145],\"30\":[139],\"31\":[5],\"32\":[0],\"33\":[0],\"34\":[16],\"35\":[0],\"36\":[0],\"37\":[10],\"38\":[0],\"39\":[0],\"40\":[10],\"41\":[10],\"42\":[10],\"43\":[0],\"44\":[6]},\"fnMap\":{\"0\":{\"name\":\"createIPFSFile\",\"decl\":{\"start\":{\"line\":26,\"column\":7},\"end\":{\"line\":34,\"column\":1}},\"loc\":{\"start\":{\"line\":26,\"column\":7},\"end\":{\"line\":34,\"column\":1}},\"line\":26},\"1\":{\"name\":\"uploadToIpfs\",\"decl\":{\"start\":{\"line\":36,\"column\":7},\"end\":{\"line\":110,\"column\":1}},\"loc\":{\"start\":{\"line\":36,\"column\":7},\"end\":{\"line\":110,\"column\":1}},\"line\":36},\"2\":{\"name\":\"replaceFileReferences\",\"decl\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":144,\"column\":1}},\"loc\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":144,\"column\":1}},\"line\":113},\"3\":{\"name\":\"uploadFiles\",\"decl\":{\"start\":{\"line\":148,\"column\":7},\"end\":{\"line\":189,\"column\":1}},\"loc\":{\"start\":{\"line\":148,\"column\":7},\"end\":{\"line\":189,\"column\":1}},\"line\":148},\"4\":{\"name\":\"uploadFile\",\"decl\":{\"start\":{\"line\":191,\"column\":7},\"end\":{\"line\":243,\"column\":1}},\"loc\":{\"start\":{\"line\":191,\"column\":7},\"end\":{\"line\":243,\"column\":1}},\"line\":191}},\"f\":{\"0\":5,\"1\":9,\"2\":164,\"3\":5,\"4\":16}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/index.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":32}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":32}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":32}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":32}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":32}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/client/http.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/client/http.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":86}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":21}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":11}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":32}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":33}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":28}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":31}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":23}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":7}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":3}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":89}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":56}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":21}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":15}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":13}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":13}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":7}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":44}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":46}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":5}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":51}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":0,\"27\":0,\"28\":1,\"29\":1,\"30\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":17,\"column\":3}},\"locations\":[{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":17,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"locations\":[{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":30,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":43},\"end\":{\"line\":28,\"column\":5}},\"locations\":[{\"start\":{\"line\":26,\"column\":43},\"end\":{\"line\":28,\"column\":5}}]}},\"b\":{\"0\":[1],\"1\":[1],\"2\":[0]},\"fnMap\":{\"0\":{\"name\":\"HttpJsonRpcClient\",\"decl\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":17,\"column\":3}},\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":17,\"column\":3}},\"line\":12},\"1\":{\"name\":\"send\",\"decl\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"line\":19}},\"f\":{\"0\":1,\"1\":1}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/client/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/client/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":23}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":21}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/client/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/client/types.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":29}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":17}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":17}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":13}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":1}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":54}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":22}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":47}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":65}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":29}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":12}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":1}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":76}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":32}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":29}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":10}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":17}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":20}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":15}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":4}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":89}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":32,\"column\":89}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":32,\"column\":89}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":32,\"column\":89}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":32,\"column\":89}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/client/ws.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/client/ws.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":65}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":11}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":30}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":100}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":44}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":25}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":21}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":15}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":3}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":36}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":27}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":32}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":42}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":42}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":23}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":19}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":3}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":19}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":9}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":45}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":47}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":46}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":9}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":44}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":48}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":21}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":27}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":5}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":3}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":89}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":23}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":68}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":39}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":48}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":48}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":7}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":3}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":19}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":28}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":21}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":57}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":33}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":0}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":103}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":28}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":21}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":13}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":4}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":66}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":9}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":47}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":80}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":57}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":38}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":25}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":29}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":16}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":31}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":9}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":7}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":17}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":23}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":5}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":4}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":0,\"39\":0,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":0,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":0,\"79\":0,\"80\":1,\"81\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":26,\"column\":3}},\"locations\":[{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":26,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":26},\"end\":{\"line\":64,\"column\":3}},\"locations\":[{\"start\":{\"line\":57,\"column\":26},\"end\":{\"line\":64,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":-1},\"end\":{\"line\":64,\"column\":3}},\"locations\":[{\"start\":{\"line\":59,\"column\":-1},\"end\":{\"line\":64,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":28},\"end\":{\"line\":81,\"column\":3}},\"locations\":[{\"start\":{\"line\":66,\"column\":28},\"end\":{\"line\":81,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":24},\"end\":{\"line\":74,\"column\":15}},\"locations\":[{\"start\":{\"line\":72,\"column\":24},\"end\":{\"line\":74,\"column\":15}}]},\"5\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":6},\"end\":{\"line\":80,\"column\":5}},\"locations\":[{\"start\":{\"line\":78,\"column\":6},\"end\":{\"line\":80,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"locations\":[{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":41,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":6},\"end\":{\"line\":40,\"column\":5}},\"locations\":[{\"start\":{\"line\":38,\"column\":6},\"end\":{\"line\":40,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":33},\"end\":{\"line\":34,\"column\":7}},\"locations\":[{\"start\":{\"line\":32,\"column\":33},\"end\":{\"line\":34,\"column\":7}}]},\"9\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":26},\"end\":{\"line\":33,\"column\":45}},\"locations\":[{\"start\":{\"line\":33,\"column\":26},\"end\":{\"line\":33,\"column\":45}}]},\"10\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":50,\"column\":3}},\"locations\":[{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":50,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":26},\"end\":{\"line\":49,\"column\":5}},\"locations\":[{\"start\":{\"line\":47,\"column\":26},\"end\":{\"line\":49,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"locations\":[{\"start\":{\"line\":52,\"column\":2},\"end\":{\"line\":55,\"column\":3}}]}},\"b\":{\"0\":[1],\"1\":[1],\"2\":[0],\"3\":[1],\"4\":[0],\"5\":[0],\"6\":[1],\"7\":[0],\"8\":[1],\"9\":[1],\"10\":[1],\"11\":[1],\"12\":[1]},\"fnMap\":{\"0\":{\"name\":\"with\",\"decl\":{\"start\":{\"line\":9,\"column\":9},\"end\":{\"line\":15,\"column\":3}},\"loc\":{\"start\":{\"line\":9,\"column\":9},\"end\":{\"line\":15,\"column\":3}},\"line\":9},\"1\":{\"name\":\"WsJsonRpcClient\",\"decl\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":26,\"column\":3}},\"loc\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":26,\"column\":3}},\"line\":23},\"2\":{\"name\":\"WsJsonRpcClient.onSocketClose\",\"decl\":{\"start\":{\"line\":57,\"column\":26},\"end\":{\"line\":64,\"column\":3}},\"loc\":{\"start\":{\"line\":57,\"column\":26},\"end\":{\"line\":64,\"column\":3}},\"line\":57},\"3\":{\"name\":\"WsJsonRpcClient.onSocketMessage\",\"decl\":{\"start\":{\"line\":66,\"column\":28},\"end\":{\"line\":81,\"column\":3}},\"loc\":{\"start\":{\"line\":66,\"column\":28},\"end\":{\"line\":81,\"column\":3}},\"line\":66},\"4\":{\"name\":\"connect\",\"decl\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"loc\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"line\":28},\"5\":{\"name\":\"_ws.onopen\",\"decl\":{\"start\":{\"line\":33,\"column\":26},\"end\":{\"line\":33,\"column\":45}},\"loc\":{\"start\":{\"line\":33,\"column\":26},\"end\":{\"line\":33,\"column\":45}},\"line\":33},\"6\":{\"name\":\"send\",\"decl\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":50,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":50,\"column\":3}},\"line\":43},\"7\":{\"name\":\"destroy\",\"decl\":{\"start\":{\"line\":52,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"loc\":{\"start\":{\"line\":52,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"line\":52}},\"f\":{\"0\":0,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/jsonrpc/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":60}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":73}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":109}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":76}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":42}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":22}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":2,\"7\":2,\"8\":2,\"9\":2,\"10\":2},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":6,\"loc\":{\"start\":{\"line\":6,\"column\":7},\"end\":{\"line\":11,\"column\":1}},\"locations\":[{\"start\":{\"line\":6,\"column\":7},\"end\":{\"line\":11,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":7,\"loc\":{\"start\":{\"line\":7,\"column\":43},\"end\":{\"line\":7,\"column\":74}},\"locations\":[{\"start\":{\"line\":7,\"column\":43},\"end\":{\"line\":7,\"column\":74}}]},\"2\":{\"type\":\"branch\",\"line\":7,\"loc\":{\"start\":{\"line\":7,\"column\":75},\"end\":{\"line\":7,\"column\":108}},\"locations\":[{\"start\":{\"line\":7,\"column\":75},\"end\":{\"line\":7,\"column\":108}}]},\"3\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":37},\"end\":{\"line\":9,\"column\":41}},\"locations\":[{\"start\":{\"line\":9,\"column\":37},\"end\":{\"line\":9,\"column\":41}}]}},\"b\":{\"0\":[2],\"1\":[1],\"2\":[1],\"3\":[1]},\"fnMap\":{\"0\":{\"name\":\"getGenesisHash\",\"decl\":{\"start\":{\"line\":6,\"column\":7},\"end\":{\"line\":11,\"column\":1}},\"loc\":{\"start\":{\"line\":6,\"column\":7},\"end\":{\"line\":11,\"column\":1}},\"line\":6}},\"f\":{\"0\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":46}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":34}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":15}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":17}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":23}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":30}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":1}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":36}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":25}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":24}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":25}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":22}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":1}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":38}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":19}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":21}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":25}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":27}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":30}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":25}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":31}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":35}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":1}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":48}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":60}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":18}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":22}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":60}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":22}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":1}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":101}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":43}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":1}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":101}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":58}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":101}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":54}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":35}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":17}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":30}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":25}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":30}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":38}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":24}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":1}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":33}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":14}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":22}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":21}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":15}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":19}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":22}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":18}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":21}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":15}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":1}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":37}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":21}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":18}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":17}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":23}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":21}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":19}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":23}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":15}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":20}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":20}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":13}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":20}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":19}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":18}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":13}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":37}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":35}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":19}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":22}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":6}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":4}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":1}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":34}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":20}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":20}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":13}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":21}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":18}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":17}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":18}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":23}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":21}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":20}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":19}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":23}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":15}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":19}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":18}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":13}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":16}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":18}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":6}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":4}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":15}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":18}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":21}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":1}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":0}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":36}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":14}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":28}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":28}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":26}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":29}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":4}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":36}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":1}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":42}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":14}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":23}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":30}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":30}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":28}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":33}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":4}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":17}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":15}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":19}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":6}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":4}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":1}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":0}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":42}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":23}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":1}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":0}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":0}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":45}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":14}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":22}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":36}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":31}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":34}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":18}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":23}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":19}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":10}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":1}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":0}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":43}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":16}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":14}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":22}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":15}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":25}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":23}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":15}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":19}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":25}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":27}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":31}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":29}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":30}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":37}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":41}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":26}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":19}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":20}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":23}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":29}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":23}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":29}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":26}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":23}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":1}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":0}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":51}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":14}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":23}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":21}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":30}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":34}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":0,\"42\":0,\"43\":0,\"44\":1,\"45\":0,\"46\":0,\"47\":0,\"48\":1,\"49\":2,\"50\":2,\"51\":2,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":1,\"126\":1,\"127\":1,\"128\":1,\"129\":1,\"130\":1,\"131\":1,\"132\":1,\"133\":1,\"134\":1,\"135\":1,\"136\":1,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":1,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":1,\"156\":1,\"157\":1,\"158\":1,\"159\":1,\"160\":1,\"161\":1,\"162\":1,\"163\":1,\"164\":1,\"165\":1,\"166\":1,\"167\":1,\"168\":1,\"169\":1,\"170\":1,\"171\":1,\"172\":1,\"173\":1,\"174\":1,\"175\":1,\"176\":1,\"177\":1,\"178\":1,\"179\":1,\"180\":1,\"181\":1,\"182\":1,\"183\":1,\"184\":1,\"185\":1,\"186\":1,\"187\":1,\"188\":1,\"189\":1,\"190\":1,\"191\":1,\"192\":1,\"193\":1,\"194\":1,\"195\":1,\"196\":1,\"197\":1,\"198\":1,\"199\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"locations\":[{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":52,\"column\":1}}]}},\"b\":{\"0\":[2]},\"fnMap\":{\"0\":{\"name\":\"isProjectSpecV0_0_1\",\"decl\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":44,\"column\":1}},\"loc\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":44,\"column\":1}},\"line\":42},\"1\":{\"name\":\"isProjectSpecV0_2_0\",\"decl\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"loc\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"line\":46},\"2\":{\"name\":\"isProjectSpecV1_0_0\",\"decl\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"line\":50}},\"f\":{\"0\":0,\"1\":0,\"2\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/build.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/build.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":70}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":30}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":33}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":22}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":20}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":60}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":32}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":34}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":80}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":49}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":44}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":38}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":71}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":44}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":89}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":61}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":40}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":31}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":115}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":24}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":35}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":47}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":42}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":25}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":69}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":44}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":39}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":36}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":10}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":76}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":3}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":153}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":7}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":64}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":64}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":63}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":29}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":40}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":72}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":94}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":55}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":5}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":15}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":19}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":105}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":19}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":1}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":60}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":45}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":31}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":31}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":20}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":85}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":66}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":7}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":81}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":65}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":31}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":41}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":90}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":17}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":6}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":24}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":17}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":0}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":60}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":27}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":19}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":73}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":3}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":1}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":80}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":57}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":23}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":42}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":25}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":56}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":31}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":22}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":12}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":38}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":69}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":33}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":24}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":14}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":42}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":68}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":35}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":26}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":9}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":7}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":5}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":44}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":61}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":22}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":5}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":3}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":14}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":1}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":67}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":99}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":0}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":58}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":14}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":3}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":35}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":49}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":69}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":1}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":50}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":99}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":0}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":61}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":1}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":0}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":66}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":99}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":103}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":50}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":38}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":37,\"18\":37,\"19\":37,\"20\":37,\"21\":37,\"22\":1,\"23\":1,\"24\":1,\"25\":74,\"26\":74,\"27\":74,\"28\":1,\"29\":1,\"30\":32,\"31\":32,\"32\":32,\"33\":32,\"34\":0,\"35\":0,\"36\":32,\"37\":32,\"38\":32,\"39\":32,\"40\":0,\"41\":0,\"42\":32,\"43\":32,\"44\":32,\"45\":32,\"46\":32,\"47\":32,\"48\":32,\"49\":32,\"50\":32,\"51\":4,\"52\":4,\"53\":3,\"54\":3,\"55\":32,\"56\":1,\"57\":1,\"58\":1,\"59\":31,\"60\":31,\"61\":1,\"62\":1,\"63\":1,\"64\":38,\"65\":38,\"66\":38,\"67\":38,\"68\":38,\"69\":38,\"70\":38,\"71\":38,\"72\":38,\"73\":38,\"74\":38,\"75\":38,\"76\":38,\"77\":38,\"78\":38,\"79\":38,\"80\":38,\"81\":38,\"82\":38,\"83\":38,\"84\":38,\"85\":38,\"86\":0,\"87\":0,\"88\":38,\"89\":1,\"90\":1,\"91\":31,\"92\":31,\"93\":31,\"94\":31,\"95\":28,\"96\":28,\"97\":28,\"98\":28,\"99\":28,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":31,\"113\":3,\"114\":0,\"115\":0,\"116\":3,\"117\":3,\"118\":3,\"119\":3,\"120\":1,\"121\":4,\"122\":4,\"123\":4,\"124\":4,\"125\":0,\"126\":0,\"127\":4,\"128\":4,\"129\":4,\"130\":4,\"131\":4,\"132\":1,\"133\":35,\"134\":35,\"135\":35,\"136\":35,\"137\":35,\"138\":1,\"139\":3,\"140\":3,\"141\":3,\"142\":3,\"143\":3,\"144\":3},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":17,\"loc\":{\"start\":{\"line\":17,\"column\":29},\"end\":{\"line\":23,\"column\":88}},\"locations\":[{\"start\":{\"line\":17,\"column\":29},\"end\":{\"line\":23,\"column\":88}}]},\"1\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"locations\":[{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":7},\"end\":{\"line\":61,\"column\":1}},\"locations\":[{\"start\":{\"line\":30,\"column\":7},\"end\":{\"line\":61,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":41},\"end\":{\"line\":37,\"column\":9}},\"locations\":[{\"start\":{\"line\":34,\"column\":41},\"end\":{\"line\":37,\"column\":9}}]},\"4\":{\"type\":\"branch\",\"line\":40,\"loc\":{\"start\":{\"line\":40,\"column\":3},\"end\":{\"line\":42,\"column\":3}},\"locations\":[{\"start\":{\"line\":40,\"column\":3},\"end\":{\"line\":42,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":6},\"end\":{\"line\":49,\"column\":7}},\"locations\":[{\"start\":{\"line\":48,\"column\":6},\"end\":{\"line\":49,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":6},\"end\":{\"line\":49,\"column\":28}},\"locations\":[{\"start\":{\"line\":49,\"column\":6},\"end\":{\"line\":49,\"column\":28}}]},\"7\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":39},\"end\":{\"line\":55,\"column\":5}},\"locations\":[{\"start\":{\"line\":51,\"column\":39},\"end\":{\"line\":55,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":-1},\"end\":{\"line\":55,\"column\":5}},\"locations\":[{\"start\":{\"line\":54,\"column\":-1},\"end\":{\"line\":55,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":4},\"end\":{\"line\":59,\"column\":3}},\"locations\":[{\"start\":{\"line\":56,\"column\":4},\"end\":{\"line\":59,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":-1},\"end\":{\"line\":61,\"column\":1}},\"locations\":[{\"start\":{\"line\":60,\"column\":-1},\"end\":{\"line\":61,\"column\":1}}]},\"11\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":40},\"end\":{\"line\":53,\"column\":91}},\"locations\":[{\"start\":{\"line\":53,\"column\":40},\"end\":{\"line\":53,\"column\":91}}]},\"12\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":7},\"end\":{\"line\":89,\"column\":1}},\"locations\":[{\"start\":{\"line\":64,\"column\":7},\"end\":{\"line\":89,\"column\":1}}]},\"13\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":4},\"end\":{\"line\":88,\"column\":3}},\"locations\":[{\"start\":{\"line\":86,\"column\":4},\"end\":{\"line\":88,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":120,\"column\":1}},\"locations\":[{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":120,\"column\":1}}]},\"15\":{\"type\":\"branch\",\"line\":95,\"loc\":{\"start\":{\"line\":95,\"column\":41},\"end\":{\"line\":113,\"column\":9}},\"locations\":[{\"start\":{\"line\":95,\"column\":41},\"end\":{\"line\":113,\"column\":9}}]},\"16\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":5},\"end\":{\"line\":112,\"column\":5}},\"locations\":[{\"start\":{\"line\":100,\"column\":5},\"end\":{\"line\":112,\"column\":5}}]},\"17\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":3},\"end\":{\"line\":120,\"column\":1}},\"locations\":[{\"start\":{\"line\":113,\"column\":3},\"end\":{\"line\":120,\"column\":1}}]},\"18\":{\"type\":\"branch\",\"line\":114,\"loc\":{\"start\":{\"line\":114,\"column\":60},\"end\":{\"line\":116,\"column\":5}},\"locations\":[{\"start\":{\"line\":114,\"column\":60},\"end\":{\"line\":116,\"column\":5}}]},\"19\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":132,\"column\":1}},\"locations\":[{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":132,\"column\":1}}]},\"20\":{\"type\":\"branch\",\"line\":125,\"loc\":{\"start\":{\"line\":125,\"column\":57},\"end\":{\"line\":127,\"column\":3}},\"locations\":[{\"start\":{\"line\":125,\"column\":57},\"end\":{\"line\":127,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":130,\"loc\":{\"start\":{\"line\":130,\"column\":12},\"end\":{\"line\":130,\"column\":48}},\"locations\":[{\"start\":{\"line\":130,\"column\":12},\"end\":{\"line\":130,\"column\":48}}]},\"22\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":9},\"end\":{\"line\":131,\"column\":67}},\"locations\":[{\"start\":{\"line\":131,\"column\":9},\"end\":{\"line\":131,\"column\":67}}]},\"23\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":138,\"column\":1}},\"locations\":[{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":138,\"column\":1}}]},\"24\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":145,\"column\":1}},\"locations\":[{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":145,\"column\":1}}]},\"25\":{\"type\":\"branch\",\"line\":142,\"loc\":{\"start\":{\"line\":142,\"column\":62},\"end\":{\"line\":142,\"column\":101}},\"locations\":[{\"start\":{\"line\":142,\"column\":62},\"end\":{\"line\":142,\"column\":101}}]}},\"b\":{\"0\":[37],\"1\":[74],\"2\":[32],\"3\":[0],\"4\":[0],\"5\":[31],\"6\":[1],\"7\":[4],\"8\":[3],\"9\":[1],\"10\":[31],\"11\":[7],\"12\":[38],\"13\":[0],\"14\":[31],\"15\":[28],\"16\":[0],\"17\":[3],\"18\":[0],\"19\":[4],\"20\":[0],\"21\":[8],\"22\":[7],\"23\":[35],\"24\":[3],\"25\":[6]},\"fnMap\":{\"0\":{\"name\":\"requireScriptWrapper\",\"decl\":{\"start\":{\"line\":17,\"column\":29},\"end\":{\"line\":23,\"column\":88}},\"loc\":{\"start\":{\"line\":17,\"column\":29},\"end\":{\"line\":23,\"column\":88}},\"line\":17},\"1\":{\"name\":\"formatPath\",\"decl\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"loc\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"line\":26},\"2\":{\"name\":\"buildManifestFromLocation\",\"decl\":{\"start\":{\"line\":30,\"column\":7},\"end\":{\"line\":61,\"column\":1}},\"loc\":{\"start\":{\"line\":30,\"column\":7},\"end\":{\"line\":61,\"column\":1}},\"line\":30},\"3\":{\"name\":\"generateManifestFromTs\",\"decl\":{\"start\":{\"line\":64,\"column\":7},\"end\":{\"line\":89,\"column\":1}},\"loc\":{\"start\":{\"line\":64,\"column\":7},\"end\":{\"line\":89,\"column\":1}},\"line\":64},\"4\":{\"name\":\"getTsManifest\",\"decl\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":120,\"column\":1}},\"loc\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":120,\"column\":1}},\"line\":92},\"5\":{\"name\":\"getTsManifestsFromMultichain\",\"decl\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":132,\"column\":1}},\"loc\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":132,\"column\":1}},\"line\":122},\"6\":{\"name\":\"isMultichain\",\"decl\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":138,\"column\":1}},\"loc\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":138,\"column\":1}},\"line\":134},\"7\":{\"name\":\"replaceTsReferencesInMultichain\",\"decl\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":145,\"column\":1}},\"loc\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":145,\"column\":1}},\"line\":140}},\"f\":{\"0\":37,\"1\":74,\"2\":32,\"3\":38,\"4\":31,\"5\":4,\"6\":35,\"7\":3}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/utils.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/cli/src/utils/utils.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":48}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":20}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":31}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":68}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":59}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":26}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":31}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":22}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":44}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":26}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":28}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":47}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":57}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":35}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":36}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":90}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":26}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":7}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":33}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":15}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":27}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":55}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":37}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":30}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":21}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":3}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":13}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":46}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":35}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":14}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":24}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":21}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":20}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":20}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":21}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":27}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":9}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":35}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":35}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":25}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":25}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":29}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":12}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":24}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":82}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":21}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":91}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":50}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":32}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":31}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":9}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":57}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":23}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":70}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":7}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":23}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":17}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":62}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":5}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":10}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":60}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":1}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":57}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":51}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":76}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":3}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":41}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":1}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":75}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":53}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":1}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":119}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":64}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":48}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":1}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":86}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":7}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":34}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":19}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":55}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":5}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":15}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":63}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":3}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":1}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":74}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":67}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":66}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":46}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":62}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":1}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":112}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":49}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":1}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":88}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":43}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":36}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":18}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":20}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":18}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":15}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":23}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":78}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":114}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":20}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":25}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":39}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":0}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":52}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":35}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":42}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":18}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":40}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":18}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":28}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":36}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":14}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":7}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":5}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":3}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":81}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":0}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":15}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":1}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":92}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":43}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":56}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":62}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":0}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":81}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":0}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":18}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":1}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":103}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":74}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":79}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":1}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":94}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":74}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":49}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":1}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":28}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":60}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":13}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":19}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":11}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":48}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":73}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":59}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":5}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":31}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":3}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":0}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":27}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":87}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":107}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":19}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":9}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":3}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":0}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":38}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":48}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":72}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":70}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":5}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":0}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":67}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":1}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":0}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":30}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":19}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":47}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":46}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":63}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":51}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":47}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":41}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":46}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":31}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":33}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":50}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":0}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":43}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":53}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":49}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":76}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":14}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":46}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":7}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":12}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":67}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":5}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":3}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":0}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":16}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":1}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":0}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":62}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":51}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":54}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":39}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":23}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":0}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":41}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":74}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":37}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":28}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":38}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":3}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":0}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":38}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":73}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":59}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":42}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":5}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":1}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":0}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":62}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":71}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":47}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":46}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":70}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":1}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":0}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":70}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":50}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":1}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":0}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":68}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":53}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":1,\"23\":1,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":1,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":1,\"40\":1,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":1,\"61\":1,\"62\":5,\"63\":5,\"64\":5,\"65\":5,\"66\":5,\"67\":5,\"68\":0,\"69\":0,\"70\":5,\"71\":5,\"72\":0,\"73\":0,\"74\":5,\"75\":0,\"76\":0,\"77\":5,\"78\":1,\"79\":7,\"80\":7,\"81\":7,\"82\":7,\"83\":0,\"84\":0,\"85\":0,\"86\":1,\"87\":0,\"88\":0,\"89\":0,\"90\":1,\"91\":1,\"92\":109,\"93\":109,\"94\":109,\"95\":1,\"96\":1,\"97\":142,\"98\":142,\"99\":142,\"100\":55,\"101\":54,\"102\":142,\"103\":1,\"104\":1,\"105\":142,\"106\":1,\"107\":1,\"108\":1,\"109\":42,\"110\":42,\"111\":42,\"112\":42,\"113\":1,\"114\":2,\"115\":2,\"116\":2,\"117\":1,\"118\":17,\"119\":17,\"120\":17,\"121\":1,\"122\":31,\"123\":31,\"124\":31,\"125\":31,\"126\":31,\"127\":31,\"128\":31,\"129\":31,\"130\":31,\"131\":31,\"132\":31,\"133\":31,\"134\":31,\"135\":31,\"136\":16110,\"137\":90,\"138\":90,\"139\":16110,\"140\":90,\"141\":90,\"142\":25,\"143\":25,\"144\":25,\"145\":90,\"146\":16110,\"147\":31,\"148\":31,\"149\":31,\"150\":31,\"151\":8,\"152\":8,\"153\":8,\"154\":8,\"155\":8,\"156\":8,\"157\":8,\"158\":8,\"159\":8,\"160\":2,\"161\":2,\"162\":2,\"163\":2,\"164\":6,\"165\":6,\"166\":6,\"167\":6,\"168\":1,\"169\":36,\"170\":36,\"171\":36,\"172\":36,\"173\":36,\"174\":36,\"175\":18,\"176\":4,\"177\":4,\"178\":14,\"179\":14,\"180\":18,\"181\":36,\"182\":6,\"183\":6,\"184\":6,\"185\":6,\"186\":6,\"187\":12,\"188\":12,\"189\":12,\"190\":24,\"191\":24,\"192\":12,\"193\":12,\"194\":12,\"195\":12,\"196\":1,\"197\":6,\"198\":6,\"199\":6,\"200\":6,\"201\":6,\"202\":6,\"203\":6,\"204\":6,\"205\":6,\"206\":6,\"207\":12,\"208\":8,\"209\":8,\"210\":8,\"211\":5,\"212\":5,\"213\":5,\"214\":8,\"215\":3,\"216\":3,\"217\":12,\"218\":4,\"219\":4,\"220\":12,\"221\":6,\"222\":6,\"223\":6,\"224\":1,\"225\":8,\"226\":8,\"227\":8,\"228\":8,\"229\":8,\"230\":8,\"231\":8,\"232\":21,\"233\":21,\"234\":15,\"235\":15,\"236\":15,\"237\":8,\"238\":8,\"239\":15,\"240\":15,\"241\":15,\"242\":8,\"243\":8,\"244\":1,\"245\":1,\"246\":3,\"247\":3,\"248\":3,\"249\":3,\"250\":3,\"251\":1,\"252\":19,\"253\":19,\"254\":19,\"255\":1,\"256\":19,\"257\":19,\"258\":19},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":78,\"column\":1}},\"locations\":[{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":78,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":16},\"end\":{\"line\":64,\"column\":32}},\"locations\":[{\"start\":{\"line\":64,\"column\":16},\"end\":{\"line\":64,\"column\":32}}]},\"2\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":22},\"end\":{\"line\":70,\"column\":7}},\"locations\":[{\"start\":{\"line\":68,\"column\":22},\"end\":{\"line\":70,\"column\":7}}]},\"3\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":6},\"end\":{\"line\":74,\"column\":5}},\"locations\":[{\"start\":{\"line\":72,\"column\":6},\"end\":{\"line\":74,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":3},\"end\":{\"line\":77,\"column\":3}},\"locations\":[{\"start\":{\"line\":75,\"column\":3},\"end\":{\"line\":77,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":80,\"loc\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":86,\"column\":1}},\"locations\":[{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":86,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":53},\"end\":{\"line\":82,\"column\":72}},\"locations\":[{\"start\":{\"line\":82,\"column\":53},\"end\":{\"line\":82,\"column\":72}}]},\"7\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":-1},\"end\":{\"line\":86,\"column\":1}},\"locations\":[{\"start\":{\"line\":84,\"column\":-1},\"end\":{\"line\":86,\"column\":1}}]},\"8\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":7},\"end\":{\"line\":95,\"column\":1}},\"locations\":[{\"start\":{\"line\":92,\"column\":7},\"end\":{\"line\":95,\"column\":1}}]},\"9\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":7},\"end\":{\"line\":106,\"column\":1}},\"locations\":[{\"start\":{\"line\":97,\"column\":7},\"end\":{\"line\":106,\"column\":1}}]},\"10\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":18},\"end\":{\"line\":102,\"column\":5}},\"locations\":[{\"start\":{\"line\":100,\"column\":18},\"end\":{\"line\":102,\"column\":5}}]},\"11\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":-1},\"end\":{\"line\":102,\"column\":5}},\"locations\":[{\"start\":{\"line\":102,\"column\":-1},\"end\":{\"line\":102,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":103,\"loc\":{\"start\":{\"line\":103,\"column\":4},\"end\":{\"line\":105,\"column\":3}},\"locations\":[{\"start\":{\"line\":103,\"column\":4},\"end\":{\"line\":105,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":113,\"column\":1}},\"locations\":[{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":113,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":117,\"column\":1}},\"locations\":[{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":117,\"column\":1}}]},\"15\":{\"type\":\"branch\",\"line\":119,\"loc\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"locations\":[{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":121,\"column\":1}}]},\"16\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":151,\"column\":1}},\"locations\":[{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":151,\"column\":1}}]},\"17\":{\"type\":\"branch\",\"line\":136,\"loc\":{\"start\":{\"line\":136,\"column\":51},\"end\":{\"line\":147,\"column\":3}},\"locations\":[{\"start\":{\"line\":136,\"column\":51},\"end\":{\"line\":147,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":137,\"loc\":{\"start\":{\"line\":137,\"column\":34},\"end\":{\"line\":140,\"column\":11}},\"locations\":[{\"start\":{\"line\":137,\"column\":34},\"end\":{\"line\":140,\"column\":11}}]},\"19\":{\"type\":\"branch\",\"line\":138,\"loc\":{\"start\":{\"line\":138,\"column\":27},\"end\":{\"line\":138,\"column\":42}},\"locations\":[{\"start\":{\"line\":138,\"column\":27},\"end\":{\"line\":138,\"column\":42}}]},\"20\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":5},\"end\":{\"line\":146,\"column\":5}},\"locations\":[{\"start\":{\"line\":140,\"column\":5},\"end\":{\"line\":146,\"column\":5}}]},\"21\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":39},\"end\":{\"line\":146,\"column\":5}},\"locations\":[{\"start\":{\"line\":140,\"column\":39},\"end\":{\"line\":146,\"column\":5}}]},\"22\":{\"type\":\"branch\",\"line\":142,\"loc\":{\"start\":{\"line\":142,\"column\":27},\"end\":{\"line\":145,\"column\":7}},\"locations\":[{\"start\":{\"line\":142,\"column\":27},\"end\":{\"line\":145,\"column\":7}}]},\"23\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":23},\"end\":{\"line\":148,\"column\":81}},\"locations\":[{\"start\":{\"line\":148,\"column\":23},\"end\":{\"line\":148,\"column\":81}}]},\"24\":{\"type\":\"branch\",\"line\":152,\"loc\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":160,\"column\":1}},\"locations\":[{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":160,\"column\":1}}]},\"25\":{\"type\":\"branch\",\"line\":154,\"loc\":{\"start\":{\"line\":154,\"column\":20},\"end\":{\"line\":154,\"column\":56}},\"locations\":[{\"start\":{\"line\":154,\"column\":20},\"end\":{\"line\":154,\"column\":56}}]},\"26\":{\"type\":\"branch\",\"line\":157,\"loc\":{\"start\":{\"line\":157,\"column\":26},\"end\":{\"line\":157,\"column\":81}},\"locations\":[{\"start\":{\"line\":157,\"column\":26},\"end\":{\"line\":157,\"column\":81}}]},\"27\":{\"type\":\"branch\",\"line\":161,\"loc\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":164,\"column\":1}},\"locations\":[{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":164,\"column\":1}}]},\"28\":{\"type\":\"branch\",\"line\":165,\"loc\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":168,\"column\":1}},\"locations\":[{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":168,\"column\":1}}]},\"29\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":196,\"column\":1}},\"locations\":[{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":196,\"column\":1}}]},\"30\":{\"type\":\"branch\",\"line\":175,\"loc\":{\"start\":{\"line\":175,\"column\":29},\"end\":{\"line\":175,\"column\":45}},\"locations\":[{\"start\":{\"line\":175,\"column\":29},\"end\":{\"line\":175,\"column\":45}}]},\"31\":{\"type\":\"branch\",\"line\":175,\"loc\":{\"start\":{\"line\":175,\"column\":47},\"end\":{\"line\":182,\"column\":26}},\"locations\":[{\"start\":{\"line\":175,\"column\":47},\"end\":{\"line\":182,\"column\":26}}]},\"32\":{\"type\":\"branch\",\"line\":176,\"loc\":{\"start\":{\"line\":176,\"column\":72},\"end\":{\"line\":178,\"column\":5}},\"locations\":[{\"start\":{\"line\":176,\"column\":72},\"end\":{\"line\":178,\"column\":5}}]},\"33\":{\"type\":\"branch\",\"line\":179,\"loc\":{\"start\":{\"line\":179,\"column\":-1},\"end\":{\"line\":180,\"column\":3}},\"locations\":[{\"start\":{\"line\":179,\"column\":-1},\"end\":{\"line\":180,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":182,\"loc\":{\"start\":{\"line\":182,\"column\":26},\"end\":{\"line\":187,\"column\":3}},\"locations\":[{\"start\":{\"line\":182,\"column\":26},\"end\":{\"line\":187,\"column\":3}}]},\"35\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":-1},\"end\":{\"line\":196,\"column\":1}},\"locations\":[{\"start\":{\"line\":188,\"column\":-1},\"end\":{\"line\":196,\"column\":1}}]},\"36\":{\"type\":\"branch\",\"line\":183,\"loc\":{\"start\":{\"line\":183,\"column\":26},\"end\":{\"line\":183,\"column\":85}},\"locations\":[{\"start\":{\"line\":183,\"column\":26},\"end\":{\"line\":183,\"column\":85}}]},\"37\":{\"type\":\"branch\",\"line\":184,\"loc\":{\"start\":{\"line\":184,\"column\":27},\"end\":{\"line\":184,\"column\":78}},\"locations\":[{\"start\":{\"line\":184,\"column\":27},\"end\":{\"line\":184,\"column\":78}}]},\"38\":{\"type\":\"branch\",\"line\":190,\"loc\":{\"start\":{\"line\":190,\"column\":29},\"end\":{\"line\":193,\"column\":3}},\"locations\":[{\"start\":{\"line\":190,\"column\":29},\"end\":{\"line\":193,\"column\":3}}]},\"39\":{\"type\":\"branch\",\"line\":198,\"loc\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":224,\"column\":1}},\"locations\":[{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":224,\"column\":1}}]},\"40\":{\"type\":\"branch\",\"line\":207,\"loc\":{\"start\":{\"line\":207,\"column\":30},\"end\":{\"line\":221,\"column\":3}},\"locations\":[{\"start\":{\"line\":207,\"column\":30},\"end\":{\"line\":221,\"column\":3}}]},\"41\":{\"type\":\"branch\",\"line\":208,\"loc\":{\"start\":{\"line\":208,\"column\":32},\"end\":{\"line\":218,\"column\":11}},\"locations\":[{\"start\":{\"line\":208,\"column\":32},\"end\":{\"line\":218,\"column\":11}}]},\"42\":{\"type\":\"branch\",\"line\":211,\"loc\":{\"start\":{\"line\":211,\"column\":31},\"end\":{\"line\":211,\"column\":40}},\"locations\":[{\"start\":{\"line\":211,\"column\":31},\"end\":{\"line\":211,\"column\":40}}]},\"43\":{\"type\":\"branch\",\"line\":211,\"loc\":{\"start\":{\"line\":211,\"column\":42},\"end\":{\"line\":215,\"column\":13}},\"locations\":[{\"start\":{\"line\":211,\"column\":42},\"end\":{\"line\":215,\"column\":13}}]},\"44\":{\"type\":\"branch\",\"line\":214,\"loc\":{\"start\":{\"line\":214,\"column\":61},\"end\":{\"line\":214,\"column\":75}},\"locations\":[{\"start\":{\"line\":214,\"column\":61},\"end\":{\"line\":214,\"column\":75}}]},\"45\":{\"type\":\"branch\",\"line\":215,\"loc\":{\"start\":{\"line\":215,\"column\":7},\"end\":{\"line\":217,\"column\":7}},\"locations\":[{\"start\":{\"line\":215,\"column\":7},\"end\":{\"line\":217,\"column\":7}}]},\"46\":{\"type\":\"branch\",\"line\":216,\"loc\":{\"start\":{\"line\":216,\"column\":39},\"end\":{\"line\":216,\"column\":45}},\"locations\":[{\"start\":{\"line\":216,\"column\":39},\"end\":{\"line\":216,\"column\":45}}]},\"47\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":5},\"end\":{\"line\":220,\"column\":5}},\"locations\":[{\"start\":{\"line\":218,\"column\":5},\"end\":{\"line\":220,\"column\":5}}]},\"48\":{\"type\":\"branch\",\"line\":226,\"loc\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":244,\"column\":1}},\"locations\":[{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":244,\"column\":1}}]},\"49\":{\"type\":\"branch\",\"line\":232,\"loc\":{\"start\":{\"line\":232,\"column\":40},\"end\":{\"line\":237,\"column\":3}},\"locations\":[{\"start\":{\"line\":232,\"column\":40},\"end\":{\"line\":237,\"column\":3}}]},\"50\":{\"type\":\"branch\",\"line\":234,\"loc\":{\"start\":{\"line\":234,\"column\":31},\"end\":{\"line\":234,\"column\":37}},\"locations\":[{\"start\":{\"line\":234,\"column\":31},\"end\":{\"line\":234,\"column\":37}}]},\"51\":{\"type\":\"branch\",\"line\":235,\"loc\":{\"start\":{\"line\":235,\"column\":-1},\"end\":{\"line\":237,\"column\":3}},\"locations\":[{\"start\":{\"line\":235,\"column\":-1},\"end\":{\"line\":237,\"column\":3}}]},\"52\":{\"type\":\"branch\",\"line\":239,\"loc\":{\"start\":{\"line\":239,\"column\":19},\"end\":{\"line\":243,\"column\":3}},\"locations\":[{\"start\":{\"line\":239,\"column\":19},\"end\":{\"line\":243,\"column\":3}}]},\"53\":{\"type\":\"branch\",\"line\":247,\"loc\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":251,\"column\":1}},\"locations\":[{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":251,\"column\":1}}]},\"54\":{\"type\":\"branch\",\"line\":250,\"loc\":{\"start\":{\"line\":250,\"column\":37},\"end\":{\"line\":250,\"column\":69}},\"locations\":[{\"start\":{\"line\":250,\"column\":37},\"end\":{\"line\":250,\"column\":69}}]},\"55\":{\"type\":\"branch\",\"line\":253,\"loc\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":255,\"column\":1}},\"locations\":[{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":255,\"column\":1}}]},\"56\":{\"type\":\"branch\",\"line\":257,\"loc\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":259,\"column\":1}},\"locations\":[{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":259,\"column\":1}}]}},\"b\":{\"0\":[5],\"1\":[0],\"2\":[0],\"3\":[0],\"4\":[0],\"5\":[7],\"6\":[0],\"7\":[0],\"8\":[109],\"9\":[142],\"10\":[55],\"11\":[54],\"12\":[1],\"13\":[42],\"14\":[2],\"15\":[17],\"16\":[31],\"17\":[16110],\"18\":[90],\"19\":[25],\"20\":[16020],\"21\":[90],\"22\":[25],\"23\":[0],\"24\":[8],\"25\":[0],\"26\":[0],\"27\":[2],\"28\":[6],\"29\":[36],\"30\":[18],\"31\":[18],\"32\":[4],\"33\":[14],\"34\":[6],\"35\":[12],\"36\":[9],\"37\":[9],\"38\":[24],\"39\":[6],\"40\":[12],\"41\":[8],\"42\":[5],\"43\":[5],\"44\":[0],\"45\":[3],\"46\":[0],\"47\":[4],\"48\":[8],\"49\":[21],\"50\":[6],\"51\":[15],\"52\":[15],\"53\":[3],\"54\":[1],\"55\":[19],\"56\":[19]},\"fnMap\":{\"0\":{\"name\":\"delay\",\"decl\":{\"start\":{\"line\":18,\"column\":7},\"end\":{\"line\":22,\"column\":1}},\"loc\":{\"start\":{\"line\":18,\"column\":7},\"end\":{\"line\":22,\"column\":1}},\"line\":18},\"1\":{\"name\":\"valueOrPrompt\",\"decl\":{\"start\":{\"line\":24,\"column\":7},\"end\":{\"line\":31,\"column\":1}},\"loc\":{\"start\":{\"line\":24,\"column\":7},\"end\":{\"line\":31,\"column\":1}},\"line\":24},\"2\":{\"name\":\"addV\",\"decl\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"loc\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"line\":33},\"3\":{\"name\":\"promptWithDefaultValues\",\"decl\":{\"start\":{\"line\":41,\"column\":7},\"end\":{\"line\":60,\"column\":1}},\"loc\":{\"start\":{\"line\":41,\"column\":7},\"end\":{\"line\":60,\"column\":1}},\"line\":41},\"4\":{\"name\":\"checkToken\",\"decl\":{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":78,\"column\":1}},\"loc\":{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":78,\"column\":1}},\"line\":62},\"5\":{\"name\":\"errorHandle\",\"decl\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":86,\"column\":1}},\"loc\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":86,\"column\":1}},\"line\":80},\"6\":{\"name\":\"buildProjectKey\",\"decl\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":90,\"column\":1}},\"loc\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":90,\"column\":1}},\"line\":88},\"7\":{\"name\":\"renderTemplate\",\"decl\":{\"start\":{\"line\":92,\"column\":7},\"end\":{\"line\":95,\"column\":1}},\"loc\":{\"start\":{\"line\":92,\"column\":7},\"end\":{\"line\":95,\"column\":1}},\"line\":92},\"8\":{\"name\":\"prepareDirPath\",\"decl\":{\"start\":{\"line\":97,\"column\":7},\"end\":{\"line\":106,\"column\":1}},\"loc\":{\"start\":{\"line\":97,\"column\":7},\"end\":{\"line\":106,\"column\":1}},\"line\":97},\"9\":{\"name\":\"resolveToAbsolutePath\",\"decl\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":113,\"column\":1}},\"loc\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":113,\"column\":1}},\"line\":110},\"10\":{\"name\":\"isValidEnum\",\"decl\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":117,\"column\":1}},\"loc\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":117,\"column\":1}},\"line\":115},\"11\":{\"name\":\"findReplace\",\"decl\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"loc\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"line\":119},\"12\":{\"name\":\"findMatchingIndices\",\"decl\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":151,\"column\":1}},\"loc\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":151,\"column\":1}},\"line\":123},\"13\":{\"name\":\"findArrayIndicesTsManifest\",\"decl\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":160,\"column\":1}},\"loc\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":160,\"column\":1}},\"line\":152},\"14\":{\"name\":\"replaceArrayValueInTsManifest\",\"decl\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":164,\"column\":1}},\"loc\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":164,\"column\":1}},\"line\":161},\"15\":{\"name\":\"extractArrayValueFromTsManifest\",\"decl\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":168,\"column\":1}},\"loc\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":168,\"column\":1}},\"line\":165},\"16\":{\"name\":\"tsStringify\",\"decl\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":196,\"column\":1}},\"loc\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":196,\"column\":1}},\"line\":170},\"17\":{\"name\":\"extractFromTs\",\"decl\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":224,\"column\":1}},\"loc\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":224,\"column\":1}},\"line\":198},\"18\":{\"name\":\"splitArrayString\",\"decl\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":244,\"column\":1}},\"loc\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":244,\"column\":1}},\"line\":226},\"19\":{\"name\":\"validateEthereumTsManifest\",\"decl\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":251,\"column\":1}},\"loc\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":251,\"column\":1}},\"line\":247},\"20\":{\"name\":\"defaultYamlManifestPath\",\"decl\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":255,\"column\":1}},\"loc\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":255,\"column\":1}},\"line\":253},\"21\":{\"name\":\"defaultTSManifestPath\",\"decl\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":259,\"column\":1}},\"loc\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":259,\"column\":1}},\"line\":257}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":5,\"5\":7,\"6\":0,\"7\":109,\"8\":142,\"9\":42,\"10\":2,\"11\":17,\"12\":31,\"13\":8,\"14\":2,\"15\":6,\"16\":36,\"17\":6,\"18\":8,\"19\":3,\"20\":19,\"21\":19}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":26}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":23}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":25}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":24}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":28}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/load.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/load.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":47}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":45}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":36}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":88}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":96}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":97}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":29}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":25}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":59}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":51}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":6}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":25}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":30}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":31}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":30}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":26}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":5}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":91}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":25}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":34}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":67}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":68}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":5}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":22}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":10}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":47}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":3}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":52,\"9\":52,\"10\":52,\"11\":52,\"12\":52,\"13\":1,\"14\":3,\"15\":3,\"16\":3,\"17\":3,\"18\":3,\"19\":3,\"20\":3,\"21\":1,\"22\":3,\"23\":2,\"24\":2,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":2,\"30\":3,\"31\":1,\"32\":1,\"33\":3},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"locations\":[{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":13,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":15,\"loc\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"locations\":[{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":34,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":28},\"end\":{\"line\":21,\"column\":27}},\"locations\":[{\"start\":{\"line\":20,\"column\":28},\"end\":{\"line\":21,\"column\":27}}]},\"3\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":27},\"end\":{\"line\":22,\"column\":26}},\"locations\":[{\"start\":{\"line\":21,\"column\":27},\"end\":{\"line\":22,\"column\":26}}]},\"4\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":4},\"end\":{\"line\":31,\"column\":9}},\"locations\":[{\"start\":{\"line\":23,\"column\":4},\"end\":{\"line\":31,\"column\":9}}]},\"5\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":24},\"end\":{\"line\":29,\"column\":5}},\"locations\":[{\"start\":{\"line\":25,\"column\":24},\"end\":{\"line\":29,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":3},\"end\":{\"line\":33,\"column\":3}},\"locations\":[{\"start\":{\"line\":31,\"column\":3},\"end\":{\"line\":33,\"column\":3}}]}},\"b\":{\"0\":[52],\"1\":[3],\"2\":[1],\"3\":[1],\"4\":[2],\"5\":[0],\"6\":[1]},\"fnMap\":{\"0\":{\"name\":\"parseSubstrateProjectManifest\",\"decl\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"loc\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"line\":9},\"1\":{\"name\":\"parseChainTypes\",\"decl\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"loc\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"line\":15}},\"f\":{\"0\":52,\"1\":3}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/models.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/models.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":109}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":77}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":23}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":24}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":22}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":23}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":25}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":26}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":23}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":24}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":23}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":29}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":26}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":28}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":22}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":72}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":64}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":8}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":15}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":10}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":12}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":9}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":13}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":11}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":11}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":17}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":25}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":82}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":15}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":12}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":18}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":33}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":1}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":78}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":15}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":13}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":18}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":15}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":13}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":18}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":1}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":52}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":13}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":15}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":24}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":13}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":15}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":50}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":13}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":15}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":35}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":13}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":15}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":45}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":13}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":15}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":44}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":1}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":76}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":15}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":14}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":20}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":15}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":14}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":21}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":1}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":60}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":15}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":19}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":26}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":32}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":71}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":35}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":13}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":18}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":1}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":58}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":15}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":19}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":25}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":31}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":70}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":34}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":13}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":18}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":1}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":60}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":15}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":19}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":26}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":32}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":71}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":35}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":13}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":18}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":1}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":0}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":62}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":13}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":15}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":13}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":18}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":13}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":15}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":35}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":1}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":77}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":26}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":61}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":38}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":29}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":40}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":53}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":39}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":52}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":40}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":53}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":16}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":76}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":7}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":7}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":4}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":12}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":19}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":38}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":13}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":15}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":1}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":0}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":75}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":12}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":28}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":19}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":28}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":13}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":15}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":1}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":0}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":97}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":79}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":40}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":29}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":19}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":26}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":1}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":0}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":57}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":13}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":15}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":1}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":0}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":85}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":24}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":47}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":1}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":13}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":10}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":28}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":19}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":13}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":32}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":31}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":37}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":28}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":13}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":19}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":26}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":108,\"121\":108,\"122\":130,\"123\":130,\"124\":106,\"125\":130,\"126\":14,\"127\":130,\"128\":10,\"129\":130,\"130\":0,\"131\":130,\"132\":108,\"133\":1,\"134\":1,\"135\":1,\"136\":1,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":1,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":1,\"156\":1,\"157\":1,\"158\":1,\"159\":1,\"160\":1,\"161\":1,\"162\":1,\"163\":1,\"164\":1,\"165\":1,\"166\":1,\"167\":1,\"168\":1,\"169\":1,\"170\":1,\"171\":1,\"172\":1,\"173\":1,\"174\":1,\"175\":1,\"176\":1,\"177\":1,\"178\":1,\"179\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":90,\"loc\":{\"start\":{\"line\":90,\"column\":8},\"end\":{\"line\":90,\"column\":24}},\"locations\":[{\"start\":{\"line\":90,\"column\":8},\"end\":{\"line\":90,\"column\":24}}]},\"1\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":8},\"end\":{\"line\":101,\"column\":25}},\"locations\":[{\"start\":{\"line\":101,\"column\":8},\"end\":{\"line\":101,\"column\":25}}]},\"2\":{\"type\":\"branch\",\"line\":120,\"loc\":{\"start\":{\"line\":120,\"column\":13},\"end\":{\"line\":134,\"column\":3}},\"locations\":[{\"start\":{\"line\":120,\"column\":13},\"end\":{\"line\":134,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":24},\"end\":{\"line\":133,\"column\":5}},\"locations\":[{\"start\":{\"line\":122,\"column\":24},\"end\":{\"line\":133,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":124,\"loc\":{\"start\":{\"line\":124,\"column\":8},\"end\":{\"line\":125,\"column\":53}},\"locations\":[{\"start\":{\"line\":124,\"column\":8},\"end\":{\"line\":125,\"column\":53}}]},\"5\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":8},\"end\":{\"line\":127,\"column\":52}},\"locations\":[{\"start\":{\"line\":126,\"column\":8},\"end\":{\"line\":127,\"column\":52}}]},\"6\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":8},\"end\":{\"line\":129,\"column\":53}},\"locations\":[{\"start\":{\"line\":128,\"column\":8},\"end\":{\"line\":129,\"column\":53}}]},\"7\":{\"type\":\"branch\",\"line\":130,\"loc\":{\"start\":{\"line\":130,\"column\":8},\"end\":{\"line\":131,\"column\":76}},\"locations\":[{\"start\":{\"line\":130,\"column\":8},\"end\":{\"line\":131,\"column\":76}}]},\"8\":{\"type\":\"branch\",\"line\":144,\"loc\":{\"start\":{\"line\":144,\"column\":8},\"end\":{\"line\":144,\"column\":27}},\"locations\":[{\"start\":{\"line\":144,\"column\":8},\"end\":{\"line\":144,\"column\":27}}]},\"9\":{\"type\":\"branch\",\"line\":154,\"loc\":{\"start\":{\"line\":154,\"column\":8},\"end\":{\"line\":154,\"column\":28}},\"locations\":[{\"start\":{\"line\":154,\"column\":8},\"end\":{\"line\":154,\"column\":28}}]},\"10\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":8},\"end\":{\"line\":170,\"column\":27}},\"locations\":[{\"start\":{\"line\":170,\"column\":8},\"end\":{\"line\":170,\"column\":27}}]},\"11\":{\"type\":\"branch\",\"line\":173,\"loc\":{\"start\":{\"line\":173,\"column\":8},\"end\":{\"line\":173,\"column\":31}},\"locations\":[{\"start\":{\"line\":173,\"column\":8},\"end\":{\"line\":173,\"column\":31}}]},\"12\":{\"type\":\"branch\",\"line\":176,\"loc\":{\"start\":{\"line\":176,\"column\":8},\"end\":{\"line\":176,\"column\":27}},\"locations\":[{\"start\":{\"line\":176,\"column\":8},\"end\":{\"line\":176,\"column\":27}}]}},\"b\":{\"0\":[6],\"1\":[106],\"2\":[108],\"3\":[130],\"4\":[106],\"5\":[14],\"6\":[10],\"7\":[0],\"8\":[50],\"9\":[108],\"10\":[50],\"11\":[46],\"12\":[48]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":49}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":51}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":78}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":8}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":26}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":25}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":19}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":45}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":57}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":23}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":22}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":23}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":31}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":32}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":26}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":60}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":22}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":45}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":78}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":23}},\"locations\":[{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":23}}]}},\"b\":{\"0\":[21]},\"fnMap\":{\"0\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":23}},\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":23}},\"line\":12},\"1\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":20,\"column\":26}},\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":20,\"column\":26}},\"line\":20}},\"f\":{\"0\":21,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/utils.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/utils.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":8}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":30}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":28}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":22}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":26}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":23}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":29}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":27}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":28}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":19}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":25}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":57}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":27}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":78}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":67}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":72}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":59}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":78}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":67}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":72}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":59}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":1}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":77}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":67}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":71}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":58}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":79}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":71}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":47}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":113}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":88}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":53}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":37}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":21}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":21}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":78}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":102}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":1,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":1,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":1,\"36\":39,\"37\":39,\"38\":39,\"39\":39,\"40\":39,\"41\":1,\"42\":24,\"43\":24,\"44\":24,\"45\":1,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"locations\":[{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":41,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":40,\"loc\":{\"start\":{\"line\":40,\"column\":52},\"end\":{\"line\":40,\"column\":112}},\"locations\":[{\"start\":{\"line\":40,\"column\":52},\"end\":{\"line\":40,\"column\":112}}]},\"2\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"locations\":[{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":45,\"column\":1}}]}},\"b\":{\"0\":[39],\"1\":[11],\"2\":[24]},\"fnMap\":{\"0\":{\"name\":\"isBlockHandlerProcessor\",\"decl\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"loc\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"line\":19},\"1\":{\"name\":\"isEventHandlerProcessor\",\"decl\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":29,\"column\":1}},\"loc\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":29,\"column\":1}},\"line\":25},\"2\":{\"name\":\"isCallHandlerProcessor\",\"decl\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"loc\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"line\":31},\"3\":{\"name\":\"isCustomDs\",\"decl\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"loc\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"line\":37},\"4\":{\"name\":\"isRuntimeDs\",\"decl\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"loc\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"line\":43},\"5\":{\"name\":\"isSubstrateTemplates\",\"decl\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"loc\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"line\":47}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":39,\"4\":24,\"5\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/versioned/ProjectManifestVersioned.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/versioned/ProjectManifestVersioned.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":49}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":47}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":51}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":51}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":61}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":77}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":38}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":37}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":2}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":58}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":95}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":110}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":42}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":85}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":38}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":58}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":88}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":17}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":77}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":5}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":102}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":3}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":38}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":22}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":27}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":40}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":3}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":45}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":51}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":3}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":38}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":42}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":3}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":20}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":33}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":3}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":44}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":34}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":3}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":24}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":34}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":3}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":29}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":34}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":3}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":29}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":34}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":3}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":28}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":33}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":3}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":0,\"19\":0,\"20\":0,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":67,\"27\":67,\"28\":1,\"29\":1,\"30\":66,\"31\":66,\"32\":1,\"33\":1,\"34\":10,\"35\":10,\"36\":1,\"37\":1,\"38\":42,\"39\":42,\"40\":1,\"41\":1,\"42\":46,\"43\":46,\"44\":1,\"45\":1,\"46\":3,\"47\":3,\"48\":1,\"49\":1,\"50\":66,\"51\":66,\"52\":1,\"53\":1,\"54\":0,\"55\":0,\"56\":1,\"57\":1,\"58\":0,\"59\":0,\"60\":1,\"61\":1,\"62\":42,\"63\":42,\"64\":1,\"65\":1,\"66\":0,\"67\":0,\"68\":1,\"69\":1,\"70\":0,\"71\":0,\"72\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":32,\"column\":3}},\"locations\":[{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":32,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":16},\"end\":{\"line\":30,\"column\":5}},\"locations\":[{\"start\":{\"line\":28,\"column\":16},\"end\":{\"line\":30,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":-1},\"end\":{\"line\":32,\"column\":3}},\"locations\":[{\"start\":{\"line\":31,\"column\":-1},\"end\":{\"line\":32,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"locations\":[{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}},\"locations\":[{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":2},\"end\":{\"line\":44,\"column\":3}},\"locations\":[{\"start\":{\"line\":42,\"column\":2},\"end\":{\"line\":44,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":48,\"column\":3}},\"locations\":[{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":48,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"locations\":[{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":52,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":64,\"column\":3}},\"locations\":[{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":64,\"column\":3}}]}},\"b\":{\"0\":[67],\"1\":[1],\"2\":[66],\"3\":[10],\"4\":[42],\"5\":[46],\"6\":[3],\"7\":[66],\"8\":[42]},\"fnMap\":{\"0\":{\"name\":\"manifestIsV1_0_0\",\"decl\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"loc\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"line\":19},\"1\":{\"name\":\"SubstrateProjectManifestVersioned\",\"decl\":{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":32,\"column\":3}},\"loc\":{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":32,\"column\":3}},\"line\":26},\"2\":{\"name\":\"get asImpl\",\"decl\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":34},\"3\":{\"name\":\"get isV1_0_0\",\"decl\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}},\"line\":38},\"4\":{\"name\":\"get asV1_0_0\",\"decl\":{\"start\":{\"line\":42,\"column\":2},\"end\":{\"line\":44,\"column\":3}},\"loc\":{\"start\":{\"line\":42,\"column\":2},\"end\":{\"line\":44,\"column\":3}},\"line\":42},\"5\":{\"name\":\"toDeployment\",\"decl\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":48,\"column\":3}},\"loc\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":48,\"column\":3}},\"line\":46},\"6\":{\"name\":\"validate\",\"decl\":{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"loc\":{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"line\":50},\"7\":{\"name\":\"get dataSources\",\"decl\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"loc\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"line\":54},\"8\":{\"name\":\"get schema\",\"decl\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"line\":58},\"9\":{\"name\":\"get specVersion\",\"decl\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":64,\"column\":3}},\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":64,\"column\":3}},\"line\":62},\"10\":{\"name\":\"get description\",\"decl\":{\"start\":{\"line\":66,\"column\":2},\"end\":{\"line\":68,\"column\":3}},\"loc\":{\"start\":{\"line\":66,\"column\":2},\"end\":{\"line\":68,\"column\":3}},\"line\":66},\"11\":{\"name\":\"get repository\",\"decl\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"loc\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"line\":70}},\"f\":{\"0\":0,\"1\":67,\"2\":10,\"3\":42,\"4\":46,\"5\":3,\"6\":66,\"7\":0,\"8\":0,\"9\":42,\"10\":0,\"11\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/versioned/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/versioned/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":25}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/versioned/v1_0_0/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/versioned/v1_0_0/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/versioned/v1_0_0/model.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common-substrate/src/project/versioned/v1_0_0/model.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":8}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":23}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":11}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":21}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":26}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":17}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":23}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":17}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":29}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":23}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":8}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":28}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":29}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":27}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":28}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":33}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":22}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":95}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":86}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":108}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":73}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":42}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":61}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":118}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":15}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":113}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":20}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":74}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":116}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":36}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":44}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":20}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":73}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":3}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":1}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":120}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":13}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":15}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":117}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":13}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":15}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":62}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":13}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":19}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":38}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":17}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":13}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":19}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":35}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":19}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":1}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":45}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":45}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":15}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":58}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":13}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":18}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":19}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":23}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":15}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":24}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":15}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":12}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":37}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":1}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":80}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":23}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":15}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":24}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":1}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":60}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":26}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":60}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":54}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":5}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":73}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":4}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":19}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":45}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":42}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":13}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":19}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":39}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":22}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":12}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":19}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":46}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":20}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":23}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":85}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":6}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":36}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":4}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":74}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":15}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":12}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":19}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":45}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":20}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":23}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":84}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":6}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":36}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":4}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":71}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":1}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":38}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":51}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":43}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":1}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":17}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":28}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":3}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":18}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":22}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":46}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":20}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":23}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":85}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":6}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":36}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":4}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":74}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":35}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":32}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":15}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":13}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":16}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":13}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":18}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":19}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":23}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":19}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":15}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":12}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":19}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":45}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":20}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":23}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":84}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":6}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":36}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":4}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":71}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":13}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":19}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":39}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":22}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":0}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":15}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":13}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":33}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":25}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":0,\"35\":0,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":0,\"44\":0,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":66,\"92\":9,\"93\":9,\"94\":66,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":1,\"126\":1,\"127\":1,\"128\":1,\"129\":1,\"130\":1,\"131\":66,\"132\":66,\"133\":1,\"134\":1,\"135\":1,\"136\":1,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":1,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":1,\"156\":1,\"157\":1,\"158\":1,\"159\":1,\"160\":1,\"161\":1,\"162\":1,\"163\":1,\"164\":1,\"165\":1,\"166\":1,\"167\":1,\"168\":1,\"169\":1,\"170\":1,\"171\":1,\"172\":1,\"173\":1,\"174\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":8},\"end\":{\"line\":61,\"column\":37}},\"locations\":[{\"start\":{\"line\":61,\"column\":8},\"end\":{\"line\":61,\"column\":37}}]},\"1\":{\"type\":\"branch\",\"line\":65,\"loc\":{\"start\":{\"line\":65,\"column\":8},\"end\":{\"line\":65,\"column\":34}},\"locations\":[{\"start\":{\"line\":65,\"column\":8},\"end\":{\"line\":65,\"column\":34}}]},\"2\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":13},\"end\":{\"line\":72,\"column\":57}},\"locations\":[{\"start\":{\"line\":72,\"column\":13},\"end\":{\"line\":72,\"column\":57}}]},\"3\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":8},\"end\":{\"line\":76,\"column\":22}},\"locations\":[{\"start\":{\"line\":76,\"column\":8},\"end\":{\"line\":76,\"column\":22}}]},\"4\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":8},\"end\":{\"line\":85,\"column\":22}},\"locations\":[{\"start\":{\"line\":85,\"column\":8},\"end\":{\"line\":85,\"column\":22}}]},\"5\":{\"type\":\"branch\",\"line\":91,\"loc\":{\"start\":{\"line\":91,\"column\":13},\"end\":{\"line\":96,\"column\":3}},\"locations\":[{\"start\":{\"line\":91,\"column\":13},\"end\":{\"line\":96,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":32},\"end\":{\"line\":92,\"column\":57}},\"locations\":[{\"start\":{\"line\":92,\"column\":32},\"end\":{\"line\":92,\"column\":57}}]},\"7\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":59},\"end\":{\"line\":94,\"column\":5}},\"locations\":[{\"start\":{\"line\":92,\"column\":59},\"end\":{\"line\":94,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":98,\"loc\":{\"start\":{\"line\":98,\"column\":8},\"end\":{\"line\":98,\"column\":44}},\"locations\":[{\"start\":{\"line\":98,\"column\":8},\"end\":{\"line\":98,\"column\":44}}]},\"9\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":8},\"end\":{\"line\":102,\"column\":38}},\"locations\":[{\"start\":{\"line\":102,\"column\":8},\"end\":{\"line\":102,\"column\":38}}]},\"10\":{\"type\":\"branch\",\"line\":106,\"loc\":{\"start\":{\"line\":106,\"column\":8},\"end\":{\"line\":106,\"column\":43}},\"locations\":[{\"start\":{\"line\":106,\"column\":8},\"end\":{\"line\":106,\"column\":43}}]},\"11\":{\"type\":\"branch\",\"line\":117,\"loc\":{\"start\":{\"line\":117,\"column\":8},\"end\":{\"line\":117,\"column\":42}},\"locations\":[{\"start\":{\"line\":117,\"column\":8},\"end\":{\"line\":117,\"column\":42}}]},\"12\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":2},\"end\":{\"line\":133,\"column\":3}},\"locations\":[{\"start\":{\"line\":131,\"column\":2},\"end\":{\"line\":133,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":137,\"loc\":{\"start\":{\"line\":137,\"column\":8},\"end\":{\"line\":137,\"column\":43}},\"locations\":[{\"start\":{\"line\":137,\"column\":8},\"end\":{\"line\":137,\"column\":43}}]},\"14\":{\"type\":\"branch\",\"line\":145,\"loc\":{\"start\":{\"line\":145,\"column\":8},\"end\":{\"line\":145,\"column\":34}},\"locations\":[{\"start\":{\"line\":145,\"column\":8},\"end\":{\"line\":145,\"column\":34}}]},\"15\":{\"type\":\"branch\",\"line\":153,\"loc\":{\"start\":{\"line\":153,\"column\":8},\"end\":{\"line\":153,\"column\":22}},\"locations\":[{\"start\":{\"line\":153,\"column\":8},\"end\":{\"line\":153,\"column\":22}}]},\"16\":{\"type\":\"branch\",\"line\":158,\"loc\":{\"start\":{\"line\":158,\"column\":8},\"end\":{\"line\":158,\"column\":42}},\"locations\":[{\"start\":{\"line\":158,\"column\":8},\"end\":{\"line\":158,\"column\":42}}]},\"17\":{\"type\":\"branch\",\"line\":168,\"loc\":{\"start\":{\"line\":168,\"column\":8},\"end\":{\"line\":168,\"column\":38}},\"locations\":[{\"start\":{\"line\":168,\"column\":8},\"end\":{\"line\":168,\"column\":38}}]},\"18\":{\"type\":\"branch\",\"line\":173,\"loc\":{\"start\":{\"line\":173,\"column\":8},\"end\":{\"line\":173,\"column\":32}},\"locations\":[{\"start\":{\"line\":173,\"column\":8},\"end\":{\"line\":173,\"column\":32}}]}},\"b\":{\"0\":[132],\"1\":[132],\"2\":[123],\"3\":[32],\"4\":[16],\"5\":[66],\"6\":[11],\"7\":[9],\"8\":[66],\"9\":[66],\"10\":[135],\"11\":[20],\"12\":[66],\"13\":[135],\"14\":[66],\"15\":[66],\"16\":[20],\"17\":[66],\"18\":[15]},\"fnMap\":{\"0\":{\"name\":\"validate\",\"decl\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":34},\"1\":{\"name\":\"validate\",\"decl\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"line\":43},\"2\":{\"name\":\"Object.<anonymous>.__decorate.discriminator.property\",\"decl\":{\"start\":{\"line\":106,\"column\":8},\"end\":{\"line\":106,\"column\":43}},\"loc\":{\"start\":{\"line\":106,\"column\":8},\"end\":{\"line\":106,\"column\":43}},\"line\":106},\"3\":{\"name\":\"Object.<anonymous>.__decorate.discriminator.property\",\"decl\":{\"start\":{\"line\":117,\"column\":8},\"end\":{\"line\":117,\"column\":42}},\"loc\":{\"start\":{\"line\":117,\"column\":8},\"end\":{\"line\":117,\"column\":42}},\"line\":117},\"4\":{\"name\":\"ProjectManifestV1_0_0Impl\",\"decl\":{\"start\":{\"line\":131,\"column\":2},\"end\":{\"line\":133,\"column\":3}},\"loc\":{\"start\":{\"line\":131,\"column\":2},\"end\":{\"line\":133,\"column\":3}},\"line\":131},\"5\":{\"name\":\"Object.<anonymous>.__decorate.discriminator.property\",\"decl\":{\"start\":{\"line\":137,\"column\":8},\"end\":{\"line\":137,\"column\":43}},\"loc\":{\"start\":{\"line\":137,\"column\":8},\"end\":{\"line\":137,\"column\":43}},\"line\":137},\"6\":{\"name\":\"Object.<anonymous>.__decorate.discriminator.property\",\"decl\":{\"start\":{\"line\":158,\"column\":8},\"end\":{\"line\":158,\"column\":42}},\"loc\":{\"start\":{\"line\":158,\"column\":8},\"end\":{\"line\":158,\"column\":42}},\"line\":158}},\"f\":{\"0\":0,\"1\":0,\"2\":135,\"3\":20,\"4\":66,\"5\":135,\"6\":20}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/constants.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/constants.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":15}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":33}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":6}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":63}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":62}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":61}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":63}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":40}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":11}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":70}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":6}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":43}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":10}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":28}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":26}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":20}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":24}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":24}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":18}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":16}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":22}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":28}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":30}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":42}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":52}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":46}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":50}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":50}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":44}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":42}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":48}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":54}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":2}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":16}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":24}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":28}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":26}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":23}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":60}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":62}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":42}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":28}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":39}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":21}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":107}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":8,\"21\":8,\"22\":8,\"23\":8,\"24\":8,\"25\":8,\"26\":8,\"27\":8,\"28\":8,\"29\":8,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":8,\"45\":8,\"46\":8,\"47\":8,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"locations\":[{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":30,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"locations\":[{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":48,\"column\":1}}]}},\"b\":{\"0\":[8],\"1\":[8]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":26}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":26}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":28}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":29}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/multichain/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/multichain/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/multichain/models.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/multichain/models.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":71}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":39}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":59}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":48}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":82}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":18}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":22}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":25}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":21}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":13}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":35}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":19}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/database/databaseUtil.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/database/databaseUtil.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":45}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":43}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":83}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":68}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":62}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":52}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":78}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":114}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":17}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":66}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":17}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":20,\"9\":20,\"10\":20,\"11\":20,\"12\":20,\"13\":20,\"14\":0,\"15\":0,\"16\":20,\"17\":20},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":7},\"end\":{\"line\":18,\"column\":1}},\"locations\":[{\"start\":{\"line\":8,\"column\":7},\"end\":{\"line\":18,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":61},\"end\":{\"line\":12,\"column\":77}},\"locations\":[{\"start\":{\"line\":12,\"column\":61},\"end\":{\"line\":12,\"column\":77}}]},\"2\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":16},\"end\":{\"line\":16,\"column\":3}},\"locations\":[{\"start\":{\"line\":14,\"column\":16},\"end\":{\"line\":16,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":13,\"loc\":{\"start\":{\"line\":13,\"column\":49},\"end\":{\"line\":13,\"column\":112}},\"locations\":[{\"start\":{\"line\":13,\"column\":49},\"end\":{\"line\":13,\"column\":112}}]}},\"b\":{\"0\":[20],\"1\":[0],\"2\":[0],\"3\":[40]},\"fnMap\":{\"0\":{\"name\":\"getDbType\",\"decl\":{\"start\":{\"line\":8,\"column\":7},\"end\":{\"line\":18,\"column\":1}},\"loc\":{\"start\":{\"line\":8,\"column\":7},\"end\":{\"line\":18,\"column\":1}},\"line\":8}},\"f\":{\"0\":20}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/database/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/database/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":31}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":23}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":28}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":26}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":27}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/load.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/load.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":62}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":56}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":47}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":45}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":27}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":27}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":59}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":85}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":59}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":33}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":36}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":54}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":3}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":52}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":31}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":81}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":33}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":78}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":79}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":78}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":76}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":36}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":32}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":45}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":34}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":45}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":34}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":12}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":82}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":5}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":3}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":22}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":1}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":79}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":80}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":52}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":62}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":3}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":54}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":24}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":53}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":3}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":29}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":59}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":3}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":53}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":46}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":73}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":55}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":103}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":32}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":116}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":5}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":19}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":10}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":81}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":3}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":3}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":31}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":56}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":24}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":3}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":74}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":29}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":67}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":29}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":3}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":7}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":44}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":19}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":66}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":29}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":3}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":1}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":56}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":67}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":119}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":66}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":23}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":32}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":65}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":64}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":3}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":72,\"14\":72,\"15\":72,\"16\":0,\"17\":0,\"18\":72,\"19\":72,\"20\":72,\"21\":1,\"22\":83,\"23\":83,\"24\":83,\"25\":65,\"26\":65,\"27\":65,\"28\":65,\"29\":65,\"30\":65,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":65,\"38\":83,\"39\":83,\"40\":1,\"41\":41,\"42\":41,\"43\":41,\"44\":2,\"45\":2,\"46\":39,\"47\":41,\"48\":0,\"49\":0,\"50\":41,\"51\":0,\"52\":0,\"53\":39,\"54\":39,\"55\":1,\"56\":1,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":1,\"88\":1,\"89\":7,\"90\":7,\"91\":7,\"92\":7,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":7},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"locations\":[{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":21,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":35},\"end\":{\"line\":18,\"column\":3}},\"locations\":[{\"start\":{\"line\":16,\"column\":35},\"end\":{\"line\":18,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":40,\"column\":1}},\"locations\":[{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":40,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":32},\"end\":{\"line\":25,\"column\":75}},\"locations\":[{\"start\":{\"line\":25,\"column\":32},\"end\":{\"line\":25,\"column\":75}}]},\"4\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":77},\"end\":{\"line\":38,\"column\":3}},\"locations\":[{\"start\":{\"line\":25,\"column\":77},\"end\":{\"line\":38,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":54},\"end\":{\"line\":26,\"column\":77}},\"locations\":[{\"start\":{\"line\":26,\"column\":54},\"end\":{\"line\":26,\"column\":77}}]},\"6\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":56},\"end\":{\"line\":27,\"column\":76}},\"locations\":[{\"start\":{\"line\":27,\"column\":56},\"end\":{\"line\":27,\"column\":76}}]},\"7\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":56},\"end\":{\"line\":28,\"column\":74}},\"locations\":[{\"start\":{\"line\":28,\"column\":56},\"end\":{\"line\":28,\"column\":74}}]},\"8\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":5},\"end\":{\"line\":37,\"column\":5}},\"locations\":[{\"start\":{\"line\":31,\"column\":5},\"end\":{\"line\":37,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"locations\":[{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":55,\"column\":1}}]},\"10\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":51},\"end\":{\"line\":46,\"column\":3}},\"locations\":[{\"start\":{\"line\":44,\"column\":51},\"end\":{\"line\":46,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":-1},\"end\":{\"line\":48,\"column\":23}},\"locations\":[{\"start\":{\"line\":47,\"column\":-1},\"end\":{\"line\":48,\"column\":23}}]},\"12\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":23},\"end\":{\"line\":50,\"column\":3}},\"locations\":[{\"start\":{\"line\":48,\"column\":23},\"end\":{\"line\":50,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":-1},\"end\":{\"line\":51,\"column\":28}},\"locations\":[{\"start\":{\"line\":51,\"column\":-1},\"end\":{\"line\":51,\"column\":28}}]},\"14\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":28},\"end\":{\"line\":53,\"column\":3}},\"locations\":[{\"start\":{\"line\":51,\"column\":28},\"end\":{\"line\":53,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":-1},\"end\":{\"line\":55,\"column\":1}},\"locations\":[{\"start\":{\"line\":54,\"column\":-1},\"end\":{\"line\":55,\"column\":1}}]},\"16\":{\"type\":\"branch\",\"line\":90,\"loc\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"locations\":[{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":98,\"column\":1}}]},\"17\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":22},\"end\":{\"line\":97,\"column\":3}},\"locations\":[{\"start\":{\"line\":93,\"column\":22},\"end\":{\"line\":97,\"column\":3}}]}},\"b\":{\"0\":[72],\"1\":[0],\"2\":[83],\"3\":[80],\"4\":[65],\"5\":[0],\"6\":[0],\"7\":[0],\"8\":[0],\"9\":[41],\"10\":[2],\"11\":[39],\"12\":[0],\"13\":[39],\"14\":[0],\"15\":[39],\"16\":[7],\"17\":[0]},\"fnMap\":{\"0\":{\"name\":\"loadFromJsonOrYaml\",\"decl\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"loc\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"line\":14},\"1\":{\"name\":\"getManifestPath\",\"decl\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":40,\"column\":1}},\"loc\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":40,\"column\":1}},\"line\":23},\"2\":{\"name\":\"getSchemaPath\",\"decl\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"loc\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"line\":42},\"3\":{\"name\":\"getProjectNetwork\",\"decl\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"loc\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"line\":58},\"4\":{\"name\":\"getFileContent\",\"decl\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":87,\"column\":1}},\"loc\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":87,\"column\":1}},\"line\":75},\"5\":{\"name\":\"validateCommonProjectManifest\",\"decl\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"loc\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"line\":90}},\"f\":{\"0\":72,\"1\":83,\"2\":41,\"3\":0,\"4\":0,\"5\":7}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/github-reader.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/github-reader.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":43}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":27}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":47}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":42}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":45}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":38}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":32}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":45}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":29}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":58}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":7}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":3}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":25}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":21}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":3}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":53}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":97}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":3}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":58}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":45}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":61}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":36}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":65}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":5}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":34}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":64}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":9}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":51}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":69}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":18}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":19}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":23}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":5}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":3}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":53}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":29}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":32}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":79}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":45}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":30}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":2,\"16\":2,\"17\":2,\"18\":2,\"19\":1,\"20\":1,\"21\":0,\"22\":0,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":0,\"33\":0,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":2,\"39\":2,\"40\":2,\"41\":2,\"42\":2,\"43\":0,\"44\":0,\"45\":2,\"46\":1,\"47\":1,\"48\":2,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":15,\"loc\":{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"locations\":[{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":19,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":27,\"column\":3}},\"locations\":[{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":27,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"locations\":[{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":36,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":35},\"end\":{\"line\":34,\"column\":5}},\"locations\":[{\"start\":{\"line\":32,\"column\":35},\"end\":{\"line\":34,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":46,\"column\":3}},\"locations\":[{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":46,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":6},\"end\":{\"line\":45,\"column\":5}},\"locations\":[{\"start\":{\"line\":43,\"column\":6},\"end\":{\"line\":45,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":10},\"end\":{\"line\":55,\"column\":3}},\"locations\":[{\"start\":{\"line\":48,\"column\":10},\"end\":{\"line\":55,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":28},\"end\":{\"line\":55,\"column\":3}},\"locations\":[{\"start\":{\"line\":49,\"column\":28},\"end\":{\"line\":55,\"column\":3}}]}},\"b\":{\"0\":[2],\"1\":[1],\"2\":[1],\"3\":[0],\"4\":[2],\"5\":[0],\"6\":[2],\"7\":[1]},\"fnMap\":{\"0\":{\"name\":\"GithubReader\",\"decl\":{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"loc\":{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"line\":15},\"1\":{\"name\":\"get root\",\"decl\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":23,\"column\":3}},\"loc\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":23,\"column\":3}},\"line\":21},\"2\":{\"name\":\"getPkg\",\"decl\":{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":27,\"column\":3}},\"loc\":{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":27,\"column\":3}},\"line\":25},\"3\":{\"name\":\"getProjectSchema\",\"decl\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":29},\"4\":{\"name\":\"getFile\",\"decl\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":46,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":46,\"column\":3}},\"line\":38},\"5\":{\"name\":\"getDefaultBranch\",\"decl\":{\"start\":{\"line\":48,\"column\":10},\"end\":{\"line\":55,\"column\":3}},\"loc\":{\"start\":{\"line\":48,\"column\":10},\"end\":{\"line\":55,\"column\":3}},\"line\":48}},\"f\":{\"0\":2,\"1\":0,\"2\":1,\"3\":1,\"4\":2,\"5\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":32}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":30}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":31}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/ipfs-reader.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/ipfs-reader.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":41}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":56}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":27}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":47}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":51}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":53}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":25}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":107}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":2}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":43}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":31}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":54}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":63}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":47}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":60}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":5}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":61}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":3}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":25}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":21}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":3}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":53}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":38}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":3}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":58}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":53}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":36}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":72}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":5}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":34}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":3}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":64}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":9}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":47}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":65}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":84}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":7}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":40}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":17}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":70}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":23}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":5}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":3}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":81}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":47}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":34}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":34}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":5}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":73}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":3}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":10,\"21\":0,\"22\":0,\"23\":10,\"24\":10,\"25\":1,\"26\":1,\"27\":37,\"28\":37,\"29\":1,\"30\":1,\"31\":0,\"32\":0,\"33\":1,\"34\":1,\"35\":11,\"36\":11,\"37\":0,\"38\":0,\"39\":11,\"40\":11,\"41\":1,\"42\":1,\"43\":35,\"44\":35,\"45\":30,\"46\":30,\"47\":30,\"48\":35,\"49\":35,\"50\":0,\"51\":0,\"52\":0,\"53\":35,\"54\":1,\"55\":1,\"56\":30,\"57\":30,\"58\":4034,\"59\":4034,\"60\":30,\"61\":30,\"62\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"locations\":[{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":25,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":46},\"end\":{\"line\":23,\"column\":5}},\"locations\":[{\"start\":{\"line\":21,\"column\":46},\"end\":{\"line\":23,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":36},\"end\":{\"line\":24,\"column\":58}},\"locations\":[{\"start\":{\"line\":24,\"column\":36},\"end\":{\"line\":24,\"column\":58}}]},\"3\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"locations\":[{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"locations\":[{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":41,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":35},\"end\":{\"line\":39,\"column\":5}},\"locations\":[{\"start\":{\"line\":37,\"column\":35},\"end\":{\"line\":39,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":54,\"column\":3}},\"locations\":[{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":54,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":46},\"end\":{\"line\":48,\"column\":7}},\"locations\":[{\"start\":{\"line\":45,\"column\":46},\"end\":{\"line\":48,\"column\":7}}]},\"8\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":6},\"end\":{\"line\":53,\"column\":5}},\"locations\":[{\"start\":{\"line\":50,\"column\":6},\"end\":{\"line\":53,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":10},\"end\":{\"line\":62,\"column\":3}},\"locations\":[{\"start\":{\"line\":56,\"column\":10},\"end\":{\"line\":62,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":33},\"end\":{\"line\":60,\"column\":5}},\"locations\":[{\"start\":{\"line\":58,\"column\":33},\"end\":{\"line\":60,\"column\":5}}]}},\"b\":{\"0\":[10],\"1\":[0],\"2\":[0],\"3\":[37],\"4\":[11],\"5\":[0],\"6\":[35],\"7\":[30],\"8\":[0],\"9\":[30],\"10\":[4034]},\"fnMap\":{\"0\":{\"name\":\"IPFSReader\",\"decl\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"line\":20},\"1\":{\"name\":\"get root\",\"decl\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"line\":27},\"2\":{\"name\":\"getPkg\",\"decl\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":33,\"column\":3}},\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":33,\"column\":3}},\"line\":31},\"3\":{\"name\":\"getProjectSchema\",\"decl\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"line\":35},\"4\":{\"name\":\"getFile\",\"decl\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":54,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":54,\"column\":3}},\"line\":43},\"5\":{\"name\":\"resultToBuffer\",\"decl\":{\"start\":{\"line\":56,\"column\":10},\"end\":{\"line\":62,\"column\":3}},\"loc\":{\"start\":{\"line\":56,\"column\":10},\"end\":{\"line\":62,\"column\":3}},\"line\":56}},\"f\":{\"0\":10,\"1\":37,\"2\":0,\"3\":11,\"4\":35,\"5\":30}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/local-reader.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/local-reader.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":29}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":41}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":27}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":47}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":52}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":44}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":93}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":22}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":42}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":53}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":73}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":3}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":72}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":44}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":40}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":5}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":48}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":37}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":68}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":5}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":64}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":58}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":31}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":40}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":5}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":9}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":44}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":17}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":23}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":3}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":19,\"15\":19,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":16,\"23\":0,\"24\":0,\"25\":16,\"26\":16,\"27\":16,\"28\":16,\"29\":16,\"30\":1,\"31\":1,\"32\":13,\"33\":13,\"34\":0,\"35\":0,\"36\":13,\"37\":13,\"38\":13,\"39\":0,\"40\":0,\"41\":13,\"42\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":93}},\"locations\":[{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":93}}]},\"1\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":16,\"column\":3}},\"locations\":[{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":16,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":18,\"loc\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":20,\"column\":3}},\"locations\":[{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":20,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"locations\":[{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":30,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":43},\"end\":{\"line\":25,\"column\":5}},\"locations\":[{\"start\":{\"line\":23,\"column\":43},\"end\":{\"line\":25,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":42,\"column\":3}},\"locations\":[{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":42,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":30},\"end\":{\"line\":36,\"column\":5}},\"locations\":[{\"start\":{\"line\":34,\"column\":30},\"end\":{\"line\":36,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":6},\"end\":{\"line\":41,\"column\":5}},\"locations\":[{\"start\":{\"line\":39,\"column\":6},\"end\":{\"line\":41,\"column\":5}}]}},\"b\":{\"0\":[16],\"1\":[19],\"2\":[1],\"3\":[16],\"4\":[0],\"5\":[13],\"6\":[0],\"7\":[0]},\"fnMap\":{\"0\":{\"name\":\"LocalReader\",\"decl\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":93}},\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":93}},\"line\":12},\"1\":{\"name\":\"get root\",\"decl\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":16,\"column\":3}},\"loc\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":16,\"column\":3}},\"line\":14},\"2\":{\"name\":\"getPkg\",\"decl\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":20,\"column\":3}},\"loc\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":20,\"column\":3}},\"line\":18},\"3\":{\"name\":\"getProjectSchema\",\"decl\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"line\":22},\"4\":{\"name\":\"getFile\",\"decl\":{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":42,\"column\":3}},\"loc\":{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":42,\"column\":3}},\"line\":32}},\"f\":{\"0\":16,\"1\":19,\"2\":1,\"3\":16,\"4\":13}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/reader.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/readers/reader.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":56}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":43}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":56}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":45}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":41}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":43}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":28}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":62}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":83}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":69}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":84}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":22}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":46}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":5}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":49}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":20}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":75}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":5}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":16}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":34}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":58}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":41}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":71}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":7}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":90}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":5}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":53}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":3}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":55,\"16\":55,\"17\":55,\"18\":0,\"19\":0,\"20\":55,\"21\":55,\"22\":55,\"23\":38,\"24\":38,\"25\":17,\"26\":17,\"27\":17,\"28\":15,\"29\":15,\"30\":0,\"31\":0,\"32\":15,\"33\":15,\"34\":2,\"35\":2,\"36\":2,\"37\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":15,\"loc\":{\"start\":{\"line\":15,\"column\":9},\"end\":{\"line\":37,\"column\":3}},\"locations\":[{\"start\":{\"line\":15,\"column\":9},\"end\":{\"line\":37,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":18,\"loc\":{\"start\":{\"line\":18,\"column\":21},\"end\":{\"line\":20,\"column\":5}},\"locations\":[{\"start\":{\"line\":18,\"column\":21},\"end\":{\"line\":20,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":19},\"end\":{\"line\":25,\"column\":5}},\"locations\":[{\"start\":{\"line\":23,\"column\":19},\"end\":{\"line\":25,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":-1},\"end\":{\"line\":37,\"column\":3}},\"locations\":[{\"start\":{\"line\":26,\"column\":-1},\"end\":{\"line\":37,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":-1},\"end\":{\"line\":34,\"column\":5}},\"locations\":[{\"start\":{\"line\":26,\"column\":-1},\"end\":{\"line\":34,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":33},\"end\":{\"line\":34,\"column\":5}},\"locations\":[{\"start\":{\"line\":28,\"column\":33},\"end\":{\"line\":34,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":40},\"end\":{\"line\":32,\"column\":7}},\"locations\":[{\"start\":{\"line\":30,\"column\":40},\"end\":{\"line\":32,\"column\":7}}]},\"7\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":-1},\"end\":{\"line\":37,\"column\":3}},\"locations\":[{\"start\":{\"line\":35,\"column\":-1},\"end\":{\"line\":37,\"column\":3}}]}},\"b\":{\"0\":[55],\"1\":[0],\"2\":[38],\"3\":[20],\"4\":[17],\"5\":[15],\"6\":[0],\"7\":[2]},\"fnMap\":{\"0\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":15,\"column\":9},\"end\":{\"line\":37,\"column\":3}},\"loc\":{\"start\":{\"line\":15,\"column\":9},\"end\":{\"line\":37,\"column\":3}},\"line\":15}},\"f\":{\"0\":55}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/utils.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/utils.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":20}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":115}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":8}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":20}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":15}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":22}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":20}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":22}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":31}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":25}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":37}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":32}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":24}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":68}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":56}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":48}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":70}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":71}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":47}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":48}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":69}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":55}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":69}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":113}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":65}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":114}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":10}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":73}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":3}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":54}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":23}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":29}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":64}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":18}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":1}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":89}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":65}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":9}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":43}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":27}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":20}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":7}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":17}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":18}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":5}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":3}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":0}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":14}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":1}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":85}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":43}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":13}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":18}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":4}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":38}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":28}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":28}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":66}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":71}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":5}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":45}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":82}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":77}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":84}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":37}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":0}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":102}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":89}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":7}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":82}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":12}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":91}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":5}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":30}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":44}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":61}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":80}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":5}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":23}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":35}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":29}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":52}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":44}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":24}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":126}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":10}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":7}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":5}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":119}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":42}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":45}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":75}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":105}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":77}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":12}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":46}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":5}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":3}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":44}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":0}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":62}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":63}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":53}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":5}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":0}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":17}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":1}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":39}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":20}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":33}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":33}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":3}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":65}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":42}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":38}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":83}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":5}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":0}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":62}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":67}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":12}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":58}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":5}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":3}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":0}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":39}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":101}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":3}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":1}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":0}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":81}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":38}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":49}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":38}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":0}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":28}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":27}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":92}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":53}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":59}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":5}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":30}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":44}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":22}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":37}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":114}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":100}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":61}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":7}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":5}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":3}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":0}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":46}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":62}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":3}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":0}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":19}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":1}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":0}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":76}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":65}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":1}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":0}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":52}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":77}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":55}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":32}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":68}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":12}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":40}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":5}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":3}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":53}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":83}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":3}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":1}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":0}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":57}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":35}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":36}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":5}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":1}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":0}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":96}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":85}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":23}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":65}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":53}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":3}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":1}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":0}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":53}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":23}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":1}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":0}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":61}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":62}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":1}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":0}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":88}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":58}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":23}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":35}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":33}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":33}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":22}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":33}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":18}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":57}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":76}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":25}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":28}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":107}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":33}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":17}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":14}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":11}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":25}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":10}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":8}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":7}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":4}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":1}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":0}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":74}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":72}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":0}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":81}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":0}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":60}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":73}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":10}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":69}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":3}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":1}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":0}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":56}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":101}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":87}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":20}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":51}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":33}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":34}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":7}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":19}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":6}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":4}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":0}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":99}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":62}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":48}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":33}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":34}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":3}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":19}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":1}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":0}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":61}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":74}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":44}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":17}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":19}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":5}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":103}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":3}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":53}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":72}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":3}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":0}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":59}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":114}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":3}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":1}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":0}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":102}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":0}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":36}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":72}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":57}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":49}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":75}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":44}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":13}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":3}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":0}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":45}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":68}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":3}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":66,\"28\":66,\"29\":66,\"30\":1,\"31\":1,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":1,\"40\":1,\"41\":28,\"42\":28,\"43\":28,\"44\":28,\"45\":28,\"46\":1,\"47\":1,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":1,\"62\":34,\"63\":34,\"64\":34,\"65\":34,\"66\":34,\"67\":34,\"68\":34,\"69\":34,\"70\":34,\"71\":25,\"72\":25,\"73\":25,\"74\":25,\"75\":25,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":34,\"91\":9,\"92\":9,\"93\":0,\"94\":0,\"95\":9,\"96\":9,\"97\":9,\"98\":9,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":9,\"107\":9,\"108\":9,\"109\":9,\"110\":0,\"111\":9,\"112\":0,\"113\":9,\"114\":9,\"115\":9,\"116\":9,\"117\":34,\"118\":34,\"119\":34,\"120\":34,\"121\":34,\"122\":34,\"123\":34,\"124\":34,\"125\":34,\"126\":34,\"127\":1,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":1,\"151\":5,\"152\":5,\"153\":5,\"154\":5,\"155\":5,\"156\":5,\"157\":2,\"158\":2,\"159\":2,\"160\":0,\"161\":0,\"162\":5,\"163\":3,\"164\":3,\"165\":3,\"166\":3,\"167\":3,\"168\":0,\"169\":0,\"170\":3,\"171\":3,\"172\":5,\"173\":5,\"174\":0,\"175\":0,\"176\":5,\"177\":5,\"178\":5,\"179\":1,\"180\":41,\"181\":41,\"182\":41,\"183\":1,\"184\":1,\"185\":1,\"186\":1,\"187\":232,\"188\":210,\"189\":232,\"190\":22,\"191\":22,\"192\":232,\"193\":1,\"194\":4,\"195\":4,\"196\":1,\"197\":1,\"198\":1,\"199\":24,\"200\":24,\"201\":24,\"202\":24,\"203\":1,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":1,\"212\":20,\"213\":20,\"214\":20,\"215\":1,\"216\":94,\"217\":94,\"218\":94,\"219\":1,\"220\":25,\"221\":25,\"222\":25,\"223\":25,\"224\":25,\"225\":25,\"226\":25,\"227\":25,\"228\":25,\"229\":25,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":25,\"240\":25,\"241\":25,\"242\":25,\"243\":25,\"244\":1,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":1,\"257\":89,\"258\":89,\"259\":89,\"260\":89,\"261\":89,\"262\":3536,\"263\":28,\"264\":28,\"265\":3508,\"266\":89,\"267\":89,\"268\":89,\"269\":1,\"270\":30,\"271\":30,\"272\":30,\"273\":30,\"274\":34,\"275\":34,\"276\":30,\"277\":30,\"278\":1,\"279\":1,\"280\":1,\"281\":1,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":1,\"288\":0,\"289\":0,\"290\":1,\"291\":1,\"292\":0,\"293\":0,\"294\":1,\"295\":1,\"296\":1,\"297\":1,\"298\":1,\"299\":1,\"300\":1,\"301\":0,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":1,\"307\":1,\"308\":0,\"309\":0,\"310\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"locations\":[{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":30,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":20},\"end\":{\"line\":29,\"column\":54}},\"locations\":[{\"start\":{\"line\":29,\"column\":20},\"end\":{\"line\":29,\"column\":54}}]},\"2\":{\"type\":\"branch\",\"line\":41,\"loc\":{\"start\":{\"line\":41,\"column\":7},\"end\":{\"line\":46,\"column\":1}},\"locations\":[{\"start\":{\"line\":41,\"column\":7},\"end\":{\"line\":46,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":127,\"column\":1}},\"locations\":[{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":127,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":27},\"end\":{\"line\":91,\"column\":9}},\"locations\":[{\"start\":{\"line\":71,\"column\":27},\"end\":{\"line\":91,\"column\":9}}]},\"5\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":-1},\"end\":{\"line\":90,\"column\":5}},\"locations\":[{\"start\":{\"line\":77,\"column\":-1},\"end\":{\"line\":90,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":91,\"loc\":{\"start\":{\"line\":91,\"column\":3},\"end\":{\"line\":117,\"column\":3}},\"locations\":[{\"start\":{\"line\":91,\"column\":3},\"end\":{\"line\":117,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":60},\"end\":{\"line\":95,\"column\":5}},\"locations\":[{\"start\":{\"line\":93,\"column\":60},\"end\":{\"line\":95,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":28},\"end\":{\"line\":106,\"column\":5}},\"locations\":[{\"start\":{\"line\":99,\"column\":28},\"end\":{\"line\":106,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":44},\"end\":{\"line\":112,\"column\":11}},\"locations\":[{\"start\":{\"line\":110,\"column\":44},\"end\":{\"line\":112,\"column\":11}}]},\"10\":{\"type\":\"branch\",\"line\":112,\"loc\":{\"start\":{\"line\":112,\"column\":49},\"end\":{\"line\":112,\"column\":102}},\"locations\":[{\"start\":{\"line\":112,\"column\":49},\"end\":{\"line\":112,\"column\":102}}]},\"11\":{\"type\":\"branch\",\"line\":112,\"loc\":{\"start\":{\"line\":112,\"column\":104},\"end\":{\"line\":114,\"column\":11}},\"locations\":[{\"start\":{\"line\":112,\"column\":104},\"end\":{\"line\":114,\"column\":11}}]},\"12\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":44},\"end\":{\"line\":124,\"column\":3}},\"locations\":[{\"start\":{\"line\":122,\"column\":44},\"end\":{\"line\":124,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":152,\"loc\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":179,\"column\":1}},\"locations\":[{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":179,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":157,\"loc\":{\"start\":{\"line\":157,\"column\":27},\"end\":{\"line\":163,\"column\":9}},\"locations\":[{\"start\":{\"line\":157,\"column\":27},\"end\":{\"line\":163,\"column\":9}}]},\"15\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":52},\"end\":{\"line\":162,\"column\":5}},\"locations\":[{\"start\":{\"line\":160,\"column\":52},\"end\":{\"line\":162,\"column\":5}}]},\"16\":{\"type\":\"branch\",\"line\":163,\"loc\":{\"start\":{\"line\":163,\"column\":3},\"end\":{\"line\":172,\"column\":3}},\"locations\":[{\"start\":{\"line\":163,\"column\":3},\"end\":{\"line\":172,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":168,\"loc\":{\"start\":{\"line\":168,\"column\":44},\"end\":{\"line\":168,\"column\":97}},\"locations\":[{\"start\":{\"line\":168,\"column\":44},\"end\":{\"line\":168,\"column\":97}}]},\"18\":{\"type\":\"branch\",\"line\":168,\"loc\":{\"start\":{\"line\":168,\"column\":99},\"end\":{\"line\":170,\"column\":7}},\"locations\":[{\"start\":{\"line\":168,\"column\":99},\"end\":{\"line\":170,\"column\":7}}]},\"19\":{\"type\":\"branch\",\"line\":174,\"loc\":{\"start\":{\"line\":174,\"column\":28},\"end\":{\"line\":174,\"column\":43}},\"locations\":[{\"start\":{\"line\":174,\"column\":28},\"end\":{\"line\":174,\"column\":43}}]},\"20\":{\"type\":\"branch\",\"line\":174,\"loc\":{\"start\":{\"line\":174,\"column\":45},\"end\":{\"line\":176,\"column\":3}},\"locations\":[{\"start\":{\"line\":174,\"column\":45},\"end\":{\"line\":176,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":181,\"loc\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":183,\"column\":1}},\"locations\":[{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":183,\"column\":1}}]},\"22\":{\"type\":\"branch\",\"line\":187,\"loc\":{\"start\":{\"line\":187,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"locations\":[{\"start\":{\"line\":187,\"column\":2},\"end\":{\"line\":193,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":31},\"end\":{\"line\":190,\"column\":11}},\"locations\":[{\"start\":{\"line\":188,\"column\":31},\"end\":{\"line\":190,\"column\":11}}]},\"24\":{\"type\":\"branch\",\"line\":190,\"loc\":{\"start\":{\"line\":190,\"column\":5},\"end\":{\"line\":192,\"column\":5}},\"locations\":[{\"start\":{\"line\":190,\"column\":5},\"end\":{\"line\":192,\"column\":5}}]},\"25\":{\"type\":\"branch\",\"line\":194,\"loc\":{\"start\":{\"line\":194,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"locations\":[{\"start\":{\"line\":194,\"column\":2},\"end\":{\"line\":196,\"column\":3}}]},\"26\":{\"type\":\"branch\",\"line\":199,\"loc\":{\"start\":{\"line\":199,\"column\":7},\"end\":{\"line\":203,\"column\":1}},\"locations\":[{\"start\":{\"line\":199,\"column\":7},\"end\":{\"line\":203,\"column\":1}}]},\"27\":{\"type\":\"branch\",\"line\":200,\"loc\":{\"start\":{\"line\":200,\"column\":21},\"end\":{\"line\":202,\"column\":3}},\"locations\":[{\"start\":{\"line\":200,\"column\":21},\"end\":{\"line\":202,\"column\":3}}]},\"28\":{\"type\":\"branch\",\"line\":213,\"loc\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":215,\"column\":1}},\"locations\":[{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":215,\"column\":1}}]},\"29\":{\"type\":\"branch\",\"line\":217,\"loc\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":219,\"column\":1}},\"locations\":[{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":219,\"column\":1}}]},\"30\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":24},\"end\":{\"line\":218,\"column\":42}},\"locations\":[{\"start\":{\"line\":218,\"column\":24},\"end\":{\"line\":218,\"column\":42}}]},\"31\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":42},\"end\":{\"line\":218,\"column\":61}},\"locations\":[{\"start\":{\"line\":218,\"column\":42},\"end\":{\"line\":218,\"column\":61}}]},\"32\":{\"type\":\"branch\",\"line\":221,\"loc\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":244,\"column\":1}},\"locations\":[{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":244,\"column\":1}}]},\"33\":{\"type\":\"branch\",\"line\":222,\"loc\":{\"start\":{\"line\":222,\"column\":9},\"end\":{\"line\":243,\"column\":3}},\"locations\":[{\"start\":{\"line\":222,\"column\":9},\"end\":{\"line\":243,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":258,\"loc\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"locations\":[{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":269,\"column\":1}}]},\"35\":{\"type\":\"branch\",\"line\":262,\"loc\":{\"start\":{\"line\":262,\"column\":27},\"end\":{\"line\":267,\"column\":5}},\"locations\":[{\"start\":{\"line\":262,\"column\":27},\"end\":{\"line\":267,\"column\":5}}]},\"36\":{\"type\":\"branch\",\"line\":263,\"loc\":{\"start\":{\"line\":263,\"column\":32},\"end\":{\"line\":265,\"column\":7}},\"locations\":[{\"start\":{\"line\":263,\"column\":32},\"end\":{\"line\":265,\"column\":7}}]},\"37\":{\"type\":\"branch\",\"line\":266,\"loc\":{\"start\":{\"line\":266,\"column\":-1},\"end\":{\"line\":267,\"column\":5}},\"locations\":[{\"start\":{\"line\":266,\"column\":-1},\"end\":{\"line\":267,\"column\":5}}]},\"38\":{\"type\":\"branch\",\"line\":271,\"loc\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":278,\"column\":1}},\"locations\":[{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":278,\"column\":1}}]},\"39\":{\"type\":\"branch\",\"line\":274,\"loc\":{\"start\":{\"line\":274,\"column\":32},\"end\":{\"line\":276,\"column\":3}},\"locations\":[{\"start\":{\"line\":274,\"column\":32},\"end\":{\"line\":276,\"column\":3}}]},\"40\":{\"type\":\"branch\",\"line\":297,\"loc\":{\"start\":{\"line\":297,\"column\":33},\"end\":{\"line\":297,\"column\":101}},\"locations\":[{\"start\":{\"line\":297,\"column\":33},\"end\":{\"line\":297,\"column\":101}}]}},\"b\":{\"0\":[66],\"1\":[14],\"2\":[28],\"3\":[34],\"4\":[25],\"5\":[0],\"6\":[9],\"7\":[0],\"8\":[0],\"9\":[0],\"10\":[0],\"11\":[0],\"12\":[34],\"13\":[5],\"14\":[2],\"15\":[0],\"16\":[3],\"17\":[0],\"18\":[0],\"19\":[0],\"20\":[0],\"21\":[41],\"22\":[232],\"23\":[210],\"24\":[22],\"25\":[4],\"26\":[24],\"27\":[24],\"28\":[20],\"29\":[94],\"30\":[6],\"31\":[6],\"32\":[25],\"33\":[25],\"34\":[89],\"35\":[3536],\"36\":[28],\"37\":[3508],\"38\":[30],\"39\":[34],\"40\":[43]},\"fnMap\":{\"0\":{\"name\":\"isFileReference\",\"decl\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"loc\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"line\":28},\"1\":{\"name\":\"handleCreateSubqueryProjectError\",\"decl\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"loc\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"line\":33},\"2\":{\"name\":\"makeTempDir\",\"decl\":{\"start\":{\"line\":41,\"column\":7},\"end\":{\"line\":46,\"column\":1}},\"loc\":{\"start\":{\"line\":41,\"column\":7},\"end\":{\"line\":46,\"column\":1}},\"line\":41},\"3\":{\"name\":\"findAvailablePort\",\"decl\":{\"start\":{\"line\":48,\"column\":7},\"end\":{\"line\":61,\"column\":1}},\"loc\":{\"start\":{\"line\":48,\"column\":7},\"end\":{\"line\":61,\"column\":1}},\"line\":48},\"4\":{\"name\":\"getProjectRootAndManifest\",\"decl\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":127,\"column\":1}},\"loc\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":127,\"column\":1}},\"line\":63},\"5\":{\"name\":\"addMultichainManifestProjects\",\"decl\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":150,\"column\":1}},\"loc\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":150,\"column\":1}},\"line\":129},\"6\":{\"name\":\"getMultichainManifestPath\",\"decl\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":179,\"column\":1}},\"loc\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":179,\"column\":1}},\"line\":152},\"7\":{\"name\":\"validateSemver\",\"decl\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":183,\"column\":1}},\"loc\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":183,\"column\":1}},\"line\":181},\"8\":{\"name\":\"validate\",\"decl\":{\"start\":{\"line\":187,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"loc\":{\"start\":{\"line\":187,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"line\":187},\"9\":{\"name\":\"defaultMessage\",\"decl\":{\"start\":{\"line\":194,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"loc\":{\"start\":{\"line\":194,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"line\":194},\"10\":{\"name\":\"delay\",\"decl\":{\"start\":{\"line\":199,\"column\":7},\"end\":{\"line\":203,\"column\":1}},\"loc\":{\"start\":{\"line\":199,\"column\":7},\"end\":{\"line\":203,\"column\":1}},\"line\":199},\"11\":{\"name\":\"validateObject\",\"decl\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":211,\"column\":1}},\"loc\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":211,\"column\":1}},\"line\":205},\"12\":{\"name\":\"extensionIsTs\",\"decl\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":215,\"column\":1}},\"loc\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":215,\"column\":1}},\"line\":213},\"13\":{\"name\":\"extensionIsYamlOrJSON\",\"decl\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":219,\"column\":1}},\"loc\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":219,\"column\":1}},\"line\":217},\"14\":{\"name\":\"forbidNonWhitelisted\",\"decl\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":244,\"column\":1}},\"loc\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":244,\"column\":1}},\"line\":221},\"15\":{\"name\":\"validate\",\"decl\":{\"start\":{\"line\":230,\"column\":8},\"end\":{\"line\":240,\"column\":9}},\"loc\":{\"start\":{\"line\":230,\"column\":8},\"end\":{\"line\":240,\"column\":9}},\"line\":230},\"16\":{\"name\":\"notifyUpdates\",\"decl\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":256,\"column\":1}},\"loc\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":256,\"column\":1}},\"line\":246},\"17\":{\"name\":\"toJsonObject\",\"decl\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"loc\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"line\":258},\"18\":{\"name\":\"mapToObject\",\"decl\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":278,\"column\":1}},\"loc\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":278,\"column\":1}},\"line\":271},\"19\":{\"name\":\"validate\",\"decl\":{\"start\":{\"line\":282,\"column\":2},\"end\":{\"line\":287,\"column\":3}},\"loc\":{\"start\":{\"line\":282,\"column\":2},\"end\":{\"line\":287,\"column\":3}},\"line\":282},\"20\":{\"name\":\"defaultMessage\",\"decl\":{\"start\":{\"line\":288,\"column\":2},\"end\":{\"line\":290,\"column\":3}},\"loc\":{\"start\":{\"line\":288,\"column\":2},\"end\":{\"line\":290,\"column\":3}},\"line\":288},\"21\":{\"name\":\"isValidFileReference\",\"decl\":{\"start\":{\"line\":292,\"column\":10},\"end\":{\"line\":294,\"column\":3}},\"loc\":{\"start\":{\"line\":292,\"column\":10},\"end\":{\"line\":294,\"column\":3}},\"line\":292},\"22\":{\"name\":\"tsProjectYamlPath\",\"decl\":{\"start\":{\"line\":297,\"column\":33},\"end\":{\"line\":297,\"column\":101}},\"loc\":{\"start\":{\"line\":297,\"column\":33},\"end\":{\"line\":297,\"column\":101}},\"line\":297},\"23\":{\"name\":\"validate\",\"decl\":{\"start\":{\"line\":301,\"column\":2},\"end\":{\"line\":306,\"column\":3}},\"loc\":{\"start\":{\"line\":301,\"column\":2},\"end\":{\"line\":306,\"column\":3}},\"line\":301},\"24\":{\"name\":\"defaultMessage\",\"decl\":{\"start\":{\"line\":308,\"column\":2},\"end\":{\"line\":310,\"column\":3}},\"loc\":{\"start\":{\"line\":308,\"column\":2},\"end\":{\"line\":310,\"column\":3}},\"line\":308}},\"f\":{\"0\":66,\"1\":0,\"2\":28,\"3\":0,\"4\":34,\"5\":0,\"6\":5,\"7\":41,\"8\":232,\"9\":4,\"10\":24,\"11\":0,\"12\":20,\"13\":94,\"14\":25,\"15\":0,\"16\":0,\"17\":89,\"18\":30,\"19\":0,\"20\":0,\"21\":0,\"22\":43,\"23\":0,\"24\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/versioned/base.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/versioned/base.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":74}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":56}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":9}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":8}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":11}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":13}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":11}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":11}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":17}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":15}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":25}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":27}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":57}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":51}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":79}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":10}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":22}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":15}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":13}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":23}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":15}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":13}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":22}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":13}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":22}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":27}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":74}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":23}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":28}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":84}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":56}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":28}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":3}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":20}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":96}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":25}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":34}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":67}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":69}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":3}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":26}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":36}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":3}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":1}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":48}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":13}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":15}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":1}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":78}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":15}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":13}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":14}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":35}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":18}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":13}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":22}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":19}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":23}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":19}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":15}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":13}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":33}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":25}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":20}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":48}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":79}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":42}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":21}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":25}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":7}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":3}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":1}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":29}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":15}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":10}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":22}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":30}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":15}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":10}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":20}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":66,\"38\":50,\"39\":50,\"40\":50,\"41\":66,\"42\":66,\"43\":1,\"44\":1,\"45\":50,\"46\":50,\"47\":16,\"48\":16,\"49\":16,\"50\":16,\"51\":50,\"52\":1,\"53\":1,\"54\":0,\"55\":0,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":8,\"83\":8,\"84\":8,\"85\":8,\"86\":8,\"87\":8,\"88\":8,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":35,\"column\":74}},\"locations\":[{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":35,\"column\":74}}]},\"1\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":43,\"column\":3}},\"locations\":[{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":43,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":27},\"end\":{\"line\":41,\"column\":5}},\"locations\":[{\"start\":{\"line\":38,\"column\":27},\"end\":{\"line\":41,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"locations\":[{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":52,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":24},\"end\":{\"line\":51,\"column\":5}},\"locations\":[{\"start\":{\"line\":47,\"column\":24},\"end\":{\"line\":51,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":35},\"end\":{\"line\":49,\"column\":54}},\"locations\":[{\"start\":{\"line\":49,\"column\":35},\"end\":{\"line\":49,\"column\":54}}]},\"6\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":89,\"column\":3}},\"locations\":[{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":89,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":8},\"end\":{\"line\":75,\"column\":22}},\"locations\":[{\"start\":{\"line\":75,\"column\":8},\"end\":{\"line\":75,\"column\":22}}]},\"8\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":8},\"end\":{\"line\":79,\"column\":32}},\"locations\":[{\"start\":{\"line\":79,\"column\":8},\"end\":{\"line\":79,\"column\":32}}]}},\"b\":{\"0\":[50],\"1\":[66],\"2\":[50],\"3\":[50],\"4\":[16],\"5\":[47],\"6\":[8],\"7\":[50],\"8\":[15]},\"fnMap\":{\"0\":{\"name\":\"ProjectManifestBaseImpl\",\"decl\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":35,\"column\":74}},\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":35,\"column\":74}},\"line\":35},\"1\":{\"name\":\"get deployment\",\"decl\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":43,\"column\":3}},\"loc\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":43,\"column\":3}},\"line\":37},\"2\":{\"name\":\"validate\",\"decl\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"line\":45},\"3\":{\"name\":\"toDeployment\",\"decl\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"loc\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"line\":54},\"4\":{\"name\":\"toYaml\",\"decl\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":89,\"column\":3}},\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":89,\"column\":3}},\"line\":82}},\"f\":{\"0\":50,\"1\":66,\"2\":50,\"3\":0,\"4\":8}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/versioned/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/versioned/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":23}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":25}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/versioned/v1_0_0/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/versioned/v1_0_0/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/versioned/v1_0_0/models.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/common/src/project/versioned/v1_0_0/models.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":8}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":14}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":24}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":14}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":11}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":16}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":12}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":14}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":27}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":69}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":8}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":9}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":12}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":11}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":11}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":13}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":11}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":8}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":11}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":17}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":10}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":13}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":8}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":13}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":25}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":51}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":33}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":56}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":25}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":15}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":13}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":35}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":27}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":18}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":1}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":49}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":13}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":15}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":13}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":35}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":70}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":18}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":15}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":13}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":19}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":37}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":24}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":60}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":15}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":14}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":23}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":15}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":14}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":19}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":15}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":14}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":30}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":15}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":14}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":29}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":1}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":53}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":15}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":10}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":18}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":15}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":13}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":21}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":1}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":58}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":13}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":103}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":16}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":13}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":93}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":21}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":13}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":20}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":1}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":42}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":103}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":10}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":22}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":13}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":15}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":23}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":15}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":13}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":22}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":18}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":22}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":46}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":12}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":21}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":19}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":41}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":33}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":13}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":15}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":16}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":13}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":18}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":19}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":23}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":19}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":15}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":12}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":20}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":13}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":19}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":36}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":22}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":15}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":13}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":33}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":25}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":25}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":1}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":59}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":13}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":19}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":29}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":17}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":13}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":19}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":35}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":19}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":1}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":0}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":83}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":25}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":15}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":30}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":25}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":15}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":32}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":15}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":58}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":13}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":18}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":15}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":57}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":15}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":12}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":52}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":1,\"126\":1,\"127\":1,\"128\":1,\"129\":1,\"130\":1,\"131\":1,\"132\":1,\"133\":1,\"134\":1,\"135\":1,\"136\":1,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":1,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":1,\"156\":1,\"157\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":8},\"end\":{\"line\":52,\"column\":36}},\"locations\":[{\"start\":{\"line\":52,\"column\":8},\"end\":{\"line\":52,\"column\":36}}]},\"1\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":8},\"end\":{\"line\":107,\"column\":40}},\"locations\":[{\"start\":{\"line\":107,\"column\":8},\"end\":{\"line\":107,\"column\":40}}]},\"2\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":8},\"end\":{\"line\":115,\"column\":22}},\"locations\":[{\"start\":{\"line\":115,\"column\":8},\"end\":{\"line\":115,\"column\":22}}]},\"3\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":8},\"end\":{\"line\":122,\"column\":35}},\"locations\":[{\"start\":{\"line\":122,\"column\":8},\"end\":{\"line\":122,\"column\":35}}]},\"4\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":8},\"end\":{\"line\":134,\"column\":28}},\"locations\":[{\"start\":{\"line\":134,\"column\":8},\"end\":{\"line\":134,\"column\":28}}]},\"5\":{\"type\":\"branch\",\"line\":138,\"loc\":{\"start\":{\"line\":138,\"column\":8},\"end\":{\"line\":138,\"column\":34}},\"locations\":[{\"start\":{\"line\":138,\"column\":8},\"end\":{\"line\":138,\"column\":34}}]},\"6\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":13},\"end\":{\"line\":150,\"column\":57}},\"locations\":[{\"start\":{\"line\":150,\"column\":13},\"end\":{\"line\":150,\"column\":57}}]}},\"b\":{\"0\":[2],\"1\":[7],\"2\":[7],\"3\":[7],\"4\":[7],\"5\":[7],\"6\":[77]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/api.connection.error.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/api.connection.error.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":26}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":22}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":28}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":26}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":22}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":47}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":26}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":71}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":19}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":21}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":31}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":3}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":1}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":56}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":25}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":58}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":3}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":54}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":25}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":59}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":60}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":25}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":65}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":60}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":25}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":232}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":64}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":3}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":5,\"4\":5,\"5\":5,\"6\":5,\"7\":5,\"8\":5,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":0,\"23\":0,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":0,\"29\":0,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":0,\"35\":0,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":4,\"loc\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"locations\":[{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":9,\"column\":1}}]}},\"b\":{\"0\":[5]},\"fnMap\":{\"0\":{\"name\":\"ApiConnectionError\",\"decl\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":18,\"column\":3}},\"loc\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":18,\"column\":3}},\"line\":14},\"1\":{\"name\":\"RateLimitError\",\"decl\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"line\":22},\"2\":{\"name\":\"TimeoutError\",\"decl\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"loc\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"line\":28},\"3\":{\"name\":\"DisconnectionError\",\"decl\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":34},\"4\":{\"name\":\"LargeResponseError\",\"decl\":{\"start\":{\"line\":40,\"column\":2},\"end\":{\"line\":44,\"column\":3}},\"loc\":{\"start\":{\"line\":40,\"column\":2},\"end\":{\"line\":44,\"column\":3}},\"line\":40}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/api.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/api.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":52}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":55}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":72}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":62}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":48}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":35}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":68}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":32}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":33}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":72}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":59}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":30}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":15}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":47}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":113}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":48}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":30}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":33}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":109}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":14}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":93}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":41}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":6}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":48}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":45}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":62}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":29}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":3}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":75}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":90}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":40}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":56}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":57}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":46}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":20}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":3}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":102}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":9}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":49}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":17}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":30}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":32}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":26}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":7}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":14}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":5}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":3}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":16}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":26}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":3}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":31}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":55}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":39}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":3}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":22}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":55}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":33}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":26}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":54}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":86}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":72}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":101}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":20}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":84}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":61}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":90}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":11}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":60}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":59}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":19}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":22}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":29}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":11}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":32}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":53}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":9}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":33}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":53}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":9}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":53}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":42}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":80}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":9}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":79}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":19}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":57}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":91}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":43}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":16}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":7}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":7}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":0}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":9}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":85}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":21}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":31}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":8}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":51}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":17}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":92}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":5}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":63}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":51}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":58}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":104}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":7}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":7}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":3}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":26}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":86}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":72}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":54}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":18}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":21}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":101}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":20}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":56}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":49}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":0}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":28}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":53}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":5}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":0}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":38}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":56}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":78}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":56}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":12}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":76}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":5}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":3}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":0}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":18}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":86}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":72}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":54}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":18}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":21}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":101}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":11}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":64}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":11}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":112}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":19}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":74}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":16}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":7}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":24}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":81}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":7}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":3}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":0}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":94}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":17}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":65}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":28}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":25}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":6}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":3}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":0}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":49}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":83}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":3}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":26,\"32\":26,\"33\":26,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":40,\"39\":40,\"40\":40,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":1,\"52\":1,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":1,\"64\":1,\"65\":0,\"66\":0,\"67\":1,\"68\":1,\"69\":0,\"70\":0,\"71\":0,\"72\":1,\"73\":1,\"74\":51,\"75\":51,\"76\":51,\"77\":1,\"78\":1,\"79\":26,\"80\":26,\"81\":26,\"82\":26,\"83\":26,\"84\":26,\"85\":26,\"86\":26,\"87\":26,\"88\":26,\"89\":26,\"90\":26,\"91\":25,\"92\":25,\"93\":25,\"94\":25,\"95\":25,\"96\":25,\"97\":25,\"98\":25,\"99\":25,\"100\":25,\"101\":25,\"102\":25,\"103\":25,\"104\":25,\"105\":25,\"106\":25,\"107\":26,\"108\":0,\"109\":0,\"110\":25,\"111\":25,\"112\":26,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":26,\"119\":26,\"120\":26,\"121\":26,\"122\":25,\"123\":25,\"124\":25,\"125\":25,\"126\":26,\"127\":0,\"128\":0,\"129\":25,\"130\":25,\"131\":25,\"132\":25,\"133\":0,\"134\":0,\"135\":25,\"136\":25,\"137\":1,\"138\":1,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":1,\"162\":1,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":1,\"182\":1,\"183\":1,\"184\":1,\"185\":1,\"186\":1,\"187\":1,\"188\":1,\"189\":1,\"190\":1,\"191\":0,\"192\":0,\"193\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":34,\"column\":6}},\"locations\":[{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":34,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"locations\":[{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":41,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"locations\":[{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":77,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"locations\":[{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":137,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":79},\"end\":{\"line\":127,\"column\":13}},\"locations\":[{\"start\":{\"line\":122,\"column\":79},\"end\":{\"line\":127,\"column\":13}}]},\"5\":{\"type\":\"branch\",\"line\":127,\"loc\":{\"start\":{\"line\":127,\"column\":6},\"end\":{\"line\":129,\"column\":5}},\"locations\":[{\"start\":{\"line\":127,\"column\":6},\"end\":{\"line\":129,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":130,\"loc\":{\"start\":{\"line\":130,\"column\":-1},\"end\":{\"line\":137,\"column\":3}},\"locations\":[{\"start\":{\"line\":130,\"column\":-1},\"end\":{\"line\":137,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":66},\"end\":{\"line\":119,\"column\":5}},\"locations\":[{\"start\":{\"line\":89,\"column\":66},\"end\":{\"line\":119,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":-1},\"end\":{\"line\":108,\"column\":41}},\"locations\":[{\"start\":{\"line\":92,\"column\":-1},\"end\":{\"line\":108,\"column\":41}}]},\"9\":{\"type\":\"branch\",\"line\":108,\"loc\":{\"start\":{\"line\":108,\"column\":41},\"end\":{\"line\":110,\"column\":9}},\"locations\":[{\"start\":{\"line\":108,\"column\":41},\"end\":{\"line\":110,\"column\":9}}]},\"10\":{\"type\":\"branch\",\"line\":111,\"loc\":{\"start\":{\"line\":111,\"column\":-1},\"end\":{\"line\":113,\"column\":15}},\"locations\":[{\"start\":{\"line\":111,\"column\":-1},\"end\":{\"line\":113,\"column\":15}}]},\"11\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":8},\"end\":{\"line\":118,\"column\":7}},\"locations\":[{\"start\":{\"line\":113,\"column\":8},\"end\":{\"line\":118,\"column\":7}}]},\"12\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":53},\"end\":{\"line\":136,\"column\":5}},\"locations\":[{\"start\":{\"line\":131,\"column\":53},\"end\":{\"line\":136,\"column\":5}}]},\"13\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":57},\"end\":{\"line\":135,\"column\":7}},\"locations\":[{\"start\":{\"line\":133,\"column\":57},\"end\":{\"line\":135,\"column\":7}}]},\"14\":{\"type\":\"branch\",\"line\":183,\"loc\":{\"start\":{\"line\":183,\"column\":12},\"end\":{\"line\":189,\"column\":3}},\"locations\":[{\"start\":{\"line\":183,\"column\":12},\"end\":{\"line\":189,\"column\":3}}]}},\"b\":{\"0\":[26],\"1\":[40],\"2\":[51],\"3\":[26],\"4\":[25],\"5\":[0],\"6\":[25],\"7\":[26],\"8\":[25],\"9\":[0],\"10\":[25],\"11\":[0],\"12\":[25],\"13\":[0],\"14\":[1]},\"fnMap\":{\"0\":{\"name\":\"ApiService\",\"decl\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":34,\"column\":6}},\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":34,\"column\":6}},\"line\":31},\"1\":{\"name\":\"get networkMeta\",\"decl\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"line\":38},\"2\":{\"name\":\"fetchBlocks\",\"decl\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":51,\"column\":3}},\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":51,\"column\":3}},\"line\":45},\"3\":{\"name\":\"retryFetch\",\"decl\":{\"start\":{\"line\":53,\"column\":12},\"end\":{\"line\":63,\"column\":3}},\"loc\":{\"start\":{\"line\":53,\"column\":12},\"end\":{\"line\":63,\"column\":3}},\"line\":53},\"4\":{\"name\":\"get api\",\"decl\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"loc\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"line\":65},\"5\":{\"name\":\"safeApi\",\"decl\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"loc\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"line\":69},\"6\":{\"name\":\"get unsafeApi\",\"decl\":{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"loc\":{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"line\":74},\"7\":{\"name\":\"createConnections\",\"decl\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"loc\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"line\":79},\"8\":{\"name\":\"performConnection\",\"decl\":{\"start\":{\"line\":139,\"column\":2},\"end\":{\"line\":161,\"column\":3}},\"loc\":{\"start\":{\"line\":139,\"column\":2},\"end\":{\"line\":161,\"column\":3}},\"line\":139},\"9\":{\"name\":\"retryConnection\",\"decl\":{\"start\":{\"line\":163,\"column\":2},\"end\":{\"line\":181,\"column\":3}},\"loc\":{\"start\":{\"line\":163,\"column\":2},\"end\":{\"line\":181,\"column\":3}},\"line\":163},\"10\":{\"name\":\"metadataMismatchError\",\"decl\":{\"start\":{\"line\":183,\"column\":12},\"end\":{\"line\":189,\"column\":3}},\"loc\":{\"start\":{\"line\":183,\"column\":12},\"end\":{\"line\":189,\"column\":3}},\"line\":183},\"11\":{\"name\":\"handleError\",\"decl\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"loc\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"line\":191}},\"f\":{\"0\":26,\"1\":40,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":51,\"7\":26,\"8\":0,\"9\":0,\"10\":1,\"11\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/NodeConfig.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/NodeConfig.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":20}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":65}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":28}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":37}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":36}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":39}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":38}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":26}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":28}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":33}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":29}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":29}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":27}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":29}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":26}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":32}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":38}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":43}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":40}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":38}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":30}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":37}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":30}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":35}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":33}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":25}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":37}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":39}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":28}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":30}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":28}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":33}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":38}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":31}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":28}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":39}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":25}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":26}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":27}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":39}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":40}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":37}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":36}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":38}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":28}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":25}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":41}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":30}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":87}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":0}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":24}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":19}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":17}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":15}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":18}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":21}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":19}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":18}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":22}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":22}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":24}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":29}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":18}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":22}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":27}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":20}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":27}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":28}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":30}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":25}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":24}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":24}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":30}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":2}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":73}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":32}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":38}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":102}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":35}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":72}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":5}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":32}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":9}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":52}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":17}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":55}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":14}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":5}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":69}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":42}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":3}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":0}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":92}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":72}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":60}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":3}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":0}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":52}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":59}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":35}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":3}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":26}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":34}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":33}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":3}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":30}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":34}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":82}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":16}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":53}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":5}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":16}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":3}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":27}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":34}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":3}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":48}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":59}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":38}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":37}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":3}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":52}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":47}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":3}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":0}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":59}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":61}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":50}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":15}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":42}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":39}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":3}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":0}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":39}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":45}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":3}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":37}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":44}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":3}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":0}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":38}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":45}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":3}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":0}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":35}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":42}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":34}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":42}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":3}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":36}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":43}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":3}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":0}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":36}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":42}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":45}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":5}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":0}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":81}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":3}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":0}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":25}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":32}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":3}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":0}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":27}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":34}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":3}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":0}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":35}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":30}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":3}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":0}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":30}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":36}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":3}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":0}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":39}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":34}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":3}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":0}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":35}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":56}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":3}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":0}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":28}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":35}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":3}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":0}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":33}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":40}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":3}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":0}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":31}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":37}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":3}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":0}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":35}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":42}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":3}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":0}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":37}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":44}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":3}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":0}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":34}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":29}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":3}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":0}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":26}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":62}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":52}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":3}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":0}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":37}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":32}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":3}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":0}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":27}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":35}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":3}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":0}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":25}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":33}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":3}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":0}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":31}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":37}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":3}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":0}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":36}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":64}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":3}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":0}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":29}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":35}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":3}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":0}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":36}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":67}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":3}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":0}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":45}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":31}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":3}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":0}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":44}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":29}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":23}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":5}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":9}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":67}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":22}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":55}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":14}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":5}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":3}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":0}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":47}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":30}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":23}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":5}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":0}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":9}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":71}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":22}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":59}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":14}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":5}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":3}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":0}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":48}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":31}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":23}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":5}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":9}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":73}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":22}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":60}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":14}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":5}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":3}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":0}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":34}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":29}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":3}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":0}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":39}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":34}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":3}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":0}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":41}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":33}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":16}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":3}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":5,\"90\":1,\"91\":1,\"92\":4,\"93\":4,\"94\":4,\"95\":5,\"96\":1,\"97\":1,\"98\":1,\"99\":3,\"100\":3,\"101\":3,\"102\":3,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":17,\"111\":17,\"112\":17,\"113\":1,\"114\":1,\"115\":8,\"116\":8,\"117\":8,\"118\":1,\"119\":1,\"120\":2,\"121\":2,\"122\":2,\"123\":0,\"124\":0,\"125\":2,\"126\":2,\"127\":1,\"128\":1,\"129\":34,\"130\":34,\"131\":1,\"132\":1,\"133\":35,\"134\":35,\"135\":35,\"136\":35,\"137\":1,\"138\":1,\"139\":46,\"140\":46,\"141\":1,\"142\":1,\"143\":35,\"144\":35,\"145\":0,\"146\":0,\"147\":35,\"148\":35,\"149\":1,\"150\":1,\"151\":26,\"152\":26,\"153\":1,\"154\":20,\"155\":20,\"156\":1,\"157\":1,\"158\":20,\"159\":20,\"160\":1,\"161\":1,\"162\":50,\"163\":50,\"164\":1,\"165\":1,\"166\":0,\"167\":0,\"168\":1,\"169\":1,\"170\":40,\"171\":40,\"172\":1,\"173\":1,\"174\":3,\"175\":2,\"176\":2,\"177\":1,\"178\":1,\"179\":1,\"180\":1,\"181\":1,\"182\":16,\"183\":16,\"184\":1,\"185\":1,\"186\":20,\"187\":20,\"188\":1,\"189\":1,\"190\":70,\"191\":70,\"192\":1,\"193\":1,\"194\":0,\"195\":0,\"196\":1,\"197\":1,\"198\":0,\"199\":0,\"200\":1,\"201\":1,\"202\":0,\"203\":0,\"204\":1,\"205\":1,\"206\":0,\"207\":0,\"208\":1,\"209\":1,\"210\":102,\"211\":102,\"212\":1,\"213\":1,\"214\":60,\"215\":60,\"216\":1,\"217\":1,\"218\":166,\"219\":166,\"220\":1,\"221\":1,\"222\":5,\"223\":5,\"224\":1,\"225\":1,\"226\":15,\"227\":15,\"228\":1,\"229\":1,\"230\":59,\"231\":59,\"232\":59,\"233\":1,\"234\":1,\"235\":21,\"236\":21,\"237\":1,\"238\":1,\"239\":79,\"240\":79,\"241\":1,\"242\":1,\"243\":7,\"244\":7,\"245\":1,\"246\":1,\"247\":33,\"248\":33,\"249\":1,\"250\":1,\"251\":53,\"252\":53,\"253\":1,\"254\":1,\"255\":40,\"256\":40,\"257\":1,\"258\":1,\"259\":120,\"260\":120,\"261\":1,\"262\":1,\"263\":7,\"264\":7,\"265\":1,\"266\":1,\"267\":7,\"268\":7,\"269\":7,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":7,\"277\":1,\"278\":1,\"279\":7,\"280\":7,\"281\":7,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":0,\"288\":0,\"289\":7,\"290\":1,\"291\":1,\"292\":7,\"293\":7,\"294\":7,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":7,\"302\":1,\"303\":1,\"304\":35,\"305\":35,\"306\":1,\"307\":1,\"308\":25,\"309\":25,\"310\":1,\"311\":1,\"312\":0,\"313\":0,\"314\":0,\"315\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":9},\"end\":{\"line\":103,\"column\":3}},\"locations\":[{\"start\":{\"line\":89,\"column\":9},\"end\":{\"line\":103,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":90,\"loc\":{\"start\":{\"line\":90,\"column\":34},\"end\":{\"line\":92,\"column\":5}},\"locations\":[{\"start\":{\"line\":90,\"column\":34},\"end\":{\"line\":92,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":-1},\"end\":{\"line\":96,\"column\":13}},\"locations\":[{\"start\":{\"line\":93,\"column\":-1},\"end\":{\"line\":96,\"column\":13}}]},\"3\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":6},\"end\":{\"line\":99,\"column\":5}},\"locations\":[{\"start\":{\"line\":96,\"column\":6},\"end\":{\"line\":99,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":-1},\"end\":{\"line\":103,\"column\":3}},\"locations\":[{\"start\":{\"line\":100,\"column\":-1},\"end\":{\"line\":103,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":9},\"end\":{\"line\":108,\"column\":3}},\"locations\":[{\"start\":{\"line\":105,\"column\":9},\"end\":{\"line\":108,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":2},\"end\":{\"line\":113,\"column\":3}},\"locations\":[{\"start\":{\"line\":110,\"column\":2},\"end\":{\"line\":113,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":2},\"end\":{\"line\":118,\"column\":3}},\"locations\":[{\"start\":{\"line\":115,\"column\":2},\"end\":{\"line\":118,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":120,\"loc\":{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":127,\"column\":3}},\"locations\":[{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":127,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":42},\"end\":{\"line\":122,\"column\":81}},\"locations\":[{\"start\":{\"line\":122,\"column\":42},\"end\":{\"line\":122,\"column\":81}}]},\"10\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":15},\"end\":{\"line\":125,\"column\":5}},\"locations\":[{\"start\":{\"line\":123,\"column\":15},\"end\":{\"line\":125,\"column\":5}}]},\"11\":{\"type\":\"branch\",\"line\":129,\"loc\":{\"start\":{\"line\":129,\"column\":2},\"end\":{\"line\":131,\"column\":3}},\"locations\":[{\"start\":{\"line\":129,\"column\":2},\"end\":{\"line\":131,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"locations\":[{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":137,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":136,\"loc\":{\"start\":{\"line\":136,\"column\":6},\"end\":{\"line\":136,\"column\":36}},\"locations\":[{\"start\":{\"line\":136,\"column\":6},\"end\":{\"line\":136,\"column\":36}}]},\"14\":{\"type\":\"branch\",\"line\":139,\"loc\":{\"start\":{\"line\":139,\"column\":2},\"end\":{\"line\":141,\"column\":3}},\"locations\":[{\"start\":{\"line\":139,\"column\":2},\"end\":{\"line\":141,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":143,\"loc\":{\"start\":{\"line\":143,\"column\":2},\"end\":{\"line\":149,\"column\":3}},\"locations\":[{\"start\":{\"line\":143,\"column\":2},\"end\":{\"line\":149,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":145,\"loc\":{\"start\":{\"line\":145,\"column\":6},\"end\":{\"line\":147,\"column\":42}},\"locations\":[{\"start\":{\"line\":145,\"column\":6},\"end\":{\"line\":147,\"column\":42}}]},\"17\":{\"type\":\"branch\",\"line\":151,\"loc\":{\"start\":{\"line\":151,\"column\":2},\"end\":{\"line\":153,\"column\":3}},\"locations\":[{\"start\":{\"line\":151,\"column\":2},\"end\":{\"line\":153,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":154,\"loc\":{\"start\":{\"line\":154,\"column\":2},\"end\":{\"line\":156,\"column\":3}},\"locations\":[{\"start\":{\"line\":154,\"column\":2},\"end\":{\"line\":156,\"column\":3}}]},\"19\":{\"type\":\"branch\",\"line\":158,\"loc\":{\"start\":{\"line\":158,\"column\":2},\"end\":{\"line\":160,\"column\":3}},\"locations\":[{\"start\":{\"line\":158,\"column\":2},\"end\":{\"line\":160,\"column\":3}}]},\"20\":{\"type\":\"branch\",\"line\":162,\"loc\":{\"start\":{\"line\":162,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"locations\":[{\"start\":{\"line\":162,\"column\":2},\"end\":{\"line\":164,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":2},\"end\":{\"line\":172,\"column\":3}},\"locations\":[{\"start\":{\"line\":170,\"column\":2},\"end\":{\"line\":172,\"column\":3}}]},\"22\":{\"type\":\"branch\",\"line\":174,\"loc\":{\"start\":{\"line\":174,\"column\":2},\"end\":{\"line\":180,\"column\":3}},\"locations\":[{\"start\":{\"line\":174,\"column\":2},\"end\":{\"line\":180,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":175,\"loc\":{\"start\":{\"line\":175,\"column\":41},\"end\":{\"line\":177,\"column\":5}},\"locations\":[{\"start\":{\"line\":175,\"column\":41},\"end\":{\"line\":177,\"column\":5}}]},\"24\":{\"type\":\"branch\",\"line\":178,\"loc\":{\"start\":{\"line\":178,\"column\":-1},\"end\":{\"line\":180,\"column\":3}},\"locations\":[{\"start\":{\"line\":178,\"column\":-1},\"end\":{\"line\":180,\"column\":3}}]},\"25\":{\"type\":\"branch\",\"line\":182,\"loc\":{\"start\":{\"line\":182,\"column\":2},\"end\":{\"line\":184,\"column\":3}},\"locations\":[{\"start\":{\"line\":182,\"column\":2},\"end\":{\"line\":184,\"column\":3}}]},\"26\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":2},\"end\":{\"line\":188,\"column\":3}},\"locations\":[{\"start\":{\"line\":186,\"column\":2},\"end\":{\"line\":188,\"column\":3}}]},\"27\":{\"type\":\"branch\",\"line\":190,\"loc\":{\"start\":{\"line\":190,\"column\":2},\"end\":{\"line\":192,\"column\":3}},\"locations\":[{\"start\":{\"line\":190,\"column\":2},\"end\":{\"line\":192,\"column\":3}}]},\"28\":{\"type\":\"branch\",\"line\":210,\"loc\":{\"start\":{\"line\":210,\"column\":2},\"end\":{\"line\":212,\"column\":3}},\"locations\":[{\"start\":{\"line\":210,\"column\":2},\"end\":{\"line\":212,\"column\":3}}]},\"29\":{\"type\":\"branch\",\"line\":214,\"loc\":{\"start\":{\"line\":214,\"column\":2},\"end\":{\"line\":216,\"column\":3}},\"locations\":[{\"start\":{\"line\":214,\"column\":2},\"end\":{\"line\":216,\"column\":3}}]},\"30\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":220,\"column\":3}},\"locations\":[{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":220,\"column\":3}}]},\"31\":{\"type\":\"branch\",\"line\":222,\"loc\":{\"start\":{\"line\":222,\"column\":2},\"end\":{\"line\":224,\"column\":3}},\"locations\":[{\"start\":{\"line\":222,\"column\":2},\"end\":{\"line\":224,\"column\":3}}]},\"32\":{\"type\":\"branch\",\"line\":226,\"loc\":{\"start\":{\"line\":226,\"column\":2},\"end\":{\"line\":228,\"column\":3}},\"locations\":[{\"start\":{\"line\":226,\"column\":2},\"end\":{\"line\":228,\"column\":3}}]},\"33\":{\"type\":\"branch\",\"line\":230,\"loc\":{\"start\":{\"line\":230,\"column\":2},\"end\":{\"line\":233,\"column\":3}},\"locations\":[{\"start\":{\"line\":230,\"column\":2},\"end\":{\"line\":233,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":231,\"loc\":{\"start\":{\"line\":231,\"column\":40},\"end\":{\"line\":231,\"column\":61}},\"locations\":[{\"start\":{\"line\":231,\"column\":40},\"end\":{\"line\":231,\"column\":61}}]},\"35\":{\"type\":\"branch\",\"line\":232,\"loc\":{\"start\":{\"line\":232,\"column\":24},\"end\":{\"line\":232,\"column\":42}},\"locations\":[{\"start\":{\"line\":232,\"column\":24},\"end\":{\"line\":232,\"column\":42}}]},\"36\":{\"type\":\"branch\",\"line\":235,\"loc\":{\"start\":{\"line\":235,\"column\":2},\"end\":{\"line\":237,\"column\":3}},\"locations\":[{\"start\":{\"line\":235,\"column\":2},\"end\":{\"line\":237,\"column\":3}}]},\"37\":{\"type\":\"branch\",\"line\":239,\"loc\":{\"start\":{\"line\":239,\"column\":2},\"end\":{\"line\":241,\"column\":3}},\"locations\":[{\"start\":{\"line\":239,\"column\":2},\"end\":{\"line\":241,\"column\":3}}]},\"38\":{\"type\":\"branch\",\"line\":243,\"loc\":{\"start\":{\"line\":243,\"column\":2},\"end\":{\"line\":245,\"column\":3}},\"locations\":[{\"start\":{\"line\":243,\"column\":2},\"end\":{\"line\":245,\"column\":3}}]},\"39\":{\"type\":\"branch\",\"line\":247,\"loc\":{\"start\":{\"line\":247,\"column\":2},\"end\":{\"line\":249,\"column\":3}},\"locations\":[{\"start\":{\"line\":247,\"column\":2},\"end\":{\"line\":249,\"column\":3}}]},\"40\":{\"type\":\"branch\",\"line\":251,\"loc\":{\"start\":{\"line\":251,\"column\":2},\"end\":{\"line\":253,\"column\":3}},\"locations\":[{\"start\":{\"line\":251,\"column\":2},\"end\":{\"line\":253,\"column\":3}}]},\"41\":{\"type\":\"branch\",\"line\":252,\"loc\":{\"start\":{\"line\":252,\"column\":24},\"end\":{\"line\":252,\"column\":30}},\"locations\":[{\"start\":{\"line\":252,\"column\":24},\"end\":{\"line\":252,\"column\":30}}]},\"42\":{\"type\":\"branch\",\"line\":255,\"loc\":{\"start\":{\"line\":255,\"column\":2},\"end\":{\"line\":257,\"column\":3}},\"locations\":[{\"start\":{\"line\":255,\"column\":2},\"end\":{\"line\":257,\"column\":3}}]},\"43\":{\"type\":\"branch\",\"line\":259,\"loc\":{\"start\":{\"line\":259,\"column\":2},\"end\":{\"line\":261,\"column\":3}},\"locations\":[{\"start\":{\"line\":259,\"column\":2},\"end\":{\"line\":261,\"column\":3}}]},\"44\":{\"type\":\"branch\",\"line\":260,\"loc\":{\"start\":{\"line\":260,\"column\":24},\"end\":{\"line\":260,\"column\":31}},\"locations\":[{\"start\":{\"line\":260,\"column\":24},\"end\":{\"line\":260,\"column\":31}}]},\"45\":{\"type\":\"branch\",\"line\":263,\"loc\":{\"start\":{\"line\":263,\"column\":2},\"end\":{\"line\":265,\"column\":3}},\"locations\":[{\"start\":{\"line\":263,\"column\":2},\"end\":{\"line\":265,\"column\":3}}]},\"46\":{\"type\":\"branch\",\"line\":267,\"loc\":{\"start\":{\"line\":267,\"column\":2},\"end\":{\"line\":277,\"column\":3}},\"locations\":[{\"start\":{\"line\":267,\"column\":2},\"end\":{\"line\":277,\"column\":3}}]},\"47\":{\"type\":\"branch\",\"line\":271,\"loc\":{\"start\":{\"line\":271,\"column\":-1},\"end\":{\"line\":276,\"column\":5}},\"locations\":[{\"start\":{\"line\":271,\"column\":-1},\"end\":{\"line\":276,\"column\":5}}]},\"48\":{\"type\":\"branch\",\"line\":279,\"loc\":{\"start\":{\"line\":279,\"column\":2},\"end\":{\"line\":290,\"column\":3}},\"locations\":[{\"start\":{\"line\":279,\"column\":2},\"end\":{\"line\":290,\"column\":3}}]},\"49\":{\"type\":\"branch\",\"line\":283,\"loc\":{\"start\":{\"line\":283,\"column\":-1},\"end\":{\"line\":289,\"column\":5}},\"locations\":[{\"start\":{\"line\":283,\"column\":-1},\"end\":{\"line\":289,\"column\":5}}]},\"50\":{\"type\":\"branch\",\"line\":292,\"loc\":{\"start\":{\"line\":292,\"column\":2},\"end\":{\"line\":302,\"column\":3}},\"locations\":[{\"start\":{\"line\":292,\"column\":2},\"end\":{\"line\":302,\"column\":3}}]},\"51\":{\"type\":\"branch\",\"line\":296,\"loc\":{\"start\":{\"line\":296,\"column\":-1},\"end\":{\"line\":301,\"column\":5}},\"locations\":[{\"start\":{\"line\":296,\"column\":-1},\"end\":{\"line\":301,\"column\":5}}]},\"52\":{\"type\":\"branch\",\"line\":304,\"loc\":{\"start\":{\"line\":304,\"column\":2},\"end\":{\"line\":306,\"column\":3}},\"locations\":[{\"start\":{\"line\":304,\"column\":2},\"end\":{\"line\":306,\"column\":3}}]},\"53\":{\"type\":\"branch\",\"line\":308,\"loc\":{\"start\":{\"line\":308,\"column\":2},\"end\":{\"line\":310,\"column\":3}},\"locations\":[{\"start\":{\"line\":308,\"column\":2},\"end\":{\"line\":310,\"column\":3}}]}},\"b\":{\"0\":[5],\"1\":[1],\"2\":[4],\"3\":[1],\"4\":[3],\"5\":[1],\"6\":[17],\"7\":[8],\"8\":[2],\"9\":[0],\"10\":[0],\"11\":[34],\"12\":[35],\"13\":[0],\"14\":[46],\"15\":[35],\"16\":[0],\"17\":[26],\"18\":[20],\"19\":[20],\"20\":[50],\"21\":[40],\"22\":[3],\"23\":[2],\"24\":[1],\"25\":[16],\"26\":[20],\"27\":[70],\"28\":[102],\"29\":[60],\"30\":[166],\"31\":[5],\"32\":[15],\"33\":[59],\"34\":[0],\"35\":[0],\"36\":[21],\"37\":[79],\"38\":[7],\"39\":[33],\"40\":[53],\"41\":[0],\"42\":[40],\"43\":[120],\"44\":[0],\"45\":[7],\"46\":[7],\"47\":[0],\"48\":[7],\"49\":[0],\"50\":[7],\"51\":[0],\"52\":[35],\"53\":[25]},\"fnMap\":{\"0\":{\"name\":\"fromFile\",\"decl\":{\"start\":{\"line\":89,\"column\":9},\"end\":{\"line\":103,\"column\":3}},\"loc\":{\"start\":{\"line\":89,\"column\":9},\"end\":{\"line\":103,\"column\":3}},\"line\":89},\"1\":{\"name\":\"rebaseWithArgs\",\"decl\":{\"start\":{\"line\":105,\"column\":9},\"end\":{\"line\":108,\"column\":3}},\"loc\":{\"start\":{\"line\":105,\"column\":9},\"end\":{\"line\":108,\"column\":3}},\"line\":105},\"2\":{\"name\":\"NodeConfig\",\"decl\":{\"start\":{\"line\":110,\"column\":2},\"end\":{\"line\":113,\"column\":3}},\"loc\":{\"start\":{\"line\":110,\"column\":2},\"end\":{\"line\":113,\"column\":3}},\"line\":110},\"3\":{\"name\":\"get subquery\",\"decl\":{\"start\":{\"line\":115,\"column\":2},\"end\":{\"line\":118,\"column\":3}},\"loc\":{\"start\":{\"line\":115,\"column\":2},\"end\":{\"line\":118,\"column\":3}},\"line\":115},\"4\":{\"name\":\"get subqueryName\",\"decl\":{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":127,\"column\":3}},\"loc\":{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":127,\"column\":3}},\"line\":120},\"5\":{\"name\":\"get batchSize\",\"decl\":{\"start\":{\"line\":129,\"column\":2},\"end\":{\"line\":131,\"column\":3}},\"loc\":{\"start\":{\"line\":129,\"column\":2},\"end\":{\"line\":131,\"column\":3}},\"line\":129},\"6\":{\"name\":\"get networkEndpoints\",\"decl\":{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"loc\":{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"line\":133},\"7\":{\"name\":\"get primaryNetworkEndpoint\",\"decl\":{\"start\":{\"line\":139,\"column\":2},\"end\":{\"line\":141,\"column\":3}},\"loc\":{\"start\":{\"line\":139,\"column\":2},\"end\":{\"line\":141,\"column\":3}},\"line\":139},\"8\":{\"name\":\"get networkDictionaries\",\"decl\":{\"start\":{\"line\":143,\"column\":2},\"end\":{\"line\":149,\"column\":3}},\"loc\":{\"start\":{\"line\":143,\"column\":2},\"end\":{\"line\":149,\"column\":3}},\"line\":143},\"9\":{\"name\":\"get allowSchemaMigration\",\"decl\":{\"start\":{\"line\":151,\"column\":2},\"end\":{\"line\":153,\"column\":3}},\"loc\":{\"start\":{\"line\":151,\"column\":2},\"end\":{\"line\":153,\"column\":3}},\"line\":151},\"10\":{\"name\":\"get storeCacheThreshold\",\"decl\":{\"start\":{\"line\":154,\"column\":2},\"end\":{\"line\":156,\"column\":3}},\"loc\":{\"start\":{\"line\":154,\"column\":2},\"end\":{\"line\":156,\"column\":3}},\"line\":154},\"11\":{\"name\":\"get storeCacheUpperLimit\",\"decl\":{\"start\":{\"line\":158,\"column\":2},\"end\":{\"line\":160,\"column\":3}},\"loc\":{\"start\":{\"line\":158,\"column\":2},\"end\":{\"line\":160,\"column\":3}},\"line\":158},\"12\":{\"name\":\"get storeGetCacheSize\",\"decl\":{\"start\":{\"line\":162,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"loc\":{\"start\":{\"line\":162,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"line\":162},\"13\":{\"name\":\"get storeCacheAsync\",\"decl\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":168,\"column\":3}},\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":168,\"column\":3}},\"line\":166},\"14\":{\"name\":\"get storeFlushInterval\",\"decl\":{\"start\":{\"line\":170,\"column\":2},\"end\":{\"line\":172,\"column\":3}},\"loc\":{\"start\":{\"line\":170,\"column\":2},\"end\":{\"line\":172,\"column\":3}},\"line\":170},\"15\":{\"name\":\"get dictionaryRegistry\",\"decl\":{\"start\":{\"line\":174,\"column\":2},\"end\":{\"line\":180,\"column\":3}},\"loc\":{\"start\":{\"line\":174,\"column\":2},\"end\":{\"line\":180,\"column\":3}},\"line\":174},\"16\":{\"name\":\"get timeout\",\"decl\":{\"start\":{\"line\":182,\"column\":2},\"end\":{\"line\":184,\"column\":3}},\"loc\":{\"start\":{\"line\":182,\"column\":2},\"end\":{\"line\":184,\"column\":3}},\"line\":182},\"17\":{\"name\":\"get blockTime\",\"decl\":{\"start\":{\"line\":186,\"column\":2},\"end\":{\"line\":188,\"column\":3}},\"loc\":{\"start\":{\"line\":186,\"column\":2},\"end\":{\"line\":188,\"column\":3}},\"line\":186},\"18\":{\"name\":\"get debug\",\"decl\":{\"start\":{\"line\":190,\"column\":2},\"end\":{\"line\":192,\"column\":3}},\"loc\":{\"start\":{\"line\":190,\"column\":2},\"end\":{\"line\":192,\"column\":3}},\"line\":190},\"19\":{\"name\":\"get preferRange\",\"decl\":{\"start\":{\"line\":194,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"loc\":{\"start\":{\"line\":194,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"line\":194},\"20\":{\"name\":\"get outputFmt\",\"decl\":{\"start\":{\"line\":198,\"column\":2},\"end\":{\"line\":200,\"column\":3}},\"loc\":{\"start\":{\"line\":198,\"column\":2},\"end\":{\"line\":200,\"column\":3}},\"line\":198},\"21\":{\"name\":\"get logLevel\",\"decl\":{\"start\":{\"line\":202,\"column\":2},\"end\":{\"line\":204,\"column\":3}},\"loc\":{\"start\":{\"line\":202,\"column\":2},\"end\":{\"line\":204,\"column\":3}},\"line\":202},\"22\":{\"name\":\"get queryLimit\",\"decl\":{\"start\":{\"line\":206,\"column\":2},\"end\":{\"line\":208,\"column\":3}},\"loc\":{\"start\":{\"line\":206,\"column\":2},\"end\":{\"line\":208,\"column\":3}},\"line\":206},\"23\":{\"name\":\"get indexCountLimit\",\"decl\":{\"start\":{\"line\":210,\"column\":2},\"end\":{\"line\":212,\"column\":3}},\"loc\":{\"start\":{\"line\":210,\"column\":2},\"end\":{\"line\":212,\"column\":3}},\"line\":210},\"24\":{\"name\":\"get proofOfIndex\",\"decl\":{\"start\":{\"line\":214,\"column\":2},\"end\":{\"line\":216,\"column\":3}},\"loc\":{\"start\":{\"line\":214,\"column\":2},\"end\":{\"line\":216,\"column\":3}},\"line\":214},\"25\":{\"name\":\"get dictionaryTimeout\",\"decl\":{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":220,\"column\":3}},\"loc\":{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":220,\"column\":3}},\"line\":218},\"26\":{\"name\":\"get dictionaryQuerySize\",\"decl\":{\"start\":{\"line\":222,\"column\":2},\"end\":{\"line\":224,\"column\":3}},\"loc\":{\"start\":{\"line\":222,\"column\":2},\"end\":{\"line\":224,\"column\":3}},\"line\":222},\"27\":{\"name\":\"get ipfs\",\"decl\":{\"start\":{\"line\":226,\"column\":2},\"end\":{\"line\":228,\"column\":3}},\"loc\":{\"start\":{\"line\":226,\"column\":2},\"end\":{\"line\":228,\"column\":3}},\"line\":226},\"28\":{\"name\":\"get dbSchema\",\"decl\":{\"start\":{\"line\":230,\"column\":2},\"end\":{\"line\":233,\"column\":3}},\"loc\":{\"start\":{\"line\":230,\"column\":2},\"end\":{\"line\":233,\"column\":3}},\"line\":230},\"29\":{\"name\":\"get workers\",\"decl\":{\"start\":{\"line\":235,\"column\":2},\"end\":{\"line\":237,\"column\":3}},\"loc\":{\"start\":{\"line\":235,\"column\":2},\"end\":{\"line\":237,\"column\":3}},\"line\":235},\"30\":{\"name\":\"get profiler\",\"decl\":{\"start\":{\"line\":239,\"column\":2},\"end\":{\"line\":241,\"column\":3}},\"loc\":{\"start\":{\"line\":239,\"column\":2},\"end\":{\"line\":241,\"column\":3}},\"line\":239},\"31\":{\"name\":\"get unsafe\",\"decl\":{\"start\":{\"line\":243,\"column\":2},\"end\":{\"line\":245,\"column\":3}},\"loc\":{\"start\":{\"line\":243,\"column\":2},\"end\":{\"line\":245,\"column\":3}},\"line\":243},\"32\":{\"name\":\"get subscription\",\"decl\":{\"start\":{\"line\":247,\"column\":2},\"end\":{\"line\":249,\"column\":3}},\"loc\":{\"start\":{\"line\":247,\"column\":2},\"end\":{\"line\":249,\"column\":3}},\"line\":247},\"33\":{\"name\":\"get disableHistorical\",\"decl\":{\"start\":{\"line\":251,\"column\":2},\"end\":{\"line\":253,\"column\":3}},\"loc\":{\"start\":{\"line\":251,\"column\":2},\"end\":{\"line\":253,\"column\":3}},\"line\":251},\"34\":{\"name\":\"get multiChain\",\"decl\":{\"start\":{\"line\":255,\"column\":2},\"end\":{\"line\":257,\"column\":3}},\"loc\":{\"start\":{\"line\":255,\"column\":2},\"end\":{\"line\":257,\"column\":3}},\"line\":255},\"35\":{\"name\":\"get unfinalizedBlocks\",\"decl\":{\"start\":{\"line\":259,\"column\":2},\"end\":{\"line\":261,\"column\":3}},\"loc\":{\"start\":{\"line\":259,\"column\":2},\"end\":{\"line\":261,\"column\":3}},\"line\":259},\"36\":{\"name\":\"get isPostgresSecureConnection\",\"decl\":{\"start\":{\"line\":263,\"column\":2},\"end\":{\"line\":265,\"column\":3}},\"loc\":{\"start\":{\"line\":263,\"column\":2},\"end\":{\"line\":265,\"column\":3}},\"line\":263},\"37\":{\"name\":\"get postgresCACert\",\"decl\":{\"start\":{\"line\":267,\"column\":2},\"end\":{\"line\":277,\"column\":3}},\"loc\":{\"start\":{\"line\":267,\"column\":2},\"end\":{\"line\":277,\"column\":3}},\"line\":267},\"38\":{\"name\":\"get postgresClientKey\",\"decl\":{\"start\":{\"line\":279,\"column\":2},\"end\":{\"line\":290,\"column\":3}},\"loc\":{\"start\":{\"line\":279,\"column\":2},\"end\":{\"line\":290,\"column\":3}},\"line\":279},\"39\":{\"name\":\"get postgresClientCert\",\"decl\":{\"start\":{\"line\":292,\"column\":2},\"end\":{\"line\":302,\"column\":3}},\"loc\":{\"start\":{\"line\":292,\"column\":2},\"end\":{\"line\":302,\"column\":3}},\"line\":292},\"40\":{\"name\":\"get root\",\"decl\":{\"start\":{\"line\":304,\"column\":2},\"end\":{\"line\":306,\"column\":3}},\"loc\":{\"start\":{\"line\":304,\"column\":2},\"end\":{\"line\":306,\"column\":3}},\"line\":304},\"41\":{\"name\":\"get csvOutDir\",\"decl\":{\"start\":{\"line\":308,\"column\":2},\"end\":{\"line\":310,\"column\":3}},\"loc\":{\"start\":{\"line\":308,\"column\":2},\"end\":{\"line\":310,\"column\":3}},\"line\":308},\"42\":{\"name\":\"merge\",\"decl\":{\"start\":{\"line\":312,\"column\":2},\"end\":{\"line\":315,\"column\":3}},\"loc\":{\"start\":{\"line\":312,\"column\":2},\"end\":{\"line\":315,\"column\":3}},\"line\":312}},\"f\":{\"0\":5,\"1\":1,\"2\":17,\"3\":8,\"4\":2,\"5\":34,\"6\":35,\"7\":46,\"8\":35,\"9\":26,\"10\":20,\"11\":20,\"12\":50,\"13\":0,\"14\":40,\"15\":3,\"16\":16,\"17\":20,\"18\":70,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":102,\"24\":60,\"25\":166,\"26\":5,\"27\":15,\"28\":59,\"29\":21,\"30\":79,\"31\":7,\"32\":33,\"33\":53,\"34\":40,\"35\":120,\"36\":7,\"37\":7,\"38\":7,\"39\":7,\"40\":35,\"41\":25,\"42\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/ProjectUpgrade.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/ProjectUpgrade.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":44}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":48}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":53}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":58}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":48}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":45}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":77}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":36}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":56}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":55}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":40}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":88}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":88}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":9}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":31}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":26}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":23}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":25}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":19}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":50}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":35}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":5}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":97}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":7}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":90}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":79}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":33}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":57}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":24}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":20}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":27}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":36}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":11}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":30}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":32}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":29}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":30}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":21}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":58}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":15}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":18}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":19}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":13}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":9}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":29}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":17}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":2}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":61}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":105}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":56}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":43}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":50}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":2}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":152}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":2}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":70}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":42}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":34}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":74}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":11}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":60}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":19}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":6}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":33}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":44}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":37}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":47}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":40}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":37}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":9}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":21}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":7}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":8}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":82}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":67}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":77}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":9}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":86}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":71}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":41}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":37}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":9}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":22}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":7}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":6}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":5}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":1}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":120}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":25}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":21}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":0}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":34}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":31}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":19}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":23}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":30}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":57}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":52}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":114}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":16}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":34}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":65}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":36}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":21}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":41}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":18}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":9}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":9}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":6}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":63}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":40}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":64}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":3}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":13}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":31}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":26}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":23}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":25}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":19}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":50}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":34}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":28}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":89}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":13}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":5}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":29}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":47}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":38}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":26}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":25}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":0}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":55}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":16}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":19}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":72}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":13}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":12}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":6}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":0}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":67}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":0}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":75}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":0}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":61}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":64}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":0}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":68}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":45}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":29}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":3}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":0}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":91}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":85}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":40}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":64}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":45}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":3}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":0}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":31}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":30}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":3}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":0}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":34}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":35}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":3}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":0}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":27}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":32}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":3}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":0}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":31}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":31}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":3}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":0}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":15}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":30}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":32}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":29}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":30}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":20}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":81}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":24}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":25}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":6}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":68}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":57}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":0}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":36}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":33}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":0}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":26}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":70}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":64}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":0}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":42}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":36}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":104}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":9}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":69}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":7}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":0}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":25}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":46}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":31}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":5}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":3}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":0}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":24}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":30}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":33}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":40}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":20}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":51}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":41}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":69}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":45}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":111}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":29}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":57}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":54}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":107}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":9}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":7}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":5}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":3}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":0}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":5}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":57}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":66}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":7}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":57}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":33}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":64}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":77}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":63}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":0}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":59}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":79}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":41}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":38}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":0}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":42}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":25}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":13}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":74}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":26}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":57}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":18}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":9}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":7}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":0}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":11}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":63}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":27}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":61}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":9}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":24}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":64}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":24}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":7}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":0}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":78}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":5}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":3}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":0}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":50}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":67}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":49}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":72}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":40}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":47}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":0}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":38}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":42}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":0}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":35}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":0}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":56}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":33}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":70}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":7}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":50}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":36}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":6}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":0}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":53}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":18}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":76}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":0}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":80}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":40}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":107}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":7}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":0}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":32}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":35}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":50}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":76}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":16}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":9}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":55}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":14}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":7}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":75}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":74}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":7}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":52}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":94}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":14}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":7}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":0}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":41}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":85}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":109}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":9}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":109}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":24}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":121}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":10}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":7}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":35}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":5}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":0}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":25}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":88}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":5}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":0}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":56}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":0}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":60}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":101}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":3}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":0}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":33}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":38}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":3}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":0}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":97}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":88}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":52}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":55}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":44}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":98}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":21}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":7}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":32}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":5}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":16}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":3}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":0}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":103}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":88}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":98}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":0}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":27}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":3}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":0}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":81}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":88}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":37}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":33}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":65}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":106}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":15}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":19}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":9}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":0}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":33}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":35}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":25}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":7}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":0}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":44}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":41}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":23}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":92}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":8}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":0}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":31}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":105}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":7}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":0}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":72}},\"404\":{\"start\":{\"line\":405,\"column\":0},\"end\":{\"line\":405,\"column\":5}},\"405\":{\"start\":{\"line\":406,\"column\":0},\"end\":{\"line\":406,\"column\":0}},\"406\":{\"start\":{\"line\":407,\"column\":0},\"end\":{\"line\":407,\"column\":21}},\"407\":{\"start\":{\"line\":408,\"column\":0},\"end\":{\"line\":408,\"column\":3}},\"408\":{\"start\":{\"line\":409,\"column\":0},\"end\":{\"line\":409,\"column\":0}},\"409\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":410,\"column\":75}},\"410\":{\"start\":{\"line\":411,\"column\":0},\"end\":{\"line\":411,\"column\":119}},\"411\":{\"start\":{\"line\":412,\"column\":0},\"end\":{\"line\":412,\"column\":80}},\"412\":{\"start\":{\"line\":413,\"column\":0},\"end\":{\"line\":413,\"column\":0}},\"413\":{\"start\":{\"line\":414,\"column\":0},\"end\":{\"line\":414,\"column\":35}},\"414\":{\"start\":{\"line\":415,\"column\":0},\"end\":{\"line\":415,\"column\":0}},\"415\":{\"start\":{\"line\":416,\"column\":0},\"end\":{\"line\":416,\"column\":38}},\"416\":{\"start\":{\"line\":417,\"column\":0},\"end\":{\"line\":417,\"column\":3}},\"417\":{\"start\":{\"line\":418,\"column\":0},\"end\":{\"line\":418,\"column\":0}},\"418\":{\"start\":{\"line\":419,\"column\":0},\"end\":{\"line\":419,\"column\":19}},\"419\":{\"start\":{\"line\":420,\"column\":0},\"end\":{\"line\":420,\"column\":82}},\"420\":{\"start\":{\"line\":421,\"column\":0},\"end\":{\"line\":421,\"column\":119}},\"421\":{\"start\":{\"line\":422,\"column\":0},\"end\":{\"line\":422,\"column\":60}},\"422\":{\"start\":{\"line\":423,\"column\":0},\"end\":{\"line\":423,\"column\":0}},\"423\":{\"start\":{\"line\":424,\"column\":0},\"end\":{\"line\":424,\"column\":100}},\"424\":{\"start\":{\"line\":425,\"column\":0},\"end\":{\"line\":425,\"column\":50}},\"425\":{\"start\":{\"line\":426,\"column\":0},\"end\":{\"line\":426,\"column\":13}},\"426\":{\"start\":{\"line\":427,\"column\":0},\"end\":{\"line\":427,\"column\":5}},\"427\":{\"start\":{\"line\":428,\"column\":0},\"end\":{\"line\":428,\"column\":0}},\"428\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":429,\"column\":62}},\"429\":{\"start\":{\"line\":430,\"column\":0},\"end\":{\"line\":430,\"column\":47}},\"430\":{\"start\":{\"line\":431,\"column\":0},\"end\":{\"line\":431,\"column\":39}},\"431\":{\"start\":{\"line\":432,\"column\":0},\"end\":{\"line\":432,\"column\":34}},\"432\":{\"start\":{\"line\":433,\"column\":0},\"end\":{\"line\":433,\"column\":35}},\"433\":{\"start\":{\"line\":434,\"column\":0},\"end\":{\"line\":434,\"column\":7}},\"434\":{\"start\":{\"line\":435,\"column\":0},\"end\":{\"line\":435,\"column\":7}},\"435\":{\"start\":{\"line\":436,\"column\":0},\"end\":{\"line\":436,\"column\":0}},\"436\":{\"start\":{\"line\":437,\"column\":0},\"end\":{\"line\":437,\"column\":34}},\"437\":{\"start\":{\"line\":438,\"column\":0},\"end\":{\"line\":438,\"column\":0}},\"438\":{\"start\":{\"line\":439,\"column\":0},\"end\":{\"line\":439,\"column\":79}},\"439\":{\"start\":{\"line\":440,\"column\":0},\"end\":{\"line\":440,\"column\":3}},\"440\":{\"start\":{\"line\":441,\"column\":0},\"end\":{\"line\":441,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":217,\"57\":217,\"58\":217,\"59\":1,\"60\":406,\"61\":406,\"62\":406,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":10,\"70\":10,\"71\":10,\"72\":10,\"73\":10,\"74\":1,\"75\":1,\"76\":10,\"77\":10,\"78\":505,\"79\":505,\"80\":86,\"81\":86,\"82\":0,\"83\":0,\"84\":86,\"85\":86,\"86\":86,\"87\":419,\"88\":419,\"89\":419,\"90\":419,\"91\":419,\"92\":504,\"93\":284,\"94\":284,\"95\":284,\"96\":192,\"97\":192,\"98\":92,\"99\":92,\"100\":92,\"101\":10,\"102\":10,\"103\":10,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":24,\"120\":24,\"121\":24,\"122\":101,\"123\":101,\"124\":24,\"125\":24,\"126\":24,\"127\":24,\"128\":24,\"129\":24,\"130\":24,\"131\":24,\"132\":24,\"133\":1,\"134\":1,\"135\":10,\"136\":10,\"137\":10,\"138\":10,\"139\":10,\"140\":10,\"141\":10,\"142\":10,\"143\":0,\"144\":0,\"145\":0,\"146\":10,\"147\":10,\"148\":10,\"149\":10,\"150\":10,\"151\":10,\"152\":10,\"153\":10,\"154\":10,\"155\":10,\"156\":10,\"157\":10,\"158\":10,\"159\":10,\"160\":10,\"161\":10,\"162\":10,\"163\":10,\"164\":10,\"165\":10,\"166\":10,\"167\":10,\"168\":10,\"169\":10,\"170\":10,\"171\":1,\"172\":1,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":1,\"179\":1,\"180\":1,\"181\":1,\"182\":1,\"183\":1,\"184\":38,\"185\":38,\"186\":1,\"187\":1,\"188\":505,\"189\":505,\"190\":1,\"191\":1,\"192\":9,\"193\":9,\"194\":1,\"195\":1,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":1,\"228\":1,\"229\":3,\"230\":3,\"231\":3,\"232\":3,\"233\":3,\"234\":3,\"235\":3,\"236\":3,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":3,\"245\":3,\"246\":1,\"247\":1,\"248\":1,\"249\":1,\"250\":1,\"251\":1,\"252\":3,\"253\":3,\"254\":3,\"255\":3,\"256\":3,\"257\":3,\"258\":3,\"259\":3,\"260\":3,\"261\":3,\"262\":3,\"263\":3,\"264\":3,\"265\":3,\"266\":3,\"267\":0,\"268\":0,\"269\":0,\"270\":3,\"271\":3,\"272\":3,\"273\":3,\"274\":3,\"275\":3,\"276\":3,\"277\":3,\"278\":0,\"279\":0,\"280\":0,\"281\":3,\"282\":3,\"283\":3,\"284\":3,\"285\":1,\"286\":1,\"287\":30,\"288\":30,\"289\":30,\"290\":30,\"291\":30,\"292\":30,\"293\":30,\"294\":30,\"295\":30,\"296\":30,\"297\":30,\"298\":30,\"299\":110,\"300\":1,\"301\":1,\"302\":109,\"303\":109,\"304\":30,\"305\":30,\"306\":30,\"307\":30,\"308\":111,\"309\":111,\"310\":111,\"311\":111,\"312\":30,\"313\":30,\"314\":111,\"315\":111,\"316\":111,\"317\":26,\"318\":26,\"319\":1,\"320\":1,\"321\":25,\"322\":25,\"323\":25,\"324\":111,\"325\":85,\"326\":85,\"327\":85,\"328\":111,\"329\":2,\"330\":2,\"331\":83,\"332\":83,\"333\":83,\"334\":0,\"335\":83,\"336\":111,\"337\":2,\"338\":2,\"339\":2,\"340\":2,\"341\":81,\"342\":81,\"343\":25,\"344\":30,\"345\":1,\"346\":1,\"347\":24,\"348\":24,\"349\":24,\"350\":24,\"351\":24,\"352\":24,\"353\":1,\"354\":1,\"355\":37,\"356\":37,\"357\":1,\"358\":1,\"359\":6,\"360\":6,\"361\":6,\"362\":6,\"363\":1,\"364\":1,\"365\":1,\"366\":0,\"367\":0,\"368\":5,\"369\":5,\"370\":1,\"371\":1,\"372\":109,\"373\":109,\"374\":109,\"375\":109,\"376\":109,\"377\":1,\"378\":1,\"379\":1,\"380\":17,\"381\":17,\"382\":11,\"383\":11,\"384\":66,\"385\":66,\"386\":11,\"387\":11,\"388\":11,\"389\":11,\"390\":6,\"391\":6,\"392\":5,\"393\":5,\"394\":5,\"395\":5,\"396\":5,\"397\":5,\"398\":5,\"399\":11,\"400\":1,\"401\":1,\"402\":4,\"403\":11,\"404\":11,\"405\":6,\"406\":6,\"407\":6,\"408\":1,\"409\":1,\"410\":26,\"411\":26,\"412\":26,\"413\":26,\"414\":16,\"415\":16,\"416\":16,\"417\":1,\"418\":1,\"419\":1,\"420\":13,\"421\":13,\"422\":13,\"423\":13,\"424\":13,\"425\":4,\"426\":4,\"427\":9,\"428\":9,\"429\":9,\"430\":6,\"431\":6,\"432\":1,\"433\":1,\"434\":9,\"435\":9,\"436\":9,\"437\":9,\"438\":13,\"439\":13,\"440\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"locations\":[{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":59,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"locations\":[{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":63,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":26},\"end\":{\"line\":62,\"column\":42}},\"locations\":[{\"start\":{\"line\":62,\"column\":26},\"end\":{\"line\":62,\"column\":42}}]},\"3\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":104,\"column\":1}},\"locations\":[{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":104,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":4},\"end\":{\"line\":77,\"column\":5}},\"locations\":[{\"start\":{\"line\":74,\"column\":4},\"end\":{\"line\":77,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":4},\"end\":{\"line\":102,\"column\":5}},\"locations\":[{\"start\":{\"line\":78,\"column\":4},\"end\":{\"line\":102,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":80,\"loc\":{\"start\":{\"line\":80,\"column\":36},\"end\":{\"line\":87,\"column\":7}},\"locations\":[{\"start\":{\"line\":80,\"column\":36},\"end\":{\"line\":87,\"column\":7}}]},\"7\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":39},\"end\":{\"line\":84,\"column\":9}},\"locations\":[{\"start\":{\"line\":82,\"column\":39},\"end\":{\"line\":84,\"column\":9}}]},\"8\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":-1},\"end\":{\"line\":101,\"column\":7}},\"locations\":[{\"start\":{\"line\":88,\"column\":-1},\"end\":{\"line\":101,\"column\":7}}]},\"9\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":-1},\"end\":{\"line\":93,\"column\":85}},\"locations\":[{\"start\":{\"line\":88,\"column\":-1},\"end\":{\"line\":93,\"column\":85}}]},\"10\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":85},\"end\":{\"line\":101,\"column\":7}},\"locations\":[{\"start\":{\"line\":93,\"column\":85},\"end\":{\"line\":101,\"column\":7}}]},\"11\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":40},\"end\":{\"line\":101,\"column\":7}},\"locations\":[{\"start\":{\"line\":96,\"column\":40},\"end\":{\"line\":101,\"column\":7}}]},\"12\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":40},\"end\":{\"line\":98,\"column\":9}},\"locations\":[{\"start\":{\"line\":96,\"column\":40},\"end\":{\"line\":98,\"column\":9}}]},\"13\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":-1},\"end\":{\"line\":101,\"column\":7}},\"locations\":[{\"start\":{\"line\":99,\"column\":-1},\"end\":{\"line\":101,\"column\":7}}]},\"14\":{\"type\":\"branch\",\"line\":119,\"loc\":{\"start\":{\"line\":119,\"column\":2},\"end\":{\"line\":133,\"column\":3}},\"locations\":[{\"start\":{\"line\":119,\"column\":2},\"end\":{\"line\":133,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":49},\"end\":{\"line\":125,\"column\":9}},\"locations\":[{\"start\":{\"line\":122,\"column\":49},\"end\":{\"line\":125,\"column\":9}}]},\"16\":{\"type\":\"branch\",\"line\":135,\"loc\":{\"start\":{\"line\":135,\"column\":2},\"end\":{\"line\":171,\"column\":3}},\"locations\":[{\"start\":{\"line\":135,\"column\":2},\"end\":{\"line\":171,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":143,\"loc\":{\"start\":{\"line\":143,\"column\":27},\"end\":{\"line\":146,\"column\":5}},\"locations\":[{\"start\":{\"line\":143,\"column\":27},\"end\":{\"line\":146,\"column\":5}}]},\"18\":{\"type\":\"branch\",\"line\":180,\"loc\":{\"start\":{\"line\":180,\"column\":2},\"end\":{\"line\":182,\"column\":3}},\"locations\":[{\"start\":{\"line\":180,\"column\":2},\"end\":{\"line\":182,\"column\":3}}]},\"19\":{\"type\":\"branch\",\"line\":184,\"loc\":{\"start\":{\"line\":184,\"column\":2},\"end\":{\"line\":186,\"column\":3}},\"locations\":[{\"start\":{\"line\":184,\"column\":2},\"end\":{\"line\":186,\"column\":3}}]},\"20\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":2},\"end\":{\"line\":190,\"column\":3}},\"locations\":[{\"start\":{\"line\":188,\"column\":2},\"end\":{\"line\":190,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":192,\"loc\":{\"start\":{\"line\":192,\"column\":2},\"end\":{\"line\":194,\"column\":3}},\"locations\":[{\"start\":{\"line\":192,\"column\":2},\"end\":{\"line\":194,\"column\":3}}]},\"22\":{\"type\":\"branch\",\"line\":229,\"loc\":{\"start\":{\"line\":229,\"column\":10},\"end\":{\"line\":246,\"column\":3}},\"locations\":[{\"start\":{\"line\":229,\"column\":10},\"end\":{\"line\":246,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":237,\"loc\":{\"start\":{\"line\":237,\"column\":44},\"end\":{\"line\":244,\"column\":7}},\"locations\":[{\"start\":{\"line\":237,\"column\":44},\"end\":{\"line\":244,\"column\":7}}]},\"24\":{\"type\":\"branch\",\"line\":252,\"loc\":{\"start\":{\"line\":252,\"column\":2},\"end\":{\"line\":285,\"column\":3}},\"locations\":[{\"start\":{\"line\":252,\"column\":2},\"end\":{\"line\":285,\"column\":3}}]},\"25\":{\"type\":\"branch\",\"line\":267,\"loc\":{\"start\":{\"line\":267,\"column\":10},\"end\":{\"line\":270,\"column\":9}},\"locations\":[{\"start\":{\"line\":267,\"column\":10},\"end\":{\"line\":270,\"column\":9}}]},\"26\":{\"type\":\"branch\",\"line\":274,\"loc\":{\"start\":{\"line\":274,\"column\":35},\"end\":{\"line\":274,\"column\":62}},\"locations\":[{\"start\":{\"line\":274,\"column\":35},\"end\":{\"line\":274,\"column\":62}}]},\"27\":{\"type\":\"branch\",\"line\":278,\"loc\":{\"start\":{\"line\":278,\"column\":8},\"end\":{\"line\":281,\"column\":7}},\"locations\":[{\"start\":{\"line\":278,\"column\":8},\"end\":{\"line\":281,\"column\":7}}]},\"28\":{\"type\":\"branch\",\"line\":287,\"loc\":{\"start\":{\"line\":287,\"column\":9},\"end\":{\"line\":353,\"column\":3}},\"locations\":[{\"start\":{\"line\":287,\"column\":9},\"end\":{\"line\":353,\"column\":3}}]},\"29\":{\"type\":\"branch\",\"line\":308,\"loc\":{\"start\":{\"line\":308,\"column\":17},\"end\":{\"line\":343,\"column\":5}},\"locations\":[{\"start\":{\"line\":308,\"column\":17},\"end\":{\"line\":343,\"column\":5}}]},\"30\":{\"type\":\"branch\",\"line\":312,\"loc\":{\"start\":{\"line\":312,\"column\":39},\"end\":{\"line\":314,\"column\":7}},\"locations\":[{\"start\":{\"line\":312,\"column\":39},\"end\":{\"line\":314,\"column\":7}}]},\"31\":{\"type\":\"branch\",\"line\":313,\"loc\":{\"start\":{\"line\":313,\"column\":44},\"end\":{\"line\":313,\"column\":83}},\"locations\":[{\"start\":{\"line\":313,\"column\":44},\"end\":{\"line\":313,\"column\":83}}]},\"32\":{\"type\":\"branch\",\"line\":313,\"loc\":{\"start\":{\"line\":313,\"column\":84},\"end\":{\"line\":313,\"column\":106}},\"locations\":[{\"start\":{\"line\":313,\"column\":84},\"end\":{\"line\":313,\"column\":106}}]},\"33\":{\"type\":\"branch\",\"line\":317,\"loc\":{\"start\":{\"line\":317,\"column\":34},\"end\":{\"line\":324,\"column\":7}},\"locations\":[{\"start\":{\"line\":317,\"column\":34},\"end\":{\"line\":324,\"column\":7}}]},\"34\":{\"type\":\"branch\",\"line\":319,\"loc\":{\"start\":{\"line\":319,\"column\":37},\"end\":{\"line\":319,\"column\":73}},\"locations\":[{\"start\":{\"line\":319,\"column\":37},\"end\":{\"line\":319,\"column\":73}}]},\"35\":{\"type\":\"branch\",\"line\":319,\"loc\":{\"start\":{\"line\":319,\"column\":75},\"end\":{\"line\":321,\"column\":9}},\"locations\":[{\"start\":{\"line\":319,\"column\":75},\"end\":{\"line\":321,\"column\":9}}]},\"36\":{\"type\":\"branch\",\"line\":322,\"loc\":{\"start\":{\"line\":322,\"column\":-1},\"end\":{\"line\":324,\"column\":7}},\"locations\":[{\"start\":{\"line\":322,\"column\":-1},\"end\":{\"line\":324,\"column\":7}}]},\"37\":{\"type\":\"branch\",\"line\":325,\"loc\":{\"start\":{\"line\":325,\"column\":-1},\"end\":{\"line\":325,\"column\":72}},\"locations\":[{\"start\":{\"line\":325,\"column\":-1},\"end\":{\"line\":325,\"column\":72}}]},\"38\":{\"type\":\"branch\",\"line\":325,\"loc\":{\"start\":{\"line\":325,\"column\":74},\"end\":{\"line\":329,\"column\":91}},\"locations\":[{\"start\":{\"line\":325,\"column\":74},\"end\":{\"line\":329,\"column\":91}}]},\"39\":{\"type\":\"branch\",\"line\":325,\"loc\":{\"start\":{\"line\":325,\"column\":74},\"end\":{\"line\":329,\"column\":39}},\"locations\":[{\"start\":{\"line\":325,\"column\":74},\"end\":{\"line\":329,\"column\":39}}]},\"40\":{\"type\":\"branch\",\"line\":329,\"loc\":{\"start\":{\"line\":329,\"column\":35},\"end\":{\"line\":329,\"column\":91}},\"locations\":[{\"start\":{\"line\":329,\"column\":35},\"end\":{\"line\":329,\"column\":91}}]},\"41\":{\"type\":\"branch\",\"line\":329,\"loc\":{\"start\":{\"line\":329,\"column\":93},\"end\":{\"line\":337,\"column\":106}},\"locations\":[{\"start\":{\"line\":329,\"column\":93},\"end\":{\"line\":337,\"column\":106}}]},\"42\":{\"type\":\"branch\",\"line\":329,\"loc\":{\"start\":{\"line\":329,\"column\":93},\"end\":{\"line\":331,\"column\":7}},\"locations\":[{\"start\":{\"line\":329,\"column\":93},\"end\":{\"line\":331,\"column\":7}}]},\"43\":{\"type\":\"branch\",\"line\":332,\"loc\":{\"start\":{\"line\":332,\"column\":-1},\"end\":{\"line\":337,\"column\":32}},\"locations\":[{\"start\":{\"line\":332,\"column\":-1},\"end\":{\"line\":337,\"column\":32}}]},\"44\":{\"type\":\"branch\",\"line\":337,\"loc\":{\"start\":{\"line\":337,\"column\":28},\"end\":{\"line\":337,\"column\":106}},\"locations\":[{\"start\":{\"line\":337,\"column\":28},\"end\":{\"line\":337,\"column\":106}}]},\"45\":{\"type\":\"branch\",\"line\":337,\"loc\":{\"start\":{\"line\":337,\"column\":108},\"end\":{\"line\":343,\"column\":5}},\"locations\":[{\"start\":{\"line\":337,\"column\":108},\"end\":{\"line\":343,\"column\":5}}]},\"46\":{\"type\":\"branch\",\"line\":337,\"loc\":{\"start\":{\"line\":337,\"column\":108},\"end\":{\"line\":341,\"column\":7}},\"locations\":[{\"start\":{\"line\":337,\"column\":108},\"end\":{\"line\":341,\"column\":7}}]},\"47\":{\"type\":\"branch\",\"line\":342,\"loc\":{\"start\":{\"line\":342,\"column\":-1},\"end\":{\"line\":343,\"column\":5}},\"locations\":[{\"start\":{\"line\":342,\"column\":-1},\"end\":{\"line\":343,\"column\":5}}]},\"48\":{\"type\":\"branch\",\"line\":344,\"loc\":{\"start\":{\"line\":344,\"column\":-1},\"end\":{\"line\":345,\"column\":24}},\"locations\":[{\"start\":{\"line\":344,\"column\":-1},\"end\":{\"line\":345,\"column\":24}}]},\"49\":{\"type\":\"branch\",\"line\":345,\"loc\":{\"start\":{\"line\":345,\"column\":24},\"end\":{\"line\":347,\"column\":5}},\"locations\":[{\"start\":{\"line\":345,\"column\":24},\"end\":{\"line\":347,\"column\":5}}]},\"50\":{\"type\":\"branch\",\"line\":348,\"loc\":{\"start\":{\"line\":348,\"column\":-1},\"end\":{\"line\":353,\"column\":3}},\"locations\":[{\"start\":{\"line\":348,\"column\":-1},\"end\":{\"line\":353,\"column\":3}}]},\"51\":{\"type\":\"branch\",\"line\":299,\"loc\":{\"start\":{\"line\":299,\"column\":23},\"end\":{\"line\":305,\"column\":5}},\"locations\":[{\"start\":{\"line\":299,\"column\":23},\"end\":{\"line\":305,\"column\":5}}]},\"52\":{\"type\":\"branch\",\"line\":300,\"loc\":{\"start\":{\"line\":300,\"column\":32},\"end\":{\"line\":302,\"column\":7}},\"locations\":[{\"start\":{\"line\":300,\"column\":32},\"end\":{\"line\":302,\"column\":7}}]},\"53\":{\"type\":\"branch\",\"line\":303,\"loc\":{\"start\":{\"line\":303,\"column\":-1},\"end\":{\"line\":305,\"column\":5}},\"locations\":[{\"start\":{\"line\":303,\"column\":-1},\"end\":{\"line\":305,\"column\":5}}]},\"54\":{\"type\":\"branch\",\"line\":355,\"loc\":{\"start\":{\"line\":355,\"column\":2},\"end\":{\"line\":357,\"column\":3}},\"locations\":[{\"start\":{\"line\":355,\"column\":2},\"end\":{\"line\":357,\"column\":3}}]},\"55\":{\"type\":\"branch\",\"line\":359,\"loc\":{\"start\":{\"line\":359,\"column\":17},\"end\":{\"line\":370,\"column\":3}},\"locations\":[{\"start\":{\"line\":359,\"column\":17},\"end\":{\"line\":370,\"column\":3}}]},\"56\":{\"type\":\"branch\",\"line\":363,\"loc\":{\"start\":{\"line\":363,\"column\":43},\"end\":{\"line\":368,\"column\":5}},\"locations\":[{\"start\":{\"line\":363,\"column\":43},\"end\":{\"line\":368,\"column\":5}}]},\"57\":{\"type\":\"branch\",\"line\":367,\"loc\":{\"start\":{\"line\":367,\"column\":-1},\"end\":{\"line\":368,\"column\":5}},\"locations\":[{\"start\":{\"line\":367,\"column\":-1},\"end\":{\"line\":368,\"column\":5}}]},\"58\":{\"type\":\"branch\",\"line\":369,\"loc\":{\"start\":{\"line\":369,\"column\":-1},\"end\":{\"line\":370,\"column\":3}},\"locations\":[{\"start\":{\"line\":369,\"column\":-1},\"end\":{\"line\":370,\"column\":3}}]},\"59\":{\"type\":\"branch\",\"line\":360,\"loc\":{\"start\":{\"line\":360,\"column\":64},\"end\":{\"line\":360,\"column\":85}},\"locations\":[{\"start\":{\"line\":360,\"column\":64},\"end\":{\"line\":360,\"column\":85}}]},\"60\":{\"type\":\"branch\",\"line\":372,\"loc\":{\"start\":{\"line\":372,\"column\":17},\"end\":{\"line\":377,\"column\":3}},\"locations\":[{\"start\":{\"line\":372,\"column\":17},\"end\":{\"line\":377,\"column\":3}}]},\"61\":{\"type\":\"branch\",\"line\":374,\"loc\":{\"start\":{\"line\":374,\"column\":35},\"end\":{\"line\":374,\"column\":41}},\"locations\":[{\"start\":{\"line\":374,\"column\":35},\"end\":{\"line\":374,\"column\":41}}]},\"62\":{\"type\":\"branch\",\"line\":374,\"loc\":{\"start\":{\"line\":374,\"column\":68},\"end\":{\"line\":374,\"column\":74}},\"locations\":[{\"start\":{\"line\":374,\"column\":68},\"end\":{\"line\":374,\"column\":74}}]},\"63\":{\"type\":\"branch\",\"line\":380,\"loc\":{\"start\":{\"line\":380,\"column\":2},\"end\":{\"line\":408,\"column\":3}},\"locations\":[{\"start\":{\"line\":380,\"column\":2},\"end\":{\"line\":408,\"column\":3}}]},\"64\":{\"type\":\"branch\",\"line\":382,\"loc\":{\"start\":{\"line\":382,\"column\":32},\"end\":{\"line\":405,\"column\":5}},\"locations\":[{\"start\":{\"line\":382,\"column\":32},\"end\":{\"line\":405,\"column\":5}}]},\"65\":{\"type\":\"branch\",\"line\":390,\"loc\":{\"start\":{\"line\":390,\"column\":34},\"end\":{\"line\":392,\"column\":7}},\"locations\":[{\"start\":{\"line\":390,\"column\":34},\"end\":{\"line\":392,\"column\":7}}]},\"66\":{\"type\":\"branch\",\"line\":393,\"loc\":{\"start\":{\"line\":393,\"column\":-1},\"end\":{\"line\":400,\"column\":30}},\"locations\":[{\"start\":{\"line\":393,\"column\":-1},\"end\":{\"line\":400,\"column\":30}}]},\"67\":{\"type\":\"branch\",\"line\":400,\"loc\":{\"start\":{\"line\":400,\"column\":30},\"end\":{\"line\":402,\"column\":7}},\"locations\":[{\"start\":{\"line\":400,\"column\":30},\"end\":{\"line\":402,\"column\":7}}]},\"68\":{\"type\":\"branch\",\"line\":403,\"loc\":{\"start\":{\"line\":403,\"column\":-1},\"end\":{\"line\":404,\"column\":71}},\"locations\":[{\"start\":{\"line\":403,\"column\":-1},\"end\":{\"line\":404,\"column\":71}}]},\"69\":{\"type\":\"branch\",\"line\":406,\"loc\":{\"start\":{\"line\":406,\"column\":-1},\"end\":{\"line\":408,\"column\":3}},\"locations\":[{\"start\":{\"line\":406,\"column\":-1},\"end\":{\"line\":408,\"column\":3}}]},\"70\":{\"type\":\"branch\",\"line\":384,\"loc\":{\"start\":{\"line\":384,\"column\":82},\"end\":{\"line\":387,\"column\":8}},\"locations\":[{\"start\":{\"line\":384,\"column\":82},\"end\":{\"line\":387,\"column\":8}}]},\"71\":{\"type\":\"branch\",\"line\":397,\"loc\":{\"start\":{\"line\":397,\"column\":8},\"end\":{\"line\":397,\"column\":92}},\"locations\":[{\"start\":{\"line\":397,\"column\":8},\"end\":{\"line\":397,\"column\":92}}]},\"72\":{\"type\":\"branch\",\"line\":397,\"loc\":{\"start\":{\"line\":397,\"column\":49},\"end\":{\"line\":397,\"column\":91}},\"locations\":[{\"start\":{\"line\":397,\"column\":49},\"end\":{\"line\":397,\"column\":91}}]},\"73\":{\"type\":\"branch\",\"line\":410,\"loc\":{\"start\":{\"line\":410,\"column\":10},\"end\":{\"line\":417,\"column\":3}},\"locations\":[{\"start\":{\"line\":410,\"column\":10},\"end\":{\"line\":417,\"column\":3}}]},\"74\":{\"type\":\"branch\",\"line\":414,\"loc\":{\"start\":{\"line\":414,\"column\":25},\"end\":{\"line\":414,\"column\":35}},\"locations\":[{\"start\":{\"line\":414,\"column\":25},\"end\":{\"line\":414,\"column\":35}}]},\"75\":{\"type\":\"branch\",\"line\":415,\"loc\":{\"start\":{\"line\":415,\"column\":-1},\"end\":{\"line\":417,\"column\":3}},\"locations\":[{\"start\":{\"line\":415,\"column\":-1},\"end\":{\"line\":417,\"column\":3}}]},\"76\":{\"type\":\"branch\",\"line\":420,\"loc\":{\"start\":{\"line\":420,\"column\":8},\"end\":{\"line\":440,\"column\":3}},\"locations\":[{\"start\":{\"line\":420,\"column\":8},\"end\":{\"line\":440,\"column\":3}}]},\"77\":{\"type\":\"branch\",\"line\":425,\"loc\":{\"start\":{\"line\":425,\"column\":49},\"end\":{\"line\":439,\"column\":30}},\"locations\":[{\"start\":{\"line\":425,\"column\":49},\"end\":{\"line\":439,\"column\":30}}]},\"78\":{\"type\":\"branch\",\"line\":425,\"loc\":{\"start\":{\"line\":425,\"column\":49},\"end\":{\"line\":427,\"column\":5}},\"locations\":[{\"start\":{\"line\":425,\"column\":49},\"end\":{\"line\":427,\"column\":5}}]},\"79\":{\"type\":\"branch\",\"line\":430,\"loc\":{\"start\":{\"line\":430,\"column\":37},\"end\":{\"line\":435,\"column\":5}},\"locations\":[{\"start\":{\"line\":430,\"column\":37},\"end\":{\"line\":435,\"column\":5}}]},\"80\":{\"type\":\"branch\",\"line\":432,\"loc\":{\"start\":{\"line\":432,\"column\":33},\"end\":{\"line\":434,\"column\":7}},\"locations\":[{\"start\":{\"line\":432,\"column\":33},\"end\":{\"line\":434,\"column\":7}}]}},\"b\":{\"0\":[217],\"1\":[406],\"2\":[402],\"3\":[10],\"4\":[1],\"5\":[505],\"6\":[86],\"7\":[0],\"8\":[504],\"9\":[419],\"10\":[284],\"11\":[282],\"12\":[192],\"13\":[92],\"14\":[24],\"15\":[101],\"16\":[10],\"17\":[0],\"18\":[1],\"19\":[38],\"20\":[505],\"21\":[9],\"22\":[3],\"23\":[0],\"24\":[3],\"25\":[0],\"26\":[0],\"27\":[0],\"28\":[30],\"29\":[111],\"30\":[30],\"31\":[22],\"32\":[8],\"33\":[26],\"34\":[20],\"35\":[1],\"36\":[25],\"37\":[85],\"38\":[106],\"39\":[85],\"40\":[84],\"41\":[106],\"42\":[2],\"43\":[83],\"44\":[65],\"45\":[106],\"46\":[2],\"47\":[81],\"48\":[25],\"49\":[1],\"50\":[24],\"51\":[110],\"52\":[1],\"53\":[109],\"54\":[37],\"55\":[6],\"56\":[1],\"57\":[0],\"58\":[5],\"59\":[5],\"60\":[109],\"61\":[5],\"62\":[6],\"63\":[17],\"64\":[11],\"65\":[6],\"66\":[5],\"67\":[1],\"68\":[4],\"69\":[6],\"70\":[66],\"71\":[14],\"72\":[53],\"73\":[26],\"74\":[10],\"75\":[16],\"76\":[13],\"77\":[9],\"78\":[4],\"79\":[6],\"80\":[1]},\"fnMap\":{\"0\":{\"name\":\"assertEqual\",\"decl\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"loc\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"line\":57},\"1\":{\"name\":\"getParentBlock\",\"decl\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"loc\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"line\":61},\"2\":{\"name\":\"upgradableSubqueryProject\",\"decl\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":104,\"column\":1}},\"loc\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":104,\"column\":1}},\"line\":70},\"3\":{\"name\":\"set\",\"decl\":{\"start\":{\"line\":74,\"column\":4},\"end\":{\"line\":77,\"column\":5}},\"loc\":{\"start\":{\"line\":74,\"column\":4},\"end\":{\"line\":77,\"column\":5}},\"line\":74},\"4\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":78,\"column\":4},\"end\":{\"line\":102,\"column\":5}},\"loc\":{\"start\":{\"line\":78,\"column\":4},\"end\":{\"line\":102,\"column\":5}},\"line\":78},\"5\":{\"name\":\"ProjectUpgradeService\",\"decl\":{\"start\":{\"line\":119,\"column\":2},\"end\":{\"line\":133,\"column\":3}},\"loc\":{\"start\":{\"line\":119,\"column\":2},\"end\":{\"line\":133,\"column\":3}},\"line\":119},\"6\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":135,\"column\":2},\"end\":{\"line\":171,\"column\":3}},\"loc\":{\"start\":{\"line\":135,\"column\":2},\"end\":{\"line\":171,\"column\":3}},\"line\":135},\"7\":{\"name\":\"initWorker\",\"decl\":{\"start\":{\"line\":173,\"column\":2},\"end\":{\"line\":178,\"column\":3}},\"loc\":{\"start\":{\"line\":173,\"column\":2},\"end\":{\"line\":178,\"column\":3}},\"line\":173},\"8\":{\"name\":\"get isRewindable\",\"decl\":{\"start\":{\"line\":180,\"column\":2},\"end\":{\"line\":182,\"column\":3}},\"loc\":{\"start\":{\"line\":180,\"column\":2},\"end\":{\"line\":182,\"column\":3}},\"line\":180},\"9\":{\"name\":\"get projects\",\"decl\":{\"start\":{\"line\":184,\"column\":2},\"end\":{\"line\":186,\"column\":3}},\"loc\":{\"start\":{\"line\":184,\"column\":2},\"end\":{\"line\":186,\"column\":3}},\"line\":184},\"10\":{\"name\":\"get currentProject\",\"decl\":{\"start\":{\"line\":188,\"column\":2},\"end\":{\"line\":190,\"column\":3}},\"loc\":{\"start\":{\"line\":188,\"column\":2},\"end\":{\"line\":190,\"column\":3}},\"line\":188},\"11\":{\"name\":\"get currentHeight\",\"decl\":{\"start\":{\"line\":192,\"column\":2},\"end\":{\"line\":194,\"column\":3}},\"loc\":{\"start\":{\"line\":192,\"column\":2},\"end\":{\"line\":194,\"column\":3}},\"line\":192},\"12\":{\"name\":\"rewind\",\"decl\":{\"start\":{\"line\":196,\"column\":2},\"end\":{\"line\":227,\"column\":3}},\"loc\":{\"start\":{\"line\":196,\"column\":2},\"end\":{\"line\":227,\"column\":3}},\"line\":196},\"13\":{\"name\":\"migrate\",\"decl\":{\"start\":{\"line\":229,\"column\":10},\"end\":{\"line\":246,\"column\":3}},\"loc\":{\"start\":{\"line\":229,\"column\":10},\"end\":{\"line\":246,\"column\":3}},\"line\":229},\"14\":{\"name\":\"setCurrentHeight\",\"decl\":{\"start\":{\"line\":252,\"column\":2},\"end\":{\"line\":285,\"column\":3}},\"loc\":{\"start\":{\"line\":252,\"column\":2},\"end\":{\"line\":285,\"column\":3}},\"line\":252},\"15\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":287,\"column\":9},\"end\":{\"line\":353,\"column\":3}},\"loc\":{\"start\":{\"line\":287,\"column\":9},\"end\":{\"line\":353,\"column\":3}},\"line\":287},\"16\":{\"name\":\"addProject\",\"decl\":{\"start\":{\"line\":299,\"column\":23},\"end\":{\"line\":305,\"column\":5}},\"loc\":{\"start\":{\"line\":299,\"column\":23},\"end\":{\"line\":305,\"column\":5}},\"line\":299},\"17\":{\"name\":\"getProject\",\"decl\":{\"start\":{\"line\":355,\"column\":2},\"end\":{\"line\":357,\"column\":3}},\"loc\":{\"start\":{\"line\":355,\"column\":2},\"end\":{\"line\":357,\"column\":3}},\"line\":355},\"18\":{\"name\":\"rewindableCheck\",\"decl\":{\"start\":{\"line\":359,\"column\":17},\"end\":{\"line\":370,\"column\":3}},\"loc\":{\"start\":{\"line\":359,\"column\":17},\"end\":{\"line\":370,\"column\":3}},\"line\":359},\"19\":{\"name\":\"validateProject\",\"decl\":{\"start\":{\"line\":372,\"column\":17},\"end\":{\"line\":377,\"column\":3}},\"loc\":{\"start\":{\"line\":372,\"column\":17},\"end\":{\"line\":377,\"column\":3}},\"line\":372},\"20\":{\"name\":\"validateIndexedData\",\"decl\":{\"start\":{\"line\":380,\"column\":2},\"end\":{\"line\":408,\"column\":3}},\"loc\":{\"start\":{\"line\":380,\"column\":2},\"end\":{\"line\":408,\"column\":3}},\"line\":380},\"21\":{\"name\":\"getDeploymentsMetadata\",\"decl\":{\"start\":{\"line\":410,\"column\":10},\"end\":{\"line\":417,\"column\":3}},\"loc\":{\"start\":{\"line\":410,\"column\":10},\"end\":{\"line\":417,\"column\":3}},\"line\":410},\"22\":{\"name\":\"updateIndexedDeployments\",\"decl\":{\"start\":{\"line\":420,\"column\":8},\"end\":{\"line\":440,\"column\":3}},\"loc\":{\"start\":{\"line\":420,\"column\":8},\"end\":{\"line\":440,\"column\":3}},\"line\":420}},\"f\":{\"0\":217,\"1\":406,\"2\":10,\"3\":1,\"4\":505,\"5\":24,\"6\":10,\"7\":0,\"8\":1,\"9\":38,\"10\":505,\"11\":9,\"12\":0,\"13\":3,\"14\":3,\"15\":30,\"16\":110,\"17\":37,\"18\":6,\"19\":109,\"20\":17,\"21\":26,\"22\":13}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/configure.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/configure.module.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":104}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":48}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":44}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":52}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":69}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":49}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":114}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":38}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":50}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":58}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":26}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":17}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":10}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":30}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":69}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":65}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":79}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":17}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":97}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":5}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":17}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":19}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":91}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":114}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":8}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":5}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":26}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":48}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":68}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":98}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":62}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":46}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":37}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":11}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":44}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":19}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":73}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":7}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":5}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":52}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":15}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":16}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":39}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":30}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":99}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":87}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":20}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":84}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":56}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":36}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":17}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":34}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":3}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":17}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":1}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":62}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":13}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":18}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":17}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":25}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":19}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":17}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":45}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":18}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":23}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":13}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":70}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":78}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":25}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":27}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":21}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":38}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":88}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":106}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":20}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":27}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":89}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":58}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":24}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":7}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":50}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":46}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":66}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":82}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":10}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":25}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":83}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":17}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":22}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":5}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":0}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":27}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":56}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":22}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":7}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":50}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":46}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":46}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":92}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":3}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":0}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":44}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":20}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":3}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":0}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":21}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":33}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":3}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":38}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":20}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":16}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":11}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":45}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":11}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":7}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":42}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":47}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":8}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":11}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":5}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":25}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":70}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":20}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":5}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":66}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":26}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":52}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":24}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":7}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":25}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":10}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":38}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":13}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":47}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":13}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":137}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":9}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":72}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":79}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":10}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":13}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":7}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":6}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":4}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":97}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":0}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":78}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":0}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":59}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":26,\"16\":26,\"17\":1,\"18\":26,\"19\":25,\"20\":25,\"21\":25,\"22\":25,\"23\":25,\"24\":1,\"25\":1,\"26\":25,\"27\":2,\"28\":2,\"29\":2,\"30\":2,\"31\":2,\"32\":25,\"33\":25,\"34\":26,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":20,\"40\":20,\"41\":180,\"42\":160,\"43\":180,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":180,\"51\":180,\"52\":20,\"53\":20,\"54\":1,\"55\":20,\"56\":20,\"57\":0,\"58\":0,\"59\":20,\"60\":1,\"61\":1,\"62\":1,\"63\":35,\"64\":35,\"65\":35,\"66\":35,\"67\":35,\"68\":35,\"69\":2,\"70\":2,\"71\":35,\"72\":35,\"73\":35,\"74\":1,\"75\":1,\"76\":20,\"77\":20,\"78\":20,\"79\":20,\"80\":20,\"81\":20,\"82\":20,\"83\":20,\"84\":20,\"85\":20,\"86\":20,\"87\":20,\"88\":20,\"89\":20,\"90\":20,\"91\":20,\"92\":20,\"93\":20,\"94\":20,\"95\":20,\"96\":20,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":20,\"107\":20,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":20,\"113\":20,\"114\":20,\"115\":20,\"116\":20,\"117\":20,\"118\":20,\"119\":20,\"120\":20,\"121\":20,\"122\":20,\"123\":20,\"124\":0,\"125\":0,\"126\":20,\"127\":20,\"128\":0,\"129\":0,\"130\":20,\"131\":20,\"132\":20,\"133\":20,\"134\":20,\"135\":20,\"136\":20,\"137\":20,\"138\":20,\"139\":20,\"140\":20,\"141\":20,\"142\":20,\"143\":20,\"144\":0,\"145\":0,\"146\":20,\"147\":20,\"148\":20,\"149\":15,\"150\":15,\"151\":15,\"152\":15,\"153\":15,\"154\":15,\"155\":15,\"156\":15,\"157\":15,\"158\":15,\"159\":15,\"160\":15,\"161\":15,\"162\":15,\"163\":15,\"164\":15,\"165\":15,\"166\":15,\"167\":20,\"168\":20,\"169\":20,\"170\":20,\"171\":20,\"172\":20,\"173\":20,\"174\":20},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"locations\":[{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":35,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":17,\"loc\":{\"start\":{\"line\":17,\"column\":25},\"end\":{\"line\":19,\"column\":9}},\"locations\":[{\"start\":{\"line\":17,\"column\":25},\"end\":{\"line\":19,\"column\":9}}]},\"2\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":3},\"end\":{\"line\":34,\"column\":3}},\"locations\":[{\"start\":{\"line\":19,\"column\":3},\"end\":{\"line\":34,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":16},\"end\":{\"line\":26,\"column\":5}},\"locations\":[{\"start\":{\"line\":24,\"column\":16},\"end\":{\"line\":26,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":16},\"end\":{\"line\":32,\"column\":5}},\"locations\":[{\"start\":{\"line\":27,\"column\":16},\"end\":{\"line\":32,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":16},\"end\":{\"line\":33,\"column\":25}},\"locations\":[{\"start\":{\"line\":33,\"column\":16},\"end\":{\"line\":33,\"column\":25}}]},\"6\":{\"type\":\"branch\",\"line\":40,\"loc\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"locations\":[{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":54,\"column\":1}}]},\"7\":{\"type\":\"branch\",\"line\":41,\"loc\":{\"start\":{\"line\":41,\"column\":38},\"end\":{\"line\":53,\"column\":3}},\"locations\":[{\"start\":{\"line\":41,\"column\":38},\"end\":{\"line\":53,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":35},\"end\":{\"line\":42,\"column\":46}},\"locations\":[{\"start\":{\"line\":42,\"column\":35},\"end\":{\"line\":42,\"column\":46}}]},\"9\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":-1},\"end\":{\"line\":44,\"column\":36}},\"locations\":[{\"start\":{\"line\":43,\"column\":-1},\"end\":{\"line\":44,\"column\":36}}]},\"10\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":36},\"end\":{\"line\":50,\"column\":5}},\"locations\":[{\"start\":{\"line\":44,\"column\":36},\"end\":{\"line\":50,\"column\":5}}]},\"11\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":-1},\"end\":{\"line\":51,\"column\":42}},\"locations\":[{\"start\":{\"line\":51,\"column\":-1},\"end\":{\"line\":51,\"column\":42}}]},\"12\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"locations\":[{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":60,\"column\":1}}]},\"13\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":29},\"end\":{\"line\":59,\"column\":3}},\"locations\":[{\"start\":{\"line\":57,\"column\":29},\"end\":{\"line\":59,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":74,\"column\":1}},\"locations\":[{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":74,\"column\":1}}]},\"15\":{\"type\":\"branch\",\"line\":65,\"loc\":{\"start\":{\"line\":65,\"column\":37},\"end\":{\"line\":65,\"column\":56}},\"locations\":[{\"start\":{\"line\":65,\"column\":37},\"end\":{\"line\":65,\"column\":56}}]},\"16\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":18},\"end\":{\"line\":67,\"column\":36}},\"locations\":[{\"start\":{\"line\":67,\"column\":18},\"end\":{\"line\":67,\"column\":36}}]},\"17\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":16},\"end\":{\"line\":71,\"column\":3}},\"locations\":[{\"start\":{\"line\":69,\"column\":16},\"end\":{\"line\":71,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":7},\"end\":{\"line\":175,\"column\":1}},\"locations\":[{\"start\":{\"line\":76,\"column\":7},\"end\":{\"line\":175,\"column\":1}}]},\"19\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":19},\"end\":{\"line\":107,\"column\":9}},\"locations\":[{\"start\":{\"line\":97,\"column\":19},\"end\":{\"line\":107,\"column\":9}}]},\"20\":{\"type\":\"branch\",\"line\":108,\"loc\":{\"start\":{\"line\":108,\"column\":24},\"end\":{\"line\":112,\"column\":5}},\"locations\":[{\"start\":{\"line\":108,\"column\":24},\"end\":{\"line\":112,\"column\":5}}]},\"21\":{\"type\":\"branch\",\"line\":124,\"loc\":{\"start\":{\"line\":124,\"column\":43},\"end\":{\"line\":126,\"column\":3}},\"locations\":[{\"start\":{\"line\":124,\"column\":43},\"end\":{\"line\":126,\"column\":3}}]},\"22\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":20},\"end\":{\"line\":130,\"column\":3}},\"locations\":[{\"start\":{\"line\":128,\"column\":20},\"end\":{\"line\":130,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":149,\"loc\":{\"start\":{\"line\":149,\"column\":30},\"end\":{\"line\":168,\"column\":3}},\"locations\":[{\"start\":{\"line\":149,\"column\":30},\"end\":{\"line\":168,\"column\":3}}]},\"24\":{\"type\":\"branch\",\"line\":162,\"loc\":{\"start\":{\"line\":162,\"column\":43},\"end\":{\"line\":162,\"column\":71}},\"locations\":[{\"start\":{\"line\":162,\"column\":43},\"end\":{\"line\":162,\"column\":71}}]}},\"b\":{\"0\":[26],\"1\":[1],\"2\":[25],\"3\":[1],\"4\":[2],\"5\":[24],\"6\":[20],\"7\":[180],\"8\":[20],\"9\":[160],\"10\":[0],\"11\":[160],\"12\":[20],\"13\":[0],\"14\":[35],\"15\":[0],\"16\":[0],\"17\":[2],\"18\":[20],\"19\":[0],\"20\":[0],\"21\":[0],\"22\":[0],\"23\":[15],\"24\":[0]},\"fnMap\":{\"0\":{\"name\":\"validDbSchemaName\",\"decl\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"loc\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"line\":16},\"1\":{\"name\":\"yargsToIConfig\",\"decl\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"loc\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"line\":40},\"2\":{\"name\":\"warnDeprecations\",\"decl\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"loc\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"line\":56},\"3\":{\"name\":\"getCachedRoot\",\"decl\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":74,\"column\":1}},\"loc\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":74,\"column\":1}},\"line\":64},\"4\":{\"name\":\"registerApp\",\"decl\":{\"start\":{\"line\":76,\"column\":7},\"end\":{\"line\":175,\"column\":1}},\"loc\":{\"start\":{\"line\":76,\"column\":7},\"end\":{\"line\":175,\"column\":1}},\"line\":76},\"5\":{\"name\":\"createParentProject\",\"decl\":{\"start\":{\"line\":149,\"column\":30},\"end\":{\"line\":168,\"column\":3}},\"loc\":{\"start\":{\"line\":149,\"column\":30},\"end\":{\"line\":168,\"column\":3}},\"line\":149}},\"f\":{\"0\":26,\"1\":20,\"2\":20,\"3\":35,\"4\":20,\"5\":15}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/configure/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":35}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":29}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":41}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/db.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/db.module.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":53}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":73}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":51}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":36}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":39}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":27}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":15}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":15}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":19}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":19}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":19}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":1}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":31}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":37}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":43}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":65}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":46}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":46}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":50}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":18}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":2}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":53}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":110}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":116}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":47}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":7}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":35}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":24}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":77}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":94}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":40}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":25}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":21}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":66}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":12}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":63}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":22}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":5}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":3}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":19}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":67}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":23}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":75}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":25}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":19}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":2}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":94}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":34}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":10}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":14}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":24}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":47}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":21}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":12}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":34}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":38}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":42}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":44}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":8}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":6}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":48}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":24}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":6}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":4}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":2}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":89}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":82}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":9}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":23}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":105}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":82}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":12}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":23}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":18}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":9}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":29}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":36}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":10}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":8}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":27}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":6}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":3}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":0}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":71}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":12}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":23}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":18}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":9}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":29}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":112}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":31}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":10}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":8}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":27}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":6}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":3}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":54}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":12}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":23}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":41}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":23}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":28}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":69}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":10}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":22}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":6}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":3}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":14,\"32\":14,\"33\":14,\"34\":14,\"35\":14,\"36\":14,\"37\":7,\"38\":7,\"39\":7,\"40\":7,\"41\":7,\"42\":7,\"43\":7,\"44\":7,\"45\":7,\"46\":0,\"47\":0,\"48\":0,\"49\":7,\"50\":7,\"51\":7,\"52\":1,\"53\":1,\"54\":7,\"55\":7,\"56\":7,\"57\":7,\"58\":7,\"59\":1,\"60\":1,\"61\":7,\"62\":7,\"63\":7,\"64\":7,\"65\":7,\"66\":7,\"67\":7,\"68\":7,\"69\":7,\"70\":7,\"71\":7,\"72\":7,\"73\":7,\"74\":7,\"75\":7,\"76\":594,\"77\":7,\"78\":7,\"79\":7,\"80\":1,\"81\":1,\"82\":0,\"83\":0,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":2,\"89\":2,\"90\":2,\"91\":2,\"92\":2,\"93\":2,\"94\":2,\"95\":2,\"96\":2,\"97\":2,\"98\":2,\"99\":2,\"100\":2,\"101\":1,\"102\":1,\"103\":20,\"104\":20,\"105\":20,\"106\":20,\"107\":20,\"108\":20,\"109\":20,\"110\":20,\"111\":20,\"112\":20,\"113\":20,\"114\":20,\"115\":1,\"116\":1,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":28},\"end\":{\"line\":23,\"column\":57}},\"locations\":[{\"start\":{\"line\":23,\"column\":28},\"end\":{\"line\":23,\"column\":57}}]},\"1\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"locations\":[{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":52,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":-1},\"end\":{\"line\":52,\"column\":1}},\"locations\":[{\"start\":{\"line\":38,\"column\":-1},\"end\":{\"line\":52,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":5},\"end\":{\"line\":49,\"column\":5}},\"locations\":[{\"start\":{\"line\":46,\"column\":5},\"end\":{\"line\":49,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":25},\"end\":{\"line\":59,\"column\":2}},\"locations\":[{\"start\":{\"line\":54,\"column\":25},\"end\":{\"line\":59,\"column\":2}}]},\"5\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":54},\"end\":{\"line\":59,\"column\":2}},\"locations\":[{\"start\":{\"line\":54,\"column\":54},\"end\":{\"line\":59,\"column\":2}}]},\"6\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":30},\"end\":{\"line\":80,\"column\":2}},\"locations\":[{\"start\":{\"line\":61,\"column\":30},\"end\":{\"line\":80,\"column\":2}}]},\"7\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":13},\"end\":{\"line\":78,\"column\":5}},\"locations\":[{\"start\":{\"line\":76,\"column\":13},\"end\":{\"line\":78,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":9},\"end\":{\"line\":101,\"column\":3}},\"locations\":[{\"start\":{\"line\":88,\"column\":9},\"end\":{\"line\":101,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":22},\"end\":{\"line\":96,\"column\":35}},\"locations\":[{\"start\":{\"line\":96,\"column\":22},\"end\":{\"line\":96,\"column\":35}}]},\"10\":{\"type\":\"branch\",\"line\":103,\"loc\":{\"start\":{\"line\":103,\"column\":9},\"end\":{\"line\":115,\"column\":3}},\"locations\":[{\"start\":{\"line\":103,\"column\":9},\"end\":{\"line\":115,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":109,\"loc\":{\"start\":{\"line\":109,\"column\":22},\"end\":{\"line\":109,\"column\":111}},\"locations\":[{\"start\":{\"line\":109,\"column\":22},\"end\":{\"line\":109,\"column\":111}}]}},\"b\":{\"0\":[0],\"1\":[14],\"2\":[7],\"3\":[0],\"4\":[7],\"5\":[7],\"6\":[7],\"7\":[594],\"8\":[2],\"9\":[2],\"10\":[20],\"11\":[20]},\"fnMap\":{\"0\":{\"name\":\"establishConnectionSequelize\",\"decl\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"loc\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"line\":32},\"1\":{\"name\":\"sequelizeFactory\",\"decl\":{\"start\":{\"line\":54,\"column\":25},\"end\":{\"line\":59,\"column\":2}},\"loc\":{\"start\":{\"line\":54,\"column\":25},\"end\":{\"line\":59,\"column\":2}},\"line\":54},\"2\":{\"name\":\"buildSequelizeOptions\",\"decl\":{\"start\":{\"line\":61,\"column\":30},\"end\":{\"line\":80,\"column\":2}},\"loc\":{\"start\":{\"line\":61,\"column\":30},\"end\":{\"line\":80,\"column\":2}},\"line\":61},\"3\":{\"name\":\"logging\",\"decl\":{\"start\":{\"line\":76,\"column\":13},\"end\":{\"line\":78,\"column\":5}},\"loc\":{\"start\":{\"line\":76,\"column\":13},\"end\":{\"line\":78,\"column\":5}},\"line\":76},\"4\":{\"name\":\"establishNewSequelize\",\"decl\":{\"start\":{\"line\":82,\"column\":7},\"end\":{\"line\":84,\"column\":1}},\"loc\":{\"start\":{\"line\":82,\"column\":7},\"end\":{\"line\":84,\"column\":1}},\"line\":82},\"5\":{\"name\":\"forRootWithConfig\",\"decl\":{\"start\":{\"line\":88,\"column\":9},\"end\":{\"line\":101,\"column\":3}},\"loc\":{\"start\":{\"line\":88,\"column\":9},\"end\":{\"line\":101,\"column\":3}},\"line\":88},\"6\":{\"name\":\"useFactory\",\"decl\":{\"start\":{\"line\":96,\"column\":22},\"end\":{\"line\":96,\"column\":35}},\"loc\":{\"start\":{\"line\":96,\"column\":22},\"end\":{\"line\":96,\"column\":35}},\"line\":96},\"7\":{\"name\":\"forRoot\",\"decl\":{\"start\":{\"line\":103,\"column\":9},\"end\":{\"line\":115,\"column\":3}},\"loc\":{\"start\":{\"line\":103,\"column\":9},\"end\":{\"line\":115,\"column\":3}},\"line\":103},\"8\":{\"name\":\"useFactory\",\"decl\":{\"start\":{\"line\":109,\"column\":22},\"end\":{\"line\":109,\"column\":111}},\"loc\":{\"start\":{\"line\":109,\"column\":22},\"end\":{\"line\":109,\"column\":111}},\"line\":109},\"9\":{\"name\":\"forFeature\",\"decl\":{\"start\":{\"line\":117,\"column\":9},\"end\":{\"line\":127,\"column\":3}},\"loc\":{\"start\":{\"line\":117,\"column\":9},\"end\":{\"line\":127,\"column\":3}},\"line\":117}},\"f\":{\"0\":14,\"1\":7,\"2\":7,\"3\":594,\"4\":0,\"5\":2,\"6\":2,\"7\":20,\"8\":20,\"9\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":36}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":30}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/migration-service/SchemaMigration.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/migration-service/SchemaMigration.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":41}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":94}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":71}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":38}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":43}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":43}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":39}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":42}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":38}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":8}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":18}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":15}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":16}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":19}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":13}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":17}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":29}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":20}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":29}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":51}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":37}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":37}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":14}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":33}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":39}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":62}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":29}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":31}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":52}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":6}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":98}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":111}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":47}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":66}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":37}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":21}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":7}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":5}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":16}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":3}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":110}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":63}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":57}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":40}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":22}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":24}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":25}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":25}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":27}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":21}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":23}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":24}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":6}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":61}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":73}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":64}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":19}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":3}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":119}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":55}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":32}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":37}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":20}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":12}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":38}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":36}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":5}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":3}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":12}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":40}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":30}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":40}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":41}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":96}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":11}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":17}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":18}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":21}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":20}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":21}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":19}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":20}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":23}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":25}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":40}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":39}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":13}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":5}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":35}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":22}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":118}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":29}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":23}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":8}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":5}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":0}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":59}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":49}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":51}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":6}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":100}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":101}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":32}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":51}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":21}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":24}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":20}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":18}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":17}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":6}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":28}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":70}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":5}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":9}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":43}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":46}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":7}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":0}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":42}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":41}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":7}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":46}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":74}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":7}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":57}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":37}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":55}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":0}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":56}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":61}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":9}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":0}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":55}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":62}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":9}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":0}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":53}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":64}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":9}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":0}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":54}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":63}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":9}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":0}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":41}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":57}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":9}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":0}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":39}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":59}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":9}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":7}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":51}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":54}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":7}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":0}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":53}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":52}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":7}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":45}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":44}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":7}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":46}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":22}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":60}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":14}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":5}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":3}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":15,\"30\":15,\"31\":15,\"32\":15,\"33\":15,\"34\":15,\"35\":15,\"36\":1,\"37\":1,\"38\":2,\"39\":2,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":1,\"50\":1,\"51\":8,\"52\":8,\"53\":8,\"54\":8,\"55\":8,\"56\":8,\"57\":8,\"58\":8,\"59\":8,\"60\":8,\"61\":8,\"62\":8,\"63\":8,\"64\":8,\"65\":8,\"66\":8,\"67\":8,\"68\":8,\"69\":8,\"70\":8,\"71\":1,\"72\":1,\"73\":33,\"74\":33,\"75\":28,\"76\":28,\"77\":33,\"78\":5,\"79\":5,\"80\":5,\"81\":33,\"82\":1,\"83\":1,\"84\":33,\"85\":33,\"86\":33,\"87\":33,\"88\":33,\"89\":33,\"90\":33,\"91\":33,\"92\":33,\"93\":33,\"94\":33,\"95\":33,\"96\":33,\"97\":33,\"98\":33,\"99\":33,\"100\":33,\"101\":0,\"102\":0,\"103\":0,\"104\":33,\"105\":33,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":33,\"113\":33,\"114\":33,\"115\":33,\"116\":33,\"117\":33,\"118\":33,\"119\":33,\"120\":33,\"121\":33,\"122\":33,\"123\":33,\"124\":33,\"125\":33,\"126\":33,\"127\":33,\"128\":33,\"129\":33,\"130\":33,\"131\":0,\"132\":0,\"133\":33,\"134\":33,\"135\":33,\"136\":4,\"137\":4,\"138\":33,\"139\":33,\"140\":8,\"141\":8,\"142\":33,\"143\":33,\"144\":102,\"145\":102,\"146\":33,\"147\":33,\"148\":33,\"149\":13,\"150\":13,\"151\":13,\"152\":7,\"153\":7,\"154\":13,\"155\":13,\"156\":11,\"157\":11,\"158\":13,\"159\":13,\"160\":17,\"161\":17,\"162\":12,\"163\":13,\"164\":4,\"165\":4,\"166\":12,\"167\":13,\"168\":0,\"169\":0,\"170\":12,\"171\":13,\"172\":0,\"173\":0,\"174\":13,\"175\":32,\"176\":33,\"177\":188,\"178\":188,\"179\":32,\"180\":33,\"181\":13,\"182\":13,\"183\":33,\"184\":1,\"185\":1,\"186\":32,\"187\":33,\"188\":1,\"189\":1,\"190\":1,\"191\":33,\"192\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":36,\"column\":6}},\"locations\":[{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":36,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":9},\"end\":{\"line\":49,\"column\":3}},\"locations\":[{\"start\":{\"line\":38,\"column\":9},\"end\":{\"line\":49,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":41,\"loc\":{\"start\":{\"line\":41,\"column\":-1},\"end\":{\"line\":49,\"column\":3}},\"locations\":[{\"start\":{\"line\":41,\"column\":-1},\"end\":{\"line\":49,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":9},\"end\":{\"line\":71,\"column\":3}},\"locations\":[{\"start\":{\"line\":51,\"column\":9},\"end\":{\"line\":71,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":10},\"end\":{\"line\":82,\"column\":3}},\"locations\":[{\"start\":{\"line\":73,\"column\":10},\"end\":{\"line\":82,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":31},\"end\":{\"line\":78,\"column\":11}},\"locations\":[{\"start\":{\"line\":75,\"column\":31},\"end\":{\"line\":78,\"column\":11}}]},\"6\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":5},\"end\":{\"line\":81,\"column\":5}},\"locations\":[{\"start\":{\"line\":78,\"column\":5},\"end\":{\"line\":81,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":192,\"column\":3}},\"locations\":[{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":192,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":39},\"end\":{\"line\":104,\"column\":5}},\"locations\":[{\"start\":{\"line\":101,\"column\":39},\"end\":{\"line\":104,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":106,\"loc\":{\"start\":{\"line\":106,\"column\":34},\"end\":{\"line\":112,\"column\":5}},\"locations\":[{\"start\":{\"line\":106,\"column\":34},\"end\":{\"line\":112,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":27},\"end\":{\"line\":133,\"column\":5}},\"locations\":[{\"start\":{\"line\":131,\"column\":27},\"end\":{\"line\":133,\"column\":5}}]},\"11\":{\"type\":\"branch\",\"line\":136,\"loc\":{\"start\":{\"line\":136,\"column\":42},\"end\":{\"line\":138,\"column\":7}},\"locations\":[{\"start\":{\"line\":136,\"column\":42},\"end\":{\"line\":138,\"column\":7}}]},\"12\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":41},\"end\":{\"line\":142,\"column\":7}},\"locations\":[{\"start\":{\"line\":140,\"column\":41},\"end\":{\"line\":142,\"column\":7}}]},\"13\":{\"type\":\"branch\",\"line\":144,\"loc\":{\"start\":{\"line\":144,\"column\":45},\"end\":{\"line\":146,\"column\":7}},\"locations\":[{\"start\":{\"line\":144,\"column\":45},\"end\":{\"line\":146,\"column\":7}}]},\"14\":{\"type\":\"branch\",\"line\":149,\"loc\":{\"start\":{\"line\":149,\"column\":36},\"end\":{\"line\":175,\"column\":7}},\"locations\":[{\"start\":{\"line\":149,\"column\":36},\"end\":{\"line\":175,\"column\":7}}]},\"15\":{\"type\":\"branch\",\"line\":152,\"loc\":{\"start\":{\"line\":152,\"column\":55},\"end\":{\"line\":154,\"column\":9}},\"locations\":[{\"start\":{\"line\":152,\"column\":55},\"end\":{\"line\":154,\"column\":9}}]},\"16\":{\"type\":\"branch\",\"line\":156,\"loc\":{\"start\":{\"line\":156,\"column\":54},\"end\":{\"line\":158,\"column\":9}},\"locations\":[{\"start\":{\"line\":156,\"column\":54},\"end\":{\"line\":158,\"column\":9}}]},\"17\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":52},\"end\":{\"line\":162,\"column\":9}},\"locations\":[{\"start\":{\"line\":160,\"column\":52},\"end\":{\"line\":162,\"column\":9}}]},\"18\":{\"type\":\"branch\",\"line\":163,\"loc\":{\"start\":{\"line\":163,\"column\":-1},\"end\":{\"line\":164,\"column\":53}},\"locations\":[{\"start\":{\"line\":163,\"column\":-1},\"end\":{\"line\":164,\"column\":53}}]},\"19\":{\"type\":\"branch\",\"line\":164,\"loc\":{\"start\":{\"line\":164,\"column\":53},\"end\":{\"line\":166,\"column\":9}},\"locations\":[{\"start\":{\"line\":164,\"column\":53},\"end\":{\"line\":166,\"column\":9}}]},\"20\":{\"type\":\"branch\",\"line\":167,\"loc\":{\"start\":{\"line\":167,\"column\":-1},\"end\":{\"line\":168,\"column\":40}},\"locations\":[{\"start\":{\"line\":167,\"column\":-1},\"end\":{\"line\":168,\"column\":40}}]},\"21\":{\"type\":\"branch\",\"line\":168,\"loc\":{\"start\":{\"line\":168,\"column\":40},\"end\":{\"line\":170,\"column\":9}},\"locations\":[{\"start\":{\"line\":168,\"column\":40},\"end\":{\"line\":170,\"column\":9}}]},\"22\":{\"type\":\"branch\",\"line\":171,\"loc\":{\"start\":{\"line\":171,\"column\":-1},\"end\":{\"line\":172,\"column\":38}},\"locations\":[{\"start\":{\"line\":171,\"column\":-1},\"end\":{\"line\":172,\"column\":38}}]},\"23\":{\"type\":\"branch\",\"line\":172,\"loc\":{\"start\":{\"line\":172,\"column\":38},\"end\":{\"line\":174,\"column\":9}},\"locations\":[{\"start\":{\"line\":172,\"column\":38},\"end\":{\"line\":174,\"column\":9}}]},\"24\":{\"type\":\"branch\",\"line\":176,\"loc\":{\"start\":{\"line\":176,\"column\":-1},\"end\":{\"line\":177,\"column\":50}},\"locations\":[{\"start\":{\"line\":176,\"column\":-1},\"end\":{\"line\":177,\"column\":50}}]},\"25\":{\"type\":\"branch\",\"line\":177,\"loc\":{\"start\":{\"line\":177,\"column\":50},\"end\":{\"line\":179,\"column\":7}},\"locations\":[{\"start\":{\"line\":177,\"column\":50},\"end\":{\"line\":179,\"column\":7}}]},\"26\":{\"type\":\"branch\",\"line\":180,\"loc\":{\"start\":{\"line\":180,\"column\":-1},\"end\":{\"line\":181,\"column\":52}},\"locations\":[{\"start\":{\"line\":180,\"column\":-1},\"end\":{\"line\":181,\"column\":52}}]},\"27\":{\"type\":\"branch\",\"line\":181,\"loc\":{\"start\":{\"line\":181,\"column\":52},\"end\":{\"line\":183,\"column\":7}},\"locations\":[{\"start\":{\"line\":181,\"column\":52},\"end\":{\"line\":183,\"column\":7}}]},\"28\":{\"type\":\"branch\",\"line\":184,\"loc\":{\"start\":{\"line\":184,\"column\":-1},\"end\":{\"line\":184,\"column\":44}},\"locations\":[{\"start\":{\"line\":184,\"column\":-1},\"end\":{\"line\":184,\"column\":44}}]},\"29\":{\"type\":\"branch\",\"line\":184,\"loc\":{\"start\":{\"line\":184,\"column\":44},\"end\":{\"line\":186,\"column\":7}},\"locations\":[{\"start\":{\"line\":184,\"column\":44},\"end\":{\"line\":186,\"column\":7}}]},\"30\":{\"type\":\"branch\",\"line\":187,\"loc\":{\"start\":{\"line\":187,\"column\":-1},\"end\":{\"line\":188,\"column\":13}},\"locations\":[{\"start\":{\"line\":187,\"column\":-1},\"end\":{\"line\":188,\"column\":13}}]},\"31\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":6},\"end\":{\"line\":191,\"column\":5}},\"locations\":[{\"start\":{\"line\":188,\"column\":6},\"end\":{\"line\":191,\"column\":5}}]}},\"b\":{\"0\":[15],\"1\":[2],\"2\":[0],\"3\":[8],\"4\":[33],\"5\":[28],\"6\":[5],\"7\":[33],\"8\":[0],\"9\":[0],\"10\":[0],\"11\":[4],\"12\":[8],\"13\":[102],\"14\":[13],\"15\":[7],\"16\":[11],\"17\":[17],\"18\":[12],\"19\":[4],\"20\":[12],\"21\":[0],\"22\":[12],\"23\":[0],\"24\":[32],\"25\":[188],\"26\":[32],\"27\":[13],\"28\":[32],\"29\":[1],\"30\":[32],\"31\":[1]},\"fnMap\":{\"0\":{\"name\":\"SchemaMigrationService\",\"decl\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":36,\"column\":6}},\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":36,\"column\":6}},\"line\":29},\"1\":{\"name\":\"validateSchemaChanges\",\"decl\":{\"start\":{\"line\":38,\"column\":9},\"end\":{\"line\":49,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":9},\"end\":{\"line\":49,\"column\":3}},\"line\":38},\"2\":{\"name\":\"schemaComparator\",\"decl\":{\"start\":{\"line\":51,\"column\":9},\"end\":{\"line\":71,\"column\":3}},\"loc\":{\"start\":{\"line\":51,\"column\":9},\"end\":{\"line\":71,\"column\":3}},\"line\":51},\"3\":{\"name\":\"orderModelsByRelations\",\"decl\":{\"start\":{\"line\":73,\"column\":10},\"end\":{\"line\":82,\"column\":3}},\"loc\":{\"start\":{\"line\":73,\"column\":10},\"end\":{\"line\":82,\"column\":3}},\"line\":73},\"4\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":192,\"column\":3}},\"loc\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":192,\"column\":3}},\"line\":84}},\"f\":{\"0\":15,\"1\":2,\"2\":8,\"3\":33,\"4\":33}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/migration-service/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/migration-service/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/migration-service/migration-helpers.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/migration-service/migration-helpers.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":8}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":21}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":21}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":19}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":22}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":20}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":23}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":22}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":31}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":36}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":9}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":29}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":38}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":40}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":39}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":41}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":40}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":42}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":3}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":2}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":36}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":35}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":37}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":33}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":41}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":43}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":33}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":35}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":36}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":3}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":65}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":5}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":67}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":53}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":88}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":10}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":56}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":38}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":33}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":4}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":83}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":82}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":65}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":48}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":78}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":4}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":1}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":29}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":35}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":32}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":28}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":9}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":68}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":62}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":78}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":80}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":41}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":46}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":74}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":59}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":70}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":82}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":7}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":5}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":5}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":1}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":33}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":43}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":40}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":28}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":9}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":57}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":78}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":94}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":88}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":34}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":53}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":39}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":5}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":5}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":0}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":37}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":50}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":41}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":5}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":5}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":1}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":0}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":90}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":10}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":34}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":34}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":42}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":37}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":4}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":30}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":37}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":34}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":28}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":9}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":86}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":80}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":36}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":41}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":40}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":5}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":5}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":0}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":33}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":44}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":38}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":5}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":5}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":0}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":33}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":58}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":23}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":117}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":119}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":118}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":120}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":0}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":111}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":120}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":0}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":10}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":29}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":31}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":30}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":32}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":24}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":23}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":9}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":46}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":16}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":22}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":24}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":23}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":25}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":24}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":26}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":10}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":7}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":5}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":5}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":1}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":86}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":24}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":0}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":120}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":58}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":11}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":11}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":38}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":118}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":7}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":18}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":64}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":77}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":52}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":80}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":0}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":41}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":81}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":3}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":0}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":43}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":85}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":3}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":0}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":44}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":88}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":3}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":0}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":46}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":92}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":3}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":0}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":82}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":54}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":0}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":37}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":101}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":5}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":39}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":105}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":5}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":0}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":38}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":80}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":5}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":40}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":84}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":5}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":0}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":32}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":85}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":5}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":34}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":43}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":5}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":5}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":40}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":76}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":3}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":42}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":80}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":3}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":20}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":1}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":80}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":36}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":11}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":6}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":89}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":28}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":15}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":9}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":0}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":30}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":34}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":95}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":60}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":29}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":12}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":10}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":43}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":56}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":55}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":55}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":29}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":7}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":0}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":52}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":45}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":58}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":7}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":0}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":37}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":3}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":24,\"46\":24,\"47\":24,\"48\":1,\"49\":12,\"50\":12,\"51\":12,\"52\":12,\"53\":6,\"54\":12,\"55\":12,\"56\":1,\"57\":12,\"58\":12,\"59\":12,\"60\":1,\"61\":33,\"62\":33,\"63\":39,\"64\":33,\"65\":33,\"66\":1,\"67\":9,\"68\":9,\"69\":9,\"70\":9,\"71\":9,\"72\":9,\"73\":9,\"74\":9,\"75\":9,\"76\":9,\"77\":9,\"78\":9,\"79\":7,\"80\":4,\"81\":4,\"82\":4,\"83\":4,\"84\":4,\"85\":4,\"86\":9,\"87\":9,\"88\":1,\"89\":8,\"90\":8,\"91\":8,\"92\":8,\"93\":8,\"94\":8,\"95\":8,\"96\":8,\"97\":8,\"98\":8,\"99\":8,\"100\":8,\"101\":121,\"102\":121,\"103\":121,\"104\":8,\"105\":8,\"106\":8,\"107\":3,\"108\":3,\"109\":3,\"110\":8,\"111\":8,\"112\":1,\"113\":163,\"114\":163,\"115\":163,\"116\":163,\"117\":163,\"118\":26,\"119\":163,\"120\":163,\"121\":1,\"122\":8,\"123\":8,\"124\":8,\"125\":8,\"126\":8,\"127\":8,\"128\":8,\"129\":8,\"130\":8,\"131\":9,\"132\":3,\"133\":3,\"134\":8,\"135\":8,\"136\":8,\"137\":57,\"138\":51,\"139\":51,\"140\":8,\"141\":8,\"142\":8,\"143\":57,\"144\":57,\"145\":6,\"146\":6,\"147\":6,\"148\":6,\"149\":6,\"150\":6,\"151\":6,\"152\":6,\"153\":6,\"154\":6,\"155\":6,\"156\":6,\"157\":6,\"158\":6,\"159\":6,\"160\":0,\"161\":6,\"162\":6,\"163\":6,\"164\":6,\"165\":6,\"166\":6,\"167\":6,\"168\":6,\"169\":6,\"170\":6,\"171\":6,\"172\":6,\"173\":8,\"174\":8,\"175\":1,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":66,\"241\":66,\"242\":66,\"243\":66,\"244\":66,\"245\":258,\"246\":258,\"247\":66,\"248\":66,\"249\":66,\"250\":33,\"251\":73,\"252\":73,\"253\":73,\"254\":33,\"255\":33,\"256\":33,\"257\":33,\"258\":1,\"259\":1,\"260\":1,\"261\":33,\"262\":33,\"263\":33,\"264\":33,\"265\":13,\"266\":33,\"267\":33,\"268\":33,\"269\":33,\"270\":66},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"locations\":[{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":48,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":10},\"end\":{\"line\":47,\"column\":16}},\"locations\":[{\"start\":{\"line\":47,\"column\":10},\"end\":{\"line\":47,\"column\":16}}]},\"2\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":34},\"end\":{\"line\":47,\"column\":40}},\"locations\":[{\"start\":{\"line\":47,\"column\":34},\"end\":{\"line\":47,\"column\":40}}]},\"3\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"locations\":[{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":56,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":53},\"end\":{\"line\":53,\"column\":35}},\"locations\":[{\"start\":{\"line\":52,\"column\":53},\"end\":{\"line\":53,\"column\":35}}]},\"5\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":35},\"end\":{\"line\":54,\"column\":33}},\"locations\":[{\"start\":{\"line\":53,\"column\":35},\"end\":{\"line\":54,\"column\":33}}]},\"6\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"locations\":[{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":60,\"column\":1}}]},\"7\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":30},\"end\":{\"line\":59,\"column\":38}},\"locations\":[{\"start\":{\"line\":59,\"column\":30},\"end\":{\"line\":59,\"column\":38}}]},\"8\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":41},\"end\":{\"line\":59,\"column\":49}},\"locations\":[{\"start\":{\"line\":59,\"column\":41},\"end\":{\"line\":59,\"column\":49}}]},\"9\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":55},\"end\":{\"line\":59,\"column\":65}},\"locations\":[{\"start\":{\"line\":59,\"column\":55},\"end\":{\"line\":59,\"column\":65}}]},\"10\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":71},\"end\":{\"line\":59,\"column\":81}},\"locations\":[{\"start\":{\"line\":59,\"column\":71},\"end\":{\"line\":59,\"column\":81}}]},\"11\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":66,\"column\":1}},\"locations\":[{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":66,\"column\":1}}]},\"12\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":37},\"end\":{\"line\":64,\"column\":78}},\"locations\":[{\"start\":{\"line\":63,\"column\":37},\"end\":{\"line\":64,\"column\":78}}]},\"13\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":26},\"end\":{\"line\":64,\"column\":45}},\"locations\":[{\"start\":{\"line\":64,\"column\":26},\"end\":{\"line\":64,\"column\":45}}]},\"14\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":46},\"end\":{\"line\":64,\"column\":78}},\"locations\":[{\"start\":{\"line\":64,\"column\":46},\"end\":{\"line\":64,\"column\":78}}]},\"15\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":88,\"column\":1}},\"locations\":[{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":88,\"column\":1}}]},\"16\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":52},\"end\":{\"line\":73,\"column\":65}},\"locations\":[{\"start\":{\"line\":73,\"column\":52},\"end\":{\"line\":73,\"column\":65}}]},\"17\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":46},\"end\":{\"line\":74,\"column\":59}},\"locations\":[{\"start\":{\"line\":74,\"column\":46},\"end\":{\"line\":74,\"column\":59}}]},\"18\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":40},\"end\":{\"line\":76,\"column\":76}},\"locations\":[{\"start\":{\"line\":76,\"column\":40},\"end\":{\"line\":76,\"column\":76}}]},\"19\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":45},\"end\":{\"line\":77,\"column\":78}},\"locations\":[{\"start\":{\"line\":77,\"column\":45},\"end\":{\"line\":77,\"column\":78}}]},\"20\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":23},\"end\":{\"line\":87,\"column\":3}},\"locations\":[{\"start\":{\"line\":79,\"column\":23},\"end\":{\"line\":87,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":80,\"loc\":{\"start\":{\"line\":80,\"column\":45},\"end\":{\"line\":86,\"column\":5}},\"locations\":[{\"start\":{\"line\":80,\"column\":45},\"end\":{\"line\":86,\"column\":5}}]},\"22\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":38},\"end\":{\"line\":81,\"column\":72}},\"locations\":[{\"start\":{\"line\":81,\"column\":38},\"end\":{\"line\":81,\"column\":72}}]},\"23\":{\"type\":\"branch\",\"line\":90,\"loc\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":112,\"column\":1}},\"locations\":[{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":112,\"column\":1}}]},\"24\":{\"type\":\"branch\",\"line\":95,\"loc\":{\"start\":{\"line\":95,\"column\":22},\"end\":{\"line\":96,\"column\":77}},\"locations\":[{\"start\":{\"line\":95,\"column\":22},\"end\":{\"line\":96,\"column\":77}}]},\"25\":{\"type\":\"branch\",\"line\":98,\"loc\":{\"start\":{\"line\":98,\"column\":59},\"end\":{\"line\":98,\"column\":91}},\"locations\":[{\"start\":{\"line\":98,\"column\":59},\"end\":{\"line\":98,\"column\":91}}]},\"26\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":53},\"end\":{\"line\":99,\"column\":85}},\"locations\":[{\"start\":{\"line\":99,\"column\":53},\"end\":{\"line\":99,\"column\":85}}]},\"27\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":24},\"end\":{\"line\":105,\"column\":3}},\"locations\":[{\"start\":{\"line\":101,\"column\":24},\"end\":{\"line\":105,\"column\":3}}]},\"28\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":27},\"end\":{\"line\":111,\"column\":3}},\"locations\":[{\"start\":{\"line\":107,\"column\":27},\"end\":{\"line\":111,\"column\":3}}]},\"29\":{\"type\":\"branch\",\"line\":114,\"loc\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"locations\":[{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":121,\"column\":1}}]},\"30\":{\"type\":\"branch\",\"line\":116,\"loc\":{\"start\":{\"line\":116,\"column\":31},\"end\":{\"line\":117,\"column\":31}},\"locations\":[{\"start\":{\"line\":116,\"column\":31},\"end\":{\"line\":117,\"column\":31}}]},\"31\":{\"type\":\"branch\",\"line\":117,\"loc\":{\"start\":{\"line\":117,\"column\":31},\"end\":{\"line\":118,\"column\":39}},\"locations\":[{\"start\":{\"line\":117,\"column\":31},\"end\":{\"line\":118,\"column\":39}}]},\"32\":{\"type\":\"branch\",\"line\":118,\"loc\":{\"start\":{\"line\":118,\"column\":39},\"end\":{\"line\":119,\"column\":37}},\"locations\":[{\"start\":{\"line\":118,\"column\":39},\"end\":{\"line\":119,\"column\":37}}]},\"33\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":175,\"column\":1}},\"locations\":[{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":175,\"column\":1}}]},\"34\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":53},\"end\":{\"line\":128,\"column\":83}},\"locations\":[{\"start\":{\"line\":128,\"column\":53},\"end\":{\"line\":128,\"column\":83}}]},\"35\":{\"type\":\"branch\",\"line\":129,\"loc\":{\"start\":{\"line\":129,\"column\":47},\"end\":{\"line\":129,\"column\":77}},\"locations\":[{\"start\":{\"line\":129,\"column\":47},\"end\":{\"line\":129,\"column\":77}}]},\"36\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":24},\"end\":{\"line\":135,\"column\":3}},\"locations\":[{\"start\":{\"line\":131,\"column\":24},\"end\":{\"line\":135,\"column\":3}}]},\"37\":{\"type\":\"branch\",\"line\":132,\"loc\":{\"start\":{\"line\":132,\"column\":40},\"end\":{\"line\":134,\"column\":5}},\"locations\":[{\"start\":{\"line\":132,\"column\":40},\"end\":{\"line\":134,\"column\":5}}]},\"38\":{\"type\":\"branch\",\"line\":137,\"loc\":{\"start\":{\"line\":137,\"column\":21},\"end\":{\"line\":141,\"column\":3}},\"locations\":[{\"start\":{\"line\":137,\"column\":21},\"end\":{\"line\":141,\"column\":3}}]},\"39\":{\"type\":\"branch\",\"line\":138,\"loc\":{\"start\":{\"line\":138,\"column\":43},\"end\":{\"line\":140,\"column\":5}},\"locations\":[{\"start\":{\"line\":138,\"column\":43},\"end\":{\"line\":140,\"column\":5}}]},\"40\":{\"type\":\"branch\",\"line\":143,\"loc\":{\"start\":{\"line\":143,\"column\":21},\"end\":{\"line\":174,\"column\":3}},\"locations\":[{\"start\":{\"line\":143,\"column\":21},\"end\":{\"line\":174,\"column\":3}}]},\"41\":{\"type\":\"branch\",\"line\":145,\"loc\":{\"start\":{\"line\":145,\"column\":22},\"end\":{\"line\":173,\"column\":5}},\"locations\":[{\"start\":{\"line\":145,\"column\":22},\"end\":{\"line\":173,\"column\":5}}]},\"42\":{\"type\":\"branch\",\"line\":152,\"loc\":{\"start\":{\"line\":152,\"column\":82},\"end\":{\"line\":152,\"column\":98}},\"locations\":[{\"start\":{\"line\":152,\"column\":82},\"end\":{\"line\":152,\"column\":98}}]},\"43\":{\"type\":\"branch\",\"line\":153,\"loc\":{\"start\":{\"line\":153,\"column\":84},\"end\":{\"line\":153,\"column\":107}},\"locations\":[{\"start\":{\"line\":153,\"column\":84},\"end\":{\"line\":153,\"column\":107}}]},\"44\":{\"type\":\"branch\",\"line\":156,\"loc\":{\"start\":{\"line\":156,\"column\":26},\"end\":{\"line\":157,\"column\":28}},\"locations\":[{\"start\":{\"line\":156,\"column\":26},\"end\":{\"line\":157,\"column\":28}}]},\"45\":{\"type\":\"branch\",\"line\":157,\"loc\":{\"start\":{\"line\":157,\"column\":28},\"end\":{\"line\":158,\"column\":27}},\"locations\":[{\"start\":{\"line\":157,\"column\":28},\"end\":{\"line\":158,\"column\":27}}]},\"46\":{\"type\":\"branch\",\"line\":158,\"loc\":{\"start\":{\"line\":158,\"column\":27},\"end\":{\"line\":159,\"column\":29}},\"locations\":[{\"start\":{\"line\":158,\"column\":27},\"end\":{\"line\":159,\"column\":29}}]},\"47\":{\"type\":\"branch\",\"line\":159,\"loc\":{\"start\":{\"line\":159,\"column\":29},\"end\":{\"line\":160,\"column\":21}},\"locations\":[{\"start\":{\"line\":159,\"column\":29},\"end\":{\"line\":160,\"column\":21}}]},\"48\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":21},\"end\":{\"line\":161,\"column\":23}},\"locations\":[{\"start\":{\"line\":160,\"column\":21},\"end\":{\"line\":161,\"column\":23}}]},\"49\":{\"type\":\"branch\",\"line\":146,\"loc\":{\"start\":{\"line\":146,\"column\":46},\"end\":{\"line\":146,\"column\":115}},\"locations\":[{\"start\":{\"line\":146,\"column\":46},\"end\":{\"line\":146,\"column\":115}}]},\"50\":{\"type\":\"branch\",\"line\":146,\"loc\":{\"start\":{\"line\":146,\"column\":83},\"end\":{\"line\":146,\"column\":114}},\"locations\":[{\"start\":{\"line\":146,\"column\":83},\"end\":{\"line\":146,\"column\":114}}]},\"51\":{\"type\":\"branch\",\"line\":147,\"loc\":{\"start\":{\"line\":147,\"column\":55},\"end\":{\"line\":147,\"column\":117}},\"locations\":[{\"start\":{\"line\":147,\"column\":55},\"end\":{\"line\":147,\"column\":117}}]},\"52\":{\"type\":\"branch\",\"line\":147,\"loc\":{\"start\":{\"line\":147,\"column\":85},\"end\":{\"line\":147,\"column\":116}},\"locations\":[{\"start\":{\"line\":147,\"column\":85},\"end\":{\"line\":147,\"column\":116}}]},\"53\":{\"type\":\"branch\",\"line\":149,\"loc\":{\"start\":{\"line\":149,\"column\":48},\"end\":{\"line\":149,\"column\":116}},\"locations\":[{\"start\":{\"line\":149,\"column\":48},\"end\":{\"line\":149,\"column\":116}}]},\"54\":{\"type\":\"branch\",\"line\":149,\"loc\":{\"start\":{\"line\":149,\"column\":86},\"end\":{\"line\":149,\"column\":115}},\"locations\":[{\"start\":{\"line\":149,\"column\":86},\"end\":{\"line\":149,\"column\":115}}]},\"55\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":57},\"end\":{\"line\":150,\"column\":118}},\"locations\":[{\"start\":{\"line\":150,\"column\":57},\"end\":{\"line\":150,\"column\":118}}]},\"56\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":88},\"end\":{\"line\":150,\"column\":117}},\"locations\":[{\"start\":{\"line\":150,\"column\":88},\"end\":{\"line\":150,\"column\":117}}]},\"57\":{\"type\":\"branch\",\"line\":241,\"loc\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":271,\"column\":1}},\"locations\":[{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":271,\"column\":1}}]},\"58\":{\"type\":\"branch\",\"line\":250,\"loc\":{\"start\":{\"line\":250,\"column\":29},\"end\":{\"line\":270,\"column\":3}},\"locations\":[{\"start\":{\"line\":250,\"column\":29},\"end\":{\"line\":270,\"column\":3}}]},\"59\":{\"type\":\"branch\",\"line\":245,\"loc\":{\"start\":{\"line\":245,\"column\":41},\"end\":{\"line\":248,\"column\":3}},\"locations\":[{\"start\":{\"line\":245,\"column\":41},\"end\":{\"line\":248,\"column\":3}}]},\"60\":{\"type\":\"branch\",\"line\":251,\"loc\":{\"start\":{\"line\":251,\"column\":23},\"end\":{\"line\":255,\"column\":5}},\"locations\":[{\"start\":{\"line\":251,\"column\":23},\"end\":{\"line\":255,\"column\":5}}]},\"61\":{\"type\":\"branch\",\"line\":252,\"loc\":{\"start\":{\"line\":252,\"column\":39},\"end\":{\"line\":252,\"column\":59}},\"locations\":[{\"start\":{\"line\":252,\"column\":39},\"end\":{\"line\":252,\"column\":59}}]},\"62\":{\"type\":\"branch\",\"line\":253,\"loc\":{\"start\":{\"line\":253,\"column\":39},\"end\":{\"line\":253,\"column\":59}},\"locations\":[{\"start\":{\"line\":253,\"column\":39},\"end\":{\"line\":253,\"column\":59}}]},\"63\":{\"type\":\"branch\",\"line\":258,\"loc\":{\"start\":{\"line\":258,\"column\":45},\"end\":{\"line\":262,\"column\":5}},\"locations\":[{\"start\":{\"line\":258,\"column\":45},\"end\":{\"line\":262,\"column\":5}}]},\"64\":{\"type\":\"branch\",\"line\":259,\"loc\":{\"start\":{\"line\":259,\"column\":34},\"end\":{\"line\":259,\"column\":54}},\"locations\":[{\"start\":{\"line\":259,\"column\":34},\"end\":{\"line\":259,\"column\":54}}]},\"65\":{\"type\":\"branch\",\"line\":260,\"loc\":{\"start\":{\"line\":260,\"column\":34},\"end\":{\"line\":260,\"column\":54}},\"locations\":[{\"start\":{\"line\":260,\"column\":34},\"end\":{\"line\":260,\"column\":54}}]},\"66\":{\"type\":\"branch\",\"line\":265,\"loc\":{\"start\":{\"line\":265,\"column\":29},\"end\":{\"line\":267,\"column\":5}},\"locations\":[{\"start\":{\"line\":265,\"column\":29},\"end\":{\"line\":267,\"column\":5}}]}},\"b\":{\"0\":[24],\"1\":[12],\"2\":[12],\"3\":[12],\"4\":[6],\"5\":[6],\"6\":[12],\"7\":[0],\"8\":[0],\"9\":[0],\"10\":[0],\"11\":[33],\"12\":[39],\"13\":[37],\"14\":[2],\"15\":[9],\"16\":[7],\"17\":[8],\"18\":[8],\"19\":[7],\"20\":[7],\"21\":[4],\"22\":[7],\"23\":[8],\"24\":[248],\"25\":[3],\"26\":[121],\"27\":[121],\"28\":[3],\"29\":[163],\"30\":[42],\"31\":[30],\"32\":[26],\"33\":[8],\"34\":[9],\"35\":[57],\"36\":[9],\"37\":[3],\"38\":[57],\"39\":[51],\"40\":[57],\"41\":[6],\"42\":[0],\"43\":[0],\"44\":[1],\"45\":[1],\"46\":[0],\"47\":[0],\"48\":[0],\"49\":[24],\"50\":[80],\"51\":[27],\"52\":[83],\"53\":[12],\"54\":[6],\"55\":[3],\"56\":[6],\"57\":[66],\"58\":[33],\"59\":[258],\"60\":[73],\"61\":[0],\"62\":[0],\"63\":[1],\"64\":[0],\"65\":[0],\"66\":[13]},\"fnMap\":{\"0\":{\"name\":\"arrayUnorderedMatch\",\"decl\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"loc\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"line\":46},\"1\":{\"name\":\"indexesEqual\",\"decl\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"line\":50},\"2\":{\"name\":\"fullTextEqual\",\"decl\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"loc\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"line\":58},\"3\":{\"name\":\"hasChanged\",\"decl\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":66,\"column\":1}},\"loc\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":66,\"column\":1}},\"line\":62},\"4\":{\"name\":\"compareEnums\",\"decl\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":88,\"column\":1}},\"loc\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":88,\"column\":1}},\"line\":68},\"5\":{\"name\":\"compareRelations\",\"decl\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":112,\"column\":1}},\"loc\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":112,\"column\":1}},\"line\":90},\"6\":{\"name\":\"relationKey\",\"decl\":{\"start\":{\"line\":95,\"column\":22},\"end\":{\"line\":96,\"column\":77}},\"loc\":{\"start\":{\"line\":95,\"column\":22},\"end\":{\"line\":96,\"column\":77}},\"line\":95},\"7\":{\"name\":\"fieldsAreEqual\",\"decl\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"loc\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"line\":114},\"8\":{\"name\":\"compareModels\",\"decl\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":175,\"column\":1}},\"loc\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":175,\"column\":1}},\"line\":123},\"9\":{\"name\":\"schemaChangesLoggerMessage\",\"decl\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":240,\"column\":1}},\"loc\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":240,\"column\":1}},\"line\":177},\"10\":{\"name\":\"alignModelOrder\",\"decl\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":271,\"column\":1}},\"loc\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":271,\"column\":1}},\"line\":241}},\"f\":{\"0\":24,\"1\":12,\"2\":12,\"3\":33,\"4\":9,\"5\":8,\"6\":248,\"7\":163,\"8\":8,\"9\":0,\"10\":66}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/migration-service/migration.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/migration-service/migration.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":33}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":21}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":21}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":19}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":20}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":23}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":11}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":12}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":22}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":8}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":17}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":18}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":14}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":13}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":12}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":14}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":8}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":28}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":37}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":54}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":43}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":39}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":83}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":86}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":45}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":55}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":39}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":24}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":51}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":4}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":86}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":182}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":53}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":54}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":39}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":44}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":82}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":11}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":37}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":6}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":45}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":46}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":22}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":33}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":39}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":40}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":40}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":40}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":91}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":51}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":50}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":5}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":48}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":47}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":66}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":35}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":69}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":5}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":44}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":31}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":91}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":5}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":3}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":22}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":25}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":31}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":23}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":23}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":22}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":25}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":95}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":81}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":97}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":30}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":12}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":24}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":8}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":25}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":16}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":19}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":17}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":13}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":13}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":26}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":18}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":19}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":6}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":3}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":80}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":85}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":0}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":26}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":39}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":33}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":5}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":9}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":45}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":40}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":119}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":16}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":81}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":9}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":7}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":0}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":52}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":40}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":119}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":16}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":81}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":9}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":7}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":42}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":17}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":44}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":14}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":5}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":0}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":37}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":0}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":32}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":3}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":0}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":71}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":37}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":30}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":5}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":93}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":26}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":58}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":5}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":0}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":69}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":70}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":13}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":12}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":8}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":0}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":33}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":3}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":0}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":76}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":42}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":66}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":48}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":5}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":76}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":79}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":86}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":3}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":0}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":90}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":79}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":81}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":0}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":55}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":66}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":5}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":0}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":26}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":55}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":54}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":5}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":0}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":82}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":42}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":85}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":0}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":102}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":0}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":118}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":0}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":41}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":28}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":47}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":41}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":26}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":34}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":9}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":8}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":5}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":0}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":25}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":33}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":5}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":0}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":31}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":96}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":87}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":32}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":40}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":106}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":14}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":108}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":7}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":12}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":107}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":49}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":45}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":107}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":7}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":5}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":0}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":72}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":77}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":5}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":0}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":50}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":3}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":0}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":45}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":51}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":0}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":46}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":87}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":87}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":3}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":0}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":75}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":60}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":0}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":84}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":35}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":70}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":5}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":0}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":35}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":102}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":5}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":0}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":53}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":54}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":0}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":88}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":26}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":99}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":6}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":0}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":32}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":29}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":104}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":8}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":5}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":0}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":50}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":3}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":0}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":73}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":52}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":51}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":94}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":68}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":3}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":0}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":74}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":60}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":106}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":0}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":26}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":62}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":61}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":5}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":0}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":85}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":0}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":106}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":3}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":0}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":72}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":82}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":87}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":3}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":0}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":56}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":54}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":59}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":26}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":85}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":12}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":30}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":27}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":75}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":89}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":87}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":96}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":69}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":53}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":120}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":11}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":16}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":9}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":24}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":50}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":44}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":13}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":96}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":69}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":45}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":55}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":13}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":33}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":105}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":107}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":12}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":16}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":9}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":25}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":51}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":44}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":13}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":96}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":69}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":45}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":49}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":13}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":33}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":104}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":12}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":16}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":9}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":16}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":60}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":7}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":63}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":51}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":23}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":8}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":26}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":45}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":7}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":5}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":0}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":41}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":3}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":0}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":39}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":53}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":47}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":55}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":20}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":86}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":36}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":7}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":3}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":0}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":54}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":40}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":13}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":5}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":54}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":84}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":0}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":101}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":3}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":0}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":41}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":33}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":0}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":56}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":118}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":94}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":104}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":64}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":59}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":98}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":0}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":35}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":0}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":61}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":0}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":30}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":36}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":70}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":52}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":26}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":102}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":17}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":105}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":12}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":9}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":98}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":7}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":7}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":0}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":16}},\"404\":{\"start\":{\"line\":405,\"column\":0},\"end\":{\"line\":405,\"column\":54}},\"405\":{\"start\":{\"line\":406,\"column\":0},\"end\":{\"line\":406,\"column\":96}},\"406\":{\"start\":{\"line\":407,\"column\":0},\"end\":{\"line\":407,\"column\":75}},\"407\":{\"start\":{\"line\":408,\"column\":0},\"end\":{\"line\":408,\"column\":5}},\"408\":{\"start\":{\"line\":409,\"column\":0},\"end\":{\"line\":409,\"column\":0}},\"409\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":410,\"column\":47}},\"410\":{\"start\":{\"line\":411,\"column\":0},\"end\":{\"line\":411,\"column\":18}},\"411\":{\"start\":{\"line\":412,\"column\":0},\"end\":{\"line\":412,\"column\":131}},\"412\":{\"start\":{\"line\":413,\"column\":0},\"end\":{\"line\":413,\"column\":8}},\"413\":{\"start\":{\"line\":414,\"column\":0},\"end\":{\"line\":414,\"column\":12}},\"414\":{\"start\":{\"line\":415,\"column\":0},\"end\":{\"line\":415,\"column\":44}},\"415\":{\"start\":{\"line\":416,\"column\":0},\"end\":{\"line\":416,\"column\":83}},\"416\":{\"start\":{\"line\":417,\"column\":0},\"end\":{\"line\":417,\"column\":8}},\"417\":{\"start\":{\"line\":418,\"column\":0},\"end\":{\"line\":418,\"column\":0}},\"418\":{\"start\":{\"line\":419,\"column\":0},\"end\":{\"line\":419,\"column\":65}},\"419\":{\"start\":{\"line\":420,\"column\":0},\"end\":{\"line\":420,\"column\":5}},\"420\":{\"start\":{\"line\":421,\"column\":0},\"end\":{\"line\":421,\"column\":41}},\"421\":{\"start\":{\"line\":422,\"column\":0},\"end\":{\"line\":422,\"column\":40}},\"422\":{\"start\":{\"line\":423,\"column\":0},\"end\":{\"line\":423,\"column\":27}},\"423\":{\"start\":{\"line\":424,\"column\":0},\"end\":{\"line\":424,\"column\":17}},\"424\":{\"start\":{\"line\":425,\"column\":0},\"end\":{\"line\":425,\"column\":19}},\"425\":{\"start\":{\"line\":426,\"column\":0},\"end\":{\"line\":426,\"column\":7}},\"426\":{\"start\":{\"line\":427,\"column\":0},\"end\":{\"line\":427,\"column\":3}},\"427\":{\"start\":{\"line\":428,\"column\":0},\"end\":{\"line\":428,\"column\":0}},\"428\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":429,\"column\":39}},\"429\":{\"start\":{\"line\":430,\"column\":0},\"end\":{\"line\":430,\"column\":59}},\"430\":{\"start\":{\"line\":431,\"column\":0},\"end\":{\"line\":431,\"column\":98}},\"431\":{\"start\":{\"line\":432,\"column\":0},\"end\":{\"line\":432,\"column\":0}},\"432\":{\"start\":{\"line\":433,\"column\":0},\"end\":{\"line\":433,\"column\":66}},\"433\":{\"start\":{\"line\":434,\"column\":0},\"end\":{\"line\":434,\"column\":43}},\"434\":{\"start\":{\"line\":435,\"column\":0},\"end\":{\"line\":435,\"column\":83}},\"435\":{\"start\":{\"line\":436,\"column\":0},\"end\":{\"line\":436,\"column\":42}},\"436\":{\"start\":{\"line\":437,\"column\":0},\"end\":{\"line\":437,\"column\":7}},\"437\":{\"start\":{\"line\":438,\"column\":0},\"end\":{\"line\":438,\"column\":7}},\"438\":{\"start\":{\"line\":439,\"column\":0},\"end\":{\"line\":439,\"column\":3}},\"439\":{\"start\":{\"line\":440,\"column\":0},\"end\":{\"line\":440,\"column\":0}},\"440\":{\"start\":{\"line\":441,\"column\":0},\"end\":{\"line\":441,\"column\":50}},\"441\":{\"start\":{\"line\":442,\"column\":0},\"end\":{\"line\":442,\"column\":80}},\"442\":{\"start\":{\"line\":443,\"column\":0},\"end\":{\"line\":443,\"column\":0}},\"443\":{\"start\":{\"line\":444,\"column\":0},\"end\":{\"line\":444,\"column\":47}},\"444\":{\"start\":{\"line\":445,\"column\":0},\"end\":{\"line\":445,\"column\":0}},\"445\":{\"start\":{\"line\":446,\"column\":0},\"end\":{\"line\":446,\"column\":21}},\"446\":{\"start\":{\"line\":447,\"column\":0},\"end\":{\"line\":447,\"column\":115}},\"447\":{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":448,\"column\":68}},\"448\":{\"start\":{\"line\":449,\"column\":0},\"end\":{\"line\":449,\"column\":66}},\"449\":{\"start\":{\"line\":450,\"column\":0},\"end\":{\"line\":450,\"column\":67}},\"450\":{\"start\":{\"line\":451,\"column\":0},\"end\":{\"line\":451,\"column\":68}},\"451\":{\"start\":{\"line\":452,\"column\":0},\"end\":{\"line\":452,\"column\":6}},\"452\":{\"start\":{\"line\":453,\"column\":0},\"end\":{\"line\":453,\"column\":0}},\"453\":{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":454,\"column\":38}},\"454\":{\"start\":{\"line\":455,\"column\":0},\"end\":{\"line\":455,\"column\":3}},\"455\":{\"start\":{\"line\":456,\"column\":0},\"end\":{\"line\":456,\"column\":0}},\"456\":{\"start\":{\"line\":457,\"column\":0},\"end\":{\"line\":457,\"column\":48}},\"457\":{\"start\":{\"line\":458,\"column\":0},\"end\":{\"line\":458,\"column\":47}},\"458\":{\"start\":{\"line\":459,\"column\":0},\"end\":{\"line\":459,\"column\":0}},\"459\":{\"start\":{\"line\":460,\"column\":0},\"end\":{\"line\":460,\"column\":21}},\"460\":{\"start\":{\"line\":461,\"column\":0},\"end\":{\"line\":461,\"column\":65}},\"461\":{\"start\":{\"line\":462,\"column\":0},\"end\":{\"line\":462,\"column\":64}},\"462\":{\"start\":{\"line\":463,\"column\":0},\"end\":{\"line\":463,\"column\":65}},\"463\":{\"start\":{\"line\":464,\"column\":0},\"end\":{\"line\":464,\"column\":6}},\"464\":{\"start\":{\"line\":465,\"column\":0},\"end\":{\"line\":465,\"column\":0}},\"465\":{\"start\":{\"line\":466,\"column\":0},\"end\":{\"line\":466,\"column\":38}},\"466\":{\"start\":{\"line\":467,\"column\":0},\"end\":{\"line\":467,\"column\":3}},\"467\":{\"start\":{\"line\":468,\"column\":0},\"end\":{\"line\":468,\"column\":0}},\"468\":{\"start\":{\"line\":469,\"column\":0},\"end\":{\"line\":469,\"column\":70}},\"469\":{\"start\":{\"line\":470,\"column\":0},\"end\":{\"line\":470,\"column\":110}},\"470\":{\"start\":{\"line\":471,\"column\":0},\"end\":{\"line\":471,\"column\":64}},\"471\":{\"start\":{\"line\":472,\"column\":0},\"end\":{\"line\":472,\"column\":106}},\"472\":{\"start\":{\"line\":473,\"column\":0},\"end\":{\"line\":473,\"column\":116}},\"473\":{\"start\":{\"line\":474,\"column\":0},\"end\":{\"line\":474,\"column\":47}},\"474\":{\"start\":{\"line\":475,\"column\":0},\"end\":{\"line\":475,\"column\":13}},\"475\":{\"start\":{\"line\":476,\"column\":0},\"end\":{\"line\":476,\"column\":5}},\"476\":{\"start\":{\"line\":477,\"column\":0},\"end\":{\"line\":477,\"column\":35}},\"477\":{\"start\":{\"line\":478,\"column\":0},\"end\":{\"line\":478,\"column\":74}},\"478\":{\"start\":{\"line\":479,\"column\":0},\"end\":{\"line\":479,\"column\":84}},\"479\":{\"start\":{\"line\":480,\"column\":0},\"end\":{\"line\":480,\"column\":57}},\"480\":{\"start\":{\"line\":481,\"column\":0},\"end\":{\"line\":481,\"column\":112}},\"481\":{\"start\":{\"line\":482,\"column\":0},\"end\":{\"line\":482,\"column\":19}},\"482\":{\"start\":{\"line\":483,\"column\":0},\"end\":{\"line\":483,\"column\":42}},\"483\":{\"start\":{\"line\":484,\"column\":0},\"end\":{\"line\":484,\"column\":54}},\"484\":{\"start\":{\"line\":485,\"column\":0},\"end\":{\"line\":485,\"column\":59}},\"485\":{\"start\":{\"line\":486,\"column\":0},\"end\":{\"line\":486,\"column\":46}},\"486\":{\"start\":{\"line\":487,\"column\":0},\"end\":{\"line\":487,\"column\":9}},\"487\":{\"start\":{\"line\":488,\"column\":0},\"end\":{\"line\":488,\"column\":56}},\"488\":{\"start\":{\"line\":489,\"column\":0},\"end\":{\"line\":489,\"column\":26}},\"489\":{\"start\":{\"line\":490,\"column\":0},\"end\":{\"line\":490,\"column\":7}},\"490\":{\"start\":{\"line\":491,\"column\":0},\"end\":{\"line\":491,\"column\":7}},\"491\":{\"start\":{\"line\":492,\"column\":0},\"end\":{\"line\":492,\"column\":3}},\"492\":{\"start\":{\"line\":493,\"column\":0},\"end\":{\"line\":493,\"column\":0}},\"493\":{\"start\":{\"line\":494,\"column\":0},\"end\":{\"line\":494,\"column\":124}},\"494\":{\"start\":{\"line\":495,\"column\":0},\"end\":{\"line\":495,\"column\":89}},\"495\":{\"start\":{\"line\":496,\"column\":0},\"end\":{\"line\":496,\"column\":45}},\"496\":{\"start\":{\"line\":497,\"column\":0},\"end\":{\"line\":497,\"column\":47}},\"497\":{\"start\":{\"line\":498,\"column\":0},\"end\":{\"line\":498,\"column\":13}},\"498\":{\"start\":{\"line\":499,\"column\":0},\"end\":{\"line\":499,\"column\":5}},\"499\":{\"start\":{\"line\":500,\"column\":0},\"end\":{\"line\":500,\"column\":63}},\"500\":{\"start\":{\"line\":501,\"column\":0},\"end\":{\"line\":501,\"column\":36}},\"501\":{\"start\":{\"line\":502,\"column\":0},\"end\":{\"line\":502,\"column\":54}},\"502\":{\"start\":{\"line\":503,\"column\":0},\"end\":{\"line\":503,\"column\":52}},\"503\":{\"start\":{\"line\":504,\"column\":0},\"end\":{\"line\":504,\"column\":78}},\"504\":{\"start\":{\"line\":505,\"column\":0},\"end\":{\"line\":505,\"column\":7}},\"505\":{\"start\":{\"line\":506,\"column\":0},\"end\":{\"line\":506,\"column\":5}},\"506\":{\"start\":{\"line\":507,\"column\":0},\"end\":{\"line\":507,\"column\":3}},\"507\":{\"start\":{\"line\":508,\"column\":0},\"end\":{\"line\":508,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":33,\"54\":33,\"55\":33,\"56\":33,\"57\":33,\"58\":33,\"59\":33,\"60\":33,\"61\":33,\"62\":33,\"63\":33,\"64\":33,\"65\":33,\"66\":0,\"67\":0,\"68\":0,\"69\":33,\"70\":33,\"71\":33,\"72\":33,\"73\":2,\"74\":2,\"75\":33,\"76\":1,\"77\":1,\"78\":33,\"79\":33,\"80\":33,\"81\":33,\"82\":33,\"83\":33,\"84\":33,\"85\":33,\"86\":33,\"87\":33,\"88\":33,\"89\":33,\"90\":33,\"91\":33,\"92\":33,\"93\":33,\"94\":33,\"95\":33,\"96\":33,\"97\":33,\"98\":33,\"99\":33,\"100\":33,\"101\":33,\"102\":1,\"103\":1,\"104\":32,\"105\":32,\"106\":32,\"107\":19,\"108\":19,\"109\":19,\"110\":32,\"111\":32,\"112\":32,\"113\":594,\"114\":172,\"115\":594,\"116\":422,\"117\":422,\"118\":594,\"119\":32,\"120\":32,\"121\":251,\"122\":59,\"123\":251,\"124\":192,\"125\":192,\"126\":251,\"127\":32,\"128\":32,\"129\":32,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":32,\"135\":32,\"136\":32,\"137\":32,\"138\":32,\"139\":1,\"140\":1,\"141\":130,\"142\":130,\"143\":130,\"144\":130,\"145\":130,\"146\":75,\"147\":75,\"148\":130,\"149\":130,\"150\":138,\"151\":138,\"152\":138,\"153\":130,\"154\":130,\"155\":130,\"156\":130,\"157\":1,\"158\":1,\"159\":317,\"160\":317,\"161\":115,\"162\":115,\"163\":317,\"164\":1,\"165\":1,\"166\":28,\"167\":28,\"168\":28,\"169\":1,\"170\":1,\"171\":102,\"172\":102,\"173\":102,\"174\":102,\"175\":0,\"176\":0,\"177\":102,\"178\":102,\"179\":59,\"180\":59,\"181\":59,\"182\":102,\"183\":102,\"184\":102,\"185\":102,\"186\":102,\"187\":102,\"188\":102,\"189\":102,\"190\":102,\"191\":102,\"192\":102,\"193\":102,\"194\":102,\"195\":102,\"196\":102,\"197\":102,\"198\":102,\"199\":102,\"200\":102,\"201\":102,\"202\":0,\"203\":0,\"204\":102,\"205\":102,\"206\":3,\"207\":3,\"208\":3,\"209\":3,\"210\":3,\"211\":3,\"212\":0,\"213\":0,\"214\":102,\"215\":99,\"216\":99,\"217\":99,\"218\":99,\"219\":99,\"220\":99,\"221\":102,\"222\":102,\"223\":99,\"224\":99,\"225\":102,\"226\":102,\"227\":102,\"228\":1,\"229\":1,\"230\":8,\"231\":8,\"232\":8,\"233\":8,\"234\":8,\"235\":8,\"236\":1,\"237\":1,\"238\":17,\"239\":17,\"240\":17,\"241\":17,\"242\":0,\"243\":0,\"244\":17,\"245\":17,\"246\":1,\"247\":1,\"248\":16,\"249\":16,\"250\":16,\"251\":16,\"252\":16,\"253\":16,\"254\":16,\"255\":16,\"256\":16,\"257\":17,\"258\":2,\"259\":2,\"260\":2,\"261\":2,\"262\":16,\"263\":16,\"264\":16,\"265\":1,\"266\":1,\"267\":11,\"268\":11,\"269\":11,\"270\":11,\"271\":11,\"272\":1,\"273\":1,\"274\":4,\"275\":4,\"276\":4,\"277\":4,\"278\":2,\"279\":2,\"280\":2,\"281\":4,\"282\":4,\"283\":4,\"284\":4,\"285\":4,\"286\":1,\"287\":1,\"288\":7,\"289\":7,\"290\":7,\"291\":1,\"292\":1,\"293\":188,\"294\":188,\"295\":188,\"296\":97,\"297\":188,\"298\":91,\"299\":91,\"300\":63,\"301\":63,\"302\":63,\"303\":63,\"304\":63,\"305\":63,\"306\":63,\"307\":63,\"308\":63,\"309\":63,\"310\":91,\"311\":0,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":91,\"326\":28,\"327\":28,\"328\":28,\"329\":28,\"330\":28,\"331\":28,\"332\":28,\"333\":28,\"334\":28,\"335\":28,\"336\":28,\"337\":28,\"338\":28,\"339\":91,\"340\":0,\"341\":91,\"342\":91,\"343\":91,\"344\":91,\"345\":91,\"346\":91,\"347\":63,\"348\":63,\"349\":91,\"350\":188,\"351\":188,\"352\":188,\"353\":1,\"354\":1,\"355\":19,\"356\":29,\"357\":29,\"358\":29,\"359\":29,\"360\":29,\"361\":19,\"362\":19,\"363\":1,\"364\":1,\"365\":13,\"366\":5,\"367\":5,\"368\":8,\"369\":8,\"370\":8,\"371\":8,\"372\":8,\"373\":1,\"374\":1,\"375\":4,\"376\":4,\"377\":4,\"378\":4,\"379\":4,\"380\":4,\"381\":4,\"382\":4,\"383\":4,\"384\":4,\"385\":4,\"386\":4,\"387\":4,\"388\":4,\"389\":4,\"390\":8,\"391\":0,\"392\":0,\"393\":0,\"394\":0,\"395\":0,\"396\":0,\"397\":0,\"398\":0,\"399\":0,\"400\":0,\"401\":4,\"402\":4,\"403\":4,\"404\":4,\"405\":4,\"406\":4,\"407\":4,\"408\":4,\"409\":4,\"410\":0,\"411\":0,\"412\":0,\"413\":4,\"414\":4,\"415\":4,\"416\":4,\"417\":4,\"418\":4,\"419\":4,\"420\":4,\"421\":4,\"422\":4,\"423\":4,\"424\":4,\"425\":4,\"426\":4,\"427\":1,\"428\":1,\"429\":1,\"430\":1,\"431\":1,\"432\":1,\"433\":2,\"434\":1,\"435\":1,\"436\":1,\"437\":1,\"438\":1,\"439\":1,\"440\":1,\"441\":0,\"442\":0,\"443\":0,\"444\":0,\"445\":0,\"446\":0,\"447\":0,\"448\":0,\"449\":0,\"450\":0,\"451\":0,\"452\":0,\"453\":0,\"454\":0,\"455\":1,\"456\":1,\"457\":0,\"458\":0,\"459\":0,\"460\":0,\"461\":0,\"462\":0,\"463\":0,\"464\":0,\"465\":0,\"466\":0,\"467\":1,\"468\":1,\"469\":1,\"470\":1,\"471\":1,\"472\":1,\"473\":102,\"474\":102,\"475\":102,\"476\":0,\"477\":0,\"478\":0,\"479\":0,\"480\":0,\"481\":0,\"482\":0,\"483\":0,\"484\":0,\"485\":0,\"486\":0,\"487\":0,\"488\":0,\"489\":0,\"490\":0,\"491\":0,\"492\":1,\"493\":1,\"494\":1,\"495\":1,\"496\":32,\"497\":32,\"498\":32,\"499\":0,\"500\":0,\"501\":0,\"502\":0,\"503\":0,\"504\":0,\"505\":0,\"506\":32,\"507\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"locations\":[{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":76,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":28},\"end\":{\"line\":66,\"column\":63}},\"locations\":[{\"start\":{\"line\":66,\"column\":28},\"end\":{\"line\":66,\"column\":63}}]},\"2\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":65},\"end\":{\"line\":69,\"column\":5}},\"locations\":[{\"start\":{\"line\":66,\"column\":65},\"end\":{\"line\":69,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":30},\"end\":{\"line\":75,\"column\":5}},\"locations\":[{\"start\":{\"line\":73,\"column\":30},\"end\":{\"line\":75,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":9},\"end\":{\"line\":102,\"column\":3}},\"locations\":[{\"start\":{\"line\":78,\"column\":9},\"end\":{\"line\":102,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":139,\"column\":3}},\"locations\":[{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":139,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":44},\"end\":{\"line\":105,\"column\":84}},\"locations\":[{\"start\":{\"line\":105,\"column\":44},\"end\":{\"line\":105,\"column\":84}}]},\"7\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":25},\"end\":{\"line\":110,\"column\":5}},\"locations\":[{\"start\":{\"line\":107,\"column\":25},\"end\":{\"line\":110,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":44},\"end\":{\"line\":119,\"column\":7}},\"locations\":[{\"start\":{\"line\":113,\"column\":44},\"end\":{\"line\":119,\"column\":7}}]},\"9\":{\"type\":\"branch\",\"line\":114,\"loc\":{\"start\":{\"line\":114,\"column\":39},\"end\":{\"line\":116,\"column\":15}},\"locations\":[{\"start\":{\"line\":114,\"column\":39},\"end\":{\"line\":116,\"column\":15}}]},\"10\":{\"type\":\"branch\",\"line\":116,\"loc\":{\"start\":{\"line\":116,\"column\":9},\"end\":{\"line\":118,\"column\":9}},\"locations\":[{\"start\":{\"line\":116,\"column\":9},\"end\":{\"line\":118,\"column\":9}}]},\"11\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":51},\"end\":{\"line\":127,\"column\":7}},\"locations\":[{\"start\":{\"line\":121,\"column\":51},\"end\":{\"line\":127,\"column\":7}}]},\"12\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":39},\"end\":{\"line\":124,\"column\":15}},\"locations\":[{\"start\":{\"line\":122,\"column\":39},\"end\":{\"line\":124,\"column\":15}}]},\"13\":{\"type\":\"branch\",\"line\":124,\"loc\":{\"start\":{\"line\":124,\"column\":9},\"end\":{\"line\":126,\"column\":9}},\"locations\":[{\"start\":{\"line\":124,\"column\":9},\"end\":{\"line\":126,\"column\":9}}]},\"14\":{\"type\":\"branch\",\"line\":130,\"loc\":{\"start\":{\"line\":130,\"column\":6},\"end\":{\"line\":134,\"column\":5}},\"locations\":[{\"start\":{\"line\":130,\"column\":6},\"end\":{\"line\":134,\"column\":5}}]},\"15\":{\"type\":\"branch\",\"line\":141,\"loc\":{\"start\":{\"line\":141,\"column\":10},\"end\":{\"line\":157,\"column\":3}},\"locations\":[{\"start\":{\"line\":141,\"column\":10},\"end\":{\"line\":157,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":146,\"loc\":{\"start\":{\"line\":146,\"column\":25},\"end\":{\"line\":148,\"column\":5}},\"locations\":[{\"start\":{\"line\":146,\"column\":25},\"end\":{\"line\":148,\"column\":5}}]},\"17\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":38},\"end\":{\"line\":154,\"column\":6}},\"locations\":[{\"start\":{\"line\":150,\"column\":38},\"end\":{\"line\":154,\"column\":6}}]},\"18\":{\"type\":\"branch\",\"line\":151,\"loc\":{\"start\":{\"line\":151,\"column\":25},\"end\":{\"line\":151,\"column\":68}},\"locations\":[{\"start\":{\"line\":151,\"column\":25},\"end\":{\"line\":151,\"column\":68}}]},\"19\":{\"type\":\"branch\",\"line\":159,\"loc\":{\"start\":{\"line\":159,\"column\":10},\"end\":{\"line\":164,\"column\":3}},\"locations\":[{\"start\":{\"line\":159,\"column\":10},\"end\":{\"line\":164,\"column\":3}}]},\"20\":{\"type\":\"branch\",\"line\":161,\"loc\":{\"start\":{\"line\":161,\"column\":65},\"end\":{\"line\":163,\"column\":5}},\"locations\":[{\"start\":{\"line\":161,\"column\":65},\"end\":{\"line\":163,\"column\":5}}]},\"21\":{\"type\":\"branch\",\"line\":161,\"loc\":{\"start\":{\"line\":161,\"column\":35},\"end\":{\"line\":161,\"column\":62}},\"locations\":[{\"start\":{\"line\":161,\"column\":35},\"end\":{\"line\":161,\"column\":62}}]},\"22\":{\"type\":\"branch\",\"line\":166,\"loc\":{\"start\":{\"line\":166,\"column\":10},\"end\":{\"line\":169,\"column\":3}},\"locations\":[{\"start\":{\"line\":166,\"column\":10},\"end\":{\"line\":169,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":171,\"loc\":{\"start\":{\"line\":171,\"column\":2},\"end\":{\"line\":228,\"column\":3}},\"locations\":[{\"start\":{\"line\":171,\"column\":2},\"end\":{\"line\":228,\"column\":3}}]},\"24\":{\"type\":\"branch\",\"line\":175,\"loc\":{\"start\":{\"line\":175,\"column\":54},\"end\":{\"line\":177,\"column\":5}},\"locations\":[{\"start\":{\"line\":175,\"column\":54},\"end\":{\"line\":177,\"column\":5}}]},\"25\":{\"type\":\"branch\",\"line\":179,\"loc\":{\"start\":{\"line\":179,\"column\":25},\"end\":{\"line\":182,\"column\":5}},\"locations\":[{\"start\":{\"line\":179,\"column\":25},\"end\":{\"line\":182,\"column\":5}}]},\"26\":{\"type\":\"branch\",\"line\":202,\"loc\":{\"start\":{\"line\":202,\"column\":24},\"end\":{\"line\":204,\"column\":5}},\"locations\":[{\"start\":{\"line\":202,\"column\":24},\"end\":{\"line\":204,\"column\":5}}]},\"27\":{\"type\":\"branch\",\"line\":206,\"loc\":{\"start\":{\"line\":206,\"column\":30},\"end\":{\"line\":215,\"column\":11}},\"locations\":[{\"start\":{\"line\":206,\"column\":30},\"end\":{\"line\":215,\"column\":11}}]},\"28\":{\"type\":\"branch\",\"line\":212,\"loc\":{\"start\":{\"line\":212,\"column\":7},\"end\":{\"line\":214,\"column\":7}},\"locations\":[{\"start\":{\"line\":212,\"column\":7},\"end\":{\"line\":214,\"column\":7}}]},\"29\":{\"type\":\"branch\",\"line\":215,\"loc\":{\"start\":{\"line\":215,\"column\":5},\"end\":{\"line\":221,\"column\":5}},\"locations\":[{\"start\":{\"line\":215,\"column\":5},\"end\":{\"line\":221,\"column\":5}}]},\"30\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":29},\"end\":{\"line\":223,\"column\":69}},\"locations\":[{\"start\":{\"line\":223,\"column\":29},\"end\":{\"line\":223,\"column\":69}}]},\"31\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":71},\"end\":{\"line\":225,\"column\":5}},\"locations\":[{\"start\":{\"line\":223,\"column\":71},\"end\":{\"line\":225,\"column\":5}}]},\"32\":{\"type\":\"branch\",\"line\":173,\"loc\":{\"start\":{\"line\":173,\"column\":52},\"end\":{\"line\":173,\"column\":79}},\"locations\":[{\"start\":{\"line\":173,\"column\":52},\"end\":{\"line\":173,\"column\":79}}]},\"33\":{\"type\":\"branch\",\"line\":230,\"loc\":{\"start\":{\"line\":230,\"column\":2},\"end\":{\"line\":236,\"column\":3}},\"locations\":[{\"start\":{\"line\":230,\"column\":2},\"end\":{\"line\":236,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":238,\"loc\":{\"start\":{\"line\":238,\"column\":2},\"end\":{\"line\":265,\"column\":3}},\"locations\":[{\"start\":{\"line\":238,\"column\":2},\"end\":{\"line\":265,\"column\":3}}]},\"35\":{\"type\":\"branch\",\"line\":242,\"loc\":{\"start\":{\"line\":242,\"column\":34},\"end\":{\"line\":244,\"column\":5}},\"locations\":[{\"start\":{\"line\":242,\"column\":34},\"end\":{\"line\":244,\"column\":5}}]},\"36\":{\"type\":\"branch\",\"line\":246,\"loc\":{\"start\":{\"line\":246,\"column\":34},\"end\":{\"line\":248,\"column\":5}},\"locations\":[{\"start\":{\"line\":246,\"column\":34},\"end\":{\"line\":248,\"column\":5}}]},\"37\":{\"type\":\"branch\",\"line\":249,\"loc\":{\"start\":{\"line\":249,\"column\":-1},\"end\":{\"line\":258,\"column\":31}},\"locations\":[{\"start\":{\"line\":249,\"column\":-1},\"end\":{\"line\":258,\"column\":31}}]},\"38\":{\"type\":\"branch\",\"line\":258,\"loc\":{\"start\":{\"line\":258,\"column\":31},\"end\":{\"line\":262,\"column\":5}},\"locations\":[{\"start\":{\"line\":258,\"column\":31},\"end\":{\"line\":262,\"column\":5}}]},\"39\":{\"type\":\"branch\",\"line\":263,\"loc\":{\"start\":{\"line\":263,\"column\":-1},\"end\":{\"line\":265,\"column\":3}},\"locations\":[{\"start\":{\"line\":263,\"column\":-1},\"end\":{\"line\":265,\"column\":3}}]},\"40\":{\"type\":\"branch\",\"line\":267,\"loc\":{\"start\":{\"line\":267,\"column\":2},\"end\":{\"line\":272,\"column\":3}},\"locations\":[{\"start\":{\"line\":267,\"column\":2},\"end\":{\"line\":272,\"column\":3}}]},\"41\":{\"type\":\"branch\",\"line\":274,\"loc\":{\"start\":{\"line\":274,\"column\":2},\"end\":{\"line\":286,\"column\":3}},\"locations\":[{\"start\":{\"line\":274,\"column\":2},\"end\":{\"line\":286,\"column\":3}}]},\"42\":{\"type\":\"branch\",\"line\":278,\"loc\":{\"start\":{\"line\":278,\"column\":25},\"end\":{\"line\":281,\"column\":5}},\"locations\":[{\"start\":{\"line\":278,\"column\":25},\"end\":{\"line\":281,\"column\":5}}]},\"43\":{\"type\":\"branch\",\"line\":276,\"loc\":{\"start\":{\"line\":276,\"column\":77},\"end\":{\"line\":276,\"column\":103}},\"locations\":[{\"start\":{\"line\":276,\"column\":77},\"end\":{\"line\":276,\"column\":103}}]},\"44\":{\"type\":\"branch\",\"line\":288,\"loc\":{\"start\":{\"line\":288,\"column\":2},\"end\":{\"line\":291,\"column\":3}},\"locations\":[{\"start\":{\"line\":288,\"column\":2},\"end\":{\"line\":291,\"column\":3}}]},\"45\":{\"type\":\"branch\",\"line\":293,\"loc\":{\"start\":{\"line\":293,\"column\":2},\"end\":{\"line\":353,\"column\":3}},\"locations\":[{\"start\":{\"line\":293,\"column\":2},\"end\":{\"line\":353,\"column\":3}}]},\"46\":{\"type\":\"branch\",\"line\":296,\"loc\":{\"start\":{\"line\":296,\"column\":25},\"end\":{\"line\":298,\"column\":11}},\"locations\":[{\"start\":{\"line\":296,\"column\":25},\"end\":{\"line\":298,\"column\":11}}]},\"47\":{\"type\":\"branch\",\"line\":298,\"loc\":{\"start\":{\"line\":298,\"column\":5},\"end\":{\"line\":350,\"column\":5}},\"locations\":[{\"start\":{\"line\":298,\"column\":5},\"end\":{\"line\":350,\"column\":5}}]},\"48\":{\"type\":\"branch\",\"line\":300,\"loc\":{\"start\":{\"line\":300,\"column\":8},\"end\":{\"line\":310,\"column\":9}},\"locations\":[{\"start\":{\"line\":300,\"column\":8},\"end\":{\"line\":310,\"column\":9}}]},\"49\":{\"type\":\"branch\",\"line\":305,\"loc\":{\"start\":{\"line\":305,\"column\":63},\"end\":{\"line\":305,\"column\":69}},\"locations\":[{\"start\":{\"line\":305,\"column\":63},\"end\":{\"line\":305,\"column\":69}}]},\"50\":{\"type\":\"branch\",\"line\":311,\"loc\":{\"start\":{\"line\":311,\"column\":8},\"end\":{\"line\":325,\"column\":9}},\"locations\":[{\"start\":{\"line\":311,\"column\":8},\"end\":{\"line\":325,\"column\":9}}]},\"51\":{\"type\":\"branch\",\"line\":326,\"loc\":{\"start\":{\"line\":326,\"column\":8},\"end\":{\"line\":339,\"column\":9}},\"locations\":[{\"start\":{\"line\":326,\"column\":8},\"end\":{\"line\":339,\"column\":9}}]},\"52\":{\"type\":\"branch\",\"line\":331,\"loc\":{\"start\":{\"line\":331,\"column\":63},\"end\":{\"line\":331,\"column\":69}},\"locations\":[{\"start\":{\"line\":331,\"column\":63},\"end\":{\"line\":331,\"column\":69}}]},\"53\":{\"type\":\"branch\",\"line\":340,\"loc\":{\"start\":{\"line\":340,\"column\":8},\"end\":{\"line\":341,\"column\":60}},\"locations\":[{\"start\":{\"line\":340,\"column\":8},\"end\":{\"line\":341,\"column\":60}}]},\"54\":{\"type\":\"branch\",\"line\":347,\"loc\":{\"start\":{\"line\":347,\"column\":25},\"end\":{\"line\":349,\"column\":7}},\"locations\":[{\"start\":{\"line\":347,\"column\":25},\"end\":{\"line\":349,\"column\":7}}]},\"55\":{\"type\":\"branch\",\"line\":355,\"loc\":{\"start\":{\"line\":355,\"column\":10},\"end\":{\"line\":363,\"column\":3}},\"locations\":[{\"start\":{\"line\":355,\"column\":10},\"end\":{\"line\":363,\"column\":3}}]},\"56\":{\"type\":\"branch\",\"line\":356,\"loc\":{\"start\":{\"line\":356,\"column\":31},\"end\":{\"line\":362,\"column\":5}},\"locations\":[{\"start\":{\"line\":356,\"column\":31},\"end\":{\"line\":362,\"column\":5}}]},\"57\":{\"type\":\"branch\",\"line\":358,\"loc\":{\"start\":{\"line\":358,\"column\":13},\"end\":{\"line\":358,\"column\":54}},\"locations\":[{\"start\":{\"line\":358,\"column\":13},\"end\":{\"line\":358,\"column\":54}}]},\"58\":{\"type\":\"branch\",\"line\":365,\"loc\":{\"start\":{\"line\":365,\"column\":2},\"end\":{\"line\":373,\"column\":3}},\"locations\":[{\"start\":{\"line\":365,\"column\":2},\"end\":{\"line\":373,\"column\":3}}]},\"59\":{\"type\":\"branch\",\"line\":366,\"loc\":{\"start\":{\"line\":366,\"column\":39},\"end\":{\"line\":368,\"column\":5}},\"locations\":[{\"start\":{\"line\":366,\"column\":39},\"end\":{\"line\":368,\"column\":5}}]},\"60\":{\"type\":\"branch\",\"line\":369,\"loc\":{\"start\":{\"line\":369,\"column\":-1},\"end\":{\"line\":373,\"column\":3}},\"locations\":[{\"start\":{\"line\":369,\"column\":-1},\"end\":{\"line\":373,\"column\":3}}]},\"61\":{\"type\":\"branch\",\"line\":375,\"loc\":{\"start\":{\"line\":375,\"column\":2},\"end\":{\"line\":427,\"column\":3}},\"locations\":[{\"start\":{\"line\":375,\"column\":2},\"end\":{\"line\":427,\"column\":3}}]},\"62\":{\"type\":\"branch\",\"line\":410,\"loc\":{\"start\":{\"line\":410,\"column\":46},\"end\":{\"line\":414,\"column\":11}},\"locations\":[{\"start\":{\"line\":410,\"column\":46},\"end\":{\"line\":414,\"column\":11}}]},\"63\":{\"type\":\"branch\",\"line\":416,\"loc\":{\"start\":{\"line\":416,\"column\":52},\"end\":{\"line\":416,\"column\":76}},\"locations\":[{\"start\":{\"line\":416,\"column\":52},\"end\":{\"line\":416,\"column\":76}}]},\"64\":{\"type\":\"branch\",\"line\":390,\"loc\":{\"start\":{\"line\":390,\"column\":22},\"end\":{\"line\":402,\"column\":5}},\"locations\":[{\"start\":{\"line\":390,\"column\":22},\"end\":{\"line\":402,\"column\":5}}]},\"65\":{\"type\":\"branch\",\"line\":391,\"loc\":{\"start\":{\"line\":391,\"column\":35},\"end\":{\"line\":401,\"column\":7}},\"locations\":[{\"start\":{\"line\":391,\"column\":35},\"end\":{\"line\":401,\"column\":7}}]},\"66\":{\"type\":\"branch\",\"line\":406,\"loc\":{\"start\":{\"line\":406,\"column\":45},\"end\":{\"line\":406,\"column\":84}},\"locations\":[{\"start\":{\"line\":406,\"column\":45},\"end\":{\"line\":406,\"column\":84}}]},\"67\":{\"type\":\"branch\",\"line\":429,\"loc\":{\"start\":{\"line\":429,\"column\":2},\"end\":{\"line\":439,\"column\":3}},\"locations\":[{\"start\":{\"line\":429,\"column\":2},\"end\":{\"line\":439,\"column\":3}}]},\"68\":{\"type\":\"branch\",\"line\":433,\"loc\":{\"start\":{\"line\":433,\"column\":51},\"end\":{\"line\":438,\"column\":5}},\"locations\":[{\"start\":{\"line\":433,\"column\":51},\"end\":{\"line\":438,\"column\":5}}]},\"69\":{\"type\":\"branch\",\"line\":434,\"loc\":{\"start\":{\"line\":434,\"column\":42},\"end\":{\"line\":437,\"column\":7}},\"locations\":[{\"start\":{\"line\":434,\"column\":42},\"end\":{\"line\":437,\"column\":7}}]},\"70\":{\"type\":\"branch\",\"line\":473,\"loc\":{\"start\":{\"line\":473,\"column\":10},\"end\":{\"line\":492,\"column\":3}},\"locations\":[{\"start\":{\"line\":473,\"column\":10},\"end\":{\"line\":492,\"column\":3}}]},\"71\":{\"type\":\"branch\",\"line\":477,\"loc\":{\"start\":{\"line\":477,\"column\":-1},\"end\":{\"line\":492,\"column\":3}},\"locations\":[{\"start\":{\"line\":477,\"column\":-1},\"end\":{\"line\":492,\"column\":3}}]},\"72\":{\"type\":\"branch\",\"line\":496,\"loc\":{\"start\":{\"line\":496,\"column\":10},\"end\":{\"line\":507,\"column\":3}},\"locations\":[{\"start\":{\"line\":496,\"column\":10},\"end\":{\"line\":507,\"column\":3}}]},\"73\":{\"type\":\"branch\",\"line\":500,\"loc\":{\"start\":{\"line\":500,\"column\":-1},\"end\":{\"line\":506,\"column\":5}},\"locations\":[{\"start\":{\"line\":500,\"column\":-1},\"end\":{\"line\":506,\"column\":5}}]}},\"b\":{\"0\":[33],\"1\":[2],\"2\":[0],\"3\":[2],\"4\":[33],\"5\":[32],\"6\":[12],\"7\":[19],\"8\":[594],\"9\":[172],\"10\":[422],\"11\":[251],\"12\":[59],\"13\":[192],\"14\":[0],\"15\":[130],\"16\":[75],\"17\":[138],\"18\":[140],\"19\":[317],\"20\":[115],\"21\":[1641],\"22\":[28],\"23\":[102],\"24\":[0],\"25\":[59],\"26\":[0],\"27\":[3],\"28\":[0],\"29\":[99],\"30\":[99],\"31\":[99],\"32\":[208],\"33\":[8],\"34\":[17],\"35\":[0],\"36\":[1],\"37\":[16],\"38\":[2],\"39\":[16],\"40\":[11],\"41\":[4],\"42\":[2],\"43\":[4],\"44\":[7],\"45\":[188],\"46\":[97],\"47\":[91],\"48\":[63],\"49\":[0],\"50\":[0],\"51\":[28],\"52\":[0],\"53\":[0],\"54\":[63],\"55\":[19],\"56\":[29],\"57\":[63],\"58\":[13],\"59\":[5],\"60\":[8],\"61\":[4],\"62\":[0],\"63\":[0],\"64\":[8],\"65\":[0],\"66\":[9],\"67\":[1],\"68\":[2],\"69\":[1],\"70\":[102],\"71\":[0],\"72\":[32],\"73\":[0]},\"fnMap\":{\"0\":{\"name\":\"Migration\",\"decl\":{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"loc\":{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"line\":53},\"1\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":78,\"column\":9},\"end\":{\"line\":102,\"column\":3}},\"loc\":{\"start\":{\"line\":78,\"column\":9},\"end\":{\"line\":102,\"column\":3}},\"line\":78},\"2\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":139,\"column\":3}},\"loc\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":139,\"column\":3}},\"line\":104},\"3\":{\"name\":\"prepareModelAttributesAndIndexes\",\"decl\":{\"start\":{\"line\":141,\"column\":10},\"end\":{\"line\":157,\"column\":3}},\"loc\":{\"start\":{\"line\":141,\"column\":10},\"end\":{\"line\":157,\"column\":3}},\"line\":141},\"4\":{\"name\":\"addModelToSequelizeCache\",\"decl\":{\"start\":{\"line\":159,\"column\":10},\"end\":{\"line\":164,\"column\":3}},\"loc\":{\"start\":{\"line\":159,\"column\":10},\"end\":{\"line\":164,\"column\":3}},\"line\":159},\"5\":{\"name\":\"createSequelizeModel\",\"decl\":{\"start\":{\"line\":166,\"column\":10},\"end\":{\"line\":169,\"column\":3}},\"loc\":{\"start\":{\"line\":166,\"column\":10},\"end\":{\"line\":169,\"column\":3}},\"line\":166},\"6\":{\"name\":\"createTable\",\"decl\":{\"start\":{\"line\":171,\"column\":2},\"end\":{\"line\":228,\"column\":3}},\"loc\":{\"start\":{\"line\":171,\"column\":2},\"end\":{\"line\":228,\"column\":3}},\"line\":171},\"7\":{\"name\":\"dropTable\",\"decl\":{\"start\":{\"line\":230,\"column\":2},\"end\":{\"line\":236,\"column\":3}},\"loc\":{\"start\":{\"line\":230,\"column\":2},\"end\":{\"line\":236,\"column\":3}},\"line\":230},\"8\":{\"name\":\"createColumn\",\"decl\":{\"start\":{\"line\":238,\"column\":2},\"end\":{\"line\":265,\"column\":3}},\"loc\":{\"start\":{\"line\":238,\"column\":2},\"end\":{\"line\":265,\"column\":3}},\"line\":238},\"9\":{\"name\":\"dropColumn\",\"decl\":{\"start\":{\"line\":267,\"column\":2},\"end\":{\"line\":272,\"column\":3}},\"loc\":{\"start\":{\"line\":267,\"column\":2},\"end\":{\"line\":272,\"column\":3}},\"line\":267},\"10\":{\"name\":\"createIndex\",\"decl\":{\"start\":{\"line\":274,\"column\":2},\"end\":{\"line\":286,\"column\":3}},\"loc\":{\"start\":{\"line\":274,\"column\":2},\"end\":{\"line\":286,\"column\":3}},\"line\":274},\"11\":{\"name\":\"dropIndex\",\"decl\":{\"start\":{\"line\":288,\"column\":2},\"end\":{\"line\":291,\"column\":3}},\"loc\":{\"start\":{\"line\":288,\"column\":2},\"end\":{\"line\":291,\"column\":3}},\"line\":288},\"12\":{\"name\":\"createRelation\",\"decl\":{\"start\":{\"line\":293,\"column\":2},\"end\":{\"line\":353,\"column\":3}},\"loc\":{\"start\":{\"line\":293,\"column\":2},\"end\":{\"line\":353,\"column\":3}},\"line\":293},\"13\":{\"name\":\"addRelationComments\",\"decl\":{\"start\":{\"line\":355,\"column\":10},\"end\":{\"line\":363,\"column\":3}},\"loc\":{\"start\":{\"line\":355,\"column\":10},\"end\":{\"line\":363,\"column\":3}},\"line\":355},\"14\":{\"name\":\"dropRelation\",\"decl\":{\"start\":{\"line\":365,\"column\":2},\"end\":{\"line\":373,\"column\":3}},\"loc\":{\"start\":{\"line\":365,\"column\":2},\"end\":{\"line\":373,\"column\":3}},\"line\":365},\"15\":{\"name\":\"createEnum\",\"decl\":{\"start\":{\"line\":375,\"column\":2},\"end\":{\"line\":427,\"column\":3}},\"loc\":{\"start\":{\"line\":375,\"column\":2},\"end\":{\"line\":427,\"column\":3}},\"line\":375},\"16\":{\"name\":\"dropEnum\",\"decl\":{\"start\":{\"line\":429,\"column\":2},\"end\":{\"line\":439,\"column\":3}},\"loc\":{\"start\":{\"line\":429,\"column\":2},\"end\":{\"line\":439,\"column\":3}},\"line\":429},\"17\":{\"name\":\"createFullText\",\"decl\":{\"start\":{\"line\":441,\"column\":2},\"end\":{\"line\":455,\"column\":3}},\"loc\":{\"start\":{\"line\":441,\"column\":2},\"end\":{\"line\":455,\"column\":3}},\"line\":441},\"18\":{\"name\":\"dropFullText\",\"decl\":{\"start\":{\"line\":457,\"column\":2},\"end\":{\"line\":467,\"column\":3}},\"loc\":{\"start\":{\"line\":457,\"column\":2},\"end\":{\"line\":467,\"column\":3}},\"line\":457},\"19\":{\"name\":\"beforeHandleCockroachIndex\",\"decl\":{\"start\":{\"line\":473,\"column\":10},\"end\":{\"line\":492,\"column\":3}},\"loc\":{\"start\":{\"line\":473,\"column\":10},\"end\":{\"line\":492,\"column\":3}},\"line\":473},\"20\":{\"name\":\"afterHandleCockroachIndex\",\"decl\":{\"start\":{\"line\":496,\"column\":10},\"end\":{\"line\":507,\"column\":3}},\"loc\":{\"start\":{\"line\":496,\"column\":10},\"end\":{\"line\":507,\"column\":3}},\"line\":496}},\"f\":{\"0\":33,\"1\":33,\"2\":32,\"3\":130,\"4\":317,\"5\":28,\"6\":102,\"7\":8,\"8\":17,\"9\":11,\"10\":4,\"11\":7,\"12\":188,\"13\":19,\"14\":13,\"15\":4,\"16\":1,\"17\":0,\"18\":0,\"19\":102,\"20\":32}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/sequelizeUtil.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/sequelizeUtil.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":33}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":96}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":11}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":12}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":17}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":30}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":12}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":8}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":22}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":28}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":42}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":161}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":61}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":69}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":63}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":62}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":47}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":55}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":150}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":88}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":61}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":36}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":3}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":22}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":64}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":29}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":3}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":46}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":45}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":36}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":19}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":5}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":99}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":5}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":47}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":21}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":21}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":3}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":26}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":102}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":34}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":14}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":3}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":83}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":95}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":54}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":69}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":42}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":31}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":65}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":3}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":31}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":65}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":3}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":28}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":1}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":33}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":45}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":17}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":28}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":11}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":50}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":72}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":54}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":91}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":0}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":61}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":105}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":1}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":79}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":36}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":72}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":52}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":54}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":46}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":56}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":99}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":53}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":51}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":44}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":39}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":2}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":68}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":37}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":20}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":10}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":63}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":21}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":64}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":5}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":31}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":3}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":247,\"19\":247,\"20\":247,\"21\":247,\"22\":1,\"23\":31,\"24\":31,\"25\":31,\"26\":1,\"27\":1,\"28\":1,\"29\":189,\"30\":189,\"31\":0,\"32\":0,\"33\":189,\"34\":0,\"35\":0,\"36\":0,\"37\":189,\"38\":189,\"39\":260,\"40\":260,\"41\":260,\"42\":260,\"43\":0,\"44\":189,\"45\":189,\"46\":189,\"47\":189,\"48\":189,\"49\":0,\"50\":0,\"51\":189,\"52\":189,\"53\":1,\"54\":959,\"55\":959,\"56\":958,\"57\":958,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":958,\"73\":958,\"74\":958,\"75\":958,\"76\":958,\"77\":958,\"78\":958,\"79\":958,\"80\":958,\"81\":958,\"82\":958,\"83\":958,\"84\":958,\"85\":958,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":959,\"102\":959,\"103\":579,\"104\":959,\"105\":380,\"106\":380,\"107\":0,\"108\":0,\"109\":380,\"110\":380,\"111\":959},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"locations\":[{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":22,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"locations\":[{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":26,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"locations\":[{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":53,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":35},\"end\":{\"line\":31,\"column\":58}},\"locations\":[{\"start\":{\"line\":31,\"column\":35},\"end\":{\"line\":31,\"column\":58}}]},\"4\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":60},\"end\":{\"line\":33,\"column\":3}},\"locations\":[{\"start\":{\"line\":31,\"column\":60},\"end\":{\"line\":33,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":21},\"end\":{\"line\":37,\"column\":3}},\"locations\":[{\"start\":{\"line\":34,\"column\":21},\"end\":{\"line\":37,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":20},\"end\":{\"line\":51,\"column\":3}},\"locations\":[{\"start\":{\"line\":49,\"column\":20},\"end\":{\"line\":51,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":34},\"end\":{\"line\":45,\"column\":3}},\"locations\":[{\"start\":{\"line\":39,\"column\":34},\"end\":{\"line\":45,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":-1},\"end\":{\"line\":45,\"column\":3}},\"locations\":[{\"start\":{\"line\":44,\"column\":-1},\"end\":{\"line\":45,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":71,\"column\":1}},\"locations\":[{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":71,\"column\":1}}]},\"10\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":33},\"end\":{\"line\":58,\"column\":3}},\"locations\":[{\"start\":{\"line\":56,\"column\":33},\"end\":{\"line\":58,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":-1},\"end\":{\"line\":71,\"column\":1}},\"locations\":[{\"start\":{\"line\":59,\"column\":-1},\"end\":{\"line\":71,\"column\":1}}]},\"12\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":86,\"column\":1}},\"locations\":[{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":86,\"column\":1}}]},\"13\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":54},\"end\":{\"line\":79,\"column\":66}},\"locations\":[{\"start\":{\"line\":79,\"column\":54},\"end\":{\"line\":79,\"column\":66}}]},\"14\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":67},\"end\":{\"line\":79,\"column\":71}},\"locations\":[{\"start\":{\"line\":79,\"column\":67},\"end\":{\"line\":79,\"column\":71}}]},\"15\":{\"type\":\"branch\",\"line\":80,\"loc\":{\"start\":{\"line\":80,\"column\":38},\"end\":{\"line\":80,\"column\":48}},\"locations\":[{\"start\":{\"line\":80,\"column\":38},\"end\":{\"line\":80,\"column\":48}}]},\"16\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":52},\"end\":{\"line\":81,\"column\":70}},\"locations\":[{\"start\":{\"line\":81,\"column\":52},\"end\":{\"line\":81,\"column\":70}}]},\"17\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":78},\"end\":{\"line\":85,\"column\":82}},\"locations\":[{\"start\":{\"line\":85,\"column\":78},\"end\":{\"line\":85,\"column\":82}}]},\"18\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":83},\"end\":{\"line\":85,\"column\":95}},\"locations\":[{\"start\":{\"line\":85,\"column\":83},\"end\":{\"line\":85,\"column\":95}}]},\"19\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":25},\"end\":{\"line\":93,\"column\":45}},\"locations\":[{\"start\":{\"line\":93,\"column\":25},\"end\":{\"line\":93,\"column\":45}}]},\"20\":{\"type\":\"branch\",\"line\":95,\"loc\":{\"start\":{\"line\":95,\"column\":26},\"end\":{\"line\":95,\"column\":50}},\"locations\":[{\"start\":{\"line\":95,\"column\":26},\"end\":{\"line\":95,\"column\":50}}]},\"21\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":26},\"end\":{\"line\":97,\"column\":50}},\"locations\":[{\"start\":{\"line\":97,\"column\":26},\"end\":{\"line\":97,\"column\":50}}]},\"22\":{\"type\":\"branch\",\"line\":98,\"loc\":{\"start\":{\"line\":98,\"column\":26},\"end\":{\"line\":98,\"column\":43}},\"locations\":[{\"start\":{\"line\":98,\"column\":26},\"end\":{\"line\":98,\"column\":43}}]},\"23\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":112,\"column\":1}},\"locations\":[{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":112,\"column\":1}}]},\"24\":{\"type\":\"branch\",\"line\":103,\"loc\":{\"start\":{\"line\":103,\"column\":36},\"end\":{\"line\":105,\"column\":9}},\"locations\":[{\"start\":{\"line\":103,\"column\":36},\"end\":{\"line\":105,\"column\":9}}]},\"25\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":3},\"end\":{\"line\":111,\"column\":3}},\"locations\":[{\"start\":{\"line\":105,\"column\":3},\"end\":{\"line\":111,\"column\":3}}]},\"26\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":20},\"end\":{\"line\":109,\"column\":5}},\"locations\":[{\"start\":{\"line\":107,\"column\":20},\"end\":{\"line\":109,\"column\":5}}]}},\"b\":{\"0\":[247],\"1\":[31],\"2\":[189],\"3\":[0],\"4\":[0],\"5\":[0],\"6\":[0],\"7\":[260],\"8\":[0],\"9\":[959],\"10\":[958],\"11\":[1],\"12\":[958],\"13\":[857],\"14\":[101],\"15\":[0],\"16\":[0],\"17\":[909],\"18\":[49],\"19\":[60],\"20\":[258],\"21\":[2],\"22\":[60],\"23\":[959],\"24\":[579],\"25\":[380],\"26\":[0]},\"fnMap\":{\"0\":{\"name\":\"modelToTableName\",\"decl\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"loc\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"line\":19},\"1\":{\"name\":\"formatColumnName\",\"decl\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"loc\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"line\":24},\"2\":{\"name\":\"generateIndexName\",\"decl\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"loc\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"line\":30},\"3\":{\"name\":\"formatReferences\",\"decl\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":71,\"column\":1}},\"loc\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":71,\"column\":1}},\"line\":55},\"4\":{\"name\":\"formatAttributes\",\"decl\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":86,\"column\":1}},\"loc\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":86,\"column\":1}},\"line\":73},\"5\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":90,\"column\":27},\"end\":{\"line\":90,\"column\":71}},\"loc\":{\"start\":{\"line\":90,\"column\":27},\"end\":{\"line\":90,\"column\":71}},\"line\":90},\"6\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":91,\"column\":28},\"end\":{\"line\":91,\"column\":51}},\"loc\":{\"start\":{\"line\":91,\"column\":28},\"end\":{\"line\":91,\"column\":51}},\"line\":91},\"7\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":92,\"column\":27},\"end\":{\"line\":92,\"column\":53}},\"loc\":{\"start\":{\"line\":92,\"column\":27},\"end\":{\"line\":92,\"column\":53}},\"line\":92},\"8\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":93,\"column\":25},\"end\":{\"line\":93,\"column\":45}},\"loc\":{\"start\":{\"line\":93,\"column\":25},\"end\":{\"line\":93,\"column\":45}},\"line\":93},\"9\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":94,\"column\":28},\"end\":{\"line\":94,\"column\":55}},\"loc\":{\"start\":{\"line\":94,\"column\":28},\"end\":{\"line\":94,\"column\":55}},\"line\":94},\"10\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":95,\"column\":26},\"end\":{\"line\":95,\"column\":50}},\"loc\":{\"start\":{\"line\":95,\"column\":26},\"end\":{\"line\":95,\"column\":50}},\"line\":95},\"11\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":96,\"column\":25},\"end\":{\"line\":96,\"column\":52}},\"loc\":{\"start\":{\"line\":96,\"column\":25},\"end\":{\"line\":96,\"column\":52}},\"line\":96},\"12\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":97,\"column\":26},\"end\":{\"line\":97,\"column\":50}},\"loc\":{\"start\":{\"line\":97,\"column\":26},\"end\":{\"line\":97,\"column\":50}},\"line\":97},\"13\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":98,\"column\":26},\"end\":{\"line\":98,\"column\":43}},\"loc\":{\"start\":{\"line\":98,\"column\":26},\"end\":{\"line\":98,\"column\":43}},\"line\":98},\"14\":{\"name\":\"Object.<anonymous>.sequelizeToPostgresTypeMap\",\"decl\":{\"start\":{\"line\":99,\"column\":25},\"end\":{\"line\":99,\"column\":38}},\"loc\":{\"start\":{\"line\":99,\"column\":25},\"end\":{\"line\":99,\"column\":38}},\"line\":99},\"15\":{\"name\":\"formatDataType\",\"decl\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":112,\"column\":1}},\"loc\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":112,\"column\":1}},\"line\":102}},\"f\":{\"0\":247,\"1\":31,\"2\":189,\"3\":959,\"4\":958,\"5\":0,\"6\":0,\"7\":0,\"8\":60,\"9\":0,\"10\":258,\"11\":0,\"12\":2,\"13\":60,\"14\":0,\"15\":959}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/sync-helper.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/db/sync-helper.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":103}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":12}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":17}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":8}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":30}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":18}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":14}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":13}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":12}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":8}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":28}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":106}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":34}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":86}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":62}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":43}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":21}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":14}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":53}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":2}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":3}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":55}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":5}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":41}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":61}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":28}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":28}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":22}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":28}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":34}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":18}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":16}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":22}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":28}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":2}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":39}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":22}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":28}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":69}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":78}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":41}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":2}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":70}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":59}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":21}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":34}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":21}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":1}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":68}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":57}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":1}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":79}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":80}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":68}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":77}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":65}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":1}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":49}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":45}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":19}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":55}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":17}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":18}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":21}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":10}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":63}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":95}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":115}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":82}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":90}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":65}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":1}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":107}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":74}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":1}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":97}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":75}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":1}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":79}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":86}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":94}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":1}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":39}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":43}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":20}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":21}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":20}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":9}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":28}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":53}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":3}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":39}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":71}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":58}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":45}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":1}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":106}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":94}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":65}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":10}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":9}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":57}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":0}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":16}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":94}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":25}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":117}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":45}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":5}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":34}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":30}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":5}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":4}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":1}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":0}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":112}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":25}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":11}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":43}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":38}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":9}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":36}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":10}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":68}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":37}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":36}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":40}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":6}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":5}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":43}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":30}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":5}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":4}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":1}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":0}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":71}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":10}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":58}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":25}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":7}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":17}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":15}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":18}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":5}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":25}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":30}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":18}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":8}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":18}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":11}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":33}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":25}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":35}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":28}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":49}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":47}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":24}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":15}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":59}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":49}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":58}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":11}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":49}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":49}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":11}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":22}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":26}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":27}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":16}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":4}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":22}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":1}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":0}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":76}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":64}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":64}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":10}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":5}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":5}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":69}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":30}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":82}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":12}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":30}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":59}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":6}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":4}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":1}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":0}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":82}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":49}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":32}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":1}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":0}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":74}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":64}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":49}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":1}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":0}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":69}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":66}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":1}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":0}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":60}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":51}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":1}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":0}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":37}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":29}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":88}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":76}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":10}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":33}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":16}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":41}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":16}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":44}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":57}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":1}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":0}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":69}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":10}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":62}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":25}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":7}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":22}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":65}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":30}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":16}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":6}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":24}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":0}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":58}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":45}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":1}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":0}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":64}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":75}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":1}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":0}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":18}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":35}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":0}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":3}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":68}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":54}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":4}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":111}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":10}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":7}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":9}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":17}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":15}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":31}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":19}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":7}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":68}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":4}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":55}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":61}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":19}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":17}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":11}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":8}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":4}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":2}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":0}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":85}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":97}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":78}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":81}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":18}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":55}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":20}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":7}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":3}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":1}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":0}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":98}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":99}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":1}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":0}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":113}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":30}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":48}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":50}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":59}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":0}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":47}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":61}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":5}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":5}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":1}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":0}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":103}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":68}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":21}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":25}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":35}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":21}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":21}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":35}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":30}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":44}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":21}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":35}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":1}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":0}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":79}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":30}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":40}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":13}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":5}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":24}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":24}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":5}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":38}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":33}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":43}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":25}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":5}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":1}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":0}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":33}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":33}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":51}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":26}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":32}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":9}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":26}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":23}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":81}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":81}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":9}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":12}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":5}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":20}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":88}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":51}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":9}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":12}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":5}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":21}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":88}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":45}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":9}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":12}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":5}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":12}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":56}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":3}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":1}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":0}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":41}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":38}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":17}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":28}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":18}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":36}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":0}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":43}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":41}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":41}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":31}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":0}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":44}},\"404\":{\"start\":{\"line\":405,\"column\":0},\"end\":{\"line\":405,\"column\":33}},\"405\":{\"start\":{\"line\":406,\"column\":0},\"end\":{\"line\":406,\"column\":0}},\"406\":{\"start\":{\"line\":407,\"column\":0},\"end\":{\"line\":407,\"column\":64}},\"407\":{\"start\":{\"line\":408,\"column\":0},\"end\":{\"line\":408,\"column\":0}},\"408\":{\"start\":{\"line\":409,\"column\":0},\"end\":{\"line\":409,\"column\":100}},\"409\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":410,\"column\":0}},\"410\":{\"start\":{\"line\":411,\"column\":0},\"end\":{\"line\":411,\"column\":45}},\"411\":{\"start\":{\"line\":412,\"column\":0},\"end\":{\"line\":412,\"column\":23}},\"412\":{\"start\":{\"line\":413,\"column\":0},\"end\":{\"line\":413,\"column\":85}},\"413\":{\"start\":{\"line\":414,\"column\":0},\"end\":{\"line\":414,\"column\":5}},\"414\":{\"start\":{\"line\":415,\"column\":0},\"end\":{\"line\":415,\"column\":26}},\"415\":{\"start\":{\"line\":416,\"column\":0},\"end\":{\"line\":416,\"column\":48}},\"416\":{\"start\":{\"line\":417,\"column\":0},\"end\":{\"line\":417,\"column\":5}},\"417\":{\"start\":{\"line\":418,\"column\":0},\"end\":{\"line\":418,\"column\":5}},\"418\":{\"start\":{\"line\":419,\"column\":0},\"end\":{\"line\":419,\"column\":0}},\"419\":{\"start\":{\"line\":420,\"column\":0},\"end\":{\"line\":420,\"column\":81}},\"420\":{\"start\":{\"line\":421,\"column\":0},\"end\":{\"line\":421,\"column\":0}},\"421\":{\"start\":{\"line\":422,\"column\":0},\"end\":{\"line\":422,\"column\":102}},\"422\":{\"start\":{\"line\":423,\"column\":0},\"end\":{\"line\":423,\"column\":15}},\"423\":{\"start\":{\"line\":424,\"column\":0},\"end\":{\"line\":424,\"column\":31}},\"424\":{\"start\":{\"line\":425,\"column\":0},\"end\":{\"line\":425,\"column\":0}},\"425\":{\"start\":{\"line\":426,\"column\":0},\"end\":{\"line\":426,\"column\":35}},\"426\":{\"start\":{\"line\":427,\"column\":0},\"end\":{\"line\":427,\"column\":1}},\"427\":{\"start\":{\"line\":428,\"column\":0},\"end\":{\"line\":428,\"column\":0}},\"428\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":429,\"column\":41}},\"429\":{\"start\":{\"line\":430,\"column\":0},\"end\":{\"line\":430,\"column\":42}},\"430\":{\"start\":{\"line\":431,\"column\":0},\"end\":{\"line\":431,\"column\":17}},\"431\":{\"start\":{\"line\":432,\"column\":0},\"end\":{\"line\":432,\"column\":19}},\"432\":{\"start\":{\"line\":433,\"column\":0},\"end\":{\"line\":433,\"column\":13}},\"433\":{\"start\":{\"line\":434,\"column\":0},\"end\":{\"line\":434,\"column\":36}},\"434\":{\"start\":{\"line\":435,\"column\":0},\"end\":{\"line\":435,\"column\":30}},\"435\":{\"start\":{\"line\":436,\"column\":0},\"end\":{\"line\":436,\"column\":77}},\"436\":{\"start\":{\"line\":437,\"column\":0},\"end\":{\"line\":437,\"column\":48}},\"437\":{\"start\":{\"line\":438,\"column\":0},\"end\":{\"line\":438,\"column\":64}},\"438\":{\"start\":{\"line\":439,\"column\":0},\"end\":{\"line\":439,\"column\":33}},\"439\":{\"start\":{\"line\":440,\"column\":0},\"end\":{\"line\":440,\"column\":0}},\"440\":{\"start\":{\"line\":441,\"column\":0},\"end\":{\"line\":441,\"column\":132}},\"441\":{\"start\":{\"line\":442,\"column\":0},\"end\":{\"line\":442,\"column\":29}},\"442\":{\"start\":{\"line\":443,\"column\":0},\"end\":{\"line\":443,\"column\":5}},\"443\":{\"start\":{\"line\":444,\"column\":0},\"end\":{\"line\":444,\"column\":0}},\"444\":{\"start\":{\"line\":445,\"column\":0},\"end\":{\"line\":445,\"column\":22}},\"445\":{\"start\":{\"line\":446,\"column\":0},\"end\":{\"line\":446,\"column\":1}},\"446\":{\"start\":{\"line\":447,\"column\":0},\"end\":{\"line\":447,\"column\":0}},\"447\":{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":448,\"column\":120}},\"448\":{\"start\":{\"line\":449,\"column\":0},\"end\":{\"line\":449,\"column\":32}},\"449\":{\"start\":{\"line\":450,\"column\":0},\"end\":{\"line\":450,\"column\":0}},\"450\":{\"start\":{\"line\":451,\"column\":0},\"end\":{\"line\":451,\"column\":29}},\"451\":{\"start\":{\"line\":452,\"column\":0},\"end\":{\"line\":452,\"column\":31}},\"452\":{\"start\":{\"line\":453,\"column\":0},\"end\":{\"line\":453,\"column\":5}},\"453\":{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":454,\"column\":0}},\"454\":{\"start\":{\"line\":455,\"column\":0},\"end\":{\"line\":455,\"column\":37}},\"455\":{\"start\":{\"line\":456,\"column\":0},\"end\":{\"line\":456,\"column\":25}},\"456\":{\"start\":{\"line\":457,\"column\":0},\"end\":{\"line\":457,\"column\":5}},\"457\":{\"start\":{\"line\":458,\"column\":0},\"end\":{\"line\":458,\"column\":0}},\"458\":{\"start\":{\"line\":459,\"column\":0},\"end\":{\"line\":459,\"column\":33}},\"459\":{\"start\":{\"line\":460,\"column\":0},\"end\":{\"line\":460,\"column\":7}},\"460\":{\"start\":{\"line\":461,\"column\":0},\"end\":{\"line\":461,\"column\":37}},\"461\":{\"start\":{\"line\":462,\"column\":0},\"end\":{\"line\":462,\"column\":19}},\"462\":{\"start\":{\"line\":463,\"column\":0},\"end\":{\"line\":463,\"column\":55}},\"463\":{\"start\":{\"line\":464,\"column\":0},\"end\":{\"line\":464,\"column\":89}},\"464\":{\"start\":{\"line\":465,\"column\":0},\"end\":{\"line\":465,\"column\":18}},\"465\":{\"start\":{\"line\":466,\"column\":0},\"end\":{\"line\":466,\"column\":12}},\"466\":{\"start\":{\"line\":467,\"column\":0},\"end\":{\"line\":467,\"column\":18}},\"467\":{\"start\":{\"line\":468,\"column\":0},\"end\":{\"line\":468,\"column\":5}},\"468\":{\"start\":{\"line\":469,\"column\":0},\"end\":{\"line\":469,\"column\":3}},\"469\":{\"start\":{\"line\":470,\"column\":0},\"end\":{\"line\":470,\"column\":0}},\"470\":{\"start\":{\"line\":471,\"column\":0},\"end\":{\"line\":471,\"column\":39}},\"471\":{\"start\":{\"line\":472,\"column\":0},\"end\":{\"line\":472,\"column\":73}},\"472\":{\"start\":{\"line\":473,\"column\":0},\"end\":{\"line\":473,\"column\":44}},\"473\":{\"start\":{\"line\":474,\"column\":0},\"end\":{\"line\":474,\"column\":0}},\"474\":{\"start\":{\"line\":475,\"column\":0},\"end\":{\"line\":475,\"column\":55}},\"475\":{\"start\":{\"line\":476,\"column\":0},\"end\":{\"line\":476,\"column\":1}},\"476\":{\"start\":{\"line\":477,\"column\":0},\"end\":{\"line\":477,\"column\":0}},\"477\":{\"start\":{\"line\":478,\"column\":0},\"end\":{\"line\":478,\"column\":101}},\"478\":{\"start\":{\"line\":479,\"column\":0},\"end\":{\"line\":479,\"column\":65}},\"479\":{\"start\":{\"line\":480,\"column\":0},\"end\":{\"line\":480,\"column\":20}},\"480\":{\"start\":{\"line\":481,\"column\":0},\"end\":{\"line\":481,\"column\":115}},\"481\":{\"start\":{\"line\":482,\"column\":0},\"end\":{\"line\":482,\"column\":6}},\"482\":{\"start\":{\"line\":483,\"column\":0},\"end\":{\"line\":483,\"column\":3}},\"483\":{\"start\":{\"line\":484,\"column\":0},\"end\":{\"line\":484,\"column\":23}},\"484\":{\"start\":{\"line\":485,\"column\":0},\"end\":{\"line\":485,\"column\":71}},\"485\":{\"start\":{\"line\":486,\"column\":0},\"end\":{\"line\":486,\"column\":108}},\"486\":{\"start\":{\"line\":487,\"column\":0},\"end\":{\"line\":487,\"column\":5}},\"487\":{\"start\":{\"line\":488,\"column\":0},\"end\":{\"line\":488,\"column\":5}},\"488\":{\"start\":{\"line\":489,\"column\":0},\"end\":{\"line\":489,\"column\":1}},\"489\":{\"start\":{\"line\":490,\"column\":0},\"end\":{\"line\":490,\"column\":0}},\"490\":{\"start\":{\"line\":491,\"column\":0},\"end\":{\"line\":491,\"column\":103}},\"491\":{\"start\":{\"line\":492,\"column\":0},\"end\":{\"line\":492,\"column\":41}},\"492\":{\"start\":{\"line\":493,\"column\":0},\"end\":{\"line\":493,\"column\":5}},\"493\":{\"start\":{\"line\":494,\"column\":0},\"end\":{\"line\":494,\"column\":14}},\"494\":{\"start\":{\"line\":495,\"column\":0},\"end\":{\"line\":495,\"column\":28}},\"495\":{\"start\":{\"line\":496,\"column\":0},\"end\":{\"line\":496,\"column\":12}},\"496\":{\"start\":{\"line\":497,\"column\":0},\"end\":{\"line\":497,\"column\":52}},\"497\":{\"start\":{\"line\":498,\"column\":0},\"end\":{\"line\":498,\"column\":59}},\"498\":{\"start\":{\"line\":499,\"column\":0},\"end\":{\"line\":499,\"column\":60}},\"499\":{\"start\":{\"line\":500,\"column\":0},\"end\":{\"line\":500,\"column\":57}},\"500\":{\"start\":{\"line\":501,\"column\":0},\"end\":{\"line\":501,\"column\":66}},\"501\":{\"start\":{\"line\":502,\"column\":0},\"end\":{\"line\":502,\"column\":60}},\"502\":{\"start\":{\"line\":503,\"column\":0},\"end\":{\"line\":503,\"column\":57}},\"503\":{\"start\":{\"line\":504,\"column\":0},\"end\":{\"line\":504,\"column\":48}},\"504\":{\"start\":{\"line\":505,\"column\":0},\"end\":{\"line\":505,\"column\":40}},\"505\":{\"start\":{\"line\":506,\"column\":0},\"end\":{\"line\":506,\"column\":6}},\"506\":{\"start\":{\"line\":507,\"column\":0},\"end\":{\"line\":507,\"column\":5}},\"507\":{\"start\":{\"line\":508,\"column\":0},\"end\":{\"line\":508,\"column\":37}},\"508\":{\"start\":{\"line\":509,\"column\":0},\"end\":{\"line\":509,\"column\":30}},\"509\":{\"start\":{\"line\":510,\"column\":0},\"end\":{\"line\":510,\"column\":5}},\"510\":{\"start\":{\"line\":511,\"column\":0},\"end\":{\"line\":511,\"column\":36}},\"511\":{\"start\":{\"line\":512,\"column\":0},\"end\":{\"line\":512,\"column\":47}},\"512\":{\"start\":{\"line\":513,\"column\":0},\"end\":{\"line\":513,\"column\":1}},\"513\":{\"start\":{\"line\":514,\"column\":0},\"end\":{\"line\":514,\"column\":0}},\"514\":{\"start\":{\"line\":515,\"column\":0},\"end\":{\"line\":515,\"column\":110}},\"515\":{\"start\":{\"line\":516,\"column\":0},\"end\":{\"line\":516,\"column\":50}},\"516\":{\"start\":{\"line\":517,\"column\":0},\"end\":{\"line\":517,\"column\":0}},\"517\":{\"start\":{\"line\":518,\"column\":0},\"end\":{\"line\":518,\"column\":41}},\"518\":{\"start\":{\"line\":519,\"column\":0},\"end\":{\"line\":519,\"column\":5}},\"519\":{\"start\":{\"line\":520,\"column\":0},\"end\":{\"line\":520,\"column\":70}},\"520\":{\"start\":{\"line\":521,\"column\":0},\"end\":{\"line\":521,\"column\":22}},\"521\":{\"start\":{\"line\":522,\"column\":0},\"end\":{\"line\":522,\"column\":56}},\"522\":{\"start\":{\"line\":523,\"column\":0},\"end\":{\"line\":523,\"column\":71}},\"523\":{\"start\":{\"line\":524,\"column\":0},\"end\":{\"line\":524,\"column\":33}},\"524\":{\"start\":{\"line\":525,\"column\":0},\"end\":{\"line\":525,\"column\":42}},\"525\":{\"start\":{\"line\":526,\"column\":0},\"end\":{\"line\":526,\"column\":6}},\"526\":{\"start\":{\"line\":527,\"column\":0},\"end\":{\"line\":527,\"column\":5}},\"527\":{\"start\":{\"line\":528,\"column\":0},\"end\":{\"line\":528,\"column\":37}},\"528\":{\"start\":{\"line\":529,\"column\":0},\"end\":{\"line\":529,\"column\":30}},\"529\":{\"start\":{\"line\":530,\"column\":0},\"end\":{\"line\":530,\"column\":5}},\"530\":{\"start\":{\"line\":531,\"column\":0},\"end\":{\"line\":531,\"column\":50}},\"531\":{\"start\":{\"line\":532,\"column\":0},\"end\":{\"line\":532,\"column\":0}},\"532\":{\"start\":{\"line\":533,\"column\":0},\"end\":{\"line\":533,\"column\":48}},\"533\":{\"start\":{\"line\":534,\"column\":0},\"end\":{\"line\":534,\"column\":38}},\"534\":{\"start\":{\"line\":535,\"column\":0},\"end\":{\"line\":535,\"column\":61}},\"535\":{\"start\":{\"line\":536,\"column\":0},\"end\":{\"line\":536,\"column\":12}},\"536\":{\"start\":{\"line\":537,\"column\":0},\"end\":{\"line\":537,\"column\":62}},\"537\":{\"start\":{\"line\":538,\"column\":0},\"end\":{\"line\":538,\"column\":5}},\"538\":{\"start\":{\"line\":539,\"column\":0},\"end\":{\"line\":539,\"column\":5}},\"539\":{\"start\":{\"line\":540,\"column\":0},\"end\":{\"line\":540,\"column\":0}},\"540\":{\"start\":{\"line\":541,\"column\":0},\"end\":{\"line\":541,\"column\":21}},\"541\":{\"start\":{\"line\":542,\"column\":0},\"end\":{\"line\":542,\"column\":1}},\"542\":{\"start\":{\"line\":543,\"column\":0},\"end\":{\"line\":543,\"column\":0}},\"543\":{\"start\":{\"line\":544,\"column\":0},\"end\":{\"line\":544,\"column\":8}},\"544\":{\"start\":{\"line\":545,\"column\":0},\"end\":{\"line\":545,\"column\":79}},\"545\":{\"start\":{\"line\":546,\"column\":0},\"end\":{\"line\":546,\"column\":56}},\"546\":{\"start\":{\"line\":547,\"column\":0},\"end\":{\"line\":547,\"column\":119}},\"547\":{\"start\":{\"line\":548,\"column\":0},\"end\":{\"line\":548,\"column\":76}},\"548\":{\"start\":{\"line\":549,\"column\":0},\"end\":{\"line\":549,\"column\":49}},\"549\":{\"start\":{\"line\":550,\"column\":0},\"end\":{\"line\":550,\"column\":0}},\"550\":{\"start\":{\"line\":551,\"column\":0},\"end\":{\"line\":551,\"column\":12}},\"551\":{\"start\":{\"line\":552,\"column\":0},\"end\":{\"line\":552,\"column\":105}},\"552\":{\"start\":{\"line\":553,\"column\":0},\"end\":{\"line\":553,\"column\":90}},\"553\":{\"start\":{\"line\":554,\"column\":0},\"end\":{\"line\":554,\"column\":0}},\"554\":{\"start\":{\"line\":555,\"column\":0},\"end\":{\"line\":555,\"column\":115}},\"555\":{\"start\":{\"line\":556,\"column\":0},\"end\":{\"line\":556,\"column\":84}},\"556\":{\"start\":{\"line\":557,\"column\":0},\"end\":{\"line\":557,\"column\":20}},\"557\":{\"start\":{\"line\":558,\"column\":0},\"end\":{\"line\":558,\"column\":11}},\"558\":{\"start\":{\"line\":559,\"column\":0},\"end\":{\"line\":559,\"column\":3}},\"559\":{\"start\":{\"line\":560,\"column\":0},\"end\":{\"line\":560,\"column\":63}},\"560\":{\"start\":{\"line\":561,\"column\":0},\"end\":{\"line\":561,\"column\":56}},\"561\":{\"start\":{\"line\":562,\"column\":0},\"end\":{\"line\":562,\"column\":59}},\"562\":{\"start\":{\"line\":563,\"column\":0},\"end\":{\"line\":563,\"column\":15}},\"563\":{\"start\":{\"line\":564,\"column\":0},\"end\":{\"line\":564,\"column\":7}},\"564\":{\"start\":{\"line\":565,\"column\":0},\"end\":{\"line\":565,\"column\":7}},\"565\":{\"start\":{\"line\":566,\"column\":0},\"end\":{\"line\":566,\"column\":55}},\"566\":{\"start\":{\"line\":567,\"column\":0},\"end\":{\"line\":567,\"column\":10}},\"567\":{\"start\":{\"line\":568,\"column\":0},\"end\":{\"line\":568,\"column\":24}},\"568\":{\"start\":{\"line\":569,\"column\":0},\"end\":{\"line\":569,\"column\":39}},\"569\":{\"start\":{\"line\":570,\"column\":0},\"end\":{\"line\":570,\"column\":91}},\"570\":{\"start\":{\"line\":571,\"column\":0},\"end\":{\"line\":571,\"column\":27}},\"571\":{\"start\":{\"line\":572,\"column\":0},\"end\":{\"line\":572,\"column\":48}},\"572\":{\"start\":{\"line\":573,\"column\":0},\"end\":{\"line\":573,\"column\":3}},\"573\":{\"start\":{\"line\":574,\"column\":0},\"end\":{\"line\":574,\"column\":27}},\"574\":{\"start\":{\"line\":575,\"column\":0},\"end\":{\"line\":575,\"column\":48}},\"575\":{\"start\":{\"line\":576,\"column\":0},\"end\":{\"line\":576,\"column\":3}},\"576\":{\"start\":{\"line\":577,\"column\":0},\"end\":{\"line\":577,\"column\":30}},\"577\":{\"start\":{\"line\":578,\"column\":0},\"end\":{\"line\":578,\"column\":27}},\"578\":{\"start\":{\"line\":579,\"column\":0},\"end\":{\"line\":579,\"column\":3}},\"579\":{\"start\":{\"line\":580,\"column\":0},\"end\":{\"line\":580,\"column\":13}},\"580\":{\"start\":{\"line\":581,\"column\":0},\"end\":{\"line\":581,\"column\":11}},\"581\":{\"start\":{\"line\":582,\"column\":0},\"end\":{\"line\":582,\"column\":30}},\"582\":{\"start\":{\"line\":583,\"column\":0},\"end\":{\"line\":583,\"column\":62}},\"583\":{\"start\":{\"line\":584,\"column\":0},\"end\":{\"line\":584,\"column\":8}},\"584\":{\"start\":{\"line\":585,\"column\":0},\"end\":{\"line\":585,\"column\":2}},\"585\":{\"start\":{\"line\":586,\"column\":0},\"end\":{\"line\":586,\"column\":28}},\"586\":{\"start\":{\"line\":587,\"column\":0},\"end\":{\"line\":587,\"column\":1}},\"587\":{\"start\":{\"line\":588,\"column\":0},\"end\":{\"line\":588,\"column\":0}},\"588\":{\"start\":{\"line\":589,\"column\":0},\"end\":{\"line\":589,\"column\":10}},\"589\":{\"start\":{\"line\":590,\"column\":0},\"end\":{\"line\":590,\"column\":82}},\"590\":{\"start\":{\"line\":591,\"column\":0},\"end\":{\"line\":591,\"column\":59}},\"591\":{\"start\":{\"line\":592,\"column\":0},\"end\":{\"line\":592,\"column\":110}},\"592\":{\"start\":{\"line\":593,\"column\":0},\"end\":{\"line\":593,\"column\":65}},\"593\":{\"start\":{\"line\":594,\"column\":0},\"end\":{\"line\":594,\"column\":78}},\"594\":{\"start\":{\"line\":595,\"column\":0},\"end\":{\"line\":595,\"column\":3}},\"595\":{\"start\":{\"line\":596,\"column\":0},\"end\":{\"line\":596,\"column\":10}},\"596\":{\"start\":{\"line\":597,\"column\":0},\"end\":{\"line\":597,\"column\":97}},\"597\":{\"start\":{\"line\":598,\"column\":0},\"end\":{\"line\":598,\"column\":38}},\"598\":{\"start\":{\"line\":599,\"column\":0},\"end\":{\"line\":599,\"column\":67}},\"599\":{\"start\":{\"line\":600,\"column\":0},\"end\":{\"line\":600,\"column\":42}},\"600\":{\"start\":{\"line\":601,\"column\":0},\"end\":{\"line\":601,\"column\":4}},\"601\":{\"start\":{\"line\":602,\"column\":0},\"end\":{\"line\":602,\"column\":2}},\"602\":{\"start\":{\"line\":603,\"column\":0},\"end\":{\"line\":603,\"column\":0}},\"603\":{\"start\":{\"line\":604,\"column\":0},\"end\":{\"line\":604,\"column\":10}},\"604\":{\"start\":{\"line\":605,\"column\":0},\"end\":{\"line\":605,\"column\":97}},\"605\":{\"start\":{\"line\":606,\"column\":0},\"end\":{\"line\":606,\"column\":99}},\"606\":{\"start\":{\"line\":607,\"column\":0},\"end\":{\"line\":607,\"column\":0}},\"607\":{\"start\":{\"line\":608,\"column\":0},\"end\":{\"line\":608,\"column\":115}},\"608\":{\"start\":{\"line\":609,\"column\":0},\"end\":{\"line\":609,\"column\":102}},\"609\":{\"start\":{\"line\":610,\"column\":0},\"end\":{\"line\":610,\"column\":0}},\"610\":{\"start\":{\"line\":611,\"column\":0},\"end\":{\"line\":611,\"column\":17}},\"611\":{\"start\":{\"line\":612,\"column\":0},\"end\":{\"line\":612,\"column\":29}},\"612\":{\"start\":{\"line\":613,\"column\":0},\"end\":{\"line\":613,\"column\":0}},\"613\":{\"start\":{\"line\":614,\"column\":0},\"end\":{\"line\":614,\"column\":81}},\"614\":{\"start\":{\"line\":615,\"column\":0},\"end\":{\"line\":615,\"column\":48}},\"615\":{\"start\":{\"line\":616,\"column\":0},\"end\":{\"line\":616,\"column\":42}},\"616\":{\"start\":{\"line\":617,\"column\":0},\"end\":{\"line\":617,\"column\":17}},\"617\":{\"start\":{\"line\":618,\"column\":0},\"end\":{\"line\":618,\"column\":16}},\"618\":{\"start\":{\"line\":619,\"column\":0},\"end\":{\"line\":619,\"column\":19}},\"619\":{\"start\":{\"line\":620,\"column\":0},\"end\":{\"line\":620,\"column\":22}},\"620\":{\"start\":{\"line\":621,\"column\":0},\"end\":{\"line\":621,\"column\":14}},\"621\":{\"start\":{\"line\":622,\"column\":0},\"end\":{\"line\":622,\"column\":88}},\"622\":{\"start\":{\"line\":623,\"column\":0},\"end\":{\"line\":623,\"column\":58}},\"623\":{\"start\":{\"line\":624,\"column\":0},\"end\":{\"line\":624,\"column\":36}},\"624\":{\"start\":{\"line\":625,\"column\":0},\"end\":{\"line\":625,\"column\":82}},\"625\":{\"start\":{\"line\":626,\"column\":0},\"end\":{\"line\":626,\"column\":2}},\"626\":{\"start\":{\"line\":627,\"column\":0},\"end\":{\"line\":627,\"column\":0}},\"627\":{\"start\":{\"line\":628,\"column\":0},\"end\":{\"line\":628,\"column\":83}},\"628\":{\"start\":{\"line\":629,\"column\":0},\"end\":{\"line\":629,\"column\":64}},\"629\":{\"start\":{\"line\":630,\"column\":0},\"end\":{\"line\":630,\"column\":0}},\"630\":{\"start\":{\"line\":631,\"column\":0},\"end\":{\"line\":631,\"column\":101}},\"631\":{\"start\":{\"line\":632,\"column\":0},\"end\":{\"line\":632,\"column\":80}},\"632\":{\"start\":{\"line\":633,\"column\":0},\"end\":{\"line\":633,\"column\":59}},\"633\":{\"start\":{\"line\":634,\"column\":0},\"end\":{\"line\":634,\"column\":0}},\"634\":{\"start\":{\"line\":635,\"column\":0},\"end\":{\"line\":635,\"column\":82}},\"635\":{\"start\":{\"line\":636,\"column\":0},\"end\":{\"line\":636,\"column\":116}},\"636\":{\"start\":{\"line\":637,\"column\":0},\"end\":{\"line\":637,\"column\":0}},\"637\":{\"start\":{\"line\":638,\"column\":0},\"end\":{\"line\":638,\"column\":104}},\"638\":{\"start\":{\"line\":639,\"column\":0},\"end\":{\"line\":639,\"column\":81}},\"639\":{\"start\":{\"line\":640,\"column\":0},\"end\":{\"line\":640,\"column\":58}},\"640\":{\"start\":{\"line\":641,\"column\":0},\"end\":{\"line\":641,\"column\":85}},\"641\":{\"start\":{\"line\":642,\"column\":0},\"end\":{\"line\":642,\"column\":57}},\"642\":{\"start\":{\"line\":643,\"column\":0},\"end\":{\"line\":643,\"column\":10}},\"643\":{\"start\":{\"line\":644,\"column\":0},\"end\":{\"line\":644,\"column\":76}},\"644\":{\"start\":{\"line\":645,\"column\":0},\"end\":{\"line\":645,\"column\":51}},\"645\":{\"start\":{\"line\":646,\"column\":0},\"end\":{\"line\":646,\"column\":12}},\"646\":{\"start\":{\"line\":647,\"column\":0},\"end\":{\"line\":647,\"column\":49}},\"647\":{\"start\":{\"line\":648,\"column\":0},\"end\":{\"line\":648,\"column\":58}},\"648\":{\"start\":{\"line\":649,\"column\":0},\"end\":{\"line\":649,\"column\":25}},\"649\":{\"start\":{\"line\":650,\"column\":0},\"end\":{\"line\":650,\"column\":4}},\"650\":{\"start\":{\"line\":651,\"column\":0},\"end\":{\"line\":651,\"column\":2}},\"651\":{\"start\":{\"line\":652,\"column\":0},\"end\":{\"line\":652,\"column\":0}},\"652\":{\"start\":{\"line\":653,\"column\":0},\"end\":{\"line\":653,\"column\":83}},\"653\":{\"start\":{\"line\":654,\"column\":0},\"end\":{\"line\":654,\"column\":88}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":845,\"34\":845,\"35\":845,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":34,\"58\":34,\"59\":1,\"60\":91,\"61\":91,\"62\":91,\"63\":91,\"64\":91,\"65\":91,\"66\":1,\"67\":126,\"68\":126,\"69\":126,\"70\":1,\"71\":1,\"72\":1,\"73\":165,\"74\":165,\"75\":165,\"76\":1,\"77\":0,\"78\":0,\"79\":0,\"80\":1,\"81\":253,\"82\":253,\"83\":253,\"84\":1,\"85\":237,\"86\":237,\"87\":237,\"88\":237,\"89\":237,\"90\":237,\"91\":237,\"92\":237,\"93\":237,\"94\":1,\"95\":28,\"96\":28,\"97\":28,\"98\":1,\"99\":29,\"100\":29,\"101\":29,\"102\":1,\"103\":180,\"104\":180,\"105\":180,\"106\":1,\"107\":0,\"108\":0,\"109\":0,\"110\":1,\"111\":1,\"112\":63,\"113\":63,\"114\":63,\"115\":1,\"116\":160,\"117\":160,\"118\":160,\"119\":160,\"120\":160,\"121\":160,\"122\":160,\"123\":58,\"124\":58,\"125\":160,\"126\":160,\"127\":160,\"128\":160,\"129\":160,\"130\":1,\"131\":1,\"132\":1,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":1,\"140\":1,\"141\":1,\"142\":25,\"143\":25,\"144\":25,\"145\":25,\"146\":25,\"147\":25,\"148\":25,\"149\":25,\"150\":25,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":1,\"156\":1,\"157\":1,\"158\":1,\"159\":1,\"160\":1,\"161\":1,\"162\":1,\"163\":1,\"164\":1,\"165\":1,\"166\":1,\"167\":1,\"168\":1,\"169\":1,\"170\":1,\"171\":1,\"172\":3,\"173\":3,\"174\":3,\"175\":3,\"176\":3,\"177\":3,\"178\":3,\"179\":3,\"180\":3,\"181\":3,\"182\":3,\"183\":3,\"184\":3,\"185\":3,\"186\":3,\"187\":3,\"188\":3,\"189\":3,\"190\":3,\"191\":3,\"192\":3,\"193\":3,\"194\":3,\"195\":3,\"196\":3,\"197\":3,\"198\":3,\"199\":3,\"200\":3,\"201\":3,\"202\":3,\"203\":3,\"204\":3,\"205\":3,\"206\":3,\"207\":3,\"208\":3,\"209\":1,\"210\":5,\"211\":5,\"212\":5,\"213\":5,\"214\":5,\"215\":5,\"216\":5,\"217\":5,\"218\":5,\"219\":5,\"220\":5,\"221\":5,\"222\":5,\"223\":5,\"224\":5,\"225\":1,\"226\":107,\"227\":107,\"228\":107,\"229\":107,\"230\":1,\"231\":107,\"232\":107,\"233\":107,\"234\":107,\"235\":1,\"236\":99,\"237\":99,\"238\":99,\"239\":1,\"240\":99,\"241\":99,\"242\":99,\"243\":1,\"244\":1,\"245\":1,\"246\":20,\"247\":20,\"248\":20,\"249\":20,\"250\":20,\"251\":20,\"252\":20,\"253\":20,\"254\":20,\"255\":20,\"256\":1,\"257\":20,\"258\":20,\"259\":20,\"260\":20,\"261\":20,\"262\":20,\"263\":20,\"264\":20,\"265\":20,\"266\":20,\"267\":20,\"268\":20,\"269\":1,\"270\":26,\"271\":26,\"272\":26,\"273\":1,\"274\":33,\"275\":33,\"276\":33,\"277\":1,\"278\":1,\"279\":1,\"280\":1,\"281\":1,\"282\":1,\"283\":1,\"284\":1,\"285\":1,\"286\":0,\"287\":0,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":1,\"305\":1,\"306\":61,\"307\":61,\"308\":61,\"309\":61,\"310\":61,\"311\":61,\"312\":61,\"313\":61,\"314\":61,\"315\":1,\"316\":269,\"317\":269,\"318\":269,\"319\":1,\"320\":102,\"321\":102,\"322\":189,\"323\":189,\"324\":189,\"325\":189,\"326\":189,\"327\":189,\"328\":189,\"329\":102,\"330\":102,\"331\":1,\"332\":76,\"333\":76,\"334\":76,\"335\":76,\"336\":76,\"337\":76,\"338\":76,\"339\":76,\"340\":76,\"341\":76,\"342\":76,\"343\":76,\"344\":76,\"345\":1,\"346\":61,\"347\":61,\"348\":71,\"349\":1,\"350\":1,\"351\":71,\"352\":0,\"353\":0,\"354\":70,\"355\":70,\"356\":70,\"357\":70,\"358\":61,\"359\":61,\"360\":1,\"361\":160,\"362\":160,\"363\":160,\"364\":160,\"365\":160,\"366\":160,\"367\":160,\"368\":160,\"369\":126,\"370\":126,\"371\":126,\"372\":126,\"373\":126,\"374\":160,\"375\":0,\"376\":0,\"377\":0,\"378\":0,\"379\":0,\"380\":160,\"381\":34,\"382\":34,\"383\":34,\"384\":34,\"385\":34,\"386\":160,\"387\":0,\"388\":160,\"389\":160,\"390\":1,\"391\":104,\"392\":104,\"393\":104,\"394\":104,\"395\":104,\"396\":104,\"397\":104,\"398\":104,\"399\":104,\"400\":104,\"401\":104,\"402\":104,\"403\":104,\"404\":942,\"405\":942,\"406\":942,\"407\":942,\"408\":942,\"409\":942,\"410\":942,\"411\":942,\"412\":178,\"413\":178,\"414\":942,\"415\":106,\"416\":106,\"417\":104,\"418\":104,\"419\":104,\"420\":104,\"421\":104,\"422\":104,\"423\":104,\"424\":104,\"425\":104,\"426\":104,\"427\":1,\"428\":103,\"429\":103,\"430\":103,\"431\":103,\"432\":103,\"433\":103,\"434\":103,\"435\":191,\"436\":191,\"437\":191,\"438\":191,\"439\":191,\"440\":191,\"441\":191,\"442\":103,\"443\":103,\"444\":103,\"445\":103,\"446\":1,\"447\":35,\"448\":35,\"449\":35,\"450\":35,\"451\":135,\"452\":35,\"453\":35,\"454\":35,\"455\":240,\"456\":35,\"457\":35,\"458\":35,\"459\":35,\"460\":35,\"461\":35,\"462\":29,\"463\":29,\"464\":29,\"465\":29,\"466\":0,\"467\":0,\"468\":29,\"469\":6,\"470\":6,\"471\":6,\"472\":6,\"473\":6,\"474\":35,\"475\":35,\"476\":1,\"477\":0,\"478\":0,\"479\":0,\"480\":0,\"481\":0,\"482\":0,\"483\":0,\"484\":0,\"485\":0,\"486\":0,\"487\":0,\"488\":0,\"489\":1,\"490\":1,\"491\":33,\"492\":33,\"493\":33,\"494\":33,\"495\":33,\"496\":33,\"497\":33,\"498\":33,\"499\":33,\"500\":33,\"501\":33,\"502\":33,\"503\":33,\"504\":33,\"505\":33,\"506\":33,\"507\":33,\"508\":33,\"509\":33,\"510\":33,\"511\":33,\"512\":33,\"513\":1,\"514\":1,\"515\":34,\"516\":34,\"517\":34,\"518\":34,\"519\":34,\"520\":34,\"521\":34,\"522\":34,\"523\":34,\"524\":34,\"525\":34,\"526\":34,\"527\":34,\"528\":34,\"529\":34,\"530\":34,\"531\":34,\"532\":34,\"533\":10,\"534\":4,\"535\":10,\"536\":6,\"537\":6,\"538\":34,\"539\":34,\"540\":34,\"541\":34,\"542\":1,\"543\":1,\"544\":1,\"545\":1,\"546\":1,\"547\":1,\"548\":1,\"549\":1,\"550\":1,\"551\":1,\"552\":1,\"553\":1,\"554\":92,\"555\":92,\"556\":92,\"557\":28,\"558\":28,\"559\":64,\"560\":64,\"561\":64,\"562\":64,\"563\":64,\"564\":64,\"565\":64,\"566\":64,\"567\":64,\"568\":64,\"569\":64,\"570\":64,\"571\":64,\"572\":64,\"573\":64,\"574\":64,\"575\":64,\"576\":92,\"577\":0,\"578\":0,\"579\":64,\"580\":64,\"581\":64,\"582\":64,\"583\":64,\"584\":64,\"585\":64,\"586\":64,\"587\":1,\"588\":1,\"589\":1,\"590\":1,\"591\":1,\"592\":4,\"593\":0,\"594\":0,\"595\":4,\"596\":4,\"597\":4,\"598\":4,\"599\":4,\"600\":4,\"601\":4,\"602\":1,\"603\":1,\"604\":1,\"605\":1,\"606\":1,\"607\":1,\"608\":1,\"609\":1,\"610\":1,\"611\":1,\"612\":1,\"613\":1,\"614\":1,\"615\":1,\"616\":0,\"617\":0,\"618\":0,\"619\":0,\"620\":0,\"621\":0,\"622\":0,\"623\":0,\"624\":0,\"625\":0,\"626\":1,\"627\":1,\"628\":1,\"629\":1,\"630\":1,\"631\":1,\"632\":1,\"633\":1,\"634\":1,\"635\":1,\"636\":1,\"637\":1,\"638\":1,\"639\":1,\"640\":1,\"641\":0,\"642\":0,\"643\":0,\"644\":0,\"645\":0,\"646\":0,\"647\":0,\"648\":0,\"649\":0,\"650\":0,\"651\":1,\"652\":1,\"653\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"locations\":[{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":36,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":19},\"end\":{\"line\":59,\"column\":2}},\"locations\":[{\"start\":{\"line\":57,\"column\":19},\"end\":{\"line\":59,\"column\":2}}]},\"2\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":66,\"column\":1}},\"locations\":[{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":66,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":9},\"end\":{\"line\":64,\"column\":33}},\"locations\":[{\"start\":{\"line\":64,\"column\":9},\"end\":{\"line\":64,\"column\":33}}]},\"4\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":70,\"column\":1}},\"locations\":[{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":70,\"column\":1}}]},\"5\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":27},\"end\":{\"line\":72,\"column\":78}},\"locations\":[{\"start\":{\"line\":72,\"column\":27},\"end\":{\"line\":72,\"column\":78}}]},\"6\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"locations\":[{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":76,\"column\":1}}]},\"7\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"locations\":[{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":84,\"column\":1}}]},\"8\":{\"type\":\"branch\",\"line\":83,\"loc\":{\"start\":{\"line\":83,\"column\":18},\"end\":{\"line\":83,\"column\":33}},\"locations\":[{\"start\":{\"line\":83,\"column\":18},\"end\":{\"line\":83,\"column\":33}}]},\"9\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"locations\":[{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":94,\"column\":1}}]},\"10\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":36},\"end\":{\"line\":92,\"column\":57}},\"locations\":[{\"start\":{\"line\":92,\"column\":36},\"end\":{\"line\":92,\"column\":57}}]},\"11\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":58},\"end\":{\"line\":92,\"column\":62}},\"locations\":[{\"start\":{\"line\":92,\"column\":58},\"end\":{\"line\":92,\"column\":62}}]},\"12\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"locations\":[{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":98,\"column\":1}}]},\"13\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":102,\"column\":1}},\"locations\":[{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":102,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":106,\"column\":1}},\"locations\":[{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":106,\"column\":1}}]},\"15\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":115,\"column\":1}},\"locations\":[{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":115,\"column\":1}}]},\"16\":{\"type\":\"branch\",\"line\":117,\"loc\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":130,\"column\":1}},\"locations\":[{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":130,\"column\":1}}]},\"17\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":27},\"end\":{\"line\":125,\"column\":3}},\"locations\":[{\"start\":{\"line\":123,\"column\":27},\"end\":{\"line\":125,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":127,\"loc\":{\"start\":{\"line\":127,\"column\":49},\"end\":{\"line\":127,\"column\":70}},\"locations\":[{\"start\":{\"line\":127,\"column\":49},\"end\":{\"line\":127,\"column\":70}}]},\"19\":{\"type\":\"branch\",\"line\":142,\"loc\":{\"start\":{\"line\":142,\"column\":7},\"end\":{\"line\":151,\"column\":1}},\"locations\":[{\"start\":{\"line\":142,\"column\":7},\"end\":{\"line\":151,\"column\":1}}]},\"20\":{\"type\":\"branch\",\"line\":153,\"loc\":{\"start\":{\"line\":153,\"column\":7},\"end\":{\"line\":171,\"column\":1}},\"locations\":[{\"start\":{\"line\":153,\"column\":7},\"end\":{\"line\":171,\"column\":1}}]},\"21\":{\"type\":\"branch\",\"line\":173,\"loc\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":209,\"column\":1}},\"locations\":[{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":209,\"column\":1}}]},\"22\":{\"type\":\"branch\",\"line\":211,\"loc\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":225,\"column\":1}},\"locations\":[{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":225,\"column\":1}}]},\"23\":{\"type\":\"branch\",\"line\":227,\"loc\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":230,\"column\":1}},\"locations\":[{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":230,\"column\":1}}]},\"24\":{\"type\":\"branch\",\"line\":232,\"loc\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":235,\"column\":1}},\"locations\":[{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":235,\"column\":1}}]},\"25\":{\"type\":\"branch\",\"line\":237,\"loc\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":239,\"column\":1}},\"locations\":[{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":239,\"column\":1}}]},\"26\":{\"type\":\"branch\",\"line\":241,\"loc\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":243,\"column\":1}},\"locations\":[{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":243,\"column\":1}}]},\"27\":{\"type\":\"branch\",\"line\":247,\"loc\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":256,\"column\":1}},\"locations\":[{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":256,\"column\":1}}]},\"28\":{\"type\":\"branch\",\"line\":258,\"loc\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"locations\":[{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":269,\"column\":1}}]},\"29\":{\"type\":\"branch\",\"line\":271,\"loc\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":273,\"column\":1}},\"locations\":[{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":273,\"column\":1}}]},\"30\":{\"type\":\"branch\",\"line\":275,\"loc\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":277,\"column\":1}},\"locations\":[{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":277,\"column\":1}}]},\"31\":{\"type\":\"branch\",\"line\":307,\"loc\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":315,\"column\":1}},\"locations\":[{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":315,\"column\":1}}]},\"32\":{\"type\":\"branch\",\"line\":308,\"loc\":{\"start\":{\"line\":308,\"column\":40},\"end\":{\"line\":308,\"column\":70}},\"locations\":[{\"start\":{\"line\":308,\"column\":40},\"end\":{\"line\":308,\"column\":70}}]},\"33\":{\"type\":\"branch\",\"line\":309,\"loc\":{\"start\":{\"line\":309,\"column\":35},\"end\":{\"line\":309,\"column\":77}},\"locations\":[{\"start\":{\"line\":309,\"column\":35},\"end\":{\"line\":309,\"column\":77}}]},\"34\":{\"type\":\"branch\",\"line\":317,\"loc\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":319,\"column\":1}},\"locations\":[{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":319,\"column\":1}}]},\"35\":{\"type\":\"branch\",\"line\":318,\"loc\":{\"start\":{\"line\":318,\"column\":57},\"end\":{\"line\":318,\"column\":63}},\"locations\":[{\"start\":{\"line\":318,\"column\":57},\"end\":{\"line\":318,\"column\":63}}]},\"36\":{\"type\":\"branch\",\"line\":321,\"loc\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":331,\"column\":1}},\"locations\":[{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":331,\"column\":1}}]},\"37\":{\"type\":\"branch\",\"line\":322,\"loc\":{\"start\":{\"line\":322,\"column\":18},\"end\":{\"line\":330,\"column\":3}},\"locations\":[{\"start\":{\"line\":322,\"column\":18},\"end\":{\"line\":330,\"column\":3}}]},\"38\":{\"type\":\"branch\",\"line\":333,\"loc\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":345,\"column\":1}},\"locations\":[{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":345,\"column\":1}}]},\"39\":{\"type\":\"branch\",\"line\":347,\"loc\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":360,\"column\":1}},\"locations\":[{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":360,\"column\":1}}]},\"40\":{\"type\":\"branch\",\"line\":348,\"loc\":{\"start\":{\"line\":348,\"column\":18},\"end\":{\"line\":359,\"column\":3}},\"locations\":[{\"start\":{\"line\":348,\"column\":18},\"end\":{\"line\":359,\"column\":3}}]},\"41\":{\"type\":\"branch\",\"line\":349,\"loc\":{\"start\":{\"line\":349,\"column\":39},\"end\":{\"line\":351,\"column\":5}},\"locations\":[{\"start\":{\"line\":349,\"column\":39},\"end\":{\"line\":351,\"column\":5}}]},\"42\":{\"type\":\"branch\",\"line\":352,\"loc\":{\"start\":{\"line\":352,\"column\":-1},\"end\":{\"line\":352,\"column\":23}},\"locations\":[{\"start\":{\"line\":352,\"column\":-1},\"end\":{\"line\":352,\"column\":23}}]},\"43\":{\"type\":\"branch\",\"line\":352,\"loc\":{\"start\":{\"line\":352,\"column\":23},\"end\":{\"line\":354,\"column\":5}},\"locations\":[{\"start\":{\"line\":352,\"column\":23},\"end\":{\"line\":354,\"column\":5}}]},\"44\":{\"type\":\"branch\",\"line\":355,\"loc\":{\"start\":{\"line\":355,\"column\":-1},\"end\":{\"line\":359,\"column\":3}},\"locations\":[{\"start\":{\"line\":355,\"column\":-1},\"end\":{\"line\":359,\"column\":3}}]},\"45\":{\"type\":\"branch\",\"line\":362,\"loc\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":390,\"column\":1}},\"locations\":[{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":390,\"column\":1}}]},\"46\":{\"type\":\"branch\",\"line\":369,\"loc\":{\"start\":{\"line\":369,\"column\":4},\"end\":{\"line\":374,\"column\":5}},\"locations\":[{\"start\":{\"line\":369,\"column\":4},\"end\":{\"line\":374,\"column\":5}}]},\"47\":{\"type\":\"branch\",\"line\":375,\"loc\":{\"start\":{\"line\":375,\"column\":4},\"end\":{\"line\":380,\"column\":5}},\"locations\":[{\"start\":{\"line\":375,\"column\":4},\"end\":{\"line\":380,\"column\":5}}]},\"48\":{\"type\":\"branch\",\"line\":381,\"loc\":{\"start\":{\"line\":381,\"column\":4},\"end\":{\"line\":386,\"column\":5}},\"locations\":[{\"start\":{\"line\":381,\"column\":4},\"end\":{\"line\":386,\"column\":5}}]},\"49\":{\"type\":\"branch\",\"line\":387,\"loc\":{\"start\":{\"line\":387,\"column\":4},\"end\":{\"line\":388,\"column\":56}},\"locations\":[{\"start\":{\"line\":387,\"column\":4},\"end\":{\"line\":388,\"column\":56}}]},\"50\":{\"type\":\"branch\",\"line\":392,\"loc\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":427,\"column\":1}},\"locations\":[{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":427,\"column\":1}}]},\"51\":{\"type\":\"branch\",\"line\":404,\"loc\":{\"start\":{\"line\":404,\"column\":34},\"end\":{\"line\":418,\"column\":3}},\"locations\":[{\"start\":{\"line\":404,\"column\":34},\"end\":{\"line\":418,\"column\":3}}]},\"52\":{\"type\":\"branch\",\"line\":412,\"loc\":{\"start\":{\"line\":412,\"column\":22},\"end\":{\"line\":414,\"column\":5}},\"locations\":[{\"start\":{\"line\":412,\"column\":22},\"end\":{\"line\":414,\"column\":5}}]},\"53\":{\"type\":\"branch\",\"line\":415,\"loc\":{\"start\":{\"line\":415,\"column\":25},\"end\":{\"line\":417,\"column\":5}},\"locations\":[{\"start\":{\"line\":415,\"column\":25},\"end\":{\"line\":417,\"column\":5}}]},\"54\":{\"type\":\"branch\",\"line\":429,\"loc\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":446,\"column\":1}},\"locations\":[{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":446,\"column\":1}}]},\"55\":{\"type\":\"branch\",\"line\":435,\"loc\":{\"start\":{\"line\":435,\"column\":18},\"end\":{\"line\":443,\"column\":3}},\"locations\":[{\"start\":{\"line\":435,\"column\":18},\"end\":{\"line\":443,\"column\":3}}]},\"56\":{\"type\":\"branch\",\"line\":437,\"loc\":{\"start\":{\"line\":437,\"column\":32},\"end\":{\"line\":437,\"column\":42}},\"locations\":[{\"start\":{\"line\":437,\"column\":32},\"end\":{\"line\":437,\"column\":42}}]},\"57\":{\"type\":\"branch\",\"line\":438,\"loc\":{\"start\":{\"line\":438,\"column\":34},\"end\":{\"line\":438,\"column\":58}},\"locations\":[{\"start\":{\"line\":438,\"column\":34},\"end\":{\"line\":438,\"column\":58}}]},\"58\":{\"type\":\"branch\",\"line\":438,\"loc\":{\"start\":{\"line\":438,\"column\":59},\"end\":{\"line\":438,\"column\":63}},\"locations\":[{\"start\":{\"line\":438,\"column\":59},\"end\":{\"line\":438,\"column\":63}}]},\"59\":{\"type\":\"branch\",\"line\":436,\"loc\":{\"start\":{\"line\":436,\"column\":41},\"end\":{\"line\":436,\"column\":64}},\"locations\":[{\"start\":{\"line\":436,\"column\":41},\"end\":{\"line\":436,\"column\":64}}]},\"60\":{\"type\":\"branch\",\"line\":448,\"loc\":{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":476,\"column\":1}},\"locations\":[{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":476,\"column\":1}}]},\"61\":{\"type\":\"branch\",\"line\":462,\"loc\":{\"start\":{\"line\":462,\"column\":4},\"end\":{\"line\":469,\"column\":3}},\"locations\":[{\"start\":{\"line\":462,\"column\":4},\"end\":{\"line\":469,\"column\":3}}]},\"62\":{\"type\":\"branch\",\"line\":466,\"loc\":{\"start\":{\"line\":466,\"column\":5},\"end\":{\"line\":468,\"column\":5}},\"locations\":[{\"start\":{\"line\":466,\"column\":5},\"end\":{\"line\":468,\"column\":5}}]},\"63\":{\"type\":\"branch\",\"line\":470,\"loc\":{\"start\":{\"line\":470,\"column\":-1},\"end\":{\"line\":475,\"column\":47}},\"locations\":[{\"start\":{\"line\":470,\"column\":-1},\"end\":{\"line\":475,\"column\":47}}]},\"64\":{\"type\":\"branch\",\"line\":475,\"loc\":{\"start\":{\"line\":475,\"column\":48},\"end\":{\"line\":475,\"column\":54}},\"locations\":[{\"start\":{\"line\":475,\"column\":48},\"end\":{\"line\":475,\"column\":54}}]},\"65\":{\"type\":\"branch\",\"line\":451,\"loc\":{\"start\":{\"line\":451,\"column\":17},\"end\":{\"line\":453,\"column\":3}},\"locations\":[{\"start\":{\"line\":451,\"column\":17},\"end\":{\"line\":453,\"column\":3}}]},\"66\":{\"type\":\"branch\",\"line\":455,\"loc\":{\"start\":{\"line\":455,\"column\":20},\"end\":{\"line\":457,\"column\":3}},\"locations\":[{\"start\":{\"line\":455,\"column\":20},\"end\":{\"line\":457,\"column\":3}}]},\"67\":{\"type\":\"branch\",\"line\":472,\"loc\":{\"start\":{\"line\":472,\"column\":9},\"end\":{\"line\":472,\"column\":72}},\"locations\":[{\"start\":{\"line\":472,\"column\":9},\"end\":{\"line\":472,\"column\":72}}]},\"68\":{\"type\":\"branch\",\"line\":472,\"loc\":{\"start\":{\"line\":472,\"column\":36},\"end\":{\"line\":472,\"column\":71}},\"locations\":[{\"start\":{\"line\":472,\"column\":36},\"end\":{\"line\":472,\"column\":71}}]},\"69\":{\"type\":\"branch\",\"line\":491,\"loc\":{\"start\":{\"line\":491,\"column\":7},\"end\":{\"line\":513,\"column\":1}},\"locations\":[{\"start\":{\"line\":491,\"column\":7},\"end\":{\"line\":513,\"column\":1}}]},\"70\":{\"type\":\"branch\",\"line\":512,\"loc\":{\"start\":{\"line\":512,\"column\":21},\"end\":{\"line\":512,\"column\":45}},\"locations\":[{\"start\":{\"line\":512,\"column\":21},\"end\":{\"line\":512,\"column\":45}}]},\"71\":{\"type\":\"branch\",\"line\":515,\"loc\":{\"start\":{\"line\":515,\"column\":7},\"end\":{\"line\":542,\"column\":1}},\"locations\":[{\"start\":{\"line\":515,\"column\":7},\"end\":{\"line\":542,\"column\":1}}]},\"72\":{\"type\":\"branch\",\"line\":533,\"loc\":{\"start\":{\"line\":533,\"column\":18},\"end\":{\"line\":539,\"column\":3}},\"locations\":[{\"start\":{\"line\":533,\"column\":18},\"end\":{\"line\":539,\"column\":3}}]},\"73\":{\"type\":\"branch\",\"line\":534,\"loc\":{\"start\":{\"line\":534,\"column\":37},\"end\":{\"line\":536,\"column\":11}},\"locations\":[{\"start\":{\"line\":534,\"column\":37},\"end\":{\"line\":536,\"column\":11}}]},\"74\":{\"type\":\"branch\",\"line\":536,\"loc\":{\"start\":{\"line\":536,\"column\":5},\"end\":{\"line\":538,\"column\":5}},\"locations\":[{\"start\":{\"line\":536,\"column\":5},\"end\":{\"line\":538,\"column\":5}}]},\"75\":{\"type\":\"branch\",\"line\":545,\"loc\":{\"start\":{\"line\":545,\"column\":29},\"end\":{\"line\":546,\"column\":55}},\"locations\":[{\"start\":{\"line\":545,\"column\":29},\"end\":{\"line\":546,\"column\":55}}]},\"76\":{\"type\":\"branch\",\"line\":547,\"loc\":{\"start\":{\"line\":547,\"column\":34},\"end\":{\"line\":547,\"column\":118}},\"locations\":[{\"start\":{\"line\":547,\"column\":34},\"end\":{\"line\":547,\"column\":118}}]},\"77\":{\"type\":\"branch\",\"line\":548,\"loc\":{\"start\":{\"line\":548,\"column\":31},\"end\":{\"line\":549,\"column\":48}},\"locations\":[{\"start\":{\"line\":548,\"column\":31},\"end\":{\"line\":549,\"column\":48}}]},\"78\":{\"type\":\"branch\",\"line\":552,\"loc\":{\"start\":{\"line\":552,\"column\":33},\"end\":{\"line\":553,\"column\":89}},\"locations\":[{\"start\":{\"line\":552,\"column\":33},\"end\":{\"line\":553,\"column\":89}}]},\"79\":{\"type\":\"branch\",\"line\":555,\"loc\":{\"start\":{\"line\":555,\"column\":0},\"end\":{\"line\":587,\"column\":1}},\"locations\":[{\"start\":{\"line\":555,\"column\":0},\"end\":{\"line\":587,\"column\":1}}]},\"80\":{\"type\":\"branch\",\"line\":556,\"loc\":{\"start\":{\"line\":556,\"column\":30},\"end\":{\"line\":556,\"column\":83}},\"locations\":[{\"start\":{\"line\":556,\"column\":30},\"end\":{\"line\":556,\"column\":83}}]},\"81\":{\"type\":\"branch\",\"line\":557,\"loc\":{\"start\":{\"line\":557,\"column\":19},\"end\":{\"line\":559,\"column\":3}},\"locations\":[{\"start\":{\"line\":557,\"column\":19},\"end\":{\"line\":559,\"column\":3}}]},\"82\":{\"type\":\"branch\",\"line\":560,\"loc\":{\"start\":{\"line\":560,\"column\":-1},\"end\":{\"line\":577,\"column\":29}},\"locations\":[{\"start\":{\"line\":560,\"column\":-1},\"end\":{\"line\":577,\"column\":29}}]},\"83\":{\"type\":\"branch\",\"line\":577,\"loc\":{\"start\":{\"line\":577,\"column\":29},\"end\":{\"line\":579,\"column\":3}},\"locations\":[{\"start\":{\"line\":577,\"column\":29},\"end\":{\"line\":579,\"column\":3}}]},\"84\":{\"type\":\"branch\",\"line\":580,\"loc\":{\"start\":{\"line\":580,\"column\":-1},\"end\":{\"line\":587,\"column\":1}},\"locations\":[{\"start\":{\"line\":580,\"column\":-1},\"end\":{\"line\":587,\"column\":1}}]},\"85\":{\"type\":\"branch\",\"line\":590,\"loc\":{\"start\":{\"line\":590,\"column\":30},\"end\":{\"line\":591,\"column\":58}},\"locations\":[{\"start\":{\"line\":590,\"column\":30},\"end\":{\"line\":591,\"column\":58}}]},\"86\":{\"type\":\"branch\",\"line\":592,\"loc\":{\"start\":{\"line\":592,\"column\":32},\"end\":{\"line\":602,\"column\":2}},\"locations\":[{\"start\":{\"line\":592,\"column\":32},\"end\":{\"line\":602,\"column\":2}}]},\"87\":{\"type\":\"branch\",\"line\":593,\"loc\":{\"start\":{\"line\":593,\"column\":64},\"end\":{\"line\":595,\"column\":3}},\"locations\":[{\"start\":{\"line\":593,\"column\":64},\"end\":{\"line\":595,\"column\":3}}]},\"88\":{\"type\":\"branch\",\"line\":597,\"loc\":{\"start\":{\"line\":597,\"column\":34},\"end\":{\"line\":597,\"column\":45}},\"locations\":[{\"start\":{\"line\":597,\"column\":34},\"end\":{\"line\":597,\"column\":45}}]},\"89\":{\"type\":\"branch\",\"line\":599,\"loc\":{\"start\":{\"line\":599,\"column\":59},\"end\":{\"line\":599,\"column\":63}},\"locations\":[{\"start\":{\"line\":599,\"column\":59},\"end\":{\"line\":599,\"column\":63}}]},\"90\":{\"type\":\"branch\",\"line\":605,\"loc\":{\"start\":{\"line\":605,\"column\":31},\"end\":{\"line\":606,\"column\":98}},\"locations\":[{\"start\":{\"line\":605,\"column\":31},\"end\":{\"line\":606,\"column\":98}}]},\"91\":{\"type\":\"branch\",\"line\":608,\"loc\":{\"start\":{\"line\":608,\"column\":33},\"end\":{\"line\":609,\"column\":101}},\"locations\":[{\"start\":{\"line\":608,\"column\":33},\"end\":{\"line\":609,\"column\":101}}]}},\"b\":{\"0\":[845],\"1\":[34],\"2\":[91],\"3\":[125],\"4\":[126],\"5\":[810],\"6\":[165],\"7\":[253],\"8\":[686],\"9\":[237],\"10\":[28],\"11\":[209],\"12\":[28],\"13\":[29],\"14\":[180],\"15\":[63],\"16\":[160],\"17\":[58],\"18\":[126],\"19\":[25],\"20\":[1],\"21\":[3],\"22\":[5],\"23\":[107],\"24\":[107],\"25\":[99],\"26\":[99],\"27\":[20],\"28\":[20],\"29\":[26],\"30\":[33],\"31\":[61],\"32\":[61],\"33\":[71],\"34\":[269],\"35\":[0],\"36\":[102],\"37\":[189],\"38\":[76],\"39\":[61],\"40\":[71],\"41\":[1],\"42\":[70],\"43\":[0],\"44\":[70],\"45\":[160],\"46\":[126],\"47\":[0],\"48\":[34],\"49\":[0],\"50\":[104],\"51\":[942],\"52\":[178],\"53\":[106],\"54\":[103],\"55\":[191],\"56\":[0],\"57\":[131],\"58\":[60],\"59\":[263],\"60\":[35],\"61\":[29],\"62\":[0],\"63\":[6],\"64\":[0],\"65\":[135],\"66\":[240],\"67\":[15],\"68\":[28],\"69\":[33],\"70\":[17],\"71\":[34],\"72\":[10],\"73\":[4],\"74\":[6],\"75\":[1],\"76\":[4],\"77\":[4],\"78\":[8],\"79\":[92],\"80\":[64],\"81\":[28],\"82\":[64],\"83\":[0],\"84\":[64],\"85\":[7],\"86\":[4],\"87\":[0],\"88\":[0],\"89\":[0],\"90\":[11],\"91\":[16]},\"fnMap\":{\"0\":{\"name\":\"isQuery\",\"decl\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"loc\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"line\":34},\"1\":{\"name\":\"byTagOrder\",\"decl\":{\"start\":{\"line\":57,\"column\":19},\"end\":{\"line\":59,\"column\":2}},\"loc\":{\"start\":{\"line\":57,\"column\":19},\"end\":{\"line\":59,\"column\":2}},\"line\":57},\"2\":{\"name\":\"smartTags\",\"decl\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":66,\"column\":1}},\"loc\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":66,\"column\":1}},\"line\":61},\"3\":{\"name\":\"getVirtualFkTag\",\"decl\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":70,\"column\":1}},\"loc\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":70,\"column\":1}},\"line\":68},\"4\":{\"name\":\"underscored\",\"decl\":{\"start\":{\"line\":72,\"column\":27},\"end\":{\"line\":72,\"column\":78}},\"loc\":{\"start\":{\"line\":72,\"column\":27},\"end\":{\"line\":72,\"column\":78}},\"line\":72},\"5\":{\"name\":\"getFkConstraint\",\"decl\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"loc\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"line\":74},\"6\":{\"name\":\"getUniqConstraint\",\"decl\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":80,\"column\":1}},\"loc\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":80,\"column\":1}},\"line\":78},\"7\":{\"name\":\"escapedName\",\"decl\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"loc\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"line\":82},\"8\":{\"name\":\"commentOn\",\"decl\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"loc\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"line\":86},\"9\":{\"name\":\"commentConstraintQuery\",\"decl\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"loc\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"line\":96},\"10\":{\"name\":\"commentTableQuery\",\"decl\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":102,\"column\":1}},\"loc\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":102,\"column\":1}},\"line\":100},\"11\":{\"name\":\"commentColumnQuery\",\"decl\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":106,\"column\":1}},\"loc\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":106,\"column\":1}},\"line\":104},\"12\":{\"name\":\"commentOnFunction\",\"decl\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":110,\"column\":1}},\"loc\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":110,\"column\":1}},\"line\":108},\"13\":{\"name\":\"constraintDeferrableQuery\",\"decl\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":115,\"column\":1}},\"loc\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":115,\"column\":1}},\"line\":113},\"14\":{\"name\":\"addTagsToForeignKeyMap\",\"decl\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":130,\"column\":1}},\"loc\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":130,\"column\":1}},\"line\":117},\"15\":{\"name\":\"createUniqueIndexQuery\",\"decl\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"loc\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"line\":134},\"16\":{\"name\":\"getTriggers\",\"decl\":{\"start\":{\"line\":142,\"column\":7},\"end\":{\"line\":151,\"column\":1}},\"loc\":{\"start\":{\"line\":142,\"column\":7},\"end\":{\"line\":151,\"column\":1}},\"line\":142},\"17\":{\"name\":\"getFunctions\",\"decl\":{\"start\":{\"line\":153,\"column\":7},\"end\":{\"line\":171,\"column\":1}},\"loc\":{\"start\":{\"line\":153,\"column\":7},\"end\":{\"line\":171,\"column\":1}},\"line\":153},\"18\":{\"name\":\"createSendNotificationTriggerFunction\",\"decl\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":209,\"column\":1}},\"loc\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":209,\"column\":1}},\"line\":173},\"19\":{\"name\":\"createNotifyTrigger\",\"decl\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":225,\"column\":1}},\"loc\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":225,\"column\":1}},\"line\":211},\"20\":{\"name\":\"dropTrigger\",\"decl\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":230,\"column\":1}},\"loc\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":230,\"column\":1}},\"line\":227},\"21\":{\"name\":\"dropNotifyTrigger\",\"decl\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":235,\"column\":1}},\"loc\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":235,\"column\":1}},\"line\":232},\"22\":{\"name\":\"dropFunction\",\"decl\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":239,\"column\":1}},\"loc\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":239,\"column\":1}},\"line\":237},\"23\":{\"name\":\"dropNotifyFunction\",\"decl\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":243,\"column\":1}},\"loc\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":243,\"column\":1}},\"line\":241},\"24\":{\"name\":\"createSchemaTrigger\",\"decl\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":256,\"column\":1}},\"loc\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":256,\"column\":1}},\"line\":247},\"25\":{\"name\":\"createSchemaTriggerFunction\",\"decl\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"loc\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"line\":258},\"26\":{\"name\":\"enumNameToHash\",\"decl\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":273,\"column\":1}},\"loc\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":273,\"column\":1}},\"line\":271},\"27\":{\"name\":\"getExistedIndexesQuery\",\"decl\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":277,\"column\":1}},\"loc\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":277,\"column\":1}},\"line\":275},\"28\":{\"name\":\"sqlIterator\",\"decl\":{\"start\":{\"line\":286,\"column\":27},\"end\":{\"line\":304,\"column\":2}},\"loc\":{\"start\":{\"line\":286,\"column\":27},\"end\":{\"line\":304,\"column\":2}},\"line\":286},\"29\":{\"name\":\"addHistoricalIdIndex\",\"decl\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":315,\"column\":1}},\"loc\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":315,\"column\":1}},\"line\":307},\"30\":{\"name\":\"generateHashedIndexName\",\"decl\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":319,\"column\":1}},\"loc\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":319,\"column\":1}},\"line\":317},\"31\":{\"name\":\"updateIndexesName\",\"decl\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":331,\"column\":1}},\"loc\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":331,\"column\":1}},\"line\":321},\"32\":{\"name\":\"addIdAndBlockRangeAttributes\",\"decl\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":345,\"column\":1}},\"loc\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":345,\"column\":1}},\"line\":333},\"33\":{\"name\":\"addBlockRangeColumnToIndexes\",\"decl\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":360,\"column\":1}},\"loc\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":360,\"column\":1}},\"line\":347},\"34\":{\"name\":\"addRelationToMap\",\"decl\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":390,\"column\":1}},\"loc\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":390,\"column\":1}},\"line\":362},\"35\":{\"name\":\"generateCreateTableQuery\",\"decl\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":427,\"column\":1}},\"loc\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":427,\"column\":1}},\"line\":392},\"36\":{\"name\":\"generateCreateIndexQuery\",\"decl\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":446,\"column\":1}},\"loc\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":446,\"column\":1}},\"line\":429},\"37\":{\"name\":\"sortModels\",\"decl\":{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":476,\"column\":1}},\"loc\":{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":476,\"column\":1}},\"line\":448},\"38\":{\"name\":\"validateNotifyTriggers\",\"decl\":{\"start\":{\"line\":478,\"column\":0},\"end\":{\"line\":489,\"column\":1}},\"loc\":{\"start\":{\"line\":478,\"column\":0},\"end\":{\"line\":489,\"column\":1}},\"line\":478},\"39\":{\"name\":\"getExistingForeignKeys\",\"decl\":{\"start\":{\"line\":491,\"column\":7},\"end\":{\"line\":513,\"column\":1}},\"loc\":{\"start\":{\"line\":491,\"column\":7},\"end\":{\"line\":513,\"column\":1}},\"line\":491},\"40\":{\"name\":\"getExistingEnums\",\"decl\":{\"start\":{\"line\":515,\"column\":7},\"end\":{\"line\":542,\"column\":1}},\"loc\":{\"start\":{\"line\":515,\"column\":7},\"end\":{\"line\":542,\"column\":1}},\"line\":515},\"41\":{\"name\":\"dropEnumQuery\",\"decl\":{\"start\":{\"line\":545,\"column\":29},\"end\":{\"line\":546,\"column\":55}},\"loc\":{\"start\":{\"line\":545,\"column\":29},\"end\":{\"line\":546,\"column\":55}},\"line\":545},\"42\":{\"name\":\"commentOnEnumQuery\",\"decl\":{\"start\":{\"line\":547,\"column\":34},\"end\":{\"line\":547,\"column\":118}},\"loc\":{\"start\":{\"line\":547,\"column\":34},\"end\":{\"line\":547,\"column\":118}},\"line\":547},\"43\":{\"name\":\"createEnumQuery\",\"decl\":{\"start\":{\"line\":548,\"column\":31},\"end\":{\"line\":549,\"column\":48}},\"loc\":{\"start\":{\"line\":548,\"column\":31},\"end\":{\"line\":549,\"column\":48}},\"line\":548},\"44\":{\"name\":\"dropRelationQuery\",\"decl\":{\"start\":{\"line\":552,\"column\":33},\"end\":{\"line\":553,\"column\":89}},\"loc\":{\"start\":{\"line\":552,\"column\":33},\"end\":{\"line\":553,\"column\":89}},\"line\":552},\"45\":{\"name\":\"generateForeignKeyQuery\",\"decl\":{\"start\":{\"line\":555,\"column\":0},\"end\":{\"line\":587,\"column\":1}},\"loc\":{\"start\":{\"line\":555,\"column\":0},\"end\":{\"line\":587,\"column\":1}},\"line\":555},\"46\":{\"name\":\"dropIndexQuery\",\"decl\":{\"start\":{\"line\":590,\"column\":30},\"end\":{\"line\":591,\"column\":58}},\"loc\":{\"start\":{\"line\":590,\"column\":30},\"end\":{\"line\":591,\"column\":58}},\"line\":590},\"47\":{\"name\":\"createIndexQuery\",\"decl\":{\"start\":{\"line\":592,\"column\":32},\"end\":{\"line\":602,\"column\":2}},\"loc\":{\"start\":{\"line\":592,\"column\":32},\"end\":{\"line\":602,\"column\":2}},\"line\":592},\"48\":{\"name\":\"dropColumnQuery\",\"decl\":{\"start\":{\"line\":605,\"column\":31},\"end\":{\"line\":606,\"column\":98}},\"loc\":{\"start\":{\"line\":605,\"column\":31},\"end\":{\"line\":606,\"column\":98}},\"line\":605},\"49\":{\"name\":\"createColumnQuery\",\"decl\":{\"start\":{\"line\":608,\"column\":33},\"end\":{\"line\":609,\"column\":101}},\"loc\":{\"start\":{\"line\":608,\"column\":33},\"end\":{\"line\":609,\"column\":101}},\"line\":608},\"50\":{\"name\":\"dropTsVectorColumnQuery\",\"decl\":{\"start\":{\"line\":614,\"column\":39},\"end\":{\"line\":615,\"column\":47}},\"loc\":{\"start\":{\"line\":614,\"column\":39},\"end\":{\"line\":615,\"column\":47}},\"line\":614},\"51\":{\"name\":\"createTsVectorColumnQuery\",\"decl\":{\"start\":{\"line\":616,\"column\":41},\"end\":{\"line\":626,\"column\":2}},\"loc\":{\"start\":{\"line\":616,\"column\":41},\"end\":{\"line\":626,\"column\":2}},\"line\":616},\"52\":{\"name\":\"createTsVectorCommentQuery\",\"decl\":{\"start\":{\"line\":628,\"column\":42},\"end\":{\"line\":629,\"column\":63}},\"loc\":{\"start\":{\"line\":628,\"column\":42},\"end\":{\"line\":629,\"column\":63}},\"line\":628},\"53\":{\"name\":\"tsVectorIndexName\",\"decl\":{\"start\":{\"line\":631,\"column\":26},\"end\":{\"line\":631,\"column\":100}},\"loc\":{\"start\":{\"line\":631,\"column\":26},\"end\":{\"line\":631,\"column\":100}},\"line\":631},\"54\":{\"name\":\"dropTsVectorIndexQuery\",\"decl\":{\"start\":{\"line\":632,\"column\":38},\"end\":{\"line\":633,\"column\":58}},\"loc\":{\"start\":{\"line\":632,\"column\":38},\"end\":{\"line\":633,\"column\":58}},\"line\":632},\"55\":{\"name\":\"createTsVectorIndexQuery\",\"decl\":{\"start\":{\"line\":635,\"column\":40},\"end\":{\"line\":636,\"column\":115}},\"loc\":{\"start\":{\"line\":635,\"column\":40},\"end\":{\"line\":636,\"column\":115}},\"line\":635},\"56\":{\"name\":\"searchFunctionName\",\"decl\":{\"start\":{\"line\":638,\"column\":27},\"end\":{\"line\":638,\"column\":103}},\"loc\":{\"start\":{\"line\":638,\"column\":27},\"end\":{\"line\":638,\"column\":103}},\"line\":638},\"57\":{\"name\":\"dropSearchFunctionQuery\",\"decl\":{\"start\":{\"line\":639,\"column\":39},\"end\":{\"line\":640,\"column\":57}},\"loc\":{\"start\":{\"line\":639,\"column\":39},\"end\":{\"line\":640,\"column\":57}},\"line\":639},\"58\":{\"name\":\"createSearchFunctionQuery\",\"decl\":{\"start\":{\"line\":641,\"column\":41},\"end\":{\"line\":651,\"column\":2}},\"loc\":{\"start\":{\"line\":641,\"column\":41},\"end\":{\"line\":651,\"column\":2}},\"line\":641},\"59\":{\"name\":\"commentSearchFunctionQuery\",\"decl\":{\"start\":{\"line\":653,\"column\":42},\"end\":{\"line\":654,\"column\":87}},\"loc\":{\"start\":{\"line\":653,\"column\":42},\"end\":{\"line\":654,\"column\":87}},\"line\":653}},\"f\":{\"0\":845,\"1\":34,\"2\":91,\"3\":126,\"4\":810,\"5\":165,\"6\":0,\"7\":253,\"8\":237,\"9\":28,\"10\":29,\"11\":180,\"12\":0,\"13\":63,\"14\":160,\"15\":0,\"16\":25,\"17\":1,\"18\":3,\"19\":5,\"20\":107,\"21\":107,\"22\":99,\"23\":99,\"24\":20,\"25\":20,\"26\":26,\"27\":33,\"28\":0,\"29\":61,\"30\":269,\"31\":102,\"32\":76,\"33\":61,\"34\":160,\"35\":104,\"36\":103,\"37\":35,\"38\":0,\"39\":33,\"40\":34,\"41\":1,\"42\":4,\"43\":4,\"44\":8,\"45\":92,\"46\":7,\"47\":4,\"48\":11,\"49\":16,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/events.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/events.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":26}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":33}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":38}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":34}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":46}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":48}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":38}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":50}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":39}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":37}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":48}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":53}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":18}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":1}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":22}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":33}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":27}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":38}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":17}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":20}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":45}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":30}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":20}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":1}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":37}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":17}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":35}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":17}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":34}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":11}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":1}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":41}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":16}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":19}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":22}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":5,\"4\":5,\"5\":5,\"6\":5,\"7\":5,\"8\":5,\"9\":5,\"10\":5,\"11\":5,\"12\":5,\"13\":5,\"14\":5,\"15\":5,\"16\":5,\"17\":5,\"18\":1,\"19\":5,\"20\":5,\"21\":5,\"22\":5,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":4,\"loc\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":18,\"column\":1}},\"locations\":[{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":18,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"locations\":[{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":23,\"column\":1}}]}},\"b\":{\"0\":[5],\"1\":[5]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":30}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":39}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":25}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":27}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":25}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":28}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":21}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":23}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":24}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":26}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":30}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/StoreOperations.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/StoreOperations.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":41}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":102}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":39}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":55}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":30}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":35}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":52}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":40}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":25}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":7}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":79}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":45}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":55}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":19}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":37}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":58}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":14}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":76}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":7}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":12}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":89}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":28}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":82}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":7}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":50}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":88}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":54}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":62}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":102}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":22}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":65}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":11}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":58}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":9}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":7}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":5}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":110}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":3}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":78}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":46}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":27}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":25}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":17}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":6}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":99}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":3}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":17}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":16}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":42}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":3}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":35}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":32}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":47}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":47}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":46}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":12}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":90}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":5}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":32}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":43}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":4,\"13\":4,\"14\":4,\"15\":4,\"16\":1,\"17\":1,\"18\":8,\"19\":8,\"20\":2,\"21\":2,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":8,\"27\":6,\"28\":6,\"29\":0,\"30\":0,\"31\":6,\"32\":47,\"33\":47,\"34\":47,\"35\":47,\"36\":21,\"37\":21,\"38\":0,\"39\":0,\"40\":21,\"41\":21,\"42\":21,\"43\":47,\"44\":6,\"45\":7,\"46\":7,\"47\":1,\"48\":1,\"49\":8,\"50\":8,\"51\":8,\"52\":8,\"53\":8,\"54\":8,\"55\":8,\"56\":1,\"57\":1,\"58\":2,\"59\":2,\"60\":2,\"61\":1,\"62\":1,\"63\":3,\"64\":3,\"65\":1,\"66\":1,\"67\":2,\"68\":2,\"69\":2,\"70\":0,\"71\":0,\"72\":2,\"73\":1,\"74\":1,\"75\":4,\"76\":4,\"77\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":16,\"column\":3}},\"locations\":[{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":16,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":18,\"loc\":{\"start\":{\"line\":18,\"column\":10},\"end\":{\"line\":47,\"column\":3}},\"locations\":[{\"start\":{\"line\":18,\"column\":10},\"end\":{\"line\":47,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":54},\"end\":{\"line\":27,\"column\":11}},\"locations\":[{\"start\":{\"line\":20,\"column\":54},\"end\":{\"line\":27,\"column\":11}}]},\"3\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":36},\"end\":{\"line\":26,\"column\":7}},\"locations\":[{\"start\":{\"line\":22,\"column\":36},\"end\":{\"line\":26,\"column\":7}}]},\"4\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":5},\"end\":{\"line\":45,\"column\":5}},\"locations\":[{\"start\":{\"line\":27,\"column\":5},\"end\":{\"line\":45,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":27},\"end\":{\"line\":31,\"column\":7}},\"locations\":[{\"start\":{\"line\":29,\"column\":27},\"end\":{\"line\":31,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":49},\"end\":{\"line\":44,\"column\":7}},\"locations\":[{\"start\":{\"line\":32,\"column\":49},\"end\":{\"line\":44,\"column\":7}}]},\"7\":{\"type\":\"branch\",\"line\":36,\"loc\":{\"start\":{\"line\":36,\"column\":36},\"end\":{\"line\":36,\"column\":59}},\"locations\":[{\"start\":{\"line\":36,\"column\":36},\"end\":{\"line\":36,\"column\":59}}]},\"8\":{\"type\":\"branch\",\"line\":36,\"loc\":{\"start\":{\"line\":36,\"column\":61},\"end\":{\"line\":43,\"column\":9}},\"locations\":[{\"start\":{\"line\":36,\"column\":61},\"end\":{\"line\":43,\"column\":9}}]},\"9\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":36},\"end\":{\"line\":37,\"column\":67}},\"locations\":[{\"start\":{\"line\":37,\"column\":36},\"end\":{\"line\":37,\"column\":67}}]},\"10\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":68},\"end\":{\"line\":37,\"column\":101}},\"locations\":[{\"start\":{\"line\":37,\"column\":68},\"end\":{\"line\":37,\"column\":101}}]},\"11\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":21},\"end\":{\"line\":40,\"column\":11}},\"locations\":[{\"start\":{\"line\":38,\"column\":21},\"end\":{\"line\":40,\"column\":11}}]},\"12\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":-1},\"end\":{\"line\":47,\"column\":3}},\"locations\":[{\"start\":{\"line\":46,\"column\":-1},\"end\":{\"line\":47,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":46},\"end\":{\"line\":28,\"column\":87}},\"locations\":[{\"start\":{\"line\":28,\"column\":46},\"end\":{\"line\":28,\"column\":87}}]},\"14\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"locations\":[{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":56,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"locations\":[{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":61,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"locations\":[{\"start\":{\"line\":63,\"column\":2},\"end\":{\"line\":65,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"locations\":[{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":73,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":5},\"end\":{\"line\":72,\"column\":5}},\"locations\":[{\"start\":{\"line\":70,\"column\":5},\"end\":{\"line\":72,\"column\":5}}]},\"19\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"locations\":[{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":77,\"column\":3}}]}},\"b\":{\"0\":[4],\"1\":[8],\"2\":[2],\"3\":[1],\"4\":[6],\"5\":[0],\"6\":[47],\"7\":[21],\"8\":[21],\"9\":[1],\"10\":[20],\"11\":[0],\"12\":[7],\"13\":[7],\"14\":[8],\"15\":[2],\"16\":[3],\"17\":[2],\"18\":[0],\"19\":[4]},\"fnMap\":{\"0\":{\"name\":\"StoreOperations\",\"decl\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":16,\"column\":3}},\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":16,\"column\":3}},\"line\":12},\"1\":{\"name\":\"operationEntityToUint8Array\",\"decl\":{\"start\":{\"line\":18,\"column\":10},\"end\":{\"line\":47,\"column\":3}},\"loc\":{\"start\":{\"line\":18,\"column\":10},\"end\":{\"line\":47,\"column\":3}},\"line\":18},\"2\":{\"name\":\"put\",\"decl\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"line\":49},\"3\":{\"name\":\"reset\",\"decl\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"line\":58},\"4\":{\"name\":\"makeOperationMerkleTree\",\"decl\":{\"start\":{\"line\":63,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":63,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":63},\"5\":{\"name\":\"getOperationMerkleRoot\",\"decl\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"line\":67},\"6\":{\"name\":\"getOperationLeafCount\",\"decl\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"line\":75}},\"f\":{\"0\":4,\"1\":8,\"2\":8,\"3\":2,\"4\":3,\"5\":2,\"6\":4}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/benchmark.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/benchmark.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":42}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":46}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":51}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":26}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":45}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":40}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":118}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":36}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":34}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":38}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":23}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":13}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":37}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":45}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":48}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":34}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":49}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":40}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":43}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":34}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":44}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":24}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":35}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":50}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":30}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":28}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":6}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":39}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":69}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":13}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":5}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":39}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":19}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":18}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":39}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":63}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":7}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":6}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":3}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":47}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":76}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":22}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":12}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":70}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":84}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":88}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":102}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":33}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":97}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":16}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":47}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":85}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":21}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":12}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":76}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":58}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":61}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":82}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":110}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":24}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":114}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":29}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":59}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":14}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":11}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":22}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":34}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":90}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":66}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":55}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":33}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":171}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":71}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":20}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":14}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":12}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":9}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":7}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":63}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":69}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":71}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":5}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":3}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":1}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":13}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":63}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":77}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":62}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":34}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":44}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":5}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":3}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":0}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":36}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":66}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":55}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":61}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":3}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":0}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":30}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":60}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":44}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":61}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":3}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":1}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":13}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":68}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":77}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":63}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":44}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":3}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":40}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":66}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":55}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":61}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":3}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":44}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":72}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":72}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":61}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":3}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":36}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":61}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":44}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":3}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":40,\"30\":40,\"31\":40,\"32\":40,\"33\":40,\"34\":1,\"35\":1,\"36\":20,\"37\":0,\"38\":0,\"39\":20,\"40\":20,\"41\":20,\"42\":20,\"43\":20,\"44\":20,\"45\":20,\"46\":20,\"47\":1,\"48\":1,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":20,\"101\":20,\"102\":0,\"103\":0,\"104\":20,\"105\":1,\"106\":1,\"107\":1,\"108\":0,\"109\":0,\"110\":0,\"111\":1,\"112\":1,\"113\":1,\"114\":0,\"115\":0,\"116\":0,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":20,\"123\":20,\"124\":20,\"125\":1,\"126\":1,\"127\":1,\"128\":0,\"129\":0,\"130\":0,\"131\":1,\"132\":1,\"133\":1,\"134\":0,\"135\":0,\"136\":0,\"137\":1,\"138\":1,\"139\":1,\"140\":0,\"141\":0,\"142\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":34,\"column\":6}},\"locations\":[{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":34,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":36,\"loc\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"locations\":[{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":47,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":68},\"end\":{\"line\":39,\"column\":5}},\"locations\":[{\"start\":{\"line\":37,\"column\":68},\"end\":{\"line\":39,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"locations\":[{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":105,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":33},\"end\":{\"line\":104,\"column\":5}},\"locations\":[{\"start\":{\"line\":102,\"column\":33},\"end\":{\"line\":104,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":2},\"end\":{\"line\":125,\"column\":3}},\"locations\":[{\"start\":{\"line\":122,\"column\":2},\"end\":{\"line\":125,\"column\":3}}]}},\"b\":{\"0\":[40],\"1\":[20],\"2\":[0],\"3\":[20],\"4\":[0],\"5\":[20]},\"fnMap\":{\"0\":{\"name\":\"BaseBenchmarkService\",\"decl\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":34,\"column\":6}},\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":34,\"column\":6}},\"line\":29},\"1\":{\"name\":\"setupInterval\",\"decl\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"loc\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"line\":36},\"2\":{\"name\":\"benchMarking\",\"decl\":{\"start\":{\"line\":49,\"column\":10},\"end\":{\"line\":95,\"column\":3}},\"loc\":{\"start\":{\"line\":49,\"column\":10},\"end\":{\"line\":95,\"column\":3}},\"line\":49},\"3\":{\"name\":\"PoiBenchmarkService\",\"decl\":{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"loc\":{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"line\":100},\"4\":{\"name\":\"handleLatestSyncedPoi\",\"decl\":{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":111,\"column\":3}},\"loc\":{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":111,\"column\":3}},\"line\":108},\"5\":{\"name\":\"handlePoiTarget\",\"decl\":{\"start\":{\"line\":114,\"column\":2},\"end\":{\"line\":117,\"column\":3}},\"loc\":{\"start\":{\"line\":114,\"column\":2},\"end\":{\"line\":117,\"column\":3}},\"line\":114},\"6\":{\"name\":\"IndexingBenchmarkService\",\"decl\":{\"start\":{\"line\":122,\"column\":2},\"end\":{\"line\":125,\"column\":3}},\"loc\":{\"start\":{\"line\":122,\"column\":2},\"end\":{\"line\":125,\"column\":3}},\"line\":122},\"7\":{\"name\":\"handleProcessingBlock\",\"decl\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":131,\"column\":3}},\"loc\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":131,\"column\":3}},\"line\":128},\"8\":{\"name\":\"handleProcessedBlock\",\"decl\":{\"start\":{\"line\":134,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"loc\":{\"start\":{\"line\":134,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"line\":134},\"9\":{\"name\":\"handleTargetBlock\",\"decl\":{\"start\":{\"line\":140,\"column\":2},\"end\":{\"line\":142,\"column\":3}},\"loc\":{\"start\":{\"line\":140,\"column\":2},\"end\":{\"line\":142,\"column\":3}},\"line\":140}},\"f\":{\"0\":40,\"1\":20,\"2\":0,\"3\":20,\"4\":0,\"5\":0,\"6\":20,\"7\":0,\"8\":0,\"9\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/blockDispatcher/base-block-dispatcher.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/blockDispatcher/base-block-dispatcher.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":45}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":67}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":52}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":39}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":51}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":55}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":48}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":56}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":46}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":48}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":53}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":67}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":55}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":36}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":28}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":20}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":36}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":2}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":38}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":64}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":99}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":20}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":19}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":31}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":25}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":27}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":66}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":35}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":42}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":63}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":48}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":99}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":38}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":37}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":39}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":40}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":66}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":14}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":37}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":42}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":38}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":50}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":58}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":23}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":51}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":41}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":49}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":43}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":53}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":6}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":109}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":84}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":50}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":72}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":105}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":3}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":27}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":27}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":3}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":26}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":108}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":32}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":3}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":32}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":53}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":3}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":34}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":54}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":3}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":39}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":39}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":3}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":50}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":41}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":3}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":73}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":36}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":70}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":5}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":36}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":3}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":38}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":38}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":3}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":44}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":63}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":28}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":7}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":40}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":3}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":71}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":52}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":62}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":26}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":28}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":7}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":3}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":5}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":53}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":113}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":46}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":70}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":29}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":5}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":19}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":68}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":60}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":92}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":59}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":55}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":70}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":5}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":39}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":128}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":3}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":0}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":36}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":39}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":23}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":3}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":0}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":51}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":19}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":66}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":45}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":0}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":62}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":0}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":42}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":58}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":13}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":28}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":7}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":3}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":0}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":50}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":19}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":111}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":83}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":74}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":41}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":45}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":36}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":7}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":44}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":56}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":51}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":41}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":43}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":7}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":13}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":12}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":39}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":0}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":71}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":55}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":0}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":29}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":46}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":7}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":13}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":75}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":96}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":8}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":100}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":65}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":44}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":5}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":0}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":42}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":54}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":88}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":49}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":24}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":9}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":12}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":43}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":59}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":5}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":0}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":65}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":110}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":59}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":22}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":5}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":3}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":0}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":5}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":70}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":54}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":18}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":21}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":25}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":13}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":5}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":89}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":40}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":13}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":5}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":42}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":13}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":5}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":88}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":40}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":36}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":92}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":48}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":13}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":28}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":7}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":3}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":0}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":19}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":77}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":49}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":28}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":18}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":50}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":57}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":7}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":94}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":26}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":47}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":5}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":3}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":0}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":36}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":43}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":15}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":76}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":5}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":15}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":3}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":0,\"43\":0,\"44\":0,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":20,\"55\":20,\"56\":20,\"57\":20,\"58\":20,\"59\":20,\"60\":20,\"61\":20,\"62\":20,\"63\":20,\"64\":20,\"65\":20,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":1,\"75\":1,\"76\":0,\"77\":0,\"78\":1,\"79\":1,\"80\":0,\"81\":0,\"82\":0,\"83\":1,\"84\":1,\"85\":0,\"86\":0,\"87\":1,\"88\":1,\"89\":12,\"90\":12,\"91\":1,\"92\":1,\"93\":0,\"94\":0,\"95\":1,\"96\":1,\"97\":0,\"98\":0,\"99\":1,\"100\":1,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":1,\"107\":1,\"108\":0,\"109\":0,\"110\":1,\"111\":1,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":1,\"118\":1,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":1,\"126\":1,\"127\":1,\"128\":1,\"129\":1,\"130\":1,\"131\":1,\"132\":1,\"133\":1,\"134\":1,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":1,\"145\":1,\"146\":0,\"147\":0,\"148\":0,\"149\":1,\"150\":1,\"151\":1,\"152\":1,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":1,\"164\":1,\"165\":1,\"166\":1,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":1,\"217\":1,\"218\":1,\"219\":1,\"220\":1,\"221\":1,\"222\":1,\"223\":1,\"224\":1,\"225\":1,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":1,\"242\":1,\"243\":1,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":1,\"256\":1,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":66,\"column\":6}},\"locations\":[{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":66,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":2},\"end\":{\"line\":91,\"column\":3}},\"locations\":[{\"start\":{\"line\":89,\"column\":2},\"end\":{\"line\":91,\"column\":3}}]}},\"b\":{\"0\":[20],\"1\":[12]},\"fnMap\":{\"0\":{\"name\":\"isNullMerkelRoot\",\"decl\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"loc\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"line\":43},\"1\":{\"name\":\"BaseBlockDispatcher\",\"decl\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":66,\"column\":6}},\"loc\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":66,\"column\":6}},\"line\":54},\"2\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"loc\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"line\":70},\"3\":{\"name\":\"get queueSize\",\"decl\":{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":78,\"column\":3}},\"loc\":{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":78,\"column\":3}},\"line\":76},\"4\":{\"name\":\"get freeSize\",\"decl\":{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":83,\"column\":3}},\"loc\":{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":83,\"column\":3}},\"line\":80},\"5\":{\"name\":\"get smartBatchSize\",\"decl\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"loc\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"line\":85},\"6\":{\"name\":\"get minimumHeapLimit\",\"decl\":{\"start\":{\"line\":89,\"column\":2},\"end\":{\"line\":91,\"column\":3}},\"loc\":{\"start\":{\"line\":89,\"column\":2},\"end\":{\"line\":91,\"column\":3}},\"line\":89},\"7\":{\"name\":\"get latestProcessedHeight\",\"decl\":{\"start\":{\"line\":93,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"loc\":{\"start\":{\"line\":93,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"line\":93},\"8\":{\"name\":\"setLatestProcessedHeight\",\"decl\":{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"loc\":{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"line\":97},\"9\":{\"name\":\"get onDynamicDsCreated\",\"decl\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":106,\"column\":3}},\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":106,\"column\":3}},\"line\":101},\"10\":{\"name\":\"get latestBufferedHeight\",\"decl\":{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":110,\"column\":3}},\"loc\":{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":110,\"column\":3}},\"line\":108},\"11\":{\"name\":\"set latestBufferedHeight\",\"decl\":{\"start\":{\"line\":112,\"column\":2},\"end\":{\"line\":117,\"column\":3}},\"loc\":{\"start\":{\"line\":112,\"column\":2},\"end\":{\"line\":117,\"column\":3}},\"line\":112},\"12\":{\"name\":\"setProcessedBlockCount\",\"decl\":{\"start\":{\"line\":119,\"column\":12},\"end\":{\"line\":125,\"column\":3}},\"loc\":{\"start\":{\"line\":119,\"column\":12},\"end\":{\"line\":125,\"column\":3}},\"line\":119},\"13\":{\"name\":\"rewind\",\"decl\":{\"start\":{\"line\":135,\"column\":18},\"end\":{\"line\":144,\"column\":3}},\"loc\":{\"start\":{\"line\":135,\"column\":18},\"end\":{\"line\":144,\"column\":3}},\"line\":135},\"14\":{\"name\":\"flushQueue\",\"decl\":{\"start\":{\"line\":146,\"column\":2},\"end\":{\"line\":149,\"column\":3}},\"loc\":{\"start\":{\"line\":146,\"column\":2},\"end\":{\"line\":149,\"column\":3}},\"line\":146},\"15\":{\"name\":\"preProcessBlock\",\"decl\":{\"start\":{\"line\":153,\"column\":18},\"end\":{\"line\":163,\"column\":3}},\"loc\":{\"start\":{\"line\":153,\"column\":18},\"end\":{\"line\":163,\"column\":3}},\"line\":153},\"16\":{\"name\":\"postProcessBlock\",\"decl\":{\"start\":{\"line\":167,\"column\":18},\"end\":{\"line\":216,\"column\":3}},\"loc\":{\"start\":{\"line\":167,\"column\":18},\"end\":{\"line\":216,\"column\":3}},\"line\":167},\"17\":{\"name\":\"createPOI\",\"decl\":{\"start\":{\"line\":226,\"column\":10},\"end\":{\"line\":241,\"column\":3}},\"loc\":{\"start\":{\"line\":226,\"column\":10},\"end\":{\"line\":241,\"column\":3}},\"line\":226},\"18\":{\"name\":\"updateStoreMetadata\",\"decl\":{\"start\":{\"line\":244,\"column\":10},\"end\":{\"line\":255,\"column\":3}},\"loc\":{\"start\":{\"line\":244,\"column\":10},\"end\":{\"line\":255,\"column\":3}},\"line\":244},\"19\":{\"name\":\"get poi\",\"decl\":{\"start\":{\"line\":257,\"column\":2},\"end\":{\"line\":263,\"column\":3}},\"loc\":{\"start\":{\"line\":257,\"column\":2},\"end\":{\"line\":263,\"column\":3}},\"line\":257}},\"f\":{\"0\":0,\"1\":20,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":12,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/blockDispatcher/block-dispatcher.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/blockDispatcher/block-dispatcher.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":37}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":42}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":43}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":78}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":42}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":69}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":44}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":102}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":55}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":56}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":46}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":48}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":59}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":82}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":51}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":72}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":3}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":133}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":44}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":63}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":34}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":43}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":40}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":51}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":27}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":29}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":81}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":14}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":27}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":32}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":40}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":50}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":41}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":31}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":41}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":35}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":30}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":43}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":44}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":5}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":10}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":17}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":19}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":14}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":21}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":28}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":42}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":24}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":19}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":24}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":21}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":22}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":6}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":98}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":113}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":35}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":106}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":12}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":51}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":5}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":3}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":33}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":27}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":30}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":3}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":0}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":84}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":91}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":80}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":59}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":26}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":37}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":5}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":56}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":71}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":109}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":32}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":51}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":37}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":3}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":36}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":29}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":28}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":30}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":3}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":32}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":89}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":3}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":18}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":62}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":166}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":17}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":132}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":6}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":3}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":55}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":49}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":25}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":9}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":32}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":150}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":76}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":118}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":25}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":19}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":9}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":45}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":74}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":26}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":19}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":9}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":82}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":58}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":0}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":36}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":47}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":56}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":9}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":0}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":28}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":28}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":40}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":47}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":13}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":49}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":33}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":32}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":13}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":72}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":60}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":25}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":12}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":16}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":24}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":54}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":0}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":56}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":112}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":112}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":49}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":102}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":87}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":25}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":17}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":0}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":21}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":58}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":77}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":76}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":81}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":0}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":60}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":40}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":34}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":74}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":40}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":27}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":19}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":31}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":22}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":70}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":71}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":22}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":20}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":26}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":17}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":17}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":14}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":20}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":42}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":123}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":23}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":15}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":86}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":22}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":13}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":11}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":25}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":40}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":121}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":21}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":13}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":74}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":28}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":13}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":0}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":61}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":40}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":11}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":7}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":22}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":61}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":29}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":24}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":7}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":15}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":28}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":5}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":3}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":20,\"44\":20,\"45\":20,\"46\":20,\"47\":20,\"48\":20,\"49\":20,\"50\":20,\"51\":20,\"52\":20,\"53\":20,\"54\":20,\"55\":20,\"56\":20,\"57\":20,\"58\":20,\"59\":20,\"60\":20,\"61\":20,\"62\":20,\"63\":20,\"64\":20,\"65\":20,\"66\":20,\"67\":20,\"68\":20,\"69\":20,\"70\":20,\"71\":0,\"72\":20,\"73\":20,\"74\":20,\"75\":20,\"76\":1,\"77\":1,\"78\":20,\"79\":20,\"80\":20,\"81\":1,\"82\":1,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":1,\"97\":1,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":1,\"103\":1,\"104\":0,\"105\":0,\"106\":1,\"107\":1,\"108\":1,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":1,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"locations\":[{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":76,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":34},\"end\":{\"line\":73,\"column\":11}},\"locations\":[{\"start\":{\"line\":71,\"column\":34},\"end\":{\"line\":73,\"column\":11}}]},\"2\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":81,\"column\":3}},\"locations\":[{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":81,\"column\":3}}]}},\"b\":{\"0\":[20],\"1\":[0],\"2\":[20]},\"fnMap\":{\"0\":{\"name\":\"BlockDispatcher\",\"decl\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"line\":43},\"1\":{\"name\":\"onApplicationShutdown\",\"decl\":{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":81,\"column\":3}},\"loc\":{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":81,\"column\":3}},\"line\":78},\"2\":{\"name\":\"enqueueBlocks\",\"decl\":{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":96,\"column\":3}},\"loc\":{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":96,\"column\":3}},\"line\":83},\"3\":{\"name\":\"flushQueue\",\"decl\":{\"start\":{\"line\":98,\"column\":2},\"end\":{\"line\":102,\"column\":3}},\"loc\":{\"start\":{\"line\":98,\"column\":2},\"end\":{\"line\":102,\"column\":3}},\"line\":98},\"4\":{\"name\":\"memoryleft\",\"decl\":{\"start\":{\"line\":104,\"column\":10},\"end\":{\"line\":106,\"column\":3}},\"loc\":{\"start\":{\"line\":104,\"column\":10},\"end\":{\"line\":106,\"column\":3}},\"line\":104},\"5\":{\"name\":\"queueStats\",\"decl\":{\"start\":{\"line\":109,\"column\":2},\"end\":{\"line\":114,\"column\":3}},\"loc\":{\"start\":{\"line\":109,\"column\":2},\"end\":{\"line\":114,\"column\":3}},\"line\":109},\"6\":{\"name\":\"fetchBlocksFromQueue\",\"decl\":{\"start\":{\"line\":115,\"column\":10},\"end\":{\"line\":221,\"column\":3}},\"loc\":{\"start\":{\"line\":115,\"column\":10},\"end\":{\"line\":221,\"column\":3}},\"line\":115}},\"f\":{\"0\":20,\"1\":20,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/blockDispatcher/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/blockDispatcher/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":35}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":42}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/blockDispatcher/worker-block-dispatcher.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/blockDispatcher/worker-block-dispatcher.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":42}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":28}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":43}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":78}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":42}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":53}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":39}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":58}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":55}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":56}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":46}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":48}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":59}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":56}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":60}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":57}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":15}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":49}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":32}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":39}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":41}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":69}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":35}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":2}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":26}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":30}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":20}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":19}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":15}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":17}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":77}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":66}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":68}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":53}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":34}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":1}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":30}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":29}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":29}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":33}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":74}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":14}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":27}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":32}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":40}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":50}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":41}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":31}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":41}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":35}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":30}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":43}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":49}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":5}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":10}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":17}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":19}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":14}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":21}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":28}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":92}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":24}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":19}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":24}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":21}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":22}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":6}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":109}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":72}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":42}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":3}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":84}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":111}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":42}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":3}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":48}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":27}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":29}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":23}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":23}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":23}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":64}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":5}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":3}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":100}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":11}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":50}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":76}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":6}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":91}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":80}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":59}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":50}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":37}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":5}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":102}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":53}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":15}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":25}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":43}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":58}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":100}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":26}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":17}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":54}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":76}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":10}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":32}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":7}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":12}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":8}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":24}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":23}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":23}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":9}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":106}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":5}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":109}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":3}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":0}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":80}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":32}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":43}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":0}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":52}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":78}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":53}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":0}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":63}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":0}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":57}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":0}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":38}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":11}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":27}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":57}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":80}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":17}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":9}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":0}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":43}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":0}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":100}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":0}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":45}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":27}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":20}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":29}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":11}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":24}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":64}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":0}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":41}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":17}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":9}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":21}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":12}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":106}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":10}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":24}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":7}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":6}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":0}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":52}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":34}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":15}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":7}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":14}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":7}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":3}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":0}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":18}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":45}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":40}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":46}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":42}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":5}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":3}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":0}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":52}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":38}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":38}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":3}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":0}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":44}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":40}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":77}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":57}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":28}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":7}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":3}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":0}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":55}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":47}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":8}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":84}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":82}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":45}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":39}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":7}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":53}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":0}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":68}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":85}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":107}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":0}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":37}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":3}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":0}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":66}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":66}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":50}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":75}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":3}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":3,\"34\":3,\"35\":3,\"36\":3,\"37\":3,\"38\":3,\"39\":3,\"40\":3,\"41\":3,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":3,\"56\":3,\"57\":3,\"58\":3,\"59\":3,\"60\":3,\"61\":3,\"62\":3,\"63\":3,\"64\":3,\"65\":3,\"66\":3,\"67\":3,\"68\":3,\"69\":3,\"70\":3,\"71\":3,\"72\":3,\"73\":3,\"74\":3,\"75\":3,\"76\":3,\"77\":3,\"78\":3,\"79\":3,\"80\":3,\"81\":3,\"82\":3,\"83\":3,\"84\":1,\"85\":1,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":1,\"91\":1,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":1,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":1,\"141\":1,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":1,\"193\":1,\"194\":1,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":1,\"201\":1,\"202\":1,\"203\":0,\"204\":0,\"205\":1,\"206\":1,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":1,\"214\":1,\"215\":4,\"216\":4,\"217\":9,\"218\":9,\"219\":9,\"220\":3,\"221\":3,\"222\":4,\"223\":1,\"224\":1,\"225\":1,\"226\":1,\"227\":1,\"228\":1,\"229\":1,\"230\":1,\"231\":1,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"locations\":[{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":42,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"locations\":[{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":84,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":215,\"loc\":{\"start\":{\"line\":215,\"column\":10},\"end\":{\"line\":230,\"column\":3}},\"locations\":[{\"start\":{\"line\":215,\"column\":10},\"end\":{\"line\":230,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":217,\"loc\":{\"start\":{\"line\":217,\"column\":7},\"end\":{\"line\":223,\"column\":13}},\"locations\":[{\"start\":{\"line\":217,\"column\":7},\"end\":{\"line\":223,\"column\":13}}]},\"4\":{\"type\":\"branch\",\"line\":220,\"loc\":{\"start\":{\"line\":220,\"column\":44},\"end\":{\"line\":222,\"column\":7}},\"locations\":[{\"start\":{\"line\":220,\"column\":44},\"end\":{\"line\":222,\"column\":7}}]},\"5\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":5},\"end\":{\"line\":230,\"column\":3}},\"locations\":[{\"start\":{\"line\":223,\"column\":5},\"end\":{\"line\":230,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":227,\"loc\":{\"start\":{\"line\":227,\"column\":40},\"end\":{\"line\":227,\"column\":104}},\"locations\":[{\"start\":{\"line\":227,\"column\":40},\"end\":{\"line\":227,\"column\":104}}]}},\"b\":{\"0\":[3],\"1\":[3],\"2\":[4],\"3\":[9],\"4\":[3],\"5\":[1],\"6\":[3]},\"fnMap\":{\"0\":{\"name\":\"initAutoQueue\",\"decl\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"loc\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"line\":34},\"1\":{\"name\":\"WorkerBlockDispatcher\",\"decl\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"loc\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"line\":55},\"2\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":90,\"column\":3}},\"loc\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":90,\"column\":3}},\"line\":86},\"3\":{\"name\":\"onApplicationShutdown\",\"decl\":{\"start\":{\"line\":92,\"column\":2},\"end\":{\"line\":101,\"column\":3}},\"loc\":{\"start\":{\"line\":92,\"column\":2},\"end\":{\"line\":101,\"column\":3}},\"line\":92},\"4\":{\"name\":\"enqueueBlocks\",\"decl\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":140,\"column\":3}},\"loc\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":140,\"column\":3}},\"line\":102},\"5\":{\"name\":\"enqueueBlock\",\"decl\":{\"start\":{\"line\":142,\"column\":10},\"end\":{\"line\":192,\"column\":3}},\"loc\":{\"start\":{\"line\":142,\"column\":10},\"end\":{\"line\":192,\"column\":3}},\"line\":142},\"6\":{\"name\":\"sampleWorkerStatus\",\"decl\":{\"start\":{\"line\":195,\"column\":8},\"end\":{\"line\":200,\"column\":3}},\"loc\":{\"start\":{\"line\":195,\"column\":8},\"end\":{\"line\":200,\"column\":3}},\"line\":195},\"7\":{\"name\":\"get latestBufferedHeight\",\"decl\":{\"start\":{\"line\":203,\"column\":2},\"end\":{\"line\":205,\"column\":3}},\"loc\":{\"start\":{\"line\":203,\"column\":2},\"end\":{\"line\":205,\"column\":3}},\"line\":203},\"8\":{\"name\":\"set latestBufferedHeight\",\"decl\":{\"start\":{\"line\":207,\"column\":2},\"end\":{\"line\":213,\"column\":3}},\"loc\":{\"start\":{\"line\":207,\"column\":2},\"end\":{\"line\":213,\"column\":3}},\"line\":207},\"9\":{\"name\":\"getNextWorkerIndex\",\"decl\":{\"start\":{\"line\":215,\"column\":10},\"end\":{\"line\":230,\"column\":3}},\"loc\":{\"start\":{\"line\":215,\"column\":10},\"end\":{\"line\":230,\"column\":3}},\"line\":215},\"10\":{\"name\":\"maxBatchSize\",\"decl\":{\"start\":{\"line\":232,\"column\":10},\"end\":{\"line\":236,\"column\":3}},\"loc\":{\"start\":{\"line\":232,\"column\":10},\"end\":{\"line\":236,\"column\":3}},\"line\":232}},\"f\":{\"0\":3,\"1\":3,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":4,\"10\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/connectionPool.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/connectionPool.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":49}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":65}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":42}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":26}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":73}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":54}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":40}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":36}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":45}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":73}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":44}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":58}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":43}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":30}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":33}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":32}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":29}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":2}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":28}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":19}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":28}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":10}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":2}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":13}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":118}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":41}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":45}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":80}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":94}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":50}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":34}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":40}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":104}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":56}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":3}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":48}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":85}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":3}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":67}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":32}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":112}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":23}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":47}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":5}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":85}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":48}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":74}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":5}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":3}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":67}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":46}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":90}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":5}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":32}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":45}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":3}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":55}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":45}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":3}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":0}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":62}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":103}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":61}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":48}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":5}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":38}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":3}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":16}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":41}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":33}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":22}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":143}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":8}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":5}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":38}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":58}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":39}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":40}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":37}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":75}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":17}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":54}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":87}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":65}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":105}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":49}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":15}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":0}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":39}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":72}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":37}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":65}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":122}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":28}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":29}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":86}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":26}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":13}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":12}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":9}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":85}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":51}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":8}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":7}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":27}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":3}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":32}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":48}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":3}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":63}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":49}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":0}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":38}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":11}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":62}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":0}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":49}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":79}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":57}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":63}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":19}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":50}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":16}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":7}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":6}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":0}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":98}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":100}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":66}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":7}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":0}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":45}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":47}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":3}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":0}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":28}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":44}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":24}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":13}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":5}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":82}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":41}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":13}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":5}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":72}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":0}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":22}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":42}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":57}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":112}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":118}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":0}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":83}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":8}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":6}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":0}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":40}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":3}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":0}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":81}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":61}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":42}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":45}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":3}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":0}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":84}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":62}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":42}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":45}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":3}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":0}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":54}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":30}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":45}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":89}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":45}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":63}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":15}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":7}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":47}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":7}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":3}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":0}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":27}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":21}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":34}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":50}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":11}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":79}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":15}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":21}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":11}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":6}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":33}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":3}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":0}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":59}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":35}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":69}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":0}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":110}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":36}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":5}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":3}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":0}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":51}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":79}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":80}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":0}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":44}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":38}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":94}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":14}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":95}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":7}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":5}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":0}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":70}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":66}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":0}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":26}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":41}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":45}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":3}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":26,\"44\":26,\"45\":1,\"46\":1,\"47\":52,\"48\":52,\"49\":1,\"50\":1,\"51\":25,\"52\":25,\"53\":25,\"54\":25,\"55\":25,\"56\":25,\"57\":1,\"58\":1,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":1,\"64\":1,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":1,\"72\":1,\"73\":0,\"74\":0,\"75\":1,\"76\":1,\"77\":25,\"78\":25,\"79\":0,\"80\":0,\"81\":25,\"82\":25,\"83\":1,\"84\":1,\"85\":51,\"86\":51,\"87\":51,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":51,\"93\":51,\"94\":51,\"95\":51,\"96\":51,\"97\":51,\"98\":51,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":51,\"121\":51,\"122\":51,\"123\":51,\"124\":51,\"125\":51,\"126\":51,\"127\":1,\"128\":1,\"129\":0,\"130\":0,\"131\":1,\"132\":1,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":1,\"158\":1,\"159\":1,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":1,\"184\":1,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":1,\"190\":1,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":1,\"196\":1,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":1,\"208\":1,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":1,\"221\":1,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":1,\"230\":1,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"locations\":[{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":45,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":3}},\"locations\":[{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":53},\"end\":{\"line\":48,\"column\":82}},\"locations\":[{\"start\":{\"line\":48,\"column\":53},\"end\":{\"line\":48,\"column\":82}}]},\"3\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"locations\":[{\"start\":{\"line\":51,\"column\":2},\"end\":{\"line\":57,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":10},\"end\":{\"line\":83,\"column\":3}},\"locations\":[{\"start\":{\"line\":77,\"column\":10},\"end\":{\"line\":83,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":60},\"end\":{\"line\":81,\"column\":5}},\"locations\":[{\"start\":{\"line\":79,\"column\":60},\"end\":{\"line\":81,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":127,\"column\":3}},\"locations\":[{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":127,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":32},\"end\":{\"line\":92,\"column\":5}},\"locations\":[{\"start\":{\"line\":88,\"column\":32},\"end\":{\"line\":92,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":98,\"loc\":{\"start\":{\"line\":98,\"column\":11},\"end\":{\"line\":124,\"column\":7}},\"locations\":[{\"start\":{\"line\":98,\"column\":11},\"end\":{\"line\":124,\"column\":7}}]},\"9\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":36},\"end\":{\"line\":120,\"column\":9}},\"locations\":[{\"start\":{\"line\":99,\"column\":36},\"end\":{\"line\":120,\"column\":9}}]}},\"b\":{\"0\":[26],\"1\":[52],\"2\":[50],\"3\":[25],\"4\":[25],\"5\":[0],\"6\":[51],\"7\":[0],\"8\":[51],\"9\":[0]},\"fnMap\":{\"0\":{\"name\":\"ConnectionPoolService\",\"decl\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"line\":43},\"1\":{\"name\":\"onApplicationShutdown\",\"decl\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":3}},\"loc\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":3}},\"line\":47},\"2\":{\"name\":\"addToConnections\",\"decl\":{\"start\":{\"line\":51,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"loc\":{\"start\":{\"line\":51,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"line\":51},\"3\":{\"name\":\"addBatchToConnections\",\"decl\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":63,\"column\":3}},\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":63,\"column\":3}},\"line\":59},\"4\":{\"name\":\"updateConnection\",\"decl\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":71,\"column\":3}},\"loc\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":71,\"column\":3}},\"line\":65},\"5\":{\"name\":\"connectToApi\",\"decl\":{\"start\":{\"line\":73,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"loc\":{\"start\":{\"line\":73,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"line\":73},\"6\":{\"name\":\"updateNextConnectedApiIndex\",\"decl\":{\"start\":{\"line\":77,\"column\":10},\"end\":{\"line\":83,\"column\":3}},\"loc\":{\"start\":{\"line\":77,\"column\":10},\"end\":{\"line\":83,\"column\":3}},\"line\":77},\"7\":{\"name\":\"get api\",\"decl\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":127,\"column\":3}},\"loc\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":127,\"column\":3}},\"line\":85},\"8\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":98,\"column\":11},\"end\":{\"line\":124,\"column\":7}},\"loc\":{\"start\":{\"line\":98,\"column\":11},\"end\":{\"line\":124,\"column\":7}},\"line\":98},\"9\":{\"name\":\"get numConnections\",\"decl\":{\"start\":{\"line\":129,\"column\":2},\"end\":{\"line\":131,\"column\":3}},\"loc\":{\"start\":{\"line\":129,\"column\":2},\"end\":{\"line\":131,\"column\":3}},\"line\":129},\"10\":{\"name\":\"handleApiDisconnects\",\"decl\":{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":157,\"column\":3}},\"loc\":{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":157,\"column\":3}},\"line\":133},\"11\":{\"name\":\"logEndpointStatus\",\"decl\":{\"start\":{\"line\":160,\"column\":8},\"end\":{\"line\":183,\"column\":3}},\"loc\":{\"start\":{\"line\":160,\"column\":8},\"end\":{\"line\":183,\"column\":3}},\"line\":160},\"12\":{\"name\":\"handleApiSuccess\",\"decl\":{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":189,\"column\":3}},\"loc\":{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":189,\"column\":3}},\"line\":185},\"13\":{\"name\":\"handleApiError\",\"decl\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":195,\"column\":3}},\"loc\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":195,\"column\":3}},\"line\":191},\"14\":{\"name\":\"handleConnectionStateChange\",\"decl\":{\"start\":{\"line\":197,\"column\":2},\"end\":{\"line\":207,\"column\":3}},\"loc\":{\"start\":{\"line\":197,\"column\":2},\"end\":{\"line\":207,\"column\":3}},\"line\":197},\"15\":{\"name\":\"addToResultCache\",\"decl\":{\"start\":{\"line\":209,\"column\":10},\"end\":{\"line\":220,\"column\":3}},\"loc\":{\"start\":{\"line\":209,\"column\":10},\"end\":{\"line\":220,\"column\":3}},\"line\":209},\"16\":{\"name\":\"flushResultCacheIfNeeded\",\"decl\":{\"start\":{\"line\":222,\"column\":10},\"end\":{\"line\":229,\"column\":3}},\"loc\":{\"start\":{\"line\":222,\"column\":10},\"end\":{\"line\":229,\"column\":3}},\"line\":222},\"17\":{\"name\":\"flushResultCache\",\"decl\":{\"start\":{\"line\":231,\"column\":10},\"end\":{\"line\":249,\"column\":3}},\"loc\":{\"start\":{\"line\":231,\"column\":10},\"end\":{\"line\":249,\"column\":3}},\"line\":231}},\"f\":{\"0\":26,\"1\":52,\"2\":25,\"3\":0,\"4\":0,\"5\":0,\"6\":25,\"7\":51,\"8\":51,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/connectionPoolState.manager.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/connectionPoolState.manager.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":53}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":26}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":53}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":54}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":36}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":68}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":30}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":23}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":33}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":27}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":40}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":19}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":19}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":27}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":23}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":23}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":23}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":18}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":26}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":21}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":29}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":48}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":95}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":91}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":86}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":87}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":40}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":118}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":40}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":55}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":21}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":13}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":35}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":19}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":45}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":57}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":75}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":74}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":48}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":1}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":88}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":34}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":59}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":61}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":77}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":45}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":23}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":28}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":22}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":25}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":22}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":25}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":20}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":22}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":25}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":6}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":35}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":18}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":57}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":5}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":3}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":18}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":25}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":53}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":3}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":61}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":94}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":54}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":40}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":29}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":5}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":61}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":80}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":6}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":48}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":117}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":6}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":33}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":71}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":61}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":89}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":8}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":46}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":63}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":93}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":25}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":7}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":74}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":91}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":5}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":73}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":92}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":46}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":95}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":56}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":41}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":35}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":58}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":82}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":7}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":0}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":45}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":31}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":0}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":112}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":76}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":64}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":36}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":3}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":52}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":39}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":19}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":38}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":44}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":40}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":35}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":6}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":3}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":0}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":32}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":41}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":3}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":61}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":61}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":21}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":12}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":40}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":40}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":3}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":0}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":61}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":61}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":21}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":13}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":35}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":20}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":39}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":61}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":52}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":95}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":3}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":0}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":61}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":68}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":45}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":38}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":0}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":54}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":106}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":46}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":41}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":72}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":0}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":117}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":0}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":44}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":60}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":7}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":14}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":3}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":0}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":61}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":55}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":40}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":50}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":48}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":5}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":3}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":0}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":61}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":64}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":31}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":46}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":56}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":84}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":22}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":5}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":3}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":0}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":61}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":48}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":50}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":34}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":7}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":3}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":0}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":61}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":82}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":111}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":78}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":13}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":5}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":99}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":55}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":39}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":0}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":48}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":42}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":66}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":46}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":46}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":7}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":13}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":5}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":0}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":45}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":184}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":51}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":0}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":59}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":47}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":14}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":42}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":7}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":0}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":49}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":0}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":18}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":104}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":26}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":12}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":8}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":5}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":3}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":0}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":89}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":67}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":57}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":84}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":3}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":0}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":61}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":81}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":66}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":58}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":0}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":103}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":56}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":3}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":0}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":111}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":42}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":72}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":5}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":3}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":0}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":110}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":40}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":67}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":5}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":3}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":0}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":61}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":55}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":87}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":3}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":26,\"51\":26,\"52\":26,\"53\":26,\"54\":26,\"55\":26,\"56\":26,\"57\":25,\"58\":25,\"59\":25,\"60\":25,\"61\":25,\"62\":25,\"63\":25,\"64\":25,\"65\":25,\"66\":25,\"67\":25,\"68\":25,\"69\":25,\"70\":25,\"71\":0,\"72\":0,\"73\":25,\"74\":26,\"75\":26,\"76\":26,\"77\":0,\"78\":0,\"79\":26,\"80\":26,\"81\":26,\"82\":25,\"83\":25,\"84\":0,\"85\":0,\"86\":25,\"87\":25,\"88\":25,\"89\":25,\"90\":25,\"91\":25,\"92\":25,\"93\":25,\"94\":25,\"95\":25,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":25,\"111\":25,\"112\":25,\"113\":25,\"114\":25,\"115\":25,\"116\":25,\"117\":25,\"118\":25,\"119\":25,\"120\":25,\"121\":25,\"122\":25,\"123\":25,\"124\":25,\"125\":25,\"126\":25,\"127\":25,\"128\":25,\"129\":25,\"130\":25,\"131\":25,\"132\":25,\"133\":26,\"134\":26,\"135\":25,\"136\":25,\"137\":25,\"138\":25,\"139\":25,\"140\":0,\"141\":25,\"142\":25,\"143\":26,\"144\":26,\"145\":0,\"146\":0,\"147\":26,\"148\":26,\"149\":26,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":26,\"156\":26,\"157\":26,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":26,\"165\":26,\"166\":26,\"167\":0,\"168\":0,\"169\":26,\"170\":26,\"171\":26,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":26,\"189\":26,\"190\":26,\"191\":25,\"192\":0,\"193\":0,\"194\":0,\"195\":25,\"196\":26,\"197\":26,\"198\":26,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":26,\"207\":26,\"208\":26,\"209\":26,\"210\":25,\"211\":26,\"212\":26,\"213\":26,\"214\":26,\"215\":26,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":26,\"253\":26,\"254\":3,\"255\":3,\"256\":3,\"257\":3,\"258\":26,\"259\":26,\"260\":26,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":26,\"268\":26,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":26,\"274\":26,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":26,\"280\":26,\"281\":26,\"282\":0,\"283\":0,\"284\":26},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":285,\"column\":1}},\"locations\":[{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":285,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"locations\":[{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":74,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":17},\"end\":{\"line\":73,\"column\":5}},\"locations\":[{\"start\":{\"line\":71,\"column\":17},\"end\":{\"line\":73,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":133,\"column\":3}},\"locations\":[{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":133,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":39},\"end\":{\"line\":86,\"column\":5}},\"locations\":[{\"start\":{\"line\":84,\"column\":39},\"end\":{\"line\":86,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":32},\"end\":{\"line\":110,\"column\":5}},\"locations\":[{\"start\":{\"line\":96,\"column\":32},\"end\":{\"line\":110,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":6},\"end\":{\"line\":89,\"column\":80}},\"locations\":[{\"start\":{\"line\":89,\"column\":6},\"end\":{\"line\":89,\"column\":80}}]},\"7\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":6},\"end\":{\"line\":93,\"column\":117}},\"locations\":[{\"start\":{\"line\":93,\"column\":6},\"end\":{\"line\":93,\"column\":117}}]},\"8\":{\"type\":\"branch\",\"line\":116,\"loc\":{\"start\":{\"line\":116,\"column\":39},\"end\":{\"line\":116,\"column\":90}},\"locations\":[{\"start\":{\"line\":116,\"column\":39},\"end\":{\"line\":116,\"column\":90}}]},\"9\":{\"type\":\"branch\",\"line\":120,\"loc\":{\"start\":{\"line\":120,\"column\":22},\"end\":{\"line\":123,\"column\":5}},\"locations\":[{\"start\":{\"line\":120,\"column\":22},\"end\":{\"line\":123,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":29},\"end\":{\"line\":121,\"column\":53}},\"locations\":[{\"start\":{\"line\":121,\"column\":29},\"end\":{\"line\":121,\"column\":53}}]},\"11\":{\"type\":\"branch\",\"line\":129,\"loc\":{\"start\":{\"line\":129,\"column\":52},\"end\":{\"line\":129,\"column\":74}},\"locations\":[{\"start\":{\"line\":129,\"column\":52},\"end\":{\"line\":129,\"column\":74}}]},\"12\":{\"type\":\"branch\",\"line\":135,\"loc\":{\"start\":{\"line\":135,\"column\":10},\"end\":{\"line\":143,\"column\":3}},\"locations\":[{\"start\":{\"line\":135,\"column\":10},\"end\":{\"line\":143,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":137,\"loc\":{\"start\":{\"line\":137,\"column\":6},\"end\":{\"line\":141,\"column\":35}},\"locations\":[{\"start\":{\"line\":137,\"column\":6},\"end\":{\"line\":141,\"column\":35}}]},\"14\":{\"type\":\"branch\",\"line\":138,\"loc\":{\"start\":{\"line\":138,\"column\":35},\"end\":{\"line\":139,\"column\":41}},\"locations\":[{\"start\":{\"line\":138,\"column\":35},\"end\":{\"line\":139,\"column\":41}}]},\"15\":{\"type\":\"branch\",\"line\":139,\"loc\":{\"start\":{\"line\":139,\"column\":41},\"end\":{\"line\":140,\"column\":37}},\"locations\":[{\"start\":{\"line\":139,\"column\":41},\"end\":{\"line\":140,\"column\":37}}]},\"16\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":37},\"end\":{\"line\":141,\"column\":35}},\"locations\":[{\"start\":{\"line\":140,\"column\":37},\"end\":{\"line\":141,\"column\":35}}]},\"17\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"locations\":[{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":196,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":192,\"loc\":{\"start\":{\"line\":192,\"column\":39},\"end\":{\"line\":195,\"column\":5}},\"locations\":[{\"start\":{\"line\":192,\"column\":39},\"end\":{\"line\":195,\"column\":5}}]},\"19\":{\"type\":\"branch\",\"line\":209,\"loc\":{\"start\":{\"line\":209,\"column\":2},\"end\":{\"line\":213,\"column\":3}},\"locations\":[{\"start\":{\"line\":209,\"column\":2},\"end\":{\"line\":213,\"column\":3}}]},\"20\":{\"type\":\"branch\",\"line\":210,\"loc\":{\"start\":{\"line\":210,\"column\":35},\"end\":{\"line\":212,\"column\":5}},\"locations\":[{\"start\":{\"line\":210,\"column\":35},\"end\":{\"line\":212,\"column\":5}}]},\"21\":{\"type\":\"branch\",\"line\":254,\"loc\":{\"start\":{\"line\":254,\"column\":10},\"end\":{\"line\":258,\"column\":3}},\"locations\":[{\"start\":{\"line\":254,\"column\":10},\"end\":{\"line\":258,\"column\":3}}]}},\"b\":{\"0\":[26],\"1\":[25],\"2\":[0],\"3\":[25],\"4\":[0],\"5\":[0],\"6\":[25],\"7\":[25],\"8\":[25],\"9\":[25],\"10\":[0],\"11\":[25],\"12\":[25],\"13\":[25],\"14\":[0],\"15\":[0],\"16\":[0],\"17\":[25],\"18\":[0],\"19\":[26],\"20\":[25],\"21\":[3]},\"fnMap\":{\"0\":{\"name\":\"ConnectionPoolStateManager\",\"decl\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":285,\"column\":1}},\"loc\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":285,\"column\":1}},\"line\":51},\"1\":{\"name\":\"addToConnections\",\"decl\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"loc\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"line\":57},\"2\":{\"name\":\"logConnectionStatus\",\"decl\":{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":79,\"column\":3}},\"loc\":{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":79,\"column\":3}},\"line\":77},\"3\":{\"name\":\"getNextConnectedEndpoint\",\"decl\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":133,\"column\":3}},\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":133,\"column\":3}},\"line\":82},\"4\":{\"name\":\"getPrimaryEndpoint\",\"decl\":{\"start\":{\"line\":135,\"column\":10},\"end\":{\"line\":143,\"column\":3}},\"loc\":{\"start\":{\"line\":135,\"column\":10},\"end\":{\"line\":143,\"column\":3}},\"line\":135},\"5\":{\"name\":\"get numConnections\",\"decl\":{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":147,\"column\":3}},\"loc\":{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":147,\"column\":3}},\"line\":145},\"6\":{\"name\":\"getFieldValue\",\"decl\":{\"start\":{\"line\":150,\"column\":2},\"end\":{\"line\":155,\"column\":3}},\"loc\":{\"start\":{\"line\":150,\"column\":2},\"end\":{\"line\":155,\"column\":3}},\"line\":150},\"7\":{\"name\":\"setFieldValue\",\"decl\":{\"start\":{\"line\":158,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"loc\":{\"start\":{\"line\":158,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"line\":158},\"8\":{\"name\":\"getSuspendedEndpoints\",\"decl\":{\"start\":{\"line\":167,\"column\":2},\"end\":{\"line\":169,\"column\":3}},\"loc\":{\"start\":{\"line\":167,\"column\":2},\"end\":{\"line\":169,\"column\":3}},\"line\":167},\"9\":{\"name\":\"setTimeout\",\"decl\":{\"start\":{\"line\":172,\"column\":2},\"end\":{\"line\":188,\"column\":3}},\"loc\":{\"start\":{\"line\":172,\"column\":2},\"end\":{\"line\":188,\"column\":3}},\"line\":172},\"10\":{\"name\":\"clearTimeout\",\"decl\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"loc\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"line\":191},\"11\":{\"name\":\"removeFromConnections\",\"decl\":{\"start\":{\"line\":199,\"column\":2},\"end\":{\"line\":206,\"column\":3}},\"loc\":{\"start\":{\"line\":199,\"column\":2},\"end\":{\"line\":206,\"column\":3}},\"line\":199},\"12\":{\"name\":\"onApplicationShutdown\",\"decl\":{\"start\":{\"line\":209,\"column\":2},\"end\":{\"line\":213,\"column\":3}},\"loc\":{\"start\":{\"line\":209,\"column\":2},\"end\":{\"line\":213,\"column\":3}},\"line\":209},\"13\":{\"name\":\"handleApiError\",\"decl\":{\"start\":{\"line\":216,\"column\":2},\"end\":{\"line\":252,\"column\":3}},\"loc\":{\"start\":{\"line\":216,\"column\":2},\"end\":{\"line\":252,\"column\":3}},\"line\":216},\"14\":{\"name\":\"calculatePerformanceScore\",\"decl\":{\"start\":{\"line\":254,\"column\":10},\"end\":{\"line\":258,\"column\":3}},\"loc\":{\"start\":{\"line\":254,\"column\":10},\"end\":{\"line\":258,\"column\":3}},\"line\":254},\"15\":{\"name\":\"handleApiSuccess\",\"decl\":{\"start\":{\"line\":261,\"column\":2},\"end\":{\"line\":267,\"column\":3}},\"loc\":{\"start\":{\"line\":261,\"column\":2},\"end\":{\"line\":267,\"column\":3}},\"line\":261},\"16\":{\"name\":\"handleBatchApiSuccess\",\"decl\":{\"start\":{\"line\":269,\"column\":2},\"end\":{\"line\":273,\"column\":3}},\"loc\":{\"start\":{\"line\":269,\"column\":2},\"end\":{\"line\":273,\"column\":3}},\"line\":269},\"17\":{\"name\":\"handleBatchApiError\",\"decl\":{\"start\":{\"line\":275,\"column\":2},\"end\":{\"line\":279,\"column\":3}},\"loc\":{\"start\":{\"line\":275,\"column\":2},\"end\":{\"line\":279,\"column\":3}},\"line\":275},\"18\":{\"name\":\"getDisconnectedEndpoints\",\"decl\":{\"start\":{\"line\":282,\"column\":2},\"end\":{\"line\":284,\"column\":3}},\"loc\":{\"start\":{\"line\":282,\"column\":2},\"end\":{\"line\":284,\"column\":3}},\"line\":282}},\"f\":{\"0\":26,\"1\":25,\"2\":0,\"3\":25,\"4\":25,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":25,\"11\":0,\"12\":26,\"13\":0,\"14\":3,\"15\":0,\"16\":0,\"17\":0,\"18\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/coreDictionary.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/coreDictionary.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":52}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":43}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":58}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":32}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":56}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":35}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":92}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":32}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":43}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":29}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":26}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":37}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":14}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":52}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":30}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":46}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":50}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":6}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":19}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":23}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":26}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":18}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":33}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":62}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":43}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":92}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":71}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":58}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":91}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":29}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":29}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":3}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":31}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":26}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":69}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":5}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":26}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":3}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":42}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":61}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":3}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":71}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":101}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":42}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":13}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":5}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":35}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":40}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":45}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":54}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":99}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":61}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":82}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":3}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":31}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":23}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":25}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":57}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":65}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":43}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":19}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":114}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":39}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":3}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":67,\"20\":67,\"21\":67,\"22\":67,\"23\":67,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":6,\"39\":6,\"40\":1,\"41\":1,\"42\":75,\"43\":1,\"44\":1,\"45\":74,\"46\":74,\"47\":1,\"48\":1,\"49\":42,\"50\":42,\"51\":1,\"52\":1,\"53\":62,\"54\":62,\"55\":62,\"56\":62,\"57\":62,\"58\":62,\"59\":1,\"60\":1,\"61\":1,\"62\":22,\"63\":22,\"64\":22,\"65\":1,\"66\":1,\"67\":84,\"68\":84,\"69\":1,\"70\":1,\"71\":32,\"72\":32,\"73\":32,\"74\":32,\"75\":32,\"76\":32,\"77\":32,\"78\":32,\"79\":32,\"80\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":24,\"column\":6}},\"locations\":[{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":24,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}},\"locations\":[{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"locations\":[{\"start\":{\"line\":42,\"column\":2},\"end\":{\"line\":47,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":25},\"end\":{\"line\":45,\"column\":5}},\"locations\":[{\"start\":{\"line\":43,\"column\":25},\"end\":{\"line\":45,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":-1},\"end\":{\"line\":47,\"column\":3}},\"locations\":[{\"start\":{\"line\":46,\"column\":-1},\"end\":{\"line\":47,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":51,\"column\":3}},\"locations\":[{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":51,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":12},\"end\":{\"line\":59,\"column\":3}},\"locations\":[{\"start\":{\"line\":53,\"column\":12},\"end\":{\"line\":59,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":-1},\"end\":{\"line\":58,\"column\":34}},\"locations\":[{\"start\":{\"line\":58,\"column\":-1},\"end\":{\"line\":58,\"column\":34}}]},\"8\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"locations\":[{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":60},\"end\":{\"line\":64,\"column\":98}},\"locations\":[{\"start\":{\"line\":64,\"column\":60},\"end\":{\"line\":64,\"column\":98}}]},\"10\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"locations\":[{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":69,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":38},\"end\":{\"line\":68,\"column\":80}},\"locations\":[{\"start\":{\"line\":68,\"column\":38},\"end\":{\"line\":68,\"column\":80}}]},\"12\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":12},\"end\":{\"line\":80,\"column\":3}},\"locations\":[{\"start\":{\"line\":71,\"column\":12},\"end\":{\"line\":80,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":35},\"end\":{\"line\":76,\"column\":42}},\"locations\":[{\"start\":{\"line\":76,\"column\":35},\"end\":{\"line\":76,\"column\":42}}]},\"14\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":18},\"end\":{\"line\":78,\"column\":29}},\"locations\":[{\"start\":{\"line\":78,\"column\":18},\"end\":{\"line\":78,\"column\":29}}]},\"15\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":29},\"end\":{\"line\":78,\"column\":72}},\"locations\":[{\"start\":{\"line\":78,\"column\":29},\"end\":{\"line\":78,\"column\":72}}]},\"16\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":73},\"end\":{\"line\":78,\"column\":97}},\"locations\":[{\"start\":{\"line\":78,\"column\":73},\"end\":{\"line\":78,\"column\":97}}]},\"17\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":98},\"end\":{\"line\":78,\"column\":113}},\"locations\":[{\"start\":{\"line\":78,\"column\":98},\"end\":{\"line\":78,\"column\":113}}]}},\"b\":{\"0\":[67],\"1\":[6],\"2\":[75],\"3\":[1],\"4\":[74],\"5\":[42],\"6\":[62],\"7\":[0],\"8\":[22],\"9\":[16],\"10\":[84],\"11\":[252],\"12\":[32],\"13\":[29],\"14\":[29],\"15\":[10],\"16\":[7],\"17\":[25]},\"fnMap\":{\"0\":{\"name\":\"CoreDictionary\",\"decl\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":24,\"column\":6}},\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":24,\"column\":6}},\"line\":19},\"1\":{\"name\":\"get startHeight\",\"decl\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}},\"line\":38},\"2\":{\"name\":\"get metadata\",\"decl\":{\"start\":{\"line\":42,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"loc\":{\"start\":{\"line\":42,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"line\":42},\"3\":{\"name\":\"get useDictionary\",\"decl\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":51,\"column\":3}},\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":51,\"column\":3}},\"line\":49},\"4\":{\"name\":\"setDictionaryStartHeight\",\"decl\":{\"start\":{\"line\":53,\"column\":12},\"end\":{\"line\":59,\"column\":3}},\"loc\":{\"start\":{\"line\":53,\"column\":12},\"end\":{\"line\":59,\"column\":3}},\"line\":53},\"5\":{\"name\":\"heightValidation\",\"decl\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":62},\"6\":{\"name\":\"updateQueriesMap\",\"decl\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"line\":67},\"7\":{\"name\":\"getQueryConditions\",\"decl\":{\"start\":{\"line\":71,\"column\":12},\"end\":{\"line\":80,\"column\":3}},\"loc\":{\"start\":{\"line\":71,\"column\":12},\"end\":{\"line\":80,\"column\":3}},\"line\":71}},\"f\":{\"0\":67,\"1\":6,\"2\":75,\"3\":42,\"4\":62,\"5\":22,\"6\":84,\"7\":32}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/dictionary.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/dictionary.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":45}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":56}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":32}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":43}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":39}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":58}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":32}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":73}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":46}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":107}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":54}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":56}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":14}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":30}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":46}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":50}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":6}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":33}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":28}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":45}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":45}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":51}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":38}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":120}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":42}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":55}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":23}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":83}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":8}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":51}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":63}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":79}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":7}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":62}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":12}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":55}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":55}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":53}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":25}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":14}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":94}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":64}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":7}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":5}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":3}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":35}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":76}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":41}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":78}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":47}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":81}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":6}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":49}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":65}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":3}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":42}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":40}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":3}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":0}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":5}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":4}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":23}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":5}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":68}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":44}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":41}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":5}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":3}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":32}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":29}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":28}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":55}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":67}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":63}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":120}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":3}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":41}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":29}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":28}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":56}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":56}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":67}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":55}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":54}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":133}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":81}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":22}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":23}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":5}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":9}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":56}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":63}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":29}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":8}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":82}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":26}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":57}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":13}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":51}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":85}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":8}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":60}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":43}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":25}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":24}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":30}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":27}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":8}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":5}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":3}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":36}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":34}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":20}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":23}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":24}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":9}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":48}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":0}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":25}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":99}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":7}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":51}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":0}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":80}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":0}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":67}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":28}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":52}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":30}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":14}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":18}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":7}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":26}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":78}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":16}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":5}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":3}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":0}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":41}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":34}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":34}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":24}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":62}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":20}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":22}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":40}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":6}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":43}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":113}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":35}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":31}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":3}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":12,\"22\":12,\"23\":12,\"24\":12,\"25\":1,\"26\":1,\"27\":7,\"28\":7,\"29\":7,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":7,\"35\":7,\"36\":1,\"37\":1,\"38\":10,\"39\":0,\"40\":0,\"41\":0,\"42\":10,\"43\":10,\"44\":10,\"45\":10,\"46\":6,\"47\":10,\"48\":6,\"49\":10,\"50\":4,\"51\":4,\"52\":1,\"53\":1,\"54\":4,\"55\":3,\"56\":3,\"57\":3,\"58\":4,\"59\":10,\"60\":1,\"61\":1,\"62\":1,\"63\":5,\"64\":5,\"65\":5,\"66\":5,\"67\":5,\"68\":5,\"69\":5,\"70\":5,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":6,\"83\":18,\"84\":18,\"85\":6,\"86\":1,\"87\":1,\"88\":3,\"89\":3,\"90\":3,\"91\":3,\"92\":3,\"93\":3,\"94\":3,\"95\":1,\"96\":1,\"97\":6,\"98\":6,\"99\":6,\"100\":6,\"101\":6,\"102\":6,\"103\":6,\"104\":6,\"105\":6,\"106\":6,\"107\":1,\"108\":1,\"109\":5,\"110\":5,\"111\":5,\"112\":5,\"113\":5,\"114\":5,\"115\":6,\"116\":3,\"117\":3,\"118\":3,\"119\":3,\"120\":3,\"121\":3,\"122\":3,\"123\":3,\"124\":3,\"125\":3,\"126\":3,\"127\":3,\"128\":3,\"129\":6,\"130\":1,\"131\":1,\"132\":3,\"133\":3,\"134\":3,\"135\":3,\"136\":3,\"137\":3,\"138\":3,\"139\":3,\"140\":0,\"141\":0,\"142\":3,\"143\":3,\"144\":3,\"145\":3,\"146\":3,\"147\":3,\"148\":3,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":3,\"154\":0,\"155\":0,\"156\":0,\"157\":3,\"158\":1,\"159\":1,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":25,\"column\":6}},\"locations\":[{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":25,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"locations\":[{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":30,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"locations\":[{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":10},\"end\":{\"line\":60,\"column\":3}},\"locations\":[{\"start\":{\"line\":38,\"column\":10},\"end\":{\"line\":60,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":41},\"end\":{\"line\":42,\"column\":5}},\"locations\":[{\"start\":{\"line\":39,\"column\":41},\"end\":{\"line\":42,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":48},\"end\":{\"line\":46,\"column\":60}},\"locations\":[{\"start\":{\"line\":45,\"column\":48},\"end\":{\"line\":46,\"column\":60}}]},\"6\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":60},\"end\":{\"line\":47,\"column\":79}},\"locations\":[{\"start\":{\"line\":46,\"column\":60},\"end\":{\"line\":47,\"column\":79}}]},\"7\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":6},\"end\":{\"line\":50,\"column\":11}},\"locations\":[{\"start\":{\"line\":48,\"column\":6},\"end\":{\"line\":50,\"column\":11}}]},\"8\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":5},\"end\":{\"line\":59,\"column\":5}},\"locations\":[{\"start\":{\"line\":50,\"column\":5},\"end\":{\"line\":59,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":54},\"end\":{\"line\":55,\"column\":13}},\"locations\":[{\"start\":{\"line\":52,\"column\":54},\"end\":{\"line\":55,\"column\":13}}]},\"10\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":7},\"end\":{\"line\":58,\"column\":7}},\"locations\":[{\"start\":{\"line\":55,\"column\":7},\"end\":{\"line\":58,\"column\":7}}]},\"11\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":10},\"end\":{\"line\":71,\"column\":3}},\"locations\":[{\"start\":{\"line\":63,\"column\":10},\"end\":{\"line\":71,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":45},\"end\":{\"line\":70,\"column\":56}},\"locations\":[{\"start\":{\"line\":70,\"column\":45},\"end\":{\"line\":70,\"column\":56}}]},\"13\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":57},\"end\":{\"line\":70,\"column\":64}},\"locations\":[{\"start\":{\"line\":70,\"column\":57},\"end\":{\"line\":70,\"column\":64}}]},\"14\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":6},\"end\":{\"line\":67,\"column\":81}},\"locations\":[{\"start\":{\"line\":67,\"column\":6},\"end\":{\"line\":67,\"column\":81}}]},\"15\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":46},\"end\":{\"line\":67,\"column\":81}},\"locations\":[{\"start\":{\"line\":67,\"column\":46},\"end\":{\"line\":67,\"column\":81}}]},\"16\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"locations\":[{\"start\":{\"line\":73,\"column\":2},\"end\":{\"line\":75,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":86,\"column\":3}},\"locations\":[{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":86,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":83,\"loc\":{\"start\":{\"line\":83,\"column\":43},\"end\":{\"line\":85,\"column\":5}},\"locations\":[{\"start\":{\"line\":83,\"column\":43},\"end\":{\"line\":85,\"column\":5}}]},\"19\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"locations\":[{\"start\":{\"line\":88,\"column\":2},\"end\":{\"line\":95,\"column\":3}}]},\"20\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":10},\"end\":{\"line\":130,\"column\":3}},\"locations\":[{\"start\":{\"line\":97,\"column\":10},\"end\":{\"line\":130,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":21},\"end\":{\"line\":109,\"column\":5}},\"locations\":[{\"start\":{\"line\":107,\"column\":21},\"end\":{\"line\":109,\"column\":5}}]},\"22\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":-1},\"end\":{\"line\":116,\"column\":13}},\"locations\":[{\"start\":{\"line\":110,\"column\":-1},\"end\":{\"line\":116,\"column\":13}}]},\"23\":{\"type\":\"branch\",\"line\":116,\"loc\":{\"start\":{\"line\":116,\"column\":6},\"end\":{\"line\":129,\"column\":5}},\"locations\":[{\"start\":{\"line\":116,\"column\":6},\"end\":{\"line\":129,\"column\":5}}]},\"24\":{\"type\":\"branch\",\"line\":132,\"loc\":{\"start\":{\"line\":132,\"column\":12},\"end\":{\"line\":158,\"column\":3}},\"locations\":[{\"start\":{\"line\":132,\"column\":12},\"end\":{\"line\":158,\"column\":3}}]},\"25\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":24},\"end\":{\"line\":142,\"column\":7}},\"locations\":[{\"start\":{\"line\":140,\"column\":24},\"end\":{\"line\":142,\"column\":7}}]},\"26\":{\"type\":\"branch\",\"line\":149,\"loc\":{\"start\":{\"line\":149,\"column\":7},\"end\":{\"line\":153,\"column\":7}},\"locations\":[{\"start\":{\"line\":149,\"column\":7},\"end\":{\"line\":153,\"column\":7}}]},\"27\":{\"type\":\"branch\",\"line\":154,\"loc\":{\"start\":{\"line\":154,\"column\":6},\"end\":{\"line\":157,\"column\":5}},\"locations\":[{\"start\":{\"line\":154,\"column\":6},\"end\":{\"line\":157,\"column\":5}}]}},\"b\":{\"0\":[12],\"1\":[7],\"2\":[7],\"3\":[10],\"4\":[0],\"5\":[9],\"6\":[6],\"7\":[6],\"8\":[4],\"9\":[1],\"10\":[3],\"11\":[5],\"12\":[1],\"13\":[4],\"14\":[11],\"15\":[8],\"16\":[1],\"17\":[6],\"18\":[18],\"19\":[3],\"20\":[6],\"21\":[1],\"22\":[5],\"23\":[3],\"24\":[3],\"25\":[0],\"26\":[0],\"27\":[0]},\"fnMap\":{\"0\":{\"name\":\"DictionaryService\",\"decl\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":25,\"column\":6}},\"loc\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":25,\"column\":6}},\"line\":21},\"1\":{\"name\":\"onApplicationShutdown\",\"decl\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":30,\"column\":3}},\"line\":27},\"2\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":34},\"3\":{\"name\":\"getDictionary\",\"decl\":{\"start\":{\"line\":38,\"column\":10},\"end\":{\"line\":60,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":10},\"end\":{\"line\":60,\"column\":3}},\"line\":38},\"4\":{\"name\":\"findDictionary\",\"decl\":{\"start\":{\"line\":63,\"column\":10},\"end\":{\"line\":71,\"column\":3}},\"loc\":{\"start\":{\"line\":63,\"column\":10},\"end\":{\"line\":71,\"column\":3}},\"line\":63},\"5\":{\"name\":\"useDictionary\",\"decl\":{\"start\":{\"line\":73,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"loc\":{\"start\":{\"line\":73,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"line\":73},\"6\":{\"name\":\"buildDictionaryEntryMap\",\"decl\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":86,\"column\":3}},\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":86,\"column\":3}},\"line\":82},\"7\":{\"name\":\"scopedDictionaryEntries\",\"decl\":{\"start\":{\"line\":88,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"loc\":{\"start\":{\"line\":88,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"line\":88},\"8\":{\"name\":\"_scopedDictionaryEntries\",\"decl\":{\"start\":{\"line\":97,\"column\":10},\"end\":{\"line\":130,\"column\":3}},\"loc\":{\"start\":{\"line\":97,\"column\":10},\"end\":{\"line\":130,\"column\":3}},\"line\":97},\"9\":{\"name\":\"resolveDictionary\",\"decl\":{\"start\":{\"line\":132,\"column\":12},\"end\":{\"line\":158,\"column\":3}},\"loc\":{\"start\":{\"line\":132,\"column\":12},\"end\":{\"line\":158,\"column\":3}},\"line\":132},\"10\":{\"name\":\"getDictionaryEndpoints\",\"decl\":{\"start\":{\"line\":160,\"column\":12},\"end\":{\"line\":174,\"column\":3}},\"loc\":{\"start\":{\"line\":160,\"column\":12},\"end\":{\"line\":174,\"column\":3}},\"line\":160}},\"f\":{\"0\":12,\"1\":7,\"2\":7,\"3\":10,\"4\":5,\"5\":1,\"6\":6,\"7\":3,\"8\":6,\"9\":3,\"10\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":21}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":21}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":37}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":58}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":47}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":32}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":46}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":19}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":29}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":2}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":38}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":37}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":10}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":23}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":21}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":18}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":33}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":66}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":49}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":80}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":44}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":60}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":42}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":27}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":41}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":67}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":26}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":29}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":26}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":27}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":66}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/utils.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/utils.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":37}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":70}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":34}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":17}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":3}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":39}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":38}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":25}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":38}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":28}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":51}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":53}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":62}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":35}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":40}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":68}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":32}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":66}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":5}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":3}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":20}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":103}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":63}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":63}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":23}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":5}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":23}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":44}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":39}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":39}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":13}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":83}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":45}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":37}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":35}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":33}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":12}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":49}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":5}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":3}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":68}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":73}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":21}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":50652,\"7\":50652,\"8\":50652,\"9\":50652,\"10\":0,\"11\":0,\"12\":1,\"13\":8,\"14\":8,\"15\":8,\"16\":8,\"17\":8,\"18\":8,\"19\":8,\"20\":8,\"21\":49,\"22\":49,\"23\":47,\"24\":47,\"25\":47,\"26\":49,\"27\":8,\"28\":8,\"29\":432,\"30\":432,\"31\":432,\"32\":8,\"33\":8,\"34\":8,\"35\":8,\"36\":1,\"37\":16,\"38\":16,\"39\":16,\"40\":16,\"41\":16,\"42\":16,\"43\":16,\"44\":279,\"45\":271,\"46\":279,\"47\":8,\"48\":8,\"49\":279,\"50\":16,\"51\":16,\"52\":16,\"53\":16},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":7,\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"locations\":[{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":12,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":-1},\"end\":{\"line\":12,\"column\":1}},\"locations\":[{\"start\":{\"line\":11,\"column\":-1},\"end\":{\"line\":12,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"locations\":[{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":36,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":34},\"end\":{\"line\":27,\"column\":3}},\"locations\":[{\"start\":{\"line\":21,\"column\":34},\"end\":{\"line\":27,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":67},\"end\":{\"line\":26,\"column\":5}},\"locations\":[{\"start\":{\"line\":23,\"column\":67},\"end\":{\"line\":26,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":29},\"end\":{\"line\":23,\"column\":64}},\"locations\":[{\"start\":{\"line\":23,\"column\":29},\"end\":{\"line\":23,\"column\":64}}]},\"6\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":43},\"end\":{\"line\":25,\"column\":64}},\"locations\":[{\"start\":{\"line\":25,\"column\":43},\"end\":{\"line\":25,\"column\":64}}]},\"7\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":92},\"end\":{\"line\":33,\"column\":3}},\"locations\":[{\"start\":{\"line\":29,\"column\":92},\"end\":{\"line\":33,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":39},\"end\":{\"line\":30,\"column\":42}},\"locations\":[{\"start\":{\"line\":30,\"column\":39},\"end\":{\"line\":30,\"column\":42}}]},\"9\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":43},\"end\":{\"line\":30,\"column\":62}},\"locations\":[{\"start\":{\"line\":30,\"column\":43},\"end\":{\"line\":30,\"column\":62}}]},\"10\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":39},\"end\":{\"line\":31,\"column\":42}},\"locations\":[{\"start\":{\"line\":31,\"column\":39},\"end\":{\"line\":31,\"column\":42}}]},\"11\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":43},\"end\":{\"line\":31,\"column\":62}},\"locations\":[{\"start\":{\"line\":31,\"column\":43},\"end\":{\"line\":31,\"column\":62}}]},\"12\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"locations\":[{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":54,\"column\":1}}]},\"13\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":36},\"end\":{\"line\":50,\"column\":3}},\"locations\":[{\"start\":{\"line\":44,\"column\":36},\"end\":{\"line\":50,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":34},\"end\":{\"line\":47,\"column\":11}},\"locations\":[{\"start\":{\"line\":45,\"column\":34},\"end\":{\"line\":47,\"column\":11}}]},\"15\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":5},\"end\":{\"line\":49,\"column\":5}},\"locations\":[{\"start\":{\"line\":47,\"column\":5},\"end\":{\"line\":49,\"column\":5}}]},\"16\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":56},\"end\":{\"line\":52,\"column\":71}},\"locations\":[{\"start\":{\"line\":52,\"column\":56},\"end\":{\"line\":52,\"column\":71}}]}},\"b\":{\"0\":[50652],\"1\":[0],\"2\":[8],\"3\":[49],\"4\":[47],\"5\":[156],\"6\":[1717],\"7\":[432],\"8\":[413],\"9\":[19],\"10\":[422],\"11\":[10],\"12\":[16],\"13\":[279],\"14\":[271],\"15\":[8],\"16\":[168]},\"fnMap\":{\"0\":{\"name\":\"getBlockHeight\",\"decl\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"line\":7},\"1\":{\"name\":\"mergeNumAndBlocks\",\"decl\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"loc\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"line\":14},\"2\":{\"name\":\"mergeNumAndBlocksToNums\",\"decl\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"loc\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"line\":38}},\"f\":{\"0\":50652,\"1\":8,\"2\":16}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v1/dictionaryV1.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v1/dictionaryV1.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":102}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":52}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":107}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":101}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":32}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":46}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":45}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":42}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":43}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":39}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":49}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":44}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":89}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":42}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":62}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":12}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":23}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":26}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":3}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":55}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":29}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":32}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":14}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":52}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":30}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":46}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":51}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":121}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":88}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":5}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":65}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":37}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":54}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":59}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":23}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":21}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":34}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":10}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":16}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":34}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":10}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":8}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":7}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":3}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":84}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":41}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":41}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":9}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":33}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":27}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":28}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":11}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":42}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":48}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":43}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":112}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":8}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":43}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":63}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":24}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":61}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":36}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":73}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":53}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":26}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":7}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":61}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":13}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":5}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":3}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":83}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":94}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":3}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":63}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":24}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":69}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":5}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":24}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":3}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":5}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":4}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":22}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":107}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":21}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":22}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":5}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":13}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":16}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":23}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":21}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":21}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":54}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":86}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":49}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":23}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":5}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":102}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":0}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":36}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":69}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":9}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":33}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":27}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":28}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":20}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":11}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":42}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":39}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":43}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":59}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":89}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":10}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":8}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":47}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":60}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":52}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":76}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":55}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":57}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":93}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":11}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":9}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":7}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":44}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":119}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":52}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":45}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":35}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":0}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":62}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":25}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":7}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":14}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":62}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":20}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":8}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":24}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":81}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":63}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":33}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":66}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":53}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":66}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":7}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":60}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":23}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":5}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":50}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":9}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":52}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":17}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":19}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":5}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":3}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":0}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":103}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":37}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":11}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":24}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":23}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":9}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":0}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":96}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":90}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":23}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":9}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":20}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":24}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":66}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":21}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":7}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":6}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":0}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":29}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":0}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":31}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":58}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":40}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":7}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":56}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":0}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":17}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":3}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":0}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":26}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":23}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":26}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":22}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":40}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":15}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":96}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":42}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":39}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":17}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":11}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":0}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":15}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":30}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":30}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":7}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":28}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":116}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":8}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":6}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":47}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":52}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":15}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":19}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":22}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":23}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":18}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":24}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":8}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":23}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":26}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":5}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":35}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":3}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":0}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":37}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":30}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":7}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":28}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":97}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":8}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":6}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":33}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":3}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":0}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":72}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":84}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":3}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":57,\"31\":57,\"32\":57,\"33\":57,\"34\":57,\"35\":57,\"36\":57,\"37\":57,\"38\":57,\"39\":57,\"40\":57,\"41\":57,\"42\":57,\"43\":57,\"44\":57,\"45\":57,\"46\":57,\"47\":57,\"48\":57,\"49\":57,\"50\":57,\"51\":57,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":60,\"57\":60,\"58\":60,\"59\":60,\"60\":60,\"61\":60,\"62\":60,\"63\":60,\"64\":60,\"65\":60,\"66\":60,\"67\":46,\"68\":46,\"69\":60,\"70\":14,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":14,\"77\":14,\"78\":14,\"79\":60,\"80\":1,\"81\":1,\"82\":8,\"83\":8,\"84\":1,\"85\":1,\"86\":83,\"87\":0,\"88\":0,\"89\":83,\"90\":83,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":26,\"103\":26,\"104\":26,\"105\":26,\"106\":26,\"107\":26,\"108\":3,\"109\":3,\"110\":23,\"111\":23,\"112\":23,\"113\":23,\"114\":23,\"115\":23,\"116\":23,\"117\":23,\"118\":23,\"119\":23,\"120\":23,\"121\":23,\"122\":23,\"123\":23,\"124\":23,\"125\":26,\"126\":26,\"127\":26,\"128\":21,\"129\":21,\"130\":26,\"131\":57,\"132\":36,\"133\":519,\"134\":519,\"135\":519,\"136\":36,\"137\":57,\"138\":21,\"139\":21,\"140\":21,\"141\":21,\"142\":21,\"143\":21,\"144\":26,\"145\":3,\"146\":3,\"147\":18,\"148\":18,\"149\":18,\"150\":18,\"151\":18,\"152\":26,\"153\":2,\"154\":2,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":2,\"161\":2,\"162\":2,\"163\":26,\"164\":1,\"165\":1,\"166\":16,\"167\":16,\"168\":16,\"169\":0,\"170\":0,\"171\":16,\"172\":1,\"173\":1,\"174\":42,\"175\":42,\"176\":42,\"177\":3,\"178\":3,\"179\":39,\"180\":42,\"181\":5,\"182\":5,\"183\":5,\"184\":34,\"185\":42,\"186\":0,\"187\":0,\"188\":0,\"189\":42,\"190\":42,\"191\":42,\"192\":42,\"193\":42,\"194\":42,\"195\":42,\"196\":42,\"197\":42,\"198\":42,\"199\":42,\"200\":42,\"201\":1,\"202\":1,\"203\":23,\"204\":23,\"205\":23,\"206\":23,\"207\":23,\"208\":23,\"209\":77,\"210\":77,\"211\":77,\"212\":23,\"213\":23,\"214\":23,\"215\":23,\"216\":23,\"217\":23,\"218\":23,\"219\":23,\"220\":23,\"221\":23,\"222\":23,\"223\":40,\"224\":40,\"225\":40,\"226\":40,\"227\":40,\"228\":40,\"229\":40,\"230\":40,\"231\":40,\"232\":40,\"233\":40,\"234\":23,\"235\":23,\"236\":1,\"237\":1,\"238\":60,\"239\":60,\"240\":60,\"241\":60,\"242\":60,\"243\":60,\"244\":60,\"245\":60,\"246\":1,\"247\":1,\"248\":2,\"249\":2,\"250\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"locations\":[{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":52,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":12},\"end\":{\"line\":80,\"column\":3}},\"locations\":[{\"start\":{\"line\":56,\"column\":12},\"end\":{\"line\":80,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":81},\"end\":{\"line\":66,\"column\":105}},\"locations\":[{\"start\":{\"line\":66,\"column\":81},\"end\":{\"line\":66,\"column\":105}}]},\"3\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":-1},\"end\":{\"line\":70,\"column\":13}},\"locations\":[{\"start\":{\"line\":68,\"column\":-1},\"end\":{\"line\":70,\"column\":13}}]},\"4\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":6},\"end\":{\"line\":79,\"column\":5}},\"locations\":[{\"start\":{\"line\":70,\"column\":6},\"end\":{\"line\":79,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":60},\"end\":{\"line\":76,\"column\":7}},\"locations\":[{\"start\":{\"line\":71,\"column\":60},\"end\":{\"line\":76,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"locations\":[{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":84,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":91,\"column\":3}},\"locations\":[{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":91,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":87,\"loc\":{\"start\":{\"line\":87,\"column\":23},\"end\":{\"line\":89,\"column\":5}},\"locations\":[{\"start\":{\"line\":87,\"column\":23},\"end\":{\"line\":89,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":8},\"end\":{\"line\":164,\"column\":3}},\"locations\":[{\"start\":{\"line\":102,\"column\":8},\"end\":{\"line\":164,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":108,\"loc\":{\"start\":{\"line\":108,\"column\":19},\"end\":{\"line\":108,\"column\":46}},\"locations\":[{\"start\":{\"line\":108,\"column\":19},\"end\":{\"line\":108,\"column\":46}}]},\"11\":{\"type\":\"branch\",\"line\":108,\"loc\":{\"start\":{\"line\":108,\"column\":48},\"end\":{\"line\":110,\"column\":5}},\"locations\":[{\"start\":{\"line\":108,\"column\":48},\"end\":{\"line\":110,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":111,\"loc\":{\"start\":{\"line\":111,\"column\":-1},\"end\":{\"line\":126,\"column\":32}},\"locations\":[{\"start\":{\"line\":111,\"column\":-1},\"end\":{\"line\":126,\"column\":32}}]},\"13\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":32},\"end\":{\"line\":126,\"column\":84}},\"locations\":[{\"start\":{\"line\":126,\"column\":32},\"end\":{\"line\":126,\"column\":84}}]},\"14\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":85},\"end\":{\"line\":126,\"column\":89}},\"locations\":[{\"start\":{\"line\":126,\"column\":85},\"end\":{\"line\":126,\"column\":89}}]},\"15\":{\"type\":\"branch\",\"line\":129,\"loc\":{\"start\":{\"line\":129,\"column\":-1},\"end\":{\"line\":131,\"column\":51}},\"locations\":[{\"start\":{\"line\":129,\"column\":-1},\"end\":{\"line\":131,\"column\":51}}]},\"16\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":51},\"end\":{\"line\":138,\"column\":7}},\"locations\":[{\"start\":{\"line\":131,\"column\":51},\"end\":{\"line\":138,\"column\":7}}]},\"17\":{\"type\":\"branch\",\"line\":132,\"loc\":{\"start\":{\"line\":132,\"column\":34},\"end\":{\"line\":132,\"column\":73}},\"locations\":[{\"start\":{\"line\":132,\"column\":34},\"end\":{\"line\":132,\"column\":73}}]},\"18\":{\"type\":\"branch\",\"line\":132,\"loc\":{\"start\":{\"line\":132,\"column\":75},\"end\":{\"line\":137,\"column\":9}},\"locations\":[{\"start\":{\"line\":132,\"column\":75},\"end\":{\"line\":137,\"column\":9}}]},\"19\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":54},\"end\":{\"line\":136,\"column\":11}},\"locations\":[{\"start\":{\"line\":133,\"column\":54},\"end\":{\"line\":136,\"column\":11}}]},\"20\":{\"type\":\"branch\",\"line\":139,\"loc\":{\"start\":{\"line\":139,\"column\":-1},\"end\":{\"line\":145,\"column\":61}},\"locations\":[{\"start\":{\"line\":139,\"column\":-1},\"end\":{\"line\":145,\"column\":61}}]},\"21\":{\"type\":\"branch\",\"line\":145,\"loc\":{\"start\":{\"line\":145,\"column\":61},\"end\":{\"line\":147,\"column\":7}},\"locations\":[{\"start\":{\"line\":145,\"column\":61},\"end\":{\"line\":147,\"column\":7}}]},\"22\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":-1},\"end\":{\"line\":153,\"column\":13}},\"locations\":[{\"start\":{\"line\":148,\"column\":-1},\"end\":{\"line\":153,\"column\":13}}]},\"23\":{\"type\":\"branch\",\"line\":153,\"loc\":{\"start\":{\"line\":153,\"column\":6},\"end\":{\"line\":163,\"column\":5}},\"locations\":[{\"start\":{\"line\":153,\"column\":6},\"end\":{\"line\":163,\"column\":5}}]},\"24\":{\"type\":\"branch\",\"line\":155,\"loc\":{\"start\":{\"line\":155,\"column\":62},\"end\":{\"line\":160,\"column\":7}},\"locations\":[{\"start\":{\"line\":155,\"column\":62},\"end\":{\"line\":160,\"column\":7}}]},\"25\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":69},\"end\":{\"line\":140,\"column\":116}},\"locations\":[{\"start\":{\"line\":140,\"column\":69},\"end\":{\"line\":140,\"column\":116}}]},\"26\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":96},\"end\":{\"line\":140,\"column\":106}},\"locations\":[{\"start\":{\"line\":140,\"column\":96},\"end\":{\"line\":140,\"column\":106}}]},\"27\":{\"type\":\"branch\",\"line\":142,\"loc\":{\"start\":{\"line\":142,\"column\":16},\"end\":{\"line\":142,\"column\":44}},\"locations\":[{\"start\":{\"line\":142,\"column\":16},\"end\":{\"line\":142,\"column\":44}}]},\"28\":{\"type\":\"branch\",\"line\":143,\"loc\":{\"start\":{\"line\":143,\"column\":14},\"end\":{\"line\":143,\"column\":33}},\"locations\":[{\"start\":{\"line\":143,\"column\":14},\"end\":{\"line\":143,\"column\":33}}]},\"29\":{\"type\":\"branch\",\"line\":166,\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":172,\"column\":3}},\"locations\":[{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":172,\"column\":3}}]},\"30\":{\"type\":\"branch\",\"line\":169,\"loc\":{\"start\":{\"line\":169,\"column\":6},\"end\":{\"line\":171,\"column\":5}},\"locations\":[{\"start\":{\"line\":169,\"column\":6},\"end\":{\"line\":171,\"column\":5}}]},\"31\":{\"type\":\"branch\",\"line\":174,\"loc\":{\"start\":{\"line\":174,\"column\":12},\"end\":{\"line\":201,\"column\":3}},\"locations\":[{\"start\":{\"line\":174,\"column\":12},\"end\":{\"line\":201,\"column\":3}}]},\"32\":{\"type\":\"branch\",\"line\":175,\"loc\":{\"start\":{\"line\":175,\"column\":21},\"end\":{\"line\":190,\"column\":5}},\"locations\":[{\"start\":{\"line\":175,\"column\":21},\"end\":{\"line\":190,\"column\":5}}]},\"33\":{\"type\":\"branch\",\"line\":177,\"loc\":{\"start\":{\"line\":177,\"column\":23},\"end\":{\"line\":179,\"column\":9}},\"locations\":[{\"start\":{\"line\":177,\"column\":23},\"end\":{\"line\":179,\"column\":9}}]},\"34\":{\"type\":\"branch\",\"line\":180,\"loc\":{\"start\":{\"line\":180,\"column\":-1},\"end\":{\"line\":181,\"column\":93}},\"locations\":[{\"start\":{\"line\":180,\"column\":-1},\"end\":{\"line\":181,\"column\":93}}]},\"35\":{\"type\":\"branch\",\"line\":181,\"loc\":{\"start\":{\"line\":181,\"column\":95},\"end\":{\"line\":184,\"column\":9}},\"locations\":[{\"start\":{\"line\":181,\"column\":95},\"end\":{\"line\":184,\"column\":9}}]},\"36\":{\"type\":\"branch\",\"line\":185,\"loc\":{\"start\":{\"line\":185,\"column\":-1},\"end\":{\"line\":186,\"column\":15}},\"locations\":[{\"start\":{\"line\":185,\"column\":-1},\"end\":{\"line\":186,\"column\":15}}]},\"37\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":8},\"end\":{\"line\":189,\"column\":7}},\"locations\":[{\"start\":{\"line\":186,\"column\":8},\"end\":{\"line\":189,\"column\":7}}]},\"38\":{\"type\":\"branch\",\"line\":203,\"loc\":{\"start\":{\"line\":203,\"column\":10},\"end\":{\"line\":236,\"column\":3}},\"locations\":[{\"start\":{\"line\":203,\"column\":10},\"end\":{\"line\":236,\"column\":3}}]},\"39\":{\"type\":\"branch\",\"line\":220,\"loc\":{\"start\":{\"line\":220,\"column\":57},\"end\":{\"line\":220,\"column\":115}},\"locations\":[{\"start\":{\"line\":220,\"column\":57},\"end\":{\"line\":220,\"column\":115}}]},\"40\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":46},\"end\":{\"line\":234,\"column\":5}},\"locations\":[{\"start\":{\"line\":223,\"column\":46},\"end\":{\"line\":234,\"column\":5}}]},\"41\":{\"type\":\"branch\",\"line\":209,\"loc\":{\"start\":{\"line\":209,\"column\":83},\"end\":{\"line\":213,\"column\":5}},\"locations\":[{\"start\":{\"line\":209,\"column\":83},\"end\":{\"line\":213,\"column\":5}}]},\"42\":{\"type\":\"branch\",\"line\":210,\"loc\":{\"start\":{\"line\":210,\"column\":35},\"end\":{\"line\":210,\"column\":41}},\"locations\":[{\"start\":{\"line\":210,\"column\":35},\"end\":{\"line\":210,\"column\":41}}]},\"43\":{\"type\":\"branch\",\"line\":238,\"loc\":{\"start\":{\"line\":238,\"column\":10},\"end\":{\"line\":246,\"column\":3}},\"locations\":[{\"start\":{\"line\":238,\"column\":10},\"end\":{\"line\":246,\"column\":3}}]},\"44\":{\"type\":\"branch\",\"line\":242,\"loc\":{\"start\":{\"line\":242,\"column\":77},\"end\":{\"line\":242,\"column\":96}},\"locations\":[{\"start\":{\"line\":242,\"column\":77},\"end\":{\"line\":242,\"column\":96}}]},\"45\":{\"type\":\"branch\",\"line\":248,\"loc\":{\"start\":{\"line\":248,\"column\":12},\"end\":{\"line\":250,\"column\":3}},\"locations\":[{\"start\":{\"line\":248,\"column\":12},\"end\":{\"line\":250,\"column\":3}}]}},\"b\":{\"0\":[57],\"1\":[60],\"2\":[0],\"3\":[46],\"4\":[14],\"5\":[0],\"6\":[8],\"7\":[83],\"8\":[0],\"9\":[26],\"10\":[23],\"11\":[3],\"12\":[23],\"13\":[0],\"14\":[23],\"15\":[21],\"16\":[57],\"17\":[36],\"18\":[36],\"19\":[519],\"20\":[21],\"21\":[3],\"22\":[18],\"23\":[2],\"24\":[0],\"25\":[21],\"26\":[0],\"27\":[399],\"28\":[711],\"29\":[16],\"30\":[0],\"31\":[42],\"32\":[42],\"33\":[3],\"34\":[39],\"35\":[5],\"36\":[34],\"37\":[0],\"38\":[23],\"39\":[0],\"40\":[40],\"41\":[77],\"42\":[40],\"43\":[60],\"44\":[0],\"45\":[2]},\"fnMap\":{\"0\":{\"name\":\"DictionaryV1\",\"decl\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"loc\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"line\":30},\"1\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":56,\"column\":12},\"end\":{\"line\":80,\"column\":3}},\"loc\":{\"start\":{\"line\":56,\"column\":12},\"end\":{\"line\":80,\"column\":3}},\"line\":56},\"2\":{\"name\":\"getQueryEndBlock\",\"decl\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"line\":82},\"3\":{\"name\":\"get client\",\"decl\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":91,\"column\":3}},\"loc\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":91,\"column\":3}},\"line\":86},\"4\":{\"name\":\"getData\",\"decl\":{\"start\":{\"line\":102,\"column\":8},\"end\":{\"line\":164,\"column\":3}},\"loc\":{\"start\":{\"line\":102,\"column\":8},\"end\":{\"line\":164,\"column\":3}},\"line\":102},\"5\":{\"name\":\"queryMapValidByHeight\",\"decl\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":172,\"column\":3}},\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":172,\"column\":3}},\"line\":166},\"6\":{\"name\":\"dictionaryValidation\",\"decl\":{\"start\":{\"line\":174,\"column\":12},\"end\":{\"line\":201,\"column\":3}},\"loc\":{\"start\":{\"line\":174,\"column\":12},\"end\":{\"line\":201,\"column\":3}},\"line\":174},\"7\":{\"name\":\"validate\",\"decl\":{\"start\":{\"line\":175,\"column\":21},\"end\":{\"line\":190,\"column\":5}},\"loc\":{\"start\":{\"line\":175,\"column\":21},\"end\":{\"line\":190,\"column\":5}},\"line\":175},\"8\":{\"name\":\"dictionaryQuery\",\"decl\":{\"start\":{\"line\":203,\"column\":10},\"end\":{\"line\":236,\"column\":3}},\"loc\":{\"start\":{\"line\":203,\"column\":10},\"end\":{\"line\":236,\"column\":3}},\"line\":203},\"9\":{\"name\":\"metadataQuery\",\"decl\":{\"start\":{\"line\":238,\"column\":10},\"end\":{\"line\":246,\"column\":3}},\"loc\":{\"start\":{\"line\":238,\"column\":10},\"end\":{\"line\":246,\"column\":3}},\"line\":238},\"10\":{\"name\":\"validateChainMeta\",\"decl\":{\"start\":{\"line\":248,\"column\":12},\"end\":{\"line\":250,\"column\":3}},\"loc\":{\"start\":{\"line\":248,\"column\":12},\"end\":{\"line\":250,\"column\":3}},\"line\":248}},\"f\":{\"0\":57,\"1\":60,\"2\":8,\"3\":83,\"4\":26,\"5\":16,\"6\":42,\"7\":42,\"8\":23,\"9\":60,\"10\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v1/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v1/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":31}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v1/utils.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v1/utils.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":59}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":79}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":70}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":73}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":27}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":13}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":40}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":14}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":2}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":37}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":34}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":30}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":2}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":34}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":34}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":2}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":48}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":25}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":18}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":25}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":19}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":24}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":20}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":33}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":28}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":60}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":9}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":81}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":43}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":14}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":54}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":7}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":5}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":12}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":18}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":23}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":3}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":75}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":80}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":10}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":9}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":12}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":22}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":4}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":1}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":0}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":41}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":50}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":43}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":26}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":100}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":31}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":34}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":39}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":23}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":29}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":37}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":71}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":26}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":18}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":42}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":53}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":14}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":12}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":11}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":8}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":32}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":60}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":22}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":29}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":41}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":52}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":10}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":8}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":5}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":5}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":27}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":39}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":17}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":21}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":24}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":43}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":20}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":22}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":24}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":60}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":25}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":11}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":14}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":7}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":24}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":33}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":8}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":6}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":11}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":15}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":18}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":22}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":50}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":41}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":10}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":8}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":34}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":34}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":6}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":4}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":20}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":70}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":80}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":42}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":3}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":25}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":175,\"26\":175,\"27\":175,\"28\":3,\"29\":175,\"30\":0,\"31\":175,\"32\":15,\"33\":12,\"34\":3,\"35\":3,\"36\":9,\"37\":9,\"38\":9,\"39\":15,\"40\":3,\"41\":3,\"42\":15,\"43\":175,\"44\":175,\"45\":157,\"46\":175,\"47\":175,\"48\":1,\"49\":154,\"50\":154,\"51\":154,\"52\":154,\"53\":154,\"54\":154,\"55\":154,\"56\":154,\"57\":154,\"58\":1,\"59\":1,\"60\":154,\"61\":154,\"62\":154,\"63\":1,\"64\":1,\"65\":1,\"66\":40,\"67\":40,\"68\":40,\"69\":40,\"70\":77,\"71\":77,\"72\":77,\"73\":154,\"74\":154,\"75\":154,\"76\":154,\"77\":154,\"78\":154,\"79\":154,\"80\":77,\"81\":77,\"82\":77,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":40,\"92\":40,\"93\":40,\"94\":1,\"95\":40,\"96\":40,\"97\":40,\"98\":40,\"99\":40,\"100\":40,\"101\":40,\"102\":40,\"103\":40,\"104\":40,\"105\":40,\"106\":40,\"107\":40,\"108\":40,\"109\":40,\"110\":40,\"111\":40,\"112\":40,\"113\":40,\"114\":40,\"115\":40,\"116\":40,\"117\":40,\"118\":40,\"119\":40,\"120\":40,\"121\":40,\"122\":40,\"123\":40,\"124\":40,\"125\":40,\"126\":40,\"127\":40,\"128\":40,\"129\":40,\"130\":40,\"131\":40,\"132\":40,\"133\":40},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"locations\":[{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":48,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":4},\"end\":{\"line\":29,\"column\":25}},\"locations\":[{\"start\":{\"line\":28,\"column\":4},\"end\":{\"line\":29,\"column\":25}}]},\"2\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":4},\"end\":{\"line\":31,\"column\":24}},\"locations\":[{\"start\":{\"line\":30,\"column\":4},\"end\":{\"line\":31,\"column\":24}}]},\"3\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":4},\"end\":{\"line\":43,\"column\":5}},\"locations\":[{\"start\":{\"line\":32,\"column\":4},\"end\":{\"line\":43,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":32},\"end\":{\"line\":40,\"column\":13}},\"locations\":[{\"start\":{\"line\":33,\"column\":32},\"end\":{\"line\":40,\"column\":13}}]},\"5\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":27},\"end\":{\"line\":36,\"column\":9}},\"locations\":[{\"start\":{\"line\":34,\"column\":27},\"end\":{\"line\":36,\"column\":9}}]},\"6\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":-1},\"end\":{\"line\":40,\"column\":13}},\"locations\":[{\"start\":{\"line\":37,\"column\":-1},\"end\":{\"line\":40,\"column\":13}}]},\"7\":{\"type\":\"branch\",\"line\":40,\"loc\":{\"start\":{\"line\":40,\"column\":7},\"end\":{\"line\":42,\"column\":7}},\"locations\":[{\"start\":{\"line\":40,\"column\":7},\"end\":{\"line\":42,\"column\":7}}]},\"8\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":4},\"end\":{\"line\":44,\"column\":12}},\"locations\":[{\"start\":{\"line\":44,\"column\":4},\"end\":{\"line\":44,\"column\":12}}]},\"9\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":4},\"end\":{\"line\":46,\"column\":23}},\"locations\":[{\"start\":{\"line\":45,\"column\":4},\"end\":{\"line\":46,\"column\":23}}]},\"10\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":58,\"column\":1}},\"locations\":[{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":58,\"column\":1}}]},\"11\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":46},\"end\":{\"line\":51,\"column\":54}},\"locations\":[{\"start\":{\"line\":51,\"column\":46},\"end\":{\"line\":51,\"column\":54}}]},\"12\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"locations\":[{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":63,\"column\":1}}]},\"13\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"locations\":[{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":94,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":21},\"end\":{\"line\":92,\"column\":3}},\"locations\":[{\"start\":{\"line\":70,\"column\":21},\"end\":{\"line\":92,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":83,\"loc\":{\"start\":{\"line\":83,\"column\":5},\"end\":{\"line\":91,\"column\":5}},\"locations\":[{\"start\":{\"line\":83,\"column\":5},\"end\":{\"line\":91,\"column\":5}}]},\"16\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":19},\"end\":{\"line\":81,\"column\":9}},\"locations\":[{\"start\":{\"line\":73,\"column\":19},\"end\":{\"line\":81,\"column\":9}}]},\"17\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":134,\"column\":1}},\"locations\":[{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":134,\"column\":1}}]}},\"b\":{\"0\":[175],\"1\":[3],\"2\":[0],\"3\":[15],\"4\":[12],\"5\":[3],\"6\":[9],\"7\":[3],\"8\":[0],\"9\":[157],\"10\":[154],\"11\":[0],\"12\":[154],\"13\":[40],\"14\":[77],\"15\":[0],\"16\":[154],\"17\":[40]},\"fnMap\":{\"0\":{\"name\":\"getGqlType\",\"decl\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"loc\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"line\":26},\"1\":{\"name\":\"extractVar\",\"decl\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":58,\"column\":1}},\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":58,\"column\":1}},\"line\":50},\"2\":{\"name\":\"sanitizeArgField\",\"decl\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"loc\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"line\":61},\"3\":{\"name\":\"extractVars\",\"decl\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"loc\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"line\":67},\"4\":{\"name\":\"buildDictQueryFragment\",\"decl\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":134,\"column\":1}},\"loc\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":134,\"column\":1}},\"line\":96}},\"f\":{\"0\":175,\"1\":154,\"2\":154,\"3\":40,\"4\":40}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v2/dictionaryV2.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v2/dictionaryV2.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":52}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":43}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":34}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":46}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":42}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":35}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":49}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":44}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":115}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":28}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":49}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":59}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":42}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":33}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":62}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":47}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":29}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":18}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":2}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":45}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":19}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":31}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":34}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":23}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":34}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":24}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":7}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":23}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":19}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":30}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":10}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":4}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":45}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":38}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":44}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":29}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":14}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":41}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":6}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":31}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":68}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":28}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":49}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":33}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":16}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":42}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":42}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":49}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":45}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":36}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":28}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":41}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":28}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":4}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":18}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":35}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":5}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":5}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":60}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":60}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":41}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":14}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":40}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":30}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":46}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":50}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":5}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":65}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":39}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":34}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":7}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":3}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":72}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":41}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":82}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":56}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":3}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":83}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":58}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":3}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":48}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":42}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":48}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":21}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":23}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":21}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":36}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":32}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":67}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":86}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":22}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":23}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":5}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":18}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":0}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":25}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":21}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":34}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":12}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":15}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":9}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":45}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":46}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":36}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":34}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":24}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":10}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":8}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":6}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":9}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":54}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":48}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":48}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":48}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":18}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":45}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":10}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":9}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":32}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":53}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":7}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":34}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":25}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":7}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":70}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":63}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":70}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":7}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":61}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":20}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":26}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":103}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":35}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":67}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":5}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":3}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":0}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":50}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":110}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":92}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":9}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":44}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":17}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":19}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":5}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":3}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":103}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":67}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":19}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":5}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":24}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":41}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":48}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":43}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":30}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":3}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":0}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":72}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":86}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":3}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":3,\"28\":3,\"29\":3,\"30\":3,\"31\":3,\"32\":3,\"33\":3,\"34\":3,\"35\":3,\"36\":3,\"37\":3,\"38\":3,\"39\":3,\"40\":3,\"41\":3,\"42\":3,\"43\":3,\"44\":3,\"45\":3,\"46\":3,\"47\":3,\"48\":3,\"49\":3,\"50\":3,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":11,\"86\":11,\"87\":11,\"88\":11,\"89\":11,\"90\":11,\"91\":11,\"92\":11,\"93\":11,\"94\":11,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":3,\"100\":0,\"101\":0,\"102\":1,\"103\":1,\"104\":4,\"105\":4,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":6,\"113\":6,\"114\":6,\"115\":6,\"116\":6,\"117\":6,\"118\":6,\"119\":0,\"120\":0,\"121\":6,\"122\":6,\"123\":6,\"124\":6,\"125\":6,\"126\":6,\"127\":6,\"128\":6,\"129\":6,\"130\":6,\"131\":6,\"132\":6,\"133\":6,\"134\":6,\"135\":6,\"136\":6,\"137\":6,\"138\":6,\"139\":6,\"140\":6,\"141\":6,\"142\":6,\"143\":6,\"144\":6,\"145\":6,\"146\":6,\"147\":6,\"148\":0,\"149\":0,\"150\":6,\"151\":0,\"152\":0,\"153\":4,\"154\":6,\"155\":2,\"156\":2,\"157\":4,\"158\":4,\"159\":6,\"160\":2,\"161\":2,\"162\":2,\"163\":2,\"164\":6,\"165\":1,\"166\":1,\"167\":4,\"168\":4,\"169\":4,\"170\":4,\"171\":4,\"172\":2,\"173\":2,\"174\":4,\"175\":1,\"176\":1,\"177\":1,\"178\":0,\"179\":0,\"180\":1,\"181\":1,\"182\":1,\"183\":1,\"184\":1,\"185\":1,\"186\":1,\"187\":1,\"188\":1,\"189\":1,\"190\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"locations\":[{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":76,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":-1},\"end\":{\"line\":76,\"column\":1}},\"locations\":[{\"start\":{\"line\":52,\"column\":-1},\"end\":{\"line\":76,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"locations\":[{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":95,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":12},\"end\":{\"line\":102,\"column\":3}},\"locations\":[{\"start\":{\"line\":99,\"column\":12},\"end\":{\"line\":102,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":-1},\"end\":{\"line\":102,\"column\":3}},\"locations\":[{\"start\":{\"line\":101,\"column\":-1},\"end\":{\"line\":102,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":106,\"column\":3}},\"locations\":[{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":106,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":112,\"loc\":{\"start\":{\"line\":112,\"column\":2},\"end\":{\"line\":165,\"column\":3}},\"locations\":[{\"start\":{\"line\":112,\"column\":2},\"end\":{\"line\":165,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":119,\"loc\":{\"start\":{\"line\":119,\"column\":21},\"end\":{\"line\":121,\"column\":5}},\"locations\":[{\"start\":{\"line\":119,\"column\":21},\"end\":{\"line\":121,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":-1},\"end\":{\"line\":148,\"column\":31}},\"locations\":[{\"start\":{\"line\":148,\"column\":-1},\"end\":{\"line\":148,\"column\":31}}]},\"9\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":31},\"end\":{\"line\":150,\"column\":7}},\"locations\":[{\"start\":{\"line\":148,\"column\":31},\"end\":{\"line\":150,\"column\":7}}]},\"10\":{\"type\":\"branch\",\"line\":151,\"loc\":{\"start\":{\"line\":151,\"column\":-1},\"end\":{\"line\":151,\"column\":33}},\"locations\":[{\"start\":{\"line\":151,\"column\":-1},\"end\":{\"line\":151,\"column\":33}}]},\"11\":{\"type\":\"branch\",\"line\":151,\"loc\":{\"start\":{\"line\":151,\"column\":33},\"end\":{\"line\":153,\"column\":7}},\"locations\":[{\"start\":{\"line\":151,\"column\":33},\"end\":{\"line\":153,\"column\":7}}]},\"12\":{\"type\":\"branch\",\"line\":154,\"loc\":{\"start\":{\"line\":154,\"column\":-1},\"end\":{\"line\":155,\"column\":60}},\"locations\":[{\"start\":{\"line\":154,\"column\":-1},\"end\":{\"line\":155,\"column\":60}}]},\"13\":{\"type\":\"branch\",\"line\":155,\"loc\":{\"start\":{\"line\":155,\"column\":62},\"end\":{\"line\":157,\"column\":7}},\"locations\":[{\"start\":{\"line\":155,\"column\":62},\"end\":{\"line\":157,\"column\":7}}]},\"14\":{\"type\":\"branch\",\"line\":158,\"loc\":{\"start\":{\"line\":158,\"column\":-1},\"end\":{\"line\":160,\"column\":13}},\"locations\":[{\"start\":{\"line\":158,\"column\":-1},\"end\":{\"line\":160,\"column\":13}}]},\"15\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":6},\"end\":{\"line\":164,\"column\":5}},\"locations\":[{\"start\":{\"line\":160,\"column\":6},\"end\":{\"line\":164,\"column\":5}}]},\"16\":{\"type\":\"branch\",\"line\":167,\"loc\":{\"start\":{\"line\":167,\"column\":2},\"end\":{\"line\":175,\"column\":3}},\"locations\":[{\"start\":{\"line\":167,\"column\":2},\"end\":{\"line\":175,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":172,\"loc\":{\"start\":{\"line\":172,\"column\":6},\"end\":{\"line\":174,\"column\":5}},\"locations\":[{\"start\":{\"line\":172,\"column\":6},\"end\":{\"line\":174,\"column\":5}}]},\"18\":{\"type\":\"branch\",\"line\":177,\"loc\":{\"start\":{\"line\":177,\"column\":12},\"end\":{\"line\":186,\"column\":3}},\"locations\":[{\"start\":{\"line\":177,\"column\":12},\"end\":{\"line\":186,\"column\":3}}]},\"19\":{\"type\":\"branch\",\"line\":178,\"loc\":{\"start\":{\"line\":178,\"column\":66},\"end\":{\"line\":180,\"column\":5}},\"locations\":[{\"start\":{\"line\":178,\"column\":66},\"end\":{\"line\":180,\"column\":5}}]},\"20\":{\"type\":\"branch\",\"line\":182,\"loc\":{\"start\":{\"line\":182,\"column\":38},\"end\":{\"line\":183,\"column\":45}},\"locations\":[{\"start\":{\"line\":182,\"column\":38},\"end\":{\"line\":183,\"column\":45}}]},\"21\":{\"type\":\"branch\",\"line\":183,\"loc\":{\"start\":{\"line\":183,\"column\":45},\"end\":{\"line\":184,\"column\":42}},\"locations\":[{\"start\":{\"line\":183,\"column\":45},\"end\":{\"line\":184,\"column\":42}}]},\"22\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":12},\"end\":{\"line\":190,\"column\":3}},\"locations\":[{\"start\":{\"line\":188,\"column\":12},\"end\":{\"line\":190,\"column\":3}}]}},\"b\":{\"0\":[3],\"1\":[0],\"2\":[11],\"3\":[3],\"4\":[0],\"5\":[4],\"6\":[6],\"7\":[0],\"8\":[4],\"9\":[0],\"10\":[4],\"11\":[0],\"12\":[4],\"13\":[2],\"14\":[4],\"15\":[2],\"16\":[4],\"17\":[2],\"18\":[1],\"19\":[0],\"20\":[0],\"21\":[0],\"22\":[1]},\"fnMap\":{\"0\":{\"name\":\"subqlFilterBlocksCapabilities\",\"decl\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"loc\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"line\":28},\"1\":{\"name\":\"DictionaryV2\",\"decl\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"loc\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"line\":85},\"2\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":99,\"column\":12},\"end\":{\"line\":102,\"column\":3}},\"loc\":{\"start\":{\"line\":99,\"column\":12},\"end\":{\"line\":102,\"column\":3}},\"line\":99},\"3\":{\"name\":\"getQueryEndBlock\",\"decl\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":106,\"column\":3}},\"loc\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":106,\"column\":3}},\"line\":104},\"4\":{\"name\":\"getData\",\"decl\":{\"start\":{\"line\":112,\"column\":2},\"end\":{\"line\":165,\"column\":3}},\"loc\":{\"start\":{\"line\":112,\"column\":2},\"end\":{\"line\":165,\"column\":3}},\"line\":112},\"5\":{\"name\":\"queryMapValidByHeight\",\"decl\":{\"start\":{\"line\":167,\"column\":2},\"end\":{\"line\":175,\"column\":3}},\"loc\":{\"start\":{\"line\":167,\"column\":2},\"end\":{\"line\":175,\"column\":3}},\"line\":167},\"6\":{\"name\":\"dictionaryValidation\",\"decl\":{\"start\":{\"line\":177,\"column\":12},\"end\":{\"line\":186,\"column\":3}},\"loc\":{\"start\":{\"line\":177,\"column\":12},\"end\":{\"line\":186,\"column\":3}},\"line\":177},\"7\":{\"name\":\"validateChainMeta\",\"decl\":{\"start\":{\"line\":188,\"column\":12},\"end\":{\"line\":190,\"column\":3}},\"loc\":{\"start\":{\"line\":188,\"column\":12},\"end\":{\"line\":190,\"column\":3}},\"line\":188}},\"f\":{\"0\":3,\"1\":11,\"2\":3,\"3\":4,\"4\":6,\"5\":4,\"6\":1,\"7\":1}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v2/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v2/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":31}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v2/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dictionary/v2/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":36}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":26}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":1}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":32}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":41}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":1}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":49}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":33}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":23}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":1}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":39}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":16}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":14}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":18}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":29}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":22}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":60}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/ds-processor.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/ds-processor.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":38}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":107}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":29}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":40}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":36}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":49}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":41}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":39}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":42}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":77}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":10}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":13}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":113}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":16}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":6}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":34}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":3}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":20}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":33}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":1}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":31}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":4}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":45}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":67}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":2}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":10}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":35}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":36}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":15}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":18}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":24}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":6}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":24}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":63}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":3}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":43}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":43}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":7}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":19}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":33}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":25}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":8}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":16}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":6}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":9}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":64}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":22}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":54}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":14}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":5}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":3}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":59}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":45}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":45}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":68}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":47}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":3}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":49}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":51}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":14}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":102}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":43}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":6}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":61}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":35}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":48}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":74}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":39}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":91}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":7}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":50}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":61}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":119}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":9}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":7}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":118}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":52}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":55}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":5}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":3}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":76}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":101}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":3}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":30}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":31}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":65}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":5}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":50}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":45}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":9}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":34}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":35}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":48}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":10}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":23}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":8}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":11}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":71}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":24}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":56}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":16}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":7}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":5}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":66}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":3}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":62}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":61}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":31}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":65}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":5}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":21}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":16}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":5}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":0}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":43}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":45}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":68}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":11}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":43}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":27}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":11}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":19}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":64}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":16}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":7}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":5}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":0}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":15}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":3}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":4,\"18\":4,\"19\":4,\"20\":4,\"21\":4,\"22\":4,\"23\":4,\"24\":1,\"25\":1,\"26\":4,\"27\":4,\"28\":1,\"29\":1,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":8,\"75\":8,\"76\":8,\"77\":1,\"78\":1,\"79\":7,\"80\":3,\"81\":3,\"82\":3,\"83\":0,\"84\":0,\"85\":2,\"86\":2,\"87\":2,\"88\":0,\"89\":0,\"90\":2,\"91\":2,\"92\":2,\"93\":2,\"94\":2,\"95\":2,\"96\":2,\"97\":6,\"98\":1,\"99\":1,\"100\":7,\"101\":6,\"102\":1,\"103\":1,\"104\":4,\"105\":0,\"106\":0,\"107\":4,\"108\":4,\"109\":4,\"110\":4,\"111\":4,\"112\":4,\"113\":4,\"114\":4,\"115\":4,\"116\":4,\"117\":4,\"118\":4,\"119\":1,\"120\":1,\"121\":1,\"122\":4,\"123\":3,\"124\":3,\"125\":1,\"126\":1,\"127\":1,\"128\":2,\"129\":0,\"130\":0,\"131\":2,\"132\":2,\"133\":2,\"134\":2,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":17,\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"locations\":[{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":24,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"locations\":[{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":28,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":77,\"column\":6}},\"locations\":[{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":77,\"column\":6}}]},\"3\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":98,\"column\":3}},\"locations\":[{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":98,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":80,\"loc\":{\"start\":{\"line\":80,\"column\":34},\"end\":{\"line\":97,\"column\":5}},\"locations\":[{\"start\":{\"line\":80,\"column\":34},\"end\":{\"line\":97,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":83,\"loc\":{\"start\":{\"line\":83,\"column\":38},\"end\":{\"line\":85,\"column\":7}},\"locations\":[{\"start\":{\"line\":83,\"column\":38},\"end\":{\"line\":85,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":-1},\"end\":{\"line\":97,\"column\":5}},\"locations\":[{\"start\":{\"line\":86,\"column\":-1},\"end\":{\"line\":97,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":60},\"end\":{\"line\":90,\"column\":9}},\"locations\":[{\"start\":{\"line\":88,\"column\":60},\"end\":{\"line\":90,\"column\":9}}]},\"8\":{\"type\":\"branch\",\"line\":98,\"loc\":{\"start\":{\"line\":98,\"column\":-1},\"end\":{\"line\":98,\"column\":3}},\"locations\":[{\"start\":{\"line\":98,\"column\":-1},\"end\":{\"line\":98,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":30},\"end\":{\"line\":93,\"column\":116}},\"locations\":[{\"start\":{\"line\":93,\"column\":30},\"end\":{\"line\":93,\"column\":116}}]},\"10\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":102,\"column\":3}},\"locations\":[{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":102,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":-1},\"end\":{\"line\":102,\"column\":3}},\"locations\":[{\"start\":{\"line\":102,\"column\":-1},\"end\":{\"line\":102,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":51},\"end\":{\"line\":101,\"column\":78}},\"locations\":[{\"start\":{\"line\":101,\"column\":51},\"end\":{\"line\":101,\"column\":78}}]},\"13\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":125,\"column\":3}},\"locations\":[{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":125,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":30},\"end\":{\"line\":107,\"column\":5}},\"locations\":[{\"start\":{\"line\":105,\"column\":30},\"end\":{\"line\":107,\"column\":5}}]},\"15\":{\"type\":\"branch\",\"line\":119,\"loc\":{\"start\":{\"line\":119,\"column\":8},\"end\":{\"line\":122,\"column\":7}},\"locations\":[{\"start\":{\"line\":119,\"column\":8},\"end\":{\"line\":122,\"column\":7}}]},\"16\":{\"type\":\"branch\",\"line\":124,\"loc\":{\"start\":{\"line\":124,\"column\":-1},\"end\":{\"line\":125,\"column\":3}},\"locations\":[{\"start\":{\"line\":124,\"column\":-1},\"end\":{\"line\":125,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":152,\"column\":3}},\"locations\":[{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":152,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":129,\"loc\":{\"start\":{\"line\":129,\"column\":30},\"end\":{\"line\":131,\"column\":5}},\"locations\":[{\"start\":{\"line\":129,\"column\":30},\"end\":{\"line\":131,\"column\":5}}]},\"19\":{\"type\":\"branch\",\"line\":136,\"loc\":{\"start\":{\"line\":136,\"column\":-1},\"end\":{\"line\":152,\"column\":3}},\"locations\":[{\"start\":{\"line\":136,\"column\":-1},\"end\":{\"line\":152,\"column\":3}}]}},\"b\":{\"0\":[4],\"1\":[4],\"2\":[8],\"3\":[7],\"4\":[3],\"5\":[0],\"6\":[2],\"7\":[0],\"8\":[6],\"9\":[2],\"10\":[7],\"11\":[6],\"12\":[8],\"13\":[4],\"14\":[0],\"15\":[1],\"16\":[3],\"17\":[2],\"18\":[0],\"19\":[0]},\"fnMap\":{\"0\":{\"name\":\"DsPluginSandbox\",\"decl\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"line\":17},\"1\":{\"name\":\"getDsPlugin\",\"decl\":{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"loc\":{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"line\":26},\"2\":{\"name\":\"getDsProcessor\",\"decl\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"loc\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":63,\"column\":1}},\"line\":31},\"3\":{\"name\":\"BaseDsProcessorService\",\"decl\":{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":77,\"column\":6}},\"loc\":{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":77,\"column\":6}},\"line\":74},\"4\":{\"name\":\"validateCustomDs\",\"decl\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":98,\"column\":3}},\"loc\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":98,\"column\":3}},\"line\":79},\"5\":{\"name\":\"validateProjectCustomDatasources\",\"decl\":{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":102,\"column\":3}},\"loc\":{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":102,\"column\":3}},\"line\":100},\"6\":{\"name\":\"getDsProcessor\",\"decl\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":125,\"column\":3}},\"loc\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":125,\"column\":3}},\"line\":104},\"7\":{\"name\":\"getAssets\",\"decl\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":152,\"column\":3}},\"loc\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":152,\"column\":3}},\"line\":128}},\"f\":{\"0\":4,\"1\":4,\"2\":0,\"3\":8,\"4\":7,\"5\":7,\"6\":4,\"7\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dynamic-ds.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/dynamic-ds.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":36}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":62}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":39}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":42}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":35}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":33}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":21}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":40}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":27}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":65}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":62}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":77}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":41}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":30}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":49}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":74}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":59}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":30}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":43}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":34}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":29}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":67}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":5}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":29}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":3}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":46}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":26}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":67}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":5}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":26}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":3}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":5}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":56}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":49}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":5}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":62}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":69}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":72}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":94}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":50}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":52}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":5}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":3}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":72}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":9}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":50}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":52}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":92}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":53}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":63}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":33}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":42}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":16}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":22}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":53}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":22}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":5}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":3}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":56}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":69}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":68}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":44}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":68}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":48}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":5}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":49}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":37}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":83}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":94}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":68}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":36}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":36}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":3}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":9,\"31\":9,\"32\":9,\"33\":9,\"34\":1,\"35\":1,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":1,\"42\":1,\"43\":12,\"44\":0,\"45\":0,\"46\":12,\"47\":12,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":0,\"77\":0,\"78\":0,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":20,\"84\":20,\"85\":10,\"86\":10,\"87\":10,\"88\":10,\"89\":20,\"90\":20,\"91\":20,\"92\":20,\"93\":1,\"94\":1,\"95\":11,\"96\":11,\"97\":11,\"98\":11,\"99\":11,\"100\":11,\"101\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"locations\":[{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":34,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":48,\"column\":3}},\"locations\":[{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":48,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":25},\"end\":{\"line\":46,\"column\":5}},\"locations\":[{\"start\":{\"line\":44,\"column\":25},\"end\":{\"line\":46,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"locations\":[{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":61,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":55},\"end\":{\"line\":57,\"column\":92}},\"locations\":[{\"start\":{\"line\":57,\"column\":55},\"end\":{\"line\":57,\"column\":92}}]},\"5\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"locations\":[{\"start\":{\"line\":63,\"column\":2},\"end\":{\"line\":80,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":30},\"end\":{\"line\":70,\"column\":53}},\"locations\":[{\"start\":{\"line\":70,\"column\":30},\"end\":{\"line\":70,\"column\":53}}]},\"7\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":35},\"end\":{\"line\":71,\"column\":63}},\"locations\":[{\"start\":{\"line\":71,\"column\":35},\"end\":{\"line\":71,\"column\":63}}]},\"8\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":6},\"end\":{\"line\":79,\"column\":5}},\"locations\":[{\"start\":{\"line\":76,\"column\":6},\"end\":{\"line\":79,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":83,\"loc\":{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"locations\":[{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":93,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":26},\"end\":{\"line\":85,\"column\":41}},\"locations\":[{\"start\":{\"line\":85,\"column\":26},\"end\":{\"line\":85,\"column\":41}}]},\"11\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":43},\"end\":{\"line\":89,\"column\":5}},\"locations\":[{\"start\":{\"line\":85,\"column\":43},\"end\":{\"line\":89,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":61},\"end\":{\"line\":86,\"column\":67}},\"locations\":[{\"start\":{\"line\":86,\"column\":61},\"end\":{\"line\":86,\"column\":67}}]},\"13\":{\"type\":\"branch\",\"line\":95,\"loc\":{\"start\":{\"line\":95,\"column\":10},\"end\":{\"line\":101,\"column\":3}},\"locations\":[{\"start\":{\"line\":95,\"column\":10},\"end\":{\"line\":101,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":53},\"end\":{\"line\":96,\"column\":91}},\"locations\":[{\"start\":{\"line\":96,\"column\":53},\"end\":{\"line\":96,\"column\":91}}]}},\"b\":{\"0\":[9],\"1\":[12],\"2\":[0],\"3\":[1],\"4\":[4],\"5\":[1],\"6\":[0],\"7\":[0],\"8\":[0],\"9\":[20],\"10\":[11],\"11\":[10],\"12\":[0],\"13\":[11],\"14\":[14]},\"fnMap\":{\"0\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"loc\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"line\":30},\"1\":{\"name\":\"get dynamicDatasources\",\"decl\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"loc\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"line\":36},\"2\":{\"name\":\"get metadata\",\"decl\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":48,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":48,\"column\":3}},\"line\":43},\"3\":{\"name\":\"resetDynamicDatasource\",\"decl\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"loc\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"line\":55},\"4\":{\"name\":\"createDynamicDatasource\",\"decl\":{\"start\":{\"line\":63,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"loc\":{\"start\":{\"line\":63,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"line\":63},\"5\":{\"name\":\"getDynamicDatasources\",\"decl\":{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"loc\":{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"line\":83},\"6\":{\"name\":\"loadDynamicDatasources\",\"decl\":{\"start\":{\"line\":95,\"column\":10},\"end\":{\"line\":101,\"column\":3}},\"loc\":{\"start\":{\"line\":95,\"column\":10},\"end\":{\"line\":101,\"column\":3}},\"line\":95}},\"f\":{\"0\":9,\"1\":0,\"2\":12,\"3\":1,\"4\":1,\"5\":20,\"6\":11}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/entities/Metadata.entity.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/entities/Metadata.entity.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":50}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":89}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":55}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":31}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":16}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":22}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":22}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":34}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":29}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":30}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":33}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":30}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":22}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":21}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":28}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":22}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":29}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":19}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":38}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":26}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":23}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":41}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":28}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":31}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":22}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":31}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":32}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":65}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":62}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":27}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":26}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":42}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":67}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":43}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":64}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":2}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":109}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":7}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":114}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":30}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":7}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":37}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":15}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":17}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":38}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":23}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":17}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":22}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":17}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":26}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":30}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":19}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":83}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":27}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":22}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":156}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":8}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":5}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":46}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":3}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":40}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":14}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":5}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":12}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":31}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":25}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":8}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":14}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":30}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":8}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":6}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":43}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":4}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":1,\"57\":1,\"58\":28,\"59\":28,\"60\":28,\"61\":28,\"62\":28,\"63\":28,\"64\":28,\"65\":28,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":28,\"77\":28,\"78\":28,\"79\":28,\"80\":28,\"81\":28,\"82\":28,\"83\":28,\"84\":28,\"85\":28,\"86\":28,\"87\":28,\"88\":28,\"89\":28,\"90\":28},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":7},\"end\":{\"line\":91,\"column\":1}},\"locations\":[{\"start\":{\"line\":58,\"column\":7},\"end\":{\"line\":91,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":18},\"end\":{\"line\":76,\"column\":3}},\"locations\":[{\"start\":{\"line\":66,\"column\":18},\"end\":{\"line\":76,\"column\":3}}]}},\"b\":{\"0\":[28],\"1\":[0]},\"fnMap\":{\"0\":{\"name\":\"checkSchemaMetadata\",\"decl\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"loc\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"line\":47},\"1\":{\"name\":\"MetadataFactory\",\"decl\":{\"start\":{\"line\":58,\"column\":7},\"end\":{\"line\":91,\"column\":1}},\"loc\":{\"start\":{\"line\":58,\"column\":7},\"end\":{\"line\":91,\"column\":1}},\"line\":58}},\"f\":{\"0\":0,\"1\":28}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/entities/Poi.entity.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/entities/Poi.entity.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":81}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":31}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":27}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":36}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":31}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":37}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":39}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":21}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":58}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":19}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":25}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":1}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":70}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":38}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":59}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":2}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":27}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":84}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":35}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":11}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":5}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":11}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":32}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":25}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":8}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":23}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":29}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":25}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":21}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":8}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":13}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":29}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":25}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":21}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":8}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":19}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":29}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":25}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":21}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":8}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":26}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":29}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":25}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":8}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":18}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":31}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":25}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":26}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":8}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":6}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":5}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":28}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":21}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":36}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":5}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":4}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":1}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":75}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":35}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":11}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":5}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":11}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":32}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":25}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":8}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":23}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":29}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":24}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":21}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":8}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":13}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":29}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":24}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":21}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":8}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":19}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":29}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":24}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":21}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":8}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":26}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":29}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":24}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":8}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":6}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":5}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":28}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":21}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":5}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":4}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":1,\"66\":8,\"67\":8,\"68\":8,\"69\":8,\"70\":8,\"71\":8,\"72\":8,\"73\":8,\"74\":8,\"75\":8,\"76\":8,\"77\":8,\"78\":8,\"79\":8,\"80\":8,\"81\":8,\"82\":8,\"83\":8,\"84\":8,\"85\":8,\"86\":8,\"87\":8,\"88\":8,\"89\":8,\"90\":8,\"91\":8,\"92\":8,\"93\":8,\"94\":8,\"95\":8,\"96\":8,\"97\":8,\"98\":8,\"99\":8},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"locations\":[{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":100,\"column\":1}}]}},\"b\":{\"0\":[8]},\"fnMap\":{\"0\":{\"name\":\"PoiFactoryDeprecate\",\"decl\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":65,\"column\":1}},\"loc\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":65,\"column\":1}},\"line\":26},\"1\":{\"name\":\"PoiFactory\",\"decl\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"loc\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"line\":67}},\"f\":{\"0\":0,\"1\":8}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/entities/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/entities/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":29}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":34}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/fetch.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/fetch.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":51}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":72}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":38}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":40}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":39}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":36}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":92}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":51}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":53}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":66}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":69}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":54}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":48}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":41}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":101}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":34}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":37}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":42}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":29}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":38}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":113}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":59}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":54}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":55}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":46}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":56}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":57}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":44}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":58}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":48}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":95}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":77}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":14}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":35}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":50}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":51}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":33}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":59}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":51}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":40}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":48}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":6}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":42}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":85}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":34}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":3}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":47}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":95}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":39}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":3}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":33}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":9}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":69}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":64}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":17}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":36}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":5}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":27}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":40}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":48}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":101}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":6}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":3}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":53}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":73}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":51}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":50}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":39}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":40}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":0}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":55}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":79}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":48}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":68}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":7}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":5}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":3}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":50}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":27}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":0}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":57}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":117}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":5}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":0}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":45}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":51}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":79}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":0}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":44}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":22}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":219}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":8}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":5}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":39}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":30}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":68}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":6}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":39}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":25}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":63}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":6}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":52}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":72}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":28}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":42}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":42}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":37}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":0}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":37}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":3}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":0}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":36}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":99}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":3}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":48}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":9}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":69}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":67}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":61}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":49}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":60}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":47}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":13}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":9}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":7}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":22}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":71}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":5}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":3}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":0}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":43}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":9}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":59}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":57}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":51}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":56}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":40}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":11}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":0}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":48}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":60}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":42}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":13}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":9}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":7}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":22}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":66}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":5}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":3}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":0}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":67}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":52}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":3}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":0}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":69}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":38}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":38}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":51}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":45}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":29}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":7}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":5}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":24}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":3}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":0}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":5}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":4}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":28}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":116}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":5}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":102}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":32}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":23}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":109}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":42}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":3}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":0}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":34}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":98}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":3}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":0}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":40}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":69}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":33}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":32}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":99}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":0}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":47}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":54}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":55}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":26}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":6}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":0}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":30}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":47}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":0}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":60}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":0}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":34}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":70}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":17}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":7}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":0}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":47}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":0}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":95}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":23}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":17}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":7}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":0}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":10}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":29}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":79}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":65}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":53}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":9}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":13}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":82}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":29}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":28}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":38}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":12}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":0}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":59}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":91}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":21}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":11}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":27}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":45}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":86}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":103}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":78}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":44}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":95}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":74}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":20}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":96}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":72}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":68}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":13}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":50}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":11}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":43}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":26}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":65}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":62}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":9}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":14}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":85}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":0}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":31}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":73}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":74}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":53}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":0}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":64}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":7}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":5}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":3}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":0}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":110}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":72}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":45}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":25}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":83}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":6}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":3}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":0}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":5}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":4}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":30}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":26}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":24}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":13}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":5}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":32}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":48}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":44}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":24}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":13}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":82}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":62}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":73}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":26}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":5}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":84}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":3}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":0}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":100}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":59}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":32}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":5}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":0}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":83}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":0}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":52}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":78}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":6}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":32}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":57}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":5}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":70}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":24}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":3}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":0}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":89}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":64}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":0}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":54}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":46}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":54}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":49}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":9}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":14}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":52}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":7}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":5}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":26}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":3}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":0}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":44}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":28}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":49}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":3}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":0}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":38}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":38}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":3}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":0}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":57}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":28}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":49}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":3}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":21,\"49\":21,\"50\":21,\"51\":21,\"52\":21,\"53\":21,\"54\":21,\"55\":21,\"56\":21,\"57\":1,\"58\":1,\"59\":16,\"60\":16,\"61\":16,\"62\":1,\"63\":1,\"64\":111,\"65\":111,\"66\":111,\"67\":1,\"68\":1,\"69\":21,\"70\":21,\"71\":21,\"72\":21,\"73\":6,\"74\":6,\"75\":21,\"76\":21,\"77\":1,\"78\":1,\"79\":22,\"80\":22,\"81\":22,\"82\":22,\"83\":1,\"84\":1,\"85\":16,\"86\":16,\"87\":16,\"88\":16,\"89\":16,\"90\":7,\"91\":7,\"92\":7,\"93\":7,\"94\":7,\"95\":7,\"96\":1,\"97\":1,\"98\":7,\"99\":16,\"100\":1,\"101\":1,\"102\":16,\"103\":16,\"104\":16,\"105\":2,\"106\":2,\"107\":16,\"108\":16,\"109\":16,\"110\":16,\"111\":16,\"112\":16,\"113\":16,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":15,\"119\":15,\"120\":15,\"121\":15,\"122\":15,\"123\":15,\"124\":15,\"125\":15,\"126\":15,\"127\":15,\"128\":15,\"129\":15,\"130\":15,\"131\":15,\"132\":15,\"133\":15,\"134\":15,\"135\":15,\"136\":15,\"137\":15,\"138\":1,\"139\":1,\"140\":15,\"141\":15,\"142\":1,\"143\":1,\"144\":346,\"145\":346,\"146\":346,\"147\":16,\"148\":16,\"149\":16,\"150\":16,\"151\":16,\"152\":16,\"153\":16,\"154\":346,\"155\":0,\"156\":0,\"157\":346,\"158\":1,\"159\":1,\"160\":346,\"161\":346,\"162\":346,\"163\":16,\"164\":16,\"165\":16,\"166\":16,\"167\":16,\"168\":16,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":16,\"174\":346,\"175\":0,\"176\":0,\"177\":346,\"178\":1,\"179\":1,\"180\":15,\"181\":14,\"182\":1,\"183\":1,\"184\":8,\"185\":8,\"186\":8,\"187\":4040,\"188\":343,\"189\":343,\"190\":4040,\"191\":4040,\"192\":4040,\"193\":1,\"194\":1,\"195\":1,\"196\":1,\"197\":1,\"198\":1,\"199\":1,\"200\":2,\"201\":2,\"202\":2,\"203\":2,\"204\":2,\"205\":1,\"206\":1,\"207\":72,\"208\":72,\"209\":1,\"210\":1,\"211\":1,\"212\":15,\"213\":15,\"214\":15,\"215\":15,\"216\":15,\"217\":61,\"218\":61,\"219\":61,\"220\":15,\"221\":15,\"222\":15,\"223\":55,\"224\":55,\"225\":55,\"226\":55,\"227\":55,\"228\":0,\"229\":0,\"230\":0,\"231\":55,\"232\":55,\"233\":55,\"234\":55,\"235\":39,\"236\":38,\"237\":38,\"238\":16,\"239\":16,\"240\":16,\"241\":6,\"242\":55,\"243\":6,\"244\":55,\"245\":6,\"246\":6,\"247\":6,\"248\":6,\"249\":6,\"250\":6,\"251\":6,\"252\":6,\"253\":0,\"254\":0,\"255\":0,\"256\":6,\"257\":6,\"258\":6,\"259\":6,\"260\":6,\"261\":6,\"262\":1,\"263\":1,\"264\":6,\"265\":5,\"266\":5,\"267\":5,\"268\":5,\"269\":6,\"270\":6,\"271\":6,\"272\":6,\"273\":0,\"274\":0,\"275\":0,\"276\":55,\"277\":10,\"278\":10,\"279\":10,\"280\":10,\"281\":10,\"282\":10,\"283\":10,\"284\":10,\"285\":10,\"286\":55,\"287\":15,\"288\":1,\"289\":1,\"290\":16,\"291\":16,\"292\":16,\"293\":16,\"294\":16,\"295\":16,\"296\":1,\"297\":1,\"298\":1,\"299\":1,\"300\":1,\"301\":1,\"302\":1,\"303\":1,\"304\":1,\"305\":16,\"306\":16,\"307\":16,\"308\":16,\"309\":16,\"310\":16,\"311\":16,\"312\":2,\"313\":2,\"314\":14,\"315\":14,\"316\":1,\"317\":1,\"318\":16,\"319\":13,\"320\":13,\"321\":3,\"322\":3,\"323\":3,\"324\":3,\"325\":3,\"326\":3,\"327\":16,\"328\":2,\"329\":2,\"330\":3,\"331\":3,\"332\":3,\"333\":1,\"334\":1,\"335\":10,\"336\":10,\"337\":10,\"338\":1,\"339\":0,\"340\":0,\"341\":0,\"342\":1,\"343\":1,\"344\":1,\"345\":1,\"346\":10,\"347\":10,\"348\":1,\"349\":1,\"350\":0,\"351\":0,\"352\":0,\"353\":1,\"354\":1,\"355\":0,\"356\":0,\"357\":1,\"358\":1,\"359\":0,\"360\":0,\"361\":0,\"362\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":2},\"end\":{\"line\":57,\"column\":6}},\"locations\":[{\"start\":{\"line\":48,\"column\":2},\"end\":{\"line\":57,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":62,\"column\":3}},\"locations\":[{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":62,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"locations\":[{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":67,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"locations\":[{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":77,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":6},\"end\":{\"line\":75,\"column\":5}},\"locations\":[{\"start\":{\"line\":73,\"column\":6},\"end\":{\"line\":75,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":83,\"column\":3}},\"locations\":[{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":83,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":47},\"end\":{\"line\":81,\"column\":101}},\"locations\":[{\"start\":{\"line\":81,\"column\":47},\"end\":{\"line\":81,\"column\":101}}]},\"7\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":10},\"end\":{\"line\":100,\"column\":3}},\"locations\":[{\"start\":{\"line\":85,\"column\":10},\"end\":{\"line\":100,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":90,\"loc\":{\"start\":{\"line\":90,\"column\":49},\"end\":{\"line\":99,\"column\":5}},\"locations\":[{\"start\":{\"line\":90,\"column\":49},\"end\":{\"line\":99,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":47},\"end\":{\"line\":98,\"column\":7}},\"locations\":[{\"start\":{\"line\":96,\"column\":47},\"end\":{\"line\":98,\"column\":7}}]},\"10\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":138,\"column\":3}},\"locations\":[{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":138,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":56},\"end\":{\"line\":107,\"column\":5}},\"locations\":[{\"start\":{\"line\":105,\"column\":56},\"end\":{\"line\":107,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":114,\"loc\":{\"start\":{\"line\":114,\"column\":43},\"end\":{\"line\":118,\"column\":5}},\"locations\":[{\"start\":{\"line\":114,\"column\":43},\"end\":{\"line\":118,\"column\":5}}]},\"13\":{\"type\":\"branch\",\"line\":119,\"loc\":{\"start\":{\"line\":119,\"column\":-1},\"end\":{\"line\":138,\"column\":3}},\"locations\":[{\"start\":{\"line\":119,\"column\":-1},\"end\":{\"line\":138,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":106,\"loc\":{\"start\":{\"line\":106,\"column\":88},\"end\":{\"line\":106,\"column\":115}},\"locations\":[{\"start\":{\"line\":106,\"column\":88},\"end\":{\"line\":106,\"column\":115}}]},\"15\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":18},\"end\":{\"line\":122,\"column\":57}},\"locations\":[{\"start\":{\"line\":122,\"column\":18},\"end\":{\"line\":122,\"column\":57}}]},\"16\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":18},\"end\":{\"line\":126,\"column\":52}},\"locations\":[{\"start\":{\"line\":126,\"column\":18},\"end\":{\"line\":126,\"column\":52}}]},\"17\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":10},\"end\":{\"line\":142,\"column\":3}},\"locations\":[{\"start\":{\"line\":140,\"column\":10},\"end\":{\"line\":142,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":144,\"loc\":{\"start\":{\"line\":144,\"column\":2},\"end\":{\"line\":158,\"column\":3}},\"locations\":[{\"start\":{\"line\":144,\"column\":2},\"end\":{\"line\":158,\"column\":3}}]},\"19\":{\"type\":\"branch\",\"line\":147,\"loc\":{\"start\":{\"line\":147,\"column\":66},\"end\":{\"line\":154,\"column\":7}},\"locations\":[{\"start\":{\"line\":147,\"column\":66},\"end\":{\"line\":154,\"column\":7}}]},\"20\":{\"type\":\"branch\",\"line\":155,\"loc\":{\"start\":{\"line\":155,\"column\":6},\"end\":{\"line\":157,\"column\":5}},\"locations\":[{\"start\":{\"line\":155,\"column\":6},\"end\":{\"line\":157,\"column\":5}}]},\"21\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":2},\"end\":{\"line\":178,\"column\":3}},\"locations\":[{\"start\":{\"line\":160,\"column\":2},\"end\":{\"line\":178,\"column\":3}}]},\"22\":{\"type\":\"branch\",\"line\":163,\"loc\":{\"start\":{\"line\":163,\"column\":56},\"end\":{\"line\":174,\"column\":7}},\"locations\":[{\"start\":{\"line\":163,\"column\":56},\"end\":{\"line\":174,\"column\":7}}]},\"23\":{\"type\":\"branch\",\"line\":169,\"loc\":{\"start\":{\"line\":169,\"column\":47},\"end\":{\"line\":173,\"column\":9}},\"locations\":[{\"start\":{\"line\":169,\"column\":47},\"end\":{\"line\":173,\"column\":9}}]},\"24\":{\"type\":\"branch\",\"line\":175,\"loc\":{\"start\":{\"line\":175,\"column\":6},\"end\":{\"line\":177,\"column\":5}},\"locations\":[{\"start\":{\"line\":175,\"column\":6},\"end\":{\"line\":177,\"column\":5}}]},\"25\":{\"type\":\"branch\",\"line\":180,\"loc\":{\"start\":{\"line\":180,\"column\":10},\"end\":{\"line\":182,\"column\":3}},\"locations\":[{\"start\":{\"line\":180,\"column\":10},\"end\":{\"line\":182,\"column\":3}}]},\"26\":{\"type\":\"branch\",\"line\":182,\"loc\":{\"start\":{\"line\":182,\"column\":-1},\"end\":{\"line\":182,\"column\":3}},\"locations\":[{\"start\":{\"line\":182,\"column\":-1},\"end\":{\"line\":182,\"column\":3}}]},\"27\":{\"type\":\"branch\",\"line\":184,\"loc\":{\"start\":{\"line\":184,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"locations\":[{\"start\":{\"line\":184,\"column\":2},\"end\":{\"line\":193,\"column\":3}}]},\"28\":{\"type\":\"branch\",\"line\":187,\"loc\":{\"start\":{\"line\":187,\"column\":50},\"end\":{\"line\":193,\"column\":3}},\"locations\":[{\"start\":{\"line\":187,\"column\":50},\"end\":{\"line\":193,\"column\":3}}]},\"29\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":44},\"end\":{\"line\":190,\"column\":7}},\"locations\":[{\"start\":{\"line\":188,\"column\":44},\"end\":{\"line\":190,\"column\":7}}]},\"30\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":23},\"end\":{\"line\":188,\"column\":41}},\"locations\":[{\"start\":{\"line\":188,\"column\":23},\"end\":{\"line\":188,\"column\":41}}]},\"31\":{\"type\":\"branch\",\"line\":200,\"loc\":{\"start\":{\"line\":200,\"column\":2},\"end\":{\"line\":205,\"column\":3}},\"locations\":[{\"start\":{\"line\":200,\"column\":2},\"end\":{\"line\":205,\"column\":3}}]},\"32\":{\"type\":\"branch\",\"line\":207,\"loc\":{\"start\":{\"line\":207,\"column\":10},\"end\":{\"line\":209,\"column\":3}},\"locations\":[{\"start\":{\"line\":207,\"column\":10},\"end\":{\"line\":209,\"column\":3}}]},\"33\":{\"type\":\"branch\",\"line\":208,\"loc\":{\"start\":{\"line\":208,\"column\":45},\"end\":{\"line\":208,\"column\":68}},\"locations\":[{\"start\":{\"line\":208,\"column\":45},\"end\":{\"line\":208,\"column\":68}}]},\"34\":{\"type\":\"branch\",\"line\":212,\"loc\":{\"start\":{\"line\":212,\"column\":2},\"end\":{\"line\":288,\"column\":3}},\"locations\":[{\"start\":{\"line\":212,\"column\":2},\"end\":{\"line\":288,\"column\":3}}]},\"35\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":29},\"end\":{\"line\":287,\"column\":5}},\"locations\":[{\"start\":{\"line\":223,\"column\":29},\"end\":{\"line\":287,\"column\":5}}]},\"36\":{\"type\":\"branch\",\"line\":228,\"loc\":{\"start\":{\"line\":228,\"column\":33},\"end\":{\"line\":231,\"column\":7}},\"locations\":[{\"start\":{\"line\":228,\"column\":33},\"end\":{\"line\":231,\"column\":7}}]},\"37\":{\"type\":\"branch\",\"line\":235,\"loc\":{\"start\":{\"line\":235,\"column\":57},\"end\":{\"line\":235,\"column\":92}},\"locations\":[{\"start\":{\"line\":235,\"column\":57},\"end\":{\"line\":235,\"column\":92}}]},\"38\":{\"type\":\"branch\",\"line\":235,\"loc\":{\"start\":{\"line\":235,\"column\":94},\"end\":{\"line\":238,\"column\":7}},\"locations\":[{\"start\":{\"line\":235,\"column\":94},\"end\":{\"line\":238,\"column\":7}}]},\"39\":{\"type\":\"branch\",\"line\":237,\"loc\":{\"start\":{\"line\":237,\"column\":-1},\"end\":{\"line\":238,\"column\":7}},\"locations\":[{\"start\":{\"line\":237,\"column\":-1},\"end\":{\"line\":238,\"column\":7}}]},\"40\":{\"type\":\"branch\",\"line\":239,\"loc\":{\"start\":{\"line\":239,\"column\":-1},\"end\":{\"line\":241,\"column\":29}},\"locations\":[{\"start\":{\"line\":239,\"column\":-1},\"end\":{\"line\":241,\"column\":29}}]},\"41\":{\"type\":\"branch\",\"line\":241,\"loc\":{\"start\":{\"line\":241,\"column\":26},\"end\":{\"line\":243,\"column\":62}},\"locations\":[{\"start\":{\"line\":241,\"column\":26},\"end\":{\"line\":243,\"column\":62}}]},\"42\":{\"type\":\"branch\",\"line\":243,\"loc\":{\"start\":{\"line\":243,\"column\":62},\"end\":{\"line\":244,\"column\":53}},\"locations\":[{\"start\":{\"line\":243,\"column\":62},\"end\":{\"line\":244,\"column\":53}}]},\"43\":{\"type\":\"branch\",\"line\":245,\"loc\":{\"start\":{\"line\":245,\"column\":8},\"end\":{\"line\":277,\"column\":13}},\"locations\":[{\"start\":{\"line\":245,\"column\":8},\"end\":{\"line\":277,\"column\":13}}]},\"44\":{\"type\":\"branch\",\"line\":253,\"loc\":{\"start\":{\"line\":253,\"column\":58},\"end\":{\"line\":256,\"column\":11}},\"locations\":[{\"start\":{\"line\":253,\"column\":58},\"end\":{\"line\":256,\"column\":11}}]},\"45\":{\"type\":\"branch\",\"line\":262,\"loc\":{\"start\":{\"line\":262,\"column\":43},\"end\":{\"line\":265,\"column\":19}},\"locations\":[{\"start\":{\"line\":262,\"column\":43},\"end\":{\"line\":265,\"column\":19}}]},\"46\":{\"type\":\"branch\",\"line\":265,\"loc\":{\"start\":{\"line\":265,\"column\":13},\"end\":{\"line\":269,\"column\":13}},\"locations\":[{\"start\":{\"line\":265,\"column\":13},\"end\":{\"line\":269,\"column\":13}}]},\"47\":{\"type\":\"branch\",\"line\":273,\"loc\":{\"start\":{\"line\":273,\"column\":10},\"end\":{\"line\":276,\"column\":9}},\"locations\":[{\"start\":{\"line\":273,\"column\":10},\"end\":{\"line\":276,\"column\":9}}]},\"48\":{\"type\":\"branch\",\"line\":277,\"loc\":{\"start\":{\"line\":277,\"column\":7},\"end\":{\"line\":286,\"column\":7}},\"locations\":[{\"start\":{\"line\":277,\"column\":7},\"end\":{\"line\":286,\"column\":7}}]},\"49\":{\"type\":\"branch\",\"line\":282,\"loc\":{\"start\":{\"line\":282,\"column\":12},\"end\":{\"line\":282,\"column\":74}},\"locations\":[{\"start\":{\"line\":282,\"column\":12},\"end\":{\"line\":282,\"column\":74}}]},\"50\":{\"type\":\"branch\",\"line\":283,\"loc\":{\"start\":{\"line\":283,\"column\":12},\"end\":{\"line\":283,\"column\":52}},\"locations\":[{\"start\":{\"line\":283,\"column\":12},\"end\":{\"line\":283,\"column\":52}}]},\"51\":{\"type\":\"branch\",\"line\":215,\"loc\":{\"start\":{\"line\":215,\"column\":69},\"end\":{\"line\":215,\"column\":96}},\"locations\":[{\"start\":{\"line\":215,\"column\":69},\"end\":{\"line\":215,\"column\":96}}]},\"52\":{\"type\":\"branch\",\"line\":217,\"loc\":{\"start\":{\"line\":217,\"column\":32},\"end\":{\"line\":221,\"column\":5}},\"locations\":[{\"start\":{\"line\":217,\"column\":32},\"end\":{\"line\":221,\"column\":5}}]},\"53\":{\"type\":\"branch\",\"line\":219,\"loc\":{\"start\":{\"line\":219,\"column\":8},\"end\":{\"line\":219,\"column\":55}},\"locations\":[{\"start\":{\"line\":219,\"column\":8},\"end\":{\"line\":219,\"column\":55}}]},\"54\":{\"type\":\"branch\",\"line\":220,\"loc\":{\"start\":{\"line\":220,\"column\":8},\"end\":{\"line\":220,\"column\":25}},\"locations\":[{\"start\":{\"line\":220,\"column\":8},\"end\":{\"line\":220,\"column\":25}}]},\"55\":{\"type\":\"branch\",\"line\":290,\"loc\":{\"start\":{\"line\":290,\"column\":10},\"end\":{\"line\":296,\"column\":3}},\"locations\":[{\"start\":{\"line\":290,\"column\":10},\"end\":{\"line\":296,\"column\":3}}]},\"56\":{\"type\":\"branch\",\"line\":305,\"loc\":{\"start\":{\"line\":305,\"column\":10},\"end\":{\"line\":316,\"column\":3}},\"locations\":[{\"start\":{\"line\":305,\"column\":10},\"end\":{\"line\":316,\"column\":3}}]},\"57\":{\"type\":\"branch\",\"line\":312,\"loc\":{\"start\":{\"line\":312,\"column\":39},\"end\":{\"line\":312,\"column\":70}},\"locations\":[{\"start\":{\"line\":312,\"column\":39},\"end\":{\"line\":312,\"column\":70}}]},\"58\":{\"type\":\"branch\",\"line\":312,\"loc\":{\"start\":{\"line\":312,\"column\":72},\"end\":{\"line\":314,\"column\":5}},\"locations\":[{\"start\":{\"line\":312,\"column\":72},\"end\":{\"line\":314,\"column\":5}}]},\"59\":{\"type\":\"branch\",\"line\":315,\"loc\":{\"start\":{\"line\":315,\"column\":-1},\"end\":{\"line\":316,\"column\":3}},\"locations\":[{\"start\":{\"line\":315,\"column\":-1},\"end\":{\"line\":316,\"column\":3}}]},\"60\":{\"type\":\"branch\",\"line\":318,\"loc\":{\"start\":{\"line\":318,\"column\":10},\"end\":{\"line\":333,\"column\":3}},\"locations\":[{\"start\":{\"line\":318,\"column\":10},\"end\":{\"line\":333,\"column\":3}}]},\"61\":{\"type\":\"branch\",\"line\":319,\"loc\":{\"start\":{\"line\":319,\"column\":33},\"end\":{\"line\":319,\"column\":56}},\"locations\":[{\"start\":{\"line\":319,\"column\":33},\"end\":{\"line\":319,\"column\":56}}]},\"62\":{\"type\":\"branch\",\"line\":319,\"loc\":{\"start\":{\"line\":319,\"column\":58},\"end\":{\"line\":321,\"column\":5}},\"locations\":[{\"start\":{\"line\":319,\"column\":58},\"end\":{\"line\":321,\"column\":5}}]},\"63\":{\"type\":\"branch\",\"line\":322,\"loc\":{\"start\":{\"line\":322,\"column\":-1},\"end\":{\"line\":328,\"column\":31}},\"locations\":[{\"start\":{\"line\":322,\"column\":-1},\"end\":{\"line\":328,\"column\":31}}]},\"64\":{\"type\":\"branch\",\"line\":328,\"loc\":{\"start\":{\"line\":328,\"column\":31},\"end\":{\"line\":330,\"column\":5}},\"locations\":[{\"start\":{\"line\":328,\"column\":31},\"end\":{\"line\":330,\"column\":5}}]},\"65\":{\"type\":\"branch\",\"line\":331,\"loc\":{\"start\":{\"line\":331,\"column\":-1},\"end\":{\"line\":333,\"column\":3}},\"locations\":[{\"start\":{\"line\":331,\"column\":-1},\"end\":{\"line\":333,\"column\":3}}]},\"66\":{\"type\":\"branch\",\"line\":326,\"loc\":{\"start\":{\"line\":326,\"column\":6},\"end\":{\"line\":326,\"column\":78}},\"locations\":[{\"start\":{\"line\":326,\"column\":6},\"end\":{\"line\":326,\"column\":78}}]},\"67\":{\"type\":\"branch\",\"line\":326,\"loc\":{\"start\":{\"line\":326,\"column\":52},\"end\":{\"line\":326,\"column\":76}},\"locations\":[{\"start\":{\"line\":326,\"column\":52},\"end\":{\"line\":326,\"column\":76}}]},\"68\":{\"type\":\"branch\",\"line\":335,\"loc\":{\"start\":{\"line\":335,\"column\":10},\"end\":{\"line\":348,\"column\":3}},\"locations\":[{\"start\":{\"line\":335,\"column\":10},\"end\":{\"line\":348,\"column\":3}}]},\"69\":{\"type\":\"branch\",\"line\":338,\"loc\":{\"start\":{\"line\":338,\"column\":53},\"end\":{\"line\":346,\"column\":5}},\"locations\":[{\"start\":{\"line\":338,\"column\":53},\"end\":{\"line\":346,\"column\":5}}]},\"70\":{\"type\":\"branch\",\"line\":339,\"loc\":{\"start\":{\"line\":339,\"column\":45},\"end\":{\"line\":343,\"column\":13}},\"locations\":[{\"start\":{\"line\":339,\"column\":45},\"end\":{\"line\":343,\"column\":13}}]}},\"b\":{\"0\":[21],\"1\":[16],\"2\":[111],\"3\":[21],\"4\":[6],\"5\":[22],\"6\":[16],\"7\":[16],\"8\":[7],\"9\":[1],\"10\":[16],\"11\":[2],\"12\":[1],\"13\":[15],\"14\":[5],\"15\":[330],\"16\":[330],\"17\":[15],\"18\":[346],\"19\":[16],\"20\":[0],\"21\":[346],\"22\":[16],\"23\":[0],\"24\":[0],\"25\":[15],\"26\":[14],\"27\":[8],\"28\":[4040],\"29\":[343],\"30\":[1043],\"31\":[2],\"32\":[72],\"33\":[0],\"34\":[15],\"35\":[55],\"36\":[0],\"37\":[24],\"38\":[39],\"39\":[38],\"40\":[16],\"41\":[6],\"42\":[6],\"43\":[6],\"44\":[0],\"45\":[1],\"46\":[5],\"47\":[0],\"48\":[10],\"49\":[2],\"50\":[8],\"51\":[15],\"52\":[61],\"53\":[39],\"54\":[22],\"55\":[16],\"56\":[16],\"57\":[2],\"58\":[2],\"59\":[14],\"60\":[16],\"61\":[3],\"62\":[13],\"63\":[3],\"64\":[2],\"65\":[3],\"66\":[204],\"67\":[2040],\"68\":[10],\"69\":[1],\"70\":[0]},\"fnMap\":{\"0\":{\"name\":\"BaseFetchService\",\"decl\":{\"start\":{\"line\":48,\"column\":2},\"end\":{\"line\":57,\"column\":6}},\"loc\":{\"start\":{\"line\":48,\"column\":2},\"end\":{\"line\":57,\"column\":6}},\"line\":48},\"1\":{\"name\":\"get latestBestHeight\",\"decl\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":62,\"column\":3}},\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":62,\"column\":3}},\"line\":59},\"2\":{\"name\":\"get latestFinalizedHeight\",\"decl\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"loc\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"line\":64},\"3\":{\"name\":\"onApplicationShutdown\",\"decl\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"loc\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"line\":69},\"4\":{\"name\":\"get useDictionary\",\"decl\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":83,\"column\":3}},\"loc\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":83,\"column\":3}},\"line\":79},\"5\":{\"name\":\"updateBypassBlocksFromDatasources\",\"decl\":{\"start\":{\"line\":85,\"column\":10},\"end\":{\"line\":100,\"column\":3}},\"loc\":{\"start\":{\"line\":85,\"column\":10},\"end\":{\"line\":100,\"column\":3}},\"line\":85},\"6\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":138,\"column\":3}},\"loc\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":138,\"column\":3}},\"line\":102},\"7\":{\"name\":\"updateDictionary\",\"decl\":{\"start\":{\"line\":140,\"column\":10},\"end\":{\"line\":142,\"column\":3}},\"loc\":{\"start\":{\"line\":140,\"column\":10},\"end\":{\"line\":142,\"column\":3}},\"line\":140},\"8\":{\"name\":\"getFinalizedBlockHead\",\"decl\":{\"start\":{\"line\":144,\"column\":2},\"end\":{\"line\":158,\"column\":3}},\"loc\":{\"start\":{\"line\":144,\"column\":2},\"end\":{\"line\":158,\"column\":3}},\"line\":144},\"9\":{\"name\":\"getBestBlockHead\",\"decl\":{\"start\":{\"line\":160,\"column\":2},\"end\":{\"line\":178,\"column\":3}},\"loc\":{\"start\":{\"line\":160,\"column\":2},\"end\":{\"line\":178,\"column\":3}},\"line\":160},\"10\":{\"name\":\"startLoop\",\"decl\":{\"start\":{\"line\":180,\"column\":10},\"end\":{\"line\":182,\"column\":3}},\"loc\":{\"start\":{\"line\":180,\"column\":10},\"end\":{\"line\":182,\"column\":3}},\"line\":180},\"11\":{\"name\":\"getModuloBlocks\",\"decl\":{\"start\":{\"line\":184,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"loc\":{\"start\":{\"line\":184,\"column\":2},\"end\":{\"line\":193,\"column\":3}},\"line\":184},\"12\":{\"name\":\"getEnqueuedModuloBlocks\",\"decl\":{\"start\":{\"line\":200,\"column\":2},\"end\":{\"line\":205,\"column\":3}},\"loc\":{\"start\":{\"line\":200,\"column\":2},\"end\":{\"line\":205,\"column\":3}},\"line\":200},\"13\":{\"name\":\"latestHeight\",\"decl\":{\"start\":{\"line\":207,\"column\":10},\"end\":{\"line\":209,\"column\":3}},\"loc\":{\"start\":{\"line\":207,\"column\":10},\"end\":{\"line\":209,\"column\":3}},\"line\":207},\"14\":{\"name\":\"fillNextBlockBuffer\",\"decl\":{\"start\":{\"line\":212,\"column\":2},\"end\":{\"line\":288,\"column\":3}},\"loc\":{\"start\":{\"line\":212,\"column\":2},\"end\":{\"line\":288,\"column\":3}},\"line\":212},\"15\":{\"name\":\"getStartBlockHeight\",\"decl\":{\"start\":{\"line\":217,\"column\":32},\"end\":{\"line\":221,\"column\":5}},\"loc\":{\"start\":{\"line\":217,\"column\":32},\"end\":{\"line\":221,\"column\":5}},\"line\":217},\"16\":{\"name\":\"enqueueBlocks\",\"decl\":{\"start\":{\"line\":290,\"column\":10},\"end\":{\"line\":296,\"column\":3}},\"loc\":{\"start\":{\"line\":290,\"column\":10},\"end\":{\"line\":296,\"column\":3}},\"line\":290},\"17\":{\"name\":\"getLatestBufferHeight\",\"decl\":{\"start\":{\"line\":305,\"column\":10},\"end\":{\"line\":316,\"column\":3}},\"loc\":{\"start\":{\"line\":305,\"column\":10},\"end\":{\"line\":316,\"column\":3}},\"line\":305},\"18\":{\"name\":\"filteredBlockBatch\",\"decl\":{\"start\":{\"line\":318,\"column\":10},\"end\":{\"line\":333,\"column\":3}},\"loc\":{\"start\":{\"line\":318,\"column\":10},\"end\":{\"line\":333,\"column\":3}},\"line\":318},\"19\":{\"name\":\"nextEndBlockHeight\",\"decl\":{\"start\":{\"line\":335,\"column\":10},\"end\":{\"line\":348,\"column\":3}},\"loc\":{\"start\":{\"line\":335,\"column\":10},\"end\":{\"line\":348,\"column\":3}},\"line\":335},\"20\":{\"name\":\"resetForNewDs\",\"decl\":{\"start\":{\"line\":350,\"column\":2},\"end\":{\"line\":353,\"column\":3}},\"loc\":{\"start\":{\"line\":350,\"column\":2},\"end\":{\"line\":353,\"column\":3}},\"line\":350},\"21\":{\"name\":\"getLatestFinalizedHeight\",\"decl\":{\"start\":{\"line\":355,\"column\":2},\"end\":{\"line\":357,\"column\":3}},\"loc\":{\"start\":{\"line\":355,\"column\":2},\"end\":{\"line\":357,\"column\":3}},\"line\":355},\"22\":{\"name\":\"resetForIncorrectBestBlock\",\"decl\":{\"start\":{\"line\":359,\"column\":2},\"end\":{\"line\":362,\"column\":3}},\"loc\":{\"start\":{\"line\":359,\"column\":2},\"end\":{\"line\":362,\"column\":3}},\"line\":359}},\"f\":{\"0\":21,\"1\":16,\"2\":111,\"3\":21,\"4\":22,\"5\":16,\"6\":16,\"7\":15,\"8\":346,\"9\":346,\"10\":15,\"11\":8,\"12\":2,\"13\":72,\"14\":15,\"15\":61,\"16\":16,\"17\":16,\"18\":16,\"19\":10,\"20\":0,\"21\":0,\"22\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/inMemoryCache.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/inMemoryCache.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":42}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":40}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":3}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":75}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":91}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":71}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":3}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":13}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":88}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":29}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":24}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":12}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":65}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":69}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":31}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":8}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":65}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":70}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":32}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":8}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":6}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":20,\"14\":20,\"15\":20,\"16\":2,\"17\":2,\"18\":2,\"19\":4,\"20\":2,\"21\":2,\"22\":2,\"23\":2,\"24\":3,\"25\":2,\"26\":2,\"27\":2,\"28\":20},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":13,\"loc\":{\"start\":{\"line\":13,\"column\":7},\"end\":{\"line\":29,\"column\":1}},\"locations\":[{\"start\":{\"line\":13,\"column\":7},\"end\":{\"line\":29,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"locations\":[{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":28,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":11},\"end\":{\"line\":21,\"column\":7}},\"locations\":[{\"start\":{\"line\":19,\"column\":11},\"end\":{\"line\":21,\"column\":7}}]},\"3\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":11},\"end\":{\"line\":26,\"column\":7}},\"locations\":[{\"start\":{\"line\":24,\"column\":11},\"end\":{\"line\":26,\"column\":7}}]}},\"b\":{\"0\":[20],\"1\":[2],\"2\":[4],\"3\":[3]},\"fnMap\":{\"0\":{\"name\":\"InMemoryCacheService\",\"decl\":{\"start\":{\"line\":13,\"column\":7},\"end\":{\"line\":29,\"column\":1}},\"loc\":{\"start\":{\"line\":13,\"column\":7},\"end\":{\"line\":29,\"column\":1}},\"line\":13},\"1\":{\"name\":\"getCache\",\"decl\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"line\":16},\"2\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":19,\"column\":11},\"end\":{\"line\":21,\"column\":7}},\"loc\":{\"start\":{\"line\":19,\"column\":11},\"end\":{\"line\":21,\"column\":7}},\"line\":19},\"3\":{\"name\":\"set\",\"decl\":{\"start\":{\"line\":24,\"column\":11},\"end\":{\"line\":26,\"column\":7}},\"loc\":{\"start\":{\"line\":24,\"column\":11},\"end\":{\"line\":26,\"column\":7}},\"line\":24}},\"f\":{\"0\":20,\"1\":2,\"2\":4,\"3\":3}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":36}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":46}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":27}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":22}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":24}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":34}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":32}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":40}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":29}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":25}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":29}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":26}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":37}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":34}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":37}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":34}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":30}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":34}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":32}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":34}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":39}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":44}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/indexer.manager.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/indexer.manager.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":71}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":36}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":40}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":36}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":41}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":55}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":62}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":54}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":41}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":48}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":70}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":36}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":36}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":79}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":9}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":45}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":2}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":99}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":83}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":88}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":18}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":10}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":13}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":41}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":17}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":20}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":18}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":39}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":28}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":61}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":34}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":51}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":56}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":35}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":1}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":106}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":44}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":42}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":51}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":51}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":93}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":68}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":36}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":13}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":22}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":45}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":19}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":74}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":96}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":14}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":39}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":46}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":82}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":64}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":51}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":67}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":33}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":38}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":5}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":41}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":3}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":0}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":37}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":21}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":22}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":29}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":36}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":33}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":54}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":81}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":61}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":18}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":84}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":53}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":30}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":85}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":71}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":42}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":65}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":47}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":83}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":77}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":25}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":17}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":36}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":13}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":105}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":42}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":34}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":38}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":18}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":9}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":5}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":0}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":12}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":23}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":45}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":25}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":6}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":3}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":91}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":44}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":75}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":5}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":3}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":84}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":25}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":36}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":13}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":38}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":48}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":72}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":6}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":35}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":44}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":32}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":107}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":14}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":20}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":7}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":7}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":22}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":3}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":0}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":60}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":21}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":19}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":45}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":115}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":66}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":28}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":90}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":75}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":106}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":8}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":22}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":5}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":55}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":12}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":29}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":11}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":46}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":20}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":27}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":81}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":0}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":31}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":50}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":81}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":8}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":0}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":39}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":76}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":38}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":0}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":74}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":0}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":32}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":31}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":38}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":35}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":29}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":44}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":64}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":7}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":37}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":112}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":44}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":0}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":83}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":9}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":0}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":39}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":76}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":38}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":70}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":7}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":5}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":3}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":0}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":60}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":73}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":29}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":38}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":72}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":22}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":62}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":0}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":30}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":28}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":65}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":42}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":56}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":9}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":21}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":8}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":28}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":93}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":0}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":13}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":44}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":35}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":24}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":15}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":13}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":26}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":64}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":18}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":9}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":9}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":3}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":0}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":71}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":73}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":23}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":27}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":28}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":20}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":62}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":63}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":0}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":89}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":0}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":43}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":20}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":20}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":11}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":31}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":39}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":15}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":8}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":26}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":71}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":16}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":9}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":0}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":99}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":99}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":42}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":53}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":5}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":3}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":20,\"65\":20,\"66\":20,\"67\":20,\"68\":20,\"69\":20,\"70\":20,\"71\":20,\"72\":20,\"73\":20,\"74\":20,\"75\":1,\"76\":1,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":1,\"122\":1,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":1,\"128\":1,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":1,\"150\":1,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":1,\"165\":1,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":1,\"208\":1,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":1,\"240\":1,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"locations\":[{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":75,\"column\":3}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"BaseIndexerManager\",\"decl\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"loc\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"line\":64},\"1\":{\"name\":\"internalIndexBlock\",\"decl\":{\"start\":{\"line\":77,\"column\":12},\"end\":{\"line\":121,\"column\":3}},\"loc\":{\"start\":{\"line\":77,\"column\":12},\"end\":{\"line\":121,\"column\":3}},\"line\":77},\"2\":{\"name\":\"processUnfinalizedBlocks\",\"decl\":{\"start\":{\"line\":123,\"column\":12},\"end\":{\"line\":127,\"column\":3}},\"loc\":{\"start\":{\"line\":123,\"column\":12},\"end\":{\"line\":127,\"column\":3}},\"line\":123},\"3\":{\"name\":\"filterDataSources\",\"decl\":{\"start\":{\"line\":129,\"column\":10},\"end\":{\"line\":149,\"column\":3}},\"loc\":{\"start\":{\"line\":129,\"column\":10},\"end\":{\"line\":149,\"column\":3}},\"line\":129},\"4\":{\"name\":\"assertDataSources\",\"decl\":{\"start\":{\"line\":151,\"column\":10},\"end\":{\"line\":164,\"column\":3}},\"loc\":{\"start\":{\"line\":151,\"column\":10},\"end\":{\"line\":164,\"column\":3}},\"line\":151},\"5\":{\"name\":\"indexData\",\"decl\":{\"start\":{\"line\":166,\"column\":12},\"end\":{\"line\":207,\"column\":3}},\"loc\":{\"start\":{\"line\":166,\"column\":12},\"end\":{\"line\":207,\"column\":3}},\"line\":166},\"6\":{\"name\":\"filterCustomDsHandlers\",\"decl\":{\"start\":{\"line\":209,\"column\":10},\"end\":{\"line\":239,\"column\":3}},\"loc\":{\"start\":{\"line\":209,\"column\":10},\"end\":{\"line\":239,\"column\":3}},\"line\":209},\"7\":{\"name\":\"transformAndExecuteCustomDs\",\"decl\":{\"start\":{\"line\":241,\"column\":10},\"end\":{\"line\":270,\"column\":3}},\"loc\":{\"start\":{\"line\":241,\"column\":10},\"end\":{\"line\":270,\"column\":3}},\"line\":241}},\"f\":{\"0\":20,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/PoiBlock.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/PoiBlock.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":8}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":12}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":14}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":11}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":8}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":8}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":14}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":11}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":15}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":11}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":15}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":14}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":22}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":52}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":51}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":52}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":13}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":45}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":39}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":20}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":24}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":18}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":93}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":66}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":21}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":14}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":22}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":56}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":60}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":29}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":16}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":5}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":4}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":2}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":47}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":61}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":22}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":24}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":45}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":59}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":48}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":26}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":29}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":28}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":46}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":54}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":40}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":14}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":15}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":38}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":41}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":22}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":28}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":21}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":5}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":17}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":41}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":47}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":31}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":33}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":21}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":3}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":16}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":15}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":47}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":41}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":22}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":27}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":15}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":96}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":57}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":41}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":8}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":64}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":61}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":7}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":22}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":113}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":8}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":5}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":64}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":90}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":37}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":88}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":7}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":5}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":43}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":32}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":49}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":39}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":39}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":98}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":75}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":45}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":53}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":42}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":49}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":53}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":41}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":61}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":29}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":12}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":112}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":5}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":37}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":35}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":89}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":5}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":103}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":20}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":3}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":35,\"22\":35,\"23\":35,\"24\":35,\"25\":35,\"26\":35,\"27\":35,\"28\":0,\"29\":0,\"30\":35,\"31\":35,\"32\":35,\"33\":35,\"34\":35,\"35\":35,\"36\":35,\"37\":35,\"38\":35,\"39\":35,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":37,\"57\":37,\"58\":37,\"59\":37,\"60\":37,\"61\":37,\"62\":37,\"63\":37,\"64\":37,\"65\":37,\"66\":37,\"67\":37,\"68\":37,\"69\":37,\"70\":1,\"71\":1,\"72\":40,\"73\":40,\"74\":40,\"75\":40,\"76\":40,\"77\":40,\"78\":40,\"79\":40,\"80\":40,\"81\":40,\"82\":40,\"83\":40,\"84\":39,\"85\":40,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":40,\"91\":9,\"92\":9,\"93\":1,\"94\":1,\"95\":9,\"96\":38,\"97\":38,\"98\":40,\"99\":3,\"100\":40,\"101\":22,\"102\":22,\"103\":35,\"104\":1,\"105\":1,\"106\":13,\"107\":3,\"108\":3,\"109\":12,\"110\":8,\"111\":8,\"112\":8,\"113\":1,\"114\":1,\"115\":37,\"116\":37,\"117\":40,\"118\":35,\"119\":35,\"120\":37,\"121\":37,\"122\":37,\"123\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":21},\"end\":{\"line\":40,\"column\":2}},\"locations\":[{\"start\":{\"line\":21,\"column\":21},\"end\":{\"line\":40,\"column\":2}}]},\"1\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":92},\"end\":{\"line\":30,\"column\":3}},\"locations\":[{\"start\":{\"line\":28,\"column\":92},\"end\":{\"line\":30,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":20},\"end\":{\"line\":34,\"column\":55}},\"locations\":[{\"start\":{\"line\":34,\"column\":20},\"end\":{\"line\":34,\"column\":55}}]},\"3\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":23},\"end\":{\"line\":35,\"column\":59}},\"locations\":[{\"start\":{\"line\":35,\"column\":23},\"end\":{\"line\":35,\"column\":59}}]},\"4\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"locations\":[{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":70,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":9},\"end\":{\"line\":123,\"column\":3}},\"locations\":[{\"start\":{\"line\":72,\"column\":9},\"end\":{\"line\":123,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":33},\"end\":{\"line\":84,\"column\":60}},\"locations\":[{\"start\":{\"line\":84,\"column\":33},\"end\":{\"line\":84,\"column\":60}}]},\"7\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":61},\"end\":{\"line\":85,\"column\":61}},\"locations\":[{\"start\":{\"line\":84,\"column\":61},\"end\":{\"line\":85,\"column\":61}}]},\"8\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":33},\"end\":{\"line\":85,\"column\":60}},\"locations\":[{\"start\":{\"line\":85,\"column\":33},\"end\":{\"line\":85,\"column\":60}}]},\"9\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":6},\"end\":{\"line\":90,\"column\":5}},\"locations\":[{\"start\":{\"line\":86,\"column\":6},\"end\":{\"line\":90,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":91,\"loc\":{\"start\":{\"line\":91,\"column\":-1},\"end\":{\"line\":91,\"column\":38}},\"locations\":[{\"start\":{\"line\":91,\"column\":-1},\"end\":{\"line\":91,\"column\":38}}]},\"11\":{\"type\":\"branch\",\"line\":91,\"loc\":{\"start\":{\"line\":91,\"column\":34},\"end\":{\"line\":91,\"column\":61}},\"locations\":[{\"start\":{\"line\":91,\"column\":34},\"end\":{\"line\":91,\"column\":61}}]},\"12\":{\"type\":\"branch\",\"line\":91,\"loc\":{\"start\":{\"line\":91,\"column\":63},\"end\":{\"line\":96,\"column\":5}},\"locations\":[{\"start\":{\"line\":91,\"column\":63},\"end\":{\"line\":96,\"column\":5}}]},\"13\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":36},\"end\":{\"line\":95,\"column\":7}},\"locations\":[{\"start\":{\"line\":93,\"column\":36},\"end\":{\"line\":95,\"column\":7}}]},\"14\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":-1},\"end\":{\"line\":99,\"column\":31}},\"locations\":[{\"start\":{\"line\":97,\"column\":-1},\"end\":{\"line\":99,\"column\":31}}]},\"15\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":31},\"end\":{\"line\":101,\"column\":11}},\"locations\":[{\"start\":{\"line\":99,\"column\":31},\"end\":{\"line\":101,\"column\":11}}]},\"16\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":5},\"end\":{\"line\":115,\"column\":5}},\"locations\":[{\"start\":{\"line\":101,\"column\":5},\"end\":{\"line\":115,\"column\":5}}]},\"17\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":38},\"end\":{\"line\":104,\"column\":11}},\"locations\":[{\"start\":{\"line\":101,\"column\":38},\"end\":{\"line\":104,\"column\":11}}]},\"18\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":5},\"end\":{\"line\":115,\"column\":5}},\"locations\":[{\"start\":{\"line\":104,\"column\":5},\"end\":{\"line\":115,\"column\":5}}]},\"19\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":39},\"end\":{\"line\":104,\"column\":72}},\"locations\":[{\"start\":{\"line\":104,\"column\":39},\"end\":{\"line\":104,\"column\":72}}]},\"20\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":74},\"end\":{\"line\":107,\"column\":11}},\"locations\":[{\"start\":{\"line\":104,\"column\":74},\"end\":{\"line\":107,\"column\":11}}]},\"21\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":5},\"end\":{\"line\":115,\"column\":5}},\"locations\":[{\"start\":{\"line\":107,\"column\":5},\"end\":{\"line\":115,\"column\":5}}]},\"22\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":41},\"end\":{\"line\":110,\"column\":11}},\"locations\":[{\"start\":{\"line\":107,\"column\":41},\"end\":{\"line\":110,\"column\":11}}]},\"23\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":5},\"end\":{\"line\":115,\"column\":5}},\"locations\":[{\"start\":{\"line\":110,\"column\":5},\"end\":{\"line\":115,\"column\":5}}]},\"24\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":40},\"end\":{\"line\":115,\"column\":5}},\"locations\":[{\"start\":{\"line\":110,\"column\":40},\"end\":{\"line\":115,\"column\":5}}]},\"25\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":5},\"end\":{\"line\":115,\"column\":5}},\"locations\":[{\"start\":{\"line\":113,\"column\":5},\"end\":{\"line\":115,\"column\":5}}]},\"26\":{\"type\":\"branch\",\"line\":116,\"loc\":{\"start\":{\"line\":116,\"column\":-1},\"end\":{\"line\":118,\"column\":34}},\"locations\":[{\"start\":{\"line\":116,\"column\":-1},\"end\":{\"line\":118,\"column\":34}}]},\"27\":{\"type\":\"branch\",\"line\":118,\"loc\":{\"start\":{\"line\":118,\"column\":34},\"end\":{\"line\":120,\"column\":5}},\"locations\":[{\"start\":{\"line\":118,\"column\":34},\"end\":{\"line\":120,\"column\":5}}]},\"28\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":-1},\"end\":{\"line\":123,\"column\":3}},\"locations\":[{\"start\":{\"line\":121,\"column\":-1},\"end\":{\"line\":123,\"column\":3}}]}},\"b\":{\"0\":[35],\"1\":[0],\"2\":[8],\"3\":[8],\"4\":[37],\"5\":[40],\"6\":[10],\"7\":[39],\"8\":[30],\"9\":[1],\"10\":[39],\"11\":[9],\"12\":[9],\"13\":[1],\"14\":[38],\"15\":[3],\"16\":[35],\"17\":[22],\"18\":[13],\"19\":[1],\"20\":[1],\"21\":[12],\"22\":[3],\"23\":[9],\"24\":[8],\"25\":[1],\"26\":[37],\"27\":[35],\"28\":[37]},\"fnMap\":{\"0\":{\"name\":\"poiBlockHash\",\"decl\":{\"start\":{\"line\":21,\"column\":21},\"end\":{\"line\":40,\"column\":2}},\"loc\":{\"start\":{\"line\":21,\"column\":21},\"end\":{\"line\":40,\"column\":2}},\"line\":21},\"1\":{\"name\":\"PoiBlock\",\"decl\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"loc\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"line\":56},\"2\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":72,\"column\":9},\"end\":{\"line\":123,\"column\":3}},\"loc\":{\"start\":{\"line\":72,\"column\":9},\"end\":{\"line\":123,\"column\":3}},\"line\":72}},\"f\":{\"0\":35,\"1\":37,\"2\":40}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":27}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":30}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":34}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":27}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/poi.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/poi.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":73}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":63}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":43}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":37}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":39}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":36}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":48}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":53}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":39}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":3}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":44}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":65}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":3}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":13}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":58}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":29}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":35}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":98}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":33}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":27}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":3}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":32}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":25}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":44}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":5}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":25}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":5}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":53}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":29}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":18}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":45}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":53}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":25}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":13}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":5}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":95}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":46}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":36}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":3}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":5}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":46}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":18}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":13}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":5}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":59}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":9}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":91}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":60}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":102}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":69}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":42}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":118}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":112}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":92}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":100}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":162}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":91}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":20}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":9}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":39}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":96}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":25}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":24}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":37}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":74}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":67}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":9}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":54}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":99}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":9}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":51}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":96}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":41}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":23}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":24}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":24}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":120}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":13}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":12}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":9}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":41}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":86}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":86}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":23}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":24}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":24}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":110}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":13}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":12}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":9}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":43}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":92}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":94}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":0}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":23}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":24}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":24}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":129}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":13}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":12}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":9}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":7}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":27}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":68}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":69}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":18}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":81}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":9}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":38}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":15}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":106}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":23}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":70}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":20}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":11}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":9}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":26}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":48}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":38}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":94}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":9}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":7}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":17}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":58}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":5}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":3}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":0}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":84}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":77}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":93}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":0}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":87}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":59}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":31}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":33}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":9}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":70}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":62}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":24}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":71}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":14}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":81}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":7}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":5}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":66}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":3}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":1}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":0}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":33}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":30}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":17}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":27}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":28}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":19}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":18}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":24}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":51}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":22}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":9}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":51}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":20}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":25}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":16}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":15}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":39}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":12}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":10}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":9}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":41}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":14}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":25}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":7}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":74}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":35}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":29}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":22}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":23}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":18}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":17}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":66}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":14}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":12}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":11}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":7}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":29}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":17}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":85}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":5}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":3}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":20,\"28\":20,\"29\":1,\"30\":1,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":1,\"146\":1,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":1,\"166\":1,\"167\":1,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":25,\"column\":98}},\"locations\":[{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":25,\"column\":98}}]},\"1\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"locations\":[{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}}]}},\"b\":{\"0\":[20],\"1\":[20]},\"fnMap\":{\"0\":{\"name\":\"PoiService\",\"decl\":{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":25,\"column\":98}},\"loc\":{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":25,\"column\":98}},\"line\":25},\"1\":{\"name\":\"onApplicationShutdown\",\"decl\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"line\":27},\"2\":{\"name\":\"get poiRepo\",\"decl\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":31},\"3\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"line\":43},\"4\":{\"name\":\"migratePoi\",\"decl\":{\"start\":{\"line\":59,\"column\":10},\"end\":{\"line\":145,\"column\":3}},\"loc\":{\"start\":{\"line\":59,\"column\":10},\"end\":{\"line\":145,\"column\":3}},\"line\":59},\"5\":{\"name\":\"rewind\",\"decl\":{\"start\":{\"line\":147,\"column\":2},\"end\":{\"line\":165,\"column\":3}},\"loc\":{\"start\":{\"line\":147,\"column\":2},\"end\":{\"line\":165,\"column\":3}},\"line\":147},\"6\":{\"name\":\"batchDeletePoi\",\"decl\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":209,\"column\":1}},\"loc\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":209,\"column\":1}},\"line\":169}},\"f\":{\"0\":20,\"1\":20,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/poiModel.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/poiModel.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":50}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":51}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":50}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":31}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":17}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":77}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":5}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":76}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":74}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":7}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":67}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":1}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":125}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":59}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":71}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":36}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":28}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":3}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":13}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":52}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":41}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":55}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":45}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":29}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":7}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":28}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":67}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":49}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":17}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":66}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":11}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":3}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":75}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":45}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":33}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":43}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":29}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":7}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":78}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":3}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":76}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":33}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":42}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":65}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":7}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":37}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":45}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":7}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":43}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":57}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":7}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":5}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":41}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":22}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":33}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":48}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":7}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":3}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":27}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":24}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":59}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":30}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":45}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":27}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":14}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":36}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":43}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":8}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":30}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":7}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":78}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":3}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":8,\"21\":8,\"22\":0,\"23\":0,\"24\":8,\"25\":8,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":2,\"32\":2,\"33\":2,\"34\":2,\"35\":2,\"36\":1,\"37\":1,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":1,\"45\":1,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":1,\"54\":1,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":1,\"73\":1,\"74\":2,\"75\":2,\"76\":2,\"77\":2,\"78\":2,\"79\":2,\"80\":2,\"81\":2,\"82\":2,\"83\":2,\"84\":2,\"85\":2,\"86\":2,\"87\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"locations\":[{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":26,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":35},\"end\":{\"line\":24,\"column\":3}},\"locations\":[{\"start\":{\"line\":22,\"column\":35},\"end\":{\"line\":24,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":29,\"column\":41}},\"locations\":[{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":29,\"column\":41}}]},\"3\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"locations\":[{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":36,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":17},\"end\":{\"line\":35,\"column\":25}},\"locations\":[{\"start\":{\"line\":35,\"column\":17},\"end\":{\"line\":35,\"column\":25}}]},\"5\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"locations\":[{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":87,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":22},\"end\":{\"line\":86,\"column\":76}},\"locations\":[{\"start\":{\"line\":86,\"column\":22},\"end\":{\"line\":86,\"column\":76}}]}},\"b\":{\"0\":[8],\"1\":[0],\"2\":[13],\"3\":[2],\"4\":[0],\"5\":[2],\"6\":[8]},\"fnMap\":{\"0\":{\"name\":\"ensureProofOfIndexId\",\"decl\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"loc\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"line\":21},\"1\":{\"name\":\"PlainPoiModel\",\"decl\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":29,\"column\":41}},\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":29,\"column\":41}},\"line\":29},\"2\":{\"name\":\"getFirst\",\"decl\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":31},\"3\":{\"name\":\"getPoiById\",\"decl\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":44,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":44,\"column\":3}},\"line\":38},\"4\":{\"name\":\"getPoiBlocksByRange\",\"decl\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":53,\"column\":3}},\"loc\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":53,\"column\":3}},\"line\":46},\"5\":{\"name\":\"bulkUpsert\",\"decl\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"loc\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"line\":55},\"6\":{\"name\":\"getPoiBlocksBefore\",\"decl\":{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"loc\":{\"start\":{\"line\":74,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"line\":74}},\"f\":{\"0\":8,\"1\":13,\"2\":2,\"3\":0,\"4\":0,\"5\":0,\"6\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/poiSync.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/poi/poiSync.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":73}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":52}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":73}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":38}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":58}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":43}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":47}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":38}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":44}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":68}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":84}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":42}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":36}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":41}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":45}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":43}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":64}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":75}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":99}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":97}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":31}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":145}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":79}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":2}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":101}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":13}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":62}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":29}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":35}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":39}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":33}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":42}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":29}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":28}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":46}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":14}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":46}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":40}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":65}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":5}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":42}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":35}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":3}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":33}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":27}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":3}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":32}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":25}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":44}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":5}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":25}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":3}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":36}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":30}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":49}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":5}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":30}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":3}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":30}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":27}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":63}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":5}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":27}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":3}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":0}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":27}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":24}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":43}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":5}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":27}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":3}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":45}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":54}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":35}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":12}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":22}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":35}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":59}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":64}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":8}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":5}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":3}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":45}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":67}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":74}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":47}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":21}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":13}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":12}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":34}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":6}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":89}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":3}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":0}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":53}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":31}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":26}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":31}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":28}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":9}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":32}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":37}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":58}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":49}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":38}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":21}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":18}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":67}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":69}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":134}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":94}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":49}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":30}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":13}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":11}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":16}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":35}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":43}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":11}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":66}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":73}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":96}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":81}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":18}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":11}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":39}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":45}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":45}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":11}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":81}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":55}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":40}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":11}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":9}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":7}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":29}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":17}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":50}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":29}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":22}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":5}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":3}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":0}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":5}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":60}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":5}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":35}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":27}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":37}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":36}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":30}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":20}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":28}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":9}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":14}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":7}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":3}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":0}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":5}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":46}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":28}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":56}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":5}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":17}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":38}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":34}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":3}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":0}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":5}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":62}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":13}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":5}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":75}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":77}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":27}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":45}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":5}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":11}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":3}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":0}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":72}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":39}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":110}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":28}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":79}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":7}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":22}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":72}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":7}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":30}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":5}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":3}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":0}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":5}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":96}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":96}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":13}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":5}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":60}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":93}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":74}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":46}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":79}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":24}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":73}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":45}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":14}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":87}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":7}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":5}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":3}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":0}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":5}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":74}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":65}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":13}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":5}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":65}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":32}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":13}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":5}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":53}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":21}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":46}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":27}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":5}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":3}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":0}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":5}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":76}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":20}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":13}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":5}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":60}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":88}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":22}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":115}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":8}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":5}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":59}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":37}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":54}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":26}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":28}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":7}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":3}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":0}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":5}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":23}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":22}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":13}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":5}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":75}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":37}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":20}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":32}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":35}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":21}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":25}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":6}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":34}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":50}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":56}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":22}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":65}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":3}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":0}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":5}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":75}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":74}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":45}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":21}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":13}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":5}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":70}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":49}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":48}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":37}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":52}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":24}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":125}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":10}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":7}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":55}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":38}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":57}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":7}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":45}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":21}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":33}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":36}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":23}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":33}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":8}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":54}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":46}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":5}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":3}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":0}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":5}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":61}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":21}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":13}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":5}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":71}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":68}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":103}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":54}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":46}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":5}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":3}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":0}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":5}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":71}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":13}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":5}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":47}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":50}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":14}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":67}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":5}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":14}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":3}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":0}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":5}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":63}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":18}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":14}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":13}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":5}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":89}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":76}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":23}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":41}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":24}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":44}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":9}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":7}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":3}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":0}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":5}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":102}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":26}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":13}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":5}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":64}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":29}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":37}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":5}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":44}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":3}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":0}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":5}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":46}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":29}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":82}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":13}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":5}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":34}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":26}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":101}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":92}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":3}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":0}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":5}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":51}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":24}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":48}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":13}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":5}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":52}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":53}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":34}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":28}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":92}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":37}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":113}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":10}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":52}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":83}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":5}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":22}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":35}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":3}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":93,\"26\":93,\"27\":93,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":28,\"50\":28,\"51\":28,\"52\":28,\"53\":28,\"54\":28,\"55\":28,\"56\":1,\"57\":1,\"58\":21,\"59\":21,\"60\":1,\"61\":1,\"62\":45,\"63\":0,\"64\":0,\"65\":45,\"66\":45,\"67\":1,\"68\":1,\"69\":2,\"70\":0,\"71\":0,\"72\":2,\"73\":2,\"74\":1,\"75\":1,\"76\":11,\"77\":0,\"78\":0,\"79\":11,\"80\":11,\"81\":1,\"82\":1,\"83\":28,\"84\":0,\"85\":0,\"86\":28,\"87\":28,\"88\":1,\"89\":1,\"90\":93,\"91\":93,\"92\":93,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":93,\"100\":1,\"101\":1,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":1,\"113\":1,\"114\":5,\"115\":5,\"116\":5,\"117\":5,\"118\":5,\"119\":5,\"120\":9,\"121\":2,\"122\":2,\"123\":2,\"124\":0,\"125\":2,\"126\":2,\"127\":2,\"128\":2,\"129\":2,\"130\":2,\"131\":2,\"132\":1,\"133\":2,\"134\":9,\"135\":7,\"136\":0,\"137\":0,\"138\":7,\"139\":7,\"140\":7,\"141\":7,\"142\":3,\"143\":3,\"144\":4,\"145\":4,\"146\":4,\"147\":4,\"148\":4,\"149\":4,\"150\":4,\"151\":4,\"152\":7,\"153\":9,\"154\":4,\"155\":5,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":5,\"161\":1,\"162\":1,\"163\":1,\"164\":1,\"165\":1,\"166\":2,\"167\":2,\"168\":2,\"169\":1,\"170\":1,\"171\":1,\"172\":1,\"173\":2,\"174\":2,\"175\":2,\"176\":1,\"177\":1,\"178\":1,\"179\":1,\"180\":1,\"181\":1,\"182\":1,\"183\":1,\"184\":1,\"185\":1,\"186\":1,\"187\":1,\"188\":1,\"189\":1,\"190\":1,\"191\":1,\"192\":2,\"193\":2,\"194\":2,\"195\":2,\"196\":0,\"197\":0,\"198\":1,\"199\":1,\"200\":34,\"201\":1,\"202\":1,\"203\":1,\"204\":1,\"205\":1,\"206\":0,\"207\":0,\"208\":1,\"209\":1,\"210\":34,\"211\":1,\"212\":1,\"213\":1,\"214\":1,\"215\":1,\"216\":1,\"217\":1,\"218\":9,\"219\":9,\"220\":9,\"221\":7,\"222\":7,\"223\":7,\"224\":7,\"225\":7,\"226\":0,\"227\":0,\"228\":7,\"229\":9,\"230\":1,\"231\":1,\"232\":1,\"233\":1,\"234\":1,\"235\":1,\"236\":1,\"237\":9,\"238\":0,\"239\":0,\"240\":9,\"241\":9,\"242\":7,\"243\":7,\"244\":7,\"245\":9,\"246\":1,\"247\":1,\"248\":1,\"249\":1,\"250\":1,\"251\":1,\"252\":1,\"253\":27,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":27,\"259\":27,\"260\":27,\"261\":27,\"262\":27,\"263\":27,\"264\":27,\"265\":1,\"266\":1,\"267\":1,\"268\":1,\"269\":1,\"270\":1,\"271\":1,\"272\":7,\"273\":7,\"274\":7,\"275\":7,\"276\":7,\"277\":7,\"278\":7,\"279\":7,\"280\":7,\"281\":7,\"282\":7,\"283\":7,\"284\":7,\"285\":1,\"286\":1,\"287\":1,\"288\":1,\"289\":1,\"290\":1,\"291\":1,\"292\":1,\"293\":1,\"294\":6,\"295\":6,\"296\":15,\"297\":15,\"298\":1,\"299\":1,\"300\":1,\"301\":1,\"302\":15,\"303\":3,\"304\":3,\"305\":3,\"306\":14,\"307\":14,\"308\":14,\"309\":14,\"310\":14,\"311\":14,\"312\":14,\"313\":14,\"314\":14,\"315\":14,\"316\":5,\"317\":1,\"318\":1,\"319\":1,\"320\":1,\"321\":1,\"322\":1,\"323\":1,\"324\":3,\"325\":7,\"326\":7,\"327\":7,\"328\":7,\"329\":3,\"330\":1,\"331\":1,\"332\":1,\"333\":1,\"334\":1,\"335\":1,\"336\":11,\"337\":11,\"338\":0,\"339\":0,\"340\":11,\"341\":11,\"342\":1,\"343\":1,\"344\":1,\"345\":1,\"346\":1,\"347\":1,\"348\":1,\"349\":1,\"350\":0,\"351\":0,\"352\":0,\"353\":0,\"354\":0,\"355\":0,\"356\":0,\"357\":0,\"358\":1,\"359\":1,\"360\":1,\"361\":1,\"362\":1,\"363\":1,\"364\":1,\"365\":21,\"366\":4,\"367\":4,\"368\":21,\"369\":21,\"370\":1,\"371\":1,\"372\":1,\"373\":1,\"374\":1,\"375\":1,\"376\":1,\"377\":1,\"378\":28,\"379\":28,\"380\":28,\"381\":28,\"382\":1,\"383\":1,\"384\":1,\"385\":1,\"386\":1,\"387\":1,\"388\":1,\"389\":1,\"390\":4,\"391\":4,\"392\":4,\"393\":4,\"394\":4,\"395\":4,\"396\":4,\"397\":4,\"398\":4,\"399\":4,\"400\":4,\"401\":4,\"402\":4,\"403\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":19},\"end\":{\"line\":24,\"column\":74}},\"locations\":[{\"start\":{\"line\":23,\"column\":19},\"end\":{\"line\":24,\"column\":74}}]},\"1\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"locations\":[{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"locations\":[{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":56,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"locations\":[{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"locations\":[{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":67,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":24},\"end\":{\"line\":65,\"column\":5}},\"locations\":[{\"start\":{\"line\":63,\"column\":24},\"end\":{\"line\":65,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"locations\":[{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":74,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":29},\"end\":{\"line\":72,\"column\":5}},\"locations\":[{\"start\":{\"line\":70,\"column\":29},\"end\":{\"line\":72,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":81,\"column\":3}},\"locations\":[{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":81,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":26},\"end\":{\"line\":79,\"column\":5}},\"locations\":[{\"start\":{\"line\":77,\"column\":26},\"end\":{\"line\":79,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":83,\"loc\":{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":88,\"column\":3}},\"locations\":[{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":88,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":23},\"end\":{\"line\":86,\"column\":5}},\"locations\":[{\"start\":{\"line\":84,\"column\":23},\"end\":{\"line\":86,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":90,\"loc\":{\"start\":{\"line\":90,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"locations\":[{\"start\":{\"line\":90,\"column\":2},\"end\":{\"line\":100,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":5},\"end\":{\"line\":99,\"column\":5}},\"locations\":[{\"start\":{\"line\":93,\"column\":5},\"end\":{\"line\":99,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":114,\"loc\":{\"start\":{\"line\":114,\"column\":2},\"end\":{\"line\":161,\"column\":3}},\"locations\":[{\"start\":{\"line\":114,\"column\":2},\"end\":{\"line\":161,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":24},\"end\":{\"line\":115,\"column\":31}},\"locations\":[{\"start\":{\"line\":115,\"column\":24},\"end\":{\"line\":115,\"column\":31}}]},\"16\":{\"type\":\"branch\",\"line\":120,\"loc\":{\"start\":{\"line\":120,\"column\":31},\"end\":{\"line\":154,\"column\":7}},\"locations\":[{\"start\":{\"line\":120,\"column\":31},\"end\":{\"line\":154,\"column\":7}}]},\"17\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":36},\"end\":{\"line\":135,\"column\":15}},\"locations\":[{\"start\":{\"line\":121,\"column\":36},\"end\":{\"line\":135,\"column\":15}}]},\"18\":{\"type\":\"branch\",\"line\":124,\"loc\":{\"start\":{\"line\":124,\"column\":37},\"end\":{\"line\":126,\"column\":17}},\"locations\":[{\"start\":{\"line\":124,\"column\":37},\"end\":{\"line\":126,\"column\":17}}]},\"19\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":-1},\"end\":{\"line\":133,\"column\":13}},\"locations\":[{\"start\":{\"line\":133,\"column\":-1},\"end\":{\"line\":133,\"column\":13}}]},\"20\":{\"type\":\"branch\",\"line\":135,\"loc\":{\"start\":{\"line\":135,\"column\":9},\"end\":{\"line\":153,\"column\":9}},\"locations\":[{\"start\":{\"line\":135,\"column\":9},\"end\":{\"line\":153,\"column\":9}}]},\"21\":{\"type\":\"branch\",\"line\":136,\"loc\":{\"start\":{\"line\":136,\"column\":34},\"end\":{\"line\":138,\"column\":11}},\"locations\":[{\"start\":{\"line\":136,\"column\":34},\"end\":{\"line\":138,\"column\":11}}]},\"22\":{\"type\":\"branch\",\"line\":142,\"loc\":{\"start\":{\"line\":142,\"column\":38},\"end\":{\"line\":142,\"column\":78}},\"locations\":[{\"start\":{\"line\":142,\"column\":38},\"end\":{\"line\":142,\"column\":78}}]},\"23\":{\"type\":\"branch\",\"line\":142,\"loc\":{\"start\":{\"line\":142,\"column\":80},\"end\":{\"line\":144,\"column\":11}},\"locations\":[{\"start\":{\"line\":142,\"column\":80},\"end\":{\"line\":144,\"column\":11}}]},\"24\":{\"type\":\"branch\",\"line\":145,\"loc\":{\"start\":{\"line\":145,\"column\":-1},\"end\":{\"line\":152,\"column\":11}},\"locations\":[{\"start\":{\"line\":145,\"column\":-1},\"end\":{\"line\":152,\"column\":11}}]},\"25\":{\"type\":\"branch\",\"line\":155,\"loc\":{\"start\":{\"line\":155,\"column\":-1},\"end\":{\"line\":156,\"column\":13}},\"locations\":[{\"start\":{\"line\":155,\"column\":-1},\"end\":{\"line\":156,\"column\":13}}]},\"26\":{\"type\":\"branch\",\"line\":156,\"loc\":{\"start\":{\"line\":156,\"column\":6},\"end\":{\"line\":160,\"column\":5}},\"locations\":[{\"start\":{\"line\":156,\"column\":6},\"end\":{\"line\":160,\"column\":5}}]},\"27\":{\"type\":\"branch\",\"line\":166,\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":176,\"column\":3}},\"locations\":[{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":176,\"column\":3}}]},\"28\":{\"type\":\"branch\",\"line\":168,\"loc\":{\"start\":{\"line\":168,\"column\":23},\"end\":{\"line\":175,\"column\":5}},\"locations\":[{\"start\":{\"line\":168,\"column\":23},\"end\":{\"line\":175,\"column\":5}}]},\"29\":{\"type\":\"branch\",\"line\":169,\"loc\":{\"start\":{\"line\":169,\"column\":29},\"end\":{\"line\":174,\"column\":7}},\"locations\":[{\"start\":{\"line\":169,\"column\":29},\"end\":{\"line\":174,\"column\":7}}]},\"30\":{\"type\":\"branch\",\"line\":183,\"loc\":{\"start\":{\"line\":183,\"column\":2},\"end\":{\"line\":186,\"column\":3}},\"locations\":[{\"start\":{\"line\":183,\"column\":2},\"end\":{\"line\":186,\"column\":3}}]},\"31\":{\"type\":\"branch\",\"line\":192,\"loc\":{\"start\":{\"line\":192,\"column\":10},\"end\":{\"line\":198,\"column\":3}},\"locations\":[{\"start\":{\"line\":192,\"column\":10},\"end\":{\"line\":198,\"column\":3}}]},\"32\":{\"type\":\"branch\",\"line\":197,\"loc\":{\"start\":{\"line\":197,\"column\":-1},\"end\":{\"line\":198,\"column\":3}},\"locations\":[{\"start\":{\"line\":197,\"column\":-1},\"end\":{\"line\":198,\"column\":3}}]},\"33\":{\"type\":\"branch\",\"line\":200,\"loc\":{\"start\":{\"line\":200,\"column\":10},\"end\":{\"line\":211,\"column\":3}},\"locations\":[{\"start\":{\"line\":200,\"column\":10},\"end\":{\"line\":211,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":201,\"loc\":{\"start\":{\"line\":201,\"column\":23},\"end\":{\"line\":201,\"column\":36}},\"locations\":[{\"start\":{\"line\":201,\"column\":23},\"end\":{\"line\":201,\"column\":36}}]},\"35\":{\"type\":\"branch\",\"line\":201,\"loc\":{\"start\":{\"line\":201,\"column\":38},\"end\":{\"line\":210,\"column\":5}},\"locations\":[{\"start\":{\"line\":201,\"column\":38},\"end\":{\"line\":210,\"column\":5}}]},\"36\":{\"type\":\"branch\",\"line\":206,\"loc\":{\"start\":{\"line\":206,\"column\":21},\"end\":{\"line\":208,\"column\":7}},\"locations\":[{\"start\":{\"line\":206,\"column\":21},\"end\":{\"line\":208,\"column\":7}}]},\"37\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":10},\"end\":{\"line\":230,\"column\":3}},\"locations\":[{\"start\":{\"line\":218,\"column\":10},\"end\":{\"line\":230,\"column\":3}}]},\"38\":{\"type\":\"branch\",\"line\":221,\"loc\":{\"start\":{\"line\":221,\"column\":45},\"end\":{\"line\":229,\"column\":5}},\"locations\":[{\"start\":{\"line\":221,\"column\":45},\"end\":{\"line\":229,\"column\":5}}]},\"39\":{\"type\":\"branch\",\"line\":226,\"loc\":{\"start\":{\"line\":226,\"column\":7},\"end\":{\"line\":228,\"column\":7}},\"locations\":[{\"start\":{\"line\":226,\"column\":7},\"end\":{\"line\":228,\"column\":7}}]},\"40\":{\"type\":\"branch\",\"line\":237,\"loc\":{\"start\":{\"line\":237,\"column\":10},\"end\":{\"line\":246,\"column\":3}},\"locations\":[{\"start\":{\"line\":237,\"column\":10},\"end\":{\"line\":246,\"column\":3}}]},\"41\":{\"type\":\"branch\",\"line\":238,\"loc\":{\"start\":{\"line\":238,\"column\":31},\"end\":{\"line\":240,\"column\":5}},\"locations\":[{\"start\":{\"line\":238,\"column\":31},\"end\":{\"line\":240,\"column\":5}}]},\"42\":{\"type\":\"branch\",\"line\":242,\"loc\":{\"start\":{\"line\":242,\"column\":20},\"end\":{\"line\":245,\"column\":5}},\"locations\":[{\"start\":{\"line\":242,\"column\":20},\"end\":{\"line\":245,\"column\":5}}]},\"43\":{\"type\":\"branch\",\"line\":253,\"loc\":{\"start\":{\"line\":253,\"column\":10},\"end\":{\"line\":265,\"column\":3}},\"locations\":[{\"start\":{\"line\":253,\"column\":10},\"end\":{\"line\":265,\"column\":3}}]},\"44\":{\"type\":\"branch\",\"line\":254,\"loc\":{\"start\":{\"line\":254,\"column\":43},\"end\":{\"line\":254,\"column\":85}},\"locations\":[{\"start\":{\"line\":254,\"column\":43},\"end\":{\"line\":254,\"column\":85}}]},\"45\":{\"type\":\"branch\",\"line\":254,\"loc\":{\"start\":{\"line\":254,\"column\":87},\"end\":{\"line\":258,\"column\":5}},\"locations\":[{\"start\":{\"line\":254,\"column\":87},\"end\":{\"line\":258,\"column\":5}}]},\"46\":{\"type\":\"branch\",\"line\":272,\"loc\":{\"start\":{\"line\":272,\"column\":10},\"end\":{\"line\":285,\"column\":3}},\"locations\":[{\"start\":{\"line\":272,\"column\":10},\"end\":{\"line\":285,\"column\":3}}]},\"47\":{\"type\":\"branch\",\"line\":294,\"loc\":{\"start\":{\"line\":294,\"column\":10},\"end\":{\"line\":317,\"column\":3}},\"locations\":[{\"start\":{\"line\":294,\"column\":10},\"end\":{\"line\":317,\"column\":3}}]},\"48\":{\"type\":\"branch\",\"line\":296,\"loc\":{\"start\":{\"line\":296,\"column\":47},\"end\":{\"line\":316,\"column\":5}},\"locations\":[{\"start\":{\"line\":296,\"column\":47},\"end\":{\"line\":316,\"column\":5}}]},\"49\":{\"type\":\"branch\",\"line\":298,\"loc\":{\"start\":{\"line\":298,\"column\":51},\"end\":{\"line\":302,\"column\":7}},\"locations\":[{\"start\":{\"line\":298,\"column\":51},\"end\":{\"line\":302,\"column\":7}}]},\"50\":{\"type\":\"branch\",\"line\":303,\"loc\":{\"start\":{\"line\":303,\"column\":-1},\"end\":{\"line\":303,\"column\":54}},\"locations\":[{\"start\":{\"line\":303,\"column\":-1},\"end\":{\"line\":303,\"column\":54}}]},\"51\":{\"type\":\"branch\",\"line\":303,\"loc\":{\"start\":{\"line\":303,\"column\":54},\"end\":{\"line\":306,\"column\":7}},\"locations\":[{\"start\":{\"line\":303,\"column\":54},\"end\":{\"line\":306,\"column\":7}}]},\"52\":{\"type\":\"branch\",\"line\":307,\"loc\":{\"start\":{\"line\":307,\"column\":-1},\"end\":{\"line\":316,\"column\":5}},\"locations\":[{\"start\":{\"line\":307,\"column\":-1},\"end\":{\"line\":316,\"column\":5}}]},\"53\":{\"type\":\"branch\",\"line\":317,\"loc\":{\"start\":{\"line\":317,\"column\":-1},\"end\":{\"line\":317,\"column\":3}},\"locations\":[{\"start\":{\"line\":317,\"column\":-1},\"end\":{\"line\":317,\"column\":3}}]},\"54\":{\"type\":\"branch\",\"line\":324,\"loc\":{\"start\":{\"line\":324,\"column\":10},\"end\":{\"line\":330,\"column\":3}},\"locations\":[{\"start\":{\"line\":324,\"column\":10},\"end\":{\"line\":330,\"column\":3}}]},\"55\":{\"type\":\"branch\",\"line\":325,\"loc\":{\"start\":{\"line\":325,\"column\":67},\"end\":{\"line\":329,\"column\":5}},\"locations\":[{\"start\":{\"line\":325,\"column\":67},\"end\":{\"line\":329,\"column\":5}}]},\"56\":{\"type\":\"branch\",\"line\":336,\"loc\":{\"start\":{\"line\":336,\"column\":10},\"end\":{\"line\":342,\"column\":3}},\"locations\":[{\"start\":{\"line\":336,\"column\":10},\"end\":{\"line\":342,\"column\":3}}]},\"57\":{\"type\":\"branch\",\"line\":338,\"loc\":{\"start\":{\"line\":338,\"column\":13},\"end\":{\"line\":340,\"column\":5}},\"locations\":[{\"start\":{\"line\":338,\"column\":13},\"end\":{\"line\":340,\"column\":5}}]},\"58\":{\"type\":\"branch\",\"line\":365,\"loc\":{\"start\":{\"line\":365,\"column\":10},\"end\":{\"line\":370,\"column\":3}},\"locations\":[{\"start\":{\"line\":365,\"column\":10},\"end\":{\"line\":370,\"column\":3}}]},\"59\":{\"type\":\"branch\",\"line\":366,\"loc\":{\"start\":{\"line\":366,\"column\":28},\"end\":{\"line\":368,\"column\":5}},\"locations\":[{\"start\":{\"line\":366,\"column\":28},\"end\":{\"line\":368,\"column\":5}}]},\"60\":{\"type\":\"branch\",\"line\":378,\"loc\":{\"start\":{\"line\":378,\"column\":10},\"end\":{\"line\":382,\"column\":3}},\"locations\":[{\"start\":{\"line\":378,\"column\":10},\"end\":{\"line\":382,\"column\":3}}]},\"61\":{\"type\":\"branch\",\"line\":381,\"loc\":{\"start\":{\"line\":381,\"column\":41},\"end\":{\"line\":381,\"column\":91}},\"locations\":[{\"start\":{\"line\":381,\"column\":41},\"end\":{\"line\":381,\"column\":91}}]},\"62\":{\"type\":\"branch\",\"line\":381,\"loc\":{\"start\":{\"line\":381,\"column\":72},\"end\":{\"line\":381,\"column\":90}},\"locations\":[{\"start\":{\"line\":381,\"column\":72},\"end\":{\"line\":381,\"column\":90}}]},\"63\":{\"type\":\"branch\",\"line\":390,\"loc\":{\"start\":{\"line\":390,\"column\":10},\"end\":{\"line\":403,\"column\":3}},\"locations\":[{\"start\":{\"line\":390,\"column\":10},\"end\":{\"line\":403,\"column\":3}}]}},\"b\":{\"0\":[4],\"1\":[93],\"2\":[28],\"3\":[21],\"4\":[45],\"5\":[0],\"6\":[2],\"7\":[0],\"8\":[11],\"9\":[0],\"10\":[28],\"11\":[0],\"12\":[93],\"13\":[0],\"14\":[5],\"15\":[0],\"16\":[9],\"17\":[2],\"18\":[0],\"19\":[1],\"20\":[7],\"21\":[0],\"22\":[6],\"23\":[3],\"24\":[4],\"25\":[4],\"26\":[0],\"27\":[2],\"28\":[2],\"29\":[1],\"30\":[1],\"31\":[2],\"32\":[0],\"33\":[34],\"34\":[33],\"35\":[1],\"36\":[0],\"37\":[9],\"38\":[7],\"39\":[0],\"40\":[9],\"41\":[0],\"42\":[7],\"43\":[27],\"44\":[21],\"45\":[0],\"46\":[7],\"47\":[6],\"48\":[15],\"49\":[1],\"50\":[14],\"51\":[3],\"52\":[14],\"53\":[5],\"54\":[3],\"55\":[7],\"56\":[11],\"57\":[0],\"58\":[21],\"59\":[4],\"60\":[28],\"61\":[24],\"62\":[15],\"63\":[4]},\"fnMap\":{\"0\":{\"name\":\"syncingMsg\",\"decl\":{\"start\":{\"line\":23,\"column\":19},\"end\":{\"line\":24,\"column\":74}},\"loc\":{\"start\":{\"line\":23,\"column\":19},\"end\":{\"line\":24,\"column\":74}},\"line\":23},\"1\":{\"name\":\"isSyncedProofOfIndex\",\"decl\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"loc\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"line\":26},\"2\":{\"name\":\"PoiSyncService\",\"decl\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"line\":49},\"3\":{\"name\":\"onApplicationShutdown\",\"decl\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"line\":58},\"4\":{\"name\":\"get poiRepo\",\"decl\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"line\":62},\"5\":{\"name\":\"get metadataRepo\",\"decl\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"loc\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"line\":69},\"6\":{\"name\":\"get sequelize\",\"decl\":{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":81,\"column\":3}},\"loc\":{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":81,\"column\":3}},\"line\":76},\"7\":{\"name\":\"get projectId\",\"decl\":{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":88,\"column\":3}},\"loc\":{\"start\":{\"line\":83,\"column\":2},\"end\":{\"line\":88,\"column\":3}},\"line\":83},\"8\":{\"name\":\"get latestSyncedPoi\",\"decl\":{\"start\":{\"line\":90,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"loc\":{\"start\":{\"line\":90,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"line\":90},\"9\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":112,\"column\":3}},\"loc\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":112,\"column\":3}},\"line\":102},\"10\":{\"name\":\"syncPoi\",\"decl\":{\"start\":{\"line\":114,\"column\":2},\"end\":{\"line\":161,\"column\":3}},\"loc\":{\"start\":{\"line\":114,\"column\":2},\"end\":{\"line\":161,\"column\":3}},\"line\":114},\"11\":{\"name\":\"stopSync\",\"decl\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":176,\"column\":3}},\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":176,\"column\":3}},\"line\":166},\"12\":{\"name\":\"clear\",\"decl\":{\"start\":{\"line\":183,\"column\":2},\"end\":{\"line\":186,\"column\":3}},\"loc\":{\"start\":{\"line\":183,\"column\":2},\"end\":{\"line\":186,\"column\":3}},\"line\":183},\"13\":{\"name\":\"getMetadataLatestSyncedPoi\",\"decl\":{\"start\":{\"line\":192,\"column\":10},\"end\":{\"line\":198,\"column\":3}},\"loc\":{\"start\":{\"line\":192,\"column\":10},\"end\":{\"line\":198,\"column\":3}},\"line\":192},\"14\":{\"name\":\"validateSyncedPoi\",\"decl\":{\"start\":{\"line\":200,\"column\":10},\"end\":{\"line\":211,\"column\":3}},\"loc\":{\"start\":{\"line\":200,\"column\":10},\"end\":{\"line\":211,\"column\":3}},\"line\":200},\"15\":{\"name\":\"syncLatestSyncedPoiFromDb\",\"decl\":{\"start\":{\"line\":218,\"column\":10},\"end\":{\"line\":230,\"column\":3}},\"loc\":{\"start\":{\"line\":218,\"column\":10},\"end\":{\"line\":230,\"column\":3}},\"line\":218},\"16\":{\"name\":\"ensureGenesisPoi\",\"decl\":{\"start\":{\"line\":237,\"column\":10},\"end\":{\"line\":246,\"column\":3}},\"loc\":{\"start\":{\"line\":237,\"column\":10},\"end\":{\"line\":246,\"column\":3}},\"line\":237},\"17\":{\"name\":\"setLatestSyncedPoi\",\"decl\":{\"start\":{\"line\":253,\"column\":10},\"end\":{\"line\":265,\"column\":3}},\"loc\":{\"start\":{\"line\":253,\"column\":10},\"end\":{\"line\":265,\"column\":3}},\"line\":253},\"18\":{\"name\":\"createGenesisPoi\",\"decl\":{\"start\":{\"line\":272,\"column\":10},\"end\":{\"line\":285,\"column\":3}},\"loc\":{\"start\":{\"line\":272,\"column\":10},\"end\":{\"line\":285,\"column\":3}},\"line\":272},\"19\":{\"name\":\"syncPoiJob\",\"decl\":{\"start\":{\"line\":294,\"column\":10},\"end\":{\"line\":317,\"column\":3}},\"loc\":{\"start\":{\"line\":294,\"column\":10},\"end\":{\"line\":317,\"column\":3}},\"line\":294},\"20\":{\"name\":\"addDefaultPoiBlocks\",\"decl\":{\"start\":{\"line\":324,\"column\":10},\"end\":{\"line\":330,\"column\":3}},\"loc\":{\"start\":{\"line\":324,\"column\":10},\"end\":{\"line\":330,\"column\":3}},\"line\":324},\"21\":{\"name\":\"newTx\",\"decl\":{\"start\":{\"line\":336,\"column\":10},\"end\":{\"line\":342,\"column\":3}},\"loc\":{\"start\":{\"line\":336,\"column\":10},\"end\":{\"line\":342,\"column\":3}},\"line\":336},\"22\":{\"name\":\"updateMetadataSyncedPoi\",\"decl\":{\"start\":{\"line\":350,\"column\":10},\"end\":{\"line\":358,\"column\":3}},\"loc\":{\"start\":{\"line\":350,\"column\":10},\"end\":{\"line\":358,\"column\":3}},\"line\":350},\"23\":{\"name\":\"syncedPoiQueueAppend\",\"decl\":{\"start\":{\"line\":365,\"column\":10},\"end\":{\"line\":370,\"column\":3}},\"loc\":{\"start\":{\"line\":365,\"column\":10},\"end\":{\"line\":370,\"column\":3}},\"line\":365},\"24\":{\"name\":\"isFlushable\",\"decl\":{\"start\":{\"line\":378,\"column\":10},\"end\":{\"line\":382,\"column\":3}},\"loc\":{\"start\":{\"line\":378,\"column\":10},\"end\":{\"line\":382,\"column\":3}},\"line\":378},\"25\":{\"name\":\"flushSyncedBlocks\",\"decl\":{\"start\":{\"line\":390,\"column\":10},\"end\":{\"line\":403,\"column\":3}},\"loc\":{\"start\":{\"line\":390,\"column\":10},\"end\":{\"line\":403,\"column\":3}},\"line\":390}},\"f\":{\"0\":4,\"1\":93,\"2\":28,\"3\":21,\"4\":45,\"5\":2,\"6\":11,\"7\":28,\"8\":93,\"9\":0,\"10\":5,\"11\":2,\"12\":1,\"13\":2,\"14\":34,\"15\":9,\"16\":9,\"17\":27,\"18\":7,\"19\":6,\"20\":3,\"21\":11,\"22\":0,\"23\":21,\"24\":28,\"25\":4}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/project.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/project.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":44}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":72}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":45}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":36}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":64}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":39}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":36}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":8}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":27}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":17}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":11}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":15}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":22}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":17}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":10}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":18}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":55}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":62}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":54}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":40}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":37}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":45}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":45}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":58}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":70}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":36}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":34}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":17}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":53}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":3}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":1}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":41}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":19}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":28}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":98}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":32}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":27}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":32}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":32}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":44}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":70}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":113}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":14}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":64}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":39}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":44}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":52}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":44}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":76}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":87}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":50}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":46}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":62}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":40}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":72}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":5}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":33}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":18}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":123}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":8}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":5}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":84}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":100}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":5}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":34}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":45}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":24}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":3}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":29}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":64}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":29}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":3}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":41}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":29}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":3}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":41}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":40}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":3}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":73}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":69}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":3}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":51}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":74}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":75}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":5}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":50}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":23}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":48}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":0}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":113}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":59}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":34}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":87}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":78}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":0}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":9}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":69}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":110}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":91}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":11}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":57}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":0}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":93}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":44}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":69}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":7}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":102}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":32}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":39}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":41}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":49}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":48}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":48}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":52}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":52}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":7}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":0}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":93}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":72}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":47}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":49}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":7}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":79}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":0}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":43}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":45}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":7}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":0}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":50}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":64}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":12}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":94}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":94}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":0}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":51}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":47}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":5}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":0}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":74}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":96}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":3}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":0}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":50}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":55}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":18}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":48}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":5}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":48}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":18}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":7}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":18}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":3}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":0}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":56}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":44}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":60}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":61}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":59}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":5}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":0}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":18}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":3}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":0}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":54}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":62}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":3}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":0}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":47}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":69}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":3}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":0}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":49}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":59}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":0}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":86}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":0}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":42}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":28}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":20}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":27}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":14}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":17}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":20}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":20}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":28}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":36}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":29}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":27}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":6}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":0}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":51}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":0}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":71}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":0}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":30}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":48}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":0}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":24}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":46}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":56}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":48}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":58}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":9}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":5}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":32}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":47}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":12}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":85}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":13}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":45}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":253}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":8}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":5}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":35}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":35}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":5}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":0}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":41}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":41}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":5}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":0}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":115}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":73}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":45}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":5}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":0}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":62}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":62}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":5}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":41}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":46}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":5}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":32}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":71}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":5}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":0}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":39}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":45}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":65}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":105}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":73}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":82}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":5}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":3}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":0}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":73}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":77}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":3}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":0}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":66}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":68}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":0}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":40}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":45}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":5}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":21}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":3}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":0}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":42}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":9}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":54}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":22}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":22}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":22}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":5}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":3}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":0}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":29}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":77}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":49}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":63}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":0}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":42}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":3}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":0}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":54}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":52}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":54}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":48}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":18}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":5}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":0}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":64}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":48}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":95}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":3}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":0}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":61}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":49}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":74}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":0}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":49}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":13}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":36}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":39}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":41}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":68}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":6}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":3}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":0}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":19}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":45}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":63}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":42}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":0}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":62}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":0}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":47}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":44}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":37}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":0}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":36}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":47}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":38}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":33}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":77}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":71}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":28}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":10}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":7}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":0}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":46}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":122}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":21}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":99}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":93}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":15}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":15}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":0}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":44}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":58}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":96}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":10}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":26}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":81}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":83}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":11}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":0}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":85}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":105}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":0}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":39}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":91}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":62}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":9}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":5}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":0}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":37}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":3}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":0}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":72}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":66}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":19}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":125}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":8}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":22}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":5}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":0}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":34}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":3}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":0}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":66}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":70}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":3}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":0}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":5}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":128}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":73}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":7}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":86}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":63}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":24}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":18}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":22}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":21}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":18}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":41}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":6}},\"404\":{\"start\":{\"line\":405,\"column\":0},\"end\":{\"line\":405,\"column\":0}},\"405\":{\"start\":{\"line\":406,\"column\":0},\"end\":{\"line\":406,\"column\":49}},\"406\":{\"start\":{\"line\":407,\"column\":0},\"end\":{\"line\":407,\"column\":45}},\"407\":{\"start\":{\"line\":408,\"column\":0},\"end\":{\"line\":408,\"column\":0}},\"408\":{\"start\":{\"line\":409,\"column\":0},\"end\":{\"line\":409,\"column\":23}},\"409\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":410,\"column\":70}},\"410\":{\"start\":{\"line\":411,\"column\":0},\"end\":{\"line\":411,\"column\":0}},\"411\":{\"start\":{\"line\":412,\"column\":0},\"end\":{\"line\":412,\"column\":50}},\"412\":{\"start\":{\"line\":413,\"column\":0},\"end\":{\"line\":413,\"column\":39}},\"413\":{\"start\":{\"line\":414,\"column\":0},\"end\":{\"line\":414,\"column\":66}},\"414\":{\"start\":{\"line\":415,\"column\":0},\"end\":{\"line\":415,\"column\":26}},\"415\":{\"start\":{\"line\":416,\"column\":0},\"end\":{\"line\":416,\"column\":68}},\"416\":{\"start\":{\"line\":417,\"column\":0},\"end\":{\"line\":417,\"column\":10}},\"417\":{\"start\":{\"line\":418,\"column\":0},\"end\":{\"line\":418,\"column\":14}},\"418\":{\"start\":{\"line\":419,\"column\":0},\"end\":{\"line\":419,\"column\":72}},\"419\":{\"start\":{\"line\":420,\"column\":0},\"end\":{\"line\":420,\"column\":35}},\"420\":{\"start\":{\"line\":421,\"column\":0},\"end\":{\"line\":421,\"column\":25}},\"421\":{\"start\":{\"line\":422,\"column\":0},\"end\":{\"line\":422,\"column\":118}},\"422\":{\"start\":{\"line\":423,\"column\":0},\"end\":{\"line\":423,\"column\":14}},\"423\":{\"start\":{\"line\":424,\"column\":0},\"end\":{\"line\":424,\"column\":28}},\"424\":{\"start\":{\"line\":425,\"column\":0},\"end\":{\"line\":425,\"column\":11}},\"425\":{\"start\":{\"line\":426,\"column\":0},\"end\":{\"line\":426,\"column\":57}},\"426\":{\"start\":{\"line\":427,\"column\":0},\"end\":{\"line\":427,\"column\":94}},\"427\":{\"start\":{\"line\":428,\"column\":0},\"end\":{\"line\":428,\"column\":28}},\"428\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":429,\"column\":11}},\"429\":{\"start\":{\"line\":430,\"column\":0},\"end\":{\"line\":430,\"column\":102}},\"430\":{\"start\":{\"line\":431,\"column\":0},\"end\":{\"line\":431,\"column\":43}},\"431\":{\"start\":{\"line\":432,\"column\":0},\"end\":{\"line\":432,\"column\":34}},\"432\":{\"start\":{\"line\":433,\"column\":0},\"end\":{\"line\":433,\"column\":9}},\"433\":{\"start\":{\"line\":434,\"column\":0},\"end\":{\"line\":434,\"column\":7}},\"434\":{\"start\":{\"line\":435,\"column\":0},\"end\":{\"line\":435,\"column\":5}},\"435\":{\"start\":{\"line\":436,\"column\":0},\"end\":{\"line\":436,\"column\":21}},\"436\":{\"start\":{\"line\":437,\"column\":0},\"end\":{\"line\":437,\"column\":3}},\"437\":{\"start\":{\"line\":438,\"column\":0},\"end\":{\"line\":438,\"column\":0}},\"438\":{\"start\":{\"line\":439,\"column\":0},\"end\":{\"line\":439,\"column\":54}},\"439\":{\"start\":{\"line\":440,\"column\":0},\"end\":{\"line\":440,\"column\":64}},\"440\":{\"start\":{\"line\":441,\"column\":0},\"end\":{\"line\":441,\"column\":32}},\"441\":{\"start\":{\"line\":442,\"column\":0},\"end\":{\"line\":442,\"column\":5}},\"442\":{\"start\":{\"line\":443,\"column\":0},\"end\":{\"line\":443,\"column\":0}},\"443\":{\"start\":{\"line\":444,\"column\":0},\"end\":{\"line\":444,\"column\":45}},\"444\":{\"start\":{\"line\":445,\"column\":0},\"end\":{\"line\":445,\"column\":60}},\"445\":{\"start\":{\"line\":446,\"column\":0},\"end\":{\"line\":446,\"column\":0}},\"446\":{\"start\":{\"line\":447,\"column\":0},\"end\":{\"line\":447,\"column\":45}},\"447\":{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":448,\"column\":3}},\"448\":{\"start\":{\"line\":449,\"column\":0},\"end\":{\"line\":449,\"column\":0}},\"449\":{\"start\":{\"line\":450,\"column\":0},\"end\":{\"line\":450,\"column\":59}},\"450\":{\"start\":{\"line\":451,\"column\":0},\"end\":{\"line\":451,\"column\":68}},\"451\":{\"start\":{\"line\":452,\"column\":0},\"end\":{\"line\":452,\"column\":0}},\"452\":{\"start\":{\"line\":453,\"column\":0},\"end\":{\"line\":453,\"column\":44}},\"453\":{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":454,\"column\":73}},\"454\":{\"start\":{\"line\":455,\"column\":0},\"end\":{\"line\":455,\"column\":5}},\"455\":{\"start\":{\"line\":456,\"column\":0},\"end\":{\"line\":456,\"column\":0}},\"456\":{\"start\":{\"line\":457,\"column\":0},\"end\":{\"line\":457,\"column\":19}},\"457\":{\"start\":{\"line\":458,\"column\":0},\"end\":{\"line\":458,\"column\":42}},\"458\":{\"start\":{\"line\":459,\"column\":0},\"end\":{\"line\":459,\"column\":24}},\"459\":{\"start\":{\"line\":460,\"column\":0},\"end\":{\"line\":460,\"column\":26}},\"460\":{\"start\":{\"line\":461,\"column\":0},\"end\":{\"line\":461,\"column\":24}},\"461\":{\"start\":{\"line\":462,\"column\":0},\"end\":{\"line\":462,\"column\":35}},\"462\":{\"start\":{\"line\":463,\"column\":0},\"end\":{\"line\":463,\"column\":28}},\"463\":{\"start\":{\"line\":464,\"column\":0},\"end\":{\"line\":464,\"column\":21}},\"464\":{\"start\":{\"line\":465,\"column\":0},\"end\":{\"line\":465,\"column\":33}},\"465\":{\"start\":{\"line\":466,\"column\":0},\"end\":{\"line\":466,\"column\":64}},\"466\":{\"start\":{\"line\":467,\"column\":0},\"end\":{\"line\":467,\"column\":72}},\"467\":{\"start\":{\"line\":468,\"column\":0},\"end\":{\"line\":468,\"column\":6}},\"468\":{\"start\":{\"line\":469,\"column\":0},\"end\":{\"line\":469,\"column\":3}},\"469\":{\"start\":{\"line\":470,\"column\":0},\"end\":{\"line\":470,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":80,\"36\":80,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":20,\"55\":20,\"56\":20,\"57\":20,\"58\":20,\"59\":20,\"60\":20,\"61\":20,\"62\":20,\"63\":20,\"64\":20,\"65\":20,\"66\":20,\"67\":20,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":20,\"73\":20,\"74\":0,\"75\":0,\"76\":20,\"77\":1,\"78\":1,\"79\":60,\"80\":60,\"81\":60,\"82\":1,\"83\":1,\"84\":20,\"85\":20,\"86\":20,\"87\":1,\"88\":1,\"89\":0,\"90\":0,\"91\":1,\"92\":1,\"93\":0,\"94\":0,\"95\":1,\"96\":1,\"97\":20,\"98\":20,\"99\":1,\"100\":1,\"101\":20,\"102\":35,\"103\":35,\"104\":20,\"105\":20,\"106\":20,\"107\":20,\"108\":20,\"109\":20,\"110\":20,\"111\":20,\"112\":20,\"113\":20,\"114\":20,\"115\":20,\"116\":20,\"117\":20,\"118\":20,\"119\":20,\"120\":20,\"121\":20,\"122\":20,\"123\":20,\"124\":20,\"125\":20,\"126\":20,\"127\":20,\"128\":20,\"129\":20,\"130\":20,\"131\":20,\"132\":20,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":20,\"140\":20,\"141\":20,\"142\":20,\"143\":20,\"144\":0,\"145\":0,\"146\":20,\"147\":20,\"148\":20,\"149\":20,\"150\":0,\"151\":0,\"152\":20,\"153\":20,\"154\":20,\"155\":20,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":20,\"163\":20,\"164\":20,\"165\":20,\"166\":1,\"167\":1,\"168\":20,\"169\":20,\"170\":19,\"171\":19,\"172\":20,\"173\":20,\"174\":20,\"175\":20,\"176\":20,\"177\":20,\"178\":1,\"179\":1,\"180\":19,\"181\":19,\"182\":19,\"183\":19,\"184\":19,\"185\":19,\"186\":19,\"187\":19,\"188\":1,\"189\":1,\"190\":20,\"191\":20,\"192\":1,\"193\":1,\"194\":20,\"195\":20,\"196\":1,\"197\":1,\"198\":20,\"199\":20,\"200\":20,\"201\":20,\"202\":20,\"203\":20,\"204\":20,\"205\":20,\"206\":20,\"207\":20,\"208\":20,\"209\":20,\"210\":20,\"211\":20,\"212\":20,\"213\":20,\"214\":20,\"215\":20,\"216\":20,\"217\":20,\"218\":20,\"219\":20,\"220\":20,\"221\":20,\"222\":20,\"223\":20,\"224\":20,\"225\":20,\"226\":20,\"227\":20,\"228\":20,\"229\":20,\"230\":20,\"231\":20,\"232\":20,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":20,\"240\":20,\"241\":20,\"242\":20,\"243\":20,\"244\":20,\"245\":20,\"246\":20,\"247\":20,\"248\":20,\"249\":20,\"250\":20,\"251\":20,\"252\":20,\"253\":20,\"254\":20,\"255\":20,\"256\":0,\"257\":0,\"258\":20,\"259\":20,\"260\":20,\"261\":20,\"262\":20,\"263\":20,\"264\":20,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":20,\"270\":1,\"271\":1,\"272\":40,\"273\":40,\"274\":1,\"275\":1,\"276\":20,\"277\":20,\"278\":20,\"279\":0,\"280\":0,\"281\":20,\"282\":20,\"283\":1,\"284\":1,\"285\":40,\"286\":40,\"287\":40,\"288\":0,\"289\":0,\"290\":0,\"291\":40,\"292\":1,\"293\":1,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":1,\"301\":1,\"302\":3,\"303\":3,\"304\":3,\"305\":1,\"306\":1,\"307\":2,\"308\":2,\"309\":2,\"310\":2,\"311\":2,\"312\":1,\"313\":1,\"314\":20,\"315\":20,\"316\":20,\"317\":20,\"318\":20,\"319\":20,\"320\":0,\"321\":0,\"322\":0,\"323\":20,\"324\":20,\"325\":1,\"326\":1,\"327\":1,\"328\":6,\"329\":6,\"330\":6,\"331\":6,\"332\":6,\"333\":6,\"334\":8,\"335\":8,\"336\":8,\"337\":8,\"338\":2,\"339\":2,\"340\":2,\"341\":2,\"342\":2,\"343\":2,\"344\":2,\"345\":2,\"346\":8,\"347\":8,\"348\":8,\"349\":8,\"350\":8,\"351\":8,\"352\":8,\"353\":8,\"354\":8,\"355\":8,\"356\":8,\"357\":24,\"358\":8,\"359\":8,\"360\":23,\"361\":23,\"362\":8,\"363\":8,\"364\":8,\"365\":8,\"366\":8,\"367\":8,\"368\":39,\"369\":39,\"370\":8,\"371\":8,\"372\":8,\"373\":8,\"374\":8,\"375\":1,\"376\":1,\"377\":20,\"378\":0,\"379\":0,\"380\":0,\"381\":0,\"382\":0,\"383\":20,\"384\":20,\"385\":20,\"386\":1,\"387\":1,\"388\":20,\"389\":20,\"390\":1,\"391\":1,\"392\":1,\"393\":1,\"394\":1,\"395\":1,\"396\":20,\"397\":20,\"398\":20,\"399\":20,\"400\":20,\"401\":20,\"402\":20,\"403\":20,\"404\":20,\"405\":20,\"406\":20,\"407\":20,\"408\":20,\"409\":20,\"410\":20,\"411\":20,\"412\":20,\"413\":20,\"414\":20,\"415\":20,\"416\":20,\"417\":20,\"418\":0,\"419\":0,\"420\":0,\"421\":0,\"422\":0,\"423\":0,\"424\":0,\"425\":0,\"426\":0,\"427\":0,\"428\":0,\"429\":0,\"430\":0,\"431\":0,\"432\":0,\"433\":0,\"434\":20,\"435\":20,\"436\":20,\"437\":1,\"438\":1,\"439\":13,\"440\":0,\"441\":0,\"442\":13,\"443\":13,\"444\":13,\"445\":13,\"446\":13,\"447\":13,\"448\":1,\"449\":1,\"450\":0,\"451\":0,\"452\":0,\"453\":0,\"454\":0,\"455\":0,\"456\":0,\"457\":0,\"458\":0,\"459\":0,\"460\":0,\"461\":0,\"462\":0,\"463\":0,\"464\":0,\"465\":0,\"466\":0,\"467\":0,\"468\":0,\"469\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":37,\"column\":3}},\"locations\":[{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":37,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"locations\":[{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":77,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":32},\"end\":{\"line\":72,\"column\":5}},\"locations\":[{\"start\":{\"line\":68,\"column\":32},\"end\":{\"line\":72,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":41},\"end\":{\"line\":74,\"column\":81}},\"locations\":[{\"start\":{\"line\":74,\"column\":41},\"end\":{\"line\":74,\"column\":81}}]},\"4\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":83},\"end\":{\"line\":76,\"column\":5}},\"locations\":[{\"start\":{\"line\":74,\"column\":83},\"end\":{\"line\":76,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"locations\":[{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":82,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"locations\":[{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":87,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":10},\"end\":{\"line\":99,\"column\":3}},\"locations\":[{\"start\":{\"line\":97,\"column\":10},\"end\":{\"line\":99,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":166,\"column\":3}},\"locations\":[{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":166,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":73},\"end\":{\"line\":104,\"column\":5}},\"locations\":[{\"start\":{\"line\":102,\"column\":73},\"end\":{\"line\":104,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":40},\"end\":{\"line\":139,\"column\":7}},\"locations\":[{\"start\":{\"line\":133,\"column\":40},\"end\":{\"line\":139,\"column\":7}}]},\"11\":{\"type\":\"branch\",\"line\":144,\"loc\":{\"start\":{\"line\":144,\"column\":46},\"end\":{\"line\":146,\"column\":7}},\"locations\":[{\"start\":{\"line\":144,\"column\":46},\"end\":{\"line\":146,\"column\":7}}]},\"12\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":42},\"end\":{\"line\":152,\"column\":7}},\"locations\":[{\"start\":{\"line\":150,\"column\":42},\"end\":{\"line\":152,\"column\":7}}]},\"13\":{\"type\":\"branch\",\"line\":156,\"loc\":{\"start\":{\"line\":156,\"column\":5},\"end\":{\"line\":162,\"column\":5}},\"locations\":[{\"start\":{\"line\":156,\"column\":5},\"end\":{\"line\":162,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":168,\"loc\":{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":178,\"column\":3}},\"locations\":[{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":178,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":17},\"end\":{\"line\":172,\"column\":5}},\"locations\":[{\"start\":{\"line\":170,\"column\":17},\"end\":{\"line\":172,\"column\":5}}]},\"16\":{\"type\":\"branch\",\"line\":180,\"loc\":{\"start\":{\"line\":180,\"column\":10},\"end\":{\"line\":188,\"column\":3}},\"locations\":[{\"start\":{\"line\":180,\"column\":10},\"end\":{\"line\":188,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":190,\"loc\":{\"start\":{\"line\":190,\"column\":10},\"end\":{\"line\":192,\"column\":3}},\"locations\":[{\"start\":{\"line\":190,\"column\":10},\"end\":{\"line\":192,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":194,\"loc\":{\"start\":{\"line\":194,\"column\":10},\"end\":{\"line\":196,\"column\":3}},\"locations\":[{\"start\":{\"line\":194,\"column\":10},\"end\":{\"line\":196,\"column\":3}}]},\"19\":{\"type\":\"branch\",\"line\":198,\"loc\":{\"start\":{\"line\":198,\"column\":10},\"end\":{\"line\":270,\"column\":3}},\"locations\":[{\"start\":{\"line\":198,\"column\":10},\"end\":{\"line\":270,\"column\":3}}]},\"20\":{\"type\":\"branch\",\"line\":233,\"loc\":{\"start\":{\"line\":233,\"column\":5},\"end\":{\"line\":239,\"column\":5}},\"locations\":[{\"start\":{\"line\":233,\"column\":5},\"end\":{\"line\":239,\"column\":5}}]},\"21\":{\"type\":\"branch\",\"line\":256,\"loc\":{\"start\":{\"line\":256,\"column\":40},\"end\":{\"line\":258,\"column\":5}},\"locations\":[{\"start\":{\"line\":256,\"column\":40},\"end\":{\"line\":258,\"column\":5}}]},\"22\":{\"type\":\"branch\",\"line\":265,\"loc\":{\"start\":{\"line\":265,\"column\":5},\"end\":{\"line\":269,\"column\":5}},\"locations\":[{\"start\":{\"line\":265,\"column\":5},\"end\":{\"line\":269,\"column\":5}}]},\"23\":{\"type\":\"branch\",\"line\":272,\"loc\":{\"start\":{\"line\":272,\"column\":12},\"end\":{\"line\":274,\"column\":3}},\"locations\":[{\"start\":{\"line\":272,\"column\":12},\"end\":{\"line\":274,\"column\":3}}]},\"24\":{\"type\":\"branch\",\"line\":276,\"loc\":{\"start\":{\"line\":276,\"column\":10},\"end\":{\"line\":283,\"column\":3}},\"locations\":[{\"start\":{\"line\":276,\"column\":10},\"end\":{\"line\":283,\"column\":3}}]},\"25\":{\"type\":\"branch\",\"line\":279,\"loc\":{\"start\":{\"line\":279,\"column\":39},\"end\":{\"line\":281,\"column\":5}},\"locations\":[{\"start\":{\"line\":279,\"column\":39},\"end\":{\"line\":281,\"column\":5}}]},\"26\":{\"type\":\"branch\",\"line\":285,\"loc\":{\"start\":{\"line\":285,\"column\":2},\"end\":{\"line\":292,\"column\":3}},\"locations\":[{\"start\":{\"line\":285,\"column\":2},\"end\":{\"line\":292,\"column\":3}}]},\"27\":{\"type\":\"branch\",\"line\":288,\"loc\":{\"start\":{\"line\":288,\"column\":6},\"end\":{\"line\":291,\"column\":5}},\"locations\":[{\"start\":{\"line\":288,\"column\":6},\"end\":{\"line\":291,\"column\":5}}]},\"28\":{\"type\":\"branch\",\"line\":302,\"loc\":{\"start\":{\"line\":302,\"column\":2},\"end\":{\"line\":312,\"column\":3}},\"locations\":[{\"start\":{\"line\":302,\"column\":2},\"end\":{\"line\":312,\"column\":3}}]},\"29\":{\"type\":\"branch\",\"line\":305,\"loc\":{\"start\":{\"line\":305,\"column\":47},\"end\":{\"line\":307,\"column\":5}},\"locations\":[{\"start\":{\"line\":305,\"column\":47},\"end\":{\"line\":307,\"column\":5}}]},\"30\":{\"type\":\"branch\",\"line\":308,\"loc\":{\"start\":{\"line\":308,\"column\":-1},\"end\":{\"line\":312,\"column\":3}},\"locations\":[{\"start\":{\"line\":308,\"column\":-1},\"end\":{\"line\":312,\"column\":3}}]},\"31\":{\"type\":\"branch\",\"line\":311,\"loc\":{\"start\":{\"line\":311,\"column\":43},\"end\":{\"line\":311,\"column\":93}},\"locations\":[{\"start\":{\"line\":311,\"column\":43},\"end\":{\"line\":311,\"column\":93}}]},\"32\":{\"type\":\"branch\",\"line\":311,\"loc\":{\"start\":{\"line\":311,\"column\":80},\"end\":{\"line\":311,\"column\":93}},\"locations\":[{\"start\":{\"line\":311,\"column\":80},\"end\":{\"line\":311,\"column\":93}}]},\"33\":{\"type\":\"branch\",\"line\":314,\"loc\":{\"start\":{\"line\":314,\"column\":2},\"end\":{\"line\":325,\"column\":3}},\"locations\":[{\"start\":{\"line\":314,\"column\":2},\"end\":{\"line\":325,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":319,\"loc\":{\"start\":{\"line\":319,\"column\":6},\"end\":{\"line\":323,\"column\":68}},\"locations\":[{\"start\":{\"line\":319,\"column\":6},\"end\":{\"line\":323,\"column\":68}}]},\"35\":{\"type\":\"branch\",\"line\":320,\"loc\":{\"start\":{\"line\":320,\"column\":33},\"end\":{\"line\":323,\"column\":68}},\"locations\":[{\"start\":{\"line\":320,\"column\":33},\"end\":{\"line\":323,\"column\":68}}]},\"36\":{\"type\":\"branch\",\"line\":328,\"loc\":{\"start\":{\"line\":328,\"column\":2},\"end\":{\"line\":375,\"column\":3}},\"locations\":[{\"start\":{\"line\":328,\"column\":2},\"end\":{\"line\":375,\"column\":3}}]},\"37\":{\"type\":\"branch\",\"line\":334,\"loc\":{\"start\":{\"line\":334,\"column\":46},\"end\":{\"line\":375,\"column\":3}},\"locations\":[{\"start\":{\"line\":334,\"column\":46},\"end\":{\"line\":375,\"column\":3}}]},\"38\":{\"type\":\"branch\",\"line\":338,\"loc\":{\"start\":{\"line\":338,\"column\":35},\"end\":{\"line\":346,\"column\":7}},\"locations\":[{\"start\":{\"line\":338,\"column\":35},\"end\":{\"line\":346,\"column\":7}}]},\"39\":{\"type\":\"branch\",\"line\":342,\"loc\":{\"start\":{\"line\":342,\"column\":20},\"end\":{\"line\":342,\"column\":76}},\"locations\":[{\"start\":{\"line\":342,\"column\":20},\"end\":{\"line\":342,\"column\":76}}]},\"40\":{\"type\":\"branch\",\"line\":357,\"loc\":{\"start\":{\"line\":357,\"column\":16},\"end\":{\"line\":359,\"column\":9}},\"locations\":[{\"start\":{\"line\":357,\"column\":16},\"end\":{\"line\":359,\"column\":9}}]},\"41\":{\"type\":\"branch\",\"line\":358,\"loc\":{\"start\":{\"line\":358,\"column\":56},\"end\":{\"line\":358,\"column\":94}},\"locations\":[{\"start\":{\"line\":358,\"column\":56},\"end\":{\"line\":358,\"column\":94}}]},\"42\":{\"type\":\"branch\",\"line\":360,\"loc\":{\"start\":{\"line\":360,\"column\":17},\"end\":{\"line\":363,\"column\":9}},\"locations\":[{\"start\":{\"line\":360,\"column\":17},\"end\":{\"line\":363,\"column\":9}}]},\"43\":{\"type\":\"branch\",\"line\":362,\"loc\":{\"start\":{\"line\":362,\"column\":27},\"end\":{\"line\":362,\"column\":83}},\"locations\":[{\"start\":{\"line\":362,\"column\":27},\"end\":{\"line\":362,\"column\":83}}]},\"44\":{\"type\":\"branch\",\"line\":366,\"loc\":{\"start\":{\"line\":366,\"column\":39},\"end\":{\"line\":366,\"column\":103}},\"locations\":[{\"start\":{\"line\":366,\"column\":39},\"end\":{\"line\":366,\"column\":103}}]},\"45\":{\"type\":\"branch\",\"line\":366,\"loc\":{\"start\":{\"line\":366,\"column\":66},\"end\":{\"line\":366,\"column\":103}},\"locations\":[{\"start\":{\"line\":366,\"column\":66},\"end\":{\"line\":366,\"column\":103}}]},\"46\":{\"type\":\"branch\",\"line\":368,\"loc\":{\"start\":{\"line\":368,\"column\":27},\"end\":{\"line\":371,\"column\":7}},\"locations\":[{\"start\":{\"line\":368,\"column\":27},\"end\":{\"line\":371,\"column\":7}}]},\"47\":{\"type\":\"branch\",\"line\":369,\"loc\":{\"start\":{\"line\":369,\"column\":20},\"end\":{\"line\":369,\"column\":53}},\"locations\":[{\"start\":{\"line\":369,\"column\":20},\"end\":{\"line\":369,\"column\":53}}]},\"48\":{\"type\":\"branch\",\"line\":369,\"loc\":{\"start\":{\"line\":369,\"column\":54},\"end\":{\"line\":369,\"column\":90}},\"locations\":[{\"start\":{\"line\":369,\"column\":54},\"end\":{\"line\":369,\"column\":90}}]},\"49\":{\"type\":\"branch\",\"line\":377,\"loc\":{\"start\":{\"line\":377,\"column\":10},\"end\":{\"line\":386,\"column\":3}},\"locations\":[{\"start\":{\"line\":377,\"column\":10},\"end\":{\"line\":386,\"column\":3}}]},\"50\":{\"type\":\"branch\",\"line\":378,\"loc\":{\"start\":{\"line\":378,\"column\":41},\"end\":{\"line\":378,\"column\":63}},\"locations\":[{\"start\":{\"line\":378,\"column\":41},\"end\":{\"line\":378,\"column\":63}}]},\"51\":{\"type\":\"branch\",\"line\":378,\"loc\":{\"start\":{\"line\":378,\"column\":65},\"end\":{\"line\":383,\"column\":5}},\"locations\":[{\"start\":{\"line\":378,\"column\":65},\"end\":{\"line\":383,\"column\":5}}]},\"52\":{\"type\":\"branch\",\"line\":388,\"loc\":{\"start\":{\"line\":388,\"column\":12},\"end\":{\"line\":390,\"column\":3}},\"locations\":[{\"start\":{\"line\":388,\"column\":12},\"end\":{\"line\":390,\"column\":3}}]},\"53\":{\"type\":\"branch\",\"line\":396,\"loc\":{\"start\":{\"line\":396,\"column\":10},\"end\":{\"line\":437,\"column\":3}},\"locations\":[{\"start\":{\"line\":396,\"column\":10},\"end\":{\"line\":437,\"column\":3}}]},\"54\":{\"type\":\"branch\",\"line\":418,\"loc\":{\"start\":{\"line\":418,\"column\":7},\"end\":{\"line\":434,\"column\":7}},\"locations\":[{\"start\":{\"line\":418,\"column\":7},\"end\":{\"line\":434,\"column\":7}}]},\"55\":{\"type\":\"branch\",\"line\":439,\"loc\":{\"start\":{\"line\":439,\"column\":10},\"end\":{\"line\":448,\"column\":3}},\"locations\":[{\"start\":{\"line\":439,\"column\":10},\"end\":{\"line\":448,\"column\":3}}]},\"56\":{\"type\":\"branch\",\"line\":440,\"loc\":{\"start\":{\"line\":440,\"column\":63},\"end\":{\"line\":442,\"column\":5}},\"locations\":[{\"start\":{\"line\":440,\"column\":63},\"end\":{\"line\":442,\"column\":5}}]}},\"b\":{\"0\":[80],\"1\":[20],\"2\":[0],\"3\":[0],\"4\":[0],\"5\":[60],\"6\":[20],\"7\":[20],\"8\":[20],\"9\":[35],\"10\":[0],\"11\":[0],\"12\":[0],\"13\":[0],\"14\":[20],\"15\":[19],\"16\":[19],\"17\":[20],\"18\":[20],\"19\":[20],\"20\":[0],\"21\":[0],\"22\":[0],\"23\":[40],\"24\":[20],\"25\":[0],\"26\":[40],\"27\":[0],\"28\":[3],\"29\":[1],\"30\":[2],\"31\":[15],\"32\":[1],\"33\":[20],\"34\":[20],\"35\":[0],\"36\":[6],\"37\":[8],\"38\":[2],\"39\":[2],\"40\":[24],\"41\":[3],\"42\":[23],\"43\":[16],\"44\":[81],\"45\":[4],\"46\":[39],\"47\":[23],\"48\":[16],\"49\":[20],\"50\":[0],\"51\":[0],\"52\":[20],\"53\":[20],\"54\":[0],\"55\":[13],\"56\":[0]},\"fnMap\":{\"0\":{\"name\":\"NotInitError\",\"decl\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":37,\"column\":3}},\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":37,\"column\":3}},\"line\":35},\"1\":{\"name\":\"BaseProjectService\",\"decl\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"loc\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"line\":54},\"2\":{\"name\":\"get schema\",\"decl\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"loc\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"line\":79},\"3\":{\"name\":\"get startHeight\",\"decl\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"loc\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":87,\"column\":3}},\"line\":84},\"4\":{\"name\":\"get blockOffset\",\"decl\":{\"start\":{\"line\":89,\"column\":2},\"end\":{\"line\":91,\"column\":3}},\"loc\":{\"start\":{\"line\":89,\"column\":2},\"end\":{\"line\":91,\"column\":3}},\"line\":89},\"5\":{\"name\":\"get isHistorical\",\"decl\":{\"start\":{\"line\":93,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"loc\":{\"start\":{\"line\":93,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"line\":93},\"6\":{\"name\":\"getExistingProjectSchema\",\"decl\":{\"start\":{\"line\":97,\"column\":10},\"end\":{\"line\":99,\"column\":3}},\"loc\":{\"start\":{\"line\":97,\"column\":10},\"end\":{\"line\":99,\"column\":3}},\"line\":97},\"7\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":166,\"column\":3}},\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":166,\"column\":3}},\"line\":101},\"8\":{\"name\":\"ensureProject\",\"decl\":{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":178,\"column\":3}},\"loc\":{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":178,\"column\":3}},\"line\":168},\"9\":{\"name\":\"createProjectSchema\",\"decl\":{\"start\":{\"line\":180,\"column\":10},\"end\":{\"line\":188,\"column\":3}},\"loc\":{\"start\":{\"line\":180,\"column\":10},\"end\":{\"line\":188,\"column\":3}},\"line\":180},\"10\":{\"name\":\"initHotSchemaReload\",\"decl\":{\"start\":{\"line\":190,\"column\":10},\"end\":{\"line\":192,\"column\":3}},\"loc\":{\"start\":{\"line\":190,\"column\":10},\"end\":{\"line\":192,\"column\":3}},\"line\":190},\"11\":{\"name\":\"initDbSchema\",\"decl\":{\"start\":{\"line\":194,\"column\":10},\"end\":{\"line\":196,\"column\":3}},\"loc\":{\"start\":{\"line\":194,\"column\":10},\"end\":{\"line\":196,\"column\":3}},\"line\":194},\"12\":{\"name\":\"ensureMetadata\",\"decl\":{\"start\":{\"line\":198,\"column\":10},\"end\":{\"line\":270,\"column\":3}},\"loc\":{\"start\":{\"line\":198,\"column\":10},\"end\":{\"line\":270,\"column\":3}},\"line\":198},\"13\":{\"name\":\"getLastProcessedHeight\",\"decl\":{\"start\":{\"line\":272,\"column\":12},\"end\":{\"line\":274,\"column\":3}},\"loc\":{\"start\":{\"line\":272,\"column\":12},\"end\":{\"line\":274,\"column\":3}},\"line\":272},\"14\":{\"name\":\"nextProcessHeight\",\"decl\":{\"start\":{\"line\":276,\"column\":10},\"end\":{\"line\":283,\"column\":3}},\"loc\":{\"start\":{\"line\":276,\"column\":10},\"end\":{\"line\":283,\"column\":3}},\"line\":276},\"15\":{\"name\":\"getStartBlockFromDataSources\",\"decl\":{\"start\":{\"line\":285,\"column\":2},\"end\":{\"line\":292,\"column\":3}},\"loc\":{\"start\":{\"line\":285,\"column\":2},\"end\":{\"line\":292,\"column\":3}},\"line\":285},\"16\":{\"name\":\"getAllDataSources\",\"decl\":{\"start\":{\"line\":294,\"column\":2},\"end\":{\"line\":300,\"column\":3}},\"loc\":{\"start\":{\"line\":294,\"column\":2},\"end\":{\"line\":300,\"column\":3}},\"line\":294},\"17\":{\"name\":\"hasDataSourcesAfterHeight\",\"decl\":{\"start\":{\"line\":302,\"column\":2},\"end\":{\"line\":312,\"column\":3}},\"loc\":{\"start\":{\"line\":302,\"column\":2},\"end\":{\"line\":312,\"column\":3}},\"line\":302},\"18\":{\"name\":\"getDataSources\",\"decl\":{\"start\":{\"line\":314,\"column\":2},\"end\":{\"line\":325,\"column\":3}},\"loc\":{\"start\":{\"line\":314,\"column\":2},\"end\":{\"line\":325,\"column\":3}},\"line\":314},\"19\":{\"name\":\"getDataSourcesMap\",\"decl\":{\"start\":{\"line\":328,\"column\":2},\"end\":{\"line\":375,\"column\":3}},\"loc\":{\"start\":{\"line\":328,\"column\":2},\"end\":{\"line\":375,\"column\":3}},\"line\":328},\"20\":{\"name\":\"initUnfinalizedInternal\",\"decl\":{\"start\":{\"line\":377,\"column\":10},\"end\":{\"line\":386,\"column\":3}},\"loc\":{\"start\":{\"line\":377,\"column\":10},\"end\":{\"line\":386,\"column\":3}},\"line\":377},\"21\":{\"name\":\"initUnfinalized\",\"decl\":{\"start\":{\"line\":388,\"column\":12},\"end\":{\"line\":390,\"column\":3}},\"loc\":{\"start\":{\"line\":388,\"column\":12},\"end\":{\"line\":390,\"column\":3}},\"line\":388},\"22\":{\"name\":\"initUpgradeService\",\"decl\":{\"start\":{\"line\":396,\"column\":10},\"end\":{\"line\":437,\"column\":3}},\"loc\":{\"start\":{\"line\":396,\"column\":10},\"end\":{\"line\":437,\"column\":3}},\"line\":396},\"23\":{\"name\":\"handleProjectChange\",\"decl\":{\"start\":{\"line\":439,\"column\":10},\"end\":{\"line\":448,\"column\":3}},\"loc\":{\"start\":{\"line\":439,\"column\":10},\"end\":{\"line\":448,\"column\":3}},\"line\":439},\"24\":{\"name\":\"reindex\",\"decl\":{\"start\":{\"line\":450,\"column\":2},\"end\":{\"line\":469,\"column\":3}},\"loc\":{\"start\":{\"line\":450,\"column\":2},\"end\":{\"line\":469,\"column\":3}},\"line\":450}},\"f\":{\"0\":80,\"1\":20,\"2\":60,\"3\":20,\"4\":0,\"5\":0,\"6\":20,\"7\":20,\"8\":20,\"9\":19,\"10\":20,\"11\":20,\"12\":20,\"13\":40,\"14\":20,\"15\":40,\"16\":0,\"17\":3,\"18\":20,\"19\":6,\"20\":20,\"21\":20,\"22\":20,\"23\":13,\"24\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/sandbox.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/sandbox.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":41}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":47}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":41}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":35}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":69}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":52}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":51}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":36}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":33}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":32}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":16}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":16}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":15}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":16}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":18}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":59}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":10}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":24}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":17}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":16}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":14}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":86}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":21}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":25}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":6}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":24}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":36}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":4}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":2}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":36}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":37}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":23}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":24}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":37}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":105}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":10}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":44}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":18}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":28}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":44}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":71}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":12}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":10}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":8}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":6}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":35}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":46}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":73}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":30}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":43}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":59}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":36}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":59}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":5}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":3}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":63}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":19}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":28}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":15}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":83}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":6}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":3}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":93}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":38}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":26}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":120}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":53}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":24}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":5}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":56}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":44}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":90}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":52}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":34}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":51}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":53}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":89}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":84}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":115}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":5}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":22}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":3}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":47}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":58}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":112}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":27}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":61}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":88}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":13}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":5}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":72}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":39}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":16}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":3}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":62}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":21}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":19}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":31}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":32}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":38}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":65}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":60}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":108}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":0}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":20}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":3}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":1}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":45}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":58}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":10}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":13}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":19}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":61}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":53}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":144}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":9}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":59}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":6}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":41}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":8}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":12}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":6}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":31}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":3}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":0}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":71}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":33}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":41}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":9}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":49}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":22}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":67}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":25}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":27}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":79}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":45}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":7}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":14}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":15}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":33}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":37}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":5}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":3}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":0}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":56}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":16}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":34}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":5}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":16}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":34}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":5}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":34}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":3}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":1}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":0}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":42}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":58}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":10}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":7}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":18}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":8}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":99}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":12}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":6}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":31}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":3}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":0}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":49}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":16}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":34}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":5}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":34}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":3}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":0}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":27}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":26}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":40}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":3}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":4,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":1,\"117\":1,\"118\":1,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":1,\"130\":1,\"131\":1,\"132\":1,\"133\":1,\"134\":1,\"135\":1,\"136\":1,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":1,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":1,\"163\":1,\"164\":1,\"165\":1,\"166\":1,\"167\":1,\"168\":1,\"169\":1,\"170\":0,\"171\":0,\"172\":1,\"173\":0,\"174\":0,\"175\":1,\"176\":1,\"177\":1,\"178\":1,\"179\":1,\"180\":1,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":1,\"191\":1,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":1,\"198\":1,\"199\":0,\"200\":0,\"201\":0,\"202\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":23},\"end\":{\"line\":37,\"column\":2}},\"locations\":[{\"start\":{\"line\":24,\"column\":23},\"end\":{\"line\":37,\"column\":2}}]},\"1\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":22},\"end\":{\"line\":30,\"column\":29}},\"locations\":[{\"start\":{\"line\":30,\"column\":22},\"end\":{\"line\":30,\"column\":29}}]},\"2\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"locations\":[{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":70,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":54},\"end\":{\"line\":60,\"column\":58}},\"locations\":[{\"start\":{\"line\":60,\"column\":54},\"end\":{\"line\":60,\"column\":58}}]},\"4\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":19},\"end\":{\"line\":53,\"column\":11}},\"locations\":[{\"start\":{\"line\":51,\"column\":19},\"end\":{\"line\":53,\"column\":11}}]},\"5\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":78,\"column\":3}},\"locations\":[{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":78,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":116,\"column\":3}},\"locations\":[{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":116,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":112,\"loc\":{\"start\":{\"line\":112,\"column\":-1},\"end\":{\"line\":116,\"column\":3}},\"locations\":[{\"start\":{\"line\":112,\"column\":-1},\"end\":{\"line\":116,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":148,\"column\":3}},\"locations\":[{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":148,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":2},\"end\":{\"line\":167,\"column\":3}},\"locations\":[{\"start\":{\"line\":150,\"column\":2},\"end\":{\"line\":167,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":155,\"loc\":{\"start\":{\"line\":155,\"column\":6},\"end\":{\"line\":163,\"column\":14}},\"locations\":[{\"start\":{\"line\":155,\"column\":6},\"end\":{\"line\":163,\"column\":14}}]},\"11\":{\"type\":\"branch\",\"line\":169,\"loc\":{\"start\":{\"line\":169,\"column\":10},\"end\":{\"line\":177,\"column\":3}},\"locations\":[{\"start\":{\"line\":169,\"column\":10},\"end\":{\"line\":177,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":15},\"end\":{\"line\":172,\"column\":5}},\"locations\":[{\"start\":{\"line\":170,\"column\":15},\"end\":{\"line\":172,\"column\":5}}]},\"13\":{\"type\":\"branch\",\"line\":173,\"loc\":{\"start\":{\"line\":173,\"column\":15},\"end\":{\"line\":175,\"column\":5}},\"locations\":[{\"start\":{\"line\":173,\"column\":15},\"end\":{\"line\":175,\"column\":5}}]}},\"b\":{\"0\":[1],\"1\":[0],\"2\":[1],\"3\":[0],\"4\":[4],\"5\":[1],\"6\":[1],\"7\":[0],\"8\":[1],\"9\":[1],\"10\":[0],\"11\":[1],\"12\":[0],\"13\":[0]},\"fnMap\":{\"0\":{\"name\":\"DEFAULT_OPTION\",\"decl\":{\"start\":{\"line\":24,\"column\":23},\"end\":{\"line\":37,\"column\":2}},\"loc\":{\"start\":{\"line\":24,\"column\":23},\"end\":{\"line\":37,\"column\":2}},\"line\":24},\"1\":{\"name\":\"Sandbox\",\"decl\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"loc\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"line\":46},\"2\":{\"name\":\"resolve\",\"decl\":{\"start\":{\"line\":51,\"column\":19},\"end\":{\"line\":53,\"column\":11}},\"loc\":{\"start\":{\"line\":51,\"column\":19},\"end\":{\"line\":53,\"column\":11}},\"line\":51},\"3\":{\"name\":\"runTimeout\",\"decl\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":78,\"column\":3}},\"loc\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":78,\"column\":3}},\"line\":72},\"4\":{\"name\":\"convertStack\",\"decl\":{\"start\":{\"line\":80,\"column\":12},\"end\":{\"line\":102,\"column\":3}},\"loc\":{\"start\":{\"line\":80,\"column\":12},\"end\":{\"line\":102,\"column\":3}},\"line\":80},\"5\":{\"name\":\"decodeSourceMap\",\"decl\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":116,\"column\":3}},\"loc\":{\"start\":{\"line\":104,\"column\":2},\"end\":{\"line\":116,\"column\":3}},\"line\":104},\"6\":{\"name\":\"findLineInfo\",\"decl\":{\"start\":{\"line\":119,\"column\":2},\"end\":{\"line\":129,\"column\":3}},\"loc\":{\"start\":{\"line\":119,\"column\":2},\"end\":{\"line\":129,\"column\":3}},\"line\":119},\"7\":{\"name\":\"IndexerSandbox\",\"decl\":{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":148,\"column\":3}},\"loc\":{\"start\":{\"line\":133,\"column\":2},\"end\":{\"line\":148,\"column\":3}},\"line\":133},\"8\":{\"name\":\"securedExec\",\"decl\":{\"start\":{\"line\":150,\"column\":2},\"end\":{\"line\":167,\"column\":3}},\"loc\":{\"start\":{\"line\":150,\"column\":2},\"end\":{\"line\":167,\"column\":3}},\"line\":150},\"9\":{\"name\":\"injectGlobals\",\"decl\":{\"start\":{\"line\":169,\"column\":10},\"end\":{\"line\":177,\"column\":3}},\"loc\":{\"start\":{\"line\":169,\"column\":10},\"end\":{\"line\":177,\"column\":3}},\"line\":169},\"10\":{\"name\":\"TestSandbox\",\"decl\":{\"start\":{\"line\":181,\"column\":2},\"end\":{\"line\":190,\"column\":3}},\"loc\":{\"start\":{\"line\":181,\"column\":2},\"end\":{\"line\":190,\"column\":3}},\"line\":181},\"11\":{\"name\":\"injectGlobals\",\"decl\":{\"start\":{\"line\":192,\"column\":10},\"end\":{\"line\":197,\"column\":3}},\"loc\":{\"start\":{\"line\":192,\"column\":10},\"end\":{\"line\":197,\"column\":3}},\"line\":192},\"12\":{\"name\":\"getTests\",\"decl\":{\"start\":{\"line\":199,\"column\":2},\"end\":{\"line\":202,\"column\":3}},\"loc\":{\"start\":{\"line\":199,\"column\":2},\"end\":{\"line\":202,\"column\":3}},\"line\":199}},\"f\":{\"0\":1,\"1\":1,\"2\":4,\"3\":1,\"4\":0,\"5\":1,\"6\":0,\"7\":1,\"8\":1,\"9\":1,\"10\":0,\"11\":0,\"12\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/smartBatch.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/smartBatch.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":37}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":41}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":57}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":13}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":32}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":43}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":101}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":61}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":3}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":37}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":32}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":3}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":40}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":54}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":72}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":54}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":69}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":63}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":5}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":79}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":3}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":33}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":17}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":44}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":31}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":30}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":28}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":30}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":33}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":31}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":26}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":31}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":30}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":30}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":39}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":96}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":35}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":37}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":38}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":38}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":37}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":56}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":51}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":45}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":9}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":37}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":35}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":56}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":45}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":52}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":30}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":49}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":9}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":14}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":52}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":7}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":87}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":42}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":52}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":7}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":5}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":16}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":3}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":29}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":70}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":3}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":30}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":56}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":25}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":9}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":56}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":17}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":31}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":5}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":55}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":0}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":41}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":24}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":15}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":5}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":66}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":54}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":3}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":0}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":60}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":25}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":9}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":56}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":17}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":31}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":5}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":65}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":54}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":3}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":20,\"14\":20,\"15\":1,\"16\":1,\"17\":0,\"18\":0,\"19\":1,\"20\":1,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":1,\"30\":1,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":1,\"77\":1,\"78\":0,\"79\":0,\"80\":1,\"81\":1,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":1,\"102\":1,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":13,\"loc\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":15,\"column\":3}},\"locations\":[{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":15,\"column\":3}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"SmartBatchService\",\"decl\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":15,\"column\":3}},\"loc\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":15,\"column\":3}},\"line\":13},\"1\":{\"name\":\"get minimumHeapRequired\",\"decl\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"line\":17},\"2\":{\"name\":\"addToSizeBuffer\",\"decl\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"loc\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"line\":21},\"3\":{\"name\":\"blockSize\",\"decl\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"line\":31},\"4\":{\"name\":\"heapMemoryLimit\",\"decl\":{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"loc\":{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"line\":78},\"5\":{\"name\":\"getSafeBatchSize\",\"decl\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":101,\"column\":3}},\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":101,\"column\":3}},\"line\":82},\"6\":{\"name\":\"safeBatchSizeForRemainingMemory\",\"decl\":{\"start\":{\"line\":103,\"column\":2},\"end\":{\"line\":114,\"column\":3}},\"loc\":{\"start\":{\"line\":103,\"column\":2},\"end\":{\"line\":114,\"column\":3}},\"line\":103}},\"f\":{\"0\":20,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/store.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/store.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":50}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":56}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":8}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":30}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":11}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":17}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":11}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":20}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":120}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":54}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":40}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":8}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":35}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":30}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":14}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":25}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":15}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":36}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":44}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":99}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":30}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":48}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":66}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":50}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":41}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":41}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":42}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":22}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":21}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":20}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":20}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":15}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":33}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":17}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":51}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":3}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":1}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":13}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":27}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":20}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":45}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":57}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":39}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":32}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":31}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":46}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":33}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":32}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":44}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":14}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":33}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":31}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":43}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":96}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":6}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":50}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":56}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":36}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":3}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":0}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":62}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":53}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":33}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":3}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":44}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":50}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":30}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":3}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":63}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":30}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":3}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":53}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":32}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":29}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":92}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":29}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":3}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":29}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":62}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":28}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":3}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":0}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":36}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":44}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":24}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":3}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":0}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":51}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":51}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":31}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":3}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":69}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":55}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":35}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":100}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":59}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":5}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":47}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":21}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":13}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":29}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":42}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":6}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":51}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":32}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":68}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":66}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":31}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":77}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":5}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":83}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":0}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":113}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":0}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":51}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":70}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":60}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":3}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":91}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":44}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":0}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":9}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":36}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":22}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":62}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":22}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":5}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":53}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":3}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":0}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":67}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":47}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":84}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":13}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":5}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":75}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":94}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":80}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":9}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":13}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":100}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":68}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":97}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":75}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":40}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":93}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":7}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":17}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":55}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":5}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":3}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":0}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":51}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":50}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":26}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":85}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":33}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":116}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":7}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":5}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":0}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":6}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":132}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":33}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":7}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":62}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":21}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":11}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":56}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":13}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":17}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":6}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":76}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":3}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":0}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":99}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":44}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":9}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":70}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":22}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":66}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":22}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":5}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":3}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":0}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":14}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":29}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":37}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":30}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":18}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":23}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":74}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":24}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":33}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":29}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":24}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":13}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":14}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":7}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":0}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":26}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":139}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":47}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":21}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":45}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":10}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":9}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":0}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":57}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":48}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":49}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":10}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":9}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":73}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":60}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":9}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":69}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":58}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":5}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":0}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":26}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":3}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":0}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":67}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":136}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":79}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":27}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":3}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":0}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":69}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":56}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":0}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":9}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":65}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":90}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":33}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":8}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":0}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":58}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":89}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":8}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":0}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":57}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":21}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":120}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":10}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":24}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":7}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":0}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":44}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":87}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":136}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":35}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":10}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":0}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":60}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":45}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":23}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":52}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":0}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":29}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":118}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":0}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":42}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":26}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":163}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":12}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":9}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":29}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":7}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":55}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":17}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":45}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":108}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":21}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":7}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":0}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":70}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":32}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":5}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":3}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":45}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":36}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":35}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":77}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":5}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":3}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":0}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":40}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":35}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":118}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":52}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":70}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":32}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":32}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":7}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":24}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":5}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":28}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":3}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":0}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":51}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":38}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":55}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":54}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":92}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":31}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":5}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":27}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":3}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":0}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":104}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":44}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":13}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":31}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":28}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":33}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":21}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":4}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":16}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":47}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":45}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":38}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":19}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":18}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":5}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":25}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":30}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":26}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":32}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":26}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":8}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":14}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":14}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":16}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":20}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":15}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":7}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":32}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":7}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":6}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":76}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":3}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":0}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":5}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":68}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":17}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":88}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":29}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":23}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":5}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":84}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":27}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":73}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":5}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":125}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":58}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":42}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":45}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":5}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":63}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":53}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":94}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":7}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":5}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":69}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":60}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":3}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":0}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":53}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":12}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":40}},\"404\":{\"start\":{\"line\":405,\"column\":0},\"end\":{\"line\":405,\"column\":23}},\"405\":{\"start\":{\"line\":406,\"column\":0},\"end\":{\"line\":406,\"column\":110}},\"406\":{\"start\":{\"line\":407,\"column\":0},\"end\":{\"line\":407,\"column\":12}},\"407\":{\"start\":{\"line\":408,\"column\":0},\"end\":{\"line\":408,\"column\":6}},\"408\":{\"start\":{\"line\":409,\"column\":0},\"end\":{\"line\":409,\"column\":3}},\"409\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":410,\"column\":0}},\"410\":{\"start\":{\"line\":411,\"column\":0},\"end\":{\"line\":411,\"column\":63}},\"411\":{\"start\":{\"line\":412,\"column\":0},\"end\":{\"line\":412,\"column\":12}},\"412\":{\"start\":{\"line\":413,\"column\":0},\"end\":{\"line\":413,\"column\":40}},\"413\":{\"start\":{\"line\":414,\"column\":0},\"end\":{\"line\":414,\"column\":23}},\"414\":{\"start\":{\"line\":415,\"column\":0},\"end\":{\"line\":415,\"column\":68}},\"415\":{\"start\":{\"line\":416,\"column\":0},\"end\":{\"line\":416,\"column\":54}},\"416\":{\"start\":{\"line\":417,\"column\":0},\"end\":{\"line\":417,\"column\":51}},\"417\":{\"start\":{\"line\":418,\"column\":0},\"end\":{\"line\":418,\"column\":50}},\"418\":{\"start\":{\"line\":419,\"column\":0},\"end\":{\"line\":419,\"column\":12}},\"419\":{\"start\":{\"line\":420,\"column\":0},\"end\":{\"line\":420,\"column\":6}},\"420\":{\"start\":{\"line\":421,\"column\":0},\"end\":{\"line\":421,\"column\":3}},\"421\":{\"start\":{\"line\":422,\"column\":0},\"end\":{\"line\":422,\"column\":0}},\"422\":{\"start\":{\"line\":423,\"column\":0},\"end\":{\"line\":423,\"column\":21}},\"423\":{\"start\":{\"line\":424,\"column\":0},\"end\":{\"line\":424,\"column\":57}},\"424\":{\"start\":{\"line\":425,\"column\":0},\"end\":{\"line\":425,\"column\":3}},\"425\":{\"start\":{\"line\":426,\"column\":0},\"end\":{\"line\":426,\"column\":1}},\"426\":{\"start\":{\"line\":427,\"column\":0},\"end\":{\"line\":427,\"column\":0}},\"427\":{\"start\":{\"line\":428,\"column\":0},\"end\":{\"line\":428,\"column\":33}},\"428\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":429,\"column\":40}},\"429\":{\"start\":{\"line\":430,\"column\":0},\"end\":{\"line\":430,\"column\":23}},\"430\":{\"start\":{\"line\":431,\"column\":0},\"end\":{\"line\":431,\"column\":26}},\"431\":{\"start\":{\"line\":432,\"column\":0},\"end\":{\"line\":432,\"column\":27}},\"432\":{\"start\":{\"line\":433,\"column\":0},\"end\":{\"line\":433,\"column\":28}},\"433\":{\"start\":{\"line\":434,\"column\":0},\"end\":{\"line\":434,\"column\":19}},\"434\":{\"start\":{\"line\":435,\"column\":0},\"end\":{\"line\":435,\"column\":18}},\"435\":{\"start\":{\"line\":436,\"column\":0},\"end\":{\"line\":436,\"column\":31}},\"436\":{\"start\":{\"line\":437,\"column\":0},\"end\":{\"line\":437,\"column\":30}},\"437\":{\"start\":{\"line\":438,\"column\":0},\"end\":{\"line\":438,\"column\":49}},\"438\":{\"start\":{\"line\":439,\"column\":0},\"end\":{\"line\":439,\"column\":9}},\"439\":{\"start\":{\"line\":440,\"column\":0},\"end\":{\"line\":440,\"column\":68}},\"440\":{\"start\":{\"line\":441,\"column\":0},\"end\":{\"line\":441,\"column\":24}},\"441\":{\"start\":{\"line\":442,\"column\":0},\"end\":{\"line\":442,\"column\":13}},\"442\":{\"start\":{\"line\":443,\"column\":0},\"end\":{\"line\":443,\"column\":27}},\"443\":{\"start\":{\"line\":444,\"column\":0},\"end\":{\"line\":444,\"column\":26}},\"444\":{\"start\":{\"line\":445,\"column\":0},\"end\":{\"line\":445,\"column\":27}},\"445\":{\"start\":{\"line\":446,\"column\":0},\"end\":{\"line\":446,\"column\":31}},\"446\":{\"start\":{\"line\":447,\"column\":0},\"end\":{\"line\":447,\"column\":117}},\"447\":{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":448,\"column\":15}},\"448\":{\"start\":{\"line\":449,\"column\":0},\"end\":{\"line\":449,\"column\":23}},\"449\":{\"start\":{\"line\":450,\"column\":0},\"end\":{\"line\":450,\"column\":15}},\"450\":{\"start\":{\"line\":451,\"column\":0},\"end\":{\"line\":451,\"column\":25}},\"451\":{\"start\":{\"line\":452,\"column\":0},\"end\":{\"line\":452,\"column\":15}},\"452\":{\"start\":{\"line\":453,\"column\":0},\"end\":{\"line\":453,\"column\":117}},\"453\":{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":454,\"column\":16}},\"454\":{\"start\":{\"line\":455,\"column\":0},\"end\":{\"line\":455,\"column\":15}},\"455\":{\"start\":{\"line\":456,\"column\":0},\"end\":{\"line\":456,\"column\":28}},\"456\":{\"start\":{\"line\":457,\"column\":0},\"end\":{\"line\":457,\"column\":33}},\"457\":{\"start\":{\"line\":458,\"column\":0},\"end\":{\"line\":458,\"column\":29}},\"458\":{\"start\":{\"line\":459,\"column\":0},\"end\":{\"line\":459,\"column\":24}},\"459\":{\"start\":{\"line\":460,\"column\":0},\"end\":{\"line\":460,\"column\":29}},\"460\":{\"start\":{\"line\":461,\"column\":0},\"end\":{\"line\":461,\"column\":21}},\"461\":{\"start\":{\"line\":462,\"column\":0},\"end\":{\"line\":462,\"column\":38}},\"462\":{\"start\":{\"line\":463,\"column\":0},\"end\":{\"line\":463,\"column\":57}},\"463\":{\"start\":{\"line\":464,\"column\":0},\"end\":{\"line\":464,\"column\":24}},\"464\":{\"start\":{\"line\":465,\"column\":0},\"end\":{\"line\":465,\"column\":22}},\"465\":{\"start\":{\"line\":466,\"column\":0},\"end\":{\"line\":466,\"column\":104}},\"466\":{\"start\":{\"line\":467,\"column\":0},\"end\":{\"line\":467,\"column\":20}},\"467\":{\"start\":{\"line\":468,\"column\":0},\"end\":{\"line\":468,\"column\":18}},\"468\":{\"start\":{\"line\":469,\"column\":0},\"end\":{\"line\":469,\"column\":15}},\"469\":{\"start\":{\"line\":470,\"column\":0},\"end\":{\"line\":470,\"column\":14}},\"470\":{\"start\":{\"line\":471,\"column\":0},\"end\":{\"line\":471,\"column\":9}},\"471\":{\"start\":{\"line\":472,\"column\":0},\"end\":{\"line\":472,\"column\":105}},\"472\":{\"start\":{\"line\":473,\"column\":0},\"end\":{\"line\":473,\"column\":33}},\"473\":{\"start\":{\"line\":474,\"column\":0},\"end\":{\"line\":474,\"column\":32}},\"474\":{\"start\":{\"line\":475,\"column\":0},\"end\":{\"line\":475,\"column\":7}},\"475\":{\"start\":{\"line\":476,\"column\":0},\"end\":{\"line\":476,\"column\":33}},\"476\":{\"start\":{\"line\":477,\"column\":0},\"end\":{\"line\":477,\"column\":31}},\"477\":{\"start\":{\"line\":478,\"column\":0},\"end\":{\"line\":478,\"column\":7}},\"478\":{\"start\":{\"line\":479,\"column\":0},\"end\":{\"line\":479,\"column\":17}},\"479\":{\"start\":{\"line\":480,\"column\":0},\"end\":{\"line\":480,\"column\":102}},\"480\":{\"start\":{\"line\":481,\"column\":0},\"end\":{\"line\":481,\"column\":5}},\"481\":{\"start\":{\"line\":482,\"column\":0},\"end\":{\"line\":482,\"column\":3}},\"482\":{\"start\":{\"line\":483,\"column\":0},\"end\":{\"line\":483,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":414,\"47\":414,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":11,\"66\":11,\"67\":11,\"68\":11,\"69\":11,\"70\":1,\"71\":1,\"72\":0,\"73\":0,\"74\":0,\"75\":1,\"76\":1,\"77\":32,\"78\":32,\"79\":32,\"80\":1,\"81\":1,\"82\":60,\"83\":60,\"84\":60,\"85\":1,\"86\":1,\"87\":0,\"88\":0,\"89\":1,\"90\":1,\"91\":0,\"92\":0,\"93\":1,\"94\":1,\"95\":0,\"96\":0,\"97\":0,\"98\":1,\"99\":1,\"100\":230,\"101\":230,\"102\":230,\"103\":1,\"104\":1,\"105\":52,\"106\":52,\"107\":52,\"108\":1,\"109\":1,\"110\":40,\"111\":40,\"112\":40,\"113\":1,\"114\":1,\"115\":1,\"116\":20,\"117\":0,\"118\":0,\"119\":0,\"120\":20,\"121\":20,\"122\":20,\"123\":20,\"124\":20,\"125\":20,\"126\":20,\"127\":20,\"128\":20,\"129\":20,\"130\":20,\"131\":20,\"132\":20,\"133\":20,\"134\":0,\"135\":0,\"136\":0,\"137\":20,\"138\":20,\"139\":20,\"140\":20,\"141\":20,\"142\":20,\"143\":20,\"144\":20,\"145\":20,\"146\":1,\"147\":1,\"148\":20,\"149\":20,\"150\":20,\"151\":20,\"152\":20,\"153\":0,\"154\":0,\"155\":0,\"156\":20,\"157\":20,\"158\":1,\"159\":1,\"160\":20,\"161\":0,\"162\":0,\"163\":0,\"164\":20,\"165\":20,\"166\":20,\"167\":20,\"168\":20,\"169\":20,\"170\":20,\"171\":20,\"172\":20,\"173\":20,\"174\":20,\"175\":20,\"176\":20,\"177\":20,\"178\":20,\"179\":20,\"180\":0,\"181\":0,\"182\":20,\"183\":1,\"184\":1,\"185\":20,\"186\":20,\"187\":12,\"188\":12,\"189\":0,\"190\":0,\"191\":12,\"192\":20,\"193\":20,\"194\":20,\"195\":20,\"196\":20,\"197\":20,\"198\":20,\"199\":20,\"200\":20,\"201\":20,\"202\":20,\"203\":20,\"204\":20,\"205\":20,\"206\":1,\"207\":1,\"208\":32,\"209\":32,\"210\":32,\"211\":32,\"212\":0,\"213\":0,\"214\":0,\"215\":32,\"216\":1,\"217\":1,\"218\":130,\"219\":130,\"220\":130,\"221\":130,\"222\":130,\"223\":130,\"224\":130,\"225\":130,\"226\":130,\"227\":130,\"228\":130,\"229\":130,\"230\":130,\"231\":130,\"232\":130,\"233\":75,\"234\":75,\"235\":75,\"236\":75,\"237\":75,\"238\":75,\"239\":75,\"240\":75,\"241\":0,\"242\":0,\"243\":0,\"244\":75,\"245\":75,\"246\":0,\"247\":75,\"248\":75,\"249\":75,\"250\":75,\"251\":130,\"252\":130,\"253\":130,\"254\":1,\"255\":1,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":1,\"261\":1,\"262\":20,\"263\":20,\"264\":20,\"265\":20,\"266\":20,\"267\":20,\"268\":20,\"269\":20,\"270\":20,\"271\":20,\"272\":20,\"273\":20,\"274\":20,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":0,\"280\":20,\"281\":20,\"282\":20,\"283\":20,\"284\":20,\"285\":20,\"286\":20,\"287\":20,\"288\":0,\"289\":0,\"290\":20,\"291\":20,\"292\":20,\"293\":20,\"294\":20,\"295\":20,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":20,\"301\":20,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":0,\"307\":0,\"308\":0,\"309\":0,\"310\":0,\"311\":0,\"312\":20,\"313\":1,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":1,\"320\":1,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":1,\"333\":1,\"334\":32,\"335\":32,\"336\":126,\"337\":126,\"338\":126,\"339\":126,\"340\":32,\"341\":32,\"342\":1,\"343\":1,\"344\":126,\"345\":126,\"346\":126,\"347\":126,\"348\":126,\"349\":126,\"350\":126,\"351\":126,\"352\":126,\"353\":126,\"354\":126,\"355\":126,\"356\":126,\"357\":126,\"358\":126,\"359\":126,\"360\":126,\"361\":126,\"362\":126,\"363\":126,\"364\":126,\"365\":126,\"366\":126,\"367\":126,\"368\":126,\"369\":126,\"370\":126,\"371\":126,\"372\":126,\"373\":126,\"374\":126,\"375\":1,\"376\":1,\"377\":1,\"378\":1,\"379\":1,\"380\":1,\"381\":1,\"382\":1,\"383\":1,\"384\":0,\"385\":0,\"386\":0,\"387\":0,\"388\":0,\"389\":0,\"390\":0,\"391\":0,\"392\":0,\"393\":0,\"394\":0,\"395\":0,\"396\":0,\"397\":0,\"398\":0,\"399\":0,\"400\":1,\"401\":1,\"402\":0,\"403\":0,\"404\":0,\"405\":0,\"406\":0,\"407\":0,\"408\":0,\"409\":1,\"410\":1,\"411\":0,\"412\":0,\"413\":0,\"414\":0,\"415\":0,\"416\":0,\"417\":0,\"418\":0,\"419\":0,\"420\":0,\"421\":1,\"422\":1,\"423\":0,\"424\":0,\"425\":1,\"426\":1,\"427\":1,\"428\":0,\"429\":0,\"430\":0,\"431\":0,\"432\":0,\"433\":0,\"434\":0,\"435\":0,\"436\":0,\"437\":0,\"438\":0,\"439\":0,\"440\":0,\"441\":0,\"442\":0,\"443\":0,\"444\":0,\"445\":0,\"446\":0,\"447\":0,\"448\":0,\"449\":0,\"450\":0,\"451\":0,\"452\":0,\"453\":0,\"454\":0,\"455\":0,\"456\":0,\"457\":0,\"458\":0,\"459\":0,\"460\":0,\"461\":0,\"462\":0,\"463\":0,\"464\":0,\"465\":0,\"466\":0,\"467\":0,\"468\":0,\"469\":0,\"470\":0,\"471\":0,\"472\":0,\"473\":0,\"474\":0,\"475\":0,\"476\":0,\"477\":0,\"478\":0,\"479\":0,\"480\":0,\"481\":0,\"482\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":48,\"column\":3}},\"locations\":[{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":48,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":65,\"loc\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":70,\"column\":6}},\"locations\":[{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":70,\"column\":6}}]},\"2\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"locations\":[{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":80,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":85,\"column\":3}},\"locations\":[{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":85,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":103,\"column\":3}},\"locations\":[{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":103,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":108,\"column\":3}},\"locations\":[{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":108,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":2},\"end\":{\"line\":113,\"column\":3}},\"locations\":[{\"start\":{\"line\":110,\"column\":2},\"end\":{\"line\":113,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":116,\"loc\":{\"start\":{\"line\":116,\"column\":2},\"end\":{\"line\":146,\"column\":3}},\"locations\":[{\"start\":{\"line\":116,\"column\":2},\"end\":{\"line\":146,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":117,\"loc\":{\"start\":{\"line\":117,\"column\":34},\"end\":{\"line\":120,\"column\":5}},\"locations\":[{\"start\":{\"line\":117,\"column\":34},\"end\":{\"line\":120,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":23},\"end\":{\"line\":134,\"column\":63}},\"locations\":[{\"start\":{\"line\":134,\"column\":23},\"end\":{\"line\":134,\"column\":63}}]},\"10\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":65},\"end\":{\"line\":137,\"column\":5}},\"locations\":[{\"start\":{\"line\":134,\"column\":65},\"end\":{\"line\":137,\"column\":5}}]},\"11\":{\"type\":\"branch\",\"line\":138,\"loc\":{\"start\":{\"line\":138,\"column\":55},\"end\":{\"line\":138,\"column\":66}},\"locations\":[{\"start\":{\"line\":138,\"column\":55},\"end\":{\"line\":138,\"column\":66}}]},\"12\":{\"type\":\"branch\",\"line\":138,\"loc\":{\"start\":{\"line\":138,\"column\":67},\"end\":{\"line\":138,\"column\":79}},\"locations\":[{\"start\":{\"line\":138,\"column\":67},\"end\":{\"line\":138,\"column\":79}}]},\"13\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":2},\"end\":{\"line\":158,\"column\":3}},\"locations\":[{\"start\":{\"line\":148,\"column\":2},\"end\":{\"line\":158,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":153,\"loc\":{\"start\":{\"line\":153,\"column\":6},\"end\":{\"line\":156,\"column\":5}},\"locations\":[{\"start\":{\"line\":153,\"column\":6},\"end\":{\"line\":156,\"column\":5}}]},\"15\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":2},\"end\":{\"line\":183,\"column\":3}},\"locations\":[{\"start\":{\"line\":160,\"column\":2},\"end\":{\"line\":183,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":161,\"loc\":{\"start\":{\"line\":161,\"column\":46},\"end\":{\"line\":164,\"column\":5}},\"locations\":[{\"start\":{\"line\":161,\"column\":46},\"end\":{\"line\":164,\"column\":5}}]},\"17\":{\"type\":\"branch\",\"line\":180,\"loc\":{\"start\":{\"line\":180,\"column\":6},\"end\":{\"line\":182,\"column\":5}},\"locations\":[{\"start\":{\"line\":180,\"column\":6},\"end\":{\"line\":182,\"column\":5}}]},\"18\":{\"type\":\"branch\",\"line\":185,\"loc\":{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":206,\"column\":3}},\"locations\":[{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":206,\"column\":3}}]},\"19\":{\"type\":\"branch\",\"line\":187,\"loc\":{\"start\":{\"line\":187,\"column\":25},\"end\":{\"line\":192,\"column\":5}},\"locations\":[{\"start\":{\"line\":187,\"column\":25},\"end\":{\"line\":192,\"column\":5}}]},\"20\":{\"type\":\"branch\",\"line\":189,\"loc\":{\"start\":{\"line\":189,\"column\":32},\"end\":{\"line\":191,\"column\":7}},\"locations\":[{\"start\":{\"line\":189,\"column\":32},\"end\":{\"line\":191,\"column\":7}}]},\"21\":{\"type\":\"branch\",\"line\":208,\"loc\":{\"start\":{\"line\":208,\"column\":2},\"end\":{\"line\":216,\"column\":3}},\"locations\":[{\"start\":{\"line\":208,\"column\":2},\"end\":{\"line\":216,\"column\":3}}]},\"22\":{\"type\":\"branch\",\"line\":212,\"loc\":{\"start\":{\"line\":212,\"column\":6},\"end\":{\"line\":215,\"column\":5}},\"locations\":[{\"start\":{\"line\":212,\"column\":6},\"end\":{\"line\":215,\"column\":5}}]},\"23\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":254,\"column\":3}},\"locations\":[{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":254,\"column\":3}}]},\"24\":{\"type\":\"branch\",\"line\":233,\"loc\":{\"start\":{\"line\":233,\"column\":25},\"end\":{\"line\":251,\"column\":5}},\"locations\":[{\"start\":{\"line\":233,\"column\":25},\"end\":{\"line\":251,\"column\":5}}]},\"25\":{\"type\":\"branch\",\"line\":262,\"loc\":{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":313,\"column\":3}},\"locations\":[{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":313,\"column\":3}}]},\"26\":{\"type\":\"branch\",\"line\":275,\"loc\":{\"start\":{\"line\":275,\"column\":39},\"end\":{\"line\":275,\"column\":54}},\"locations\":[{\"start\":{\"line\":275,\"column\":39},\"end\":{\"line\":275,\"column\":54}}]},\"27\":{\"type\":\"branch\",\"line\":275,\"loc\":{\"start\":{\"line\":275,\"column\":56},\"end\":{\"line\":280,\"column\":7}},\"locations\":[{\"start\":{\"line\":275,\"column\":56},\"end\":{\"line\":280,\"column\":7}}]},\"28\":{\"type\":\"branch\",\"line\":294,\"loc\":{\"start\":{\"line\":294,\"column\":74},\"end\":{\"line\":294,\"column\":117}},\"locations\":[{\"start\":{\"line\":294,\"column\":74},\"end\":{\"line\":294,\"column\":117}}]},\"29\":{\"type\":\"branch\",\"line\":296,\"loc\":{\"start\":{\"line\":296,\"column\":25},\"end\":{\"line\":296,\"column\":39}},\"locations\":[{\"start\":{\"line\":296,\"column\":25},\"end\":{\"line\":296,\"column\":39}}]},\"30\":{\"type\":\"branch\",\"line\":296,\"loc\":{\"start\":{\"line\":296,\"column\":41},\"end\":{\"line\":300,\"column\":9}},\"locations\":[{\"start\":{\"line\":296,\"column\":41},\"end\":{\"line\":300,\"column\":9}}]},\"31\":{\"type\":\"branch\",\"line\":303,\"loc\":{\"start\":{\"line\":303,\"column\":-1},\"end\":{\"line\":312,\"column\":5}},\"locations\":[{\"start\":{\"line\":303,\"column\":-1},\"end\":{\"line\":312,\"column\":5}}]},\"32\":{\"type\":\"branch\",\"line\":272,\"loc\":{\"start\":{\"line\":272,\"column\":8},\"end\":{\"line\":272,\"column\":89}},\"locations\":[{\"start\":{\"line\":272,\"column\":8},\"end\":{\"line\":272,\"column\":89}}]},\"33\":{\"type\":\"branch\",\"line\":272,\"loc\":{\"start\":{\"line\":272,\"column\":53},\"end\":{\"line\":272,\"column\":89}},\"locations\":[{\"start\":{\"line\":272,\"column\":53},\"end\":{\"line\":272,\"column\":89}}]},\"34\":{\"type\":\"branch\",\"line\":334,\"loc\":{\"start\":{\"line\":334,\"column\":10},\"end\":{\"line\":342,\"column\":3}},\"locations\":[{\"start\":{\"line\":334,\"column\":10},\"end\":{\"line\":342,\"column\":3}}]},\"35\":{\"type\":\"branch\",\"line\":336,\"loc\":{\"start\":{\"line\":336,\"column\":54},\"end\":{\"line\":340,\"column\":5}},\"locations\":[{\"start\":{\"line\":336,\"column\":54},\"end\":{\"line\":340,\"column\":5}}]},\"36\":{\"type\":\"branch\",\"line\":344,\"loc\":{\"start\":{\"line\":344,\"column\":10},\"end\":{\"line\":375,\"column\":3}},\"locations\":[{\"start\":{\"line\":344,\"column\":10},\"end\":{\"line\":375,\"column\":3}}]},\"37\":{\"type\":\"branch\",\"line\":374,\"loc\":{\"start\":{\"line\":374,\"column\":20},\"end\":{\"line\":374,\"column\":58}},\"locations\":[{\"start\":{\"line\":374,\"column\":20},\"end\":{\"line\":374,\"column\":58}}]}},\"b\":{\"0\":[414],\"1\":[11],\"2\":[32],\"3\":[60],\"4\":[230],\"5\":[52],\"6\":[40],\"7\":[20],\"8\":[0],\"9\":[12],\"10\":[0],\"11\":[12],\"12\":[8],\"13\":[20],\"14\":[0],\"15\":[20],\"16\":[0],\"17\":[0],\"18\":[20],\"19\":[12],\"20\":[0],\"21\":[32],\"22\":[0],\"23\":[130],\"24\":[75],\"25\":[20],\"26\":[0],\"27\":[0],\"28\":[0],\"29\":[12],\"30\":[0],\"31\":[0],\"32\":[22],\"33\":[2],\"34\":[32],\"35\":[126],\"36\":[126],\"37\":[413]},\"fnMap\":{\"0\":{\"name\":\"NoInitError\",\"decl\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":48,\"column\":3}},\"loc\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":48,\"column\":3}},\"line\":46},\"1\":{\"name\":\"StoreService\",\"decl\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":70,\"column\":6}},\"loc\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":70,\"column\":6}},\"line\":65},\"2\":{\"name\":\"get modelIndexedFields\",\"decl\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"loc\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"line\":72},\"3\":{\"name\":\"get modelsRelations\",\"decl\":{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"loc\":{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"line\":77},\"4\":{\"name\":\"get metaDataRepo\",\"decl\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":85,\"column\":3}},\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":85,\"column\":3}},\"line\":82},\"5\":{\"name\":\"set operationStack\",\"decl\":{\"start\":{\"line\":87,\"column\":2},\"end\":{\"line\":89,\"column\":3}},\"loc\":{\"start\":{\"line\":87,\"column\":2},\"end\":{\"line\":89,\"column\":3}},\"line\":87},\"6\":{\"name\":\"get operationStack\",\"decl\":{\"start\":{\"line\":91,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"loc\":{\"start\":{\"line\":91,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"line\":91},\"7\":{\"name\":\"get blockHeight\",\"decl\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":98,\"column\":3}},\"loc\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":98,\"column\":3}},\"line\":95},\"8\":{\"name\":\"get historical\",\"decl\":{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":103,\"column\":3}},\"loc\":{\"start\":{\"line\":100,\"column\":2},\"end\":{\"line\":103,\"column\":3}},\"line\":100},\"9\":{\"name\":\"get dbType\",\"decl\":{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":108,\"column\":3}},\"loc\":{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":108,\"column\":3}},\"line\":105},\"10\":{\"name\":\"get metadataModel\",\"decl\":{\"start\":{\"line\":110,\"column\":2},\"end\":{\"line\":113,\"column\":3}},\"loc\":{\"start\":{\"line\":110,\"column\":2},\"end\":{\"line\":113,\"column\":3}},\"line\":110},\"11\":{\"name\":\"initCoreTables\",\"decl\":{\"start\":{\"line\":116,\"column\":2},\"end\":{\"line\":146,\"column\":3}},\"loc\":{\"start\":{\"line\":116,\"column\":2},\"end\":{\"line\":146,\"column\":3}},\"line\":116},\"12\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":148,\"column\":2},\"end\":{\"line\":158,\"column\":3}},\"loc\":{\"start\":{\"line\":148,\"column\":2},\"end\":{\"line\":158,\"column\":3}},\"line\":148},\"13\":{\"name\":\"initHotSchemaReloadQueries\",\"decl\":{\"start\":{\"line\":160,\"column\":2},\"end\":{\"line\":183,\"column\":3}},\"loc\":{\"start\":{\"line\":160,\"column\":2},\"end\":{\"line\":183,\"column\":3}},\"line\":160},\"14\":{\"name\":\"syncSchema\",\"decl\":{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":206,\"column\":3}},\"loc\":{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":206,\"column\":3}},\"line\":185},\"15\":{\"name\":\"updateModels\",\"decl\":{\"start\":{\"line\":208,\"column\":2},\"end\":{\"line\":216,\"column\":3}},\"loc\":{\"start\":{\"line\":208,\"column\":2},\"end\":{\"line\":216,\"column\":3}},\"line\":208},\"16\":{\"name\":\"defineModel\",\"decl\":{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":254,\"column\":3}},\"loc\":{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":254,\"column\":3}},\"line\":218},\"17\":{\"name\":\"useDeprecatePoi\",\"decl\":{\"start\":{\"line\":256,\"column\":10},\"end\":{\"line\":260,\"column\":3}},\"loc\":{\"start\":{\"line\":256,\"column\":10},\"end\":{\"line\":260,\"column\":3}},\"line\":256},\"18\":{\"name\":\"getHistoricalStateEnabled\",\"decl\":{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":313,\"column\":3}},\"loc\":{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":313,\"column\":3}},\"line\":262},\"19\":{\"name\":\"setBlockHeight\",\"decl\":{\"start\":{\"line\":314,\"column\":2},\"end\":{\"line\":319,\"column\":3}},\"loc\":{\"start\":{\"line\":314,\"column\":2},\"end\":{\"line\":319,\"column\":3}},\"line\":314},\"20\":{\"name\":\"getOperationMerkleRoot\",\"decl\":{\"start\":{\"line\":321,\"column\":2},\"end\":{\"line\":332,\"column\":3}},\"loc\":{\"start\":{\"line\":321,\"column\":2},\"end\":{\"line\":332,\"column\":3}},\"line\":321},\"21\":{\"name\":\"getAllIndexFields\",\"decl\":{\"start\":{\"line\":334,\"column\":10},\"end\":{\"line\":342,\"column\":3}},\"loc\":{\"start\":{\"line\":334,\"column\":10},\"end\":{\"line\":342,\"column\":3}},\"line\":334},\"22\":{\"name\":\"packEntityFields\",\"decl\":{\"start\":{\"line\":344,\"column\":10},\"end\":{\"line\":375,\"column\":3}},\"loc\":{\"start\":{\"line\":344,\"column\":10},\"end\":{\"line\":375,\"column\":3}},\"line\":344},\"23\":{\"name\":\"rewind\",\"decl\":{\"start\":{\"line\":384,\"column\":2},\"end\":{\"line\":400,\"column\":3}},\"loc\":{\"start\":{\"line\":384,\"column\":2},\"end\":{\"line\":400,\"column\":3}},\"line\":384},\"24\":{\"name\":\"isIndexed\",\"decl\":{\"start\":{\"line\":402,\"column\":2},\"end\":{\"line\":409,\"column\":3}},\"loc\":{\"start\":{\"line\":402,\"column\":2},\"end\":{\"line\":409,\"column\":3}},\"line\":402},\"25\":{\"name\":\"isIndexedHistorical\",\"decl\":{\"start\":{\"line\":411,\"column\":2},\"end\":{\"line\":421,\"column\":3}},\"loc\":{\"start\":{\"line\":411,\"column\":2},\"end\":{\"line\":421,\"column\":3}},\"line\":411},\"26\":{\"name\":\"getStore\",\"decl\":{\"start\":{\"line\":423,\"column\":2},\"end\":{\"line\":425,\"column\":3}},\"loc\":{\"start\":{\"line\":423,\"column\":2},\"end\":{\"line\":425,\"column\":3}},\"line\":423},\"27\":{\"name\":\"batchDeleteAndThenUpdate\",\"decl\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":483,\"column\":1}},\"loc\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":483,\"column\":1}},\"line\":429}},\"f\":{\"0\":414,\"1\":11,\"2\":0,\"3\":32,\"4\":60,\"5\":0,\"6\":0,\"7\":0,\"8\":230,\"9\":52,\"10\":40,\"11\":20,\"12\":20,\"13\":20,\"14\":20,\"15\":32,\"16\":130,\"17\":0,\"18\":20,\"19\":0,\"20\":0,\"21\":32,\"22\":126,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/store/entity.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/store/entity.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":48}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":44}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":13}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":79}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":16}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":83}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":22}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":28}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":36}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":3}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":119}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":38}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":68}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":3}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":31}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":53}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":3}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":1,\"16\":1,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":1,\"22\":1,\"23\":0,\"24\":0,\"25\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"EntityClass\",\"decl\":{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":15,\"column\":3}},\"loc\":{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":15,\"column\":3}},\"line\":11},\"1\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":17,\"column\":9},\"end\":{\"line\":21,\"column\":3}},\"loc\":{\"start\":{\"line\":17,\"column\":9},\"end\":{\"line\":21,\"column\":3}},\"line\":17},\"2\":{\"name\":\"save\",\"decl\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"loc\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"line\":23}},\"f\":{\"0\":0,\"1\":0,\"2\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/store/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/store/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/store/store.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/store/store.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":76}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":43}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":39}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":48}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":51}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":39}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":37}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":34}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":16}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":18}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":17}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":2}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":88}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":16}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":22}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":35}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":56}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":66}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":2}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":38}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":118}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":22}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":33}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":20}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":84}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":26}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":34}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":28}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":3}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":76}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":69}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":18}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":104}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":33}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":61}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":8}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":5}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":3}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":83}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":9}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":69}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":54}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":17}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":76}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":5}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":37}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":19}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":19}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":37}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":25}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":19}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":9}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":69}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":105}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":59}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":116}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":41}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":27}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":7}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":40}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":28}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":79}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":75}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":17}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":97}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":5}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":3}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":119}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":9}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":42}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":29}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":15}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":56}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":90}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":10}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":9}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":0}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":60}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":28}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":37}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":92}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":8}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":95}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":0}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":75}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":17}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":70}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":5}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":3}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":0}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":116}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":9}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":81}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":111}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":89}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":0}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":54}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":17}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":100}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":5}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":3}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":0}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":62}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":71}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":9}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":82}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":0}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":73}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":17}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":78}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":5}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":3}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":62}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":67}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":9}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":84}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":0}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":32}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":75}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":7}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":17}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":69}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":5}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":3}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":62}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":86}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":9}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":92}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":32}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":75}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":7}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":17}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":69}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":5}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":3}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":62}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":59}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":9}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":78}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":0}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":74}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":17}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":79}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":5}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":62}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":66}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":9}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":83}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":29}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":76}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":7}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":17}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":69}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":5}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":3}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":1,\"39\":1,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":1,\"49\":1,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":1,\"58\":1,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":1,\"83\":1,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":1,\"108\":1,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":1,\"120\":1,\"121\":1,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":1,\"131\":1,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":1,\"143\":1,\"144\":1,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":1,\"155\":1,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":1,\"165\":1,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"Store\",\"decl\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":38,\"column\":3}},\"loc\":{\"start\":{\"line\":34,\"column\":2},\"end\":{\"line\":38,\"column\":3}},\"line\":34},\"1\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"loc\":{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"line\":50},\"2\":{\"name\":\"getByField\",\"decl\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"line\":59},\"3\":{\"name\":\"getByFields\",\"decl\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"loc\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"line\":84},\"4\":{\"name\":\"getOneByField\",\"decl\":{\"start\":{\"line\":109,\"column\":2},\"end\":{\"line\":119,\"column\":3}},\"loc\":{\"start\":{\"line\":109,\"column\":2},\"end\":{\"line\":119,\"column\":3}},\"line\":109},\"5\":{\"name\":\"set\",\"decl\":{\"start\":{\"line\":122,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"loc\":{\"start\":{\"line\":122,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"line\":122},\"6\":{\"name\":\"bulkCreate\",\"decl\":{\"start\":{\"line\":132,\"column\":2},\"end\":{\"line\":142,\"column\":3}},\"loc\":{\"start\":{\"line\":132,\"column\":2},\"end\":{\"line\":142,\"column\":3}},\"line\":132},\"7\":{\"name\":\"bulkUpdate\",\"decl\":{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":154,\"column\":3}},\"loc\":{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":154,\"column\":3}},\"line\":145},\"8\":{\"name\":\"remove\",\"decl\":{\"start\":{\"line\":156,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"loc\":{\"start\":{\"line\":156,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"line\":156},\"9\":{\"name\":\"bulkRemove\",\"decl\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":176,\"column\":3}},\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":176,\"column\":3}},\"line\":166},\"10\":{\"name\":\"_Store_queryLimitCheck\",\"decl\":{\"start\":{\"line\":40,\"column\":19},\"end\":{\"line\":48,\"column\":3}},\"loc\":{\"start\":{\"line\":40,\"column\":19},\"end\":{\"line\":48,\"column\":3}},\"line\":40}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/baseCache.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/baseCache.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":69}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":39}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":40}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":44}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":13}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":77}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":38}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":32}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":53}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":40}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":3}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":13}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":77}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":78}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":84}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":71}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":44}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":32}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":7}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":76}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":55}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":62}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":73}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":32}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":7}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":6}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":118}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":41}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":55}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":69}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":28}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":3}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":37}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":29}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":3}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":58}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":47}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":34}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":42}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":46}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":52}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":84}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":54}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":35}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":56}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":6,\"17\":6,\"18\":1,\"19\":1,\"20\":1,\"21\":40,\"22\":40,\"23\":40,\"24\":40,\"25\":0,\"26\":0,\"27\":40,\"28\":20,\"29\":20,\"30\":20,\"31\":20,\"32\":20,\"33\":40,\"34\":40,\"35\":40,\"36\":40,\"37\":40,\"38\":40,\"39\":40,\"40\":40,\"41\":40,\"42\":40,\"43\":40,\"44\":1,\"45\":0,\"46\":0,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":20,\"55\":20,\"56\":20,\"57\":20,\"58\":20,\"59\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":3}},\"locations\":[{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":8},\"end\":{\"line\":44,\"column\":3}},\"locations\":[{\"start\":{\"line\":21,\"column\":8},\"end\":{\"line\":44,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":30},\"end\":{\"line\":34,\"column\":5}},\"locations\":[{\"start\":{\"line\":22,\"column\":30},\"end\":{\"line\":34,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":43},\"end\":{\"line\":27,\"column\":7}},\"locations\":[{\"start\":{\"line\":25,\"column\":43},\"end\":{\"line\":27,\"column\":7}}]},\"4\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":75},\"end\":{\"line\":33,\"column\":7}},\"locations\":[{\"start\":{\"line\":28,\"column\":75},\"end\":{\"line\":33,\"column\":7}}]},\"5\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":34},\"end\":{\"line\":31,\"column\":71}},\"locations\":[{\"start\":{\"line\":31,\"column\":34},\"end\":{\"line\":31,\"column\":71}}]},\"6\":{\"type\":\"branch\",\"line\":40,\"loc\":{\"start\":{\"line\":40,\"column\":31},\"end\":{\"line\":40,\"column\":67}},\"locations\":[{\"start\":{\"line\":40,\"column\":31},\"end\":{\"line\":40,\"column\":67}}]},\"7\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"locations\":[{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":59,\"column\":3}}]}},\"b\":{\"0\":[6],\"1\":[40],\"2\":[40],\"3\":[0],\"4\":[20],\"5\":[20],\"6\":[40],\"7\":[20]},\"fnMap\":{\"0\":{\"name\":\"BaseCacheService\",\"decl\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":3}},\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":3}},\"line\":16},\"1\":{\"name\":\"flushCache\",\"decl\":{\"start\":{\"line\":21,\"column\":8},\"end\":{\"line\":44,\"column\":3}},\"loc\":{\"start\":{\"line\":21,\"column\":8},\"end\":{\"line\":44,\"column\":3}},\"line\":21},\"2\":{\"name\":\"flushCacheGuarded\",\"decl\":{\"start\":{\"line\":22,\"column\":30},\"end\":{\"line\":34,\"column\":5}},\"loc\":{\"start\":{\"line\":22,\"column\":30},\"end\":{\"line\":34,\"column\":5}},\"line\":22},\"3\":{\"name\":\"resetCache\",\"decl\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"line\":45},\"4\":{\"name\":\"beforeApplicationShutdown\",\"decl\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"loc\":{\"start\":{\"line\":54,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"line\":54}},\"f\":{\"0\":6,\"1\":40,\"2\":40,\"3\":0,\"4\":20}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cacheMetadata.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cacheMetadata.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":47}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":37}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":55}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":65}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":38}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":44}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":38}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":85}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":77}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":76}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":82}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":47}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":35}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":47}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":37}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":104}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":53}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":29}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":45}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":12}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":3}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":111}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":30}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":52}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":29}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":58}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":38}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":38}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":7}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":39}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":124}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":51}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":53}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":7}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":57}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":14}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":78}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":34}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":27}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":5}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":61}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":93}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":46}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":14}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":18}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":8}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":7}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":52}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":57}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":17}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":36}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":30}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":20}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":18}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":23}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":6}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":0}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":19}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":21}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":23}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":16}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":6}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":0}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":18}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":3}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":68}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":43}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":39}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":5}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":31}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":31}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":39}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":34}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":5}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":3}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":39}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":50}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":3}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":63}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":60}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":3}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":0}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":57}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":38}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":3}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":0}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":111}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":50}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":85}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":0}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":37}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":7}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":75}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":77}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":32}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":98}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":43}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":48}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":29}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":6}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":3}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":0}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":102}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":50}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":85}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":28}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":81}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":101}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":12}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":25}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":0}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":37}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":7}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":27}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":97}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":39}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":54}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":6}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":29}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":6}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":3}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":68}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":22}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":38}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":22}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":38}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":15}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":107}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":54}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":52}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":16}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":43}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":36}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":119}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":55}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":78}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":13}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":18}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":11}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":37}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":40}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":43}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":41}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":108}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":18}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":11}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":18}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":58}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":9}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":8}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":6}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":3}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":0}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":30}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":47}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":3}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":0}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":72}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":45}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":67}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":57}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":0}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":89}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":67}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":76}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":69}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":134}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":130}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":108}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":97}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":5}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":0}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":23}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":34}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":24}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":44}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":9}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":33}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":59}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":7}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":3}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":0}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":45}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":62}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":54}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":35}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":29}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":32}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":32}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":5}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":3}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":0}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":37}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":50}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":36}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":8}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":34}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":56}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":55}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":7}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":74}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":38}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":5}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":37}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":37}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":32}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":3}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":18,\"30\":18,\"31\":1,\"32\":1,\"33\":61,\"34\":54,\"35\":54,\"36\":54,\"37\":0,\"38\":54,\"39\":0,\"40\":0,\"41\":54,\"42\":61,\"43\":61,\"44\":5,\"45\":5,\"46\":0,\"47\":0,\"48\":5,\"49\":5,\"50\":5,\"51\":5,\"52\":5,\"53\":5,\"54\":56,\"55\":56,\"56\":56,\"57\":1,\"58\":1,\"59\":20,\"60\":20,\"61\":20,\"62\":20,\"63\":20,\"64\":20,\"65\":20,\"66\":0,\"67\":0,\"68\":20,\"69\":20,\"70\":20,\"71\":20,\"72\":20,\"73\":20,\"74\":20,\"75\":20,\"76\":20,\"77\":20,\"78\":20,\"79\":20,\"80\":20,\"81\":20,\"82\":20,\"83\":20,\"84\":1,\"85\":1,\"86\":94,\"87\":76,\"88\":76,\"89\":94,\"90\":94,\"91\":94,\"92\":5,\"93\":5,\"94\":94,\"95\":1,\"96\":1,\"97\":20,\"98\":20,\"99\":1,\"100\":1,\"101\":20,\"102\":20,\"103\":1,\"104\":1,\"105\":7,\"106\":7,\"107\":1,\"108\":1,\"109\":40,\"110\":40,\"111\":40,\"112\":40,\"113\":40,\"114\":40,\"115\":40,\"116\":40,\"117\":40,\"118\":40,\"119\":40,\"120\":40,\"121\":40,\"122\":40,\"123\":40,\"124\":1,\"125\":1,\"126\":2,\"127\":2,\"128\":2,\"129\":2,\"130\":2,\"131\":2,\"132\":2,\"133\":4,\"134\":4,\"135\":2,\"136\":2,\"137\":2,\"138\":2,\"139\":2,\"140\":2,\"141\":2,\"142\":2,\"143\":2,\"144\":2,\"145\":2,\"146\":2,\"147\":1,\"148\":1,\"149\":53,\"150\":53,\"151\":159,\"152\":159,\"153\":53,\"154\":53,\"155\":53,\"156\":53,\"157\":53,\"158\":53,\"159\":53,\"160\":20,\"161\":48,\"162\":0,\"163\":0,\"164\":53,\"165\":53,\"166\":159,\"167\":159,\"168\":106,\"169\":106,\"170\":40,\"171\":40,\"172\":40,\"173\":159,\"174\":0,\"175\":159,\"176\":53,\"177\":53,\"178\":53,\"179\":1,\"180\":1,\"181\":53,\"182\":53,\"183\":1,\"184\":1,\"185\":53,\"186\":53,\"187\":53,\"188\":53,\"189\":53,\"190\":53,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":53,\"199\":53,\"200\":53,\"201\":53,\"202\":53,\"203\":53,\"204\":53,\"205\":53,\"206\":53,\"207\":53,\"208\":1,\"209\":1,\"210\":1,\"211\":1,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":1,\"219\":1,\"220\":53,\"221\":53,\"222\":53,\"223\":53,\"224\":53,\"225\":0,\"226\":53,\"227\":0,\"228\":0,\"229\":0,\"230\":53,\"231\":53,\"232\":53,\"233\":53,\"234\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":31,\"column\":3}},\"locations\":[{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":31,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"locations\":[{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":57,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":29},\"end\":{\"line\":42,\"column\":5}},\"locations\":[{\"start\":{\"line\":34,\"column\":29},\"end\":{\"line\":42,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":28},\"end\":{\"line\":39,\"column\":13}},\"locations\":[{\"start\":{\"line\":37,\"column\":28},\"end\":{\"line\":39,\"column\":13}}]},\"4\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":37},\"end\":{\"line\":41,\"column\":7}},\"locations\":[{\"start\":{\"line\":39,\"column\":37},\"end\":{\"line\":41,\"column\":7}}]},\"5\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":38},\"end\":{\"line\":54,\"column\":5}},\"locations\":[{\"start\":{\"line\":44,\"column\":38},\"end\":{\"line\":54,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":50},\"end\":{\"line\":48,\"column\":7}},\"locations\":[{\"start\":{\"line\":46,\"column\":50},\"end\":{\"line\":48,\"column\":7}}]},\"7\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":70},\"end\":{\"line\":51,\"column\":76}},\"locations\":[{\"start\":{\"line\":51,\"column\":70},\"end\":{\"line\":51,\"column\":76}}]},\"8\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":57,\"column\":3}},\"locations\":[{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":57,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"locations\":[{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":84,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"locations\":[{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":95,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":87,\"loc\":{\"start\":{\"line\":87,\"column\":42},\"end\":{\"line\":89,\"column\":5}},\"locations\":[{\"start\":{\"line\":87,\"column\":42},\"end\":{\"line\":89,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":38},\"end\":{\"line\":94,\"column\":5}},\"locations\":[{\"start\":{\"line\":92,\"column\":38},\"end\":{\"line\":94,\"column\":5}}]},\"13\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"locations\":[{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":98,\"loc\":{\"start\":{\"line\":98,\"column\":17},\"end\":{\"line\":98,\"column\":48}},\"locations\":[{\"start\":{\"line\":98,\"column\":17},\"end\":{\"line\":98,\"column\":48}}]},\"15\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":103,\"column\":3}},\"locations\":[{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":103,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"locations\":[{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":107,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":109,\"loc\":{\"start\":{\"line\":109,\"column\":10},\"end\":{\"line\":124,\"column\":3}},\"locations\":[{\"start\":{\"line\":109,\"column\":10},\"end\":{\"line\":124,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":10},\"end\":{\"line\":147,\"column\":3}},\"locations\":[{\"start\":{\"line\":126,\"column\":10},\"end\":{\"line\":147,\"column\":3}}]},\"19\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":20},\"end\":{\"line\":136,\"column\":24}},\"locations\":[{\"start\":{\"line\":133,\"column\":20},\"end\":{\"line\":136,\"column\":24}}]},\"20\":{\"type\":\"branch\",\"line\":141,\"loc\":{\"start\":{\"line\":141,\"column\":36},\"end\":{\"line\":141,\"column\":87}},\"locations\":[{\"start\":{\"line\":141,\"column\":36},\"end\":{\"line\":141,\"column\":87}}]},\"21\":{\"type\":\"branch\",\"line\":149,\"loc\":{\"start\":{\"line\":149,\"column\":10},\"end\":{\"line\":179,\"column\":3}},\"locations\":[{\"start\":{\"line\":149,\"column\":10},\"end\":{\"line\":179,\"column\":3}}]},\"22\":{\"type\":\"branch\",\"line\":151,\"loc\":{\"start\":{\"line\":151,\"column\":22},\"end\":{\"line\":177,\"column\":7}},\"locations\":[{\"start\":{\"line\":151,\"column\":22},\"end\":{\"line\":177,\"column\":7}}]},\"23\":{\"type\":\"branch\",\"line\":153,\"loc\":{\"start\":{\"line\":153,\"column\":10},\"end\":{\"line\":166,\"column\":11}},\"locations\":[{\"start\":{\"line\":153,\"column\":10},\"end\":{\"line\":166,\"column\":11}}]},\"24\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":35},\"end\":{\"line\":164,\"column\":13}},\"locations\":[{\"start\":{\"line\":160,\"column\":35},\"end\":{\"line\":164,\"column\":13}}]},\"25\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":35},\"end\":{\"line\":162,\"column\":19}},\"locations\":[{\"start\":{\"line\":160,\"column\":35},\"end\":{\"line\":162,\"column\":19}}]},\"26\":{\"type\":\"branch\",\"line\":162,\"loc\":{\"start\":{\"line\":162,\"column\":13},\"end\":{\"line\":164,\"column\":13}},\"locations\":[{\"start\":{\"line\":162,\"column\":13},\"end\":{\"line\":164,\"column\":13}}]},\"27\":{\"type\":\"branch\",\"line\":162,\"loc\":{\"start\":{\"line\":162,\"column\":54},\"end\":{\"line\":164,\"column\":13}},\"locations\":[{\"start\":{\"line\":162,\"column\":54},\"end\":{\"line\":164,\"column\":13}}]},\"28\":{\"type\":\"branch\",\"line\":167,\"loc\":{\"start\":{\"line\":167,\"column\":10},\"end\":{\"line\":167,\"column\":37}},\"locations\":[{\"start\":{\"line\":167,\"column\":10},\"end\":{\"line\":167,\"column\":37}}]},\"29\":{\"type\":\"branch\",\"line\":168,\"loc\":{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":173,\"column\":11}},\"locations\":[{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":173,\"column\":11}}]},\"30\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":35},\"end\":{\"line\":173,\"column\":11}},\"locations\":[{\"start\":{\"line\":170,\"column\":35},\"end\":{\"line\":173,\"column\":11}}]},\"31\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":35},\"end\":{\"line\":170,\"column\":41}},\"locations\":[{\"start\":{\"line\":170,\"column\":35},\"end\":{\"line\":170,\"column\":41}}]},\"32\":{\"type\":\"branch\",\"line\":171,\"loc\":{\"start\":{\"line\":171,\"column\":-1},\"end\":{\"line\":173,\"column\":11}},\"locations\":[{\"start\":{\"line\":171,\"column\":-1},\"end\":{\"line\":173,\"column\":11}}]},\"33\":{\"type\":\"branch\",\"line\":174,\"loc\":{\"start\":{\"line\":174,\"column\":10},\"end\":{\"line\":175,\"column\":58}},\"locations\":[{\"start\":{\"line\":174,\"column\":10},\"end\":{\"line\":175,\"column\":58}}]},\"34\":{\"type\":\"branch\",\"line\":181,\"loc\":{\"start\":{\"line\":181,\"column\":2},\"end\":{\"line\":183,\"column\":3}},\"locations\":[{\"start\":{\"line\":181,\"column\":2},\"end\":{\"line\":183,\"column\":3}}]},\"35\":{\"type\":\"branch\",\"line\":185,\"loc\":{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":208,\"column\":3}},\"locations\":[{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":208,\"column\":3}}]},\"36\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":33},\"end\":{\"line\":191,\"column\":64}},\"locations\":[{\"start\":{\"line\":191,\"column\":33},\"end\":{\"line\":191,\"column\":64}}]},\"37\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":66},\"end\":{\"line\":198,\"column\":5}},\"locations\":[{\"start\":{\"line\":191,\"column\":66},\"end\":{\"line\":198,\"column\":5}}]},\"38\":{\"type\":\"branch\",\"line\":187,\"loc\":{\"start\":{\"line\":187,\"column\":14},\"end\":{\"line\":187,\"column\":66}},\"locations\":[{\"start\":{\"line\":187,\"column\":14},\"end\":{\"line\":187,\"column\":66}}]},\"39\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":11},\"end\":{\"line\":188,\"column\":56}},\"locations\":[{\"start\":{\"line\":188,\"column\":11},\"end\":{\"line\":188,\"column\":56}}]},\"40\":{\"type\":\"branch\",\"line\":190,\"loc\":{\"start\":{\"line\":190,\"column\":49},\"end\":{\"line\":190,\"column\":87}},\"locations\":[{\"start\":{\"line\":190,\"column\":49},\"end\":{\"line\":190,\"column\":87}}]},\"41\":{\"type\":\"branch\",\"line\":220,\"loc\":{\"start\":{\"line\":220,\"column\":2},\"end\":{\"line\":234,\"column\":3}},\"locations\":[{\"start\":{\"line\":220,\"column\":2},\"end\":{\"line\":234,\"column\":3}}]},\"42\":{\"type\":\"branch\",\"line\":224,\"loc\":{\"start\":{\"line\":224,\"column\":31},\"end\":{\"line\":225,\"column\":53}},\"locations\":[{\"start\":{\"line\":224,\"column\":31},\"end\":{\"line\":225,\"column\":53}}]},\"43\":{\"type\":\"branch\",\"line\":225,\"loc\":{\"start\":{\"line\":225,\"column\":53},\"end\":{\"line\":226,\"column\":55}},\"locations\":[{\"start\":{\"line\":225,\"column\":53},\"end\":{\"line\":226,\"column\":55}}]},\"44\":{\"type\":\"branch\",\"line\":227,\"loc\":{\"start\":{\"line\":227,\"column\":6},\"end\":{\"line\":230,\"column\":5}},\"locations\":[{\"start\":{\"line\":227,\"column\":6},\"end\":{\"line\":230,\"column\":5}}]}},\"b\":{\"0\":[18],\"1\":[61],\"2\":[54],\"3\":[0],\"4\":[0],\"5\":[5],\"6\":[0],\"7\":[0],\"8\":[56],\"9\":[20],\"10\":[94],\"11\":[76],\"12\":[5],\"13\":[20],\"14\":[80],\"15\":[20],\"16\":[7],\"17\":[40],\"18\":[2],\"19\":[4],\"20\":[4],\"21\":[53],\"22\":[159],\"23\":[53],\"24\":[48],\"25\":[20],\"26\":[33],\"27\":[0],\"28\":[53],\"29\":[106],\"30\":[96],\"31\":[66],\"32\":[40],\"33\":[0],\"34\":[53],\"35\":[53],\"36\":[0],\"37\":[0],\"38\":[293],\"39\":[233],\"40\":[233],\"41\":[53],\"42\":[0],\"43\":[0],\"44\":[0]},\"fnMap\":{\"0\":{\"name\":\"CacheMetadataModel\",\"decl\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":31,\"column\":3}},\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":31,\"column\":3}},\"line\":29},\"1\":{\"name\":\"find\",\"decl\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"loc\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"line\":33},\"2\":{\"name\":\"findMany\",\"decl\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"line\":59},\"3\":{\"name\":\"set\",\"decl\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"loc\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":95,\"column\":3}},\"line\":86},\"4\":{\"name\":\"setBulk\",\"decl\":{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"loc\":{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"line\":97},\"5\":{\"name\":\"setIncrement\",\"decl\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":103,\"column\":3}},\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":103,\"column\":3}},\"line\":101},\"6\":{\"name\":\"setNewDynamicDatasource\",\"decl\":{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"loc\":{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"line\":105},\"7\":{\"name\":\"incrementJsonbCount\",\"decl\":{\"start\":{\"line\":109,\"column\":10},\"end\":{\"line\":124,\"column\":3}},\"loc\":{\"start\":{\"line\":109,\"column\":10},\"end\":{\"line\":124,\"column\":3}},\"line\":109},\"8\":{\"name\":\"appendDynamicDatasources\",\"decl\":{\"start\":{\"line\":126,\"column\":10},\"end\":{\"line\":147,\"column\":3}},\"loc\":{\"start\":{\"line\":126,\"column\":10},\"end\":{\"line\":147,\"column\":3}},\"line\":126},\"9\":{\"name\":\"makeSet\",\"decl\":{\"start\":{\"line\":133,\"column\":20},\"end\":{\"line\":136,\"column\":24}},\"loc\":{\"start\":{\"line\":133,\"column\":20},\"end\":{\"line\":136,\"column\":24}},\"line\":133},\"10\":{\"name\":\"handleSpecialKeys\",\"decl\":{\"start\":{\"line\":149,\"column\":10},\"end\":{\"line\":179,\"column\":3}},\"loc\":{\"start\":{\"line\":149,\"column\":10},\"end\":{\"line\":179,\"column\":3}},\"line\":149},\"11\":{\"name\":\"get isFlushable\",\"decl\":{\"start\":{\"line\":181,\"column\":2},\"end\":{\"line\":183,\"column\":3}},\"loc\":{\"start\":{\"line\":181,\"column\":2},\"end\":{\"line\":183,\"column\":3}},\"line\":181},\"12\":{\"name\":\"runFlush\",\"decl\":{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":208,\"column\":3}},\"loc\":{\"start\":{\"line\":185,\"column\":2},\"end\":{\"line\":208,\"column\":3}},\"line\":185},\"13\":{\"name\":\"bulkRemove\",\"decl\":{\"start\":{\"line\":212,\"column\":2},\"end\":{\"line\":218,\"column\":3}},\"loc\":{\"start\":{\"line\":212,\"column\":2},\"end\":{\"line\":218,\"column\":3}},\"line\":212},\"14\":{\"name\":\"clear\",\"decl\":{\"start\":{\"line\":220,\"column\":2},\"end\":{\"line\":234,\"column\":3}},\"loc\":{\"start\":{\"line\":220,\"column\":2},\"end\":{\"line\":234,\"column\":3}},\"line\":220}},\"f\":{\"0\":18,\"1\":61,\"2\":20,\"3\":94,\"4\":20,\"5\":20,\"6\":7,\"7\":40,\"8\":2,\"9\":4,\"10\":53,\"11\":53,\"12\":53,\"13\":0,\"14\":53}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cacheModel.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cacheModel.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":67}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":102}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":50}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":67}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":43}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":38}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":51}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":46}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":8}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":22}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":14}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":10}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":15}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":10}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":24}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":11}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":11}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":17}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":25}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":28}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":31}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":75}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":2}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":51}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":13}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":14}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":12}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":18}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":2}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":25}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":70}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":17}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":45}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":3}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":19}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":49}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":51}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":31}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":36}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":56}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":44}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":37}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":29}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":14}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":45}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":39}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":23}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":53}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":77}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":42}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":43}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":5}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":12}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":42}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":49}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":53}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":5}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":52}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":58}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":34}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":5}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":28}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":18}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":115}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":113}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":3}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":49}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":35}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":59}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":31}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":54}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":10}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":26}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":35}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":74}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":9}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":36}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":7}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":13}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":5}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":33}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":81}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":39}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":41}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":37}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":25}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":7}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":20}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":41}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":18}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":36}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":66}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":31}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":12}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":20}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":21}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":47}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":40}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":9}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":7}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":20}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":5}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":33}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":3}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":55}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":36}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":3}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":0}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":19}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":19}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":37}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":14}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":21}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":20}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":5}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":19}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":53}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":46}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":46}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":35}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":22}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":69}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":60}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":43}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":78}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":68}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":59}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":78}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":71}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":75}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":5}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":0}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":37}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":46}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":76}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":59}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":30}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":7}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":0}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":33}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":29}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":38}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":39}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":7}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":0}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":76}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":20}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":34}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":14}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":21}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":20}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":5}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":19}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":22}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":43}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":13}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":31}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":120}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":14}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":11}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":8}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":7}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":0}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":57}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":30}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":49}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":50}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":54}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":7}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":5}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":0}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":111}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":27}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":37}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":28}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":5}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":0}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":67}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":47}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":0}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":9}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":48}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":16}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":59}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":146}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":10}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":30}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":32}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":9}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":0}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":44}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":15}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":16}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":5}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":3}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":0}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":82}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":25}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":34}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":12}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":69}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":26}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":29}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":14}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":41}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":24}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":36}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":82}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":12}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":23}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":0}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":21}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":47}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":9}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":22}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":7}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":5}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":3}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":0}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":55}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":42}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":46}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":5}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":80}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":76}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":50}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":32}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":64}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":86}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":34}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":5}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":37}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":3}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":0}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":52}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":32}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":47}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":5}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":3}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":0}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":83}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":25}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":17}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":67}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":5}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":32}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":47}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":5}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":3}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":0}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":49}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":60}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":59}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":63}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":28}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":34}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":56}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":6}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":37}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":32}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":31}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":84}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":5}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":28}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":26}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":51}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":5}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":3}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":0}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":56}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":50}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":3}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":0}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":30}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":89}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":3}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":0}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":72}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":47}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":51}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":49}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":69}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":74}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":70}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":38}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":26}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":33}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":70}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":85}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":54}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":47}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":40}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":26}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":11}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":9}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":12}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":107}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":92}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":66}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":0}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":110}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":79}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":50}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":40}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":74}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":91}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":72}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":98}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":52}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":18}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":28}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":123}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":14}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":11}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":9}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":7}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":0}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":33}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":25}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":42}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":28}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":81}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":13}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":44}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":96}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":9}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":5}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":49}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":34}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":36}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":9}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":7}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":22}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":3}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":0}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":72}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":80}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":63}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":70}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":6}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":40}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":87}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":47}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":12}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":45}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":53}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":59}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":29}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":7}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":22}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":113}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":7}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":13}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":5}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":3}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":0}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":82}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":12}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":85}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":50}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":27}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":9}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":0}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":19}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":44}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":79}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":64}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":42}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":30}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":9}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":19}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":27}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":6}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":3}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":0}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":40}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":52}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":46}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":19}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":44}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":31}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":37}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":9}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":21}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":118}},\"404\":{\"start\":{\"line\":405,\"column\":0},\"end\":{\"line\":405,\"column\":16}},\"405\":{\"start\":{\"line\":406,\"column\":0},\"end\":{\"line\":406,\"column\":22}},\"406\":{\"start\":{\"line\":407,\"column\":0},\"end\":{\"line\":407,\"column\":37}},\"407\":{\"start\":{\"line\":408,\"column\":0},\"end\":{\"line\":408,\"column\":41}},\"408\":{\"start\":{\"line\":409,\"column\":0},\"end\":{\"line\":409,\"column\":65}},\"409\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":410,\"column\":103}},\"410\":{\"start\":{\"line\":411,\"column\":0},\"end\":{\"line\":411,\"column\":21}},\"411\":{\"start\":{\"line\":412,\"column\":0},\"end\":{\"line\":412,\"column\":13}},\"412\":{\"start\":{\"line\":413,\"column\":0},\"end\":{\"line\":413,\"column\":67}},\"413\":{\"start\":{\"line\":414,\"column\":0},\"end\":{\"line\":414,\"column\":26}},\"414\":{\"start\":{\"line\":415,\"column\":0},\"end\":{\"line\":415,\"column\":42}},\"415\":{\"start\":{\"line\":416,\"column\":0},\"end\":{\"line\":416,\"column\":39}},\"416\":{\"start\":{\"line\":417,\"column\":0},\"end\":{\"line\":417,\"column\":14}},\"417\":{\"start\":{\"line\":418,\"column\":0},\"end\":{\"line\":418,\"column\":40}},\"418\":{\"start\":{\"line\":419,\"column\":0},\"end\":{\"line\":419,\"column\":12}},\"419\":{\"start\":{\"line\":420,\"column\":0},\"end\":{\"line\":420,\"column\":30}},\"420\":{\"start\":{\"line\":421,\"column\":0},\"end\":{\"line\":421,\"column\":8}},\"421\":{\"start\":{\"line\":422,\"column\":0},\"end\":{\"line\":422,\"column\":54}},\"422\":{\"start\":{\"line\":423,\"column\":0},\"end\":{\"line\":423,\"column\":3}},\"423\":{\"start\":{\"line\":424,\"column\":0},\"end\":{\"line\":424,\"column\":0}},\"424\":{\"start\":{\"line\":425,\"column\":0},\"end\":{\"line\":425,\"column\":37}},\"425\":{\"start\":{\"line\":426,\"column\":0},\"end\":{\"line\":426,\"column\":23}},\"426\":{\"start\":{\"line\":427,\"column\":0},\"end\":{\"line\":427,\"column\":25}},\"427\":{\"start\":{\"line\":428,\"column\":0},\"end\":{\"line\":428,\"column\":50}},\"428\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":429,\"column\":54}},\"429\":{\"start\":{\"line\":430,\"column\":0},\"end\":{\"line\":430,\"column\":28}},\"430\":{\"start\":{\"line\":431,\"column\":0},\"end\":{\"line\":431,\"column\":38}},\"431\":{\"start\":{\"line\":432,\"column\":0},\"end\":{\"line\":432,\"column\":13}},\"432\":{\"start\":{\"line\":433,\"column\":0},\"end\":{\"line\":433,\"column\":5}},\"433\":{\"start\":{\"line\":434,\"column\":0},\"end\":{\"line\":434,\"column\":0}},\"434\":{\"start\":{\"line\":435,\"column\":0},\"end\":{\"line\":435,\"column\":23}},\"435\":{\"start\":{\"line\":436,\"column\":0},\"end\":{\"line\":436,\"column\":0}},\"436\":{\"start\":{\"line\":437,\"column\":0},\"end\":{\"line\":437,\"column\":46}},\"437\":{\"start\":{\"line\":438,\"column\":0},\"end\":{\"line\":438,\"column\":81}},\"438\":{\"start\":{\"line\":439,\"column\":0},\"end\":{\"line\":439,\"column\":58}},\"439\":{\"start\":{\"line\":440,\"column\":0},\"end\":{\"line\":440,\"column\":52}},\"440\":{\"start\":{\"line\":441,\"column\":0},\"end\":{\"line\":441,\"column\":22}},\"441\":{\"start\":{\"line\":442,\"column\":0},\"end\":{\"line\":442,\"column\":32}},\"442\":{\"start\":{\"line\":443,\"column\":0},\"end\":{\"line\":443,\"column\":28}},\"443\":{\"start\":{\"line\":444,\"column\":0},\"end\":{\"line\":444,\"column\":7}},\"444\":{\"start\":{\"line\":445,\"column\":0},\"end\":{\"line\":445,\"column\":17}},\"445\":{\"start\":{\"line\":446,\"column\":0},\"end\":{\"line\":446,\"column\":25}},\"446\":{\"start\":{\"line\":447,\"column\":0},\"end\":{\"line\":447,\"column\":0}},\"447\":{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":448,\"column\":87}},\"448\":{\"start\":{\"line\":449,\"column\":0},\"end\":{\"line\":449,\"column\":47}},\"449\":{\"start\":{\"line\":450,\"column\":0},\"end\":{\"line\":450,\"column\":21}},\"450\":{\"start\":{\"line\":451,\"column\":0},\"end\":{\"line\":451,\"column\":25}},\"451\":{\"start\":{\"line\":452,\"column\":0},\"end\":{\"line\":452,\"column\":7}},\"452\":{\"start\":{\"line\":453,\"column\":0},\"end\":{\"line\":453,\"column\":17}},\"453\":{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":454,\"column\":42}},\"454\":{\"start\":{\"line\":455,\"column\":0},\"end\":{\"line\":455,\"column\":0}},\"455\":{\"start\":{\"line\":456,\"column\":0},\"end\":{\"line\":456,\"column\":45}},\"456\":{\"start\":{\"line\":457,\"column\":0},\"end\":{\"line\":457,\"column\":3}},\"457\":{\"start\":{\"line\":458,\"column\":0},\"end\":{\"line\":458,\"column\":0}},\"458\":{\"start\":{\"line\":459,\"column\":0},\"end\":{\"line\":459,\"column\":51}},\"459\":{\"start\":{\"line\":460,\"column\":0},\"end\":{\"line\":460,\"column\":39}},\"460\":{\"start\":{\"line\":461,\"column\":0},\"end\":{\"line\":461,\"column\":100}},\"461\":{\"start\":{\"line\":462,\"column\":0},\"end\":{\"line\":462,\"column\":31}},\"462\":{\"start\":{\"line\":463,\"column\":0},\"end\":{\"line\":463,\"column\":36}},\"463\":{\"start\":{\"line\":464,\"column\":0},\"end\":{\"line\":464,\"column\":54}},\"464\":{\"start\":{\"line\":465,\"column\":0},\"end\":{\"line\":465,\"column\":44}},\"465\":{\"start\":{\"line\":466,\"column\":0},\"end\":{\"line\":466,\"column\":92}},\"466\":{\"start\":{\"line\":467,\"column\":0},\"end\":{\"line\":467,\"column\":25}},\"467\":{\"start\":{\"line\":468,\"column\":0},\"end\":{\"line\":468,\"column\":41}},\"468\":{\"start\":{\"line\":469,\"column\":0},\"end\":{\"line\":469,\"column\":38}},\"469\":{\"start\":{\"line\":470,\"column\":0},\"end\":{\"line\":470,\"column\":9}},\"470\":{\"start\":{\"line\":471,\"column\":0},\"end\":{\"line\":471,\"column\":7}},\"471\":{\"start\":{\"line\":472,\"column\":0},\"end\":{\"line\":472,\"column\":7}},\"472\":{\"start\":{\"line\":473,\"column\":0},\"end\":{\"line\":473,\"column\":29}},\"473\":{\"start\":{\"line\":474,\"column\":0},\"end\":{\"line\":474,\"column\":45}},\"474\":{\"start\":{\"line\":475,\"column\":0},\"end\":{\"line\":475,\"column\":24}},\"475\":{\"start\":{\"line\":476,\"column\":0},\"end\":{\"line\":476,\"column\":5}},\"476\":{\"start\":{\"line\":477,\"column\":0},\"end\":{\"line\":477,\"column\":0}},\"477\":{\"start\":{\"line\":478,\"column\":0},\"end\":{\"line\":478,\"column\":46}},\"478\":{\"start\":{\"line\":479,\"column\":0},\"end\":{\"line\":479,\"column\":10}},\"479\":{\"start\":{\"line\":480,\"column\":0},\"end\":{\"line\":480,\"column\":19}},\"480\":{\"start\":{\"line\":481,\"column\":0},\"end\":{\"line\":481,\"column\":36}},\"481\":{\"start\":{\"line\":482,\"column\":0},\"end\":{\"line\":482,\"column\":31}},\"482\":{\"start\":{\"line\":483,\"column\":0},\"end\":{\"line\":483,\"column\":32}},\"483\":{\"start\":{\"line\":484,\"column\":0},\"end\":{\"line\":484,\"column\":71}},\"484\":{\"start\":{\"line\":485,\"column\":0},\"end\":{\"line\":485,\"column\":42}},\"485\":{\"start\":{\"line\":486,\"column\":0},\"end\":{\"line\":486,\"column\":9}},\"486\":{\"start\":{\"line\":487,\"column\":0},\"end\":{\"line\":487,\"column\":34}},\"487\":{\"start\":{\"line\":488,\"column\":0},\"end\":{\"line\":488,\"column\":7}},\"488\":{\"start\":{\"line\":489,\"column\":0},\"end\":{\"line\":489,\"column\":7}},\"489\":{\"start\":{\"line\":490,\"column\":0},\"end\":{\"line\":490,\"column\":22}},\"490\":{\"start\":{\"line\":491,\"column\":0},\"end\":{\"line\":491,\"column\":3}},\"491\":{\"start\":{\"line\":492,\"column\":0},\"end\":{\"line\":492,\"column\":0}},\"492\":{\"start\":{\"line\":493,\"column\":0},\"end\":{\"line\":493,\"column\":100}},\"493\":{\"start\":{\"line\":494,\"column\":0},\"end\":{\"line\":494,\"column\":73}},\"494\":{\"start\":{\"line\":495,\"column\":0},\"end\":{\"line\":495,\"column\":77}},\"495\":{\"start\":{\"line\":496,\"column\":0},\"end\":{\"line\":496,\"column\":57}},\"496\":{\"start\":{\"line\":497,\"column\":0},\"end\":{\"line\":497,\"column\":20}},\"497\":{\"start\":{\"line\":498,\"column\":0},\"end\":{\"line\":498,\"column\":27}},\"498\":{\"start\":{\"line\":499,\"column\":0},\"end\":{\"line\":499,\"column\":46}},\"499\":{\"start\":{\"line\":500,\"column\":0},\"end\":{\"line\":500,\"column\":20}},\"500\":{\"start\":{\"line\":501,\"column\":0},\"end\":{\"line\":501,\"column\":68}},\"501\":{\"start\":{\"line\":502,\"column\":0},\"end\":{\"line\":502,\"column\":59}},\"502\":{\"start\":{\"line\":503,\"column\":0},\"end\":{\"line\":503,\"column\":42}},\"503\":{\"start\":{\"line\":504,\"column\":0},\"end\":{\"line\":504,\"column\":37}},\"504\":{\"start\":{\"line\":505,\"column\":0},\"end\":{\"line\":505,\"column\":72}},\"505\":{\"start\":{\"line\":506,\"column\":0},\"end\":{\"line\":506,\"column\":7}},\"506\":{\"start\":{\"line\":507,\"column\":0},\"end\":{\"line\":507,\"column\":5}},\"507\":{\"start\":{\"line\":508,\"column\":0},\"end\":{\"line\":508,\"column\":83}},\"508\":{\"start\":{\"line\":509,\"column\":0},\"end\":{\"line\":509,\"column\":53}},\"509\":{\"start\":{\"line\":510,\"column\":0},\"end\":{\"line\":510,\"column\":7}},\"510\":{\"start\":{\"line\":511,\"column\":0},\"end\":{\"line\":511,\"column\":69}},\"511\":{\"start\":{\"line\":512,\"column\":0},\"end\":{\"line\":512,\"column\":0}},\"512\":{\"start\":{\"line\":513,\"column\":0},\"end\":{\"line\":513,\"column\":32}},\"513\":{\"start\":{\"line\":514,\"column\":0},\"end\":{\"line\":514,\"column\":13}},\"514\":{\"start\":{\"line\":515,\"column\":0},\"end\":{\"line\":515,\"column\":5}},\"515\":{\"start\":{\"line\":516,\"column\":0},\"end\":{\"line\":516,\"column\":0}},\"516\":{\"start\":{\"line\":517,\"column\":0},\"end\":{\"line\":517,\"column\":31}},\"517\":{\"start\":{\"line\":518,\"column\":0},\"end\":{\"line\":518,\"column\":120}},\"518\":{\"start\":{\"line\":519,\"column\":0},\"end\":{\"line\":519,\"column\":64}},\"519\":{\"start\":{\"line\":520,\"column\":0},\"end\":{\"line\":520,\"column\":41}},\"520\":{\"start\":{\"line\":521,\"column\":0},\"end\":{\"line\":521,\"column\":106}},\"521\":{\"start\":{\"line\":522,\"column\":0},\"end\":{\"line\":522,\"column\":83}},\"522\":{\"start\":{\"line\":523,\"column\":0},\"end\":{\"line\":523,\"column\":23}},\"523\":{\"start\":{\"line\":524,\"column\":0},\"end\":{\"line\":524,\"column\":6}},\"524\":{\"start\":{\"line\":525,\"column\":0},\"end\":{\"line\":525,\"column\":3}},\"525\":{\"start\":{\"line\":526,\"column\":0},\"end\":{\"line\":526,\"column\":0}},\"526\":{\"start\":{\"line\":527,\"column\":0},\"end\":{\"line\":527,\"column\":38}},\"527\":{\"start\":{\"line\":528,\"column\":0},\"end\":{\"line\":528,\"column\":43}},\"528\":{\"start\":{\"line\":529,\"column\":0},\"end\":{\"line\":529,\"column\":0}},\"529\":{\"start\":{\"line\":530,\"column\":0},\"end\":{\"line\":530,\"column\":21}},\"530\":{\"start\":{\"line\":531,\"column\":0},\"end\":{\"line\":531,\"column\":74}},\"531\":{\"start\":{\"line\":532,\"column\":0},\"end\":{\"line\":532,\"column\":5}},\"532\":{\"start\":{\"line\":533,\"column\":0},\"end\":{\"line\":533,\"column\":0}},\"533\":{\"start\":{\"line\":534,\"column\":0},\"end\":{\"line\":534,\"column\":21}},\"534\":{\"start\":{\"line\":535,\"column\":0},\"end\":{\"line\":535,\"column\":3}},\"535\":{\"start\":{\"line\":536,\"column\":0},\"end\":{\"line\":536,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":38,\"56\":38,\"57\":38,\"58\":38,\"59\":38,\"60\":38,\"61\":38,\"62\":38,\"63\":38,\"64\":38,\"65\":38,\"66\":25,\"67\":25,\"68\":38,\"69\":38,\"70\":18,\"71\":18,\"72\":38,\"73\":1,\"74\":1,\"75\":4,\"76\":4,\"77\":4,\"78\":4,\"79\":1,\"80\":1,\"81\":8,\"82\":8,\"83\":8,\"84\":8,\"85\":3,\"86\":3,\"87\":3,\"88\":3,\"89\":1,\"90\":3,\"91\":1,\"92\":1,\"93\":2,\"94\":2,\"95\":8,\"96\":2,\"97\":2,\"98\":2,\"99\":2,\"100\":0,\"101\":0,\"102\":2,\"103\":2,\"104\":2,\"105\":2,\"106\":2,\"107\":2,\"108\":2,\"109\":2,\"110\":2,\"111\":2,\"112\":2,\"113\":2,\"114\":2,\"115\":2,\"116\":2,\"117\":3,\"118\":3,\"119\":3,\"120\":1,\"121\":1,\"122\":0,\"123\":0,\"124\":1,\"125\":1,\"126\":4,\"127\":4,\"128\":4,\"129\":4,\"130\":4,\"131\":4,\"132\":4,\"133\":4,\"134\":4,\"135\":2,\"136\":2,\"137\":2,\"138\":2,\"139\":0,\"140\":0,\"141\":0,\"142\":2,\"143\":2,\"144\":2,\"145\":2,\"146\":2,\"147\":2,\"148\":4,\"149\":4,\"150\":4,\"151\":4,\"152\":4,\"153\":4,\"154\":4,\"155\":4,\"156\":4,\"157\":4,\"158\":4,\"159\":4,\"160\":4,\"161\":4,\"162\":4,\"163\":4,\"164\":1,\"165\":1,\"166\":3,\"167\":3,\"168\":3,\"169\":3,\"170\":3,\"171\":3,\"172\":3,\"173\":3,\"174\":4,\"175\":4,\"176\":4,\"177\":4,\"178\":4,\"179\":4,\"180\":3,\"181\":3,\"182\":3,\"183\":3,\"184\":1,\"185\":1,\"186\":1,\"187\":1,\"188\":1,\"189\":1,\"190\":1,\"191\":1,\"192\":1,\"193\":1,\"194\":1,\"195\":1,\"196\":1,\"197\":1,\"198\":1,\"199\":1,\"200\":1,\"201\":1,\"202\":1,\"203\":1,\"204\":1,\"205\":3,\"206\":3,\"207\":3,\"208\":1,\"209\":1,\"210\":1,\"211\":1,\"212\":1,\"213\":3,\"214\":1,\"215\":1,\"216\":1,\"217\":0,\"218\":1,\"219\":1,\"220\":1,\"221\":1,\"222\":1,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":1,\"236\":1,\"237\":1,\"238\":1,\"239\":17,\"240\":16,\"241\":16,\"242\":17,\"243\":17,\"244\":17,\"245\":17,\"246\":17,\"247\":17,\"248\":3,\"249\":3,\"250\":17,\"251\":17,\"252\":1,\"253\":1,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":1,\"259\":1,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":1,\"269\":1,\"270\":10,\"271\":10,\"272\":10,\"273\":10,\"274\":10,\"275\":10,\"276\":10,\"277\":10,\"278\":10,\"279\":6,\"280\":6,\"281\":6,\"282\":10,\"283\":6,\"284\":6,\"285\":6,\"286\":10,\"287\":1,\"288\":1,\"289\":0,\"290\":0,\"291\":1,\"292\":1,\"293\":4,\"294\":4,\"295\":1,\"296\":1,\"297\":4,\"298\":4,\"299\":4,\"300\":4,\"301\":4,\"302\":4,\"303\":4,\"304\":4,\"305\":2,\"306\":2,\"307\":2,\"308\":2,\"309\":2,\"310\":2,\"311\":2,\"312\":2,\"313\":2,\"314\":2,\"315\":2,\"316\":2,\"317\":2,\"318\":2,\"319\":2,\"320\":2,\"321\":2,\"322\":2,\"323\":2,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":0,\"333\":0,\"334\":2,\"335\":2,\"336\":2,\"337\":2,\"338\":2,\"339\":2,\"340\":2,\"341\":2,\"342\":2,\"343\":2,\"344\":2,\"345\":2,\"346\":4,\"347\":0,\"348\":0,\"349\":0,\"350\":4,\"351\":4,\"352\":4,\"353\":1,\"354\":1,\"355\":1,\"356\":0,\"357\":0,\"358\":0,\"359\":0,\"360\":0,\"361\":0,\"362\":0,\"363\":0,\"364\":0,\"365\":0,\"366\":0,\"367\":0,\"368\":0,\"369\":0,\"370\":0,\"371\":0,\"372\":0,\"373\":0,\"374\":1,\"375\":1,\"376\":1,\"377\":1,\"378\":2,\"379\":2,\"380\":2,\"381\":2,\"382\":2,\"383\":1,\"384\":1,\"385\":1,\"386\":1,\"387\":1,\"388\":1,\"389\":1,\"390\":1,\"391\":1,\"392\":1,\"393\":1,\"394\":1,\"395\":1,\"396\":6,\"397\":6,\"398\":6,\"399\":8,\"400\":2,\"401\":2,\"402\":6,\"403\":6,\"404\":6,\"405\":6,\"406\":6,\"407\":6,\"408\":6,\"409\":6,\"410\":1,\"411\":1,\"412\":5,\"413\":5,\"414\":5,\"415\":5,\"416\":5,\"417\":5,\"418\":6,\"419\":6,\"420\":6,\"421\":6,\"422\":6,\"423\":1,\"424\":1,\"425\":4,\"426\":3,\"427\":3,\"428\":3,\"429\":3,\"430\":3,\"431\":3,\"432\":3,\"433\":1,\"434\":1,\"435\":1,\"436\":1,\"437\":1,\"438\":1,\"439\":1,\"440\":1,\"441\":0,\"442\":0,\"443\":0,\"444\":1,\"445\":1,\"446\":1,\"447\":1,\"448\":2,\"449\":0,\"450\":0,\"451\":0,\"452\":2,\"453\":1,\"454\":1,\"455\":1,\"456\":1,\"457\":1,\"458\":1,\"459\":1,\"460\":1,\"461\":4,\"462\":4,\"463\":4,\"464\":4,\"465\":2,\"466\":2,\"467\":2,\"468\":2,\"469\":2,\"470\":2,\"471\":4,\"472\":4,\"473\":4,\"474\":0,\"475\":0,\"476\":4,\"477\":4,\"478\":4,\"479\":4,\"480\":4,\"481\":2,\"482\":2,\"483\":2,\"484\":2,\"485\":4,\"486\":0,\"487\":0,\"488\":4,\"489\":4,\"490\":4,\"491\":1,\"492\":1,\"493\":1,\"494\":1,\"495\":1,\"496\":2,\"497\":2,\"498\":2,\"499\":2,\"500\":2,\"501\":2,\"502\":2,\"503\":2,\"504\":2,\"505\":2,\"506\":2,\"507\":2,\"508\":0,\"509\":2,\"510\":2,\"511\":2,\"512\":2,\"513\":0,\"514\":0,\"515\":2,\"516\":2,\"517\":2,\"518\":2,\"519\":2,\"520\":2,\"521\":2,\"522\":2,\"523\":2,\"524\":2,\"525\":1,\"526\":1,\"527\":9,\"528\":9,\"529\":9,\"530\":0,\"531\":0,\"532\":9,\"533\":9,\"534\":9,\"535\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"locations\":[{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":73,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":48},\"end\":{\"line\":68,\"column\":5}},\"locations\":[{\"start\":{\"line\":66,\"column\":48},\"end\":{\"line\":68,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":57},\"end\":{\"line\":72,\"column\":5}},\"locations\":[{\"start\":{\"line\":70,\"column\":57},\"end\":{\"line\":72,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":79,\"column\":3}},\"locations\":[{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":79,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":2},\"end\":{\"line\":120,\"column\":3}},\"locations\":[{\"start\":{\"line\":81,\"column\":2},\"end\":{\"line\":120,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":83,\"loc\":{\"start\":{\"line\":83,\"column\":45},\"end\":{\"line\":83,\"column\":56}},\"locations\":[{\"start\":{\"line\":83,\"column\":45},\"end\":{\"line\":83,\"column\":56}}]},\"6\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":30},\"end\":{\"line\":95,\"column\":5}},\"locations\":[{\"start\":{\"line\":85,\"column\":30},\"end\":{\"line\":95,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":32},\"end\":{\"line\":90,\"column\":74}},\"locations\":[{\"start\":{\"line\":89,\"column\":32},\"end\":{\"line\":90,\"column\":74}}]},\"8\":{\"type\":\"branch\",\"line\":91,\"loc\":{\"start\":{\"line\":91,\"column\":8},\"end\":{\"line\":93,\"column\":7}},\"locations\":[{\"start\":{\"line\":91,\"column\":8},\"end\":{\"line\":93,\"column\":7}}]},\"9\":{\"type\":\"branch\",\"line\":94,\"loc\":{\"start\":{\"line\":94,\"column\":-1},\"end\":{\"line\":95,\"column\":5}},\"locations\":[{\"start\":{\"line\":94,\"column\":-1},\"end\":{\"line\":95,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":-1},\"end\":{\"line\":96,\"column\":32}},\"locations\":[{\"start\":{\"line\":96,\"column\":-1},\"end\":{\"line\":96,\"column\":32}}]},\"11\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":32},\"end\":{\"line\":117,\"column\":5}},\"locations\":[{\"start\":{\"line\":96,\"column\":32},\"end\":{\"line\":117,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":34},\"end\":{\"line\":99,\"column\":40}},\"locations\":[{\"start\":{\"line\":99,\"column\":34},\"end\":{\"line\":99,\"column\":40}}]},\"13\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":25},\"end\":{\"line\":100,\"column\":34}},\"locations\":[{\"start\":{\"line\":100,\"column\":25},\"end\":{\"line\":100,\"column\":34}}]},\"14\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":36},\"end\":{\"line\":102,\"column\":7}},\"locations\":[{\"start\":{\"line\":100,\"column\":36},\"end\":{\"line\":102,\"column\":7}}]},\"15\":{\"type\":\"branch\",\"line\":118,\"loc\":{\"start\":{\"line\":118,\"column\":-1},\"end\":{\"line\":120,\"column\":3}},\"locations\":[{\"start\":{\"line\":118,\"column\":-1},\"end\":{\"line\":120,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"locations\":[{\"start\":{\"line\":126,\"column\":2},\"end\":{\"line\":164,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":135,\"loc\":{\"start\":{\"line\":135,\"column\":45},\"end\":{\"line\":148,\"column\":5}},\"locations\":[{\"start\":{\"line\":135,\"column\":45},\"end\":{\"line\":148,\"column\":5}}]},\"18\":{\"type\":\"branch\",\"line\":139,\"loc\":{\"start\":{\"line\":139,\"column\":68},\"end\":{\"line\":143,\"column\":11}},\"locations\":[{\"start\":{\"line\":139,\"column\":68},\"end\":{\"line\":143,\"column\":11}}]},\"19\":{\"type\":\"branch\",\"line\":158,\"loc\":{\"start\":{\"line\":158,\"column\":16},\"end\":{\"line\":161,\"column\":5}},\"locations\":[{\"start\":{\"line\":158,\"column\":16},\"end\":{\"line\":161,\"column\":5}}]},\"20\":{\"type\":\"branch\",\"line\":163,\"loc\":{\"start\":{\"line\":163,\"column\":41},\"end\":{\"line\":163,\"column\":73}},\"locations\":[{\"start\":{\"line\":163,\"column\":41},\"end\":{\"line\":163,\"column\":73}}]},\"21\":{\"type\":\"branch\",\"line\":166,\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":214,\"column\":3}},\"locations\":[{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":214,\"column\":3}}]},\"22\":{\"type\":\"branch\",\"line\":184,\"loc\":{\"start\":{\"line\":184,\"column\":29},\"end\":{\"line\":206,\"column\":29}},\"locations\":[{\"start\":{\"line\":184,\"column\":29},\"end\":{\"line\":206,\"column\":29}}]},\"23\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":26},\"end\":{\"line\":186,\"column\":47}},\"locations\":[{\"start\":{\"line\":186,\"column\":26},\"end\":{\"line\":186,\"column\":47}}]},\"24\":{\"type\":\"branch\",\"line\":207,\"loc\":{\"start\":{\"line\":207,\"column\":23},\"end\":{\"line\":207,\"column\":31}},\"locations\":[{\"start\":{\"line\":207,\"column\":23},\"end\":{\"line\":207,\"column\":31}}]},\"25\":{\"type\":\"branch\",\"line\":209,\"loc\":{\"start\":{\"line\":209,\"column\":-1},\"end\":{\"line\":213,\"column\":5}},\"locations\":[{\"start\":{\"line\":209,\"column\":-1},\"end\":{\"line\":213,\"column\":5}}]},\"26\":{\"type\":\"branch\",\"line\":174,\"loc\":{\"start\":{\"line\":174,\"column\":19},\"end\":{\"line\":181,\"column\":5}},\"locations\":[{\"start\":{\"line\":174,\"column\":19},\"end\":{\"line\":181,\"column\":5}}]},\"27\":{\"type\":\"branch\",\"line\":204,\"loc\":{\"start\":{\"line\":204,\"column\":31},\"end\":{\"line\":204,\"column\":107}},\"locations\":[{\"start\":{\"line\":204,\"column\":31},\"end\":{\"line\":204,\"column\":107}}]},\"28\":{\"type\":\"branch\",\"line\":210,\"loc\":{\"start\":{\"line\":210,\"column\":25},\"end\":{\"line\":210,\"column\":42}},\"locations\":[{\"start\":{\"line\":210,\"column\":25},\"end\":{\"line\":210,\"column\":42}}]},\"29\":{\"type\":\"branch\",\"line\":216,\"loc\":{\"start\":{\"line\":216,\"column\":2},\"end\":{\"line\":237,\"column\":3}},\"locations\":[{\"start\":{\"line\":216,\"column\":2},\"end\":{\"line\":237,\"column\":3}}]},\"30\":{\"type\":\"branch\",\"line\":217,\"loc\":{\"start\":{\"line\":217,\"column\":24},\"end\":{\"line\":219,\"column\":11}},\"locations\":[{\"start\":{\"line\":217,\"column\":24},\"end\":{\"line\":219,\"column\":11}}]},\"31\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":7},\"end\":{\"line\":235,\"column\":7}},\"locations\":[{\"start\":{\"line\":223,\"column\":7},\"end\":{\"line\":235,\"column\":7}}]},\"32\":{\"type\":\"branch\",\"line\":239,\"loc\":{\"start\":{\"line\":239,\"column\":2},\"end\":{\"line\":252,\"column\":3}},\"locations\":[{\"start\":{\"line\":239,\"column\":2},\"end\":{\"line\":252,\"column\":3}}]},\"33\":{\"type\":\"branch\",\"line\":240,\"loc\":{\"start\":{\"line\":240,\"column\":41},\"end\":{\"line\":242,\"column\":5}},\"locations\":[{\"start\":{\"line\":240,\"column\":41},\"end\":{\"line\":242,\"column\":5}}]},\"34\":{\"type\":\"branch\",\"line\":248,\"loc\":{\"start\":{\"line\":248,\"column\":28},\"end\":{\"line\":248,\"column\":83}},\"locations\":[{\"start\":{\"line\":248,\"column\":28},\"end\":{\"line\":248,\"column\":83}}]},\"35\":{\"type\":\"branch\",\"line\":248,\"loc\":{\"start\":{\"line\":248,\"column\":85},\"end\":{\"line\":250,\"column\":5}},\"locations\":[{\"start\":{\"line\":248,\"column\":85},\"end\":{\"line\":250,\"column\":5}}]},\"36\":{\"type\":\"branch\",\"line\":270,\"loc\":{\"start\":{\"line\":270,\"column\":2},\"end\":{\"line\":287,\"column\":3}},\"locations\":[{\"start\":{\"line\":270,\"column\":2},\"end\":{\"line\":287,\"column\":3}}]},\"37\":{\"type\":\"branch\",\"line\":279,\"loc\":{\"start\":{\"line\":279,\"column\":31},\"end\":{\"line\":282,\"column\":5}},\"locations\":[{\"start\":{\"line\":279,\"column\":31},\"end\":{\"line\":282,\"column\":5}}]},\"38\":{\"type\":\"branch\",\"line\":283,\"loc\":{\"start\":{\"line\":283,\"column\":27},\"end\":{\"line\":286,\"column\":5}},\"locations\":[{\"start\":{\"line\":283,\"column\":27},\"end\":{\"line\":286,\"column\":5}}]},\"39\":{\"type\":\"branch\",\"line\":293,\"loc\":{\"start\":{\"line\":293,\"column\":2},\"end\":{\"line\":295,\"column\":3}},\"locations\":[{\"start\":{\"line\":293,\"column\":2},\"end\":{\"line\":295,\"column\":3}}]},\"40\":{\"type\":\"branch\",\"line\":294,\"loc\":{\"start\":{\"line\":294,\"column\":46},\"end\":{\"line\":294,\"column\":88}},\"locations\":[{\"start\":{\"line\":294,\"column\":46},\"end\":{\"line\":294,\"column\":88}}]},\"41\":{\"type\":\"branch\",\"line\":297,\"loc\":{\"start\":{\"line\":297,\"column\":2},\"end\":{\"line\":353,\"column\":3}},\"locations\":[{\"start\":{\"line\":297,\"column\":2},\"end\":{\"line\":353,\"column\":3}}]},\"42\":{\"type\":\"branch\",\"line\":300,\"loc\":{\"start\":{\"line\":300,\"column\":6},\"end\":{\"line\":300,\"column\":49}},\"locations\":[{\"start\":{\"line\":300,\"column\":6},\"end\":{\"line\":300,\"column\":49}}]},\"43\":{\"type\":\"branch\",\"line\":301,\"loc\":{\"start\":{\"line\":301,\"column\":6},\"end\":{\"line\":301,\"column\":68}},\"locations\":[{\"start\":{\"line\":301,\"column\":6},\"end\":{\"line\":301,\"column\":68}}]},\"44\":{\"type\":\"branch\",\"line\":305,\"loc\":{\"start\":{\"line\":305,\"column\":25},\"end\":{\"line\":346,\"column\":5}},\"locations\":[{\"start\":{\"line\":305,\"column\":25},\"end\":{\"line\":346,\"column\":5}}]},\"45\":{\"type\":\"branch\",\"line\":324,\"loc\":{\"start\":{\"line\":324,\"column\":73},\"end\":{\"line\":334,\"column\":9}},\"locations\":[{\"start\":{\"line\":324,\"column\":73},\"end\":{\"line\":334,\"column\":9}}]},\"46\":{\"type\":\"branch\",\"line\":343,\"loc\":{\"start\":{\"line\":343,\"column\":41},\"end\":{\"line\":344,\"column\":95}},\"locations\":[{\"start\":{\"line\":343,\"column\":41},\"end\":{\"line\":344,\"column\":95}}]},\"47\":{\"type\":\"branch\",\"line\":303,\"loc\":{\"start\":{\"line\":303,\"column\":58},\"end\":{\"line\":303,\"column\":68}},\"locations\":[{\"start\":{\"line\":303,\"column\":58},\"end\":{\"line\":303,\"column\":68}}]},\"48\":{\"type\":\"branch\",\"line\":376,\"loc\":{\"start\":{\"line\":376,\"column\":10},\"end\":{\"line\":393,\"column\":3}},\"locations\":[{\"start\":{\"line\":376,\"column\":10},\"end\":{\"line\":393,\"column\":3}}]},\"49\":{\"type\":\"branch\",\"line\":378,\"loc\":{\"start\":{\"line\":378,\"column\":61},\"end\":{\"line\":384,\"column\":7}},\"locations\":[{\"start\":{\"line\":378,\"column\":61},\"end\":{\"line\":384,\"column\":7}}]},\"50\":{\"type\":\"branch\",\"line\":385,\"loc\":{\"start\":{\"line\":385,\"column\":55},\"end\":{\"line\":391,\"column\":7}},\"locations\":[{\"start\":{\"line\":385,\"column\":55},\"end\":{\"line\":391,\"column\":7}}]},\"51\":{\"type\":\"branch\",\"line\":396,\"loc\":{\"start\":{\"line\":396,\"column\":10},\"end\":{\"line\":423,\"column\":3}},\"locations\":[{\"start\":{\"line\":396,\"column\":10},\"end\":{\"line\":423,\"column\":3}}]},\"52\":{\"type\":\"branch\",\"line\":399,\"loc\":{\"start\":{\"line\":399,\"column\":36},\"end\":{\"line\":421,\"column\":7}},\"locations\":[{\"start\":{\"line\":399,\"column\":36},\"end\":{\"line\":421,\"column\":7}}]},\"53\":{\"type\":\"branch\",\"line\":400,\"loc\":{\"start\":{\"line\":400,\"column\":30},\"end\":{\"line\":402,\"column\":9}},\"locations\":[{\"start\":{\"line\":400,\"column\":30},\"end\":{\"line\":402,\"column\":9}}]},\"54\":{\"type\":\"branch\",\"line\":403,\"loc\":{\"start\":{\"line\":403,\"column\":-1},\"end\":{\"line\":421,\"column\":7}},\"locations\":[{\"start\":{\"line\":403,\"column\":-1},\"end\":{\"line\":421,\"column\":7}}]},\"55\":{\"type\":\"branch\",\"line\":407,\"loc\":{\"start\":{\"line\":407,\"column\":15},\"end\":{\"line\":419,\"column\":11}},\"locations\":[{\"start\":{\"line\":407,\"column\":15},\"end\":{\"line\":419,\"column\":11}}]},\"56\":{\"type\":\"branch\",\"line\":410,\"loc\":{\"start\":{\"line\":410,\"column\":39},\"end\":{\"line\":410,\"column\":100}},\"locations\":[{\"start\":{\"line\":410,\"column\":39},\"end\":{\"line\":410,\"column\":100}}]},\"57\":{\"type\":\"branch\",\"line\":410,\"loc\":{\"start\":{\"line\":410,\"column\":102},\"end\":{\"line\":412,\"column\":13}},\"locations\":[{\"start\":{\"line\":410,\"column\":102},\"end\":{\"line\":412,\"column\":13}}]},\"58\":{\"type\":\"branch\",\"line\":413,\"loc\":{\"start\":{\"line\":413,\"column\":-1},\"end\":{\"line\":419,\"column\":11}},\"locations\":[{\"start\":{\"line\":413,\"column\":-1},\"end\":{\"line\":419,\"column\":11}}]},\"59\":{\"type\":\"branch\",\"line\":420,\"loc\":{\"start\":{\"line\":420,\"column\":18},\"end\":{\"line\":420,\"column\":28}},\"locations\":[{\"start\":{\"line\":420,\"column\":18},\"end\":{\"line\":420,\"column\":28}}]},\"60\":{\"type\":\"branch\",\"line\":425,\"loc\":{\"start\":{\"line\":425,\"column\":2},\"end\":{\"line\":457,\"column\":3}},\"locations\":[{\"start\":{\"line\":425,\"column\":2},\"end\":{\"line\":457,\"column\":3}}]},\"61\":{\"type\":\"branch\",\"line\":426,\"loc\":{\"start\":{\"line\":426,\"column\":22},\"end\":{\"line\":433,\"column\":5}},\"locations\":[{\"start\":{\"line\":426,\"column\":22},\"end\":{\"line\":433,\"column\":5}}]},\"62\":{\"type\":\"branch\",\"line\":434,\"loc\":{\"start\":{\"line\":434,\"column\":-1},\"end\":{\"line\":457,\"column\":3}},\"locations\":[{\"start\":{\"line\":434,\"column\":-1},\"end\":{\"line\":457,\"column\":3}}]},\"63\":{\"type\":\"branch\",\"line\":438,\"loc\":{\"start\":{\"line\":438,\"column\":57},\"end\":{\"line\":446,\"column\":5}},\"locations\":[{\"start\":{\"line\":438,\"column\":57},\"end\":{\"line\":446,\"column\":5}}]},\"64\":{\"type\":\"branch\",\"line\":441,\"loc\":{\"start\":{\"line\":441,\"column\":21},\"end\":{\"line\":444,\"column\":7}},\"locations\":[{\"start\":{\"line\":441,\"column\":21},\"end\":{\"line\":444,\"column\":7}}]},\"65\":{\"type\":\"branch\",\"line\":448,\"loc\":{\"start\":{\"line\":448,\"column\":63},\"end\":{\"line\":454,\"column\":5}},\"locations\":[{\"start\":{\"line\":448,\"column\":63},\"end\":{\"line\":454,\"column\":5}}]},\"66\":{\"type\":\"branch\",\"line\":449,\"loc\":{\"start\":{\"line\":449,\"column\":46},\"end\":{\"line\":452,\"column\":7}},\"locations\":[{\"start\":{\"line\":449,\"column\":46},\"end\":{\"line\":452,\"column\":7}}]},\"67\":{\"type\":\"branch\",\"line\":461,\"loc\":{\"start\":{\"line\":461,\"column\":10},\"end\":{\"line\":491,\"column\":3}},\"locations\":[{\"start\":{\"line\":461,\"column\":10},\"end\":{\"line\":491,\"column\":3}}]},\"68\":{\"type\":\"branch\",\"line\":474,\"loc\":{\"start\":{\"line\":474,\"column\":15},\"end\":{\"line\":474,\"column\":42}},\"locations\":[{\"start\":{\"line\":474,\"column\":15},\"end\":{\"line\":474,\"column\":42}}]},\"69\":{\"type\":\"branch\",\"line\":474,\"loc\":{\"start\":{\"line\":474,\"column\":44},\"end\":{\"line\":476,\"column\":5}},\"locations\":[{\"start\":{\"line\":474,\"column\":44},\"end\":{\"line\":476,\"column\":5}}]},\"70\":{\"type\":\"branch\",\"line\":464,\"loc\":{\"start\":{\"line\":464,\"column\":38},\"end\":{\"line\":472,\"column\":5}},\"locations\":[{\"start\":{\"line\":464,\"column\":38},\"end\":{\"line\":472,\"column\":5}}]},\"71\":{\"type\":\"branch\",\"line\":465,\"loc\":{\"start\":{\"line\":465,\"column\":43},\"end\":{\"line\":471,\"column\":7}},\"locations\":[{\"start\":{\"line\":465,\"column\":43},\"end\":{\"line\":471,\"column\":7}}]},\"72\":{\"type\":\"branch\",\"line\":466,\"loc\":{\"start\":{\"line\":466,\"column\":54},\"end\":{\"line\":466,\"column\":65}},\"locations\":[{\"start\":{\"line\":466,\"column\":54},\"end\":{\"line\":466,\"column\":65}}]},\"73\":{\"type\":\"branch\",\"line\":478,\"loc\":{\"start\":{\"line\":478,\"column\":26},\"end\":{\"line\":489,\"column\":5}},\"locations\":[{\"start\":{\"line\":478,\"column\":26},\"end\":{\"line\":489,\"column\":5}}]},\"74\":{\"type\":\"branch\",\"line\":481,\"loc\":{\"start\":{\"line\":481,\"column\":33},\"end\":{\"line\":485,\"column\":42}},\"locations\":[{\"start\":{\"line\":481,\"column\":33},\"end\":{\"line\":485,\"column\":42}}]},\"75\":{\"type\":\"branch\",\"line\":484,\"loc\":{\"start\":{\"line\":484,\"column\":31},\"end\":{\"line\":484,\"column\":67}},\"locations\":[{\"start\":{\"line\":484,\"column\":31},\"end\":{\"line\":484,\"column\":67}}]},\"76\":{\"type\":\"branch\",\"line\":486,\"loc\":{\"start\":{\"line\":486,\"column\":8},\"end\":{\"line\":488,\"column\":7}},\"locations\":[{\"start\":{\"line\":486,\"column\":8},\"end\":{\"line\":488,\"column\":7}}]},\"77\":{\"type\":\"branch\",\"line\":496,\"loc\":{\"start\":{\"line\":496,\"column\":10},\"end\":{\"line\":525,\"column\":3}},\"locations\":[{\"start\":{\"line\":496,\"column\":10},\"end\":{\"line\":525,\"column\":3}}]},\"78\":{\"type\":\"branch\",\"line\":513,\"loc\":{\"start\":{\"line\":513,\"column\":31},\"end\":{\"line\":515,\"column\":5}},\"locations\":[{\"start\":{\"line\":513,\"column\":31},\"end\":{\"line\":515,\"column\":5}}]},\"79\":{\"type\":\"branch\",\"line\":519,\"loc\":{\"start\":{\"line\":519,\"column\":58},\"end\":{\"line\":520,\"column\":41}},\"locations\":[{\"start\":{\"line\":519,\"column\":58},\"end\":{\"line\":520,\"column\":41}}]},\"80\":{\"type\":\"branch\",\"line\":521,\"loc\":{\"start\":{\"line\":521,\"column\":57},\"end\":{\"line\":521,\"column\":77}},\"locations\":[{\"start\":{\"line\":521,\"column\":57},\"end\":{\"line\":521,\"column\":77}}]},\"81\":{\"type\":\"branch\",\"line\":527,\"loc\":{\"start\":{\"line\":527,\"column\":2},\"end\":{\"line\":535,\"column\":3}},\"locations\":[{\"start\":{\"line\":527,\"column\":2},\"end\":{\"line\":535,\"column\":3}}]},\"82\":{\"type\":\"branch\",\"line\":530,\"loc\":{\"start\":{\"line\":530,\"column\":20},\"end\":{\"line\":532,\"column\":5}},\"locations\":[{\"start\":{\"line\":530,\"column\":20},\"end\":{\"line\":532,\"column\":5}}]}},\"b\":{\"0\":[38],\"1\":[25],\"2\":[18],\"3\":[4],\"4\":[8],\"5\":[5],\"6\":[3],\"7\":[1],\"8\":[1],\"9\":[2],\"10\":[5],\"11\":[2],\"12\":[0],\"13\":[0],\"14\":[0],\"15\":[3],\"16\":[4],\"17\":[2],\"18\":[0],\"19\":[4],\"20\":[4],\"21\":[3],\"22\":[1],\"23\":[0],\"24\":[1],\"25\":[1],\"26\":[4],\"27\":[2],\"28\":[1],\"29\":[1],\"30\":[0],\"31\":[0],\"32\":[17],\"33\":[16],\"34\":[5],\"35\":[3],\"36\":[10],\"37\":[6],\"38\":[6],\"39\":[4],\"40\":[3],\"41\":[4],\"42\":[1],\"43\":[3],\"44\":[2],\"45\":[0],\"46\":[0],\"47\":[4],\"48\":[1],\"49\":[2],\"50\":[1],\"51\":[6],\"52\":[8],\"53\":[2],\"54\":[6],\"55\":[6],\"56\":[2],\"57\":[1],\"58\":[5],\"59\":[6],\"60\":[4],\"61\":[3],\"62\":[1],\"63\":[1],\"64\":[0],\"65\":[2],\"66\":[0],\"67\":[4],\"68\":[0],\"69\":[0],\"70\":[4],\"71\":[2],\"72\":[0],\"73\":[4],\"74\":[2],\"75\":[0],\"76\":[0],\"77\":[2],\"78\":[0],\"79\":[2],\"80\":[2],\"81\":[9],\"82\":[0]},\"fnMap\":{\"0\":{\"name\":\"CachedModel\",\"decl\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"loc\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"line\":55},\"1\":{\"name\":\"allCachedIds\",\"decl\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":79,\"column\":3}},\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":79,\"column\":3}},\"line\":75},\"2\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":81,\"column\":2},\"end\":{\"line\":120,\"column\":3}},\"loc\":{\"start\":{\"line\":81,\"column\":2},\"end\":{\"line\":120,\"column\":3}},\"line\":81},\"3\":{\"name\":\"addExporterStore\",\"decl\":{\"start\":{\"line\":122,\"column\":2},\"end\":{\"line\":124,\"column\":3}},\"loc\":{\"start\":{\"line\":122,\"column\":2},\"end\":{\"line\":124,\"column\":3}},\"line\":122},\"4\":{\"name\":\"getByField\",\"decl\":{\"start\":{\"line\":126,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"loc\":{\"start\":{\"line\":126,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"line\":126},\"5\":{\"name\":\"getByFields\",\"decl\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":214,\"column\":3}},\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":214,\"column\":3}},\"line\":166},\"6\":{\"name\":\"getOneByField\",\"decl\":{\"start\":{\"line\":216,\"column\":2},\"end\":{\"line\":237,\"column\":3}},\"loc\":{\"start\":{\"line\":216,\"column\":2},\"end\":{\"line\":237,\"column\":3}},\"line\":216},\"7\":{\"name\":\"set\",\"decl\":{\"start\":{\"line\":239,\"column\":2},\"end\":{\"line\":252,\"column\":3}},\"loc\":{\"start\":{\"line\":239,\"column\":2},\"end\":{\"line\":252,\"column\":3}},\"line\":239},\"8\":{\"name\":\"bulkCreate\",\"decl\":{\"start\":{\"line\":254,\"column\":2},\"end\":{\"line\":258,\"column\":3}},\"loc\":{\"start\":{\"line\":254,\"column\":2},\"end\":{\"line\":258,\"column\":3}},\"line\":254},\"9\":{\"name\":\"bulkUpdate\",\"decl\":{\"start\":{\"line\":260,\"column\":2},\"end\":{\"line\":268,\"column\":3}},\"loc\":{\"start\":{\"line\":260,\"column\":2},\"end\":{\"line\":268,\"column\":3}},\"line\":260},\"10\":{\"name\":\"remove\",\"decl\":{\"start\":{\"line\":270,\"column\":2},\"end\":{\"line\":287,\"column\":3}},\"loc\":{\"start\":{\"line\":270,\"column\":2},\"end\":{\"line\":287,\"column\":3}},\"line\":270},\"11\":{\"name\":\"bulkRemove\",\"decl\":{\"start\":{\"line\":289,\"column\":2},\"end\":{\"line\":291,\"column\":3}},\"loc\":{\"start\":{\"line\":289,\"column\":2},\"end\":{\"line\":291,\"column\":3}},\"line\":289},\"12\":{\"name\":\"get isFlushable\",\"decl\":{\"start\":{\"line\":293,\"column\":2},\"end\":{\"line\":295,\"column\":3}},\"loc\":{\"start\":{\"line\":293,\"column\":2},\"end\":{\"line\":295,\"column\":3}},\"line\":293},\"13\":{\"name\":\"runFlush\",\"decl\":{\"start\":{\"line\":297,\"column\":2},\"end\":{\"line\":353,\"column\":3}},\"loc\":{\"start\":{\"line\":297,\"column\":2},\"end\":{\"line\":353,\"column\":3}},\"line\":297},\"14\":{\"name\":\"flushOperation\",\"decl\":{\"start\":{\"line\":356,\"column\":2},\"end\":{\"line\":374,\"column\":3}},\"loc\":{\"start\":{\"line\":356,\"column\":2},\"end\":{\"line\":374,\"column\":3}},\"line\":356},\"15\":{\"name\":\"filterRecordsWithHeight\",\"decl\":{\"start\":{\"line\":376,\"column\":10},\"end\":{\"line\":393,\"column\":3}},\"loc\":{\"start\":{\"line\":376,\"column\":10},\"end\":{\"line\":393,\"column\":3}},\"line\":376},\"16\":{\"name\":\"applyBlockRange\",\"decl\":{\"start\":{\"line\":396,\"column\":10},\"end\":{\"line\":423,\"column\":3}},\"loc\":{\"start\":{\"line\":396,\"column\":10},\"end\":{\"line\":423,\"column\":3}},\"line\":396},\"17\":{\"name\":\"clear\",\"decl\":{\"start\":{\"line\":425,\"column\":2},\"end\":{\"line\":457,\"column\":3}},\"loc\":{\"start\":{\"line\":425,\"column\":2},\"end\":{\"line\":457,\"column\":3}},\"line\":425},\"18\":{\"name\":\"getFromCache\",\"decl\":{\"start\":{\"line\":461,\"column\":10},\"end\":{\"line\":491,\"column\":3}},\"loc\":{\"start\":{\"line\":461,\"column\":10},\"end\":{\"line\":491,\"column\":3}},\"line\":461},\"19\":{\"name\":\"historicalMarkPreviousHeightRecordsBatch\",\"decl\":{\"start\":{\"line\":496,\"column\":10},\"end\":{\"line\":525,\"column\":3}},\"loc\":{\"start\":{\"line\":496,\"column\":10},\"end\":{\"line\":525,\"column\":3}},\"line\":496},\"20\":{\"name\":\"get sequelize\",\"decl\":{\"start\":{\"line\":527,\"column\":2},\"end\":{\"line\":535,\"column\":3}},\"loc\":{\"start\":{\"line\":527,\"column\":2},\"end\":{\"line\":535,\"column\":3}},\"line\":527}},\"f\":{\"0\":38,\"1\":4,\"2\":8,\"3\":0,\"4\":4,\"5\":3,\"6\":1,\"7\":17,\"8\":0,\"9\":0,\"10\":10,\"11\":0,\"12\":4,\"13\":4,\"14\":0,\"15\":1,\"16\":6,\"17\":4,\"18\":4,\"19\":2,\"20\":9}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cachePoi.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cachePoi.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":50}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":47}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":39}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":50}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":60}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":38}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":44}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":37}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":91}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":54}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":29}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":39}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":40}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":12}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":50}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":3}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":44}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":33}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":42}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":65}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":7}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":37}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":45}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":7}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":43}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":57}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":7}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":38}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":5}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":3}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":30}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":50}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":3}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":82}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":77}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":23}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":59}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":24}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":50}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":9}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":7}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":3}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":37}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":23}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":25}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":38}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":13}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":5}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":46}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":59}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":57}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":36}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":37}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":7}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":5}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":34}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":71}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":3}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":27}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":24}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":59}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":30}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":37}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":66}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":53}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":34}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":79}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":31}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":43}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":68}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":67}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":32}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":26}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":5}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":93}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":45}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":5,\"20\":5,\"21\":5,\"22\":1,\"23\":1,\"24\":8,\"25\":27,\"26\":27,\"27\":27,\"28\":27,\"29\":0,\"30\":0,\"31\":27,\"32\":0,\"33\":0,\"34\":27,\"35\":27,\"36\":8,\"37\":1,\"38\":1,\"39\":0,\"40\":0,\"41\":1,\"42\":1,\"43\":3,\"44\":3,\"45\":3,\"46\":3,\"47\":3,\"48\":3,\"49\":3,\"50\":3,\"51\":1,\"52\":1,\"53\":5,\"54\":4,\"55\":4,\"56\":4,\"57\":4,\"58\":1,\"59\":1,\"60\":5,\"61\":3,\"62\":1,\"63\":1,\"64\":3,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":3,\"71\":3,\"72\":3,\"73\":3,\"74\":3,\"75\":3,\"76\":3,\"77\":3,\"78\":3,\"79\":3,\"80\":3,\"81\":3,\"82\":3,\"83\":3,\"84\":3,\"85\":3,\"86\":1,\"87\":1,\"88\":2,\"89\":2,\"90\":2,\"91\":2,\"92\":2,\"93\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":22,\"column\":3}},\"locations\":[{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":22,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":37,\"column\":3}},\"locations\":[{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":37,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":32},\"end\":{\"line\":36,\"column\":5}},\"locations\":[{\"start\":{\"line\":25,\"column\":32},\"end\":{\"line\":36,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":36},\"end\":{\"line\":31,\"column\":7}},\"locations\":[{\"start\":{\"line\":29,\"column\":36},\"end\":{\"line\":31,\"column\":7}}]},\"4\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":42},\"end\":{\"line\":34,\"column\":7}},\"locations\":[{\"start\":{\"line\":32,\"column\":42},\"end\":{\"line\":34,\"column\":7}}]},\"5\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":12},\"end\":{\"line\":51,\"column\":3}},\"locations\":[{\"start\":{\"line\":43,\"column\":12},\"end\":{\"line\":51,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":68,\"column\":3}},\"locations\":[{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":68,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":22},\"end\":{\"line\":58,\"column\":5}},\"locations\":[{\"start\":{\"line\":54,\"column\":22},\"end\":{\"line\":58,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":-1},\"end\":{\"line\":61,\"column\":56}},\"locations\":[{\"start\":{\"line\":59,\"column\":-1},\"end\":{\"line\":61,\"column\":56}}]},\"9\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":56},\"end\":{\"line\":65,\"column\":5}},\"locations\":[{\"start\":{\"line\":61,\"column\":56},\"end\":{\"line\":65,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":35},\"end\":{\"line\":64,\"column\":7}},\"locations\":[{\"start\":{\"line\":62,\"column\":35},\"end\":{\"line\":64,\"column\":7}}]},\"11\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":-1},\"end\":{\"line\":68,\"column\":3}},\"locations\":[{\"start\":{\"line\":66,\"column\":-1},\"end\":{\"line\":68,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"locations\":[{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":93,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":31},\"end\":{\"line\":88,\"column\":5}},\"locations\":[{\"start\":{\"line\":86,\"column\":31},\"end\":{\"line\":88,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":-1},\"end\":{\"line\":93,\"column\":3}},\"locations\":[{\"start\":{\"line\":89,\"column\":-1},\"end\":{\"line\":93,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":12},\"end\":{\"line\":78,\"column\":33}},\"locations\":[{\"start\":{\"line\":78,\"column\":12},\"end\":{\"line\":78,\"column\":33}}]},\"16\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":14},\"end\":{\"line\":79,\"column\":78}},\"locations\":[{\"start\":{\"line\":79,\"column\":14},\"end\":{\"line\":79,\"column\":78}}]},\"17\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":44},\"end\":{\"line\":79,\"column\":78}},\"locations\":[{\"start\":{\"line\":79,\"column\":44},\"end\":{\"line\":79,\"column\":78}}]}},\"b\":{\"0\":[5],\"1\":[8],\"2\":[27],\"3\":[0],\"4\":[0],\"5\":[3],\"6\":[5],\"7\":[4],\"8\":[1],\"9\":[3],\"10\":[1],\"11\":[1],\"12\":[3],\"13\":[1],\"14\":[2],\"15\":[6],\"16\":[9],\"17\":[4]},\"fnMap\":{\"0\":{\"name\":\"CachePoiModel\",\"decl\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":22,\"column\":3}},\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":22,\"column\":3}},\"line\":19},\"1\":{\"name\":\"bulkUpsert\",\"decl\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":37,\"column\":3}},\"loc\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":37,\"column\":3}},\"line\":24},\"2\":{\"name\":\"get isFlushable\",\"decl\":{\"start\":{\"line\":39,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"loc\":{\"start\":{\"line\":39,\"column\":2},\"end\":{\"line\":41,\"column\":3}},\"line\":39},\"3\":{\"name\":\"runFlush\",\"decl\":{\"start\":{\"line\":43,\"column\":12},\"end\":{\"line\":51,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":12},\"end\":{\"line\":51,\"column\":3}},\"line\":43},\"4\":{\"name\":\"clear\",\"decl\":{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":68,\"column\":3}},\"loc\":{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":68,\"column\":3}},\"line\":53},\"5\":{\"name\":\"getPoiBlocksBefore\",\"decl\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"loc\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"line\":70}},\"f\":{\"0\":5,\"1\":8,\"2\":0,\"3\":3,\"4\":5,\"5\":3}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cacheable.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/cacheable.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":47}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":34}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":33}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":32}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":45}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":84}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":69}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":47}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":9}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":28}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":18}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":9}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":58}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":63}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":57}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":30}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":25}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":17}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":16}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":14}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":5}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":3}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":23,\"7\":23,\"8\":23,\"9\":23,\"10\":23,\"11\":23,\"12\":23,\"13\":56,\"14\":56,\"15\":56,\"16\":56,\"17\":56,\"18\":56,\"19\":56,\"20\":56,\"21\":56,\"22\":56,\"23\":56,\"24\":56,\"25\":56,\"26\":56,\"27\":0,\"28\":0,\"29\":0,\"30\":56,\"31\":23},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":7,\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"locations\":[{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":32,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":13,\"loc\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":31,\"column\":3}},\"locations\":[{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":31,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":6},\"end\":{\"line\":30,\"column\":5}},\"locations\":[{\"start\":{\"line\":27,\"column\":6},\"end\":{\"line\":30,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":17,\"loc\":{\"start\":{\"line\":17,\"column\":21},\"end\":{\"line\":19,\"column\":7}},\"locations\":[{\"start\":{\"line\":17,\"column\":21},\"end\":{\"line\":19,\"column\":7}}]}},\"b\":{\"0\":[23],\"1\":[56],\"2\":[0],\"3\":[56]},\"fnMap\":{\"0\":{\"name\":\"Cacheable\",\"decl\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"line\":7},\"1\":{\"name\":\"flush\",\"decl\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":31,\"column\":3}},\"loc\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":31,\"column\":3}},\"line\":13}},\"f\":{\"0\":23,\"1\":56}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/csvStore.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/csvStore.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":33}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":53}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":39}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":33}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":37}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":50}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":30}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":39}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":47}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":70}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":81}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":86}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":50}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":7}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":48}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":3}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":36}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":54}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":38}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":59}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":5}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":51}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":63}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":5}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":69}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":45}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":20}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":3}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":47}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":22}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":13}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":26}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":25}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":57}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":44}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":20}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":27}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":44}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":14}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":11}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":27}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":10}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":21}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":51}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":54}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":26}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":30}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":22}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":35}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":15}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":15}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":13}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":10}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":6}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":35}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":37}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":45}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":66}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":18}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":9}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":33}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":56}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":7}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":2,\"17\":2,\"18\":2,\"19\":0,\"20\":0,\"21\":2,\"22\":2,\"23\":2,\"24\":1,\"25\":1,\"26\":2,\"27\":2,\"28\":0,\"29\":0,\"30\":2,\"31\":0,\"32\":0,\"33\":2,\"34\":2,\"35\":2,\"36\":2,\"37\":2,\"38\":1,\"39\":3,\"40\":3,\"41\":3,\"42\":3,\"43\":3,\"44\":3,\"45\":2,\"46\":2,\"47\":2,\"48\":2,\"49\":2,\"50\":1,\"51\":3,\"52\":3,\"53\":3,\"54\":3,\"55\":3,\"56\":0,\"57\":3,\"58\":3,\"59\":3,\"60\":3,\"61\":3,\"62\":3,\"63\":3,\"64\":3,\"65\":1,\"66\":1,\"67\":2,\"68\":2,\"69\":2,\"70\":2,\"71\":2,\"72\":2,\"73\":2,\"74\":2,\"75\":2,\"76\":2,\"77\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"locations\":[{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":24,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":10},\"end\":{\"line\":38,\"column\":3}},\"locations\":[{\"start\":{\"line\":26,\"column\":10},\"end\":{\"line\":38,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":37},\"end\":{\"line\":30,\"column\":5}},\"locations\":[{\"start\":{\"line\":28,\"column\":37},\"end\":{\"line\":30,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":50},\"end\":{\"line\":33,\"column\":5}},\"locations\":[{\"start\":{\"line\":31,\"column\":50},\"end\":{\"line\":33,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"locations\":[{\"start\":{\"line\":39,\"column\":2},\"end\":{\"line\":65,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":13},\"end\":{\"line\":52,\"column\":9}},\"locations\":[{\"start\":{\"line\":42,\"column\":13},\"end\":{\"line\":52,\"column\":9}}]},\"6\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":43},\"end\":{\"line\":50,\"column\":11}},\"locations\":[{\"start\":{\"line\":45,\"column\":43},\"end\":{\"line\":50,\"column\":11}}]},\"7\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":-1},\"end\":{\"line\":52,\"column\":9}},\"locations\":[{\"start\":{\"line\":51,\"column\":-1},\"end\":{\"line\":52,\"column\":9}}]},\"8\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":13},\"end\":{\"line\":63,\"column\":9}},\"locations\":[{\"start\":{\"line\":53,\"column\":13},\"end\":{\"line\":63,\"column\":9}}]},\"9\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":29},\"end\":{\"line\":62,\"column\":11}},\"locations\":[{\"start\":{\"line\":54,\"column\":29},\"end\":{\"line\":62,\"column\":11}}]},\"10\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":42},\"end\":{\"line\":61,\"column\":13}},\"locations\":[{\"start\":{\"line\":55,\"column\":42},\"end\":{\"line\":61,\"column\":13}}]},\"11\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":25},\"end\":{\"line\":58,\"column\":21}},\"locations\":[{\"start\":{\"line\":56,\"column\":25},\"end\":{\"line\":58,\"column\":21}}]},\"12\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"locations\":[{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":77,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":23},\"end\":{\"line\":76,\"column\":5}},\"locations\":[{\"start\":{\"line\":68,\"column\":23},\"end\":{\"line\":76,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":38},\"end\":{\"line\":72,\"column\":7}},\"locations\":[{\"start\":{\"line\":69,\"column\":38},\"end\":{\"line\":72,\"column\":7}}]}},\"b\":{\"0\":[2],\"1\":[2],\"2\":[0],\"3\":[0],\"4\":[3],\"5\":[3],\"6\":[2],\"7\":[1],\"8\":[3],\"9\":[3],\"10\":[3],\"11\":[0],\"12\":[2],\"13\":[2],\"14\":[2]},\"fnMap\":{\"0\":{\"name\":\"CsvStoreService\",\"decl\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"line\":16},\"1\":{\"name\":\"getCsvFilePath\",\"decl\":{\"start\":{\"line\":26,\"column\":10},\"end\":{\"line\":38,\"column\":3}},\"loc\":{\"start\":{\"line\":26,\"column\":10},\"end\":{\"line\":38,\"column\":3}},\"line\":26},\"2\":{\"name\":\"export\",\"decl\":{\"start\":{\"line\":39,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":39,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":39},\"3\":{\"name\":\"shutdown\",\"decl\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"line\":67}},\"f\":{\"0\":2,\"1\":2,\"2\":3,\"3\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":37}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":29}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":32}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/setValueModel.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/setValueModel.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":31}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":33}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":31}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":47}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":28}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":73}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":71}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":49}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":7}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":34}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":66}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":52}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":23}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":5}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":3}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":67}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":43}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":27}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":74}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":75}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":55}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":60}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":59}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":80}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":24}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":109}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":10}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":14}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":59}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":67}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":55}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":7}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":12}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":53}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":3}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":25}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":45}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":16}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":12}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":64}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":67}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":97}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":7}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":31}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":5}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":47}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":112}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":40}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":43}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":29}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":13}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":5}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":46}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":39}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":36}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":3}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":30}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":33}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":53}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":44}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":53}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":44}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":19}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":50}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":19}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":9}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":16}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":15}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":26}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":10}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":9}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":20}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":3}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":0}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":53}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":44}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":92}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":20}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":3}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":46}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":43}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":29}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":13}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":5}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":65}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":54}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":3}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":0}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":76}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":53}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":18}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":5}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":31}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":69}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":12}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":50}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":61}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":5}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":3}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":78}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":32}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":11}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":31}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":22}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":37}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":21}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":7}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":27}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":3}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":47}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":43}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":67}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":27}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":3}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":23,\"7\":23,\"8\":23,\"9\":23,\"10\":23,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":23,\"21\":23,\"22\":22,\"23\":22,\"24\":22,\"25\":5,\"26\":5,\"27\":1,\"28\":1,\"29\":1,\"30\":5,\"31\":0,\"32\":0,\"33\":0,\"34\":4,\"35\":4,\"36\":4,\"37\":4,\"38\":4,\"39\":22,\"40\":17,\"41\":17,\"42\":22,\"43\":23,\"44\":23,\"45\":48,\"46\":17,\"47\":48,\"48\":31,\"49\":31,\"50\":0,\"51\":0,\"52\":31,\"53\":31,\"54\":48,\"55\":23,\"56\":23,\"57\":23,\"58\":23,\"59\":20,\"60\":20,\"61\":0,\"62\":0,\"63\":20,\"64\":20,\"65\":23,\"66\":23,\"67\":2,\"68\":2,\"69\":23,\"70\":23,\"71\":13,\"72\":13,\"73\":23,\"74\":23,\"75\":3,\"76\":3,\"77\":3,\"78\":3,\"79\":3,\"80\":8,\"81\":5,\"82\":5,\"83\":3,\"84\":3,\"85\":3,\"86\":3,\"87\":3,\"88\":3,\"89\":3,\"90\":3,\"91\":3,\"92\":23,\"93\":23,\"94\":3,\"95\":3,\"96\":3,\"97\":3,\"98\":3,\"99\":3,\"100\":23,\"101\":23,\"102\":6,\"103\":6,\"104\":0,\"105\":0,\"106\":6,\"107\":6,\"108\":6,\"109\":23,\"110\":23,\"111\":4,\"112\":0,\"113\":0,\"114\":4,\"115\":0,\"116\":4,\"117\":4,\"118\":4,\"119\":4,\"120\":4,\"121\":23,\"122\":23,\"123\":21,\"124\":21,\"125\":21,\"126\":21,\"127\":21,\"128\":21,\"129\":21,\"130\":21,\"131\":21,\"132\":23,\"133\":23,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":23},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":7,\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"locations\":[{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":139,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":43,\"column\":3}},\"locations\":[{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":43,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":26},\"end\":{\"line\":40,\"column\":11}},\"locations\":[{\"start\":{\"line\":25,\"column\":26},\"end\":{\"line\":40,\"column\":11}}]},\"3\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":74},\"end\":{\"line\":31,\"column\":13}},\"locations\":[{\"start\":{\"line\":27,\"column\":74},\"end\":{\"line\":31,\"column\":13}}]},\"4\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":7},\"end\":{\"line\":39,\"column\":7}},\"locations\":[{\"start\":{\"line\":31,\"column\":7},\"end\":{\"line\":39,\"column\":7}}]},\"5\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":79},\"end\":{\"line\":35,\"column\":13}},\"locations\":[{\"start\":{\"line\":31,\"column\":79},\"end\":{\"line\":35,\"column\":13}}]},\"6\":{\"type\":\"branch\",\"line\":40,\"loc\":{\"start\":{\"line\":40,\"column\":5},\"end\":{\"line\":42,\"column\":5}},\"locations\":[{\"start\":{\"line\":40,\"column\":5},\"end\":{\"line\":42,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"locations\":[{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":55,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":44},\"end\":{\"line\":48,\"column\":11}},\"locations\":[{\"start\":{\"line\":46,\"column\":44},\"end\":{\"line\":48,\"column\":11}}]},\"9\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":5},\"end\":{\"line\":54,\"column\":5}},\"locations\":[{\"start\":{\"line\":48,\"column\":5},\"end\":{\"line\":54,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":66},\"end\":{\"line\":52,\"column\":7}},\"locations\":[{\"start\":{\"line\":50,\"column\":66},\"end\":{\"line\":52,\"column\":7}}]},\"11\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":60},\"end\":{\"line\":51,\"column\":95}},\"locations\":[{\"start\":{\"line\":51,\"column\":60},\"end\":{\"line\":51,\"column\":95}}]},\"12\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"locations\":[{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":65,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":28},\"end\":{\"line\":63,\"column\":5}},\"locations\":[{\"start\":{\"line\":61,\"column\":28},\"end\":{\"line\":63,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"locations\":[{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":69,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"locations\":[{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":92,\"column\":3}},\"locations\":[{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":92,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":79,\"loc\":{\"start\":{\"line\":79,\"column\":14},\"end\":{\"line\":79,\"column\":43}},\"locations\":[{\"start\":{\"line\":79,\"column\":14},\"end\":{\"line\":79,\"column\":43}}]},\"18\":{\"type\":\"branch\",\"line\":80,\"loc\":{\"start\":{\"line\":80,\"column\":11},\"end\":{\"line\":89,\"column\":7}},\"locations\":[{\"start\":{\"line\":80,\"column\":11},\"end\":{\"line\":89,\"column\":7}}]},\"19\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":23},\"end\":{\"line\":81,\"column\":47}},\"locations\":[{\"start\":{\"line\":81,\"column\":23},\"end\":{\"line\":81,\"column\":47}}]},\"20\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":49},\"end\":{\"line\":83,\"column\":9}},\"locations\":[{\"start\":{\"line\":81,\"column\":49},\"end\":{\"line\":83,\"column\":9}}]},\"21\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":-1},\"end\":{\"line\":89,\"column\":7}},\"locations\":[{\"start\":{\"line\":84,\"column\":-1},\"end\":{\"line\":89,\"column\":7}}]},\"22\":{\"type\":\"branch\",\"line\":94,\"loc\":{\"start\":{\"line\":94,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"locations\":[{\"start\":{\"line\":94,\"column\":2},\"end\":{\"line\":100,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":61},\"end\":{\"line\":97,\"column\":90}},\"locations\":[{\"start\":{\"line\":97,\"column\":61},\"end\":{\"line\":97,\"column\":90}}]},\"24\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":109,\"column\":3}},\"locations\":[{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":109,\"column\":3}}]},\"25\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":28},\"end\":{\"line\":106,\"column\":5}},\"locations\":[{\"start\":{\"line\":104,\"column\":28},\"end\":{\"line\":106,\"column\":5}}]},\"26\":{\"type\":\"branch\",\"line\":111,\"loc\":{\"start\":{\"line\":111,\"column\":2},\"end\":{\"line\":121,\"column\":3}},\"locations\":[{\"start\":{\"line\":111,\"column\":2},\"end\":{\"line\":121,\"column\":3}}]},\"27\":{\"type\":\"branch\",\"line\":112,\"loc\":{\"start\":{\"line\":112,\"column\":52},\"end\":{\"line\":114,\"column\":5}},\"locations\":[{\"start\":{\"line\":112,\"column\":52},\"end\":{\"line\":114,\"column\":5}}]},\"28\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":30},\"end\":{\"line\":117,\"column\":11}},\"locations\":[{\"start\":{\"line\":115,\"column\":30},\"end\":{\"line\":117,\"column\":11}}]},\"29\":{\"type\":\"branch\",\"line\":118,\"loc\":{\"start\":{\"line\":118,\"column\":37},\"end\":{\"line\":118,\"column\":50}},\"locations\":[{\"start\":{\"line\":118,\"column\":37},\"end\":{\"line\":118,\"column\":50}}]},\"30\":{\"type\":\"branch\",\"line\":119,\"loc\":{\"start\":{\"line\":119,\"column\":-1},\"end\":{\"line\":119,\"column\":52}},\"locations\":[{\"start\":{\"line\":119,\"column\":-1},\"end\":{\"line\":119,\"column\":52}}]},\"31\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":10},\"end\":{\"line\":132,\"column\":3}},\"locations\":[{\"start\":{\"line\":123,\"column\":10},\"end\":{\"line\":132,\"column\":3}}]}},\"b\":{\"0\":[23],\"1\":[22],\"2\":[5],\"3\":[1],\"4\":[4],\"5\":[0],\"6\":[17],\"7\":[48],\"8\":[17],\"9\":[31],\"10\":[0],\"11\":[4],\"12\":[20],\"13\":[0],\"14\":[2],\"15\":[13],\"16\":[3],\"17\":[11],\"18\":[8],\"19\":[6],\"20\":[5],\"21\":[3],\"22\":[3],\"23\":[11],\"24\":[6],\"25\":[0],\"26\":[4],\"27\":[0],\"28\":[0],\"29\":[1],\"30\":[3],\"31\":[21]},\"fnMap\":{\"0\":{\"name\":\"SetValueModel\",\"decl\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"line\":7},\"1\":{\"name\":\"popRecordWithOpIndex\",\"decl\":{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":20,\"column\":3}},\"loc\":{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":20,\"column\":3}},\"line\":11},\"2\":{\"name\":\"set\",\"decl\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":43,\"column\":3}},\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":43,\"column\":3}},\"line\":22},\"3\":{\"name\":\"latestIndex\",\"decl\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"line\":45},\"4\":{\"name\":\"getLatest\",\"decl\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":59},\"5\":{\"name\":\"getFirst\",\"decl\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"line\":67},\"6\":{\"name\":\"getValues\",\"decl\":{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"loc\":{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"line\":71},\"7\":{\"name\":\"fromBelowHeight\",\"decl\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":92,\"column\":3}},\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":92,\"column\":3}},\"line\":75},\"8\":{\"name\":\"fromAboveHeight\",\"decl\":{\"start\":{\"line\":94,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"loc\":{\"start\":{\"line\":94,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"line\":94},\"9\":{\"name\":\"markAsRemoved\",\"decl\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":109,\"column\":3}},\"loc\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":109,\"column\":3}},\"line\":102},\"10\":{\"name\":\"isMatchData\",\"decl\":{\"start\":{\"line\":111,\"column\":2},\"end\":{\"line\":121,\"column\":3}},\"loc\":{\"start\":{\"line\":111,\"column\":2},\"end\":{\"line\":121,\"column\":3}},\"line\":111},\"11\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":123,\"column\":10},\"end\":{\"line\":132,\"column\":3}},\"loc\":{\"start\":{\"line\":123,\"column\":10},\"end\":{\"line\":132,\"column\":3}},\"line\":123},\"12\":{\"name\":\"deleteFromHistorical\",\"decl\":{\"start\":{\"line\":134,\"column\":10},\"end\":{\"line\":138,\"column\":3}},\"loc\":{\"start\":{\"line\":134,\"column\":10},\"end\":{\"line\":138,\"column\":3}},\"line\":134}},\"f\":{\"0\":23,\"1\":0,\"2\":22,\"3\":48,\"4\":20,\"5\":2,\"6\":13,\"7\":3,\"8\":3,\"9\":6,\"10\":4,\"11\":21,\"12\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/storeCache.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/storeCache.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":98}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":27}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":43}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":42}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":39}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":40}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":50}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":53}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":51}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":41}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":41}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":51}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":68}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":46}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":13}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":57}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":65}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":38}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":28}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":47}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":43}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":29}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":36}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":35}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":41}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":29}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":35}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":112}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":24}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":58}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":55}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":35}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":58}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":90}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":22}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":5}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":3}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":95}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":42}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":34}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":29}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":23}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":3}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":40}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":35}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":37}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":48}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":33}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":61}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":5}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":28}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":56}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":5}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":37}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":59}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":5}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":67}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":3}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":61}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":51}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":52}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":40}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":12}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":23}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":18}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":49}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":34}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":26}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":6}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":32}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":83}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":51}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":5}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":23}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":3}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":79}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":48}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":37}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":3}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":44}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":61}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":3}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":50}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":27}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":59}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":7}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":3}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":38}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":31}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":37}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":31}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":75}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":7}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":76}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":5}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":70}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":3}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":35}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":26}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":37}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":26}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":20}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":73}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":7}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":66}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":5}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":65}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":3}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":0}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":118}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":78}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":70}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":61}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":51}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":74}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":69}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":80}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":5}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":51}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":3}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":0}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":13}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":56}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":40}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":121}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":49}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":99}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":7}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":9}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":64}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":97}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":43}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":92}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":33}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":74}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":26}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":104}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":10}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":60}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":69}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":14}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":88}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":7}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":24}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":22}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":39}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":103}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":7}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":72}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":26}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":14}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":5}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":35}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":3}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":23}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":59}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":20}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":5}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":3}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":0}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":90}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":51}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":0}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":63}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":0}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":51}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":25}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":5}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":3}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":0}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":34}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":69}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":107}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":3}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":0}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":26}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":47}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":64}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":26}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":7}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":118}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":70}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":3}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":6,\"38\":6,\"39\":6,\"40\":6,\"41\":6,\"42\":6,\"43\":0,\"44\":0,\"45\":0,\"46\":6,\"47\":1,\"48\":1,\"49\":6,\"50\":6,\"51\":6,\"52\":6,\"53\":6,\"54\":1,\"55\":1,\"56\":38,\"57\":38,\"58\":38,\"59\":1,\"60\":1,\"61\":12,\"62\":0,\"63\":0,\"64\":12,\"65\":0,\"66\":0,\"67\":12,\"68\":12,\"69\":12,\"70\":12,\"71\":12,\"72\":1,\"73\":1,\"74\":37,\"75\":37,\"76\":37,\"77\":37,\"78\":37,\"79\":37,\"80\":37,\"81\":37,\"82\":37,\"83\":37,\"84\":37,\"85\":0,\"86\":0,\"87\":0,\"88\":37,\"89\":37,\"90\":37,\"91\":1,\"92\":1,\"93\":0,\"94\":0,\"95\":0,\"96\":1,\"97\":1,\"98\":20,\"99\":20,\"100\":1,\"101\":12,\"102\":25,\"103\":12,\"104\":12,\"105\":1,\"106\":69,\"107\":69,\"108\":6,\"109\":0,\"110\":0,\"111\":6,\"112\":6,\"113\":69,\"114\":69,\"115\":1,\"116\":1,\"117\":80,\"118\":80,\"119\":80,\"120\":80,\"121\":80,\"122\":80,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":1,\"129\":1,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":1,\"142\":1,\"143\":1,\"144\":53,\"145\":53,\"146\":53,\"147\":53,\"148\":53,\"149\":53,\"150\":53,\"151\":53,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":53,\"162\":53,\"163\":53,\"164\":53,\"165\":53,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":53,\"174\":53,\"175\":1,\"176\":1,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":1,\"182\":1,\"183\":2,\"184\":2,\"185\":2,\"186\":2,\"187\":2,\"188\":1,\"189\":1,\"190\":2,\"191\":1,\"192\":1,\"193\":80,\"194\":80,\"195\":80,\"196\":1,\"197\":1,\"198\":40,\"199\":40,\"200\":40,\"201\":40,\"202\":40,\"203\":40,\"204\":40,\"205\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"locations\":[{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":47,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":57},\"end\":{\"line\":46,\"column\":5}},\"locations\":[{\"start\":{\"line\":43,\"column\":57},\"end\":{\"line\":46,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":54,\"column\":3}},\"locations\":[{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":54,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"locations\":[{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":59,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"locations\":[{\"start\":{\"line\":61,\"column\":2},\"end\":{\"line\":72,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":32},\"end\":{\"line\":64,\"column\":5}},\"locations\":[{\"start\":{\"line\":62,\"column\":32},\"end\":{\"line\":64,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":65,\"loc\":{\"start\":{\"line\":65,\"column\":27},\"end\":{\"line\":67,\"column\":5}},\"locations\":[{\"start\":{\"line\":65,\"column\":27},\"end\":{\"line\":67,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":10},\"end\":{\"line\":91,\"column\":3}},\"locations\":[{\"start\":{\"line\":74,\"column\":10},\"end\":{\"line\":91,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":31},\"end\":{\"line\":88,\"column\":5}},\"locations\":[{\"start\":{\"line\":85,\"column\":31},\"end\":{\"line\":88,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":98,\"loc\":{\"start\":{\"line\":98,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"locations\":[{\"start\":{\"line\":98,\"column\":2},\"end\":{\"line\":100,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"locations\":[{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":105,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":19},\"end\":{\"line\":104,\"column\":5}},\"locations\":[{\"start\":{\"line\":102,\"column\":19},\"end\":{\"line\":104,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":106,\"loc\":{\"start\":{\"line\":106,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"locations\":[{\"start\":{\"line\":106,\"column\":2},\"end\":{\"line\":115,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":108,\"loc\":{\"start\":{\"line\":108,\"column\":36},\"end\":{\"line\":113,\"column\":5}},\"locations\":[{\"start\":{\"line\":108,\"column\":36},\"end\":{\"line\":113,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":109,\"loc\":{\"start\":{\"line\":109,\"column\":30},\"end\":{\"line\":111,\"column\":7}},\"locations\":[{\"start\":{\"line\":109,\"column\":30},\"end\":{\"line\":111,\"column\":7}}]},\"15\":{\"type\":\"branch\",\"line\":117,\"loc\":{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":128,\"column\":3}},\"locations\":[{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":128,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":124,\"loc\":{\"start\":{\"line\":124,\"column\":-1},\"end\":{\"line\":128,\"column\":3}},\"locations\":[{\"start\":{\"line\":124,\"column\":-1},\"end\":{\"line\":128,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":144,\"loc\":{\"start\":{\"line\":144,\"column\":8},\"end\":{\"line\":175,\"column\":3}},\"locations\":[{\"start\":{\"line\":144,\"column\":8},\"end\":{\"line\":175,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":34},\"end\":{\"line\":148,\"column\":58}},\"locations\":[{\"start\":{\"line\":148,\"column\":34},\"end\":{\"line\":148,\"column\":58}}]},\"19\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":59},\"end\":{\"line\":148,\"column\":70}},\"locations\":[{\"start\":{\"line\":148,\"column\":59},\"end\":{\"line\":148,\"column\":70}}]},\"20\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":71},\"end\":{\"line\":148,\"column\":98}},\"locations\":[{\"start\":{\"line\":148,\"column\":71},\"end\":{\"line\":148,\"column\":98}}]},\"21\":{\"type\":\"branch\",\"line\":152,\"loc\":{\"start\":{\"line\":152,\"column\":47},\"end\":{\"line\":152,\"column\":96}},\"locations\":[{\"start\":{\"line\":152,\"column\":47},\"end\":{\"line\":152,\"column\":96}}]},\"22\":{\"type\":\"branch\",\"line\":153,\"loc\":{\"start\":{\"line\":153,\"column\":-1},\"end\":{\"line\":162,\"column\":13}},\"locations\":[{\"start\":{\"line\":153,\"column\":-1},\"end\":{\"line\":162,\"column\":13}}]},\"23\":{\"type\":\"branch\",\"line\":166,\"loc\":{\"start\":{\"line\":166,\"column\":6},\"end\":{\"line\":173,\"column\":5}},\"locations\":[{\"start\":{\"line\":166,\"column\":6},\"end\":{\"line\":173,\"column\":5}}]},\"24\":{\"type\":\"branch\",\"line\":154,\"loc\":{\"start\":{\"line\":154,\"column\":70},\"end\":{\"line\":154,\"column\":90}},\"locations\":[{\"start\":{\"line\":154,\"column\":70},\"end\":{\"line\":154,\"column\":90}}]},\"25\":{\"type\":\"branch\",\"line\":163,\"loc\":{\"start\":{\"line\":163,\"column\":46},\"end\":{\"line\":163,\"column\":85}},\"locations\":[{\"start\":{\"line\":163,\"column\":46},\"end\":{\"line\":163,\"column\":85}}]},\"26\":{\"type\":\"branch\",\"line\":183,\"loc\":{\"start\":{\"line\":183,\"column\":2},\"end\":{\"line\":191,\"column\":3}},\"locations\":[{\"start\":{\"line\":183,\"column\":2},\"end\":{\"line\":191,\"column\":3}}]},\"27\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":50},\"end\":{\"line\":190,\"column\":5}},\"locations\":[{\"start\":{\"line\":188,\"column\":50},\"end\":{\"line\":190,\"column\":5}}]},\"28\":{\"type\":\"branch\",\"line\":193,\"loc\":{\"start\":{\"line\":193,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"locations\":[{\"start\":{\"line\":193,\"column\":2},\"end\":{\"line\":196,\"column\":3}}]},\"29\":{\"type\":\"branch\",\"line\":194,\"loc\":{\"start\":{\"line\":194,\"column\":39},\"end\":{\"line\":194,\"column\":63}},\"locations\":[{\"start\":{\"line\":194,\"column\":39},\"end\":{\"line\":194,\"column\":63}}]},\"30\":{\"type\":\"branch\",\"line\":195,\"loc\":{\"start\":{\"line\":195,\"column\":52},\"end\":{\"line\":195,\"column\":83}},\"locations\":[{\"start\":{\"line\":195,\"column\":52},\"end\":{\"line\":195,\"column\":83}}]},\"31\":{\"type\":\"branch\",\"line\":198,\"loc\":{\"start\":{\"line\":198,\"column\":2},\"end\":{\"line\":205,\"column\":3}},\"locations\":[{\"start\":{\"line\":198,\"column\":2},\"end\":{\"line\":205,\"column\":3}}]}},\"b\":{\"0\":[6],\"1\":[0],\"2\":[6],\"3\":[38],\"4\":[12],\"5\":[0],\"6\":[0],\"7\":[37],\"8\":[0],\"9\":[20],\"10\":[12],\"11\":[25],\"12\":[69],\"13\":[6],\"14\":[0],\"15\":[80],\"16\":[0],\"17\":[53],\"18\":[21],\"19\":[32],\"20\":[21],\"21\":[0],\"22\":[0],\"23\":[0],\"24\":[56],\"25\":[53],\"26\":[2],\"27\":[1],\"28\":[80],\"29\":[0],\"30\":[128],\"31\":[40]},\"fnMap\":{\"0\":{\"name\":\"StoreCacheService\",\"decl\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"loc\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"line\":37},\"1\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":54,\"column\":3}},\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":54,\"column\":3}},\"line\":49},\"2\":{\"name\":\"getNextStoreOperationIndex\",\"decl\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"loc\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"line\":56},\"3\":{\"name\":\"getModel\",\"decl\":{\"start\":{\"line\":61,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"loc\":{\"start\":{\"line\":61,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"line\":61},\"4\":{\"name\":\"createModel\",\"decl\":{\"start\":{\"line\":74,\"column\":10},\"end\":{\"line\":91,\"column\":3}},\"loc\":{\"start\":{\"line\":74,\"column\":10},\"end\":{\"line\":91,\"column\":3}},\"line\":74},\"5\":{\"name\":\"addExporter\",\"decl\":{\"start\":{\"line\":93,\"column\":2},\"end\":{\"line\":96,\"column\":3}},\"loc\":{\"start\":{\"line\":93,\"column\":2},\"end\":{\"line\":96,\"column\":3}},\"line\":93},\"6\":{\"name\":\"flushExportStores\",\"decl\":{\"start\":{\"line\":98,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"loc\":{\"start\":{\"line\":98,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"line\":98},\"7\":{\"name\":\"updateModels\",\"decl\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"line\":101},\"8\":{\"name\":\"get metadata\",\"decl\":{\"start\":{\"line\":106,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"loc\":{\"start\":{\"line\":106,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"line\":106},\"9\":{\"name\":\"get poi\",\"decl\":{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":128,\"column\":3}},\"loc\":{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":128,\"column\":3}},\"line\":117},\"10\":{\"name\":\"flushRelationalModelsInOrder\",\"decl\":{\"start\":{\"line\":130,\"column\":10},\"end\":{\"line\":141,\"column\":3}},\"loc\":{\"start\":{\"line\":130,\"column\":10},\"end\":{\"line\":141,\"column\":3}},\"line\":130},\"11\":{\"name\":\"_flushCache\",\"decl\":{\"start\":{\"line\":144,\"column\":8},\"end\":{\"line\":175,\"column\":3}},\"loc\":{\"start\":{\"line\":144,\"column\":8},\"end\":{\"line\":175,\"column\":3}},\"line\":144},\"12\":{\"name\":\"_resetCache\",\"decl\":{\"start\":{\"line\":177,\"column\":2},\"end\":{\"line\":181,\"column\":3}},\"loc\":{\"start\":{\"line\":177,\"column\":2},\"end\":{\"line\":181,\"column\":3}},\"line\":177},\"13\":{\"name\":\"flushAndWaitForCapacity\",\"decl\":{\"start\":{\"line\":183,\"column\":2},\"end\":{\"line\":191,\"column\":3}},\"loc\":{\"start\":{\"line\":183,\"column\":2},\"end\":{\"line\":191,\"column\":3}},\"line\":183},\"14\":{\"name\":\"get flushableRecords\",\"decl\":{\"start\":{\"line\":193,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"loc\":{\"start\":{\"line\":193,\"column\":2},\"end\":{\"line\":196,\"column\":3}},\"line\":193},\"15\":{\"name\":\"isFlushable\",\"decl\":{\"start\":{\"line\":198,\"column\":2},\"end\":{\"line\":205,\"column\":3}},\"loc\":{\"start\":{\"line\":198,\"column\":2},\"end\":{\"line\":205,\"column\":3}},\"line\":198}},\"f\":{\"0\":6,\"1\":6,\"2\":38,\"3\":12,\"4\":37,\"5\":0,\"6\":20,\"7\":12,\"8\":69,\"9\":80,\"10\":0,\"11\":53,\"12\":0,\"13\":2,\"14\":80,\"15\":40}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/storeCache/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":51}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":47}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":35}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":46}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":51}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":34}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":46}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":36}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":15}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":19}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":37}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":44}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":20}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":105}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":79}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":58}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":55}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":74}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":52}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":59}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":38}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":23}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":28}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":33}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":62}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":61}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":5}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":4}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":69}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":5}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":40}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":1}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":40}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":45}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":25}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":2}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":57}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":27}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":51}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":17}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":50}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":2}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":27}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":25}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":25}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":2}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":27}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":10}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":22}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":27}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":25}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":19}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":2}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":58}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":74}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":27}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":5}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":33}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":70}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":4}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":55}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":78}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":5}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":43}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":5}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":37}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":69}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":70}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":4}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":76}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":5}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":32}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/test.runner.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/test.runner.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":50}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":45}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":26}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":31}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":36}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":51}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":36}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":38}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":45}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":48}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":40}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":36}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":19}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":31}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":33}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":29}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":13}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":39}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":59}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":26}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":26}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":14}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":76}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":50}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":44}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":46}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":88}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":6}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":16}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":20}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":25}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":17}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":23}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":22}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":45}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":43}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":22}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":14}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":24}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":24}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":53}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":6}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":44}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":9}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":20}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":37}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":76}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":57}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":49}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":37}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":22}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":44}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":81}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":38}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":11}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":84}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":66}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":24}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":72}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":34}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":30}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":30}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":32}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":59}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":10}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":27}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":16}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":7}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":32}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":49}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":62}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":56}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":75}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":87}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":46}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":28}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":69}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":16}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":55}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":75}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":41}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":87}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":83}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":53}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":36}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":113}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":16}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":13}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":13}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":9}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":39}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":79}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":29}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":16}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":79}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":36}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":32}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":40}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":45}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":47}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":12}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":0}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":29}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":9}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":7}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":0}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":64}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":18}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":104}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":38}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":18}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":8}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":22}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":55}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":56}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":15}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":54}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":23}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":25}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":9}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":5}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":12}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":36}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":36}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":48}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":6}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":3}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":4,\"31\":4,\"32\":4,\"33\":4,\"34\":4,\"35\":4,\"36\":1,\"37\":1,\"38\":4,\"39\":4,\"40\":4,\"41\":4,\"42\":4,\"43\":4,\"44\":4,\"45\":4,\"46\":4,\"47\":4,\"48\":4,\"49\":4,\"50\":4,\"51\":4,\"52\":4,\"53\":4,\"54\":4,\"55\":4,\"56\":4,\"57\":4,\"58\":4,\"59\":4,\"60\":4,\"61\":4,\"62\":4,\"63\":4,\"64\":4,\"65\":4,\"66\":4,\"67\":4,\"68\":4,\"69\":4,\"70\":3,\"71\":4,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":3,\"84\":3,\"85\":3,\"86\":3,\"87\":4,\"88\":2,\"89\":2,\"90\":2,\"91\":2,\"92\":2,\"93\":2,\"94\":0,\"95\":2,\"96\":2,\"97\":6,\"98\":6,\"99\":6,\"100\":6,\"101\":6,\"102\":6,\"103\":6,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":2,\"109\":2,\"110\":2,\"111\":2,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":2,\"126\":2,\"127\":2,\"128\":3,\"129\":3,\"130\":3,\"131\":3,\"132\":3,\"133\":4,\"134\":1,\"135\":1,\"136\":4,\"137\":4,\"138\":4,\"139\":4,\"140\":4,\"141\":4,\"142\":4,\"143\":4,\"144\":4,\"145\":4,\"146\":4,\"147\":4,\"148\":4,\"149\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":36,\"column\":6}},\"locations\":[{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":36,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":149,\"column\":3}},\"locations\":[{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":149,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":-1},\"end\":{\"line\":72,\"column\":15}},\"locations\":[{\"start\":{\"line\":71,\"column\":-1},\"end\":{\"line\":72,\"column\":15}}]},\"3\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":8},\"end\":{\"line\":83,\"column\":7}},\"locations\":[{\"start\":{\"line\":72,\"column\":8},\"end\":{\"line\":83,\"column\":7}}]},\"4\":{\"type\":\"branch\",\"line\":84,\"loc\":{\"start\":{\"line\":84,\"column\":-1},\"end\":{\"line\":88,\"column\":61}},\"locations\":[{\"start\":{\"line\":84,\"column\":-1},\"end\":{\"line\":88,\"column\":61}}]},\"5\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":61},\"end\":{\"line\":128,\"column\":64}},\"locations\":[{\"start\":{\"line\":88,\"column\":61},\"end\":{\"line\":128,\"column\":64}}]},\"6\":{\"type\":\"branch\",\"line\":94,\"loc\":{\"start\":{\"line\":94,\"column\":27},\"end\":{\"line\":96,\"column\":15}},\"locations\":[{\"start\":{\"line\":94,\"column\":27},\"end\":{\"line\":96,\"column\":15}}]},\"7\":{\"type\":\"branch\",\"line\":112,\"loc\":{\"start\":{\"line\":112,\"column\":38},\"end\":{\"line\":125,\"column\":9}},\"locations\":[{\"start\":{\"line\":112,\"column\":38},\"end\":{\"line\":125,\"column\":9}}]},\"8\":{\"type\":\"branch\",\"line\":129,\"loc\":{\"start\":{\"line\":129,\"column\":-1},\"end\":{\"line\":134,\"column\":13}},\"locations\":[{\"start\":{\"line\":129,\"column\":-1},\"end\":{\"line\":134,\"column\":13}}]},\"9\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":6},\"end\":{\"line\":137,\"column\":14}},\"locations\":[{\"start\":{\"line\":134,\"column\":6},\"end\":{\"line\":137,\"column\":14}}]},\"10\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":44},\"end\":{\"line\":109,\"column\":11}},\"locations\":[{\"start\":{\"line\":97,\"column\":44},\"end\":{\"line\":109,\"column\":11}}]},\"11\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":34},\"end\":{\"line\":99,\"column\":41}},\"locations\":[{\"start\":{\"line\":99,\"column\":34},\"end\":{\"line\":99,\"column\":41}}]},\"12\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":78},\"end\":{\"line\":101,\"column\":86}},\"locations\":[{\"start\":{\"line\":101,\"column\":78},\"end\":{\"line\":101,\"column\":86}}]},\"13\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":74},\"end\":{\"line\":102,\"column\":82}},\"locations\":[{\"start\":{\"line\":102,\"column\":74},\"end\":{\"line\":102,\"column\":82}}]},\"14\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":52},\"end\":{\"line\":108,\"column\":13}},\"locations\":[{\"start\":{\"line\":104,\"column\":52},\"end\":{\"line\":108,\"column\":13}}]}},\"b\":{\"0\":[4],\"1\":[4],\"2\":[3],\"3\":[1],\"4\":[3],\"5\":[2],\"6\":[0],\"7\":[1],\"8\":[3],\"9\":[1],\"10\":[6],\"11\":[0],\"12\":[0],\"13\":[0],\"14\":[1]},\"fnMap\":{\"0\":{\"name\":\"TestRunner\",\"decl\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":36,\"column\":6}},\"loc\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":36,\"column\":6}},\"line\":30},\"1\":{\"name\":\"runTest\",\"decl\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":149,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":149,\"column\":3}},\"line\":38}},\"f\":{\"0\":4,\"1\":4}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/testing.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/testing.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":53}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":42}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":52}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":72}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":26}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":33}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":36}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":40}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":36}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":53}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":41}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":66}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":42}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":13}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":75}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":50}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":39}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":31}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":21}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":22}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":24}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":31}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":11}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":25}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":31}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":31}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":113}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":42}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":35}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":76}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":28}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":50}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":37}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":32}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":20}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":46}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":8}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":54}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":7}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":65}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":73}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":3}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":153}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":19}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":21}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":20}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":43}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":41}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":20}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":75}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":15}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":47}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":46}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":47}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":40}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":35}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":69}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":9}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":7}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":35}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":12}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":107}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":18}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":114}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":8}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":5}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":3}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":55}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":31}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":31}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":16}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":5}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":44}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":48}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":38}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":31}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":55}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":49}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":29}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":7}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":7}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":0}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":17}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":3}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":64}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":47}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":0}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":59}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":0}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":9}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":85}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":13}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":16}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":34}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":8}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":74}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":30}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":56}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":7}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":15}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":20}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":5}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":3}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":0}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":53}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":33}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":48}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":44}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":35}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":37}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":40}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":0}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":49}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":46}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":50}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":0}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":31}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":9}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":7}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":5}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":0}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":30}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":22}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":110}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":8}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":5}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":0}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":23}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":3}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":0}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":35}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":45}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":72}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":57}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":25}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":54}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":119}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":61}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":57}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":41}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":9}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":33}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":7}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":5}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":0}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":69}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":77}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":75}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":3}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":1,\"66\":1,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":1,\"84\":1,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":1,\"105\":1,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":1,\"127\":1,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":1,\"155\":1,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"TestingService\",\"decl\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":54,\"column\":3}},\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":54,\"column\":3}},\"line\":35},\"1\":{\"name\":\"indexBlock\",\"decl\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":58},\"2\":{\"name\":\"run\",\"decl\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":83,\"column\":3}},\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":83,\"column\":3}},\"line\":67},\"3\":{\"name\":\"findAllTestFiles\",\"decl\":{\"start\":{\"line\":85,\"column\":10},\"end\":{\"line\":104,\"column\":3}},\"loc\":{\"start\":{\"line\":85,\"column\":10},\"end\":{\"line\":104,\"column\":3}},\"line\":85},\"4\":{\"name\":\"runTest\",\"decl\":{\"start\":{\"line\":106,\"column\":10},\"end\":{\"line\":126,\"column\":3}},\"loc\":{\"start\":{\"line\":106,\"column\":10},\"end\":{\"line\":126,\"column\":3}},\"line\":106},\"5\":{\"name\":\"getDsWithHandler\",\"decl\":{\"start\":{\"line\":128,\"column\":12},\"end\":{\"line\":154,\"column\":3}},\"loc\":{\"start\":{\"line\":128,\"column\":12},\"end\":{\"line\":154,\"column\":3}},\"line\":128},\"6\":{\"name\":\"logFailedTestsSummary\",\"decl\":{\"start\":{\"line\":156,\"column\":10},\"end\":{\"line\":174,\"column\":3}},\"loc\":{\"start\":{\"line\":156,\"column\":10},\"end\":{\"line\":174,\"column\":3}},\"line\":156}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":8}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":17}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":25}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":24}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":9}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":24}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":27}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":38}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":55}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":55}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":34}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":58}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":45}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":68}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":13}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":112}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":33}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":95}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":22}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":48}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":24}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":27}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":14}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":20}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":31}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":27}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":21}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":24}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":2}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":41}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":97}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":38}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":34}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":22}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":52}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":5}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":100}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":7}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":28}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":108}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":4}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":7}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":54}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":41}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":44}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":53}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":34}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":22}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":11}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":1}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":22}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":22}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":20}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":33}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":5,\"28\":5,\"29\":5,\"30\":5,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"locations\":[{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":31,\"column\":1}}]}},\"b\":{\"0\":[5]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/unfinalizedBlocks.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/unfinalizedBlocks.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":37}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":40}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":48}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":36}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":40}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":40}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":31}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":47}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":46}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":67}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":83}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":108}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":34}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":34}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":47}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":86}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":86}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":89}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":33}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":43}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":61}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":95}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":49}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":36}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":44}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":56}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":57}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":69}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":73}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":19}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":53}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":29}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":3}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":71}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":48}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":3}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":56}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":116}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":35}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":3}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":56}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":44}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":3}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":43}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":114}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":33}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":109}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":93}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":103}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":71}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":78}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":57}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":40}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":51}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":51}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":65}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":39}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":20}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":129}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":10}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":36}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":67}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":28}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":14}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":38}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":48}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":7}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":5}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":46}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":44}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":3}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":85}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":17}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":44}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":5}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":48}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":24}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":55}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":34}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":12}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":61}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":61}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":5}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":0}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":11}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":3}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":82}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":93}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":3}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":0}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":48}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":82}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":13}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":5}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":34}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":3}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":0}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":58}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":64}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":19}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":76}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":98}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":19}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":139}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":8}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":22}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":5}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":0}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":40}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":55}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":3}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":40}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":111}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":54}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":70}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":57}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":5}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":60}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":3}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":0}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":71}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":54}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":108}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":3}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":0}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":43}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":69}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":56}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":64}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":62}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":62}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":82}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":60}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":81}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":28}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":31}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":13}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":5}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":0}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":48}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":72}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":77}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":20}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":189}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":10}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":36}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":7}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":12}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":49}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":40}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":8}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":92}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":100}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":100}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":9}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":89}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":80}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":14}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":72}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":17}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":30}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":103}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":12}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":66}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":9}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":7}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":0}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":63}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":20}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":174}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":10}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":22}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":7}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":5}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":0}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":11}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":3}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":0}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":99}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":63}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":65}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":6}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":0}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":38}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":0}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":70}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":76}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":94}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":27}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":7}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":0}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":27}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":89}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":78}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":5}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":0}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":39}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":3}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":0}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":84}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":74}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":41}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":20}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":53}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":5}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":0}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":40}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":0}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":53}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":18}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":90}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":0}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":34}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":14}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":7}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":0}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":65}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":49}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":75}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":0}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":82}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":45}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":34}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":32}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":27}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":38}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":10}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":0}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":50}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":80}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":29}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":9}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":7}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":0}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":96}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":66}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":5}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":0}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":75}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":3}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":0}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":77}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":108}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":3}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":0}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":65}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":87}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":3}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":0}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":34}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":72}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":32}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":3}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":0}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":44}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":92}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":3}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":0}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":33}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":68}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":85}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":14}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":50}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":5}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":14}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":3}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":0}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":71}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":80}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":3}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":27,\"46\":27,\"47\":1,\"48\":1,\"49\":32,\"50\":32,\"51\":1,\"52\":1,\"53\":131,\"54\":131,\"55\":131,\"56\":1,\"57\":1,\"58\":36,\"59\":36,\"60\":1,\"61\":1,\"62\":179,\"63\":179,\"64\":179,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":18,\"70\":18,\"71\":18,\"72\":18,\"73\":18,\"74\":18,\"75\":18,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":0,\"89\":0,\"90\":0,\"91\":1,\"92\":18,\"93\":1,\"94\":1,\"95\":144,\"96\":144,\"97\":1,\"98\":1,\"99\":28,\"100\":27,\"101\":27,\"102\":28,\"103\":28,\"104\":28,\"105\":28,\"106\":21,\"107\":21,\"108\":28,\"109\":7,\"110\":7,\"111\":7,\"112\":21,\"113\":21,\"114\":21,\"115\":1,\"116\":1,\"117\":28,\"118\":28,\"119\":1,\"120\":1,\"121\":19,\"122\":1,\"123\":1,\"124\":18,\"125\":18,\"126\":1,\"127\":1,\"128\":29,\"129\":24,\"130\":24,\"131\":29,\"132\":29,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":24,\"139\":24,\"140\":24,\"141\":24,\"142\":1,\"143\":1,\"144\":21,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":21,\"150\":21,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":1,\"156\":1,\"157\":1,\"158\":1,\"159\":28,\"160\":28,\"161\":28,\"162\":28,\"163\":28,\"164\":1,\"165\":1,\"166\":1,\"167\":28,\"168\":28,\"169\":28,\"170\":28,\"171\":20,\"172\":20,\"173\":8,\"174\":8,\"175\":28,\"176\":5,\"177\":4,\"178\":4,\"179\":4,\"180\":4,\"181\":4,\"182\":28,\"183\":3,\"184\":3,\"185\":3,\"186\":3,\"187\":3,\"188\":3,\"189\":3,\"190\":3,\"191\":1,\"192\":3,\"193\":2,\"194\":16,\"195\":16,\"196\":16,\"197\":16,\"198\":16,\"199\":16,\"200\":2,\"201\":3,\"202\":3,\"203\":3,\"204\":3,\"205\":3,\"206\":3,\"207\":3,\"208\":3,\"209\":1,\"210\":1,\"211\":1,\"212\":1,\"213\":1,\"214\":7,\"215\":7,\"216\":7,\"217\":7,\"218\":7,\"219\":7,\"220\":7,\"221\":7,\"222\":13,\"223\":2,\"224\":2,\"225\":11,\"226\":11,\"227\":11,\"228\":11,\"229\":11,\"230\":5,\"231\":5,\"232\":5,\"233\":1,\"234\":1,\"235\":1,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":1,\"276\":1,\"277\":25,\"278\":25,\"279\":1,\"280\":1,\"281\":1,\"282\":1,\"283\":1,\"284\":1,\"285\":1,\"286\":1,\"287\":1,\"288\":1,\"289\":1,\"290\":0,\"291\":0,\"292\":1,\"293\":1,\"294\":1,\"295\":18,\"296\":18,\"297\":1,\"298\":1,\"299\":17,\"300\":17,\"301\":1,\"302\":1,\"303\":18,\"304\":18,\"305\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":12},\"end\":{\"line\":47,\"column\":3}},\"locations\":[{\"start\":{\"line\":45,\"column\":12},\"end\":{\"line\":47,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":51,\"column\":3}},\"locations\":[{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":51,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"locations\":[{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":56,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"locations\":[{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"locations\":[{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":67,\"column\":109}},\"locations\":[{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":67,\"column\":109}}]},\"6\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"locations\":[{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":93,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":75},\"end\":{\"line\":70,\"column\":86}},\"locations\":[{\"start\":{\"line\":70,\"column\":75},\"end\":{\"line\":70,\"column\":86}}]},\"8\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":87},\"end\":{\"line\":70,\"column\":99}},\"locations\":[{\"start\":{\"line\":70,\"column\":87},\"end\":{\"line\":70,\"column\":99}}]},\"9\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":39},\"end\":{\"line\":92,\"column\":5}},\"locations\":[{\"start\":{\"line\":76,\"column\":39},\"end\":{\"line\":92,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":7},\"end\":{\"line\":91,\"column\":7}},\"locations\":[{\"start\":{\"line\":88,\"column\":7},\"end\":{\"line\":91,\"column\":7}}]},\"11\":{\"type\":\"branch\",\"line\":95,\"loc\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"locations\":[{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":97,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"locations\":[{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":115,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":16},\"end\":{\"line\":102,\"column\":5}},\"locations\":[{\"start\":{\"line\":100,\"column\":16},\"end\":{\"line\":102,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":106,\"loc\":{\"start\":{\"line\":106,\"column\":23},\"end\":{\"line\":109,\"column\":11}},\"locations\":[{\"start\":{\"line\":106,\"column\":23},\"end\":{\"line\":109,\"column\":11}}]},\"15\":{\"type\":\"branch\",\"line\":109,\"loc\":{\"start\":{\"line\":109,\"column\":5},\"end\":{\"line\":112,\"column\":5}},\"locations\":[{\"start\":{\"line\":109,\"column\":5},\"end\":{\"line\":112,\"column\":5}}]},\"16\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":-1},\"end\":{\"line\":115,\"column\":3}},\"locations\":[{\"start\":{\"line\":113,\"column\":-1},\"end\":{\"line\":115,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":117,\"loc\":{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":119,\"column\":3}},\"locations\":[{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":119,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":118,\"loc\":{\"start\":{\"line\":118,\"column\":52},\"end\":{\"line\":118,\"column\":79}},\"locations\":[{\"start\":{\"line\":118,\"column\":52},\"end\":{\"line\":118,\"column\":79}}]},\"19\":{\"type\":\"branch\",\"line\":118,\"loc\":{\"start\":{\"line\":118,\"column\":80},\"end\":{\"line\":118,\"column\":91}},\"locations\":[{\"start\":{\"line\":118,\"column\":80},\"end\":{\"line\":118,\"column\":91}}]},\"20\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":2},\"end\":{\"line\":126,\"column\":3}},\"locations\":[{\"start\":{\"line\":121,\"column\":2},\"end\":{\"line\":126,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":81},\"end\":{\"line\":124,\"column\":5}},\"locations\":[{\"start\":{\"line\":122,\"column\":81},\"end\":{\"line\":124,\"column\":5}}]},\"22\":{\"type\":\"branch\",\"line\":125,\"loc\":{\"start\":{\"line\":125,\"column\":-1},\"end\":{\"line\":126,\"column\":3}},\"locations\":[{\"start\":{\"line\":125,\"column\":-1},\"end\":{\"line\":126,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":10},\"end\":{\"line\":142,\"column\":3}},\"locations\":[{\"start\":{\"line\":128,\"column\":10},\"end\":{\"line\":142,\"column\":3}}]},\"24\":{\"type\":\"branch\",\"line\":129,\"loc\":{\"start\":{\"line\":129,\"column\":57},\"end\":{\"line\":129,\"column\":64}},\"locations\":[{\"start\":{\"line\":129,\"column\":57},\"end\":{\"line\":129,\"column\":64}}]},\"25\":{\"type\":\"branch\",\"line\":130,\"loc\":{\"start\":{\"line\":130,\"column\":-1},\"end\":{\"line\":132,\"column\":62}},\"locations\":[{\"start\":{\"line\":130,\"column\":-1},\"end\":{\"line\":132,\"column\":62}}]},\"26\":{\"type\":\"branch\",\"line\":132,\"loc\":{\"start\":{\"line\":132,\"column\":62},\"end\":{\"line\":132,\"column\":75}},\"locations\":[{\"start\":{\"line\":132,\"column\":62},\"end\":{\"line\":132,\"column\":75}}]},\"27\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":43},\"end\":{\"line\":133,\"column\":95}},\"locations\":[{\"start\":{\"line\":133,\"column\":43},\"end\":{\"line\":133,\"column\":95}}]},\"28\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":97},\"end\":{\"line\":138,\"column\":5}},\"locations\":[{\"start\":{\"line\":133,\"column\":97},\"end\":{\"line\":138,\"column\":5}}]},\"29\":{\"type\":\"branch\",\"line\":139,\"loc\":{\"start\":{\"line\":139,\"column\":-1},\"end\":{\"line\":142,\"column\":3}},\"locations\":[{\"start\":{\"line\":139,\"column\":-1},\"end\":{\"line\":142,\"column\":3}}]},\"30\":{\"type\":\"branch\",\"line\":144,\"loc\":{\"start\":{\"line\":144,\"column\":10},\"end\":{\"line\":151,\"column\":3}},\"locations\":[{\"start\":{\"line\":144,\"column\":10},\"end\":{\"line\":151,\"column\":3}}]},\"31\":{\"type\":\"branch\",\"line\":145,\"loc\":{\"start\":{\"line\":145,\"column\":49},\"end\":{\"line\":145,\"column\":108}},\"locations\":[{\"start\":{\"line\":145,\"column\":49},\"end\":{\"line\":145,\"column\":108}}]},\"32\":{\"type\":\"branch\",\"line\":145,\"loc\":{\"start\":{\"line\":145,\"column\":110},\"end\":{\"line\":149,\"column\":5}},\"locations\":[{\"start\":{\"line\":145,\"column\":110},\"end\":{\"line\":149,\"column\":5}}]},\"33\":{\"type\":\"branch\",\"line\":154,\"loc\":{\"start\":{\"line\":154,\"column\":10},\"end\":{\"line\":156,\"column\":3}},\"locations\":[{\"start\":{\"line\":154,\"column\":10},\"end\":{\"line\":156,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":155,\"loc\":{\"start\":{\"line\":155,\"column\":59},\"end\":{\"line\":155,\"column\":106}},\"locations\":[{\"start\":{\"line\":155,\"column\":59},\"end\":{\"line\":155,\"column\":106}}]},\"35\":{\"type\":\"branch\",\"line\":159,\"loc\":{\"start\":{\"line\":159,\"column\":10},\"end\":{\"line\":164,\"column\":3}},\"locations\":[{\"start\":{\"line\":159,\"column\":10},\"end\":{\"line\":164,\"column\":3}}]},\"36\":{\"type\":\"branch\",\"line\":163,\"loc\":{\"start\":{\"line\":163,\"column\":12},\"end\":{\"line\":163,\"column\":60}},\"locations\":[{\"start\":{\"line\":163,\"column\":12},\"end\":{\"line\":163,\"column\":60}}]},\"37\":{\"type\":\"branch\",\"line\":167,\"loc\":{\"start\":{\"line\":167,\"column\":12},\"end\":{\"line\":212,\"column\":3}},\"locations\":[{\"start\":{\"line\":167,\"column\":12},\"end\":{\"line\":212,\"column\":3}}]},\"38\":{\"type\":\"branch\",\"line\":171,\"loc\":{\"start\":{\"line\":171,\"column\":30},\"end\":{\"line\":173,\"column\":5}},\"locations\":[{\"start\":{\"line\":171,\"column\":30},\"end\":{\"line\":173,\"column\":5}}]},\"39\":{\"type\":\"branch\",\"line\":174,\"loc\":{\"start\":{\"line\":174,\"column\":-1},\"end\":{\"line\":176,\"column\":71}},\"locations\":[{\"start\":{\"line\":174,\"column\":-1},\"end\":{\"line\":176,\"column\":71}}]},\"40\":{\"type\":\"branch\",\"line\":176,\"loc\":{\"start\":{\"line\":176,\"column\":71},\"end\":{\"line\":183,\"column\":11}},\"locations\":[{\"start\":{\"line\":176,\"column\":71},\"end\":{\"line\":183,\"column\":11}}]},\"41\":{\"type\":\"branch\",\"line\":177,\"loc\":{\"start\":{\"line\":177,\"column\":76},\"end\":{\"line\":182,\"column\":7}},\"locations\":[{\"start\":{\"line\":177,\"column\":76},\"end\":{\"line\":182,\"column\":7}}]},\"42\":{\"type\":\"branch\",\"line\":183,\"loc\":{\"start\":{\"line\":183,\"column\":5},\"end\":{\"line\":209,\"column\":5}},\"locations\":[{\"start\":{\"line\":183,\"column\":5},\"end\":{\"line\":209,\"column\":5}}]},\"43\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":88},\"end\":{\"line\":193,\"column\":13}},\"locations\":[{\"start\":{\"line\":191,\"column\":88},\"end\":{\"line\":193,\"column\":13}}]},\"44\":{\"type\":\"branch\",\"line\":193,\"loc\":{\"start\":{\"line\":193,\"column\":7},\"end\":{\"line\":201,\"column\":7}},\"locations\":[{\"start\":{\"line\":193,\"column\":7},\"end\":{\"line\":201,\"column\":7}}]},\"45\":{\"type\":\"branch\",\"line\":194,\"loc\":{\"start\":{\"line\":194,\"column\":71},\"end\":{\"line\":200,\"column\":9}},\"locations\":[{\"start\":{\"line\":194,\"column\":71},\"end\":{\"line\":200,\"column\":9}}]},\"46\":{\"type\":\"branch\",\"line\":210,\"loc\":{\"start\":{\"line\":210,\"column\":-1},\"end\":{\"line\":212,\"column\":3}},\"locations\":[{\"start\":{\"line\":210,\"column\":-1},\"end\":{\"line\":212,\"column\":3}}]},\"47\":{\"type\":\"branch\",\"line\":214,\"loc\":{\"start\":{\"line\":214,\"column\":12},\"end\":{\"line\":233,\"column\":3}},\"locations\":[{\"start\":{\"line\":214,\"column\":12},\"end\":{\"line\":233,\"column\":3}}]},\"48\":{\"type\":\"branch\",\"line\":222,\"loc\":{\"start\":{\"line\":222,\"column\":75},\"end\":{\"line\":230,\"column\":5}},\"locations\":[{\"start\":{\"line\":222,\"column\":75},\"end\":{\"line\":230,\"column\":5}}]},\"49\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":48},\"end\":{\"line\":223,\"column\":91}},\"locations\":[{\"start\":{\"line\":223,\"column\":48},\"end\":{\"line\":223,\"column\":91}}]},\"50\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":93},\"end\":{\"line\":225,\"column\":7}},\"locations\":[{\"start\":{\"line\":223,\"column\":93},\"end\":{\"line\":225,\"column\":7}}]},\"51\":{\"type\":\"branch\",\"line\":226,\"loc\":{\"start\":{\"line\":226,\"column\":-1},\"end\":{\"line\":230,\"column\":5}},\"locations\":[{\"start\":{\"line\":226,\"column\":-1},\"end\":{\"line\":230,\"column\":5}}]},\"52\":{\"type\":\"branch\",\"line\":231,\"loc\":{\"start\":{\"line\":231,\"column\":-1},\"end\":{\"line\":233,\"column\":3}},\"locations\":[{\"start\":{\"line\":231,\"column\":-1},\"end\":{\"line\":233,\"column\":3}}]},\"53\":{\"type\":\"branch\",\"line\":216,\"loc\":{\"start\":{\"line\":216,\"column\":6},\"end\":{\"line\":216,\"column\":65}},\"locations\":[{\"start\":{\"line\":216,\"column\":6},\"end\":{\"line\":216,\"column\":65}}]},\"54\":{\"type\":\"branch\",\"line\":277,\"loc\":{\"start\":{\"line\":277,\"column\":10},\"end\":{\"line\":279,\"column\":3}},\"locations\":[{\"start\":{\"line\":277,\"column\":10},\"end\":{\"line\":279,\"column\":3}}]},\"55\":{\"type\":\"branch\",\"line\":281,\"loc\":{\"start\":{\"line\":281,\"column\":10},\"end\":{\"line\":283,\"column\":3}},\"locations\":[{\"start\":{\"line\":281,\"column\":10},\"end\":{\"line\":283,\"column\":3}}]},\"56\":{\"type\":\"branch\",\"line\":285,\"loc\":{\"start\":{\"line\":285,\"column\":2},\"end\":{\"line\":288,\"column\":3}},\"locations\":[{\"start\":{\"line\":285,\"column\":2},\"end\":{\"line\":288,\"column\":3}}]},\"57\":{\"type\":\"branch\",\"line\":295,\"loc\":{\"start\":{\"line\":295,\"column\":2},\"end\":{\"line\":301,\"column\":3}},\"locations\":[{\"start\":{\"line\":295,\"column\":2},\"end\":{\"line\":301,\"column\":3}}]},\"58\":{\"type\":\"branch\",\"line\":297,\"loc\":{\"start\":{\"line\":297,\"column\":13},\"end\":{\"line\":299,\"column\":5}},\"locations\":[{\"start\":{\"line\":297,\"column\":13},\"end\":{\"line\":299,\"column\":5}}]},\"59\":{\"type\":\"branch\",\"line\":300,\"loc\":{\"start\":{\"line\":300,\"column\":-1},\"end\":{\"line\":301,\"column\":3}},\"locations\":[{\"start\":{\"line\":300,\"column\":-1},\"end\":{\"line\":301,\"column\":3}}]},\"60\":{\"type\":\"branch\",\"line\":303,\"loc\":{\"start\":{\"line\":303,\"column\":2},\"end\":{\"line\":305,\"column\":3}},\"locations\":[{\"start\":{\"line\":303,\"column\":2},\"end\":{\"line\":305,\"column\":3}}]}},\"b\":{\"0\":[27],\"1\":[32],\"2\":[131],\"3\":[36],\"4\":[179],\"5\":[18],\"6\":[18],\"7\":[12],\"8\":[6],\"9\":[1],\"10\":[0],\"11\":[144],\"12\":[28],\"13\":[27],\"14\":[21],\"15\":[7],\"16\":[21],\"17\":[28],\"18\":[27],\"19\":[1],\"20\":[19],\"21\":[1],\"22\":[18],\"23\":[29],\"24\":[5],\"25\":[24],\"26\":[16],\"27\":[16],\"28\":[0],\"29\":[24],\"30\":[21],\"31\":[13],\"32\":[1],\"33\":[1],\"34\":[3],\"35\":[28],\"36\":[56],\"37\":[28],\"38\":[20],\"39\":[8],\"40\":[5],\"41\":[4],\"42\":[3],\"43\":[1],\"44\":[2],\"45\":[16],\"46\":[1],\"47\":[7],\"48\":[13],\"49\":[11],\"50\":[2],\"51\":[11],\"52\":[5],\"53\":[22],\"54\":[25],\"55\":[1],\"56\":[1],\"57\":[18],\"58\":[1],\"59\":[17],\"60\":[18]},\"fnMap\":{\"0\":{\"name\":\"blockToHeader\",\"decl\":{\"start\":{\"line\":45,\"column\":12},\"end\":{\"line\":47,\"column\":3}},\"loc\":{\"start\":{\"line\":45,\"column\":12},\"end\":{\"line\":47,\"column\":3}},\"line\":45},\"1\":{\"name\":\"set unfinalizedBlocks\",\"decl\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":51,\"column\":3}},\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":51,\"column\":3}},\"line\":49},\"2\":{\"name\":\"get unfinalizedBlocks\",\"decl\":{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"loc\":{\"start\":{\"line\":53,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"line\":53},\"3\":{\"name\":\"set finalizedHeader\",\"decl\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"line\":58},\"4\":{\"name\":\"get finalizedHeader\",\"decl\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":62},\"5\":{\"name\":\"BaseUnfinalizedBlocksService\",\"decl\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":67,\"column\":109}},\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":67,\"column\":109}},\"line\":67},\"6\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"loc\":{\"start\":{\"line\":69,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"line\":69},\"7\":{\"name\":\"get finalizedBlockNumber\",\"decl\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"loc\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"line\":95},\"8\":{\"name\":\"processUnfinalizedBlockHeader\",\"decl\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"loc\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"line\":99},\"9\":{\"name\":\"processUnfinalizedBlocks\",\"decl\":{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":119,\"column\":3}},\"loc\":{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":119,\"column\":3}},\"line\":117},\"10\":{\"name\":\"registerFinalizedBlock\",\"decl\":{\"start\":{\"line\":121,\"column\":2},\"end\":{\"line\":126,\"column\":3}},\"loc\":{\"start\":{\"line\":121,\"column\":2},\"end\":{\"line\":126,\"column\":3}},\"line\":121},\"11\":{\"name\":\"registerUnfinalizedBlock\",\"decl\":{\"start\":{\"line\":128,\"column\":10},\"end\":{\"line\":142,\"column\":3}},\"loc\":{\"start\":{\"line\":128,\"column\":10},\"end\":{\"line\":142,\"column\":3}},\"line\":128},\"12\":{\"name\":\"deleteFinalizedBlock\",\"decl\":{\"start\":{\"line\":144,\"column\":10},\"end\":{\"line\":151,\"column\":3}},\"loc\":{\"start\":{\"line\":144,\"column\":10},\"end\":{\"line\":151,\"column\":3}},\"line\":144},\"13\":{\"name\":\"removeFinalized\",\"decl\":{\"start\":{\"line\":154,\"column\":10},\"end\":{\"line\":156,\"column\":3}},\"loc\":{\"start\":{\"line\":154,\"column\":10},\"end\":{\"line\":156,\"column\":3}},\"line\":154},\"14\":{\"name\":\"getClosestRecord\",\"decl\":{\"start\":{\"line\":159,\"column\":10},\"end\":{\"line\":164,\"column\":3}},\"loc\":{\"start\":{\"line\":159,\"column\":10},\"end\":{\"line\":164,\"column\":3}},\"line\":159},\"15\":{\"name\":\"hasForked\",\"decl\":{\"start\":{\"line\":167,\"column\":12},\"end\":{\"line\":212,\"column\":3}},\"loc\":{\"start\":{\"line\":167,\"column\":12},\"end\":{\"line\":212,\"column\":3}},\"line\":167},\"16\":{\"name\":\"getLastCorrectFinalizedBlock\",\"decl\":{\"start\":{\"line\":214,\"column\":12},\"end\":{\"line\":233,\"column\":3}},\"loc\":{\"start\":{\"line\":214,\"column\":12},\"end\":{\"line\":233,\"column\":3}},\"line\":214},\"17\":{\"name\":\"findFinalizedUsingPOI\",\"decl\":{\"start\":{\"line\":236,\"column\":12},\"end\":{\"line\":275,\"column\":3}},\"loc\":{\"start\":{\"line\":236,\"column\":12},\"end\":{\"line\":275,\"column\":3}},\"line\":236},\"18\":{\"name\":\"saveUnfinalizedBlocks\",\"decl\":{\"start\":{\"line\":277,\"column\":10},\"end\":{\"line\":279,\"column\":3}},\"loc\":{\"start\":{\"line\":277,\"column\":10},\"end\":{\"line\":279,\"column\":3}},\"line\":277},\"19\":{\"name\":\"saveLastFinalizedVerifiedHeight\",\"decl\":{\"start\":{\"line\":281,\"column\":10},\"end\":{\"line\":283,\"column\":3}},\"loc\":{\"start\":{\"line\":281,\"column\":10},\"end\":{\"line\":283,\"column\":3}},\"line\":281},\"20\":{\"name\":\"resetUnfinalizedBlocks\",\"decl\":{\"start\":{\"line\":285,\"column\":2},\"end\":{\"line\":288,\"column\":3}},\"loc\":{\"start\":{\"line\":285,\"column\":2},\"end\":{\"line\":288,\"column\":3}},\"line\":285},\"21\":{\"name\":\"resetLastFinalizedVerifiedHeight\",\"decl\":{\"start\":{\"line\":290,\"column\":2},\"end\":{\"line\":292,\"column\":3}},\"loc\":{\"start\":{\"line\":290,\"column\":2},\"end\":{\"line\":292,\"column\":3}},\"line\":290},\"22\":{\"name\":\"getMetadataUnfinalizedBlocks\",\"decl\":{\"start\":{\"line\":295,\"column\":2},\"end\":{\"line\":301,\"column\":3}},\"loc\":{\"start\":{\"line\":295,\"column\":2},\"end\":{\"line\":301,\"column\":3}},\"line\":295},\"23\":{\"name\":\"getLastFinalizedVerifiedHeight\",\"decl\":{\"start\":{\"line\":303,\"column\":2},\"end\":{\"line\":305,\"column\":3}},\"loc\":{\"start\":{\"line\":303,\"column\":2},\"end\":{\"line\":305,\"column\":3}},\"line\":303}},\"f\":{\"0\":27,\"1\":32,\"2\":131,\"3\":36,\"4\":179,\"5\":18,\"6\":18,\"7\":144,\"8\":28,\"9\":28,\"10\":19,\"11\":29,\"12\":21,\"13\":1,\"14\":28,\"15\":28,\"16\":7,\"17\":0,\"18\":25,\"19\":1,\"20\":1,\"21\":0,\"22\":18,\"23\":18}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":33}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":39}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":39}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":44}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":53}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":51}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":33}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":25}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/test.store.worker.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/test.store.worker.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":44}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":71}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":31}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":61}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":23}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":37}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":3}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":57}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":31}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":16}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":3}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":22}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":4}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":13}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":2}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":38}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":25,\"column\":38}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":25,\"column\":38}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":25,\"column\":38}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":25,\"column\":38}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/utils.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/utils.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":29}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":50}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":71}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":3}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":60}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":55}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":114}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":5}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":44}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":104}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":77}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":39}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":3}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":35}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":17}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":3}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":37}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":64}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":100}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":61}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":50}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":53}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":19}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":65}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":77}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":84}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":52}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":88}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":1,\"26\":1,\"27\":0,\"28\":0,\"29\":0,\"30\":1,\"31\":1,\"32\":1,\"33\":0,\"34\":0,\"35\":0,\"36\":1,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"unwrapProxy\",\"decl\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"loc\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"line\":14},\"1\":{\"name\":\"unwrapProxyArgs\",\"decl\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"loc\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"line\":28},\"2\":{\"name\":\"BlockUnavailableError\",\"decl\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":33},\"3\":{\"name\":\"isBlockUnavailableError\",\"decl\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"loc\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"line\":38}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.builder.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.builder.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":42}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":28}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":39}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":28}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":33}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":18}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":17}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":2}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":23}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":15}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":14}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":2}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":33}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":28}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":13}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":2}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":69}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":37}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":71}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":29}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":97}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":82}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":53}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":25}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":51}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":55}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":40}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":14}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":66}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":24}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":34}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":28}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":5}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":16}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":105}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":5}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":21}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":70}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":36}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":27}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":30}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":67}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":7}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":78}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":7}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":3}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":60}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":30}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":47}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":74}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":50}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":14}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":74}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":7}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":36}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":39}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":12}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":60}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":5}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":3}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":60}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":38}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":14}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":39}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":19}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":16}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":69}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":10}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":9}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":13}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":5}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":9}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":40}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":39}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":19}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":20}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":9}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":17}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":39}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":19}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":17}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":9}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":5}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":3}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":0}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":72}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":31}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":0}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":48}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":11}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":55}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":22}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":47}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":45}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":22}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":18}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":26}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":11}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":10}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":0}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":40}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":13}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":23}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":15}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":11}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":19}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":26}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":19}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":96}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":10}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":18}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":7}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":7}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":3}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":1}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":0}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":67}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":66}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":27}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":0}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":86}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":70}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":3}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":64}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":27}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":15}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":18}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":24}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":66}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":0}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":43}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":3}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":0}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":86}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":32}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":30}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":3}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":1}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":0}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":60}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":62}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":26}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":0}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":5}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":38}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":91}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":62}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":75}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":7}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":119}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":91}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":0}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":40}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":47}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":7}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":0}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":47}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":55}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":7}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":0}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":38}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":59}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":21}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":27}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":7}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":7}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":3}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":0}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":64}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":17}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":27}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":15}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":17}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":19}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":20}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":30}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":32}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":48}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":9}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":16}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":14}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":14}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":6}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":0}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":35}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":3}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":0}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":86}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":32}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":30}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":3}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":0}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":38}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":35}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":3}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":6,\"26\":6,\"27\":6,\"28\":1,\"29\":4,\"30\":4,\"31\":4,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":2,\"46\":2,\"47\":2,\"48\":2,\"49\":2,\"50\":2,\"51\":0,\"52\":0,\"53\":2,\"54\":2,\"55\":2,\"56\":2,\"57\":2,\"58\":2,\"59\":0,\"60\":0,\"61\":2,\"62\":2,\"63\":2,\"64\":1,\"65\":1,\"66\":4,\"67\":2,\"68\":2,\"69\":2,\"70\":2,\"71\":2,\"72\":0,\"73\":0,\"74\":2,\"75\":2,\"76\":2,\"77\":0,\"78\":0,\"79\":4,\"80\":1,\"81\":1,\"82\":2,\"83\":2,\"84\":2,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":2,\"94\":2,\"95\":2,\"96\":2,\"97\":2,\"98\":2,\"99\":2,\"100\":2,\"101\":2,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":2,\"108\":1,\"109\":1,\"110\":2,\"111\":2,\"112\":2,\"113\":2,\"114\":2,\"115\":2,\"116\":0,\"117\":0,\"118\":0,\"119\":2,\"120\":2,\"121\":2,\"122\":2,\"123\":2,\"124\":2,\"125\":2,\"126\":2,\"127\":2,\"128\":2,\"129\":2,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":2,\"137\":2,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":0,\"146\":0,\"147\":1,\"148\":1,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":1,\"158\":1,\"159\":1,\"160\":0,\"161\":0,\"162\":1,\"163\":1,\"164\":1,\"165\":1,\"166\":1,\"167\":1,\"168\":1,\"169\":1,\"170\":1,\"171\":1,\"172\":1,\"173\":1,\"174\":1,\"175\":2,\"176\":2,\"177\":2,\"178\":0,\"179\":2,\"180\":2,\"181\":2,\"182\":0,\"183\":2,\"184\":2,\"185\":2,\"186\":2,\"187\":2,\"188\":0,\"189\":0,\"190\":2,\"191\":2,\"192\":1,\"193\":1,\"194\":2,\"195\":2,\"196\":2,\"197\":2,\"198\":2,\"199\":2,\"200\":2,\"201\":2,\"202\":2,\"203\":2,\"204\":2,\"205\":2,\"206\":2,\"207\":2,\"208\":2,\"209\":2,\"210\":2,\"211\":1,\"212\":1,\"213\":1,\"214\":2,\"215\":2,\"216\":1,\"217\":1,\"218\":2,\"219\":2,\"220\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"locations\":[{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"locations\":[{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":32,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":64,\"column\":3}},\"locations\":[{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":64,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":15},\"end\":{\"line\":53,\"column\":5}},\"locations\":[{\"start\":{\"line\":51,\"column\":15},\"end\":{\"line\":53,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":28},\"end\":{\"line\":55,\"column\":68}},\"locations\":[{\"start\":{\"line\":55,\"column\":28},\"end\":{\"line\":55,\"column\":68}}]},\"5\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":18},\"end\":{\"line\":63,\"column\":5}},\"locations\":[{\"start\":{\"line\":58,\"column\":18},\"end\":{\"line\":63,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":29},\"end\":{\"line\":61,\"column\":7}},\"locations\":[{\"start\":{\"line\":59,\"column\":29},\"end\":{\"line\":61,\"column\":7}}]},\"7\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":33},\"end\":{\"line\":62,\"column\":75}},\"locations\":[{\"start\":{\"line\":62,\"column\":33},\"end\":{\"line\":62,\"column\":75}}]},\"8\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":10},\"end\":{\"line\":80,\"column\":3}},\"locations\":[{\"start\":{\"line\":66,\"column\":10},\"end\":{\"line\":80,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":29},\"end\":{\"line\":79,\"column\":5}},\"locations\":[{\"start\":{\"line\":67,\"column\":29},\"end\":{\"line\":79,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":7},\"end\":{\"line\":74,\"column\":7}},\"locations\":[{\"start\":{\"line\":72,\"column\":7},\"end\":{\"line\":74,\"column\":7}}]},\"11\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":5},\"end\":{\"line\":79,\"column\":5}},\"locations\":[{\"start\":{\"line\":77,\"column\":5},\"end\":{\"line\":79,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":10},\"end\":{\"line\":108,\"column\":3}},\"locations\":[{\"start\":{\"line\":82,\"column\":10},\"end\":{\"line\":108,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":85,\"loc\":{\"start\":{\"line\":85,\"column\":13},\"end\":{\"line\":93,\"column\":5}},\"locations\":[{\"start\":{\"line\":85,\"column\":13},\"end\":{\"line\":93,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":6},\"end\":{\"line\":107,\"column\":5}},\"locations\":[{\"start\":{\"line\":102,\"column\":6},\"end\":{\"line\":107,\"column\":5}}]},\"15\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":12},\"end\":{\"line\":138,\"column\":3}},\"locations\":[{\"start\":{\"line\":110,\"column\":12},\"end\":{\"line\":138,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":26},\"end\":{\"line\":137,\"column\":5}},\"locations\":[{\"start\":{\"line\":113,\"column\":26},\"end\":{\"line\":137,\"column\":5}}]},\"17\":{\"type\":\"branch\",\"line\":130,\"loc\":{\"start\":{\"line\":130,\"column\":8},\"end\":{\"line\":136,\"column\":7}},\"locations\":[{\"start\":{\"line\":130,\"column\":8},\"end\":{\"line\":136,\"column\":7}}]},\"18\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":37},\"end\":{\"line\":123,\"column\":9}},\"locations\":[{\"start\":{\"line\":115,\"column\":37},\"end\":{\"line\":123,\"column\":9}}]},\"19\":{\"type\":\"branch\",\"line\":116,\"loc\":{\"start\":{\"line\":116,\"column\":21},\"end\":{\"line\":120,\"column\":17}},\"locations\":[{\"start\":{\"line\":116,\"column\":21},\"end\":{\"line\":120,\"column\":17}}]},\"20\":{\"type\":\"branch\",\"line\":175,\"loc\":{\"start\":{\"line\":175,\"column\":2},\"end\":{\"line\":192,\"column\":3}},\"locations\":[{\"start\":{\"line\":175,\"column\":2},\"end\":{\"line\":192,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":27},\"end\":{\"line\":191,\"column\":5}},\"locations\":[{\"start\":{\"line\":186,\"column\":27},\"end\":{\"line\":191,\"column\":5}}]},\"22\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":20},\"end\":{\"line\":190,\"column\":7}},\"locations\":[{\"start\":{\"line\":188,\"column\":20},\"end\":{\"line\":190,\"column\":7}}]},\"23\":{\"type\":\"branch\",\"line\":194,\"loc\":{\"start\":{\"line\":194,\"column\":9},\"end\":{\"line\":211,\"column\":3}},\"locations\":[{\"start\":{\"line\":194,\"column\":9},\"end\":{\"line\":211,\"column\":3}}]},\"24\":{\"type\":\"branch\",\"line\":214,\"loc\":{\"start\":{\"line\":214,\"column\":12},\"end\":{\"line\":216,\"column\":3}},\"locations\":[{\"start\":{\"line\":214,\"column\":12},\"end\":{\"line\":216,\"column\":3}}]},\"25\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":220,\"column\":3}},\"locations\":[{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":220,\"column\":3}}]}},\"b\":{\"0\":[6],\"1\":[4],\"2\":[2],\"3\":[0],\"4\":[4],\"5\":[2],\"6\":[0],\"7\":[2],\"8\":[4],\"9\":[2],\"10\":[0],\"11\":[0],\"12\":[2],\"13\":[0],\"14\":[0],\"15\":[2],\"16\":[2],\"17\":[0],\"18\":[2],\"19\":[0],\"20\":[2],\"21\":[2],\"22\":[0],\"23\":[2],\"24\":[2],\"25\":[2]},\"fnMap\":{\"0\":{\"name\":\"isRequest\",\"decl\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"loc\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"line\":26},\"1\":{\"name\":\"isResponse\",\"decl\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"loc\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"line\":30},\"2\":{\"name\":\"WorkerIO\",\"decl\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":64,\"column\":3}},\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":64,\"column\":3}},\"line\":45},\"3\":{\"name\":\"Object.assign\",\"decl\":{\"start\":{\"line\":62,\"column\":33},\"end\":{\"line\":62,\"column\":75}},\"loc\":{\"start\":{\"line\":62,\"column\":33},\"end\":{\"line\":62,\"column\":75}},\"line\":62},\"4\":{\"name\":\"handleMessage\",\"decl\":{\"start\":{\"line\":66,\"column\":10},\"end\":{\"line\":80,\"column\":3}},\"loc\":{\"start\":{\"line\":66,\"column\":10},\"end\":{\"line\":80,\"column\":3}},\"line\":66},\"5\":{\"name\":\"handleRequest\",\"decl\":{\"start\":{\"line\":82,\"column\":10},\"end\":{\"line\":108,\"column\":3}},\"loc\":{\"start\":{\"line\":82,\"column\":10},\"end\":{\"line\":108,\"column\":3}},\"line\":82},\"6\":{\"name\":\"execute\",\"decl\":{\"start\":{\"line\":110,\"column\":12},\"end\":{\"line\":138,\"column\":3}},\"loc\":{\"start\":{\"line\":110,\"column\":12},\"end\":{\"line\":138,\"column\":3}},\"line\":110},\"7\":{\"name\":\"responseListeners.<computed>\",\"decl\":{\"start\":{\"line\":115,\"column\":37},\"end\":{\"line\":123,\"column\":9}},\"loc\":{\"start\":{\"line\":115,\"column\":37},\"end\":{\"line\":123,\"column\":9}},\"line\":115},\"8\":{\"name\":\"WorkerHost\",\"decl\":{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":147,\"column\":3}},\"loc\":{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":147,\"column\":3}},\"line\":145},\"9\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":149,\"column\":9},\"end\":{\"line\":157,\"column\":3}},\"loc\":{\"start\":{\"line\":149,\"column\":9},\"end\":{\"line\":157,\"column\":3}},\"line\":149},\"10\":{\"name\":\"getReqId\",\"decl\":{\"start\":{\"line\":160,\"column\":12},\"end\":{\"line\":162,\"column\":3}},\"loc\":{\"start\":{\"line\":160,\"column\":12},\"end\":{\"line\":162,\"column\":3}},\"line\":160},\"11\":{\"name\":\"Worker\",\"decl\":{\"start\":{\"line\":175,\"column\":2},\"end\":{\"line\":192,\"column\":3}},\"loc\":{\"start\":{\"line\":175,\"column\":2},\"end\":{\"line\":192,\"column\":3}},\"line\":175},\"12\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":194,\"column\":9},\"end\":{\"line\":211,\"column\":3}},\"loc\":{\"start\":{\"line\":194,\"column\":9},\"end\":{\"line\":211,\"column\":3}},\"line\":194},\"13\":{\"name\":\"getReqId\",\"decl\":{\"start\":{\"line\":214,\"column\":12},\"end\":{\"line\":216,\"column\":3}},\"loc\":{\"start\":{\"line\":214,\"column\":12},\"end\":{\"line\":216,\"column\":3}},\"line\":214},\"14\":{\"name\":\"terminate\",\"decl\":{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":220,\"column\":3}},\"loc\":{\"start\":{\"line\":218,\"column\":2},\"end\":{\"line\":220,\"column\":3}},\"line\":218}},\"f\":{\"0\":6,\"1\":4,\"2\":2,\"3\":2,\"4\":4,\"5\":2,\"6\":2,\"7\":2,\"8\":0,\"9\":0,\"10\":0,\"11\":2,\"12\":2,\"13\":2,\"14\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.cache.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.cache.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":40}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":40}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":25}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":51}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":38}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":2}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":75}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":61}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":10}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":40}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":40}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":4}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":2}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":61}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":10}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":36}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":36}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":4}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":13}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":41}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":40}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":23}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":54}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":5}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":21}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":39}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":3}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":1,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":1,\"37\":1,\"38\":0,\"39\":0,\"40\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"hostCacheToCache\",\"decl\":{\"start\":{\"line\":16,\"column\":32},\"end\":{\"line\":21,\"column\":2}},\"loc\":{\"start\":{\"line\":16,\"column\":32},\"end\":{\"line\":21,\"column\":2}},\"line\":16},\"1\":{\"name\":\"cacheHostFunctions\",\"decl\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"loc\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"line\":23},\"2\":{\"name\":\"WorkerInMemoryCacheService\",\"decl\":{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":32},\"3\":{\"name\":\"getCache\",\"decl\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":40,\"column\":3}},\"line\":38}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.connectionPoolState.manager.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.connectionPoolState.manager.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":49}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":56}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":57}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":8}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":29}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":21}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":30}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":40}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":42}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":95}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":78}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":78}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":21}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":12}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":41}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":76}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":21}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":13}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":35}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":21}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":53}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":65}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":108}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":107}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":56}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":2}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":84}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":33}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":25}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":39}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":37}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":30}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":30}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":28}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":30}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":33}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":2}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":83}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":52}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":31}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":10}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":89}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":105}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":100}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":98}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":99}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":99}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":95}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":99}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":105}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":4}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":13}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":79}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":43}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":1}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":59}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":23}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":54}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":5}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":3}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":94}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":70}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":76}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":61}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":61}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":21}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":12}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":40}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":73}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":3}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":61}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":21}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":13}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":35}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":20}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":78}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":3}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":0}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":52}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":49}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":3}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":64}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":57}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":3}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":61}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":82}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":74}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":3}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":0}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":61}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":81}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":76}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":3}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":111}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":63}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":3}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":0}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":110}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":59}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":3}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":55}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":52}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":3}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":1,\"70\":1,\"71\":0,\"72\":0,\"73\":1,\"74\":1,\"75\":0,\"76\":0,\"77\":1,\"78\":1,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":1,\"85\":1,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":1,\"93\":1,\"94\":0,\"95\":0,\"96\":1,\"97\":1,\"98\":0,\"99\":0,\"100\":1,\"101\":1,\"102\":1,\"103\":0,\"104\":0,\"105\":1,\"106\":1,\"107\":1,\"108\":0,\"109\":0,\"110\":1,\"111\":1,\"112\":0,\"113\":0,\"114\":1,\"115\":1,\"116\":0,\"117\":0,\"118\":1,\"119\":1,\"120\":0,\"121\":0,\"122\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"connectionPoolStateHostFunctions\",\"decl\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"loc\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"line\":45},\"1\":{\"name\":\"WorkerConnectionPoolStateManager\",\"decl\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"loc\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"line\":65},\"2\":{\"name\":\"getNextConnectedEndpoint\",\"decl\":{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"loc\":{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"line\":71},\"3\":{\"name\":\"addToConnections\",\"decl\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"line\":75},\"4\":{\"name\":\"getFieldValue\",\"decl\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"loc\":{\"start\":{\"line\":79,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"line\":79},\"5\":{\"name\":\"setFieldValue\",\"decl\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":92,\"column\":3}},\"loc\":{\"start\":{\"line\":86,\"column\":2},\"end\":{\"line\":92,\"column\":3}},\"line\":86},\"6\":{\"name\":\"getSuspendedEndpoints\",\"decl\":{\"start\":{\"line\":94,\"column\":2},\"end\":{\"line\":96,\"column\":3}},\"loc\":{\"start\":{\"line\":94,\"column\":2},\"end\":{\"line\":96,\"column\":3}},\"line\":94},\"7\":{\"name\":\"removeFromConnections\",\"decl\":{\"start\":{\"line\":98,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"loc\":{\"start\":{\"line\":98,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"line\":98},\"8\":{\"name\":\"handleApiError\",\"decl\":{\"start\":{\"line\":103,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"loc\":{\"start\":{\"line\":103,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"line\":103},\"9\":{\"name\":\"handleApiSuccess\",\"decl\":{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":110,\"column\":3}},\"loc\":{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":110,\"column\":3}},\"line\":108},\"10\":{\"name\":\"handleBatchApiSuccess\",\"decl\":{\"start\":{\"line\":112,\"column\":2},\"end\":{\"line\":114,\"column\":3}},\"loc\":{\"start\":{\"line\":112,\"column\":2},\"end\":{\"line\":114,\"column\":3}},\"line\":112},\"11\":{\"name\":\"handleBatchApiError\",\"decl\":{\"start\":{\"line\":116,\"column\":2},\"end\":{\"line\":118,\"column\":3}},\"loc\":{\"start\":{\"line\":116,\"column\":2},\"end\":{\"line\":118,\"column\":3}},\"line\":116},\"12\":{\"name\":\"getDisconnectedEndpoints\",\"decl\":{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":122,\"column\":3}},\"loc\":{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":122,\"column\":3}},\"line\":120}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.dynamic-ds.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.dynamic-ds.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":49}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":74}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":33}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":78}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":54}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":2}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":64}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":37}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":35}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":2}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":13}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":74}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":48}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":23}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":54}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":5}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":3}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":34}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":96}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":72}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":85}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":90}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":3}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":48}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":54}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":3}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":1}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":104}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":10}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":102}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":98}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":4}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":1,\"25\":1,\"26\":0,\"27\":0,\"28\":1,\"29\":1,\"30\":0,\"31\":0,\"32\":0,\"33\":1,\"34\":1,\"35\":0,\"36\":0,\"37\":1,\"38\":1,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"WorkerDynamicDsService\",\"decl\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"line\":20},\"1\":{\"name\":\"get dynamicDatasources\",\"decl\":{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"loc\":{\"start\":{\"line\":26,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"line\":26},\"2\":{\"name\":\"createDynamicDatasource\",\"decl\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":33,\"column\":3}},\"loc\":{\"start\":{\"line\":30,\"column\":2},\"end\":{\"line\":33,\"column\":3}},\"line\":30},\"3\":{\"name\":\"getDynamicDatasources\",\"decl\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":37,\"column\":3}},\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":37,\"column\":3}},\"line\":35},\"4\":{\"name\":\"dynamicDsHostFunctions\",\"decl\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"loc\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"line\":40}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":45}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":49}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":67}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":39}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":70}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":56}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":49}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":71}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":87}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":36}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":19}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":22}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":24}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":24}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":2}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":56}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":40}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":23}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":29}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":45}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":82}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":3}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":56}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":30}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":30}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":84}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":50}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":109}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":14}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":48}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":58}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":26}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":5}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":102}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":3}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":70}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":9}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":47}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":98}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":42}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":38}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":37}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":45}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":35}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":68}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":11}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":66}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":45}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":9}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":49}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":83}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":49}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":9}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":22}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":34}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":15}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":7}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":57}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":14}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":5}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":3}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":69}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":9}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":30}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":47}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":32}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":64}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":7}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":40}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":63}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":64}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":101}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":22}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":40}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":71}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":7}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":14}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":15}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":31}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":5}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":3}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":34}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":50}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":3}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":0}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":35}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":27}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":3}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":0}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":29}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":28}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":3}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":1,\"46\":1,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":1,\"75\":1,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":1,\"100\":1,\"101\":0,\"102\":0,\"103\":1,\"104\":1,\"105\":0,\"106\":0,\"107\":1,\"108\":1,\"109\":0,\"110\":0,\"111\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"BaseWorkerService\",\"decl\":{\"start\":{\"line\":39,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"loc\":{\"start\":{\"line\":39,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"line\":39},\"1\":{\"name\":\"fetchBlock\",\"decl\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"loc\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":74,\"column\":3}},\"line\":47},\"2\":{\"name\":\"processBlock\",\"decl\":{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"loc\":{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"line\":76},\"3\":{\"name\":\"get numFetchedBlocks\",\"decl\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":103,\"column\":3}},\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":103,\"column\":3}},\"line\":101},\"4\":{\"name\":\"get numFetchingBlocks\",\"decl\":{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"loc\":{\"start\":{\"line\":105,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"line\":105},\"5\":{\"name\":\"get isIndexing\",\"decl\":{\"start\":{\"line\":109,\"column\":2},\"end\":{\"line\":111,\"column\":3}},\"loc\":{\"start\":{\"line\":109,\"column\":2},\"end\":{\"line\":111,\"column\":3}},\"line\":109}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.store.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.store.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":58}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":40}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":25}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":37}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":64}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":20}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":19}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":15}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":47}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":21}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":19}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":36}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":47}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":22}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":89}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":69}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":66}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":85}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":61}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":68}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":2}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":51}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":13}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":20}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":21}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":23}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":13}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":20}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":20}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":16}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":20}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":2}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":76}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":45}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":61}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":10}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":40}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":54}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":56}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":60}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":40}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":54}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":54}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":46}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":54}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":4}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":2}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":61}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":10}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":36}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":50}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":52}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":56}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":36}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":50}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":50}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":42}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":50}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":4}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":1,\"56\":2,\"57\":2,\"58\":2,\"59\":2,\"60\":2,\"61\":2,\"62\":2,\"63\":2,\"64\":2,\"65\":2,\"66\":2,\"67\":2,\"68\":2},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":69,\"column\":1}},\"locations\":[{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":69,\"column\":1}}]}},\"b\":{\"0\":[2]},\"fnMap\":{\"0\":{\"name\":\"hostStoreToStore\",\"decl\":{\"start\":{\"line\":43,\"column\":32},\"end\":{\"line\":55,\"column\":2}},\"loc\":{\"start\":{\"line\":43,\"column\":32},\"end\":{\"line\":55,\"column\":2}},\"line\":43},\"1\":{\"name\":\"storeHostFunctions\",\"decl\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":69,\"column\":1}},\"loc\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":69,\"column\":1}},\"line\":57}},\"f\":{\"0\":0,\"1\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":33}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":45}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":48}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":63}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":57}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":39}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":45}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":56}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":74}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":56}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":71}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":66}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":84}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":8}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":35}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":26}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":30}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":46}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":101}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":73}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":84}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":100}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":35}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":42}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":44}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":111}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":32}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":47}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":48}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":106}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":18}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":46}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":11}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":3}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":21}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":26}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":50}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":46}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":19}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":1}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":78}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":50}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":28}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":60}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":51}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":74}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":60}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":49}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":56}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":50}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":30}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":1}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":60}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":59}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":50}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":10}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":13}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":50}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":51}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":41}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":4}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":1}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":105}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":50}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":57}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":1}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":0}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":60}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":76}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":50}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":44}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":1}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":60}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":52}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":50}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":40}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":1}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":60}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":53}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":50}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":41}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":1}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":0}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":79}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":42}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":1}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":0}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":40}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":36}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":40}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":48}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":50}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":40}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":42}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":46}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":60}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":34}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":29}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":25}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":37}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":39}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":29}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":31}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":35}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":49}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":2}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":0}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":66}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":17}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":15}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":21}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":22}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":14}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":18}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":20}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":27}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":2}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":33}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":25}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":76}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":42}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":44}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":108}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":58}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":98}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":5}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":62}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":24}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":23}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":23}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":27}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":35}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":37}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":6}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":5}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":62}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":22}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":17}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":19}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":23}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":24}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":16}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":20}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":22}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":29}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":6}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":10}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":4}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":1}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":0}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":42}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":31}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":112}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":4}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":44}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":2}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":21}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":57}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":15}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":15}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":42}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":57}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":65}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":15}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":21}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":52}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":38}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":61}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":45}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":4}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":15}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":57}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":5}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":35}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":35}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":50}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":118}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":63}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":6}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":8}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":4}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":0}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":46}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":0}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":23}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":1}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":0}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":40}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":40}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":10}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":3}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":1,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":1,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":1,\"56\":0,\"57\":0,\"58\":0,\"59\":1,\"60\":1,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":1,\"68\":1,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":1,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":1,\"84\":1,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":1,\"90\":1,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":1,\"96\":1,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":1,\"102\":0,\"103\":0,\"104\":0,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":1,\"126\":1,\"127\":1,\"128\":1,\"129\":1,\"130\":1,\"131\":1,\"132\":1,\"133\":1,\"134\":1,\"135\":1,\"136\":1,\"137\":1,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":1,\"171\":1,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":1,\"208\":1,\"209\":0,\"210\":0,\"211\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"initWorkerServices\",\"decl\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"loc\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"line\":38},\"1\":{\"name\":\"getWorkerApp\",\"decl\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":50,\"column\":1}},\"loc\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":50,\"column\":1}},\"line\":47},\"2\":{\"name\":\"getWorkerService\",\"decl\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"loc\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"line\":52},\"3\":{\"name\":\"getBlocksLoaded\",\"decl\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"loc\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"line\":57},\"4\":{\"name\":\"getMemoryLeft\",\"decl\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":67,\"column\":1}},\"loc\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":67,\"column\":1}},\"line\":62},\"5\":{\"name\":\"getStatus\",\"decl\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":78,\"column\":1}},\"loc\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":78,\"column\":1}},\"line\":70},\"6\":{\"name\":\"fetchBlock\",\"decl\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":83,\"column\":1}},\"loc\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":83,\"column\":1}},\"line\":80},\"7\":{\"name\":\"processBlock\",\"decl\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":89,\"column\":1}},\"loc\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":89,\"column\":1}},\"line\":86},\"8\":{\"name\":\"numFetchedBlocks\",\"decl\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":95,\"column\":1}},\"loc\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":95,\"column\":1}},\"line\":92},\"9\":{\"name\":\"numFetchingBlocks\",\"decl\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":101,\"column\":1}},\"loc\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":101,\"column\":1}},\"line\":98},\"10\":{\"name\":\"waitForWorkerBatchSize\",\"decl\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":105,\"column\":1}},\"loc\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":105,\"column\":1}},\"line\":103},\"11\":{\"name\":\"createWorkerHost\",\"decl\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":170,\"column\":1}},\"loc\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":170,\"column\":1}},\"line\":139},\"12\":{\"name\":\"createIndexerWorker\",\"decl\":{\"start\":{\"line\":172,\"column\":7},\"end\":{\"line\":207,\"column\":1}},\"loc\":{\"start\":{\"line\":172,\"column\":7},\"end\":{\"line\":207,\"column\":1}},\"line\":172}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.unfinalizedBlocks.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/indexer/worker/worker.unfinalizedBlocks.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":37}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":37}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":88}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":2}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":103}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/logger.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/logger.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":59}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":45}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":36}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":24}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":19}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":27}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":40}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":33}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":9}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":23}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":46}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":28}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":25}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":72}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":24}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":31}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":15}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":1}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":58}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":79}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":61}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":25}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":65}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":22}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":29}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":3}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":73}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":50}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":84}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":53}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":45}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":16}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":42}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":12}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":33}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":5}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":27}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":36}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":30}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":3}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":28}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":36}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":30}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":29}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":33}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":31}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":3}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":31}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":33}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":33}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":3}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":5,\"11\":5,\"12\":5,\"13\":5,\"14\":5,\"15\":5,\"16\":5,\"17\":5,\"18\":5,\"19\":5,\"20\":5,\"21\":5,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":218,\"29\":218,\"30\":218,\"31\":1,\"32\":0,\"33\":0,\"34\":0,\"35\":1,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":1,\"56\":1,\"57\":0,\"58\":0,\"59\":0,\"60\":1,\"61\":1,\"62\":0,\"63\":0,\"64\":0,\"65\":1,\"66\":1,\"67\":0,\"68\":0,\"69\":0,\"70\":1,\"71\":1,\"72\":0,\"73\":0,\"74\":0,\"75\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"locations\":[{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":22,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":17,\"loc\":{\"start\":{\"line\":17,\"column\":25},\"end\":{\"line\":17,\"column\":34}},\"locations\":[{\"start\":{\"line\":17,\"column\":25},\"end\":{\"line\":17,\"column\":34}}]},\"2\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":23},\"end\":{\"line\":20,\"column\":40}},\"locations\":[{\"start\":{\"line\":20,\"column\":23},\"end\":{\"line\":20,\"column\":40}}]},\"3\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":53},\"end\":{\"line\":20,\"column\":71}},\"locations\":[{\"start\":{\"line\":20,\"column\":53},\"end\":{\"line\":20,\"column\":71}}]},\"4\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"locations\":[{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":31,\"column\":1}}]},\"5\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":58},\"end\":{\"line\":30,\"column\":75}},\"locations\":[{\"start\":{\"line\":30,\"column\":58},\"end\":{\"line\":30,\"column\":75}}]}},\"b\":{\"0\":[5],\"1\":[0],\"2\":[0],\"3\":[0],\"4\":[218],\"5\":[0]},\"fnMap\":{\"0\":{\"name\":\"initLogger\",\"decl\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"loc\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"line\":11},\"1\":{\"name\":\"getLogger\",\"decl\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"loc\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"line\":29},\"2\":{\"name\":\"setLevel\",\"decl\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"loc\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"line\":33},\"3\":{\"name\":\"setDebugFilter\",\"decl\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"loc\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"line\":37},\"4\":{\"name\":\"NestLogger\",\"decl\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":47,\"column\":53}},\"loc\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":47,\"column\":53}},\"line\":47},\"5\":{\"name\":\"error\",\"decl\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"loc\":{\"start\":{\"line\":49,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"line\":49},\"6\":{\"name\":\"log\",\"decl\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"loc\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"line\":57},\"7\":{\"name\":\"warn\",\"decl\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":62},\"8\":{\"name\":\"debug\",\"decl\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"line\":67},\"9\":{\"name\":\"verbose\",\"decl\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"loc\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"line\":72}},\"f\":{\"0\":5,\"1\":218,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/event.listener.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/event.listener.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":46}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":57}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":34}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":19}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":15}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":15}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":22}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":29}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":21}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":34}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":34}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":14}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":48}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":46}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":51}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":48}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":57}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":54}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":58}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":49}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":54}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":46}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":52}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":44}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":51}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":49}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":56}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":53}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":56}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":53}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":56}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":47}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":59}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":48}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":6}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":37}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":59}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":39}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":3}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":39}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":67}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":41}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":3}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":45}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":73}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":47}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":40}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":66}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":56}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":3}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":44}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":77}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":73}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":3}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":36}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":61}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":53}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":3}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":34}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":57}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":51}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":40}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":62}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":42}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":3}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":39}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":32}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":34}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":65}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":3}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":44}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":66}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":40}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":46}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":68}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":42}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":3}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":20,\"20\":20,\"21\":20,\"22\":20,\"23\":20,\"24\":20,\"25\":20,\"26\":20,\"27\":20,\"28\":20,\"29\":20,\"30\":20,\"31\":20,\"32\":20,\"33\":20,\"34\":20,\"35\":20,\"36\":20,\"37\":20,\"38\":20,\"39\":20,\"40\":20,\"41\":20,\"42\":1,\"43\":1,\"44\":1,\"45\":20,\"46\":20,\"47\":1,\"48\":1,\"49\":1,\"50\":0,\"51\":0,\"52\":1,\"53\":1,\"54\":1,\"55\":0,\"56\":0,\"57\":1,\"58\":1,\"59\":1,\"60\":0,\"61\":0,\"62\":1,\"63\":1,\"64\":1,\"65\":0,\"66\":0,\"67\":1,\"68\":1,\"69\":1,\"70\":0,\"71\":0,\"72\":1,\"73\":1,\"74\":1,\"75\":0,\"76\":0,\"77\":1,\"78\":1,\"79\":1,\"80\":0,\"81\":0,\"82\":1,\"83\":1,\"84\":1,\"85\":0,\"86\":0,\"87\":0,\"88\":1,\"89\":1,\"90\":1,\"91\":0,\"92\":0,\"93\":1,\"94\":1,\"95\":1,\"96\":40,\"97\":40,\"98\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":42,\"column\":6}},\"locations\":[{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":42,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"locations\":[{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":47,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":2},\"end\":{\"line\":98,\"column\":3}},\"locations\":[{\"start\":{\"line\":96,\"column\":2},\"end\":{\"line\":98,\"column\":3}}]}},\"b\":{\"0\":[20],\"1\":[20],\"2\":[40]},\"fnMap\":{\"0\":{\"name\":\"MetricEventListener\",\"decl\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":42,\"column\":6}},\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":42,\"column\":6}},\"line\":19},\"1\":{\"name\":\"handleApiConnected\",\"decl\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"loc\":{\"start\":{\"line\":45,\"column\":2},\"end\":{\"line\":47,\"column\":3}},\"line\":45},\"2\":{\"name\":\"handleBlockQueueSizeMetric\",\"decl\":{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"loc\":{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":52,\"column\":3}},\"line\":50},\"3\":{\"name\":\"handleBlocknumberQueueSizeMetric\",\"decl\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"loc\":{\"start\":{\"line\":55,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"line\":55},\"4\":{\"name\":\"handleProcessingBlock\",\"decl\":{\"start\":{\"line\":60,\"column\":2},\"end\":{\"line\":62,\"column\":3}},\"loc\":{\"start\":{\"line\":60,\"column\":2},\"end\":{\"line\":62,\"column\":3}},\"line\":60},\"5\":{\"name\":\"handleProcessedBlockCount\",\"decl\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"loc\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"line\":65},\"6\":{\"name\":\"handleTargetBlock\",\"decl\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"loc\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"line\":70},\"7\":{\"name\":\"handleBestBlock\",\"decl\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":77,\"column\":3}},\"line\":75},\"8\":{\"name\":\"handleUsingDictionary\",\"decl\":{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"loc\":{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"line\":80},\"9\":{\"name\":\"handleSkipDictionary\",\"decl\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":88,\"column\":3}},\"loc\":{\"start\":{\"line\":85,\"column\":2},\"end\":{\"line\":88,\"column\":3}},\"line\":85},\"10\":{\"name\":\"handleStoreCacheThreshold\",\"decl\":{\"start\":{\"line\":91,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"loc\":{\"start\":{\"line\":91,\"column\":2},\"end\":{\"line\":93,\"column\":3}},\"line\":91},\"11\":{\"name\":\"handleStoreCacheRecordsSize\",\"decl\":{\"start\":{\"line\":96,\"column\":2},\"end\":{\"line\":98,\"column\":3}},\"loc\":{\"start\":{\"line\":96,\"column\":2},\"end\":{\"line\":98,\"column\":3}},\"line\":96}},\"f\":{\"0\":20,\"1\":20,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":40}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/health.controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/health.controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":74}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":36}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":47}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":35}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":21}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":31}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":54}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":8}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":21}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":9}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":37}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":22}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":22}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":30}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":9}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":51}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":27}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":10}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":40}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":8}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":5}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":54}},\"locations\":[{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":54}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"HealthController\",\"decl\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":54}},\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":54}},\"line\":12},\"1\":{\"name\":\"getHealth\",\"decl\":{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"loc\":{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"line\":15}},\"f\":{\"0\":20,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/health.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/health.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":42}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":46}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":42}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":40}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":80}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":40}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":31}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":32}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":36}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":13}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":28}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":37}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":40}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":43}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":46}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":28}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":32}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":35}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":85}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":83}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":77}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":34}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":44}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":25}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":9}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":23}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":21}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":17}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":22}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":5}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":42}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":104}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":36}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":5}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":3}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":69}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":101}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":34}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":61}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":57}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":51}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":45}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":5}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":40}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":66}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":63}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":57}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":63}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":5}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":3}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":21}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":100}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":49}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":5}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":111}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":48}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":5}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":3}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":20,\"26\":20,\"27\":20,\"28\":1,\"29\":1,\"30\":1,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":1,\"56\":1,\"57\":1,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":1,\"64\":1,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"locations\":[{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":28,\"column\":3}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"HealthService\",\"decl\":{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"loc\":{\"start\":{\"line\":25,\"column\":2},\"end\":{\"line\":28,\"column\":3}},\"line\":25},\"1\":{\"name\":\"checkHealthStatus\",\"decl\":{\"start\":{\"line\":31,\"column\":8},\"end\":{\"line\":45,\"column\":3}},\"loc\":{\"start\":{\"line\":31,\"column\":8},\"end\":{\"line\":45,\"column\":3}},\"line\":31},\"2\":{\"name\":\"handleTargetBlock\",\"decl\":{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"loc\":{\"start\":{\"line\":50,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"line\":50},\"3\":{\"name\":\"handleProcessingBlock\",\"decl\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":63,\"column\":3}},\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":63,\"column\":3}},\"line\":58},\"4\":{\"name\":\"getHealth\",\"decl\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"loc\":{\"start\":{\"line\":65,\"column\":2},\"end\":{\"line\":72,\"column\":3}},\"line\":65}},\"f\":{\"0\":20,\"1\":0,\"2\":0,\"3\":0,\"4\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":53}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":47}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":38}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":51}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":45}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":31}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":67}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":98}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/meta.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/meta.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":46}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":40}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":19}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":15}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":15}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":25}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":22}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":29}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":21}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":19}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":45}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":36}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":39}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":43}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":46}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":30}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":32}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":47}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":33}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":36}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":39}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":42}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":39}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":81}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":150}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":44}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":36}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":17}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":20}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":4}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":13}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":55}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":12}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":60}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":66}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":38}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":34}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":46}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":52}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":58}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":31}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":52}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":38}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":44}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":25}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":26}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":6}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":3}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":35}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":27}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":48}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":75}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":3}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":40}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":66}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":55}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":61}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":44}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":72}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":64}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":61}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":3}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":36}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":61}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":44}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":3}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":34}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":57}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":42}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":3}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":40}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":68}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":35}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":3}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":37}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":59}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":32}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":3}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":40}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":62}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":35}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":3}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":20,\"33\":20,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":1,\"62\":1,\"63\":1,\"64\":6,\"65\":0,\"66\":0,\"67\":1,\"68\":1,\"69\":1,\"70\":0,\"71\":0,\"72\":0,\"73\":1,\"74\":1,\"75\":1,\"76\":0,\"77\":0,\"78\":0,\"79\":1,\"80\":1,\"81\":1,\"82\":0,\"83\":0,\"84\":1,\"85\":1,\"86\":1,\"87\":0,\"88\":0,\"89\":1,\"90\":1,\"91\":1,\"92\":20,\"93\":20,\"94\":1,\"95\":1,\"96\":1,\"97\":20,\"98\":20,\"99\":1,\"100\":1,\"101\":1,\"102\":0,\"103\":0,\"104\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"locations\":[{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":34,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"locations\":[{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":67,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":-1},\"end\":{\"line\":67,\"column\":3}},\"locations\":[{\"start\":{\"line\":66,\"column\":-1},\"end\":{\"line\":67,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":2},\"end\":{\"line\":94,\"column\":3}},\"locations\":[{\"start\":{\"line\":92,\"column\":2},\"end\":{\"line\":94,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"locations\":[{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}}]}},\"b\":{\"0\":[20],\"1\":[6],\"2\":[0],\"3\":[20],\"4\":[20]},\"fnMap\":{\"0\":{\"name\":\"BaseMetaService\",\"decl\":{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"loc\":{\"start\":{\"line\":32,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"line\":32},\"1\":{\"name\":\"getMeta\",\"decl\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":61,\"column\":3}},\"line\":43},\"2\":{\"name\":\"getTargetHeight\",\"decl\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"loc\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":67,\"column\":3}},\"line\":64},\"3\":{\"name\":\"handleProcessingBlock\",\"decl\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"loc\":{\"start\":{\"line\":70,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"line\":70},\"4\":{\"name\":\"handleProcessedBlock\",\"decl\":{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":79,\"column\":3}},\"loc\":{\"start\":{\"line\":76,\"column\":2},\"end\":{\"line\":79,\"column\":3}},\"line\":76},\"5\":{\"name\":\"handleTargetBlock\",\"decl\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"line\":82},\"6\":{\"name\":\"handleBestBlock\",\"decl\":{\"start\":{\"line\":87,\"column\":2},\"end\":{\"line\":89,\"column\":3}},\"loc\":{\"start\":{\"line\":87,\"column\":2},\"end\":{\"line\":89,\"column\":3}},\"line\":87},\"7\":{\"name\":\"handleNetworkMetadata\",\"decl\":{\"start\":{\"line\":92,\"column\":2},\"end\":{\"line\":94,\"column\":3}},\"loc\":{\"start\":{\"line\":92,\"column\":2},\"end\":{\"line\":94,\"column\":3}},\"line\":92},\"8\":{\"name\":\"handleApiConnected\",\"decl\":{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"loc\":{\"start\":{\"line\":97,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"line\":97},\"9\":{\"name\":\"handleUsingDictionary\",\"decl\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":104,\"column\":3}},\"loc\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":104,\"column\":3}},\"line\":102}},\"f\":{\"0\":20,\"1\":0,\"2\":6,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":20,\"8\":20,\"9\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/meta.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/meta.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":62}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":31}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":21}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":40}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":46}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":5}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":21}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":50}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":48}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":5}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":21}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":46}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":46}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":5}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":21}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":44}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":41}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":5}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":21}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":43}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":44}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":5}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":21}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":49}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":51}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":5}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":21}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":43}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":58}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":5}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":21}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":48}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":65}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":5}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":21}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":48}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":42}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":21}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":48}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":80}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":5}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":21}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":51}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":62}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":5}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/ready.controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/ready.controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":74}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":45}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":20}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":30}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":52}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":8}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":14}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":35}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":30}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":9}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":49}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":59}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":10}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":38}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":8}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":3}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":52}},\"locations\":[{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":52}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"ReadyController\",\"decl\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":52}},\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":52}},\"line\":9},\"1\":{\"name\":\"getReady\",\"decl\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":22,\"column\":3}},\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":22,\"column\":3}},\"line\":12}},\"f\":{\"0\":20,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/ready.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/meta/ready.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":42}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":46}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":53}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":13}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":27}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":26}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":17}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":24}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":3}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":30}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":53}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":24}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":3}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":24}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":23}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":3}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":20,\"13\":20,\"14\":1,\"15\":1,\"16\":1,\"17\":20,\"18\":20,\"19\":1,\"20\":1,\"21\":0,\"22\":0,\"23\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":14,\"column\":3}},\"locations\":[{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":14,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":17,\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"locations\":[{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}}]}},\"b\":{\"0\":[20],\"1\":[20]},\"fnMap\":{\"0\":{\"name\":\"ReadyService\",\"decl\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":14,\"column\":3}},\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":14,\"column\":3}},\"line\":12},\"1\":{\"name\":\"handleReady\",\"decl\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"line\":17},\"2\":{\"name\":\"get ready\",\"decl\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":23,\"column\":3}},\"loc\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":23,\"column\":3}},\"line\":21}},\"f\":{\"0\":20,\"1\":20,\"2\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/profiler.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/profiler.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":21}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":39}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":35}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":37}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":45}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":1}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":37}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":95}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":68}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":1}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":27}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":53}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":27}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":45}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":83}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":83}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":36}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":62}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":57}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":40}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":45}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":29}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":19}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":25}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":81}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":23}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":14}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":27}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":81}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":24}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":13}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":12}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":16}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":77}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":9}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":19}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":8}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":5}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":4}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":37}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":27}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":60}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":46}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":36}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":32}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":25}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":15}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":21}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":60}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":19}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":10}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":23}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":60}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":20}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":9}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":8}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":12}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":56}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":5}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":15}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":4}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":0,\"9\":0,\"10\":0,\"11\":1,\"12\":1,\"13\":1,\"14\":0,\"15\":0,\"16\":0,\"17\":1,\"18\":1,\"19\":1,\"20\":0,\"21\":0,\"22\":0,\"23\":1,\"24\":17,\"25\":17,\"26\":17,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":17,\"50\":17,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"locations\":[{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":51,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":9},\"end\":{\"line\":50,\"column\":3}},\"locations\":[{\"start\":{\"line\":26,\"column\":9},\"end\":{\"line\":50,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":22},\"end\":{\"line\":27,\"column\":38}},\"locations\":[{\"start\":{\"line\":27,\"column\":22},\"end\":{\"line\":27,\"column\":38}}]},\"3\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":38},\"end\":{\"line\":27,\"column\":80}},\"locations\":[{\"start\":{\"line\":27,\"column\":38},\"end\":{\"line\":27,\"column\":80}}]},\"4\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":82},\"end\":{\"line\":49,\"column\":5}},\"locations\":[{\"start\":{\"line\":27,\"column\":82},\"end\":{\"line\":49,\"column\":5}}]}},\"b\":{\"0\":[17],\"1\":[17],\"2\":[0],\"3\":[0],\"4\":[0]},\"fnMap\":{\"0\":{\"name\":\"isPromise\",\"decl\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":11,\"column\":1}},\"loc\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":11,\"column\":1}},\"line\":9},\"1\":{\"name\":\"printCost\",\"decl\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":17,\"column\":1}},\"loc\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":17,\"column\":1}},\"line\":15},\"2\":{\"name\":\"setProfiler\",\"decl\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"loc\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"line\":21},\"3\":{\"name\":\"profiler\",\"decl\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"loc\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"line\":25},\"4\":{\"name\":\"descriptor.value\",\"decl\":{\"start\":{\"line\":30,\"column\":25},\"end\":{\"line\":48,\"column\":7}},\"loc\":{\"start\":{\"line\":30,\"column\":25},\"end\":{\"line\":48,\"column\":7}},\"line\":30},\"5\":{\"name\":\"profilerWrap\",\"decl\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":75,\"column\":4}},\"loc\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":75,\"column\":4}},\"line\":56}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":17,\"4\":0,\"5\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/subcommands/forceClean.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/subcommands/forceClean.module.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":38}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":51}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":55}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":9}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":52}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":18}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":2}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/subcommands/forceClean.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/subcommands/forceClean.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":50}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":57}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":40}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":37}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":50}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":36}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":69}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":40}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":13}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":32}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":14}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":42}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":44}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":67}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":6}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":37}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":83}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":18}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":46}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":48}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":5}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":72}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":9}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":56}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":54}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":23}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":25}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":9}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":63}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":91}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":24}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":47}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":84}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":100}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":47}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":40}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":50}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":13}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":11}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":10}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":8}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":60}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":49}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":9}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":115}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":8}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":45}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":35}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":18}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":40}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":38}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":11}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":63}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":36}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":11}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":10}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":7}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":53}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":24}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":49}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":16}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":5}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":3}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":1,\"22\":1,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"ForceCleanService\",\"decl\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":21,\"column\":6}},\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":21,\"column\":6}},\"line\":17},\"1\":{\"name\":\"forceClean\",\"decl\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"loc\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"line\":23}},\"f\":{\"0\":0,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/subcommands/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/subcommands/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":37}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":36}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":34}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/subcommands/reindex.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/subcommands/reindex.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":50}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":49}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":45}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":63}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":117}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":63}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":36}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":73}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":55}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":36}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":13}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":87}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":45}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":14}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":42}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":44}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":48}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":44}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":100}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":60}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":58}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":112}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":87}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":6}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":50}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":71}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":30}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":31}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":57}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":18}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":46}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":48}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":5}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":51}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":39}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":41}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":5}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":64}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":63}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":56}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":84}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":97}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":95}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":34}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":25}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":5}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":56}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":49}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":73}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":69}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":3}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":71}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":57}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":67}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":59}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":3}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":42}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":49}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":76}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":39}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":112}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":22}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":12}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":42}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":5}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":3}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":59}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":66}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":42}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":36}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":7}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":114}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":18}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":18}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":24}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":26}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":24}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":36}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":28}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":21}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":33}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":65}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":28}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":6}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":62}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":3}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":1,\"32\":1,\"33\":0,\"34\":0,\"35\":0,\"36\":1,\"37\":1,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":1,\"56\":1,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":1,\"66\":1,\"67\":0,\"68\":0,\"69\":1,\"70\":1,\"71\":0,\"72\":0,\"73\":1,\"74\":1,\"75\":0,\"76\":0,\"77\":1,\"78\":1,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":1,\"90\":1,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"ReindexService\",\"decl\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":31,\"column\":6}},\"loc\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":31,\"column\":6}},\"line\":21},\"1\":{\"name\":\"get metadataRepo\",\"decl\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":33},\"2\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"line\":38},\"3\":{\"name\":\"getTargetHeightWithUnfinalizedBlocks\",\"decl\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":57},\"4\":{\"name\":\"getExistingProjectSchema\",\"decl\":{\"start\":{\"line\":67,\"column\":10},\"end\":{\"line\":69,\"column\":3}},\"loc\":{\"start\":{\"line\":67,\"column\":10},\"end\":{\"line\":69,\"column\":3}},\"line\":67},\"5\":{\"name\":\"getLastProcessedHeight\",\"decl\":{\"start\":{\"line\":71,\"column\":10},\"end\":{\"line\":73,\"column\":3}},\"loc\":{\"start\":{\"line\":71,\"column\":10},\"end\":{\"line\":73,\"column\":3}},\"line\":71},\"6\":{\"name\":\"getSyncedPoiHeight\",\"decl\":{\"start\":{\"line\":75,\"column\":10},\"end\":{\"line\":77,\"column\":3}},\"loc\":{\"start\":{\"line\":75,\"column\":10},\"end\":{\"line\":77,\"column\":3}},\"line\":75},\"7\":{\"name\":\"getStartBlockFromDataSources\",\"decl\":{\"start\":{\"line\":79,\"column\":10},\"end\":{\"line\":89,\"column\":3}},\"loc\":{\"start\":{\"line\":79,\"column\":10},\"end\":{\"line\":89,\"column\":3}},\"line\":79},\"8\":{\"name\":\"reindex\",\"decl\":{\"start\":{\"line\":91,\"column\":2},\"end\":{\"line\":113,\"column\":3}},\"loc\":{\"start\":{\"line\":91,\"column\":2},\"end\":{\"line\":113,\"column\":3}},\"line\":91}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/autoQueue.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/autoQueue.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":52}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":34}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":25}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":15}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":31}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":32}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":16}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":45}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":35}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":81}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":3}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":1}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":67}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":39}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":41}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":28}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":29}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":34}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":30}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":3}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":22}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":29}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":3}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":38}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":26}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":3}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":39}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":42}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":38}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":3}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":22}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":25}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":3}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":29}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":58}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":48}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":5}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":30}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":3}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":25}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":25}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":3}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":25}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":30}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":3}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":31}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":49}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":51}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":46}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":18}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":18}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":30}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":20}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":18}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":3}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":17}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":19}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":3}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":1}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":36}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":18}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":16}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":16}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":30}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":32}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":2}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":2}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":75}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":75}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":89}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":3}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":45}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":33}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":34}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":25}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":33}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":0}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":45}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":0}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":49}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":0}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":61}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":97}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":60}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":24}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":60}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":23}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":5}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":91}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":106}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":137}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":73}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":7}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":111}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":48}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":3}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":0}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":22}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":97}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":3}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":38}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":31}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":3}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":0}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":39}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":41}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":37}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":3}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":0}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":4}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":44}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":90}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":5}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":40}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":35}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":3}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":48}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":58}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":61}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":5}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":0}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":22}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":61}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":5}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":0}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":39}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":47}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":73}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":41}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":27}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":9}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":9}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":7}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":3}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":0}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":36}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":53}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":0}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":22}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":0}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":65}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":21}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":37}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":23}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":31}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":5}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":47}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":20}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":31}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":34}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":3}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":0}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":39}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":36}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":22}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":13}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":5}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":0}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":26}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":39}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":0}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":86}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":25}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":0}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":33}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":0}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":24}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":39}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":28}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":110}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":7}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":27}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":76}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":45}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":59}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":19}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":11}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":64}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":10}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":27}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":76}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":45}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":59}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":19}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":11}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":63}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":10}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":24}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":53}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":69}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":27}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":42}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":47}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":11}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":11}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":0}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":32}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":0}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":57}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":47}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":45}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":7}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":5}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":0}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":32}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":3}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":0}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":17}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":22}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":25}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":0}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":101}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":27}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":0}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":68}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":35}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":34}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":62}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":81}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":58}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":7}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":30}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":32}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":3}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":0}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":17}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":23}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":3}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":0}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":81}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":66}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":0}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":80}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":3}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":4,\"17\":4,\"18\":1,\"19\":1,\"20\":0,\"21\":0,\"22\":0,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":117,\"30\":117,\"31\":1,\"32\":1,\"33\":384,\"34\":384,\"35\":1,\"36\":1,\"37\":289,\"38\":289,\"39\":1,\"40\":1,\"41\":212,\"42\":212,\"43\":212,\"44\":212,\"45\":1,\"46\":1,\"47\":92,\"48\":92,\"49\":1,\"50\":1,\"51\":92,\"52\":0,\"53\":0,\"54\":92,\"55\":92,\"56\":1,\"57\":1,\"58\":0,\"59\":0,\"60\":1,\"61\":1,\"62\":80,\"63\":80,\"64\":1,\"65\":1,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":1,\"74\":1,\"75\":7,\"76\":7,\"77\":7,\"78\":7,\"79\":7,\"80\":1,\"81\":1,\"82\":0,\"83\":0,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":46,\"125\":46,\"126\":1,\"127\":1,\"128\":147,\"129\":147,\"130\":1,\"131\":1,\"132\":289,\"133\":289,\"134\":1,\"135\":1,\"136\":144,\"137\":144,\"138\":144,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":71,\"146\":71,\"147\":1,\"148\":1,\"149\":71,\"150\":0,\"151\":0,\"152\":71,\"153\":71,\"154\":0,\"155\":0,\"156\":71,\"157\":71,\"158\":71,\"159\":71,\"160\":71,\"161\":71,\"162\":71,\"163\":71,\"164\":71,\"165\":71,\"166\":1,\"167\":1,\"168\":110,\"169\":110,\"170\":110,\"171\":55,\"172\":55,\"173\":110,\"174\":53,\"175\":110,\"176\":1,\"177\":1,\"178\":55,\"179\":55,\"180\":55,\"181\":55,\"182\":55,\"183\":1,\"184\":1,\"185\":71,\"186\":71,\"187\":0,\"188\":0,\"189\":21,\"190\":71,\"191\":80,\"192\":80,\"193\":80,\"194\":80,\"195\":59,\"196\":59,\"197\":59,\"198\":59,\"199\":59,\"200\":59,\"201\":59,\"202\":59,\"203\":59,\"204\":58,\"205\":58,\"206\":4,\"207\":4,\"208\":4,\"209\":54,\"210\":59,\"211\":59,\"212\":1,\"213\":1,\"214\":0,\"215\":0,\"216\":0,\"217\":1,\"218\":59,\"219\":59,\"220\":59,\"221\":59,\"222\":59,\"223\":55,\"224\":55,\"225\":55,\"226\":59,\"227\":59,\"228\":59,\"229\":59,\"230\":80,\"231\":45,\"232\":45,\"233\":45,\"234\":80,\"235\":21,\"236\":21,\"237\":21,\"238\":1,\"239\":1,\"240\":2,\"241\":2,\"242\":2,\"243\":2,\"244\":2,\"245\":2,\"246\":2,\"247\":2,\"248\":2,\"249\":2,\"250\":0,\"251\":0,\"252\":2,\"253\":2,\"254\":2,\"255\":2,\"256\":1,\"257\":1,\"258\":20,\"259\":20,\"260\":1,\"261\":1,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":3}},\"locations\":[{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":31,\"column\":3}},\"locations\":[{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":31,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":35,\"column\":3}},\"locations\":[{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":35,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":39,\"column\":3}},\"locations\":[{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":39,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":41,\"loc\":{\"start\":{\"line\":41,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"locations\":[{\"start\":{\"line\":41,\"column\":2},\"end\":{\"line\":45,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":25},\"end\":{\"line\":42,\"column\":42}},\"locations\":[{\"start\":{\"line\":42,\"column\":25},\"end\":{\"line\":42,\"column\":42}}]},\"6\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":3}},\"locations\":[{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"locations\":[{\"start\":{\"line\":51,\"column\":2},\"end\":{\"line\":56,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":57},\"end\":{\"line\":54,\"column\":5}},\"locations\":[{\"start\":{\"line\":52,\"column\":57},\"end\":{\"line\":54,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":64,\"column\":3}},\"locations\":[{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":64,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"locations\":[{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":80,\"column\":3}}]},\"11\":{\"type\":\"branch\",\"line\":124,\"loc\":{\"start\":{\"line\":124,\"column\":2},\"end\":{\"line\":126,\"column\":3}},\"locations\":[{\"start\":{\"line\":124,\"column\":2},\"end\":{\"line\":126,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"locations\":[{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":132,\"loc\":{\"start\":{\"line\":132,\"column\":2},\"end\":{\"line\":134,\"column\":3}},\"locations\":[{\"start\":{\"line\":132,\"column\":2},\"end\":{\"line\":134,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":136,\"loc\":{\"start\":{\"line\":136,\"column\":2},\"end\":{\"line\":139,\"column\":3}},\"locations\":[{\"start\":{\"line\":136,\"column\":2},\"end\":{\"line\":139,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":137,\"loc\":{\"start\":{\"line\":137,\"column\":24},\"end\":{\"line\":137,\"column\":41}},\"locations\":[{\"start\":{\"line\":137,\"column\":24},\"end\":{\"line\":137,\"column\":41}}]},\"16\":{\"type\":\"branch\",\"line\":145,\"loc\":{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":147,\"column\":3}},\"locations\":[{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":147,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":149,\"loc\":{\"start\":{\"line\":149,\"column\":2},\"end\":{\"line\":166,\"column\":3}},\"locations\":[{\"start\":{\"line\":149,\"column\":2},\"end\":{\"line\":166,\"column\":3}}]},\"18\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":57},\"end\":{\"line\":152,\"column\":5}},\"locations\":[{\"start\":{\"line\":150,\"column\":57},\"end\":{\"line\":152,\"column\":5}}]},\"19\":{\"type\":\"branch\",\"line\":154,\"loc\":{\"start\":{\"line\":154,\"column\":21},\"end\":{\"line\":156,\"column\":5}},\"locations\":[{\"start\":{\"line\":154,\"column\":21},\"end\":{\"line\":156,\"column\":5}}]},\"20\":{\"type\":\"branch\",\"line\":158,\"loc\":{\"start\":{\"line\":158,\"column\":21},\"end\":{\"line\":165,\"column\":5}},\"locations\":[{\"start\":{\"line\":158,\"column\":21},\"end\":{\"line\":165,\"column\":5}}]},\"21\":{\"type\":\"branch\",\"line\":159,\"loc\":{\"start\":{\"line\":159,\"column\":25},\"end\":{\"line\":164,\"column\":7}},\"locations\":[{\"start\":{\"line\":159,\"column\":25},\"end\":{\"line\":164,\"column\":7}}]},\"22\":{\"type\":\"branch\",\"line\":168,\"loc\":{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":183,\"column\":3}},\"locations\":[{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":183,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":171,\"loc\":{\"start\":{\"line\":171,\"column\":15},\"end\":{\"line\":174,\"column\":20}},\"locations\":[{\"start\":{\"line\":171,\"column\":15},\"end\":{\"line\":174,\"column\":20}}]},\"24\":{\"type\":\"branch\",\"line\":174,\"loc\":{\"start\":{\"line\":174,\"column\":20},\"end\":{\"line\":176,\"column\":11}},\"locations\":[{\"start\":{\"line\":174,\"column\":20},\"end\":{\"line\":176,\"column\":11}}]},\"25\":{\"type\":\"branch\",\"line\":176,\"loc\":{\"start\":{\"line\":176,\"column\":5},\"end\":{\"line\":178,\"column\":5}},\"locations\":[{\"start\":{\"line\":176,\"column\":5},\"end\":{\"line\":178,\"column\":5}}]},\"26\":{\"type\":\"branch\",\"line\":176,\"loc\":{\"start\":{\"line\":176,\"column\":22},\"end\":{\"line\":178,\"column\":5}},\"locations\":[{\"start\":{\"line\":176,\"column\":22},\"end\":{\"line\":178,\"column\":5}}]},\"27\":{\"type\":\"branch\",\"line\":179,\"loc\":{\"start\":{\"line\":179,\"column\":-1},\"end\":{\"line\":183,\"column\":3}},\"locations\":[{\"start\":{\"line\":179,\"column\":-1},\"end\":{\"line\":183,\"column\":3}}]},\"28\":{\"type\":\"branch\",\"line\":185,\"loc\":{\"start\":{\"line\":185,\"column\":10},\"end\":{\"line\":238,\"column\":3}},\"locations\":[{\"start\":{\"line\":185,\"column\":10},\"end\":{\"line\":238,\"column\":3}}]},\"29\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":29},\"end\":{\"line\":186,\"column\":36}},\"locations\":[{\"start\":{\"line\":186,\"column\":29},\"end\":{\"line\":186,\"column\":36}}]},\"30\":{\"type\":\"branch\",\"line\":187,\"loc\":{\"start\":{\"line\":187,\"column\":-1},\"end\":{\"line\":187,\"column\":21}},\"locations\":[{\"start\":{\"line\":187,\"column\":-1},\"end\":{\"line\":187,\"column\":21}}]},\"31\":{\"type\":\"branch\",\"line\":187,\"loc\":{\"start\":{\"line\":187,\"column\":21},\"end\":{\"line\":189,\"column\":5}},\"locations\":[{\"start\":{\"line\":187,\"column\":21},\"end\":{\"line\":189,\"column\":5}}]},\"32\":{\"type\":\"branch\",\"line\":190,\"loc\":{\"start\":{\"line\":190,\"column\":-1},\"end\":{\"line\":191,\"column\":25}},\"locations\":[{\"start\":{\"line\":190,\"column\":-1},\"end\":{\"line\":191,\"column\":25}}]},\"33\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":25},\"end\":{\"line\":235,\"column\":5}},\"locations\":[{\"start\":{\"line\":191,\"column\":25},\"end\":{\"line\":235,\"column\":5}}]},\"34\":{\"type\":\"branch\",\"line\":195,\"loc\":{\"start\":{\"line\":195,\"column\":19},\"end\":{\"line\":195,\"column\":25}},\"locations\":[{\"start\":{\"line\":195,\"column\":19},\"end\":{\"line\":195,\"column\":25}}]},\"35\":{\"type\":\"branch\",\"line\":196,\"loc\":{\"start\":{\"line\":196,\"column\":-1},\"end\":{\"line\":231,\"column\":56}},\"locations\":[{\"start\":{\"line\":196,\"column\":-1},\"end\":{\"line\":231,\"column\":56}}]},\"36\":{\"type\":\"branch\",\"line\":231,\"loc\":{\"start\":{\"line\":231,\"column\":56},\"end\":{\"line\":234,\"column\":7}},\"locations\":[{\"start\":{\"line\":231,\"column\":56},\"end\":{\"line\":234,\"column\":7}}]},\"37\":{\"type\":\"branch\",\"line\":236,\"loc\":{\"start\":{\"line\":236,\"column\":-1},\"end\":{\"line\":238,\"column\":3}},\"locations\":[{\"start\":{\"line\":236,\"column\":-1},\"end\":{\"line\":238,\"column\":3}}]},\"38\":{\"type\":\"branch\",\"line\":204,\"loc\":{\"start\":{\"line\":204,\"column\":14},\"end\":{\"line\":211,\"column\":9}},\"locations\":[{\"start\":{\"line\":204,\"column\":14},\"end\":{\"line\":211,\"column\":9}}]},\"39\":{\"type\":\"branch\",\"line\":206,\"loc\":{\"start\":{\"line\":206,\"column\":44},\"end\":{\"line\":209,\"column\":11}},\"locations\":[{\"start\":{\"line\":206,\"column\":44},\"end\":{\"line\":209,\"column\":11}}]},\"40\":{\"type\":\"branch\",\"line\":210,\"loc\":{\"start\":{\"line\":210,\"column\":-1},\"end\":{\"line\":211,\"column\":9}},\"locations\":[{\"start\":{\"line\":210,\"column\":-1},\"end\":{\"line\":211,\"column\":9}}]},\"41\":{\"type\":\"branch\",\"line\":212,\"loc\":{\"start\":{\"line\":212,\"column\":15},\"end\":{\"line\":219,\"column\":9}},\"locations\":[{\"start\":{\"line\":212,\"column\":15},\"end\":{\"line\":219,\"column\":9}}]},\"42\":{\"type\":\"branch\",\"line\":214,\"loc\":{\"start\":{\"line\":214,\"column\":44},\"end\":{\"line\":217,\"column\":11}},\"locations\":[{\"start\":{\"line\":214,\"column\":44},\"end\":{\"line\":217,\"column\":11}}]},\"43\":{\"type\":\"branch\",\"line\":220,\"loc\":{\"start\":{\"line\":220,\"column\":17},\"end\":{\"line\":227,\"column\":9}},\"locations\":[{\"start\":{\"line\":220,\"column\":17},\"end\":{\"line\":227,\"column\":9}}]},\"44\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":26},\"end\":{\"line\":226,\"column\":11}},\"locations\":[{\"start\":{\"line\":223,\"column\":26},\"end\":{\"line\":226,\"column\":11}}]},\"45\":{\"type\":\"branch\",\"line\":240,\"loc\":{\"start\":{\"line\":240,\"column\":2},\"end\":{\"line\":256,\"column\":3}},\"locations\":[{\"start\":{\"line\":240,\"column\":2},\"end\":{\"line\":256,\"column\":3}}]},\"46\":{\"type\":\"branch\",\"line\":258,\"loc\":{\"start\":{\"line\":258,\"column\":2},\"end\":{\"line\":260,\"column\":3}},\"locations\":[{\"start\":{\"line\":258,\"column\":2},\"end\":{\"line\":260,\"column\":3}}]}},\"b\":{\"0\":[4],\"1\":[117],\"2\":[384],\"3\":[289],\"4\":[212],\"5\":[0],\"6\":[92],\"7\":[92],\"8\":[0],\"9\":[80],\"10\":[7],\"11\":[46],\"12\":[147],\"13\":[289],\"14\":[144],\"15\":[0],\"16\":[71],\"17\":[71],\"18\":[0],\"19\":[0],\"20\":[71],\"21\":[71],\"22\":[110],\"23\":[55],\"24\":[53],\"25\":[2],\"26\":[1],\"27\":[55],\"28\":[71],\"29\":[50],\"30\":[21],\"31\":[0],\"32\":[21],\"33\":[80],\"34\":[21],\"35\":[59],\"36\":[45],\"37\":[21],\"38\":[58],\"39\":[4],\"40\":[54],\"41\":[1],\"42\":[0],\"43\":[59],\"44\":[55],\"45\":[2],\"46\":[20]},\"fnMap\":{\"0\":{\"name\":\"TaskFlushedError\",\"decl\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":3}},\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":3}},\"line\":16},\"1\":{\"name\":\"isTaskFlushedError\",\"decl\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"loc\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"line\":21},\"2\":{\"name\":\"Queue\",\"decl\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":31,\"column\":3}},\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":31,\"column\":3}},\"line\":29},\"3\":{\"name\":\"get size\",\"decl\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":35,\"column\":3}},\"loc\":{\"start\":{\"line\":33,\"column\":2},\"end\":{\"line\":35,\"column\":3}},\"line\":33},\"4\":{\"name\":\"get capacity\",\"decl\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":39,\"column\":3}},\"loc\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":39,\"column\":3}},\"line\":37},\"5\":{\"name\":\"get freeSpace\",\"decl\":{\"start\":{\"line\":41,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"loc\":{\"start\":{\"line\":41,\"column\":2},\"end\":{\"line\":45,\"column\":3}},\"line\":41},\"6\":{\"name\":\"put\",\"decl\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":3}},\"loc\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":3}},\"line\":47},\"7\":{\"name\":\"putMany\",\"decl\":{\"start\":{\"line\":51,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"loc\":{\"start\":{\"line\":51,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"line\":51},\"8\":{\"name\":\"peek\",\"decl\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":60,\"column\":3}},\"line\":58},\"9\":{\"name\":\"take\",\"decl\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":64,\"column\":3}},\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":64,\"column\":3}},\"line\":62},\"10\":{\"name\":\"takeMany\",\"decl\":{\"start\":{\"line\":66,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"loc\":{\"start\":{\"line\":66,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"line\":66},\"11\":{\"name\":\"takeAll\",\"decl\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":80,\"column\":3}},\"line\":75},\"12\":{\"name\":\"flush\",\"decl\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"line\":82},\"13\":{\"name\":\"AutoQueue\",\"decl\":{\"start\":{\"line\":124,\"column\":2},\"end\":{\"line\":126,\"column\":3}},\"loc\":{\"start\":{\"line\":124,\"column\":2},\"end\":{\"line\":126,\"column\":3}},\"line\":124},\"14\":{\"name\":\"get size\",\"decl\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"loc\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"line\":128},\"15\":{\"name\":\"get capacity\",\"decl\":{\"start\":{\"line\":132,\"column\":2},\"end\":{\"line\":134,\"column\":3}},\"loc\":{\"start\":{\"line\":132,\"column\":2},\"end\":{\"line\":134,\"column\":3}},\"line\":132},\"16\":{\"name\":\"get freeSpace\",\"decl\":{\"start\":{\"line\":136,\"column\":2},\"end\":{\"line\":139,\"column\":3}},\"loc\":{\"start\":{\"line\":136,\"column\":2},\"end\":{\"line\":139,\"column\":3}},\"line\":136},\"17\":{\"name\":\"put\",\"decl\":{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":147,\"column\":3}},\"loc\":{\"start\":{\"line\":145,\"column\":2},\"end\":{\"line\":147,\"column\":3}},\"line\":145},\"18\":{\"name\":\"putMany\",\"decl\":{\"start\":{\"line\":149,\"column\":2},\"end\":{\"line\":166,\"column\":3}},\"loc\":{\"start\":{\"line\":149,\"column\":2},\"end\":{\"line\":166,\"column\":3}},\"line\":149},\"19\":{\"name\":\"processOutOfOrderTasks\",\"decl\":{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":183,\"column\":3}},\"loc\":{\"start\":{\"line\":168,\"column\":10},\"end\":{\"line\":183,\"column\":3}},\"line\":168},\"20\":{\"name\":\"take\",\"decl\":{\"start\":{\"line\":185,\"column\":10},\"end\":{\"line\":238,\"column\":3}},\"loc\":{\"start\":{\"line\":185,\"column\":10},\"end\":{\"line\":238,\"column\":3}},\"line\":185},\"21\":{\"name\":\"flush\",\"decl\":{\"start\":{\"line\":240,\"column\":2},\"end\":{\"line\":256,\"column\":3}},\"loc\":{\"start\":{\"line\":240,\"column\":2},\"end\":{\"line\":256,\"column\":3}},\"line\":240},\"22\":{\"name\":\"abort\",\"decl\":{\"start\":{\"line\":258,\"column\":2},\"end\":{\"line\":260,\"column\":3}},\"loc\":{\"start\":{\"line\":258,\"column\":2},\"end\":{\"line\":260,\"column\":3}},\"line\":258},\"23\":{\"name\":\"on\",\"decl\":{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":266,\"column\":3}},\"loc\":{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":266,\"column\":3}},\"line\":262}},\"f\":{\"0\":4,\"1\":0,\"2\":117,\"3\":384,\"4\":289,\"5\":212,\"6\":92,\"7\":92,\"8\":0,\"9\":80,\"10\":0,\"11\":7,\"12\":0,\"13\":46,\"14\":147,\"15\":289,\"16\":144,\"17\":71,\"18\":71,\"19\":110,\"20\":71,\"21\":2,\"22\":20,\"23\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/batch-size.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/batch-size.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":37}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":34}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":36}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":35}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":38}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":76}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":23}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":33}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":58}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":45}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":47}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":52}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":22}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":34}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":29}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":7}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":13}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":5}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":33}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":33}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":5}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":20}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":69}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":24}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":5}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":4}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":20}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":59}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":32}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":1}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":62}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":35}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":1,\"35\":20,\"36\":20,\"37\":20,\"38\":1,\"39\":0,\"40\":0,\"41\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":36,\"loc\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":38,\"column\":1}},\"locations\":[{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":38,\"column\":1}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"waitForBatchSize\",\"decl\":{\"start\":{\"line\":12,\"column\":7},\"end\":{\"line\":34,\"column\":1}},\"loc\":{\"start\":{\"line\":12,\"column\":7},\"end\":{\"line\":34,\"column\":1}},\"line\":12},\"1\":{\"name\":\"formatMBtoBytes\",\"decl\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":38,\"column\":1}},\"loc\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":38,\"column\":1}},\"line\":36},\"2\":{\"name\":\"formatBytesToMB\",\"decl\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"loc\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":42,\"column\":1}},\"line\":40}},\"f\":{\"0\":0,\"1\":20,\"2\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/bigint.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/bigint.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":18}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":19}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":1}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":89}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":39}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":31}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":0,\"10\":0},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"Object.<anonymous>.BigInt.toJSON\",\"decl\":{\"start\":{\"line\":9,\"column\":26},\"end\":{\"line\":11,\"column\":2}},\"loc\":{\"start\":{\"line\":9,\"column\":26},\"end\":{\"line\":11,\"column\":2}},\"line\":9}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/blockHeightMap.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/blockHeightMap.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":71}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":32}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":23}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":46}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":42}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":82}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":3}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":28}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":21}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":26}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":44}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":32}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":65}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":5}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":25}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":3}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":72}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":42}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":9}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":30}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":17}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":23}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":5}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":3}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":55}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":40}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":41}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":42}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":44}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":40}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":17}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":14}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":35}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":57}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":8}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":37}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":19}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":14}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":7}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":36}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":19}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":7}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":35}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":14}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":7}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":5}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":18}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":36}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":75}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":14}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":14}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":25}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":79}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":8}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":7}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":3}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":0}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":74}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":40}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":27}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":43}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":84}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":57}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":42}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":49}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":9}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":7}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":51}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":31}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":7}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":24}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":5}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":18}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":3}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":53}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":41}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":43}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":33}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":5}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":38}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":3}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":78,\"10\":78,\"11\":78,\"12\":1,\"13\":1,\"14\":32,\"15\":32,\"16\":1,\"17\":1,\"18\":35,\"19\":35,\"20\":35,\"21\":3,\"22\":3,\"23\":32,\"24\":32,\"25\":32,\"26\":1,\"27\":1,\"28\":1,\"29\":12,\"30\":12,\"31\":12,\"32\":3,\"33\":3,\"34\":12,\"35\":1,\"36\":1,\"37\":56,\"38\":56,\"39\":56,\"40\":56,\"41\":56,\"42\":115,\"43\":115,\"44\":115,\"45\":115,\"46\":115,\"47\":115,\"48\":115,\"49\":115,\"50\":115,\"51\":37,\"52\":37,\"53\":37,\"54\":105,\"55\":66,\"56\":66,\"57\":78,\"58\":105,\"59\":12,\"60\":12,\"61\":115,\"62\":56,\"63\":56,\"64\":56,\"65\":1,\"66\":1,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":3,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":3,\"88\":3,\"89\":1,\"90\":1,\"91\":3,\"92\":3,\"93\":3,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":84,\"100\":84,\"101\":84,\"102\":252,\"103\":252,\"104\":84,\"105\":84,\"106\":84,\"107\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":12,\"column\":3}},\"locations\":[{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":12,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":58},\"end\":{\"line\":11,\"column\":79}},\"locations\":[{\"start\":{\"line\":11,\"column\":58},\"end\":{\"line\":11,\"column\":79}}]},\"2\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":16,\"column\":3}},\"locations\":[{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":16,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":18,\"loc\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":26,\"column\":3}},\"locations\":[{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":26,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":31},\"end\":{\"line\":23,\"column\":5}},\"locations\":[{\"start\":{\"line\":21,\"column\":31},\"end\":{\"line\":23,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":-1},\"end\":{\"line\":26,\"column\":3}},\"locations\":[{\"start\":{\"line\":24,\"column\":-1},\"end\":{\"line\":26,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":35,\"column\":3}},\"locations\":[{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":35,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":6},\"end\":{\"line\":34,\"column\":5}},\"locations\":[{\"start\":{\"line\":32,\"column\":6},\"end\":{\"line\":34,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"locations\":[{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":65,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":41},\"end\":{\"line\":62,\"column\":5}},\"locations\":[{\"start\":{\"line\":42,\"column\":41},\"end\":{\"line\":62,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":34},\"end\":{\"line\":44,\"column\":39}},\"locations\":[{\"start\":{\"line\":44,\"column\":34},\"end\":{\"line\":44,\"column\":39}}]},\"11\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":29},\"end\":{\"line\":48,\"column\":44}},\"locations\":[{\"start\":{\"line\":48,\"column\":29},\"end\":{\"line\":48,\"column\":44}}]},\"12\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":45},\"end\":{\"line\":48,\"column\":56}},\"locations\":[{\"start\":{\"line\":48,\"column\":45},\"end\":{\"line\":48,\"column\":56}}]},\"13\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":36},\"end\":{\"line\":54,\"column\":7}},\"locations\":[{\"start\":{\"line\":51,\"column\":36},\"end\":{\"line\":54,\"column\":7}}]},\"14\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":61,\"column\":7}},\"locations\":[{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":61,\"column\":7}}]},\"15\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":55,\"column\":35}},\"locations\":[{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":55,\"column\":35}}]},\"16\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":35},\"end\":{\"line\":57,\"column\":7}},\"locations\":[{\"start\":{\"line\":55,\"column\":35},\"end\":{\"line\":57,\"column\":7}}]},\"17\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":-1},\"end\":{\"line\":59,\"column\":34}},\"locations\":[{\"start\":{\"line\":58,\"column\":-1},\"end\":{\"line\":59,\"column\":34}}]},\"18\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":34},\"end\":{\"line\":61,\"column\":7}},\"locations\":[{\"start\":{\"line\":59,\"column\":34},\"end\":{\"line\":61,\"column\":7}}]},\"19\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"locations\":[{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":97,\"column\":3}}]},\"20\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":42},\"end\":{\"line\":94,\"column\":5}},\"locations\":[{\"start\":{\"line\":81,\"column\":42},\"end\":{\"line\":94,\"column\":5}}]},\"21\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":30},\"end\":{\"line\":82,\"column\":59}},\"locations\":[{\"start\":{\"line\":82,\"column\":30},\"end\":{\"line\":82,\"column\":59}}]},\"22\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":59},\"end\":{\"line\":82,\"column\":81}},\"locations\":[{\"start\":{\"line\":82,\"column\":59},\"end\":{\"line\":82,\"column\":81}}]},\"23\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":83},\"end\":{\"line\":87,\"column\":7}},\"locations\":[{\"start\":{\"line\":82,\"column\":83},\"end\":{\"line\":87,\"column\":7}}]},\"24\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":28},\"end\":{\"line\":89,\"column\":48}},\"locations\":[{\"start\":{\"line\":89,\"column\":28},\"end\":{\"line\":89,\"column\":48}}]},\"25\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":50},\"end\":{\"line\":91,\"column\":7}},\"locations\":[{\"start\":{\"line\":89,\"column\":50},\"end\":{\"line\":91,\"column\":7}}]},\"26\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"locations\":[{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":107,\"column\":3}}]},\"27\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":42},\"end\":{\"line\":104,\"column\":5}},\"locations\":[{\"start\":{\"line\":102,\"column\":42},\"end\":{\"line\":104,\"column\":5}}]}},\"b\":{\"0\":[78],\"1\":[143],\"2\":[32],\"3\":[35],\"4\":[3],\"5\":[32],\"6\":[12],\"7\":[3],\"8\":[56],\"9\":[115],\"10\":[78],\"11\":[78],\"12\":[37],\"13\":[37],\"14\":[105],\"15\":[78],\"16\":[66],\"17\":[78],\"18\":[12],\"19\":[1],\"20\":[3],\"21\":[2],\"22\":[1],\"23\":[1],\"24\":[2],\"25\":[1],\"26\":[84],\"27\":[252]},\"fnMap\":{\"0\":{\"name\":\"BlockHeightMap\",\"decl\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":12,\"column\":3}},\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":12,\"column\":3}},\"line\":9},\"1\":{\"name\":\"getAll\",\"decl\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":16,\"column\":3}},\"loc\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":16,\"column\":3}},\"line\":14},\"2\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":26,\"column\":3}},\"loc\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":26,\"column\":3}},\"line\":18},\"3\":{\"name\":\"getSafe\",\"decl\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":35,\"column\":3}},\"loc\":{\"start\":{\"line\":29,\"column\":2},\"end\":{\"line\":35,\"column\":3}},\"line\":29},\"4\":{\"name\":\"getDetails\",\"decl\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":37,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":37},\"5\":{\"name\":\"getAllWithRange\",\"decl\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"loc\":{\"start\":{\"line\":67,\"column\":2},\"end\":{\"line\":75,\"column\":3}},\"line\":67},\"6\":{\"name\":\"getWithinRange\",\"decl\":{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"loc\":{\"start\":{\"line\":77,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"line\":77},\"7\":{\"name\":\"map\",\"decl\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"loc\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":107,\"column\":3}},\"line\":99}},\"f\":{\"0\":78,\"1\":32,\"2\":35,\"3\":12,\"4\":56,\"5\":0,\"6\":1,\"7\":84}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/blockSizeBuffer.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/blockSizeBuffer.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":34}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":33}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":20}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":3}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":21}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":26}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":51}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":5}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":16}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":41}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":27}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":5}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":25}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":82}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":5}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":43}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":3}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":20,\"8\":20,\"9\":1,\"10\":1,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":7,\"loc\":{\"start\":{\"line\":7,\"column\":2},\"end\":{\"line\":9,\"column\":3}},\"locations\":[{\"start\":{\"line\":7,\"column\":2},\"end\":{\"line\":9,\"column\":3}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"BlockSizeBuffer\",\"decl\":{\"start\":{\"line\":7,\"column\":2},\"end\":{\"line\":9,\"column\":3}},\"loc\":{\"start\":{\"line\":7,\"column\":2},\"end\":{\"line\":9,\"column\":3}},\"line\":7},\"1\":{\"name\":\"average\",\"decl\":{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"loc\":{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"line\":11}},\"f\":{\"0\":20,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/blocks.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/blocks.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":70}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":40}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":39}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":25}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":44}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":28}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":118}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":49}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":64}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":33}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":54}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":21}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":43}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":14}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":6}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":16}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":84}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":39}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":14}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":12}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":41}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":56}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":89}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":55}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":8}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":5}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":4}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":6,\"8\":6,\"9\":6,\"10\":6,\"11\":6,\"12\":6,\"13\":6,\"14\":6,\"15\":6,\"16\":494,\"17\":494,\"18\":494,\"19\":494,\"20\":6,\"21\":6,\"22\":6,\"23\":1,\"24\":11,\"25\":11,\"26\":11,\"27\":11,\"28\":11,\"29\":11,\"30\":4887731,\"31\":4,\"32\":4,\"33\":11,\"34\":11,\"35\":11,\"36\":11},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"locations\":[{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":23,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":42},\"end\":{\"line\":21,\"column\":3}},\"locations\":[{\"start\":{\"line\":16,\"column\":42},\"end\":{\"line\":21,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":18,\"loc\":{\"start\":{\"line\":18,\"column\":17},\"end\":{\"line\":18,\"column\":41}},\"locations\":[{\"start\":{\"line\":18,\"column\":17},\"end\":{\"line\":18,\"column\":41}}]},\"3\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"locations\":[{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":37,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":29},\"end\":{\"line\":26,\"column\":39}},\"locations\":[{\"start\":{\"line\":26,\"column\":29},\"end\":{\"line\":26,\"column\":39}}]},\"5\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":23},\"end\":{\"line\":34,\"column\":7}},\"locations\":[{\"start\":{\"line\":30,\"column\":23},\"end\":{\"line\":34,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":35},\"end\":{\"line\":31,\"column\":56}},\"locations\":[{\"start\":{\"line\":31,\"column\":35},\"end\":{\"line\":31,\"column\":56}}]},\"7\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":-1},\"end\":{\"line\":34,\"column\":7}},\"locations\":[{\"start\":{\"line\":32,\"column\":-1},\"end\":{\"line\":34,\"column\":7}}]},\"8\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":54},\"end\":{\"line\":32,\"column\":87}},\"locations\":[{\"start\":{\"line\":32,\"column\":54},\"end\":{\"line\":32,\"column\":87}}]}},\"b\":{\"0\":[6],\"1\":[494],\"2\":[48457],\"3\":[11],\"4\":[0],\"5\":[4887731],\"6\":[4887727],\"7\":[4],\"8\":[8]},\"fnMap\":{\"0\":{\"name\":\"cleanedBatchBlocks\",\"decl\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"loc\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"line\":8},\"1\":{\"name\":\"transformBypassBlocks\",\"decl\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"loc\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"line\":25}},\"f\":{\"0\":6,\"1\":11}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/configure.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/configure.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":92}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":47}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":28}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":59}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":45}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":38}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":19}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":30}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":30}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":29}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":1}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":74}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":38}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":83}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":3}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":54}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":10}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":14}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":17}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":28}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":16}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":49}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":81}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":17}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":96}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":100}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":17}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":11}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":3}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":82}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":112}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":23}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":63}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":33}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":34}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":29}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":43}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":9}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":15}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":7}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":60}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":27}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":7}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":5}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":4}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":20,\"18\":20,\"19\":0,\"20\":0,\"21\":20,\"22\":20,\"23\":20,\"24\":20,\"25\":20,\"26\":20,\"27\":20,\"28\":20,\"29\":20,\"30\":20,\"31\":1,\"32\":20,\"33\":20,\"34\":20,\"35\":20,\"36\":20,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":3,\"42\":3,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":3,\"50\":1,\"51\":1,\"52\":3,\"53\":0,\"54\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":18,\"loc\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"locations\":[{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":31,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":37},\"end\":{\"line\":21,\"column\":3}},\"locations\":[{\"start\":{\"line\":19,\"column\":37},\"end\":{\"line\":21,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":8},\"end\":{\"line\":29,\"column\":79}},\"locations\":[{\"start\":{\"line\":29,\"column\":8},\"end\":{\"line\":29,\"column\":79}}]},\"3\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"locations\":[{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":55,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":-1},\"end\":{\"line\":55,\"column\":1}},\"locations\":[{\"start\":{\"line\":38,\"column\":-1},\"end\":{\"line\":55,\"column\":1}}]},\"5\":{\"type\":\"branch\",\"line\":41,\"loc\":{\"start\":{\"line\":41,\"column\":4},\"end\":{\"line\":53,\"column\":5}},\"locations\":[{\"start\":{\"line\":41,\"column\":4},\"end\":{\"line\":53,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":32},\"end\":{\"line\":49,\"column\":7}},\"locations\":[{\"start\":{\"line\":43,\"column\":32},\"end\":{\"line\":49,\"column\":7}}]},\"7\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":-1},\"end\":{\"line\":50,\"column\":57}},\"locations\":[{\"start\":{\"line\":50,\"column\":-1},\"end\":{\"line\":50,\"column\":57}}]},\"8\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":59},\"end\":{\"line\":52,\"column\":7}},\"locations\":[{\"start\":{\"line\":50,\"column\":59},\"end\":{\"line\":52,\"column\":7}}]}},\"b\":{\"0\":[20],\"1\":[0],\"2\":[0],\"3\":[20],\"4\":[0],\"5\":[3],\"6\":[1],\"7\":[2],\"8\":[1]},\"fnMap\":{\"0\":{\"name\":\"defaultSubqueryName\",\"decl\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"loc\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"line\":18},\"1\":{\"name\":\"rebaseArgsWithManifest\",\"decl\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"loc\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"line\":33}},\"f\":{\"0\":20,\"1\":20}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/decorators.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/decorators.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":36}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":33}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":51}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":83}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":65}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":36}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":62}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":57}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":28}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":76}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":9}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":40}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":8}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":5}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":4}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":38,\"8\":38,\"9\":38,\"10\":38,\"11\":38,\"12\":38,\"13\":37,\"14\":0,\"15\":0,\"16\":37,\"17\":38,\"18\":38,\"19\":38,\"20\":38},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"locations\":[{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":21,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":9},\"end\":{\"line\":20,\"column\":3}},\"locations\":[{\"start\":{\"line\":9,\"column\":9},\"end\":{\"line\":20,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":13,\"loc\":{\"start\":{\"line\":13,\"column\":25},\"end\":{\"line\":18,\"column\":7}},\"locations\":[{\"start\":{\"line\":13,\"column\":25},\"end\":{\"line\":18,\"column\":7}}]},\"3\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":27},\"end\":{\"line\":16,\"column\":9}},\"locations\":[{\"start\":{\"line\":14,\"column\":27},\"end\":{\"line\":16,\"column\":9}}]}},\"b\":{\"0\":[38],\"1\":[38],\"2\":[37],\"3\":[0]},\"fnMap\":{\"0\":{\"name\":\"mainThreadOnly\",\"decl\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"loc\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"line\":8},\"1\":{\"name\":\"descriptor.value\",\"decl\":{\"start\":{\"line\":13,\"column\":25},\"end\":{\"line\":18,\"column\":7}},\"loc\":{\"start\":{\"line\":13,\"column\":25},\"end\":{\"line\":18,\"column\":7}},\"line\":13}},\"f\":{\"0\":38,\"1\":37}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/fetchHelpers.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/fetchHelpers.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":36}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":32}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":34}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":22}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":22}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":37}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":28}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":39}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":23}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":15}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":7}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":27}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":15}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":33}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":31}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":58}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":12}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":70}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":14}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":5}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":1}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":49}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":105}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":91}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":6,\"13\":6,\"14\":6,\"15\":6,\"16\":6,\"17\":6,\"18\":6,\"19\":6,\"20\":6,\"21\":4,\"22\":4,\"23\":6,\"24\":1,\"25\":1,\"26\":1,\"27\":6,\"28\":6,\"29\":1,\"30\":1,\"31\":1,\"32\":2,\"33\":2},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":7},\"end\":{\"line\":29,\"column\":1}},\"locations\":[{\"start\":{\"line\":12,\"column\":7},\"end\":{\"line\":29,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":25},\"end\":{\"line\":20,\"column\":33}},\"locations\":[{\"start\":{\"line\":20,\"column\":25},\"end\":{\"line\":20,\"column\":33}}]},\"2\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":-1},\"end\":{\"line\":21,\"column\":21}},\"locations\":[{\"start\":{\"line\":21,\"column\":-1},\"end\":{\"line\":21,\"column\":21}}]},\"3\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":21},\"end\":{\"line\":24,\"column\":11}},\"locations\":[{\"start\":{\"line\":21,\"column\":21},\"end\":{\"line\":24,\"column\":11}}]},\"4\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":5},\"end\":{\"line\":27,\"column\":5}},\"locations\":[{\"start\":{\"line\":24,\"column\":5},\"end\":{\"line\":27,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":7},\"end\":{\"line\":34,\"column\":1}},\"locations\":[{\"start\":{\"line\":32,\"column\":7},\"end\":{\"line\":34,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":30},\"end\":{\"line\":33,\"column\":89}},\"locations\":[{\"start\":{\"line\":33,\"column\":30},\"end\":{\"line\":33,\"column\":89}}]},\"7\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":56},\"end\":{\"line\":33,\"column\":88}},\"locations\":[{\"start\":{\"line\":33,\"column\":56},\"end\":{\"line\":33,\"column\":88}}]},\"8\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":80},\"end\":{\"line\":33,\"column\":88}},\"locations\":[{\"start\":{\"line\":33,\"column\":80},\"end\":{\"line\":33,\"column\":88}}]}},\"b\":{\"0\":[6],\"1\":[1],\"2\":[5],\"3\":[4],\"4\":[1],\"5\":[2],\"6\":[6],\"7\":[6],\"8\":[5]},\"fnMap\":{\"0\":{\"name\":\"retryOnFail\",\"decl\":{\"start\":{\"line\":12,\"column\":7},\"end\":{\"line\":29,\"column\":1}},\"loc\":{\"start\":{\"line\":12,\"column\":7},\"end\":{\"line\":29,\"column\":1}},\"line\":12},\"1\":{\"name\":\"retryOnFailAxios\",\"decl\":{\"start\":{\"line\":32,\"column\":7},\"end\":{\"line\":34,\"column\":1}},\"loc\":{\"start\":{\"line\":32,\"column\":7},\"end\":{\"line\":34,\"column\":1}},\"line\":32}},\"f\":{\"0\":6,\"1\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/graphql.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/graphql.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":8}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":22}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":20}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":11}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":14}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":11}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":14}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":11}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":9}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":21}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":80}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":37}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":27}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":23}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":16}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":16}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":44}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":31}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":31}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":16}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":20}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":34}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":55}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":60}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":15}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":33}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":32}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":28}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":31}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":16}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":32}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":35}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":37}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":21}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":52}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":82}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":59}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":25}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":93}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":7}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":7}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":3}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":76}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":27}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":47}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":19}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":48}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":53}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":27}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":48}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":3}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":58}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":9}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":31}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":14}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":36}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":4}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":32}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":36}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":54}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":26}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":71}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":7}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":50}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":6}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":44}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":26}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":26}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":21}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":50}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":10}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":14}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":55}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":7}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":6}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":3}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":31}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":36}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":54}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":23}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":20}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":7}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":33}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":79}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":7}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":46}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":6}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":48}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":45}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":44}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":30}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":52}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":48}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":14}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":79}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":7}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":6}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":3}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":22}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":130,\"25\":130,\"26\":130,\"27\":130,\"28\":130,\"29\":130,\"30\":130,\"31\":973,\"32\":973,\"33\":130,\"34\":130,\"35\":1,\"36\":990,\"37\":990,\"38\":990,\"39\":990,\"40\":990,\"41\":990,\"42\":990,\"43\":990,\"44\":990,\"45\":8,\"46\":8,\"47\":8,\"48\":8,\"49\":16,\"50\":8,\"51\":8,\"52\":8,\"53\":8,\"54\":990,\"55\":990,\"56\":990,\"57\":990,\"58\":990,\"59\":990,\"60\":982,\"61\":990,\"62\":990,\"63\":990,\"64\":0,\"65\":0,\"66\":990,\"67\":990,\"68\":990,\"69\":990,\"70\":990,\"71\":990,\"72\":990,\"73\":990,\"74\":186,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":186,\"81\":186,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":186,\"91\":186,\"92\":990,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":990,\"115\":990},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"locations\":[{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":35,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":38},\"end\":{\"line\":34,\"column\":3}},\"locations\":[{\"start\":{\"line\":31,\"column\":38},\"end\":{\"line\":34,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":37,\"loc\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"locations\":[{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":116,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":20},\"end\":{\"line\":54,\"column\":3}},\"locations\":[{\"start\":{\"line\":45,\"column\":20},\"end\":{\"line\":54,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":18},\"end\":{\"line\":56,\"column\":31}},\"locations\":[{\"start\":{\"line\":56,\"column\":18},\"end\":{\"line\":56,\"column\":31}}]},\"5\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":33},\"end\":{\"line\":56,\"column\":76}},\"locations\":[{\"start\":{\"line\":56,\"column\":33},\"end\":{\"line\":56,\"column\":76}}]},\"6\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":4},\"end\":{\"line\":59,\"column\":47}},\"locations\":[{\"start\":{\"line\":59,\"column\":4},\"end\":{\"line\":59,\"column\":47}}]},\"7\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":34},\"end\":{\"line\":59,\"column\":40}},\"locations\":[{\"start\":{\"line\":59,\"column\":34},\"end\":{\"line\":59,\"column\":40}}]},\"8\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":4},\"end\":{\"line\":62,\"column\":52}},\"locations\":[{\"start\":{\"line\":60,\"column\":4},\"end\":{\"line\":62,\"column\":52}}]},\"9\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":4},\"end\":{\"line\":61,\"column\":48}},\"locations\":[{\"start\":{\"line\":61,\"column\":4},\"end\":{\"line\":61,\"column\":48}}]},\"10\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":4},\"end\":{\"line\":62,\"column\":52}},\"locations\":[{\"start\":{\"line\":62,\"column\":4},\"end\":{\"line\":62,\"column\":52}}]},\"11\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":26},\"end\":{\"line\":66,\"column\":3}},\"locations\":[{\"start\":{\"line\":64,\"column\":26},\"end\":{\"line\":66,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":31},\"end\":{\"line\":92,\"column\":3}},\"locations\":[{\"start\":{\"line\":74,\"column\":31},\"end\":{\"line\":92,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":30},\"end\":{\"line\":114,\"column\":3}},\"locations\":[{\"start\":{\"line\":93,\"column\":30},\"end\":{\"line\":114,\"column\":3}}]},\"14\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":51},\"end\":{\"line\":53,\"column\":5}},\"locations\":[{\"start\":{\"line\":49,\"column\":51},\"end\":{\"line\":53,\"column\":5}}]},\"15\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":24},\"end\":{\"line\":52,\"column\":7}},\"locations\":[{\"start\":{\"line\":50,\"column\":24},\"end\":{\"line\":52,\"column\":7}}]},\"16\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":48},\"end\":{\"line\":51,\"column\":58}},\"locations\":[{\"start\":{\"line\":51,\"column\":48},\"end\":{\"line\":51,\"column\":58}}]}},\"b\":{\"0\":[130],\"1\":[973],\"2\":[990],\"3\":[8],\"4\":[8],\"5\":[0],\"6\":[8],\"7\":[0],\"8\":[982],\"9\":[3],\"10\":[979],\"11\":[0],\"12\":[186],\"13\":[0],\"14\":[16],\"15\":[8],\"16\":[0]},\"fnMap\":{\"0\":{\"name\":\"modelsTypeToModelAttributes\",\"decl\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"loc\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":35,\"column\":1}},\"line\":25},\"1\":{\"name\":\"getColumnOption\",\"decl\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"loc\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"line\":37},\"2\":{\"name\":\"columnOption.get\",\"decl\":{\"start\":{\"line\":75,\"column\":23},\"end\":{\"line\":81,\"column\":5}},\"loc\":{\"start\":{\"line\":75,\"column\":23},\"end\":{\"line\":81,\"column\":5}},\"line\":75},\"3\":{\"name\":\"columnOption.set\",\"decl\":{\"start\":{\"line\":82,\"column\":23},\"end\":{\"line\":91,\"column\":5}},\"loc\":{\"start\":{\"line\":82,\"column\":23},\"end\":{\"line\":91,\"column\":5}},\"line\":82},\"4\":{\"name\":\"columnOption.get\",\"decl\":{\"start\":{\"line\":94,\"column\":23},\"end\":{\"line\":103,\"column\":5}},\"loc\":{\"start\":{\"line\":94,\"column\":23},\"end\":{\"line\":103,\"column\":5}},\"line\":94},\"5\":{\"name\":\"columnOption.set\",\"decl\":{\"start\":{\"line\":104,\"column\":23},\"end\":{\"line\":113,\"column\":5}},\"loc\":{\"start\":{\"line\":104,\"column\":23},\"end\":{\"line\":113,\"column\":5}},\"line\":104}},\"f\":{\"0\":130,\"1\":990,\"2\":0,\"3\":0,\"4\":0,\"5\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":26}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":26}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":29}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":28}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":26}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":31}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":34}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":28}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":26}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":29}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":25}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":33}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/object.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/object.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":58}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":18}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":16}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":17}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":48}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":110}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":73}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":36}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":23}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":16}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":36}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":7}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":6}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":4}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":81}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":32}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":16}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":44}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":60}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":39}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":16}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":3}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":16}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":1}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":66}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":43}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":17,\"6\":17,\"7\":17,\"8\":17,\"9\":17,\"10\":17,\"11\":17,\"12\":1,\"13\":413,\"14\":413,\"15\":413,\"16\":1652,\"17\":1652,\"18\":413,\"19\":413,\"20\":413,\"21\":413,\"22\":1,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":1,\"34\":115,\"35\":115,\"36\":115},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":6,\"loc\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"locations\":[{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":12,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":39},\"end\":{\"line\":11,\"column\":108}},\"locations\":[{\"start\":{\"line\":11,\"column\":39},\"end\":{\"line\":11,\"column\":108}}]},\"2\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":86},\"end\":{\"line\":11,\"column\":96}},\"locations\":[{\"start\":{\"line\":11,\"column\":86},\"end\":{\"line\":11,\"column\":96}}]},\"3\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":97},\"end\":{\"line\":11,\"column\":107}},\"locations\":[{\"start\":{\"line\":11,\"column\":97},\"end\":{\"line\":11,\"column\":107}}]},\"4\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"locations\":[{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":22,\"column\":1}}]},\"5\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":4},\"end\":{\"line\":19,\"column\":6}},\"locations\":[{\"start\":{\"line\":16,\"column\":4},\"end\":{\"line\":19,\"column\":6}}]},\"6\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"locations\":[{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":37,\"column\":1}}]},\"7\":{\"type\":\"branch\",\"line\":36,\"loc\":{\"start\":{\"line\":36,\"column\":26},\"end\":{\"line\":36,\"column\":42}},\"locations\":[{\"start\":{\"line\":36,\"column\":26},\"end\":{\"line\":36,\"column\":42}}]}},\"b\":{\"0\":[17],\"1\":[422],\"2\":[17],\"3\":[405],\"4\":[413],\"5\":[1652],\"6\":[115],\"7\":[32]},\"fnMap\":{\"0\":{\"name\":\"assign\",\"decl\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"loc\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"line\":6},\"1\":{\"name\":\"camelCaseObjectKey\",\"decl\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"loc\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"line\":14},\"2\":{\"name\":\"splitArrayByRatio\",\"decl\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":33,\"column\":1}},\"loc\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":33,\"column\":1}},\"line\":24},\"3\":{\"name\":\"hasValue\",\"decl\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"loc\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"line\":35}},\"f\":{\"0\":17,\"1\":413,\"2\":0,\"3\":115}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/project.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/project.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":20}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":101}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":115}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":53}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":57}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":34}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":70}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":22}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":51}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":58}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":36}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":42}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":71}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":32}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":26}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":31}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":4}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":77}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":14}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":17}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":71}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":17}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":71}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":6}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":20}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":14}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":79}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":41}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":23}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":25}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":31}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":55}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":56}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":52}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":39}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":35}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":23}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":3}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":64}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":47}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":25}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":22}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":32}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":37}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":24}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":7}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":97}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":30}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":7}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":52}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":17}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":56}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":20}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":3}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":34}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":21}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":3}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":16}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":1}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":115}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":52}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":37}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":23}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":46}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":28}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":34}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":44}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":4}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":27}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":1}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":53}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":69}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":3}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":58}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":5}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":59}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":0}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":93}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":20}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":34}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":26}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":13}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":31}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":33}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":25}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":15}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":5}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":48}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":89}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":44}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":7}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":5}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":3}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":17}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":1}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":0}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":69}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":30}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":1}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":112}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":29}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":17}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":15}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":33}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":26}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":32}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":21}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":44}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":57}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":86}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":35}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":62}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":53}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":46}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":56}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":18}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":78}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":11}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":9}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":7}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":100}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":35}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":35}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":101}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":9}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":16}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":24}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":49}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":10}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":14}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":16}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":24}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":49}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":10}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":7}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":6}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":4}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":1}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":0}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":45}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":17}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":15}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":15}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":16}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":20}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":49}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":76}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":48}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":3}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":42}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":1}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":100}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":38}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":36}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":10}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":48}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":3}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":1}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":0}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":113}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":74}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":74}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":3}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":41}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":13}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":51}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":3}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":48}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":1}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":0}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":119}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":74}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":74}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":3}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":67}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":59}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":34}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":22}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":3}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":48}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":20}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":1}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":0}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":92}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":19}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":31}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":15}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":38}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":80}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":19}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":69}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":12}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":23}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":5}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":3}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":17}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":50}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":34}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":68}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":3}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":21}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":1}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":0}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":35}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":28}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":17}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":28}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":18}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":65}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":50}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":1}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":0}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":102}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":56}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":1}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":0}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":51}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":0}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":60}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":98}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":20}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":55}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":27}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":26}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":18}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":26}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":0}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":34}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":35}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":28}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":46}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":37}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":0}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":48}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":54}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":52}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":46}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":42}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":75}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":17}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":21}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":60}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":29}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":86}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":17}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":0}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":67}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":47}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":37}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":30}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":69}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":20}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":18}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":15}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":13}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":27}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":12}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":10}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":7}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":16}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":6}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":4}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":0}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":21}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":1}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":0}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":84}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":29}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":15}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":17}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":62}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":17}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":40}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":14}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":3}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":89}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":42}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":10}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":32}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":45}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":1}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":0}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":71}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":74}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":37}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":113}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":10}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":40}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":3}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":1,\"37\":1,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":1,\"52\":1,\"53\":20,\"54\":20,\"55\":20,\"56\":20,\"57\":20,\"58\":20,\"59\":20,\"60\":20,\"61\":20,\"62\":20,\"63\":20,\"64\":20,\"65\":0,\"66\":0,\"67\":0,\"68\":20,\"69\":19,\"70\":19,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":3,\"101\":0,\"102\":0,\"103\":3,\"104\":4,\"105\":2,\"106\":2,\"107\":4,\"108\":3,\"109\":1,\"110\":1,\"111\":1,\"112\":47,\"113\":47,\"114\":47,\"115\":1,\"116\":1,\"117\":44,\"118\":44,\"119\":44,\"120\":44,\"121\":44,\"122\":44,\"123\":44,\"124\":44,\"125\":47,\"126\":47,\"127\":47,\"128\":8,\"129\":8,\"130\":8,\"131\":5,\"132\":8,\"133\":3,\"134\":3,\"135\":8,\"136\":8,\"137\":47,\"138\":47,\"139\":8,\"140\":8,\"141\":8,\"142\":8,\"143\":8,\"144\":8,\"145\":8,\"146\":47,\"147\":39,\"148\":39,\"149\":39,\"150\":39,\"151\":39,\"152\":44,\"153\":44,\"154\":44,\"155\":1,\"156\":1,\"157\":47,\"158\":47,\"159\":47,\"160\":47,\"161\":47,\"162\":47,\"163\":39,\"164\":39,\"165\":39,\"166\":0,\"167\":0,\"168\":1,\"169\":1,\"170\":8,\"171\":5,\"172\":8,\"173\":3,\"174\":3,\"175\":8,\"176\":1,\"177\":1,\"178\":6,\"179\":0,\"180\":0,\"181\":6,\"182\":6,\"183\":0,\"184\":0,\"185\":6,\"186\":6,\"187\":1,\"188\":1,\"189\":47,\"190\":0,\"191\":0,\"192\":47,\"193\":47,\"194\":47,\"195\":18,\"196\":18,\"197\":29,\"198\":29,\"199\":29,\"200\":1,\"201\":1,\"202\":47,\"203\":47,\"204\":47,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":47,\"214\":47,\"215\":47,\"216\":0,\"217\":0,\"218\":47,\"219\":47,\"220\":1,\"221\":1,\"222\":20,\"223\":20,\"224\":20,\"225\":20,\"226\":20,\"227\":20,\"228\":20,\"229\":1,\"230\":1,\"231\":20,\"232\":20,\"233\":1,\"234\":1,\"235\":1,\"236\":1,\"237\":1,\"238\":35,\"239\":35,\"240\":35,\"241\":35,\"242\":35,\"243\":35,\"244\":35,\"245\":35,\"246\":35,\"247\":35,\"248\":35,\"249\":35,\"250\":35,\"251\":35,\"252\":35,\"253\":35,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":35,\"274\":35,\"275\":35,\"276\":35,\"277\":35,\"278\":35,\"279\":35,\"280\":35,\"281\":35,\"282\":35,\"283\":1,\"284\":1,\"285\":41,\"286\":41,\"287\":41,\"288\":41,\"289\":41,\"290\":41,\"291\":39,\"292\":39,\"293\":2,\"294\":2,\"295\":2,\"296\":2,\"297\":2,\"298\":2,\"299\":1,\"300\":121,\"301\":121,\"302\":121,\"303\":0,\"304\":121,\"305\":121,\"306\":121,\"307\":121},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":7},\"end\":{\"line\":73,\"column\":1}},\"locations\":[{\"start\":{\"line\":53,\"column\":7},\"end\":{\"line\":73,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":65,\"loc\":{\"start\":{\"line\":65,\"column\":4},\"end\":{\"line\":68,\"column\":3}},\"locations\":[{\"start\":{\"line\":65,\"column\":4},\"end\":{\"line\":68,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":33},\"end\":{\"line\":71,\"column\":3}},\"locations\":[{\"start\":{\"line\":69,\"column\":33},\"end\":{\"line\":71,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":-1},\"end\":{\"line\":73,\"column\":1}},\"locations\":[{\"start\":{\"line\":72,\"column\":-1},\"end\":{\"line\":73,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":25},\"end\":{\"line\":64,\"column\":50}},\"locations\":[{\"start\":{\"line\":64,\"column\":25},\"end\":{\"line\":64,\"column\":50}}]},\"5\":{\"type\":\"branch\",\"line\":94,\"loc\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":111,\"column\":1}},\"locations\":[{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":111,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":32},\"end\":{\"line\":109,\"column\":3}},\"locations\":[{\"start\":{\"line\":100,\"column\":32},\"end\":{\"line\":109,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":24},\"end\":{\"line\":103,\"column\":5}},\"locations\":[{\"start\":{\"line\":101,\"column\":24},\"end\":{\"line\":103,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":47},\"end\":{\"line\":108,\"column\":5}},\"locations\":[{\"start\":{\"line\":104,\"column\":47},\"end\":{\"line\":108,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":43},\"end\":{\"line\":105,\"column\":61}},\"locations\":[{\"start\":{\"line\":105,\"column\":43},\"end\":{\"line\":105,\"column\":61}}]},\"10\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":61},\"end\":{\"line\":105,\"column\":86}},\"locations\":[{\"start\":{\"line\":105,\"column\":61},\"end\":{\"line\":105,\"column\":86}}]},\"11\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":88},\"end\":{\"line\":107,\"column\":7}},\"locations\":[{\"start\":{\"line\":105,\"column\":88},\"end\":{\"line\":107,\"column\":7}}]},\"12\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":115,\"column\":1}},\"locations\":[{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":115,\"column\":1}}]},\"13\":{\"type\":\"branch\",\"line\":117,\"loc\":{\"start\":{\"line\":117,\"column\":7},\"end\":{\"line\":155,\"column\":1}},\"locations\":[{\"start\":{\"line\":117,\"column\":7},\"end\":{\"line\":155,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":125,\"loc\":{\"start\":{\"line\":125,\"column\":21},\"end\":{\"line\":153,\"column\":5}},\"locations\":[{\"start\":{\"line\":125,\"column\":21},\"end\":{\"line\":153,\"column\":5}}]},\"15\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":51},\"end\":{\"line\":126,\"column\":56}},\"locations\":[{\"start\":{\"line\":126,\"column\":51},\"end\":{\"line\":126,\"column\":56}}]},\"16\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":34},\"end\":{\"line\":137,\"column\":7}},\"locations\":[{\"start\":{\"line\":128,\"column\":34},\"end\":{\"line\":137,\"column\":7}}]},\"17\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":45},\"end\":{\"line\":133,\"column\":17}},\"locations\":[{\"start\":{\"line\":131,\"column\":45},\"end\":{\"line\":133,\"column\":17}}]},\"18\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":11},\"end\":{\"line\":135,\"column\":11}},\"locations\":[{\"start\":{\"line\":133,\"column\":11},\"end\":{\"line\":135,\"column\":11}}]},\"19\":{\"type\":\"branch\",\"line\":139,\"loc\":{\"start\":{\"line\":139,\"column\":34},\"end\":{\"line\":147,\"column\":13}},\"locations\":[{\"start\":{\"line\":139,\"column\":34},\"end\":{\"line\":147,\"column\":13}}]},\"20\":{\"type\":\"branch\",\"line\":147,\"loc\":{\"start\":{\"line\":147,\"column\":7},\"end\":{\"line\":152,\"column\":7}},\"locations\":[{\"start\":{\"line\":147,\"column\":7},\"end\":{\"line\":152,\"column\":7}}]},\"21\":{\"type\":\"branch\",\"line\":157,\"loc\":{\"start\":{\"line\":157,\"column\":7},\"end\":{\"line\":168,\"column\":1}},\"locations\":[{\"start\":{\"line\":157,\"column\":7},\"end\":{\"line\":168,\"column\":1}}]},\"22\":{\"type\":\"branch\",\"line\":163,\"loc\":{\"start\":{\"line\":163,\"column\":37},\"end\":{\"line\":163,\"column\":49}},\"locations\":[{\"start\":{\"line\":163,\"column\":37},\"end\":{\"line\":163,\"column\":49}}]},\"23\":{\"type\":\"branch\",\"line\":164,\"loc\":{\"start\":{\"line\":164,\"column\":-1},\"end\":{\"line\":166,\"column\":3}},\"locations\":[{\"start\":{\"line\":164,\"column\":-1},\"end\":{\"line\":166,\"column\":3}}]},\"24\":{\"type\":\"branch\",\"line\":164,\"loc\":{\"start\":{\"line\":164,\"column\":39},\"end\":{\"line\":164,\"column\":73}},\"locations\":[{\"start\":{\"line\":164,\"column\":39},\"end\":{\"line\":164,\"column\":73}}]},\"25\":{\"type\":\"branch\",\"line\":167,\"loc\":{\"start\":{\"line\":167,\"column\":-1},\"end\":{\"line\":168,\"column\":1}},\"locations\":[{\"start\":{\"line\":167,\"column\":-1},\"end\":{\"line\":168,\"column\":1}}]},\"26\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":7},\"end\":{\"line\":176,\"column\":1}},\"locations\":[{\"start\":{\"line\":170,\"column\":7},\"end\":{\"line\":176,\"column\":1}}]},\"27\":{\"type\":\"branch\",\"line\":171,\"loc\":{\"start\":{\"line\":171,\"column\":37},\"end\":{\"line\":173,\"column\":9}},\"locations\":[{\"start\":{\"line\":171,\"column\":37},\"end\":{\"line\":173,\"column\":9}}]},\"28\":{\"type\":\"branch\",\"line\":173,\"loc\":{\"start\":{\"line\":173,\"column\":3},\"end\":{\"line\":175,\"column\":3}},\"locations\":[{\"start\":{\"line\":173,\"column\":3},\"end\":{\"line\":175,\"column\":3}}]},\"29\":{\"type\":\"branch\",\"line\":178,\"loc\":{\"start\":{\"line\":178,\"column\":7},\"end\":{\"line\":187,\"column\":1}},\"locations\":[{\"start\":{\"line\":178,\"column\":7},\"end\":{\"line\":187,\"column\":1}}]},\"30\":{\"type\":\"branch\",\"line\":179,\"loc\":{\"start\":{\"line\":179,\"column\":36},\"end\":{\"line\":179,\"column\":70}},\"locations\":[{\"start\":{\"line\":179,\"column\":36},\"end\":{\"line\":179,\"column\":70}}]},\"31\":{\"type\":\"branch\",\"line\":179,\"loc\":{\"start\":{\"line\":179,\"column\":73},\"end\":{\"line\":181,\"column\":3}},\"locations\":[{\"start\":{\"line\":179,\"column\":73},\"end\":{\"line\":181,\"column\":3}}]},\"32\":{\"type\":\"branch\",\"line\":183,\"loc\":{\"start\":{\"line\":183,\"column\":12},\"end\":{\"line\":185,\"column\":3}},\"locations\":[{\"start\":{\"line\":183,\"column\":12},\"end\":{\"line\":185,\"column\":3}}]},\"33\":{\"type\":\"branch\",\"line\":189,\"loc\":{\"start\":{\"line\":189,\"column\":7},\"end\":{\"line\":200,\"column\":1}},\"locations\":[{\"start\":{\"line\":189,\"column\":7},\"end\":{\"line\":200,\"column\":1}}]},\"34\":{\"type\":\"branch\",\"line\":190,\"loc\":{\"start\":{\"line\":190,\"column\":36},\"end\":{\"line\":190,\"column\":70}},\"locations\":[{\"start\":{\"line\":190,\"column\":36},\"end\":{\"line\":190,\"column\":70}}]},\"35\":{\"type\":\"branch\",\"line\":190,\"loc\":{\"start\":{\"line\":190,\"column\":73},\"end\":{\"line\":192,\"column\":3}},\"locations\":[{\"start\":{\"line\":190,\"column\":73},\"end\":{\"line\":192,\"column\":3}}]},\"36\":{\"type\":\"branch\",\"line\":194,\"loc\":{\"start\":{\"line\":194,\"column\":25},\"end\":{\"line\":194,\"column\":47}},\"locations\":[{\"start\":{\"line\":194,\"column\":25},\"end\":{\"line\":194,\"column\":47}}]},\"37\":{\"type\":\"branch\",\"line\":194,\"loc\":{\"start\":{\"line\":194,\"column\":48},\"end\":{\"line\":194,\"column\":58}},\"locations\":[{\"start\":{\"line\":194,\"column\":48},\"end\":{\"line\":194,\"column\":58}}]},\"38\":{\"type\":\"branch\",\"line\":195,\"loc\":{\"start\":{\"line\":195,\"column\":33},\"end\":{\"line\":197,\"column\":3}},\"locations\":[{\"start\":{\"line\":195,\"column\":33},\"end\":{\"line\":197,\"column\":3}}]},\"39\":{\"type\":\"branch\",\"line\":198,\"loc\":{\"start\":{\"line\":198,\"column\":-1},\"end\":{\"line\":200,\"column\":1}},\"locations\":[{\"start\":{\"line\":198,\"column\":-1},\"end\":{\"line\":200,\"column\":1}}]},\"40\":{\"type\":\"branch\",\"line\":202,\"loc\":{\"start\":{\"line\":202,\"column\":7},\"end\":{\"line\":220,\"column\":1}},\"locations\":[{\"start\":{\"line\":202,\"column\":7},\"end\":{\"line\":220,\"column\":1}}]},\"41\":{\"type\":\"branch\",\"line\":205,\"loc\":{\"start\":{\"line\":205,\"column\":14},\"end\":{\"line\":213,\"column\":3}},\"locations\":[{\"start\":{\"line\":205,\"column\":14},\"end\":{\"line\":213,\"column\":3}}]},\"42\":{\"type\":\"branch\",\"line\":216,\"loc\":{\"start\":{\"line\":216,\"column\":33},\"end\":{\"line\":218,\"column\":3}},\"locations\":[{\"start\":{\"line\":216,\"column\":33},\"end\":{\"line\":218,\"column\":3}}]},\"43\":{\"type\":\"branch\",\"line\":222,\"loc\":{\"start\":{\"line\":222,\"column\":7},\"end\":{\"line\":229,\"column\":1}},\"locations\":[{\"start\":{\"line\":222,\"column\":7},\"end\":{\"line\":229,\"column\":1}}]},\"44\":{\"type\":\"branch\",\"line\":231,\"loc\":{\"start\":{\"line\":231,\"column\":7},\"end\":{\"line\":233,\"column\":1}},\"locations\":[{\"start\":{\"line\":231,\"column\":7},\"end\":{\"line\":233,\"column\":1}}]},\"45\":{\"type\":\"branch\",\"line\":238,\"loc\":{\"start\":{\"line\":238,\"column\":7},\"end\":{\"line\":283,\"column\":1}},\"locations\":[{\"start\":{\"line\":238,\"column\":7},\"end\":{\"line\":283,\"column\":1}}]},\"46\":{\"type\":\"branch\",\"line\":247,\"loc\":{\"start\":{\"line\":247,\"column\":20},\"end\":{\"line\":279,\"column\":5}},\"locations\":[{\"start\":{\"line\":247,\"column\":20},\"end\":{\"line\":279,\"column\":5}}]},\"47\":{\"type\":\"branch\",\"line\":249,\"loc\":{\"start\":{\"line\":249,\"column\":40},\"end\":{\"line\":249,\"column\":45}},\"locations\":[{\"start\":{\"line\":249,\"column\":40},\"end\":{\"line\":249,\"column\":45}}]},\"48\":{\"type\":\"branch\",\"line\":253,\"loc\":{\"start\":{\"line\":253,\"column\":34},\"end\":{\"line\":275,\"column\":11}},\"locations\":[{\"start\":{\"line\":253,\"column\":34},\"end\":{\"line\":275,\"column\":11}}]},\"49\":{\"type\":\"branch\",\"line\":254,\"loc\":{\"start\":{\"line\":254,\"column\":51},\"end\":{\"line\":273,\"column\":13}},\"locations\":[{\"start\":{\"line\":254,\"column\":51},\"end\":{\"line\":273,\"column\":13}}]},\"50\":{\"type\":\"branch\",\"line\":285,\"loc\":{\"start\":{\"line\":285,\"column\":7},\"end\":{\"line\":299,\"column\":1}},\"locations\":[{\"start\":{\"line\":285,\"column\":7},\"end\":{\"line\":299,\"column\":1}}]},\"51\":{\"type\":\"branch\",\"line\":291,\"loc\":{\"start\":{\"line\":291,\"column\":16},\"end\":{\"line\":291,\"column\":37}},\"locations\":[{\"start\":{\"line\":291,\"column\":16},\"end\":{\"line\":291,\"column\":37}}]},\"52\":{\"type\":\"branch\",\"line\":291,\"loc\":{\"start\":{\"line\":291,\"column\":39},\"end\":{\"line\":293,\"column\":3}},\"locations\":[{\"start\":{\"line\":291,\"column\":39},\"end\":{\"line\":293,\"column\":3}}]},\"53\":{\"type\":\"branch\",\"line\":294,\"loc\":{\"start\":{\"line\":294,\"column\":-1},\"end\":{\"line\":299,\"column\":1}},\"locations\":[{\"start\":{\"line\":294,\"column\":-1},\"end\":{\"line\":299,\"column\":1}}]},\"54\":{\"type\":\"branch\",\"line\":295,\"loc\":{\"start\":{\"line\":295,\"column\":25},\"end\":{\"line\":298,\"column\":4}},\"locations\":[{\"start\":{\"line\":295,\"column\":25},\"end\":{\"line\":298,\"column\":4}}]},\"55\":{\"type\":\"branch\",\"line\":301,\"loc\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":308,\"column\":1}},\"locations\":[{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":308,\"column\":1}}]},\"56\":{\"type\":\"branch\",\"line\":303,\"loc\":{\"start\":{\"line\":303,\"column\":36},\"end\":{\"line\":305,\"column\":9}},\"locations\":[{\"start\":{\"line\":303,\"column\":36},\"end\":{\"line\":305,\"column\":9}}]},\"57\":{\"type\":\"branch\",\"line\":302,\"loc\":{\"start\":{\"line\":302,\"column\":42},\"end\":{\"line\":302,\"column\":72}},\"locations\":[{\"start\":{\"line\":302,\"column\":42},\"end\":{\"line\":302,\"column\":72}}]},\"58\":{\"type\":\"branch\",\"line\":302,\"loc\":{\"start\":{\"line\":302,\"column\":67},\"end\":{\"line\":302,\"column\":72}},\"locations\":[{\"start\":{\"line\":302,\"column\":67},\"end\":{\"line\":302,\"column\":72}}]}},\"b\":{\"0\":[20],\"1\":[0],\"2\":[19],\"3\":[1],\"4\":[141],\"5\":[1],\"6\":[3],\"7\":[0],\"8\":[4],\"9\":[2],\"10\":[2],\"11\":[2],\"12\":[47],\"13\":[44],\"14\":[47],\"15\":[1],\"16\":[8],\"17\":[5],\"18\":[3],\"19\":[8],\"20\":[39],\"21\":[47],\"22\":[8],\"23\":[39],\"24\":[0],\"25\":[0],\"26\":[8],\"27\":[5],\"28\":[3],\"29\":[6],\"30\":[0],\"31\":[0],\"32\":[0],\"33\":[47],\"34\":[0],\"35\":[0],\"36\":[44],\"37\":[3],\"38\":[18],\"39\":[29],\"40\":[47],\"41\":[0],\"42\":[0],\"43\":[20],\"44\":[20],\"45\":[35],\"46\":[35],\"47\":[0],\"48\":[35],\"49\":[0],\"50\":[41],\"51\":[2],\"52\":[39],\"53\":[2],\"54\":[2],\"55\":[121],\"56\":[0],\"57\":[121],\"58\":[0]},\"fnMap\":{\"0\":{\"name\":\"getValidPort\",\"decl\":{\"start\":{\"line\":20,\"column\":7},\"end\":{\"line\":36,\"column\":1}},\"loc\":{\"start\":{\"line\":20,\"column\":7},\"end\":{\"line\":36,\"column\":1}},\"line\":20},\"1\":{\"name\":\"prepareProjectDir\",\"decl\":{\"start\":{\"line\":38,\"column\":7},\"end\":{\"line\":51,\"column\":1}},\"loc\":{\"start\":{\"line\":38,\"column\":7},\"end\":{\"line\":51,\"column\":1}},\"line\":38},\"2\":{\"name\":\"getExistingProjectSchema\",\"decl\":{\"start\":{\"line\":53,\"column\":7},\"end\":{\"line\":73,\"column\":1}},\"loc\":{\"start\":{\"line\":53,\"column\":7},\"end\":{\"line\":73,\"column\":1}},\"line\":53},\"3\":{\"name\":\"getEnumDeprecated\",\"decl\":{\"start\":{\"line\":75,\"column\":7},\"end\":{\"line\":85,\"column\":1}},\"loc\":{\"start\":{\"line\":75,\"column\":7},\"end\":{\"line\":85,\"column\":1}},\"line\":75},\"4\":{\"name\":\"getModulos\",\"decl\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":111,\"column\":1}},\"loc\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":111,\"column\":1}},\"line\":94},\"5\":{\"name\":\"isAssetsDs\",\"decl\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":115,\"column\":1}},\"loc\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":115,\"column\":1}},\"line\":113},\"6\":{\"name\":\"updateDataSourcesV1_0_0\",\"decl\":{\"start\":{\"line\":117,\"column\":7},\"end\":{\"line\":155,\"column\":1}},\"loc\":{\"start\":{\"line\":117,\"column\":7},\"end\":{\"line\":155,\"column\":1}},\"line\":117},\"7\":{\"name\":\"updateDataSourcesEntry\",\"decl\":{\"start\":{\"line\":157,\"column\":7},\"end\":{\"line\":168,\"column\":1}},\"loc\":{\"start\":{\"line\":157,\"column\":7},\"end\":{\"line\":168,\"column\":1}},\"line\":157},\"8\":{\"name\":\"updateProcessor\",\"decl\":{\"start\":{\"line\":170,\"column\":7},\"end\":{\"line\":176,\"column\":1}},\"loc\":{\"start\":{\"line\":170,\"column\":7},\"end\":{\"line\":176,\"column\":1}},\"line\":170},\"9\":{\"name\":\"fetchAndSaveFile\",\"decl\":{\"start\":{\"line\":178,\"column\":7},\"end\":{\"line\":187,\"column\":1}},\"loc\":{\"start\":{\"line\":178,\"column\":7},\"end\":{\"line\":187,\"column\":1}},\"line\":178},\"10\":{\"name\":\"saveFile\",\"decl\":{\"start\":{\"line\":189,\"column\":7},\"end\":{\"line\":200,\"column\":1}},\"loc\":{\"start\":{\"line\":189,\"column\":7},\"end\":{\"line\":200,\"column\":1}},\"line\":189},\"11\":{\"name\":\"loadDataSourceScript\",\"decl\":{\"start\":{\"line\":202,\"column\":7},\"end\":{\"line\":220,\"column\":1}},\"loc\":{\"start\":{\"line\":202,\"column\":7},\"end\":{\"line\":220,\"column\":1}},\"line\":202},\"12\":{\"name\":\"initDbSchema\",\"decl\":{\"start\":{\"line\":222,\"column\":7},\"end\":{\"line\":229,\"column\":1}},\"loc\":{\"start\":{\"line\":222,\"column\":7},\"end\":{\"line\":229,\"column\":1}},\"line\":222},\"13\":{\"name\":\"initHotSchemaReload\",\"decl\":{\"start\":{\"line\":231,\"column\":7},\"end\":{\"line\":233,\"column\":1}},\"loc\":{\"start\":{\"line\":231,\"column\":7},\"end\":{\"line\":233,\"column\":1}},\"line\":231},\"14\":{\"name\":\"insertBlockFiltersCronSchedules\",\"decl\":{\"start\":{\"line\":238,\"column\":7},\"end\":{\"line\":283,\"column\":1}},\"loc\":{\"start\":{\"line\":238,\"column\":7},\"end\":{\"line\":283,\"column\":1}},\"line\":238},\"15\":{\"name\":\"get next\",\"decl\":{\"start\":{\"line\":268,\"column\":18},\"end\":{\"line\":270,\"column\":19}},\"loc\":{\"start\":{\"line\":268,\"column\":18},\"end\":{\"line\":270,\"column\":19}},\"line\":268},\"16\":{\"name\":\"loadProjectTemplates\",\"decl\":{\"start\":{\"line\":285,\"column\":7},\"end\":{\"line\":299,\"column\":1}},\"loc\":{\"start\":{\"line\":285,\"column\":7},\"end\":{\"line\":299,\"column\":1}},\"line\":285},\"17\":{\"name\":\"getStartHeight\",\"decl\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":308,\"column\":1}},\"loc\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":308,\"column\":1}},\"line\":301}},\"f\":{\"0\":0,\"1\":0,\"2\":20,\"3\":0,\"4\":1,\"5\":47,\"6\":44,\"7\":47,\"8\":8,\"9\":6,\"10\":47,\"11\":47,\"12\":20,\"13\":20,\"14\":35,\"15\":0,\"16\":41,\"17\":121}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/promise.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/promise.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":48}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":57}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":35}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":36}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":5}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":100}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":52}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":32}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":30}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":23}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":17}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":14}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":30}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":17}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":8}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":14}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":30}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":16}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":7}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":6}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":45}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":58}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":7}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":5}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":41}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":26}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":31}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":47}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":31}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":3}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":67}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":39}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":115}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":7}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":22}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":15}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":45}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":32}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":45}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":69}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":3}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":87}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":44}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":59}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":116}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":54}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":49}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":29}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":48}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":11}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":37}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":28}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":30}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":51}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":9}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":23}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":28}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":7}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":7}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":42}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":55}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":83}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":54}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":5}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":5}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":61,\"6\":61,\"7\":61,\"8\":61,\"9\":1,\"10\":1,\"11\":65,\"12\":65,\"13\":65,\"14\":65,\"15\":65,\"16\":65,\"17\":52,\"18\":52,\"19\":65,\"20\":65,\"21\":16,\"22\":16,\"23\":16,\"24\":65,\"25\":65,\"26\":65,\"27\":65,\"28\":65,\"29\":65,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":2,\"36\":2,\"37\":2,\"38\":1,\"39\":1,\"40\":0,\"41\":0,\"42\":0,\"43\":1,\"44\":5,\"45\":5,\"46\":5,\"47\":5,\"48\":3,\"49\":1,\"50\":1,\"51\":2,\"52\":2,\"53\":2,\"54\":5,\"55\":1,\"56\":1,\"57\":3,\"58\":3,\"59\":1,\"60\":1,\"61\":1,\"62\":26,\"63\":26,\"64\":26,\"65\":26,\"66\":26,\"67\":26,\"68\":26,\"69\":25,\"70\":25,\"71\":25,\"72\":25,\"73\":26,\"74\":0,\"75\":0,\"76\":26,\"77\":26,\"78\":26,\"79\":26,\"80\":26,\"81\":0,\"82\":0,\"83\":26,\"84\":26},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":5,\"loc\":{\"start\":{\"line\":5,\"column\":7},\"end\":{\"line\":9,\"column\":1}},\"locations\":[{\"start\":{\"line\":5,\"column\":7},\"end\":{\"line\":9,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":6,\"loc\":{\"start\":{\"line\":6,\"column\":21},\"end\":{\"line\":8,\"column\":3}},\"locations\":[{\"start\":{\"line\":6,\"column\":21},\"end\":{\"line\":8,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":7},\"end\":{\"line\":30,\"column\":1}},\"locations\":[{\"start\":{\"line\":11,\"column\":7},\"end\":{\"line\":30,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":17,\"loc\":{\"start\":{\"line\":17,\"column\":6},\"end\":{\"line\":20,\"column\":7}},\"locations\":[{\"start\":{\"line\":17,\"column\":6},\"end\":{\"line\":20,\"column\":7}}]},\"4\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":6},\"end\":{\"line\":24,\"column\":7}},\"locations\":[{\"start\":{\"line\":21,\"column\":6},\"end\":{\"line\":24,\"column\":7}}]},\"5\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":23},\"end\":{\"line\":28,\"column\":5}},\"locations\":[{\"start\":{\"line\":26,\"column\":23},\"end\":{\"line\":28,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":27},\"end\":{\"line\":27,\"column\":44}},\"locations\":[{\"start\":{\"line\":27,\"column\":27},\"end\":{\"line\":27,\"column\":44}}]},\"7\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":38,\"column\":3}},\"locations\":[{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":38,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"locations\":[{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":55,\"column\":1}}]},\"9\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":4},\"end\":{\"line\":54,\"column\":3}},\"locations\":[{\"start\":{\"line\":48,\"column\":4},\"end\":{\"line\":54,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":49,\"loc\":{\"start\":{\"line\":49,\"column\":44},\"end\":{\"line\":51,\"column\":5}},\"locations\":[{\"start\":{\"line\":49,\"column\":44},\"end\":{\"line\":51,\"column\":5}}]},\"11\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":-1},\"end\":{\"line\":54,\"column\":3}},\"locations\":[{\"start\":{\"line\":52,\"column\":-1},\"end\":{\"line\":54,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":7},\"end\":{\"line\":59,\"column\":1}},\"locations\":[{\"start\":{\"line\":57,\"column\":7},\"end\":{\"line\":59,\"column\":1}}]},\"13\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":85,\"column\":1}},\"locations\":[{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":85,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":21},\"end\":{\"line\":84,\"column\":3}},\"locations\":[{\"start\":{\"line\":64,\"column\":21},\"end\":{\"line\":84,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":-1},\"end\":{\"line\":81,\"column\":25}},\"locations\":[{\"start\":{\"line\":81,\"column\":-1},\"end\":{\"line\":81,\"column\":25}}]},\"16\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":21},\"end\":{\"line\":81,\"column\":80}},\"locations\":[{\"start\":{\"line\":81,\"column\":21},\"end\":{\"line\":81,\"column\":80}}]},\"17\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":82},\"end\":{\"line\":83,\"column\":5}},\"locations\":[{\"start\":{\"line\":81,\"column\":82},\"end\":{\"line\":83,\"column\":5}}]},\"18\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":21},\"end\":{\"line\":77,\"column\":5}},\"locations\":[{\"start\":{\"line\":67,\"column\":21},\"end\":{\"line\":77,\"column\":5}}]},\"19\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":-1},\"end\":{\"line\":73,\"column\":9}},\"locations\":[{\"start\":{\"line\":70,\"column\":-1},\"end\":{\"line\":73,\"column\":9}}]},\"20\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":8},\"end\":{\"line\":76,\"column\":7}},\"locations\":[{\"start\":{\"line\":74,\"column\":8},\"end\":{\"line\":76,\"column\":7}}]},\"21\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":39},\"end\":{\"line\":81,\"column\":79}},\"locations\":[{\"start\":{\"line\":81,\"column\":39},\"end\":{\"line\":81,\"column\":79}}]}},\"b\":{\"0\":[61],\"1\":[61],\"2\":[65],\"3\":[52],\"4\":[16],\"5\":[65],\"6\":[5],\"7\":[2],\"8\":[5],\"9\":[3],\"10\":[1],\"11\":[2],\"12\":[3],\"13\":[26],\"14\":[26],\"15\":[25],\"16\":[0],\"17\":[0],\"18\":[26],\"19\":[25],\"20\":[0],\"21\":[1]},\"fnMap\":{\"0\":{\"name\":\"delay\",\"decl\":{\"start\":{\"line\":5,\"column\":7},\"end\":{\"line\":9,\"column\":1}},\"loc\":{\"start\":{\"line\":5,\"column\":7},\"end\":{\"line\":9,\"column\":1}},\"line\":5},\"1\":{\"name\":\"timeout\",\"decl\":{\"start\":{\"line\":11,\"column\":7},\"end\":{\"line\":30,\"column\":1}},\"loc\":{\"start\":{\"line\":11,\"column\":7},\"end\":{\"line\":30,\"column\":1}},\"line\":11},\"2\":{\"name\":\"BackoffError\",\"decl\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":38,\"column\":3}},\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":38,\"column\":3}},\"line\":35},\"3\":{\"name\":\"isBackoffError\",\"decl\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"loc\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"line\":41},\"4\":{\"name\":\"backoffRetryInternal\",\"decl\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"loc\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":55,\"column\":1}},\"line\":45},\"5\":{\"name\":\"backoffRetry\",\"decl\":{\"start\":{\"line\":57,\"column\":7},\"end\":{\"line\":59,\"column\":1}},\"loc\":{\"start\":{\"line\":57,\"column\":7},\"end\":{\"line\":59,\"column\":1}},\"line\":57},\"6\":{\"name\":\"raceFulfilled\",\"decl\":{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":85,\"column\":1}},\"loc\":{\"start\":{\"line\":62,\"column\":7},\"end\":{\"line\":85,\"column\":1}},\"line\":62}},\"f\":{\"0\":61,\"1\":65,\"2\":2,\"3\":0,\"4\":5,\"5\":3,\"6\":26}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/reindex.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/utils/reindex.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":53}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":45}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":115}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":36}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":49}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":36}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":3}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":84}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":55}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":86}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":119}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":93}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":48}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":48}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":21}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":89}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":29}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":22}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":33}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":26}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":19}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":31}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":20}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":27}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":3}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":30}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":22}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":28}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":30}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":29}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":58}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":42}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":23}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":66}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":26}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":39}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":18}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":72}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":16}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":131}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":6}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":11}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":3}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":70}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":40}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":16}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":112}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":6}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":29}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":73}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":22}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":5}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":47}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":41}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":10}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":61}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":58}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":47}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":54}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":9}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":8}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":123}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":59}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":73}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":114}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":6}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":108}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":25}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":60}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":105}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":115}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":67}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":59}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":9}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":54}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":64}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":33}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":37}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":24}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":45}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":35}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":16}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":5}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"reindex\",\"decl\":{\"start\":{\"line\":32,\"column\":7},\"end\":{\"line\":94,\"column\":1}},\"loc\":{\"start\":{\"line\":32,\"column\":7},\"end\":{\"line\":94,\"column\":1}},\"line\":32}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/yargs.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node-core/src/yargs.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":26}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":38}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":36}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":110}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":5}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":33}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":7}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":26}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":5}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":37}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":7}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":29}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":5}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":33}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":7}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":46}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":46}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":7}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":22}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":5}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":59}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":7}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":20}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":2}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":77}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":77}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":29}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":70}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":68}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":39}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":10}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":32}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":24}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":16}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":24}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":57}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":20}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":28}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":118}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":39}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":10}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":8}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":16}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":31}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":17}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":142}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":20}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":28}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":118}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":42}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":10}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":8}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":16}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":27}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":17}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":203}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":27}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":41}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":27}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":44}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":26}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":13}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":28}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":118}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":56}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":10}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":8}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":71}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":16}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":40}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":49}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":27}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":15}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":22}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":36}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":29}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":36}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":71}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":31}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":16}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":37}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":36}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":61}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":31}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":16}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":40}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":36}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":25}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":113}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":31}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":16}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":38}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":36}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":107}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":31}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":16}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":37}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":36}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":70}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":32}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":134}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":16}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":28}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":36}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":85}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":31}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":88}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":16}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":30}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":36}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":31}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":102}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":32}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":16}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":37}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":27}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":36}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":72}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":31}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":16}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":35}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":36}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":31}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":67}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":16}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":43}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":36}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":31}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":99}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":16}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":29}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":36}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":60}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":31}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":45}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":16}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":30}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":36}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":97}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":31}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":29}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":16}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":40}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":36}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":117}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":31}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":16}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":42}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":36}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":25}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":162}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":31}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":16}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":39}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":36}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":64}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":31}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":16}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":36}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":36}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":112}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":32}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":16}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":39}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":36}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":25}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":89}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":131}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":31}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":27}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":16}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":32}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":33}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":36}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":57}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":31}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":16}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":29}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":36}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":80}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":32}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":31}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":16}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":33}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":36}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":25}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":291}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":32}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":134}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":16}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":24}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":36}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":89}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":31}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":16}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":37}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":36}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":73}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":32}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":134}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":16}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":23}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":32}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":36}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":83}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":134}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":16}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":24}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":27}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":36}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":117}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":31}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":16}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":41}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":36}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":82}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":32}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":16}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":21}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":25}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":187}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":31}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":16}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":30}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":25}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":117}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":31}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":16}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":14}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":73}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":24}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":40}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":10}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":8}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":49}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":16}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":31}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":17}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":21}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":30}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":49}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":25}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":10}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":22}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":30}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":52}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":25}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":10}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":16}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":30}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":270}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":25}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":10}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":15}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":30}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":44}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":25}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":10}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":15}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":21}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":30}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":56}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":25}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":10}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":19}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":30}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":66}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":26}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":25}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":10}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":27}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":30}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":52}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":26}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":25}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":10}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":18}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":30}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":19}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":182}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":25}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":10}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":19}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":30}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":100}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":25}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":10}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":20}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":30}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":19}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":119}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":25}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":10}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":19}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":21}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":29}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":33}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":69}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":25}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":10}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":8}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":4}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":2,\"33\":2,\"34\":2,\"35\":2,\"36\":2,\"37\":2,\"38\":2,\"39\":2,\"40\":2,\"41\":2,\"42\":2,\"43\":2,\"44\":0,\"45\":0,\"46\":2,\"47\":2,\"48\":2,\"49\":2,\"50\":2,\"51\":2,\"52\":2,\"53\":2,\"54\":0,\"55\":0,\"56\":0,\"57\":2,\"58\":2,\"59\":2,\"60\":2,\"61\":2,\"62\":2,\"63\":2,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":2,\"69\":2,\"70\":0,\"71\":0,\"72\":2,\"73\":2,\"74\":2,\"75\":2,\"76\":2,\"77\":2,\"78\":2,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":2,\"237\":2,\"238\":0,\"239\":2,\"240\":2,\"241\":2,\"242\":2,\"243\":2,\"244\":2,\"245\":2,\"246\":2,\"247\":2,\"248\":2,\"249\":2,\"250\":2,\"251\":2,\"252\":2,\"253\":2,\"254\":2,\"255\":2,\"256\":2,\"257\":2,\"258\":2,\"259\":2,\"260\":2,\"261\":2,\"262\":2,\"263\":2,\"264\":2,\"265\":2,\"266\":2,\"267\":2,\"268\":2,\"269\":2,\"270\":2,\"271\":2,\"272\":2,\"273\":2,\"274\":2,\"275\":2,\"276\":2,\"277\":2,\"278\":2,\"279\":2,\"280\":2,\"281\":2,\"282\":2,\"283\":2,\"284\":2,\"285\":2,\"286\":2,\"287\":2,\"288\":2,\"289\":2,\"290\":2,\"291\":2,\"292\":2,\"293\":2,\"294\":2,\"295\":2,\"296\":2,\"297\":2,\"298\":2,\"299\":2,\"300\":2,\"301\":2,\"302\":2,\"303\":2,\"304\":2,\"305\":2,\"306\":2,\"307\":2,\"308\":2,\"309\":2},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":310,\"column\":1}},\"locations\":[{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":310,\"column\":1}}]}},\"b\":{\"0\":[2]},\"fnMap\":{\"0\":{\"name\":\"yargsBuilder\",\"decl\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":310,\"column\":1}},\"loc\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":310,\"column\":1}},\"line\":33},\"1\":{\"name\":\"handler\",\"decl\":{\"start\":{\"line\":44,\"column\":17},\"end\":{\"line\":47,\"column\":9}},\"loc\":{\"start\":{\"line\":44,\"column\":17},\"end\":{\"line\":47,\"column\":9}},\"line\":44},\"2\":{\"name\":\"handler\",\"decl\":{\"start\":{\"line\":54,\"column\":17},\"end\":{\"line\":58,\"column\":9}},\"loc\":{\"start\":{\"line\":54,\"column\":17},\"end\":{\"line\":58,\"column\":9}},\"line\":54},\"3\":{\"name\":\"builder\",\"decl\":{\"start\":{\"line\":64,\"column\":17},\"end\":{\"line\":69,\"column\":12}},\"loc\":{\"start\":{\"line\":64,\"column\":17},\"end\":{\"line\":69,\"column\":12}},\"line\":64},\"4\":{\"name\":\"handler\",\"decl\":{\"start\":{\"line\":70,\"column\":17},\"end\":{\"line\":73,\"column\":9}},\"loc\":{\"start\":{\"line\":70,\"column\":17},\"end\":{\"line\":73,\"column\":9}},\"line\":70},\"5\":{\"name\":\"builder\",\"decl\":{\"start\":{\"line\":79,\"column\":17},\"end\":{\"line\":237,\"column\":25}},\"loc\":{\"start\":{\"line\":79,\"column\":17},\"end\":{\"line\":237,\"column\":25}},\"line\":79},\"6\":{\"name\":\"handler\",\"decl\":{\"start\":{\"line\":238,\"column\":17},\"end\":{\"line\":240,\"column\":9}},\"loc\":{\"start\":{\"line\":238,\"column\":17},\"end\":{\"line\":240,\"column\":9}},\"line\":238}},\"f\":{\"0\":2,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/app.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/app.module.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":59}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":50}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":44}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":63}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":53}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":48}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":9}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":12}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":23}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":33}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":31}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":29}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":16}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":15}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":4}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":18}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":2}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":25}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":23,\"column\":25}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":23,\"column\":25}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":23,\"column\":25}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":23,\"column\":25}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/configure/NodeConfig.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/configure/NodeConfig.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":55}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":51}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":28}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":1}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":71}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":5}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":132}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":84}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":4}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":13}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":17}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":30}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":8}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":61}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":6}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":7}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":35}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":35}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":60}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":3}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":35}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":43}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":3}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":26,\"23\":26,\"24\":26,\"25\":1,\"26\":1,\"27\":118,\"28\":118,\"29\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"locations\":[{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":25,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"locations\":[{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}}]}},\"b\":{\"0\":[26],\"1\":[118]},\"fnMap\":{\"0\":{\"name\":\"SubstrateNodeConfig\",\"decl\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"line\":22},\"1\":{\"name\":\"get skipTransactions\",\"decl\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":29,\"column\":3}},\"line\":27}},\"f\":{\"0\":26,\"1\":118}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/configure/SubqueryProject.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/configure/SubqueryProject.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":44}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":56}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":47}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":8}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":32}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":28}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":23}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":14}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":23}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":13}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":33}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":8}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":34}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":23}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":26}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":19}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":26}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":8}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":22}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":28}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":27}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":25}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":22}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":71}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":53}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":34}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":40}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":49}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":66}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":53}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":36}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":29}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":29}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":62}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":18}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":26}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":17}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":4}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":2}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":39}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":67}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":2}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":13}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":58}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":37}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":14}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":24}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":26}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":45}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":38}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":35}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":49}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":42}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":34}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":36}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":5}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":36}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":3}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":43}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":29}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":28}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":52}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":20}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":62}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":23}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":19}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":18}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":33}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":6}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":3}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":22}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":17}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":25}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":19}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":77}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":55}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":31}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":49}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":84}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":44}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":73}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":73}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":11}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":32}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":65}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":6}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":64}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":29}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":28}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":5}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":0}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":39}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":24}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":13}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":11}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":11}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":23}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":6}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":3}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":1}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":63}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":47}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":74}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":55}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":42}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":3}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":29}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":17}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":1}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":0}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":50}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":43}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":36}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":17}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":15}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":15}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":53}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":29}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":61}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":74}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":3}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":0}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":34}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":31}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":24}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":5}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":9}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":21}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":14}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":84}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":6}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":4}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":0}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":27}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":7}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":69}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":15}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":20}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":71}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":6}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":3}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":53}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":0}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":55}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":80}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":16}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":0}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":52}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":32}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":11}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":9}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":15}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":4}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":0}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":47}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":30}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":9}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":11}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":15}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":4}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":40}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":9}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":56}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":14}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":91}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":6}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":4}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":0}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":29}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":78}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":9}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":12}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":16}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":11}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":14}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":15}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":11}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":27}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":4}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":0,\"50\":0,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":14,\"58\":14,\"59\":14,\"60\":14,\"61\":14,\"62\":14,\"63\":14,\"64\":14,\"65\":14,\"66\":14,\"67\":14,\"68\":14,\"69\":1,\"70\":1,\"71\":69,\"72\":69,\"73\":1,\"74\":1,\"75\":35,\"76\":35,\"77\":35,\"78\":35,\"79\":35,\"80\":35,\"81\":35,\"82\":35,\"83\":35,\"84\":1,\"85\":1,\"86\":41,\"87\":41,\"88\":41,\"89\":41,\"90\":41,\"91\":41,\"92\":41,\"93\":41,\"94\":41,\"95\":41,\"96\":41,\"97\":41,\"98\":41,\"99\":41,\"100\":41,\"101\":41,\"102\":41,\"103\":41,\"104\":41,\"105\":41,\"106\":0,\"107\":0,\"108\":41,\"109\":41,\"110\":41,\"111\":41,\"112\":41,\"113\":41,\"114\":41,\"115\":41,\"116\":41,\"117\":1,\"118\":1,\"119\":41,\"120\":41,\"121\":0,\"122\":41,\"123\":1,\"124\":1,\"125\":41,\"126\":41,\"127\":41,\"128\":1,\"129\":1,\"130\":1,\"131\":41,\"132\":41,\"133\":41,\"134\":41,\"135\":41,\"136\":41,\"137\":41,\"138\":41,\"139\":4,\"140\":4,\"141\":41,\"142\":41,\"143\":41,\"144\":41,\"145\":41,\"146\":41,\"147\":41,\"148\":41,\"149\":41,\"150\":41,\"151\":41,\"152\":41,\"153\":41,\"154\":41,\"155\":41,\"156\":41,\"157\":41,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":41,\"163\":41,\"164\":41,\"165\":41,\"166\":41,\"167\":41,\"168\":41,\"169\":41,\"170\":41,\"171\":41,\"172\":41,\"173\":41,\"174\":41,\"175\":41,\"176\":41,\"177\":41,\"178\":41,\"179\":41,\"180\":41,\"181\":41,\"182\":41,\"183\":41,\"184\":41,\"185\":41,\"186\":41,\"187\":41,\"188\":41,\"189\":41,\"190\":41,\"191\":41,\"192\":41,\"193\":41,\"194\":41,\"195\":41,\"196\":41,\"197\":41,\"198\":41,\"199\":41,\"200\":41},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"locations\":[{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":69,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"locations\":[{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"locations\":[{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":84,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":9},\"end\":{\"line\":117,\"column\":3}},\"locations\":[{\"start\":{\"line\":86,\"column\":9},\"end\":{\"line\":117,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":106,\"loc\":{\"start\":{\"line\":106,\"column\":28},\"end\":{\"line\":108,\"column\":5}},\"locations\":[{\"start\":{\"line\":106,\"column\":28},\"end\":{\"line\":108,\"column\":5}}]},\"5\":{\"type\":\"branch\",\"line\":120,\"loc\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":128,\"column\":1}},\"locations\":[{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":128,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":21},\"end\":{\"line\":121,\"column\":44}},\"locations\":[{\"start\":{\"line\":121,\"column\":21},\"end\":{\"line\":121,\"column\":44}}]},\"7\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":46},\"end\":{\"line\":123,\"column\":9}},\"locations\":[{\"start\":{\"line\":121,\"column\":46},\"end\":{\"line\":123,\"column\":9}}]},\"8\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":32},\"end\":{\"line\":123,\"column\":52}},\"locations\":[{\"start\":{\"line\":123,\"column\":32},\"end\":{\"line\":123,\"column\":52}}]},\"9\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":54},\"end\":{\"line\":125,\"column\":3}},\"locations\":[{\"start\":{\"line\":123,\"column\":54},\"end\":{\"line\":125,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":132,\"loc\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":201,\"column\":1}},\"locations\":[{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":201,\"column\":1}}]},\"11\":{\"type\":\"branch\",\"line\":139,\"loc\":{\"start\":{\"line\":139,\"column\":60},\"end\":{\"line\":141,\"column\":3}},\"locations\":[{\"start\":{\"line\":139,\"column\":60},\"end\":{\"line\":141,\"column\":3}}]},\"12\":{\"type\":\"branch\",\"line\":158,\"loc\":{\"start\":{\"line\":158,\"column\":4},\"end\":{\"line\":162,\"column\":3}},\"locations\":[{\"start\":{\"line\":158,\"column\":4},\"end\":{\"line\":162,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":166,\"loc\":{\"start\":{\"line\":166,\"column\":4},\"end\":{\"line\":167,\"column\":5}},\"locations\":[{\"start\":{\"line\":166,\"column\":4},\"end\":{\"line\":167,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":167,\"loc\":{\"start\":{\"line\":167,\"column\":4},\"end\":{\"line\":167,\"column\":15}},\"locations\":[{\"start\":{\"line\":167,\"column\":4},\"end\":{\"line\":167,\"column\":15}}]},\"15\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":16},\"end\":{\"line\":191,\"column\":29}},\"locations\":[{\"start\":{\"line\":191,\"column\":16},\"end\":{\"line\":191,\"column\":29}}]},\"16\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":30},\"end\":{\"line\":191,\"column\":36}},\"locations\":[{\"start\":{\"line\":191,\"column\":30},\"end\":{\"line\":191,\"column\":36}}]}},\"b\":{\"0\":[14],\"1\":[69],\"2\":[35],\"3\":[41],\"4\":[0],\"5\":[41],\"6\":[40],\"7\":[0],\"8\":[1],\"9\":[1],\"10\":[41],\"11\":[4],\"12\":[0],\"13\":[6],\"14\":[35],\"15\":[4],\"16\":[37]},\"fnMap\":{\"0\":{\"name\":\"NOT_SUPPORT\",\"decl\":{\"start\":{\"line\":49,\"column\":20},\"end\":{\"line\":51,\"column\":2}},\"loc\":{\"start\":{\"line\":49,\"column\":20},\"end\":{\"line\":51,\"column\":2}},\"line\":49},\"1\":{\"name\":\"SubqueryProject\",\"decl\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"loc\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":69,\"column\":3}},\"line\":57},\"2\":{\"name\":\"get dataSources\",\"decl\":{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"loc\":{\"start\":{\"line\":71,\"column\":2},\"end\":{\"line\":73,\"column\":3}},\"line\":71},\"3\":{\"name\":\"applyCronTimestamps\",\"decl\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"loc\":{\"start\":{\"line\":75,\"column\":2},\"end\":{\"line\":84,\"column\":3}},\"line\":75},\"4\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":86,\"column\":9},\"end\":{\"line\":117,\"column\":3}},\"loc\":{\"start\":{\"line\":86,\"column\":9},\"end\":{\"line\":117,\"column\":3}},\"line\":86},\"5\":{\"name\":\"processChainId\",\"decl\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":128,\"column\":1}},\"loc\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":128,\"column\":1}},\"line\":120},\"6\":{\"name\":\"loadProjectFromManifestBase\",\"decl\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":201,\"column\":1}},\"loc\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":201,\"column\":1}},\"line\":132}},\"f\":{\"0\":0,\"1\":14,\"2\":69,\"3\":35,\"4\":41,\"5\":41,\"6\":41}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/configure/configure.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/configure/configure.module.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":63}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":59}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":40}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":52}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":44}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":9}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":11}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":30}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":39}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":27}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":29}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":6}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":34}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":40}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":11}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":51}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":47}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":12}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":6}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":3}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":51}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":72}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":12}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":30}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":18}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":9}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":30}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":31}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":10}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":9}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":38}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":28}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":10}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":9}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":44}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":28}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":10}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":9}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":26}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":25}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":10}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":8}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":16}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":19}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":27}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":33}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":15}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":8}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":6}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":3}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":1,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"getInstance\",\"decl\":{\"start\":{\"line\":14,\"column\":9},\"end\":{\"line\":25,\"column\":3}},\"loc\":{\"start\":{\"line\":14,\"column\":9},\"end\":{\"line\":25,\"column\":3}},\"line\":14},\"1\":{\"name\":\"register\",\"decl\":{\"start\":{\"line\":26,\"column\":9},\"end\":{\"line\":56,\"column\":3}},\"loc\":{\"start\":{\"line\":26,\"column\":9},\"end\":{\"line\":56,\"column\":3}},\"line\":26}},\"f\":{\"0\":0,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/api.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/api.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":75}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":54}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":43}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":54}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":68}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":70}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":8}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":15}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":12}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":13}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":15}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":24}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":31}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":9}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":26}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":62}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":63}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":55}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":52}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":8}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":23}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":12}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":15}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":33}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":65}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":45}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":48}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":2}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":125}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":33}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":26}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":32}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":13}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":23}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":25}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":15}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":10}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":56}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":3}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":34}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":41}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":76}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":35}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":37}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":42}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":14}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":65}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":71}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":32}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":27}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":5}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":47}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":58}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":31}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":3}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":48}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":61}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":3}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":37}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":28}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":9}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":43}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":37}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":51}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":70}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":7}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":17}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":22}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":22}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":5}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":21}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":48}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":5}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":33}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":14}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":24}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":19}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":72}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":21}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":11}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":18}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":65}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":51}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":41}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":42}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":8}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":25}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":78}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":41}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":35}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":61}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":21}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":28}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":31}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":13}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":11}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":38}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":61}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":21}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":28}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":31}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":13}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":11}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":8}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":6}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":16}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":3}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":0}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":31}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":64}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":28}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":60}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":43}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":30}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":20}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":88}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":10}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":14}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":20}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":100}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":10}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":7}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":12}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":30}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":20}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":137}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":10}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":14}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":53}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":7}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":5}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":0}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":38}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":45}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":41}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":0}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":36}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":46}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":18}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":24}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":29}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":8}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":12}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":43}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":5}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":3}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":25}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":26}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":3}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":0}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":22}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":19}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":35}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":21}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":51}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":55}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":25}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":32}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":28}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":21}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":16}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":33}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":17}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":3}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":0}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":62}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":46}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":38}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":57}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":31}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":55}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":39}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":8}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":27}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":29}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":65}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":0}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":48}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":38}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":0}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":30}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":53}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":61}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":72}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":30}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":121}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":16}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":13}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":11}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":26}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":16}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":53}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":59}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":20}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":64}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":37}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":16}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":75}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":60}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":32}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":128}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":18}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":15}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":13}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":11}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":0}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":40}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":46}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":51}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":33}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":19}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":7}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":5}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":0}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":70}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":8}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":17}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":6}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":47}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":29}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":15}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":3}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":0}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":60}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":79}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":54}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":49}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":54}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":66}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":12}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":26}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":10}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":11}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":8}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":17}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":32}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":3}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":0}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":59}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":46}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":13}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":61}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":0}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":66}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":3}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":0}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":56}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":20}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":22}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":28}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":41}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":43}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":40}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":56}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":57}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":62}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":20}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":3}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":0,\"31\":0,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":26,\"57\":26,\"58\":26,\"59\":26,\"60\":26,\"61\":26,\"62\":26,\"63\":26,\"64\":26,\"65\":26,\"66\":1,\"67\":1,\"68\":26,\"69\":26,\"70\":1,\"71\":1,\"72\":26,\"73\":26,\"74\":26,\"75\":26,\"76\":26,\"77\":26,\"78\":0,\"79\":0,\"80\":26,\"81\":0,\"82\":0,\"83\":0,\"84\":26,\"85\":26,\"86\":6,\"87\":6,\"88\":26,\"89\":26,\"90\":26,\"91\":26,\"92\":26,\"93\":26,\"94\":26,\"95\":26,\"96\":26,\"97\":26,\"98\":26,\"99\":25,\"100\":25,\"101\":26,\"102\":26,\"103\":26,\"104\":25,\"105\":25,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":25,\"112\":25,\"113\":23,\"114\":23,\"115\":23,\"116\":23,\"117\":23,\"118\":25,\"119\":26,\"120\":26,\"121\":25,\"122\":25,\"123\":25,\"124\":1,\"125\":1,\"126\":59,\"127\":59,\"128\":59,\"129\":59,\"130\":59,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":59,\"141\":59,\"142\":59,\"143\":59,\"144\":59,\"145\":59,\"146\":0,\"147\":0,\"148\":59,\"149\":59,\"150\":59,\"151\":59,\"152\":59,\"153\":59,\"154\":59,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":59,\"161\":59,\"162\":59,\"163\":59,\"164\":1,\"165\":1,\"166\":51,\"167\":51,\"168\":1,\"169\":1,\"170\":4,\"171\":4,\"172\":4,\"173\":4,\"174\":4,\"175\":4,\"176\":4,\"177\":4,\"178\":4,\"179\":4,\"180\":4,\"181\":4,\"182\":4,\"183\":4,\"184\":1,\"185\":1,\"186\":288,\"187\":288,\"188\":288,\"189\":288,\"190\":288,\"191\":288,\"192\":288,\"193\":288,\"194\":104,\"195\":104,\"196\":104,\"197\":104,\"198\":3,\"199\":3,\"200\":3,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":3,\"210\":3,\"211\":3,\"212\":1,\"213\":3,\"214\":2,\"215\":2,\"216\":2,\"217\":2,\"218\":2,\"219\":1,\"220\":1,\"221\":1,\"222\":1,\"223\":2,\"224\":3,\"225\":2,\"226\":2,\"227\":104,\"228\":104,\"229\":104,\"230\":104,\"231\":104,\"232\":288,\"233\":184,\"234\":184,\"235\":184,\"236\":184,\"237\":184,\"238\":184,\"239\":184,\"240\":184,\"241\":184,\"242\":1,\"243\":1,\"244\":4,\"245\":76,\"246\":76,\"247\":288,\"248\":288,\"249\":288,\"250\":288,\"251\":76,\"252\":76,\"253\":76,\"254\":76,\"255\":4,\"256\":4,\"257\":1,\"258\":1,\"259\":288,\"260\":288,\"261\":288,\"262\":288,\"263\":288,\"264\":288,\"265\":1,\"266\":1,\"267\":1,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":0,\"278\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":20},\"end\":{\"line\":32,\"column\":2}},\"locations\":[{\"start\":{\"line\":30,\"column\":20},\"end\":{\"line\":32,\"column\":2}}]},\"1\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":66,\"column\":3}},\"locations\":[{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":66,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"locations\":[{\"start\":{\"line\":68,\"column\":2},\"end\":{\"line\":70,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":124,\"column\":3}},\"locations\":[{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":124,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":50},\"end\":{\"line\":80,\"column\":7}},\"locations\":[{\"start\":{\"line\":78,\"column\":50},\"end\":{\"line\":80,\"column\":7}}]},\"5\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":6},\"end\":{\"line\":84,\"column\":5}},\"locations\":[{\"start\":{\"line\":81,\"column\":6},\"end\":{\"line\":84,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":20},\"end\":{\"line\":88,\"column\":5}},\"locations\":[{\"start\":{\"line\":86,\"column\":20},\"end\":{\"line\":88,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":-1},\"end\":{\"line\":124,\"column\":3}},\"locations\":[{\"start\":{\"line\":122,\"column\":-1},\"end\":{\"line\":124,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":6},\"end\":{\"line\":96,\"column\":10}},\"locations\":[{\"start\":{\"line\":93,\"column\":6},\"end\":{\"line\":96,\"column\":10}}]},\"9\":{\"type\":\"branch\",\"line\":99,\"loc\":{\"start\":{\"line\":99,\"column\":6},\"end\":{\"line\":102,\"column\":7}},\"locations\":[{\"start\":{\"line\":99,\"column\":6},\"end\":{\"line\":102,\"column\":7}}]},\"10\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":6},\"end\":{\"line\":120,\"column\":7}},\"locations\":[{\"start\":{\"line\":104,\"column\":6},\"end\":{\"line\":120,\"column\":7}}]},\"11\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":31},\"end\":{\"line\":119,\"column\":9}},\"locations\":[{\"start\":{\"line\":113,\"column\":31},\"end\":{\"line\":119,\"column\":9}}]},\"12\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"locations\":[{\"start\":{\"line\":126,\"column\":2},\"end\":{\"line\":164,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":129,\"loc\":{\"start\":{\"line\":129,\"column\":38},\"end\":{\"line\":129,\"column\":59}},\"locations\":[{\"start\":{\"line\":129,\"column\":38},\"end\":{\"line\":129,\"column\":59}}]},\"14\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":42},\"end\":{\"line\":141,\"column\":11}},\"locations\":[{\"start\":{\"line\":131,\"column\":42},\"end\":{\"line\":141,\"column\":11}}]},\"15\":{\"type\":\"branch\",\"line\":146,\"loc\":{\"start\":{\"line\":146,\"column\":7},\"end\":{\"line\":148,\"column\":7}},\"locations\":[{\"start\":{\"line\":146,\"column\":7},\"end\":{\"line\":148,\"column\":7}}]},\"16\":{\"type\":\"branch\",\"line\":152,\"loc\":{\"start\":{\"line\":152,\"column\":6},\"end\":{\"line\":152,\"column\":45}},\"locations\":[{\"start\":{\"line\":152,\"column\":6},\"end\":{\"line\":152,\"column\":45}}]},\"17\":{\"type\":\"branch\",\"line\":155,\"loc\":{\"start\":{\"line\":155,\"column\":35},\"end\":{\"line\":161,\"column\":11}},\"locations\":[{\"start\":{\"line\":155,\"column\":35},\"end\":{\"line\":161,\"column\":11}}]},\"18\":{\"type\":\"branch\",\"line\":166,\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":168,\"column\":3}},\"locations\":[{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":168,\"column\":3}}]},\"19\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":2},\"end\":{\"line\":184,\"column\":3}},\"locations\":[{\"start\":{\"line\":170,\"column\":2},\"end\":{\"line\":184,\"column\":3}}]},\"20\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":10},\"end\":{\"line\":242,\"column\":3}},\"locations\":[{\"start\":{\"line\":186,\"column\":10},\"end\":{\"line\":242,\"column\":3}}]},\"21\":{\"type\":\"branch\",\"line\":194,\"loc\":{\"start\":{\"line\":194,\"column\":26},\"end\":{\"line\":232,\"column\":7}},\"locations\":[{\"start\":{\"line\":194,\"column\":26},\"end\":{\"line\":232,\"column\":7}}]},\"22\":{\"type\":\"branch\",\"line\":234,\"loc\":{\"start\":{\"line\":234,\"column\":-1},\"end\":{\"line\":242,\"column\":3}},\"locations\":[{\"start\":{\"line\":234,\"column\":-1},\"end\":{\"line\":242,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":192,\"loc\":{\"start\":{\"line\":192,\"column\":8},\"end\":{\"line\":192,\"column\":38}},\"locations\":[{\"start\":{\"line\":192,\"column\":8},\"end\":{\"line\":192,\"column\":38}}]},\"24\":{\"type\":\"branch\",\"line\":198,\"loc\":{\"start\":{\"line\":198,\"column\":21},\"end\":{\"line\":228,\"column\":9}},\"locations\":[{\"start\":{\"line\":198,\"column\":21},\"end\":{\"line\":228,\"column\":9}}]},\"25\":{\"type\":\"branch\",\"line\":201,\"loc\":{\"start\":{\"line\":201,\"column\":29},\"end\":{\"line\":209,\"column\":11}},\"locations\":[{\"start\":{\"line\":201,\"column\":29},\"end\":{\"line\":209,\"column\":11}}]},\"26\":{\"type\":\"branch\",\"line\":212,\"loc\":{\"start\":{\"line\":212,\"column\":52},\"end\":{\"line\":214,\"column\":19}},\"locations\":[{\"start\":{\"line\":212,\"column\":52},\"end\":{\"line\":214,\"column\":19}}]},\"27\":{\"type\":\"branch\",\"line\":214,\"loc\":{\"start\":{\"line\":214,\"column\":13},\"end\":{\"line\":224,\"column\":13}},\"locations\":[{\"start\":{\"line\":214,\"column\":13},\"end\":{\"line\":224,\"column\":13}}]},\"28\":{\"type\":\"branch\",\"line\":219,\"loc\":{\"start\":{\"line\":219,\"column\":59},\"end\":{\"line\":223,\"column\":15}},\"locations\":[{\"start\":{\"line\":219,\"column\":59},\"end\":{\"line\":223,\"column\":15}}]},\"29\":{\"type\":\"branch\",\"line\":226,\"loc\":{\"start\":{\"line\":226,\"column\":-1},\"end\":{\"line\":228,\"column\":9}},\"locations\":[{\"start\":{\"line\":226,\"column\":-1},\"end\":{\"line\":228,\"column\":9}}]},\"30\":{\"type\":\"branch\",\"line\":244,\"loc\":{\"start\":{\"line\":244,\"column\":10},\"end\":{\"line\":257,\"column\":3}},\"locations\":[{\"start\":{\"line\":244,\"column\":10},\"end\":{\"line\":257,\"column\":3}}]},\"31\":{\"type\":\"branch\",\"line\":245,\"loc\":{\"start\":{\"line\":245,\"column\":47},\"end\":{\"line\":256,\"column\":5}},\"locations\":[{\"start\":{\"line\":245,\"column\":47},\"end\":{\"line\":256,\"column\":5}}]},\"32\":{\"type\":\"branch\",\"line\":247,\"loc\":{\"start\":{\"line\":247,\"column\":8},\"end\":{\"line\":252,\"column\":9}},\"locations\":[{\"start\":{\"line\":247,\"column\":8},\"end\":{\"line\":252,\"column\":9}}]},\"33\":{\"type\":\"branch\",\"line\":259,\"loc\":{\"start\":{\"line\":259,\"column\":10},\"end\":{\"line\":265,\"column\":3}},\"locations\":[{\"start\":{\"line\":259,\"column\":10},\"end\":{\"line\":265,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":264,\"loc\":{\"start\":{\"line\":264,\"column\":34},\"end\":{\"line\":264,\"column\":41}},\"locations\":[{\"start\":{\"line\":264,\"column\":34},\"end\":{\"line\":264,\"column\":41}}]},\"35\":{\"type\":\"branch\",\"line\":264,\"loc\":{\"start\":{\"line\":264,\"column\":56},\"end\":{\"line\":264,\"column\":63}},\"locations\":[{\"start\":{\"line\":264,\"column\":56},\"end\":{\"line\":264,\"column\":63}}]}},\"b\":{\"0\":[472],\"1\":[26],\"2\":[26],\"3\":[26],\"4\":[0],\"5\":[0],\"6\":[6],\"7\":[25],\"8\":[26],\"9\":[25],\"10\":[25],\"11\":[23],\"12\":[59],\"13\":[0],\"14\":[0],\"15\":[0],\"16\":[0],\"17\":[0],\"18\":[51],\"19\":[4],\"20\":[288],\"21\":[104],\"22\":[184],\"23\":[364],\"24\":[3],\"25\":[0],\"26\":[1],\"27\":[2],\"28\":[1],\"29\":[2],\"30\":[4],\"31\":[76],\"32\":[288],\"33\":[288],\"34\":[0],\"35\":[0]},\"fnMap\":{\"0\":{\"name\":\"NOT_SUPPORT\",\"decl\":{\"start\":{\"line\":30,\"column\":20},\"end\":{\"line\":32,\"column\":2}},\"loc\":{\"start\":{\"line\":30,\"column\":20},\"end\":{\"line\":32,\"column\":2}},\"line\":30},\"1\":{\"name\":\"ApiService\",\"decl\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":66,\"column\":3}},\"loc\":{\"start\":{\"line\":56,\"column\":2},\"end\":{\"line\":66,\"column\":3}},\"line\":56},\"2\":{\"name\":\"ApiService.fetchBlocksBatches\",\"decl\":{\"start\":{\"line\":50,\"column\":45},\"end\":{\"line\":50,\"column\":75}},\"loc\":{\"start\":{\"line\":50,\"column\":45},\"end\":{\"line\":50,\"column\":75}},\"line\":50},\"3\":{\"name\":\"onApplicationShutdown\",\"decl\":{\"start\":{\"line\":68,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"loc\":{\"start\":{\"line\":68,\"column\":2},\"end\":{\"line\":70,\"column\":3}},\"line\":68},\"4\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":124,\"column\":3}},\"loc\":{\"start\":{\"line\":72,\"column\":2},\"end\":{\"line\":124,\"column\":3}},\"line\":72},\"5\":{\"name\":\"createConnections.api\",\"decl\":{\"start\":{\"line\":93,\"column\":6},\"end\":{\"line\":96,\"column\":10}},\"loc\":{\"start\":{\"line\":93,\"column\":6},\"end\":{\"line\":96,\"column\":10}},\"line\":93},\"6\":{\"name\":\"createConnections.api\",\"decl\":{\"start\":{\"line\":99,\"column\":6},\"end\":{\"line\":102,\"column\":7}},\"loc\":{\"start\":{\"line\":99,\"column\":6},\"end\":{\"line\":102,\"column\":7}},\"line\":99},\"7\":{\"name\":\"updateBlockFetching\",\"decl\":{\"start\":{\"line\":126,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"loc\":{\"start\":{\"line\":126,\"column\":2},\"end\":{\"line\":164,\"column\":3}},\"line\":126},\"8\":{\"name\":\"get api\",\"decl\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":168,\"column\":3}},\"loc\":{\"start\":{\"line\":166,\"column\":2},\"end\":{\"line\":168,\"column\":3}},\"line\":166},\"9\":{\"name\":\"getPatchedApi\",\"decl\":{\"start\":{\"line\":170,\"column\":2},\"end\":{\"line\":184,\"column\":3}},\"loc\":{\"start\":{\"line\":170,\"column\":2},\"end\":{\"line\":184,\"column\":3}},\"line\":170},\"10\":{\"name\":\"redecorateRpcFunction\",\"decl\":{\"start\":{\"line\":186,\"column\":10},\"end\":{\"line\":242,\"column\":3}},\"loc\":{\"start\":{\"line\":186,\"column\":10},\"end\":{\"line\":242,\"column\":3}},\"line\":186},\"11\":{\"name\":\"ret\",\"decl\":{\"start\":{\"line\":198,\"column\":21},\"end\":{\"line\":228,\"column\":9}},\"loc\":{\"start\":{\"line\":198,\"column\":21},\"end\":{\"line\":228,\"column\":9}},\"line\":198},\"12\":{\"name\":\"patchApiRpc\",\"decl\":{\"start\":{\"line\":244,\"column\":10},\"end\":{\"line\":257,\"column\":3}},\"loc\":{\"start\":{\"line\":244,\"column\":10},\"end\":{\"line\":257,\"column\":3}},\"line\":244},\"13\":{\"name\":\"getRPCFunctionName\",\"decl\":{\"start\":{\"line\":259,\"column\":10},\"end\":{\"line\":265,\"column\":3}},\"loc\":{\"start\":{\"line\":259,\"column\":10},\"end\":{\"line\":265,\"column\":3}},\"line\":259},\"14\":{\"name\":\"fetchBlocks\",\"decl\":{\"start\":{\"line\":268,\"column\":2},\"end\":{\"line\":278,\"column\":3}},\"loc\":{\"start\":{\"line\":268,\"column\":2},\"end\":{\"line\":278,\"column\":3}},\"line\":268}},\"f\":{\"0\":472,\"1\":26,\"2\":0,\"3\":26,\"4\":26,\"5\":26,\"6\":25,\"7\":59,\"8\":51,\"9\":4,\"10\":288,\"11\":3,\"12\":4,\"13\":288,\"14\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/apiPromise.connection.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/apiPromise.connection.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":55}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":49}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":65}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":56}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":8}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":21}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":15}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":21}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":21}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":25}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":17}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":15}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":25}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":9}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":26}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":52}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":65}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":67}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":49}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":62}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":66}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":26}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":23}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":43}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":49}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":110}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":43}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":33}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":12}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":27}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":17}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":12}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":58}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":47}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":14}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":33}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":35}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":29}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":45}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":24}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":47}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":61}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":52}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":6}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":22}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":21}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":37}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":42}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":36}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":36}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":31}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":21}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":54}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":6}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":36}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":38}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":55}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":8}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":45}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":75}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":28}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":5}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":23}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":15}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":21}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":23}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":25}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":6}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":51}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":36}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":10}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":16}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":15}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":25}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":6}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":34}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":39}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":3}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":20}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":22}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":28}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":68}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":51}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":21}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":14}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":21}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":6}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":18}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":3}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":0}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":37}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":43}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":39}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":18}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":7}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":44}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":18}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":9}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":0}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":40}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":33}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":7}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":7}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":3}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":40}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":38}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":3}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":49}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":0}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":52}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":44}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":76}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":44}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":60}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":50}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":67}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":46}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":61}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":50}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":12}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":47}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":15}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":18}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":29}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":8}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":5}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":27}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":3}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":25,\"47\":25,\"48\":25,\"49\":25,\"50\":25,\"51\":25,\"52\":25,\"53\":25,\"54\":25,\"55\":25,\"56\":25,\"57\":1,\"58\":1,\"59\":26,\"60\":26,\"61\":26,\"62\":26,\"63\":26,\"64\":26,\"65\":26,\"66\":26,\"67\":26,\"68\":26,\"69\":26,\"70\":26,\"71\":26,\"72\":26,\"73\":26,\"74\":26,\"75\":0,\"76\":0,\"77\":0,\"78\":26,\"79\":26,\"80\":26,\"81\":26,\"82\":26,\"83\":26,\"84\":26,\"85\":26,\"86\":25,\"87\":25,\"88\":25,\"89\":25,\"90\":25,\"91\":25,\"92\":25,\"93\":1,\"94\":1,\"95\":0,\"96\":0,\"97\":1,\"98\":1,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":1,\"110\":1,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":1,\"126\":1,\"127\":50,\"128\":50,\"129\":1,\"130\":1,\"131\":1,\"132\":1,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"locations\":[{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":57,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":9},\"end\":{\"line\":93,\"column\":3}},\"locations\":[{\"start\":{\"line\":59,\"column\":9},\"end\":{\"line\":93,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":5},\"end\":{\"line\":78,\"column\":5}},\"locations\":[{\"start\":{\"line\":75,\"column\":5},\"end\":{\"line\":78,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":87,\"loc\":{\"start\":{\"line\":87,\"column\":-1},\"end\":{\"line\":93,\"column\":3}},\"locations\":[{\"start\":{\"line\":87,\"column\":-1},\"end\":{\"line\":93,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":127,\"loc\":{\"start\":{\"line\":127,\"column\":2},\"end\":{\"line\":129,\"column\":3}},\"locations\":[{\"start\":{\"line\":127,\"column\":2},\"end\":{\"line\":129,\"column\":3}}]}},\"b\":{\"0\":[25],\"1\":[26],\"2\":[0],\"3\":[25],\"4\":[50]},\"fnMap\":{\"0\":{\"name\":\"ApiPromiseConnection\",\"decl\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"loc\":{\"start\":{\"line\":46,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"line\":46},\"1\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":59,\"column\":9},\"end\":{\"line\":93,\"column\":3}},\"loc\":{\"start\":{\"line\":59,\"column\":9},\"end\":{\"line\":93,\"column\":3}},\"line\":59},\"2\":{\"name\":\"safeApi\",\"decl\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"loc\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"line\":95},\"3\":{\"name\":\"fetchBlocks\",\"decl\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":109,\"column\":3}},\"loc\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":109,\"column\":3}},\"line\":99},\"4\":{\"name\":\"apiConnect\",\"decl\":{\"start\":{\"line\":111,\"column\":2},\"end\":{\"line\":125,\"column\":3}},\"loc\":{\"start\":{\"line\":111,\"column\":2},\"end\":{\"line\":125,\"column\":3}},\"line\":111},\"5\":{\"name\":\"apiDisconnect\",\"decl\":{\"start\":{\"line\":127,\"column\":2},\"end\":{\"line\":129,\"column\":3}},\"loc\":{\"start\":{\"line\":127,\"column\":2},\"end\":{\"line\":129,\"column\":3}},\"line\":127},\"6\":{\"name\":\"handleError\",\"decl\":{\"start\":{\"line\":133,\"column\":9},\"end\":{\"line\":151,\"column\":3}},\"loc\":{\"start\":{\"line\":133,\"column\":9},\"end\":{\"line\":151,\"column\":3}},\"line\":133}},\"f\":{\"0\":25,\"1\":26,\"2\":0,\"3\":0,\"4\":0,\"5\":50,\"6\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/blockDispatcher/block-dispatcher.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/blockDispatcher/block-dispatcher.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":75}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":54}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":13}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":20}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":20}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":15}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":18}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":23}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":25}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":17}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":9}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":26}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":51}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":66}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":44}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":57}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":52}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":59}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":72}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":3}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":133}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":13}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":35}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":80}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":34}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":1}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":41}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":14}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":35}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":27}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":43}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":32}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":30}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":57}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":37}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":50}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":41}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":31}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":41}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":35}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":57}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":39}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":10}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":17}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":19}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":21}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":28}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":24}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":19}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":24}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":21}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":14}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":23}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":13}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":28}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":75}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":66}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":42}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":10}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":77}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":46}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":43}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":20}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":74}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":10}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":8}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":6}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":3}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":13}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":58}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":36}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":20}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":41}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":41}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":3}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":77}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":54}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":3}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":29}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":60}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":36}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":52}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":17}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":71}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":42}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":12}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":47}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":41}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":8}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":21}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":6}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":3}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":20,\"37\":20,\"38\":20,\"39\":20,\"40\":20,\"41\":20,\"42\":20,\"43\":20,\"44\":20,\"45\":20,\"46\":20,\"47\":20,\"48\":20,\"49\":20,\"50\":20,\"51\":20,\"52\":20,\"53\":20,\"54\":20,\"55\":20,\"56\":20,\"57\":20,\"58\":20,\"59\":20,\"60\":20,\"61\":20,\"62\":20,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":20,\"76\":20,\"77\":20,\"78\":1,\"79\":1,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":1,\"87\":1,\"88\":0,\"89\":0,\"90\":1,\"91\":1,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":36,\"loc\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":78,\"column\":3}},\"locations\":[{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":78,\"column\":3}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"BlockDispatcherService\",\"decl\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":78,\"column\":3}},\"loc\":{\"start\":{\"line\":36,\"column\":2},\"end\":{\"line\":78,\"column\":3}},\"line\":36},\"1\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":86,\"column\":3}},\"loc\":{\"start\":{\"line\":80,\"column\":2},\"end\":{\"line\":86,\"column\":3}},\"line\":80},\"2\":{\"name\":\"getBlockHeight\",\"decl\":{\"start\":{\"line\":88,\"column\":12},\"end\":{\"line\":90,\"column\":3}},\"loc\":{\"start\":{\"line\":88,\"column\":12},\"end\":{\"line\":90,\"column\":3}},\"line\":88},\"3\":{\"name\":\"indexBlock\",\"decl\":{\"start\":{\"line\":92,\"column\":12},\"end\":{\"line\":105,\"column\":3}},\"loc\":{\"start\":{\"line\":92,\"column\":12},\"end\":{\"line\":105,\"column\":3}},\"line\":92}},\"f\":{\"0\":20,\"1\":0,\"2\":0,\"3\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/blockDispatcher/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/blockDispatcher/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":68}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":81}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":64}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":7,\"loc\":{\"start\":{\"line\":7,\"column\":9},\"end\":{\"line\":7,\"column\":31}},\"locations\":[{\"start\":{\"line\":7,\"column\":9},\"end\":{\"line\":7,\"column\":31}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":7,\"column\":9},\"end\":{\"line\":7,\"column\":31}},\"loc\":{\"start\":{\"line\":7,\"column\":9},\"end\":{\"line\":7,\"column\":31}},\"line\":7},\"1\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":7,\"column\":33},\"end\":{\"line\":7,\"column\":61}},\"loc\":{\"start\":{\"line\":7,\"column\":33},\"end\":{\"line\":7,\"column\":61}},\"line\":7}},\"f\":{\"0\":20,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/blockDispatcher/substrate-block-dispatcher.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/blockDispatcher/substrate-block-dispatcher.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":52}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":46}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":59}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":42}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":44}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":7}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":58}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":36}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":19}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":14,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":14,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":14,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":14,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/blockDispatcher/worker-block-dispatcher.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/blockDispatcher/worker-block-dispatcher.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":75}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":54}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":13}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":20}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":15}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":20}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":24}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":29}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":25}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":17}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":23}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":49}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":26}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":67}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":66}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":64}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":57}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":59}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":40}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":72}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":50}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":39}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":35}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":2}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":13}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":41}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":32}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":24}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":18}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":18}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":3}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":34}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":41}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":14}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":27}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":32}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":30}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":57}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":37}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":49}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":41}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":39}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":31}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":41}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":35}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":57}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":39}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":55}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":74}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":5}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":10}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":17}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":19}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":21}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":27}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":24}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":19}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":24}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":21}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":14}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":23}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":11}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":32}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":25}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":31}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":23}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":29}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":10}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":76}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":51}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":34}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":34}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":27}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":35}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":30}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":23}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":37}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":10}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":6}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":3}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":13}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":58}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":36}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":20}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":41}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":37}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":41}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":30}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":3}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":30}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":27}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":27}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":43}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":50}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":8}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":6}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":3}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":0}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":29}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":26}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":19}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":20}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":48}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":50}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":55}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":119}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":27}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":32}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":5}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":32}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":54}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":30}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":0}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":56}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":29}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":21}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":77}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":11}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":35}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":21}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":80}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":11}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":8}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":3}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":1,\"91\":1,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":1,\"101\":1,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":1,\"110\":1,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"WorkerBlockDispatcherService\",\"decl\":{\"start\":{\"line\":44,\"column\":2},\"end\":{\"line\":90,\"column\":3}},\"loc\":{\"start\":{\"line\":44,\"column\":2},\"end\":{\"line\":90,\"column\":3}},\"line\":44},\"1\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":92,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"loc\":{\"start\":{\"line\":92,\"column\":2},\"end\":{\"line\":100,\"column\":3}},\"line\":92},\"2\":{\"name\":\"syncWorkerRuntimes\",\"decl\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":109,\"column\":3}},\"loc\":{\"start\":{\"line\":102,\"column\":2},\"end\":{\"line\":109,\"column\":3}},\"line\":102},\"3\":{\"name\":\"fetchBlock\",\"decl\":{\"start\":{\"line\":111,\"column\":12},\"end\":{\"line\":137,\"column\":3}},\"loc\":{\"start\":{\"line\":111,\"column\":12},\"end\":{\"line\":137,\"column\":3}},\"line\":111}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":46}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/substrateDictionary.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/substrateDictionary.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":52}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":54}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":47}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":76}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":67}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":66}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":61}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":61}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":45}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":45}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":48}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":13}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":66}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":22}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":16}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":3}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":28}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":55}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":55}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":24}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":72}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":5}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":62}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":31}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":35}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":41}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":6}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":75}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":43}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":53}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":42}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":14}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":45}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":41}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":35}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":49}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":11}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":64}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":19}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":26}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":28}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":23}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":39}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":10}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":42}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":19}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":13}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":66}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":25}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":28}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":30}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":62}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":21}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":12}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":44}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":21}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":22}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":74}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":12}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":9}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":7}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":5}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":31}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":54}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":3}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":14}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":67}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":27}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":32}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":53}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":21}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":5}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":72}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":3}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":64}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":76}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":30}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":34}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":31}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":51}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":40}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":72}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":34}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":3}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":64}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":40}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":74}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":39}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":3}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":3,\"24\":3,\"25\":3,\"26\":3,\"27\":0,\"28\":0,\"29\":3,\"30\":3,\"31\":3,\"32\":3,\"33\":3,\"34\":3,\"35\":3,\"36\":3,\"37\":3,\"38\":3,\"39\":3,\"40\":1,\"41\":1,\"42\":3,\"43\":3,\"44\":3,\"45\":3,\"46\":3,\"47\":3,\"48\":3,\"49\":3,\"50\":3,\"51\":3,\"52\":3,\"53\":3,\"54\":1,\"55\":2,\"56\":2,\"57\":2,\"58\":2,\"59\":2,\"60\":2,\"61\":2,\"62\":2,\"63\":2,\"64\":2,\"65\":2,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":2,\"71\":3,\"72\":3,\"73\":3,\"74\":3,\"75\":3,\"76\":1,\"77\":1,\"78\":8,\"79\":8,\"80\":8,\"81\":8,\"82\":8,\"83\":8,\"84\":8,\"85\":8,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"locations\":[{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":76,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":23},\"end\":{\"line\":29,\"column\":5}},\"locations\":[{\"start\":{\"line\":27,\"column\":23},\"end\":{\"line\":29,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":40,\"loc\":{\"start\":{\"line\":40,\"column\":8},\"end\":{\"line\":42,\"column\":45}},\"locations\":[{\"start\":{\"line\":40,\"column\":8},\"end\":{\"line\":42,\"column\":45}}]},\"3\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":10},\"end\":{\"line\":42,\"column\":45}},\"locations\":[{\"start\":{\"line\":42,\"column\":10},\"end\":{\"line\":42,\"column\":45}}]},\"4\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":8},\"end\":{\"line\":43,\"column\":41}},\"locations\":[{\"start\":{\"line\":43,\"column\":8},\"end\":{\"line\":43,\"column\":41}}]},\"5\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":71,\"column\":7}},\"locations\":[{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":71,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":56,\"column\":15}},\"locations\":[{\"start\":{\"line\":55,\"column\":-1},\"end\":{\"line\":56,\"column\":15}}]},\"7\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":10},\"end\":{\"line\":70,\"column\":9}},\"locations\":[{\"start\":{\"line\":66,\"column\":10},\"end\":{\"line\":70,\"column\":9}}]},\"8\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":86,\"column\":3}},\"locations\":[{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":86,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":10},\"end\":{\"line\":93,\"column\":3}},\"locations\":[{\"start\":{\"line\":88,\"column\":10},\"end\":{\"line\":93,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":95,\"loc\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"locations\":[{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":99,\"column\":3}}]}},\"b\":{\"0\":[3],\"1\":[0],\"2\":[1],\"3\":[0],\"4\":[2],\"5\":[2],\"6\":[1],\"7\":[0],\"8\":[8],\"9\":[1],\"10\":[1]},\"fnMap\":{\"0\":{\"name\":\"initDictionaries\",\"decl\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"loc\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":76,\"column\":3}},\"line\":23},\"1\":{\"name\":\"SubstrateDictionaryService\",\"decl\":{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":86,\"column\":3}},\"loc\":{\"start\":{\"line\":78,\"column\":2},\"end\":{\"line\":86,\"column\":3}},\"line\":78},\"2\":{\"name\":\"getV1Dictionary\",\"decl\":{\"start\":{\"line\":88,\"column\":10},\"end\":{\"line\":93,\"column\":3}},\"loc\":{\"start\":{\"line\":88,\"column\":10},\"end\":{\"line\":93,\"column\":3}},\"line\":88},\"3\":{\"name\":\"getSpecVersions\",\"decl\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"loc\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":99,\"column\":3}},\"line\":95},\"4\":{\"name\":\"parseSpecVersions\",\"decl\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":105,\"column\":3}},\"line\":101}},\"f\":{\"0\":3,\"1\":8,\"2\":1,\"3\":1,\"4\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":27}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":13}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":40}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":14}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":2}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":37}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":22}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":30}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v1/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v1/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v1/substrateDictionaryV1.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v1/substrateDictionaryV1.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":42}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":54}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":13}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":14}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":22}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":25}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":22}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":19}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":23}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":32}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":33}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":80}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":73}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":8}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":27}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":49}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":14}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":27}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":61}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":40}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":69}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":72}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":62}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":33}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":31}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":27}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":10}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":21}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":17}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":48}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":7}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":23}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":29}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":8}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":6}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":4}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":32}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":30}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":27}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":10}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":25}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":40}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":14}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":10}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":49}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":29}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":39}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":6}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":4}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":1}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":0}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":28}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":80}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":2}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":26}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":28}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":49}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":25}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":50}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":24}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":58}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":38}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":80}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":23}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":22}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":77}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":8}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":5}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":23}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":3}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":31}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":42}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":80}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":2}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":26}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":22}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":49}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":8}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":23}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":38}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":60}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":48}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":37}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":40}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":10}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":57}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":3}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":38}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":46}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":80}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":2}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":37}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":49}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":29}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":52}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":0}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":33}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":67}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":48}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":78}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":54}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":27}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":65}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":40}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":55}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":55}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":15}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":12}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":27}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":42}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":21}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":11}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":9}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":74}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":13}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":23}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":25}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":10}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":14}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":38}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":7}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":33}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":46}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":40}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":32}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":40}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":70}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":46}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":24}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":13}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":11}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":16}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":41}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":69}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":16}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":44}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":44}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":46}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":42}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":15}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":64}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":20}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":24}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":13}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":11}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":16}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":9}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":42}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":70}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":77}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":65}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":20}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":24}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":13}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":11}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":16}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":9}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":16}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":7}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":5}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":3}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":0}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":16}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":17}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":13}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":39}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":48}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":10}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":4}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":1}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":0}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":52}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":0}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":78}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":14}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":29}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":27}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":32}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":31}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":30}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":42}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":27}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":21}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":5}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":10}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":20}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":41}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":17}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":19}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":6}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":3}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":0}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":22}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":29}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":27}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":32}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":21}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":30}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":42}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":27}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":21}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":37}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":49}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":14}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":17}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":19}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":21}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":20}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":14}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":6}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":28}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":22}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":3}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":0}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":30}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":39}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":31}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":75}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":3}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":0}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":64}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":28}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":16}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":5}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":61}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":57}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":36}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":0}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":36}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":55}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":37}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":31}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":51}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":57}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":9}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":5}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":51}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":43}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":42}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":39}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":55}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":75}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":53}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":11}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":7}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":5}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":49}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":3}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":0}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":62}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":46}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":9}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":33}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":27}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":28}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":11}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":42}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":8}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":0}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":44}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":50}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":41}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":19}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":61}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":23}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":5}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":3}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":0}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":51}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":9}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":69}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":13}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":23}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":5}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":3}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":0}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":40}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":30}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":7}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":28}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":56}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":8}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":7}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":31}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":18}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":11}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":28}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":43}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":12}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":10}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":15}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":38}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":10}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":8}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":6}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":33}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":3}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":2,\"52\":2,\"53\":2,\"54\":2,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":9,\"60\":9,\"61\":9,\"62\":9,\"63\":9,\"64\":9,\"65\":9,\"66\":9,\"67\":8,\"68\":9,\"69\":1,\"70\":1,\"71\":1,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":1,\"77\":1,\"78\":9,\"79\":1,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":1,\"99\":1,\"100\":7,\"101\":7,\"102\":7,\"103\":7,\"104\":7,\"105\":7,\"106\":7,\"107\":7,\"108\":7,\"109\":7,\"110\":7,\"111\":9,\"112\":9,\"113\":9,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":9,\"131\":8,\"132\":8,\"133\":8,\"134\":8,\"135\":9,\"136\":3,\"137\":9,\"138\":1,\"139\":1,\"140\":0,\"141\":0,\"142\":1,\"143\":1,\"144\":9,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":0,\"151\":1,\"152\":1,\"153\":1,\"154\":0,\"155\":0,\"156\":1,\"157\":1,\"158\":1,\"159\":9,\"160\":1,\"161\":1,\"162\":1,\"163\":1,\"164\":0,\"165\":0,\"166\":1,\"167\":1,\"168\":1,\"169\":9,\"170\":9,\"171\":9,\"172\":2,\"173\":2,\"174\":2,\"175\":2,\"176\":2,\"177\":3,\"178\":3,\"179\":2,\"180\":2,\"181\":2,\"182\":1,\"183\":1,\"184\":1,\"185\":1,\"186\":1,\"187\":2,\"188\":2,\"189\":2,\"190\":2,\"191\":2,\"192\":2,\"193\":2,\"194\":2,\"195\":2,\"196\":2,\"197\":2,\"198\":2,\"199\":2,\"200\":2,\"201\":2,\"202\":2,\"203\":1,\"204\":1,\"205\":2,\"206\":2,\"207\":2,\"208\":2,\"209\":2,\"210\":2,\"211\":2,\"212\":2,\"213\":2,\"214\":2,\"215\":2,\"216\":2,\"217\":2,\"218\":2,\"219\":2,\"220\":2,\"221\":2,\"222\":2,\"223\":2,\"224\":2,\"225\":1,\"226\":1,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":1,\"232\":1,\"233\":1,\"234\":0,\"235\":0,\"236\":1,\"237\":1,\"238\":1,\"239\":1,\"240\":1,\"241\":1,\"242\":52,\"243\":52,\"244\":52,\"245\":52,\"246\":52,\"247\":52,\"248\":1,\"249\":1,\"250\":1,\"251\":1,\"252\":1,\"253\":1,\"254\":1,\"255\":1,\"256\":1,\"257\":1,\"258\":1,\"259\":1,\"260\":1,\"261\":1,\"262\":1,\"263\":1,\"264\":1,\"265\":1,\"266\":1,\"267\":1,\"268\":1,\"269\":1,\"270\":1,\"271\":1,\"272\":1,\"273\":1,\"274\":1,\"275\":0,\"276\":0,\"277\":0,\"278\":1,\"279\":1,\"280\":1,\"281\":1,\"282\":1,\"283\":1,\"284\":0,\"285\":0,\"286\":1,\"287\":1,\"288\":1,\"289\":1,\"290\":1,\"291\":1,\"292\":1,\"293\":1,\"294\":1,\"295\":1,\"296\":1,\"297\":1,\"298\":1,\"299\":1,\"300\":1,\"301\":1,\"302\":1,\"303\":1,\"304\":1,\"305\":1,\"306\":1,\"307\":1,\"308\":1,\"309\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"locations\":[{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":43,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":58,\"column\":1}},\"locations\":[{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":58,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":6},\"end\":{\"line\":55,\"column\":39}},\"locations\":[{\"start\":{\"line\":51,\"column\":6},\"end\":{\"line\":55,\"column\":39}}]},\"3\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":34},\"end\":{\"line\":53,\"column\":42}},\"locations\":[{\"start\":{\"line\":53,\"column\":34},\"end\":{\"line\":53,\"column\":42}}]},\"4\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":43},\"end\":{\"line\":53,\"column\":48}},\"locations\":[{\"start\":{\"line\":53,\"column\":43},\"end\":{\"line\":53,\"column\":48}}]},\"5\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"locations\":[{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":79,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":21},\"end\":{\"line\":67,\"column\":47}},\"locations\":[{\"start\":{\"line\":67,\"column\":21},\"end\":{\"line\":67,\"column\":47}}]},\"7\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":49},\"end\":{\"line\":69,\"column\":9}},\"locations\":[{\"start\":{\"line\":67,\"column\":49},\"end\":{\"line\":69,\"column\":9}}]},\"8\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":3},\"end\":{\"line\":78,\"column\":3}},\"locations\":[{\"start\":{\"line\":69,\"column\":3},\"end\":{\"line\":78,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":22},\"end\":{\"line\":76,\"column\":5}},\"locations\":[{\"start\":{\"line\":72,\"column\":22},\"end\":{\"line\":76,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":182,\"column\":1}},\"locations\":[{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":182,\"column\":1}}]},\"11\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":34},\"end\":{\"line\":110,\"column\":54}},\"locations\":[{\"start\":{\"line\":110,\"column\":34},\"end\":{\"line\":110,\"column\":54}}]},\"12\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":55},\"end\":{\"line\":110,\"column\":66}},\"locations\":[{\"start\":{\"line\":110,\"column\":55},\"end\":{\"line\":110,\"column\":66}}]},\"13\":{\"type\":\"branch\",\"line\":111,\"loc\":{\"start\":{\"line\":111,\"column\":47},\"end\":{\"line\":172,\"column\":5}},\"locations\":[{\"start\":{\"line\":111,\"column\":47},\"end\":{\"line\":172,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":114,\"loc\":{\"start\":{\"line\":114,\"column\":26},\"end\":{\"line\":131,\"column\":13}},\"locations\":[{\"start\":{\"line\":114,\"column\":26},\"end\":{\"line\":131,\"column\":13}}]},\"15\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":-1},\"end\":{\"line\":131,\"column\":13}},\"locations\":[{\"start\":{\"line\":126,\"column\":-1},\"end\":{\"line\":131,\"column\":13}}]},\"16\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":7},\"end\":{\"line\":136,\"column\":37}},\"locations\":[{\"start\":{\"line\":131,\"column\":7},\"end\":{\"line\":136,\"column\":37}}]},\"17\":{\"type\":\"branch\",\"line\":136,\"loc\":{\"start\":{\"line\":136,\"column\":30},\"end\":{\"line\":136,\"column\":40}},\"locations\":[{\"start\":{\"line\":136,\"column\":30},\"end\":{\"line\":136,\"column\":40}}]},\"18\":{\"type\":\"branch\",\"line\":137,\"loc\":{\"start\":{\"line\":137,\"column\":-1},\"end\":{\"line\":138,\"column\":13}},\"locations\":[{\"start\":{\"line\":137,\"column\":-1},\"end\":{\"line\":138,\"column\":13}}]},\"19\":{\"type\":\"branch\",\"line\":138,\"loc\":{\"start\":{\"line\":138,\"column\":8},\"end\":{\"line\":144,\"column\":16}},\"locations\":[{\"start\":{\"line\":138,\"column\":8},\"end\":{\"line\":144,\"column\":16}}]},\"20\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":45},\"end\":{\"line\":142,\"column\":13}},\"locations\":[{\"start\":{\"line\":140,\"column\":45},\"end\":{\"line\":142,\"column\":13}}]},\"21\":{\"type\":\"branch\",\"line\":145,\"loc\":{\"start\":{\"line\":145,\"column\":8},\"end\":{\"line\":159,\"column\":9}},\"locations\":[{\"start\":{\"line\":145,\"column\":8},\"end\":{\"line\":159,\"column\":9}}]},\"22\":{\"type\":\"branch\",\"line\":148,\"loc\":{\"start\":{\"line\":148,\"column\":41},\"end\":{\"line\":149,\"column\":41}},\"locations\":[{\"start\":{\"line\":148,\"column\":41},\"end\":{\"line\":149,\"column\":41}}]},\"23\":{\"type\":\"branch\",\"line\":149,\"loc\":{\"start\":{\"line\":149,\"column\":41},\"end\":{\"line\":150,\"column\":43}},\"locations\":[{\"start\":{\"line\":149,\"column\":41},\"end\":{\"line\":150,\"column\":43}}]},\"24\":{\"type\":\"branch\",\"line\":150,\"loc\":{\"start\":{\"line\":150,\"column\":43},\"end\":{\"line\":151,\"column\":42}},\"locations\":[{\"start\":{\"line\":150,\"column\":43},\"end\":{\"line\":151,\"column\":42}}]},\"25\":{\"type\":\"branch\",\"line\":154,\"loc\":{\"start\":{\"line\":154,\"column\":13},\"end\":{\"line\":156,\"column\":13}},\"locations\":[{\"start\":{\"line\":154,\"column\":13},\"end\":{\"line\":156,\"column\":13}}]},\"26\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":8},\"end\":{\"line\":169,\"column\":9}},\"locations\":[{\"start\":{\"line\":160,\"column\":8},\"end\":{\"line\":169,\"column\":9}}]},\"27\":{\"type\":\"branch\",\"line\":162,\"loc\":{\"start\":{\"line\":162,\"column\":43},\"end\":{\"line\":162,\"column\":74}},\"locations\":[{\"start\":{\"line\":162,\"column\":43},\"end\":{\"line\":162,\"column\":74}}]},\"28\":{\"type\":\"branch\",\"line\":164,\"loc\":{\"start\":{\"line\":164,\"column\":13},\"end\":{\"line\":166,\"column\":13}},\"locations\":[{\"start\":{\"line\":164,\"column\":13},\"end\":{\"line\":166,\"column\":13}}]},\"29\":{\"type\":\"branch\",\"line\":170,\"loc\":{\"start\":{\"line\":170,\"column\":8},\"end\":{\"line\":170,\"column\":16}},\"locations\":[{\"start\":{\"line\":170,\"column\":8},\"end\":{\"line\":170,\"column\":16}}]},\"30\":{\"type\":\"branch\",\"line\":173,\"loc\":{\"start\":{\"line\":173,\"column\":-1},\"end\":{\"line\":182,\"column\":1}},\"locations\":[{\"start\":{\"line\":173,\"column\":-1},\"end\":{\"line\":182,\"column\":1}}]},\"31\":{\"type\":\"branch\",\"line\":177,\"loc\":{\"start\":{\"line\":177,\"column\":4},\"end\":{\"line\":180,\"column\":9}},\"locations\":[{\"start\":{\"line\":177,\"column\":4},\"end\":{\"line\":180,\"column\":9}}]},\"32\":{\"type\":\"branch\",\"line\":179,\"loc\":{\"start\":{\"line\":179,\"column\":32},\"end\":{\"line\":179,\"column\":46}},\"locations\":[{\"start\":{\"line\":179,\"column\":32},\"end\":{\"line\":179,\"column\":46}}]},\"33\":{\"type\":\"branch\",\"line\":187,\"loc\":{\"start\":{\"line\":187,\"column\":2},\"end\":{\"line\":203,\"column\":3}},\"locations\":[{\"start\":{\"line\":187,\"column\":2},\"end\":{\"line\":203,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":205,\"loc\":{\"start\":{\"line\":205,\"column\":9},\"end\":{\"line\":225,\"column\":3}},\"locations\":[{\"start\":{\"line\":205,\"column\":9},\"end\":{\"line\":225,\"column\":3}}]},\"35\":{\"type\":\"branch\",\"line\":233,\"loc\":{\"start\":{\"line\":233,\"column\":2},\"end\":{\"line\":260,\"column\":3}},\"locations\":[{\"start\":{\"line\":233,\"column\":2},\"end\":{\"line\":260,\"column\":3}}]},\"36\":{\"type\":\"branch\",\"line\":234,\"loc\":{\"start\":{\"line\":234,\"column\":27},\"end\":{\"line\":236,\"column\":5}},\"locations\":[{\"start\":{\"line\":234,\"column\":27},\"end\":{\"line\":236,\"column\":5}}]},\"37\":{\"type\":\"branch\",\"line\":242,\"loc\":{\"start\":{\"line\":242,\"column\":54},\"end\":{\"line\":248,\"column\":5}},\"locations\":[{\"start\":{\"line\":242,\"column\":54},\"end\":{\"line\":248,\"column\":5}}]},\"38\":{\"type\":\"branch\",\"line\":262,\"loc\":{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":279,\"column\":3}},\"locations\":[{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":279,\"column\":3}}]},\"39\":{\"type\":\"branch\",\"line\":275,\"loc\":{\"start\":{\"line\":275,\"column\":6},\"end\":{\"line\":278,\"column\":5}},\"locations\":[{\"start\":{\"line\":275,\"column\":6},\"end\":{\"line\":278,\"column\":5}}]},\"40\":{\"type\":\"branch\",\"line\":281,\"loc\":{\"start\":{\"line\":281,\"column\":2},\"end\":{\"line\":287,\"column\":3}},\"locations\":[{\"start\":{\"line\":281,\"column\":2},\"end\":{\"line\":287,\"column\":3}}]},\"41\":{\"type\":\"branch\",\"line\":284,\"loc\":{\"start\":{\"line\":284,\"column\":6},\"end\":{\"line\":286,\"column\":5}},\"locations\":[{\"start\":{\"line\":284,\"column\":6},\"end\":{\"line\":286,\"column\":5}}]},\"42\":{\"type\":\"branch\",\"line\":289,\"loc\":{\"start\":{\"line\":289,\"column\":10},\"end\":{\"line\":309,\"column\":3}},\"locations\":[{\"start\":{\"line\":289,\"column\":10},\"end\":{\"line\":309,\"column\":3}}]}},\"b\":{\"0\":[1],\"1\":[1],\"2\":[2],\"3\":[1],\"4\":[1],\"5\":[9],\"6\":[8],\"7\":[8],\"8\":[1],\"9\":[0],\"10\":[7],\"11\":[1],\"12\":[6],\"13\":[9],\"14\":[1],\"15\":[0],\"16\":[8],\"17\":[5],\"18\":[3],\"19\":[1],\"20\":[0],\"21\":[1],\"22\":[0],\"23\":[0],\"24\":[0],\"25\":[0],\"26\":[1],\"27\":[0],\"28\":[0],\"29\":[0],\"30\":[2],\"31\":[3],\"32\":[6],\"33\":[2],\"34\":[2],\"35\":[1],\"36\":[0],\"37\":[52],\"38\":[1],\"39\":[0],\"40\":[1],\"41\":[0],\"42\":[1]},\"fnMap\":{\"0\":{\"name\":\"eventFilterToQueryEntry\",\"decl\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"loc\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"line\":30},\"1\":{\"name\":\"callFilterToQueryEntry\",\"decl\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":58,\"column\":1}},\"loc\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":58,\"column\":1}},\"line\":45},\"2\":{\"name\":\"getBaseHandlerKind\",\"decl\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"loc\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"line\":60},\"3\":{\"name\":\"getBaseHandlerFilters\",\"decl\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"loc\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"line\":81},\"4\":{\"name\":\"buildDictionaryV1QueryEntries\",\"decl\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":182,\"column\":1}},\"loc\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":182,\"column\":1}},\"line\":101},\"5\":{\"name\":\"SubstrateDictionaryV1\",\"decl\":{\"start\":{\"line\":187,\"column\":2},\"end\":{\"line\":203,\"column\":3}},\"loc\":{\"start\":{\"line\":187,\"column\":2},\"end\":{\"line\":203,\"column\":3}},\"line\":187},\"6\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":205,\"column\":9},\"end\":{\"line\":225,\"column\":3}},\"loc\":{\"start\":{\"line\":205,\"column\":9},\"end\":{\"line\":225,\"column\":3}},\"line\":205},\"7\":{\"name\":\"buildDictionaryQueryEntries\",\"decl\":{\"start\":{\"line\":227,\"column\":2},\"end\":{\"line\":231,\"column\":3}},\"loc\":{\"start\":{\"line\":227,\"column\":2},\"end\":{\"line\":231,\"column\":3}},\"line\":227},\"8\":{\"name\":\"parseSpecVersions\",\"decl\":{\"start\":{\"line\":233,\"column\":2},\"end\":{\"line\":260,\"column\":3}},\"loc\":{\"start\":{\"line\":233,\"column\":2},\"end\":{\"line\":260,\"column\":3}},\"line\":233},\"9\":{\"name\":\"getSpecVersionsRaw\",\"decl\":{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":279,\"column\":3}},\"loc\":{\"start\":{\"line\":262,\"column\":2},\"end\":{\"line\":279,\"column\":3}},\"line\":262},\"10\":{\"name\":\"getSpecVersions\",\"decl\":{\"start\":{\"line\":281,\"column\":2},\"end\":{\"line\":287,\"column\":3}},\"loc\":{\"start\":{\"line\":281,\"column\":2},\"end\":{\"line\":287,\"column\":3}},\"line\":281},\"11\":{\"name\":\"specVersionQuery\",\"decl\":{\"start\":{\"line\":289,\"column\":10},\"end\":{\"line\":309,\"column\":3}},\"loc\":{\"start\":{\"line\":289,\"column\":10},\"end\":{\"line\":309,\"column\":3}},\"line\":289}},\"f\":{\"0\":1,\"1\":1,\"2\":9,\"3\":0,\"4\":7,\"5\":2,\"6\":2,\"7\":0,\"8\":1,\"9\":1,\"10\":1,\"11\":1}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v2/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v2/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v2/substrateDictionaryV2.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v2/substrateDictionaryV2.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":54}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":62}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":13}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":15}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":21}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":12}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":25}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":28}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":9}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":26}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":67}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":69}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":58}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":28}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":44}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":37}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":36}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":65}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":13}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":21}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":4}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":8}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":30}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":56}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":17}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":22}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":33}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":40}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":39}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":29}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":52}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":3}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":14}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":21}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":27}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":32}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":29}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":21}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":5}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":10}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":15}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":41}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":17}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":19}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":6}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":3}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":22}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":21}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":27}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":32}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":29}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":21}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":37}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":49}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":15}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":17}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":19}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":14}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":14}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":6}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":28}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":22}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":3}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":5}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":4}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":22}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":107}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":21}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":22}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":5}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":62}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":16}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":23}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":26}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":28}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":79}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":58}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":3}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":50}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":24}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":43}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":61}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":21}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":3}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":1,\"42\":1,\"43\":3,\"44\":3,\"45\":3,\"46\":3,\"47\":3,\"48\":3,\"49\":3,\"50\":3,\"51\":3,\"52\":3,\"53\":3,\"54\":3,\"55\":3,\"56\":1,\"57\":1,\"58\":3,\"59\":3,\"60\":3,\"61\":3,\"62\":3,\"63\":3,\"64\":3,\"65\":3,\"66\":3,\"67\":3,\"68\":3,\"69\":3,\"70\":3,\"71\":3,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":1,\"91\":1,\"92\":1,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"locations\":[{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":56,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":13},\"end\":{\"line\":52,\"column\":40}},\"locations\":[{\"start\":{\"line\":52,\"column\":13},\"end\":{\"line\":52,\"column\":40}}]},\"2\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":9},\"end\":{\"line\":74,\"column\":3}},\"locations\":[{\"start\":{\"line\":58,\"column\":9},\"end\":{\"line\":74,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":-1},\"end\":{\"line\":74,\"column\":3}},\"locations\":[{\"start\":{\"line\":73,\"column\":-1},\"end\":{\"line\":74,\"column\":3}}]}},\"b\":{\"0\":[3],\"1\":[0],\"2\":[3],\"3\":[1]},\"fnMap\":{\"0\":{\"name\":\"buildDictionaryV2QueryEntry\",\"decl\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"loc\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"line\":21},\"1\":{\"name\":\"buildDictionaryQueryEntries\",\"decl\":{\"start\":{\"line\":37,\"column\":12},\"end\":{\"line\":41,\"column\":3}},\"loc\":{\"start\":{\"line\":37,\"column\":12},\"end\":{\"line\":41,\"column\":3}},\"line\":37},\"2\":{\"name\":\"SubstrateDictionaryV2\",\"decl\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"loc\":{\"start\":{\"line\":43,\"column\":2},\"end\":{\"line\":56,\"column\":3}},\"line\":43},\"3\":{\"name\":\"create\",\"decl\":{\"start\":{\"line\":58,\"column\":9},\"end\":{\"line\":74,\"column\":3}},\"loc\":{\"start\":{\"line\":58,\"column\":9},\"end\":{\"line\":74,\"column\":3}},\"line\":58},\"4\":{\"name\":\"getData\",\"decl\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":90,\"column\":3}},\"loc\":{\"start\":{\"line\":84,\"column\":2},\"end\":{\"line\":90,\"column\":3}},\"line\":84},\"5\":{\"name\":\"convertResponseBlocks\",\"decl\":{\"start\":{\"line\":93,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"loc\":{\"start\":{\"line\":93,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"line\":93}},\"f\":{\"0\":0,\"1\":0,\"2\":3,\"3\":3,\"4\":0,\"5\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v2/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dictionary/v2/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":58}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":3}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":57}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":3}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":69}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/ds-processor.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/ds-processor.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":55}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":13}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":31}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":33}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":58}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":8}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":36}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":36}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":28}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":25}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":22}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":23}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":19}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":22}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":52}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":33}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":36}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":4}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":33}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":67}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":2}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":12}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":56}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":57}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":68}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":110}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":45}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":52}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":33}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":36}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":4}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":33}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":67}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":2}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":12}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":56}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":57}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":68}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":43}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":52}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":33}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":36}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":4}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":33}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":67}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":2}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":12}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":56}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":57}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":55}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":55}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":21}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":3}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":56}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":56}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":3}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":10}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":17}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":25}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":32}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":72}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":28}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":15}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":72}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":30}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":4}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":13}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":63}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":22}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":78}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":63}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":3}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":36}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":1,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":1,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":1,\"80\":1,\"81\":1,\"82\":8,\"83\":8,\"84\":8,\"85\":8,\"86\":8,\"87\":8},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":7},\"end\":{\"line\":88,\"column\":1}},\"locations\":[{\"start\":{\"line\":82,\"column\":7},\"end\":{\"line\":88,\"column\":1}}]}},\"b\":{\"0\":[8]},\"fnMap\":{\"0\":{\"name\":\"isSecondLayerHandlerProcessor_0_0_0\",\"decl\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"loc\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"line\":21},\"1\":{\"name\":\"isSecondLayerHandlerProcessor_1_0_0\",\"decl\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"loc\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"line\":36},\"2\":{\"name\":\"asSecondLayerHandlerProcessor_1_0_0\",\"decl\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"line\":50},\"3\":{\"name\":\"DsProcessorService\",\"decl\":{\"start\":{\"line\":82,\"column\":7},\"end\":{\"line\":88,\"column\":1}},\"loc\":{\"start\":{\"line\":82,\"column\":7},\"end\":{\"line\":88,\"column\":1}},\"line\":82}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":8}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dynamic-ds.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/dynamic-ds.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":52}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":66}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":19}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":43}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":26}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":35}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":8}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":21}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":38}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":60}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":13}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":80}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":14}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":60}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":74}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":5}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":12}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":3}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":32}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":29}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":34}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":42}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":44}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":6}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":13}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":22}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":89}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":8}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":5}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":47}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":19}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":18}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":36}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":28}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":9}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":30}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":35}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":37}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":25}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":10}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":64}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":38}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":51}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":7}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":19}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":17}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":77}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":5}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":3}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":20,\"20\":20,\"21\":20,\"22\":20,\"23\":20,\"24\":1,\"25\":1,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"locations\":[{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":24,\"column\":3}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"DynamicDsService\",\"decl\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"loc\":{\"start\":{\"line\":19,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"line\":19},\"1\":{\"name\":\"getDatasource\",\"decl\":{\"start\":{\"line\":26,\"column\":12},\"end\":{\"line\":58,\"column\":3}},\"loc\":{\"start\":{\"line\":26,\"column\":12},\"end\":{\"line\":58,\"column\":3}},\"line\":26}},\"f\":{\"0\":20,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/fetch.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/fetch.module.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":54}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":22}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":27}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":15}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":13}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":13}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":24}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":20}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":20}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":29}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":25}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":17}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":23}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":26}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":63}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":43}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":63}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":8}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":25}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":31}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":27}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":86}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":60}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":56}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":47}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":51}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":51}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":58}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":51}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":71}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":9}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":14}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":25}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":17}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":22}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":15}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":19}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":31}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":5}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":33}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":47}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":59}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":8}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":27}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":6}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":5}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":34}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":19}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":31}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":36}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":39}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":54}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":31}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":39}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":45}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":43}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":35}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":45}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":39}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":33}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":43}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":52}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":78}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":10}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":40}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":45}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":25}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":27}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":29}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":36}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":32}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":27}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":27}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":32}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":29}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":22}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":31}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":32}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":34}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":13}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":39}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":25}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":25}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":29}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":27}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":29}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":36}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":32}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":27}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":32}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":29}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":22}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":31}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":14}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":15}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":19}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":22}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":26}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":33}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":19}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":23}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":26}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":29}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":21}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":26}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":23}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":27}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":25}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":33}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":35}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":8}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":6}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":17}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":26}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":29}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":24}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":5}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":42}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":25}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":33}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":31}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":36}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":47}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":12}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":65}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":18}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":21}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":23}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":29}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":10}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":33}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":8}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":15}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":27}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":19}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":22}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":27}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":8}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":6}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":19}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":23}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":21}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":15}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":19}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":5}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":31}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":33}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":6}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":29}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":19}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":4}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":45}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":2}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":27}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":20,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":20,\"55\":20,\"56\":20,\"57\":20,\"58\":20,\"59\":20,\"60\":20,\"61\":20,\"62\":20,\"63\":20,\"64\":20,\"65\":20,\"66\":20,\"67\":20,\"68\":20,\"69\":20,\"70\":20,\"71\":20,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":20,\"86\":20,\"87\":20,\"88\":20,\"89\":20,\"90\":20,\"91\":20,\"92\":20,\"93\":20,\"94\":20,\"95\":20,\"96\":20,\"97\":20,\"98\":20,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":20,\"126\":20,\"127\":20,\"128\":20,\"129\":20,\"130\":20,\"131\":20,\"132\":20,\"133\":20,\"134\":20,\"135\":20,\"136\":20,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":1,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":1,\"156\":1,\"157\":1,\"158\":1,\"159\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":18},\"end\":{\"line\":49,\"column\":7}},\"locations\":[{\"start\":{\"line\":47,\"column\":18},\"end\":{\"line\":49,\"column\":7}}]},\"1\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":18},\"end\":{\"line\":99,\"column\":31}},\"locations\":[{\"start\":{\"line\":54,\"column\":18},\"end\":{\"line\":99,\"column\":31}}]},\"2\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":10},\"end\":{\"line\":85,\"column\":34}},\"locations\":[{\"start\":{\"line\":72,\"column\":10},\"end\":{\"line\":85,\"column\":34}}]},\"3\":{\"type\":\"branch\",\"line\":125,\"loc\":{\"start\":{\"line\":125,\"column\":18},\"end\":{\"line\":138,\"column\":7}},\"locations\":[{\"start\":{\"line\":125,\"column\":18},\"end\":{\"line\":138,\"column\":7}}]}},\"b\":{\"0\":[20],\"1\":[20],\"2\":[0],\"3\":[20]},\"fnMap\":{\"0\":{\"name\":\"useFactory\",\"decl\":{\"start\":{\"line\":47,\"column\":18},\"end\":{\"line\":49,\"column\":7}},\"loc\":{\"start\":{\"line\":47,\"column\":18},\"end\":{\"line\":49,\"column\":7}},\"line\":47},\"1\":{\"name\":\"useFactory\",\"decl\":{\"start\":{\"line\":54,\"column\":18},\"end\":{\"line\":99,\"column\":31}},\"loc\":{\"start\":{\"line\":54,\"column\":18},\"end\":{\"line\":99,\"column\":31}},\"line\":54},\"2\":{\"name\":\"useFactory\",\"decl\":{\"start\":{\"line\":125,\"column\":18},\"end\":{\"line\":138,\"column\":7}},\"loc\":{\"start\":{\"line\":125,\"column\":18},\"end\":{\"line\":138,\"column\":7}},\"line\":125}},\"f\":{\"0\":20,\"1\":20,\"2\":20}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/fetch.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/fetch.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":52}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":54}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":53}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":43}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":75}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":76}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":67}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":63}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":75}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":43}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":89}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":86}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":56}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":51}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":58}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":71}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":38}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":29}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":13}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":51}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":22}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":28}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":16}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":14}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":35}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":27}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":62}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":57}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":31}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":47}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":50}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":39}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":63}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":32}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":41}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":43}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":5}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":10}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":17}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":21}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":22}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":22}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":24}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":23}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":19}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":24}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":6}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":25}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":37}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":57}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":70}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":78}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":60}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":65}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":30}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":3}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":38}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":51}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":3}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":52}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":60}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":40}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":3}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":62}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":55}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":48}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":29}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":18}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":56}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":3}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":36}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":22}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":46}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":17}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":33}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":6}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":3}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":0}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":56}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":36}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":36}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":26}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":6}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":3}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":63}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":71}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":0}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":60}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":72}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":12}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":55}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":5}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":0}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":30}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":55}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":56}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":3}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":6,\"32\":6,\"33\":6,\"34\":6,\"35\":6,\"36\":6,\"37\":6,\"38\":6,\"39\":6,\"40\":6,\"41\":6,\"42\":6,\"43\":6,\"44\":6,\"45\":6,\"46\":6,\"47\":6,\"48\":6,\"49\":6,\"50\":6,\"51\":6,\"52\":6,\"53\":6,\"54\":6,\"55\":1,\"56\":1,\"57\":4,\"58\":4,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":0,\"72\":0,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":1,\"103\":1,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"locations\":[{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":55,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"locations\":[{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":59,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":12},\"end\":{\"line\":69,\"column\":3}},\"locations\":[{\"start\":{\"line\":61,\"column\":12},\"end\":{\"line\":69,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":12},\"end\":{\"line\":78,\"column\":3}},\"locations\":[{\"start\":{\"line\":75,\"column\":12},\"end\":{\"line\":78,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":12},\"end\":{\"line\":87,\"column\":3}},\"locations\":[{\"start\":{\"line\":81,\"column\":12},\"end\":{\"line\":87,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":12},\"end\":{\"line\":95,\"column\":3}},\"locations\":[{\"start\":{\"line\":89,\"column\":12},\"end\":{\"line\":95,\"column\":3}}]}},\"b\":{\"0\":[6],\"1\":[4],\"2\":[1],\"3\":[1],\"4\":[1],\"5\":[1]},\"fnMap\":{\"0\":{\"name\":\"FetchService\",\"decl\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":55,\"column\":3}},\"line\":31},\"1\":{\"name\":\"get api\",\"decl\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"loc\":{\"start\":{\"line\":57,\"column\":2},\"end\":{\"line\":59,\"column\":3}},\"line\":57},\"2\":{\"name\":\"getFinalizedHeight\",\"decl\":{\"start\":{\"line\":61,\"column\":12},\"end\":{\"line\":69,\"column\":3}},\"loc\":{\"start\":{\"line\":61,\"column\":12},\"end\":{\"line\":69,\"column\":3}},\"line\":61},\"3\":{\"name\":\"getGenesisHash\",\"decl\":{\"start\":{\"line\":71,\"column\":12},\"end\":{\"line\":73,\"column\":3}},\"loc\":{\"start\":{\"line\":71,\"column\":12},\"end\":{\"line\":73,\"column\":3}},\"line\":71},\"4\":{\"name\":\"getBestHeight\",\"decl\":{\"start\":{\"line\":75,\"column\":12},\"end\":{\"line\":78,\"column\":3}},\"loc\":{\"start\":{\"line\":75,\"column\":12},\"end\":{\"line\":78,\"column\":3}},\"line\":75},\"5\":{\"name\":\"getChainInterval\",\"decl\":{\"start\":{\"line\":81,\"column\":12},\"end\":{\"line\":87,\"column\":3}},\"loc\":{\"start\":{\"line\":81,\"column\":12},\"end\":{\"line\":87,\"column\":3}},\"line\":81},\"6\":{\"name\":\"getModulos\",\"decl\":{\"start\":{\"line\":89,\"column\":12},\"end\":{\"line\":95,\"column\":3}},\"loc\":{\"start\":{\"line\":89,\"column\":12},\"end\":{\"line\":95,\"column\":3}},\"line\":89},\"7\":{\"name\":\"initBlockDispatcher\",\"decl\":{\"start\":{\"line\":97,\"column\":12},\"end\":{\"line\":102,\"column\":3}},\"loc\":{\"start\":{\"line\":97,\"column\":12},\"end\":{\"line\":102,\"column\":3}},\"line\":97},\"8\":{\"name\":\"preLoopHook\",\"decl\":{\"start\":{\"line\":104,\"column\":12},\"end\":{\"line\":116,\"column\":3}},\"loc\":{\"start\":{\"line\":104,\"column\":12},\"end\":{\"line\":116,\"column\":3}},\"line\":104}},\"f\":{\"0\":6,\"1\":4,\"2\":1,\"3\":0,\"4\":1,\"5\":1,\"6\":1,\"7\":0,\"8\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/indexer.manager.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/indexer.manager.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":43}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":60}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":26}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":25}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":26}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":13}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":14}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":28}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":23}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":34}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":33}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":8}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":13}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":12}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":11}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":17}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":23}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":21}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":9}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":26}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":8}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":22}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":17}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":23}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":22}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":17}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":21}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":22}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":66}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":52}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":66}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":8}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":38}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":21}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":32}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":56}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":51}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":78}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":71}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":36}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":13}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":55}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":8}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":13}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":35}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":22}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":22}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":28}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":23}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":26}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":33}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":38}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":36}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":72}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":14}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":36}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":27}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":42}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":43}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":39}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":55}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":5}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":10}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":17}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":17}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":21}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":25}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":23}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":31}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":20}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":23}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":6}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":3}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":13}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":19}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":52}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":39}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":35}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":36}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":61}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":47}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":6}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":67}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":54}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":3}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":0}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":65}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":49}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":3}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":0}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":62}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":23}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":44}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":35}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":21}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":41}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":31}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":21}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":6}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":3}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":0}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":33}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":51}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":38}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":62}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":20}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":36}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":57}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":62}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":34}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":76}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":39}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":57}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":7}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":0}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":43}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":65}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":35}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":38}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":60}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":41}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":0}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":46}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":59}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":9}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":7}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":0}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":32}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":78}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":43}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":57}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":7}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":12}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":48}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":57}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":7}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":5}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":3}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":0}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":34}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":26}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":38}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":62}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":20}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":35}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":73}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":5}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":3}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":0}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":31}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":34}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":38}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":62}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":20}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":35}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":76}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":5}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":3}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":0}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":27}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":48}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":38}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":62}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":20}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":35}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":73}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":5}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":3}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":0}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":47}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":31}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":12}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":17}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":49}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":33}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":3}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":1}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":0}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":25}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":63}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":63}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":61}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":2}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":0}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":26}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":56}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":56}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":54}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":2}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":0}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":23}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":33}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":26}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":34}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":50}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":58}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":61}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":20,\"65\":20,\"66\":20,\"67\":20,\"68\":20,\"69\":20,\"70\":20,\"71\":20,\"72\":20,\"73\":20,\"74\":20,\"75\":20,\"76\":20,\"77\":20,\"78\":20,\"79\":20,\"80\":20,\"81\":20,\"82\":1,\"83\":1,\"84\":1,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":1,\"94\":1,\"95\":0,\"96\":0,\"97\":1,\"98\":1,\"99\":0,\"100\":0,\"101\":1,\"102\":1,\"103\":1,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":1,\"113\":1,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":1,\"153\":1,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":1,\"163\":1,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":1,\"173\":1,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":1,\"183\":1,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":1,\"191\":1,\"192\":1,\"193\":1,\"194\":1,\"195\":1,\"196\":1,\"197\":1,\"198\":1,\"199\":1,\"200\":1,\"201\":1,\"202\":1,\"203\":1,\"204\":1,\"205\":1,\"206\":0,\"207\":0,\"208\":1,\"209\":1,\"210\":1,\"211\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"locations\":[{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":82,\"column\":3}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"IndexerManager\",\"decl\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"loc\":{\"start\":{\"line\":64,\"column\":2},\"end\":{\"line\":82,\"column\":3}},\"line\":64},\"1\":{\"name\":\"indexBlock\",\"decl\":{\"start\":{\"line\":85,\"column\":8},\"end\":{\"line\":93,\"column\":3}},\"loc\":{\"start\":{\"line\":85,\"column\":8},\"end\":{\"line\":93,\"column\":3}},\"line\":85},\"2\":{\"name\":\"getBlockHeight\",\"decl\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"loc\":{\"start\":{\"line\":95,\"column\":2},\"end\":{\"line\":97,\"column\":3}},\"line\":95},\"3\":{\"name\":\"getBlockHash\",\"decl\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":101,\"column\":3}},\"loc\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":101,\"column\":3}},\"line\":99},\"4\":{\"name\":\"getApi\",\"decl\":{\"start\":{\"line\":104,\"column\":10},\"end\":{\"line\":112,\"column\":3}},\"loc\":{\"start\":{\"line\":104,\"column\":10},\"end\":{\"line\":112,\"column\":3}},\"line\":104},\"5\":{\"name\":\"indexBlockData\",\"decl\":{\"start\":{\"line\":114,\"column\":12},\"end\":{\"line\":152,\"column\":3}},\"loc\":{\"start\":{\"line\":114,\"column\":12},\"end\":{\"line\":152,\"column\":3}},\"line\":114},\"6\":{\"name\":\"indexBlockContent\",\"decl\":{\"start\":{\"line\":154,\"column\":10},\"end\":{\"line\":162,\"column\":3}},\"loc\":{\"start\":{\"line\":154,\"column\":10},\"end\":{\"line\":162,\"column\":3}},\"line\":154},\"7\":{\"name\":\"indexExtrinsic\",\"decl\":{\"start\":{\"line\":164,\"column\":10},\"end\":{\"line\":172,\"column\":3}},\"loc\":{\"start\":{\"line\":164,\"column\":10},\"end\":{\"line\":172,\"column\":3}},\"line\":164},\"8\":{\"name\":\"indexEvent\",\"decl\":{\"start\":{\"line\":174,\"column\":10},\"end\":{\"line\":182,\"column\":3}},\"loc\":{\"start\":{\"line\":174,\"column\":10},\"end\":{\"line\":182,\"column\":3}},\"line\":174},\"9\":{\"name\":\"prepareFilteredData\",\"decl\":{\"start\":{\"line\":184,\"column\":12},\"end\":{\"line\":190,\"column\":3}},\"loc\":{\"start\":{\"line\":184,\"column\":12},\"end\":{\"line\":190,\"column\":3}},\"line\":184},\"10\":{\"name\":\"Object.<anonymous>.FilterTypeMap\",\"decl\":{\"start\":{\"line\":206,\"column\":32},\"end\":{\"line\":209,\"column\":49}},\"loc\":{\"start\":{\"line\":206,\"column\":32},\"end\":{\"line\":209,\"column\":49}},\"line\":206}},\"f\":{\"0\":20,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/project.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/project.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":46}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":52}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":54}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":13}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":17}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":21}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":15}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":13}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":25}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":11}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":26}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":51}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":47}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":63}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":68}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":43}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":60}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":56}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":71}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":62}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":66}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":13}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":55}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":13}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":21}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":3}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":44}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":14}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":43}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":27}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":71}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":51}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":35}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":68}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":57}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":37}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":86}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":77}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":27}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":39}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":32}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":54}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":5}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":10}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":25}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":17}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":17}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":21}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":16}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":14}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":28}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":19}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":17}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":23}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":19}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":30}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":6}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":3}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":0}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":13}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":51}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":35}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":3}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":68}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":70}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":31}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":3}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":0}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":77}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":42}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":3}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":20,\"36\":20,\"37\":20,\"38\":20,\"39\":20,\"40\":20,\"41\":20,\"42\":20,\"43\":20,\"44\":20,\"45\":20,\"46\":20,\"47\":20,\"48\":20,\"49\":20,\"50\":20,\"51\":20,\"52\":20,\"53\":20,\"54\":20,\"55\":20,\"56\":20,\"57\":20,\"58\":20,\"59\":20,\"60\":20,\"61\":20,\"62\":20,\"63\":20,\"64\":20,\"65\":1,\"66\":1,\"67\":1,\"68\":20,\"69\":20,\"70\":1,\"71\":1,\"72\":0,\"73\":0,\"74\":0,\"75\":1,\"76\":1,\"77\":33,\"78\":33,\"79\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":38},\"end\":{\"line\":38,\"column\":46}},\"locations\":[{\"start\":{\"line\":38,\"column\":38},\"end\":{\"line\":38,\"column\":46}}]},\"1\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":42},\"end\":{\"line\":39,\"column\":50}},\"locations\":[{\"start\":{\"line\":39,\"column\":42},\"end\":{\"line\":39,\"column\":50}}]},\"2\":{\"type\":\"branch\",\"line\":41,\"loc\":{\"start\":{\"line\":41,\"column\":37},\"end\":{\"line\":41,\"column\":45}},\"locations\":[{\"start\":{\"line\":41,\"column\":37},\"end\":{\"line\":41,\"column\":45}}]},\"3\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":40},\"end\":{\"line\":45,\"column\":48}},\"locations\":[{\"start\":{\"line\":45,\"column\":40},\"end\":{\"line\":45,\"column\":48}}]},\"4\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"locations\":[{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":65,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":8},\"end\":{\"line\":70,\"column\":3}},\"locations\":[{\"start\":{\"line\":68,\"column\":8},\"end\":{\"line\":70,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":12},\"end\":{\"line\":79,\"column\":3}},\"locations\":[{\"start\":{\"line\":77,\"column\":12},\"end\":{\"line\":79,\"column\":3}}]}},\"b\":{\"0\":[0],\"1\":[0],\"2\":[0],\"3\":[0],\"4\":[20],\"5\":[20],\"6\":[33]},\"fnMap\":{\"0\":{\"name\":\"ProjectService\",\"decl\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"loc\":{\"start\":{\"line\":35,\"column\":2},\"end\":{\"line\":65,\"column\":3}},\"line\":35},\"1\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":68,\"column\":8},\"end\":{\"line\":70,\"column\":3}},\"loc\":{\"start\":{\"line\":68,\"column\":8},\"end\":{\"line\":70,\"column\":3}},\"line\":68},\"2\":{\"name\":\"getBlockTimestamp\",\"decl\":{\"start\":{\"line\":72,\"column\":12},\"end\":{\"line\":75,\"column\":3}},\"loc\":{\"start\":{\"line\":72,\"column\":12},\"end\":{\"line\":75,\"column\":3}},\"line\":72},\"3\":{\"name\":\"onProjectChange\",\"decl\":{\"start\":{\"line\":77,\"column\":12},\"end\":{\"line\":79,\"column\":3}},\"loc\":{\"start\":{\"line\":77,\"column\":12},\"end\":{\"line\":79,\"column\":3}},\"line\":77}},\"f\":{\"0\":20,\"1\":20,\"2\":0,\"3\":33}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/runtime/base-runtime.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/runtime/base-runtime.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":43}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":60}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":44}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":46}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":55}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":44}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":44}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":42}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":45}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":13}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":42}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":28}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":32}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":50}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":32}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":50}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":76}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":49}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":59}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":43}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":38}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":78}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":52}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":49}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":5}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":17}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":26}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":24}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":70}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":66}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":60}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":3}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":25}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":31}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":3}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":17}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":24}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":32}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":25}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":54}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":35}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":69}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":6}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":46}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":57}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":66}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":30}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":6}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":70}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":22}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":6}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":62}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":23}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":3}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":13}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":53}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":68}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":8}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":45}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":28}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":38}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":7}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":57}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":61}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":8}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":44}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":66}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":14}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":56}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":14}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":56}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":39}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":13}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":68}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":32}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":14}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":70}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":11}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":9}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":7}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":12}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":64}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":5}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":3}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":75}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":8}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":36}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":77}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":7}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":78}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":38}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":8}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":5}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":38}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":3}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":7,\"25\":3,\"26\":3,\"27\":3,\"28\":3,\"29\":3,\"30\":3,\"31\":3,\"32\":4,\"33\":4,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":0,\"41\":0,\"42\":1,\"43\":1,\"44\":22,\"45\":22,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":8,\"60\":8,\"61\":8,\"62\":8,\"63\":8,\"64\":8,\"65\":8,\"66\":8,\"67\":8,\"68\":1,\"69\":1,\"70\":1,\"71\":3,\"72\":3,\"73\":3,\"74\":3,\"75\":0,\"76\":3,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":3,\"96\":3,\"97\":3,\"98\":3,\"99\":1,\"100\":1,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":22,\"column\":50}},\"locations\":[{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":22,\"column\":50}}]},\"1\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"locations\":[{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":34,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":48},\"end\":{\"line\":32,\"column\":5}},\"locations\":[{\"start\":{\"line\":25,\"column\":48},\"end\":{\"line\":32,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":-1},\"end\":{\"line\":34,\"column\":3}},\"locations\":[{\"start\":{\"line\":33,\"column\":-1},\"end\":{\"line\":34,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":2},\"end\":{\"line\":46,\"column\":3}},\"locations\":[{\"start\":{\"line\":44,\"column\":2},\"end\":{\"line\":46,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"locations\":[{\"start\":{\"line\":48,\"column\":2},\"end\":{\"line\":57,\"column\":3}}]},\"6\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":34},\"end\":{\"line\":56,\"column\":45}},\"locations\":[{\"start\":{\"line\":56,\"column\":34},\"end\":{\"line\":56,\"column\":45}}]},\"7\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":6},\"end\":{\"line\":54,\"column\":68}},\"locations\":[{\"start\":{\"line\":54,\"column\":6},\"end\":{\"line\":54,\"column\":68}}]},\"8\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":68,\"column\":3}},\"locations\":[{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":68,\"column\":3}}]},\"9\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":8},\"end\":{\"line\":99,\"column\":3}},\"locations\":[{\"start\":{\"line\":71,\"column\":8},\"end\":{\"line\":99,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":25},\"end\":{\"line\":76,\"column\":38}},\"locations\":[{\"start\":{\"line\":75,\"column\":25},\"end\":{\"line\":76,\"column\":38}}]},\"11\":{\"type\":\"branch\",\"line\":77,\"loc\":{\"start\":{\"line\":77,\"column\":6},\"end\":{\"line\":96,\"column\":11}},\"locations\":[{\"start\":{\"line\":77,\"column\":6},\"end\":{\"line\":96,\"column\":11}}]}},\"b\":{\"0\":[20],\"1\":[7],\"2\":[3],\"3\":[4],\"4\":[22],\"5\":[1],\"6\":[0],\"7\":[2],\"8\":[8],\"9\":[3],\"10\":[0],\"11\":[0]},\"fnMap\":{\"0\":{\"name\":\"BaseRuntimeService\",\"decl\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":22,\"column\":50}},\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":22,\"column\":50}},\"line\":22},\"1\":{\"name\":\"specChanged\",\"decl\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"loc\":{\"start\":{\"line\":24,\"column\":2},\"end\":{\"line\":34,\"column\":3}},\"line\":24},\"2\":{\"name\":\"init\",\"decl\":{\"start\":{\"line\":40,\"column\":2},\"end\":{\"line\":42,\"column\":3}},\"loc\":{\"start\":{\"line\":40,\"column\":2},\"end\":{\"line\":42,\"column\":3}},\"line\":40},\"3\":{\"name\":\"get api\",\"decl\":{\"start\":{\"line\":44,\"column\":2},\"end\":{\"line\":46,\"column\":3}},\"loc\":{\"start\":{\"line\":44,\"column\":2},\"end\":{\"line\":46,\"column\":3}},\"line\":44},\"4\":{\"name\":\"getSpecFromMap\",\"decl\":{\"start\":{\"line\":48,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"loc\":{\"start\":{\"line\":48,\"column\":2},\"end\":{\"line\":57,\"column\":3}},\"line\":48},\"5\":{\"name\":\"getSpecFromApi\",\"decl\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":68,\"column\":3}},\"loc\":{\"start\":{\"line\":59,\"column\":2},\"end\":{\"line\":68,\"column\":3}},\"line\":59},\"6\":{\"name\":\"prefetchMeta\",\"decl\":{\"start\":{\"line\":71,\"column\":8},\"end\":{\"line\":99,\"column\":3}},\"loc\":{\"start\":{\"line\":71,\"column\":8},\"end\":{\"line\":99,\"column\":3}},\"line\":71},\"7\":{\"name\":\"getRuntimeVersion\",\"decl\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":111,\"column\":3}},\"loc\":{\"start\":{\"line\":101,\"column\":2},\"end\":{\"line\":111,\"column\":3}},\"line\":101}},\"f\":{\"0\":20,\"1\":7,\"2\":0,\"3\":22,\"4\":1,\"5\":8,\"6\":3,\"7\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/runtime/runtimeService.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/runtime/runtimeService.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":44}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":44}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":24}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":29}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":23}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":8}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":21}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":25}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":32}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":13}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":56}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":35}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":14}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":37}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":61}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":5}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":22}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":3}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":44}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":67}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":113}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":65}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":54}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":18}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":33}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":37}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":5}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":67}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":28}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":31}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":12}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":74}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":5}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":3}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":54}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":23}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":24}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":71}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":33}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":33}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":96}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":83}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":66}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":79}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":5}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":41}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":64}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":78}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":59}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":59}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":32}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":7}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":5}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":50}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":3}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":0}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":40}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":13}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":77}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":36}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":69}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":37}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":5}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":50}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":3}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":20,\"21\":20,\"22\":20,\"23\":20,\"24\":20,\"25\":1,\"26\":1,\"27\":1,\"28\":2,\"29\":2,\"30\":2,\"31\":2,\"32\":2,\"33\":2,\"34\":2,\"35\":2,\"36\":1,\"37\":1,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":1,\"45\":1,\"46\":1,\"47\":9,\"48\":9,\"49\":9,\"50\":9,\"51\":9,\"52\":9,\"53\":9,\"54\":1,\"55\":1,\"56\":9,\"57\":8,\"58\":8,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":8,\"64\":9,\"65\":9,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":7,\"71\":7,\"72\":7,\"73\":7,\"74\":7,\"75\":7,\"76\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"locations\":[{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":25,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"locations\":[{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":36,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":6},\"end\":{\"line\":32,\"column\":17}},\"locations\":[{\"start\":{\"line\":32,\"column\":6},\"end\":{\"line\":32,\"column\":17}}]},\"3\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":66,\"column\":3}},\"locations\":[{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":66,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":27},\"end\":{\"line\":54,\"column\":63}},\"locations\":[{\"start\":{\"line\":54,\"column\":27},\"end\":{\"line\":54,\"column\":63}}]},\"5\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":65},\"end\":{\"line\":56,\"column\":5}},\"locations\":[{\"start\":{\"line\":54,\"column\":65},\"end\":{\"line\":56,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":40},\"end\":{\"line\":64,\"column\":5}},\"locations\":[{\"start\":{\"line\":57,\"column\":40},\"end\":{\"line\":64,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":77},\"end\":{\"line\":63,\"column\":7}},\"locations\":[{\"start\":{\"line\":59,\"column\":77},\"end\":{\"line\":63,\"column\":7}}]},\"8\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":8},\"end\":{\"line\":76,\"column\":3}},\"locations\":[{\"start\":{\"line\":70,\"column\":8},\"end\":{\"line\":76,\"column\":3}}]}},\"b\":{\"0\":[20],\"1\":[2],\"2\":[0],\"3\":[9],\"4\":[1],\"5\":[1],\"6\":[8],\"7\":[1],\"8\":[7]},\"fnMap\":{\"0\":{\"name\":\"RuntimeService\",\"decl\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":25,\"column\":3}},\"line\":20},\"1\":{\"name\":\"syncDictionarySpecVersions\",\"decl\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":28,\"column\":2},\"end\":{\"line\":36,\"column\":3}},\"line\":28},\"2\":{\"name\":\"setSpecVersionMap\",\"decl\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":44,\"column\":3}},\"loc\":{\"start\":{\"line\":38,\"column\":2},\"end\":{\"line\":44,\"column\":3}},\"line\":38},\"3\":{\"name\":\"getSpecVersion\",\"decl\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":66,\"column\":3}},\"loc\":{\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":66,\"column\":3}},\"line\":47},\"4\":{\"name\":\"specChanged\",\"decl\":{\"start\":{\"line\":70,\"column\":8},\"end\":{\"line\":76,\"column\":3}},\"loc\":{\"start\":{\"line\":70,\"column\":8},\"end\":{\"line\":76,\"column\":3}},\"line\":70}},\"f\":{\"0\":20,\"1\":2,\"2\":0,\"3\":9,\"4\":7}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/runtime/workerRuntimeService.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/runtime/workerRuntimeService.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":44}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":60}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":13}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":62}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":46}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":21}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":34}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":35}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":11}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":41}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":8}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":44}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":56}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":7}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":57}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":3}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":55}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":43}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":23}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":24}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":71}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":33}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":96}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":83}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":66}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":79}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":5}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":41}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":64}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":5}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":57}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":3}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":40,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":40,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":40,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":40,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/sandbox.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/sandbox.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":46}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":52}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":19}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":17}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":13}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":15}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":19}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":26}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":58}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":43}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":111}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":13}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":34}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":62}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":14}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":44}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":49}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":48}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":56}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":44}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":75}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":6}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":64}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":37}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":36}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":72}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":47}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":46}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":47}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":21}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":37}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":9}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":16}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":16}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":34}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":16}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":48}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":10}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":24}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":8}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":45}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":33}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":33}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":57}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":5}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":62}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":21}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":3}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":0}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":58}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":27}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":3}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":20,\"23\":20,\"24\":20,\"25\":20,\"26\":20,\"27\":20,\"28\":20,\"29\":1,\"30\":1,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":1,\"59\":1,\"60\":0,\"61\":0,\"62\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":40},\"end\":{\"line\":24,\"column\":48}},\"locations\":[{\"start\":{\"line\":24,\"column\":40},\"end\":{\"line\":24,\"column\":48}}]},\"1\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":29,\"column\":6}},\"locations\":[{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":29,\"column\":6}}]}},\"b\":{\"0\":[0],\"1\":[20]},\"fnMap\":{\"0\":{\"name\":\"SandboxService\",\"decl\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":29,\"column\":6}},\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":29,\"column\":6}},\"line\":22},\"1\":{\"name\":\"getDsProcessor\",\"decl\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":58,\"column\":3}},\"loc\":{\"start\":{\"line\":31,\"column\":2},\"end\":{\"line\":58,\"column\":3}},\"line\":31},\"2\":{\"name\":\"getDataSourceEntry\",\"decl\":{\"start\":{\"line\":60,\"column\":10},\"end\":{\"line\":62,\"column\":3}},\"loc\":{\"start\":{\"line\":60,\"column\":10},\"end\":{\"line\":62,\"column\":3}},\"line\":60}},\"f\":{\"0\":20,\"1\":0,\"2\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":52}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":54}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":14}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":22}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":17}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":17}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":21}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":22}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":31}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":24}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":35}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":27}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":1}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":36}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":51}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":32}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":1}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":51}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":74}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":28}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":42}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":26}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":58}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"isFullBlock\",\"decl\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"loc\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":34,\"column\":1}},\"line\":30}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/unfinalizedBlocks.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/unfinalizedBlocks.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":8}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":31}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":12}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":9}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":17}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":13}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":20}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":26}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":61}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":43}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":58}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":13}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":75}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":34}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":3}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":14}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":44}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":27}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":34}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":5}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":34}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":3}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":19}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":55}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":35}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":52}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":63}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":8}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":6}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":25}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":19}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":67}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":35}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":58}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":6}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":3}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":0}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":19}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":71}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":74}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":47}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":3}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":20,\"22\":20,\"23\":20,\"24\":20,\"25\":20,\"26\":20,\"27\":1,\"28\":1,\"29\":1,\"30\":20,\"31\":20,\"32\":20,\"33\":20,\"34\":20,\"35\":20,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":1,\"45\":1,\"46\":1,\"47\":0,\"48\":0,\"49\":0,\"50\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":21,\"loc\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":27,\"column\":3}},\"locations\":[{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":27,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":18},\"end\":{\"line\":36,\"column\":3}},\"locations\":[{\"start\":{\"line\":30,\"column\":18},\"end\":{\"line\":36,\"column\":3}}]}},\"b\":{\"0\":[20],\"1\":[20]},\"fnMap\":{\"0\":{\"name\":\"UnfinalizedBlocksService\",\"decl\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":27,\"column\":3}},\"loc\":{\"start\":{\"line\":21,\"column\":2},\"end\":{\"line\":27,\"column\":3}},\"line\":21},\"1\":{\"name\":\"getFinalizedHead\",\"decl\":{\"start\":{\"line\":30,\"column\":18},\"end\":{\"line\":36,\"column\":3}},\"loc\":{\"start\":{\"line\":30,\"column\":18},\"end\":{\"line\":36,\"column\":3}},\"line\":30},\"2\":{\"name\":\"getHeaderForHash\",\"decl\":{\"start\":{\"line\":40,\"column\":18},\"end\":{\"line\":44,\"column\":3}},\"loc\":{\"start\":{\"line\":40,\"column\":18},\"end\":{\"line\":44,\"column\":3}},\"line\":40},\"3\":{\"name\":\"getHeaderForHeight\",\"decl\":{\"start\":{\"line\":47,\"column\":18},\"end\":{\"line\":50,\"column\":3}},\"loc\":{\"start\":{\"line\":47,\"column\":18},\"end\":{\"line\":50,\"column\":3}},\"line\":47}},\"f\":{\"0\":20,\"1\":20,\"2\":0,\"3\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker-fetch.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker-fetch.module.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":54}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":24}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":25}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":35}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":29}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":13}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":29}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":26}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":66}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":44}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":64}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":61}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":57}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":52}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":52}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":71}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":52}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":72}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":49}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":84}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":52}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":9}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":14}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":19}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":5}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":42}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":23}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":67}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":6}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":26}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":26}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":25}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":33}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":75}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":36}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":31}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":12}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":42}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":18}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":32}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":23}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":21}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":10}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":32}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":26}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":8}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":15}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":27}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":30}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":22}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":19}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":8}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":6}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":19}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":23}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":5}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":32}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":73}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":6}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":5}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":33}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":31}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":6}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":5}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":40}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":23}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":65}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":6}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":18}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":25}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":5}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":36}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":77}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":6}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":4}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":14}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":2}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":33}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":89,\"column\":33}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":89,\"column\":33}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":89,\"column\":33}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":89,\"column\":33}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker.module.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":59}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":50}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":67}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":58}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":9}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":12}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":33}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":31}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":29}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":4}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":18}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":2}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":28}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":19,\"column\":28}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":19,\"column\":28}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":19,\"column\":28}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":19,\"column\":28}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker.service.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":52}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":8}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":13}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":18}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":23}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":20}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":25}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":9}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":26}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":51}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":44}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":44}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":52}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":71}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":72}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":77}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":13}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":53}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":35}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":21}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":22}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":25}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":14}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":35}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":43}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":55}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":30}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":57}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":37}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":50}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":27}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":5}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":61}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":3}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":34}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":19}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":20}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":56}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":68}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":13}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":18}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":6}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":54}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":15}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":76}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":6}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":17}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":3}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":70}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":12}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":43}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":62}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":6}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":3}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":38}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":52}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":39}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":36}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":52}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":17}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":77}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":78}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":3}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":0}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":54}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":52}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":13}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":47}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":6}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":3}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":21}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":32}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":35}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":11}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":49}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":19}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":28}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":6}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":3}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":93,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":93,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":93,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":93,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":65}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":50}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":40}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":53}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":40}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":43}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":30}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":11}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":13}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":39}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":38}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":2}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":47}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":43}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":8}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":12}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":13}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":19}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":21}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":19}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":21}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":26}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":44}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":52}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":47}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":49}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":48}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":63}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":7}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":56}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":118}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":7}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":21}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":0}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":70}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":107}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":43}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":49}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":43}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":15}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":45}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":46}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":12}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":3}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":1}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":61}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":66}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":1}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":28}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":30}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":33}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":9}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":55}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":17}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":26}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":4}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":1}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":51}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":48}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":40}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":2}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":0}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":45}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":21}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":17}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":13}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":3}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":81,\"column\":3}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":81,\"column\":3}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":81,\"column\":3}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":81,\"column\":3}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker.unfinalizedBlocks.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/worker/worker.unfinalizedBlocks.service.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":51}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":44}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":8}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":9}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":24}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":9}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":28}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":26}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":40}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":13}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":43}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":52}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":1}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":52}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":23}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":54}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":3}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":33}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":32}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":34}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":65}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":38}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":31}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":34}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":54}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":71}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":75}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":70}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":3}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":34}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":70}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":3}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":44}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":70}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":3}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":71}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":53}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":70}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":3}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":51,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":51,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/x-provider/cachedProvider.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/x-provider/cachedProvider.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":65}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":37}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":27}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":28}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":39}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":37}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":30}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":22}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":55}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":24}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":19}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":5}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":31}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":19}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":11}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":9}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":8}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":83}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":25}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":51}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":5}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":46}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":33}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":36}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":5}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":78}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":42}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":25}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":4}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":30}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":44}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":28}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":25}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":25}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":28}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":31}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":32}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":11}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":63}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":52}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":80}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":39}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":21}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":21}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":39}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":24}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":14}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":11}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":0}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":77}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":78}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":10}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":7}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":62}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":49}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":6}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":5}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":17,\"11\":17,\"12\":17,\"13\":17,\"14\":17,\"15\":17,\"16\":17,\"17\":17,\"18\":17,\"19\":59,\"20\":59,\"21\":59,\"22\":59,\"23\":59,\"24\":59,\"25\":59,\"26\":16,\"27\":16,\"28\":43,\"29\":43,\"30\":59,\"31\":11,\"32\":11,\"33\":32,\"34\":32,\"35\":32,\"36\":32,\"37\":17,\"38\":17,\"39\":17,\"40\":17,\"41\":476091,\"42\":177,\"43\":165,\"44\":165,\"45\":165,\"46\":165,\"47\":165,\"48\":165,\"49\":165,\"50\":165,\"51\":59,\"52\":59,\"53\":59,\"54\":59,\"55\":59,\"56\":59,\"57\":59,\"58\":106,\"59\":106,\"60\":106,\"61\":177,\"62\":177,\"63\":475914,\"64\":475914,\"65\":475914,\"66\":17,\"67\":17,\"68\":17},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":69,\"column\":1}},\"locations\":[{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":69,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":30},\"end\":{\"line\":38,\"column\":3}},\"locations\":[{\"start\":{\"line\":19,\"column\":30},\"end\":{\"line\":38,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":24},\"end\":{\"line\":28,\"column\":5}},\"locations\":[{\"start\":{\"line\":26,\"column\":24},\"end\":{\"line\":28,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":-1},\"end\":{\"line\":31,\"column\":32}},\"locations\":[{\"start\":{\"line\":29,\"column\":-1},\"end\":{\"line\":31,\"column\":32}}]},\"4\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":32},\"end\":{\"line\":38,\"column\":3}},\"locations\":[{\"start\":{\"line\":31,\"column\":32},\"end\":{\"line\":38,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":32},\"end\":{\"line\":33,\"column\":5}},\"locations\":[{\"start\":{\"line\":31,\"column\":32},\"end\":{\"line\":33,\"column\":5}}]},\"6\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":-1},\"end\":{\"line\":38,\"column\":3}},\"locations\":[{\"start\":{\"line\":34,\"column\":-1},\"end\":{\"line\":38,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":41,\"loc\":{\"start\":{\"line\":41,\"column\":9},\"end\":{\"line\":67,\"column\":5}},\"locations\":[{\"start\":{\"line\":41,\"column\":9},\"end\":{\"line\":67,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":27},\"end\":{\"line\":63,\"column\":7}},\"locations\":[{\"start\":{\"line\":42,\"column\":27},\"end\":{\"line\":63,\"column\":7}}]},\"9\":{\"type\":\"branch\",\"line\":64,\"loc\":{\"start\":{\"line\":64,\"column\":-1},\"end\":{\"line\":67,\"column\":5}},\"locations\":[{\"start\":{\"line\":64,\"column\":-1},\"end\":{\"line\":67,\"column\":5}}]},\"10\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":15},\"end\":{\"line\":62,\"column\":9}},\"locations\":[{\"start\":{\"line\":43,\"column\":15},\"end\":{\"line\":62,\"column\":9}}]},\"11\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":79},\"end\":{\"line\":58,\"column\":11}},\"locations\":[{\"start\":{\"line\":51,\"column\":79},\"end\":{\"line\":58,\"column\":11}}]},\"12\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":-1},\"end\":{\"line\":62,\"column\":9}},\"locations\":[{\"start\":{\"line\":59,\"column\":-1},\"end\":{\"line\":62,\"column\":9}}]}},\"b\":{\"0\":[17],\"1\":[59],\"2\":[16],\"3\":[43],\"4\":[53],\"5\":[11],\"6\":[32],\"7\":[476091],\"8\":[177],\"9\":[475914],\"10\":[165],\"11\":[59],\"12\":[106]},\"fnMap\":{\"0\":{\"name\":\"createCachedProvider\",\"decl\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":69,\"column\":1}},\"loc\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":69,\"column\":1}},\"line\":11},\"1\":{\"name\":\"cachedMethodHandler\",\"decl\":{\"start\":{\"line\":19,\"column\":30},\"end\":{\"line\":38,\"column\":3}},\"loc\":{\"start\":{\"line\":19,\"column\":30},\"end\":{\"line\":38,\"column\":3}},\"line\":19},\"2\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":41,\"column\":9},\"end\":{\"line\":67,\"column\":5}},\"loc\":{\"start\":{\"line\":41,\"column\":9},\"end\":{\"line\":67,\"column\":5}},\"line\":41}},\"f\":{\"0\":17,\"1\":59,\"2\":476091}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/x-provider/http.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/indexer/x-provider/http.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":135}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":73}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":56}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":55}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":54}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":13}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":18}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":20}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":28}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":26}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":27}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":16}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":38}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":45}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":35}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":23}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":70}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":37}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":3}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":27}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":2}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":21}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":2}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":264}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":2}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":11}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":7}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":2}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":16}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":43}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":57}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":2}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":62}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":33}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":6}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":2}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":22}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":3}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":56}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":39}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":28}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":29}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":44}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":33}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":44}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":5}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":68}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":5}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":14}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":41}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":41}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":5}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":47}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":22}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":85}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":8}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":5}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":0}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":25}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":14}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":24}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":23}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":8}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":7}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":33}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":30}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":28}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":19}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":48}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":14}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":21}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":21}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":18}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":18}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":20}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":25}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":19}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":8}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":6}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":3}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":5}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":62}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":5}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":35}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":17}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":3}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":0}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":5}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":47}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":5}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":25}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":59}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":3}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":0}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":5}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":54}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":5}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":34}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":11}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":3}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":5}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":57}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":5}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":37}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":11}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":36}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":3}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":0}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":5}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":46}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":5}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":30}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":23}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":3}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":5}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":56}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":5}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":29}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":16}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":3}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":5}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":51}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":40}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":5}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":30}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":16}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":3}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":0}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":5}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":81}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":95}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":5}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":63}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":80}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":12}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":74}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":6}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":0}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":24}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":13}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":6}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":3}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":0}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":5}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":75}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":5}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":16}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":19}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":22}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":26}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":17}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":33}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":0}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":60}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":54}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":49}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":13}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":0}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":70}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":25}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":39}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":0}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":24}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":49}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":7}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":12}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":33}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":5}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":0}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":25}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":3}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":0}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":44}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":34}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":47}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":0}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":9}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":62}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":13}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":18}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":37}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":39}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":48}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":45}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":27}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":10}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":23}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":9}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":0}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":25}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":72}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":7}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":0}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":43}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":0}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":51}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":0}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":49}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":49}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":8}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":0}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":36}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":0}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":21}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":17}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":36}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":33}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":0}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":14}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":5}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":3}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":0}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":5}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":88}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":5}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":96}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":18}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":18}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":19}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":22}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":34}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":22}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":29}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":0}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":37}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":3}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":0}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":5}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":88}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":5}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":96}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":20}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":17}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":19}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":15}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":23}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":29}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":0}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":37}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":3}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":5,\"63\":5,\"64\":5,\"65\":5,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":5,\"71\":5,\"72\":5,\"73\":5,\"74\":5,\"75\":5,\"76\":5,\"77\":5,\"78\":5,\"79\":5,\"80\":5,\"81\":5,\"82\":5,\"83\":5,\"84\":5,\"85\":5,\"86\":5,\"87\":5,\"88\":5,\"89\":5,\"90\":5,\"91\":5,\"92\":5,\"93\":5,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":0,\"100\":0,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":0,\"107\":0,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":0,\"114\":0,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":5,\"121\":5,\"122\":5,\"123\":1,\"124\":1,\"125\":1,\"126\":1,\"127\":1,\"128\":0,\"129\":0,\"130\":1,\"131\":1,\"132\":1,\"133\":1,\"134\":1,\"135\":0,\"136\":0,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":0,\"144\":0,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":1,\"151\":1,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":1,\"161\":1,\"162\":1,\"163\":1,\"164\":1,\"165\":4,\"166\":4,\"167\":4,\"168\":4,\"169\":4,\"170\":4,\"171\":4,\"172\":4,\"173\":4,\"174\":4,\"175\":4,\"176\":4,\"177\":4,\"178\":4,\"179\":4,\"180\":4,\"181\":0,\"182\":0,\"183\":4,\"184\":0,\"185\":0,\"186\":4,\"187\":4,\"188\":4,\"189\":1,\"190\":1,\"191\":4,\"192\":4,\"193\":4,\"194\":4,\"195\":4,\"196\":4,\"197\":4,\"198\":4,\"199\":4,\"200\":4,\"201\":4,\"202\":4,\"203\":4,\"204\":4,\"205\":4,\"206\":4,\"207\":4,\"208\":0,\"209\":0,\"210\":4,\"211\":4,\"212\":4,\"213\":4,\"214\":4,\"215\":4,\"216\":4,\"217\":4,\"218\":4,\"219\":4,\"220\":4,\"221\":4,\"222\":4,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":4,\"229\":1,\"230\":1,\"231\":1,\"232\":1,\"233\":1,\"234\":1,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":1,\"245\":1,\"246\":1,\"247\":1,\"248\":1,\"249\":1,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":94,\"column\":3}},\"locations\":[{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":94,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":46},\"end\":{\"line\":70,\"column\":5}},\"locations\":[{\"start\":{\"line\":66,\"column\":46},\"end\":{\"line\":70,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":120,\"loc\":{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":123,\"column\":3}},\"locations\":[{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":123,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":165,\"loc\":{\"start\":{\"line\":165,\"column\":2},\"end\":{\"line\":189,\"column\":3}},\"locations\":[{\"start\":{\"line\":165,\"column\":2},\"end\":{\"line\":189,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":174,\"loc\":{\"start\":{\"line\":174,\"column\":6},\"end\":{\"line\":174,\"column\":49}},\"locations\":[{\"start\":{\"line\":174,\"column\":6},\"end\":{\"line\":174,\"column\":49}}]},\"5\":{\"type\":\"branch\",\"line\":181,\"loc\":{\"start\":{\"line\":181,\"column\":23},\"end\":{\"line\":183,\"column\":7}},\"locations\":[{\"start\":{\"line\":181,\"column\":23},\"end\":{\"line\":183,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":184,\"loc\":{\"start\":{\"line\":184,\"column\":5},\"end\":{\"line\":186,\"column\":5}},\"locations\":[{\"start\":{\"line\":184,\"column\":5},\"end\":{\"line\":186,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":229,\"column\":3}},\"locations\":[{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":229,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":208,\"loc\":{\"start\":{\"line\":208,\"column\":24},\"end\":{\"line\":210,\"column\":7}},\"locations\":[{\"start\":{\"line\":208,\"column\":24},\"end\":{\"line\":210,\"column\":7}}]},\"9\":{\"type\":\"branch\",\"line\":223,\"loc\":{\"start\":{\"line\":223,\"column\":6},\"end\":{\"line\":228,\"column\":5}},\"locations\":[{\"start\":{\"line\":223,\"column\":6},\"end\":{\"line\":228,\"column\":5}}]}},\"b\":{\"0\":[5],\"1\":[0],\"2\":[5],\"3\":[4],\"4\":[0],\"5\":[0],\"6\":[0],\"7\":[4],\"8\":[0],\"9\":[0]},\"fnMap\":{\"0\":{\"name\":\"HttpProvider\",\"decl\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":94,\"column\":3}},\"loc\":{\"start\":{\"line\":62,\"column\":2},\"end\":{\"line\":94,\"column\":3}},\"line\":62},\"1\":{\"name\":\"get hasSubscriptions\",\"decl\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":101,\"column\":3}},\"loc\":{\"start\":{\"line\":99,\"column\":2},\"end\":{\"line\":101,\"column\":3}},\"line\":99},\"2\":{\"name\":\"clone\",\"decl\":{\"start\":{\"line\":106,\"column\":2},\"end\":{\"line\":108,\"column\":3}},\"loc\":{\"start\":{\"line\":106,\"column\":2},\"end\":{\"line\":108,\"column\":3}},\"line\":106},\"3\":{\"name\":\"connect\",\"decl\":{\"start\":{\"line\":113,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"loc\":{\"start\":{\"line\":113,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"line\":113},\"4\":{\"name\":\"disconnect\",\"decl\":{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":123,\"column\":3}},\"loc\":{\"start\":{\"line\":120,\"column\":2},\"end\":{\"line\":123,\"column\":3}},\"line\":120},\"5\":{\"name\":\"get stats\",\"decl\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"loc\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"line\":128},\"6\":{\"name\":\"get isClonable\",\"decl\":{\"start\":{\"line\":135,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"loc\":{\"start\":{\"line\":135,\"column\":2},\"end\":{\"line\":137,\"column\":3}},\"line\":135},\"7\":{\"name\":\"get isConnected\",\"decl\":{\"start\":{\"line\":143,\"column\":2},\"end\":{\"line\":145,\"column\":3}},\"loc\":{\"start\":{\"line\":143,\"column\":2},\"end\":{\"line\":145,\"column\":3}},\"line\":143},\"8\":{\"name\":\"on\",\"decl\":{\"start\":{\"line\":152,\"column\":2},\"end\":{\"line\":160,\"column\":3}},\"loc\":{\"start\":{\"line\":152,\"column\":2},\"end\":{\"line\":160,\"column\":3}},\"line\":152},\"9\":{\"name\":\"send\",\"decl\":{\"start\":{\"line\":165,\"column\":2},\"end\":{\"line\":189,\"column\":3}},\"loc\":{\"start\":{\"line\":165,\"column\":2},\"end\":{\"line\":189,\"column\":3}},\"line\":165},\"10\":{\"name\":\"_send\",\"decl\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":229,\"column\":3}},\"loc\":{\"start\":{\"line\":191,\"column\":2},\"end\":{\"line\":229,\"column\":3}},\"line\":191},\"11\":{\"name\":\"subscribe\",\"decl\":{\"start\":{\"line\":235,\"column\":2},\"end\":{\"line\":244,\"column\":3}},\"loc\":{\"start\":{\"line\":235,\"column\":2},\"end\":{\"line\":244,\"column\":3}},\"line\":235},\"12\":{\"name\":\"unsubscribe\",\"decl\":{\"start\":{\"line\":250,\"column\":2},\"end\":{\"line\":258,\"column\":3}},\"loc\":{\"start\":{\"line\":250,\"column\":2},\"end\":{\"line\":258,\"column\":3}},\"line\":250}},\"f\":{\"0\":5,\"1\":0,\"2\":0,\"3\":0,\"4\":5,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":4,\"10\":4,\"11\":0,\"12\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/init.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/init.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":46}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":71}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":41}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":51}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":55}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":59}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":39}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":41}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":30}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":39}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":29}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":50}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":45}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":7}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":53}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":43}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":7}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":21}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":70}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":47}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":43}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":108}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":28}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":32}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":56}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":30}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":27}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":49}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":15}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":44}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":20}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":3}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":48,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/main.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/main.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":53}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":39}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":30}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":129}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":11}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":13}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":38}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":2}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":52}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":27}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":26}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":17}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":70}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":52}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":42}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":19}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":25,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":25,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/meta/meta.controller.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/meta/meta.controller.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":49}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":45}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":19}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":29}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":50}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":8}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":13}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":38}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":3}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":0,\"13\":0,\"14\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":50}},\"locations\":[{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":50}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"MetaController\",\"decl\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":50}},\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":50}},\"line\":9},\"1\":{\"name\":\"getMeta\",\"decl\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":14,\"column\":3}},\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":14,\"column\":3}},\"line\":12}},\"f\":{\"0\":20,\"1\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/meta/meta.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/meta/meta.module.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":65}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":63}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":54}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":51}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":45}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":9}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":54}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":52}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":44}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":2}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":26}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/meta/meta.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/meta/meta.service.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":8}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":18}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":13}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":20}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":26}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":62}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":78}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":62}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":66}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":13}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":50}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":44}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":61}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":71}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":3}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":73}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":37}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":3}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":0,\"20\":0,\"21\":1,\"22\":20,\"23\":20,\"24\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"locations\":[{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":24,\"column\":3}}]}},\"b\":{\"0\":[20]},\"fnMap\":{\"0\":{\"name\":\"sdkVersion\",\"decl\":{\"start\":{\"line\":19,\"column\":12},\"end\":{\"line\":21,\"column\":3}},\"loc\":{\"start\":{\"line\":19,\"column\":12},\"end\":{\"line\":21,\"column\":3}},\"line\":19},\"1\":{\"name\":\"MetaService\",\"decl\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"loc\":{\"start\":{\"line\":22,\"column\":2},\"end\":{\"line\":24,\"column\":3}},\"line\":22}},\"f\":{\"0\":0,\"1\":20}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/forceClean.init.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/forceClean.init.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":64}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":55}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":32}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":55}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":7}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":59}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":21}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":57}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":41}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":15}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":53}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":20}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":3}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":18}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":21,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/forceClean.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/forceClean.module.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":69}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":64}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":9}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":12}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":23}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":31}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":28}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":4}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":18}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":2}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":32}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":16,\"column\":32}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":16,\"column\":32}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":16,\"column\":32}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":16,\"column\":32}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/reindex.init.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/reindex.init.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":61}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":49}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":40}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":72}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":7}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":56}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":21}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":51}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":32}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":31}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":78}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":47}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":18}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":146}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":8}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":5}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":54}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":15}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":49}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":20}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":3}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":18}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":30,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/reindex.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/reindex.module.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":59}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":53}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":11}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":20}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":20}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":17}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":15}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":13}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":26}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":64}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":52}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":69}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":65}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":80}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":9}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":14}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":22}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":17}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":19}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":15}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":22}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":5}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":42}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":41}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":6}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":5}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":34}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":33}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":6}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":23}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":5}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":84}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":26}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":34}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":6}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":22}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":4}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":18}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":2}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":36}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":9}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":12}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":23}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":31}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":25}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":33}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":4}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":18}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":2}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":29}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":57,\"column\":29}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":57,\"column\":29}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":57,\"column\":29}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":57,\"column\":29}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/testing.init.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/testing.init.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":45}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":64}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":51}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":36}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":52}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":7}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":72}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":67}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":31}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":15}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":38}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":20}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":3}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":18}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":20,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":20,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":20,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":20,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/testing.module.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/testing.module.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":74}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":69}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":24}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":29}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":11}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":23}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":13}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":13}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":17}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":20}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":15}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":13}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":26}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":64}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":52}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":69}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":65}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":60}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":60}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":60}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":80}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":9}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":14}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":25}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":17}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":22}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":18}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":15}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":19}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":19}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":23}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":21}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":29}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":31}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":26}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":33}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":31}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":6}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":15}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":22}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":15}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":5}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":22}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":30}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":6}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":5}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":33}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":31}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":6}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":4}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":18}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":24}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":2}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":36}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":0}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":9}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":12}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":23}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":31}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":33}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":29}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":25}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":4}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":18}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":2}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":29}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":73,\"column\":29}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":73,\"column\":29}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":73,\"column\":29}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":73,\"column\":29}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/testing.service.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/subcommands/testing.service.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":52}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":43}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":43}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":13}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":39}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":13}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":13}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":17}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":9}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":26}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":51}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":63}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":52}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":60}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":60}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":74}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":49}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":13}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":55}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":13}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":8}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":35}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":21}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":3}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":14}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":27}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":57}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":5}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":31}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":3}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":33}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":5}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":33}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":79}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":67}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":20}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":7}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":56}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":8}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":6}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":29}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":78}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":51}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":108}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":28}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":32}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":78}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":3}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":0}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":19}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":52}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":20}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":35}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":27}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":20}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":26}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":61}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":36}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":8}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":36}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":12}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":37}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":21}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":6}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":3}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":79,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/utils/project.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/utils/project.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":24}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":64}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":13}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":18}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":26}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":25}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":19}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":23}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":14}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":13}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":33}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":44}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":43}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":27}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":39}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":8}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":25}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":18}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":21}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":38}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":30}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":28}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":39}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":76}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":32}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":28}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":38}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":33}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":36}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":17}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":15}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":15}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":24}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":64}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":38}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":38}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":10}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":104}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":94}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":94}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":97}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":73}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":43}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":21}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":9}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":27}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":34}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":17}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":69}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":101}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":34}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":5}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":3}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":1}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":76}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":35}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":51}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":32}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":42}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":103}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":57}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":70}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":42}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":12}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":56}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":5}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":10}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":56}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":3}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":1}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":0}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":37}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":19}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":23}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":12}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":45}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":53}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":25}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":24}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":16}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":16}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":14}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":25}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":21}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":24}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":17}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":40}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":62}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":8}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":6}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":24}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":36}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":5}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":26}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":7}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":32}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":57}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":33}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":16}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":43}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":17}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":47}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":3}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":33}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":20}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":69}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":6}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":3}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":20}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":70}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":24}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":38}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":63}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":6}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":30}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":52}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":16}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":3}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":14}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":1}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":72}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":63}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":35}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":4}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":62}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":57}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":4}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":0}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":53}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":9,\"27\":9,\"28\":9,\"29\":9,\"30\":9,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":6,\"40\":6,\"41\":6,\"42\":6,\"43\":6,\"44\":6,\"45\":4,\"46\":6,\"47\":2,\"48\":2,\"49\":2,\"50\":2,\"51\":2,\"52\":2,\"53\":2,\"54\":2,\"55\":2,\"56\":2,\"57\":2,\"58\":2,\"59\":2,\"60\":2,\"61\":2,\"62\":2,\"63\":6,\"64\":1,\"65\":4,\"66\":4,\"67\":4,\"68\":4,\"69\":4,\"70\":3,\"71\":3,\"72\":4,\"73\":1,\"74\":1,\"75\":0,\"76\":0,\"77\":4,\"78\":0,\"79\":0,\"80\":4,\"81\":1,\"82\":5,\"83\":5,\"84\":5,\"85\":5,\"86\":5,\"87\":5,\"88\":5,\"89\":5,\"90\":5,\"91\":5,\"92\":5,\"93\":5,\"94\":5,\"95\":5,\"96\":5,\"97\":5,\"98\":0,\"99\":5,\"100\":5,\"101\":5,\"102\":5,\"103\":5,\"104\":5,\"105\":5,\"106\":5,\"107\":5,\"108\":5,\"109\":5,\"110\":5,\"111\":5,\"112\":0,\"113\":0,\"114\":5,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":5,\"120\":5,\"121\":1,\"122\":53,\"123\":53,\"124\":53,\"125\":53,\"126\":53,\"127\":53,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":1,\"134\":59,\"135\":59,\"136\":59,\"137\":59,\"138\":59,\"139\":59,\"140\":59,\"141\":59,\"142\":59,\"143\":59},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"locations\":[{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":31,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"locations\":[{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":37,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":7},\"end\":{\"line\":64,\"column\":1}},\"locations\":[{\"start\":{\"line\":39,\"column\":7},\"end\":{\"line\":64,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":37},\"end\":{\"line\":47,\"column\":9}},\"locations\":[{\"start\":{\"line\":45,\"column\":37},\"end\":{\"line\":47,\"column\":9}}]},\"4\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":3},\"end\":{\"line\":63,\"column\":3}},\"locations\":[{\"start\":{\"line\":47,\"column\":3},\"end\":{\"line\":63,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":81,\"column\":1}},\"locations\":[{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":81,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":21},\"end\":{\"line\":70,\"column\":39}},\"locations\":[{\"start\":{\"line\":70,\"column\":21},\"end\":{\"line\":70,\"column\":39}}]},\"7\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":41},\"end\":{\"line\":73,\"column\":11}},\"locations\":[{\"start\":{\"line\":70,\"column\":41},\"end\":{\"line\":73,\"column\":11}}]},\"8\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":5},\"end\":{\"line\":77,\"column\":5}},\"locations\":[{\"start\":{\"line\":73,\"column\":5},\"end\":{\"line\":77,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":30},\"end\":{\"line\":73,\"column\":48}},\"locations\":[{\"start\":{\"line\":73,\"column\":30},\"end\":{\"line\":73,\"column\":48}}]},\"10\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":48},\"end\":{\"line\":73,\"column\":67}},\"locations\":[{\"start\":{\"line\":73,\"column\":48},\"end\":{\"line\":73,\"column\":67}}]},\"11\":{\"type\":\"branch\",\"line\":75,\"loc\":{\"start\":{\"line\":75,\"column\":5},\"end\":{\"line\":77,\"column\":5}},\"locations\":[{\"start\":{\"line\":75,\"column\":5},\"end\":{\"line\":77,\"column\":5}}]},\"12\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":3},\"end\":{\"line\":80,\"column\":3}},\"locations\":[{\"start\":{\"line\":78,\"column\":3},\"end\":{\"line\":80,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":83,\"loc\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"locations\":[{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":121,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":26},\"end\":{\"line\":88,\"column\":52}},\"locations\":[{\"start\":{\"line\":88,\"column\":26},\"end\":{\"line\":88,\"column\":52}}]},\"15\":{\"type\":\"branch\",\"line\":112,\"loc\":{\"start\":{\"line\":112,\"column\":4},\"end\":{\"line\":114,\"column\":3}},\"locations\":[{\"start\":{\"line\":112,\"column\":4},\"end\":{\"line\":114,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":32},\"end\":{\"line\":119,\"column\":3}},\"locations\":[{\"start\":{\"line\":115,\"column\":32},\"end\":{\"line\":119,\"column\":3}}]},\"17\":{\"type\":\"branch\",\"line\":123,\"loc\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":133,\"column\":1}},\"locations\":[{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":133,\"column\":1}}]},\"18\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":3},\"end\":{\"line\":133,\"column\":1}},\"locations\":[{\"start\":{\"line\":128,\"column\":3},\"end\":{\"line\":133,\"column\":1}}]},\"19\":{\"type\":\"branch\",\"line\":126,\"loc\":{\"start\":{\"line\":126,\"column\":6},\"end\":{\"line\":126,\"column\":62}},\"locations\":[{\"start\":{\"line\":126,\"column\":6},\"end\":{\"line\":126,\"column\":62}}]},\"20\":{\"type\":\"branch\",\"line\":135,\"loc\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":144,\"column\":1}},\"locations\":[{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":144,\"column\":1}}]},\"21\":{\"type\":\"branch\",\"line\":136,\"loc\":{\"start\":{\"line\":136,\"column\":56},\"end\":{\"line\":137,\"column\":34}},\"locations\":[{\"start\":{\"line\":136,\"column\":56},\"end\":{\"line\":137,\"column\":34}}]}},\"b\":{\"0\":[9],\"1\":[1],\"2\":[6],\"3\":[4],\"4\":[2],\"5\":[4],\"6\":[1],\"7\":[3],\"8\":[1],\"9\":[0],\"10\":[0],\"11\":[0],\"12\":[0],\"13\":[5],\"14\":[2],\"15\":[0],\"16\":[0],\"17\":[53],\"18\":[0],\"19\":[53],\"20\":[59],\"21\":[53]},\"fnMap\":{\"0\":{\"name\":\"isBaseHandler\",\"decl\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"loc\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"line\":27},\"1\":{\"name\":\"isCustomHandler\",\"decl\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"loc\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"line\":33},\"2\":{\"name\":\"getChainTypes\",\"decl\":{\"start\":{\"line\":39,\"column\":7},\"end\":{\"line\":64,\"column\":1}},\"loc\":{\"start\":{\"line\":39,\"column\":7},\"end\":{\"line\":64,\"column\":1}},\"line\":39},\"3\":{\"name\":\"loadChainTypes\",\"decl\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":81,\"column\":1}},\"loc\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":81,\"column\":1}},\"line\":66},\"4\":{\"name\":\"loadChainTypesFromJs\",\"decl\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"loc\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"line\":83},\"5\":{\"name\":\"resolve\",\"decl\":{\"start\":{\"line\":98,\"column\":15},\"end\":{\"line\":100,\"column\":7}},\"loc\":{\"start\":{\"line\":98,\"column\":15},\"end\":{\"line\":100,\"column\":7}},\"line\":98},\"6\":{\"name\":\"dsContainsNonEventHandlers\",\"decl\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":133,\"column\":1}},\"loc\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":133,\"column\":1}},\"line\":123},\"7\":{\"name\":\"isOnlyEventHandlers\",\"decl\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":144,\"column\":1}},\"loc\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":144,\"column\":1}},\"line\":135}},\"f\":{\"0\":9,\"1\":1,\"2\":6,\"3\":4,\"4\":5,\"5\":0,\"6\":53,\"7\":59}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/utils/substrate.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/utils/substrate.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":38}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":41}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":8}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":12}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":14}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":17}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":14}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":28}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":36}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":64}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":61}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":8}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":19}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":23}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":22}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":23}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":17}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":17}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":21}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":14}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":22}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":44}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":71}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":72}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":67}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":34}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":51}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":35}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":42}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":74}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":10}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":42}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":35}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":42}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":4}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":26}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":27}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":24}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":23}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":19}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":29}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":41}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":29}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":11}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":5}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":76}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":31}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":11}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":34}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":10}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":54}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":58}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":34}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":53}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":7}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":18}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":5}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":3}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":31}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":31}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":27}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":25}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":64}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":57}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":12}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":10}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":16}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":26}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":13}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":43}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":6}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":5}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":62}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":10}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":75}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":4}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":1}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":31}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":23}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":24}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":18}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":23}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":18}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":73}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":4}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":0}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":27}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":35}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":24}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":24}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":21}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":45}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":28}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":70}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":33}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":77}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":5}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":27}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":15}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":29}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":24}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":37}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":22}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":3}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":50}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":10}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":31}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":27}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":34}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":79}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":4}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":1}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":28}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":24}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":32}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":31}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":28}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":48}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":25}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":74}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":13}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":5}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":3}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":44}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":38}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":57}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":11}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":16}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":1}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":0}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":34}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":24}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":31}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":12}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":28}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":27}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":61}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":1}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":0}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":37}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":24}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":34}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":12}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":50}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":49}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":16}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":39}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":22}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":44}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":6}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":16}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":48}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":33}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":21}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":6}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":40}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":16}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":10}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":40}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":17}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":3}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":1}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":0}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":32}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":52}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":31}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":12}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":27}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":10}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":40}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":40}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":63}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":35}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":52}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":35}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":51}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":67}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":77}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":4}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":1}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":0}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":33}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":35}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":75}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":25}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":6}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":23}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":70}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":5}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":22}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":3}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":17}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":75}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":41}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":65}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":4}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":1}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":0}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":28}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":35}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":32}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":12}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":27}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":10}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":40}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":40}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":63}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":63}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":59}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":4}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":1}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":0}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":29}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":27}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":78}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":21}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":6}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":23}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":70}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":5}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":18}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":3}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":17}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":75}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":33}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":57}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":4}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":1}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":0}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":52}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":39}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":18}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":18}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":18}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":35}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":1}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":0}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":3}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":2}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":13}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":21}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":19}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":87}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":3}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":0}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":39}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":18}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":17}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":25}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":75}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":56}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":46}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":5}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":0}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":70}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":17}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":69}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":6}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":46}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":5}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":28}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":62}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":20}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":186}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":6}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":3}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":15}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":1}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":0}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":40}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":18}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":17}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":29}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":75}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":56}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":46}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":5}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":0}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":72}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":17}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":76}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":6}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":46}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":5}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":28}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":50}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":20}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":174}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":6}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":3}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":16}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":1}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":0}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":39}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":18}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":22}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":20}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":27}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":21}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":59}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":36}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":6}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":4}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":1}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":0}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":39}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":18}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":23}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":27}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":21}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":68}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":4}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":1}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":0}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":39}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":18}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":23}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":31}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":21}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":69}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":4}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":1}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":0}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":39}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":18}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":21}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":32}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":21}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":23}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":53}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":64}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":50}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":9}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":6}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":4}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":1}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":0}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":47}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":18}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":21}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":30}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":21}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":23}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":58}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":72}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":50}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":9}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":6}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":4}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":1}},\"368\":{\"start\":{\"line\":369,\"column\":0},\"end\":{\"line\":369,\"column\":0}},\"369\":{\"start\":{\"line\":370,\"column\":0},\"end\":{\"line\":370,\"column\":41}},\"370\":{\"start\":{\"line\":371,\"column\":0},\"end\":{\"line\":371,\"column\":18}},\"371\":{\"start\":{\"line\":372,\"column\":0},\"end\":{\"line\":372,\"column\":23}},\"372\":{\"start\":{\"line\":373,\"column\":0},\"end\":{\"line\":373,\"column\":26}},\"373\":{\"start\":{\"line\":374,\"column\":0},\"end\":{\"line\":374,\"column\":36}},\"374\":{\"start\":{\"line\":375,\"column\":0},\"end\":{\"line\":375,\"column\":57}},\"375\":{\"start\":{\"line\":376,\"column\":0},\"end\":{\"line\":376,\"column\":60}},\"376\":{\"start\":{\"line\":377,\"column\":0},\"end\":{\"line\":377,\"column\":72}},\"377\":{\"start\":{\"line\":378,\"column\":0},\"end\":{\"line\":378,\"column\":82}},\"378\":{\"start\":{\"line\":379,\"column\":0},\"end\":{\"line\":379,\"column\":32}},\"379\":{\"start\":{\"line\":380,\"column\":0},\"end\":{\"line\":380,\"column\":92}},\"380\":{\"start\":{\"line\":381,\"column\":0},\"end\":{\"line\":381,\"column\":57}},\"381\":{\"start\":{\"line\":382,\"column\":0},\"end\":{\"line\":382,\"column\":60}},\"382\":{\"start\":{\"line\":383,\"column\":0},\"end\":{\"line\":383,\"column\":38}},\"383\":{\"start\":{\"line\":384,\"column\":0},\"end\":{\"line\":384,\"column\":84}},\"384\":{\"start\":{\"line\":385,\"column\":0},\"end\":{\"line\":385,\"column\":17}},\"385\":{\"start\":{\"line\":386,\"column\":0},\"end\":{\"line\":386,\"column\":56}},\"386\":{\"start\":{\"line\":387,\"column\":0},\"end\":{\"line\":387,\"column\":5}},\"387\":{\"start\":{\"line\":388,\"column\":0},\"end\":{\"line\":388,\"column\":37}},\"388\":{\"start\":{\"line\":389,\"column\":0},\"end\":{\"line\":389,\"column\":36}},\"389\":{\"start\":{\"line\":390,\"column\":0},\"end\":{\"line\":390,\"column\":29}},\"390\":{\"start\":{\"line\":391,\"column\":0},\"end\":{\"line\":391,\"column\":34}},\"391\":{\"start\":{\"line\":392,\"column\":0},\"end\":{\"line\":392,\"column\":24}},\"392\":{\"start\":{\"line\":393,\"column\":0},\"end\":{\"line\":393,\"column\":54}},\"393\":{\"start\":{\"line\":394,\"column\":0},\"end\":{\"line\":394,\"column\":79}},\"394\":{\"start\":{\"line\":395,\"column\":0},\"end\":{\"line\":395,\"column\":67}},\"395\":{\"start\":{\"line\":396,\"column\":0},\"end\":{\"line\":396,\"column\":78}},\"396\":{\"start\":{\"line\":397,\"column\":0},\"end\":{\"line\":397,\"column\":0}},\"397\":{\"start\":{\"line\":398,\"column\":0},\"end\":{\"line\":398,\"column\":12}},\"398\":{\"start\":{\"line\":399,\"column\":0},\"end\":{\"line\":399,\"column\":74}},\"399\":{\"start\":{\"line\":400,\"column\":0},\"end\":{\"line\":400,\"column\":14}},\"400\":{\"start\":{\"line\":401,\"column\":0},\"end\":{\"line\":401,\"column\":28}},\"401\":{\"start\":{\"line\":402,\"column\":0},\"end\":{\"line\":402,\"column\":38}},\"402\":{\"start\":{\"line\":403,\"column\":0},\"end\":{\"line\":403,\"column\":30}},\"403\":{\"start\":{\"line\":404,\"column\":0},\"end\":{\"line\":404,\"column\":8}},\"404\":{\"start\":{\"line\":405,\"column\":0},\"end\":{\"line\":405,\"column\":6}},\"405\":{\"start\":{\"line\":406,\"column\":0},\"end\":{\"line\":406,\"column\":5}},\"406\":{\"start\":{\"line\":407,\"column\":0},\"end\":{\"line\":407,\"column\":1}},\"407\":{\"start\":{\"line\":408,\"column\":0},\"end\":{\"line\":408,\"column\":0}},\"408\":{\"start\":{\"line\":409,\"column\":0},\"end\":{\"line\":409,\"column\":77}},\"409\":{\"start\":{\"line\":410,\"column\":0},\"end\":{\"line\":410,\"column\":38}},\"410\":{\"start\":{\"line\":411,\"column\":0},\"end\":{\"line\":411,\"column\":18}},\"411\":{\"start\":{\"line\":412,\"column\":0},\"end\":{\"line\":412,\"column\":17}},\"412\":{\"start\":{\"line\":413,\"column\":0},\"end\":{\"line\":413,\"column\":39}},\"413\":{\"start\":{\"line\":414,\"column\":0},\"end\":{\"line\":414,\"column\":75}},\"414\":{\"start\":{\"line\":415,\"column\":0},\"end\":{\"line\":415,\"column\":56}},\"415\":{\"start\":{\"line\":416,\"column\":0},\"end\":{\"line\":416,\"column\":46}},\"416\":{\"start\":{\"line\":417,\"column\":0},\"end\":{\"line\":417,\"column\":5}},\"417\":{\"start\":{\"line\":418,\"column\":0},\"end\":{\"line\":418,\"column\":0}},\"418\":{\"start\":{\"line\":419,\"column\":0},\"end\":{\"line\":419,\"column\":46}},\"419\":{\"start\":{\"line\":420,\"column\":0},\"end\":{\"line\":420,\"column\":53}},\"420\":{\"start\":{\"line\":421,\"column\":0},\"end\":{\"line\":421,\"column\":19}},\"421\":{\"start\":{\"line\":422,\"column\":0},\"end\":{\"line\":422,\"column\":78}},\"422\":{\"start\":{\"line\":423,\"column\":0},\"end\":{\"line\":423,\"column\":8}},\"423\":{\"start\":{\"line\":424,\"column\":0},\"end\":{\"line\":424,\"column\":48}},\"424\":{\"start\":{\"line\":425,\"column\":0},\"end\":{\"line\":425,\"column\":7}},\"425\":{\"start\":{\"line\":426,\"column\":0},\"end\":{\"line\":426,\"column\":56}},\"426\":{\"start\":{\"line\":427,\"column\":0},\"end\":{\"line\":427,\"column\":67}},\"427\":{\"start\":{\"line\":428,\"column\":0},\"end\":{\"line\":428,\"column\":48}},\"428\":{\"start\":{\"line\":429,\"column\":0},\"end\":{\"line\":429,\"column\":7}},\"429\":{\"start\":{\"line\":430,\"column\":0},\"end\":{\"line\":430,\"column\":5}},\"430\":{\"start\":{\"line\":431,\"column\":0},\"end\":{\"line\":431,\"column\":0}},\"431\":{\"start\":{\"line\":432,\"column\":0},\"end\":{\"line\":432,\"column\":36}},\"432\":{\"start\":{\"line\":433,\"column\":0},\"end\":{\"line\":433,\"column\":22}},\"433\":{\"start\":{\"line\":434,\"column\":0},\"end\":{\"line\":434,\"column\":29}},\"434\":{\"start\":{\"line\":435,\"column\":0},\"end\":{\"line\":435,\"column\":4}},\"435\":{\"start\":{\"line\":436,\"column\":0},\"end\":{\"line\":436,\"column\":10}},\"436\":{\"start\":{\"line\":437,\"column\":0},\"end\":{\"line\":437,\"column\":12}},\"437\":{\"start\":{\"line\":438,\"column\":0},\"end\":{\"line\":438,\"column\":25}},\"438\":{\"start\":{\"line\":439,\"column\":0},\"end\":{\"line\":439,\"column\":80}},\"439\":{\"start\":{\"line\":440,\"column\":0},\"end\":{\"line\":440,\"column\":6}},\"440\":{\"start\":{\"line\":441,\"column\":0},\"end\":{\"line\":441,\"column\":22}},\"441\":{\"start\":{\"line\":442,\"column\":0},\"end\":{\"line\":442,\"column\":63}},\"442\":{\"start\":{\"line\":443,\"column\":0},\"end\":{\"line\":443,\"column\":6}},\"443\":{\"start\":{\"line\":444,\"column\":0},\"end\":{\"line\":444,\"column\":4}},\"444\":{\"start\":{\"line\":445,\"column\":0},\"end\":{\"line\":445,\"column\":1}},\"445\":{\"start\":{\"line\":446,\"column\":0},\"end\":{\"line\":446,\"column\":0}},\"446\":{\"start\":{\"line\":447,\"column\":0},\"end\":{\"line\":447,\"column\":46}},\"447\":{\"start\":{\"line\":448,\"column\":0},\"end\":{\"line\":448,\"column\":18}},\"448\":{\"start\":{\"line\":449,\"column\":0},\"end\":{\"line\":449,\"column\":23}},\"449\":{\"start\":{\"line\":450,\"column\":0},\"end\":{\"line\":450,\"column\":41}},\"450\":{\"start\":{\"line\":451,\"column\":0},\"end\":{\"line\":451,\"column\":79}},\"451\":{\"start\":{\"line\":452,\"column\":0},\"end\":{\"line\":452,\"column\":1}},\"452\":{\"start\":{\"line\":453,\"column\":0},\"end\":{\"line\":453,\"column\":0}},\"453\":{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":454,\"column\":51}},\"454\":{\"start\":{\"line\":455,\"column\":0},\"end\":{\"line\":455,\"column\":15}},\"455\":{\"start\":{\"line\":456,\"column\":0},\"end\":{\"line\":456,\"column\":10}},\"456\":{\"start\":{\"line\":457,\"column\":0},\"end\":{\"line\":457,\"column\":41}},\"457\":{\"start\":{\"line\":458,\"column\":0},\"end\":{\"line\":458,\"column\":56}},\"458\":{\"start\":{\"line\":459,\"column\":0},\"end\":{\"line\":459,\"column\":47}},\"459\":{\"start\":{\"line\":460,\"column\":0},\"end\":{\"line\":460,\"column\":66}},\"460\":{\"start\":{\"line\":461,\"column\":0},\"end\":{\"line\":461,\"column\":56}},\"461\":{\"start\":{\"line\":462,\"column\":0},\"end\":{\"line\":462,\"column\":35}},\"462\":{\"start\":{\"line\":463,\"column\":0},\"end\":{\"line\":463,\"column\":34}},\"463\":{\"start\":{\"line\":464,\"column\":0},\"end\":{\"line\":464,\"column\":24}},\"464\":{\"start\":{\"line\":465,\"column\":0},\"end\":{\"line\":465,\"column\":4}},\"465\":{\"start\":{\"line\":466,\"column\":0},\"end\":{\"line\":466,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":6,\"35\":6,\"36\":6,\"37\":6,\"38\":6,\"39\":6,\"40\":6,\"41\":1,\"42\":5,\"43\":5,\"44\":5,\"45\":5,\"46\":5,\"47\":5,\"48\":5,\"49\":5,\"50\":5,\"51\":5,\"52\":5,\"53\":1,\"54\":5,\"55\":5,\"56\":5,\"57\":5,\"58\":5,\"59\":5,\"60\":5,\"61\":5,\"62\":0,\"63\":0,\"64\":5,\"65\":5,\"66\":5,\"67\":0,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":6,\"75\":6,\"76\":6,\"77\":6,\"78\":6,\"79\":6,\"80\":6,\"81\":6,\"82\":1,\"83\":1,\"84\":1,\"85\":6,\"86\":6,\"87\":6,\"88\":6,\"89\":6,\"90\":1,\"91\":6,\"92\":6,\"93\":6,\"94\":6,\"95\":6,\"96\":6,\"97\":6,\"98\":6,\"99\":6,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":65,\"108\":65,\"109\":65,\"110\":65,\"111\":65,\"112\":65,\"113\":65,\"114\":1,\"115\":1,\"116\":1,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":1,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":1,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":1,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":1,\"181\":4,\"182\":4,\"183\":4,\"184\":4,\"185\":4,\"186\":4,\"187\":4,\"188\":4,\"189\":4,\"190\":4,\"191\":4,\"192\":4,\"193\":4,\"194\":4,\"195\":4,\"196\":4,\"197\":4,\"198\":1,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":1,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":1,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":1,\"247\":1,\"248\":1,\"249\":3,\"250\":3,\"251\":3,\"252\":3,\"253\":3,\"254\":1,\"255\":1,\"256\":1,\"257\":1,\"258\":1,\"259\":1,\"260\":1,\"261\":1,\"262\":1,\"263\":1,\"264\":1,\"265\":1,\"266\":1,\"267\":1,\"268\":0,\"269\":0,\"270\":1,\"271\":1,\"272\":1,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":1,\"278\":1,\"279\":1,\"280\":0,\"281\":0,\"282\":0,\"283\":0,\"284\":1,\"285\":1,\"286\":1,\"287\":1,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":0,\"307\":0,\"308\":0,\"309\":0,\"310\":1,\"311\":1,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":1,\"323\":1,\"324\":1,\"325\":1,\"326\":1,\"327\":1,\"328\":1,\"329\":1,\"330\":1,\"331\":1,\"332\":1,\"333\":0,\"334\":0,\"335\":0,\"336\":0,\"337\":0,\"338\":0,\"339\":0,\"340\":1,\"341\":1,\"342\":1,\"343\":1,\"344\":1,\"345\":1,\"346\":1,\"347\":1,\"348\":0,\"349\":0,\"350\":1,\"351\":1,\"352\":1,\"353\":1,\"354\":1,\"355\":1,\"356\":1,\"357\":1,\"358\":1,\"359\":1,\"360\":1,\"361\":1,\"362\":0,\"363\":0,\"364\":1,\"365\":1,\"366\":1,\"367\":1,\"368\":1,\"369\":1,\"370\":1,\"371\":1,\"372\":1,\"373\":1,\"374\":1,\"375\":1,\"376\":1,\"377\":1,\"378\":1,\"379\":1,\"380\":1,\"381\":1,\"382\":1,\"383\":1,\"384\":1,\"385\":1,\"386\":1,\"387\":1,\"388\":1,\"389\":1,\"390\":1,\"391\":1,\"392\":1,\"393\":1,\"394\":1,\"395\":1,\"396\":1,\"397\":1,\"398\":1,\"399\":1,\"400\":1,\"401\":1,\"402\":1,\"403\":1,\"404\":1,\"405\":1,\"406\":1,\"407\":1,\"408\":1,\"409\":1,\"410\":0,\"411\":0,\"412\":0,\"413\":0,\"414\":0,\"415\":0,\"416\":0,\"417\":0,\"418\":0,\"419\":0,\"420\":0,\"421\":0,\"422\":0,\"423\":0,\"424\":0,\"425\":0,\"426\":0,\"427\":0,\"428\":0,\"429\":0,\"430\":0,\"431\":0,\"432\":0,\"433\":0,\"434\":0,\"435\":0,\"436\":0,\"437\":0,\"438\":0,\"439\":0,\"440\":0,\"441\":0,\"442\":0,\"443\":0,\"444\":0,\"445\":1,\"446\":1,\"447\":0,\"448\":0,\"449\":0,\"450\":0,\"451\":0,\"452\":1,\"453\":1,\"454\":1,\"455\":1,\"456\":1,\"457\":1,\"458\":1,\"459\":0,\"460\":0,\"461\":0,\"462\":0,\"463\":1,\"464\":1,\"465\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"locations\":[{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":41,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"locations\":[{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":53,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"locations\":[{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":68,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":62,\"loc\":{\"start\":{\"line\":62,\"column\":33},\"end\":{\"line\":64,\"column\":7}},\"locations\":[{\"start\":{\"line\":62,\"column\":33},\"end\":{\"line\":64,\"column\":7}}]},\"4\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":-1},\"end\":{\"line\":68,\"column\":1}},\"locations\":[{\"start\":{\"line\":68,\"column\":-1},\"end\":{\"line\":68,\"column\":1}}]},\"5\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"locations\":[{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":84,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":43},\"end\":{\"line\":83,\"column\":3}},\"locations\":[{\"start\":{\"line\":74,\"column\":43},\"end\":{\"line\":83,\"column\":3}}]},\"7\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":90,\"column\":1}},\"locations\":[{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":90,\"column\":1}}]},\"8\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":21},\"end\":{\"line\":88,\"column\":69}},\"locations\":[{\"start\":{\"line\":88,\"column\":21},\"end\":{\"line\":88,\"column\":69}}]},\"9\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"locations\":[{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":100,\"column\":1}}]},\"10\":{\"type\":\"branch\",\"line\":97,\"loc\":{\"start\":{\"line\":97,\"column\":4},\"end\":{\"line\":98,\"column\":72}},\"locations\":[{\"start\":{\"line\":97,\"column\":4},\"end\":{\"line\":98,\"column\":72}}]},\"11\":{\"type\":\"branch\",\"line\":102,\"loc\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"locations\":[{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":116,\"column\":1}}]},\"12\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":23},\"end\":{\"line\":115,\"column\":3}},\"locations\":[{\"start\":{\"line\":107,\"column\":23},\"end\":{\"line\":115,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":182,\"loc\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":198,\"column\":1}},\"locations\":[{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":198,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":15},\"end\":{\"line\":186,\"column\":27}},\"locations\":[{\"start\":{\"line\":186,\"column\":15},\"end\":{\"line\":186,\"column\":27}}]},\"15\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":37},\"end\":{\"line\":189,\"column\":37}},\"locations\":[{\"start\":{\"line\":188,\"column\":37},\"end\":{\"line\":189,\"column\":37}}]},\"16\":{\"type\":\"branch\",\"line\":189,\"loc\":{\"start\":{\"line\":189,\"column\":37},\"end\":{\"line\":190,\"column\":59}},\"locations\":[{\"start\":{\"line\":189,\"column\":37},\"end\":{\"line\":190,\"column\":59}}]},\"17\":{\"type\":\"branch\",\"line\":191,\"loc\":{\"start\":{\"line\":191,\"column\":32},\"end\":{\"line\":192,\"column\":48}},\"locations\":[{\"start\":{\"line\":191,\"column\":32},\"end\":{\"line\":192,\"column\":48}}]},\"18\":{\"type\":\"branch\",\"line\":193,\"loc\":{\"start\":{\"line\":193,\"column\":32},\"end\":{\"line\":194,\"column\":47}},\"locations\":[{\"start\":{\"line\":193,\"column\":32},\"end\":{\"line\":194,\"column\":47}}]},\"19\":{\"type\":\"branch\",\"line\":195,\"loc\":{\"start\":{\"line\":195,\"column\":33},\"end\":{\"line\":195,\"column\":63}},\"locations\":[{\"start\":{\"line\":195,\"column\":33},\"end\":{\"line\":195,\"column\":63}}]},\"20\":{\"type\":\"branch\",\"line\":249,\"loc\":{\"start\":{\"line\":249,\"column\":7},\"end\":{\"line\":254,\"column\":1}},\"locations\":[{\"start\":{\"line\":249,\"column\":7},\"end\":{\"line\":254,\"column\":1}}]},\"21\":{\"type\":\"branch\",\"line\":264,\"loc\":{\"start\":{\"line\":264,\"column\":7},\"end\":{\"line\":286,\"column\":1}},\"locations\":[{\"start\":{\"line\":264,\"column\":7},\"end\":{\"line\":286,\"column\":1}}]},\"22\":{\"type\":\"branch\",\"line\":280,\"loc\":{\"start\":{\"line\":280,\"column\":61},\"end\":{\"line\":284,\"column\":3}},\"locations\":[{\"start\":{\"line\":280,\"column\":61},\"end\":{\"line\":284,\"column\":3}}]},\"23\":{\"type\":\"branch\",\"line\":324,\"loc\":{\"start\":{\"line\":324,\"column\":7},\"end\":{\"line\":331,\"column\":1}},\"locations\":[{\"start\":{\"line\":324,\"column\":7},\"end\":{\"line\":331,\"column\":1}}]},\"24\":{\"type\":\"branch\",\"line\":329,\"loc\":{\"start\":{\"line\":329,\"column\":19},\"end\":{\"line\":329,\"column\":66}},\"locations\":[{\"start\":{\"line\":329,\"column\":19},\"end\":{\"line\":329,\"column\":66}}]},\"25\":{\"type\":\"branch\",\"line\":342,\"loc\":{\"start\":{\"line\":342,\"column\":7},\"end\":{\"line\":354,\"column\":1}},\"locations\":[{\"start\":{\"line\":342,\"column\":7},\"end\":{\"line\":354,\"column\":1}}]},\"26\":{\"type\":\"branch\",\"line\":347,\"loc\":{\"start\":{\"line\":347,\"column\":14},\"end\":{\"line\":351,\"column\":8}},\"locations\":[{\"start\":{\"line\":347,\"column\":14},\"end\":{\"line\":351,\"column\":8}}]},\"27\":{\"type\":\"branch\",\"line\":356,\"loc\":{\"start\":{\"line\":356,\"column\":7},\"end\":{\"line\":368,\"column\":1}},\"locations\":[{\"start\":{\"line\":356,\"column\":7},\"end\":{\"line\":368,\"column\":1}}]},\"28\":{\"type\":\"branch\",\"line\":361,\"loc\":{\"start\":{\"line\":361,\"column\":14},\"end\":{\"line\":365,\"column\":8}},\"locations\":[{\"start\":{\"line\":361,\"column\":14},\"end\":{\"line\":365,\"column\":8}}]},\"29\":{\"type\":\"branch\",\"line\":370,\"loc\":{\"start\":{\"line\":370,\"column\":7},\"end\":{\"line\":407,\"column\":1}},\"locations\":[{\"start\":{\"line\":370,\"column\":7},\"end\":{\"line\":407,\"column\":1}}]},\"30\":{\"type\":\"branch\",\"line\":385,\"loc\":{\"start\":{\"line\":385,\"column\":6},\"end\":{\"line\":385,\"column\":17}},\"locations\":[{\"start\":{\"line\":385,\"column\":6},\"end\":{\"line\":385,\"column\":17}}]},\"31\":{\"type\":\"branch\",\"line\":376,\"loc\":{\"start\":{\"line\":376,\"column\":32},\"end\":{\"line\":376,\"column\":58}},\"locations\":[{\"start\":{\"line\":376,\"column\":32},\"end\":{\"line\":376,\"column\":58}}]},\"32\":{\"type\":\"branch\",\"line\":377,\"loc\":{\"start\":{\"line\":377,\"column\":38},\"end\":{\"line\":377,\"column\":70}},\"locations\":[{\"start\":{\"line\":377,\"column\":38},\"end\":{\"line\":377,\"column\":70}}]},\"33\":{\"type\":\"branch\",\"line\":388,\"loc\":{\"start\":{\"line\":388,\"column\":20},\"end\":{\"line\":406,\"column\":3}},\"locations\":[{\"start\":{\"line\":388,\"column\":20},\"end\":{\"line\":406,\"column\":3}}]},\"34\":{\"type\":\"branch\",\"line\":392,\"loc\":{\"start\":{\"line\":392,\"column\":8},\"end\":{\"line\":392,\"column\":24}},\"locations\":[{\"start\":{\"line\":392,\"column\":8},\"end\":{\"line\":392,\"column\":24}}]},\"35\":{\"type\":\"branch\",\"line\":454,\"loc\":{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":466,\"column\":1}},\"locations\":[{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":466,\"column\":1}}]},\"36\":{\"type\":\"branch\",\"line\":457,\"loc\":{\"start\":{\"line\":457,\"column\":38},\"end\":{\"line\":458,\"column\":53}},\"locations\":[{\"start\":{\"line\":457,\"column\":38},\"end\":{\"line\":458,\"column\":53}}]},\"37\":{\"type\":\"branch\",\"line\":458,\"loc\":{\"start\":{\"line\":458,\"column\":53},\"end\":{\"line\":459,\"column\":44}},\"locations\":[{\"start\":{\"line\":458,\"column\":53},\"end\":{\"line\":459,\"column\":44}}]},\"38\":{\"type\":\"branch\",\"line\":459,\"loc\":{\"start\":{\"line\":459,\"column\":44},\"end\":{\"line\":464,\"column\":23}},\"locations\":[{\"start\":{\"line\":459,\"column\":44},\"end\":{\"line\":464,\"column\":23}}]}},\"b\":{\"0\":[6],\"1\":[5],\"2\":[5],\"3\":[0],\"4\":[0],\"5\":[1],\"6\":[6],\"7\":[6],\"8\":[65],\"9\":[6],\"10\":[390],\"11\":[1],\"12\":[65],\"13\":[4],\"14\":[0],\"15\":[0],\"16\":[0],\"17\":[0],\"18\":[0],\"19\":[0],\"20\":[3],\"21\":[1],\"22\":[0],\"23\":[1],\"24\":[1],\"25\":[1],\"26\":[1],\"27\":[1],\"28\":[1],\"29\":[1],\"30\":[0],\"31\":[1],\"32\":[1],\"33\":[1],\"34\":[0],\"35\":[1],\"36\":[0],\"37\":[0],\"38\":[0]},\"fnMap\":{\"0\":{\"name\":\"substrateHeaderToHeader\",\"decl\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"loc\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"line\":35},\"1\":{\"name\":\"wrapBlock\",\"decl\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"loc\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"line\":43},\"2\":{\"name\":\"getTimestamp\",\"decl\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"loc\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"line\":55},\"3\":{\"name\":\"wrapExtrinsics\",\"decl\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"loc\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"line\":70},\"4\":{\"name\":\"getExtrinsicSuccess\",\"decl\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":90,\"column\":1}},\"loc\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":90,\"column\":1}},\"line\":86},\"5\":{\"name\":\"filterExtrinsicEvents\",\"decl\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"loc\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":100,\"column\":1}},\"line\":92},\"6\":{\"name\":\"wrapEvents\",\"decl\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"loc\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":116,\"column\":1}},\"line\":102},\"7\":{\"name\":\"checkSpecRange\",\"decl\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":129,\"column\":1}},\"loc\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":129,\"column\":1}},\"line\":118},\"8\":{\"name\":\"filterBlock\",\"decl\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":147,\"column\":1}},\"loc\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":147,\"column\":1}},\"line\":131},\"9\":{\"name\":\"filterBlockModulo\",\"decl\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":156,\"column\":1}},\"loc\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":156,\"column\":1}},\"line\":149},\"10\":{\"name\":\"filterBlockTimestamp\",\"decl\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":180,\"column\":1}},\"loc\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":180,\"column\":1}},\"line\":158},\"11\":{\"name\":\"filterExtrinsic\",\"decl\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":198,\"column\":1}},\"loc\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":198,\"column\":1}},\"line\":182},\"12\":{\"name\":\"filterExtrinsics\",\"decl\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":215,\"column\":1}},\"loc\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":215,\"column\":1}},\"line\":200},\"13\":{\"name\":\"filterEvent\",\"decl\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":229,\"column\":1}},\"loc\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":229,\"column\":1}},\"line\":217},\"14\":{\"name\":\"filterEvents\",\"decl\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":246,\"column\":1}},\"loc\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":246,\"column\":1}},\"line\":231},\"15\":{\"name\":\"prefetchMetadata\",\"decl\":{\"start\":{\"line\":249,\"column\":7},\"end\":{\"line\":254,\"column\":1}},\"loc\":{\"start\":{\"line\":249,\"column\":7},\"end\":{\"line\":254,\"column\":1}},\"line\":249},\"16\":{\"name\":\"getBlockByHeight\",\"decl\":{\"start\":{\"line\":264,\"column\":7},\"end\":{\"line\":286,\"column\":1}},\"loc\":{\"start\":{\"line\":264,\"column\":7},\"end\":{\"line\":286,\"column\":1}},\"line\":264},\"17\":{\"name\":\"getHeaderByHeight\",\"decl\":{\"start\":{\"line\":288,\"column\":7},\"end\":{\"line\":310,\"column\":1}},\"loc\":{\"start\":{\"line\":288,\"column\":7},\"end\":{\"line\":310,\"column\":1}},\"line\":288},\"18\":{\"name\":\"fetchBlocksRange\",\"decl\":{\"start\":{\"line\":312,\"column\":7},\"end\":{\"line\":322,\"column\":1}},\"loc\":{\"start\":{\"line\":312,\"column\":7},\"end\":{\"line\":322,\"column\":1}},\"line\":312},\"19\":{\"name\":\"fetchBlocksArray\",\"decl\":{\"start\":{\"line\":324,\"column\":7},\"end\":{\"line\":331,\"column\":1}},\"loc\":{\"start\":{\"line\":324,\"column\":7},\"end\":{\"line\":331,\"column\":1}},\"line\":324},\"20\":{\"name\":\"fetchHeaderArray\",\"decl\":{\"start\":{\"line\":333,\"column\":7},\"end\":{\"line\":340,\"column\":1}},\"loc\":{\"start\":{\"line\":333,\"column\":7},\"end\":{\"line\":340,\"column\":1}},\"line\":333},\"21\":{\"name\":\"fetchEventsRange\",\"decl\":{\"start\":{\"line\":342,\"column\":7},\"end\":{\"line\":354,\"column\":1}},\"loc\":{\"start\":{\"line\":342,\"column\":7},\"end\":{\"line\":354,\"column\":1}},\"line\":342},\"22\":{\"name\":\"fetchRuntimeVersionRange\",\"decl\":{\"start\":{\"line\":356,\"column\":7},\"end\":{\"line\":368,\"column\":1}},\"loc\":{\"start\":{\"line\":356,\"column\":7},\"end\":{\"line\":368,\"column\":1}},\"line\":356},\"23\":{\"name\":\"fetchBlocksBatches\",\"decl\":{\"start\":{\"line\":370,\"column\":7},\"end\":{\"line\":407,\"column\":1}},\"loc\":{\"start\":{\"line\":370,\"column\":7},\"end\":{\"line\":407,\"column\":1}},\"line\":370},\"24\":{\"name\":\"getHeader\",\"decl\":{\"start\":{\"line\":399,\"column\":17},\"end\":{\"line\":399,\"column\":73}},\"loc\":{\"start\":{\"line\":399,\"column\":17},\"end\":{\"line\":399,\"column\":73}},\"line\":399},\"25\":{\"name\":\"fetchLightBlock\",\"decl\":{\"start\":{\"line\":410,\"column\":7},\"end\":{\"line\":445,\"column\":1}},\"loc\":{\"start\":{\"line\":410,\"column\":7},\"end\":{\"line\":445,\"column\":1}},\"line\":410},\"26\":{\"name\":\"fetchBlocksBatchesLight\",\"decl\":{\"start\":{\"line\":447,\"column\":7},\"end\":{\"line\":452,\"column\":1}},\"loc\":{\"start\":{\"line\":447,\"column\":7},\"end\":{\"line\":452,\"column\":1}},\"line\":447},\"27\":{\"name\":\"calcInterval\",\"decl\":{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":466,\"column\":1}},\"loc\":{\"start\":{\"line\":454,\"column\":0},\"end\":{\"line\":466,\"column\":1}},\"line\":454}},\"f\":{\"0\":6,\"1\":5,\"2\":5,\"3\":1,\"4\":6,\"5\":6,\"6\":1,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":4,\"12\":0,\"13\":0,\"14\":0,\"15\":3,\"16\":1,\"17\":0,\"18\":0,\"19\":1,\"20\":0,\"21\":1,\"22\":1,\"23\":1,\"24\":0,\"25\":0,\"26\":0,\"27\":1}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/utils/test.utils.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/utils/test.utils.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":30}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":65}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":59}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":50}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":39}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":69}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":64}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":63}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":54}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":49}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":28}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":14}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":21}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":29}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":27}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":26}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":6}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":37}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":10}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":22}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":30}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":25}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":31}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":60}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":55}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":19}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":34}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":4}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":38}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":9}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":49}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":14}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":7}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":4}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":2}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":28}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":14}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":21}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":29}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":27}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":26}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":27}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":53}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":8}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":15}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":22}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":20}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":19}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":4}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":10}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":28}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":16}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":7}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":28}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":29}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":8}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":7}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":36}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":26}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":8}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":7}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":42}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":26}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":8}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":7}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":24}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":23}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":8}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":6}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":80}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":4}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":33}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":21}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":14}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":28}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":26}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":25}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":30}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":44}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":14}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":25}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":35}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":19}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":12}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":19}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":26}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":24}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":23}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":8}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":31}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":18}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":17}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":6}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":20}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":15}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":0}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":40}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":19}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":13}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":20,\"17\":20,\"18\":20,\"19\":20,\"20\":20,\"21\":20,\"22\":20,\"23\":20,\"24\":20,\"25\":20,\"26\":20,\"27\":20,\"28\":20,\"29\":20,\"30\":20,\"31\":20,\"32\":20,\"33\":20,\"34\":20,\"35\":20,\"36\":20,\"37\":20,\"38\":20,\"39\":20,\"40\":1,\"41\":20,\"42\":20,\"43\":20,\"44\":20,\"45\":20,\"46\":20,\"47\":20,\"48\":20,\"49\":20,\"50\":20,\"51\":20,\"52\":20,\"53\":20,\"54\":20,\"55\":20,\"56\":20,\"57\":20,\"58\":20,\"59\":20,\"60\":20,\"61\":20,\"62\":20,\"63\":20,\"64\":20,\"65\":20,\"66\":20,\"67\":20,\"68\":20,\"69\":20,\"70\":20,\"71\":20,\"72\":20,\"73\":20,\"74\":20,\"75\":20,\"76\":20,\"77\":20,\"78\":20,\"79\":1,\"80\":1,\"81\":20,\"82\":20,\"83\":20,\"84\":20,\"85\":20,\"86\":20,\"87\":20,\"88\":20,\"89\":20,\"90\":20,\"91\":20,\"92\":20,\"93\":20,\"94\":20,\"95\":20,\"96\":20,\"97\":20,\"98\":20,\"99\":20,\"100\":20,\"101\":20,\"102\":20,\"103\":20,\"104\":20,\"105\":20,\"106\":20,\"107\":20,\"108\":20},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":21},\"end\":{\"line\":40,\"column\":2}},\"locations\":[{\"start\":{\"line\":16,\"column\":21},\"end\":{\"line\":40,\"column\":2}}]},\"1\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"locations\":[{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":79,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":81,\"loc\":{\"start\":{\"line\":81,\"column\":7},\"end\":{\"line\":109,\"column\":1}},\"locations\":[{\"start\":{\"line\":81,\"column\":7},\"end\":{\"line\":109,\"column\":1}}]}},\"b\":{\"0\":[20],\"1\":[20],\"2\":[20]},\"fnMap\":{\"0\":{\"name\":\"mockInstance\",\"decl\":{\"start\":{\"line\":16,\"column\":21},\"end\":{\"line\":40,\"column\":2}},\"loc\":{\"start\":{\"line\":16,\"column\":21},\"end\":{\"line\":40,\"column\":2}},\"line\":16},\"1\":{\"name\":\"mockRegister\",\"decl\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"loc\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"line\":42},\"2\":{\"name\":\"prepareApp\",\"decl\":{\"start\":{\"line\":81,\"column\":7},\"end\":{\"line\":109,\"column\":1}},\"loc\":{\"start\":{\"line\":81,\"column\":7},\"end\":{\"line\":109,\"column\":1}},\"line\":81}},\"f\":{\"0\":20,\"1\":20,\"2\":20}},\"/Users/scotttwiname/Projects/subql-main/packages/node/src/yargs.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/node/src/yargs.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":54}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":42}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":22}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":80}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":66}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":66}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":25}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":4}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":25}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":80}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":66}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":72}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":28}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":4}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":42}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":80}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":66}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":66}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":37}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":4}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":3}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":1,\"12\":1,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":1,\"18\":1,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":1,\"24\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"initTesting\",\"decl\":{\"start\":{\"line\":7,\"column\":15},\"end\":{\"line\":12,\"column\":3}},\"loc\":{\"start\":{\"line\":7,\"column\":15},\"end\":{\"line\":12,\"column\":3}},\"line\":7},\"1\":{\"name\":\"initForceClean\",\"decl\":{\"start\":{\"line\":13,\"column\":18},\"end\":{\"line\":18,\"column\":3}},\"loc\":{\"start\":{\"line\":13,\"column\":18},\"end\":{\"line\":18,\"column\":3}},\"line\":13},\"2\":{\"name\":\"initReindex\",\"decl\":{\"start\":{\"line\":19,\"column\":15},\"end\":{\"line\":24,\"column\":3}},\"loc\":{\"start\":{\"line\":19,\"column\":15},\"end\":{\"line\":24,\"column\":3}},\"line\":19}},\"f\":{\"0\":0,\"1\":0,\"2\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/global.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/global.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":61}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":30}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":14}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":16}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":28}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":21}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":21}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":24}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":58}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":15,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/index.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":29}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":26}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":29}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":7,\"column\":29}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":7,\"column\":29}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":7,\"column\":29}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":7,\"column\":29}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/interfaces.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/interfaces.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":102}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":77}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":54}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":53}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":9,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/multichain/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/multichain/index.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":24}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/multichain/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/multichain/types.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":37}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":44}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":22}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":21}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":19}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":10,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":10,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":10,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":10,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/index.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":28}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":26}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":6,\"column\":26}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":6,\"column\":26}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":6,\"column\":26}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":6,\"column\":26}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/readers/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/readers/index.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":25}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/readers/reader.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/readers/reader.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":47}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":29}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":16}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":2}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":25}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":51}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":46}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":53}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":27}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":15,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/types.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":95}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":3}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":54}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":94}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":77}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":58}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":3}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":58}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":45}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":67}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":5}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":45}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":19}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":5}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":22}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":5}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":49}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":19}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":21}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":5}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":19}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":5}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":39}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":19}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":5}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":16}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":5}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":93}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":19}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":21}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":5}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":22}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":5}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":44}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":19}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":23}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":5}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":46}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":26}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":5}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":24}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":5}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":63}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":14}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":24}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":5}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":32}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":5}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":44}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":14}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":26}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":5}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":34}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":5}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":56}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":4}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":102}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":14}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":14}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":5}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":22}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":5}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":67}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":4}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":149}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":14}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":17}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":5}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":29}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":5}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":63}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":4}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":98}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":107}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":134}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":14}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":16}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":5}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":27}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":1}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":3}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":70}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":13}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":34}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":3}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":69}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":5}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":38}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":4}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":88}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":19}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":13}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":29}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":13}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":94}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":13}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":37}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":7}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":18}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":1}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":0}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":31}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":15}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":61}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":51}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":41}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":2}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":41}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":15}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":22}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":1}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":38}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":22}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":23}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":22}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":19}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":25}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":19}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":1}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":3}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":54}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":13}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":3}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":39}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":5}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":101}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":4}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":102}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":101}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":70}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":69}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":4}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":30}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":5}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":30}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":0}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":5}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":57}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":59}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":4}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":19}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":5}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":33}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":0}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":5}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":68}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":32}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":13}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":22}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":5}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":52}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":1}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":0}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":3}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":36}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":13}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":3}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":32}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":5}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":75}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":19}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":5}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":15}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":1}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":63}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":0}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":43}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":16}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":37}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":69}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":1}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":0}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":39}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":17}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":41}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":187,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":187,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":187,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":187,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/versioned/base.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/versioned/base.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":50}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":113}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":5}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":32}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":19}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":5}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":15}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":5}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":95}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":15}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":5}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":22}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":5}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":59}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":19}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":20}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":5}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":48}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":32}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":14}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":5}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":13}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":1}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":117}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":31}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":26}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":5}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":50}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":25}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":5}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":23}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":1}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":39}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":104}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":39}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":13}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":54}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":5}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":37}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":1}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":0}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":75}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":5}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":54}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":16}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":5}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":16}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":1}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":66}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":10}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":5}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":89}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":19}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":13}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":27}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":5}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":18}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":5}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":97}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":5}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":13}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":1}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":0}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":31}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":5}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":51}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":7}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":15}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":1}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":118}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":15}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":82,\"column\":15}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":82,\"column\":15}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":82,\"column\":15}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":82,\"column\":15}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/versioned/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/versioned/index.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":23}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":25}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":5,\"column\":25}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":5,\"column\":25}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":5,\"column\":25}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":5,\"column\":25}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/versioned/v1_0_0/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/versioned/v1_0_0/index.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":24}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/versioned/v1_0_0/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/project/versioned/v1_0_0/types.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":50}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":63}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":3}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":51}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":13}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":3}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":30}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":5}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":35}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":21}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":5}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":17}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":5}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":36}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":22}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":5}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":19}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":3}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":40}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":13}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":11}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":43}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":21}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":24}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":23}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":15}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":23}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":6}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":4}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":3}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":27}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":5}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":34}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":19}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":5}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":15}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":5}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":44}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":19}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":17}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":5}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":18}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":5}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":48}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":24}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":5}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":24}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":1}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":0}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":3}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":41}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":13}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":3}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":28}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":5}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":35}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":19}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":28}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":5}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":15}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":5}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":45}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":19}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":17}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":5}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":18}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":3}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":56}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":13}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":3}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":30}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":5}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":87}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":20}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":20}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":5}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":23}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":5}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":74}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":4}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":96}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":108}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":20}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":21}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":5}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":19}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":5}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":82}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":4}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":66}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":73}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":80}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":20}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":21}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":5}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":30}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":0}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":5}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":83}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":178}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":20}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":5}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":29}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":1}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":0}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":3}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":45}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":13}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":3}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":32}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":5}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":81}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":48}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":19}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":85}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":5}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":16}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":5}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":81}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":19}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":85}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":5}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":21}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":5}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":70}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":19}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":53}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":5}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":20}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":1}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":0}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":39}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":44}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":66}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":57}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":3}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":16}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":18}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":11}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":17}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":4}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":22}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":22}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":23}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":18}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":19}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":22}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":13}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":25}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":1}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":0}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":30}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":5}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":54}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":19}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":13}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":49}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":5}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":18}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":0}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":5}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":67}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":19}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":13}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":31}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":5}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":21}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":183,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":183,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":183,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":183,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/store.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/types-core/src/store.ts\",\"all\":true,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":52}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":11}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":34}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":35}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":62}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":33}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":66}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":73}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":25}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":13}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":17}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":29}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":1}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":24}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":63}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":32}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":19}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":34}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":47}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":18}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":120}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":88}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":63}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":60}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":62}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":79}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":52}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":59}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":1}}},\"s\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":1,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"locations\":[{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":37,\"column\":1}}]}},\"b\":{\"0\":[0]},\"fnMap\":{\"0\":{\"name\":\"(empty-report)\",\"decl\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":37,\"column\":1}},\"line\":1}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/array/array.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/array/array.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":41}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":40}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":49}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":74}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":64}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":28}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":49}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":94}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":37}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":5}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":3}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":43}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":3,\"8\":3,\"9\":3,\"10\":3,\"11\":3,\"12\":0,\"13\":0,\"14\":3,\"15\":3,\"16\":3},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":17,\"column\":1}},\"locations\":[{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":17,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":93},\"end\":{\"line\":14,\"column\":5}},\"locations\":[{\"start\":{\"line\":12,\"column\":93},\"end\":{\"line\":14,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":34},\"end\":{\"line\":9,\"column\":62}},\"locations\":[{\"start\":{\"line\":9,\"column\":34},\"end\":{\"line\":9,\"column\":62}}]}},\"b\":{\"0\":[3],\"1\":[0],\"2\":[3]},\"fnMap\":{\"0\":{\"name\":\"findDuplicateStringArray\",\"decl\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":17,\"column\":1}},\"loc\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":17,\"column\":1}},\"line\":8}},\"f\":{\"0\":3}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/array/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/array/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/buffer/buffer.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/buffer/buffer.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":8}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":8}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":11}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":14}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":14}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":14}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":11}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":12}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":14}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":8}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":8}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":11}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":11}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":9}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":24}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":111}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":5,\"loc\":{\"start\":{\"line\":5,\"column\":2},\"end\":{\"line\":5,\"column\":8}},\"locations\":[{\"start\":{\"line\":5,\"column\":2},\"end\":{\"line\":5,\"column\":8}}]},\"1\":{\"type\":\"branch\",\"line\":6,\"loc\":{\"start\":{\"line\":6,\"column\":2},\"end\":{\"line\":6,\"column\":11}},\"locations\":[{\"start\":{\"line\":6,\"column\":2},\"end\":{\"line\":6,\"column\":11}}]},\"2\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":8,\"column\":14}},\"locations\":[{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":8,\"column\":14}}]},\"3\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":14}},\"locations\":[{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":14}}]},\"4\":{\"type\":\"branch\",\"line\":10,\"loc\":{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":10,\"column\":11}},\"locations\":[{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":10,\"column\":11}}]},\"5\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":11,\"column\":12}},\"locations\":[{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":11,\"column\":12}}]},\"6\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":14}},\"locations\":[{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":14}}]},\"7\":{\"type\":\"branch\",\"line\":13,\"loc\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":13,\"column\":8}},\"locations\":[{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":13,\"column\":8}}]},\"8\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":14,\"column\":8}},\"locations\":[{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":14,\"column\":8}}]},\"9\":{\"type\":\"branch\",\"line\":15,\"loc\":{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":15,\"column\":11}},\"locations\":[{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":15,\"column\":11}}]},\"10\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":8},\"end\":{\"line\":20,\"column\":21}},\"locations\":[{\"start\":{\"line\":20,\"column\":8},\"end\":{\"line\":20,\"column\":21}}]},\"11\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":21},\"end\":{\"line\":20,\"column\":34}},\"locations\":[{\"start\":{\"line\":20,\"column\":21},\"end\":{\"line\":20,\"column\":34}}]},\"12\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":34},\"end\":{\"line\":20,\"column\":44}},\"locations\":[{\"start\":{\"line\":20,\"column\":34},\"end\":{\"line\":20,\"column\":44}}]},\"13\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":44},\"end\":{\"line\":20,\"column\":54}},\"locations\":[{\"start\":{\"line\":20,\"column\":44},\"end\":{\"line\":20,\"column\":54}}]},\"14\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":54},\"end\":{\"line\":20,\"column\":68}},\"locations\":[{\"start\":{\"line\":20,\"column\":54},\"end\":{\"line\":20,\"column\":68}}]},\"15\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":68},\"end\":{\"line\":20,\"column\":111}},\"locations\":[{\"start\":{\"line\":20,\"column\":68},\"end\":{\"line\":20,\"column\":111}}]}},\"b\":{\"0\":[2],\"1\":[25],\"2\":[37],\"3\":[28],\"4\":[2],\"5\":[42],\"6\":[43],\"7\":[35],\"8\":[38],\"9\":[2],\"10\":[295],\"11\":[35],\"12\":[13],\"13\":[12],\"14\":[1],\"15\":[3]},\"fnMap\":{\"0\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":5,\"column\":2},\"end\":{\"line\":5,\"column\":8}},\"loc\":{\"start\":{\"line\":5,\"column\":2},\"end\":{\"line\":5,\"column\":8}},\"line\":5},\"1\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":6,\"column\":2},\"end\":{\"line\":6,\"column\":11}},\"loc\":{\"start\":{\"line\":6,\"column\":2},\"end\":{\"line\":6,\"column\":11}},\"line\":6},\"2\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":7,\"column\":2},\"end\":{\"line\":7,\"column\":14}},\"loc\":{\"start\":{\"line\":7,\"column\":2},\"end\":{\"line\":7,\"column\":14}},\"line\":7},\"3\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":8,\"column\":14}},\"loc\":{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":8,\"column\":14}},\"line\":8},\"4\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":14}},\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":9,\"column\":14}},\"line\":9},\"5\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":10,\"column\":11}},\"loc\":{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":10,\"column\":11}},\"line\":10},\"6\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":11,\"column\":12}},\"loc\":{\"start\":{\"line\":11,\"column\":2},\"end\":{\"line\":11,\"column\":12}},\"line\":11},\"7\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":14}},\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":12,\"column\":14}},\"line\":12},\"8\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":13,\"column\":8}},\"loc\":{\"start\":{\"line\":13,\"column\":2},\"end\":{\"line\":13,\"column\":8}},\"line\":13},\"9\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":14,\"column\":8}},\"loc\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":14,\"column\":8}},\"line\":14},\"10\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":15,\"column\":11}},\"loc\":{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":15,\"column\":11}},\"line\":15},\"11\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":16,\"column\":11}},\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":16,\"column\":11}},\"line\":16},\"12\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":17,\"column\":9}},\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":17,\"column\":9}},\"line\":17},\"13\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":20,\"column\":8},\"end\":{\"line\":20,\"column\":21}},\"loc\":{\"start\":{\"line\":20,\"column\":8},\"end\":{\"line\":20,\"column\":21}},\"line\":20},\"14\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":20,\"column\":21},\"end\":{\"line\":20,\"column\":34}},\"loc\":{\"start\":{\"line\":20,\"column\":21},\"end\":{\"line\":20,\"column\":34}},\"line\":20},\"15\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":20,\"column\":34},\"end\":{\"line\":20,\"column\":44}},\"loc\":{\"start\":{\"line\":20,\"column\":34},\"end\":{\"line\":20,\"column\":44}},\"line\":20},\"16\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":20,\"column\":44},\"end\":{\"line\":20,\"column\":54}},\"loc\":{\"start\":{\"line\":20,\"column\":44},\"end\":{\"line\":20,\"column\":54}},\"line\":20},\"17\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":20,\"column\":54},\"end\":{\"line\":20,\"column\":68}},\"loc\":{\"start\":{\"line\":20,\"column\":54},\"end\":{\"line\":20,\"column\":68}},\"line\":20},\"18\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":20,\"column\":68},\"end\":{\"line\":20,\"column\":111}},\"loc\":{\"start\":{\"line\":20,\"column\":68},\"end\":{\"line\":20,\"column\":111}},\"line\":20}},\"f\":{\"0\":2,\"1\":25,\"2\":0,\"3\":37,\"4\":28,\"5\":2,\"6\":42,\"7\":43,\"8\":35,\"9\":38,\"10\":2,\"11\":0,\"12\":0,\"13\":295,\"14\":35,\"15\":13,\"16\":12,\"17\":1,\"18\":3}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/buffer/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/buffer/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/builder.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/builder.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":15}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":18}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":17}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":1}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":26}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":34}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":17}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":36}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":33}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":27}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":16}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":37}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":1}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":59}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":26}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":22}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":36}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":41}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":39}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":45}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":37}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":28}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":45}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":28}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":49}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":47}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":52}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":46}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":13}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":45}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":12}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":24}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":48}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":79}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":14}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":54}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":7}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":6}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":15}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":52}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":74}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":16}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":24}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":42}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":41}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":30}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":13}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":45}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":12}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":23}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":10}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":5}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":2}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":47}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":95}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":2}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":39}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":27}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":22}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":64}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":5}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":26}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":15}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":36}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":72}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":10}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":94}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":33}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":4}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":516,\"22\":516,\"23\":516,\"24\":721,\"25\":721,\"26\":322,\"27\":713,\"28\":159,\"29\":159,\"30\":274,\"31\":40,\"32\":274,\"33\":0,\"34\":234,\"35\":234,\"36\":234,\"37\":0,\"38\":159,\"39\":159,\"40\":399,\"41\":240,\"42\":240,\"43\":0,\"44\":0,\"45\":516,\"46\":516,\"47\":516,\"48\":1,\"49\":1,\"50\":167,\"51\":167,\"52\":167,\"53\":167,\"54\":311,\"55\":269,\"56\":269,\"57\":42,\"58\":167,\"59\":167,\"60\":167,\"61\":167,\"62\":167,\"63\":1,\"64\":1,\"65\":84,\"66\":84,\"67\":1,\"68\":1,\"69\":84,\"70\":155,\"71\":0,\"72\":0,\"73\":155,\"74\":155,\"75\":1,\"76\":1,\"77\":84,\"78\":84,\"79\":84,\"80\":84,\"81\":84,\"82\":84},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"locations\":[{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":48,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":9},\"end\":{\"line\":46,\"column\":5}},\"locations\":[{\"start\":{\"line\":24,\"column\":9},\"end\":{\"line\":46,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":40},\"end\":{\"line\":45,\"column\":7}},\"locations\":[{\"start\":{\"line\":26,\"column\":40},\"end\":{\"line\":45,\"column\":7}}]},\"3\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":40},\"end\":{\"line\":28,\"column\":13}},\"locations\":[{\"start\":{\"line\":26,\"column\":40},\"end\":{\"line\":28,\"column\":13}}]},\"4\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":7},\"end\":{\"line\":45,\"column\":7}},\"locations\":[{\"start\":{\"line\":28,\"column\":7},\"end\":{\"line\":45,\"column\":7}}]},\"5\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":44},\"end\":{\"line\":41,\"column\":13}},\"locations\":[{\"start\":{\"line\":28,\"column\":44},\"end\":{\"line\":41,\"column\":13}}]},\"6\":{\"type\":\"branch\",\"line\":41,\"loc\":{\"start\":{\"line\":41,\"column\":7},\"end\":{\"line\":45,\"column\":7}},\"locations\":[{\"start\":{\"line\":41,\"column\":7},\"end\":{\"line\":45,\"column\":7}}]},\"7\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":7},\"end\":{\"line\":45,\"column\":7}},\"locations\":[{\"start\":{\"line\":43,\"column\":7},\"end\":{\"line\":45,\"column\":7}}]},\"8\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":15},\"end\":{\"line\":39,\"column\":11}},\"locations\":[{\"start\":{\"line\":30,\"column\":15},\"end\":{\"line\":39,\"column\":11}}]},\"9\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":44},\"end\":{\"line\":33,\"column\":19}},\"locations\":[{\"start\":{\"line\":31,\"column\":44},\"end\":{\"line\":33,\"column\":19}}]},\"10\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":13},\"end\":{\"line\":37,\"column\":13}},\"locations\":[{\"start\":{\"line\":33,\"column\":13},\"end\":{\"line\":37,\"column\":13}}]},\"11\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":48},\"end\":{\"line\":35,\"column\":19}},\"locations\":[{\"start\":{\"line\":33,\"column\":48},\"end\":{\"line\":35,\"column\":19}}]},\"12\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":-1},\"end\":{\"line\":39,\"column\":11}},\"locations\":[{\"start\":{\"line\":38,\"column\":-1},\"end\":{\"line\":39,\"column\":11}}]},\"13\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":24},\"end\":{\"line\":63,\"column\":2}},\"locations\":[{\"start\":{\"line\":50,\"column\":24},\"end\":{\"line\":63,\"column\":2}}]},\"14\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":37},\"end\":{\"line\":51,\"column\":66}},\"locations\":[{\"start\":{\"line\":51,\"column\":37},\"end\":{\"line\":51,\"column\":66}}]},\"15\":{\"type\":\"branch\",\"line\":51,\"loc\":{\"start\":{\"line\":51,\"column\":67},\"end\":{\"line\":51,\"column\":71}},\"locations\":[{\"start\":{\"line\":51,\"column\":67},\"end\":{\"line\":51,\"column\":71}}]},\"16\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":6},\"end\":{\"line\":61,\"column\":10}},\"locations\":[{\"start\":{\"line\":61,\"column\":6},\"end\":{\"line\":61,\"column\":10}}]},\"17\":{\"type\":\"branch\",\"line\":54,\"loc\":{\"start\":{\"line\":54,\"column\":15},\"end\":{\"line\":59,\"column\":11}},\"locations\":[{\"start\":{\"line\":54,\"column\":15},\"end\":{\"line\":59,\"column\":11}}]},\"18\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":40},\"end\":{\"line\":57,\"column\":13}},\"locations\":[{\"start\":{\"line\":55,\"column\":40},\"end\":{\"line\":57,\"column\":13}}]},\"19\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":-1},\"end\":{\"line\":59,\"column\":11}},\"locations\":[{\"start\":{\"line\":58,\"column\":-1},\"end\":{\"line\":59,\"column\":11}}]},\"20\":{\"type\":\"branch\",\"line\":65,\"loc\":{\"start\":{\"line\":65,\"column\":18},\"end\":{\"line\":67,\"column\":2}},\"locations\":[{\"start\":{\"line\":65,\"column\":18},\"end\":{\"line\":67,\"column\":2}}]},\"21\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":29},\"end\":{\"line\":66,\"column\":89}},\"locations\":[{\"start\":{\"line\":66,\"column\":29},\"end\":{\"line\":66,\"column\":89}}]},\"22\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":90},\"end\":{\"line\":66,\"column\":94}},\"locations\":[{\"start\":{\"line\":66,\"column\":90},\"end\":{\"line\":66,\"column\":94}}]},\"23\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":44},\"end\":{\"line\":66,\"column\":85}},\"locations\":[{\"start\":{\"line\":66,\"column\":44},\"end\":{\"line\":66,\"column\":85}}]},\"24\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":20},\"end\":{\"line\":76,\"column\":35}},\"locations\":[{\"start\":{\"line\":69,\"column\":20},\"end\":{\"line\":76,\"column\":35}}]},\"25\":{\"type\":\"branch\",\"line\":70,\"loc\":{\"start\":{\"line\":70,\"column\":14},\"end\":{\"line\":76,\"column\":5}},\"locations\":[{\"start\":{\"line\":70,\"column\":14},\"end\":{\"line\":76,\"column\":5}}]},\"26\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":21},\"end\":{\"line\":73,\"column\":5}},\"locations\":[{\"start\":{\"line\":71,\"column\":21},\"end\":{\"line\":73,\"column\":5}}]},\"27\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":83,\"column\":1}},\"locations\":[{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":83,\"column\":1}}]},\"28\":{\"type\":\"branch\",\"line\":80,\"loc\":{\"start\":{\"line\":80,\"column\":48},\"end\":{\"line\":80,\"column\":79}},\"locations\":[{\"start\":{\"line\":80,\"column\":48},\"end\":{\"line\":80,\"column\":79}}]}},\"b\":{\"0\":[516],\"1\":[721],\"2\":[713],\"3\":[322],\"4\":[399],\"5\":[159],\"6\":[240],\"7\":[0],\"8\":[274],\"9\":[40],\"10\":[234],\"11\":[0],\"12\":[0],\"13\":[167],\"14\":[42],\"15\":[125],\"16\":[0],\"17\":[311],\"18\":[269],\"19\":[42],\"20\":[84],\"21\":[24],\"22\":[60],\"23\":[155],\"24\":[84],\"25\":[155],\"26\":[0],\"27\":[84],\"28\":[125]},\"fnMap\":{\"0\":{\"name\":\"buildArgs\",\"decl\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"loc\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"line\":22},\"1\":{\"name\":\"bindProjections\",\"decl\":{\"start\":{\"line\":50,\"column\":24},\"end\":{\"line\":63,\"column\":2}},\"loc\":{\"start\":{\"line\":50,\"column\":24},\"end\":{\"line\":63,\"column\":2}},\"line\":50},\"2\":{\"name\":\"toVarDefs\",\"decl\":{\"start\":{\"line\":65,\"column\":18},\"end\":{\"line\":67,\"column\":2}},\"loc\":{\"start\":{\"line\":65,\"column\":18},\"end\":{\"line\":67,\"column\":2}},\"line\":65},\"3\":{\"name\":\"toVariables\",\"decl\":{\"start\":{\"line\":69,\"column\":20},\"end\":{\"line\":76,\"column\":35}},\"loc\":{\"start\":{\"line\":69,\"column\":20},\"end\":{\"line\":76,\"column\":35}},\"line\":69},\"4\":{\"name\":\"buildQuery\",\"decl\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":83,\"column\":1}},\"loc\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":83,\"column\":1}},\"line\":78}},\"f\":{\"0\":516,\"1\":167,\"2\":84,\"3\":84,\"4\":84}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/constant.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/constant.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":27}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":30}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":20}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":26}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":24}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":7,\"4\":7,\"5\":7,\"6\":7,\"7\":7,\"8\":7},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":4,\"loc\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"locations\":[{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":9,\"column\":1}}]}},\"b\":{\"0\":[7]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/entities.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/entities.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":8}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":17}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":21}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":18}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":18}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":15}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":19}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":20}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":20}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":16}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":13}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":18}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":13}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":16}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":15}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":14}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":12}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":19}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":17}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":50}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":33}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":45}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":41}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":45}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":8}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":14}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":21}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":22}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":23}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":24}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":30}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":20}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":23}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":12}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":17}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":96}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":89}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":55}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":109}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":24}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":26}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":81}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":48}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":38}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":110}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":25}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":12}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":17}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":20}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":16}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":6}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":3}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":36}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":53}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":106}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":26}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":48}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":62}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":24}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":46}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":16}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":101}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":6}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":4}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":0}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":112}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":57}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":54}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":34}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":41}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":24}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":38}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":17}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":18}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":6}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":59}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":35}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":39}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":49}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":85}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":82}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":33}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":56}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":35}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":72}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":7}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":22}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":39}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":30}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":27}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":41}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":23}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":100}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":47}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":27}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":11}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":7}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":28}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":80}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":71}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":39}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":28}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":28}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":25}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":40}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":35}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":31}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":24}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":38}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":32}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":11}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":35}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":7}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":26}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":79}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":39}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":28}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":120}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":25}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":59}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":32}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":35}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":7}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":24}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":75}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":84}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":74}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":79}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":0}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":117}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":98}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":98}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":86}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":33}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":26}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":33}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":33}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":13}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":9}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":14}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":62}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":7}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":23}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":30}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":47}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":33}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":45}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":33}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":13}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":79}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":41}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":50}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":85}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":14}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":26}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":36}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":13}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":11}},\"174\":{\"start\":{\"line\":175,\"column\":0},\"end\":{\"line\":175,\"column\":16}},\"175\":{\"start\":{\"line\":176,\"column\":0},\"end\":{\"line\":176,\"column\":75}},\"176\":{\"start\":{\"line\":177,\"column\":0},\"end\":{\"line\":177,\"column\":9}},\"177\":{\"start\":{\"line\":178,\"column\":0},\"end\":{\"line\":178,\"column\":7}},\"178\":{\"start\":{\"line\":179,\"column\":0},\"end\":{\"line\":179,\"column\":5}},\"179\":{\"start\":{\"line\":180,\"column\":0},\"end\":{\"line\":180,\"column\":0}},\"180\":{\"start\":{\"line\":181,\"column\":0},\"end\":{\"line\":181,\"column\":24}},\"181\":{\"start\":{\"line\":182,\"column\":0},\"end\":{\"line\":182,\"column\":76}},\"182\":{\"start\":{\"line\":183,\"column\":0},\"end\":{\"line\":183,\"column\":103}},\"183\":{\"start\":{\"line\":184,\"column\":0},\"end\":{\"line\":184,\"column\":26}},\"184\":{\"start\":{\"line\":185,\"column\":0},\"end\":{\"line\":185,\"column\":6}},\"185\":{\"start\":{\"line\":186,\"column\":0},\"end\":{\"line\":186,\"column\":52}},\"186\":{\"start\":{\"line\":187,\"column\":0},\"end\":{\"line\":187,\"column\":91}},\"187\":{\"start\":{\"line\":188,\"column\":0},\"end\":{\"line\":188,\"column\":36}},\"188\":{\"start\":{\"line\":189,\"column\":0},\"end\":{\"line\":189,\"column\":24}},\"189\":{\"start\":{\"line\":190,\"column\":0},\"end\":{\"line\":190,\"column\":106}},\"190\":{\"start\":{\"line\":191,\"column\":0},\"end\":{\"line\":191,\"column\":10}},\"191\":{\"start\":{\"line\":192,\"column\":0},\"end\":{\"line\":192,\"column\":7}},\"192\":{\"start\":{\"line\":193,\"column\":0},\"end\":{\"line\":193,\"column\":66}},\"193\":{\"start\":{\"line\":194,\"column\":0},\"end\":{\"line\":194,\"column\":92}},\"194\":{\"start\":{\"line\":195,\"column\":0},\"end\":{\"line\":195,\"column\":31}},\"195\":{\"start\":{\"line\":196,\"column\":0},\"end\":{\"line\":196,\"column\":29}},\"196\":{\"start\":{\"line\":197,\"column\":0},\"end\":{\"line\":197,\"column\":11}},\"197\":{\"start\":{\"line\":198,\"column\":0},\"end\":{\"line\":198,\"column\":9}},\"198\":{\"start\":{\"line\":199,\"column\":0},\"end\":{\"line\":199,\"column\":5}},\"199\":{\"start\":{\"line\":200,\"column\":0},\"end\":{\"line\":200,\"column\":0}},\"200\":{\"start\":{\"line\":201,\"column\":0},\"end\":{\"line\":201,\"column\":22}},\"201\":{\"start\":{\"line\":202,\"column\":0},\"end\":{\"line\":202,\"column\":62}},\"202\":{\"start\":{\"line\":203,\"column\":0},\"end\":{\"line\":203,\"column\":110}},\"203\":{\"start\":{\"line\":204,\"column\":0},\"end\":{\"line\":204,\"column\":0}},\"204\":{\"start\":{\"line\":205,\"column\":0},\"end\":{\"line\":205,\"column\":31}},\"205\":{\"start\":{\"line\":206,\"column\":0},\"end\":{\"line\":206,\"column\":48}},\"206\":{\"start\":{\"line\":207,\"column\":0},\"end\":{\"line\":207,\"column\":107}},\"207\":{\"start\":{\"line\":208,\"column\":0},\"end\":{\"line\":208,\"column\":7}},\"208\":{\"start\":{\"line\":209,\"column\":0},\"end\":{\"line\":209,\"column\":0}},\"209\":{\"start\":{\"line\":210,\"column\":0},\"end\":{\"line\":210,\"column\":27}},\"210\":{\"start\":{\"line\":211,\"column\":0},\"end\":{\"line\":211,\"column\":78}},\"211\":{\"start\":{\"line\":212,\"column\":0},\"end\":{\"line\":212,\"column\":0}},\"212\":{\"start\":{\"line\":213,\"column\":0},\"end\":{\"line\":213,\"column\":67}},\"213\":{\"start\":{\"line\":214,\"column\":0},\"end\":{\"line\":214,\"column\":102}},\"214\":{\"start\":{\"line\":215,\"column\":0},\"end\":{\"line\":215,\"column\":21}},\"215\":{\"start\":{\"line\":216,\"column\":0},\"end\":{\"line\":216,\"column\":115}},\"216\":{\"start\":{\"line\":217,\"column\":0},\"end\":{\"line\":217,\"column\":9}},\"217\":{\"start\":{\"line\":218,\"column\":0},\"end\":{\"line\":218,\"column\":0}},\"218\":{\"start\":{\"line\":219,\"column\":0},\"end\":{\"line\":219,\"column\":53}},\"219\":{\"start\":{\"line\":220,\"column\":0},\"end\":{\"line\":220,\"column\":82}},\"220\":{\"start\":{\"line\":221,\"column\":0},\"end\":{\"line\":221,\"column\":9}},\"221\":{\"start\":{\"line\":222,\"column\":0},\"end\":{\"line\":222,\"column\":0}},\"222\":{\"start\":{\"line\":223,\"column\":0},\"end\":{\"line\":223,\"column\":74}},\"223\":{\"start\":{\"line\":224,\"column\":0},\"end\":{\"line\":224,\"column\":48}},\"224\":{\"start\":{\"line\":225,\"column\":0},\"end\":{\"line\":225,\"column\":67}},\"225\":{\"start\":{\"line\":226,\"column\":0},\"end\":{\"line\":226,\"column\":9}},\"226\":{\"start\":{\"line\":227,\"column\":0},\"end\":{\"line\":227,\"column\":9}},\"227\":{\"start\":{\"line\":228,\"column\":0},\"end\":{\"line\":228,\"column\":0}},\"228\":{\"start\":{\"line\":229,\"column\":0},\"end\":{\"line\":229,\"column\":47}},\"229\":{\"start\":{\"line\":230,\"column\":0},\"end\":{\"line\":230,\"column\":5}},\"230\":{\"start\":{\"line\":231,\"column\":0},\"end\":{\"line\":231,\"column\":0}},\"231\":{\"start\":{\"line\":232,\"column\":0},\"end\":{\"line\":232,\"column\":41}},\"232\":{\"start\":{\"line\":233,\"column\":0},\"end\":{\"line\":233,\"column\":3}},\"233\":{\"start\":{\"line\":234,\"column\":0},\"end\":{\"line\":234,\"column\":36}},\"234\":{\"start\":{\"line\":235,\"column\":0},\"end\":{\"line\":235,\"column\":24}},\"235\":{\"start\":{\"line\":236,\"column\":0},\"end\":{\"line\":236,\"column\":1}},\"236\":{\"start\":{\"line\":237,\"column\":0},\"end\":{\"line\":237,\"column\":0}},\"237\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":238,\"column\":28}},\"238\":{\"start\":{\"line\":239,\"column\":0},\"end\":{\"line\":239,\"column\":38}},\"239\":{\"start\":{\"line\":240,\"column\":0},\"end\":{\"line\":240,\"column\":61}},\"240\":{\"start\":{\"line\":241,\"column\":0},\"end\":{\"line\":241,\"column\":22}},\"241\":{\"start\":{\"line\":242,\"column\":0},\"end\":{\"line\":242,\"column\":26}},\"242\":{\"start\":{\"line\":243,\"column\":0},\"end\":{\"line\":243,\"column\":13}},\"243\":{\"start\":{\"line\":244,\"column\":0},\"end\":{\"line\":244,\"column\":36}},\"244\":{\"start\":{\"line\":245,\"column\":0},\"end\":{\"line\":245,\"column\":107}},\"245\":{\"start\":{\"line\":246,\"column\":0},\"end\":{\"line\":246,\"column\":3}},\"246\":{\"start\":{\"line\":247,\"column\":0},\"end\":{\"line\":247,\"column\":34}},\"247\":{\"start\":{\"line\":248,\"column\":0},\"end\":{\"line\":248,\"column\":20}},\"248\":{\"start\":{\"line\":249,\"column\":0},\"end\":{\"line\":249,\"column\":138}},\"249\":{\"start\":{\"line\":250,\"column\":0},\"end\":{\"line\":250,\"column\":6}},\"250\":{\"start\":{\"line\":251,\"column\":0},\"end\":{\"line\":251,\"column\":3}},\"251\":{\"start\":{\"line\":252,\"column\":0},\"end\":{\"line\":252,\"column\":27}},\"252\":{\"start\":{\"line\":253,\"column\":0},\"end\":{\"line\":253,\"column\":99}},\"253\":{\"start\":{\"line\":254,\"column\":0},\"end\":{\"line\":254,\"column\":31}},\"254\":{\"start\":{\"line\":255,\"column\":0},\"end\":{\"line\":255,\"column\":109}},\"255\":{\"start\":{\"line\":256,\"column\":0},\"end\":{\"line\":256,\"column\":3}},\"256\":{\"start\":{\"line\":257,\"column\":0},\"end\":{\"line\":257,\"column\":36}},\"257\":{\"start\":{\"line\":258,\"column\":0},\"end\":{\"line\":258,\"column\":65}},\"258\":{\"start\":{\"line\":259,\"column\":0},\"end\":{\"line\":259,\"column\":57}},\"259\":{\"start\":{\"line\":260,\"column\":0},\"end\":{\"line\":260,\"column\":38}},\"260\":{\"start\":{\"line\":261,\"column\":0},\"end\":{\"line\":261,\"column\":108}},\"261\":{\"start\":{\"line\":262,\"column\":0},\"end\":{\"line\":262,\"column\":5}},\"262\":{\"start\":{\"line\":263,\"column\":0},\"end\":{\"line\":263,\"column\":18}},\"263\":{\"start\":{\"line\":264,\"column\":0},\"end\":{\"line\":264,\"column\":49}},\"264\":{\"start\":{\"line\":265,\"column\":0},\"end\":{\"line\":265,\"column\":22}},\"265\":{\"start\":{\"line\":266,\"column\":0},\"end\":{\"line\":266,\"column\":5}},\"266\":{\"start\":{\"line\":267,\"column\":0},\"end\":{\"line\":267,\"column\":13}},\"267\":{\"start\":{\"line\":268,\"column\":0},\"end\":{\"line\":268,\"column\":5}},\"268\":{\"start\":{\"line\":269,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"269\":{\"start\":{\"line\":270,\"column\":0},\"end\":{\"line\":270,\"column\":0}},\"270\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":271,\"column\":25}},\"271\":{\"start\":{\"line\":272,\"column\":0},\"end\":{\"line\":272,\"column\":35}},\"272\":{\"start\":{\"line\":273,\"column\":0},\"end\":{\"line\":273,\"column\":40}},\"273\":{\"start\":{\"line\":274,\"column\":0},\"end\":{\"line\":274,\"column\":23}},\"274\":{\"start\":{\"line\":275,\"column\":0},\"end\":{\"line\":275,\"column\":23}},\"275\":{\"start\":{\"line\":276,\"column\":0},\"end\":{\"line\":276,\"column\":10}},\"276\":{\"start\":{\"line\":277,\"column\":0},\"end\":{\"line\":277,\"column\":56}},\"277\":{\"start\":{\"line\":278,\"column\":0},\"end\":{\"line\":278,\"column\":57}},\"278\":{\"start\":{\"line\":279,\"column\":0},\"end\":{\"line\":279,\"column\":35}},\"279\":{\"start\":{\"line\":280,\"column\":0},\"end\":{\"line\":280,\"column\":94}},\"280\":{\"start\":{\"line\":281,\"column\":0},\"end\":{\"line\":281,\"column\":41}},\"281\":{\"start\":{\"line\":282,\"column\":0},\"end\":{\"line\":282,\"column\":18}},\"282\":{\"start\":{\"line\":283,\"column\":0},\"end\":{\"line\":283,\"column\":4}},\"283\":{\"start\":{\"line\":284,\"column\":0},\"end\":{\"line\":284,\"column\":1}},\"284\":{\"start\":{\"line\":285,\"column\":0},\"end\":{\"line\":285,\"column\":0}},\"285\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":286,\"column\":23}},\"286\":{\"start\":{\"line\":287,\"column\":0},\"end\":{\"line\":287,\"column\":21}},\"287\":{\"start\":{\"line\":288,\"column\":0},\"end\":{\"line\":288,\"column\":40}},\"288\":{\"start\":{\"line\":289,\"column\":0},\"end\":{\"line\":289,\"column\":35}},\"289\":{\"start\":{\"line\":290,\"column\":0},\"end\":{\"line\":290,\"column\":23}},\"290\":{\"start\":{\"line\":291,\"column\":0},\"end\":{\"line\":291,\"column\":10}},\"291\":{\"start\":{\"line\":292,\"column\":0},\"end\":{\"line\":292,\"column\":21}},\"292\":{\"start\":{\"line\":293,\"column\":0},\"end\":{\"line\":293,\"column\":17}},\"293\":{\"start\":{\"line\":294,\"column\":0},\"end\":{\"line\":294,\"column\":35}},\"294\":{\"start\":{\"line\":295,\"column\":0},\"end\":{\"line\":295,\"column\":30}},\"295\":{\"start\":{\"line\":296,\"column\":0},\"end\":{\"line\":296,\"column\":94}},\"296\":{\"start\":{\"line\":297,\"column\":0},\"end\":{\"line\":297,\"column\":41}},\"297\":{\"start\":{\"line\":298,\"column\":0},\"end\":{\"line\":298,\"column\":18}},\"298\":{\"start\":{\"line\":299,\"column\":0},\"end\":{\"line\":299,\"column\":4}},\"299\":{\"start\":{\"line\":300,\"column\":0},\"end\":{\"line\":300,\"column\":1}},\"300\":{\"start\":{\"line\":301,\"column\":0},\"end\":{\"line\":301,\"column\":0}},\"301\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":302,\"column\":34}},\"302\":{\"start\":{\"line\":303,\"column\":0},\"end\":{\"line\":303,\"column\":50}},\"303\":{\"start\":{\"line\":304,\"column\":0},\"end\":{\"line\":304,\"column\":52}},\"304\":{\"start\":{\"line\":305,\"column\":0},\"end\":{\"line\":305,\"column\":26}},\"305\":{\"start\":{\"line\":306,\"column\":0},\"end\":{\"line\":306,\"column\":52}},\"306\":{\"start\":{\"line\":307,\"column\":0},\"end\":{\"line\":307,\"column\":26}},\"307\":{\"start\":{\"line\":308,\"column\":0},\"end\":{\"line\":308,\"column\":15}},\"308\":{\"start\":{\"line\":309,\"column\":0},\"end\":{\"line\":309,\"column\":4}},\"309\":{\"start\":{\"line\":310,\"column\":0},\"end\":{\"line\":310,\"column\":62}},\"310\":{\"start\":{\"line\":311,\"column\":0},\"end\":{\"line\":311,\"column\":33}},\"311\":{\"start\":{\"line\":312,\"column\":0},\"end\":{\"line\":312,\"column\":47}},\"312\":{\"start\":{\"line\":313,\"column\":0},\"end\":{\"line\":313,\"column\":81}},\"313\":{\"start\":{\"line\":314,\"column\":0},\"end\":{\"line\":314,\"column\":35}},\"314\":{\"start\":{\"line\":315,\"column\":0},\"end\":{\"line\":315,\"column\":23}},\"315\":{\"start\":{\"line\":316,\"column\":0},\"end\":{\"line\":316,\"column\":58}},\"316\":{\"start\":{\"line\":317,\"column\":0},\"end\":{\"line\":317,\"column\":31}},\"317\":{\"start\":{\"line\":318,\"column\":0},\"end\":{\"line\":318,\"column\":28}},\"318\":{\"start\":{\"line\":319,\"column\":0},\"end\":{\"line\":319,\"column\":69}},\"319\":{\"start\":{\"line\":320,\"column\":0},\"end\":{\"line\":320,\"column\":23}},\"320\":{\"start\":{\"line\":321,\"column\":0},\"end\":{\"line\":321,\"column\":11}},\"321\":{\"start\":{\"line\":322,\"column\":0},\"end\":{\"line\":322,\"column\":20}},\"322\":{\"start\":{\"line\":323,\"column\":0},\"end\":{\"line\":323,\"column\":43}},\"323\":{\"start\":{\"line\":324,\"column\":0},\"end\":{\"line\":324,\"column\":96}},\"324\":{\"start\":{\"line\":325,\"column\":0},\"end\":{\"line\":325,\"column\":31}},\"325\":{\"start\":{\"line\":326,\"column\":0},\"end\":{\"line\":326,\"column\":3}},\"326\":{\"start\":{\"line\":327,\"column\":0},\"end\":{\"line\":327,\"column\":27}},\"327\":{\"start\":{\"line\":328,\"column\":0},\"end\":{\"line\":328,\"column\":1}},\"328\":{\"start\":{\"line\":329,\"column\":0},\"end\":{\"line\":329,\"column\":0}},\"329\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":330,\"column\":68}},\"330\":{\"start\":{\"line\":331,\"column\":0},\"end\":{\"line\":331,\"column\":78}},\"331\":{\"start\":{\"line\":332,\"column\":0},\"end\":{\"line\":332,\"column\":1}},\"332\":{\"start\":{\"line\":333,\"column\":0},\"end\":{\"line\":333,\"column\":0}},\"333\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":334,\"column\":71}},\"334\":{\"start\":{\"line\":335,\"column\":0},\"end\":{\"line\":335,\"column\":43}},\"335\":{\"start\":{\"line\":336,\"column\":0},\"end\":{\"line\":336,\"column\":43}},\"336\":{\"start\":{\"line\":337,\"column\":0},\"end\":{\"line\":337,\"column\":24}},\"337\":{\"start\":{\"line\":338,\"column\":0},\"end\":{\"line\":338,\"column\":1}},\"338\":{\"start\":{\"line\":339,\"column\":0},\"end\":{\"line\":339,\"column\":0}},\"339\":{\"start\":{\"line\":340,\"column\":0},\"end\":{\"line\":340,\"column\":45}},\"340\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":341,\"column\":55}},\"341\":{\"start\":{\"line\":342,\"column\":0},\"end\":{\"line\":342,\"column\":26}},\"342\":{\"start\":{\"line\":343,\"column\":0},\"end\":{\"line\":343,\"column\":46}},\"343\":{\"start\":{\"line\":344,\"column\":0},\"end\":{\"line\":344,\"column\":3}},\"344\":{\"start\":{\"line\":345,\"column\":0},\"end\":{\"line\":345,\"column\":30}},\"345\":{\"start\":{\"line\":346,\"column\":0},\"end\":{\"line\":346,\"column\":50}},\"346\":{\"start\":{\"line\":347,\"column\":0},\"end\":{\"line\":347,\"column\":3}},\"347\":{\"start\":{\"line\":348,\"column\":0},\"end\":{\"line\":348,\"column\":73}},\"348\":{\"start\":{\"line\":349,\"column\":0},\"end\":{\"line\":349,\"column\":90}},\"349\":{\"start\":{\"line\":350,\"column\":0},\"end\":{\"line\":350,\"column\":35}},\"350\":{\"start\":{\"line\":351,\"column\":0},\"end\":{\"line\":351,\"column\":72}},\"351\":{\"start\":{\"line\":352,\"column\":0},\"end\":{\"line\":352,\"column\":23}},\"352\":{\"start\":{\"line\":353,\"column\":0},\"end\":{\"line\":353,\"column\":1}},\"353\":{\"start\":{\"line\":354,\"column\":0},\"end\":{\"line\":354,\"column\":0}},\"354\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":355,\"column\":79}},\"355\":{\"start\":{\"line\":356,\"column\":0},\"end\":{\"line\":356,\"column\":116}},\"356\":{\"start\":{\"line\":357,\"column\":0},\"end\":{\"line\":357,\"column\":11}},\"357\":{\"start\":{\"line\":358,\"column\":0},\"end\":{\"line\":358,\"column\":33}},\"358\":{\"start\":{\"line\":359,\"column\":0},\"end\":{\"line\":359,\"column\":99}},\"359\":{\"start\":{\"line\":360,\"column\":0},\"end\":{\"line\":360,\"column\":8}},\"360\":{\"start\":{\"line\":361,\"column\":0},\"end\":{\"line\":361,\"column\":104}},\"361\":{\"start\":{\"line\":362,\"column\":0},\"end\":{\"line\":362,\"column\":6}},\"362\":{\"start\":{\"line\":363,\"column\":0},\"end\":{\"line\":363,\"column\":3}},\"363\":{\"start\":{\"line\":364,\"column\":0},\"end\":{\"line\":364,\"column\":1}},\"364\":{\"start\":{\"line\":365,\"column\":0},\"end\":{\"line\":365,\"column\":0}},\"365\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":366,\"column\":83}},\"366\":{\"start\":{\"line\":367,\"column\":0},\"end\":{\"line\":367,\"column\":44}},\"367\":{\"start\":{\"line\":368,\"column\":0},\"end\":{\"line\":368,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":74,\"43\":74,\"44\":74,\"45\":74,\"46\":74,\"47\":74,\"48\":1,\"49\":22,\"50\":22,\"51\":22,\"52\":1,\"53\":1,\"54\":55,\"55\":55,\"56\":5,\"57\":5,\"58\":5,\"59\":5,\"60\":5,\"61\":5,\"62\":50,\"63\":50,\"64\":50,\"65\":50,\"66\":50,\"67\":50,\"68\":50,\"69\":50,\"70\":50,\"71\":50,\"72\":50,\"73\":50,\"74\":25,\"75\":25,\"76\":25,\"77\":50,\"78\":50,\"79\":50,\"80\":50,\"81\":50,\"82\":55,\"83\":249,\"84\":249,\"85\":249,\"86\":249,\"87\":249,\"88\":249,\"89\":249,\"90\":249,\"91\":249,\"92\":249,\"93\":2840,\"94\":2840,\"95\":2840,\"96\":2840,\"97\":2840,\"98\":2840,\"99\":2840,\"100\":2297,\"101\":2297,\"102\":543,\"103\":543,\"104\":22,\"105\":22,\"106\":22,\"107\":22,\"108\":22,\"109\":22,\"110\":22,\"111\":22,\"112\":22,\"113\":521,\"114\":521,\"115\":365,\"116\":365,\"117\":365,\"118\":365,\"119\":365,\"120\":365,\"121\":365,\"122\":365,\"123\":365,\"124\":365,\"125\":365,\"126\":365,\"127\":365,\"128\":365,\"129\":156,\"130\":156,\"131\":149,\"132\":149,\"133\":149,\"134\":149,\"135\":149,\"136\":149,\"137\":149,\"138\":149,\"139\":7,\"140\":7,\"141\":6,\"142\":6,\"143\":6,\"144\":6,\"145\":6,\"146\":6,\"147\":6,\"148\":6,\"149\":6,\"150\":6,\"151\":6,\"152\":6,\"153\":6,\"154\":6,\"155\":7,\"156\":1,\"157\":1,\"158\":2839,\"159\":2840,\"160\":11,\"161\":3,\"162\":3,\"163\":3,\"164\":3,\"165\":11,\"166\":8,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":8,\"175\":0,\"176\":0,\"177\":11,\"178\":2840,\"179\":248,\"180\":248,\"181\":248,\"182\":248,\"183\":248,\"184\":248,\"185\":249,\"186\":3,\"187\":3,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":3,\"193\":3,\"194\":3,\"195\":3,\"196\":3,\"197\":3,\"198\":3,\"199\":248,\"200\":248,\"201\":248,\"202\":248,\"203\":248,\"204\":249,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":5,\"214\":5,\"215\":1,\"216\":1,\"217\":4,\"218\":5,\"219\":1,\"220\":1,\"221\":3,\"222\":3,\"223\":5,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":248,\"231\":248,\"232\":248,\"233\":49,\"234\":49,\"235\":49,\"236\":1,\"237\":3,\"238\":3,\"239\":3,\"240\":3,\"241\":3,\"242\":3,\"243\":3,\"244\":0,\"245\":0,\"246\":3,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":3,\"252\":3,\"253\":3,\"254\":0,\"255\":0,\"256\":3,\"257\":6,\"258\":6,\"259\":6,\"260\":0,\"261\":0,\"262\":6,\"263\":6,\"264\":0,\"265\":0,\"266\":6,\"267\":3,\"268\":3,\"269\":1,\"270\":2662,\"271\":2662,\"272\":2662,\"273\":2662,\"274\":2662,\"275\":2662,\"276\":2662,\"277\":2662,\"278\":2662,\"279\":2662,\"280\":2662,\"281\":2662,\"282\":2662,\"283\":2662,\"284\":1,\"285\":6,\"286\":6,\"287\":6,\"288\":6,\"289\":6,\"290\":6,\"291\":6,\"292\":6,\"293\":6,\"294\":6,\"295\":6,\"296\":6,\"297\":6,\"298\":6,\"299\":6,\"300\":1,\"301\":12,\"302\":12,\"303\":12,\"304\":12,\"305\":12,\"306\":12,\"307\":12,\"308\":12,\"309\":12,\"310\":24,\"311\":24,\"312\":24,\"313\":24,\"314\":24,\"315\":24,\"316\":24,\"317\":24,\"318\":6,\"319\":6,\"320\":24,\"321\":24,\"322\":24,\"323\":24,\"324\":24,\"325\":24,\"326\":12,\"327\":12,\"328\":1,\"329\":146,\"330\":146,\"331\":146,\"332\":1,\"333\":72,\"334\":72,\"335\":72,\"336\":72,\"337\":72,\"338\":1,\"339\":1,\"340\":2882,\"341\":2882,\"342\":0,\"343\":0,\"344\":2882,\"345\":0,\"346\":0,\"347\":2882,\"348\":2882,\"349\":2882,\"350\":2882,\"351\":2882,\"352\":2882,\"353\":1,\"354\":49,\"355\":49,\"356\":149,\"357\":149,\"358\":149,\"359\":149,\"360\":149,\"361\":149,\"362\":149,\"363\":49,\"364\":1,\"365\":2,\"366\":2,\"367\":2},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"locations\":[{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":48,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":12},\"end\":{\"line\":45,\"column\":108}},\"locations\":[{\"start\":{\"line\":45,\"column\":12},\"end\":{\"line\":45,\"column\":108}}]},\"2\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":34},\"end\":{\"line\":45,\"column\":52}},\"locations\":[{\"start\":{\"line\":45,\"column\":34},\"end\":{\"line\":45,\"column\":52}}]},\"3\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":53},\"end\":{\"line\":45,\"column\":107}},\"locations\":[{\"start\":{\"line\":45,\"column\":53},\"end\":{\"line\":45,\"column\":107}}]},\"4\":{\"type\":\"branch\",\"line\":46,\"loc\":{\"start\":{\"line\":46,\"column\":9},\"end\":{\"line\":46,\"column\":23}},\"locations\":[{\"start\":{\"line\":46,\"column\":9},\"end\":{\"line\":46,\"column\":23}}]},\"5\":{\"type\":\"branch\",\"line\":50,\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"locations\":[{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":52,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":55,\"loc\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":236,\"column\":1}},\"locations\":[{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":236,\"column\":1}}]},\"7\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":24},\"end\":{\"line\":62,\"column\":3}},\"locations\":[{\"start\":{\"line\":56,\"column\":24},\"end\":{\"line\":62,\"column\":3}}]},\"8\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":-1},\"end\":{\"line\":83,\"column\":33}},\"locations\":[{\"start\":{\"line\":63,\"column\":-1},\"end\":{\"line\":83,\"column\":33}}]},\"9\":{\"type\":\"branch\",\"line\":83,\"loc\":{\"start\":{\"line\":83,\"column\":33},\"end\":{\"line\":233,\"column\":3}},\"locations\":[{\"start\":{\"line\":83,\"column\":33},\"end\":{\"line\":233,\"column\":3}}]},\"10\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":38},\"end\":{\"line\":179,\"column\":5}},\"locations\":[{\"start\":{\"line\":93,\"column\":38},\"end\":{\"line\":179,\"column\":5}}]},\"11\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":19},\"end\":{\"line\":100,\"column\":32}},\"locations\":[{\"start\":{\"line\":100,\"column\":19},\"end\":{\"line\":100,\"column\":32}}]},\"12\":{\"type\":\"branch\",\"line\":100,\"loc\":{\"start\":{\"line\":100,\"column\":34},\"end\":{\"line\":102,\"column\":7}},\"locations\":[{\"start\":{\"line\":100,\"column\":34},\"end\":{\"line\":102,\"column\":7}}]},\"13\":{\"type\":\"branch\",\"line\":103,\"loc\":{\"start\":{\"line\":103,\"column\":-1},\"end\":{\"line\":158,\"column\":7}},\"locations\":[{\"start\":{\"line\":103,\"column\":-1},\"end\":{\"line\":158,\"column\":7}}]},\"14\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":38},\"end\":{\"line\":113,\"column\":7}},\"locations\":[{\"start\":{\"line\":104,\"column\":38},\"end\":{\"line\":113,\"column\":7}}]},\"15\":{\"type\":\"branch\",\"line\":109,\"loc\":{\"start\":{\"line\":109,\"column\":56},\"end\":{\"line\":109,\"column\":85}},\"locations\":[{\"start\":{\"line\":109,\"column\":56},\"end\":{\"line\":109,\"column\":85}}]},\"16\":{\"type\":\"branch\",\"line\":109,\"loc\":{\"start\":{\"line\":109,\"column\":86},\"end\":{\"line\":109,\"column\":98}},\"locations\":[{\"start\":{\"line\":109,\"column\":86},\"end\":{\"line\":109,\"column\":98}}]},\"17\":{\"type\":\"branch\",\"line\":114,\"loc\":{\"start\":{\"line\":114,\"column\":-1},\"end\":{\"line\":158,\"column\":7}},\"locations\":[{\"start\":{\"line\":114,\"column\":-1},\"end\":{\"line\":158,\"column\":7}}]},\"18\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":49},\"end\":{\"line\":115,\"column\":77}},\"locations\":[{\"start\":{\"line\":115,\"column\":49},\"end\":{\"line\":115,\"column\":77}}]},\"19\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":79},\"end\":{\"line\":158,\"column\":7}},\"locations\":[{\"start\":{\"line\":115,\"column\":79},\"end\":{\"line\":158,\"column\":7}}]},\"20\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":79},\"end\":{\"line\":129,\"column\":7}},\"locations\":[{\"start\":{\"line\":115,\"column\":79},\"end\":{\"line\":129,\"column\":7}}]},\"21\":{\"type\":\"branch\",\"line\":130,\"loc\":{\"start\":{\"line\":130,\"column\":-1},\"end\":{\"line\":158,\"column\":7}},\"locations\":[{\"start\":{\"line\":130,\"column\":-1},\"end\":{\"line\":158,\"column\":7}}]},\"22\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":49},\"end\":{\"line\":131,\"column\":76}},\"locations\":[{\"start\":{\"line\":131,\"column\":49},\"end\":{\"line\":131,\"column\":76}}]},\"23\":{\"type\":\"branch\",\"line\":131,\"loc\":{\"start\":{\"line\":131,\"column\":78},\"end\":{\"line\":139,\"column\":7}},\"locations\":[{\"start\":{\"line\":131,\"column\":78},\"end\":{\"line\":139,\"column\":7}}]},\"24\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":53},\"end\":{\"line\":134,\"column\":82}},\"locations\":[{\"start\":{\"line\":134,\"column\":53},\"end\":{\"line\":134,\"column\":82}}]},\"25\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":83},\"end\":{\"line\":134,\"column\":95}},\"locations\":[{\"start\":{\"line\":134,\"column\":83},\"end\":{\"line\":134,\"column\":95}}]},\"26\":{\"type\":\"branch\",\"line\":134,\"loc\":{\"start\":{\"line\":134,\"column\":109},\"end\":{\"line\":134,\"column\":119}},\"locations\":[{\"start\":{\"line\":134,\"column\":109},\"end\":{\"line\":134,\"column\":119}}]},\"27\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":-1},\"end\":{\"line\":158,\"column\":7}},\"locations\":[{\"start\":{\"line\":140,\"column\":-1},\"end\":{\"line\":158,\"column\":7}}]},\"28\":{\"type\":\"branch\",\"line\":141,\"loc\":{\"start\":{\"line\":141,\"column\":74},\"end\":{\"line\":156,\"column\":13}},\"locations\":[{\"start\":{\"line\":141,\"column\":74},\"end\":{\"line\":156,\"column\":13}}]},\"29\":{\"type\":\"branch\",\"line\":147,\"loc\":{\"start\":{\"line\":147,\"column\":90},\"end\":{\"line\":147,\"column\":97}},\"locations\":[{\"start\":{\"line\":147,\"column\":90},\"end\":{\"line\":147,\"column\":97}}]},\"30\":{\"type\":\"branch\",\"line\":149,\"loc\":{\"start\":{\"line\":149,\"column\":21},\"end\":{\"line\":149,\"column\":83}},\"locations\":[{\"start\":{\"line\":149,\"column\":21},\"end\":{\"line\":149,\"column\":83}}]},\"31\":{\"type\":\"branch\",\"line\":156,\"loc\":{\"start\":{\"line\":156,\"column\":7},\"end\":{\"line\":158,\"column\":7}},\"locations\":[{\"start\":{\"line\":156,\"column\":7},\"end\":{\"line\":158,\"column\":7}}]},\"32\":{\"type\":\"branch\",\"line\":159,\"loc\":{\"start\":{\"line\":159,\"column\":-1},\"end\":{\"line\":160,\"column\":29}},\"locations\":[{\"start\":{\"line\":159,\"column\":-1},\"end\":{\"line\":160,\"column\":29}}]},\"33\":{\"type\":\"branch\",\"line\":160,\"loc\":{\"start\":{\"line\":160,\"column\":29},\"end\":{\"line\":178,\"column\":7}},\"locations\":[{\"start\":{\"line\":160,\"column\":29},\"end\":{\"line\":178,\"column\":7}}]},\"34\":{\"type\":\"branch\",\"line\":161,\"loc\":{\"start\":{\"line\":161,\"column\":46},\"end\":{\"line\":166,\"column\":15}},\"locations\":[{\"start\":{\"line\":161,\"column\":46},\"end\":{\"line\":166,\"column\":15}}]},\"35\":{\"type\":\"branch\",\"line\":166,\"loc\":{\"start\":{\"line\":166,\"column\":9},\"end\":{\"line\":177,\"column\":9}},\"locations\":[{\"start\":{\"line\":166,\"column\":9},\"end\":{\"line\":177,\"column\":9}}]},\"36\":{\"type\":\"branch\",\"line\":167,\"loc\":{\"start\":{\"line\":167,\"column\":40},\"end\":{\"line\":174,\"column\":11}},\"locations\":[{\"start\":{\"line\":167,\"column\":40},\"end\":{\"line\":174,\"column\":11}}]},\"37\":{\"type\":\"branch\",\"line\":175,\"loc\":{\"start\":{\"line\":175,\"column\":9},\"end\":{\"line\":177,\"column\":9}},\"locations\":[{\"start\":{\"line\":175,\"column\":9},\"end\":{\"line\":177,\"column\":9}}]},\"38\":{\"type\":\"branch\",\"line\":180,\"loc\":{\"start\":{\"line\":180,\"column\":-1},\"end\":{\"line\":186,\"column\":34}},\"locations\":[{\"start\":{\"line\":180,\"column\":-1},\"end\":{\"line\":186,\"column\":34}}]},\"39\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":34},\"end\":{\"line\":186,\"column\":42}},\"locations\":[{\"start\":{\"line\":186,\"column\":34},\"end\":{\"line\":186,\"column\":42}}]},\"40\":{\"type\":\"branch\",\"line\":186,\"loc\":{\"start\":{\"line\":186,\"column\":51},\"end\":{\"line\":199,\"column\":5}},\"locations\":[{\"start\":{\"line\":186,\"column\":51},\"end\":{\"line\":199,\"column\":5}}]},\"41\":{\"type\":\"branch\",\"line\":188,\"loc\":{\"start\":{\"line\":188,\"column\":35},\"end\":{\"line\":192,\"column\":7}},\"locations\":[{\"start\":{\"line\":188,\"column\":35},\"end\":{\"line\":192,\"column\":7}}]},\"42\":{\"type\":\"branch\",\"line\":200,\"loc\":{\"start\":{\"line\":200,\"column\":-1},\"end\":{\"line\":205,\"column\":30}},\"locations\":[{\"start\":{\"line\":200,\"column\":-1},\"end\":{\"line\":205,\"column\":30}}]},\"43\":{\"type\":\"branch\",\"line\":205,\"loc\":{\"start\":{\"line\":205,\"column\":30},\"end\":{\"line\":230,\"column\":5}},\"locations\":[{\"start\":{\"line\":205,\"column\":30},\"end\":{\"line\":230,\"column\":5}}]},\"44\":{\"type\":\"branch\",\"line\":231,\"loc\":{\"start\":{\"line\":231,\"column\":-1},\"end\":{\"line\":233,\"column\":3}},\"locations\":[{\"start\":{\"line\":231,\"column\":-1},\"end\":{\"line\":233,\"column\":3}}]},\"45\":{\"type\":\"branch\",\"line\":234,\"loc\":{\"start\":{\"line\":234,\"column\":-1},\"end\":{\"line\":236,\"column\":1}},\"locations\":[{\"start\":{\"line\":234,\"column\":-1},\"end\":{\"line\":236,\"column\":1}}]},\"46\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":12},\"end\":{\"line\":66,\"column\":105}},\"locations\":[{\"start\":{\"line\":66,\"column\":12},\"end\":{\"line\":66,\"column\":105}}]},\"47\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":34},\"end\":{\"line\":66,\"column\":52}},\"locations\":[{\"start\":{\"line\":66,\"column\":34},\"end\":{\"line\":66,\"column\":52}}]},\"48\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":53},\"end\":{\"line\":66,\"column\":104}},\"locations\":[{\"start\":{\"line\":66,\"column\":53},\"end\":{\"line\":66,\"column\":104}}]},\"49\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":37},\"end\":{\"line\":71,\"column\":60}},\"locations\":[{\"start\":{\"line\":71,\"column\":37},\"end\":{\"line\":71,\"column\":60}}]},\"50\":{\"type\":\"branch\",\"line\":74,\"loc\":{\"start\":{\"line\":74,\"column\":35},\"end\":{\"line\":77,\"column\":6}},\"locations\":[{\"start\":{\"line\":74,\"column\":35},\"end\":{\"line\":77,\"column\":6}}]},\"51\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":84},\"end\":{\"line\":76,\"column\":98}},\"locations\":[{\"start\":{\"line\":76,\"column\":84},\"end\":{\"line\":76,\"column\":98}}]},\"52\":{\"type\":\"branch\",\"line\":141,\"loc\":{\"start\":{\"line\":141,\"column\":31},\"end\":{\"line\":141,\"column\":50}},\"locations\":[{\"start\":{\"line\":141,\"column\":31},\"end\":{\"line\":141,\"column\":50}}]},\"53\":{\"type\":\"branch\",\"line\":142,\"loc\":{\"start\":{\"line\":142,\"column\":44},\"end\":{\"line\":142,\"column\":82}},\"locations\":[{\"start\":{\"line\":142,\"column\":44},\"end\":{\"line\":142,\"column\":82}}]},\"54\":{\"type\":\"branch\",\"line\":146,\"loc\":{\"start\":{\"line\":146,\"column\":61},\"end\":{\"line\":146,\"column\":115}},\"locations\":[{\"start\":{\"line\":146,\"column\":61},\"end\":{\"line\":146,\"column\":115}}]},\"55\":{\"type\":\"branch\",\"line\":147,\"loc\":{\"start\":{\"line\":147,\"column\":52},\"end\":{\"line\":147,\"column\":89}},\"locations\":[{\"start\":{\"line\":147,\"column\":52},\"end\":{\"line\":147,\"column\":89}}]},\"56\":{\"type\":\"branch\",\"line\":169,\"loc\":{\"start\":{\"line\":169,\"column\":14},\"end\":{\"line\":169,\"column\":85}},\"locations\":[{\"start\":{\"line\":169,\"column\":14},\"end\":{\"line\":169,\"column\":85}}]},\"57\":{\"type\":\"branch\",\"line\":193,\"loc\":{\"start\":{\"line\":193,\"column\":48},\"end\":{\"line\":198,\"column\":7}},\"locations\":[{\"start\":{\"line\":193,\"column\":48},\"end\":{\"line\":198,\"column\":7}}]},\"58\":{\"type\":\"branch\",\"line\":213,\"loc\":{\"start\":{\"line\":213,\"column\":42},\"end\":{\"line\":227,\"column\":7}},\"locations\":[{\"start\":{\"line\":213,\"column\":42},\"end\":{\"line\":227,\"column\":7}}]},\"59\":{\"type\":\"branch\",\"line\":215,\"loc\":{\"start\":{\"line\":215,\"column\":20},\"end\":{\"line\":217,\"column\":9}},\"locations\":[{\"start\":{\"line\":215,\"column\":20},\"end\":{\"line\":217,\"column\":9}}]},\"60\":{\"type\":\"branch\",\"line\":218,\"loc\":{\"start\":{\"line\":218,\"column\":-1},\"end\":{\"line\":219,\"column\":52}},\"locations\":[{\"start\":{\"line\":218,\"column\":-1},\"end\":{\"line\":219,\"column\":52}}]},\"61\":{\"type\":\"branch\",\"line\":219,\"loc\":{\"start\":{\"line\":219,\"column\":52},\"end\":{\"line\":221,\"column\":9}},\"locations\":[{\"start\":{\"line\":219,\"column\":52},\"end\":{\"line\":221,\"column\":9}}]},\"62\":{\"type\":\"branch\",\"line\":222,\"loc\":{\"start\":{\"line\":222,\"column\":-1},\"end\":{\"line\":224,\"column\":47}},\"locations\":[{\"start\":{\"line\":222,\"column\":-1},\"end\":{\"line\":224,\"column\":47}}]},\"63\":{\"type\":\"branch\",\"line\":224,\"loc\":{\"start\":{\"line\":224,\"column\":47},\"end\":{\"line\":226,\"column\":9}},\"locations\":[{\"start\":{\"line\":224,\"column\":47},\"end\":{\"line\":226,\"column\":9}}]},\"64\":{\"type\":\"branch\",\"line\":214,\"loc\":{\"start\":{\"line\":214,\"column\":43},\"end\":{\"line\":214,\"column\":100}},\"locations\":[{\"start\":{\"line\":214,\"column\":43},\"end\":{\"line\":214,\"column\":100}}]},\"65\":{\"type\":\"branch\",\"line\":238,\"loc\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"locations\":[{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":269,\"column\":1}}]},\"66\":{\"type\":\"branch\",\"line\":244,\"loc\":{\"start\":{\"line\":244,\"column\":35},\"end\":{\"line\":246,\"column\":3}},\"locations\":[{\"start\":{\"line\":244,\"column\":35},\"end\":{\"line\":246,\"column\":3}}]},\"67\":{\"type\":\"branch\",\"line\":247,\"loc\":{\"start\":{\"line\":247,\"column\":33},\"end\":{\"line\":251,\"column\":3}},\"locations\":[{\"start\":{\"line\":247,\"column\":33},\"end\":{\"line\":251,\"column\":3}}]},\"68\":{\"type\":\"branch\",\"line\":254,\"loc\":{\"start\":{\"line\":254,\"column\":30},\"end\":{\"line\":256,\"column\":3}},\"locations\":[{\"start\":{\"line\":254,\"column\":30},\"end\":{\"line\":256,\"column\":3}}]},\"69\":{\"type\":\"branch\",\"line\":253,\"loc\":{\"start\":{\"line\":253,\"column\":48},\"end\":{\"line\":253,\"column\":97}},\"locations\":[{\"start\":{\"line\":253,\"column\":48},\"end\":{\"line\":253,\"column\":97}}]},\"70\":{\"type\":\"branch\",\"line\":257,\"loc\":{\"start\":{\"line\":257,\"column\":28},\"end\":{\"line\":268,\"column\":3}},\"locations\":[{\"start\":{\"line\":257,\"column\":28},\"end\":{\"line\":268,\"column\":3}}]},\"71\":{\"type\":\"branch\",\"line\":260,\"loc\":{\"start\":{\"line\":260,\"column\":37},\"end\":{\"line\":262,\"column\":5}},\"locations\":[{\"start\":{\"line\":260,\"column\":37},\"end\":{\"line\":262,\"column\":5}}]},\"72\":{\"type\":\"branch\",\"line\":264,\"loc\":{\"start\":{\"line\":264,\"column\":48},\"end\":{\"line\":266,\"column\":5}},\"locations\":[{\"start\":{\"line\":264,\"column\":48},\"end\":{\"line\":266,\"column\":5}}]},\"73\":{\"type\":\"branch\",\"line\":258,\"loc\":{\"start\":{\"line\":258,\"column\":44},\"end\":{\"line\":258,\"column\":63}},\"locations\":[{\"start\":{\"line\":258,\"column\":44},\"end\":{\"line\":258,\"column\":63}}]},\"74\":{\"type\":\"branch\",\"line\":271,\"loc\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":284,\"column\":1}},\"locations\":[{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":284,\"column\":1}}]},\"75\":{\"type\":\"branch\",\"line\":277,\"loc\":{\"start\":{\"line\":277,\"column\":23},\"end\":{\"line\":277,\"column\":42}},\"locations\":[{\"start\":{\"line\":277,\"column\":23},\"end\":{\"line\":277,\"column\":42}}]},\"76\":{\"type\":\"branch\",\"line\":277,\"loc\":{\"start\":{\"line\":277,\"column\":43},\"end\":{\"line\":277,\"column\":55}},\"locations\":[{\"start\":{\"line\":277,\"column\":43},\"end\":{\"line\":277,\"column\":55}}]},\"77\":{\"type\":\"branch\",\"line\":278,\"loc\":{\"start\":{\"line\":278,\"column\":23},\"end\":{\"line\":278,\"column\":43}},\"locations\":[{\"start\":{\"line\":278,\"column\":23},\"end\":{\"line\":278,\"column\":43}}]},\"78\":{\"type\":\"branch\",\"line\":278,\"loc\":{\"start\":{\"line\":278,\"column\":44},\"end\":{\"line\":278,\"column\":56}},\"locations\":[{\"start\":{\"line\":278,\"column\":44},\"end\":{\"line\":278,\"column\":56}}]},\"79\":{\"type\":\"branch\",\"line\":280,\"loc\":{\"start\":{\"line\":280,\"column\":50},\"end\":{\"line\":280,\"column\":79}},\"locations\":[{\"start\":{\"line\":280,\"column\":50},\"end\":{\"line\":280,\"column\":79}}]},\"80\":{\"type\":\"branch\",\"line\":280,\"loc\":{\"start\":{\"line\":280,\"column\":80},\"end\":{\"line\":280,\"column\":92}},\"locations\":[{\"start\":{\"line\":280,\"column\":80},\"end\":{\"line\":280,\"column\":92}}]},\"81\":{\"type\":\"branch\",\"line\":286,\"loc\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":300,\"column\":1}},\"locations\":[{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":300,\"column\":1}}]},\"82\":{\"type\":\"branch\",\"line\":296,\"loc\":{\"start\":{\"line\":296,\"column\":50},\"end\":{\"line\":296,\"column\":79}},\"locations\":[{\"start\":{\"line\":296,\"column\":50},\"end\":{\"line\":296,\"column\":79}}]},\"83\":{\"type\":\"branch\",\"line\":302,\"loc\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":328,\"column\":1}},\"locations\":[{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":328,\"column\":1}}]},\"84\":{\"type\":\"branch\",\"line\":310,\"loc\":{\"start\":{\"line\":310,\"column\":61},\"end\":{\"line\":326,\"column\":3}},\"locations\":[{\"start\":{\"line\":310,\"column\":61},\"end\":{\"line\":326,\"column\":3}}]},\"85\":{\"type\":\"branch\",\"line\":316,\"loc\":{\"start\":{\"line\":316,\"column\":23},\"end\":{\"line\":316,\"column\":31}},\"locations\":[{\"start\":{\"line\":316,\"column\":23},\"end\":{\"line\":316,\"column\":31}}]},\"86\":{\"type\":\"branch\",\"line\":316,\"loc\":{\"start\":{\"line\":316,\"column\":32},\"end\":{\"line\":316,\"column\":57}},\"locations\":[{\"start\":{\"line\":316,\"column\":32},\"end\":{\"line\":316,\"column\":57}}]},\"87\":{\"type\":\"branch\",\"line\":318,\"loc\":{\"start\":{\"line\":318,\"column\":8},\"end\":{\"line\":320,\"column\":23}},\"locations\":[{\"start\":{\"line\":318,\"column\":8},\"end\":{\"line\":320,\"column\":23}}]},\"88\":{\"type\":\"branch\",\"line\":322,\"loc\":{\"start\":{\"line\":322,\"column\":8},\"end\":{\"line\":322,\"column\":19}},\"locations\":[{\"start\":{\"line\":322,\"column\":8},\"end\":{\"line\":322,\"column\":19}}]},\"89\":{\"type\":\"branch\",\"line\":324,\"loc\":{\"start\":{\"line\":324,\"column\":52},\"end\":{\"line\":324,\"column\":81}},\"locations\":[{\"start\":{\"line\":324,\"column\":52},\"end\":{\"line\":324,\"column\":81}}]},\"90\":{\"type\":\"branch\",\"line\":324,\"loc\":{\"start\":{\"line\":324,\"column\":82},\"end\":{\"line\":324,\"column\":94}},\"locations\":[{\"start\":{\"line\":324,\"column\":82},\"end\":{\"line\":324,\"column\":94}}]},\"91\":{\"type\":\"branch\",\"line\":313,\"loc\":{\"start\":{\"line\":313,\"column\":39},\"end\":{\"line\":313,\"column\":58}},\"locations\":[{\"start\":{\"line\":313,\"column\":39},\"end\":{\"line\":313,\"column\":58}}]},\"92\":{\"type\":\"branch\",\"line\":319,\"loc\":{\"start\":{\"line\":319,\"column\":29},\"end\":{\"line\":319,\"column\":67}},\"locations\":[{\"start\":{\"line\":319,\"column\":29},\"end\":{\"line\":319,\"column\":67}}]},\"93\":{\"type\":\"branch\",\"line\":330,\"loc\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":332,\"column\":1}},\"locations\":[{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":332,\"column\":1}}]},\"94\":{\"type\":\"branch\",\"line\":331,\"loc\":{\"start\":{\"line\":331,\"column\":37},\"end\":{\"line\":331,\"column\":67}},\"locations\":[{\"start\":{\"line\":331,\"column\":37},\"end\":{\"line\":331,\"column\":67}}]},\"95\":{\"type\":\"branch\",\"line\":331,\"loc\":{\"start\":{\"line\":331,\"column\":68},\"end\":{\"line\":331,\"column\":77}},\"locations\":[{\"start\":{\"line\":331,\"column\":68},\"end\":{\"line\":331,\"column\":77}}]},\"96\":{\"type\":\"branch\",\"line\":334,\"loc\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":338,\"column\":1}},\"locations\":[{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":338,\"column\":1}}]},\"97\":{\"type\":\"branch\",\"line\":336,\"loc\":{\"start\":{\"line\":336,\"column\":12},\"end\":{\"line\":336,\"column\":42}},\"locations\":[{\"start\":{\"line\":336,\"column\":12},\"end\":{\"line\":336,\"column\":42}}]},\"98\":{\"type\":\"branch\",\"line\":341,\"loc\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":353,\"column\":1}},\"locations\":[{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":353,\"column\":1}}]},\"99\":{\"type\":\"branch\",\"line\":342,\"loc\":{\"start\":{\"line\":342,\"column\":25},\"end\":{\"line\":344,\"column\":3}},\"locations\":[{\"start\":{\"line\":342,\"column\":25},\"end\":{\"line\":344,\"column\":3}}]},\"100\":{\"type\":\"branch\",\"line\":345,\"loc\":{\"start\":{\"line\":345,\"column\":29},\"end\":{\"line\":347,\"column\":3}},\"locations\":[{\"start\":{\"line\":345,\"column\":29},\"end\":{\"line\":347,\"column\":3}}]},\"101\":{\"type\":\"branch\",\"line\":348,\"loc\":{\"start\":{\"line\":348,\"column\":42},\"end\":{\"line\":348,\"column\":65}},\"locations\":[{\"start\":{\"line\":348,\"column\":42},\"end\":{\"line\":348,\"column\":65}}]},\"102\":{\"type\":\"branch\",\"line\":348,\"loc\":{\"start\":{\"line\":348,\"column\":66},\"end\":{\"line\":348,\"column\":72}},\"locations\":[{\"start\":{\"line\":348,\"column\":66},\"end\":{\"line\":348,\"column\":72}}]},\"103\":{\"type\":\"branch\",\"line\":349,\"loc\":{\"start\":{\"line\":349,\"column\":46},\"end\":{\"line\":349,\"column\":82}},\"locations\":[{\"start\":{\"line\":349,\"column\":46},\"end\":{\"line\":349,\"column\":82}}]},\"104\":{\"type\":\"branch\",\"line\":349,\"loc\":{\"start\":{\"line\":349,\"column\":83},\"end\":{\"line\":349,\"column\":89}},\"locations\":[{\"start\":{\"line\":349,\"column\":83},\"end\":{\"line\":349,\"column\":89}}]},\"105\":{\"type\":\"branch\",\"line\":351,\"loc\":{\"start\":{\"line\":351,\"column\":4},\"end\":{\"line\":351,\"column\":72}},\"locations\":[{\"start\":{\"line\":351,\"column\":4},\"end\":{\"line\":351,\"column\":72}}]},\"106\":{\"type\":\"branch\",\"line\":352,\"loc\":{\"start\":{\"line\":352,\"column\":4},\"end\":{\"line\":352,\"column\":22}},\"locations\":[{\"start\":{\"line\":352,\"column\":4},\"end\":{\"line\":352,\"column\":22}}]},\"107\":{\"type\":\"branch\",\"line\":355,\"loc\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":364,\"column\":1}},\"locations\":[{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":364,\"column\":1}}]},\"108\":{\"type\":\"branch\",\"line\":356,\"loc\":{\"start\":{\"line\":356,\"column\":115},\"end\":{\"line\":363,\"column\":3}},\"locations\":[{\"start\":{\"line\":356,\"column\":115},\"end\":{\"line\":363,\"column\":3}}]},\"109\":{\"type\":\"branch\",\"line\":356,\"loc\":{\"start\":{\"line\":356,\"column\":50},\"end\":{\"line\":356,\"column\":112}},\"locations\":[{\"start\":{\"line\":356,\"column\":50},\"end\":{\"line\":356,\"column\":112}}]},\"110\":{\"type\":\"branch\",\"line\":356,\"loc\":{\"start\":{\"line\":356,\"column\":85},\"end\":{\"line\":356,\"column\":112}},\"locations\":[{\"start\":{\"line\":356,\"column\":85},\"end\":{\"line\":356,\"column\":112}}]},\"111\":{\"type\":\"branch\",\"line\":359,\"loc\":{\"start\":{\"line\":359,\"column\":8},\"end\":{\"line\":359,\"column\":99}},\"locations\":[{\"start\":{\"line\":359,\"column\":8},\"end\":{\"line\":359,\"column\":99}}]},\"112\":{\"type\":\"branch\",\"line\":359,\"loc\":{\"start\":{\"line\":359,\"column\":38},\"end\":{\"line\":359,\"column\":99}},\"locations\":[{\"start\":{\"line\":359,\"column\":38},\"end\":{\"line\":359,\"column\":99}}]},\"113\":{\"type\":\"branch\",\"line\":359,\"loc\":{\"start\":{\"line\":359,\"column\":60},\"end\":{\"line\":359,\"column\":98}},\"locations\":[{\"start\":{\"line\":359,\"column\":60},\"end\":{\"line\":359,\"column\":98}}]},\"114\":{\"type\":\"branch\",\"line\":366,\"loc\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":368,\"column\":1}},\"locations\":[{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":368,\"column\":1}}]}},\"b\":{\"0\":[74],\"1\":[1588],\"2\":[630],\"3\":[303],\"4\":[12],\"5\":[22],\"6\":[55],\"7\":[5],\"8\":[50],\"9\":[249],\"10\":[2840],\"11\":[2297],\"12\":[2297],\"13\":[543],\"14\":[22],\"15\":[10],\"16\":[12],\"17\":[521],\"18\":[514],\"19\":[486],\"20\":[365],\"21\":[156],\"22\":[149],\"23\":[149],\"24\":[104],\"25\":[45],\"26\":[0],\"27\":[7],\"28\":[6],\"29\":[0],\"30\":[0],\"31\":[1],\"32\":[2839],\"33\":[11],\"34\":[3],\"35\":[8],\"36\":[0],\"37\":[0],\"38\":[248],\"39\":[3],\"40\":[3],\"41\":[0],\"42\":[248],\"43\":[0],\"44\":[248],\"45\":[49],\"46\":[1134],\"47\":[486],\"48\":[261],\"49\":[249],\"50\":[25],\"51\":[57],\"52\":[12],\"53\":[12],\"54\":[6],\"55\":[2],\"56\":[2],\"57\":[3],\"58\":[5],\"59\":[1],\"60\":[4],\"61\":[1],\"62\":[3],\"63\":[0],\"64\":[16],\"65\":[3],\"66\":[0],\"67\":[0],\"68\":[0],\"69\":[6],\"70\":[6],\"71\":[0],\"72\":[0],\"73\":[15],\"74\":[2662],\"75\":[365],\"76\":[2297],\"77\":[365],\"78\":[2297],\"79\":[2425],\"80\":[237],\"81\":[6],\"82\":[0],\"83\":[12],\"84\":[24],\"85\":[6],\"86\":[18],\"87\":[6],\"88\":[18],\"89\":[21],\"90\":[3],\"91\":[48],\"92\":[6],\"93\":[146],\"94\":[70],\"95\":[76],\"96\":[72],\"97\":[1552],\"98\":[2882],\"99\":[0],\"100\":[0],\"101\":[2578],\"102\":[304],\"103\":[155],\"104\":[2727],\"105\":[2538],\"106\":[344],\"107\":[49],\"108\":[149],\"109\":[514],\"110\":[365],\"111\":[1368],\"112\":[149],\"113\":[547],\"114\":[2]},\"fnMap\":{\"0\":{\"name\":\"getAllJsonObjects\",\"decl\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"loc\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"line\":43},\"1\":{\"name\":\"getAllEnums\",\"decl\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":52,\"column\":1}},\"line\":50},\"2\":{\"name\":\"getAllEntitiesRelations\",\"decl\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":236,\"column\":1}},\"loc\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":236,\"column\":1}},\"line\":55},\"3\":{\"name\":\"getJoinIndexFields\",\"decl\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"loc\":{\"start\":{\"line\":238,\"column\":0},\"end\":{\"line\":269,\"column\":1}},\"line\":238},\"4\":{\"name\":\"packEntityField\",\"decl\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":284,\"column\":1}},\"loc\":{\"start\":{\"line\":271,\"column\":0},\"end\":{\"line\":284,\"column\":1}},\"line\":271},\"5\":{\"name\":\"packJSONField\",\"decl\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":300,\"column\":1}},\"loc\":{\"start\":{\"line\":286,\"column\":0},\"end\":{\"line\":300,\"column\":1}},\"line\":286},\"6\":{\"name\":\"setJsonObjectType\",\"decl\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":328,\"column\":1}},\"loc\":{\"start\":{\"line\":302,\"column\":0},\"end\":{\"line\":328,\"column\":1}},\"line\":302},\"7\":{\"name\":\"getSchema\",\"decl\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":332,\"column\":1}},\"loc\":{\"start\":{\"line\":330,\"column\":0},\"end\":{\"line\":332,\"column\":1}},\"line\":330},\"8\":{\"name\":\"getEnumsFromSchema\",\"decl\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":338,\"column\":1}},\"loc\":{\"start\":{\"line\":334,\"column\":0},\"end\":{\"line\":338,\"column\":1}},\"line\":334},\"9\":{\"name\":\"extractType\",\"decl\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":353,\"column\":1}},\"loc\":{\"start\":{\"line\":341,\"column\":0},\"end\":{\"line\":353,\"column\":1}},\"line\":341},\"10\":{\"name\":\"validateRelations\",\"decl\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":364,\"column\":1}},\"loc\":{\"start\":{\"line\":355,\"column\":0},\"end\":{\"line\":364,\"column\":1}},\"line\":355},\"11\":{\"name\":\"isBooleanValueNode\",\"decl\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":368,\"column\":1}},\"loc\":{\"start\":{\"line\":366,\"column\":0},\"end\":{\"line\":368,\"column\":1}},\"line\":366}},\"f\":{\"0\":74,\"1\":22,\"2\":55,\"3\":3,\"4\":2662,\"5\":6,\"6\":12,\"7\":146,\"8\":72,\"9\":2882,\"10\":49,\"11\":2}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":27}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":25}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":26}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/schema.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/schema.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":20}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":97}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":47}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":39}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":42}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":40}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":42}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":66}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":65}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":1}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":67}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":30}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":25}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":42}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":79}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":45}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":56,\"9\":56,\"10\":56,\"11\":56,\"12\":1,\"13\":76,\"14\":76,\"15\":76,\"16\":1,\"17\":56,\"18\":56,\"19\":56,\"20\":56,\"21\":56,\"22\":1,\"23\":56,\"24\":56,\"25\":56},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"locations\":[{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":12,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":16,\"column\":1}},\"locations\":[{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":16,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":18,\"loc\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"locations\":[{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":22,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"locations\":[{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":26,\"column\":1}}]}},\"b\":{\"0\":[56],\"1\":[76],\"2\":[56],\"3\":[56]},\"fnMap\":{\"0\":{\"name\":\"loadBaseSchema\",\"decl\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"loc\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"line\":9},\"1\":{\"name\":\"buildSchemaFromFile\",\"decl\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":16,\"column\":1}},\"loc\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":16,\"column\":1}},\"line\":14},\"2\":{\"name\":\"buildSchemaFromString\",\"decl\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"loc\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":22,\"column\":1}},\"line\":18},\"3\":{\"name\":\"buildSchemaFromDocumentNode\",\"decl\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"loc\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"line\":24}},\"f\":{\"0\":56,\"1\":76,\"2\":56,\"3\":56}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/schema/directives.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/schema/directives.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":30}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":30}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":60}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":29}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":50}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":55}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":60}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":68}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/schema/scalas.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/schema/scalas.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":30}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":26}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":15}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":19}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":13}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":14}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":14}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/graphql/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":40}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":15}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":33}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":1}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":39}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":15}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":57}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":40}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":20}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":1}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":46}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":30}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":36}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":28}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":1}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":35}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":15}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":19}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":23}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":1}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":36}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":15}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":31}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":32}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":33}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":0}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":23}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":37}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":15}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":15}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":40}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":19}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":20}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":18}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":0}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":23}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":1}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":0}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":23}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":18}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":16}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":16}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":20}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":14}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":16}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":0}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":37}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":19}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":0}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":19}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":20}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":38}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":19}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":20}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":1}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":39}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":15}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":43}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":13}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":0}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":21}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":0}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":21}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":25}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":12}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":14}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":20}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":20}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":16}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":22}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":18}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":18}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":7,\"61\":7,\"62\":7,\"63\":7,\"64\":7,\"65\":7,\"66\":7,\"67\":7,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":7,\"96\":7,\"97\":7,\"98\":7,\"99\":7,\"100\":7,\"101\":7,\"102\":7,\"103\":7,\"104\":7},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":68,\"column\":1}},\"locations\":[{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":68,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":105,\"column\":1}},\"locations\":[{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":105,\"column\":1}}]}},\"b\":{\"0\":[7],\"1\":[7]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":26}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":59}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":24}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":25}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":5,\"loc\":{\"start\":{\"line\":5,\"column\":21},\"end\":{\"line\":5,\"column\":59}},\"locations\":[{\"start\":{\"line\":5,\"column\":21},\"end\":{\"line\":5,\"column\":59}}]}},\"b\":{\"0\":[5]},\"fnMap\":{\"0\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":5,\"column\":8},\"end\":{\"line\":5,\"column\":21}},\"loc\":{\"start\":{\"line\":5,\"column\":8},\"end\":{\"line\":5,\"column\":21}},\"line\":5},\"1\":{\"name\":\"get\",\"decl\":{\"start\":{\"line\":5,\"column\":21},\"end\":{\"line\":5,\"column\":59}},\"loc\":{\"start\":{\"line\":5,\"column\":21},\"end\":{\"line\":5,\"column\":59}},\"line\":5}},\"f\":{\"0\":0,\"1\":5}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/colors.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/colors.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":26}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":35}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":50}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":71}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":21}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":16}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":14}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":17}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":16}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":15}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":15}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":20}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":2}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":80}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":54}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":54}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":86}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":41}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":3}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":41}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":90,\"19\":90,\"20\":90,\"21\":1,\"22\":90,\"23\":90,\"24\":90,\"25\":90,\"26\":0,\"27\":0},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"locations\":[{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":21,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"locations\":[{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":28,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":-1},\"end\":{\"line\":28,\"column\":1}},\"locations\":[{\"start\":{\"line\":27,\"column\":-1},\"end\":{\"line\":28,\"column\":1}}]}},\"b\":{\"0\":[90],\"1\":[90],\"2\":[0]},\"fnMap\":{\"0\":{\"name\":\"isColouredValue\",\"decl\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"loc\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"line\":19},\"1\":{\"name\":\"colorizeLevel\",\"decl\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"loc\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":28,\"column\":1}},\"line\":23}},\"f\":{\"0\":90,\"1\":90}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/constants.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/constants.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":23}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":21}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":14}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":14}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":13}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":13}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":14}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":14}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":2}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":27}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":12}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":12}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":11}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":11}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":12}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":12}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":14}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":23}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/logger.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/logger.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":34}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":43}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":50}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":44}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":47}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":31}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":17}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":20}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":19}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":21}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":36}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":5}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":51}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":7}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":25}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":1}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":21}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":28}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":63}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":33}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":0}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":118}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":36}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":21}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":28}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":68}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":16}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":22}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":19}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":30}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":32}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":10}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":8}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":18}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":31}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":13}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":35}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":45}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":26}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":34}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":37}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":43}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":39}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":20}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":24}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":42}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":17}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":16}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":13}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":15}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":43}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":47}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":47}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":51}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":64}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":24}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":46}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":46}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":43}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":34}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":11}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":43}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":37}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":70}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":25}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":41}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":56}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":43}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":20}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":60}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":13}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":11}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":106}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":10}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":0}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":52}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":78}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":9}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":8}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":28}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":19}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":47}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":59}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":29}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":23}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":20}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":22}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":8}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":0}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":19}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":93}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":14}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":75}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":7}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":12}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":32}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":5}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":3}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":0}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":44}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":39}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":64}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":37}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":5}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":39}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":3}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":0}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":42}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":28}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":75}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":3}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":47}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":36}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":75}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":3}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":0}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":39}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":50}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":3}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":0}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":45}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":51}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":0}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":52}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":66}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":71}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":95}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":96}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":53}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":65}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":50}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":48}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":49}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":50}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":5}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":3}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":10,\"28\":10,\"29\":10,\"30\":10,\"31\":10,\"32\":10,\"33\":10,\"34\":10,\"35\":10,\"36\":60,\"37\":10,\"38\":10,\"39\":10,\"40\":10,\"41\":10,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":10,\"56\":10,\"57\":10,\"58\":10,\"59\":10,\"60\":10,\"61\":90,\"62\":90,\"63\":0,\"64\":90,\"65\":90,\"66\":90,\"67\":90,\"68\":90,\"69\":90,\"70\":90,\"71\":90,\"72\":13,\"73\":0,\"74\":13,\"75\":13,\"76\":13,\"77\":13,\"78\":90,\"79\":10,\"80\":10,\"81\":10,\"82\":90,\"83\":90,\"84\":10,\"85\":10,\"86\":10,\"87\":10,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":10,\"103\":10,\"104\":10,\"105\":10,\"106\":1,\"107\":1,\"108\":139,\"109\":129,\"110\":129,\"111\":129,\"112\":129,\"113\":139,\"114\":139,\"115\":1,\"116\":1,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":1,\"122\":1,\"123\":0,\"124\":0,\"125\":0,\"126\":1,\"127\":1,\"128\":387,\"129\":387,\"130\":1,\"131\":1,\"132\":129,\"133\":129,\"134\":129,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":129,\"140\":0,\"141\":0,\"142\":129,\"143\":0,\"144\":0,\"145\":0,\"146\":129,\"147\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":106,\"column\":3}},\"locations\":[{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":106,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":10},\"end\":{\"line\":55,\"column\":13}},\"locations\":[{\"start\":{\"line\":42,\"column\":10},\"end\":{\"line\":55,\"column\":13}}]},\"2\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":18},\"end\":{\"line\":103,\"column\":11}},\"locations\":[{\"start\":{\"line\":88,\"column\":18},\"end\":{\"line\":103,\"column\":11}}]},\"3\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":17},\"end\":{\"line\":32,\"column\":67}},\"locations\":[{\"start\":{\"line\":32,\"column\":17},\"end\":{\"line\":32,\"column\":67}}]},\"4\":{\"type\":\"branch\",\"line\":36,\"loc\":{\"start\":{\"line\":36,\"column\":8},\"end\":{\"line\":38,\"column\":9}},\"locations\":[{\"start\":{\"line\":36,\"column\":8},\"end\":{\"line\":38,\"column\":9}}]},\"5\":{\"type\":\"branch\",\"line\":58,\"loc\":{\"start\":{\"line\":58,\"column\":18},\"end\":{\"line\":85,\"column\":7}},\"locations\":[{\"start\":{\"line\":58,\"column\":18},\"end\":{\"line\":85,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":15},\"end\":{\"line\":80,\"column\":9}},\"locations\":[{\"start\":{\"line\":61,\"column\":15},\"end\":{\"line\":80,\"column\":9}}]},\"7\":{\"type\":\"branch\",\"line\":63,\"loc\":{\"start\":{\"line\":63,\"column\":45},\"end\":{\"line\":65,\"column\":17}},\"locations\":[{\"start\":{\"line\":63,\"column\":45},\"end\":{\"line\":65,\"column\":17}}]},\"8\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":26},\"end\":{\"line\":68,\"column\":43}},\"locations\":[{\"start\":{\"line\":68,\"column\":26},\"end\":{\"line\":68,\"column\":43}}]},\"9\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":40},\"end\":{\"line\":78,\"column\":11}},\"locations\":[{\"start\":{\"line\":72,\"column\":40},\"end\":{\"line\":78,\"column\":11}}]},\"10\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":55},\"end\":{\"line\":75,\"column\":19}},\"locations\":[{\"start\":{\"line\":73,\"column\":55},\"end\":{\"line\":75,\"column\":19}}]},\"11\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":8},\"end\":{\"line\":84,\"column\":9}},\"locations\":[{\"start\":{\"line\":82,\"column\":8},\"end\":{\"line\":84,\"column\":9}}]},\"12\":{\"type\":\"branch\",\"line\":108,\"loc\":{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"locations\":[{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":115,\"column\":3}}]},\"13\":{\"type\":\"branch\",\"line\":109,\"loc\":{\"start\":{\"line\":109,\"column\":38},\"end\":{\"line\":113,\"column\":5}},\"locations\":[{\"start\":{\"line\":109,\"column\":38},\"end\":{\"line\":113,\"column\":5}}]},\"14\":{\"type\":\"branch\",\"line\":128,\"loc\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"locations\":[{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}}]},\"15\":{\"type\":\"branch\",\"line\":132,\"loc\":{\"start\":{\"line\":132,\"column\":10},\"end\":{\"line\":147,\"column\":3}},\"locations\":[{\"start\":{\"line\":132,\"column\":10},\"end\":{\"line\":147,\"column\":3}}]},\"16\":{\"type\":\"branch\",\"line\":133,\"loc\":{\"start\":{\"line\":133,\"column\":44},\"end\":{\"line\":133,\"column\":51}},\"locations\":[{\"start\":{\"line\":133,\"column\":44},\"end\":{\"line\":133,\"column\":51}}]},\"17\":{\"type\":\"branch\",\"line\":135,\"loc\":{\"start\":{\"line\":135,\"column\":51},\"end\":{\"line\":140,\"column\":11}},\"locations\":[{\"start\":{\"line\":135,\"column\":51},\"end\":{\"line\":140,\"column\":11}}]},\"18\":{\"type\":\"branch\",\"line\":140,\"loc\":{\"start\":{\"line\":140,\"column\":52},\"end\":{\"line\":143,\"column\":11}},\"locations\":[{\"start\":{\"line\":140,\"column\":52},\"end\":{\"line\":143,\"column\":11}}]},\"19\":{\"type\":\"branch\",\"line\":143,\"loc\":{\"start\":{\"line\":143,\"column\":47},\"end\":{\"line\":146,\"column\":5}},\"locations\":[{\"start\":{\"line\":143,\"column\":47},\"end\":{\"line\":146,\"column\":5}}]}},\"b\":{\"0\":[10],\"1\":[0],\"2\":[0],\"3\":[33],\"4\":[60],\"5\":[10],\"6\":[90],\"7\":[0],\"8\":[0],\"9\":[13],\"10\":[0],\"11\":[90],\"12\":[139],\"13\":[129],\"14\":[387],\"15\":[129],\"16\":[0],\"17\":[0],\"18\":[0],\"19\":[0]},\"fnMap\":{\"0\":{\"name\":\"Logger\",\"decl\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":106,\"column\":3}},\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":106,\"column\":3}},\"line\":27},\"1\":{\"name\":\"timestamp\",\"decl\":{\"start\":{\"line\":32,\"column\":17},\"end\":{\"line\":32,\"column\":67}},\"loc\":{\"start\":{\"line\":32,\"column\":17},\"end\":{\"line\":32,\"column\":67}},\"line\":32},\"2\":{\"name\":\"level\",\"decl\":{\"start\":{\"line\":36,\"column\":8},\"end\":{\"line\":38,\"column\":9}},\"loc\":{\"start\":{\"line\":36,\"column\":8},\"end\":{\"line\":38,\"column\":9}},\"line\":36},\"3\":{\"name\":\"payload\",\"decl\":{\"start\":{\"line\":43,\"column\":23},\"end\":{\"line\":54,\"column\":15}},\"loc\":{\"start\":{\"line\":43,\"column\":23},\"end\":{\"line\":54,\"column\":15}},\"line\":43},\"4\":{\"name\":\"prettifier\",\"decl\":{\"start\":{\"line\":58,\"column\":18},\"end\":{\"line\":85,\"column\":7}},\"loc\":{\"start\":{\"line\":58,\"column\":18},\"end\":{\"line\":85,\"column\":7}},\"line\":58},\"5\":{\"name\":\"prettifier\",\"decl\":{\"start\":{\"line\":61,\"column\":15},\"end\":{\"line\":80,\"column\":9}},\"loc\":{\"start\":{\"line\":61,\"column\":15},\"end\":{\"line\":80,\"column\":9}},\"line\":61},\"6\":{\"name\":\"isObject\",\"decl\":{\"start\":{\"line\":82,\"column\":8},\"end\":{\"line\":84,\"column\":9}},\"loc\":{\"start\":{\"line\":82,\"column\":8},\"end\":{\"line\":84,\"column\":9}},\"line\":82},\"7\":{\"name\":\"getLogger\",\"decl\":{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"loc\":{\"start\":{\"line\":108,\"column\":2},\"end\":{\"line\":115,\"column\":3}},\"line\":108},\"8\":{\"name\":\"setLevel\",\"decl\":{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":121,\"column\":3}},\"loc\":{\"start\":{\"line\":117,\"column\":2},\"end\":{\"line\":121,\"column\":3}},\"line\":117},\"9\":{\"name\":\"setDebugFilter\",\"decl\":{\"start\":{\"line\":123,\"column\":2},\"end\":{\"line\":126,\"column\":3}},\"loc\":{\"start\":{\"line\":123,\"column\":2},\"end\":{\"line\":126,\"column\":3}},\"line\":123},\"10\":{\"name\":\"get debugFilter\",\"decl\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"loc\":{\"start\":{\"line\":128,\"column\":2},\"end\":{\"line\":130,\"column\":3}},\"line\":128},\"11\":{\"name\":\"applyChildDebug\",\"decl\":{\"start\":{\"line\":132,\"column\":10},\"end\":{\"line\":147,\"column\":3}},\"loc\":{\"start\":{\"line\":132,\"column\":10},\"end\":{\"line\":147,\"column\":3}},\"line\":132}},\"f\":{\"0\":10,\"1\":33,\"2\":60,\"3\":0,\"4\":10,\"5\":90,\"6\":90,\"7\":139,\"8\":0,\"9\":0,\"10\":387,\"11\":129}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/util.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/logger/util.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":37}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":39}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":86}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":111}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":0,\"7\":0,\"8\":0},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"levelFilter\",\"decl\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"line\":7}},\"f\":{\"0\":0}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/query/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/query/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":24}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":27}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/query/metadata.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/query/metadata.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":50}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":44}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":64}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":63}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":40}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":105}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":94}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":83}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":50}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":76}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":1,\"14\":1,\"15\":180,\"16\":180,\"17\":180,\"18\":180},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":16,\"loc\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":19,\"column\":1}},\"locations\":[{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":19,\"column\":1}}]}},\"b\":{\"0\":[180]},\"fnMap\":{\"0\":{\"name\":\"getMetadataTableName\",\"decl\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"loc\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":13,\"column\":1}},\"line\":10},\"1\":{\"name\":\"hashName\",\"decl\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":19,\"column\":1}},\"loc\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":19,\"column\":1}},\"line\":16}},\"f\":{\"0\":0,\"1\":180}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/query/types.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/query/types.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":29}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":16}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":19}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":2}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":24}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":30}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":33}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":16}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":22}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":26}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":29}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":27}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":23}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":36}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":38}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/TypeClass.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/TypeClass.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":45}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":29}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":64}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":24}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":14}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":24}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":53}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":29}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":34}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":43}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":6}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":36}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":24}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":3}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":41}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":29}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":3}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":39}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":110}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":31}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":3}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":35}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":39}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":47}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":5}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":32}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":3}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":63,\"11\":63,\"12\":63,\"13\":63,\"14\":63,\"15\":63,\"16\":1,\"17\":187,\"18\":187,\"19\":1,\"20\":2297,\"21\":2297,\"22\":1,\"23\":984,\"24\":984,\"25\":984,\"26\":1,\"27\":21,\"28\":0,\"29\":0,\"30\":21,\"31\":21,\"32\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":10,\"loc\":{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":16,\"column\":6}},\"locations\":[{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":16,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":17,\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"locations\":[{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":22,\"column\":3}},\"locations\":[{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":22,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":26,\"column\":3}},\"locations\":[{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":26,\"column\":3}}]},\"4\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":32,\"column\":3}},\"locations\":[{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":32,\"column\":3}}]},\"5\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":38},\"end\":{\"line\":30,\"column\":5}},\"locations\":[{\"start\":{\"line\":28,\"column\":38},\"end\":{\"line\":30,\"column\":5}}]}},\"b\":{\"0\":[63],\"1\":[187],\"2\":[2297],\"3\":[984],\"4\":[21],\"5\":[0]},\"fnMap\":{\"0\":{\"name\":\"TypeClass\",\"decl\":{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":16,\"column\":6}},\"loc\":{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":16,\"column\":6}},\"line\":10},\"1\":{\"name\":\"get tsType\",\"decl\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"loc\":{\"start\":{\"line\":17,\"column\":2},\"end\":{\"line\":19,\"column\":3}},\"line\":17},\"2\":{\"name\":\"get fieldScalar\",\"decl\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":22,\"column\":3}},\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":22,\"column\":3}},\"line\":20},\"3\":{\"name\":\"get sequelizeType\",\"decl\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":26,\"column\":3}},\"loc\":{\"start\":{\"line\":23,\"column\":2},\"end\":{\"line\":26,\"column\":3}},\"line\":23},\"4\":{\"name\":\"hashCode\",\"decl\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":32,\"column\":3}},\"loc\":{\"start\":{\"line\":27,\"column\":2},\"end\":{\"line\":32,\"column\":3}},\"line\":27}},\"f\":{\"0\":63,\"1\":187,\"2\":2297,\"3\":984,\"4\":21}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/generalTypes.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/generalTypes.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":46}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":38}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":74}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":71}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":3633,\"7\":3633,\"8\":3633},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":7,\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"locations\":[{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":9,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":44},\"end\":{\"line\":8,\"column\":69}},\"locations\":[{\"start\":{\"line\":8,\"column\":44},\"end\":{\"line\":8,\"column\":69}}]}},\"b\":{\"0\":[3633],\"1\":[18795]},\"fnMap\":{\"0\":{\"name\":\"getTypeByScalarName\",\"decl\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":9,\"column\":1}},\"line\":7}},\"f\":{\"0\":3633}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":31}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":28}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":28}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/BigInt.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/BigInt.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":23}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":39}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":36}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":11}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":42}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":46}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":4}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":11}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":11}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":11}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":0,\"10\":0,\"11\":1,\"12\":1,\"13\":1,\"14\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Boolean.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Boolean.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":39}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":37}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":12}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":34}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":37}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":4}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":12}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":12}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":11}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":3,\"10\":3,\"11\":1,\"12\":1,\"13\":1,\"14\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":11,\"column\":4}},\"locations\":[{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":11,\"column\":4}}]},\"1\":{\"type\":\"branch\",\"line\":10,\"loc\":{\"start\":{\"line\":10,\"column\":32},\"end\":{\"line\":10,\"column\":35}},\"locations\":[{\"start\":{\"line\":10,\"column\":32},\"end\":{\"line\":10,\"column\":35}}]}},\"b\":{\"0\":[3],\"1\":[0]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Bytes.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Bytes.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":47}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":45}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":39}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":35}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":10}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":46}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":48}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":22}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":28}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":5}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":44}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":4}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":11}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":10}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":16}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":1,\"17\":1,\"18\":1,\"19\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Date.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Date.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":28}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":43}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":39}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":37}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":9}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":31}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":82}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":39}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":4}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":9}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":9}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":13}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":3,\"11\":3,\"12\":3,\"13\":1,\"14\":1,\"15\":1,\"16\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":10,\"loc\":{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":13,\"column\":4}},\"locations\":[{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":13,\"column\":4}}]}},\"b\":{\"0\":[3]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Float.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Float.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":45}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":39}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":35}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":10}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":33}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":55}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":40}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":4}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":11}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":10}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":17}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":12,\"column\":4}},\"locations\":[{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":12,\"column\":4}}]}},\"b\":{\"0\":[1]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/ID.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/ID.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":39}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":32}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":7}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":30}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":29}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":4}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":11}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":7}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":8}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":6,\"9\":6,\"10\":1,\"11\":1,\"12\":1,\"13\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":10,\"column\":4}},\"locations\":[{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":10,\"column\":4}}]}},\"b\":{\"0\":[6]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Int.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Int.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":43}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":39}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":44}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":33}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":8}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":33}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":33}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":4}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":11}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":8}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":11}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":6,\"11\":6,\"12\":1,\"13\":1,\"14\":1,\"15\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":10,\"loc\":{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":12,\"column\":4}},\"locations\":[{\"start\":{\"line\":10,\"column\":2},\"end\":{\"line\":12,\"column\":4}}]}},\"b\":{\"0\":[6]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Json.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/Json.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":45}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":39}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":34}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":9}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":34}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":45}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":4}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":12}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":12}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":17}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":11,\"column\":4}},\"locations\":[{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":11,\"column\":4}}]}},\"b\":{\"0\":[1]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/String.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/String.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":39}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":36}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":11}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":33}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":29}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":4}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":11}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":11}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":8}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":2}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":10,\"column\":4}},\"locations\":[{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":10,\"column\":4}}]}},\"b\":{\"0\":[1]},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/index.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/supported/index.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":25}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":26}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":24}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":23}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":24}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":21}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":22}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":25}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/u8aUtils.ts\":{\"path\":\"/Users/scotttwiname/Projects/subql-main/packages/utils/src/types/u8aUtils.ts\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":62}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":35}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":54}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":3}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":71}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":61}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":2}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":19}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":3}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":46}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":17}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":28}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":68}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":13,\"13\":13,\"14\":8,\"15\":8,\"16\":5,\"17\":5},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":13,\"loc\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":18,\"column\":1}},\"locations\":[{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":18,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":16},\"end\":{\"line\":16,\"column\":3}},\"locations\":[{\"start\":{\"line\":14,\"column\":16},\"end\":{\"line\":16,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":17,\"loc\":{\"start\":{\"line\":17,\"column\":-1},\"end\":{\"line\":18,\"column\":1}},\"locations\":[{\"start\":{\"line\":17,\"column\":-1},\"end\":{\"line\":18,\"column\":1}}]}},\"b\":{\"0\":[13],\"1\":[8],\"2\":[5]},\"fnMap\":{\"0\":{\"name\":\"wrappedNumToU8a\",\"decl\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":18,\"column\":1}},\"loc\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":18,\"column\":1}},\"line\":13}},\"f\":{\"0\":13}}}}\n"
  },
  {
    "path": "scripts/build.sh",
    "content": "#!/bin/sh\nset -e\n\napk add --no-cache jq\nnpm install -g --force yarn@latest\ncd \"$1\"\n\n# Modifies the package.json to replace \"workspace:~\" versions with actual versions\njq -r '.dependencies | to_entries[] | select(.value == \"workspace:~\") | .key' package.json | while read -r dep; do\n  directory=$(jq --arg dep \"$dep\" -r '.compilerOptions.paths[$dep][0]' ../../tsconfig.json | cut -d'/' -f 2)\n  version=$(jq --arg directory \"$directory\" -r '.version' ../\"$directory\"/package.json)\n  if [ \"$version\" != null ]; then\n    jq --arg dep \"$dep\" --arg version \"$version\" -r '.dependencies[$dep] = $version' package.json > package.tmp.json && mv package.tmp.json package.json\n  fi\ndone\n\nyarn pack --filename app.tgz\nrm -rf /root/.npm /root/.cache\n"
  },
  {
    "path": "scripts/update_versions.sh",
    "content": "#!/bin/sh\nset -e\n\nLIGHT_BLUE='\\033[1;34m'\nYELLOW='\\033[1;33m'\nNC='\\033[0m'\n\n# Function to echo unreleased changes from CHANGELOG.md\necho_unreleased_changes() {\n  local changelog_file=\"$1\"\n\n  # Check if the provided argument is a valid file\n  if [ ! -f \"$changelog_file\" ]; then\n    echo \"Changelog doesn't exist\"\n    return 1\n  fi\n\n  # Use sed to extract the line number of the start and end of the unreleased changes\n  local start_line=$(sed -n '/## \\[Unreleased\\]/=' \"$changelog_file\")\n  local end_line=$(sed -n '/## \\[/=' \"$changelog_file\" | sed -n 2p)\n\n  # Use awk to extract the unreleased changes\n  local changes=$(awk \"NR > $start_line && NR < $end_line\" \"$changelog_file\")\n\n  # Check if there are any changes\n  if [ -z \"$changes\" ]; then\n    echo \"No unreleased changes found. Please include some changes and try again\"\n    exit 1\n  else\n    echo \"Unreleased Changes:\\n${LIGHT_BLUE}$changes${NC}\\n\"\n  fi\n}\n\nprepare_package_release() {\n  local dir=\"$1\"\n\n  # Check if the provided argument is a valid file\n  if [ ! -d \"$dir\" ]; then\n    echo \"Expected $dir to be a directory\"\n    exit 1\n  fi\n\n  # Move into the directory in the path\n  cd \"$dir\"\n\n  # Get the version from package.json\n  VERSION=$(jq -r '.version' package.json)\n  NAME=$(jq -r '.name' package.json)\n\n  # Check if the version is a prerelease (ends with a hyphen and one or more digits)\n  if [[ $VERSION =~ -[0-9]+$ ]]; then\n    # Prompt the user for the version bump\n    echo \"Please select the version bump for ${YELLOW}$NAME${NC}\"\n    echo_unreleased_changes \"./CHANGELOG.md\"\n    read -p \"Version bump (major, minor or patch): \" BUMP\n\n    # Update the package.json version\n    yarn version $BUMP\n\n    # Run the changelog:release command\n    yarn changelog:release\n  fi\n\n  # Back to previous dir\n  cd -\n}\n\n## Warning this will not automatically update packages that just have dependency changes\n## E.g. when @subql/common is updated, @subql/common-substrate should also be updated\n## It also doesn't do things in order of dependencies\nfor dir in packages/*; do\n  # Check the path is a directory and is tracked by git\n  if [ -d \"$dir\" ] && [[ $(git ls-files \"$dir\") ]]; then\n    prepare_package_release \"$dir\"\n  fi\n\n  git add .yarn/versions\ndone\n\n# prepare_package_release \"$1\"\n"
  },
  {
    "path": "test/Dockerfile",
    "content": "FROM node:lts-bullseye\nWORKDIR /workdir\n\n# Fix timezone to UTC\nENV TZ=utc\n\nCOPY . .\nRUN yarn\n"
  },
  {
    "path": "test/docker-compose.yaml",
    "content": "version: \"3\"\n\nservices:\n  postgres:\n    image: postgres:16-alpine\n    build:\n      context: .\n      dockerfile: pg-Dockerfile\n    ports:\n      - 5432:5432\n    environment:\n      POSTGRES_PASSWORD: postgres\n\n  test:\n    build:\n      context: ..\n      dockerfile: test/Dockerfile\n    volumes:\n      - ../coverage:/workdir/coverage\n    depends_on:\n      - \"postgres\"\n    environment:\n      DB_USER: postgres\n      DB_PASS: postgres\n      DB_DATABASE: postgres\n      DB_HOST: postgres\n      DB_POST: 5432\n      SUBQL_ACCESS_TOKEN: ${SUBQL_ACCESS_TOKEN}\n      SUBQL_ACCESS_TOKEN_TEST: ${SUBQL_ACCESS_TOKEN_TEST}\n      SUBQL_ORG_TEST: ${SUBQL_ORG_TEST}\n    command:\n      - yarn\n      - test:all\n"
  },
  {
    "path": "test/jest-setup.ts",
    "content": "import 'reflect-metadata';\n\n// Causes the logger to be init\n(global as any).__TEST__ = true;\n"
  },
  {
    "path": "test/load-extensions.sh",
    "content": "#!/bin/sh\n\npsql -v ON_ERROR_STOP=1 --username \"$POSTGRES_USER\" <<EOF\nCREATE EXTENSION IF NOT EXISTS btree_gist;\nEOF\n"
  },
  {
    "path": "test/pg-Dockerfile",
    "content": "FROM postgres:16-alpine\n\n# Variables needed at runtime to configure postgres and run the initdb scripts\nENV POSTGRES_DB 'postgres'\nENV POSTGRES_USER 'postgres'\nENV POSTGRES_PASSWORD 'postgres'\n\n# Copy in the load-extensions script\nCOPY load-extensions.sh /docker-entrypoint-initdb.d/\n\n# Convert line endings to LF\nRUN sed -i 's/\\r$//' /docker-entrypoint-initdb.d/load-extensions.sh && chmod +x /docker-entrypoint-initdb.d/load-extensions.sh"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"module\": \"commonjs\",\n    \"target\": \"ES2022\",\n    \"lib\": [\"ES2022\"],\n    \"noImplicitThis\": true,\n    \"moduleResolution\": \"node\",\n    \"outDir\": \"dist\",\n    \"baseUrl\": \".\",\n    \"types\": [\"node\", \"jest\"],\n    \"experimentalDecorators\": true,\n    \"esModuleInterop\": true,\n    \"allowSyntheticDefaultImports\": true,\n    \"emitDecoratorMetadata\": true,\n    \"declaration\": true,\n    \"sourceMap\": true,\n    \"inlineSources\": true,\n    \"composite\": true,\n    \"skipLibCheck\": true,\n    \"strict\": true,\n    \"noImplicitAny\": false,\n    \"paths\": {\n      \"@subql/utils\": [\"packages/utils/src\"],\n      \"@subql/utils/*\": [\"packages/utils/src/*\"],\n      \"@subql/common\": [\"packages/common/src\"],\n      \"@subql/common/*\": [\"packages/common/src/*\"],\n      \"@subql/common-substrate\": [\"packages/common-substrate/src\"],\n      \"@subql/common-substrate/*\": [\"packages/common-substrate/src/*\"],\n      \"@subql/node-core\": [\"packages/node-core/src\"],\n      \"@subql/node-core/*\": [\"packages/node-core/src/*\"],\n      \"@subql/types-core\": [\"packages/types-core/src\"],\n      \"@subql/types-core/*\": [\"packages/types-core/src/*\"],\n      \"@subql/types\": [\"packages/types/src\"],\n      \"@subql/types/*\": [\"packages/types/src/*\"],\n      \"@subql/testing\": [\"packages/testing/src\"],\n      \"@subql/testing/*\": [\"packages/testing/src/*\"]\n    }\n  },\n  \"references\": [\n    {\"path\": \"packages/cli\"},\n    {\"path\": \"packages/common\"},\n    {\"path\": \"packages/common-substrate\"},\n    {\"path\": \"packages/node\"},\n    {\"path\": \"packages/node-core\"},\n    {\"path\": \"packages/types-core\"},\n    {\"path\": \"packages/types\"},\n    {\"path\": \"packages/utils\"}\n  ],\n  \"include\": [\"packages/**/*\"],\n  \"exclude\": [\"**/node_modules/**\"],\n  \"typeRoots\": [\"./node_modules/@types\"]\n}\n"
  },
  {
    "path": "tsconfig.test.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"exclude\": [\n    \"**/node_modules/**\",\n    \"**/*.spec.ts\",\n    \"**/*.test.ts\"\n  ]\n}\n"
  }
]